Z80に関するブログ記事

Contikiのメンテナンス

ここんところ、SourceForgeへのCVS接続がうまく動かない障害にずっと悩まされていて放置プレイだったのですが、久しぶりにContikiのメンテナンスをはじめてみました。 一応私は、Z80全般およびPC-6001部分のソースが担当になっています。 ていうか、えらいコードが変わっていて、ついて...

Operating Systemの開発?

  • 投稿日:
  • 更新日:2015/02/09
  • by Taka Matsutsuka
  • カテゴリ: ,
P6絡みののりさんが、ROM乗せかえ(実際にはエミュレータ上のBIOSイメージ入れ替え)によるフリーのPC-6001実行環境を開発しています。 私も以前、実機のROMを外して別のROMやRAMに変えられるのではないかと妄想していましたが、それをエミュレータ上でやってしまおうということですね。 現在...

PSGPCM再生時のクロックの話、再び

  • 投稿日:
  • 更新日:2015/03/09
  • by Taka Matsutsuka
  • カテゴリ: ,
性懲りもなくPSGPCMと格闘しています。 PSGによるPCM再生は、以前11kHz/9ビット相当の比較的高音質の再生を成功させましたが、マシンパワーおよびメモリを非常に消費する方法でした。 そのため、来るべき(?)画像と音声の同時再生に向け、いかに「軽く」発音させるかについても少し検討してみること...

AVR-SD拡張回路(改良後)

  • 投稿日:
  • 更新日:2015/03/08
  • by Taka Matsutsuka
  • カテゴリ: ,
ラッチを使ってZ80との入出力ができることがわかったので、修正した回路図です。 Webページに収まるようになるべく小さく描いたので見にくいのはご勘弁。 ...

とりあえず動作

  • 投稿日:
  • 更新日:2008/12/22
  • by Taka Matsutsuka
  • カテゴリ: ,
とりあえず、前回のテストは期待通りの動作をさせることができました。 原因はあちらこちらの断線でした。 UEWを使っていて、しょっちゅう回路を変更するものだから、そのたびに線をいじったりしているうちに断線してしまっているのでした。 直しては他の箇所が断線するいたちごっこ状態。 こんなんじゃ先が思いや...

ラッチを入れてみる

  • 投稿日:
  • 更新日:2008/12/21
  • by Taka Matsutsuka
  • カテゴリ: ,
I/O回路の要求には高速応答性が必要で、到底AVRの割り込み反応時間では間に合わないことがわかったので、バッファを入れる実験をしました。 例により、簡略化した回路です。 手持ちのラッチがLS373しかなかったので、電圧が混在しています。 プログラムのほうは、なんかoutしたら、そのタイミングでデー...

AVRの割り込み反応時間

  • 投稿日:
  • 更新日:2008/12/14
  • by Taka Matsutsuka
  • カテゴリ: , ,
