OSDN Git Service

V309 Modified APPEND" in the long run, clusters can become non-contiguous
[fast-forth/master.git] / MSP430-FORTH / BOOT.f
index f1a04ca..1f07be2 100644 (file)
 \
 \ it's an example:
 
+\ https://forth-standard.org/standard/core/DUP
+\ DUP      x -- x x      duplicate top of stack
+    [UNDEFINED] DUP
+    [IF]
+    CODE DUP
+BW1 SUB #2,PSP      \ 2  push old TOS..
+    MOV TOS,0(PSP)  \ 3  ..onto stack
+    MOV @IP+,PC     \ 4
+    ENDCODE
+
+\ https://forth-standard.org/standard/core/qDUP
+\ ?DUP     x -- 0 | x x    DUP if nonzero
+    CODE ?DUP
+    CMP #0,TOS      \ 2  test for TOS nonzero
+    0<> ?GOTO BW1    \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/DROP
+\ DROP     x --          drop top of stack
+    [UNDEFINED] DROP
+    [IF]
+    CODE DROP
+    MOV @PSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
     [UNDEFINED] =
     [IF]
 \ https://forth-standard.org/standard/core/Equal
 \ because the risk of crushing thereafter.
 \ Interpreting mode as below is required:
 \ ------------------------------------------------------------------------------
-    4 =                     \ from SYS
+    DUP 4 =                 \ TOS = SYS value
     [IF]                    \ if PUC event is <SW1+RESET> or -1 SYS
+        DROP
         RST_RET             \ remove definitions above
         LOAD" SD_TEST.4TH"  \ load a file to test the SD_Card driver
     [ELSE]                  \ else
-        ' SYS $0A + EXECUTE \ resumes WARM to remove definitions above
+        ' SYS $0A + EXECUTE \ return to n SYS to remove definitions above
     [THEN]                  \ then