2015年09月24日

X68k修正版

SW休みに修正した修正版をアップします。
release-F68k_DE0CV.150924.qar
今回の修正点は:
・テキスト画面ラスタコピー修正
・電源OFF時7seg消灯
等です。
今まで、スクロールした時にゴミが残る問題がありましたが、どうも実機では
1水平期間で4ラスタのコピーができていたようですが、僕の実装では
テキスト画面もグラフィックス画面もメインメモリも同じSDRAMを時分割で
アクセスしているため1水平期間では完了せず、途中までで残ってしまうようです。
そのため、水平同期割込みでラスタコピーを終了させてしてしまうと途中までしかコピーが
完了していないため、ゴミとして残ってしまうようです。
対策として、4ラスタ完了するまでラスタコピーが終了しないようにしました。
(正確には、4ラスタコピーすると自動終了としてソフト的には止められない)
それと、画面サイズは今まで800×512にしていましたが、800x600まで広げました。
ko-windowで800x526を選択すると、全て画面に収まるようになります。
posted by プー at 23:58| Comment(0) | リリース/X68k | 更新情報をチェックする

2015年09月19日

X68k修正版

一部修正しましたのでアップロードします。
release-F68k_DE0CV.150919.qar
変更内容:
・FDDのイジェクトに対応しました
(ハード的にイジェクトは出来ない為、あくまでもイジェクトしたことにするだけです。)
・SASI(SDカード)のアクセスランプを追加しました。LEDR0(赤の一番右)です。
今までINT1に割り当てられていましたが、INT2は何も繋がっていないのでひとつどいてもらいました
・電源スイッチに対応しました。大きなプッシュスイッチの一番右です。
HDDに対応するようになり、遅延書き込みでデータが失われる可能性があるためソフト的に
電源を落とせるようにしました。
posted by プー at 08:08| Comment(0) | リリース/X68k | 更新情報をチェックする

2015年09月18日

起動画面

SDカードによるSASIエミュレーションも機能するようになり、HDD代わりに
動作するようになりましたので、SDカードにHuman68kとSX-WINDOWをインストールし
記念に動画を撮ってみました。

Human68kのフリー公開されているものはインストーラも同梱されており、
INSTALLコマンドで普通にインストールできましたが、SX-WINDOWは公開バージョンには
インストーラが同梱されていません。
実機を使ったことが無い為、正しいディレクトリ構造が分からないので、とりあえずは
ファイルをそのままフォルダごとコピーしましたが、一応動作はしているようです。
それと、AT用FDDを流用しているから当然と言えば当然なのかもしれませんが、
AT互換機でフォーマットしたFD(1.44M)もそのまま読み込み出来るようです。
DIRコマンド等でエラーは出ますが、無視すれば動作するようです。
ただ、8.3ファイル名を超えるファイル名があるとダメみたいです。
DOSで見た時の8.3ファイル名が見えるのではなく、メディアエラーになってしまいます。
posted by プー at 12:36| Comment(0) | X68000 | 更新情報をチェックする

2015年09月15日

HDDサポートバージョン

というわけで、SDカードをSASI-HDDとして使用するバージョンができましたので
アップロードします。
release-F68k_DE0CV.150915.qar
SDHCやSDXCは使用できません。ノーマルのSD(SDSC)を使用してください。
もちろん、DE0-CVのSDカードスロットはMicroSDですのでマイクロサイズの
SDカードが必要です。

SDカード全体をドライブとして使用します(SDカード内のファイルを使用するのではありません)
ので、内容物は全て失われると思ってください。活線挿抜はできませんので、
SDカードを入れた状態で電源を入れてください。
現在では1つのID(ID=0)にしか対応していません。ただ、UNITは0と1には対応していると
思うので、2ドライブ使用できると思います。SASI HDDは最大1ドライブあたり40Mbyteですが、
64Mbyteを割り当てています。また、読み書きともにブロックサイズ変更可能なカードでは
256B/sectorで使用しますが、それ以外では512Bを1セクタ(256B)として半分の容量として
扱いますので1ドライブあたり128MB消費します。
使用前にはformatコマンドでフォーマットが必要です。
まだ稀に動作異常になることがありますので、その場合は電源を入れなおすが、
リセットスイッチ(小さなプッシュスイッチ)を押しながらSDカードを入れなおしてください。

尚、今回のバージョンでは今まで機能していなかった、FDDの挿抜割込みも
発生するようになっています。イジェクトには未対応です。
(ハード的に自動イジェクトはできませんが、後々イジェクト命令を受けたら
イジェクトされたように振舞う機能を付けたいとは考えています。)
posted by プー at 23:53| Comment(0) | リリース/X68k | 更新情報をチェックする

