This thread is a discussion of the evolution of fbForth, my file-based implementation of TI Forth. Though I have replaced the sector-based block I/O of TI Forth with a file-based version for fbForth, I have written utilities to browse TI Forth disks and to copy TI Forth blocks to fbForth blocks files (see latest FBLOCKS file far below).
Several obvious advantages to using file I/O over sector I/O:
- It is simple to make a system disk of any larger size and density by just copying the system files to the new (usually larger) disk.
- If there is filespace on the system disk, you can save other useful programs there, such as CorComp's Disk Manager, without fear of corrupting the system disk.
- There is no danger of corrupting a disk by saving Forth blocks---they are only stored to the current blocks file.
- One can use disks of different sizes with impunity.
The only significant disadvantage I can think of is not being able to use the new system with the old. The viewer/copier utilities, which I mentioned above and included in the latest FBLOCKS file posted far below, render that merely an inconvenience. There is also a slight performance penalty to reading 8 records one at a time instead of 4 sectors all at once for each block read. This is somewhat mitigated by saving 896 bytes of VRAM.
I am certainly open to any and all suggestions.
new9.png 2.52KB 5 downloadsfbForth 2.0: A File-Based Cartridge Implementation of TI Forth is now published as a book available for $14.99 on Amazon.com. It is also on Amazon Europe for various similar prices:
fbForth20BookCover_front_LR.png 119.82KB 2 downloads
fbForth downloads & cartridge (fbForth 2.0)—
- fbForth 1.0 (E/A3 executable):
- fbForth 2.0:11 (32KB ROM cartridge) [NOTE: Contains new Font Editor]:
- 80-Column option on TI-startup screen.
- Bug fixes and the handful of words added to the resident dictionary are listed in posts #1067, #1116, #1170, #1173, #1426 and #1441 among others.
- The following additonal words have also been added to the resident dictionary:
- BYE SD0 CMOVE> ABORT"
- DATA[ ]DATA DCHAR SPDCHAR
- CODE: ;CODE
- WRAP PANEL SCROLL
- TALKING? SAY STREAM
- SOUND PLAY PLAYING?
- S0&TIB! SAMS? SAMS! >MAP
- \ N>S DOES>CODE: S|F SM/REM FM/MOD
- ■■■CARTRIDGE available■■■ ($30 + S&H)—PM me if you want me to build you one.
- new9.png 2.52KB 5 downloadsfbForth 2.0 labels (as on the above cartridge image) at $0.50 each + S&H (1st class stamp)—PM me if interested.
5 downloadsFour 8KiB Inverted Bank Binaries + Batch File (packs binaries, inverted or normal, into 32KiB, 64KiB, 128KiB, 256KiB and 512KiB images)—
- fbForth 2.0:7— fbForthBinPack.zip 23.21KB 34 downloads
- fbForth 2.0:8— fbForthBinPack_20160529.zip 22.65KB 23 downloads
- fbForth 2.0:9— fbForthBinPack_20160924.zip 22.79KB 23 downloads
- fbForth 2.0:10— fbForthBinPack_20171019.zip 22.88KB 14 downloads
- fbForth 2.0:11— fbForthBinPack_20181212.zip 22.97KB 5 downloads
- Classic99 & Real Iron 32KiB Inverted Binary (contains latest FBLOCKS and fbForthBinPack ZIPs) [ NOTE: In Classic99.ini, the rom0 line should be: rom0=3|0000|8000|MODS\fbForth200_9.bin ]—
- fbForth 2.0:3— fbForth200_20151026.zip 74.95KB 26 downloads
- fbForth 2.0:4— fbForth200_20151109.zip 77.92KB 30 downloads
- fbForth 2.0:5— fbForth200_20151208.zip 84.88KB 28 downloads
- fbForth 2.0:7— fbForth2.0-7_Cartridge_20160412.zip 85.57KB 30 downloads
- fbForth 2.0:8— fbForth200_20160529.zip 108.07KB 27 downloads
- fbForth 2.0:9— fbForth200_20160924.zip 132.71KB 30 downloads
- fbForth 2.0:10— fbForth200_20171019.zip 154.39KB 16 downloads
- fbForth 2.0:11— fbForth200_20181212.zip 196.55KB 20 downloads
- MESS 32KiB Inverted Binary in RPK file (contains latest FBLOCKS and fbForthBinPack ZIPs)—
- fbForth 2.0:3— fbForth200_MESS_20151026.zip 75.42KB 23 downloads
- fbForth 2.0:4— fbForth200_MESS_20151109.zip 78.4KB 19 downloads
- fbForth 2.0:5— fbForth200_MESS_20151208.zip 85.35KB 20 downloads
- fbForth 2.0:7— fbForth2.0-7_Cartridge_MESS_20160412.zip 86.04KB 15 downloads
- fbForth 2.0:8— fbForth200_MESS_20160529.zip 108.54KB 16 downloads
- fbForth 2.0:9— fbForth200_MESS_20160924.zip 133.19KB 16 downloads
- fbForth 2.0:10— fbForth200_MESS_20171019.zip 154.87KB 7 downloads
- fbForth 2.0:11— fbForth200_MESS_20181212.zip 197.03KB 3 downloads
- Manual—fbForth 2.0: A File-Based Cartridge Implementation of TI Forth—
- [August 18, 2017 Book Publication]—See top of post for more information
- [April 28, 2017 Update]— fbForth_2.0_Manual_20170428.pdf 1.95MB 25 downloads
- [June 20, 2015 Update]— fbForth_2.0_Manual_20150620.pdf 1.52MB 68 downloads
- Previous FBLOCKS files—
- FBLOCKS_20151102.zip 53.95KB 22 downloads
- FBLOCKS_20151109.zip 56.89KB 12 downloads
- FBLOCKS_20151117.zip 59.3KB 12 downloads
- FBLOCKS_20151130.zip 63.19KB 17 downloads
- FBLOCKS_20151204.zip 63.25KB 18 downloads
- FBLOCKS_20151208.zip 63.8KB 17 downloads
- FBLOCKS_20160406.zip 63.83KB 11 downloads
- FBLOCKS_20160412.zip 64.33KB 16 downloads
- FBLOCKS_20160529.zip 65.72KB 20 downloads
- FBLOCKS_20160617.zip 88.15KB 14 downloads
- FBLOCKS_20160620.zip 90.63KB 17 downloads
- FBLOCKS_20160924.zip 90.69KB 17 downloads
- FBLOCKS_20170419.zip 93.09KB 21 downloads
- FBLOCKS_20171019.zip 112.04KB 7 downloads
- FBLOCKS_20171110.zip 135.96KB 7 downloads
- Latest FBLOCKS file—(FIAD file; 90KiB, 360KiB and 400KiB (CF7+/nanoPEB) images; as well as a few font files)—
8 downloads, which includes
CFPMOUNT—This addition to the Compact Flash Utilities persists the mounted volume even after system reset
Block #1 (Welcome Screen) modifications:
Allows changing text colors to White on Blue
Bytes of free Low Memory (Return Stack grows down in this space from R0 )
Bytes of free High Memory (Dictionary grows up from HERE ; Stack grows down from S0)
BLK>FILE—Current Blocks File to DV80 File export utility—ported from TurboForth with permission from Mark Wills
FILE>BLK—DV80 File to Current Blocks File import utility—ported from TurboForth with permission from Mark Wills
Compact Flash Utilities—Allow mounting of CF virtual disks in nanoPEB/CF7+ devices
CF?—Leaves TRUE flag if CF&+/nanoPEB present; FALSE otherwise
CFVOLS—Leaves volume #s associated with DSK1, DSK2 and DSK3
CFMOUNT—Temporarily (until system reset) mounts a volume in DSK1, DSK2 or DSK3
ASM>CODE—Outputs Machine Code in CODE: ... ;CODE format to a file in Append mode
CPYBLK—Block Copying Utility—[fixed bug that would copy blocks from wrong file if they were already in block buffers and had corresponding block numbers]
CRU Words—rewritten with CODE: ... ;CODE
Memory Dump Utility [Note: VLIST is now part of the resident dictionary]
TRACE—Colon Definition Tracing
Disk Catalog Utility, DIR (ported from TurboForth code with Willsy’s permission
Disk Catalog Utility, CAT (reads VIB, FDIR and FDRs to extract information)
More Useful Stack Words etc. (most required by the String Library)
Portable String Library (ported by Willsy and slightly modified by Yours Truly)
TI Forth Block Utilities (includes a windowed viewer/copier)—fixed EMIT8 bug
Compact Flash Utilities for mounting virtual disks in the nanoPEB/CF7+
In addition to the above, there are much-faster-loading binary images of the
- 64-Column Editor
Portable String Library
Edited by Lee Stewart, Wed Dec 12, 2018 9:42 PM.