サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  

このページの内容はもう古いです。osa_dir2 を利用すれば、make run 一発でおしまいです。

0. はじめに

フリーの x86 シミュレータ bochs とディスクイメージがあれば、PC1台で効率的に OSASK アプリを作ることができます。私がいろいろ試した軌跡を残しておきます。introシリーズを読みながらやるといいと思います。

Page Top

1. 用意するもの

Page Top

1.1 Bochs

がじぇっとボックス版Bochs

VESAによる256色表示可能なBochs(2.0.2ベース)

D:\bochs(例)にインストールします。本家 bochs は VGA 回りにバグがあるので初心者にはおすすめしません。

Page Top

1.2 アプリケーションのソースファイル

D:\WABA(例)に作成します。以下WABAの部分を適当に読み替えてください。

Page Top

1.3 各種コンパイル&リンクツール

tolset07

download

以下のファイルを D:\OSASK\BIN(例)にコピーします。

  • aska.exe
  • bim2bin3.exe
  • cc1.exe
  • cpp0.exe
  • gas2nask.exe
  • golib00w.exe
  • imgtol.com
  • make.exe
  • nask.exe
  • naskcnv0.exe
  • obj2bim3.exe
  • osalink1.exe
  • sjisconv.exe

以下のファイルを D:\WABA\lib にコピーします。

  • gg00libc.lib
  • golibc.lib

以下のファイルを D:\WABA\include にコピーします。

  • guigui00.h
  • 他のヘッダファイルは必要に応じて
Page Top

1.4 各種設定ファイル

D:\WABA\Makefile

TARGET     = waba
STACKSIZE  = 100k
MALLOCSIZE = 100k
MMAREA     = 100k
# 以上4つはソースごとに書き換える
INCPATH  = ./include
RULEFILE = guigui00.rul
MAKE     = make
SJISCONV = sjisconv
CC1      = cc1
GAS2NASK = gas2nask
NASK     = nask
OBJ2BIM  = obj2bim3
BIM2BIN  = bim2bin3
# 以上の項目はあなたのディレクトリ構成にあわせて書き換える
ALL :
    $(MAKE) $(TARGET).bin
%.ca : %.c Makefile
    $(SJISCONV) -s $*.c $*.ca
%.gas : %.ca Makefile
    $(CC1) -I$(INCPATH) -Os -quiet -o $*.gas $*.c
%.nas : %.gas Makefile
    $(GAS2NASK) -a $*.gas $*.nas
%.obj : %.nas Makefile
    $(NASK) $*.nas $*.obj
%.bim : %.obj Makefile
    $(OBJ2BIM) @$(RULEFILE) out:$*.bim stack:$(STACKSIZE) map:$(TARGET).map $*.obj
%.bin : %.bim Makefile
    $(BIM2BIN) in:$*.bim out:$*.org malloc:$(MALLOCSIZE) mmarea:$(MMAREA)
    $(BIM2BIN) in:$*.org out:$*.bin -osacmp -tek0
clean :
    del $(TARGET).map
    del $(TARGET).org
    del $(TARGET).bin

D:\WABA\guigui00.rul

format:
    /* このセクションでリンクの方針を記述 */
    code(align:1, logic:0x48,      file:0x48);
    data(align:4, logic:stack_end, file:code_end);
file:
    /* このセクションでコマンドラインに書ききれなかった
        .ojbファイル、.libファイルを記載 */
    /* なお、このセクションはフルパスで書いてもよい。 */
    /* 例:  c:/osask/guigui00.lib;  */
    lib/gg00libc.lib;
    lib/golibc.lib;
label:
    /* 必ずリンクしなければいけないラベルを指定 */
    /* エントリポイントを指定すればいいと思ってください */
    _OsaskMain;
    /* 上記3セクションの順序は入れ替えてはいけません! */

D:\WABA\mkwaba.bat

@echo off

set BAK=%PATH%
set BIN=d:\osask\bin

set path=%BAK%;%BIN%
del waba.bin
del waba.map
del waba.org
make

set path=%BAK%
Page Top

2. コンパイルとリンク

D:\WABA>mkwaba.bat

うまくいけば D:\WABA\WABA.BIN ができるはずです。

Page Top

3. ディスクイメージの用意

OSASK/AT ver.4.1

download

OSAIMGAT.BIN を D:\ にコピーします。

prompt>imgtol e d:osaimgat.bin d:debugfd.bin 1440
prompt>copy debugfd.bin d:\bochs\osaimgat.bin

上記の操作で1440KBのディスクイメージが作成されます。

Page Top

4. Bochsの設定と起動

D:\bochs\boshsrc.txt

romimage: file=bios/BIOS-bochs-latest, address=0xf0000
megs: 32
vgaromimage: bios/VGABIOS-lgpl-latest
floppya: 1_44=osaimgat.bin, status=inserted
boot: floppy
floppy_bootsig_check: disabled=0
log: bochsout.txt
panic: action=ask
error: action=report
info: action=report
debug: action=ignore
debugger_log: -
vga_update_interval: 300000
keyboard_serial_delay: 10
keyboard_paste_delay: 100000
floppy_command_delay: 500
ips: 1000000
pit: realtime=1
mouse: enabled=0
private_colormap: enabled=0
fullscreen: enabled=0
screenmode: name="sample"
keyboard_mapping: enabled=0, map=
i440fxsupport: enabled=0

これで bochs を起動してみましょう。うまくいけばそんなに待たずにOSASKが起動するはずです。

Page Top

5. ディスクイメージの書き換え

Disk Explorer

download

上記のツールで OSAIMGAT.BIN を開き、先ほど作成した WABA.BIN をコピーします。ディスクイメージを開くときは bochs を止めておきましょう。書き換えが終わったら再度 bochs を起動して動作を確認しましょう。

Page Top

6. デバッグ

  • WABAではデバッグにcprintfを使っています。
  • 自分も使ってみたいひとはWABAのソースを一通りダウンロードして眺めてみましょう。
  • デバッグのヒントは OSASK_Faults にあります。
  • General Protect 0007:00XXXX の XXXX を WABA.map で探すと落ちた場所がだいたいわかります。
  • General Protect が出たらバイナリーエディタでWABA.orgを開き、0x010-0x013 をチェックします。
Page Top

こめんと欄

  • とりあえずできた。校正、追加、修正大歓迎です。 -- ベイサイド 2003-10-21 (火) 11:48:47
  • rulファイルでの、lib/lccwin32.lib;の記述はいりません。有害なので消しましょう。 -- K 2003-10-21 (火) 15:19:28
  • 消しますた。 -- ベイサイド 2003-10-21 (火) 17:15:37
  • 多分bochsの方の操作でイメージ外しておけば、bochs起動したまんまでもイメージに書き込めるんじゃないかな。で、書き込み終わったらまた入れ直す。 -- 名無しさん 2003-11-11 (火) 23:04:04
  • うわぁぁん! 先にやられてしまった! おつかれさまー。 (^^) -- hideyosi 2004-01-23 (金) 17:22:28
  • 本家にはバグ: がーん!そうなんですか?そいえば、つい最近バージョンアップしたようですが(2.1?)やっぱりバグがあるまんまなのかな?(試してみよう・・・) -- hideyosi 2004-01-23 (金) 17:23:56
  • ムズ( ^ ^ ; -- zizi 2004-07-22 (木) 10:41:04

一般用コメント一覧

一般用コメント欄は使用できません
トップ   凍結解除 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01 2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。