|
|
|
@ -31,6 +31,7 @@ |
|
|
|
; THE SIZE OF CPMLDR.BIN CHANGES, SYS_SIZ MUST BE UPDATED!!! |
|
|
|
; |
|
|
|
SYS_SIZ .EQU $0F00 ; SIZE OF CPMLDR.BIN |
|
|
|
SYS_SEC .EQU 8 ; NUMBER OF SECTORS TO READ |
|
|
|
SYS_ENT .EQU $0100 ; SYSTEM (OS) ENTRY POINT ADDRESS |
|
|
|
SYS_LOC .EQU $0100 ; STARTING ADDRESS TO LOAD SYSTEM IMAGE |
|
|
|
SYS_END .EQU SYS_SIZ + SYS_LOC ; ENDING ADDRESS OF SYSTEM IMAGE |
|
|
|
@ -57,6 +58,8 @@ PT_SIZ .EQU $40 |
|
|
|
; THE FOLLOWING BOOTSTRAP CODE IS BUILT TO ASSUME IT WILL BE EXECUTED AT A STARTING |
|
|
|
; ADDRESS OF $8000. THIS CODE IS *ONLY* FOR UNA. THE ROMWBW ROM BOOTLOADER |
|
|
|
; USES THE METADATA TO LOAD THE OS DIRECTLY. |
|
|
|
; |
|
|
|
; UNA DOES NOT SUPPORT CP/M 3 THIS CODE IS NOT USED, AND COULD BE REMOVED |
|
|
|
; |
|
|
|
.ORG $8000 |
|
|
|
JR BOOT |
|
|
|
@ -80,8 +83,8 @@ BOOT: |
|
|
|
CALL PRTDOT ; PROGRESS |
|
|
|
; |
|
|
|
LD C,$42 ; UNA FUNC: READ SECTORS |
|
|
|
LD DE,$D000 ; STARTING ADDRESS FOR IMAGE |
|
|
|
LD L,22 ; READ 22 SECTORS |
|
|
|
LD DE,SYS_LOC ; STARTING ADDRESS FOR IMAGE |
|
|
|
LD L,SYS_SEC ; NUMBER OF SECTORS |
|
|
|
CALL $FFFD ; DO READ |
|
|
|
JR NZ,ERROR ; HANDLE ERROR |
|
|
|
CALL PRTDOT ; PROGRESS |
|
|
|
@ -256,7 +259,7 @@ PR_SIG .DB $5A,$A5 ; SIGNATURE GOES HERE |
|
|
|
PR_WP .DB 0 ; (1) WRITE PROTECT BOOLEAN |
|
|
|
PR_UPDSEQ .DW 0 ; (2) PREFIX UPDATE SEQUENCE NUMBER (DEPRECATED?) |
|
|
|
PR_VER .DB RMJ,RMN,RUP,RTP ; (4) OS BUILD VERSION |
|
|
|
PR_LABEL .DB "Unlabeled$$$$$$$","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!) |
|
|
|
PR_LABEL .DB "CP/M 3.0$$$$$$$$","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!) |
|
|
|
.DW 0 ; (2) DEPRECATED |
|
|
|
PR_LDLOC .DW SYS_LOC ; (2) ADDRESS TO START LOADING SYSTEM |
|
|
|
PR_LDEND .DW SYS_END ; (2) ADDRESS TO STOP LOADING SYSTEM |
|
|
|
|