PET20001


PET2001のスペック
CPU 6502 1MHz
SOUND なし(オプション)
ROM モデルによる
RAM モデルによる
  バージョン まずバージョンナンバが表示されないので厳密にはわかりませんが 特定の基準で付けられているようです その為4.0マシンより後発のVIC、C64は2.0(V2)となります また少なくとも日本でも2.0と3.0には数種類あったみたいです PET2001Sは主に熱対策とメンテナス効率化されたカスタム品なので 考慮していません  1.0 最初期?  2.0 標準?(PET2001、VIC−1001、C64)  3.0 +マシン語モニタ内蔵等?(cbm3016、3032)  4.0 +ディスクコマンド追加等?(CBM4032、8032) 電源を入れると “*** COMMODORE BASIC ***”とでるのが 旧バージョン(Ver. 2.0)   “### COMMODORE BASIC ###”とでるのが 新バージョン(Ver. 3.0)   “*** COMMODORE BASIC 4.0 ***”が Ver. 4.0となります   cbm3032が発売された当時 2万8千円で購入かcbm3040(ディスクドライブ)を購入すると 無料交換でVer. 3.0のROM交換が可能   さらに一番古いバージョンはキャラクタROMも違いがあり VRAMを直接読むプログラムは誤動作する可能性があります その為見た目でバージョンの判断は不可能といえます またVer. 3.0ではダイレクトコマンドで WAIT6502,1(1以外でも可) と打ち込むと“MICROSOFT!”の文字が 指定した数値分出ます (0は画面一杯に表示される)     Ver.2.0のバグ 配列の大きさが256超えるとループする (例 A(260)はA(4)と同じになる) RIGHT$(X$,0)、LEFT$(X$,0)の場合 パラメータを0にするとエラーになる(新バージョンでは””で長さ0で返す) バグではないのですがBASIC部分のPEEKが使えない(新バージョンでは使えます) RND(0)がほとんど乱数として使えない (Ver. 3.0はタイマを使用した乱数となっている) IF E=F OR G=H...がIF E=FOR G=H...として認識される (リストはスペースは空いている) SPC(0)がSPC(256)と同じになる TABやPOSで画面表示範囲外の指定だと正常に動作しない       2.0の主なワーク(10進数) 0000−0002:USR関数 $4C,mm,nn      0003:使用中のI/Oアドレス 0008−0009:BASIC行番号 0010−0089:インプットバッファ      0090:カウンタ      0091:$00、$22      0092:インプット・バッファの長さ      0093:配列フラグ(1文字目の文字)      0094:変数タイプ 1=ストリング、0=数値      0095:整変数フラグ 128=整数型、0=実数型      0098:入力の種類 152=READ,64=GET、0=INPUT      0099:TANの符号 0102−0103:ストリング用ワークエリア 0104−0111:変数ポインタ 0116−0121:引数レジスタ 0122−0123:BASICプログラムの先頭 0124−0125:変数エリアの先頭 0126−0127:配列エリアの先頭 0128−0129:変数または配列エリアの最後 0130−0131:ストリングエリアの先頭 0132−0133:1つ前のストリングエリアの先頭 0134−0135:RAMエリアの最後+1 0136−0137:実行中のBASIC行番号 0138−0139:コンティニュー用行番号 0140−0141:コンティニュー用ポインタ 0146−0147:入力用ポインタ 0148−0149:使用中変数名 0150−0151:使用中変数ポインタ 0159−0160:ストリング用ポインタ      0161:ストリングの長さ 0156−0158:関数用 $4C,mm,nn 0172−0173:ブロック転送用ポインタ0 0174−0175:ブロック転送用ポインタ1 0176−0181:実数レジスタ0      0182:実数レジスタ0の符号      0183:実数レジスタ0のシフトカウンタ 0184−0189:実数レジスタ1      0190:オーバーフロー      0191:符号のコピー 0192−0193:実数ストリング変換ポインタ 0194−0202:0194が次の文字、0200がポインタの指す内容 0218−0222:RND 0224−0225:カーソルのある行のポインタ      0226:カーソルの位置      0234:’”’モード      0238:ファイル名の長さ      0239:倫理機番      0240:ファイルセカンド アドレス      0241:物理機番      0242:1行の文字数 0243−0244:テープバッファの先頭      0245:カーソルのある行(画面)      0246:最後に押されたキー 0247−0248:ロード、セーブ用ポインタ 0249−0250:ファイル名ポインタ      0251:インサート用カウンタ 0256−0511:スタックエリア 0512−0514:TI(タイマー)      0515:キーストローク      0516:シフトキー 1=オン 0517−0518:TI補正用カウンタ 0519−0520:カセット用インタラプト      0521:PIAの内容      0523:1=ベリファイ、0=ロード      0524:STの値      0525:キーバッファの文字数      0526:RVS 1=オン、0=オフ 0527−0536:キーバッファ 0537−0538:IRQ ベクタ 0539−0540:BRK ベクタ      0547:キーコード      0548:カーソルの点滅 0=オン      0549:カーソル用カウンタ      0550:カーソルにある文字      0551:カーソルの点滅 0578−0587:倫理機番表 0588−0597:物理機番表 0598−0609:セカンドアドレス表      0610:ファイル数      0611:システム入力 0=キーボード      0612:システム出力 3=画面      0613:テープ パリティ      0621:テープブロック      0624:テープカウンタ(WRITE)      0625:テープバッファ#1      0626:テープバッファ#2      0627:テープカウンタ(READ) 0628−0629:テープエラー用 0630−0631:テープエラーポインタ      0632:テープフラグ(READ)      0633:チェックサム 0634−0825:テープバッファ#1 0826−1017:テープバッファ#2 1018−1023:空き   32768−33767:VRAM 59408−59411:6520(PIA キーボード) 59424−59427:6520(PIA IEEE-488) 59456−59471:6522(VIA)     PCG6500 キャラクタ定義数 64(小文字$40〜$7Fのキャラクタ) サウンド出力 PB2をアンプ出力   POKE59468,14でPCGのオン(小文字モード) POKE59468,12でPCGのオフ PAの8ビットでコントロール($E84F)   PA7〜PA5 コントロール PA4     オフセットアドレスa4 PA3〜PA0 PCGデータ上位、下位、オフセットアドレスa8〜a5、オフセットアドレスa3〜a0   1ライン分の定義方法(事前にDDRA $E843に$FFを書き込む)  1.PA7〜4=1100+PCGデータd7〜4をPAに書き込み    PA7〜4=0000+PCGデータd7〜4をPAに書き込む    2.PA7〜4=1000+PCGデータd3〜0をPAに書き込み    PA7〜4=0000+PCGデータd3〜0をPAに書き込む    3.PA7〜4=0100+オフセットアドレスa8〜5をPAに書き込み    PA7〜4=0000+オフセットアドレスa8〜5をPAに書き込む    4.PA7〜4=001+オフセットアドレスa4〜0をPAに書き込み    PA7〜4=000+オフセットアドレスa4〜0をPAに書き込む    CGアドレス$0200〜$03FF+オフセットアドレス
Home へ戻る