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 / CPMUG015.ARK / MDGSBOOT.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  1KB  |  97 lines

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