4

Was it possible to load integer basic and use it without a language card or were the addresses fixed to rom?

EDIT: Sorry, I meant Apple II+ (I had an europlus) so I wrongly put IIe.

2
  • Related: Apple Bowl, written in Integer BASIC, was re-released for the Apple IIgs as part of the GS/OS distribution. I think it used a tweaked version of BASIC (as opposed to being rewritten from scratch in a different language). There were also "unofficial" ways to run Integer programs under ProDOS, e.g. this. I'm pretty sure they all used some amount of extended memory though.
    – fadden
    Dec 23, 2019 at 15:36
  • The System 6 AppleBowl was compiled with ORCA/Integer BASIC... but a slightly modified version that made line numbers optional and added named labels. It was also ported from ORCA/Pascal to build with MPW Pascal for use with MPW. Sep 19, 2020 at 19:42

4 Answers 4

12

TL;DR;

Was it possible to load integer basic and use it without a language card

No, at least not as an official Apple product.

DOS 3.3 only supplied an Integer BASIC image to be loaded into Language Card. Then again, A.P.P.L.E. did sell a modified, relocatable version of Integer BASIC, called Integer BASIC+, offering many extensions as well. It was published in May 1980 on disk at 17.50 USD.


How it happened

  • Original Apple II had Integer Basic in ROM.

  • In January 1978 the first Version of Applesoft (*1,2) was made available to be loaded (from cassette) into regular RAM.

  • In 1978 Applesoft ][ (*3) was created and made available in 5 versions (*4):

    • Loadable from cassette into RAM (*2,6).
    • Loadable from diskette into RAM (*2,6,7).
    • As Firmware Card holding the ROMs.
    • Loadable into Language Card.
    • Supplied as main board ROM.
  • With the Apple II+ introduction all machines had Applesoft in ROM.

  • Now the Firmware Card could be used to hold the Integer BASIC ROMs, supporting manual switching - by a literal switch:)

  • DOS 3.1 (1978) supported switching between Applesoft and Integer BASIC in either mainboard ROM or Firmware Card using FP and INT commands.

    • Applesoft would be loaded automatic from disk into RAM, if not in ROM - by trying to load a BASIC file called 'APPLESOFT' (*5,6,7,8).

    • Integer BASIC could only be used from ROM - if not present (*9) a "LANGUAGE NOT PRESENT" error message was displayed.

    • When loading (LOAD file) or starting (RUN file) a BASIC program from disk the appropriate BASIC selected first (*10).

  • Apple didn't supply Integer BASIC to be loaded into Language Card with DOS 3.1 or 3.2, but if an otherwise obtained ROM image was loaded (by user interaction or program) into a Language Card, DOS would switch as if it was a Firmware Card with Integer BASIC ROMs.

  • For DOS 3.3 the mechanics to select either BASIC were kept the same, but

    • (Base) RAM Applesoft was removed from the diskette.

    • It was no longer (by default) supported to run Applesoft on an Apple II with Integer BASIC in ROM without a Language Card

    • Two ROM images named FPBASIC and INTBASIC (*11) were supplied.

    • FP and INT commands now did not only switch between (ROM) images, but if either BASIC image was not in ROM, it was loaded into Language Card as part of switching (*10,12).

    • The default Applesoft turnkey program HELLO (*13) did load INTBASIC into Language Card RAM to speed up later switching - if there was a Language Card.

    • To avoid false detection, DOS 3.3 did clear the first byte of Language Card RAM during cold boot (*14). If one had already loaded either BASIC there, it was necessary to patch that back or have DOS reload it - which happened automatically, when loading/running a related program from diskette.

Bottom line: Apple never supplied Integer BASIC for RAM as a product. DOS 3.3 only included an image for use with a Language Card.


*1 - Applesoft I, based on Microsoft BASIC 1.1.

*2 - Applesoft was fix loaded at $800 and extended up to $3000, right in the middle of Highres page 1.

