S1-CP/M80 移植作戦 その15 BIOSの作成準備1^^

スポンサーリンク

S1側とZ80Bカードの連携方法を確認するためにテストプログラムを作ってみました

以前教えて頂いたZ80と6809との切り替え方は
①0:0000~Z80のコールドスタートのプログラムを書く
②$FF7Fに$FFを書込む(Z80スタンバイ)
③$FE19に$00を書込む(Z80スタート)
これでZ80がスタートされ6809から拡張メモリを含む全てのスロット上カードへのアクセスができなくなる(バスフローティング状態)
しかし6809は停止していないのでS1の資源だけを利用してZ80と並行動作している。
この状態で6809からスロット上のカードをアクセスする必要が出た時は
④$FE19に$80を書込む(バスリクエスト)
⑤$FE19を読出しMSBが1になるのを待つ
⑥必要な処理を行う
⑦$FE19に$00を書込む(Z80スタート)
④~⑦の繰り返しで処理可能

S1の拡張MPUカードの特徴は6809もZ80も両方とも動作しているということで、
6809側からもZ80側からも見える共通の領域にデータを書き込んでI/O処理のときにデータを参照する
仕組みだそうです。
(6809側とZ80側の両側からアクセスできるエリアは物理アドレスで$00000~$7FFFFの512KBで
MPC-RA64~512の拡張RAMカードが必要です)

これだと両MPUは常に動作しているので、MPU切替を複雑には考えなくていいようです。
これがS1のフローティングバスの優れた部分だそうで、
Z80カードを作って初めてフローティングバスの恩恵を得られました(^^)

上記①~⑦を図に書いてループバックのソフトを整理してみました。
(フローチャートではないので何だかちょっと変^^) 続きを読む S1-CP/M80 移植作戦 その15 BIOSの作成準備1^^

スポンサーリンク

Raspberry Pi 3B+によるradiko受信メモ^^

Raspberry Pi 3B+を使ったradiko受信の方法をメモ。

ネットで調べると色々情報が出てきますが、昔の方法は最近は使えないようなので
色々調べて2018年10月に動作した方法をメモっておきます

必要なソフトをインストール
sudo apt install rtmpdump swftools libxml2-utils libav-tools mplayer

参考にしたサイト
http://www.nofuture.tv/diary/20130111.html
https://xanadu6291.stars.ne.jp/?p=274
⇒  https://mtunn.wordpress.com/2017/02/08/raspberrypi3%E3%81%A7radiko/
こちらのサイトのradiko.shを使用し、録音関係を削除し再生用にさせて頂きました^^
続きを読む Raspberry Pi 3B+によるradiko受信メモ^^

Raspberry Pi3B+にPHAT DACを取り付ける^^

Raspberry Pi 3B+に192kHz/24BitのI2S仕様のオーディオ用DAコンバータ(PCM5102A)を取り付けました


pHAT DAC

設定は簡単でしたが次回やり直さないといけなくなった時のために作業した時のメモ

ピンヘッダ部のコネクタは自分で半田付けする必要があります。

参考 ⇒販売元のサイト

販売元のサイトを見るとAutoSetupのスクリプトを提供していました^^

ラズパイのライブラリの依存関係に影響するようでスクリプト実行前にupdate/upgradeの実行は必修のようです

こちらを実行するとどうなるか試してみたところ 続きを読む Raspberry Pi3B+にPHAT DACを取り付ける^^

S1-CP/M80 移植作戦 その14 データ転送環境を準備^^

Z80カードのハード廻りはOKになったのでソフト作成の準備としてS1にデータをロードする環境を準備します

現在私が使っている開発環境はCygwin上に作ったクロスアセンブラで
m6809-as
Z88dk
を使用しています

デバッガはS1エミュレータのデバッガ
なので完全なクロス開発環境です。

S1実機でのデバッグとS1エミュでデバッグでは使いやすさが全然違うのである程度エミュ上でデバッグしてから
バイナリをS1実機にロードする方法で進める予定です

S1のメモリへのロード方法は
①ディスクイメージを実イメージに書き戻す方法(DITT)
②シリアルポート経由で直接データを送る方法
が考えられますが、
貴重なS1/30を使い始めるのはもう少しソフトが出来てからの方が良さそうなので、
シリアルポート経由でメモリにデータをロードできるメモリローダを作ってみました。
ロード先の物理アドレスを指定する方法としてS1のモニタで設定してもいいのですが、
面倒なのでメモリローダ内に物理メモリの先頭番地を指定できるようにしてみました^^

そこで、このメモリローダをS1に入力しないといけないのですが、
最初はダンプを入力するしかないので最小サイズになるまで整理・・^^
もう少し減らせる可能性もありそうですが、とりあえず204バイトになりました。
これならS1モニタのEコマンドでも楽々入力できます

かなりのポンコツソフトですが一応使えるので晒しておきます

位置独立ではありません D000番地からロードして実行できます^^

使い方RS232Cでバイナリ通信できるターミナルと接続しN81で1200bpsにセットします
S1モニタでバイナリを入力しD000から実行 続きを読む S1-CP/M80 移植作戦 その14 データ転送環境を準備^^

お出かけメモ:2018年9月 ひろしまバスまつりにいってみる^^

商工センターで開催されていた ひろしまバスまつり に出かけてきました^^

これまでに何度か行きたいと思っていたイベントですが、今年で20回目のようです

入り口すぐのところで広電バスのサンフレッチェ広島ラッピングバスの展示がありました。 続きを読む お出かけメモ:2018年9月 ひろしまバスまつりにいってみる^^

趣味の日記