Re: Software for MS-DOS 1.25

From: Michał Pleban <lists_at_michau.name>
Date: Fri, 13 Oct 2017 10:51:25 +0200
Message-ID: <59E07E8D.7050001@michau.name>
Hello!

Mia Magnusson wrote:

> Another solution would be to add a character rom twice as big and use
> some unused i/o pin (or add i/o hardware) to select between PETSCII and
> PC8 font.

That is a great idea. In fact, CBM has even already Escape sequences to
switch between two character fonts, so it should be an easy
modification. We would lose character inversion (bit 7) but otherwise it
would simplify a lot.

It could be even a switch in the software - use original or PC character
ROM, for whichever application it suits best.

> In fact AFAIK you cannot emulate PC8 complete with inverted video
> e.t.c. on a CBM machine (except on C128).

Of course - the MDA has attributes for underline, blink, underscore etc
and we cannot emulate these on a CBM, but I don't think they are very
important.

> That must surely be optional if the code runs on 8088 or 6509?

Unfortunately no - since the 8088 can only access DRAM, all I/O code
must be run on the 6509.

> So I'd say that there is not much difference between all these
> machines. It might be a good idea to stick to XT if any software tests
> what kind of processor the machine has by trying BIOS calls.

The only thing I can think of when I would need AT is emulating the PC
1.2MB drive. It would be nice to be able to use the whole capacity of
the 8250 disk instead of sticking to 360 kB.

> I'd suggest some kind of loader that loads in top of memory and patches
> the various INT vectors and emulates a PC BIOS good enough to run a DOS
> version for IBM PC.

Unfortunately, the source codes for 1.1 are not for PC but for some
S-100 computer. And the source codes for 2.0 lack the code for IO.SYS at
all.

> Such upgrade would be good for running a periodic code to copy emulated
> PC display card over to the CBM display hardware.

... or just the simple hardware mod of moving page 4 to page 12 which
would make the computer have 192 kB instead of 256 kB, but the video
memory would then be available at segment B000.

The beauty of this mod is that it can be done with a single chip on a
daughterboard which would go in the middle between the 8088 card and the
mainboard.

Extending the RAM on motherboard itself requires more modding,
soldering, adding chips etc - not for the faint of the heart.

> AFAIK DOS doesen't test how much RAM the machine has, it either reads
> some specified memory localtion or calls some BIOS INT to figure that
> out, so it should be easy to just hide the top of memory.

Yes, that's INT 12h - I don't know if DOS uses that, or reads 0040:0013.
That is to be determined.

> I'd suggest some kind of loader that loads in top of memory and patches
> the various INT vectors and emulates a PC BIOS good enough to run a DOS
> version for IBM PC.

I wanted to do two versions - one to be embedded in a replacement ROM,
and second like you describe, for people who can't or won't upgrade
their hardware.

For development or debugging, of course the version that overlays on top
of memory must be used. Only when the code is stable enough, it's worth
putting it into ROM.

> One solution is to make the 6509 code count how many interrupts it has
> done per time unit, and make sure that it averages out to about 18.2
> times per second. That way most software should work.

That's what I wanted to do, but on the 8088 side. The interrupt arrives
there anyway, so it's easier to divide the clock directly on the 8088.

> As it seems like there is two IRQ's from 6509 to 8088 one could be used
> for simulating the 18.2Hz timer combined with whatever communication
> that could wait until the next 18.2Hz tick, and the other IRQ for actual
> communication that cannot wait until a 18.2Hz tick.

There are two plus third from the TOD clock. One of them (IRQ0) is used
for signaling the 8088 that the IPC call to 6509 is ended. Another
(IRQ7) is not used and it might be repurposed for anything we want.

> However I don't know if any version of Turbo Pascal 1.x for DOS is
> available on the net. Version 2.0 is from 1984 while DOS 2.0 came out
> early 1983.

Yes, I ran it under PCe and it looks like it uses INT 10h for all video.
That would be a good candidate.

Regards,
Michau.

       Message was sent through the cbm-hackers mailing list
Received on 2017-10-13 09:03:16

Archive generated by hypermail 2.2.0.