8052AH-BASIC SBC
- 8052AH-BASIC
- 回路図
- 部品配置
- 配線
- 起動
- プログラム
- EEPROM書き込み
- つれづれ
8052-AH BASICをなかなか見つけられないでいたが偶然見つけた。
マルツの特価半導体を眺めていたら特価現品限りで8052AHが出ていた。web上の画像はマーキングが消してあったので、P8052AH-BASICかどうかは判らなかったけど、まあ1つ買ってみるかと注文したらP8052AH-BASICだった。
バージョン1.1 (1991/11週か)
じゃあSBCを作ってBASIC-52で遊んでみるかと
回路図はMCS BASIC-52に掲載されているRAMとEEPROMを使ったもの
マニュアルは74LS138(3to8 Demultiplexer)を使っているが、74HCT139(Dual 2to4 Demultiplexer)を使うようにした。
74HCT139を使うとA000h-BFFFhにEEPROMのイメージが見えるが、IOアドレスはC000h、D000h、E000h、F000hがI/Oアドレスとして使えるようになる。74LS138を使うと使えるのはC000h、E000hだ。
MCS BASIC-52のマニュアルは方々で公開されていて検索すると簡単に見つかる。(IntelがPDSにしたらしい)
主要な部品は、8052-AH(40pin DIP)、RAM 62256(28pin DIP)、EEPROM HN58V65(28pin DIP)、74HCT573(20pin DIP)、74HCT08(14pin DIP)、74HCT138(16pin DIP)なのでサンハヤトの ICB-293U に載りそうだ。
ユニバーサル基板エディタ
PasSを使ってICB-293Uに載せてみた。
アドレスラッチの74HCT573と74HCT08は8052-AHの下に配置してスペースを稼ぐ。
以前は行き当たりばったりで配線していたのだが、PasS を知ってからは予め置いてみるようにしている。実際に配線し始めると変わることもよくあるのだが...
手配線を減らすためにサンハヤトのシール基板
ICB-055
を使ってRAMとEEPROMを配線した。
この基板はちょっと高いのだがちょっと横着をした。
RAMとEEPROMはピン配列がほぼ同じなので、この基板を使って配線すると大幅に配線作業が減る。 このシール基板は半分が600mil×5 でもう半分が300mil×8だ。今回は600milの部分2個分を切って使った。
そして完成。
ターミナルを繋いで、スペースを押すとシリアルのスピードが自動検出されてオープニングメッセージが表示される。
*MCS-51(tm) BASIC V1.1* READY > |
九九の表を表示させるプログラムを動かしてみた
ちゃんと動いているようだ。
何はともあれメモリダンププログラムを書いてみた。久しぶりにBASICのプログラムを書くと違和感があるなあ。
|
LISTコマンドで表示したこのインデントには、なじめないなあ。
お約束の8Queen問題
遅いなあ。インタプリタだから仕方ないけど。
|
BASIC52ではNEXTをGO TOやRETURNで飛び越してはいけないらしい。ERROR: C-STACKの意味がわからずハマってしまった。
プログラムはPC上のviで書いてターミナル経由でアップロードしている。
1行入力して改行したときにBASIC52が1行分のプログラムを処理する時間が必要で、処理時間を考慮しないで次の行を送ると文字を落としてしまうので、ターミナル側で1行送信後ウエイトを入れる。TeraTermではシリアルポートの設定→送信遅延である。
長い行は処理時間が必要なので300msくらい必要である。
行番号1と行番号2の間はわざと空けてある。
NEWコマンド実行後最初の行の処理時間は更に長い。かといって、この時間に合わせてウエイトを入れるとアップロードが遅くてイライラするので、改行を2つ入れて処理時間を稼ぐとうまくいく。
RAMで動作しているプログラムはPROG、FPROGコマンドでEEPROMに保存しEEPROM上で実行することができる。
(トラブルはあったけど)
メモリダンププログラムをダウンロードしてROMに書いたところ。
ROMに書かれたプログラムを一覧するプログラムを作ろうかと考えていたら、既に作っている人がいて、ここにあった。
プログラム番号、先頭アドレス、サイズ、先頭のREMを表示してくれる。
8052-AH BASIC SBCを作ろうと思ったきっかけは、本棚から「
エレクトロニクスライフ 1990/8
」を引っ張り出してきたことだ。
それまでBASICでプログラムを書いていてBASICで構造化(流行っていたなあ)なんてことを一生懸命考えていたが、1990頃はCでプログラムを書いていたので、どうやってZ80 SBCのプログラムをCで書くかを考えていた。
そんなとき、「エレクトロニクスライフ」を読んだのだが、8052-AH BASICやEEPROMが結構高価だったので結局スルーしたと記憶している。
電源ONで自分が書いたBASICが走るのは便利かもしれない。市販のボードもいくつもあった。 8052AH BASICやEEPROMが高いと思ったくらいだから、とても手が出る価格ではなかった。
リアルタイム性を求めるならインタプリタでは厳しいのでアセンブラでプログラムを書く必要がある。 アセンブラでプログラム書くにしても1から書いてROM化するのは大変なので、BASIC-52ボードにEEPROMを積んで、アセンブラルーチンをEEPROMに置いてBASICからCALLする方が楽だ。
というわけで、結構ニーズはあったのかと思う。
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/577514/55870419
この記事へのトラックバック一覧です: 8052AH-BASIC SBC:
コメント