Datetime syscall fixed and compat macro introduced

This commit is contained in:
Luxferre
2022-07-31 18:37:56 +03:00
parent f2bad1455f
commit cf6a6e4259
4 changed files with 37 additions and 8 deletions
+6
View File
@@ -3,6 +3,8 @@
|00 @Control [ &framevec $2 &io $2 &random $1 &status $1 &sound $1 &syscall $1 ]
|c0 @DateTime [ &year $2 &month $1 &day $1 &hour $1 &minute $1 &second $1 &dotw $1 &doty $2 &dst $1 ]
( control block macros )
%SETSCRVEC { .Control/framevec DEO2 }
@@ -24,6 +26,10 @@
%DBGBYTE { DUP DBG }
( val* -- val* )
%DBGSHORT { DUP2 SWP DBG DBG }
( addr* -- addr* )
%DATETIME { DUP2 #46 SYS SWP SYS SYS }
( load date and time into #00c0 similarly to Varvara or SPARTA specs )
%DATETIME-COMPAT { #c000 #46 SYS SYS SYS }
( input helper macros )
+20
View File
@@ -75,6 +75,26 @@
INC2 ,&loop JMP
&eof POP2 JMP2r
( convert true hex short value to BCD - up to 9999 represented by #270f coded into #9999 )
( convert BCD to hex value )
( output decimal short )
@print-dec ( x y value* -- x y )
STH2 ( value* -- )
#00 ,&zero STR
#2710 ,&parse JSR
#03e8 ,&parse JSR
#0064 ,&parse JSR
#000a ,&parse JSR
,&emit JSR POP
STH2r
JMP2r
&parse DIV2k DUP ,&emit JSR MUL2 SUB2 JMP2r
&emit
DUP [ LIT &zero $1 ] #0000 EQU2 ,&skip JCN
#01 ,&zero STR DUP #30 ADD STH2r ROT ;putc STH2 JSR2 &skip POP JMP2r
( nanofont glyphs for ESOP, courtesy of Michaelangel007 )
@nanofont
+9 -6
View File
@@ -4,22 +4,25 @@
|0100
;on-frame SETSCRVEC
#10 #12
#1a #20 ( mv-x mv-y )
BRK
@on-frame
DATETIME-COMPAT ( get datetime info into #00c0 )
#10 #12 ( year-x year-y -- )
.DateTime/year LDZ2 ( year-x year-y year* -- )
;print-dec JSR2 ( mv-x mv-y year-x year-y -- )
POP2 ( mv-x mv-y -- )
;moveme ;draw-str JSR2
NIP #10 SWP ( reset x coordinate )
SWP #20 SUB SWP ( restore x coord between frames )
;&adv KP-A JMPKEY
;&back KP-B JMPKEY
BRK
&adv
#fa DBG
DEC
SWP INC DBGBYTE SWP
BRK
&back
#fb DBG
INC
SWP DEC DBGBYTE SWP
BRK
@moveme "MOVE 20 "ME! 00