|This article needs additional citations for verification. (December 2012)|
The ITT 2020 was an Apple II Plus clone manufactured by ITT under license from Apple Computer (the first licensed clone), specifically for the European market. In the Benelux, it was distributed by Bell Telephone mfg. company. In the United Kingdom, it was distributed by Microsense Computer Limited.
The major difference, and the reason ITT believed this personal computer would be a success, was that the color video signal conformed to the European PAL standard, rather than the American NTSC standard. This meant color graphics could be viewed using a standard European monitor or TV set, rather than having to import an NTSC monitor from America or Japan as was the case with the Apple II plus. ITT sold this computer starting 1979 for only a few years. When Apple Computer started shipping the Apple II Europlus, ITT withdrew from the market, despite the fact that the Europlus did not support color.
The most significant other change was the Hi-res graphics resolution. ITT increased the horizontal resolution from the 280 pixels the Apple II Plus used, to 360 pixels. The vertical resolution however, remained the same.
This made many Apple II programs incompatible with this computer.
The higher resolution was a necessary consequence of the higher frequency of the PAL color subcarrier. In order to provide enough bits to the video shift register to generate the higher PAL subcarrier frequency, 9 bits per memory location were needed, rather than the 7 bits the Apple II+ used.
To achieve this, an extra 16Kx1 memory chip was added to the motherboard, which added a 9th bit to the Hires memory pages (0x2000 to 0x5FFF).
This made it necessary to modify the graphics routines in Apple's Applesoft Basic interpreter in ROM. To emphasize this difference, ITT called this "PALSOFT".
To make room for the longer graphics routines (manipulating the 9th bit required extra code), the HPLOT instruction was limited to a single parameter, rather than a string of parameters.
ITT also supplied a floppy disk drive that was identical to the Apple II disk drive with 13 sectors and DOS 3.2. They never supplied the upgrade to 16 sectors and DOS 3.3.
- A 220V 50 Hz Power Supply manufactured by ITT themselves
- The case was spray-painted a mat silver color, and the keyboard was black.
- The ITT 2020 used a higher clock frequency, necessary for the PAL signal. A 17.73 MHz crystal was used (Four times the PAL subcarrier frequency of 4.433 MHz), whereas the Apple II+ used a 14.318 crystal- four times the NTSC subcarrier frequency of 3.58 MHz. In the ITT 2020, the crystal frequency was divided by 17 to give the microprocessor a clock frequency of 1.042 MHz. In the Apple II+, the frequency was divided by 14 to give a microprocessor clock frequency of 1.023 MHz.
- The slots in the back of the casing were smaller, making it extremely difficult to install some expansion cards.
- The reset switch only worked in combination with the Control key. This was done to avoid the many accidental resets Apple II users complained about.
- The 4th annunciator output was not supported. The I/O addresses (0xC05E and 0xC05F) Apple used for this output were used by ITT to bank-switch the extra RAM chip.
- The third button on the game connector was not supported, as ITT used the I/O address of this input (0xC063) to read the extra RAM.
- The bug in the ONERR GOTO routine in the Apple II plus that required users to BLOAD a patch, was resolved in the ITT 2020.
- Some users reported a Bug in the XDRAW routine, causing strange shapes to appear under certain circumstances.
- The DOS ITT supplied with the 2020 was Appledos 3.2. However a catalog listing showed Basic programs as type 'P' (for PALSoft) rather than type 'A' (for Applesoft)
Any Apple II program using graphics had problems on the ITT 2020.
Only programs written specifically for the ITT 2020 could make proper use of the Hi-res graphics. These could use horizontal co-ordinates of up to 359, rather than the 279 maximum of the Apple II+
- If the program used the Applesoft Basic graphic commands in ROM, the image would appear squashed- circles would appear as ellipses and squares as rectangles.
- If the program accessed the video memory directly (and many did), 40 white or black vertical lines would appear through the image as a result of the 9th bit not being set.
- Programs using the HPLOT command with multiple parameters did not work properly.
- The colors were different to those on the Apple II, not only in hi-res mode, but also in lo-res mode. In lo-res mode, some colors were not available.
- Programs using the missing annunciator output or missing switch input did not work.
- Because of the difference in clock frequency, programs on the ITT 2020 (without graphics) ran 2% faster (Benchmarks confirmed this).
- Programs that automatically loaded the patch for the ONERR GOTO bug would crash if an error occurred, as this bug was already fixed.
- Programs making system calls (calls to subroutines in ROM) would sometimes crash because some entry points had changed.
- BSAVE and BLOAD of graphics images did not work, as the 9th bit was not included in the file.
- The Hi-res routines in Apple's Programmers Aid did not work.
- The different timing signals made some peripherals and expansion cards malfunction.
ITT eventually released a technical note with an assembly language program that allowed users to load and save hi-res images.
The Ninth Bit
The extra RAM chip was basically a write-only memory: data was written to the chip by software, but read out by the video generation hardware. The data input of the chip was wired to the data input of the 8th bit (the MSB) of the main video memory and was therefore equal to this 8th bit during a write operation. By enabling the extra chip, the same data would be saved in the 9th bit as in the 8th bit.
For example, in order to set the word of memory location 'HiresLoc' to 0b110100101, the following routine is necessary:
LDA $C05E ; enable the extra RAM chip LDA #$80 ; set MSB to 1 STA HiresLoc ; save data to both bit 8 and bit 9 LDA $C05F ; disable extra RAM chip LDA #11010010 ; load the remainder of the data STA HiresLoc ; save to main memory, but 9th bit remains set.
To change only the 9th bit requires even more programming:
LDA HiresLoc ; read bits 1-8 PHA ; store on stack LDA $C05E ; enable the extra RAM chip LDA #0 ; bit 9 must become 0 STA HiresLoc ; but bits 1-8 are also changed LDA $C05F ; so disable extra RAM chip PLA ; retrieve data from stack STA HiresLoc ; and put the old value back in 1-8
It is possible to read the 9th bit when this is necessary, for instance, to save a Hires image to disk.
This is achieved as follows:
LDA HiresLoc ; read address LDA $C063 ; MSB of this address is value of bit 9 of last address read in BPL notset ; branch if bit is zero
- Thanks to H.F. van Rietschote, who wrote an article in Databus Magazine on this subject
- ITT 2020 Service Training Manual