Subversion Repositories pentevo

Rev

Rev 698 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1.  
  2. ;LAST UPDATE: 21.11.2013 savelij
  3.  
  4. ; ДРАЙВЕР ЭЛЕКТРОННОГО ДИСКА
  5.  
  6. ED_DRV  DW      ED_RES
  7.         DW      ED_SEEK
  8.         DW      ED_FRM
  9.         DW      ED_REC
  10.         DW      ED_RD
  11.         DW      ED_NOP
  12.         DW      ED_WR
  13.  
  14. ;-------------------------
  15. ; КОМАНДЫ НЕ ВЫПОЛНЯЮТСЯ
  16. ED_RES:
  17. ED_REC:
  18. ED_NOP
  19. ;       CALL    TST_RT
  20.         XOR     A
  21.         RET
  22.  
  23. ;-------------------------
  24. ED_SEEK: LD     A,(RQCYL)
  25.          DEC    A
  26.          LD     (ED_CYL),A
  27.          XOR    A
  28.          RET
  29.  
  30. ;-------------------------
  31. ; ВЫЧИСЛЕНИЕ АДРЕСА
  32. ED_ADR          BIT ED_INI,(IX-_TST_IS1)
  33.                 CALL NZ,ED_INIT
  34.                 BIT 7,(IX-_ED_CYL)
  35.                 JR NZ,ED_ERRA1
  36.         LD      A,(RQSECT)      ; 128 СЕКТОРОВ НА ДОРОЖКУ
  37.         RRA
  38.         LD      L,0
  39.         RR      L
  40.         OR      0C0H
  41.         LD      H,A
  42.         RET
  43.  
  44. ED_INIT:RES     ED_INI,(IX-_TST_IS1)
  45.         XOR     A
  46.         CALL    ED_PG
  47.         RST     18H
  48.         EX      AF,AF'
  49.        LD      A,0E5H
  50.        JP      ED_CLR
  51.  
  52. ;-------------------------
  53. ; ЧТЕНИЕ
  54. ED_RD:  CALL    ED_ADR          ; COPY FROM HL ...
  55.        LD      A,(ED_CYL)
  56.        CALL    ED_PG
  57.        LD      (R8_FR),A
  58.        LD      BC,128
  59.        LD      DE,(DCBUF)      ; ... TO DE 128 BYTE
  60.        RST     8
  61.        DB      3, 0FFH
  62.        EI
  63.        XOR     A
  64.        RET
  65.  
  66. ED_ERRA1: POP   AF
  67. ED_ERRA:LD      A,_ADRERR
  68.        RET
  69.  
  70. ;------------------------
  71. ; ЗАПИСЬ
  72. ED_WR:  CALL    ED_ADR          ; COPY TO HL ...
  73.        LD      A,(ED_CYL)
  74.        CALL    ED_PG
  75.        LD      (R8_TO),A
  76.        LD      BC,128
  77.        EX      DE,HL
  78.        LD      HL,(DCBUF)      ; ... FROM DE 128 BYTE
  79.        RST     8
  80.        DB      0FFH, 3
  81.        EI
  82.        XOR     A
  83.        RET
  84.  
  85. ;----------------------------
  86. ; FORMAT
  87. ED_FRM: LD      A,(RQCYL)
  88.        DEC     A
  89.                 JP M,ED_ERRA
  90.        CALL    ED_PG
  91.        RST     18H
  92.        EX      AF,AF'
  93.         LD      A,(RQBLN)
  94. ED_CLR  LD      HL,0C000H
  95.         LD      DE,0C001H
  96.         LD      BC,03FFFH
  97.         LD      (HL),A
  98.         LDIR
  99.         EX      AF,AF'
  100.        RST     18H
  101.        EI
  102.        XOR     A
  103.        RET
  104.