This message is from the T13 list server.


How commonly do boot BIOS actually leave BSY and/or DRQ set?

Do Linux/ Mac/ Windows/ etc. always begin life by repeating the resets
that the t13.org texts say may complete slowly?

Curiously yours, thanks in advance, Pat LaVarre

P.S.

I ask because lately I saw the bus trace:

...
RD STATUS    1F7    50 RDY/DSC              6.070 US
WR DRV/HEAD  1F6    B0 CHS/DRV1/HEAD=0      2.601 SEC
WR FEATURES  1F1    00 UNKNOWN FEATURE      1.290 US
RD STATUS    1F7    50 RDY/DSC              1.650 US
WR DRV/HEAD  1F6    B0 CHS/DRV1/HEAD=0      1.440 US
WR FEATURES  1F1    00 UNKNOWN FEATURE      1.200 US
WR CYL LO    1F4    00                      1.200 US
WR CYL HI    1F5    08                      1.230 US
WR COMMAND   1F7    A0 ATAPI PACKET CMD     3.130 US
RD STATUS    1F7    58 RDY/DSC/DRQ          15.96 SEC
RD STATUS    1F7    58 RDY/DSC/DRQ          525.3 MS
WR DRV/HEAD  1F6    E0 LBA/DRV0/HEAD=0      1.420 US
...

That's right, this boot BIOS chooses to leave the device waiting
indefinitely for Command Out bytes, and then gleefully proceeds to write
DEV while BSY|DRQ.

Could have been provoked by confusion over whether Atapi CO has an INTRQ
or not, I suppose.

Reminds me of a x13 byte .com abuse I once saw:

:0100 BAF603        MOV     DX,03F6
:0103 B004          MOV     AL,04
:0105 EE            OUT     DX,AL
:0106 31C0          XOR     AX,AX
:0108 EE            OUT     DX,AL

:0109 BA7603        MOV     DX,0376
:010C B004          MOV     AL,04
:010E EE            OUT     DX,AL
:010F 31C0          XOR     AX,AX
:0111 EE            OUT     DX,AL

:0112 C3            RET

Dos Debug.exe asm like that sends an SRST to the two legacy PC IDE
busses no matter what was going on and without waiting for the SRST to
complete.

These two abuses might frequently cancel each other, if in combination
they actually win the indeterminate races they provoke.


Reply via email to