Date: Tue, 27 May 1997 04:56:08 -0400 (EDT) To: tghack-list@joyce.eng.yale.edu From: David Michel X-Software: MLF2 v2.4, Copyright 1995, 1996, 1997 by Bt X-Original-Id: <1.5.4.16.19970527081733.2b87dba4@mail.easynet.fr> Subject: CD BIOS infos X-UIDL: 7631b8d0420ae7743e6ec6ec8b52fa89 Hi, Whooops sorry for the shortened message :) I promise I won't do it again... David Label: CD_READ [$E009] Function: Read data from CD sectors to memory IN: _CX/_DL: Sector # (high byte first) _DH: Destination data address type $00: ?? | $01: Local | $02-$06: MPR # | $FE: VRAM | $FF: VRAM _BL: | Addr low | Bank # | Addr low | Addr low _BH: | " high | - | " high | " high _AL: | Nb sectors | Nb sectors | Size low | Nb sectors _AH: | - | - | " high | - OUT: reg A = error status $00: operation success $??: error Label: CD_EXEC [$E00F] Function: Same as CD_READ but after reading the data set the S register to $FF and jump to the address contained in _BX Label: CD_PLAY [$E012] Function: Play an audio track IN: _BH: Mode (two upper bits only) $??: Play from # to # | $80: Play track # _AL: Start minutes (BCD) | Track # (BCD) _AH: " secondes (BCD) | - _BL: " frames (BCD) | - _CL: Stop minutes (BCD) | - _CH: " secondes (BCD) | - _DL: " frames (BCD) | - OUT: reg A = error status $00: operation success $??: error Notes: Don't know yet the difference between the three modes $00/$40/$C0, may be there isn't any. :) Need further investigation. Label: CD_SUBQ [$E01E] Function: Read the Q sub-channel IN: _BX: Address of a 10 bytes buffer OUT: reg A = error status $00: operation success $??: error Notes: Don't know how the ten bytes are put in the buffer ?? Label: CD_DINFO [$E021] Function: Get information for a given (data?) track IN: _BX: Address of a 4 bytes buffer _AH: Track # (BCD) _AL: Command $02: return the track position as follow 0 - minutes (BCD) 1 - secondes (BCD) 2 - frames (BCD) 3 - ??? (probably the track ID number) $??: may be other commands are possible OUT: reg A = error status $00: operation success $??: error