View Full Version : Imsai working, so now what ?

August 20th, 2010, 05:54 PM
Well now that I have my Imsai working...
Where do I go from here ?

I need to 'see' what I'm doing and have the ability
to input via keyboard. I know Briel Computers & Spare
Time Gizmo's both have a PCB that uses a PS2 keyboard
and VGA monitor to emulate a terminal via RS-232. I
think this is the way I want to go for now. I'll need
to get a serial card.

I need some sort of OS, either Basic or C/PM. At first I don't
need to save to disk, one step at a time. As far as a disk system,
I don't plan on using original drives or controllers, maybe a small
hard drive or flash memory (I do have a 512MB DiskOnModule that
is IDE) I've used both C/PM (along time ago) & Basic as an end user
but never set it up in a S-100 system. Do I need C/PM to save Basic
programs to a disk ?

If someone could describe the advantages/disadvantages between;

Monitor (not a video device)

My preference, at first, is to boot from a EPROM with
either Basic or C/PM, so I know I'll need a Prom board.

My ultimate question is what do I do first ?

If I add a serial card and use a terminal to communicate with
the Imsai, am I going to 'see' anything without Basic or C/PM
loaded? How can I load Basic or C/PM without being able to
see what I'm doing... Get it ?

Last question, should I use the original 8080 MPU or should
I use a Z80 MPU. I want to start out on the right foot.



Dwight Elvey
August 20th, 2010, 09:22 PM
What do you want from the computer? Do you want to run applications
or learn about the works?
Most any BASIC will need a OS to run on. Not many choices for a 8080.
Not many for a Z80 either.
You have a front panel. That is as good as many monitors if use right.
As far as drives go, a 10Meg drive would exceed anything you're likely to
need in the near future.
I find that an old laptop with serial makes a fine terminal. One can even download
files if you know what your doing.
I do prefer to use Forth over BASIC but there is a steep learning curve.

August 20th, 2010, 09:40 PM
When I got my MITS 8800, I ordered it with 8K of memory and a serial I/O card. Floppies were astronomically priced, so I used a cassette tape player and a simple FSK-style encoder-decoder. I don't recall whose 5K BASIC I used, but I also used the Processor Technology resident editor-assembler. You can learn a lot, but patience to get things loaded is necessary. Neither had anything that you'd call an OS.

August 20th, 2010, 09:57 PM
The first thing you need to know is that it's CP/M, not C/PM ;-)

What do you want to do with it?
What specific cards are in it?
With no monitor or serial comm, how do you even know it's working?
Does it have a 'front panel' with lights & switches?

Dwight Elvey
August 20th, 2010, 10:19 PM
When I got my MITS 8800, I ordered it with 8K of memory and a serial I/O card. Floppies were astronomically priced, so I used a cassette tape player and a simple FSK-style encoder-decoder. I don't recall whose 5K BASIC I used, but I also used the Processor Technology resident editor-assembler. You can learn a lot, but patience to get things loaded is necessary. Neither had anything that you'd call an OS.

