Inferno #08
30 ноября 2005 |
|
Softinka - a description and history of the program to work with hard disk HDDoctor v0.9.
Changes 0.9, 11.29.2005: + For CD-ROM can be regarded as a table of sessions, if you enter the number of cylinders FFFF (more precisely, FFxx). Table as follows: 0 2 length of table in bytes (first byte length, then junior) 2 a number of the first session 3 a number of the last session Further, for each session: 0 1 is empty 1 1 type of session 2 Number 1 session 3 1 is empty 4 4 number sector of the session (first byte) The team works with either the 2 nd time, or after reading the sector with the CD! 0.8 (thanx to Jason Frost, AnoNik, SMT): # 08-team return. -Values for the Device control register SMUC corrected. 0.7 (thanx to ZET-9, Kury): -Team # 08 and # 0C removed, instead of them Reset to Device control register. 0.6 (thanx to SMT, ZET-9, Budder): -Team # 08 (reset) and # 0C (withdrawal relief) were given in reverse order. , After the initialization is not read Identification Sector - Team # EC no was completed (it was visible only under emulator!). + You can see the ID package: Press Break after initialization device. Packet length 512 bytes. 0.5 (big thanx to SMT !!!): * Enter "R" no longer needed. -Fixed initialization and reading from the CD. + When you select CD-ROM it is completely reset - you probably know situation where the CD-ROM included in the incomprehensible state, and no program of its more does not see? Now this will not happen! Fixed-length sectors on CD (2k). + You can set the speed of CD (1x or 8x). The disc is no longer burst! Speed installed after reading sector. Notice at the hearing. + Because many in the IDE-controller wound reset signal from the computer, and ZX other programs for the CD is not set speed (but not reset CD-ROM), then provides output in TR-DOS on ssA ("STOP"), then to run other programs for CD (CD-Walk or WDC). 0.4: + Supported CD-ROM!!! + Read / write operations can be interrupted click Space. + For ssS can save the current sector to diskette with the file name type Y1222233.0, where Y - mode LBA, 1 - head, 2222 - cylinder, 33 - sector (in this case 1222233 - LBA-address), 0 - number of device on the loop. + For ssL can download this file floppy disk. In this case, the file name is checked for correspondence is entered into the address field sector (the device is selected, but not initialized! "), after which the sector with screw is read into the buffer of the old sector " (For a partial restore by cs9, cs0), and the file from a floppy disk - in the buffer "New Sector" (and now it can be easily write to the screw buttons csEnt). + Cs9 - retrieving information from buffer of the old sector of the forward (and cs0 was - back). * Cs0 not fixated (cs9 too). + When the boundaries of the sector are invited to download the next or the previous sector (Break - cancel). + On the curb (or on the curb - who like:) output error: red = aborted; white = Invalid file name. 0.3: -Error cs0. * Save not ssS, but by csEnt. Description Normal diskdoktor only on the screw (and CD-ROM). Sectors on the screw 512-byte (for CD-ROM 2048-byte). Due to the different lichestva sectors per track for different screws, I prefer to realize the download of one sector. (Screws fast, so that rmozov in this case does not.) coordinates are third sector are introduced in the column on the left of dump (when you run the dump has not yet appeared, it appears after a successful reading of the sector). On the Enter button options accepted - and there chtenie.Pro reading of editing and below. The parameters are: DRV - the device number. 0 = MASTER, 1 = SLAVE. If you enter something in the field of this figure, then the selected device directly proinitsiali ziruetsya (by a strange algorithm I borrowed from Dmitri Avryaty, and he - of Driver iS-DOS). If the initialization not obtained (vyasiiiim. ..), then click Space process can be interrupted. LBA - enabled (Y) or off (N) mode Addressing LBA. (For CD-ROMs choice here speed: 1x or 8x.) The numbering of sectors in LBA mode Sauveur Shannon drugaya.V conventional (legacy) mode (LBA = N) and Gaza, and the cylinder and head - all had their limits of variation, which in written on the body of the screw and which can be be read by software from Digney statistical information of screw (sometimes true, This diagnostic information is reported lie). Sector were numbered from 1, Qi The cylinder and head - from 0. When reading a large volumes of data, these data were taken in order Ke increasing numbers of sectors, and when these numbers came to an end, took the 1 st sector on the next head, and ended when the bare FRI, then proceed to the next cylinder. Recalculation of absolute numbers in these sectors three parameters are fairly napryazhny. A mode LBA = Y (now on ATA std the mouth is the only permitted method) you just need to specify an absolute number. Number (from 0 to skolkototam) spreads Registers sector (there are flying low 8 bits), the cylinder (there are flying bits 8 .. 23) and head (bits 24 .. 27). For particularly tough screws, which weigh more than 32G, provides a broader 48-bit addressing, which goes in two steps. That is, it is they have provided, and in my program is not available. I there is such a screw, but I turned off the bridge this regime, since it does not even understand I mi:) (Why 32G? Because more than 64 mi sectors per track does not understand! With responsibly, screws CHS addressing wider 64 sectors are not available. Of course, the local cally sector have no relation of the physical, the number of which we with you no one will say.) head - head number or high-order bits LBA. cyl - cylinder number or LBA bits mean (A cylinder over head! So get is sikos-nakos). sec - number of sectors or lower bits LBA. All numbers are hexadecimal. So, you initialize your screw (DRV), introduced a sector number and press Enter. Reads the sector. In the source model zhno choose the read / write mode: poll DRQ to each byte, or just before the whole sector. I gathered you a version in which swarm in front of everyone. By the way, the ports in this ver these scheme Nemo. To select other ports, climb into the source code, where their numbers on conspicuous place. There's even a mode smuc = 1, which ports are available only in TR-DOS. Information taken from an article by Vega (Abs @ ts " # 21). To assemble version with its spirit kami, make, make it debug = 0. You by need the avtosborschik mrip *. H (it lies on each corner, for example, is attached to IG # 5). Vot.Vash screw, as long as it was, had assumed a thief in the sector, and the program shows on screen half of this sector (transfer to another half - PgUp / PgDn, and it is possible arrows). In left field - the numbers in the right - letters. The transition from field to field - click Extend. Still, as you can see on the screen height vetilis values read from the two major device registers: STAT (register state scattering, normally after a successful operation long women be equal to # 50, # 52, or if the screw with obschil of the index hole - my regulator Approx reports) and ERR (error register in the normal IU is # 00). STAT bits are: D7 - BSY (employment); D6 - DRDY (ready); D5 - device fault (something like a breakup); D4 - once meant that locate the track, but now it means nepomnyuchto about the parallel execution of commands (Better naplyuyte on this bit); D3 - DRQ (data request); D2, D1 - present are not defined (used to be:) including referred to the index hole); D0 - ERR (error occurred). ERR bits are (for "Abs @ ZU): D7 - found bad sector header; D6 - error in data; D4 - Sector not found; D2 - aborted, or that there are no Coy operations; D1 - Not Found lane 0; D0 - Not Found some rubbish after header sector. And now poredaktiruem ... In the left field allowed for the preservation screw (a combination of csEnt). In the right band gap scheno. Back in left field you can click L ne go over the choice of the sector (see the beginning of the description of; Break - deselect sector). In OS experimentally control and there, and there are not very different. When something type of changes podsvechivayutsya.Kogda erase (cs0 or cs9), takes the old value of bytes. ssQ and ssW (remember alasm and protreker:) shift and widen the bytes. My source code looking for here, I'm not greedy :) It is convenient at its base to experiment procedures HDDRESET, READ and WRITE. Alone Coder
Other articles:
Similar articles:
В этот день... 21 November