Search the Community
Showing results for tags 'ti forth'.
Found 2 results
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. ...lee ---------------------------------------------------------------------- fbForth 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: fbForth now has a website of its own: fbforth.stewkitt.com fbForth downloads & cartridge (fbForth 2.0)— fbForth 1.0 (E/A3 executable): Executable and FBLOCKS—fbForth100b.zip Manual—fbForth_1.0_Manual_a.pdf fbForth 2.0:12 (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 additional 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. fbForth 2.0 labels (as on the above cartridge image) at $0.50 each + S&H (1st class stamp)—PM me if interested. Four 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 fbForth 2.0:8—fbForthBinPack_20160529.zip fbForth 2.0:9—fbForthBinPack_20160924.zip fbForth 2.0:10—fbForthBinPack_20171019.zip fbForth 2.0:11—fbForthBinPack_20181212.zip fbForth 2.0:12—fbForthBinPack_20191110.zip 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 fbForth 2.0:4—fbForth200_20151109.zip fbForth 2.0:5—fbForth200_20151208.zip fbForth 2.0:7—fbForth2.0-7_Cartridge_20160412.zip fbForth 2.0:8—fbForth200_20160529.zip fbForth 2.0:9—fbForth200_20160924.zip fbForth 2.0:10—fbForth200_20171019.zip fbForth 2.0:11—fbForth200_20181212.zip fbForth 2.0:12—fbForth200_20191116.zip MESS 32KiB Inverted Binary in RPK file (contains latest FBLOCKS and fbForthBinPack ZIPs)— fbForth 2.0:3—fbForth200_MESS_20151026.zip fbForth 2.0:4—fbForth200_MESS_20151109.zip fbForth 2.0:5—fbForth200_MESS_20151208.zip fbForth 2.0:7—fbForth2.0-7_Cartridge_MESS_20160412.zip fbForth 2.0:8—fbForth200_MESS_20160529.zip fbForth 2.0:9—fbForth200_MESS_20160924.zip fbForth 2.0:10—fbForth200_MESS_20171019.zip fbForth 2.0:11—fbForth200_MESS_20181212.zip fbForth 2.0:12—fbForth200_MESS_20191116.zip 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 [June 20, 2015 Update]—fbForth_2.0_Manual_20150620.pdf Addendum 2.0:8— fbForth_2.0_Manual_Addendum.pdf fbForth_2.0_Manual_Addendum_20160620.pdf Previous FBLOCKS files— FBLOCKS_20151102.zip FBLOCKS_20151109.zip FBLOCKS_20151117.zip FBLOCKS_20151130.zip FBLOCKS_20151204.zip FBLOCKS_20151208.zip FBLOCKS_20160406.zip FBLOCKS_20160412.zip FBLOCKS_20160529.zip FBLOCKS_20160617.zip FBLOCKS_20160620.zip FBLOCKS_20160924.zip FBLOCKS_20170419.zip FBLOCKS_20171019.zip FBLOCKS_20171110.zip FBLOCKS_20181212.zip Latest FBLOCKS file—(FIAD file; 90KiB, 360KiB and 400KiB (CF7+/nanoPEB) images; as well as a few font files)—FBLOCKS_20191108.zip, which includes Fixed a bug in the Floating Point Library that interfered with calculation of trigonometric functions Fixed a bug with DOT in Bitmap mode that ignored half of the possible colors for DCOLOR 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 Displays SAMS availability 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 64-Column Editor Memory Dump Utility [Note: VLIST is now part of the resident dictionary] TRACE—Colon Definition Tracing Printing Routines TMS9900 Assembler 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 TMS9900 Assembler Portable String Library Note: The binary images in 4 menu options will only work with the revision of fbForth with which they were BSAVEd. The current revision is fbForth 2.0:12 and will work with the binary images in FBLOCKS_20191108.zip and later (until the next revision).
In the 4K Basic Support Module thread, @Schmitzi found three disk images with Disassemblers on them. As I pointed out in this post, the second disk contains an XB LOAD program that can load a GPL Assembler or a GPL Disassembler. Those two programs appear to be written in TMS9900 Assembly Language Code (ALC) rather than Forth, as was hoped. What interested me, and the topic of this thread, were disks one and three. They happen to be two different versions of René Leblanc’s Universal Disassembler, which he wrote in TI Forth. As near as I can tell, Universal Disassembler is for ALC rather than GPL. The first disk is v1.2 on a 90 KiB disk and the third is v2.3 on a 360 KiB disk. Unfortunately, neither of these disks work. As I discussed in the above-referenced thread and will repeat here, it appears that these disks were prepared from the originals by copying the three files, FORTHSAVE, SYS-SCRNS, UNIVERSAL (aka FORTH) (in that order), from the system disks with no further processing, which is verboten for TI Forth system disks because the system screens (blocks) will never be copied properly. They will all be there, just not in their proper places and almost certainly misregistered, i.e., each block’s line 0 will not start on a 4-sector boundary. The only way to properly duplicate a TI Forth system disk is to copy the disk, sector by sector. Creating a larger system disk is more complicated, but doable. I have every reason to believe I can restore these two disks to working order, unless there is more than misregistration wrong with them. My intention is to produce 90 KiB (SSSD), 360 KiB (DSDD) and 400 KiB (CF7+/nanoPEB) versions of each disk. Right now, I need to mow a lawn—TTFN! ...lee