Hi Chuck
Don't know what I was thinking. Yes, there were early BASICs that ran fine without any OS.
I started with a Poly88 and 12K BASIC from tape ( Even in the 4800 baud mode it was
slow to load. Can't even imagine loading it with the typical 300 baud byte mode ).
Both IMSAI and Altair sold a tape BASIC.
If he had a simple monitor working and an EPROM board, PA TinyBASIC will fit in
2K of space but needs the monitors input and output.

August 21st, 2010, 05:26 PM
At least you can check your memory to be sure you have good memory with a front panel. You need stable RAM before you can really do anything.

I am not sure if I am making sense to you, but your first goal should be to get an I/O card that echoes characters to the terminal (which can be a laptop running TeraTerm connected to the computer via a serial port). Then at least you can use your set up to download programs via the laptop.

It's not easy because I/O cards that you come across on Ebay are used and IF they work, you don't really know what port, baud, stop bits, etc they are until you get the manual and look it up. You have to compare the jumpers (how the card is wired) to the manual and usually look up three or four sections on the card to see what the settings are. Assuming you find an I/O card you then need some sort of bootstrap program to toggle into the front panel that performs an "echo character to the screen" program so that you can be sure you have a working card.

THEN - You can toggle in a program that allows you to use a laptop to feed in programs using the serial port, emulating the effect of someone typing in commands really quickly on your screen, in the form of a file dump.

Another possible route would be to get a PROM card that has a ePROM installed that loads and runs a monitor program compatible with your I/O card.

You want to try to find a set of cards that all came from the same computer, it's more likely that they'll at least be wired to work together. I needed help to get my first S-100 computer (IMSAI 8080) running, I could not do it myself. I did learn a lot over time, eventually I picked up enough to be dangerous.

As long as you keep at it, eventually you'll get there. I hope it works out for you.


August 21st, 2010, 05:28 PM
Where are you located?

August 23rd, 2010, 04:22 PM
Before you go spending $60-100 on a VGA terminal adapter, I'd recommend just taking a quick look around your local recycling center; a lot of businesses have been dumping their dedicated terminals in the past decade, and that's typically where they end up. I got a perfectly functional Wyse terminal for absolutely nothing.

August 23rd, 2010, 05:18 PM
I agree. You should try to get a 9600b 8N1 serial terminal running first. You can use the terminal for "show" but while you're still getting things running you'll want to use a modern computer with a serial port as the terminal, so you can download and save data, as well as display to the screen.

Here is a good page that kind of explains, albiet for the Altair, how to bootstrap an IMSAI without disks, cassette, or teletype:


This whole thing took a while to sink in, it took me a long time to learn how to apply this knowledge effectively.


August 28th, 2010, 01:28 PM
Sorry for the delay, I'm on vacation this week and instead of
playing with my Imsai all week, I'm drywalling a bedroom :-(

My Imsai has the following two boards, original MPU & 8k static RAM.
I know is working as I toggled in a program and it worked.

What I'd like do with this computer is to write/run basic programs, understand
how it works and interface it to a serial terminal.

I know s100computers has a RAM/Rom card so I'd like to get that to have 64k and
the ability to load a monitor or basic from ROM, this way I can talk to an I/O card
and echo chars or load a program. I'm familiar with setting jumpers and what not
so thats not an issue, just a little challenged when it come to machine language.

I've got a couple I/O cards coming from Ebay, so one they get here, I need to test
them and see if I can get the Imsai to output to the serial port. This is where I have
to learn about a 'loader' and go from there.

I'm located in Iowa.

August 28th, 2010, 02:44 PM
What I'd like do with this computer is to write/run basic programs, understand how it works and interface it to a serial terminal.

Now come on. We all know what you REALLY want to do is to hack into the pentagon computers, mess with their simulation software and set off intercontinental ballistic missiles :)

Just joking! I'd love one of these really early micros, especially one that looks so cool. I've never seen on in New Zealand and I doubt they even exist here!


August 31st, 2010, 01:18 PM
I don't know exactly how old-school you want to keep this, but there's a Cromemco Z80 CPU card (http://cgi.ebay.com/Vintage-S-100-Cromemco-ZPU-Z-80-CPU-Card-Kit-/170534447547?pt=LH_DefaultDomain_0&hash=item27b4a529bb) on eBay that's currently at $1. I don't know if the Z80 is more cycle-efficient with 8080 software than the 8080 (as the NEC V20 was to the 8088,) but it would at least allow you to run ZCPR, which is quite a bit faster and nicer than standard CP/M.

August 31st, 2010, 03:23 PM
Wow, an unpopulated ZPU kit...the ZPU cards sell for enough on their own, I can only imagine what sort of astronomical price that'll go for!

I'd go for something with a ROM monitor...I'm partial to my Cromemco 4FDC, which is both an 8"/5.25" floppy controller and console card with ROM monitor/bootstrap loader. They're the least capable of the *FDC controllers from Cromemco, and therefore are cheaper from eBay and such. Anyhow, as long as you've got working RAM, the 4FDC will get you up and running with an instant serial console and monitor -- you only need 1K of RAM at $0000. I'd guess with an IMSAI processor card, you'd have to jump to the monitor location by hand, but that's not a big deal. I don't know if the monitor uses Z-80 instructions though.

If you don't have it already, I'd grab a copy of the Dave Bursky S-100 Handbook. It covers the bus pretty well, with lots of examples, and a few projects you can build yourself. I really like using the S-100 bus to prototype projects since it's so easy to interface with. So much so, I designed an 8085-based single board computer to do embedded projects with.

September 2nd, 2010, 07:36 PM
With the minimal system you've got, there's not much point in thinking about CPU upgrades yet. Your 8080 is plenty of CPU.

First you need to get some I/O and storage. That's far more critical at this point than worrying about which CPU you're on. Personally I feel learning on an original 8080 or 8085 is a better way to go--fewer distractions, less to worry about in how you're coding for the system. The 8080 is a very straightforward chip, it has a beauty all its own that often gets overlooked in grasping for features like those of the Z-80. Not saying the Z-80 is a bad chip (in fact, it's one of my favorite of all time), just that the 8080 is a good chip and there's a LOT of software for it, and a LOT you can do with it.

I'll echo that you need to get serial I/O going. What you use initially for a terminal doesn't matter, go with what's cheap and easy. I use an old Toshiba 486 laptop with ProComm as my "first up" terminal for new systems. Once I've got everything going with that, I shift the system to whatever I'm going to have on it long term. Any system with a serial port, or serial to USB adapter and terminal emulation program will do.

Inside your computer you'll want an I/O card. Personally I like working with the Godbout I/O board in an S-100 bus. They're fairly plentiful. There may be others that other people here can guide you to a current source of, however.

Once you take care of getting the system on a terminal, you can look at using Palo Alto Tiny BASIC and an 8080 machine language monitor to play around with the system. Do you have a board you can pop a ROM into? Does your RAM card take ROM, too? Or will you be needing a separate ROM card?

I wouldn't worry about CP/M until you've got more than 48K of memory to play with. The same goes for disk drives in general. CP/M's purpose is pretty much tying the system to disk-based data.

Until then, there are other storage options. One is, that if you're using an intelligent terminal (an old PC or whatever), you can have it load up memory through your monitor, and have it save memory dumps as well. Chances are you'll be writing some code to manage parts of the job yourself, since I don't know of anything that does this purely through software that's immediately available. You might also want to build a tape interface and use a cassette tape drive for storage. Another alternative is to use NOVRAMs, which would take some hardware work. Basically building up a memory card that uses NOVRAMs or battery backed up SRAMs. Then you would have an "instant boot" system. You could just enter a GO instruction in your monitor to start executing whatever you left in memory (or replace the ROM with a NOVRAM and set it up to do it automatically.)

My 8085 project is a different sort of fish from your IMSAI in a lot of ways, but you might take a look at it for ideas. I also talk a lot there about why I decided to use an 8085, and why I like the 8080/8085 chips so much. My system is also built with 8K. I only have some simple hardware test code out there right now, soon I'll be posting a very simple monitor program that'll grow over time.

You'll definitely want to look at my bibliography. I've got some great 8080 programming books listed there. The Alan R. Miller book 8080/Z80 Assembly language has a complete monitor program in it. The monitor starts out very simple and further chapters introduce new features with information that allows you to adapt the program to your system's hardware and your own desires.

In case you hadn't guessed, you've touched on a subject I'm pretty passionate about. I love using "bare bones" systems. I think it's too bad so many people just charge off into installing an OS on a system then running high level software on it while bypassing what lives underneath all that. I like working at the low levels, and find it a lot of fun. I manage to do a lot with machine language, then I move up to assembly language and savor that as well. Once you start using macros who needs an OS? :D

