10

Is there a way in ProDOS 8, to directly run old DOS 3.3 binary games without loading BASIC.SYSTEM ?

Most games never access DOS 3.3 once the program was running, so even though these were never meant to run under ProDOS, it seems like they should be able to run directly from a ProDOS 8 launch menu without needing the BASIC language support of BASIC.SYSTEM.

I expect the general method is to take an old DOS 3.3 game such as Mario Brothers or Dig Dug, and enclose it inside of some sort of simple ProDOS 8 loader module, and then save it as a *.SYSTEM file, type SYS.

Has anyone ever found a way to do this?

  • 2
    If not, perhaps we could find one now. – wizzwizz4 Dec 14 '16 at 16:56
  • 1
    I know you can't wrap them as system file as that loads at a specific address in memory. On the other hand I don't see why you couldn't write a loader that lived in the DOS 3.3 memory space and would let you BRUN files. I did write a loader that Apple User published in the mid 80s that searched for system files and would let you pick one to run. I suspect someone must have written such a loader for binary files at some point. – PeterI Dec 14 '16 at 17:49
  • the answer is both "yes" and "no", as Nick noted below. There are games that want to save highscores back to disk which would require DOS, or load additional levels. Both require DOS for that, in the absence of a dedicated ProDOS port. Perhaps the better option is to post a request on the "new ProDOS ports" thread on comp.sys.apple2 newsgroup, after checking what is available already. – peter ferrie Feb 12 '17 at 1:53
8

First off, the direct answer to your question is "Yes", you can run some DOS 3.3 binary games without loading ProDOS BASIC.SYSTEM. However, it isn't quite as simple as that.

Second point is that it isn't as trivial as wrapping the DOS 3.3 binary file as a .SYSTEM.

There is a big assumption here that by 'DOS 3.3 games' you mean single file games, e.g.

SYSTEM VOLUME 254

 A 002 HELLO 
*B 134 HARD HAT MACK

]BRUN HARD HAT MACK

On this, let me give you some more details.

While you can copy a binary file over from DOS 3.3 to ProDOS, I don't believe it will run by itself. As well, you cannot simply rename it to .SYSTEM or set the file type since I believe there is some ProDOS header/magic that needs to happen (e.g. has to load at $2000 for one, if I remember correctly). As such, you won't be able to use the "bye" tool to launch Hard Hat Mack (HHM).

Some time ago, however, there was a developer who created something called DOS 3.3. Launcher which does the necessary tricks to get a DOS 3.3 binary like HHM to run under ProDOS. While it was intended for use under GS/OS, it does work fine under ProDOS 8 as well. It allows you to execute the DOS3.3.LAUNCHER program with the full path to the "converted" HHM as an argument (through something called the startup protocol which is really just the full path with length/etc put in a particular memory location). It works well and is a key tool in many 8-bit games collections I've found these days.

Unfortunately, I'm not aware of an easy way to run HHM with the launcher from "bye", though presumably there are tools out there which could be configured to put HHM as the startup protocol argument.

So what can you do? You could write a simple system file for HHM which simply executes the launcher with the appropriate argument, but now you've got 3 files for the one game. Of course, someone could craft something a bit more custom to handle multiple games as well :-)

So long story short, you can run DOS 3.3 binary games without loading BASIC.SYSTEM, but you need to use DOS 3.3 launcher which needs help from another program (which could be in BASIC). In the end, does it really matter if you have to load BASIC.SYSTEM to do this?

  • 1
    It does matter if BASIC.SYSTEM doesn't leave you with enough memory to load the file. ; - ) – Nick Westgate Dec 15 '16 at 7:54
5

The correct answer is, of course, "It depends". ; - )

If the game loads lower than $800 or is multiple files or otherwise tries to use DOS, work is needed.

Otherwise use Bitsy Bye and MiniBas in ProDOS 2.4.1. (See the 2.4 release page for docs.)

New ‘Bitsy Bye’ program launcher is built into ProDOS 2.4 and allows users to run SYS, S16, BIN, BAS, and TXT files.

MiniBas is just a shim layer to run programs, so is much smaller than BASIC.SYSTEM and uses much less memory. This is important if the game file is large and loads up to above $9200. (BASIC.SYSTEM uses down to $9200 and you would get a NO BUFFERS AVAILABLE error.)

New MiniBas by Usotsuki – Great for compilation disks, this tiny program can be used instead of Basic.System: Requires only 1 block on disk vs 21 blocks for Basic.System

Loads and runs Binary and Basic programs launched by Bitsy Bye.

This works for both games you mentioned (Mario Brothers and Dig Dug) but not Hard Hat Mack.

  • You can write a second small machine language program that loads up the desired target binary via ProDOS MLI. However, if that target binary program requires a disk function via Control-D, you may be out of luck without BASIC.SYSTEM, or possibly one of the other options listed by Nick above. – sonnik Dec 26 '16 at 0:38
  • 1
    and the quoted Hard Hat Mack is a poor-quality rip anyway. There's a dedicated ProDOS port of it. That solves that particular problem. – peter ferrie Feb 12 '17 at 1:49
  • The Hard Hat Mack port is here with many others in the san inc ProDOS collection. – Nick Westgate Apr 1 at 7:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.