SDカードのブロックサイズ-2

前回、手持ちの2GB SDカードのCSDレジスタを読み出して、1024Bブロックで
アクセスするしかないかな、と考えていたところだったのですが、アクセス回路を
書いていく中で、何故かブロックサイズを1024Bに変更出来ないことが分かりました。
READ_BLK_LENとWRITE_BLK_LEN、共に0x0aですので1024Bが最大値の筈ですが、
CMD16で引数に1024を指定すると、引数異常で失敗します。
仕方がないので標準的な512でCMD16を実行すると特に問題なさそうです。
WRITE_BLK_PARTIALは0なのですが、とりあえずこの状態で512Bの書き込みを
行うと、正常に書き込まれているようです。
なんだか、良く分かりませんがブロックサイズは512B、SASI HDDのセクタサイズは
256Bのようですので同じデータを2Byteずつ書いてSASI I/Fから見ると256B/sectorだが
SDカード内は512B/blockで扱うようにし、何とかSASI HDDとして使用できる状態に
なっています。
posted by プー at 20:27| Comment(0) | SDカード | 更新情報をチェックする

2015年08月27日

SDカードのブロックサイズ

SDカードがSASIドライブに見えるように現在コーディングを始めたところです。
(X68000では?)SASI HDDのセクタサイズは256Byteのようです。
一方、SDカードのブロックサイズは512Bが標準だとインターネット上の
情報から得ていました。ただ、CMD16で自由にブロックサイズを変えられる
らしいので、CMD16で256Bに変えて、SASI HDDとセクタサイズを合わせておけば
コマンド変換のみで行けるだろうとたかをくくっていました。

ですが、メーカのSD/MMCカードのデータシート等を見ると、読み書きのブロックサイズを
CMD16で変更できるものと、出来ないものが有るようです。特に、書き込みブロックサイズは
固定な物も多いようです。
試しにSDカードのCSDレジスタを読み出す回路を作成し、読みだしてみたところ
手持の2GB MicroSDは2枚とも(同じメーカの同じ型番だったかもしれないが)
bit21 WRITE_BLK_PARTIALが'0'であり、書き込みブロックサイズは変更が
出来ないようです。bit79のREAD_BLK_PARTIALは'1'でしたので読み出しブロックサイズは
自由に変えられるようです。
同時に、bit80-83のREAD_BLK_LENとbit22-25のWRITE_BLK_LENが10(x"a")になっていることも
確認しました。つまり、ブロックサイズは512Bではなく1024Bということです。
最近、SDSC(スタンダード容量)のSDカードは殆ど目にすることが無く、SDHCばかりに
なってきており、なんとか入手できるSDSCカードも2GBの物が唯一になりつつありますが
このカードがブロックサイズ変更不可(READだけで来ても、WRITEが出来なければ意味が無い)
でブロックサイズ1024B固定となると、かなり使い方を考えさせられます。

例えば、1024Bのキャッシュを持っておいて、Read modify Writeするか、思い切って
先頭の256Bしか使わない、4Bごと同じデータを書いて1024B埋める、等。
容量はSASI HDDの時代とは比べ物にならないですので気にすることはないと思いますが
速度がもったいない気がします。
posted by プー at 12:46| Comment(4) | SDカード | 更新情報をチェックする

2015年08月22日

修正版

X68kのDE0-CV版です。
今回の修正は
・割込み関係バグフィックス
・グラフィックス画面の高速クリア対応
です。
release-F68k_DE0CV.150822.qar
posted by プー at 09:40| Comment(0) | リリース/X68k | 更新情報をチェックする

8801もDE0-CV対応です

X68kの開発用にDE0-CVを購入しましたが、まだあまりDE0-CVの購入者が多くないようです。
インターネットでDE0-CVで検索しても販売サイトが大半な状況ですので、
DE0-CVをもっと普及させるためにPC88もDE0-CVに対応させました。
release-de0cv.150822.qar
特に目新しいことはしていません。ほぼDE0版、まんまです。
パラレルFLASHが無いため、1chip版のようにEPCSデバイスにBIOSコードを同居させます。
同梱するDoc/ROM_address.xlsに作成方法が記載されていますので参照してください。

本当はDE0でX68kができればよかったんですけどね。コードと使用するSRAMが肥大化し、
いろいろ機能を削ってもFPGAに収まらなくなってしまいました。
posted by プー at 05:54| Comment(0) | リリース | 更新情報をチェックする