;LAST UPDATE: 10.11.2013 savelij
CP_VARSTRDOS_ CALL SET_RWPORT0
LD HL,(CHANS)
RET
SET_DRIVENAME_ CALL SET_DRIVENAME
LD (TRD_5D16),A ; КОПИЯ СИСТЕМНОГО РЕГИСТРА (ПОРТ #FF)
RET
GET_TYPE_DISK_ CALL GET_TYPE_DISK
AND 0X80
LD A,0X28
RET Z
LD A,0X50
RET
BCMP_EMU EQU 0XF5
LOC_2A53_ IF EMU3D2F=1
RST 0X30
DB WOUTCA
RET
RET
ELSE
PUSH AF
INC C
JR Z,LOC2A53
ENDIF
DEC C
POP AF
OUT (C),A
RET
LOC2A53 DEC C
POP AF
RST 0X30
DB WOUTCA
RET
EMU_LDIR PUSH AF
LD A,H
CP 0X2A
JR NZ,EMU_LDIR2
LD A,L
CP 0X54
JR NC,EMU_LDIR2
CP 0X50
JR C,EMU_LDIR2
ADD HL,BC
PUSH HL
LD HL,0X3FF0-3
CP 0X53
JR NZ,EMU_LDIR0
LD HL,0X3FF0
EMU_LDIR0 LDIR
POP HL
POP AF
RET
EMU_LDIR2 PUSH BC
PUSH HL
LD A,(LOC_2A53_)
CP BCMP_EMU
LD HL,DOS_NOEMUL
LD BC,WIN_A0+0X100
CALL NZ,WRPORT_RET
POP HL
POP BC
LDIR
EMU_LDIR4 CP BCMP_EMU
JR Z,EMU_LDIR3
PUSH HL
PUSH BC
LD HL,DOS_EMUL
LD BC,WIN_A0+0X100
CALL WRPORT_RET
POP BC
POP HL
EMU_LDIR3 POP AF
RET
EMU_LDIR_RBC CALL EMU_LDIR
POP BC
RET
EMU_LDIR_RHL CALL EMU_LDIR
POP HL
RET
PRINT_VIRTDRV LD H,VIRT_REAL_DRIVE
CALL READCMOS ;ЧТЕНИЕ НОМЕРА ВИРТУАЛЬНОГО ДИСКА
AND 3 ;НАМ НУЖНЫ ТОЛЬКО 2 МЛАДШИХ БИТА
ADD A,"A" ;ПРЕОБРАЗОВАЛИ В ТЕКСТ
RST 0X10 ;НАПЕЧАТАЛИ БУКВУ
RET
;ЕСЛИ КОМАНДА РАСШИРЕННАЯ ТО ПЕЧАТЬ ИМЕНИ FAT УСТРОЙСТВА
;ИНАЧЕ ПЕЧАТЬ ИМЕНИ TR-DOS ДИСКОВОДА
GET_COMMAND2 LD A,(TRD_5CEF)
AND A
CALL NZ,NOMER_DRV ;ПЕЧАТЬ ИМЕНИ FAT УСТРОЙСТВА ЕСЛИ КОМАНДА НЧИНАЕТСЯ С "."
RET C ;ВЫХОД ЕСЛИ УЖЕ НАПЕЧАТАНА БУКВА FAT УСТРОЙСТВА
LD A,(TRD_5D19)
ADD A,"A"
RST 0X10
RET
CMP_RAMDISK_ CALL CMP_RAMDISK
LD HL,SET_VARS
RET
PRINT2ZERO LD A,(HL)
INC HL
AND A
RET Z
RST 0X10
JR PRINT2ZERO