Z80 Space-Time Productions Single Board Computer

Download Page


Notes:

This page contains routines that you can use with this board.
For those of you who haven't located a Z80 Assembler program yet, I have included the Intel Hex files for certain routines.

You can directly send these to your Z80 using the Hyperterminal "Send Text File" menu selection.
All of them load starting at $3000 and you can execute a G3000 once it loads. Right-click the Intel Hex file where available and Save As... to a file on your computer.

I'm using TASM for my Assembler, and it is really an excellent program.
With it, you can type in a text file containing the assembly language. I create .bat files that actually execute the TASM command with the parameters and filenames I need. The output is two-fold in this case: an Intel Hex file ready to direct-load to the Z80, and a listing which shows my assembly along with the actual bytes it created.


Nascom [Microsoft] BASIC 4.7
This is the unaltered form of BASIC 4.7 for the Nascom British-produced personal computer. This is provided solely for reference. It contains quite a few hardware-specific calls and thus not compatible with the S-T Z80 board. It does, however support the Nascom's TTY serial data port, which is what caught my attention. My port-over works off this design.

BASIC 4.7A
This is the version of Nascom BASIC which I modified to run on the Space-Time Productions SBC.
This project took over a year to do! I have created two versions, one for a 'factory' configured
board with 2K of ram; the other for a modified board that has expanded ram memory from $4010-$FFFF.

Special thanks go out to Grant Searle in the UK for fixing two minor buggy problems with BASIC!
Versions updated January 2007. See the BASIC page for more information.

  • BASIC1.ASM - For use on UN-modified ST Z80's with only onboard 2K Ram.
  • BASIC.ASM - Tests for RAM from $4300-$FFFF and uses everything it can (48134 max).

Both versions require Ron Weiss' Monitor Rom in the first Rom socket. See the menu tab for "BASIC Interpreter" to read up on this program for your board.


FORTH Language
I downloaded a very minimal FORTH language interpreter and modified the code so it would correctly work with the Space-Time Productions SBC. It assumes the following:

  • Ram from $8000 thru $FFFF
  • SIO Channel A for normal communications thru Hyperterminal or your choice of Terminal Emulator

I was sucessfully able to relocate this program to $5000 and other locations, but when I tried to load it to $1000 (for burning to Rom 2 & 3) it blew up. I (sorry) don't have time to troubleshoot this right now, so I'm offering it "As is". It works quite well, just load it and Go to $8000 to start it.

You may download:

  • FORTH - Original version as I received it. Expects an 8251 UART.
  • FORTH - Modified to operate on the Space-Time Productions SBC, using Z-80 SIO.

Added February 23, 2007.


Z80 Disassembler
The guts of this disassembler are borrowed from the Timex-Sinclair disassembler, written by John Kerr back in the day. I altered the main loop routine and CHROP routine so that on entry, the routine calls the Monitor rom routine to request a starting and ending address ($0306) into DE and HL, to call the Disassembly from addresses xxxx thru yyyy, and then outputs the results to the screen. This is great for finding out what's going on inside your machine, or for checking your own programs for accuracy. It consumes nearly 1k of space, which on a native Space-Time board, is half of the available user space. This is what got me really going on the S-T board. Very, very handy.
ASM file Intel Hex file


