FreeDOS(98) unstable kernel 近況 (2015-07-24)

「いちおう」フロッピーディスクの読み書きに対応。

フォーマットしたフロッピーに付属の sys コマンドでシステムを転送すると FreeDOS(98) のブートディスクが作れます。
いちおう、というのもアレなんですが、アクセス速度がクッソ遅い(特に実機だと)というのが最大の問題点です。理由はいくつかあって、

  1. メディア入れ替え検出を行っていない(DOS に対して常に「入れ替え不明」を返す)
  2. 常に1セクタ単位でしか読み出さない

といったあたりが…まあつまり実装の手抜きです…。
エミュレータ上なら幸い(?)速度的にはあまり気になりません。まあ 98 系の実機をお持ちでなおかつ人柱精神旺盛な方は、実機でブートして、フロッピーディスクに dir コマンドかけてみるといいさ…2DD が超オヌヌメ…。

ところで、フロッピーへの転送は PC-98(系のエミュ)でなくても行えます(ハードディスクへのシステム転送は処理の過程で PC-98 のディスク BIOS を呼び出しているため、機種依存です)。あとはハードディスクの初期化と領域設定用のツールがあれば、純正 MS-DOS なしでも FreeDOS(98) の起動システムをどうにか作ることができるのですがね…。

FreeDOS(98) unstable kernel 近況 (2015-07-04)

twitter だけじゃなくてたまにはこっちにも書くか…、的な気分で。

いちおうちまちまと作業を進め、

といったあたりに対応してみました。

カーネルのソースとバイナリも一応あげときました。適当にどうぞ。

肉≒若さ

ラーメン屋でべつにチャーシュー麺でもないのにチャーシューが複数枚乗っかってるラーメンが出てくると「もうチャーシュー1枚でいいから、いやいっそなくてもいいから50円くらい安くなりませんかね…?」とか心の中で思ってしまうほどに肉恋しさ(ん?)が薄れている最近の自分。
でもチャーシューなしですこし安め(あるいは麺大盛)ってよくある「学生ラーメン」な気がしないでもない…。

俺と Linux (debian jessie) とサウンド設定…

正直ほんとにわからない(諦念微笑)。
とりあえず alsa がどうとかだっけ?みたいな曖昧な記憶があったのであらかじめ alsa-base, alsa-tools, alsa-utils あたりを何も考えずに突っ込んでおいてから sudo alsamixer でミキサーの設定。何しろ初期状態でほぼ全部のチャンネルがボリューム 0、ミュート ON みたいな状態になってやがる。ミキサーをいじらないとほんとに音でない。ちなみに VirtualBox 3.2 内で動かしていたのでオーディオコントローラは ICH AC97 です。

で、np2 の音は鳴ったんですが、ちょっと挙動に不安を感じさせるものがあったのですよね。こんな感じで…

結局 pulseaudio を入れたら underrun は出なくなったので、あまり追求しないことにしました。今後は最初からそれなりにオーディオ周りの設定してくれるウィンドウマネージャを使ってゆきたい…。

ちなみに alsamixer は sudo るのと sudo らないので設定項目にだいぶ差がありました。そういうもんなんでしょうか…。

(しかし GUI のミキサーよりコンソール版のほうがはるかに使いやすい気がするなあ。キーボードで動かせるからすごい軽快)

debian jessie で np2 (0.84) をコンパイルしてみた、的なメモ

当方 debian っちゅうか Linux 全般の知識ほぼ皆無なので自分用の覚書。ちなみに amd64 版の mini.iso 使ってデスクトップ環境なしで最低限のインストールを行ったのち sudo と xorgtwm を入れた状態からスタート。

必要なパッケージ(ツール)

build-essential
いろいろコンパイルに必要
subversion
np2 のソース取得に必要
autoconf, automake, libtool
configure と Makefile 作成(libtool は要らないかも?)
nasm
x86 コードのアセンブルに使う
unzip
np2tool の展開に必要(意外と忘れる)

ライブラリ

libgtk2.0-dev
gtk2 のライブラリ
libsdl-mixer1.2-dev
SDL_mixer のライブラリ(ほんとは libsdl1.2-dev があれば必須ではない。ついでに言うと音出なくていいなら libsdl1.2-dev 自体必要ではない)

以上を sudo apt-get install で引っ張ってくる。

で、np2 0.84 のソースを取ってくる。

$ svn co http://amethyst.yui.ne.jp/svn/pc98/np2/tags/VER_0_84 np2-0.84

取ってきたら autogen.sh を実行して configure と Makefile 作成。

$ cd np2-0.84/x11
$ ./autogen.sh

あとは例によって例のごとく、configure して make。

$ ./configure --enable-build-all

$ make

んでいちおう完成。わーい。


その他メモ:

  • $(HOME)/.np2 にフォントと BIOS の ROM データ入れると読んでくれるんですが、フォントのほうは大文字(FONT.ROM)、BIOS のほうは小文字 (bios.rom) にしないとダメみたい。
  • SDL のオーディオドライバの設定に失敗して音が鳴らなくなると xnp2 のサウンドドライバの設定が外されてそれ以降 SDL を使わなくなることがある(もちろん音は出ない)。Device メニューから Sound option を選んで設定ダイアログの Driver タブをクリック、Sound driver が SDL になっているか確認する。