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 へ戻る