Fully working forth!
This commit is contained in:
parent
fc04be52cc
commit
cde1cddcc1
|
@ -36,9 +36,9 @@
|
||||||
FALSE R10 ; Current state is Interpreting
|
FALSE R10 ; Current state is Interpreting
|
||||||
LOADUI R9 $Interpret_Entry ; Get Address of last defined function
|
LOADUI R9 $Interpret_Entry ; Get Address of last defined function
|
||||||
LOADUI R8 $HEAP ; Get Address of HEAP
|
LOADUI R8 $HEAP ; Get Address of HEAP
|
||||||
# LOADUI R0 0x1100 ; Need number to engage tape_01
|
LOADUI R0 0x1100 ; Need number to engage tape_01
|
||||||
# FOPEN_READ ; Load Tape_01 for Reading
|
FOPEN_READ ; Load Tape_01 for Reading
|
||||||
# MOVE R7 R0 ; Make Tape_01 Default IO
|
MOVE R7 R0 ; Make Tape_01 Default IO
|
||||||
LOADUI R13 $Cold_Start ; Intialize via QUIT
|
LOADUI R13 $Cold_Start ; Intialize via QUIT
|
||||||
JSR_COROUTINE R11 ; NEXT
|
JSR_COROUTINE R11 ; NEXT
|
||||||
HALT ; If anything ever returns to here HALT
|
HALT ; If anything ever returns to here HALT
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
;; And jumps to NEXT
|
;; And jumps to NEXT
|
||||||
:EXIT_Text
|
:EXIT_Text
|
||||||
"EXIT"
|
"EXIT"
|
||||||
:EXIT
|
:EXIT_Entry
|
||||||
NOP ; No previous link elements
|
NOP ; No previous link elements
|
||||||
&EXIT_Text ; Pointer to name
|
&EXIT_Text ; Pointer to name
|
||||||
NOP ; Flags
|
NOP ; Flags
|
||||||
|
@ -93,7 +93,7 @@
|
||||||
:Drop_Text
|
:Drop_Text
|
||||||
"DROP"
|
"DROP"
|
||||||
:Drop_Entry
|
:Drop_Entry
|
||||||
&EXIT ; Pointer to EXIT
|
&EXIT_Entry ; Pointer to EXIT
|
||||||
&Drop_Text ; Pointer to Name
|
&Drop_Text ; Pointer to Name
|
||||||
NOP ; Flags
|
NOP ; Flags
|
||||||
&Drop_Code ; Where assembly is Stored
|
&Drop_Code ; Where assembly is Stored
|
||||||
|
@ -825,6 +825,9 @@
|
||||||
CMPSKIPI.NE R0 4 ; If EOF
|
CMPSKIPI.NE R0 4 ; If EOF
|
||||||
JUMP @cold_done ; Stop processing
|
JUMP @cold_done ; Stop processing
|
||||||
|
|
||||||
|
CMPSKIPI.G R0 0 ; If ERROR
|
||||||
|
JUMP @cold_done ; Stop processing
|
||||||
|
|
||||||
CMPSKIPI.NE R0 9 ; If Tab
|
CMPSKIPI.NE R0 9 ; If Tab
|
||||||
JUMP @Word_Done ; Be done
|
JUMP @Word_Done ; Be done
|
||||||
|
|
||||||
|
@ -854,6 +857,8 @@
|
||||||
FPUTC ; Make it visible
|
FPUTC ; Make it visible
|
||||||
CMPSKIPI.NE R0 4 ; IF EOF
|
CMPSKIPI.NE R0 4 ; IF EOF
|
||||||
JUMP @Word_Done ; Be done
|
JUMP @Word_Done ; Be done
|
||||||
|
CMPSKIPI.G R0 0 ; If ERROR
|
||||||
|
JUMP @cold_done ; Stop processing
|
||||||
CMPSKIPI.NE R0 10 ; IF Line Feed
|
CMPSKIPI.NE R0 10 ; IF Line Feed
|
||||||
JUMP @Word_Done ; Be done
|
JUMP @Word_Done ; Be done
|
||||||
JUMP @Word_Comment ; Otherwise keep looping
|
JUMP @Word_Comment ; Otherwise keep looping
|
||||||
|
@ -1115,7 +1120,8 @@
|
||||||
'00000002' ; Flags [F_IMMED]
|
'00000002' ; Flags [F_IMMED]
|
||||||
&SEMICOLON_Code ; Where assembly is Stored
|
&SEMICOLON_Code ; Where assembly is Stored
|
||||||
:SEMICOLON_Code
|
:SEMICOLON_Code
|
||||||
LOADUI R0 $EXIT ; Get EXIT Pointer
|
LOADUI R0 $EXIT_Entry ; Get EXIT Pointer
|
||||||
|
ADDUI R0 R0 12 ; Adjust pointer
|
||||||
PUSHR R0 R8 ; Push EXIT onto HEAP and increment HEAP pointer
|
PUSHR R0 R8 ; Push EXIT onto HEAP and increment HEAP pointer
|
||||||
FALSE R0 ; Prep NULL for Flag
|
FALSE R0 ; Prep NULL for Flag
|
||||||
STORE R0 R9 8 ; Set Flag
|
STORE R0 R9 8 ; Set Flag
|
||||||
|
|
Loading…
Reference in New Issue