----- B.E.R.T. SCSI bios ----- The reason I mailed this list to the mailing list is; I think a lot of people want to programm SCSI stuff, but don't know how... I hope this short doc will help them with it. ** For more scsi documentation; nic.funet.fi/pub/doc/scsi/scsi_1_doc.tar.gz (i'm not sure about the filename, it's something with scsi 1 in it, it contains the full ansi x3.131-1986 standard) Adress | Inputs/Outputs | Purpose -------+-----------------------+----------------------------------------------- 7F80 | --- | B.E.R.T.-mark, must contain "HD!", if not, | | there is no B.E.R.T. available. | | 7F83 | --- | Nothing, this routine will perform a DI-HALT. | | 7F86 | --- | Target selected, continue with data transfer. | | 7F89 | In: | Read a physical sector. | [CDE]=physical sector | | [HL]=buffer address | | [B ]=no. of sectors | | [A ]=target (1) | | | | Out: | | [ F]=carry set->error| | [D ]=error code (2) | | | 7F8C | In: | Write a physical sector. | [CDE]=physical sector | | [HL]=buffer address | | [B ]=no. of sectors | | [A ]=target (1) | | | | Out: | | [ F]=carry set->error| | [D ]=error code (2) | | | 7F92 | In: | Inquiry, this will give info about the target | [HL]=buffer address | | [A ]=target (1) | | | | Out: | | [ F]=carry set->error| | [D ]=error code (2) | | | 7F95 | In: | Read capacity, this will give info about the | [HL]=buffer address | size of the target. | [A ]=target (1) | | | | Out: | | [ F]=carry set->error| | [D ]=error code (2) | | | 7F98 | In: | Mode sense, return current mode-parameters | [HL]=Buffer address | | [A ]=target (1) | | | | Out: | | [ F]=carry set->error| | [D ]=error code (2) | | | 7F9B | In: | Mode select | [HL]=Buffer address | | [A ]=target (1) | *** Used to initialize the HD *** | | *** BE CAREFULL *** | Out: | | [ F]=carry set->error| | [D ]=error code (2) | | | 7F9E | In: | Format unit | [A ]=target (1) | | | *** Used to initialize the HD *** | Out: | *** BE CAREFULL *** | [ F]=carry set->error| | [D ]=error code (2) | | | 7FA1 | --- | Test unit ready | | 7FA4 | --- | Cold boot | | 7FA7 | --- | Make SCSI drive table | | 7FAA | --- | Print ESC-K on screen | | 7FAF | In: | Perform a SCSI-command | [IX]=pointer to com- | | mand string | | | | Out: | | [ F]=carry set->error| | [D ]=error code (2) | | | (1) The SCSI target: b7 b6 b5 b4 b3 b2 b1 b0 lun 0 0 target Target and LUN must be between 0-7. (2) Error codes: 00-No error 02-Check condition 08-Target busy 0C-Reservation conflict 10-Occurs with linked commands