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 / CPMUG025.ARK / SBOOT24.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  2KB  |  95 lines

  1. ; TARBELL CP/M COLD START LOADER
  2. ; STANDARD VERSION OF 10-11-77
  3. ;
  4. ; THIS PROGRAM IS LOADED AT LOCATION
  5. ; 0 BY THE BOOTSTRAP PROGRAM, AND RUN.
  6. ; IT'S PURPOSE IS TO LOAD AND RUN THE MAIN
  7. ; CP/M DISK OPERATING SYSTEM AT THE TOP OF
  8. ; THE MEMORY IN USE.
  9. ;
  10. MSIZE    EQU  24        ;MEMORY SIZE IN DECIMAL KB.
  11. DCOM    EQU  0F8H
  12. DSTAT   EQU  0F8H
  13. TRACK   EQU  0F9H
  14. SECT    EQU  0FAH
  15. DDATA   EQU  0FBH
  16. WAIT    EQU  0FCH
  17. CBASE   EQU  (MSIZE-17)*1024
  18. CPMB    EQU  CBASE+2900H
  19. BOOTE   EQU  CBASE+3E00H
  20. NSECTS  EQU  51        ;NUMBER OF SECTORS.
  21.         ORG  0
  22. BOOT:   LXI  SP,100H
  23. BOOT1:  LXI  B,2
  24.         MVI  D,NSECTS
  25.         LXI  H,CPMB
  26. RBLK    MOV  A,B
  27.         OUT  DDATA
  28.         IN   DSTAT
  29.         RRC
  30.         MVI  A,1
  31.         JC   ERROR
  32.         MVI  A,13H
  33.         OUT  DCOM
  34.         IN   WAIT
  35.         ORA  A
  36.         MVI  A,1
  37.         JM   ERROR
  38.         IN   DSTAT
  39.         ANI  91H
  40.         JNZ  ERROR
  41.         MOV  A,C
  42.         CALL READ
  43. RBLK1:  JNZ  ERROR
  44.         DCR  D
  45.         JZ   BOOTE
  46.         INR  C
  47.         MOV  A,C
  48.         CPI  27
  49.         JC   RBLK2
  50.         MVI  C,1
  51.         INR  B
  52.         JMP  RBLK
  53. ;
  54. RBLK2:  MOV  A,C
  55.         CALL READ1
  56.         JMP  RBLK1
  57. ;
  58. ;
  59. READ1:  OUT  SECT
  60.         IN   DSTAT
  61.         RRC
  62.         MVI  A,1
  63.         JC   RERR
  64.         MVI  A,88H
  65.         JMP  READE
  66. ;
  67. READ:   OUT  SECT
  68.         IN   DSTAT
  69.         RRC
  70.         MVI  A,1
  71.         JC   RERR
  72.         MVI  A,8CH
  73. READE:  OUT  DCOM
  74. RLOOP:  IN   WAIT
  75.         ORA  A
  76.         JP   RDONE
  77.         IN   DDATA
  78.         MOV  M,A
  79.         INX  H
  80.         JMP  RLOOP
  81. ;
  82. RDONE:  IN   DSTAT
  83. RERR:   ANI  9DH
  84.         RET
  85. ;
  86. ;
  87. ERROR:  CMA
  88.         OUT  0FFH
  89.         HLT
  90. ;
  91. ;
  92.     ORG  7DH
  93.     JMP  0
  94.     END
  95.