2020-10-24 22:06:51 -04:00
|
|
|
0xff00 CONSTANT RS_ADDR
|
|
|
|
0xfffa CONSTANT PS_ADDR
|
|
|
|
RS_ADDR 0x80 - CONSTANT SYSVARS
|
|
|
|
30 LOAD ( 8086 asm )
|
|
|
|
262 LOAD ( xcomp ) 270 LOAD ( xcomp overrides )
|
|
|
|
445 461 LOADR ( 8086 boot code )
|
|
|
|
353 LOAD ( xcomp core low )
|
|
|
|
CODE (emit) AX POPx, 1 INT, ;CODE
|
Make KEY non-blocking
... and rename it to KEY?. Then, add KEY from KEY? for its blocking
version.
I need this for an upcoming Remote Shell feature. If a Collapse OS
system remotely controls another shell, it needs to be able to poll
both the remote system and the local keyboard at the same time. A
blocking KEY is incompatible with this.
In some places, the polling mechanism doesn't make sense, so this
new KEY? always returns a character. In some places, I just haven't
implemented the mechanism yet, so I kept the old blocking code and
added a "always 1" flag as a temporary shim.
I have probably broken something, but in emulators, Collapse OS runs
fine. It's an important reminder of what will be lost with the new
"dogfooding" approach (see recent mailing list message): without
emulators, it's much harder to to sweeping changes like this without
breaking stuff.
It's fine, I don't expect many more of these core changes to the
system. It's nearly feature-complete.
2021-01-01 08:05:29 -05:00
|
|
|
CODE (key?) 2 INT, AH 0 MOVri, AX PUSHx, AX PUSHx, ;CODE
|
2020-10-24 23:00:45 -04:00
|
|
|
: COLS 80 ; : LINES 25 ;
|
|
|
|
CODE AT-XY ( x y ) BX POPx, AX POPx, 3 INT, ;CODE
|
2020-10-24 23:20:20 -04:00
|
|
|
CODE _ BX POPx, AX POPx, 4 INT, ;CODE
|
|
|
|
: EFS@ BLK( _ ;
|
|
|
|
CODE _ BX POPx, AX POPx, 5 INT, ;CODE
|
|
|
|
: EFS! BLK( _ ;
|
2020-10-24 23:33:12 -04:00
|
|
|
( 8086 port doesn't define PC@ and PC!, but test harness uses
|
|
|
|
it. Our forth binary uses INT 6 for retcode. )
|
|
|
|
CODE PC! AX POPx, ( discard ) AX POPx, 6 INT, ;CODE
|
2020-10-28 18:06:58 -04:00
|
|
|
390 LOAD ( xcomp core high )
|
2020-10-24 22:06:51 -04:00
|
|
|
(entry) _ ( Update LATEST ) PC ORG @ 8 + !
|
2020-10-24 23:20:20 -04:00
|
|
|
," BLK$ "
|
|
|
|
," ' EFS@ BLK@* ! "
|
|
|
|
," ' EFS! BLK!* ! "
|
2020-10-24 22:06:51 -04:00
|
|
|
EOT,
|
|
|
|
ORG @ 256 /MOD 2 PC! 2 PC!
|
|
|
|
H@ 256 /MOD 2 PC! 2 PC!
|