mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
1.3 KiB
90 lines
1.3 KiB
;
|
|
; USRROM TEMPLATE FOR A CUSTOM USER ROM
|
|
;
|
|
#INCLUDE "std.asm"
|
|
;
|
|
CR .EQU 0DH
|
|
LF .EQU 0AH
|
|
;
|
|
.ORG USR_LOC
|
|
;
|
|
LD SP,USR_END
|
|
;
|
|
LD HL,BOOTMSG ; INTRODUCTION
|
|
CALL PRTSTR
|
|
;
|
|
CALL CIN ; DO STUFF
|
|
;
|
|
LD B,BF_SYSRESET ; SYSTEM RESTART
|
|
LD C,BF_SYSRES_WARM ; WARM START
|
|
CALL $FFF0 ; CALL HBIOS
|
|
; RET
|
|
;
|
|
;
|
|
;
|
|
; PRINT A STRING AT ADDRESS SPECIFIED IN HL
|
|
; STRING MUST BE TERMINATED BY '$'
|
|
; USAGE:
|
|
; LD HL,MYSTR
|
|
; CALL PRTSTR
|
|
; ...
|
|
; MYSTR: .DB "HELLO$"
|
|
;
|
|
PRTSTR: LD A,(HL)
|
|
INC HL
|
|
CP '$'
|
|
RET Z
|
|
CALL COUT
|
|
JR PRTSTR
|
|
;
|
|
; OUTPUT CHARACTER IN A TO CONSOLE DEVICE
|
|
;
|
|
COUT: PUSH AF
|
|
PUSH BC
|
|
PUSH DE
|
|
PUSH HL
|
|
LD B,01H
|
|
LD C,0
|
|
LD E,A
|
|
RST 08
|
|
CALL $FFF0
|
|
POP HL
|
|
POP DE
|
|
POP BC
|
|
POP AF
|
|
RET
|
|
;
|
|
; OUTPUT CHARACTER IN A TO CONSOLE DEVICE
|
|
;
|
|
COUTE: PUSH AF
|
|
LD A,E
|
|
CALL COUT
|
|
POP AF
|
|
RET
|
|
;
|
|
; WAIT FOR A CHARACTER FROM THE CONSOLE DEVICE AND RETURN IT IN A
|
|
;
|
|
CIN: PUSH BC
|
|
PUSH DE
|
|
PUSH HL
|
|
LD B,00H
|
|
LD C,00H
|
|
RST 08
|
|
LD A,E
|
|
POP HL
|
|
POP DE
|
|
POP BC
|
|
RET
|
|
;
|
|
BOOTMSG:.DB CR,LF,CR,LF
|
|
.DB "No User ROM Installed."
|
|
.DB CR,LF,CR,LF
|
|
.DB "Press a key to return to Boot Loader.$"
|
|
;
|
|
SLACK .EQU (USR_END - $)
|
|
.FILL SLACK,00
|
|
.ECHO "User ROM space remaining: "
|
|
.ECHO SLACK
|
|
.ECHO " bytes.\n"
|
|
.END
|
|
|
|
|