mirror of
https://github.com/hsoft/collapseos.git
synced 2024-11-27 12:58:09 +11:00
pcat: more native words
almost there!
This commit is contained in:
parent
89bc7df120
commit
5ebdf84e78
3
blk/753
3
blk/753
@ -8,7 +8,8 @@
|
|||||||
0xaf OP1 SCASW, 0xaa OP1 STOSB, 0xab OP1 STOSW,
|
0xaf OP1 SCASW, 0xaa OP1 STOSB, 0xab OP1 STOSW,
|
||||||
( 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,
|
||||||
0x75 OP1 JNZ, 0xe8 OP1 CALLn,
|
0x75 OP1 JNZ, 0x72 OP1 JC, 0x73 OP1 JNC,
|
||||||
|
0xe8 OP1 CALLn,
|
||||||
|
|
||||||
: OP1r CREATE C, DOES> C@ + A, ;
|
: OP1r CREATE C, DOES> C@ + A, ;
|
||||||
0x40 OP1r INCx, 0x48 OP1r DECx,
|
0x40 OP1r INCx, 0x48 OP1r DECx,
|
||||||
|
1
blk/757
1
blk/757
@ -1,5 +1,6 @@
|
|||||||
: OPrm CREATE C, DOES> C@ A, SWAP 3 LSHIFT OR A, ;
|
: OPrm CREATE C, DOES> C@ A, SWAP 3 LSHIFT OR A, ;
|
||||||
0x8a OPrm MOVr[], 0x8b OPrm MOVx[],
|
0x8a OPrm MOVr[], 0x8b OPrm MOVx[],
|
||||||
|
0x3a OPrm CMPr[], 0x3b OPrm CMPx[],
|
||||||
|
|
||||||
: OPmr CREATE C, DOES> C@ A, 3 LSHIFT OR A, ;
|
: OPmr CREATE C, DOES> C@ A, 3 LSHIFT OR A, ;
|
||||||
0x88 OPmr MOV[]r, 0x89 OPmr MOV[]x,
|
0x88 OPmr MOV[]r, 0x89 OPmr MOV[]x,
|
||||||
|
4
blk/759
4
blk/759
@ -6,8 +6,8 @@
|
|||||||
: FJR, PC 0 A, ;
|
: FJR, PC 0 A, ;
|
||||||
: IFZ, JNZ, FJR, ;
|
: IFZ, JNZ, FJR, ;
|
||||||
: IFNZ, JZ, FJR, ;
|
: IFNZ, JZ, FJR, ;
|
||||||
( : IFC, JRNC, FJR, ;
|
: IFC, JNC, FJR, ;
|
||||||
: IFNC, JRC, FJR, ; )
|
: IFNC, JC, FJR, ;
|
||||||
: THEN,
|
: THEN,
|
||||||
DUP PC ( l l pc )
|
DUP PC ( l l pc )
|
||||||
-^ 1- ( l off )
|
-^ 1- ( l off )
|
||||||
|
1
blk/761
1
blk/761
@ -1,3 +1,4 @@
|
|||||||
|
: PUSHZ, CX 0 MOVxI, IFZ, CX INCx, THEN, CX PUSHx, ;
|
||||||
: CODE ( same as CREATE, but with native word )
|
: CODE ( same as CREATE, but with native word )
|
||||||
(entry) 0 ( native ) C, ;
|
(entry) 0 ( native ) C, ;
|
||||||
: ;CODE JMPn, 0x1a ( next ) RPCn, ;
|
: ;CODE JMPn, 0x1a ( next ) RPCn, ;
|
||||||
|
18
blk/824
18
blk/824
@ -1,11 +1,11 @@
|
|||||||
CODE 0 AX AX XORxx, AX PUSHx, ;CODE
|
CODE ! DI POPx, AX POPx, [DI] AX MOV[]x, ;CODE
|
||||||
CODE 1 AX 1 MOVxI, AX PUSHx, ;CODE
|
CODE @ DI POPx, AX [DI] MOVx[], AX PUSHx, ;CODE
|
||||||
|
CODE C! DI POPx, AX POPx, [DI] AX MOV[]r, ;CODE
|
||||||
|
CODE C@
|
||||||
|
DI POPx, AH AH XORrr, AL [DI] MOVr[], AX PUSHx, ;CODE
|
||||||
CODE I [BP] 0 PUSH[w]+, ;CODE
|
CODE I [BP] 0 PUSH[w]+, ;CODE
|
||||||
CODE 1+ DI SP MOVxx, [DI] INC[w], ;CODE
|
CODE I' [BP] -2 PUSH[w]+, ;CODE
|
||||||
CODE 1- DI SP MOVxx, [DI] DEC[w], ;CODE
|
CODE J [BP] -4 PUSH[w]+, ;CODE
|
||||||
|
CODE (resSP) SP PS_ADDR MOVxI, ;CODE
|
||||||
|
CODE (resRS) BP RS_ADDR MOVxI, ;CODE
|
||||||
CODE BYE BEGIN, JMPs, AGAIN, ;CODE
|
CODE BYE BEGIN, JMPs, AGAIN, ;CODE
|
||||||
CODE EMIT
|
|
||||||
AX POPx, AH 0x0e MOVri, ( print char ) 0x10 INT,
|
|
||||||
;CODE
|
|
||||||
: FOO 42 10 /MOD '0' + EMIT '0' + EMIT ;
|
|
||||||
: BOOT ['] FOO EXECUTE BYE ;
|
|
||||||
|
15
blk/825
Normal file
15
blk/825
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
CODE S=
|
||||||
|
SI POPx, DI POPx, CH CH XORrr, CL [SI] MOVr[],
|
||||||
|
CL [DI] CMPr[],
|
||||||
|
IFZ, ( same size? )
|
||||||
|
SI INCx, DI INCx, CLD, REPZ, CMPSB,
|
||||||
|
THEN,
|
||||||
|
PUSHZ,
|
||||||
|
;CODE
|
||||||
|
CODE CMP
|
||||||
|
BX POPx, AX POPx, CX CX XORxx, AX BX CMPxx,
|
||||||
|
IFNZ, ( < or > )
|
||||||
|
CX INCx, IFNC, ( < ) CX DECx, CX DECx, THEN,
|
||||||
|
THEN,
|
||||||
|
CX PUSHx,
|
||||||
|
;CODE
|
8
blk/826
Normal file
8
blk/826
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
CODE 0 AX AX XORxx, AX PUSHx, ;CODE
|
||||||
|
CODE 1 AX 1 MOVxI, AX PUSHx, ;CODE
|
||||||
|
CODE 1+ DI SP MOVxx, [DI] INC[w], ;CODE
|
||||||
|
CODE 1- DI SP MOVxx, [DI] DEC[w], ;CODE
|
||||||
|
CODE EMIT
|
||||||
|
AX POPx, AH 0x0e MOVri, ( print char ) 0x10 INT,
|
||||||
|
;CODE
|
||||||
|
: BOOT 4 5 CMP '=' + EMIT ;
|
@ -3,7 +3,7 @@
|
|||||||
750 LOAD ( 8086 asm )
|
750 LOAD ( 8086 asm )
|
||||||
262 LOAD ( xcomp )
|
262 LOAD ( xcomp )
|
||||||
270 LOAD ( xcomp overrides )
|
270 LOAD ( xcomp overrides )
|
||||||
812 824 LOADR
|
812 826 LOADR
|
||||||
(entry) _
|
(entry) _
|
||||||
( Update LATEST )
|
( Update LATEST )
|
||||||
PC ORG @ 8 + !
|
PC ORG @ 8 + !
|
||||||
|
Loading…
Reference in New Issue
Block a user