From 5c908c54f4138323975ec69389b510ae5e2c4829 Mon Sep 17 00:00:00 2001 From: dimitrit Date: Sun, 10 Jan 2021 21:34:57 +0000 Subject: [PATCH] initial romwbw extensions --- figforth.asm | 13 +++++++++--- romwbw.asm | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 romwbw.asm diff --git a/figforth.asm b/figforth.asm index 403ef54..21b6403 100644 --- a/figforth.asm +++ b/figforth.asm @@ -1,4 +1,4 @@ - .TITLE Z80 fig-FORTH 1.3 a + .TITLE Z80 fig-FORTH 1.3 ; ; ; Modified frm FIG document keyed by Dennis L. Wilson 800907 @@ -2805,7 +2805,7 @@ COLD: .WORD DOCOL .WORD CLD2-$ .WORD PDOTQ .BYTE 7 - .TEXT "No file" + .TEXT "No File" .WORD BYE CLD2: .WORD ABORT ; @@ -3227,10 +3227,17 @@ PTSTO: .WORD $+2 .EJECT #INCLUDE CONPRTIO.ASM .EJECT +#IFDEF ROMWBW +#INCLUDE ROMWBW.ASM +PREVNFA .EQU STIME-8 +#ELSE +PREVNFA .EQU ARROW-6 +#ENDIF + .EJECT ; .BYTE 0C1H ; ' (tick) .BYTE 0A7H - .WORD ARROW-6 + .WORD PREVNFA TICK: .WORD DOCOL .WORD DFIND .WORD ZEQU diff --git a/romwbw.asm b/romwbw.asm new file mode 100644 index 0000000..6c17275 --- /dev/null +++ b/romwbw.asm @@ -0,0 +1,58 @@ +; RomWBW extensions +; +; Last update: +; +; 200110 - initial version +; +; +; RomWBW FUNCTIONS +; +CIOIN .EQU 00H ; character input +CIOIST .EQU 02H ; character input status +; +RTCGETTIM .EQU 20H ; rtc get time +RTCSETTIM .EQU 21H ; rtc set time +; +; +#DEFINE HBIOS RST 08 +; +; +; +TBUF .FILL 6,0 +; +; ROMWBW LOW LEVEL ROUTINES +; + .BYTE 84H ; TIME ( -- addr ) + .TEXT "TIM" ; Get the RTC time and leave the address of the + .BYTE 'E'+$80 ; 6 byte date/time buffer, YMDHMS. Each byte is + .WORD ARROW-6 ; BCD encoded. +TIME: .WORD $+2 + EXX + PUSH BC + LD HL,TBUF + LD B,RTCGETTIM + HBIOS + POP BC + EXX + LD HL,TBUF + JHPUSH +; + .BYTE 85H ; STIME ( addr -- ) + .TEXT "STIM" ; Set the RTC time. addr is the address of the + .BYTE 'E'+$80 ; 6 byte date/time buffer, YMDHMS. Each byte is + .WORD TIME-7 ; BCD encoded. +STIME .WORD $+2 + EXX + POP HL + PUSH BC + LD B,RTCSETTIM + HBIOS + POP BC + EXX + JNEXT +; +; ROMWBW HIGH LEVEL ROUTINES +; + +; +; \ No newline at end of file