I enjoy OS-based systems, too. But they can get in the way of a whole different sort of fun.

Anyway, what's next is an I/O card. Then get that talking to a terminal, then look at getting a small BASIC and/or ML monitor running along with some storage, perhaps over a port on your I/O card.

September 3rd, 2010, 05:08 PM
Thanks for all the input guys !

First order of business is an I/O card, I have a few (condition unknown)

Processor Technology 3P+S I/O
CompuPro / Godbout Interfacer II 3P+ S I/O

Solid State Music IO4 2P + 2 S I/O <-- this would be preferred as it
has two I/O's one for terminal and the other for my DecTalk Express
Speech Processor.

I only have 8k of Ram and no provision for a ROM or EPROM. I'm waiting
for the s100 guys to come out with their RAM/EPROM PCB. I have several
Data I/O EPROM burners, so that is not an issue.

What I need is a good book to learn machine/assembly as I'm clueless.
I've done Basic, Pascal, VB and others...

Due to server/software upgrades at work and a small remodel
project at home, I have had no good alone time with my IMSAI :-(

But I have been doing allot of googl'ing and reading the forums
in the mean time.

September 4th, 2010, 04:27 PM
Here are some great resources I've just found myself:


The Assembly language manuals Intel wrote were quite good, as is the 8080 family users manual. Couple these with the data sheet, and you'll have the 8080 down pretty quickly. The Assembly language manual is nice in that it demonstrates the 8080 way of doing things. One of the problems I've always had when going to a new architecture is understanding the "unwritten" rules of how the processor is generally intended to be used. The Intel assembly language books do a good job of covering this.


September 5th, 2010, 08:41 AM
As far as assembly language guides, I liked the 8080/8085 "bugbook" from the Blacksburg Group -- that's what I learned with.

If you take a look at the S-100 RAM/ROM board I posted about, that may be of interest to you. It will read 2764 and 27128 ROMs as-is. If you want to build one yourself, I'll scan my drawings and notes sooner rather than later.

September 5th, 2010, 09:58 AM
I learned 8080 from the Intel databook. But it wasn't (by a long shot) my first machine-level language experience. Use enough different CPU architectures and after awhile, the differences seem to be fairly minor. So I'd encourage you to study the instruction sets of 6502, TMS9900, PIC, AVR and any other CPU you can get your hands on at the same time. It'll help to give you the "big picture". The old Osborne Microprocessor series of books is particularly useful.

Most of the getting used to the 8080 are the oddball convention or two inherited from the 8008. The chiefest is the "M" register. Not a register at all, but merely the location that the (HL) pair points to. So, to load a value into the A register using an immediate address the mnemonic is "LDA", but to load A indirectly with the location pointed to by (HL) is "MOV A,M".

I think the folks at Zilog were so repulsed by this M-register business that they used (HL) and renamed "MOV", "LD". This clears a few semantic issues up, such as "MOV A,M" becoming the much clearer "LD A,(HL)", but leading to some weirdness as in "LDIR", which doesn't load any register with anything--it moves memory-to-memory. Zilog should have kept the "MOV" mnemonic for register-to-register and memory-to-memory operations and use "LD" and "ST" when moving between registers and memory.

At any rate, you get the idea. The biggest problem with most assembly languages is how they mask what's actually going on in the machine language. (e.g. In 8086 assembly, "MOV" can refer to a bunch of different operations; some of them doing the same thing, but expressed differently in machine code).

September 5th, 2010, 02:44 PM
The old Osborne Microprocessor series of books is particularly useful.

I agree. I still have "An Introduction to Microcomputers, Vol 1", by Adam Osborne published in 1976. It used a hypothetical 8 bit instruction set while later books specialized in the 8080, 6800, etc.

Vol 1 also included a chapter on bit slice design (for some reason he called it 'chip slice') which was as good as the data books by AMD describing their great 2901 series.