Software

Implementing stack based call/return

Rc/Forth v1.0
A small forth system for Elf computers. This program requires the Elf/OS BIOS (v.5 or higher). It uses serial communication for the console. Currently error handling is rather minimum, especially if the error occurs in a function called by a function. Negative number handling is not correct on the / operator but appears to work everywhere else.

Rc/Forth - ROM version
This version of Rc/Forth is designed to reside in rom. It is set to assemble at E000h, but can be moved to anywhere above 8000h. BIOS v0.5 or higher is required to run this.

Dice rolling simulation

Extended ETOPS program

Rc/Lisp - ROM version
A small rom version of Rc/Lisp. Assemgbly listing is set to assemble at D000h, but can be moved to anywhere above 8000h. BIOS v0.9 or higher is needed to run this.

Edt/Asm - ROM version, Hex file
This is an editor with integrated in-memory assembler. The assembler is completely ROMmabe, and as assembled exists at 8000h. The assembler as assembled uses memory above 1000h for variables and the text editor buffer, leaving all addresses below 1000h available for assembled programs. By changing the ORGs, this assembler can be moved to anywhere in memory and the RAM portion can be moved to anywere where there is RAM.

BASCOM - ROM version Tiny Basic Compiler
This is the ROM version of my Tiny Basic Compiler. It includes an integrated editor for editing source code. Richard's ROM version of ILRUN is required to use this package

Rc/Basic L1
This is the ROM version of the Rc/Basic Level I interpreter. This image was assembled at 08000h with its data area starting at 0000

Rc/Basic L2
This is the ROM version of the Rc/Basic Level II interpreter. This image was assembled at 08000h with its data area starting at 0000

Floating Point Subroutines
These routines implement single precision floating point on the 1802. The following functions currently exist: atof, add, sub, mul, div.

Floating Point Subroutines (new)
These routines implement single precision floating point on the 1802. The following functions currently exist: atof, ftoa, itof, ftoi, add, sub, mul, div.

Floating Point Trig Subroutines
This group of routines provide the trig functions for the 1802, these subroutines require the floating point subroutines above. The following functions are included: fpsin, fpcos, fptan, fpasin, fpacos, fpatan, fplog, fpexp, fppow, fpsqrt.

32-bit Integer Subroutines
These routines implement 32-bit signed integers on the 1802. The following functions are included: add32, sub32, mul32, div32, inc32, dec32, cmp32, iszero, null32, isneg, comp2s, shl32, shr32, itoa, atoi.

Scalable Integer Subroutines
These routines implement scalable (8-bit through 2040-bit) integers on the 1802. The following functins are included: scadd, scsub, scmul, scdiv, scinc, scdec, sccmp, sczero, scnull, scismn, comp2s, scshl, scshr.

String Subroutines
These routines provide a number of string subroutines for the 1802. The following fuctions are included: strcpy, strcat, strlen, left, mid, right, lower, upper, strcmp.


Programs for Elf/OS


