-
Notifications
You must be signed in to change notification settings - Fork 1
/
f83-fixs.txt
133 lines (104 loc) · 5 KB
/
f83-fixs.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
This file describes most of the changes to F83 between versions
1.0 and 2.0.
It is always difficult to follow a moving target. In the
six months since we released version 1.0 we have received so many
good suggestions that the temptation to use some of them was
impossible to resist. To all of you who contributed, thank you
again. We will try to avoid any further changes until 1985 at the
earliest. If there are bugs, we will report them separately.
Updating the various versions is a lot of work even without offering
any support, and we are tired. It is time to move on to applications,
and do something useful for a change.
The changes were as follows:
General:
* Removed the superfluous NOOP from all self-defining words.
* Changed all instances of C; to END-CODE ( by request).
* Partitioned META into META.BLK ( the meta-compiler ) and
KERNEL.BLK ( the source for the kernel ).
META:
* Fixed .SYMBOLS
KERNEL:
* Removed null from the system. Sealed search orders no longer
require the old magic null word.
* Fixed PARSE and PARSE-WORD. They used to increment >IN past
the end of source text.
* Changed CP/M to DOS.
* Moved kernel DOS words into DOS vocabulary.
* Added USER VARIABLE IN-FILE. All file operations read from IN-FILE
and write to FILE. This allowed removing the confusing FILES
vocabulary. User interface is unchanged: FROM <file> makes <file>
the IN-FILE. OPEN <file> makes both the same. LOAD uses IN-FILE,
then resets it to FILE. This is probably appropriate.
* FBLOCK and FBUFFER take an fcb address and a block number.
* SWITCH exchanges FILE and IN-FILE.
* ?UPPERCASE conditionally forces a string to upper case. Used by
DEFINED and FORGET.
* EMIT primitives renamed: (CONSOLE) is console only, (EMIT) is
for console and maybe also printer, depending on PRINTING.
* Fixed CONTROL.
* Made default (PRINT) not use LISTST, because it hangs on
many systems. Optionally use LISTST if available for faster spooling.
* Renamed FORTH control character table from CC1 to CC-FORTH.
* Changed DO to ?DO in -TRAILING.
* Deleted HEADER from CREATE, made CREATE do it all.
* Changed ,VIEW to make file 0 if BLK is 0.
* Added \S for comment to end of screen.
* Added better error handling for disk reads and writes.
* Accessing a BLOCK which is Out of Range no longer leaves the
buffer assigned to the non-existent block.
* Changed DISCARD to mark discarded buffer as empty.
* .FILE and FILE? added to display file names.
EXTEND:
* Split ONLY into the ONLY operator and the ROOT vocabulary.
* Removed OPEN-FILE from FILE: and added it to VIEW.
* Added VIEWS which installs files into VIEW-FILES table.
* Moved SET-DRIVE into EXTEND, changed it to use the BIOS
to determine whether a drive is legal, and renamed it SELECT.
* DRIVE? prints the current drive.
* Added A: and B: which select drive A or B.
* Added error control into MAKE, CLOSE, READ, and WRITE.
CPU:
* Added three words for decompiling DOES> words.
* Renamed FIX to UNBUG.
UTILITY:
FORTH:
* Added :: for immediate compilation.
* VIEW is now wordier. It prints the file name and screen number of
the source code for a word, then OPENs the file and LISTs the code.
* Made SEARCH much faster when CASE is significant ( false),
by SCANning for the first character. Turn CAPS OFF for speed.
* Added .SCR which prints current screen number and file name.
It is used by LIST and EDITOR .ALL.
* Changed N and B to include DISK-ERROR OFF.
EDITOR:
* Changed ?TEXT to use PARSE instead of WORD. This allows
commands like "F ^" to use the contents of the buffers.
* Modified auto display updating to work correctly with both
smart and dumb terminals.
* Added FIX which VIEWs and EDITs.
* Renamed JUST to J. I use it a LOT.
* Made ED smarter: it does not change context if already editing.
* ID field defaults to blanks, not nulls.
* GET-ID waits for an extra character to allow you to read what
you typed before hitting return.
Showing:
* SHOW now uses (SEMIT) which outputs to either the console
or the printer, but not both, depending on PRINTING, which is
reset by (ABORT").
* SHOW works for small files: PR replaces out-of-range blocks with
LOGO.
* FOOTING is vectored.
* PAGE defaults to linefeeds. Many people did not have form-feed
capability.
Multitasker:
* Renamed BACKGROUND to BACKGROUND: because it compiles until
a semi-colon.
NEW FILES:
* HUFFMAN.BLK contains the source for the Huffman encoding used
on the files as shipped.
* CLOCK.BLK shows how to use a clock/calendar to automatically set
the editor date stamp when you boot. The code is for a CompuPro
System Support 1, but should give you some hints.
* HUNT.BLK has source for HUNT.
HUNT <sub> lists all words whose name contains the given substring.
Now what have I forgotten? I'm sure you will let me know.