*3 - Applesoft ][ was based on Microsoft BASIC 2.0

*4 - None of them was relocatable.

*5 - To do so, the FP command does accept parameters for slot/drive/volume (INT doesn't).

*6 - The file was a clever hack of BASIC code plus binary. While the begin was a valid Integer BASIC program, the remaining was the binary image of cassette Applesoft. When started, the BASIC part did setup some vectors, printed a copyright message and started a routine to move the binary part to $800.

*7 - Starting it manually was a bad idea, as it unhooked DOS. When DOS started it (via the DOS FP command or implied for file type A), It used some wrapping to warmboot afterwards, restoring all pointers needed to hook BASIC.

*8 - The Applesoft loaded by APPLESOFT was not the same as ROM Applesoft image, but the older cassette version, thus including some errors from that time.

*9 - By testing address $E000. Applesoft starts with $4C (JMP) while Integer BASIC got a $20 (JSR) at this address.

*10 - After searching for the file given, DOS looked for the file type and issued an implied FP or INT to switch for the right BASIC before loading the program.

*11 - There are two different images for either available, distinguishable by size. The 50 sector versions delivered with the first (1980) version of DOS 3.3 contained the full 12 KiB of ROM, including the monitor, while the second (and third) version (1982/83) had 42 sectors. The monitor ROM was now excluded, as for the Apple IIe a different image would have been needed.

*12 - Of course this worked only if either file was present on the drive where the BASIC program was loaded from.

*13 - The turnkey program is a program that gets started after DOS finishes booting. Kinda like AUTOEXEC.BAT for MS-DOS, except it's name is not predefined, but gets fixed when initializing (formatting) a new disk.

*14 - Write $00 to $E000. See (*9).

13
  • With DOS 3.2 - and I think 3.1, but won't swear to it - you could get both Integer BASIC and Applesoft BASIC on the DOS disk as shipped from Apple, and neither actually required the Apple Language System to be available. It may have required that at least 16K of RAM be installed in the computer, but I don't remember exactly how much was required - just that an 8K Apple II could not run Applesoft. Dec 23, 2019 at 14:47
  • 1
    @JeffZeitlin Sure, DOS 3.3 had an image called INTBASIC, that was (non relocable) for use with a Language card (I added clarification above). Just, the question is about Integer BASIC without using a Language Card. It's entirely possible that your father had some setup of his own using for example Integer BASIC plus - or some other patched version. After all, much can be done. Just Apple didn't offer any RAM Integer BASIC.
    – Raffzahn
    Dec 25, 2019 at 17:34
  • 1
    @Raffzahn - I'll concede the possibility; I just remember one disk where he used the same command for loading INTEGER as he did for APPLESOFT on the II-not-plus, and another where the commands were FP and INT to cause the respective BASICs to be loaded off disk if needed (not in ROM or not already loaded). Dec 25, 2019 at 18:50
  • 1
    There is a relocated integer basic on the ITT2020 system disk I have called "ITT 2020 Master diskette Rev 5.3 DOS 33.dsk"
    – PeterI
    Sep 21, 2020 at 0:01
  • 1
    @paxdiablo Just reread and corrected it. looks like I somehow stopped right in the middle of editing. Anyway, the pseudo Integer-BASIC program APPLESOFT was no longer present on DOS 3.3 disks. So the whole paragraph didn't make any sense. Sorry for that.
    – Raffzahn
    Mar 21, 2022 at 3:28
2

Integer BASIC as shipped by Apple in the original ROMs or on DOS diskettes was intended only to run at address E000 to F7FF. On the original Apple II this was ROM which held Integer BASIC. With the language card, it was possible to bank-switch in RAM into this area, and DOS would load a binary image of Integer BASIC, the same as the ROM version, into the RAM in this area, which would then run just like ROM Integer BASIC.

Technically, with a disassembly or the source code, it would not be terribly difficult to relocate Integer BASIC to run it elsewhere in the address space, like in the lower 48 KB of RAM. This would break anything that called into Integer BASIC machine routines at specific addresses, but otherwise should have no side effects aside from less RAM being available to Integer BASIC programs.

If you wanted to run DOS at the same time, you'd have to hack DOS to not overwrite the Integer BASIC in RAM, and to hook into its routines. This would also not be terribly difficult, if I'm remembering right.

I can't find anything online but I would be surprised if it hasn't already been done by someone. I also can't find the link right now, but I do remember reading about one hobbyist who adapted the earlier version of Woz's BASIC for the Apple 1, to run from RAM on an Apple II.

1
  • 2
    It was of couse done. Called Integer BASIC+, distributed by Call A.P.P.L.E., under licence of Apple..
    – Raffzahn
    Dec 23, 2019 at 19:38
2

It was, in fact possible to load Integer BASIC into RAM without the Language Card, and without purchasing a modified variant. Back in the day there was a magazine article (Creative Computing, Byte, Nibble come to mind as likely candidates) detailing how to perform the relocation patch. From then on you were good to go.

I would think the article is available in an online archive somewhere, but I have yet to find it. And unfortunately, due to basement flooding I lost my dear retro computing magazine collection collected when I was just a pup.

1
  • I have a disk image with this version of Integer BASIC on it. When loaded, INTBASIC starts at $8700 in memory, and Integer BASIC's HIMEM is $7FBA. The code looks like it sets HIMEM to $8100, but I think DOS 3.3 knocks it down to $7FBA. The disk image is in a ZIP archive that looks to be from Call-APPLE, and it includes the TED II assembler. Feb 24, 2022 at 22:17
0

The Apple II (pre-II+ or IIe) had Integer BASIC in ROM, and you didn’t need a language card to use it - and, in fact, if you had sufficient base RAM, you could load Applesoft BASIC from disk without a language card.

The Apple II+ and IIe both had Applesoft BASIC in ROM, so if you wanted Integer BASIC, you would have to load it from disk - but, again, if you had sufficient RAM, you still didn’t need a language card.

To the best of my recollection, the only time you needed a language card was when you were running a language or application based on the UCSD P-System, which formed the basis of Apple Pascal, Apple FORTRAN, and Apple PILOT (and there were others, but I don’t recall them offhand).

1
  • Mind to add some proof that there was a RAM (non language card) Integer BASIC supplied by Apple?
    – Raffzahn
    Dec 26, 2019 at 20:16

You must log in to answer this question.

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