mirror of
https://github.com/hsoft/collapseos.git
synced 2024-11-26 10:38:07 +11:00
Compare commits
2 Commits
a92864a595
...
bc8144b4be
Author | SHA1 | Date | |
---|---|---|---|
|
bc8144b4be | ||
|
49979404a5 |
2
blk/285
2
blk/285
@ -1,7 +1,7 @@
|
||||
CODE (?br) ( 0x67 )
|
||||
HL POPqq,
|
||||
HLZ,
|
||||
JRZ, L2 BWR ( BR + 2. False, branch )
|
||||
JRZ, L2 BWR ( br + 1. False, branch )
|
||||
L1 BSET ( loop will jump here )
|
||||
( True, skip next 2 bytes and don't branch )
|
||||
IY INCss, IY INCss,
|
||||
|
3
blk/754
3
blk/754
@ -2,4 +2,5 @@
|
||||
0x31 OPrr XORxx, 0x30 OPrr XORrr,
|
||||
0x88 OPrr MOVrr, 0x89 OPrr MOVxx, 0x28 OPrr SUBrr,
|
||||
0x29 OPrr SUBxx, 0x08 OPrr ORrr, 0x09 OPrr ORxx,
|
||||
0x3a OPrr CMPrr, 0x3b OPrr CMPxx,
|
||||
0x3a OPrr CMPrr, 0x3b OPrr CMPxx, 0x00 OPrr ADDrr,
|
||||
0x01 OPrr ADDxx,
|
||||
|
21
blk/813
21
blk/813
@ -1,15 +1,16 @@
|
||||
( BOOT DICT: There are only 3 words in the boot dict, but
|
||||
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 )
|
||||
'E' A, 'X' A, 'I' A, 'T' A, 0 A,, ( prev ) 4 A, ( len )
|
||||
H@ XCURRENT ! ( set current tip of dict, 0x42 )
|
||||
0x17 A, ( nativeWord )
|
||||
DX [BP] 0 MOVx[]+, BP DECx, BP DECx, ( popRS )
|
||||
;CODE NOP,
|
||||
CODE (br) ( 0x53 ) L2 BSET ( used in br? )
|
||||
DI DX MOVxx, DI [DI] MOVx[], DX DI ADDxx,
|
||||
;CODE NOP, NOP,
|
||||
CODE (br?) ( 0x67 )
|
||||
AX POPx, AX AX ORxx, JZ, L2 @ RPCs, ( False, branch )
|
||||
( True, skip next 2 bytes and don't branch )
|
||||
DX INCx, DX INCx,
|
||||
;CODE
|
||||
CODE BYE BEGIN, JMPs, AGAIN, ;CODE
|
||||
CODE FOO
|
||||
AH 0x0e MOVri, ( print char ) AL 'X' MOVri, 0x10 INT,
|
||||
;CODE
|
||||
: BAR FOO FOO ; : BAZ BAR FOO BYE ;
|
||||
|
19
blk/814
19
blk/814
@ -1,14 +1,5 @@
|
||||
PC 0x1d - ORG @ 0x1b + ! ( next )
|
||||
DI DX MOVxx, ( <-- IP ) DX INCx, DX INCx,
|
||||
DI [DI] MOVx[], ( wordref )
|
||||
( continue to execute )
|
||||
L1 BSET PC 0x36 - ORG @ 0x34 + ! ( execute -- DI -> wordref )
|
||||
AH AH XORrr, AL [DI] MOVr[],
|
||||
DI INCx, ( PFA )
|
||||
AX JMPr,
|
||||
|
||||
PC 0x11 - ORG @ 0x0f + ! ( compiledWord -- DI -> PFA )
|
||||
BP INCx, BP INCx, [BP] 0 DX MOV[]+x, ( pushRS )
|
||||
DX DI MOVxx, DX INCx, DX INCx, ( --> IP )
|
||||
DI [DI] MOVx[],
|
||||
JMPs, L1 @ RPCs,
|
||||
PC ORG @ 0x20 + ! ( numberWord )
|
||||
PC ORG @ 0x24 + ! ( addrWord ) ( see B287 for comments )
|
||||
DI DX MOVxx, DI [DI] MOVx[], DI PUSHx,
|
||||
DX INCx, DX INCx,
|
||||
;CODE
|
||||
|
30
blk/815
30
blk/815
@ -1,16 +1,14 @@
|
||||
L4 BSET PC 3 - ORG @ 4 + ! ( find )
|
||||
( find word the same name as str in SI starting from tip in
|
||||
DI. Returns wordref in BX. Z if found, NZ if not. )
|
||||
CH CH XORrr, CL [SI] MOVr[], ( CX -> strlen )
|
||||
SI INCx, ( first char ) AX AX XORxx, ( initial prev )
|
||||
BEGIN, ( loop )
|
||||
DI AX SUBxx, ( jump to prev wordref )
|
||||
AL [DI] -1 MOVr[]+, ( strlen )
|
||||
CL AL CMPrr, IFZ, ( same len )
|
||||
SI PUSHx, DI PUSHx, CX PUSHx, ( --> lvl 3 )
|
||||
3 ADDALi, ( header ) AH AH XORrr, DI AX SUBxx,
|
||||
REPZ, CMPSB,
|
||||
CX POPx, DI POPx, SI POPx, ( <-- lvl 3 )
|
||||
IFZ, AL AL XORrr, ( Z ) RETn, THEN,
|
||||
THEN,
|
||||
( cont. )
|
||||
PC 0x1d - ORG @ 0x1b + ! ( next )
|
||||
DI DX MOVxx, ( <-- IP ) DX INCx, DX INCx,
|
||||
DI [DI] MOVx[], ( wordref )
|
||||
( continue to execute )
|
||||
L1 BSET PC 0x36 - ORG @ 0x34 + ! ( execute -- DI -> wordref )
|
||||
AH AH XORrr, AL [DI] MOVr[],
|
||||
DI INCx, ( PFA )
|
||||
AX JMPr,
|
||||
|
||||
PC 0x11 - ORG @ 0x0f + ! ( compiledWord -- DI -> PFA )
|
||||
BP INCx, BP INCx, [BP] 0 DX MOV[]+x, ( pushRS )
|
||||
DX DI MOVxx, DX INCx, DX INCx, ( --> IP )
|
||||
DI [DI] MOVx[],
|
||||
JMPs, L1 @ RPCs,
|
||||
|
22
blk/816
22
blk/816
@ -1,6 +1,16 @@
|
||||
( find cont. )
|
||||
DI 3 SUBxi, AX [DI] MOVx[], ( prev )
|
||||
AX AX ORxx,
|
||||
JNZ, AGAIN, ( loop )
|
||||
AX INCx, ( NZ ) RETn,
|
||||
|
||||
L4 BSET PC 3 - ORG @ 4 + ! ( find )
|
||||
( find word the same name as str in SI starting from tip in
|
||||
DI. Returns wordref in DI. Z if found, NZ if not. )
|
||||
CH CH XORrr, CL [SI] MOVr[], ( CX -> strlen )
|
||||
SI INCx, ( first char ) AX AX XORxx, ( initial prev )
|
||||
BEGIN, ( loop )
|
||||
DI AX SUBxx, ( jump to prev wordref )
|
||||
AL [DI] -1 MOVr[]+, ( strlen )
|
||||
CL AL CMPrr, IFZ, ( same len )
|
||||
SI PUSHx, DI PUSHx, CX PUSHx, ( --> lvl 3 )
|
||||
3 ADDALi, ( header ) AH AH XORrr, DI AX SUBxx,
|
||||
REPZ, CMPSB,
|
||||
CX POPx, DI POPx, SI POPx, ( <-- lvl 3 )
|
||||
IFZ, AL AL XORrr, ( Z ) RETn, THEN,
|
||||
THEN,
|
||||
( cont. )
|
||||
|
16
blk/817
16
blk/817
@ -1,10 +1,6 @@
|
||||
L3 BSET 3 A, 'B' A, 'A' A, 'Z' A,
|
||||
PC 3 - ORG @ 1+ ! ( main )
|
||||
SP PS_ADDR MOVxI,
|
||||
BP RS_ADDR MOVxI,
|
||||
DI 0x08 MOVxm, ( LATEST )
|
||||
SI L3 @ MOVxI,
|
||||
CALLn, L4 @ RPCn, ( find )
|
||||
IFZ, JMPs, L1 @ RPCs, ( execute ) THEN,
|
||||
AH 0x0e MOVri, ( print char ) AL '!' MOVri, 0x10 INT,
|
||||
BEGIN, JMPs, AGAIN,
|
||||
( find cont. )
|
||||
DI 3 SUBxi, AX [DI] MOVx[], ( prev )
|
||||
AX AX ORxx,
|
||||
JNZ, AGAIN, ( loop )
|
||||
AX INCx, ( NZ ) RETn,
|
||||
|
||||
|
15
blk/818
Normal file
15
blk/818
Normal file
@ -0,0 +1,15 @@
|
||||
CODE BYE BEGIN, JMPs, AGAIN, ;CODE
|
||||
CODE EMIT
|
||||
AX POPx, AH 0x0e MOVri, ( print char ) 0x10 INT,
|
||||
;CODE CODE 0 AX AX XORxx, AX PUSHx, ;CODE
|
||||
: FOO 'X' EMIT ; : BAR 0 IF FOO THEN FOO BYE ;
|
||||
L3 BSET 3 A, 'B' A, 'A' A, 'R' A,
|
||||
PC 3 - ORG @ 1+ ! ( main )
|
||||
SP PS_ADDR MOVxI,
|
||||
BP RS_ADDR MOVxI,
|
||||
DI 0x08 MOVxm, ( LATEST )
|
||||
SI L3 @ MOVxI,
|
||||
CALLn, L4 @ RPCn, ( find )
|
||||
IFZ, JMPn, L1 @ RPCn, ( execute ) THEN,
|
||||
AH 0x0e MOVri, ( print char ) AL '!' MOVri, 0x10 INT,
|
||||
BEGIN, JMPs, AGAIN,
|
@ -3,7 +3,7 @@
|
||||
750 LOAD ( 8086 asm )
|
||||
262 LOAD ( xcomp )
|
||||
270 LOAD ( xcomp overrides )
|
||||
812 817 LOADR
|
||||
812 818 LOADR
|
||||
(entry) _
|
||||
( Update LATEST )
|
||||
PC ORG @ 8 + !
|
||||
|
Loading…
Reference in New Issue
Block a user