mirror of
https://github.com/hsoft/collapseos.git
synced 2024-11-23 15:58:05 +11:00
Integrate RDLN input buffer into sysvars
In the beginning of Collapse OS' Forth version, the readline sub- system was optional. This is why we had this separate RDLN$ routine and that the input buffer was allocated at boot time. It's been a while since the RDLN system has been made mandatory, but we still paid the complexity tax of this separation. Not anymore.
This commit is contained in:
parent
64f0f6716e
commit
d09de0a0d3
@ -75,7 +75,7 @@ CODE AT-XY ( x y )
|
|||||||
( ----- 612 )
|
( ----- 612 )
|
||||||
0xff00 CONSTANT RS_ADDR
|
0xff00 CONSTANT RS_ADDR
|
||||||
0xfffa CONSTANT PS_ADDR
|
0xfffa CONSTANT PS_ADDR
|
||||||
RS_ADDR 0x80 - CONSTANT SYSVARS
|
RS_ADDR 0xa0 - CONSTANT SYSVARS
|
||||||
30 LOAD ( 8086 asm )
|
30 LOAD ( 8086 asm )
|
||||||
262 LOAD ( xcomp ) 270 LOAD ( xcomp overrides )
|
262 LOAD ( xcomp ) 270 LOAD ( xcomp overrides )
|
||||||
445 461 LOADR ( 8086 boot code )
|
445 461 LOADR ( 8086 boot code )
|
||||||
|
@ -71,7 +71,7 @@ CODE SIOB>
|
|||||||
( ----- 619 )
|
( ----- 619 )
|
||||||
( RC2014 classic with MC6850 )
|
( RC2014 classic with MC6850 )
|
||||||
0xff00 CONSTANT RS_ADDR 0xfffa CONSTANT PS_ADDR
|
0xff00 CONSTANT RS_ADDR 0xfffa CONSTANT PS_ADDR
|
||||||
RS_ADDR 0x80 - CONSTANT SYSVARS
|
RS_ADDR 0xa0 - CONSTANT SYSVARS
|
||||||
0x8000 CONSTANT HERESTART
|
0x8000 CONSTANT HERESTART
|
||||||
0x80 CONSTANT 6850_CTL 0x81 CONSTANT 6850_IO
|
0x80 CONSTANT 6850_CTL 0x81 CONSTANT 6850_IO
|
||||||
4 CONSTANT SPI_DATA 5 CONSTANT SPI_CTL 1 CONSTANT SDC_DEVID
|
4 CONSTANT SPI_DATA 5 CONSTANT SPI_CTL 1 CONSTANT SDC_DEVID
|
||||||
@ -88,7 +88,7 @@ PC ORG @ 8 + ! ( Update LATEST )
|
|||||||
( ----- 620 )
|
( ----- 620 )
|
||||||
( RC2014 classic with SIO )
|
( RC2014 classic with SIO )
|
||||||
0xff00 CONSTANT RS_ADDR 0xfffa CONSTANT PS_ADDR
|
0xff00 CONSTANT RS_ADDR 0xfffa CONSTANT PS_ADDR
|
||||||
RS_ADDR 0x80 - CONSTANT SYSVARS
|
RS_ADDR 0xa0 - CONSTANT SYSVARS
|
||||||
0x8000 CONSTANT HERESTART
|
0x8000 CONSTANT HERESTART
|
||||||
0x80 CONSTANT SIOA_CTL 0x81 CONSTANT SIOA_DATA
|
0x80 CONSTANT SIOA_CTL 0x81 CONSTANT SIOA_DATA
|
||||||
0x82 CONSTANT SIOB_CTL 0x83 CONSTANT SIOB_DATA
|
0x82 CONSTANT SIOB_CTL 0x83 CONSTANT SIOB_DATA
|
||||||
|
@ -2,16 +2,16 @@
|
|||||||
0xdd00 CONSTANT RS_ADDR
|
0xdd00 CONSTANT RS_ADDR
|
||||||
( Memory register at the end of RAM. Must not overwrite )
|
( Memory register at the end of RAM. Must not overwrite )
|
||||||
0xddca CONSTANT PS_ADDR
|
0xddca CONSTANT PS_ADDR
|
||||||
RS_ADDR 0x80 - CONSTANT SYSVARS
|
RS_ADDR 0xb0 - CONSTANT SYSVARS
|
||||||
0xc000 CONSTANT HERESTART
|
0xc000 CONSTANT HERESTART
|
||||||
0xbf CONSTANT TMS_CTLPORT
|
0xbf CONSTANT TMS_CTLPORT
|
||||||
0xbe CONSTANT TMS_DATAPORT
|
0xbe CONSTANT TMS_DATAPORT
|
||||||
SYSVARS 0x70 + CONSTANT GRID_MEM
|
SYSVARS 0xa0 + CONSTANT GRID_MEM
|
||||||
SYSVARS 0x73 + CONSTANT CPORT_MEM
|
SYSVARS 0xa3 + CONSTANT CPORT_MEM
|
||||||
0x3f CONSTANT CPORT_CTL
|
0x3f CONSTANT CPORT_CTL
|
||||||
0xdc CONSTANT CPORT_D1
|
0xdc CONSTANT CPORT_D1
|
||||||
0xdd CONSTANT CPORT_D2
|
0xdd CONSTANT CPORT_D2
|
||||||
SYSVARS 0x74 + CONSTANT PAD_MEM
|
SYSVARS 0xa4 + CONSTANT PAD_MEM
|
||||||
5 LOAD ( z80 assembler )
|
5 LOAD ( z80 assembler )
|
||||||
262 LOAD ( xcomp )
|
262 LOAD ( xcomp )
|
||||||
524 LOAD ( font compiler )
|
524 LOAD ( font compiler )
|
||||||
|
@ -3,16 +3,16 @@
|
|||||||
0xdd00 CONSTANT RS_ADDR
|
0xdd00 CONSTANT RS_ADDR
|
||||||
( Memory register at the end of RAM. Must not overwrite )
|
( Memory register at the end of RAM. Must not overwrite )
|
||||||
0xddca CONSTANT PS_ADDR
|
0xddca CONSTANT PS_ADDR
|
||||||
RS_ADDR 0x80 - CONSTANT SYSVARS
|
RS_ADDR 0xb0 - CONSTANT SYSVARS
|
||||||
0xc000 CONSTANT HERESTART
|
0xc000 CONSTANT HERESTART
|
||||||
0xbf CONSTANT TMS_CTLPORT
|
0xbf CONSTANT TMS_CTLPORT
|
||||||
0xbe CONSTANT TMS_DATAPORT
|
0xbe CONSTANT TMS_DATAPORT
|
||||||
SYSVARS 0x70 + CONSTANT GRID_MEM
|
SYSVARS 0xa0 + CONSTANT GRID_MEM
|
||||||
SYSVARS 0x73 + CONSTANT CPORT_MEM
|
SYSVARS 0xa3 + CONSTANT CPORT_MEM
|
||||||
0x3f CONSTANT CPORT_CTL
|
0x3f CONSTANT CPORT_CTL
|
||||||
0xdc CONSTANT CPORT_D1
|
0xdc CONSTANT CPORT_D1
|
||||||
0xdd CONSTANT CPORT_D2
|
0xdd CONSTANT CPORT_D2
|
||||||
SYSVARS 0x74 + CONSTANT PS2_MEM
|
SYSVARS 0xa4 + CONSTANT PS2_MEM
|
||||||
5 LOAD ( z80 assembler )
|
5 LOAD ( z80 assembler )
|
||||||
262 LOAD ( xcomp )
|
262 LOAD ( xcomp )
|
||||||
524 LOAD ( font compiler )
|
524 LOAD ( font compiler )
|
||||||
|
@ -4,16 +4,16 @@
|
|||||||
0xdd00 CONSTANT RS_ADDR
|
0xdd00 CONSTANT RS_ADDR
|
||||||
( Memory register at the end of RAM. Must not overwrite )
|
( Memory register at the end of RAM. Must not overwrite )
|
||||||
0xddca CONSTANT PS_ADDR
|
0xddca CONSTANT PS_ADDR
|
||||||
RS_ADDR 0x80 - CONSTANT SYSVARS
|
RS_ADDR 0xb0 - CONSTANT SYSVARS
|
||||||
0xc000 CONSTANT HERESTART
|
0xc000 CONSTANT HERESTART
|
||||||
0xbf CONSTANT TMS_CTLPORT
|
0xbf CONSTANT TMS_CTLPORT
|
||||||
0xbe CONSTANT TMS_DATAPORT
|
0xbe CONSTANT TMS_DATAPORT
|
||||||
SYSVARS 0x70 + CONSTANT GRID_MEM
|
SYSVARS 0xa0 + CONSTANT GRID_MEM
|
||||||
SYSVARS 0x73 + CONSTANT CPORT_MEM
|
SYSVARS 0xa3 + CONSTANT CPORT_MEM
|
||||||
0x3f CONSTANT CPORT_CTL
|
0x3f CONSTANT CPORT_CTL
|
||||||
0xdc CONSTANT CPORT_D1
|
0xdc CONSTANT CPORT_D1
|
||||||
0xdd CONSTANT CPORT_D2
|
0xdd CONSTANT CPORT_D2
|
||||||
SYSVARS 0x74 + CONSTANT PS2_MEM
|
SYSVARS 0xa4 + CONSTANT PS2_MEM
|
||||||
5 LOAD ( z80 assembler )
|
5 LOAD ( z80 assembler )
|
||||||
262 LOAD ( xcomp )
|
262 LOAD ( xcomp )
|
||||||
524 LOAD ( font compiler )
|
524 LOAD ( font compiler )
|
||||||
|
@ -4,16 +4,16 @@
|
|||||||
0xdd00 CONSTANT RS_ADDR
|
0xdd00 CONSTANT RS_ADDR
|
||||||
( Memory register at the end of RAM. Must not overwrite )
|
( Memory register at the end of RAM. Must not overwrite )
|
||||||
0xddca CONSTANT PS_ADDR
|
0xddca CONSTANT PS_ADDR
|
||||||
RS_ADDR 0x80 - CONSTANT SYSVARS
|
RS_ADDR 0xb0 - CONSTANT SYSVARS
|
||||||
0xc000 CONSTANT HERESTART
|
0xc000 CONSTANT HERESTART
|
||||||
0xbf CONSTANT TMS_CTLPORT
|
0xbf CONSTANT TMS_CTLPORT
|
||||||
0xbe CONSTANT TMS_DATAPORT
|
0xbe CONSTANT TMS_DATAPORT
|
||||||
SYSVARS 0x70 + CONSTANT GRID_MEM
|
SYSVARS 0xa0 + CONSTANT GRID_MEM
|
||||||
SYSVARS 0x73 + CONSTANT CPORT_MEM
|
SYSVARS 0xa3 + CONSTANT CPORT_MEM
|
||||||
0x3f CONSTANT CPORT_CTL
|
0x3f CONSTANT CPORT_CTL
|
||||||
0xdc CONSTANT CPORT_D1
|
0xdc CONSTANT CPORT_D1
|
||||||
0xdd CONSTANT CPORT_D2
|
0xdd CONSTANT CPORT_D2
|
||||||
SYSVARS 0x74 + CONSTANT PS2_MEM
|
SYSVARS 0xa4 + CONSTANT PS2_MEM
|
||||||
5 LOAD ( z80 assembler )
|
5 LOAD ( z80 assembler )
|
||||||
262 LOAD ( xcomp )
|
262 LOAD ( xcomp )
|
||||||
523 LOAD ( font compiler )
|
523 LOAD ( font compiler )
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
0xbf00 CONSTANT RS_ADDR
|
0xbf00 CONSTANT RS_ADDR
|
||||||
0xbffa CONSTANT PS_ADDR
|
0xbffa CONSTANT PS_ADDR
|
||||||
RS_ADDR 0x80 - CONSTANT SYSVARS
|
RS_ADDR 0xb0 - CONSTANT SYSVARS
|
||||||
0x8000 CONSTANT HERESTART
|
0x8000 CONSTANT HERESTART
|
||||||
SYSVARS 0x70 + CONSTANT LCD_MEM
|
SYSVARS 0xa0 + CONSTANT LCD_MEM
|
||||||
SYSVARS 0x72 + CONSTANT GRID_MEM
|
SYSVARS 0xa2 + CONSTANT GRID_MEM
|
||||||
SYSVARS 0x75 + CONSTANT KBD_MEM
|
SYSVARS 0xa5 + CONSTANT KBD_MEM
|
||||||
0x01 CONSTANT KBD_PORT
|
0x01 CONSTANT KBD_PORT
|
||||||
5 LOAD ( z80 assembler )
|
5 LOAD ( z80 assembler )
|
||||||
262 LOAD ( xcomp )
|
262 LOAD ( xcomp )
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
0xff00 CONSTANT RS_ADDR
|
0xff00 CONSTANT RS_ADDR
|
||||||
0xfffa CONSTANT PS_ADDR
|
0xfffa CONSTANT PS_ADDR
|
||||||
RS_ADDR 0x80 - CONSTANT SYSVARS
|
RS_ADDR 0xa0 - CONSTANT SYSVARS
|
||||||
0 CONSTANT HERESTART
|
0 CONSTANT HERESTART
|
||||||
5 LOAD ( z80 assembler )
|
5 LOAD ( z80 assembler )
|
||||||
262 LOAD ( xcomp )
|
262 LOAD ( xcomp )
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
0xff00 CONSTANT RS_ADDR 0xfffa CONSTANT PS_ADDR
|
0xff00 CONSTANT RS_ADDR 0xfffa CONSTANT PS_ADDR
|
||||||
RS_ADDR 0x80 - CONSTANT SYSVARS
|
RS_ADDR 0xa0 - CONSTANT SYSVARS
|
||||||
0 CONSTANT HERESTART
|
0 CONSTANT HERESTART
|
||||||
5 LOAD ( z80 assembler )
|
5 LOAD ( z80 assembler )
|
||||||
262 LOAD ( xcomp )
|
262 LOAD ( xcomp )
|
||||||
|
23
blk.fs
23
blk.fs
@ -1682,14 +1682,13 @@ with "390 LOAD"
|
|||||||
: H@ HERE @ ;
|
: H@ HERE @ ;
|
||||||
: FIND ( w -- a f ) CURRENT @ SWAP _find ;
|
: FIND ( w -- a f ) CURRENT @ SWAP _find ;
|
||||||
: IN> 0x30 RAM+ ; ( current position in INBUF )
|
: IN> 0x30 RAM+ ; ( current position in INBUF )
|
||||||
: IN( 0x32 RAM+ @ ; ( points to INBUF )
|
: IN( 0x60 RAM+ ; ( points to INBUF )
|
||||||
: IN) 0x40 ( buffer size ) IN( + ; ( INBUF's end )
|
|
||||||
: IN$ 0 IN( DUP IN> ! ! ; ( flush input buffer )
|
: IN$ 0 IN( DUP IN> ! ! ; ( flush input buffer )
|
||||||
: QUIT
|
: QUIT
|
||||||
(resRS) 0 0x08 RAM+ ! ( C<* override ) IN$
|
(resRS) 0 0x08 RAM+ ! ( C<* override ) IN$
|
||||||
LIT" (main)" FIND DROP EXECUTE
|
LIT" (main)" FIND DROP EXECUTE
|
||||||
;
|
;
|
||||||
1 33 LOADR+
|
1 31 LOADR+
|
||||||
( ----- 354 )
|
( ----- 354 )
|
||||||
: ABORT (resSP) QUIT ;
|
: ABORT (resSP) QUIT ;
|
||||||
: = CMP NOT ; : < CMP -1 = ; : > CMP 1 = ;
|
: = CMP NOT ; : < CMP -1 = ; : > CMP 1 = ;
|
||||||
@ -1978,7 +1977,7 @@ SYSVARS 0x55 + :** KEY?
|
|||||||
: RDLN ( Read 1 line in input buff and make IN> point to it )
|
: RDLN ( Read 1 line in input buff and make IN> point to it )
|
||||||
IN$ BEGIN
|
IN$ BEGIN
|
||||||
( buffer overflow? same as if we typed a newline )
|
( buffer overflow? same as if we typed a newline )
|
||||||
IN> @ IN) 1- = IF CR ELSE KEY THEN ( c )
|
IN> @ IN( - 0x3e = IF CR ELSE KEY THEN ( c )
|
||||||
DUP BS? IF
|
DUP BS? IF
|
||||||
IN> @ IN( > IF -1 IN> +! BS EMIT THEN SPC> BS EMIT
|
IN> @ IN( > IF -1 IN> +! BS EMIT THEN SPC> BS EMIT
|
||||||
ELSE DUP LF = IF DROP CR THEN ( same as CR )
|
ELSE DUP LF = IF DROP CR THEN ( same as CR )
|
||||||
@ -1996,13 +1995,6 @@ SYSVARS 0x55 + :** KEY?
|
|||||||
( update C<? flag )
|
( update C<? flag )
|
||||||
IN> @ C@ 0 > 0x06 RAM+ ! ( 06 == C<? ) ;
|
IN> @ C@ 0 > 0x06 RAM+ ! ( 06 == C<? ) ;
|
||||||
( ----- 381 )
|
( ----- 381 )
|
||||||
( Initializes the readln subsystem )
|
|
||||||
: RDLN$
|
|
||||||
H@ 0x32 ( IN(* ) RAM+ !
|
|
||||||
IN) IN( - ALLOT IN$
|
|
||||||
['] RDLN< ['] C<* **!
|
|
||||||
1 0x06 RAM+ ! ( 06 == C<? ) ;
|
|
||||||
( ----- 382 )
|
|
||||||
: LIST
|
: LIST
|
||||||
BLK@
|
BLK@
|
||||||
16 0 DO
|
16 0 DO
|
||||||
@ -2012,7 +2004,7 @@ SYSVARS 0x55 + :** KEY?
|
|||||||
LOOP
|
LOOP
|
||||||
NL>
|
NL>
|
||||||
LOOP ;
|
LOOP ;
|
||||||
( ----- 383 )
|
( ----- 382 )
|
||||||
: INTERPRET
|
: INTERPRET
|
||||||
BEGIN
|
BEGIN
|
||||||
WORD DUP @ 0x0401 = ( EOT ) IF DROP EXIT THEN
|
WORD DUP @ 0x0401 = ( EOT ) IF DROP EXIT THEN
|
||||||
@ -2028,7 +2020,7 @@ SYSVARS 0x55 + :** KEY?
|
|||||||
is to check whether we're restoring to "_", the word above.
|
is to check whether we're restoring to "_", the word above.
|
||||||
if yes, then we're in a nested load. Also, the 1 in 0x06 is
|
if yes, then we're in a nested load. Also, the 1 in 0x06 is
|
||||||
to avoid tons of "ok" displays. )
|
to avoid tons of "ok" displays. )
|
||||||
( ----- 384 )
|
( ----- 383 )
|
||||||
: LOAD
|
: LOAD
|
||||||
BLK> @ >R ( save restorable variables to RSP )
|
BLK> @ >R ( save restorable variables to RSP )
|
||||||
0x08 RAM+ @ >R ( 08 == C<* override )
|
0x08 RAM+ @ >R ( 08 == C<* override )
|
||||||
@ -2045,7 +2037,7 @@ SYSVARS 0x55 + :** KEY?
|
|||||||
ELSE ( not nested )
|
ELSE ( not nested )
|
||||||
R> 0x08 RAM+ ! R> DROP ( BLK> )
|
R> 0x08 RAM+ ! R> DROP ( BLK> )
|
||||||
THEN ;
|
THEN ;
|
||||||
( ----- 385 )
|
( ----- 384 )
|
||||||
: LOAD+ BLK> @ + LOAD ;
|
: LOAD+ BLK> @ + LOAD ;
|
||||||
( b1 b2 -- )
|
( b1 b2 -- )
|
||||||
: LOADR 1+ SWAP DO I DUP . SPC> LOAD LOOP ;
|
: LOADR 1+ SWAP DO I DUP . SPC> LOAD LOOP ;
|
||||||
@ -2062,7 +2054,8 @@ SYSVARS 0x55 + :** KEY?
|
|||||||
['] (boot<) ['] C<* **!
|
['] (boot<) ['] C<* **!
|
||||||
( boot< always has a char waiting. 06 == C<?* )
|
( boot< always has a char waiting. 06 == C<?* )
|
||||||
1 0x06 RAM+ ! INTERPRET
|
1 0x06 RAM+ ! INTERPRET
|
||||||
RDLN$ LIT" _sys" [entry]
|
['] RDLN< ['] C<* **! IN$
|
||||||
|
LIT" _sys" [entry]
|
||||||
LIT" Collapse OS" STYPE NL> (main) ;
|
LIT" Collapse OS" STYPE NL> (main) ;
|
||||||
XCURRENT @ _xapply ORG @ 0x04 ( stable ABI BOOT ) + !
|
XCURRENT @ _xapply ORG @ 0x04 ( stable ABI BOOT ) + !
|
||||||
1 4 LOADR+
|
1 4 LOADR+
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
binaries. )
|
binaries. )
|
||||||
0xff00 CONSTANT RS_ADDR
|
0xff00 CONSTANT RS_ADDR
|
||||||
0xfffa CONSTANT PS_ADDR
|
0xfffa CONSTANT PS_ADDR
|
||||||
RS_ADDR 0x80 - CONSTANT SYSVARS
|
RS_ADDR 0xb0 - CONSTANT SYSVARS
|
||||||
0 CONSTANT HERESTART
|
0 CONSTANT HERESTART
|
||||||
: CODE ( natidx -- ) (entry) 0 C, C, ;
|
: CODE ( natidx -- ) (entry) 0 C, C, ;
|
||||||
VARIABLE ORG
|
VARIABLE ORG
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
DROP COLS /MOD 6 PC! ( y ) 5 PC! ( x ) ;
|
DROP COLS /MOD 6 PC! ( y ) 5 PC! ( x ) ;
|
||||||
: CELL! ( c pos -- ) 0 CURSOR! 0 PC! ;
|
: CELL! ( c pos -- ) 0 CURSOR! 0 PC! ;
|
||||||
|
|
||||||
SYSVARS 0x70 + CONSTANT GRID_MEM
|
SYSVARS 0xa0 + CONSTANT GRID_MEM
|
||||||
402 403 LOADR ( Grid )
|
402 403 LOADR ( Grid )
|
||||||
390 LOAD ( xcomp core high )
|
390 LOAD ( xcomp core high )
|
||||||
(entry) _
|
(entry) _
|
||||||
|
BIN
cvm/stage.bin
BIN
cvm/stage.bin
Binary file not shown.
2
cvm/vm.h
2
cvm/vm.h
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#define SP_ADDR 0xffff
|
#define SP_ADDR 0xffff
|
||||||
#define RS_ADDR 0xff00
|
#define RS_ADDR 0xff00
|
||||||
#define SYSVARS RS_ADDR-0x80
|
#define SYSVARS RS_ADDR-0xb0
|
||||||
#define MEMSIZE 0x10000
|
#define MEMSIZE 0x10000
|
||||||
|
|
||||||
typedef uint8_t byte;
|
typedef uint8_t byte;
|
||||||
|
@ -68,7 +68,7 @@ First, we need a "(ps2kc)" routine (see doc/protocol.txt). In
|
|||||||
this case, it's easy, it's ": (ps2kc) 8 PC@ ;". Then, we can
|
this case, it's easy, it's ": (ps2kc) 8 PC@ ;". Then, we can
|
||||||
load PS/2 subsystem. You add "411 414 LOADR". Then, at
|
load PS/2 subsystem. You add "411 414 LOADR". Then, at
|
||||||
initialization, you add "PS2$". You also need to define PS2_MEM
|
initialization, you add "PS2$". You also need to define PS2_MEM
|
||||||
at the top. You can probably use "SYSVARS + 0x7a".
|
at the top. You can probably use "SYSVARS + 0xaa".
|
||||||
|
|
||||||
The PS/2 subsystem provides "(key)" from "(ps2kc)".
|
The PS/2 subsystem provides "(key)" from "(ps2kc)".
|
||||||
|
|
||||||
|
@ -113,7 +113,7 @@ it with /cvm/avra.sh.
|
|||||||
|
|
||||||
We start with the base SMS xcomp and add a few things:
|
We start with the base SMS xcomp and add a few things:
|
||||||
|
|
||||||
1. at the top: "SYSVARS 0x72 + CONSTANT PS2_MEM"
|
1. at the top: "SYSVARS 0xa2 + CONSTANT PS2_MEM"
|
||||||
2. After VDP load: "621 LOAD : (ps2kc) (ps2kcB) ;" (that binds
|
2. After VDP load: "621 LOAD : (ps2kc) (ps2kcB) ;" (that binds
|
||||||
us to port B)
|
us to port B)
|
||||||
3. Right after: "411 414 LOADR" (that gives us "(key)")
|
3. Right after: "411 414 LOADR" (that gives us "(key)")
|
||||||
|
@ -153,6 +153,9 @@ fact, they're mostly referred to directly as their numerical
|
|||||||
offset along with a comment indicating what this offset refers
|
offset along with a comment indicating what this offset refers
|
||||||
to.
|
to.
|
||||||
|
|
||||||
|
SYSVARS occupy 0xa0 bytes in memory in addition to driver mem-
|
||||||
|
ory, which typically follows SYSVARS.
|
||||||
|
|
||||||
This system is a bit fragile because every time we change those
|
This system is a bit fragile because every time we change those
|
||||||
offsets, we have to be careful to adjust all system variables
|
offsets, we have to be careful to adjust all system variables
|
||||||
offsets, but thankfully, there aren't many system variables.
|
offsets, but thankfully, there aren't many system variables.
|
||||||
@ -167,9 +170,8 @@ SYSVARS FUTURE USES +3c BLK(*
|
|||||||
+0c C<* +53 EMIT ialias
|
+0c C<* +53 EMIT ialias
|
||||||
+0e WORDBUF +55 KEY? ialias
|
+0e WORDBUF +55 KEY? ialias
|
||||||
+2e BOOT C< PTR +57 FUTURE USES
|
+2e BOOT C< PTR +57 FUTURE USES
|
||||||
+30 IN>
|
+30 IN> +60 INPUT BUFFER
|
||||||
+32 IN(* +70 DRIVERS
|
+32 FUTURE USES +a0 DRIVERS
|
||||||
+34 BLK@* +80 RAMEND
|
|
||||||
+36 BLK!*
|
+36 BLK!*
|
||||||
+38 BLK>
|
+38 BLK>
|
||||||
+3a BLKDTY
|
+3a BLKDTY
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
0xff00 CONSTANT RS_ADDR
|
0xff00 CONSTANT RS_ADDR
|
||||||
0xfffa CONSTANT PS_ADDR
|
0xfffa CONSTANT PS_ADDR
|
||||||
RS_ADDR 0x80 - CONSTANT SYSVARS
|
RS_ADDR 0xa0 - CONSTANT SYSVARS
|
||||||
30 LOAD ( 8086 asm )
|
30 LOAD ( 8086 asm )
|
||||||
262 LOAD ( xcomp ) 270 LOAD ( xcomp overrides )
|
262 LOAD ( xcomp ) 270 LOAD ( xcomp overrides )
|
||||||
445 461 LOADR ( 8086 boot code )
|
445 461 LOADR ( 8086 boot code )
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
0xff00 CONSTANT RS_ADDR
|
0xff00 CONSTANT RS_ADDR
|
||||||
0xfffa CONSTANT PS_ADDR
|
0xfffa CONSTANT PS_ADDR
|
||||||
RS_ADDR 0x80 - CONSTANT SYSVARS
|
RS_ADDR 0xa0 - CONSTANT SYSVARS
|
||||||
0 CONSTANT HERESTART
|
0 CONSTANT HERESTART
|
||||||
5 LOAD ( z80 assembler )
|
5 LOAD ( z80 assembler )
|
||||||
262 LOAD ( xcomp )
|
262 LOAD ( xcomp )
|
||||||
|
Loading…
Reference in New Issue
Block a user