Lyrical Nanoha wrote:
I've just had a couple thoughts.1. I've seen PDOS.SYSTEM and AmperDOS, two BASIC.SYSTEM replacements that use &-commands to do all their work. I wonder if it would be very difficult to hack PDOS.SYSTEM into being compatible with BASIC.SYSTEM, just so as to have a version of BASIC.SYSTEM that isn't Apple-copyrighted. I'm thinking about rewriting ProDOS itself too but that is of lower priority (since I'm actually working on adding a ProDOS API emulation to SDDapple, under the name VDOS).
AmperDos is simply a rewrite of PDos. Mainly a reworking of interface for extra features. There are some issues with both versions. Primarily, there is no real buffer system so they only access one Prodos function at a time. IE, reading only one file, no exec type files and things of that nature. I really should fix this in AmperDos but I think it will require a complete rewrite.
Basic.system works in a different manner and is quite sophisticated in it's design. That said, it would be possible to write your own version of Basic.system. You will need to decide on the degree of compatibility required.
Basic.System itself scans the input stream for it's chr$(4) signal so you could do the same. Many of Basic.system features use the $BE00-$BF00 global page and you will need to also for more advanced programs. Some routines also use a built in set of read/write routines. You may need to provide them as well. All of this is documented on the web now. See Beneath Apple ProDos among others for more in depth information.
Standard Applesoft programs should be able to run in any environment as long as they can access some sort of storage media as required. However, using extensions to Basic.system such as the various CMD files or copy, list et.al routines will make compatibility very difficult to achieve.
Compatibility versus portability seems to be the issue. Perhaps 80% to 90% of Applesoft programs can be adapted to an alternate P8 access method.
2. I mentioned several months ago that I wanted to run INTBASIC programs on ProDOS, and it seems that it would take a disassembly and reassembly of Integer BASIC in order to do this. I have a version of Integer BASIC that will load on DOS 3.x in only 48K RAM but it doesn't work right in ProDOS, if possible maybe this could be hacked, and made to work correctly. Maybe even with ideas and code from that BASIC.SYSTEM clone idea I mentioned above, so that it can be a .SYSTEM file and run on its own.
I've looked into this a time or two. You can get Integer BASIC so it loads properly into the lower 48k. It may take some hacking to make everything work though. Integer BASIC has an advantage over Applesoft, it isn't as full featured. Ok, maybe that isn't always an advantage but it means that extra functions are called externally, such as hires graphics. Calling external routines would also be the best method for running older Integer BASIC programs in a P8 environment although you could use the input scanning method if desired. Some simple routines like PDos/AmperDos uses should be enough for disk storage.
Personally, I think a new P8 Integer BASIC would be a better option but I have to admit, it would be hard to out perform the Woz's version.
Cheers, Mike T.