tako2 @tako-two.bsky.social · 04/12/202580mk2 の SD ドライブを使って、文字列を渡すと elisa フォントのビットマップを返すようにしたら、日本語表示いけるな 030
tako2 @tako-two.bsky.social · 25/11/2025開発中の FPGA 版 80mk2 エミュ、ビープ音も HDMI に出力しているので自分の環境でもキャプチャできるのではとやってみた 0103
tako2 @tako-two.bsky.social · 24/11/2025ありがとうございます! ChatGPT に Oh!PC の話を振ってみたら見つけてくれました Oh!PC の 1984 年 7 月号っぽいです 000
tako2 @tako-two.bsky.social · 24/11/2025Oh!PC ありましたね! すっかり失念してましたが、確かにたまに買ったりしてました AI に聞いてみたら I/O かポプコムかと言われました^^; 100
tako2 @tako-two.bsky.social · 24/11/2025いいですね、あれ 教えてもらった鳴らせ方ですが、8001 でこのような効果音を出せるとはと最初聞いたとき感動しました 020
Reposted by tako2ナンコツ @yagennankoz.bsky.social · 24/11/2025やっと実機からHDMIに出力できる環境ができたので、 @tako-two.bsky.social さんのBosconia(N)のプレイの様子を録画してみた 素晴らしい… 171
tako2 @tako-two.bsky.social · 22/11/2025Verilog を初めていじったときは、値がレジスタにラッチされるのが 1 クロック遅れになるのを前提にする設計に苦労したり、そもそもいきなり異なるクロック間でデータをやり取りしたりでハマったけど、だいぶ慣れてきた 000
tako2 @tako-two.bsky.social · 21/11/2025SD カードの制御にサブの Z80 を載せてるけど、メモリが 8KB しか余ってなくて FatFS の簡易版しか載らず、データのセーブを省略してるんだった SDRAM にメイン RAM を逃がしたので、サブ側のメモリを増やしてフル版の FatFS 使ってセーブできるようにしようか 000
tako2 @tako-two.bsky.social · 21/11/2025結局 /M1 だけじゃ取りこぼすようなので、/M1 と /IORQ 両方がアクティブになるまで /INT を出しておかないとダメだった それか、タイムアウト的に何クロック経過したら /INT を取り下げるでもいいのかも 010
tako2 @tako-two.bsky.social · 21/11/2025/INT を 1 クロック分しか出してないから、取りこぼしてるのかも いつまで上げておくかが問題だけど、Acknowledge まで待つにしても、CPU が割り込み禁止にしてたら上げっぱなしになりかねないし /M1 までなら、次の命令が実行されてるのがわかるから、下げても大丈夫なのか 120
tako2 @tako-two.bsky.social · 20/11/2025もう少し読み進めてみると、割り込みテーブルのアドレスを PC にセットした後に PC から命令を読み込むような感じでジャンプ先を読み込んでジャンプしてた 100
tako2 @tako-two.bsky.social · 20/11/2025TV80 のコアのソースコードに目を通して、IM2 のときの実装を確認してみる 複雑なのでそれとなくだけど、IM2 のコードは存在して、I レジスタとデータバスから入力した割り込みベクタを拾うところは確認できたけど、そのままジャンプしているような気もするし、どうなのか 100
tako2 @tako-two.bsky.social · 20/11/2025一応ちゃんと実装できたと思うんだけど反応がない バスに載せる割り込みベクタはそのままジャンプテーブルのアドレスに用いられるので、2バイト単位にしないといけなくて INT1 なら 0x02 にするところを 1 のままにしたとき out &hE6,2 したときに VBLANK に合わせて挙動がおかしくなったので割り込みはかかるみたいだけど、何が足りないんだか 100
tako2 @tako-two.bsky.social · 20/11/2025I/O ポートの 0xE4 と 0xE6 を使うっぽいけど、機能がよくわからんな ギャラガでは 0xE4 に 7 をセットして、0xE6 に 0b00000010 をセットするようにしてようやく動くようになったし 100
tako2 @tako-two.bsky.social · 20/11/2025データバスの割り込みレベルを出すタイミングは Z80 が割り込みに対してアクノレッジを返す時点だけど、M1 と IORQ が同時にアクティブになるからそのタイミングでいい感じか 80mk2 固有のことを聞くと頼りないけど、一般的な話だと AI との会話は役に立つな 100
tako2 @tako-two.bsky.social · 20/11/2025AI は 8259A だと言ってるけど、調べたら Intel の 8214 互換に IC っぽい 推測するに、/INT をアサートするタイミングでデータバスに割り込みの優先度を出力する感じかな 100
tako2 @tako-two.bsky.social · 20/11/2025Z80の割り込みの仕組みから見直さないと、よくわからんな /INTで割り込みがかかるにしても、割り込み要因をどうやって取り込んでるのか等 外部にコントローラーつけてるって話も耳にしてるし 110
tako2 @tako-two.bsky.social · 19/11/202580mk2用に作ったゲームがバッチリ動くようになった 表示中のウェイトがないからパックマンとかめちゃくちゃ速いけど 080
tako2 @tako-two.bsky.social · 18/11/2025SDRAM の初期化が終るまでリセットを待たせるようなコードを入れたせいだった メイン RAM を全部 SDRAM に置き換えても TM のメモリチェックが通ったので、多分大丈夫そうでよかった 110
tako2 @tako-two.bsky.social · 18/11/2025うまくいかなかったときにも TM を実行したんですが、その時はビープ音が鳴りっぱなしになりました なんとなく違和感があったんですが、カラーになっていますね 000
tako2 @tako-two.bsky.social · 18/11/2025とりあえず、READ 時は DQ を遅延して読み込んで、WRITE 時は早めに DQ に書き出す感じでなんとなくうまく動いている気がする RAM の一部を SDRAM に置き換えてるだけなので、これを 64KB にして問題なければ、いよいよ 80mk2 の GVRAM の実装か 110
tako2 @tako-two.bsky.social · 18/11/2025READ/WRITE/REFRESH でそれぞれ 4 クロックでシーケンスが完了するので、32MHz だと 8MHz ぐらいで命令を受けつけるイメージなので、4MHz の CPU からの READ/WRITE があったタイミングで REFRESH していても、REFRESH が完了するのを待って READ/WRITE しても間に合う寸法 32MHz よりクロックを落とすと READ/WRITE のシーケンスが間に合わないタイミングが出てくるので、なんとか 32MHz で動いてもらわないと 010
tako2 @tako-two.bsky.social · 18/11/202532MHz にしたら、読み書きできるようになった! ただ、まだたまに WRITE に失敗するので、もう少しタイミング的なところが残ってそう 120
tako2 @tako-two.bsky.social · 17/11/2025RAMの一部をSDRAMにマッピングしてみるも、データ化けするし リードするたびに値が変わるから、リードサイクル間違ってんのかな 120
tako2 @tako-two.bsky.social · 17/11/202580mk2 のグラフィック RAM を SDRAM で実装しようとすると、バースト長が 1 じゃ間に合わないから、Block RAM 使わなあかんのか・・ 010
tako2 @tako-two.bsky.social · 16/11/2025Tang Console 138K なら SDRAM なしに 80mk2 を実装できるけど今買える額じゃないし、SDRAM に再挑戦してみるということで 120