• R/O
  • HTTP
  • SSH
  • HTTPS

fig-forth-68000: Commit

Source code for fig-forth-68000


Commit MetaInfo

Revision657952151fd9c0a567bbaa7cd75f01ad447e1b9c (tree)
Time2023-07-02 22:17:28
AuthorJoel Matthew Rees <joel.rees@gmai...>
CommiterJoel Matthew Rees

Log Message

More in README about directions from here

Change Summary

Incremental Difference

--- a/README
+++ b/README
@@ -1,8 +1,10 @@
1-Two relatively functional versions of fig-Forth for the 68000 exist in this repository:
1+Two relatively functional versions of fig-Forth for the 68000 exist in this
2+repository:
23
34 FIG68K.S is a straight adaptation of the fig 6800 model by Dave Lion, et. al.,
4-mapping the VM in the 6800 model to registers and instructions in the 68000
5-(via my previous not-quite functional adaptation to the 6809).
5+with a 32-bit cell and address width, mapping the VM in the 6800 model
6+to registers and instructions in the 68000 (via my previous not-quite
7+functional adaptation to the 6809).
68
79 FIG68KRT.S modifies the adaptaion to use a native 68000 subroutine call/return
810 in the inner interpreter, instead of the JMP NEXT mechanism of the straight model.
@@ -20,17 +22,40 @@ adaptation.)
2022
2123 FIGRL68K.S and FIGSB68K.S were early false steps.
2224
23-FIG68KSB.S is another false step that goes partway through using subroutine calls
24-instead of pointers to thread the definitions. It's not the right step after
25-FIG68KRT.S, and has also been abandoned.
25+FIG68KSB.S is another false (I think) step that goes partway through using
26+subroutine calls instead of pointers to thread the definitions. It's not the
27+right step after FIG68KRT.S, and I think I have abandoned it, also.
2628
2729 fig58kts.s was sort of between FIG68KSB.S and FIG68KRT.S
2830
2931 The 6800, 6801, and 6809 source files are provided for reference here, but will
3032 not be kept up-to-date.
3133
34+The license follows the MIT model license and is in each file itself.
35+
36+=====
37+
3238 I'm not sure whether I will proceed from here to flatten FIG68KRT.S (and probably
33-add the assembler), or proceed to convert BIF-6809 to the 68000.
39+add the assembler), or proceed to convert BIF-6809 to the 68000. Or go back to
40+trying to write novels.
41+
42+A conversion of BIF-6809 to the 68000 will want macros such as BIF-6809 uses.
43+NEXT will be something like MOVE.L (IP)+,A0; JMP (A0) , since memory indirection
44+isn't available before the 68020. But it's still only four bytes of op-code, so
45+it's not so bad. And BIF-6809 also has the (mis-)feature of using calls instead of
46+pointers for the threading.
47+
48+FIG68KRT.S has the feature of the dictionary being most like a standard symbol
49+table, which is the direction I thought I wanted to head with this -- compiler
50+with its own libraries available to the target program, ultimately able to compile
51+a split-stack version of Small C.
52+
53+Things that need to be added and changed to get from here to there:
54+
55+Support for global variables will be removed. In exchange, allocation in the
56+user/task variable space must be managed, and the inter-module call interface
57+must be designed.
58+
59+
3460
35-The license follows the MIT model license and is in each file itself.
3661
Show on old repository browser