FreeDOS(98)進捗どうですか

自分用の大雑把な作業記録です(というか、他の人に意味があるのだろうかこれ…) ソース https://github.com/lpproj/fdkernel ディスクイメージや関連ツール http://bauxite.sakura.ne.jp/software/dos/freedos.htm ※他の人のツイートやリプを含むツイートは入れてないです、まあ一応… 続きを読む
4
sava @lpproj

誰もきいてない近況:改造FreeDOSカーネルを野良ビルドしたらブート時の動作がおかしくて理由がわからず困惑していたが、コンパイラを古いの(OW1.9→1.8)にしたらふつうに起動してさらに困惑が深まる、など…

2015-03-31 19:35:44
sava @lpproj

何が違うのかと思ってwdisの出力をぬべーと比較してみたが、1.9のほうが同サイズのsignedとunsignedを比較する際により大きいsigned型に拡張してるか否か、くらいしか違いがなかった…(そんな影響出るとこでもないはずだが…レジスタは保存されてるし…)

2015-03-31 19:40:03
sava @lpproj

(実際、signed charとunsigned charの比較してた箇所を両方ともunsigned charにしたら1.9でコンパイルしても一応まともに起動したんですけどね。ただソース全部確認したわけじゃないからまだ不安が…)

2015-03-31 19:52:39
sava @lpproj

誰もきいてない近況2:コンパイラのオプションひとつ削ったら胡乱な挙が出なくなったが理由が不明なので「偶然動いてる」だけかもという不安が拭えない。両方のasm出力の査読とか…(白目)

2015-04-05 20:18:17
sava @lpproj

@lpproj (ちなみにopenwatcomの-rオプション(関数内でセグメントレジスタ使うときはpush/pop入れる)です。保存する方が動作あやしいってのが何と言うか困るのです…)

2015-04-05 20:34:51
sava @lpproj

誰もきいてない近況3:オプション変えようがダメなものはダメ。うん…知ってた…

2015-04-06 21:28:03
sava @lpproj

誰もきいてない近況4:やっぱ場当たりにやってもダメだな…とりあえず昔のOpenWatcomより今のほうが最適化性能は高いっぽい(1.6→1.7での差が比較的大きめ)ことはなんとなく感じられた…

2015-04-07 22:43:51
sava @lpproj

誰もきいてない近況5:今まででいちばん有望な不具合原因(日本語ヘン)らしきものにたどり着いた…かも…。しかしきちんと確認しないとまたぬかよろこびである…夜は寒いから今日はもうやめよう…

2015-04-09 23:12:56
sava @lpproj

誰もきいてない近況6:根本的問題点のコードレベルでの位置特定には至らないが、対処法については確定してもよさそう。bochsのGUIデバッガーを生まれて初めて活用した気がする…

2015-04-12 22:04:34
sava @lpproj

誰もきいてない近況7:拍子抜けの結末。お、俺の2週間は…

2015-04-12 22:57:11
sava @lpproj

誰もきいてない近況7:結局カーネルの現状にツール(exeflat)が追随できていなかったのが問題だったようdeath…

2015-04-12 23:33:32
sava @lpproj

ありがたくも取り込まれていたようだ…

2015-04-14 12:42:13
sava @lpproj

ふむ、だいたい期待通りに動いている、かな…… pic.twitter.com/u9UUNPbL0Z

2015-04-14 19:47:34
拡大
拡大
sava @lpproj

と思ったらexdebが落ちた…NEC純正MS-DOSやIBM PC版FreeDOS上だとふつーに使えるのでFreeDOS(98)固有部分か…うーん…… pic.twitter.com/lCTQCDONGQ

2015-04-14 19:51:48
拡大
sava @lpproj

ああ、そういえばFDも動かなかったんだった…面倒なことになってきた…

2015-04-14 20:04:41
sava @lpproj

チラ裏:freedosをopenwatcomでビルドするとき、CFLAGSに-rオプションつけないほうがサイズがわずかに(100バイト程度?)小さくなるんだけどfreedos(98)だと逆にでかくなる。うーんfarポインタの使用頻度なのだろうか…

2015-04-15 19:30:30
sava @lpproj

誰もきいてない近況(98)その1:どうにかFreeDOS(98)でFDを起動できるようになった…カーソル位置取得エスケープシーケンス(ESC[6n)のサポートが必要だったようです… pic.twitter.com/MaoWe37al9

2015-04-17 20:50:29
拡大
sava @lpproj

@lpproj (あとコンソールドライバ内のキー入力フラッシュ処理を少しまじめにやらないと入力がチャタリまくりでつらかった。DOSのキー入力まわりはFEPとの兼ね合いもあって意外とバッドノウハウの沼なのでは…)

2015-04-17 20:54:55
sava @lpproj

誰もきいてない近況(98)その2:ESC[6nサポートしたらexdebも起動「は」できたが表示がおかしい(画面上部のカーソルがお分かり頂けただろうか…)。そしてすこし使ったらやっぱり固まった。98コンソールの闇は深い… pic.twitter.com/91cUFUgZmk

2015-04-19 15:37:56
拡大
拡大
sava @lpproj

ということでFreeDOSとFreeDOS(98)の開発版カーネル上げてみる d.hatena.ne.jp/lukewarm/20150…

2015-04-19 18:55:54
sava @lpproj

そういやFreeDOS(98)+NEC純正command.comの組み合わせだとF1とかF3とかの簡易ヒストリ的なのが使えないんだよな…DOSのファンクションコール経由だと同じキーコードを返すのでいったい何が違うのか…

2015-04-20 19:31:17
sava @lpproj

誰もきいてない近況(98)その3:CONドライバ直接たたいて調べたらINPUT STATUSは常にBUSY=0だな…(つまりキー入力の有無はINPUT STATUSコマンドでは調べられない)

2015-04-26 16:33:40
sava @lpproj

@lpproj とするとキー入力有無の事前検知にはNON-DESTRUCTIVE INPUT NO WAITコマンドを使うしかないのだが、こいつファンクションキーを押下してる間は無反応なんだ…押して離すと入力有と返す…どういうこと…

2015-04-26 16:37:23
sava @lpproj

@lpproj (ちなみにふつうにINPUTコマンドでキー入力取るとファンクションキー押下直後からちゃんとキーコード取れるんだぜ…)

2015-04-26 16:39:04
sava @lpproj

@lpproj (さらにSHIFT+ファンクションキーのときはふつうのキーと同じ扱いで押した直後から反応する…やはり98のコンソールドライバには闇を感じる…)

2015-04-26 16:50:51
1 ・・ 19 次へ