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.
Retrocomputing Stack Exchange is a question and answer site for vintage-computer hobbyists interested in restoring, preserving, and using the classic computer and gaming systems of yesteryear. It only takes a minute to sign up.Sign up to join this community
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, relocable version of Integer BASIC, called Integer BASIC+, offering many extensions as well. It was published in Mai 1980 on disk at 17.50 USD.
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):
With the Apple II+ introduction all machines had Applesoft in ROM.
Now the Firmware Card could be used to hold the Integer BASIC ROMs, still supporting manual switching.
DOS 3.1 (1978) supported switching between Applesoft and Integer BASIC in either mainboard ROM or Firmware Card using
Applesoft would be loaded automatic from disk if not in ROM - by trying to load a file called 'APPLESOFT' (*5,6).
Integer BASIC could only be used from ROM - if not present (*8) a "LANGUAGE NOT PRESENT" error message was displayed.
Apple didn't supply Integer BASIC with DOS 3.1 or 3.2, but it was possible to load a ROM image into a Language Card and DOS would switch as if a Firmware Card were installed..
For DOS 3.3 the mechanics to select either BASIC were kept the same, but
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
INTBASIC (*10) were supplied.
Loading either BASIC image to the Language Card was supported by utilities.
The Applesoft program
HELLO did load
INTBASIC into Language Card RAM
The Integer BASIC program
APPLESOFT replaced the
To avoid false detection, DOS 3.3 did clear the first byte of Language Card RAM during cold boot (*9). If one had already loaded either BASIC there, it was necessary to patch that back or have DOS reload it - which happend automatic, when loading/running a related program from diskette.
Bottom line: For Apple never supplied Integer BASIC for RAM as a product.
*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 relocable.
*5 - To do so, the
FP command does accept parameters for slot/drive/volume (
*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 wraping to warmboot afterwards, restoring all pointers needed to hook BASIC.
*8 - By testing address $E000. Applesoft starts with $4C (JMP) while Integer BASIC got a $20 (JSR) at this address.
*9 - Write $00 to $E000.
*10 - There are two different images for either available, distinguischable 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.
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.
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.
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).