forked from jkotlinski/durexforth
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
360 lines (284 loc) · 11.2 KB
/
CHANGELOG
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
Changelog
2009-02-06: v1.0
* Initial version uploaded to CSDB.
2011-08-08: v1.1
* Added experimental sid module.
* Added hide.
* Removed land.
* Bugfixed not, invert, c@.
* Assembler: Added lbl, -branch, :asmsub, ;asmsub
* Editor
- Renamed edit => vi.
- Renamed 0: => g
- Speed-ups, bug-fixes
2012-08-07: v1.2
* Added hi-res graphics module.
* Added sinus/cosinus module.
* Added 2*, 2/, s<, s>, abs, negate, 0<, d*.
* Assembler: Added :+, :-, +branch
* Bugfix s" - now it behaves the same in compile and immediate mode.
* Removed cells, 0>, write, char.
* Updated documentation.
* Made "load" load byte-by-byte again.
* Added hexdec, ls modules by Kevin Reno.
* Various bugfixes and optimizations.
2012-10-14: v1.21
* Handle failed compiles better. Now it will not be necessary to
reboot computer that often.
* Editor:
- After pressing F7 to compile & run, Restore brings you back to editor.
- "vi" with empty stack now starts editor with empty buffer.
- Added yy command.
- Various bugfixes.
* Bugfix text, ldx,
* Rename jsr-wrap to jsr
* Added 100/.
* Change blkcol to take column, row instead of x, y.
* Updated documentation.
2012-11-01: v1.22
- Bugfixed erase, see
- Removed 2swap, number
- Moved editor buffer from 5000 to 6000, giving more space for code
- Make "fg" fail if editor buffer has been overwritten by code
- Improved border flashing + cursor blinking during compile
- Improved error handling further
- Minor optimizations
2012-11-25: v1.23
* Some pretty good speed and size optimizations.
* Removed rdrop.
2013-06-22: v1.24
* Added create/does>
* Removed fg word - just use vi
* Renamed dec to decimal
* Make c. add trailing space
* Split up ." in ." (compile-time) and .( (run-time)
* Various small improvements
2013-07-22: v1.25
* math: added um/mod, */, */mod
* loops: added do, loop, +loop, i, j
* interpreter: make key up recall previous line entered
* bugfixed r@
* dropped "not" word - replaced by 0=
* rearranged zeropage usage so that parameter stack is a bit bigger
* documented layout of forth words
* bugfixed docs: invert, not "not", flips all bits
* added "bl" word (for space)
2014-03-15: v1.26
* Improved line buffering, removed "linebuf"
* Added assembler labels
* Added "base", "hex", "decimal"
* Renamed "exec" => "execute"
* Added "[char]"
* Added some support for floating point values (float.fs)
* Removed "?immed"
* Made "words" pause when screen is full
* Added "lshift", "rshift"
* Added demo how to modify character ROM
* Optimizations, bugfixes, more documentation
2014-03-30: v1.27
* "forget" did not handle missing word
* factor "more" to separate word
* improve seeing of do..loop
2014-03-31: v1.28
* Improved documentation, describe demos and fix some
error in tutorial.
* Bugfixed some demos.
2014-04-16: v1.3
* Music Macro Language (MML) support!
* Renamed some assembly mnemonics.
asla, lsra, rora, rola, =>
asl,a lsr,a ror,a rol,a
* Allow strings longer than 256 bytes.
* Optimized jsr. (Thanks to Kevin Lee Reno!)
2014-04-20: v1.31
* changed ' ['] to be according to standard
* re-add sid.fs, which contains SID manipulation words
* bugfix . in mml player
2015-03-27: v1.32
* switched to dual parameter stack that is split up in MSB/LSB sections.
this is a nice optimization!
* optimized "branch"
* renamed "var" to "variable"
* added "depth" (gives depth of parameter stack)
* added "sp0" (bottom address of LSB parameter stack)
* added "sp1" (bottom address of MSB parameter stack)
* removed "sp@"
* bugfixed & optimized "ls"
* moved zptmp, zptmp2, zptmp3 and ip to new locations
2015-06-24: v1.33
* editor: changed half-page scrolling from U/D to CTRL+u/d
* editor: many bugfixes and optimizations
* forth: many small optimizations
* forth: made cmove> ANS Forth compliant
* doc: updated memory map documentation
2015-08-08: v1.4
* forth: durexForth is now subroutine threaded instead
of direct threaded. This gives a huge speed improvement,
at the cost of increased RAM usage.
* forth: added "compile," word.
* disk: improved EOF handling.
* editor: bugfixed CTRL+u/d.
* editor: bugfix: "fg" was by mistake hidden.
* doc: added inline assembly example.
* doc: bugfixed turtle graphics demo.
2015-08-13: v1.4.1
* forth: added tail call elimination, i.e., the practice of replacing
jsr/rts with jmp. words that should not be subject to tail call
elimination must be tagged with "no-tce".
* forth: renamed jsr => sys
* forth: renamed immed => immediate
* forth: added postpone
* forth: removed [compile]
* forth: inline drop, 2drop
2015-10-30: v1.4.2
* renamed EOL comment # to \ (PC) or £ (C64)
* renamed :asm => code
* renamed ;asm => ;code
* renamed tell => type
* disabled tail call elimination for s" : ]
* minor optimizations
2015-11-01: v1.4.3
* forth: made +loop work like it should
* forth: removed <=, >=
* forth: renamed <, > to u<, u>
* forth: renamed s<, s> to <, >
* forth: renamed d* to um*
* forth: optimized loop, r>, >r, r@, i
* forth: disabled tail call elimination for (
* editor: faster key delay+repeat
* editor: hid fg
* editor: various bugfixes
* doc: documented min, max, within
2015-11-12: v1.4.4
* forth: added u. unloop leave cell+ cells page key?
* forth: allow input of negative numbers
* forth: optimized cmove, cmove>
* forth: made . print signed numbers
* forth: various bugfixes
* doc: simplified & improved intro + tutorial
* editor: bugfix, exiting editor disabled key repeat
Thanks to Christian Johansson and polluks for bug reports!
2015-12-23: v1.4.5
* forth: / now uses floored signed division
* forth: bugfix for negative number parsing (2- was
interpreted as -20)
* forth: made 2/ sign-extend negative numbers
* forth: added spaces source >in 2over 2swap m+ m*
sm/rem fm/mod dabs dnegate s>d
* forth: changed word order of double-cell integers
* editor: backspace on start of line now doesn't join lines
* doc: mention in tutorial that default is hexadecimal
Thanks to Christian Johansson and polluks for suggestions!
2015-12-30: v1.4.6
* bugfix: disabled tail call elimination for literal ['] [char]
to avoid some crashes
* bugfix: <, rshift, u. did not support negative numbers
* forth: made word finding + numbers case insensitive
* forth: renamed char to getc, and added a new char that works
according to the Forth 2012 standard.
* forth: added abort, abort", 2@, 2!, char+, chars, align, aligned
* forth: key, key? now work only with keyboard
* forth: made quit reset input and fall back to keyboard
* forth: fill ( ch addr len ) changed to fill ( addr len ch )
* forth: allot ( -- n ) changed to allot ( -- )
* forth: made base a variable instead of a value
* forth: changed variable; data field is now after code field
Thanks to Christian Johansson for suggestions!
2016-01-04: v1.5.0 - Forth 2012 core standard compliant!
* forth: made +loop work according to standard
* forth: added support for #, $, %, char parsing.
e.g. #123, $d020, %1001001, 'z'
* forth: ' now aborts if it does not find a word
* forth: made "type" disable c64 quote mode (fixes "words")
* forth: state ( -- flag ) changed to state ( -- addr )
* forth: added count, >body, <#, #>, hold, sign, #, #s, >number, move,
accept
* forth: removed hide, hide-to, hidden, forget, scratch, cmove, cmove>
* forth: fixed yet another tail call elimination crash
* forth: made while/repeat implementation conform to standard
* forth: made word conform to standard
* forth: made "immediate", "no-tce" non-immediate
* forth: made sure immediate does not toggle
Thanks to polluks for suggestions!
2016-01-10: v1.5.1 - bugfix & improvements
* bugfix: evaluate and vi F7 didn't work for multi-line buffers
* bugfix: see did not work on the latest word
* bugfix: e.g. 'A' was parsed as 'a'
* bugfix: case insensitivity did not work for z/Z
* editor: use fg to bring back editor instead of RESTORE
* disk: added include (e.g. "include gfx" loads gfx module)
* disk: added device ( device# -- ) to switch active device
* disk: renamed load => included
* forth: added marker
* forth: made dump work in decimal mode
* forth: made .( immediate
* forth: removed no-tce
* forth: bring back modules
2016-01-16: v1.5.2
* bugfix: find now handles the empty string correctly
* bugfix: editor didn't work correctly with big files (over $1000 bytes)
* forth: the interpreter now prints "ok" after interpreting
* forth: abort" now inverts the text
* editor: open files with 'vi file' instead of 's" file" vi'
* editor: no longer possible to join lines by shift+backspace
in insert mode
2016-01-20: v1.5.3
* bugfix: various fixes for evaluate/vi F7
2016-01-30: v1.5.4
* bugfix: vi :w didn't work with filenames longer than 6 characters
* bugfix: vi :w! captured control characters in filename
* bugfix: changed vi :w to avoid 1541 bugs
* editor: improved feedback when saving
* editor: stop using backup files
* forth: added require, required
* doc: documented assembler, sid
2016-02-02: v1.6.0 - cartridge support!
* forth: now available as a 16 kB cartridge image. the cartridge
has the same functionality as the disk version, but boots faster.
* forth: removed gfx from standard modules
* forth: dropped all usage of BASIC (including float module)
* forth: moved rarely used words to compat module
* asm: renamed zptmp zptmp2 zptmp3 => w w2 w3
* asm: renamed sp0 sp1 => lsb msb
* gfx: moved bitmap graphics area from $8c00-$8fff, $a000-$bfff
to $cc00-$cfff, $e000-$ffff
* doc: expanded assembler documentation
* editor: removed fg
2016-02-10: v1.6.1
* forth: evaluate failed for strings that ended at page boundary
* forth: print error in case include fails
* forth: space optimize of
* forth: moved 2over, 2swap to compat
* cart: made cartridge boot faster
* cart: use Simons' Basic cart type to make $a000-$bfff RAM
* editor: starting without filename now doesn't read from disk
* editor: :w on unnamed buffer now prints "no filename"
2017-08-03: v1.6.2
* forth: various see improvements
* forth: moved >body to compat
2017-10-07: v1.6.3
* bring back float module
2018-04-22: v1.6.4
* forth: INCLUDED now interprets the file
* forth: added ?DO
* forth: added DEFER DEFER! IS to compat
* forth: made loadb return address after last written byte
* debug: made see show branch
2018-10-24: v1.6.5
* editor: fixed dd crash at end of buffer
* editor: slower key repeat settings
* editor: made f7 work in insert mode
2019-05-12: v1.6.6
[Changed]
* sprite: sp-data now use . instead of bl to set 0 bits
* forth: accept now reads keyboard only
[Fixed]
* sprite: sp-on, sp-off had inverted sprite number
* gfx: text now supports upper/lower case
2019-05-20: v1.6.7
[Fixed]
* include, included would clobber the text input buffer.
2019-05-22: v1.6.8
[Changed]
* when parsing, treat shift+space like space. it used to
be like this but accidentally (?) changed in 1.6.0.