home *** CD-ROM | disk | FTP | other *** search
- \ CASE.SEQ Case statment by Bob Smith
-
- comment: \ Moved to KERNEL86.SEQ
-
- CODE (OF) ( n1 n2 -- n1 ) ( or ) ( n1 n1 -- )
- AX POP RP SP XCHG 0 [RP] AX CMP 0=
- IF SP RP XCHG AX POP IP INC IP INC NEXT
- ELSE SP RP XCHG 0 [IP] IP MOV NEXT
- THEN END-CODE
-
- comment;
-
- : CASE ( -- )
- <MARK 0 ; IMMEDIATE
-
-
- : ENDOF ( -- )
- COMPILE BRANCH >MARK SWAP >RESOLVE ; IMMEDIATE
-
- : OF ( n1 n2 -- n1 ) ( n1 n1 -- )
- COMPILE (OF) >MARK ; IMMEDIATE
-
- : NRESOLVE ( 0 n1 n2 ... n -- )
- BEGIN DUP
- IF >RESOLVE 0
- ELSE -1 THEN
- UNTIL DROP ;
-
- : ENDCASE ( -- )
- NRESOLVE DROP ; IMMEDIATE
-