Elf/OS RAM-based installer
This contains the RAM-based Elf/OS installation package. This file can be used with systems that support intel-hex based downloads (Like Spare Time Gizmos' ROM) for installing Elf/OS from RAM.

TBC - Tiny Basic Compiler
This program compiles Tiny Basic to IL code. Programs run from 10x to 20x faster than interpreted Tiny Basic. Richard's ILRUN is required to run programs generated from this compiler

ILREAD - IL File Loader
This programs reads the IL codes created by TBC into memory, in preparation to be run by ILRUN

FORTH - FORTH Language Interpreter
This is the Elf/OS version of my RC/Forth interpreter

LISP - LISP Language Interpreter
This is the Elf/OS version of my RC/Lisp interpreter

Rc/Basic L1
This is the Elf/OS version of the Rc/Basic Level I interpreter

Rc/Basic L2
This is the Elf/OS version of the Rc/Basic Level II interpreter

Rc/Basic source
This is the source file for building both Rc/Basic L1 and Rc/Basic L2, as well as the Rom vs Elf/OS versions. The source uses #define to determine which of ther 4 interpreters will be built.

Rc/Basic manual
This is the manual covering all versions of Rc/Basic.

XS
This is an XModem sender for Elf/OS

XR
This is an XModem receiver for Elf/OS

LBR
This is a simple library program that can be used to lump a group of files together for transfer using XR or XS

ZRUN3
Inforcom game interpreter for version 3 adventures (Zork I, II, and III)

SHELL
Integrated shell utility. This is an early version and contains the following commands: CD (CHDIR), CP (COPY), RM (DEL), LS (DIR), MD (MKDIR), RN (RENAME), RD (RMDIR), CAT (TYPE)

ASM2
Initial release of linking assembler. Link2 (not included) is needed to use this assembler

LINK2
Initial release of linker. Note: Elf/OS build 192 or later is required.


Pico/Elf V2

Note: all Pico/Elf V2 ROM images contain the Pico/Elf V2 BIOS. It is not necessary to combine these images with a BIOS image.

PEV2 Runtime ROM 2/26/2021
This ROM image contains the latest PEV2 runtime. This ROM contains v1.0.7 BIOS, Visual/02, and v1.0.0 of the Standard Functions Library.

Elf/OS Install Package 12/22/2020
This ROM image contains the complete Elf/OS install package. This ROM also contains the ROM portion of Visual/02, but to use this you will need to install the VISUAL02 Elf/OS stub.

Elf/OS Install Package (OLD)
This ROM image contains the complete Elf/OS install package. This ROM also includes SEDIT @F000

Disk-less
This ROM is intended for use on a disk-less Pico/Elf V2. This rom contains the ROM versions of Rc/Basic L2, Rc/Forth, Rc/Lisp, EDTASM, and Visual/02. This ROM also contains tools for doing bulk memory save/load over XMODEM.

Elf/OS Shell
This ROM image contains the current version of Elf/OS Shell.

Programming Languages
This ROM image contains the Elf/OS install package for Rc/Basic L2, Rc/Forth, and Rc/Lisp.

Zrun3
This ROM image contains the Elf/OS install package for Zrun3, a program for playing Infocom v3 adventures, Zork for example.

XR/XS
This ROM image contains the Elf/OS install package for XR, an XMODEM receiver, and XS, an XMODEM sender.

TBC/TBRUN
This ROM image contains the Elf/OS install package for TBC, a Tiny Basic Compiler, and TBRUN, the executer for compiled Tiny Basic programs.

Visual/02
This ROM image contains the Elf/OS install package for Visual/02. Note that this ROM is a hybrid ROM with the main Visual/02 code running from the ROM. Only a stub program is installed so that Visual/02 can be started from Elf/OS. The stub program allows for a program to be spedified, if specified that program will be loaded before Visual/02 is started.

LBR
This ROM contains the Elf/OS install package for LBR. This is a tool that allows you to pack multiple files together into a single file. This tool allows you to (A)dd, (L)ist, or (E)xtract files from the library.


Binaries

These binary files are suitable for sending to an Elf/OS system using XR

Elf/OS Base Tools

ASM.2 (F180) CHDIR.1 (5DD0) CHMOD.19 (8AF7)[032+] COPY.1 (1E19) CRC.1 (DFE3)
DEL.1 (5454) DIR.8 (C12E)[032+] DUMP.1 (1CFD) EDIT.1 (784A) EXEC.1 (251D)
FREE.1 (BEDB) HELP.11 (EB4D) HEXDUMP.1 (6FC2) INSTALL.1 (8955) KREAD.1 (6EC7)
LBR.5 (3E27) LOAD.1 (150A) MINIMON.3 (16AF) MKDIR.1 (CB81) PATCH.1 (3467)
RENAME.1 (0F8B) RMDIR.1 (3CCF) SAVE.1 (0869) SEDIT.1 (C514) STAT.1 (26CC)
SYS.1 (DA82) TYPE.6 (2724) VER.15 (3AD0) XR.4 (4A41) XS.3 (6180)

Other Elf/OS Software

Rc/BasicL2.7 (C129) Rc/Forth.1 (1645) TBC.1 (4CE3) TBRUN.1 (DFC5) ZRUN3.3 (68CB)
SBC.1 (80F5) SBRUN.1 (5EF7) SBRUN32.1 (009B) Rc/Lisp.2 (9178) VISUAL02.4 (4CF5)
Asm2.41 (B74D) Link2.6 (6566)

Elf/OS 0.3.2

For new installs:
Elf/OS 0.3.2 Install ROM Includes BIOS 1.0.7

Files needed for upgrading an existing system:
chmod.12 (25D2) Tool for setting executable flag
kernel.240 (500A)0.3.2 Kernel, build 240
basetools 1/17/2021 (3C76)Base tools for 0.3.2

Very important! If you are upgrading a system prior to build 237, you must download the chmod.12 tool to your Elf/OS system and use it to set the executable flag on your binaries in /BIN. This must be done BEFORE installing the new kernel image. If you do not do this step then you will be unable to execute anything after installing the new kernel. Do not install the new basetools package until after installing the new kernel. Before installing the new kernel, copy your chmod to another name (example chmod.12) since the existing lbr tool does not know how to set the executable flag (new lbr in the basetools does) when it extracts chmod it will not be executable, you will need the renamed one to fix that state.

Note: The basetools for 0.3.2 cannot be used on a system with a kernel build older than 240.


Elf/OS 4.1.0

Elf/OS 4.1.0 Install ROM for PEV2 Includes BIOS 1.0.10
basetools40.lbr Base tools for 4.1.0 (72EB/ACE2)
kernel.348 Kernel 4.10 build 248 (0A6C/B572)
shell.4 Elf/OS 4.1.0 command shell build 4 (FEAC/2DEC)

Note: If you are upgrading from a prior version of Elf/OS prior to 0.3.2, you need to follow the upgrade steps to 0.3.2 before upgrading to 4.1.0.
RcBasicL2.69 (6F8D/3B12) RcForth.17 (29B0/E1D9) RcLisp.5 (F364/9C2A)


LBR packages

These packages are in .LBR format and can be sent to an Elf/OS system using XR

Help Libraries

These libraries should be copied to the /hlp/ directory. Do not extract these libraries, some contain files that are not legal Elf/OS filenames. HELP reads these libraries directory with no need to extract them.


Programs for Elf2K

Rc/Basic source
This is the source file for building both Rc/Basic L1 and Rc/Basic L2, as well as the Rom vs Elf/OS versions. The source uses #define to determine which of ther 4 interpreters will be built.


Documentation

EDTASM

Rc/Basic

Rc/Forth

Rc/Lisp

Visual/02

TBC

LBR