Login

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

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