The Lambda Lab
/
projects
/
forth.jl.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5899e22
)
I/O
author
Tim Vaughan
<tgvaughan@gmail.com>
Mon, 11 Apr 2016 12:03:51 +0000
(
00:03
+1200)
committer
Tim Vaughan
<tgvaughan@gmail.com>
Mon, 11 Apr 2016 12:03:51 +0000
(
00:03
+1200)
src/forth.jl
patch
|
blob
|
history
diff --git
a/src/forth.jl
b/src/forth.jl
index
aac4c2a
..
5838aea
100644
(file)
--- a/
src/forth.jl
+++ b/
src/forth.jl
@@
-14,16
+14,23
@@
jmp = 0
primitives = Array{Expr,1}()
memory = Array{Int64,1}(64*1024)
primitives = Array{Expr,1}()
memory = Array{Int64,1}(64*1024)
-
LATEST
= 0
-
HERE
= 1
+
latest
= 0
+
here
= 1
# Intperpreter state
# Intperpreter state
-
STATE
= 0
+
state
= 0
# Current radix
# Current radix
-BASE = 10
+base = 10
+
+# Input buffer
+
+tib_size = 4096
+tib = length(memory) - tib_size
+numtib = 0
+toin = 0
# Stack manipulation functions
# Stack manipulation functions
@@
-158,10
+165,10
@@
end)
# Built-in variables
# Built-in variables
-defVar("STATE", :
STATE
)
-defVar("HERE", :
HERE
)
-defVar("LATEST", :
LATEST
)
-defV
AR("BASE", :BASE
)
+defVar("STATE", :
state
)
+defVar("HERE", :
here
)
+defVar("LATEST", :
latest
)
+defV
ar("BASE", :base
)
# Constants
# Constants
@@
-208,7
+215,14
@@
end)
# I/O
# I/O
+defConst("TIB", tib)
+defVar("#TIB", :numtib)
+defVar(">IN", :toin)
+
KEY = defPrim("KEY", quote
KEY = defPrim("KEY", quote
+ if toin >= numtib
+
+ end
jmp = NEXT
end)
jmp = NEXT
end)