1 ASM sources are greatly polished. More explanations are added as
\r
2 comments. Split environmental variable 'systemID' into 'CPU' and
\r
3 'Model'. Most hForth source files can be used with other CPUs
\r
4 without modification by using conditional compilation (see
\r
5 COREEXT.F and DOUBLE.F for example). Thanks Neal Crook for comments
\r
6 and many valuable suggestions. Now all ASM sources can be assembled
\r
7 by TASM 1.0 and MASM 6.11. Many typographical errors are corrected.
\r
9 Control structure words are all revised. Control-flow stack is
\r
10 implemented on data stack. Control-flow stack item is represented by
\r
11 two data stack items as below:
\r
13 Control-flow stack item Representation (parameter and type)
\r
14 ----------------------- -------------------------------------
\r
15 dest control-flow destination 0
\r
16 orig control-flow origin 1
\r
18 case-sys x (any value) 3
\r
19 do-sys ?DO origin DO destination
\r
20 colon-sys xt of current definition -1
\r
22 hForth can detect a nonsense clause such as "BEGIN IF AGAIN THEN"
\r
23 easily. CS-ROLL and CS-PICK can be applied to the list of dests and
\r
24 origs only. This can be verified by checking whether the ORed type
\r
25 is 1. I can not think of a control-structure-mismatch that current
\r
26 hForth cannot catch.
\r
28 Some bugs are fixed including RESTORE-INPUT.
\r
34 Add TRHOW after FLUSH-FILE in SAVE-BUFFERS and BYE in MSDOS.F.
\r
37 Fix pack" in HF86ROM.ASM and HF86RAM.ASM.
\r
38 Fix SIO.F according to new EXE program structure.
\r
43 MSDOS.F: Fix RESTORE-INPUT to restore BLK correctly.
\r
45 Facelift to be used with other CPUs.
\r
47 Split environmental variable systemID into CPU and Model.
\r
49 Add Neal Crook's microdebugger and comments on assembly definitions.
\r
51 Add $THROWMSG macro and revise accordingly.
\r
53 Remove 'NullString' from assembly source.
\r
57 DOSEXEC.F: Revise (DOSEXEC) in MSDOS.F.
\r
59 OPTIONAL.F: Fix 'compiles>' for colon-sys.
\r
61 OPTIONAL.F: Remove PICK which was added in assembly source.
\r
62 OPTIONAL.F: Revise CASE, ENDCASE, OF, ENDOF, RETRY for
\r
64 OPTIONAL.F: Revise '.xt' due to the removal of 'do."' and change
\r
67 Revise PICK to catch stack underflow.
\r
69 Implement control-flow stack on data stack. Control-flow stack
\r
70 item consists of two data stack items, one for value
\r
71 and one for the type of control-flow stack item.
\r
72 control-flow stack item data stack representation
\r
73 dest control-flow_destination 0
\r
74 orig control-flow_origin 1
\r
76 case-sys x (any value) 3
\r
77 do-sys ?DO_origin DO_destination
\r
78 colon-sys xt_of_current_definition -1
\r
80 'bal' is now the depth of control-flow stack.
\r
82 Introduce 'notNONAME?'
\r
83 Add 'bal+' and 'bal-'. Drop 'orig+', 'orig-', 'dest+', 'dest-',
\r
84 'dosys+', and 'dosys-'.
\r
85 Revise ':NONAME', ':', ';', 'linkLast', 'head,', RECURSE, 'DOES>',
\r
86 CONSTANT, CREATE, VALUE, VARIABLE, and QUIT.
\r
87 This change makes RECURSE work properly in ':NONAME ... ;'
\r
88 and '... DOES> ... ;'.
\r
89 Revise 'rake', AGAIN, AHEAD, IF, THEN, +LOOP, BEGIN, DO, ELSE, LOOP,
\r
91 Revise SLITERAL, '."', 'doS"' to allow a string larger than
\r
93 Revise $INSTR and remove 'do."'.
\r
95 ASM8086.F: Revise ';CODE' for control-flow stack.
\r
96 COREEXT.F: Provide CODE definition of ROLL.
\r
97 COREEXT.F: Revise '?DO' for control-flow stack.
\r
98 COREEXT.F: Revise 'C"' to catch exception -24 'parsed string overflow'.
\r
100 HF86EXE.ASM: Revise MAX-UD.
\r
102 HF86EXE.ASM: Replace 'COMPILE,' with 'code,' in the definition of
\r
105 DOUBLE.F: Fix 'M+'. Thanks M. Edward Borasky.
\r
109 ASM8086.F: ';CODE' is fixed. END-CODE is changed.
\r
111 MSDOS.F: Shift value of 'ior' of FILE words to system THROW code area,
\r
113 MSDOS.F: Remove subtle bug in 'SAVE-SYSTEM-AS'.
\r
118 Revise FM/MOD and SM/REM to catch result-out-of-range error in
\r
121 Rename 'x,' to 'code,'; 'x@' to 'code@'; 'x!' to 'code!';
\r
122 'xb@' to 'codeB@' and 'xb!' to 'codeB!'.
\r
124 Rename non-Standard 'parse-word' to PARSE-WORD.
\r
126 Drop '?doLIST' and revise 'optiCOMPILE,'.
\r
128 Drop 'LIT,:' all together.
\r
129 Return CELLS to non-IMMEDIATE definition.
\r
135 ';CODE' is redefined following the change of 'DOES>' and 'doCREATE'.
\r
137 Add RETRY described by Dr. Astle in Forth Dimensions 17(4), 19-21 (1995).
\r
139 Make 'lastXT' VALUE word.
\r
142 Replace 'xhere' with HERE.
\r
143 Revise doVALUE, VALUE, TO, and all $VALUE macros.
\r
145 Revise doCREATE, CREATE, pipe, DOES>, and >BODY.
\r
146 'pipe' is no longer processor-dependent.
\r
148 Move ERASE to ASM8086.F.
\r