Procházet zdrojové kódy

forth: Forth-ify "WS?"

pull/95/head
Virgil Dupras před 4 roky
rodič
revize
9fcfebd84c
3 změnil soubory, kde provedl 9 přidání a 21 odebrání
  1. binární
      emul/forth/z80c.bin
  2. +2
    -19
      forth/forth.asm
  3. +7
    -2
      forth/icore.fs

binární
emul/forth/z80c.bin Zobrazit soubor


+ 2
- 19
forth/forth.asm Zobrazit soubor

@@ -830,27 +830,10 @@ CIN:
.dw EXIT


; ( c -- f )
; 33 CMP 1 + NOT
; The NOT is to normalize the negative/positive numbers to 1 or 0.
; Hadn't we wanted to normalize, we'd have written:
; 32 CMP 1 -
.db "WS?"
.dw $-CIN
.db 3
ISWS:
.dw compiledWord
.dw NUMBER
.dw 33
.dw CMP
.dw NUMBER
.dw 1
.dw PLUS
.dw NOT
.dw EXIT
.fill 24

.db "NOT"
.dw $-ISWS
.dw $-CIN
.db 3
NOT:
.dw nativeWord


+ 7
- 2
forth/icore.fs Zobrazit soubor

@@ -78,9 +78,14 @@
HERE @ 1 + HERE !
;

( The NOT is to normalize the negative/positive numbers to 1
or 0. Hadn't we wanted to normalize, we'd have written:
32 CMP 1 - )
: WS? 33 CMP 1 + NOT ;

: TOWORD
BEGIN
C< DUP WS? NOT IF EXIT THEN DROP
C< DUP _c WS? NOT IF EXIT THEN DROP
AGAIN
;

@@ -96,7 +101,7 @@
OVER ! ( a )
1 + ( a+1 )
C< ( a c )
DUP WS?
DUP _c WS?
UNTIL
( a this point, PS is: a WS )
( null-termination is already written )


Načítá se…
Zrušit
Uložit