雑談質問相談掲示板

ページ名:雑談質問相談掲示板

はじめに

ここは、雑談・質問・相談など何でも話題にする掲示板です。

掲示板についてお知らせ

特にありません。

禁止事項

  • 掲示板の趣旨と関係ない書き込み
  • 誹謗・中傷含む書き込み
  • 他サイトやアプリの宣伝
  • 招待URLの書き込み

以上に該当する書き込みを見つけた場合、コメントを削除する可能性がございます。

 

また、お困りのことがございましたら管理者へのお問い合わせフォームよりお問い合わせください。

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する
WINDY
ID:NGRiYWEyO

>> 返信元

INTはそうやってブレークさせるのですね、今まで止まったところからコールスタックを頼りに逆方向にアドレスでブレークさせて順に見ていました。(これでは効率が悪いわ)
ところで、FM音源の波形の件ですが比較に実機とうんづと津軽を用いて計ってみようと思います。
実は少し前に波形を録ったのですが、条件が揃えきれなくて比較できるような状態ではなかったので、今一度条件をできるだけ揃えて実測したいと思います。結果はここに書き込みます。

返信
2020-07-23 08:23:35

山川機長
ID:MTVhNTkwZ

>> 返信元

多分原因究明しました。

1086:0000A6C2 F36766A5 REP MOVSD

リアルモードで 67 をつけると32-bitオフセット使えるっぽいですね。直前でどうみても物理アドレスを計算するルーチンがあったので、YSSCSICD.SYS書いたとき、リアルモードだとアドレシングは強制的に16ビットになるものと思っていたのですが、いろいろ新たな発見がありますね。CPUコア、どこかで矛盾出さずに簡単に直るかな?とりあえずやってみます。

返信
2020-07-23 07:50:01

山川機長
ID:MTVhNTkwZ

>> 返信元

SCSIのPhaseのMESSAGE_INとSTATUSの順を入れ替えたら、とりあえずSCSIのエラーは出なくなりました。が、HIMEM.SYSインストール中に割り込みハンドラを破壊という現象が起きていて原因を調査中です。なお、デバッガで BRKON INT 21 AH=3D としておくとfile openで止まるので、pri cst するとどのファイルを開くとこかわかるようになってます。

返信
2020-07-23 07:23:35

山川機長
ID:MmJhMTMzO

>> 返信元

おおなるほど!きっとそれです!はて、なんでSTATUSが後だと思ったんだったかな?とりあえず今日試してみますね。ありがとうございます!

返信
2020-07-22 20:25:42

WINDY
ID:NDI2YWQ1Z

>> 返信元

SCSIにそんなに詳しい訳では無いのですが、WEBの資料を見る限りバスフェーズの遷移はバスフリー→アービトレーション→セレクション→コマンド→データイン/アウト→ステータス→メッセージイン→バスフリーとの事です

返信
2020-07-22 14:40:30

山川機長
ID:MmJhMTMzO

>> 返信元

こっちは深夜なもんで明日トライしますが、SCSIのフェーズってSTATUS Phase -> MESSAGE_IN Phaseの順でしたっけか?SCSIの仕様書でMESSAGE_INが先とあったと思ったのですが、DOS6はコマンド終了時 [0196:0CB6H]が7であることを期待しているようなのですが、このバイトはCOMMANDフェーズで1とORされて、STATUSフェーズで3とORされて、MESSAGE_INフェーズでは、ビット1が立っている場合のみ4とORされるので、MESSAGE_INが先に来るとビット3が立たないままになるようです。

返信
2020-07-22 13:24:04

WINDY
ID:NDI2YWQ1Z

すみません、下の書込ですが今すぐにどうにかならないかという意味ではなく、将来的にRS232Cよりも高速で簡単に実現できる物が作れたらという意味合いです。山川機長さんの手を極力止める事はせず何とか実現したいものです。

返信
2020-07-22 12:48:52

WINDY
ID:NDI2YWQ1Z

>> 返信元

Towns←→津軽のデータ送受信に関してはホスト側はともかく実機側が19.2kまでしか対応していない事が問題かも知れませんね。数メガバイト程度のデータであればまだしもHDDイメージとかCD-ROMデータとかを考えると他の手は無いのかと常々思っていました。しかしながら実機側で持っている他のI/Fはプリンタポート,Joystickポートx2,JEIDAカード,汎用バス,外部FDDポート位でしょうか?

返信
2020-07-22 11:57:18

山川機長
ID:MmJhMTMzO

>> 返信元

了解しました!現在、大きなファイルをTownsのHDDイメージとやりとりできるように、RS232CとXMODEMを実装しているので、それが済んだら僕も見てみます。WINKから出した文字をホストで受け取れるところまで出来ました。需要があるかわからないですが、FM-7実機再稼働プロジェクトではXM7がRS232Cまでエミュレートしてくれていて非常に助かったので、一応本物のCOMポートにフォワードする機能も追加しようと思ってます。

返信
2020-07-22 03:06:42

WINDY
ID:Y2QzMTc1M

