Manuke Station BBS
RSS
投稿者
題名
確認
内容
URL
《
〈
11
12
13
14
15
16
17
18
19
20
〉
》
全500件のうち、新着の記事から10件ずつ表示します。
ROM吸い出し
投稿者:
Manuke
投稿日:
2010-12-19 15:48:50 UTC
To PC88さん
> 本日、ご指導いただいたとおり、アセンブラを使用して、初代88実機よりROMの吸い
> 出しに成功いたしました。
上手くいきましたか。おめでとうございます。
こちらでも入手できましたら、無印も対応にチャレンジしてみますね。
(無題)
投稿者:
PC88
投稿日:
2010-12-18 12:28:16 UTC
本日、ご指導いただいたとおり、アセンブラを使用して、初代88実機よりROMの吸い出しに成功いたしました。
的確でわかりやすいご指導、ありがとうございます。
今後もX88000の応援をしていきます。
Z80アセンブラ
投稿者:
Manuke
投稿日:
2010-12-17 15:50:16 UTC
To PC88さん
> 本当に感謝してます。詳しい解説ありがとうございます。ちなみに、教えていただい
> たコードはアセンブラで入力するのでしょうか?
アセンブリ言語ですから、テキストエディタなどで入力し、アセンブラで機械語へ翻訳
するという形ですね。
> アセンブラはさすがに持っていないので、機械語で入力することはできるのでしょう
> か?
人間の手で機械語へ翻訳するということでしたら、もちろんできます。(ハンド・アセ
ンブル)
その場合には、例えば本家ザイログにあるZ80マニュアルとか、Web上にあるニーモニッ
ク表を参照してください。
http://www.zilog.com/docs/z80/um0080.pdf
もっとも、PC-8801上ではなくWindows上で動作するZ80アセンブラならフリーで入手可能
ですから、Windows側でアセンブルし、PC-8801側へ機械語を転送なり手入力なりするの
が楽だと思いますよ。
例えば、Vectorにもいくつか置かれているようです。
(私は使用していないので、使い勝手は不明ですけど)
http://www.vector.co.jp/vpack/filearea/win/prog/asm/z80/
(無題)
投稿者:
PC88
投稿日:
2010-12-17 12:23:48 UTC
アセンブラはさすがに持っていないので、機械語で入力することはできるのでしょうか?
(無題)
投稿者:
PC88
投稿日:
2010-12-17 11:35:32 UTC
本当に感謝してます。詳しい解説ありがとうございます。ちなみに、教えていただいたコードはアセンブラで入力するのでしょうか?
4th ROMからの転送
投稿者:
Manuke
投稿日:
2010-12-16 16:48:05 UTC
To PC88さん
> わざわざ詳しい解説までありがとうございます。
> 本当に無知の自分を痛感しています。そこで、恥を忍んで教えていただきたいのですが、
> 4thROMの内容を別のアドレスに移動させたい場合はどうしたらよろしいのでしょうか?
処理内容にもよるかと思いますが、基本はメモリ間のコピーでしょうね。
BASICからもアクセス可能な領域へコピーしてしまえば、後の処理が楽になります。
例えば、BASIC側であらかじめCLEAR文でメモリを確保し、0C000H~0DFFFHがワークエリ
アとして利用可能だとします。(TransRomはここを使用)
この場合、先ほどのコードに挿入するなら、
PUSH BC ; Bレジスタ(71H)をスタックへ待避
LD HL, 6000H ; 4th ROM先頭メモリアドレス
LD DE, 0C000H ; ワークエリアメモリアドレス
LD BC, 2000H ; 転送バイト数
LDIR ; 一括コピー
POP BC ; Bレジスタをスタックから復帰
と実行すれば、6000H~7FFFHの内容が0C000H~0DFFFHへコピーされます。
この領域ならば、BASICのPEEK関数でも読み出し可能です。
(無題)
投稿者:
PC88
投稿日:
2010-12-16 13:32:14 UTC
わざわざ詳しい解説までありがとうございます。
本当に無知の自分を痛感しています。そこで、恥を忍んで教えていただきたいのですが、4thROMの内容を別のアドレスに移動させたい場合はどうしたらよろしいのでしょうか?
4th ROMアクセス
投稿者:
Manuke
投稿日:
2010-12-16 10:51:53 UTC
4th ROMアクセス
To PC88さん
> 今、頑張って、自力でROMの吸い出しに挑戦をしています。
> ところで、4th ROMの吸い出しを行うのにバンク切り替えが必要であるとのことなので
> すが、バンク切り替えはどのようにすればよいのでしょうか?
4th ROM 1のアクセスは、I/Oポート71Hへ0FEHを出力するだけです。
ポートへ0FEHを出力した瞬間に、メモリアドレス6000H~7FFFHの範囲が4th ROMのものへ
と切り替わります。
(SR以降の機種では、標準4th ROMが4つ搭載されていますので更にバンク切り替えの指
定も必要になりますが、無印/mkIIでは関係なし)
ただ、ROMのバンク切り替えはBASICからは行えませんので、基本的に機械語でコードを
記述する必要があります。
また、切り替え中は割り込みが発生しないよう割り込み禁止をかけておくこと、アクセ
スが終了した後はバンク切り替えを元に戻すことにご注意ください。
ざっと書いてしまうと、こんな感じです。
(Z80ザイログ表記。ちゃんと実行を確認してません)
DI ; 割り込み禁止
IN A, (71H) ; 現在の71Hの値を取得
LD B, A ; Bレジスタへ保管
LD A, 0FEH ; 4th ROM 1切り替え値をセット
OUT (71H), A ; 4th ROM 1へバンク切り替え
; 4th ROMアクセス
LD A, B ; Bレジスタから以前の値を取得
OUT (71H), A ; メインROM切り替え
EI ; 割り込み許可
(無題)
投稿者:
PC88
投稿日:
2010-12-15 12:55:28 UTC
今、頑張って、自力でROMの吸い出しに挑戦をしています。
ところで、4th ROMの吸い出しを行うのにバンク切り替えが必要であるとのことなのですが、バンク切り替えはどのようにすればよいのでしょうか?
ネットでは「通常は6000Hから7FFFHまでのエリアは「メインROM」が選択されているので、裏のバンクにあるROM内のルーチンを呼び出すには、I/Oポート71H へデータを出力してバンクを切り換え、CPUから「見える」状態にする必要があります。」とあったのですがよくわからないので、教えていただけると助かります。
あぅぅ
投稿者:
Manuke
投稿日:
2010-12-10 14:20:51 UTC
To PC88さん
うむむ、駄目でしたか。お力になれず申し訳ないです。
やっぱり実機がないとこれ以上は難しいですね。
無印を入手する機会があったら、改めてチャレンジしてみます。
ご協力ありがとうございました。
《
〈
11
12
13
14
15
16
17
18
19
20
〉
》
以上は、新着141番目から150番目までの記事です。
ROM吸い出し
投稿者: Manuke 投稿日: