Close
0%
0%

An OS and SW Tools For The SBC-85

A lightweight OS, line editor, and assemblers for the SBC-85 system

Similar projects worth following
The SBC-85 project includes a bubble memory board which is a good thing, but needs some software to be really useful. This project transplants software from my 40 year old 8085 computer, that also included bubble memory, to the SBC-85 system. The software includes not only an OS that uses the bubble memory as non-volatile storage, but also a line editor and two 8085 assemblers.

When microcomputers first appeared there was, of course, precious little software available for them.  If you wanted to use a microcomputer for some particular purpose you were probably going to have to write the software yourself.  That was the position I was in more than forty years ago with my first computer, an Explorer 85 from Netronics Research.  My long-term goal had been to expand the system enough to eventually use CP/M, which was becoming the most popular OS for 8 bit computers, and for which there was a rapidly expanding wealth of software.  During that time I was involved in deploying systems for the company I worked for that included magnetic bubble memory. When I learned that Intel was selling bubble memory evaluation kits I decided to use one of those for non-volatile storage instead of a more expensive 8 inch floppy drive.  In preparation for building a floppy drive interface card, I had already purchased a copy of the book "K2FDOS, A Floppy Disk Operating System For the 8080" by Kenneth B.  Welles (CP/M would have been a later upgrade).  It took a lot of hours, but I eventually had K2FDOS working on my system, along with an editor/assembler from another book: "TEA, An 8080/8085 Co-Resident Editor/Assembler" by Christopher A. Titus.  I also had another assembler that I had written from scratch that could assemble source code split into multiple files (RAM was expensive).  I used that system for a long time, eventually replacing it with something newer, but I never actually got rid of it.

Explorer 85:

Last summer I discovered the SBC-85 project here, and decided to build one, thinking that perhaps I could get the software I had been using forty years ago to run on that hardware.  The first thing to do was to build the SBC-85 system, including the CPU board, Memory Expansion board, Backplane, and the Bubble Memory board.  I also built the Bus Monitor for good measure.  It's a very nice system, but not all that useful without software, although it does have a very capable monitor program.

SBC-85 with Bubble Memory and Bus Monitor

The next step was to try to recover as much software as possible from the old Explorer.  In the end I was reasonably successful with both the bubble memory and cassette tapes.  Now began the final stage of this project: getting that software to work on the SBC-85.  K2FDOS is actually five separate programs: Boot, Sysgen, Format, PIP, and FDOS.  The boot program reads an executable copy of FDOS into RAM.  The sysgen program basically does the opposite: it saves the copy of FDOS that's in RAM.  The format program prepares the storage media, whatever it is, for use by FDOS.  PIP is an auxiliary program for FDOS that provides a user interface to perform common tasks like renaming, deleting, listing files, etc.  And FDOS itself provides all the basic file and I/O functions that external programs might need.

Although I could find the source for most of the software I was interested in, the only source files I could find for FDOS itself were very early copies that didn't include any of the changes necessary to get it to work with bubble memory.  However, I did have the executable and a printout that was nearly the same as the executable, so I used DASMx to disassemble the executable, resulting in a source file that assembled to a binary that matched the executable from the Explorer.  For a cross assembler I use AS (or ASL on FreeBSD).  It still took some effort to get that version of FDOS working on the SBC-85.  For one thing, I had been using a parallel port on the Explorer as console in, whereas the SBC-85 uses the processor's SID pin.  There were also a number of places in the source that didn't look quite right.  Mostly cases where there were pointers referencing locations that didn't seem to make any sense.  I had to go through all of those and...

Read more »

install.pdf

How to install FDOS, TEA, ASM1, etc., and some basic information on using them.

application/pdf - 44.14 kB - 03/10/2023 at 17:06

Preview

cvt-tea

Convert TEA one byte per line format to more conventional one instruction per line.

cvt-tea - 7.24 kB - 03/05/2023 at 17:26

Download

tea4sbc.tgz

TEA editor/assembler plus multi-file assembler.

application/x-compressed-tar - 144.52 kB - 03/05/2023 at 16:58

Download

fdosrom.tgz

K2FDOS suitable for ROM.

application/x-compressed-tar - 146.51 kB - 03/05/2023 at 16:57

Download

View project log

Enjoy this project?

Share

Discussions

m4760978 wrote 07/14/2023 at 11:05 point

Punching a punching bag can be a part of an can you lose weight by punching a punching bag</a> overall fitness routine that may contribute to weight loss, but it is not a guaranteed method to lose weight on its own. https://www.fitsyology.com/does-punching-bag-burn-fat/

  Are you sure? yes | no

Fred N. van Kempen wrote 03/07/2023 at 03:16 point

Awesome stuff!  @Craig can we generalize this for other forms of, um, "storage"?  Battery-backed CMOS, core memory (!), etc?  Could possibly also be merged with a cassette driver..

  Are you sure? yes | no

Craig wrote 03/07/2023 at 03:59 point

It is not battery backed-up, but applying FDOS to the memory expansion card as RAM to EEPROM could be an intermediate step.  After finishing this project, Denver could probably do that in his sleep.   Then someone can make a battery CMOS card to swap out for the memory expansion board. 

Bubble chips are relatively easy to come by, are there enough core/driver boards?

  Are you sure? yes | no

Denver wrote 03/07/2023 at 04:45 point

Are you guys talking about actual magnetic core memory, with sense lines, ferrite beads, destructive reads, etc?  The last time I worked on one of those was to help Noah get his blueprints done.  Actually, you really need a block device for this.  Or something that presents a block type interface - doesn't really matter how it behaves inside.  I suppose a board could be made that used a bunch of NVRAM, but had a block device interface.  FDOS could probably be made to work with that.

  Are you sure? yes | no

Craig wrote 03/05/2023 at 23:45 point

That is an extremely impressive amount of work, not to mention a fantastic contribution.

  Are you sure? yes | no

Denver wrote 03/06/2023 at 04:21 point

Thanks Craig.  Although a lot of the  work was actually done more than 40 years ago, it was still a blast this time around.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates