From 6d8edeec6325fec0ffb0186cb606e2b57b0b78ce Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Wed, 25 Mar 2020 17:52:51 -0400 Subject: [PATCH] forth: Forth-ify "C!" and "C@" --- emul/forth/z80c.bin | Bin 244 -> 288 bytes forth/forth.asm | 31 ++----------------------------- forth/z80a.fs | 2 +- forth/z80c.fs | 15 +++++++++++++++ 4 files changed, 18 insertions(+), 30 deletions(-) diff --git a/emul/forth/z80c.bin b/emul/forth/z80c.bin index 384f6237fe1d540eb26e9449cb424894820af501..ffa729c26ab2f3a30ec277de063492952cb343e8 100644 GIT binary patch delta 62 zcmeyuxPWQG9usFp1`v>7VA#g^@ZwonhT_9g49*TM? D2^{nE1f}05|CcX#fBK diff --git a/forth/forth.asm b/forth/forth.asm index 256db17..69de98d 100644 --- a/forth/forth.asm +++ b/forth/forth.asm @@ -1288,23 +1288,10 @@ STORE: ld (iy+1), h jp next -; ( n a -- ) - .db "C!" - .fill 5 - .dw $-STORE - .db 0 -CSTORE: - .dw nativeWord - pop hl - pop de - call chkPS - ld (hl), e - jp next - ; ( a -- n ) .db "@" .fill 6 - .dw $-CSTORE + .dw $-STORE .db 0 FETCH: .dw nativeWord @@ -1314,24 +1301,10 @@ FETCH: push hl jp next -; ( a -- c ) - .db "C@" - .fill 5 - .dw $-FETCH - .db 0 -CFETCH: - .dw nativeWord - pop hl - call chkPS - ld l, (hl) - ld h, 0 - push hl - jp next - ; ( a -- ) .db "DROP" .fill 3 - .dw $-CFETCH + .dw $-FETCH .db 0 DROP: .dw nativeWord diff --git a/forth/z80a.fs b/forth/z80a.fs index 7475ff5..cbb2036 100644 --- a/forth/z80a.fs +++ b/forth/z80a.fs @@ -43,7 +43,6 @@ ; 0x04 OP1r INCr, 0x46 OP1r LDr(HL), -0x70 OP1r LD(HL)r, ( r -- ) : OP1r0 @@ -52,6 +51,7 @@ C@ ( r op ) OR A, ; +0x70 OP1r0 LD(HL)r, 0xa0 OP1r0 ANDr, 0xb0 OP1r0 ORr, 0xa8 OP1r0 XORr, diff --git a/forth/z80c.fs b/forth/z80c.fs index 79f637c..e2f0e19 100644 --- a/forth/z80c.fs +++ b/forth/z80c.fs @@ -110,6 +110,21 @@ CODE XOR HL PUSHqq, ;CODE +CODE C! + HL POPqq, + DE POPqq, + chkPS, + E LD(HL)r, +;CODE + +CODE C@ + HL POPqq, + chkPS, + L LDr(HL), + H 0 LDrn, + HL PUSHqq, +;CODE + CODE PC! BC POPqq, HL POPqq,