レトロマイコン86ボードの構想(その16)プリント基板完成 [8086]
「レトロマイコン86ボードの構想(その10)回路図整理とパターン設計」の記事で書いたV20(8088互換)とPIC24で構成されるPic24V20基板のプリント基板はSEEDさんからとっくに届いていたのですが、74HC573の5.2mm幅のSOPパッケージを手配するのが遅れたため、到着待ちの状態でした。
漸く、HC573が届いたのでプリント基板に部品を実装しました。
まずは出来上がったプリント基板のトップ面です。
ボトム面は割合空いているので74HC573のチップを載せました。
しかし、その後ブレッドボード上で動かしていると不安定なので573のアドレスラッチのストローブ部分を少し変更しました。
上記の回路図の記事に載せた回路図も変更済みです。
下の写真が部品実装後のトップ面です。PIC24FJ64GA004が実装しているリアルタイムクロック用のクリスタル実装パターン(PICの上の部分)も付けていますがまだ未実装です。
下の写真がボトム面です。上記のように基板製造会社に手配後に変更が発生したので抵抗を1本追加しています。
★2019/10/28 追記 {
他の変更点として、R16をショットキーに変更、D4の極性反転の2点です。
}
左側の大きな白い線はリアルタイムクロックのためのバックアップ用CR2032電池のホルダで未実装です。
★2019/10/27 追記
今までブレッドボード上ではたまにCP/M-86が起動しなくなったりして、その都度対処していましたが、プリント基板化することでCP/M-86が安定して動作するようになりました^^
リセット後のCP/M-86の起動メッセージを貼っておきます。
「loading ...」はブートストラップが表示、「Last Offset」までがCP/Mのコールドスタートローダー(バージョン行はコールドスタートローダー内のBIOSが表示)、「System Genelated」行をCPM.SYS内のBIOSが表示しています。
★2019/11/14 変更 ブート時のメッセージを若干変更
★2019/10/20 追記
今回の基板作成で気が付いた事などメモしておきます。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
漸く、HC573が届いたのでプリント基板に部品を実装しました。
まずは出来上がったプリント基板のトップ面です。
Pic24V20プリント基板(トップ面) |
|
ボトム面は割合空いているので74HC573のチップを載せました。
Pic24V20プリント基板(ボトム面) |
|
しかし、その後ブレッドボード上で動かしていると不安定なので573のアドレスラッチのストローブ部分を少し変更しました。
上記の回路図の記事に載せた回路図も変更済みです。
下の写真が部品実装後のトップ面です。PIC24FJ64GA004が実装しているリアルタイムクロック用のクリスタル実装パターン(PICの上の部分)も付けていますがまだ未実装です。
V20ワンボード基板(トップ面) |
|
下の写真がボトム面です。上記のように基板製造会社に手配後に変更が発生したので抵抗を1本追加しています。
★2019/10/28 追記 {
他の変更点として、R16をショットキーに変更、D4の極性反転の2点です。
}
左側の大きな白い線はリアルタイムクロックのためのバックアップ用CR2032電池のホルダで未実装です。
V20ワンボード基板(ボトム面) |
|
★2019/10/27 追記
今までブレッドボード上ではたまにCP/M-86が起動しなくなったりして、その都度対処していましたが、プリント基板化することでCP/M-86が安定して動作するようになりました^^
リセット後のCP/M-86の起動メッセージを貼っておきます。
「loading ...」はブートストラップが表示、「Last Offset」までがCP/Mのコールドスタートローダー(バージョン行はコールドスタートローダー内のBIOSが表示)、「System Genelated」行をCPM.SYS内のBIOSが表示しています。
picle compiler CP/M-86 Ver0.01 2019/07/03 by skyriver loading ... ok Pic24V20 ver0.02 CP/M-86 Version 1.1 Segment Address = 0040 Last Offset = 31FF System Generated by skyriver 2019/10/07 A>■ |
★2019/11/14 変更 ブート時のメッセージを若干変更
★2019/10/20 追記
今回の基板作成で気が付いた事などメモしておきます。
- 74HC573のSOPパッケージの入手性
5.2mm幅のSOPパッケージの入手性はあまりよくない。eBayでポチったがshipされるまで3日間くらい掛かったのでAliExpressでもポチっておいたら、AliExpressの方が早く着いた(業者にもよるだろうけど)。
そもそも幅の狭いSOPパッケージは373はよく見かけるけど573はあまり見かけない(幅広のものは結構見かけるし所有している)。
- 表面実装方法
PIC24FJの44ピンのTQFPを今回、初めてYouTubeで見かけるような半田ごてを使った半田付けにトライした。
当然ステンシルは作っていないのでクリーム半田をピン毎に塗る手間を考えたら、半田ごての方が作業効率が良さそう。
- 半田付け用フラックスの除去
ティッシュにエチルアルコールを含ませて除去したらティッシュの繊維があちこちに残った^^;;
古い歯ブラシで可能な限り除去したけど、ルーペで見るとイマイチきれいではない。
その点、クリーム半田はフラックス入りで周りを汚さないし、表面張力で部品の位置もいい感じで収まる。
- 部品の固定治具
「表面実装部品固定冶具」の記事で書いた固定治具を今回初めて使ってみた。
基板に傷が付きそうだったのでカプトンテープで巻いて使ったが、半田ごてでの半田付けや追い半田する際に中々便利だった。
- ショットキーバリアダイオード
何種類か準備してあったが丁度いい大きさのものが無かった(eBayでも見つからず)。結局かなり小さいものを使用したがマイナス側のマークはルーペで確認しながら半田付けした。私の使っているルーペは上下左右逆に見えるので注意が必要w
- 512Kx8Bit SRAM
SAMSUNG製のK6T4008C1B-DB70が以前より値上がりしてきた(5百円弱程度)ように感じる。AliExpressでピンコンパチの日立製HM628512が5個で千円弱(久々にAliExpressに行ったら100円クーポンが入手できたので更に100円引き)で売っていたのでポチっておいた。
但し、写真はDIPだけど説明の部分にはDIP型番に併記してフラットパッケージの型番も書いてあったので少し不安ですが・・
[TOP] [ 前へ ] 連載記事 [ 次へ ]
レトロマイコン86ボードの構想(その15)DDT86でパッチ [8086]
CP/M-86の頃にはパソコンがグラフィック表示対応もして来たり、CP/M-86自体もパーソナルCP/Mとして機種毎に販売されたこと等もあり、TeraTerm接続環境でうまく動かないソフトが結構あります。
今回はgulperというパックマンライクのゲームにDDT86でパッチをあてて動かしてみたのでメモとして書いておきます。
最初にダウンロードしたままの状態で起動すると
Pascalのソースも添付されていたので確認してみると
GULPERのソース(抜粋)
機種依存のキャラクタコードの設定は一カ所で行っています。また、ソース内の先頭で設定しているので探し易そうです。
今回は次のようにキャラクタコードを変更することにしました。
DDT86でパッチを当てる場合、ddt86 gulper.cmdで読込んでパッチを当ててもwコマンドでセーブできないのでrコマンドで読込んでパッチ適用後にwコマンドでセーブしています。
最初に0080hから逆アセンブルしているのはヘッダ分を飛ばしてコードの先頭から見るためです。
コードの先頭でスタートアップ処理にジャンプし、スタートアップ処理の直後に上述のキャラクタコード設定処理がありました。
DDT86でのパッチ操作
パッチ適用により、下記の画面のように標準のアスキーコードを使った画面にすることができました。
★2019/10/14 追記
twitterに動画付きでコメントをポストしました。
https://twitter.com/wcinp/status/1183623815596634112
[TOP] [ 前へ ] 連載記事 [ 次へ ]
今回はgulperというパックマンライクのゲームにDDT86でパッチをあてて動かしてみたのでメモとして書いておきます。
最初にダウンロードしたままの状態で起動すると
GULPER実行画面(対処前) |
|
Pascalのソースも添付されていたので確認してみると
|
機種依存のキャラクタコードの設定は一カ所で行っています。また、ソース内の先頭で設定しているので探し易そうです。
今回は次のようにキャラクタコードを変更することにしました。
- 02 -> 4f O
- EA -> 23 #
- 01 -> 40 @
- DB -> 48 H
- B0 -> 5a Z
- 03 -> 56 V
- 04 -> 2A *
DDT86でパッチを当てる場合、ddt86 gulper.cmdで読込んでパッチを当ててもwコマンドでセーブできないのでrコマンドで読込んでパッチ適用後にwコマンドでセーブしています。
最初に0080hから逆アセンブルしているのはヘッダ分を飛ばしてコードの先頭から見るためです。
コードの先頭でスタートアップ処理にジャンプし、スタートアップ処理の直後に上述のキャラクタコード設定処理がありました。
|
パッチ適用により、下記の画面のように標準のアスキーコードを使った画面にすることができました。
GULPER実行画面(対処後) |
|
★2019/10/14 追記
twitterに動画付きでコメントをポストしました。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
レトロマイコン86ボードの構想(その14)untarの製作 [8086]
今日(2019/10/12 土曜日)の夕方から明日にかけて関東を直撃するおそれがある過去最強クラスとも言われている台風19号のため、JRは全面運休を予定していて、昨日夕方に近くのスーパーマーケットに行ったらレジが長蛇の行列でパンやカップ麺類が殆ど無い状態でした。
危険なので緊急以外の外出をしないように政府見解もでているので今日はパソコンの前に座っています(いつものことだけどw)
「レトロマイコン86ボードの構想(その11)xmodemの移植」の記事で書いたように自作のV20ボードで動くCP/M-86上でxmodemが動くようになり、パソコンとのファイル送受信が簡単にできるようになりました。
kuninetさんが書かれた「KZ80シリーズ、SBC8080 8085でCP M」の最後の方で拙作のxmodemを紹介して頂いていて、ここでは同時にCP/M-80用のunzipも紹介されています。パソコン側のGUI操作で複数ファイルのアーカイブを作り、xmodemでCP/Mへ転送する環境は確かに便利です。
そこでCP/M-86用のunzipを探してみましたが見つかりませんでした・・・
パソコンで使用している圧縮/解凍ソフトである7-zipの圧縮ファイル作成時の設定ウィンドを見ていたらなんとtarに対応していました^^
★追記 2020/12/23
Windows10自体もtarに対応していました。
そこでCP/M-86用のtarファイルを解凍するuntarを作ってみました。
tarは古くからあるツールで、tarファイルの構造は単純なので解凍ツールの作成は割合簡単です。
tarファイルのフォーマットについてはネット上に豊富に情報があり「tar の構造」等を参考にさせて頂きました。
制作したuntarの操作ログのサンプルを貼っておきます。
untar操作ログ
コンパイル時のログも貼っておきます。"-a"オプションで自動的にリンクまで行うようにしています。
最後に、今回作成したuntarプログラムは下記のリンクからダウンロードできます。
※商用目的以外であれば自由に使用可能
UNTAR_CPM86_V005.zip
・2021/01/04 Ver 0.05
Win10のtarコマンド等のヘッダ内サイズデータのデリミタが20Hの場合に対応
・2019/10/24 Ver0.04
ファイルエンドの処理を修正
・2019/10/18 Ver0.03a
Aztec C 8086 Ver3.20d でコンパイル(File size was turned to 10KB from 30KB)
・2019/10/16 Ver0.03
ファイルリスト表示を高速化
・2019/10/13 Ver0.02
"/l"オプションを廃止し、リスト表示をディフォルトとした
・2019/10/12 Ver0.01a
ファイルサイズが128の倍数の場合の処理を改善
[TOP] [ 前へ ] 連載記事 [ 次へ ]
危険なので緊急以外の外出をしないように政府見解もでているので今日はパソコンの前に座っています(いつものことだけどw)
「レトロマイコン86ボードの構想(その11)xmodemの移植」の記事で書いたように自作のV20ボードで動くCP/M-86上でxmodemが動くようになり、パソコンとのファイル送受信が簡単にできるようになりました。
kuninetさんが書かれた「KZ80シリーズ、SBC8080 8085でCP M」の最後の方で拙作のxmodemを紹介して頂いていて、ここでは同時にCP/M-80用のunzipも紹介されています。パソコン側のGUI操作で複数ファイルのアーカイブを作り、xmodemでCP/Mへ転送する環境は確かに便利です。
そこでCP/M-86用のunzipを探してみましたが見つかりませんでした・・・
パソコンで使用している圧縮/解凍ソフトである7-zipの圧縮ファイル作成時の設定ウィンドを見ていたらなんとtarに対応していました^^
7-zipの圧縮ファイル作成時の設定ウィンド |
|
★追記 2020/12/23
Windows10自体もtarに対応していました。
コマンドラインでtarコマンド |
|
そこでCP/M-86用のtarファイルを解凍するuntarを作ってみました。
tarは古くからあるツールで、tarファイルの構造は単純なので解凍ツールの作成は割合簡単です。
tarファイルのフォーマットについてはネット上に豊富に情報があり「tar の構造」等を参考にさせて頂きました。
制作したuntarの操作ログのサンプルを貼っておきます。
|
コンパイル時のログも貼っておきます。"-a"オプションで自動的にリンクまで行うようにしています。
B>drc -a untar -------------------------------------------------- Digital Research C 04/17/84 Version 1.11 Serial No. 3073-0000-001282 All Rights Reserved Copyright (c) 1983,1984 Digital Research, Inc. -------------------------------------------------- Digital Research C Version 1.11 -- Preprocessor Digital Research C Version 1.11 -- Code Gen untar.c: code: 1541 static: 235 extern: 694 -------------------------------------------------- LINK-86 Linkage Editor 19 March 1984 Version 1.4 Serial No. 3073-0000-001282 All Rights Reserved Copyright (C) 1982-1984 Digital Research, Inc. -------------------------------------------------- CODE 06186 DATA 011A1 USE FACTOR: 18% B> |
最後に、今回作成したuntarプログラムは下記のリンクからダウンロードできます。
※商用目的以外であれば自由に使用可能
・2021/01/04 Ver 0.05
Win10のtarコマンド等のヘッダ内サイズデータのデリミタが20Hの場合に対応
・2019/10/24 Ver0.04
ファイルエンドの処理を修正
・2019/10/18 Ver0.03a
Aztec C 8086 Ver3.20d でコンパイル(File size was turned to 10KB from 30KB)
・2019/10/16 Ver0.03
ファイルリスト表示を高速化
・2019/10/13 Ver0.02
"/l"オプションを廃止し、リスト表示をディフォルトとした
・2019/10/12 Ver0.01a
ファイルサイズが128の倍数の場合の処理を改善
[TOP] [ 前へ ] 連載記事 [ 次へ ]