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 / CPMUG082.ARK / SDNBOOT.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  2KB  |  54 lines

  1.     TITLE    'SDNBOOT -- N* SD CP/M 2.2 BOOT OF 06/19/81'
  2. ;
  3. ;  THIS ROUTINE IS READ OFF THE DISK FROM TRACK ZERO,
  4. ; SECTOR FOUR BY THE NORTH STAR SINGLE DENSITY BOOT
  5. ; PROM. IT IS RESPONSIBLE FOR READING IN THE BIOS
  6. ; AND USER ROUTINES FROM THE DISK. IT MUST THEN CALL
  7. ; THE USER INIT ROUTINE, THEN JUMP OFF TO THE BIOS
  8. ; COLD BOOT ENTRY POINT. FOR CONVENIENCE, WE PRINT
  9. ; OUT THE PRETTY COLD-BOOT SIGN-ON MESSAGE HERE TOO.
  10. ;
  11. ;  THIS ROUTINE IS LOADED INTO THE SYSTEM IMAGE AT
  12. ; 880H, SO THAT IT CAN BE WRITTEN TO THE DISK. SINCE
  13. ; NEITHER THAT ADDRESS NOR OUR LOAD ADDRESS CHANGES,
  14. ; THE DDT LOAD OFFSET IS FIXED AT 880H-2000H = 0E880H.
  15. ;
  16. BIOS:    EQU    4200H    ;BIOS INIT AND LOAD ADDR
  17.             ; IN 20K SYSTEM
  18. USER:    EQU    0A000H    ;USER INIT AND LOAD ADDR
  19. MSGOT:    EQU    USER+24    ;CONSOLE MSG OUT ROUTINE
  20. DISKIO:    EQU    0E91EH    ;PROM DISK I/O ROUTINE
  21. ;
  22.     ORG    2000H    ;PROM LOADS US HERE
  23. ;
  24. SDNBOOT: DB    0    ;CURRENT TRACK IS ZERO
  25.             ; ON UNIT 1
  26.     DB    59H,59H    ;UNITS 2 AND 3 UNACESSED
  27.     DB    1    ;CURRENTLY SELECTED UNIT IS 1
  28. ;
  29. ;  PROM JUMPS HERE AFTER LOADING US.
  30. ;
  31. BOOT:    LXI    SP,80H    ;MOVE SP TO BETTER LOCATION
  32.     MVI    A,2    ;USER AREA IS 2 SECTORS LONG
  33.     LXI    B,0001H    ;TRACK ZERO, UNIT 1
  34.     LXI    D,0201H    ;READ FROM SECTOR 2
  35.     LXI    H,USER    ;READ INTO HIGH RAM
  36.     CALL    DISKIO    ;DO THE READ
  37.     JNZ    BOOT    ;IF ERROR, TRY AGAIN
  38.     MVI    A,4    ;BIOS IS 4 SECTORS LONG
  39.     LXI    B,0001H    ;TRACK ZERO, UNIT 1
  40.     LXI    D,0501H    ;READ FROM SECTOR 5
  41.     LXI    H,BIOS    ;READ INTO HERE
  42.     CALL    DISKIO    ;DO THE READ
  43.     JNZ    BOOT    ;IF ERROR, TRY AGAIN
  44.     CALL    USER    ;CALL USER INIT ROUTINE
  45.     LXI    H,SIGNON
  46.     CALL    MSGOT    ;OUTPUT SIGNON MSG
  47.     JMP    BIOS    ;GO TO BIOS COLD BOOT
  48. ;
  49. SIGNON:    DB    0DH,0AH
  50.     DB    'North Star Single Density 20K'
  51.     DB    ' CP/M 2.2 of 06/19/81',0DH,0AH+80H
  52. ;
  53.     END
  54.