Z80からのI/O信号に対し、どのくらいでAVRによる割り込み反応が得られるのかを調査してみました。 回路は前回作ったものを使います。 PC-6001側からI/O命令を発行し、AVRの外部割込み入力をトリガにして反応を調べます。 まずは、主な信号線の様子。 ここで、INT0が活性化されている時間(...

I/OによるZ80-AVRの通信テスト

  • 投稿日:
  • 更新日:2015/03/09
  • by Taka Matsutsuka
  • カテゴリ: , ,
レトロパソコンのインテリジェントな周辺機器を作るのに 大きな間違いに気づいてショックな今日この頃。 デコーダ・バッファは8255が入手困難な現在、手持ちのCPLD(Xilinx XC9536XL)があるのでそれでやってみようと思うのですが、困ったことにライタがありません。 ライタを作ろうにも、そのた...

I/O拡張回路の難しさ

  • 投稿日:
  • 更新日:2008/12/13
  • by Taka Matsutsuka
  • カテゴリ: , ,
以前設計した回路には、重大な盲点がありました。 2点あります。 割り込み要求線に^RD/^WRを入れておかないと、おかしなタイミングで割り込み要求がかかる Z80からのI/O要求に対する応答が間に合わない 割り込み要求線 以前の設計では、割り込み要求は次のようにしていました。 IORQの確定とRD...

Hexameterリリース

Hexameter 2.1.2をリリースしました. Sourcceforgeからダウンロードできます. 変わったのは、SDOS 1.1用のテンプレートを用意したことだけですのでたいして大きな変化ではないですが、もしSDカードアダプタをお持ちの方でSDカードをアクセスしたいという奇特な(?)方がいら...

Z80のC言語クロスコンパイル(SDCC)(5)

  • 投稿日:
  • 更新日:2015/03/08
  • by Taka Matsutsuka
  • カテゴリ:
前へ 第1回 第2回 第3回 第4回 第5回 演算ライブラリについて sdccには基本的な標準ライブラリが入っています。 その中には stdio.h stddef.h stdlib.h string.h など、C言語として当たり前のものもあるのですが、その他に、基本的な演算や浮動小数点なども含ま...

PSGによるPCM再生:PC-6001のクロックはどこまで信用できるのか?

  • 投稿日:
  • 更新日:2015/02/09
  • by Taka Matsutsuka
  • カテゴリ: ,
いま、PC-6001のPSGでPCM再生を試みています。全体的にかなりいい感じで進んではいるのですが、クロック計算がなかなか合わないというのが困りものです。カタログ上のPC-6001のクロック周波数は3,993,600Hzです。半端に見えますが、因数分解すると3993600 = 2^12 * 5^2...

SDカードドライバの設計(5)

プリンタポートの場合 カードリーダをプリンタポートに接続する場合のコードを考えてみました。昔のパソコンの大部分は入力がBUSY信号のみですが、幸いなことにSPIで必要とする入力信号は1本なので、これで間に合います。 ...

SDカードドライバの設計(4)

高速読み出しの工夫 第1回で説明したように、ジョイスティックポートからのデータ入力はかなり手間がかかります。 高速化は最もたくさん実行する部分から行うのが定石なので、心臓部であるバイト入力をする部分を最適化するのが最も効果的です。 (ポート0xa0)<-0x0f レジスタ0x0fをラッチ (ポ...

Z80のC言語クロスコンパイル(SDCC)(4)

  • 投稿日:
  • 更新日:2015/03/08
  • by Taka Matsutsuka
  • カテゴリ:
前へ 第1回 第2回 第3回 第4回 第5回 次へ インラインアセンブルコード sdccのCコンパイラの出力コードの効率があまりりよくないことはお話しました。 そのため、インラインアセンブルを使うことも多いでしょう。 インラインアセンブルの利用は、他のコンパイラ同様、以下のような利点があります。 特...

Z80のC言語クロスコンパイル(SDCC)(3)

  • 投稿日:
  • 更新日:2015/03/08
  • by Taka Matsutsuka
  • カテゴリ:
前へ 第1回 第2回 第3回 第4回 第5回 次へ リンクについて sdccでは他のCコンパイラと同様、ライブラリを作って、それをリンクすることができます。ここでは、通常のスタティックリンクと、外部プログラムとリンクするテクニックについて説明します。 ...

Z80のC言語クロスコンパイル(SDCC)(2)

  • 投稿日:
  • 更新日:2015/03/08
  • by Taka Matsutsuka
  • カテゴリ:
前へ 第1回 第2回 第3回 第4回 第5回 次へ sdccを使うことによりC言語でプログラムが可能になりますが、実際にはアセンブリ言語と一緒に使うことが多いと思います。理由は、 sdccの出力するコードは速度的にも容量的にも効率が悪い 直接BIOSやI/Oポートにアクセスすることがある などです。...

Z80のC言語クロスコンパイル(SDCC)(1)

  • 投稿日:
  • 更新日:2015/03/08
  • by Taka Matsutsuka
  • カテゴリ:
第1回 第2回 第3回 第4回 第5回 次へ UNIXやWindows環境で利用できるフリーのZ80対応クロスC言語コンパイラとして、現在利用可能なのはSDCCくらいしかありません。 このコンパイラに関する日本語のドキュメントはまだほとんどないと思われますので、私が知っている限りで説明しておこうと思...