[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Once again musing about "DOS 3.3 for ProDOS"
- Subject: Re: Once again musing about "DOS 3.3 for ProDOS"
- From: Steve Nickolas <lyricalnanoha@usotsuki.hoshinet.org>
- Date: Wed, 14 Dec 2011 11:28:59 +0100
- Cancel-lock: sha1:P7fZbIYelFbbg4tOTc86cLZLKDg=
- In-reply-to: <jc9s8k$ico$1@dont-email.me>
- Injection-info: mx04.eternal-september.org; posting-host="e+ps7ncblM4Oh3tsFEgATA"; logging-data="26175"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+u9pB+ZThftOy+/XNZh4686HN32Ik9BbA="
- Newsgroups: comp.sys.apple2
- Organization: A noiseless patient Spider
- References: <alpine.DEB.2.00.1112131942340.25603@ns383864.ovh.net> <jc9s8k$ico$1@dont-email.me>
- User-agent: Alpine 2.00 (DEB 1167 2008-08-23)
On Wed, 14 Dec 2011, BluPhoenyx wrote:
On 12/13/2011 12:49 PM, Steve Nickolas wrote:
This time I'm armed with a basic understanding of the ProDOS API, but
still don't understand the inner workings of DOS.
The inner workings of DOS were always hazy to a number of folks. Factor in
the myriad hacks by the community and DOS was a jumble of routines which
could give most anyone a headache. However, most INTEGER DOS programs don't
require such intricate details about DOS they require an understanding of
what the programmer was attempting to accomplish within the confines of DOS.
Given the flexibility of ProDOS 8 I suspect most Apple DOS programs could be
ported.
As do I. This was why I was trying to do this.
I've thought of a few things which would be potentially viable with such
a system: INTBASIC (lomem version) and a number of small BASIC programs
with chargens (many of them break under ProDOS). Mostly this is
advantageous to people with higher capacity disk drives.
Integer BASIC has often been desired by the II's BASIC programming fans.I
myself have toyed with the idea several times. I could never justify the
effort though as there are other alternatives available. For instance, there
is APEX an integer based interpreted language with an adjustable base which
allowed for a broad range of values on a variable sized base. Alternately,
ZBASIC could be configured for use as an integer only environment. Being both
compiler and interpreter it offers some interesting possibilities.
Please don't misunderstand, I applaud your efforts and should you make such
an interpreter I expect to be among the first in line to acquire a copy. I
mostly wanted to point out that most of those old gems might be better off if
the effort were put directly into porting them instead.
I suppose easier said than done.
The idea I've thought of is just patch DOS 3.3 so that file i/o is done
through the ProDOS api. I think there's enough room in the code to do
this and leave the 256 bytes at the top free (hell, just removing INIT
allowed me to have DOS 3.3 and ProDOS resident at the same time).
The source of PDOS RDOS tells me what I need to know about interfacing
on a basic (lol) level to ProDOS but I haven't seen something similar
for DOS 3.3. I am thinking I will want to merely patch out the file
manager and RWTS, and replace INIT with BYE. Doing the former is the
most difficult.
The thing is, DOS wasn't meant to be interfaced with. It was a means to an
end. A simple method created to allow BASIC programmers access to the floppy
disk storage medium. The trick was to make the DOS commands feel like part of
the actual BASIC environment. Well, that's just me waxing philosophical about
it. Perhaps there will be some technical posts about how (or not) it can be
done.
Heh.
I think the biggest trick I've seen was the print chr$(4) stuff being used
from machine code. Works great under DOS 3.3... don't work at all under
BASIC.SYSTEM. (Then, I guess just trying to implement that would take
care of a lot of things. I haven't had the luck in handling stuff like
OPEN or whatall though and at best would just have the minimal stuff. And
I'm not good at writing parsers in 6502...) I think actually poking into
the guts of DOS is prolly rare, though it should be possible to keep most
of the guts intact.
There is an INTBASIC variant that loads at $0800. Necessarily it would
need the standard hooks like DOS 3.x uses in order to function, but it is
fully capable of running there.
-uso.