DECIMAL
-\ STUB because missing definition in pForth - FIXME
-: SAVE-INPUT ;
-: RESTORE-INPUT -1 ;
-
TEST{
\ ==========================================================
T{ ' REFILL 0<> }T{ TRUE }T
\ ----------------------------------------------------- RESTORE-INPUT
-T{ : T.SAVE-INPUT SAVE-INPUT RESTORE-INPUT ; T.SAVE-INPUT }T{ 0 }T \ EXPECTED FAILURE
+T{ : T.SAVE-INPUT SAVE-INPUT RESTORE-INPUT ; T.SAVE-INPUT }T{ 0 }T
+
+\ TESTING SAVE-INPUT and RESTORE-INPUT with a string source
+
+VARIABLE SI_INC 0 SI_INC !
+
+: SI1
+ SI_INC @ >IN +!
+ 15 SI_INC !
+;
+
+: S$ S" SAVE-INPUT SI1 RESTORE-INPUT 12345" ;
+
+T{ S$ EVALUATE SI_INC @ }T{ 0 2345 15 }T
\ ----------------------------------------------------- ROLL
T{ 15 14 13 12 11 10 0 ROLL }T{ 15 14 13 12 11 10 }T
T{ s" MAX-CHAR" ENVIRONMENT? }T{ 255 TRUE }T
T{ s" ADDRESS-UNITS-BITS" ENVIRONMENT? }T{ 8 TRUE }T
+\ ----------------------------------------------------- PROGRAMMING
+
+T{ exists? words }T{ true }T \ high level
+T{ exists? swap }T{ true }T \ in kernel
+T{ exists? lkajsdlakjs }T{ false }T
+
+T{ [defined] if }T{ true }T \ high level
+T{ [defined] dup }T{ true }T \ in kernel
+T{ [defined] k23jh42 }T{ false }T
+
+T{ [undefined] if }T{ false }T \ high level
+T{ [undefined] dup }T{ false }T \ in kernel
+T{ [undefined] k23jh42 }T{ true }T
+
+\ ----------------------------------------------------- Structures
+
+BEGIN-STRUCTURE XYZS
+ cfield: xyz.c1
+ field: xyz.w1
+ cfield: xyz.c2
+END-STRUCTURE
+
+T{ xyzs }T{ 2 cells 1+ }T
+T{ 0 xyz.c1 }T{ 0 }T
+T{ 0 xyz.w1 }T{ cell }T
+T{ 0 xyz.c2 }T{ 2 cells }T
+
+CREATE MY-XYZS XYZS ALLOT
+\ test forward order
+77 my-xyzs xyz.c1 c!
+1234567 my-xyzs xyz.w1 !
+99 my-xyzs xyz.c2 c!
+
+T{ my-xyzs xyz.c1 c@ }T{ 77 }T
+T{ my-xyzs xyz.w1 @ }T{ 1234567 }T
+T{ my-xyzs xyz.c2 c@ }T{ 99 }T
+
+
}TEST