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.
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.
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.
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.
These binary files are suitable for sending to an Elf/OS system using XR
Elf/OS Base Tools
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) |
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 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) |
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.
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.