2023-03-21 22:53 — asano
ちょっと思い出したのでシャープのポケコンPC-1246の思い出を書いてみようかと思います。
中学生の時、クラスメイトにPC-1245を持っているのがおりました。非公式ですがマシン語やグラフィック(キャラクタLCDなので横5ドットごとに1ドット分の隙間はありますが)が使えるという情報があり、当時電車通学していたこともあって欲しくなってしまいました。
それでお金を貯めて買いに行ったのですが......
ちょうど後継機のPC-1246が発売されており、かなり高速化もされているとのことで、若干の不安もあったのですが新しいPC-1246を買ってしまったのでした。
これ確かに公式には上位互換の後継機なのですが、CPUも全くの別物に変更されており、マシン語もグラフィックも使えません。
弄り始めてすぐにそのことに気づいて愕然としたのですが、非公式の機能が使えないからと言って文句を言う筋合いはありません。
それでも何か出来ないかと探り始めました。
すぐにわかったのはPOKE
命令・PEEK
関数は存在するということです。アドレス範囲はRAMサイズと同じ0~2047までなので残念ながらROMを読むことはできません。まぁ読めてもCPUの情報はまったくありませんでしたが。
一方CALL
命令はありませんでした。
この辺りで調べるべきことがハッキリしてきます。
- BASICテキストの格納方法がどうなっているのか
- VRAMに相当するエリアはあるのか
- BASICの隠し命令(特にマシン語実行にかかわるもの)はないのか
1.は比較的簡単で、REM
か文字列に特徴的なモノを入れておいてサーチ(もちろんそんな機能は無いのでプログラムを組む)しました。その前後を読めば大体わかります。
2.は結局わからなかったはずです。
3.は最初は予約語の短縮入力を使いました。
例えば10 B.
のように入力します。もしBで始まる予約語が存在しなければこのままですが、もしあればこの行は10 BEEP
のように表示されます。ただし他にもあるかもしれませんので次は10 BA. BB. BC. BD. BE.
などと入力して探っていくのです。
これはさすがに面倒なので途中からは1.の結果を利用しました。
予約語はコード化されて保存されているのでプログラムテキストの保存されている領域を書き換えてはリストを表示させてみるのです。
これらを繰り返して探したのですが、残念ながらマシン語の実行できる命令は見つかりませんでした。
発見できたのはCK00
とCK01
だったかな。詳細は忘れてしまいましたが、キーボードとLCD表示のテストをする機能が入っていました。
というわけでマシン語で遊ぶという夢はかないませんでしたが、BASICの範囲では普通に使えて電車内の暇つぶしの道具としても活躍しました。
また後に別のクラスメイトからPC-1261を安価に譲り受けてポケコンのマシン語も無事に堪能できました。
コメント
PC-1245
PC-1246が出る前に、安売りしていたのを買いました。
マシン語には手を出しませんでしたが、V-RAMにPOKEでパターンを書き込むのはかなり遊べました。
画面が小さいので、BASICでゲームを作っても実行速度にあまり不満はなかった気がします。
当時は中学生で普段の生活で電車に乗ることはあまりなかったですが、親に内緒でPC-1245を購入して、家で机に向かっているふりをして遊んでいました…親にはバレていたようですが。
Re: PC-1245
確かパターン書き込んだ後でCALL &11E0だったかしないといけなかったような。
コメントを追加