S-100 Software
This section of this web site is dedicated to software to run on S-100 systems.
Clearly this could be a whole web site in itself. I will concentrate here on software
that is focused on getting the hardware up and running and that I have either written
myself or have used extensively.
MASTER.Z80
A System PROM monitor
This is ROM based Zapple like monitor program for a
Z80. It is a menu driven ROM based program to allow you to bring up a basic
functional system. It is toughly documented to allow its adaption to most hardware
configurations.
Please click
Z80
Monitor Program
for more information.
VF.Z80
A Diagnostic Program for the SD Systems Floppy
disk controller board
This is a diagnostic program for a Versafloppy II disk controller
board. Again it is menu driven to allow you to bring
up a basic functional system.
Please click
Versafloppy II Diagnostic Program for more information.
SIO8.Z80
A Diagnostic Program for
the SD Systems Serial IO/Clock Board.
This is a very powerful 8 Port Serial (RS232) I/O board. See
here for a detailed description.
I have written a little program to configure the Serial Ports and Time/Clock chip
on this board.
It can be see
here, and downloaded
here. As usual it can be easily modified for the same chip on other boards.
Besides containing four Zilog 8530 dual serial I/O chips, this board also has a
National Semiconductor MM58167 Clock/Calendar chip. The above program also allows
the on board clock chip to be set and read. However for the S100Cpmputers
custom built PIC/RTC board (which also utilizes the MM58167), see below, has a more
extensive and detailed program. That program will also work with this board BTW.
PCGET.ASM and PCPUT.ASM
Moving Files Back & Forth Between S-100 Computers and
an IBM PC.
Often it is nice to be able to move a CP/M or other S-100 based programs (Monitor,
diagnostics etc.) up to a PC. There it can be used as a backup storage area or assembled/run
on a PC based Z80/CPM simulator. To do this one needs a way to conveniently get
data back and forth. You could use a 5" floppy (on an old PC) and configure the
S-100 system to read the disk, or use one of the older PC disk format reading programs
and go in the other direction.
I opted for a simpler approach. I modified one of the many versions of Ward Christenson's
CP/M's "Modem Program" to simply pass files back and forth over a serial link.
I use a USB->Serial connector on the PC and the SD Systems IO8 Serial board on the
S-100 end. (With slight modifications any serial board can be used). The original
program is stripped down to simply accept (or send) a file named in the CP/M command
line. These programs can be assembled to utilize the serial ports of
the
SD-Systems Serial IO board or the
S100Computers
Serial-IO Board. It can be easily modified for most other serial ports.
The program to upload a CP/M file to a PC is
PCPUT.COM. The source can be seen
here.
The program to download from a PC a file to a CP/M system
is PCGET.COM. The source can be seen
here.
Both of these programs should be assembled with Digital Research's
MAC assembler. This program can be obtained
here.
The Zip file of both programs can be obtained
here.
If you are up to it, you can use the CP/M program "LU" to compress many CP/M files
into one large file, upload that "library" file and extract files out on the PC
side (using a CP/M simulator). LU.COM can be obtained
here.
On the PC end one can use any number of PC based serial port Modem programs. They
should be capable of utilizing the original "XModem" protocol, not the newer "XModem
(crc)" or "XModem (1K)" protocols. I particularly like
Celestial Software's
Absolute
Telnet program. They have a free "light version" and a "Professional version"
for $50. The latter is well worth it as it has many other additional useful features.
ALTAIR.COM
Running CPM3 on a PC
In much of my development work for building CPM programs for my S-100 system
I actually build, edit, assemble and sometimes even execute the program first on
an IBM PC using Windows XP, 7, 10 etc. One day I hope to have an S-100
video board of the resolution that current PC video boards have but for now, nothing
compares with the editing convenience of Microsoft's Visual Studio when working
with .Z80 or .ASM files.
While you can edit the programs under windows (Visual Studio), you need a "CPM emulator"
to assemble them and/or execute them. There are a few good CPM emulators for
the PC available. I like to work with Peter Schorn's AltairZ80 Simulator.
He has put an enormous amount of work into building a Windows based program that
behaves as if your PC was a S-100 Altair computer. Start with
this documentation for some background information. However to assemble
and run your own CPM programs you only need to launch the CPM3 emulator within the
Altair.com program itself. From then on (transparent to you) you are operating under
CPM3 in a Windows box. The necessary software and instructions are all described
here.
Software for the
S100Computers IDE Drive/CFCard Board
I have constructed
an S-100 board that allows one to interface an IDE hard drive (or memory board)
to the S-100 bus. Relative to the old ST-506 Winchester drives, IDE drives
are simple to interface, quiet, and inexpensive. All the software for that
board can be found
here.
Please click
An S-100 IDE
Hard Disk Controller Board
for more information.
Software for the S100Computers
PIC & RTC S-100 Board
The
PIC
and RTC S-100 Board I have constructed
with its Priority Interrupt and Real Time Clock S-100 board that allows one to utilize
the interrupt structure of the S-100 bus with both 8 and 16 bit CPU's. The
board also contains a National Semiconductor MM58167 Clock/Calendar
chip. This is really two S-100 boards in one. Example software for interrupt
testing can be seen here, and downloaded here. Software for the RTC
chip and checking its functionality worth CPM3's date and time stamping capability
can be downloaded
here.
|
|
PCLOAD.ASM
Moving Files From a PC to an
S100 System anywhere in its address space from 1K to 1M
In developing software for 8088, 8086, 80286 and 80386 S100 systems it is often
necessary to load software above a Z80's 64K address space. For example the
8086 monitor resides
at F000:8000H. This is particularly handy when you are first developing
hardware/software.
(BTW, the most recent versions of these '86 monitors have an internal command, ("W"),
to do what we have below for you). Such a file transfer process allows you
to utilize programs like Visual Studio and NASM to write your programs on the PC
and quickly test the results in your S-100 system.
I have written a short simple version of the above PCGET to directly load the code
(.bin, .com etc.) from a PC directly into the S-100 memory space. It is a small CPM
based program called PCLOAD.COM. The program asks for a Load address.
This can be any 1K boundary from 1K-64K. If however you have our
S100Computers Z80 CPU board, it utilizes the "Memory Window" on that board and can load the code
anywhere from 1K up to 1M.
The program to download from a PC a file to a CP/M system is
PCLOAD.COM. The source can be seen
here.
The programs can be assembled with Digital Research's MAC assembler. This
program can be obtained
here.
XMODEM
Moving Files From one PC to
another.
The CPM program "XModem" is a well known program used to
conveniently move CPM files from one computer to another over a serial (or modem)
link. Many versions of this program can be
found on the web. Unfortunately some have bugs that appear when large programs
are transferred. The version
here has been cleaned up by Bob Bell and can now also be downloaded from
this site.
XModem.zip
A Collection of CPM based 8080/Z80/8086 Assemblers
and Linkers.
Over the years I utilized a number of assemblers and linkers. Each had its own advantage
and quirks. I have put together a collection of some of the better ones in
one spot for easy downloads. They include the following (in no particular
order) ....
TDL's Z80 Macro Assembler.
Cromemco's Z80 Assembler.
Digital Research's MAC and RMAC
SLR's ZASM
Digital Research's ASM86
Microsoft's M80 and L80
SD Systems ZASM
8086 Assemblers
68K Assembler
6502 Assembler
Z80 T0 8080 Translator
Others.
They are all briefly discussed and can be downloaded
here
A Collection of Useful Assembly Language Routines
Check
here for a collection of small but useful Z80, 8080 and 8086 Assembly Language
routines I use time and time again in programs.
A Collection of all Digital Research Software
Check
here for a collection of
all Digital Research Software, Source code and Manuals. An amazing
collection!
Bringing Up CPM3 for the First Time
Writing a CPM3
BIOS for the S-100 ZFDC FDC Board
Most early S-100 Computer systems used CPM2.2 (or earlier) as the basic computer
disk operating system. The system was fairly simple to implement and was the
germination base for much of the microcomputer worlds software. The system
however had many limitations in particular it was designed for a standard 8" IBM
single density single sided floppy disk with 128 byte sectors. As newer disk
sizes and formats started to appear -- particularly hard disks, the system started
to show its limitations. Digital Research's answer was CPM3. This version
of CPM allowed essentially any sector size and disk format to be used easily and
efficiently. What CPM3 did was hide within the operation system itself the
128 byte sector size requirement and allow the BIOS to work easily with any sector
size "transparently". The system had an elaborate disk hashing/data buffering
system as well. Of particular usefulness was the fact that it existed in two
forms. A "standard" NON BANKED version that operated like CPM2.2 in a Z80 system
with 64K (or less) of RAM.
However there was a much more efficient "BANKED" version of CPM3 which by using
onboard 'bank switching" hardware, could utilize up to (in theory) many megabytes
of RAM. Typically 128K or 256K RAM systems were used. This allowed for
a very fast and sophisticated system with for example things like file time and
date stamping.
It should be noted that this BANKED system absolutely requires that the Z80 can
switch in and out a portion of its 64K adders space with other RAM boards.
There were a number of ways this was done in hardware. The Cromemco and Godbout
systems utilized an IO port to switch RAM boards.
Intersystem's and our own
S100Computes
Z80 board, use on-board Z80 CPU board hardware to extend the addressing range
of the Z80. We will discuss this later.
For now lets start with a very simple CPM3 BIOS. We will step by step build
the system up to a much more complex setup. Eventually arriving at a BANKED system
with multiple floppy, hard and memory disk connections.
Please click
here to read about this process.
Bringing Up CPM3 for the First Time
Writing a CPM3 BIOS for an S-100 IDE Hard Disk or CF Card
This section is an extension of the above CPM3 for a floppy disk except that now
we will boot CPM3 up from a Hard Disk
Please click
here to read about this process.
Bringing Up CPM86+ for the First
Time
Writing a CPM86+ BIOS for the Dual S-100 IDE and ZFDC Boards
This section is devoted to beginners trying to implement CPM86+ in their
S-100 system. Obviously the system must have an 8686 (or above) CPU board.
The details and examples given are quite general and can be applied to any capable
S-100 system. However all the examples are centered around our Dual IDE and ZFDC
disk controllers.
Please click here to
read about this process.
CPM, MSDOS etc. CF Card Images
Please click
here to
go to the page to copy various CPM3 and MSDOS CF card images to CF cards.
8086.A86
An 8086 System PROM Monitor
This is a ROM based Zapple
like monitor program for an 8086 based system. It is a menu driven program
to allow you to bring up a basic functional system. It is toughly documented to
allow its adaption to most hardware configurations.
The monitor contains three separate sections:-
1. A basic monitor like the MASTER.Z80 one described above.
2. A diagnostic section to run the IDE board with an 8086
3. A modified version of the IBM-PC/AT BIOS that allows you to
run MSDOS (V4.01) unaltered.
Please click 8086
Monitor for more information.
68000.X68
A 68000 System PROM Monitor
This is a simple ROM based Zapple
like monitor program for an Motorola 68000 based system. It is a menu driven
ROM based program to allow you to bring up a basic functional system. It is documented
to allow its adaption to most hardware configurations.
Please click 68000
Monitor for more information.
65MON.ASM
A 6502 System PROM Monitor
This is a simple ROM based Zapple
like monitor program for a simple 6502 based system. It is a menu driven ROM
based program to allow you to bring up a basic functional monitor on the S-100 bus.
It is documented to allow its adaption to most hardware configurations.
Please click 6502
Monitor for more information.
80386.A86
A 80386
System PROM Monitor
This is a ROM based 80386 monitor evolving from the above 8086 based monitor.
It is a menu driven based program to allow you to bring up a basic 80386 functional
system. It is toughly documented to allow its adaption to most hardware configurations.
The monitor also allows one to exercise the complex "Protect Mode" 32 bit features
of the 80386 with its sophisticated memory management and interrupt features. The
monitor contains four separate sections:-
1. A basic Real Mode monitor like the 8086 one described above.
2. A diagnostic section to run the IDE board with an 80386 (Real
Mode).
3. A modified version of the IBM-PC/AT BIOS that allows you to
run MSDOS (V5.01) unaltered (Real Mode).
4. Protect Mode/32 bit mode with basic monitor commands, interrupts
debugging/single stepping etc.
Please click 80386
Monitor for more information.
8080.ASM
An 8080 monitor
This is ROM based Zapple like monitor program for the
8080 CPU board. It is a menu driven ROM based program to allow you to bring up a basic
functional system. It is documented to allow its adaption to most hardware
configurations.
Please click
8080 Monitor Program
for more information.
PDP_MON
A PDP-11 monitor
This is ROM based Zapple like monitor program for the
PDP-11 CPU board. It is a menu driven ROM based program to allow you to bring up a basic
functional system. It is documented to allow its adaption to most hardware
configurations.
Please click
PDP-11 CPU Monitor
for more information.
Bringing Up MSDOS for the First
Time
This section is devoted to beginners who want to implement MSDOS in their
S-100 system. Obviously the system must have an 8686 (or above) CPU board.
The details and examples given are quite general and can be applied to any capable
S-100 system. However all the examples are centered around our Dual IDE and ZFDC
disk controllers.
Please click here to
read about this process.
Serial Communications
Program (SCP) V2.0 Community Release.
This software was written entirely by
Bob Bell. Bob is well known to our community. If you have any
questions about the software you should contact him directly.
He has submitted the following summary:-
Attached below is the version 2.0 Community Release of
my new/old Serial Communications Program. After over 17 years of on-again,
off-again work, this is finally in a state where I can release it for public
consumption. The zip includes three files: A readme for a brief explanation of
program operation, an assembled and ready to run .com file and the source code
in Z80 assembler. My apologies to those running 8080/85 CPUs. There were parts
of this program that would have been very difficult without the additional
facilities of the Z80. For those in need of a communications program, albeit
XMODEM only, I recommend Martin Eberhard's excellent XMODEM program.
The catalyst for this program came in the late 1990s when I came to the
realization that my 8" and 5 1/4" floppy disks were not going to last forever.
I had already lost some files due to magnetic and physical damage (fortunately,
retrieved from backups), and I concluded that the best way to protect against
further loss was to create an easy means of transferring data between my CP/M
machine and any one of my Windows (or, at the time, old DOS machines), where
hard drives are more reliable, and easier to backup. It was not difficult to
get 22NICE operating to transfer files by floppy, but the only format I had in
common was 5 1/4" where I had a total capacity on the disk of 184K. This proved
difficult and time-consuming, so I set out to create a more automated means of
transferring files without the file size limitation. Here is where SCP began.
I had very limited knowledge of communications protocols and thought that XMODEM
was for making computers speak to mainframes over a modem. SCP version 1 was
very primitive, but worked...s l o w l y. There I got stuck, because I could
not get enough speed to satisfy my needs. The program went on the back-burner
and I moved on to other things. Then about 2012 I discovered this group and
learned that I was not the only guy in the world trying to keep an S100 machine
afloat, and my interests in reviving my old "save the disks" project was
rekindled. The rest is documented in the Revision History of the Source file
and here it is, now, the culmination of countless hours of work, SCP version
2.0.
Please give it a try on your Z80 machine. Feedback is welcome through this forum
or direct to my email address, shown in the source file. There are some known
bugs, omissions and limitations documented at the beginning of the source file.
I hope they don't cause you any operational difficulties.
Although I have copyrighted this program, I do hereby grant permission for
anyone on this forum to use the program at no cost, and share it with anyone
else who can use it. If you make modifications to the program, please let me
know what the changes are, so I can incorporate them into the original. If you
use any major parts of the program in other programs you write, recognition for
the code I wrote would be appreciated.
Bob Bell
Please click here to download the
SCP.zip file containing
the program
68030.X68
A 68030 Monitor
This is ROM based Zapple like monitor program for the
68030 CPU board. It is a menu driven ROM based program to allow you to bring up a basic
functional system. It is documented to allow its adaption to most hardware
configurations.
Please click here for the
68030 Monitor Text File listing and here for the
68030 Monitor.ZIP files.
PDP11 Progarms
This is a page that will contain a growing list of small PDP11
programs suitable to run with our
PDP11
CPU board.
Please click
here.
Bringing Up CPM68K for the First Time
Bringing up CPM68K (using a 68000, 68010 or 68030 S-100 Board) can be a somewhat
daunting task for beginners. Not only is the hardware different and you have to
worry about its (often untested) functionality, but the software is an order of
magnitude more complex. Please see
here for more
information
FPGA_DC Board Software
This page contains programs related to the three
FPGA_DC Disk Controller Boards.
To make any sense you must be
familiar with that series of boards before going further.
Please click
here.
This page was last modified
on 05/26/2024