CR EQU #0D
ORG #7000
LD HL,#F000
LD A,(23833) ;Номер дисковода
CALL READCAT
LD DE,#F000
LD HL,MASK
LD BC,#E000
CALL CATTEXT
LD A,2
CALL 5633
LD DE,#E000
MET2 LD A,(DE)
CP #00
JR Z,MET1
LD BC,#0008
CALL 8252
LD A,"."
RST #10
LD BC,#0003
CALL 8252
INC DE
INC DE
INC DE
INC DE
INC DE
LD A,CR
RST #10
JP MET2
MET1 XOR A ;На всякий слу-
LD (#F000),A ;чай
LD HL,#F000
LD DE,#F001
LD BC,#800
LD (#E000),A
LD HL,#E000
LD DE,#E001
LD BC,#800
RET
MASK DEFB '********Z**'
;
;Чтение каталога с заданного дисковода
;
; В Н И М А Н И Е !!!
;
; Дисковод становится текущим
;
;Вход : В 'HL' - адрес куда читать
; В 'A' - дисковод
;
;Выход : По адресу в 'HL' - каталог и
; системный сектор
;
;Портит: 'A',(23796)
READCAT PUSH HL
LD C,#01
CALL #3D13
LD C,#18
CALL #3D13
LD DE,#0000
LD (23796),DE
LD BC,#0905
POP HL
CALL #3D13
RET
;
;Создание образа каталога по маске
; 7
;Вход : В 'HL' - адрес маски
; В 'DE' - адрес где каталог
; В 'BC' - адрес куда создавать
; + По адресу cattxt1 #0000 если
; показывать удаленные файлы или
; 'CP 2' (LD ??,#02FE) если не
; показывать
;
;Выход : Созданый образ по зад. адресу
; конец каталога = 0
;
;Портит: A,BC,DE,HL,BC',DE'
;
CATTEXT PUSH BC
EXX
POP DE
EXX
LD BC,#097F
CATTXT5 PUSH HL
PUSH DE
EXX
PUSH DE
EXX
CATTXT3 LD A,(HL)
CP "*"
LD A,(DE)
JR Z,CATTXT1
CP (HL)
JR NZ,CATTXT2
CATTXT1 CP 2
JR C,CATTXT2
EXX
LD (DE),A
INC DE
EXX
INC DE
INC HL
DJNZ CATTXT3
EXX
POP BC
PUSH DE
EXX
POP HL
EX DE,HL
PUSH BC
LDI
LDI
LDI
LDI
LDI
LDI
LDI
PUSH DE
EXX
POP DE
EXX
POP BC
JR CATTXT4
CATTXT2 EXX
POP DE
EXX
CATTXT4 POP DE
LD HL,16
ADD HL,DE
EX DE,HL
POP HL
LD B,#09
DEC C
JR NZ,CATTXT5
EXX
XOR A
LD (DE),A
EXX
RET