pcat: more native words
This commit is contained in:
parent
3b21ba635d
commit
89bc7df120
10
blk/754
10
blk/754
@ -1,14 +1,14 @@
|
|||||||
: OPr0 ( reg op ) CREATE C, C, DOES>
|
: OPr0 ( reg op ) CREATE C, C, DOES>
|
||||||
C@+ A, C@ <<3 OR 0xc0 OR A, ;
|
C@+ A, C@ <<3 OR 0xc0 OR A, ;
|
||||||
0 0xd0 OPr0 ROLr1, 0 0xd1 OPr0 ROLx1,
|
0 0xd0 OPr0 ROLr1, 0 0xd1 OPr0 ROLx1, 4 0xf6 OPr0 MULr,
|
||||||
1 0xd0 OPr0 RORr1, 1 0xd1 OPr0 RORx1,
|
1 0xd0 OPr0 RORr1, 1 0xd1 OPr0 RORx1, 4 0xf7 OPr0 MULx,
|
||||||
4 0xd0 OPr0 SHLr1, 4 0xd1 OPr0 SHLx1,
|
4 0xd0 OPr0 SHLr1, 4 0xd1 OPr0 SHLx1, 6 0xf6 OPr0 DIVr,
|
||||||
5 0xd0 OPr0 SHRr1, 5 0xd1 OPr0 SHRx1,
|
5 0xd0 OPr0 SHRr1, 5 0xd1 OPr0 SHRx1, 6 0xf7 OPr0 DIVx,
|
||||||
|
|
||||||
: OPrr CREATE C, DOES> C@ A, <<3 OR 0xc0 OR A, ;
|
: OPrr CREATE C, DOES> C@ A, <<3 OR 0xc0 OR A, ;
|
||||||
0x31 OPrr XORxx, 0x30 OPrr XORrr,
|
0x31 OPrr XORxx, 0x30 OPrr XORrr,
|
||||||
0x88 OPrr MOVrr, 0x89 OPrr MOVxx, 0x28 OPrr SUBrr,
|
0x88 OPrr MOVrr, 0x89 OPrr MOVxx, 0x28 OPrr SUBrr,
|
||||||
0x29 OPrr SUBxx, 0x08 OPrr ORrr, 0x09 OPrr ORxx,
|
0x29 OPrr SUBxx, 0x08 OPrr ORrr, 0x09 OPrr ORxx,
|
||||||
0x3a OPrr CMPrr, 0x3b OPrr CMPxx, 0x00 OPrr ADDrr,
|
0x3a OPrr CMPrr, 0x3b OPrr CMPxx, 0x00 OPrr ADDrr,
|
||||||
0x01 OPrr ADDxx,
|
0x01 OPrr ADDxx, 0x20 OPrr ANDrr, 0x21 OPrr ANDxx,
|
||||||
|
|
||||||
|
19
blk/822
19
blk/822
@ -1,5 +1,14 @@
|
|||||||
CODE 0 AX AX XORxx, AX PUSHx, ;CODE
|
CODE 2DROP SP 4 ADDxi, ;CODE
|
||||||
CODE 1 AX 1 MOVxI, AX PUSHx, ;CODE
|
CODE 2DUP
|
||||||
CODE I [BP] 0 PUSH[w]+, ;CODE
|
AX POPx, BX POPx,
|
||||||
CODE 1+ DI SP MOVxx, [DI] INC[w], ;CODE
|
BX PUSHx, AX PUSHx, BX PUSHx, AX PUSHx,
|
||||||
CODE 1- DI SP MOVxx, [DI] DEC[w], ;CODE
|
;CODE
|
||||||
|
CODE S0 AX PS_ADDR MOVxI, AX PUSHx, ;CODE
|
||||||
|
CODE 'S SP PUSHx, ;CODE
|
||||||
|
CODE AND AX POPx, BX POPx, AX BX ANDxx, AX PUSHx, ;CODE
|
||||||
|
CODE OR AX POPx, BX POPx, AX BX ORxx, AX PUSHx, ;CODE
|
||||||
|
CODE XOR AX POPx, BX POPx, AX BX XORxx, AX PUSHx, ;CODE
|
||||||
|
CODE NOT
|
||||||
|
AX POPx, AX AX ORxx,
|
||||||
|
IFNZ, AX -1 MOVxI, THEN, AX INCx, AX PUSHx,
|
||||||
|
;CODE
|
||||||
|
13
blk/823
Normal file
13
blk/823
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
CODE + AX POPx, BX POPx, AX BX ADDxx, AX PUSHx, ;CODE
|
||||||
|
CODE - BX POPx, AX POPx, AX BX SUBxx, AX PUSHx, ;CODE
|
||||||
|
CODE *
|
||||||
|
AX POPx, BX POPx,
|
||||||
|
DX PUSHx, ( protect from MUL ) BX MULx, DX POPx,
|
||||||
|
AX PUSHx,
|
||||||
|
;CODE
|
||||||
|
CODE /MOD
|
||||||
|
BX POPx, AX POPx,
|
||||||
|
BL DIVr, ( TODO: use DIVx, risk of 8086 error )
|
||||||
|
BH BH XORrr, BL AH MOVrr, BX PUSHx, ( modulo )
|
||||||
|
BL AL MOVrr, BX PUSHx, ( division )
|
||||||
|
;CODE
|
7
blk/824
7
blk/824
@ -1,6 +1,11 @@
|
|||||||
|
CODE 0 AX AX XORxx, AX PUSHx, ;CODE
|
||||||
|
CODE 1 AX 1 MOVxI, AX PUSHx, ;CODE
|
||||||
|
CODE I [BP] 0 PUSH[w]+, ;CODE
|
||||||
|
CODE 1+ DI SP MOVxx, [DI] INC[w], ;CODE
|
||||||
|
CODE 1- DI SP MOVxx, [DI] DEC[w], ;CODE
|
||||||
CODE BYE BEGIN, JMPs, AGAIN, ;CODE
|
CODE BYE BEGIN, JMPs, AGAIN, ;CODE
|
||||||
CODE EMIT
|
CODE EMIT
|
||||||
AX POPx, AH 0x0e MOVri, ( print char ) 0x10 INT,
|
AX POPx, AH 0x0e MOVri, ( print char ) 0x10 INT,
|
||||||
;CODE
|
;CODE
|
||||||
: FOO 'A' 'B' 'C' 2 PICK 4 (roll) EMIT EMIT EMIT EMIT ;
|
: FOO 42 10 /MOD '0' + EMIT '0' + EMIT ;
|
||||||
: BOOT ['] FOO EXECUTE BYE ;
|
: BOOT ['] FOO EXECUTE BYE ;
|
||||||
|
Loading…
Reference in New Issue
Block a user