ソースを参照

z80a: invert the meaning of IFZ, IFNZ, IFC, IFNC,

It is much less confusing when "IFZ," means "If Z is set, continue
into IF, else, jump to THEN,".
pull/102/head
Virgil Dupras 4年前
コミット
b73e1a5f7a
3個のファイルの変更14行の追加13行の削除
  1. +1
    -1
      forth/boot.fs
  2. +4
    -4
      forth/z80a.fs
  3. +9
    -8
      forth/z80c.fs

+ 1
- 1
forth/boot.fs ファイルの表示

@@ -201,7 +201,7 @@ L4 FSET L3 FSET ( loopend )
( HL is prev field's addr. Is offset zero? )
A D LDrr,
E ORr,
IFZ, ( noprev )
IFNZ, ( noprev )
( get absolute addr from offset )
( carry cleared from "or e" )
DE SBCHLss,


+ 4
- 4
forth/z80a.fs ファイルの表示

@@ -372,10 +372,10 @@
: BWR @ AGAIN, ;
( same as BSET, but we need to write a placeholder )
: FJR, PC 0 A, ;
: IFZ, JRZ, FJR, ;
: IFNZ, JRNZ, FJR, ;
: IFC, JRC, FJR, ;
: IFNC, JRNC, FJR, ;
: IFZ, JRNZ, FJR, ;
: IFNZ, JRZ, FJR, ;
: IFC, JRNC, FJR, ;
: IFNC, JRC, FJR, ;
: THEN,
DUP PC ( l l pc )
-^ 1 - ( l off )


+ 9
- 8
forth/z80c.fs ファイルの表示

@@ -149,10 +149,10 @@ CODE NOT
A L LDrr,
H ORr,
HL 0 LDddnn,
IFNZ, ( skip )
IFZ,
( false, make 1 )
HL INCss,
THEN, ( skip )
THEN,
HL PUSHqq,
;CODE

@@ -209,10 +209,10 @@ CODE /MOD
RLA,
HL ADCHLss,
DE SBCHLss,
IFNC, ( skip )
IFC,
DE ADDHLss,
C DECr,
THEN, ( skip )
THEN,
DJNZ, AGAIN, ( loop )
B A LDrr,
HL PUSHqq,
@@ -340,10 +340,10 @@ CODE CMP
chkPS,
DE SUBHLss,
BC 0 LDddnn,
IFZ,
IFNZ,
( not equal )
BC INCss,
IFC,
IFNC,
( < )
BC DECss,
BC DECss,
@@ -359,13 +359,14 @@ CODE _find
chkPS,
( 3 == find )
3 CALLnn,
IFZ, ( found )
IFNZ,
( not found )
HL PUSHqq,
DE 0 LDddnn,
DE PUSHqq,
JPNEXT,
THEN, ( found )
THEN,
( found )
DE PUSHqq,
DE 1 LDddnn,
DE PUSHqq,


読み込み中…
キャンセル
保存