Re: BASIC for the CBM-II/8088

From: Michał Pleban <>
Date: Fri, 20 Jul 2018 13:41:44 +0200
Message-ID: <>
Mia Magnusson wrote:

> Not sure which versions of V20 that's easy to source today. 

I bought some 20 MHz ones on Ebay a few months ago (and they work in the
8088 card like a charm ;-))

> I think somewhere around DOS 3.x support for network started to appear.
> I assume it would be a lot of work, but it would be kind of nice to
> install the CBM Kernal API as a file system handler to DOS.

Yes, DOS 3 introduces a network redirector interface. I have never
looked at this interface but in theory it could work. However, I have no
idea how much memory it would take on the 6509 side where space is
already very tight.

> (Not sure how the 8088 card, with either your or the original BIOS,
> handles character devices but I assume it would be trivial to add
> support for printers and the rare IEEE-488 modem and IEEE-488<->rs232
> converter boxes).

It is indeed quite easy. The original card software already had some
rudimentary support for IEEE printers, which would unfortunately not
work in MS-DOS however, because the 8088 code part is buggy, hangs the
processor due to stack mismanagement and even tries to call INT 17 (!!).
The support of the IEEE modem was also present but unused by MS-DOS; I
removed it to save space.

> As the P500 is rare itself, but as it afaik uses non-rare parts (except
> for the triports and the CPU) I assume there isn't that much risk of
> destroying expensive part by trying. Maybe we can convince someone here
> on the list who has a P500? :)

My P500 is in storage. I can go fetch it, but first I would like to
finish the video memory emulation.

> Yeah, I know. My idea was that the conversion might take about as much
> longer time than a pure copy as the 8088 is faster than the 6509,
> making them process each byte at about the same speed. It would take
> some machine code programming with cycle counting to be able to
> transfer a bunch of chars without handshake, but as it can be done
> between a 1541 and a C64 it should be possible between the 8088 and the
> 6509 on a B :)

You cannot transfer data without synchronization, because the 8088
execution time is nondeterministic - it can be stopped by the mainboard
to refresh the DRAM at undetermined moments in time. So no matter what
you do, you cannot write cycle-exact code for the 8088. That's why I
wanted to synchronize the CPUs with the SO pin.

What I ultimately want to do is to make the 8088 read a byte and convert
it, then issue it via an IO port to the 6509 which will place it in the
video memory, while the 8088 is already busy fetching another one.

But it is a nontrivial task, so my first version will have the 6509
simply refresh the screen once a second as a proof of concept.

Received on 2018-07-20 14:00:04

Archive generated by hypermail 2.2.0.