Modified DUMP command
This routine takes the Dump command that comes with the Monitor rom, and adds a useful function of printing the (only the printable) ASCII characters to the right of the line (i.e.-
3000 00 00 00 00 00 30 31 32 33 34 35 36 20 39 00 00 .....0123456 9..
Uses a call to ($0306) to get the starting and ending address for the Dump. [ Unlike the TYPE command from the Monitor, which prints everything including control characters which screw up the Hyperterminal display. ]
Great for determining which area is code, and which area contains text.
NOTE: This contains the ANSI library of colors, and uses Green Red and Yellow text to print.
ASM file Intel Hex file


Save Intel Hex
Saves from xxxx to yyyy in Intel Hex format. This is handy for saving your routines after you have had to alter them in memory, and want to save them back. I developed this routine to add into my port-over of BASIC to accomplish the "SAVE" command, since the one from the Nascom was obviously unsuited for this purpose. Nascom runs a faster binary format save, but there is no guaranteed way to capture this binary data on Hyperterminal without risking an additional CR/LF or other character which would render the whole file invalid.
The Intel Hex format guarantees a known start and end address, as well as compiles a checksum byte for use during the load to guarantee the integrity of the data. This format is also the primary one for use in burning programs to EPROM.
ASM file Intel Hex file


LCD Routines
My original design and file (you may have downloaded the older version before) worked around an HD44780 2x40 LCD display that was tied to ports $68 for the data and $6A for the E and RS pins. WR- was tied to ground, the device configured as a write-only device. I had taken these pins over to J-3 (for the 9513, which is unused on my board in order to hook up the LCD's 14-pin ribbon cable. Problem was a timing loop had to be run for each write to the LCD in order to avoid collisions with the controller. There is no way to read back the Busy Flag.

The new design works off an interface board which is lifted above IC-17 (formerly the 9511/12 Mathbox IC) by way of a 24-pin wire-wrap socket. This allows the Z-80 to directly address the LCD controller at $7C (Control Register) and $7D (Data Register) and allow both read and write, as well as the all-important pre-test of the Busy Flag. This had made a remarkable improvement in the execution time for LCD calls.

The HD44780U controller has memory space for 8 custom bit-mapped 5x8 characters called CGRAM. The ASM file included here contains bitmaps for creating the image of an Eagle spaceship from Space:1999 using characters 0 thru 6 and the last custom character (7) is a right arrow for highlighting parameters on the screen.

ASM file Sorry, no Intel Hex file.


Stepper Motor Control
This is a short assembly file for driving a stepper motor attached to Port $68 lower D3-D0, uses switches attached to another I/O port for increasing and decreasing the motor speed. Shortest workable pulse for this motor was around 1.25 mSec. The faster the drive, the less available torque. This is a good reference piece of software if you are working robotics with this board, but after I completed this experiment I removed the motor and driver circuit from my computer.

My only idea that might have been useful was to drive an 8-ball (Attitude Indicator) with two motors, but since they are 1.8 degrees per step, it wasn't very practical without some gearing (not my forte').
ASM file


ANSI.ASM
A short test routine containing the most often used ANSI control sequences for data terminals. For a full discussion on this, check the menu option for Using ANSI Sequences.
ASM file Intel Hex file


Library
Intel Hex Save routine included, plus some 16-bit number conversion calls, updated LCD routines, 8279 Keyboard/Display calls, some echo'd monitor rom calls that are very useful for including in routines you might need. Be sure you look at this file - very helpful info in here!
ASM file Intel Hex file

Updated November 28, 2005.


8279 Operating System Rom
Ron Weiss sent me a file called 8279.BIN, which I have disassembled and commented as thoroughly as I can. It's included it here for your viewing pleasure. This monitor included a couple of neat features not found on the RS232 version: two breakpoints instead of one, calculated ending values both + and - of the entered values. Also includes serial routines for the SIO in high rom, since the SBC and PROM burner routines needed to be able to load an Intel Hex file. Very interesting reading, and what I consider to be good coding techniques. This was used with the keyboard/display in the photo I have over on the Hardware page.

ASM file

Sorry, I don't own one of these boards and I don't know where you can get one, either. It appears to mount over the top of the Z-80 main board on the 40-pin bus connector side, attaching both the power supply connector and the 8279 connector on the opposite side. I used the 8279 interface to build up a whole new keypad/display system for my Z-80 computer. See the menu option on this site for more info.


Click HERE if you do not see a menu frame to the left.

All information contained herein that is generated by Joel Owens ©2006.
Other information credited to its sources.
This Site is not affiliated with Space-Time Productions, Mr. M.Simon, or Mr. Ron Weiss, however I extend a grateful Thanks to those parties.
This site has a sole purpose to provide technical information, and is not intended to infringe any prior
copyrights nor to derive funds that would otherwise be the property of Microsoft, Space-Time Productions
or it affiliates, either past or present.
May the Force be with you.