>> 返信元

自己レスです
nabe@abkさんの推測通り、TVRAMにはデータが書かれています。
"Starting MS-DOS..."の表示ルーチン以降で異常と判断している模様です

返信
2020-07-21 17:56:22

WINDY
ID:NDA3YjlkN

>> 返信元

おお! ある意味Townsを代表するアプリケーション群ですので、楽しみです。
しかし、まあ、故意にページフォルトを起こさせる手を思いつく辺りがすばらしい発想であり
なんでもアリな893的な所がWINDOWSには無い醍醐味でも有るわけですが。

返信
2020-07-21 10:14:53

WINDY
ID:NDA3YjlkN

>> 返信元

ようこそ、nabe@abkさん。Free386及びINSIDE TownsOSの資料は個人的にではありますが興味深く拝見させていただきました。
では、TVRAM領域に"Starting MS-DOS..."が書かれている事を確認してみます。
CPU速度を上げても文字データが書かれているとするとそこから後という事が判明するかと思います。

返信
2020-07-21 10:10:41

山川機長
ID:NGYwMzdmO

>> 返信元

その可能性は大ありですね。Towns OS V2.1ではFM音源割り込みで字を書いてますね。津軽初期のころ、YM2612は実装しなくても字ぐらい出るだろうと思っていたら(INT 21Hで画面をリフレッシュしてるものと思っていた)、なぜか画面が出なくて、予定外に早いうちにFM音源のタイマーだけ実装しなくてはならなくなりました。考えてみるとMSDOS.SYSに手を入れたくなかったんでしょうね。

返信
2020-07-20 23:50:24

山川機長
ID:NGYwMzdmO

週末を使って、ついに!CPUコアの最小限の例外処理とCD-ROMの修正でFractal Engine Demoが走るようになりました!数カ所画面が崩れますが、まだ我がCPUコアが完全じゃないんでしょうね。リリースはまだしてないですが、ソースはGithubに上がってます。なおPCM音源の処理も直したので(Libble RabbleのBGM完璧)多分Prince of Percia 2のサウンド問題も直っているのではないかと思います。多分、水曜か木曜に新しいリリースを出します!

返信
2020-07-20 23:41:59

nabe@abk
ID:OGE4YjJlZ

>> 返信元

CPU速度を遅くすると表示されるのは、テキストVRAMエミュレーション領域にテキストが書き込まれて、それがVRAMに反映する前に何らかの原因でフォールトしているものが、CPUが遅くなったおかげである程度まで反映されているという挙動ではないかと感じます。
調べたわけではないので的外れかもしれませんが……。

返信
2020-07-20 09:01:13

山川機長
ID:NGYwMzdmO

>> 返信元

おおなるほど!貴重な情報をありがとうございます!タイミング問題の可能性は大ありですね。資料が限られているので、実行しながらTownsOSが期待する動作をするように調整してきたので、DOS6だと何か違っているのかもしれません。調べてみます。

返信
2020-07-20 02:59:44

WINDY
ID:ZjVmMTQwN

>> 返信元

アドバイスを有り難うございます。ボチボチやりたいと思います。
1点だけ気になったことが有りますので報告をしておきます。
HDDにDOS6onTOS(うんづで使っていたもの)を接続した状態で、CPUの周波数が25MHzだと確実に
スクリーンには一切の文字が表示しないのですが、1MHzにするとDOS6開始時の"starting MS-DOS..."が
表示され、その後"システム読み込み中に異常が発"まで表示してストップします。
上記から考えるとSCSIのコマンド等の問題ではなくタイミングの問題のような気がします。

返信
2020-07-19 22:55:15

山川機長
ID:OGE1Njk0Y

>> 返信元

デバッガを使っていただけるのでしたら、-SYM symfile.txt オプションを追加しておくと、ADDSYM, ADDREM, ADDLABコマンドなどを使ってシンボルやラベルを追加して記録できるので解析が楽になります。また、MOV DX,04C0Hみたいな行に対して IMMISIO コマンドを使うとI/Oの意味をコメントとして表示するようになります。それから、ジャンプテーブルのようにコードの中にデータが混じってる場合は、DEFRAWコマンドで指定することで逆アセンブルがずれなくなります。よかったらお試しください。

返信
2020-07-18 02:27:15

Type.D
ID:NWM5MzExZ

>> 返信元

一応貼ってみるとこんな感じです
00100000 56 33 31 4C 33 35 00 00 39 33 2F 31 30 2F 31 35|V31L35 93/10/15
なんかL35と日付が同じで謎ですが、マウスインテグレーションの件了解です!

返信
2020-07-17 20:33:12

WINDY
ID:ZGNmNDQ1M

>> 返信元

DOS6のSETUP2.EXEを抽出して逆アセにかけたのですが、実行時圧縮がかかってたので
時間も無かったので報告だけ先に入れさせてもらいました。
SCSIのI/Oポートにトラップをかけてデバッガで追ってみます。(リハビリも兼ねて)

返信
2020-07-17 08:38:50

NG表示方式

NGID一覧