Arduino勉強会/23-6800伝説のMIKbugが動いた
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[Arduino勉強会]]
#contents
2018/04/08からのアクセス回数 &counter;
** モトローラ6800伝説 [#h9bc672d]
前職の同僚の大黒さんから鈴木哲哉さんの
[[モトローラ6800伝説>https://www.amazon.co.jp/dp/48997747...
を紹介してもらいました。
ちょうど6809の時代に社会人となりFM-7を購入したこともあり、
興味深く拝見しました。
特に6800の開発にミニコンを活用した場面がでてくるのに驚き...
- CAD
- シミュレーター
** 参考サイト [#n5d6c9af]
[[モトローラ6800伝説>https://www.amazon.co.jp/dp/48997747...
には、スイッチサイエンスから
[[ルーズキットおよびROMセット>https://www.switch-science....
を購入できるので、初心者でも試すことができます。
また、技術資料とデータパックも充実しており、ルーズキット...
- http://www.amy.hi-ho.ne.jp/officetetsu/storage/sbc6800_...
出来上がった、マイsbc6800ボードです。
&ref(th_sbc6800_board.png);
*** ボード発注 [#jdb3ce07]
残念ながら私がスイッチサイエンスさんのサイトにアクセスし...
ルーズキットの在庫がありませでしたので、データパックのガ...
に送ってボードを入手しました(5枚で$7.9なので複数人で作...
発注から届くまでは20日程みておくといいです。
- Fusionに発注 2018/03/11
- ボード受け取り 2018/03/30
** 部品一覧 [#v39b356d]
2018/03/21に若松、秋月に注文し、ボードの到着を待つだけの...
若松には以下の部品を注文しました(小計 2132円+送料250円)。
| 品名 | 単価 |h
| HD468A00P | 475円 |
| HN58C256P-20 DIP型 | 472円 |
| HM6116ASP-20 | 367円 |
| HD63A50P | 630円 |
| 74LS00 | 94円 |
| 74LS138 | 94円 |
秋月には以下の部品を注文しました。
| 品名 | 型番 | 単価 |h
| 2.1mm標準DCジャック(4A) ユニバーサル基板取...
| スライドスイッチ SS-12D00-G5 | P-08790 | 20...
| 丸ピンICソケット (40P)| P-00034 | 80円 |
| 丸ピンICソケット (28P) 600mil | P-00033 ...
| 丸ピンICソケット (28P) 300mil | P-01339 ...
| 丸ピンICソケット (24P) 600mil | P-00032 ...
| 丸ピンICソケット (16P) | P-00029 | 30円 |
| 丸ピンICソケット (14P) | P-00028 | 25円 |
| 丸ピンICソケット ( 8P) | P-00035 | 15円 |
| PIC12F1822-I/P | I-04557 | 110円 x 2 |
*** すぐれもの部品 [#ldafbd5e]
後で気づいたのですが、ROMのソケット(ロープロファイルゼロ...
という優れものがありました。
- http://akizukidenshi.com/catalog/g/gP-05435/
&ref(th_P-05435.png);
*** PIC MPLAB IDEの準備 [#u0dea43d]
以下のリンクを参照して、Mac用のMPLAB IDEをインストールし...
- MPLAB IDEの直リンク
-- http://www.microchip.com/mplabx-ide-osx-installer
- コンパイラーの直リンク
-- http://www.microchip.com/mplabxc8osx
-- http://www.microchip.com/mplabxc16osx
-- http://www.microchip.com/mplabxc32osx
*** PICkit3で書き込むときの注意! [#lac4968d]
PICkit3で書き込むとき、Powerを供給する必要があります。
プロジェクトのPropertyのPICkit3を選択し、「Power」のOptio...
をチェックします。
&ref(th_PiCKit3_Writing_setting.png);
** EEPROMの書込み [#u5f2a603]
EEPROMの書き込みにはアマゾンで安価に販売していたUSB Mini ...
付属TL866Aの付属のアプリ(minipro.exe)ではどうも書き込み...
このEEPROMはとても優れもので、いろんなCPUに対応しており、...
AVRのヒューズビットの修復も可能だそうです。
&ref(th_TL866_ⅡPlus.png);
*** OSSのminiproを使ってみる [#b5cf4879]
フォーラムで似たようなケースの投稿でLinuxベースのminipro...
記事がありました。
- https://github.com/vdudouyt/minipro
必要なライブラリはlibusbですが、Intel HexとMotorolar S形...
srecordもインストールします。
#pre{{
git clone https://github.com/vdudouyt/minipro.git
cd minipro
brew install libusb
brew link libusb
brew install srecord
make -f Makefile.macOS
sudo make install
}}
*** MIKBUG.HEXの書き込み [#c9e0e1ee]
試行錯誤の結果、srec_catでアドレスを変更し、
miniprohexで書き込むことでMacbook AirからEEPROMに
プログラムを書き込むことができるようになりました。
#pre{{
$ srec_cat MIKBUG.HEX -Intel -offset -0X8000 -o conv_mikb...
$ miniprohex -p 28C256 -w conv_mikbug.hex
}}
** 6800での動作確認 [#w0af25c7]
端末ソフトから通信ソフトpicocom((picocomもbrewでインスト...
を使ってsbc6800ボードに接続します。
sbc6800ボードのスイッチを入れ、*が表示されればMIKBUGが正...
次にRを入力して、レジスターの場外が表示されることを確認し...
#pre{{
$ picocom -b 9600 /dev/cu.usbserial-A603BU4B
途中省略
Terminal ready
*R 45 AB BB A8AA D35D 1F42
}}
端末ソフトでは、こんな感じです。
&ref(th_run_Mikbug.png);
*** Hello Worldの実行 [#wc0b1cc7]
「*」プロンプトの後にLを入力して、HELLO.Sのテキストをコピ...
画面の先頭がS9なら成功です。
MIKbugの実行開始アドレスをセットしていないので、
そのままGコマンドを入力しても動きません。
- $1F48: 実行開始アドレスの(上位)
- $1F49: 実行開始アドレスの(下位)
MコマンドでRAMを書き換えます。値を変更するときには、
ブランクの後に修正する値を入力します。Mモードを終了するに...
ブランクの後に改行を入力します。
#pre{{
*M 1F48
*1F48 D1 01
*1F49 5D 00
*1F4A 55 08
}}
実行にはGコマンドを入力します。
#pre{{
*G
HELLO, WORLD
D4 AB 04 0117 0106 1F42
}}
** ソフトウェア環境 [#ned74e71]
いくつかの6800用アセンブラが見つかりました。
- [[A68 6800 cross-assembler>http://www.retrotechnology.c...
- [[motorola-6800-assembler>https://github.com/JimInCA/mo...
- [[asm68c>http://sourceforge.net/projects/asm68c/]]
今回はコンパイル結果をモトローラS形式に出力してくれる、as...
*** asm68cのインストール [#ffb756c4]
sourceforgeのサイトからダウンロードしたasm68c_v00_10a.tgz...
makeコマンドでコンパイルするだけです。
いくつかのワーニングはできますが、カレントディレクトリにa...
#pre{{
$ make
ワーニングの出力
6 warnings generated.
gcc -o asm68c asm68c.o mne68c.o ops68c.o exp.o
# /usr/local/binにコピー
$ sudo cp asm68c /usr/local/bin/
}}
*** Hello Worldのコンパイル [#hc98b331]
以下のようにsbc6800_datapackのHELLO.ASMをコンパイルすると、
カレントディレクトリにHELLO.xというS形式のファイルが作成...
#pre{{
$ asm68c HELLO.ASM
***** pass 1 on HELLO.ASM *****
***** pass 1 on HELLO.ASM done *****
***** pass 2 on HELLO.ASM *****
***** pass 2 on HELLO.ASM done *****
No syntax errors found.
| 0107:MESG || e07e:PDATA1 || 0100:...
$ cat HELLO.x
S10A0100CE0107BDE07E3FC4
S11301070D0A48454C4C4F2C20574F524C440D0A6E
S904011704DF
}}
sbc6800_datapackのHELLO.Sと比べるとアドレス(先頭のSxxxの...
を除くと同じ結果になっていることが分かります。
#pre{{
S1130100CE0107BDE07E3F0D0A48454C4C4F2C20E4
S10B0110574F524C440D0A0440
S9
}}
** コメント [#j0eb536c]
#vote(おもしろかった[18],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
#comment_kcaptcha
終了行:
[[Arduino勉強会]]
#contents
2018/04/08からのアクセス回数 &counter;
** モトローラ6800伝説 [#h9bc672d]
前職の同僚の大黒さんから鈴木哲哉さんの
[[モトローラ6800伝説>https://www.amazon.co.jp/dp/48997747...
を紹介してもらいました。
ちょうど6809の時代に社会人となりFM-7を購入したこともあり、
興味深く拝見しました。
特に6800の開発にミニコンを活用した場面がでてくるのに驚き...
- CAD
- シミュレーター
** 参考サイト [#n5d6c9af]
[[モトローラ6800伝説>https://www.amazon.co.jp/dp/48997747...
には、スイッチサイエンスから
[[ルーズキットおよびROMセット>https://www.switch-science....
を購入できるので、初心者でも試すことができます。
また、技術資料とデータパックも充実しており、ルーズキット...
- http://www.amy.hi-ho.ne.jp/officetetsu/storage/sbc6800_...
出来上がった、マイsbc6800ボードです。
&ref(th_sbc6800_board.png);
*** ボード発注 [#jdb3ce07]
残念ながら私がスイッチサイエンスさんのサイトにアクセスし...
ルーズキットの在庫がありませでしたので、データパックのガ...
に送ってボードを入手しました(5枚で$7.9なので複数人で作...
発注から届くまでは20日程みておくといいです。
- Fusionに発注 2018/03/11
- ボード受け取り 2018/03/30
** 部品一覧 [#v39b356d]
2018/03/21に若松、秋月に注文し、ボードの到着を待つだけの...
若松には以下の部品を注文しました(小計 2132円+送料250円)。
| 品名 | 単価 |h
| HD468A00P | 475円 |
| HN58C256P-20 DIP型 | 472円 |
| HM6116ASP-20 | 367円 |
| HD63A50P | 630円 |
| 74LS00 | 94円 |
| 74LS138 | 94円 |
秋月には以下の部品を注文しました。
| 品名 | 型番 | 単価 |h
| 2.1mm標準DCジャック(4A) ユニバーサル基板取...
| スライドスイッチ SS-12D00-G5 | P-08790 | 20...
| 丸ピンICソケット (40P)| P-00034 | 80円 |
| 丸ピンICソケット (28P) 600mil | P-00033 ...
| 丸ピンICソケット (28P) 300mil | P-01339 ...
| 丸ピンICソケット (24P) 600mil | P-00032 ...
| 丸ピンICソケット (16P) | P-00029 | 30円 |
| 丸ピンICソケット (14P) | P-00028 | 25円 |
| 丸ピンICソケット ( 8P) | P-00035 | 15円 |
| PIC12F1822-I/P | I-04557 | 110円 x 2 |
*** すぐれもの部品 [#ldafbd5e]
後で気づいたのですが、ROMのソケット(ロープロファイルゼロ...
という優れものがありました。
- http://akizukidenshi.com/catalog/g/gP-05435/
&ref(th_P-05435.png);
*** PIC MPLAB IDEの準備 [#u0dea43d]
以下のリンクを参照して、Mac用のMPLAB IDEをインストールし...
- MPLAB IDEの直リンク
-- http://www.microchip.com/mplabx-ide-osx-installer
- コンパイラーの直リンク
-- http://www.microchip.com/mplabxc8osx
-- http://www.microchip.com/mplabxc16osx
-- http://www.microchip.com/mplabxc32osx
*** PICkit3で書き込むときの注意! [#lac4968d]
PICkit3で書き込むとき、Powerを供給する必要があります。
プロジェクトのPropertyのPICkit3を選択し、「Power」のOptio...
をチェックします。
&ref(th_PiCKit3_Writing_setting.png);
** EEPROMの書込み [#u5f2a603]
EEPROMの書き込みにはアマゾンで安価に販売していたUSB Mini ...
付属TL866Aの付属のアプリ(minipro.exe)ではどうも書き込み...
このEEPROMはとても優れもので、いろんなCPUに対応しており、...
AVRのヒューズビットの修復も可能だそうです。
&ref(th_TL866_ⅡPlus.png);
*** OSSのminiproを使ってみる [#b5cf4879]
フォーラムで似たようなケースの投稿でLinuxベースのminipro...
記事がありました。
- https://github.com/vdudouyt/minipro
必要なライブラリはlibusbですが、Intel HexとMotorolar S形...
srecordもインストールします。
#pre{{
git clone https://github.com/vdudouyt/minipro.git
cd minipro
brew install libusb
brew link libusb
brew install srecord
make -f Makefile.macOS
sudo make install
}}
*** MIKBUG.HEXの書き込み [#c9e0e1ee]
試行錯誤の結果、srec_catでアドレスを変更し、
miniprohexで書き込むことでMacbook AirからEEPROMに
プログラムを書き込むことができるようになりました。
#pre{{
$ srec_cat MIKBUG.HEX -Intel -offset -0X8000 -o conv_mikb...
$ miniprohex -p 28C256 -w conv_mikbug.hex
}}
** 6800での動作確認 [#w0af25c7]
端末ソフトから通信ソフトpicocom((picocomもbrewでインスト...
を使ってsbc6800ボードに接続します。
sbc6800ボードのスイッチを入れ、*が表示されればMIKBUGが正...
次にRを入力して、レジスターの場外が表示されることを確認し...
#pre{{
$ picocom -b 9600 /dev/cu.usbserial-A603BU4B
途中省略
Terminal ready
*R 45 AB BB A8AA D35D 1F42
}}
端末ソフトでは、こんな感じです。
&ref(th_run_Mikbug.png);
*** Hello Worldの実行 [#wc0b1cc7]
「*」プロンプトの後にLを入力して、HELLO.Sのテキストをコピ...
画面の先頭がS9なら成功です。
MIKbugの実行開始アドレスをセットしていないので、
そのままGコマンドを入力しても動きません。
- $1F48: 実行開始アドレスの(上位)
- $1F49: 実行開始アドレスの(下位)
MコマンドでRAMを書き換えます。値を変更するときには、
ブランクの後に修正する値を入力します。Mモードを終了するに...
ブランクの後に改行を入力します。
#pre{{
*M 1F48
*1F48 D1 01
*1F49 5D 00
*1F4A 55 08
}}
実行にはGコマンドを入力します。
#pre{{
*G
HELLO, WORLD
D4 AB 04 0117 0106 1F42
}}
** ソフトウェア環境 [#ned74e71]
いくつかの6800用アセンブラが見つかりました。
- [[A68 6800 cross-assembler>http://www.retrotechnology.c...
- [[motorola-6800-assembler>https://github.com/JimInCA/mo...
- [[asm68c>http://sourceforge.net/projects/asm68c/]]
今回はコンパイル結果をモトローラS形式に出力してくれる、as...
*** asm68cのインストール [#ffb756c4]
sourceforgeのサイトからダウンロードしたasm68c_v00_10a.tgz...
makeコマンドでコンパイルするだけです。
いくつかのワーニングはできますが、カレントディレクトリにa...
#pre{{
$ make
ワーニングの出力
6 warnings generated.
gcc -o asm68c asm68c.o mne68c.o ops68c.o exp.o
# /usr/local/binにコピー
$ sudo cp asm68c /usr/local/bin/
}}
*** Hello Worldのコンパイル [#hc98b331]
以下のようにsbc6800_datapackのHELLO.ASMをコンパイルすると、
カレントディレクトリにHELLO.xというS形式のファイルが作成...
#pre{{
$ asm68c HELLO.ASM
***** pass 1 on HELLO.ASM *****
***** pass 1 on HELLO.ASM done *****
***** pass 2 on HELLO.ASM *****
***** pass 2 on HELLO.ASM done *****
No syntax errors found.
| 0107:MESG || e07e:PDATA1 || 0100:...
$ cat HELLO.x
S10A0100CE0107BDE07E3FC4
S11301070D0A48454C4C4F2C20574F524C440D0A6E
S904011704DF
}}
sbc6800_datapackのHELLO.Sと比べるとアドレス(先頭のSxxxの...
を除くと同じ結果になっていることが分かります。
#pre{{
S1130100CE0107BDE07E3F0D0A48454C4C4F2C20E4
S10B0110574F524C440D0A0440
S9
}}
** コメント [#j0eb536c]
#vote(おもしろかった[18],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
#comment_kcaptcha
ページ名:
SmartDoc