continue fixing inputs

This commit is contained in:
Luxferre
2022-07-29 12:55:53 +03:00
parent 6cd8c459bb
commit 66e23c966d
3 changed files with 19 additions and 6 deletions
+8 -1
View File
@@ -7,6 +7,7 @@
%SETSCRVEC { .Control/framevec DEO2 } %SETSCRVEC { .Control/framevec DEO2 }
%INKEY { .Control/io DEI2 } %INKEY { .Control/io DEI2 }
%PXL { .Control/io DEO2 } %PXL { .Control/io DEO2 }
%PXLk { .Control/io DEO2k }
%RND { .Control/random DEI } %RND { .Control/random DEI }
%STACKTRACE { #ff .Control/random DEO } %STACKTRACE { #ff .Control/random DEO }
%DEVSTAT { .Control/status DEI } %DEVSTAT { .Control/status DEI }
@@ -16,8 +17,11 @@
( some syscall macros ) ( some syscall macros )
%HLT { #1f SYS } %HLT { #1f SYS }
( val -- )
%DBG { #20 SYS SYS } %DBG { #20 SYS SYS }
( val -- val )
%DBGBYTE { DUP DBG } %DBGBYTE { DUP DBG }
( val* -- val* )
%DBGSHORT { DUP2 SWP DBG DBG } %DBGSHORT { DUP2 SWP DBG DBG }
( input helper macros ) ( input helper macros )
@@ -41,7 +45,7 @@
( jump to label or subroutine if a particular key is pressed ) ( jump to label or subroutine if a particular key is pressed )
( label* keymask* -- ) ( label* keymask* -- )
%JMPKEY { INKEY AND2 SWP2 JCN2 } %JMPKEY { INKEY AND2 ORA DBGBYTE ROT ROT JCN2 }
%JSRKEY { INKEY AND2 SWP2 JSR2 } %JSRKEY { INKEY AND2 SWP2 JSR2 }
( misc macros ) ( misc macros )
@@ -49,3 +53,6 @@
( byte to short ) ( byte to short )
%BTS { #00 SWP } %BTS { #00 SWP }
( decrement )
%DEC { #01 SUB }
+9 -3
View File
@@ -9,12 +9,18 @@
BRK BRK
@on-frame @on-frame
DUP2 PXL PXLk
,&adv KP-A JMPKEY ;&adv KP-A JMPKEY
;&back KP-B JMPKEY
BRK BRK
&adv &adv
#fa DBG
INC INC
BRK BRK
&back
#fb DBG
DEC
BRK
@putc @putc
+2 -2
View File
@@ -120,7 +120,7 @@ function ESOPExtensions() {
var k = e.key var k = e.key
if(k in livemap) { if(k in livemap) {
var keyval = livemap[k], var keyval = livemap[k],
portnum = keyval>7 ? 3 : 2, portnum = keyval>7 ? 2 : 3,
bitmask = (~(1<<(keyval&7)))&255 bitmask = (~(1<<(keyval&7)))&255
vm.setdev(portnum, vm.getdev(portnum) & bitmask) vm.setdev(portnum, vm.getdev(portnum) & bitmask)
} }
@@ -175,7 +175,7 @@ function ESOPExtensions() {
function runSyscall(vm, buf) { function runSyscall(vm, buf) {
var call = buf[0] var call = buf[0]
if(call === 0x00) //simulate writing a byte to the debug port if(call === 0x00) //simulate writing a byte to the debug port
console.log(('[DBG] 00' + buf[1].toString(16)).slice(-2)) console.log('[DBG] ' + ('00' + buf[1].toString(16)).slice(-2))
else if(call === 0x06) { //read datetime info into 5 bytes starting from addr else if(call === 0x06) { //read datetime info into 5 bytes starting from addr
//not very optimal but a future-proof approach for now //not very optimal but a future-proof approach for now
var tm = ('00' + (0|(Date.now()/1000)).toString(16)).slice(-10).match(/.{2}/g).map(function(x){return parseInt(x, 16)}), var tm = ('00' + (0|(Date.now()/1000)).toString(16)).slice(-10).match(/.{2}/g).map(function(x){return parseInt(x, 16)}),