From a32c1ece1d4d3ea6629e03342613aaa69011f745 Mon Sep 17 00:00:00 2001 From: Philip Zembrod Date: Sun, 21 Jun 2020 15:23:22 +0200 Subject: [PATCH] A few modifications to the core.fr test set required by the PETSCII charset. And some tests are commented out with \vf as VolksForth can't yet easily be ANS-shimmed into providing EVALUATE and the WHILE - ELSE construct. --- 6502/C64/tests/core.fr | 62 +++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/6502/C64/tests/core.fr b/6502/C64/tests/core.fr index 70fc9b3..962949b 100644 --- a/6502/C64/tests/core.fr +++ b/6502/C64/tests/core.fr @@ -621,15 +621,15 @@ T{ -1 1ST +! 1ST @ -> 0 }T TESTING CHAR [CHAR] [ ] BL S" T{ BL -> 20 }T -T{ CHAR X -> 58 }T -T{ CHAR HELLO -> 48 }T -T{ : GC1 [CHAR] X ; -> }T -T{ : GC2 [CHAR] HELLO ; -> }T +T{ CHAR x -> 58 }T \ vf: s/X/x/ +T{ CHAR hello -> 48 }T \ vf: s/HELLO/hello/ +T{ : GC1 [CHAR] x ; -> }T \ vf: s/X/x/ +T{ : GC2 [CHAR] hello ; -> }T \ vf: s/HELLO/hello/ T{ GC1 -> 58 }T T{ GC2 -> 48 }T T{ : GC3 [ GC1 ] LITERAL ; -> }T T{ GC3 -> 58 }T -T{ : GC4 S" XY" ; -> }T +T{ : GC4 S" xy" ; -> }T \ vf: s/XY/xy/ T{ GC4 SWAP DROP -> 2 }T T{ GC4 DROP DUP C@ SWAP CHAR+ C@ -> 58 59 }T @@ -684,13 +684,13 @@ T{ 3 GI4 -> 3 4 5 6 }T T{ 5 GI4 -> 5 6 }T T{ 6 GI4 -> 6 7 }T -T{ : GI5 BEGIN DUP 2 > - WHILE DUP 5 < WHILE DUP 1+ REPEAT 123 ELSE 345 THEN ; -> }T -T{ 1 GI5 -> 1 345 }T -T{ 2 GI5 -> 2 345 }T -T{ 3 GI5 -> 3 4 5 123 }T -T{ 4 GI5 -> 4 5 123 }T -T{ 5 GI5 -> 5 123 }T +\vf T{ : GI5 BEGIN DUP 2 > +\vf WHILE DUP 5 < WHILE DUP 1+ REPEAT 123 ELSE 345 THEN ; -> }T +\vf T{ 1 GI5 -> 1 345 }T +\vf T{ 2 GI5 -> 2 345 }T +\vf T{ 3 GI5 -> 3 4 5 123 }T +\vf T{ 4 GI5 -> 4 5 123 }T +\vf T{ 5 GI5 -> 5 123 }T T{ : GI6 ( N -- 0,1,..N ) DUP IF DUP >R 1- RECURSE R> THEN ; -> }T T{ 0 GI6 -> 0 }T @@ -774,27 +774,27 @@ T{ W1 -> HERE 2 + }T \ ------------------------------------------------------------------------ TESTING EVALUATE -: GE1 S" 123" ; IMMEDIATE -: GE2 S" 123 1+" ; IMMEDIATE -: GE3 S" : GE4 345 ;" ; -: GE5 EVALUATE ; IMMEDIATE +\vf : GE1 S" 123" ; IMMEDIATE +\vf : GE2 S" 123 1+" ; IMMEDIATE +\vf : GE3 S" : GE4 345 ;" ; +\vf : GE5 EVALUATE ; IMMEDIATE -T{ GE1 EVALUATE -> 123 }T ( TEST EVALUATE IN INTERP. STATE ) -T{ GE2 EVALUATE -> 124 }T -T{ GE3 EVALUATE -> }T -T{ GE4 -> 345 }T +\vf T{ GE1 EVALUATE -> 123 }T ( TEST EVALUATE IN INTERP. STATE ) +\vf T{ GE2 EVALUATE -> 124 }T +\vf T{ GE3 EVALUATE -> }T +\vf T{ GE4 -> 345 }T -T{ : GE6 GE1 GE5 ; -> }T ( TEST EVALUATE IN COMPILE STATE ) -T{ GE6 -> 123 }T -T{ : GE7 GE2 GE5 ; -> }T -T{ GE7 -> 124 }T +\vf T{ : GE6 GE1 GE5 ; -> }T ( TEST EVALUATE IN COMPILE STATE ) +\vf T{ GE6 -> 123 }T +\vf T{ : GE7 GE2 GE5 ; -> }T +\vf T{ GE7 -> 124 }T \ ------------------------------------------------------------------------ TESTING SOURCE >IN WORD -: GS1 S" SOURCE" 2DUP EVALUATE - >R SWAP >R = R> R> = ; -T{ GS1 -> }T +\vf : GS1 S" SOURCE" 2DUP EVALUATE +\vf >R SWAP >R = R> R> = ; +\vf T{ GS1 -> }T VARIABLE SCANS : RESCAN? -1 SCANS +! SCANS @ IF 0 >IN ! THEN ; @@ -803,8 +803,8 @@ T{ 2 SCANS ! 345 RESCAN? -> 345 345 }T -: GS2 5 SCANS ! S" 123 RESCAN?" EVALUATE ; -T{ GS2 -> 123 123 123 123 123 }T +\vf : GS2 5 SCANS ! S" 123 RESCAN?" EVALUATE ; +\vf T{ GS2 -> 123 123 123 123 123 }T : GS3 WORD COUNT SWAP C@ ; T{ BL GS3 HELLO -> 5 CHAR H }T @@ -832,7 +832,7 @@ TESTING <# # #S #> HOLD SIGN BASE >NUMBER HEX DECIMAL R> DROP 2DROP \ LENGTHS MISMATCH THEN ; -: GP1 <# 41 HOLD 42 HOLD 0 0 #> S" BA" S= ; +: GP1 <# 41 HOLD 42 HOLD 0 0 #> S" ba" S= ; \ vf: s/BA/ba/ T{ GP1 -> }T : GP2 <# -1 SIGN 0 SIGN -1 SIGN 0 0 #> S" --" S= ; @@ -878,7 +878,7 @@ T{ GP6 -> }T LOOP MAX-BASE A DO I 0 <# #S #> - 1 = SWAP C@ 41 I A - + = AND AND + 1 = SWAP C@ C1 I A - + = AND AND \ vf: s/41/C1/ LOOP R> BASE ! ;