;!TODO исправить SLOT2 на SLOT3 и затестить ;!TODO добавить описание GET_DISK_REDIR: PUSH HL LD HL,SYS_PAGE.DISK_TYPE-#4000 IN A,(SLOT2) EX AF,AF' LD A,SYS_PAGE OUT (SLOT2),A LD A,(ZX_VARS.OPER_DISK) AND 3 ADD A,L LD L,A LD L,(HL) EX AF,AF' OUT (SLOT2),A LD A,L POP HL RET ; ;!TODO исправить SLOT2 на SLOT3 и затестить, но не пользоваться стеком тогда ;!TODO добавить описание SET_DISK_REDIR: PUSH HL LD HL,SYS_PAGE.DISK_TYPE-#4000 IN A,(SLOT2) EX AF,AF' LD A,SYS_PAGE OUT (SLOT2),A LD A,(ZX_VARS.OPER_DISK) AND 3 ADD A,L LD L,A LD (HL),E ; ;LD L,(HL) LD L,E ; EX AF,AF' OUT (SLOT2),A LD A,L POP HL RET ; ;!TODO исправить SLOT2 на SLOT3 и затестить ; Disk A, DRV - B FDD_TO_DRV: CP 4 CCF RET C LD C,A LD A,B CP 4 CCF RET C LD HL,SYS_PAGE.DISK_TYPE-#4000 LD L,B IN A,(SLOT2) LD B,A LD A,SYS_PAGE OUT (SLOT2),A LD (HL),C LD A,B OUT (SLOT2),A AND A RET ; ;!TODO исправить SLOT2 на SLOT3 и затестить ; RAM-Disk A, DRV - B RAMD_TO_DRV: CP SYS_PAGE.RAMD_KEYS.NUM CCF RET C LD C,A LD A,B CP 4 CCF RET C ; LD HL,SYS_PAGE.DISK_TYPE-#4000 LD L,B ; IN A,(SLOT2) LD B,A LD A,SYS_PAGE OUT (SLOT2),A LD A,C ADD A,4 LD (HL),A LD A,B OUT (SLOT2),A AND A RET ; ;!TODO исправить SLOT2 на SLOT3 и затестить ; HDD A, DRV - B HDD_TO_DRV: AND #0F OR #40 LD C,A LD A,B CP 4 CCF RET C ; LD H,high (SYS_PAGE.DISK_TYPE-#4000) LD L,B ; IN A,(SLOT2) LD B,A LD A,SYS_PAGE OUT (SLOT2),A LD A,C LD (HL),A LD A,B OUT (SLOT2),A ; AND A RET ; ; не убивает DE и BC GET_DRV_ST: CP 4 CCF RET C PUSH BC LD HL,SYS_PAGE.DISK_TYPE-#4000 ADD A,L LD L,A IN A,(SLOT2) LD B,A LD A,SYS_PAGE OUT (SLOT2),A LD C,(HL) LD A,B OUT (SLOT2),A LD A,C POP BC AND A RET ;