[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 2089] Re: OSASK/TOWNS を直接起動させるには



小柳です。

川合さんの返事からかなり時間がたってしまいましたが、試してみました。
まだうまく行っていません。

作業したファイルを
http://homepage1.nifty.com/dreaming/osask/tboot.lzh
に置きました。

bootsect.S : Linux のブートセクタファイルを OSASK に合わせて変更したもの
bootsect   : 生成されたブートセクタ
conv.c     : Linux 生成されたカーネルからブートセクタを読み込み、また
             OSASK.EXE を読み込んで加工して 1.2MBのFDイメージを生成する
             コンパイル/実行は Linux で行った
osask.exe  : OSASK/TOWNS ver.1.6
tbootimg   : conv.c が生成したブートイメージ

Hidemi KAWAI wrote:
> 
>   こんばんは、川合です。
> 
>   プログラムの変更のしやすさから言えば、FD:0x01800以降にOSASK.EX
> Eを加工したものをおいて、FD:0x01400を0x00にすればやりやすいと思
> います。その他のFD:0x00200〜FD:0x017ffは、何を書いておいてもいい
> ですし、どこにロードしてもかまいません(ロードしなくてもいいです
> が)。このOSASK.EXEの加工についてですが、

conv.c ではまず bootsect.S が生成したカーネルのブートセクタを読み込み、
さらに 0x1600 から osask.exe を読み込んで加工しています。

> 1.0xb0000からの512バイトを0x90000へ転送
> 2.FD:0x00000からの1024バイトを0x90000へ転送("It's very Dangero
>     us"・・・笑)
> 3.FD:0x00400からの2048バイトを0x90400へ転送
> 4.0x90a00からの512バイトを0x10000へ転送
> 5.FD:0x00c00からの5120バイトを0x10200へ転送
> 6.FD:0x02000から[img_size]に書かれた分が終わるまで0x11600へ転
>     送
> 7.0x90200にジャンプ

これから、Linux のカーネルイメージの読み込む場所である 0x10000
を 0x7200 にすれば丁度 FD:0x01800 が 0x8000 に来ると考えました。
またブートセクタのイメージ読み込みサイズを 128KB にしています。

tbootimg を FD に書き込んで、ブートしたところ
 8回ディスクアクセスした後、ブザーが鳴りっぱなし状態になってしまいまし
た。
128KB = 16KB * 8 なので、OSASK.EXE の読み込みは行っていると思いますが、
何が間違っているのか私には分かりません。

-- 
小柳 雅明(Koyanagi.Masaaki !Atmark! nifty.ne.jp)
「人の足を止めるのは"絶望"ではなく"諦観"
  人の足を進めるのは"希望"ではなく"意志"」
                  -- ARMS