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 >
Wrap
Assembly Source File
|
1984-04-29
|
2KB
|
54 lines
TITLE 'SDNBOOT -- N* SD CP/M 2.2 BOOT OF 06/19/81'
;
; THIS ROUTINE IS READ OFF THE DISK FROM TRACK ZERO,
; SECTOR FOUR BY THE NORTH STAR SINGLE DENSITY BOOT
; PROM. IT IS RESPONSIBLE FOR READING IN THE BIOS
; AND USER ROUTINES FROM THE DISK. IT MUST THEN CALL
; THE USER INIT ROUTINE, THEN JUMP OFF TO THE BIOS
; COLD BOOT ENTRY POINT. FOR CONVENIENCE, WE PRINT
; OUT THE PRETTY COLD-BOOT SIGN-ON MESSAGE HERE TOO.
;
; THIS ROUTINE IS LOADED INTO THE SYSTEM IMAGE AT
; 880H, SO THAT IT CAN BE WRITTEN TO THE DISK. SINCE
; NEITHER THAT ADDRESS NOR OUR LOAD ADDRESS CHANGES,
; THE DDT LOAD OFFSET IS FIXED AT 880H-2000H = 0E880H.
;
BIOS: EQU 4200H ;BIOS INIT AND LOAD ADDR
; IN 20K SYSTEM
USER: EQU 0A000H ;USER INIT AND LOAD ADDR
MSGOT: EQU USER+24 ;CONSOLE MSG OUT ROUTINE
DISKIO: EQU 0E91EH ;PROM DISK I/O ROUTINE
;
ORG 2000H ;PROM LOADS US HERE
;
SDNBOOT: DB 0 ;CURRENT TRACK IS ZERO
; ON UNIT 1
DB 59H,59H ;UNITS 2 AND 3 UNACESSED
DB 1 ;CURRENTLY SELECTED UNIT IS 1
;
; PROM JUMPS HERE AFTER LOADING US.
;
BOOT: LXI SP,80H ;MOVE SP TO BETTER LOCATION
MVI A,2 ;USER AREA IS 2 SECTORS LONG
LXI B,0001H ;TRACK ZERO, UNIT 1
LXI D,0201H ;READ FROM SECTOR 2
LXI H,USER ;READ INTO HIGH RAM
CALL DISKIO ;DO THE READ
JNZ BOOT ;IF ERROR, TRY AGAIN
MVI A,4 ;BIOS IS 4 SECTORS LONG
LXI B,0001H ;TRACK ZERO, UNIT 1
LXI D,0501H ;READ FROM SECTOR 5
LXI H,BIOS ;READ INTO HERE
CALL DISKIO ;DO THE READ
JNZ BOOT ;IF ERROR, TRY AGAIN
CALL USER ;CALL USER INIT ROUTINE
LXI H,SIGNON
CALL MSGOT ;OUTPUT SIGNON MSG
JMP BIOS ;GO TO BIOS COLD BOOT
;
SIGNON: DB 0DH,0AH
DB 'North Star Single Density 20K'
DB ' CP/M 2.2 of 06/19/81',0DH,0AH+80H
;
END