boegehol@informatik.uni-stuttgart.de (Harald Boegeholz) (07/30/90)
In article <S33966R.90Jul22123149@kaira.hut.fi> s33966r@kaira.hut.fi (Juha Hulkkonen) writes: > ... So, if you could provide the patched llformat or a > pointer to any other suitable low-level formating program I'd be more > than happy ;-) Here it is... To format a non-IBM ESDI harddisk in a Model 60, one has to convince the controller to ignore the absence of the "primary defect map" which can be found on the second last cylinder of an IBM disk. The program LLFORMAT.COM supplied on the reference diskette of my IBM PS/2 Model 60-071 uses the following code to format the hard disk: 339D:81B1 B41A MOV AH,1A 339D:81B3 B000 MOV AL,00 339D:81B5 8A166472 MOV DL,[7264] 339D:81B9 B114 MOV CL,14 ; *** CHANGE TO MOV CL,15 ^^ ^^ 339D:81BB 0A0ED376 OR CL,[76D3] 339D:81BF CD13 INT 13 339D:81C1 7210 JB 81D3 339D:81C3 B41A MOV AH,1A 339D:81C5 B000 MOV AL,00 339D:81C7 8A166472 MOV DL,[7264] 339D:81CB B11C MOV CL,1C ; *** CHANGE TO MOV CL,1D ^^ ^^ 339D:81CD 0A0ED376 OR CL,[76D3] 339D:81D1 CD13 INT 13 339D:81D3 C3 RET The "IBM Personal System/2 and Personal Computer BIOS Interface Technical Reference" has the following to say about this BIOS call: INT 13H AH=1AH (Format Unit) AL=defect table block count ES:BX=address of defect block table CL=Modifier bits: 7 0 6 0 5 0 4 enable periodic interrupt 3 perform extended surface analysis 2 update secondary defect map 1 ignore secondary defect map 0 ignore primary defect map DL=drive number So all one has to do is apply the changes indicated above (i.e., set the "ignore primary defect map" bit) and use the reference diskette to format the disk as usual. By "as usual", I mean boot with the reference diskette, press Ctrl+A at the main menu (undocumented feature, as Muriel Rosenberg pointed out) and follow the prompts. Note that the address of the routine will probably be different since I have the German version of the reference diskette. Also note that this code is used for the Model 60 with an "ESDI Fixed Disk Drive Adapter/A". The LLFORMAT.COM for the Model 80 contains the same routine (at a different address), so the patch should work there, too. I wasn't able to test this, though. I used the above method successfully for a NEC D5655 hard disk (140MB). Other ESDI hard disks with up to 10MB/s transfer rate should work as well. Harald Boegeholz