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.