mirror of
https://github.com/hsoft/collapseos.git
synced 2024-12-27 03:18:08 +11:00
pcat: begin structuring around words
This commit is contained in:
parent
85a0b87da3
commit
a72322df31
1
blk/753
1
blk/753
@ -3,6 +3,7 @@
|
|||||||
0xf4 OP1 HLT, 0xfc OP1 CLD, 0xfd OP1 STD,
|
0xf4 OP1 HLT, 0xfc OP1 CLD, 0xfd OP1 STD,
|
||||||
( no argument, jumps with relative addrs are special )
|
( no argument, jumps with relative addrs are special )
|
||||||
0xeb OP1 JMPs, 0xe9 OP1 JMPn, 0x74 OP1 JZ,
|
0xeb OP1 JMPs, 0xe9 OP1 JMPn, 0x74 OP1 JZ,
|
||||||
|
0xe8 OP1 CALLn,
|
||||||
: MOVri, SWAP 0xb0 OR A, A, ;
|
: MOVri, SWAP 0xb0 OR A, A, ;
|
||||||
: MOVxi, SWAP 0xb8 OR A, SPLITB A, A, ;
|
: MOVxi, SWAP 0xb8 OR A, SPLITB A, A, ;
|
||||||
: MOVsx, 0x8e A, SWAP 3 LSHIFT OR 0xc0 OR A, ;
|
: MOVsx, 0x8e A, SWAP 3 LSHIFT OR 0xc0 OR A, ;
|
||||||
|
7
blk/755
7
blk/755
@ -4,6 +4,7 @@
|
|||||||
: BREAK?, DUP 0x8000 AND IF
|
: BREAK?, DUP 0x8000 AND IF
|
||||||
0x7fff AND 1 ALLOT THEN, -1 ALLOT
|
0x7fff AND 1 ALLOT THEN, -1 ALLOT
|
||||||
THEN ; )
|
THEN ; )
|
||||||
: AGAIN, ( BREAK?, ) PC - 1- A, ;
|
: RPCs, PC - 1- A, ; : RPCn, PC - 2- A,, ;
|
||||||
: BWR @ AGAIN, ;
|
: AGAIN, ( BREAK?, ) RPCs, ;
|
||||||
|
( Use RPCx with appropriate JMP/CALL op. Example:
|
||||||
|
JMPs, 0x42 RPCs, or CALLn, 0x1234 RPCn, )
|
||||||
|
4
blk/756
Normal file
4
blk/756
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
: CODE ( same as CREATE, but with native word )
|
||||||
|
(entry)
|
||||||
|
23 C, ( 23 == nativeWord ) ;
|
||||||
|
: ;CODE ;
|
2
blk/812
2
blk/812
@ -6,7 +6,7 @@ JMPn, 0 A,, ( 00, main ) JMPn, 0 A,, ( 03, find )
|
|||||||
JMPn, 0 A,, ( 0e compiledWord ) JMPn, 0 A,, ( 11, pushRS )
|
JMPn, 0 A,, ( 0e compiledWord ) JMPn, 0 A,, ( 11, pushRS )
|
||||||
JMPn, 0 A,, ( 14, popRS )
|
JMPn, 0 A,, ( 14, popRS )
|
||||||
JMPn, 0 A,, ( 17, nativeWord )
|
JMPn, 0 A,, ( 17, nativeWord )
|
||||||
JMPn, 0 A,, ( 1a, next ) JMPn, 0 A,, ( 1d, chkPS )
|
JMPn, 0 A,, ( 1a, next ) JMPn, 0 A,, ( 1d, unused )
|
||||||
0 A, 0 A, ( 20, numberWord ) 0 A, 0 A, ( 22, litWord )
|
0 A, 0 A, ( 20, numberWord ) 0 A, 0 A, ( 22, litWord )
|
||||||
0 A, 0 A, ( 24, addrWord ) 0 A, 0 A, ( 26, unused )
|
0 A, 0 A, ( 24, addrWord ) 0 A, 0 A, ( 26, unused )
|
||||||
0 A, 0 A,, ( unused )
|
0 A, 0 A,, ( unused )
|
||||||
|
15
blk/813
15
blk/813
@ -1,3 +1,14 @@
|
|||||||
PC 3 - ORG @ 1+ ! ( main )
|
( BOOT DICT: There are only 3 words in the boot dict, but
|
||||||
AH 0x0e MOVri, ( print char ) AL 'X' MOVri, 0x10 INT,
|
these words' offset need to be stable, so they're part of
|
||||||
|
the "stable ABI" )
|
||||||
|
'E' A, 'X' A, 'I' A, 'T' A,
|
||||||
|
0 A,, ( prev )
|
||||||
|
4 A,
|
||||||
|
H@ XCURRENT ! ( set current tip of dict, 0x42 )
|
||||||
|
0x17 A, ( nativeWord )
|
||||||
HLT,
|
HLT,
|
||||||
|
CODE FOO
|
||||||
|
L1 BSET
|
||||||
|
AH 0x0e MOVri, ( print char ) AL 'X' MOVri, 0x10 INT,
|
||||||
|
L2 BSET JMPs, L2 @ RPCs,
|
||||||
|
;CODE
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
750 LOAD
|
750 LOAD ( 8086 asm )
|
||||||
812 813 LOADR
|
262 LOAD ( xcomp )
|
||||||
|
270 LOAD ( xcomp overrides )
|
||||||
|
812 814 LOADR
|
||||||
ORG @ 256 /MOD 2 PC! 2 PC!
|
ORG @ 256 /MOD 2 PC! 2 PC!
|
||||||
H@ 256 /MOD 2 PC! 2 PC!
|
H@ 256 /MOD 2 PC! 2 PC!
|
||||||
|
Loading…
Reference in New Issue
Block a user