Re: Software for MS-DOS 1.25

From: Mia Magnusson <mia_at_plea.se>
Date: Sat, 14 Oct 2017 02:46:23 +0200
Message-ID: <20171014024623.000048cb@plea.se>
Den Fri, 13 Oct 2017 10:51:25 +0200 skrev Michał Pleban
<lists@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.

Underline or inverse (usually underline) seems to be used for the
cursor. I don't know if any hardware feature of the 6845 on a PC is
used, I guess that it's the attribute bit.

A compromise could be to have a character set based on what's actually
used in real life. Very few if any programs use for example the
smileys, and block graphics might not need inverse mode, but it would
be good to have inverse mode for atleast ascii code 32-127 and
preferable a subset of national character (which each user should be
able to select when generating a font eprom image with some "generate"
utility).
 
> > 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.

As Ruud already stated, a XT class machine can use 1.2MB drives if you
provide appropriate driver (usually with a small extra rom). But that
is just a limitation of the XT bios. DOS will happily use whatever it
gets provided with.

Atleast with the addon programs FDREAD and FDFORMAT it's possible to
format disks with unusual number of tracks and sectors. Maybe it might
even be possible to do that without theese programs. That way it should
be easy to freely select to use any amout of the disk space of any CBM
drive, for example almost all of the disk for data disks and part of
the disk for a boot disk (having space for the required 6809 programs
to boot e.t.c.).

But this is stuff to worry about later in the process :)
 
> > 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.

Oh :( The S-100 computer must be the one that the Seattle company Tim
Paterson (creator of DOS) were working on while creating DOS (named
QDOS then).

I don't know if FreeDOS runs on an 8088. If so, it might be a good
start. Or otherwise it might not be that hard to debug a bios if the
bios contain debug information.

> > 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.

True. Maybe a great mod would be to have a daughterboard that both
moves the CBM ram and also adds more RAM? I don't know if it would be
even possible to add ram so it would be visible for the CBM too (when
not in 8088 mode)? (As I don't have any CBM-II myself I haven't looked
that much into how the hardware works). As I understand it you can't
use more than 256K from strict Basic programs on the 6509 so maybe
there is not much use for more memory on the 6509 side.

But how does disk i/o work? I would have thought that the 8088 would be
shut down completely giving memory access back to the 6509 while it
does it's thing, and then starts up the 8088 again. Or is it done
sending one sector at a time via the 6526 interfaces while
both CPU's running at the same time?

> > 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.

Yeah, as I understand it there is 2k of ram for the 6509 on the 8088
board, that's a bit tight to have any code not strictly neccesary.
 
> > 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.

But I assume that writing a new BIOS on the 8088 side would also mean
at least changing the 6509 code somehow. Then IRQ0 and IRQ7 can be used
freely.

> > 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.

Nice!

Maybe all versions that were available for different OSes (CP/M 80,
CP/M 86, up to version 3) uses BIOS, and versions afterwards use direct
screen memory access?


-- 
(\_/) Copy the bunny to your mails to help
(O.o) him achieve world domination.
(> <) Come join the dark side.
/_|_\ We have cookies.

       Message was sent through the cbm-hackers mailing list
Received on 2017-10-14 01:00:02

Archive generated by hypermail 2.2.0.