1
0
mirror of https://github.com/hsoft/collapseos.git synced 2024-11-26 15:18:05 +11:00

Compare commits

..

No commits in common. "1536434666638262327af0548ce659b07e42fdfe" and "9d2afd200cc6b5548a486e1ee43696616bccbe70" have entirely different histories.

8 changed files with 18 additions and 22 deletions

View File

@ -4,7 +4,7 @@
1 0xd0 OPr0 RORr1, 1 0xd1 OPr0 RORx1, 4 0xf7 OPr0 MULx, 1 0xd0 OPr0 RORr1, 1 0xd1 OPr0 RORx1, 4 0xf7 OPr0 MULx,
4 0xd0 OPr0 SHLr1, 4 0xd1 OPr0 SHLx1, 6 0xf6 OPr0 DIVr, 4 0xd0 OPr0 SHLr1, 4 0xd1 OPr0 SHLx1, 6 0xf6 OPr0 DIVr,
5 0xd0 OPr0 SHRr1, 5 0xd1 OPr0 SHRx1, 6 0xf7 OPr0 DIVx, 5 0xd0 OPr0 SHRr1, 5 0xd1 OPr0 SHRx1, 6 0xf7 OPr0 DIVx,
0 0xd2 OPr0 ROLrCL, 0 0xd3 OPr0 ROLxCL, 1 0xfe OPr0 DECr, 0 0xd2 OPr0 ROLrCL, 0 0xd3 OPr0 ROLxCL,
1 0xd2 OPr0 RORrCL, 1 0xd3 OPr0 RORxCL, 0 0xfe OPr0 INCr, 1 0xd2 OPr0 RORrCL, 1 0xd3 OPr0 RORxCL,
4 0xd2 OPr0 SHLrCL, 4 0xd3 OPr0 SHLxCL, 4 0xd2 OPr0 SHLrCL, 4 0xd3 OPr0 SHLxCL,
5 0xd2 OPr0 SHRrCL, 5 0xd3 OPr0 SHRxCL, 5 0xd2 OPr0 SHRrCL, 5 0xd3 OPr0 SHRxCL,

View File

@ -4,8 +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 ; )
: RPCs, PC - 1- DUP 128 + 0xff > IF ABORT" PC ovfl" THEN A, ; : RPCs, PC - 1- A, ; : RPCn, PC - 2- A,, ;
: RPCn, PC - 2- A,, ;
: AGAIN, ( BREAK?, ) RPCs, ; : AGAIN, ( BREAK?, ) RPCs, ;
( Use RPCx with appropriate JMP/CALL op. Example: ( Use RPCx with appropriate JMP/CALL op. Example:
JMPs, 0x42 RPCs, or CALLn, 0x1234 RPCn, ) JMPs, 0x42 RPCs, or CALLn, 0x1234 RPCn, )

View File

@ -5,10 +5,9 @@ lblnext BSET PC 0x1d - ORG @ 0x1b + ! ( next )
lblexec BSET PC 0x36 - ORG @ 0x34 + ! ( DI -> wordref ) lblexec BSET PC 0x36 - ORG @ 0x34 + ! ( DI -> wordref )
AL [DI] MOVr[], DI INCx, ( PFA ) AL [DI] MOVr[], DI INCx, ( PFA )
AL AL ORrr, IFZ, DI JMPr, THEN, ( native ) AL AL ORrr, IFZ, DI JMPr, THEN, ( native )
AL DECr, IFNZ, ( cell or does ) ( continue to compiled )
DI PUSHx, ( push PFA ) JMPs, lblnext @ RPCs,
( TODO: implement does ) PC 0x11 - ORG @ 0x0f + ! ( compiled -- DI -> PFA )
THEN, ( compiled )
BP INCx, BP INCx, [BP] 0 DX MOV[]+x, ( pushRS ) BP INCx, BP INCx, [BP] 0 DX MOV[]+x, ( pushRS )
DX DI MOVxx, DX INCx, DX INCx, ( --> IP ) DX DI MOVxx, DX INCx, DX INCx, ( --> IP )
DI [DI] MOVx[], DI [DI] MOVx[],

View File

@ -1,6 +1,6 @@
( native words ) ( native words )
CODE EXECUTE CODE EXECUTE
DI POPx, JMPn, lblexec @ RPCn, DI POPx, JMPs, lblexec @ RPCs,
CODE >R CODE >R
BP INCx, BP INCx, [BP] 0 POP[w]+, BP INCx, BP INCx, [BP] 0 POP[w]+,
;CODE NOP, NOP, NOP, ;CODE NOP, NOP, NOP,

View File

@ -1,10 +1,10 @@
CODE DUP AX POPx, AX PUSHx, AX PUSHx, ;CODE CODE DUP AX POPx, AX PUSHx, AX PUSHx, ;CODE
CODE ?DUP AX POPx, AX AX ORxx, AX PUSHx, CODE ?DUP AX POPx, AX AX ORxx, IFNZ, AX PUSHx, THEN, ;CODE
IFNZ, AX PUSHx, THEN, ;CODE
CODE DROP AX POPx, ;CODE CODE DROP AX POPx, ;CODE
CODE SWAP AX POPx, BX POPx, AX PUSHx, BX PUSHx, ;CODE CODE SWAP AX POPx, BX POPx, AX PUSHx, BX PUSHx, ;CODE
CODE OVER ( a b -- a b a ) CODE OVER ( a b -- a b a )
DI SP MOVxx, AX [DI] 2 MOVx[]+, AX PUSHx, ;CODE DI SP MOVxx, AX [DI] 2 MOVx[]+, AX PUSHx,
;CODE
CODE PICK CODE PICK
DI POPx, DI SHLx1, ( x2 ) DI POPx, DI SHLx1, ( x2 )
DI SP ADDxx, DI [DI] MOVx[], DI PUSHx, DI SP ADDxx, DI [DI] MOVx[], DI PUSHx,

5
blk/828 Normal file
View File

@ -0,0 +1,5 @@
CODE EMIT
AX POPx, AH 0x0e MOVri, ( print char ) 0x10 INT,
;CODE
: FOO '0' 1 3 LSHIFT + EMIT ;
: BOOT 0x08 @ LIT< FOO _find DROP EXECUTE BYE ;

View File

@ -42,8 +42,8 @@ static uint8_t iord_stdio()
static void iowr_stdio(uint8_t val) static void iowr_stdio(uint8_t val)
{ {
// comment if you don't like verbose staging output // uncomment when you need to debug staging
putc(val, stderr); // putc(val, stderr);
} }
static void iowr_here(uint8_t val) static void iowr_here(uint8_t val)

View File

@ -4,14 +4,7 @@ RS_ADDR 0x80 - CONSTANT RAMSTART
750 LOAD ( 8086 asm ) 750 LOAD ( 8086 asm )
262 LOAD ( xcomp ) 262 LOAD ( xcomp )
270 LOAD ( xcomp overrides ) 270 LOAD ( xcomp overrides )
812 827 LOADR 812 828 LOADR
353 LOAD ( xcomp core low )
CODE (emit)
AX POPx, AH 0x0e MOVri, ( print char ) 0x10 INT,
;CODE
CODE (key) AH AH XORrr, 0x16 INT, AX PUSHx, ;CODE
: FOO (key) (emit) ;
: BOOT 0x08 @ LIT< FOO _find DROP EXECUTE BYE ;
(entry) _ (entry) _
( Update LATEST ) ( Update LATEST )
PC ORG @ 8 + ! PC ORG @ 8 + !