VolksForth/8086/msdos
Philip Zembrod 54a3eafa38 Remove make logic to convert msdos uppercase file names to lowercase.
This conversion was done in the past and shouldn't be needed anymore.
2024-12-23 13:53:51 +01:00
..
AtariPortfolio created arch directory for 8086 VolksForth 2021-04-11 13:43:39 +02:00
cursor created arch directory for 8086 VolksForth 2021-04-11 13:43:39 +02:00
emulator Introduce MOUNTPOINT env var in run-in-dosbox.sh 2022-06-08 21:02:12 +02:00
src Introduce new msdos target v4thi.com that uses the BIOS instead of the BDOS 2024-12-08 23:12:14 +01:00
tests Make rules to compare the content of the DOS and FORTH vocabularies 2022-03-23 22:12:09 +01:00
emu2-4th.sys Source for VolksForth running on the emu2 emulator (BIOS calls only) 2022-08-18 16:43:00 +02:00
FORTH.COM created arch directory for 8086 VolksForth 2021-04-11 13:43:39 +02:00
kernel.com created arch directory for 8086 VolksForth 2021-04-11 13:43:39 +02:00
krnlbios.fb Source for VolksForth running on the emu2 emulator (BIOS calls only) 2022-08-18 16:43:00 +02:00
Makefile Remove make logic to convert msdos uppercase file names to lowercase. 2024-12-23 13:53:51 +01:00
META.COM created arch directory for 8086 VolksForth 2021-04-11 13:43:39 +02:00
metafile.com Checking in the current version of the new make-built binaries 2022-03-14 00:26:45 +01:00
MINIMAL.COM created arch directory for 8086 VolksForth 2021-04-11 13:43:39 +02:00
o4th.com Checking in the current version of the new make-built binaries 2022-03-14 00:26:45 +01:00
readme.org Update readme.org and remove the obsolete test-min.log make target. 2022-03-23 08:50:04 +01:00
v4th.com Update binaries to the new version number 3.9.1 2022-03-23 22:55:58 +01:00
v4thblk.com Update binaries to the new version number 3.9.1 2022-03-23 22:55:58 +01:00
v4thfile.com Checking in the current version of the new make-built binaries 2022-03-14 00:26:45 +01:00
volks4th.com created arch directory for 8086 VolksForth 2021-04-11 13:43:39 +02:00

VolksForth MS-DOS README

Refactoring in progress

MSDOS VolksForth is currently in transition towards make based and stream file (.fth) based builds.

Documentation for make based builds

The central Makefile is written for GNU make on Linux and uses the DOS emulator dosbox to run VolksForth and Metacompiler binaries for building new VolksForth binaries and for running tests. The make rules also use several Linux tools, e.g. bash, Python, grep or dos2unix.

volks4th.com is the old checked-in full VolksForth binary with editor etc, manually compiled from block sources as described in the "Previous .fb-based manual build instructions". It is intended to remain untouched throughout the transition period until it can be safely replaced by new .fth-based kernels with build-in .fth interface.

Binary make targets

make v4th.com builds the new minimal VolksForth kernel v4th.com from .fth sources using metafile.com. v4th.com does not have the block words and the buffer mechanism anymore. The only way to load code from files is via include filename.fth.

make v4thblk.com builds the new minimal VolksForth kernel v4thblk.com from .fth sources using metafile.com. v4thblk.com contains the block words and the buffer mechanism and can load and include both .fth stream sources and .fb block sources.

make metafile.com builds the metacompiler with included .fth file interface. It is used to build v4th.com, so metafile.com will be built as part of the make rule for v4th.com. Note: metafile.com is mostly still built from meta.fb, i.e. from block sources.

make o4th.com builds a new minimal VolksForth kernel from kernel.fb, i.e. from block sources. This is equivalent to the previous "How to meta-compile a new kernel" instruction.

make v4thfile.com adds the .fth file interface to the old volks4th binary.

Test make targets

make test runs all current tests.

make test-std.result runs v4th.com through the standard set of unit tests, without the block tests, of course

make test-blk.result runs v4thblk.com through full set of unit tests, including the block tests.

make test-volks4th-min.result runs the same initial minimal set of unit tests on v4thfile.com which is the old volks4th.com binary with added .fth file interface.

Previous .fb-based manual build instructions

How to meta-compile a new kernel

After making changes the the Forth kernel source in kernel.fb, restart volksforth.com to have a clean system and compile a new "minimal" kernel with include kernel.fb. This will create a new FORTH.COM executable.

creating a minimal system with a simple editor

Execute forth.com include minimal.sys to generate the file minimal.com which contains a minimal VolksForth system with the Retro-Forth editor https://fossil.forth-ev.de/volksforth/wiki?name=Atari8bit-retrofortheditor

This system can be used to edit the file volksforth.sys or other Forth source block files needed to create a full VolksForth system.

creating a full VolksForth system from the minimal kernel

Execute forth.com include volks4th.sys to create a new fully equipped VolksForth executable volks4th.com.

creating a version of VolksForth that works with emu2

EMU2 is a nice PC Emulator that can run MS-DOS console applications as Linux/MacOS/Windows console applications. EMU2 can be found at https://github.com/dmsc/emu2

The standard Keyboard-Interface of VolksForth (BDOS) does not work with EMU2, however it is possible to switch to the simpler BIOS keyboard interface. For that, comment out the blocks #114 and #115 by placing \\ at the beginning of the first row of these blocks and comment in block #116 by changing the \\ in the first row to \. (\ is "skip to end of line" comment, while \\ is the "skip to end of current block" commend).

The downside of this change is that the VolksForth full screen editor does not work anymore, as the BIOS interface does not support special keys like cursor or function keys. As a replacement, the Retro-Forth Editor rfe.fb or some other Forth Editor can be used.