It was thus said that the Great Bill Girnius once stated:
Hey guess what, very odd. If you have the cart's in and you boot to a normal
plain old DOS disk, just type 123 and it Loads!! YES! Don't know how the
heck it does it, but it does work.
The cartridges for the IBM PCjr can contain either a standalone program,
BIOS extentions, MS-DOS programs or tokenized BASIC programs. Each cartrige
can contain upto 64K of ROM (typically 32K by 8) so there is 128K of memory
space addressable through the cartridges, at address D0000 - EFFFF.
The format for a stand alone or BIOS extention cartridge is:
offset contents
0 $55
1 $AA
2 length of cartridge / 512
3 - 5 JMP to init code (called via far call)
6 $00
... data
last 2 locations CRC
The format for the MS-DOS command cartridges
0 $55
1 $AA
2 length
3 - 5 JMP to init code
6 length of command name
7 ... n command
n , n+1 16b offset to routine when 'name' is typed
n+2 length of next command ($00 if end of table)
n+3 , n+4 16b offset to routine
... data
last 2 locations CRC
The format for tokenized BASIC program cartridge (cartridge chip selects
must address $D0000 as the BASIC cartridge itself is at $E0000)
0 $55
1 $AA
2 length
3 $CB
4 $AA
5 $55
6 $00
7 $FF if unprotected BASIC program
$FE if protected
8 start of tokenized BASIC code
n $FF padding to next 2048 byte boundary
last 2 addresses CRC
My feeling is that the code for the MS-DOS cartridges are run directly out
of ROM, but that's all the information I have about the IBM PCjr cartridges
(from the IBM PCjr Technical reference manual, 2-107 through 2-118)
-spc (Thought it was a neat idea then, still does now ... )