誰かX68Kエキスパートいらないか
急遽転勤するためX68がとてもじゃまになりました
埼玉県草加市近辺で取りにこれる人いないかなぁ
処分予定は今週土曜日ですゲーム7〜8本くらいあるかな
本体動くかはわからないけどたぶん動くと思います
いるわけないかな X68kのプログラミング関係の質問をここでしてもいいですかね? COPYキーを押したときに画面の調整をする常駐プログラムを作っています。
trap#12のベクタをINTVCSで書き換えてからKEEPPRで常駐して、
希望の動作をさせることはできました。
このプログラムを常駐解除するため、控えておいた常駐前のアドレス(ROM内)を
INTVCSで再設定しましたが、常駐解除プログラムをEXITしたときに、
先ほどまでのアドレス(最初に常駐したプログラム内のアドレスで、
解除プログラムがメモリを解放したところ)に戻されてしまいます。
原因と対策についてコメントいただけるとありがたいです。よろしくお願いします。 >>193
それはそれによくあった典型的なフロッピーの読み損ね >>193
INTVCSで戻すために控えておいた値が、常駐PGMから
ちゃんと取れているかを確認ですな。 >>195
もちろん確認していますし、ROMのアドレスを直接書き戻しても同じ結果でした。
もう少し詳しく追いかけてみるため、GETCHARで止めながら解除プログラムを進めてみると、
INTVCSでベクタを書き戻した後は、間違いなく元の処理(「プリンタがつながっていません」の白帯)
になっていますが、EXITすると常駐解除したプロセス内のアドレスに戻っています。
DOSコールのEXIT処理のなかでtrap#12のベクタを復元しているような挙動ですが、
そうだとすると、プログラム開始時にベクタの値を控えていて、それを参照するはずだと思って、
プロセス管理ポインタの中身(+$54)も書き換えてみましたが、これは関係なさそうでした。 >>196
うーん、例えば、trap #0〜7と違って、copyキー用の
trap#12はHuman68kが内部で使っていてそんな挙動に
なってるとか。。
INTCVSでなくて、ベクタが入っている$0000B0を
直接書き換えてみるとかではどうでしょうか。 戻り番地が期待外って言うと、スタックしか疑えない素人の俺 >>197
ベクタを直接書き換えても、プロセス実行中はそのアドレスへ飛ぶようですが、
DOS _EXIT を実行してからシェルに帰るまでの間に再設定されているっぽいですね。
説明がわかりにくいかったかもしれませんので、ソースを公開してみます。
ttp://amadela.web.fc2.com/x68000/adjusthome.html 解決しました。
常駐解除プログラムではなく、その親(command.x)のプロセス管理ポインタを
修正してからEXITすれば良いみたいです。
全メモリをサーチしてベクタを控えている箇所を特定しました。 >>200
解決して良かったです。
↓のサイトで、プロセス管理ポインタにtrap #10〜#14の
ベクタ値があったため、方法は合っていると思われます。
ttp://datacrystal.romhacking.net/wiki/X68k:PM ディスクイメージをフロッピーに書き戻さずに実機起動する巧い方法ってありますか?
ディスク関係のIOCSをフックしてXDFファイルを読み書きに行くような方法を考えているのですが、
SRAM常駐プログラムとなると、Human68k立ち上げ前になりますので、
FAT解析まで自前でするのはちょっと難しくて手が出ません。 >>202
なかなか凄いことを考えますね。
今ZOOMが配布しているジェノサイドやファランクスで、
SRAMを使ってそんなやり方で起動してなかったでしょうか。 違うよ
あんな豚みたいなボッタクリな金を頂く気はないよ 本体は代替品がないから直す意味があるけど、モニタは金さえ積めば代替ソリューション
がある時点で無理して直す必要がないと思ってるだけ
一応コネでサービスマニュアルのコピーも貰ってあるから直せなくは無いけど
やらない _,,..r'''""~~`''ー-.、
,,.r,:-‐'''"""~~`ヽ、:;:;:\
r"r ゝ、:;:ヽ
r‐-、 ,...,, |;;;;| ,,.-‐-:、 ヾ;:;ゝ
:i! i! |: : i! ヾ| r'"~~` :;: ::;",,-‐‐- `r'^!
! i!. | ;| l| ''"~~ 、 i' |
i! ヽ | | | ,.:'" 、ヽ、 !,ノ
ゝ `-! :| i! .:;: '~~ー~~'" ゙ヾ : : ::|
r'"~`ヾ、 i! i! ,,-ェェI二エフフ : : :::ノ~|`T イエーイ!>>1見てる〜♪
,.ゝ、 r'""`ヽ、i! `:、 ー - '" :: : :/ ,/
!、 `ヽ、ー、 ヽ‐''"`ヾ、.....,,,,_,,,,.-‐'",..-'"
| \ i:" ) | ~`