home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG049.ARK / 4FDCBOOT.Z80 < prev    next >
Text File  |  1984-04-29  |  1KB  |  80 lines

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