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.master
@@ -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 0x73 + CONSTANT CPORT_MEM | |||||
SYSVARS 0xa0 + CONSTANT GRID_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 0x73 + CONSTANT CPORT_MEM | |||||
SYSVARS 0xa0 + CONSTANT GRID_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 0x73 + CONSTANT CPORT_MEM | |||||
SYSVARS 0xa0 + CONSTANT GRID_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 0x73 + CONSTANT CPORT_MEM | |||||
SYSVARS 0xa0 + CONSTANT GRID_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 0x72 + CONSTANT GRID_MEM | |||||
SYSVARS 0x75 + CONSTANT KBD_MEM | |||||
SYSVARS 0xa0 + CONSTANT LCD_MEM | |||||
SYSVARS 0xa2 + CONSTANT GRID_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 ) | ||||
@@ -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) 0x40 ( buffer size ) IN( + ; ( INBUF's end ) | |||||
: IN( 0x60 RAM+ ; ( points to INBUF ) | |||||
: 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) _ | ||||
@@ -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> | |||||
+32 IN(* +70 DRIVERS | |||||
+34 BLK@* +80 RAMEND | |||||
+30 IN> +60 INPUT BUFFER | |||||
+32 FUTURE USES +a0 DRIVERS | |||||
+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 ) | ||||