Releases: jkotlinski/durexforth
Releases · jkotlinski/durexforth
v5.0.0
[5.0.0] - 2024-11-19
Added
- An improved SEE which should decode most colon words.
- "durexForth vx.x.x" boot message.
- RDERR: read and print error channel of current device.
- ERASE, PARSE, TRUE, FALSE, SPLIT, END-CODE
Changed
- S" max string length is reduced to 255 characters.
- S" and .( no longer support multiple lines.
- ( now only supports multiple lines when reading from text file.
- Define MML strings using MML"
- Changed REFILL to Forth standard behavior: Fill the input buffer from the input source, returning true if successful.
- Do not print "ok" while compiling. Makes it easier to re-enter multi-line word definitions in interpreter.
- Moved tests to a separate disk (tests.d64).
- gfx: Renamed ERASE to PEN.
- #> (the pictured numeric output string buffer) now uses its own buffer chopped from the end of PAD.
- CHAR no longer does REFILL on missing text.
- EVALUATE now accepts multi-line strings.
- ( refills to accept multi-line comments when parsing EVALUATE strings.
- Defining words based on HEADER now abort with an error on missing text.
Removed
- GETC, 100/, INTERPRET, ;CODE (replace with: RTS, END-CODE)
Fixed
- DOWORDS incorrectly quit for some non-false xt return values.
- POSTPONE error handling.
- Documented DEFCODE, #S, D+
- LOADB/SAVEB/DOS hang on device not present.
- LOADB changed current file.
- REQUIRE(D) stopped working after 16 INCLUDE(D) files.
- Undefined behaviour after loading base.fs. broke in 1.5.1.
- V: allow entering control characters inside quotes only.
- V: visual bug when saving.
- SAVEB did not restore input stream.
- turtle: BACK did not go back.
- QUIT could fail to reinitialize graphics.
- Various maintenance patches.
v5.0.0-preview
Added
- An improved SEE which should decode most colon words.
- "durexForth vx.x.x" boot message.
- RDERR: read and print error channel of current device.
- ERASE, PARSE, TRUE, FALSE, SPLIT
Changed
- S" max string length is reduced to 255 characters.
- S" and .( no longer support multiple lines.
- ( now only supports multiple lines when reading from text file.
- Define MML strings using MML"
- Changed REFILL to Forth standard behavior: Fill the input buffer from the input source, returning true if successful.
- #> (the pictured numeric output string buffer) now uses its own buffer, separate from HERE.
- Do not print "ok" while compiling. Makes it easier to re-enter multi-line word definitions in interpreter.
- Moved tests to a separate disk (tests.d64).
- gfx: Renamed ERASE to PEN.
Removed
- GETC, 100/
Fixed
- DOWORDS incorrectly quit for some non-false xt return values.
- POSTPONE error handling.
- Documented DEFCODE, #S
- LOADB/SAVEB/DOS hang on device not present.
- REQUIRE(D) stopped working after 16 INCLUDE(D) files.
- Undefined behaviour after loading base.fs. broke in 1.5.1.
- V: allow entering control characters inside quotes only.
- V: visual bug when saving.
- SAVEB did not restore input stream.
- Various maintenance patches.
- turtle: BACK did not go back.
- QUIT could fail to reinitialize graphics.
v4.0.0
Changed
- OPEN/CHKIN/CHKOUT no longer return a file number.
- IOABORT no longer accepts a file number.
- INCLUDED now prints error message on failed OPEN.
- REQUIRED now aborts with "too many" if 16 files are already INCLUDED.
- V: Moved text buffer to $a000-$cbff.
- Moved and shrunk PAD area.
- Optimized * / EXIT C! C@ 0=
- Data stack effects of :/;/:NONAME/DEFINE. Starting with 2.0.0, :/:NONAME/DEFINE would put a value on the data stack, to be later consumed by ;. This is no longer the case.
Fixed
- LOADB/SAVEB could change active device.
- IOABORT did not print all error messages.
- REFILL would not properly switch back to keyboard after EOF.
- Cartridge initialization for Ultimate64.
- Press RESTORE to QUIT. (v3.0.0 inadvertedly changed this to RUN/STOP+RESTORE.)
- V: Abort when loading a text file bigger than 44 blocks = 11,176 bytes.
- V: Inserting SHIFT+RETURN would make things weird.
- V: Improved I/O error handling.
- sid-demo broke in 2.0.0.
- :NONAME did not work with RECURSE.
- Rewrote UD/MOD in assembly
Removed
- BYE, SEE, XT>
- HIDDEN word header flag.
v3.0.0
[3.0.0] - 2021-05-14
Changed
- Dictionary restructured, now header and code data are split.
- Header data is not a linked list, and grows downward from $9fff. Record structure:
len_flags | str | xt
- LATEST changed from VARIABLE to VALUE
- V internal words hidden, BUFSTART no longer variable, fixed at $7000.
- Restore key is clean NMI, Run/Stop Restore to QUIT
- FIND-NAME now returns a name token per the standard proposal
- LS abort on LOADB error, PAGE upon success.
- LS now accepts wildcards, drive #'s or not.
- RDIR improve placement of MORE.
- Prompt displays
ful
when there is less than 256 bytes of dictionary space left.
Added
- RDIR will display directory formatted data anywhere in memory.
- PAD Scratch pad memory set to cassette buffer. Untouched by DurexForth
- DOWORDS, which allows executing an xt for every word in the wordlist
- Turn-key operation utilities in TURNKEY:
- SAVE-PACK packs the dictionary together before saving, which unpacks at runtime.
- SAVE-PRG removes the dictionary and saves the program
- TOP returns the address of the last byte of the header structure. The value at this address will always be 0.
- TOP! can be used to specify the position of header data.
- HIDE removes a word from the word list, while leaving its definition in place.
- DEFINE assigns HERE to a word in the word list and begins compilation.
- DEFCODE does the same as DEFINE, but begins a CODE: segment instead.
- V commands: A, R, +, -, HOME, e, C, D, s, S, H, L, M, ^w, f, F
- Words for file and device IO in OPEN: and IO:
- Utility for drive status and DOS commands in DOS:
Fixed
- BRK vector was redirected to QUIT
- RS232: NMI vector was redirected to QUIT
- SP-X! had bug in most significant bit
- GFX: PEEK fetched bitmap pixels from ROM instead of RAM
- V did not compile in DECIMAL mode.
- Documented SEE concatenating subsequent :NONAME
- Made QUIT do CLRCHN instead of CHKIN
- Made QUIT close all open files.
Removed
- Removed undocumented >DFA, OPENW and CLOSEW words.
v2.0.0
[2.0.0] - 2020-03-22
Changed
- Startup BASE is now DECIMAL instead of HEX.
- S" now only works when compiling.
- Renamed VI to V, to avoid confusion with vi.
- Renamed >CFA to >XT.
Added
- :NONAME, BYE, /STRING, PARSE-NAME, FIND-NAME
- VICE label dumper. 'include viceutil' and DUMP-LABELS
to generate a label file for VICE debugging. - V: * and n commands
Fixed
- Evaluating an INCLUDE would corrupt the evaluated string.
Broke in 1.6.7. - Code stripping tutorial did not work.
- WORD did not work while interpreting.
- REQUIRED marked a file as included even if it was not found.
- MARKER did not reset REQUIRED state.
- V: / was broken when searching for a single character.
- V: q: switched in BASIC rom.
- V: error when clearing buffer with dd.
- V: cancelling :w! changed the active filename.
v1.6.8
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.
v1.6.7
[Fixed]
- include, included would clobber the text input buffer.
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
v1.6.5
- editor: fixed dd crash at end of buffer
- editor: slower key repeat settings
- editor: made f7 work in insert mode
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