10

I'd like to get an old Apple II Integer BASIC game running on archive.org's embedded MAME in such a way that it just runs without the user having to choose anything from a menu or type any commands to get it started.

This ought to simply be a matter of naming the game HELLO in CiderPress and setting the MAME emulator to apple2 on archive.org (i.e. original Apple, which has IB). Unfortunately apple2 stopped working on their flaky MAME emulator setup, so the disk needs to work on apple2e or apple2ee (enhanced), which both seem to be better supported and more commonly used on archive.org.

Secondary goal is for it work regardless of which specific Apple II in the series is being used or emulated (so anyone can download the disk image and use it easily regardless of their emulator setup or hardware, and so it can switch easily when archive.org supports apple2 again.

Is there some way to easily set up a disk to boot an Integer Basic program regardless of Apple II? Seems like a simple thing but all the examples I've looked at use a catalog program or require the user to manually run something, etc.

11
  • 1
    Make a copy of the DOS 3.3 "system master" disk, delete everything but HELLO and INTBASIC, and copy your game in. Modify the HELLO program to run your game after it finishes loading Integer BASIC into the language card.
    – fadden
    May 5, 2022 at 14:42
  • @fadden except such a disk would need an a2 with FP in ROM, wouldn't it?
    – Raffzahn
    May 5, 2022 at 18:13
  • 2
    IA also has emulator:apple2p for the Apple II+. Invariably (and I've uploaded a lot of Apple II disks) an upload through the web form results in one or both of the emulator and emulator_ext tags being lost, so the image won't autostart until you edit that. If you can manage to use the ia command line tool, it's more reliable
    – scruss
    May 5, 2022 at 19:43
  • @scruss Oh yeah I quickly got used to re-adding those tags that archive drops (added some msdos games, but newer to apple2) . The "apple2" emulator (without p or e etc) definitely seems broken though. Search "emulator:(apple2)" and they're all the same as what I'm getting i.imgur.com/voHoJlW.png
    – Qubei
    May 5, 2022 at 23:33
  • 1
    @Raffzahn: I was aiming for the simulated //e case. For broadest compatibility you'd also create an Integer BASIC program called APPLESOFT that ran the game, since that's what DOS runs if Applesoft isn't available to execute HELLO.
    – fadden
    May 6, 2022 at 2:36

2 Answers 2

9

Is there some way to easily set up a disk to boot an Integer Basic program regardless of Apple II?

Only if that Apple is equipped with a language card, as DOS can quite well simply run an Integer BASIC program as Autostart.

  • Boot into DOS 3.3
  • Switch to Integer BASIC (INT)
  • Load your Integer BASIC game
  • Initialize a new disk with your game (INIT <gamename>) (*1)
  • Add the Integer BASIC Image INTBASIC to that disk

Done.

DOS 3.3 recognizes the language to be used when loading/running a program and switch accordingly or load (if possible) the desired language. This is done by looking at the file type (A or I).

The advantage of this method is that it'll work with any setup of any II/IIe/IIe, independent of what language (INT or FP) is in Main-ROM or in a Firmware-Card (FP or INT) or if a language card needs to be filled first (with INT).

For more details on the selection process for languages see this answer.


And yes, one can as well use some Applesoft autostart (HELLO) program to load Integer BASIC, then start an EXEC file which switches to INT (Executing INT from inside an Applesoft program leads to a lesson abut pulling the rug beneath your feet:)) and RUN the integer BASIC program. But serious, why going all that length when DOS already includes all necessary tools - not to mention that the this disk will only boot satisfying on a machine with Applesoft present.


*1 - When wanting to boot from a different memory configuration you may need to use a copy of a master disk and add your program (using "HELLO" as name) by hand.

3
  • 1
    Can you please point me to an image of a disk that does this as an example cause I can't get it to work
    – Qubei
    May 6, 2022 at 7:02
  • @Qubei Works on a real machine. How to do it with a modern emulator is up to them.
    – Raffzahn
    May 6, 2022 at 7:28
  • 1
    @Raffzahn - I couldn't get this to work the way you wrote it on a IIe
    – scruss
    May 7, 2022 at 0:08
5

To make a disk that starts up directly into an Integer BASIC program on a system with Applesoft in ROM and a language card (][+, //e, etc), do this:

  1. Make a copy of the DOS 3.3 System Master disk. Delete everything except HELLO, INTBASIC, and (if present) LOADER.OBJ0.
  2. Modify the HELLO program to run the Integer BASIC program. For the 1980 System Master, change line 240 from END to PRINT CHR$(4)"RUN <program>". For the 1983 System Master, which doesn't have a line 240, replace line 100 (PRINT CHR$(4);"FP") instead. The idea here is just to replace the line that ends the program with one that runs the game.

To allow it to work on an original Apple ][, with Integer BASIC in ROM and no language card, add a trivial Integer program called APPLESOFT that runs the program (i.e. 10 PRINT "<ctrl+D>RUN <program>"). DOS will run APPLESOFT if you try to load an Applesoft program when Applesoft BASIC is not available.

The runs-on-anything version should look like this, using the ANIMALS program as a test case with the 1980 System Master disk:

CiderPress disk listing

I tested the disk image with AppleWin, using the "Enhanced Apple //e" and "Apple ][ (Original)" configurations.

2
  • Good answer but just to confuse things it seems there's three official versions of DOS 3.3, so the line number changes, and LOADER.OBJ0 is also referenced in HELLO in later ones, which is meant to fast-load INTBASIC. github.com/cmosher01/Apple-II-Source/blob/master/README-notes
    – Qubei
    May 7, 2022 at 22:11
  • 1
    @Qubei: I took a quick look at LOADER.OBJ0, and it appears to load either INTBASIC or FPBASIC as needed, so both HELLO and APPLESOFT just print a few things and then call it. I'll update the instructions.
    – fadden
    May 7, 2022 at 23:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .