ITT 2020

ITT 2020は、欧州市場向けにApple Computer（現:Apple）のライセンスの下でITTにより製造されたApple IIクローン（最初の認可されたクローン）である。ベネルクス3国ではベル電話会社により、また英国ではMicrosense Computerにより販売された。

Apple IIとの大きな相違と、ITTがこのパソコンが成功すると信じた理由は、ビデオ信号を米国のNTSC規格ではなく、ヨーロッパのPAL規格に準拠したことによる。これにより、カラーグラフィックスをアメリカや日本からNTSCモニターを輸入して使用するのではなく、Apple IIと同様に欧州の標準モニターまたはテレビで使用することができる。ITTは1979年からわずか数年間このコンピューターの出荷を開始、ITTは、Europlusが（特別なカードなしには）カラーグラフィックスをサポートしていないにもかかわらず、市場から撤退した。

ITTは13セクターのApple IIディスクドライブとApple DOS 3.2をフロッピーディスクで提供した。彼らは16セクターとApple DOS 3.3へのアップグレードを提供しなかった。

主要な相違 

 ITT製の220 V 50 Hz電源。
 ケースはつや消しのシルバー色にスプレー塗装し、キーボードは黒。
 ITT 2020はPAL信号に必要なより高いクロック周波数を使用。Apple IIがNTSCのサブキャリア周波数3.58 MHzの4倍の14.318 MHzを使用しているのに対し、17.73 MHzのクリスタル（PAL信号のサブキャリア周波数4.433MHzの4倍）を使用。Apple IIではマイクロプロセッサのクロック周波数を14分割し、1.023 MHzとしているのに対し、ITT 2020では17分割し、マイクロプロセッサのクロック周波数を1.042 MHzとしている。
 躯体の後部のスロットが小さく、いくつかの拡張カードの装着が非常に困難。
 ITT 2020の初期のバージョン（とApple II）では誤ったリセットが数多く行われており、ユーザーの不満が大きかったことから、ITT 2020の後期のバージョンでは、リセットスイッチはコントロールキーの組み合わせで動くようになった。
 第4のアナウンシエーター出力はサポートされていない。Appleの出力で使用されているI/Oアドレス (0ｘC05Eと0ｘC05F) は、ITTでは追加のRAMチップのバンク切り替えスイッチに使用されている。
 “A” (Applesoft) ではなく”P” (PALSoft) として記載。

相違による影響 
グラフィックスを使用しているApple IIプログラムをITT 2020で上で動かすと問題が生じる。

ITT 2020のために特別に作成されたプログラムは高解像度グラフィックスの適切な使用が可能となる。これらは Apple IIの最大279の水平座標ではなく最大359の水平座標を使用している。

 ROM中のApplesoft Basicのグラフィックコマンドを使用すると、ぺちゃんこな円と長方形、正方形、楕円が表示される。
 プログラムがビデオメモリに直接アクセス（多くのプログラムでそうしている）すると、第9ビットが設定されていない結果、40の白または黒の縦線が表示される。
 HPLOTコマンドにより複数のパラメーターを使用しているプログラムは正しく動作しない。
 高解像度モードのみならず低解像度モードにおいてもApple IIの色の表示と異なる。また、低解像度モードでは、いくつかの色が使用できない。
 削除された警報やスイッチ入力を用いたプログラムは動作しない。
 クック周波数の違いのためITT 2020上のプログラム (グラフィックスなし) では2%高速に動作する（ベンチマークにおいてこれを確認した）。
 ONERR GOTOバグ用のパッチが自動的に読み込まれるプログラムでは既にバグが修正されているため、エラーが発生した時点でクラッシュする。
 いくつかのエントリポイントが変更されていることから、システムコール（ROM中のサブルーチンへの呼び出し）を行うプログラムではクラッシュすることがある。
 第9ビットがファイルに含まれていないことから、グラフィックスのBSAVEとEBLOADは動作しない。
 Appleのプログラマにより組み込まれた高解像度グラフィックスのルーチンは動作しない。
 異なるタイミング信号により、いくつかの周辺機器や拡張カードは誤動作する。

ITTは、最終的にユーザーに高解像度画像の読み込み、保存を許可するアセンブリ言語プログラムのテクニカルノートをリリースした。

グラフィックス

Apple IIとの相違 
ITT 2020のApple IIとの最も重要な相違は、高解像度のグラフィックスの解像度である。ITTは、Apple IIに使用された280ピクセルの水平解像度を360ピクセルに増加した。一方、垂直方向の解像度はApple IIと同じとした。これによりこのコンピューターはApple IIの多くのプログラムと互換性の無いものとなった。

PALのより高い周波数が必要なカラー副搬送波のため、高解像度の変更が必要なとなった。高いPAL副搬送波周波数を生成するビデオシフトレジスタに十分なビットを提供するために、Apple IIの7ビットに対し、9ビットのメモリロケーションが必要だった。そのため、16Kx1のメモリチップが高解像度メモリページ（0x2000から0x5FFF）に第9ビットとしてマザーボードに追加された。これにより、ROM（341-0025から341-0021）中のApplesoft Basicインタプリタのグラフィックルーチンを変更する必要が生じた。この違いを明確にするため、ITTはこのBASICを「PALSOFT」と呼んだ。

長いグラフィックルーチンのためのスペースを確保するため（第9ビットを操作するために必要な特別なコード）、HPLOT命令はパラメーターの文字列ではなく、単一のパラメーターに制限された。

第9ビットへのアクセス 
追加のRAMチップは基本的には書き込み専用のメモリとしている。データはソフトウェアによりチップに書き込まれるが、ビデオハードウェアによって読み出される。チップに入力されたデータは、メインのビデオメモリの第8ビット (MSB) のデータ入力につながり、書き込み操作においては第8ビットと同一となる。追加のチップを有効にするため、第8ビットと同じデータが第9ビットに保存される。

たとえば、メモリロケーション'HiresLoc'を0b110100101に設定するためには次のルーチンが必要になる。

 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.

第9ビットのみを変更するには、より多くのプログラミングが必要となる、

 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

第9ビットを読み取る必要がある場合には、高解像度イメージをディスクに保存することが可能。

これは、次の通り達成される。

 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

高解像度変換ボード 
ビットマップグラフィックのApple IIとの互換性は、サードパーティー製の高解像度変換ボードをインストールすることで改善される。

このボードは第9ビットを無視するプログラムによりビデオへの影響を除去する。これは、Apple IIのグラフィックメモリに直接作用するソフトウェアとの互換性を大幅に向上させる。しかしながら、このボードを使用しても、カラーは元のApple IIのものとは異なる。

高解像度変換ボードにおいてPALSOFT BASICコマンドを使用すると、高解像度グラフィックスでは意図した通りにグラフィックを表示することはできない。

脚注 

第一世代のマイクロコンピュータ
パソコンの歴史