Ruud's Commodore Site: PC-Box Home Email

The PC-Box




What is it?

In short: the PC-Box is my 8088 version of the SSE SoftBox: a small Z80 computer, no drives but equipped with an IEEE interface that enabled the Commodore CBM series to run CP/M 2.2 more or less. "More or less" because the CBM only acts as a terminal because the Softbox does the actual computing.

Remark: this is purely a fun project for myself in the first place!


Hardware

The PC-Box can be as small as a PC board with just one LPT and COM port that, in combination with two driver ICs, can act as an IEEE interface. The board now has to be told in one or another way how it bshould behave and the idea is to use an external ROM. The advantage of using an external ROM: it can be used on almost any PC board.

How to add this external ROM? There are several possebilities:
- I own an ISA card which only purpose is to add an external ROM.
- Various network cards, PCI and ISA, enable the user to add a boot ROM. But I haven't used this method yet my self.
- I once replaced the EPROM of a VGA card with my own EPROM. Worked like a charm although the VGA card itself could not be used (FYI: I used a MGP video card in that case).
- I found various modem, SCSI and other hardware cards with an on board external ROM. These cards can be used but there is a small disadvantage of using these cards in other projects than PC-Box: the onboard hardware could get in the way. Solution, tried and tested with an old ISA Adaptec SCSI card: cut the lines coming from the IORD and IOWR pin on the card's edge connector and connect the effected pins on the card to 5 Volt.


Software - external ROM

The BIOS I am going to use for my generic XT boards I have written myself but is based on various BIOSes I found on Internet. What you need to know is the way this BIOS initialises things, just the important ones:
- Initialise the interrupts.
- Initialise the video.
- Read the dip switches.
- Initialise the keyboard, no testing for its presence.
- Check if there exist COM and LPT ports.
- Check if an external ROM is present.

What has the external ROM to do? First it has to establish communications with the Commodore computer. Then it has change the interrupt vectors for the video and keyboard. Once done, the Commodore is able to act as terminal. The next vector to be changed is 19h, the boot interrupt. Normally it point to a routine that tries to boot from floppy or hard disk drive. Now it should point to a routine situated on the external ROM.
Having to deal with an "intelligent drive has one major advantage: we are not forced to use the first sector of the first track as boot sector. That could cause troubles because because sectors on a Commodore floppy drive have a size of 256 bytes and the ones of a PC 512 bytes. Now we simply have to ask the drive for a file called "Bootsector" (or whatever fancy name). Or not, see later.


Software - operating system and more

What software should be run on the PC-Box? And under what operating system? The obvious OS is MS-DOS or an equivalent, like FreeDOS. But handling disks is too much integrated inside this OS. CP/M already had the same problem, the Softbox could only be run by using a special prepared floppy disk.
Long before having this idea about the PC-Box, I started developing my own operating system: CBM-DOS, just for fun and to learn from it. Initially it was just meant for the PC-XT but in the mean time MichaƂ Pleban and I developed a new 8088 card for the CBM-II and I ran into my two SSE HardBoxes that I had misplaced previous year. This lead to the idea to to turn CBM-DOS in something that could run on these platforms with just one different file for each platform. The last is not new, it is the basic concept behind CP/M.

The bootsector is the first file that is loaded by an OS by a PC. This is just one sector. It on its turn loads another or more files and these can be bigger than one sector. The idea rose: why should I load a file only to load some more files, why can't the external ROM load these files? That will save us time and space on the boot medium.

Is being developed.


The CBM part

The only thing needed for the CBM is a piece of software that acts as the terminal for the CBM/PC-Box combination. This is being developed as well.


What CBM drive to use?

Software has to be developed and to be stored on a disk. Using CBM-HD means that I can use a PC both for development and storage, skipping the proces of transferring the files to a real disk during development. Once things work, an original CBM floppy drive can be used.


Testing the whole

Using "just a bare board" for testing didn't sound comfortable. So the idea is to use my Commodore PC 386SX in the first place. The only thing that will be used is the video card. It enables me to output codes on the video screen to see at what point in the code the program is running (or not).


Another idea....

What about using a complete system, i.e. a system that includes an hard disk drive and already starts up with an Operating System? The advantage: faster start up. But I have some doubts and the main one is that the CBM computer in this case becomes even more just a terminal.
Another advantage is that, when starting with this idea, the Commodore part is even easier to test. We'll see.





Having questions or comment? You want more information?
You can email me here.