Solo Forth development history in 2016-12
Description of the page content
Solo Forth development history in 2016-12.
2016-12-02
Fix bright!
.
2016-12-03
Load see
preserving the word lists config.
Rewrite in Z80 and rename paper>
and >paper
. Rename paper>
to attr>paper
. Rename >paper
to paper>attr
.
Rename ~~show
to ~~info
.
Increase return stack; add ?rstack
.
Compact the return stack module.
Fix needing of retry
.
Improve typing of non-printable ASCII chars. New word >printable-ascii-char
, a factor of type-ascii
and fartype-ascii
. New faster and specific check printable-ascii-char?
.
2016-12-04
Add cenum
.
Add #>kk
; document some keyboard words.
Define default /kk
; improve keyboard module.
Fix needing of #>kk
.
Fix conditional definition of /kk
.
Add ~~app-info
. This makes ~~
easier to extend and customize by the application.
Add +perform
.
2016-12-06
Remove mutual need of n>r
, nr>
; complete doc.
Add -order
, +order
.
Add -1|1
; document randomize
, randomize0
.
Simplify documentation of within
, between
.
Add draft of assembler labels.
Rename ?jr-range
and ?page
to ?rel
. The word is common to both assemblers but had different names.
Prepare assembler labels for future development.
Improve documentation of :noname
.
2016-12-07
Add switch
, >cell-string
.
Rename module of switch:
.
Rename and complete the >bstring
words. Rename >cell-string
to >bstring
. Add c>bstring
, 2>bstring
.
Improve switch:
with char and 2-cell clauses.
Rename the internal
module words to extend it. Old: internal
, external
, module
. New: internal
, end-internal
, unlink-internal
.
Fix privatize
.
Add hide-internal
.
Add VFX-like module
. An implementation of VFX's module
by Ulrich Hoffmann in Forth-94.
Simplify end-module
and export
.
Improve module
and expose-module
.
Improve export
with alias
.
Improve doc of module
; remove expose-module
.
Add SwiftForth's package
.
Rename and improve the now called transient
tool.
2016-12-08
Improve transient
: reserve headers space.
Fix u.r
.
Fix /hold
, floored
environmental query strings.
Rename the environment?
module.
Fix needing of ud.
.
Complete environmental queries; improve misc doc.
Rename "common" and "misc" module filenames. The change makes those modules more visible; besides, by default they are listed before their related modules.
Rename exchange
to !exchange
.
Update Makefile to the new module filenames.
Add c!exchange
, new exchange
, cexchange
.
2016-12-13
Fix needing of -1|1
and randomize
.
2016-12-15
Improve doc, names, need of associative-list
.
2016-12-16
Add sconstants
.
Improve needing of some color words. Make color@
, color!
, color-mask@
, color-mask!
, color
and 2color
individually accesible to need
.
2016-12-17
Add /sconstants
and u>str
.
2016-12-18
Improve documentation of escaped-wordlist
.
Add uppers1
; improve need of #chars
, #spaces
.
2016-12-19
Fix name of blocks indexer common module.
Fix requirement of 2avariable
.
2016-12-20
Fix grep expression in fs2fba.sh
.
Fix and improve documentation of variable arrays.
Fix version build number.
Fix and improve several issues in both assemblers. Main changes, in the z80-asm,
assembler: Fix jp>jr
to manage also unconditional jumps; fix relse
, rwhile
and runtil
.
Rewrite ms
and add draft variants of pause
.
Remove (wait)
from the kernel.
Remove old draft variants of ms
and pause
.
Rename jpnext
, jppushhl
: jpnext,
, jppushhl,
. The new names are consistent with the rest of similar words also defined in the kernel: jp,
and call,
. Beside, z80-asm,
, which uses the comma suffix convention, will be the only assembler in a future version.
Improve doc of thiscase
and update old example.
2016-12-21
Add make-block-characters
.
Add block-characters
and 0udg>
.
Add odd?
; rewrite 8*
in Z80.
2016-12-22
Update To-Do; improve some comments.
Add set-font
, get-font
, set-udg
, get-udg
, rom-font
.
Make escaped chars configurable in s\"
and .\"
. This improvement makes it possible to implement alternative escaped chars in BASin notation.
Use "esc-standard" as prefix; remove internal
. The name esc-standard-chars-wordlist
is more consistent than standard-esc-chars-wordlist
with analogous word lists for escaped graphic chars.
internal
has no advantage, because the words marked as internal can never be found anyway during the char-by-char parsing; beside, they could be useful for application-level addons to the escaped chars set to the escaped chars set.
Add even?
.
Improve and document escaped strings words.
Support escaped graphic chars (BASin notation).
Rename "-characters" to "-chars" in graphic words. To be consistent with the notation used in the escaped string modules.
2016-12-23
Add case-sensitive
, lower
, lowers
... First version of a case-sensitive dictionary mode, in order to make the escaped chars case-sensitive, and make Gforth case-sensitive word lists possible.
be-case-sensitive
, be-case-insensitive
, farlowers
.
Store definition names in lowercase. This makes more sense, because this way words can be typed and interpreted in lowercase, which is the default in the sources, also when the case-sensitive mode is activated.
Fix needing of name<name
with old system bank.
Fix missed uppercase names.
Use be-case-sensitive
to define escaped UDG. Escaped UDG chars are not fully compatible with escaped standard chars yet. Also the dictionary searches done by the string parsing must be done in case-sensitive mode.
Use only case-sensitive
to change the case mode.
Save one byte in find-name-from
.
Add udg-chars
to define the default UDG 'A'..'U'.
Improve documentation of search order words.
Add case-sensitive escaped strings. This improvement makes the escaped strings Forth-2012 compliant, and compatible with the ZX Spectrum escaped UDG notation (uppercase '\A'..'\U').
Fix syntax highlighting of strings.
Implement escaped strings search order. This method is analogous to the main search order, and lets the application configure the chars escaped by s\"
, .\"
and other words.
2016-12-24
Fix needing +field-opt-0
and +field-opt-0124
.
Doc leave
; improve/fix minor doc and comments.
Improve ~~
with clearer output.
Add window
, first working version. A basic implementation of text windows.
Finish the window
module; add window-test
.
Add constants for common control keys.
Update to-do list about window
.
2016-12-25
Rename rdraw
, adraw
to rdraw176
, adraw176
. These implementations use only 176 pixel rows of the screen, like Sinclair BASIC. They can be useful for conversions from BASIC, beside the full screen implementations under development, but better with new names.
Add plot176
, improve doc of pixel and line words.
Convert rdraw176
to the z80-asm,
assembler.
Fix jp>jr
.
Convert inkey
, get-inkey
to z80-asm,
. z80-asm,
is smaller and clearer, it will be the only assembler.
Move kernel aliases after the words they point to. This change makes the output of see
clearer in certain cases, because >name
searches the dictionary from oldest to newest definition. Anyway, this is the order aliases are defined outside the kernel.
Rename from
to need-from
and improve its doc. This word is seldom needed. from
is a generic, more useful name in application context.
Improve needing of warn
behaviors. warn.throw
, warn.message
, and warn-throw
.
Improve needing of control chars printing words. 'cr'
, 'tab'
, 'bs'
, crs
, tab
, tabs
, backspace
, backspaces
.
Fix names of im1,
and im2,
; review assemblers.
Make inverse-cond
and jp>jr
z80-asm
-safe. There were problems when z80-asm
was loaded before z80-asm,
, because z80-asm
has words homonymous with Forth words.
Fix: Make cold
reset the behaviour of warn
.
2016-12-26
Fix code typo in fast-(pixel-addr)
.
Start rdraw
, review transient
.
Change the assembler of pixel graphic words. Convert all of them from the deprecated z80-asm
to z80-asm,
.
Try and improve assembler local labels.
Fix rstep
.
Write first version of rdraw
, not working yet.
Improve doc of leave
and ?leave
.
Rename wait-for-key
to discard-key
.
2016-12-27
Add more words to plot and draw in 255x176 mode. The graphic commands of Sinclair BASIC work in 255x176 instead of 255x191. Therefore words that use the same resolution and origin are useful to adapt BASIC programs.
New words:(pixel-addr176)
, pixel-addr176
, set-pixel176
, reset-pixel176
, toggle-pixel176
, test-pixel176
, set-save-pixel176
, aline176
.
Improve doc of the switch:
control structure.
Fix escaped UDG "\C".
Add fyi
.
Update Vim syntax file.
2016-12-28
Add ifelse
operator.
2016-12-29
Modify transient
; add transient-test
. The debugging is not fully finished yet.
Convert names to lowercase in DOS kernel modules.
2016-12-30
Compact the library.
Improve du<
.
Improve .depth
: 4 bytes smaller.
Fix thru-index-reneeded
. Forgot to update it after a rename.
Improve the description of the Forth tools used by GNU make
to build the Forth system.
Compact the library. It didn't fit the 636 KiB available in the TR-DOS disk images. Many blocks have been saved by reorganizing the source code of some modules.
2016-12-31
Reserve for TR-DOS only the minimum memory needed.
Update documentation.
Release version 0.12.0.
Future
Newer changes will not be included here. The Git repository in GitHub can be consulted instead. Beside, the main changes of every version are listed in a file included in every release.