Просмотр исходного кода

forth: Forth-ify "XOR"

pull/95/head
Virgil Dupras 4 лет назад
Родитель
Сommit
66412a1c30
4 измененных файлов: 15 добавлений и 19 удалений
  1. Двоичные данные
      emul/forth/z80c.bin
  2. +1
    -19
      forth/forth.asm
  3. +1
    -0
      forth/z80a.fs
  4. +13
    -0
      forth/z80c.fs

Двоичные данные
emul/forth/z80c.bin Просмотреть файл


+ 1
- 19
forth/forth.asm Просмотреть файл

@@ -1505,31 +1505,13 @@ DIVMOD:
jp next


.db "XOR"
.fill 4
.dw $-DIVMOD
.db 0
XOR:
.dw nativeWord
pop hl
pop de
call chkPS
ld a, e
xor l
ld l, a
ld a, d
xor h
ld h, a
push hl
jp next

; It might look peculiar to have specific words for "0" and "1", but although
; it slightly beefs ups the ASM part of the binary, this one-byte-save-per-use
; really adds up when we compare total size.

.db "0"
.fill 6
.dw $-XOR
.dw $-DIVMOD
.db 0
ZERO:
.dw nativeWord


+ 1
- 0
forth/z80a.fs Просмотреть файл

@@ -54,6 +54,7 @@
;
0xa0 OP1r0 ANDr,
0xb0 OP1r0 ORr,
0xa8 OP1r0 XORr,

( qq -- also works for ss )
: OP1qq


+ 13
- 0
forth/z80c.fs Просмотреть файл

@@ -97,6 +97,19 @@ CODE OR
HL PUSHqq,
;CODE

CODE XOR
HL POPqq,
DE POPqq,
chkPS,
A E LDrr,
L XORr,
L A LDrr,
A D LDrr,
H XORr,
H A LDrr,
HL PUSHqq,
;CODE

CODE PC!
BC POPqq,
HL POPqq,


Загрузка…
Отмена
Сохранить