Saturday, October 8, 2016

Locating a section within a disk raw dump

This page is a part of the "Understanding IRIS" collection.  Many thanks to David Takle, for figuring this out, and sharing this with us:

------------------------------------------------------------------
OK. That was sort of interesting and fun.

Here's the process I went through to track it down. 

1. The decimal displacement [off  the area targeted] is 8808512. That's a byte displacement into the DRIVE. 

2. Convert that to a word displacement == 4404256

3. Divide by 256 to == 17204 block displacement into the drive (drop fraction)

4. Convert to octal == Sector 41464 (8) in the drive
The question is, where is that sector relative to the logical units.

5. Examine CONFIG to see how the drive is broken up (there can be multiple LU's)
See http://nova-iris.net/architecture/config-structure/ for info on deciphering CONFIG table.

# DSP 
FCONFIG 
D1400 (and immediate escape to stop the listing) 
( we get this )

1400:    77037   51424   51303       5   77000       0       0      24
1410:        0       0      30       0    7741       0       0     124
1420:        0      24      30       0   76576       0       0     140
1430:        0     150      30       0   76563       0       0     140
1440:    40000       0      30       0   76550       0       0     110
1450:    40000     140      30       0  177777   77377   77377   77377 

That tells me LU0 is 24 (8) cylinders. LU1 begins on Cyl 24 (8) and has 124 (8) cylinders. 

6. Review the characteristics of a Century 114 Drive. There are 14 (8) sectors per track, 24 (8) tracks per cylinder, 360 (8) sectors per cylinder. 

7. How many sectors are in LU 0 ? == 360 (8)  blocks per cyl times  24 (8)  cylinders ==> 11300 (8) sectors on LU0. 

8. Since our target block is 41464, it cannot be in LU0. Subtracting 41464 - 11300  gives us  30164 blocks beyond LU 0. 

9. How many sectors are in LU 1 ? == 360 blocks per cyl times 124 cylinders === > 47300. Since 47300 > 30164, our target block is RDA 30164 on LU 1. 

10. INSTALL 0.1 to get access to LU1 

11. If our block is in a continuous file, that would be the easiest to locate, so let's try:
 # LIBR 1/@ *C 
to display all continuous files. 
Guess what shows up?

C  ROLODEX         0   $0.00  1001    0, 2  6114   137    32   1  30025

The file begins on 30025 (8) and consists of 1001 (dec) blocks.
That's our file.

------------------------------------------------------------------

If you do the following command it will tell you everything it knows about the file

# QUERY ROLODEX

------------------------------------------------------------------

This page is a part of the "Understanding IRIS" collection.  

No comments:

Post a Comment