;///////////////////////////////////////////////////////////////////// ; Функция #09. Номер системного диска. ; Возвращает номер диска, c которого загружена система. ; ; вход: B = 0 (01h - исп. boot-загрузчик системы) ; выход: A - номер системного диска (0=A,1=B,..) ;///////////////////////////////////////////////////////////////////// BOOTDSK: INC B DEC B JR Z,.GET DEC B .chg: JR Z,.SET ;R13 меняется на JR С,SETBOOT после первого удачного исполнения SETBOOT LD A,DSS_Error.sys.INVALID_FUNCTION SCF RET .GET: ;GET BOOT DISK .NUM+1: LD A,0 ;R09 AND A RET ; Сообщить DSS с какого диска загружается система. ; Исп. загрузчик системы для иниц. ячейки "boot_disk". .SET: LD B,A ;SET BOOT DISK LD C,0 .loop: PUSH BC LD A,C LD DE,#55AA LD BC,256*0 + Dss.DRV.GenIOCTL RST ToDSS.DRV POP BC JR C,.NoSupport EX AF,AF' ;PHISICAL DRIVE NUMBER CP B JR NZ,.NoSupport ;R13 LD A,#38 ; opcode for JR C,addr LD (BOOTDSK.chg),A ;R13 LD A,C LD (BOOTDSK.NUM),A AND A RET .NoSupport: INC C LD A,(LDRIVE) CP C JR NZ,.loop SCF RET ; Номер последнего диска в системе LDRIVE: DB DSS_MAX_DRIVES_AMOUNT IF COMPILE_UNUSED_CODE TDRIVE: DB #00 TCLUST: DW #0000 TCOUNT: DW #0000 ENDIF ;