home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol041 / fdcboot.z80 < prev    next >
Text File  |  1984-04-29  |  1KB  |  82 lines

  1.         LIST    NOCOND,NOGEN
  2. ;
  3. ;
  4. LARGESW:    EQU    1        ;ONE IF MAXI DRIVE
  5. ;
  6. MEMSIZE:    EQU    64
  7. MEMSTAT:    EQU    MEMSIZE-9    ;2400 HEX OFFSET
  8. BEGINADR    EQU    MEMSTAT*1024    ;THIS IS THE START OF CPM
  9. ;
  10. CBOOT        EQU    BEGINADR+01600H    ;THIS IS THE COLD BOOT
  11. ;
  12.         ORG    0
  13. ;
  14.     ;CROMEMCO 4FDC I/O ASSIGNMENTS
  15. CSTATPORT:    EQU    00H
  16. CDATAPORT:    EQU    01H
  17. IMODEPORT:    EQU    02H
  18. IMASKPORT:    EQU    03H
  19. PARLPORT:    EQU    04H
  20. STATPORT:    EQU    30H
  21. TRAKPORT:    EQU    31H
  22. SECTPORT:    EQU    32H
  23. DATAPORT:    EQU    33H
  24. FLAGPORT:    EQU    34H
  25. BANKPORT:    EQU    40H
  26. ;
  27. START:
  28.         LD    A,01H
  29.         OUT    BANKPORT,A
  30. ;
  31. ;
  32.         LD    HL,BEGINADR    ;START OF CP/M
  33.         LD    DE,51*256+2    ;SECTOR COUNT, FIRST SECTOR
  34. ;
  35. ;            RESTORE TO TRACK ZERO
  36. ;
  37.         LD    A,21H+LARGESW*10H
  38.         OUT    FLAGPORT,A
  39.         LD    A,0FH-LARGESW*2
  40. RST0:        OUT    STATPORT,A
  41. RST1:        IN    A,FLAGPORT
  42.         RRA
  43.         JR    NC,RST1
  44.         IN    A,STATPORT
  45.         AND    A,98H
  46.         JR    NZ,START
  47. ;
  48. ;            READ ONE SECTOR
  49. ;
  50. RDI0:        LD    A,E
  51.         OUT    SECTPORT,A
  52.         LD    BC,8000H+DATAPORT
  53.         LD    A,0A1H+LARGESW*10H
  54.         OUT    FLAGPORT,A
  55.         LD    A,88H
  56.         OUT    STATPORT,A
  57. RDI1:        IN    A,FLAGPORT
  58.         RRA
  59.         JR    C,RDI3
  60.         INI
  61.         JR    NZ,RDI1
  62. RDI2:        IN    A,FLAGPORT
  63.         RRA
  64.         JR    NC,RDI2
  65. ;
  66. ;            CHECK STATUS AND READY FOR NEXT SECTOR AND TRACK
  67. ;
  68. RDI3:        IN    A,STATPORT
  69.         AND    A,9CH
  70.         JR    NZ,START    ;RETRY BOOT IF ERROR
  71.         DEC    D
  72.         JP    Z,CBOOT        ;SEE IF ALL DONE
  73.         INC    E
  74.         LD    A,E        ;INCREMENT SECTOR NUMBER
  75.         CP    A,19+LARGESW*8
  76.         JR    C,RDI0        ;JUMP IF NOT END OF TRACK
  77.         LD    E,1
  78.         LD    A,5FH-LARGESW*2    ;GO TO NEXT TRACK
  79.         JR    RST0
  80. ;
  81.         END
  82.