; ; USRROM TEMPLATE FOR A CUSTOM USER ROM ; #INCLUDE "std.asm" ; CR .EQU 0DH LF .EQU 0AH ; .ORG USR_LOC ; LD HL,BOOTMSG ; INTRODUCTION CALL PRTSTR CALL CIN ; DO STUFF ; ;LD A,00H ; RETURN TO ROM LOADER ;LD HL,0000H ;JP 0FFF9H 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 LD B,01H LD C,0 LD E,A RST 08 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 LD B,00H LD C,00H RST 08 LD A,E 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