Skip to content

Releases: jkotlinski/durexforth

v5.0.0-preview

23 Apr 10:56
Compare
Choose a tag to compare
v5.0.0-preview Pre-release
Pre-release

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

20 Jul 09:23
Compare
Choose a tag to compare

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

14 May 21:14
Compare
Choose a tag to compare

[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

22 Mar 09:48
Compare
Choose a tag to compare

[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

22 May 19:42
3bcb5ee
Compare
Choose a tag to compare

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

20 May 21:17
b651447
Compare
Choose a tag to compare

[Fixed]

  • include, included would clobber the text input buffer.

v1.6.6

12 May 15:39
e9c3d72
Compare
Choose a tag to compare

[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

24 Oct 12:45
Compare
Choose a tag to compare
  • editor: fixed dd crash at end of buffer
  • editor: slower key repeat settings
  • editor: made f7 work in insert mode

v1.6.4

22 Apr 12:37
Compare
Choose a tag to compare
  • 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

v1.6.3 - bring back float module

07 Oct 20:57
Compare
Choose a tag to compare

Brought back the float module that was removed in v1.6.0. Please keep in mind, it will crash if running from cartridge!