;R12 ;/////////////////////////////////////////////////////////////////////// ; Функция #08 (DSS_RESCAN). Пересканировать девайсы системы. ; ; вход: нет ; выход: A - номер последнего лог. диска в системе ;/////////////////////////////////////////////////////////////////////// ; INCLUDE 'ScanDRV.asm' ;!TODO код дико костыльный и будет переделан вместе с процедурой INITDVC SCANDRV: ; 1. запоминаем состояние прерываний ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; LD A,R DI PUSH AF ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; ; 2. узнаём букву бут-диска ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; CALL BOOTDSK.GET ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; ; 3. вызываем рескан ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; ; A = Boot disk LD B,A LD A,Dss.DRV.RescanDRV LD C,Dss.DRV.RescanDRV RST ToDSS.DRV LD (LDRIVE),A ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; ; 4. на всякий случай перечитываем дирректорию ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; LD A,(CurrentPath) SUB 'A' CALL CHNDISK ; LD HL,CurrentDirectory CALL CHDIR JR NC,.exit LD HL,CurrentDirectory LD (HL),0 ; LD HL,CurrentPath ; CALL CHDIR ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; ; 5. выход ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; .exit: POP AF RET PO EI RET ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; ;/////////////////////////////////////////////////////////////////////// ;