?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download

  1. CR        EQU  #0D
  2.  
  3.  
  4.           ORG #7000
  5.  
  6.  
  7.           LD HL,#F000
  8.           LD A,(23833) ;Номер дисковода
  9.           CALL READCAT
  10.  
  11.           LD DE,#F000
  12.           LD HL,MASK
  13.           LD BC,#E000
  14.           CALL CATTEXT
  15.  
  16.           LD A,2
  17.           CALL 5633
  18.  
  19.           LD DE,#E000
  20. MET2      LD A,(DE)
  21.           CP #00
  22.           JR Z,MET1
  23.  
  24.  
  25.           LD BC,#0008
  26.           CALL 8252
  27.  
  28.           LD A,"."
  29.           RST #10
  30.  
  31.           LD BC,#0003
  32.           CALL 8252
  33.           INC DE
  34.           INC DE
  35.           INC DE
  36.           INC DE
  37.           INC DE
  38.  
  39.           LD A,CR
  40.           RST #10
  41.           JP MET2
  42.  
  43.  
  44. MET1      XOR A        ;На всякий слу-
  45.           LD (#F000),A ;чай
  46.           LD HL,#F000
  47.           LD DE,#F001
  48.           LD BC,#800
  49.  
  50.           LD (#E000),A
  51.           LD HL,#E000
  52.           LD DE,#E001
  53.           LD BC,#800
  54.  
  55.  
  56.  
  57.  
  58.           RET
  59.  
  60. MASK      DEFB '********Z**'
  61.  
  62. ;
  63. ;Чтение каталога с заданного дисковода
  64. ;
  65. ;       В  Н  И  М  А  Н  И  Е  !!!
  66. ;
  67. ;       Дисковод становится текущим
  68. ;
  69. ;Вход  : В 'HL' - адрес куда читать
  70. ;        В 'A'  - дисковод
  71. ;
  72. ;Выход : По адресу в 'HL' - каталог и
  73. ;        системный сектор
  74. ;
  75. ;Портит: 'A',(23796)
  76.  
  77. READCAT PUSH HL
  78.         LD C,#01
  79.         CALL #3D13
  80.         LD C,#18
  81.         CALL #3D13
  82.         LD DE,#0000
  83.         LD (23796),DE
  84.         LD BC,#0905
  85.         POP HL
  86.         CALL #3D13
  87.         RET
  88.  
  89. ;
  90. ;Создание образа каталога по маске
  91. ;   7
  92. ;Вход  : В 'HL' - адрес маски
  93. ;        В 'DE' - адрес где каталог
  94. ;        В 'BC' - адрес куда создавать
  95. ;      + По адресу cattxt1 #0000 если
  96. ;        показывать удаленные файлы или
  97. ;        'CP 2' (LD ??,#02FE) если не
  98. ;        показывать
  99. ;
  100. ;Выход : Созданый образ по зад. адресу
  101. ;        конец каталога = 0
  102. ;
  103. ;Портит: A,BC,DE,HL,BC',DE'
  104. ;
  105. CATTEXT PUSH BC
  106.         EXX
  107.         POP DE
  108.         EXX
  109.         LD BC,#097F
  110. CATTXT5 PUSH HL
  111.         PUSH DE
  112.         EXX
  113.         PUSH DE
  114.         EXX
  115. CATTXT3 LD A,(HL)
  116.         CP "*"
  117.         LD A,(DE)
  118.         JR Z,CATTXT1
  119.         CP (HL)
  120.         JR NZ,CATTXT2
  121. CATTXT1 CP 2
  122.         JR C,CATTXT2
  123.         EXX
  124.         LD (DE),A
  125.         INC DE
  126.         EXX
  127.         INC DE
  128.         INC HL
  129.         DJNZ CATTXT3
  130.         EXX
  131.         POP BC
  132.         PUSH DE
  133.         EXX
  134.         POP HL
  135.         EX DE,HL
  136.         PUSH BC
  137.         LDI
  138.         LDI
  139.         LDI
  140.         LDI
  141.         LDI
  142.         LDI
  143.         LDI
  144.  
  145.         PUSH DE
  146.         EXX
  147.         POP DE
  148.         EXX
  149.         POP BC
  150.         JR CATTXT4
  151. CATTXT2 EXX
  152.         POP DE
  153.         EXX
  154. CATTXT4 POP DE
  155.         LD HL,16
  156.         ADD HL,DE
  157.         EX DE,HL
  158.         POP HL
  159.         LD B,#09
  160.         DEC C
  161.         JR NZ,CATTXT5
  162.         EXX
  163.         XOR A
  164.         LD (DE),A
  165.         EXX
  166.         RET
  167.