2: 2003-10-21 (火) 00:19:16 [6] | 3: 2004-01-23 (金) 10:47:55 [7] | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | しばらくは編集綻なので、見てもなんの意味もありません。 | + | *0. はじめに |
- | *用意するもの | + | フリーの x86 シュミレータ bochs とディスクイメージがあれば、PC1台で効率的に OSASK アプリを作ることができます。私がいろいろ試した軌跡を残しておきます。introシリーズを読みながらやるといいと思います。 |
- | **Bochs | + | *1. 用意するもの |
+ | |||
+ | **1.1 Bochs | ||
がじぇっとボックス版Bochs | がじぇっとボックス版Bochs | ||
- | **OSASKのソース | + | [[download:http://ebisa.hp.infoseek.co.jp/bochs/index.shtml]] |
- | 小籾さんのサイトからOsask4.1をダウンロード | + | D:\bochs(例)にインストールします。本家 bochs は VGA 回りにバグがあるので初心者にはおすすめしません。 |
- | **各種コンパイル&リンクツール | + | **1.2 アプリケーションのソースファイル |
- | OSASKのページからtolset?をダウンロード | + | D:\WABA(例)に作成します。以下WABAの部分を適当に読み替えてください。 |
- | *コンパイルとリンク | + | **1.3 各種コンパイル&リンクツール |
- | @echo off | + | tolset07 |
- | set BAK=%PATH% | + | [[download:http://www.imasy.or.jp/~kawai/osask/developers.html]] |
- | set BIN=d:\osask\bin | + | |
- | set path=%BAK%;%BIN% | + | 以下のファイルを D:\OSASK\BIN(例)にコピーします。 |
- | del waba.bin | + | |
- | del waba.map | + | |
- | del waba.org | + | |
- | make | + | |
- | copy waba.bin A:\ | + | |
- | set path=%BAK% | + | -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 にコピーします。 |
- | prompt>im2 | + | -gg00libc.lib |
- | 犬?/% | + | -golibc.lib |
- | ? | + | 以下のファイルを D:\WABA\include にコピーします。 |
- | O掌a? とリンク | + | |
- | @echo off | + | -guigui00.h |
+ | -他のヘッダファイルは必要に応じて | ||
- | *ディスクイメージ[[Disk Ex とrer:http://hp.vector.co.jp/authors/VA013937/]]ジの書き換え | + | **1.4 各種設定ファイル |
- | *Bochsのfloppya=: 1_44=im2 | + | D:\WABA\Makefile |
- | と気ナリ妊?ジの与でhogep | + | |
- | dを開き、0x010-0x013かちェ?犬 | + | |
- | りと起動ーヒ鵐冏は [[鵐??Faults]] に覆鵑琉婢に覆鵑oん | + | TARGET = waba |
- | B欄 | + | STACKSIZE = 100k |
- | #comment | + | MALLOCSIZE = 100k |
- | >>>>915951 | + | MMAREA = 100k |
- | *0. は**B瓩 | + | # 以上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 | ||
- | ふリ妊の x86 シュミレ妊? 肇椒\ *コ犬陵儖 | + | D:\WABA\guigui00.rul |
- | *ディス?ん譴弌?C1台で効率?? クツ_ アプリを作 | + | 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セクションの順序は入れ替えてはいけません! */ | ||
- | 海八覆任⑯婢ぁ?Z | + | D:\WABA\mkwaba.bat |
- | と気ナリ妊?ジの与でhogep | + | |
- | dを開き、0x010-0x013かちェ?犬 | + | |
- | りと起動ーヒ鵐冏は [[鵐??Faults]] に覆鵑琉婢に覆鵑oん | + | @echo off |
- | B?1 | + | |
- | ??廚鮖?1 | + | |
- | 討?吠んの?ntroリ | + | |
- | >>>困鯑匹瀏か?の?Fa箸いい隼廚いんの以ん1. | + | |
- | **各種コンパイ1.1 ル&リンクツール | + | set BAK=%PATH% |
- | + | ||
- | OSASKのページか?[download | + | |
- | と気ナ?bisa.蠻?nfoseek与でhog?oge/index.shtml0-0xD: | + | |
- | *Boch(例) ?ml0-二、0?\bi討?鯑匹l?郁?p | + | |
- | dを穫 VGA 回?にコ鍵?船щのサ初心者クハんすすめ?鯑票ド | + | |
- | + | ||
- | **灰襦2[鵐??ケbi瞳ョンウンロー | + | |
- | + | ||
- | ぁap | + | |
- | *BochWABA ?ml0-作成?鯑匹lぐ焚?ABAの部分を適当にか?替え吠くだ灰鵑 | + | |
- | + | ||
- | **灰襦3 PATH% | + | |
set BIN=d:\osask\bin | set BIN=d:\osask\bin | ||
- | BIN% | + | set path=%BAK%;%BIN% |
- | 07ownload | + | del waba.bin |
- | と気ナ?bisawww.imasyに | + | del waba.map |
- | hoge~kawai/ | + | del waba.org |
- | *Boc/deve呶?rs.-0xD: | + | make |
- | *B以下ウ | + | |
- | ぁap | + | |
- | を och箸 [\ | + | |
- | ?ml0-導ピ気シ以ん1. | + | set path=%BAK% |
- | -Boca.exe | + | |
- | -bim2]] 3.exe | + | |
- | -cc1.exe | + | |
- | -cpp0.exe | + | |
- | -gas2nBoc.exe | + | |
- | -golib00w.exe | + | |
- | -[[Diskog? | + | |
- | -鵐 | + | |
- | .exe | + | |
- | -nBoc.exe | + | |
- | -nBoccnv0.exe | + | |
- | -obj2]]m]] 3.ex[\ | + | |
- | ぁap | + | |
- | を och箸 [\ | + | |
- | ??\exe ぅ薫覆?. | + | |
- | -Boca.exgg00exec.exe00w.exec.exe0 | + | |
- | ぁap | + | |
- | を och箸 [\ | + | |
- | ??\include ぅ薫覆?. | + | |
- | -Boca.exguigui00.h | + | |
- | -他p | + | |
- | 悗? を och箸鷲?廚鳳?Kて PATH%4 set ?亜 *BochWABA ?ml0\M | + | |
- | -nfilex TARGET = STACKSIZE = MALLOCSIZE = MMAREA = # 以上4つは | + | |
- | ぁap | + | |
- | ごい麕d寮瀋蠅箸 | + | |
- | INC set = RULEFILE = MAKE = CC1 =-c | + | |
- | GAS2Nツ_F=-g | + | |
- | Nツ_F =-g | + | |
- | OBJ2BIM =あ OBJ2M =N]] 3e | + | |
- | -cc1.e以上4つい旅猝椶鯑△隼燭?013れIN% | + | |
- | m構焚爾鮑鈿?[督蠅箸 | + | |
- | INC CSI : | + | |
- | =$( ) | + | |
- | $(ET )の*/% | + | |
- | %.ca : | + | |
- | %.c filex TA =$(CONV =%.e | + | |
- | - : | + | |
- | %.ca filex TA =$( ) -I$(set =- $*.c% | + | |
- | %.n | + | |
- | - : | + | |
- | %.e | + | |
- | - filex TA =$(Nツ_F=- $*.n | + | |
- | -% | + | |
- | %..ex : | + | |
- | %.n | + | |
- | - filex TA =$(F=- $*..ex% | + | |
- | %.e | + | |
- | - : | + | |
- | %..ex filex TA =$(BIM =- ん?k:$(CSIZE =%.e | + | |
- | n : | + | |
- | %.e | + | |
- | - filex TA =$(J2M =N) in:$*.e | + | |
- | - out:$*. x8o olloc:$( SIZE =$(J2M =N) in:$*. x8oout:$*.e | + | |
- | n 城6]cmp -tek937clean : | + | |
- | =リン$(ET ) op | + | |
- | =リン$(ET )?echo=リン$(ET )???ml0\M | + | |
- | -nui00.rul | + | |
- | MAK | + | |
- | format: | + | |
- | =/* 婢のセIN%ー | + | |
- | ぁ | + | *2. コンパイルとリンク |
- | BINの方?? : | + | D:\WABA>mkwaba.bat |
- | =gn:1, logic:0x48, | + | |
- | GAS2$:0x48);螢?(ETata([\ | + | |
- | gn:4, logic:(CSIZ_end,2$:code_end);螢$:* 婢のセIN%ー | + | |
- | ぁ | + | うまくいけば D:\WABA\WABA.BIN ができるはずです。 |
- | BINの灰漲?疋??磯 | + | *3. ディスクイメージの用意 |
- | INCNCN?13?ow? 婢の領領.ojb ?ml0\M、 | + | |
- | を[\ | + | |
- | ??\in記載 */* 婢のセIN覆??%ー | + | |
- | ぁ | + | OSASK/AT ver.4.1 |
- | BIN?\ | + | [[download:http://www.imasy.or.jp/~kawai/osask/download.html]] |
- | ? | + | |
- | 垢瓷餝ン鵐蹇 set */* 婢のセI1. Г?:-0xD: | + | |
- | *l | + | |
- | MAK | + | |
- | f を; */* 婢の を/e00w.exec.ex;* 婢の を/eo.exec.ex;* label:* 婢のセI必ず諒l??覆衛鵐儚ン?覆ぅ?戮\in指定 */* 婢のセIふン下をポl?郁?n指定襦2鵐儚ン各種コ? PATH% | + | |
- | s */* 婢の_et BAMain;* 婢のセI上記3 | + | |
- | ぁ | + | OSAIMGAT.BIN を D:\ にコピーします。 |
- | BIN僚臀脇豎ル? P漏ン?ツ_ケ! */*-nui00.rumkボ?>iataba.bin A:\ | + | prompt>imgtol e d:osaimgat.bin d:debugfd.bin 1440 |
+ | prompt>copy debugfd.bin d:\bochs\osaimgat.bin | ||
- | set path=%BAK% | + | 上記の操作で1440KBのディスクイメージが作成されます。 |
- | *ディスクイメージの用意 | + | *4. Bochsの設定と起動 |
- | prompt>im2 | + | D:\bochs\boshsrc.txt |
- | 犬?/% | + | |
- | ? | + | romimage: file=bios/BIOS-bochs-latest, address=0xf0000 |
- | O掌a? とリンク | + | 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 | ||
- | @echo off | + | これで bochs を起動してみましょう。うまくいけばそんなに待たずにOSASKが起動するはずです。 |
- | *デ2. .org | + | *5. ディスクイメージの書き換え |
- | make | + | |
- | copy wabanui00.r>mkボ?>iatabうNツ?ン??lude ぅ?ude分?incl????寮瀋蠅筏???垢離??- | + | |
- | \ | + | |
- | ?AT ver.offad | + | Disk Explorer |
- | と気ナ?bisawww.imasyに | + | |
- | hoge~kawai/ | + | |
- | *Boc/deve呶気ナ?b: | + | |
- | *B以下? | + | |
- | IMGATclude 箸 [de ぅ薫覆?. | + | [[download:http://hp.vector.co.jp/authors/VA013937/]] |
- | -Boca璽?[Disk Ex とrer:http://hp.vector.co.jp/authors/VA013937/]]ジの書き換え | + | |
- | *Bocoppya=: 1_44=im2 | + | 上記のツールで OSAIMGAT.BIN を開き、先ほど作成した WABA.BIN をコピーします。ディスクイメージを開くときは bochs を止めておきましょう。書き換えが終わったら再度 bochs を起動して動作を確認しましょう。 |
- | **各?. 譴.メ?0xメ?hsrc.tx鷄N?coぅ?e:gic:(=bios/BIOS-瓠-0x-latest, address=0xf0000a | + | |
- | egs=: 32 | + | |
- | vgacoぅ?e:giios/B衄eIOS-?gpllatest,gic | + | |
- | りと起動ーヒ鵐冏は [[鵐??Faults]] に覆鵑??t:ic | + | |
- | りとgic | + | |
- | りと_をotsig_cheあ_Faulo | + | |
- | ?lat xれ?:ss=還(J2??c | + | |
- | n48) action=-g | + | *6. デバッグ |
- | Ner定? action=repor.c?蠻? action=repor.c?A013) action=AS2蠅??A013ger_れ?:-gaco?upx48e_鵑?rval2 | + | |
- | 0a | + | |
- | egskeyboard_覆?al_の*ayー?gskeyboard_pas8e_の*ayー?a | + | |
- | egs蠅?をochs | + | |
- | and_の*ayー5 | + | |
- | egsipsー?a | + | |
- | e.co.ic | + | |
- | ?c:ltime=$ | + | |
- | mousiosen ?lat xpriv48e_colM | + | |
- | -nposen ?lat xfullscreenosen ?lat xscreenmあ ?l: | + | |
- | N | + | |
- | m"sample"yboard_pas8senping ?lat xsc,?k:=sー;のfxsupc?A ?lat xscr | + | |
- | n記譴任.郁?p | + | |
- | 鬟瓠-51 | + | |
- | 討潭い靴腓Α?banui00.r>mそん?宰待4つ ?sー;Mxsc?npぅ?=: 32 | + | |
- | a? $8hsr瓠-$8hsr瓠-ge~kawaip?kawis 瓠-sー;Mxnh4つ ?p -t4wis 瓠-ほど者クハた ho off | + | |
- | と気ナ?bisaw-51 | + | |
- | 討潭い靴腓Α?4wi ?与ample"yb止 ? | + | |
- | りと?ng ?J2BIM = OBJ2Blogら再度"yboard_pas8senpi動p.v魍稜?w-51NJ2BIM -516討潭?013か? | + | -WABAではデバッグにcprintfを使っています。 |
+ | -自分も使ってみたいひとはWABAのソースを一通りダウンロードして眺めてみましょう。 | ||
+ | -デバッグのヒントは [[OSASK_Faults]] にあります。 | ||
+ | -General Protect 0007:00XXXX の XXXX を WABA.map で探すと落ちた場所がだいたいわかります。 | ||
+ | -General Protect が出たらバイナリーエディタでWABA.orgを開き、0x010-0x013 をチェックします。 | ||
- | **廓磯 | + | *こめんと欄 |
- | ?ん | + | -とりあえずできた。校正、追加、修正大歓迎です。 -- [[ベイサイド]] SIZE(10){2003-10-21 (火) 11:48:47} |
- | B欄? | + | -rulファイルでの、lib/lccwin32.lib;の記述はいりません。有害なので消しましょう。 -- [[K]] SIZE(10){2003-10-21 (火) 15:19:28} |
- | anntft | + | -消しますた。 -- [[ベイサイド]] SIZE(10){2003-10-21 (火) 17:15:37} |
- | 箸離? | + | -多分bochsの方の操作でイメージ外しておけば、bochs起動したまんまでもイメージに書き込めるんじゃないかな。で、書き込み終わったらまた入れ直す。 -- [[名無しさん]] SIZE(10){2003-11-11 (火) 23:04:04} |
- | B?1 | + | |
- | ?自2[黷 | + | |
- | 箸離??gいひ?m | + | |
- | **灰T =魄貭未?o off | ||
- | |||
- | seenpi眺りと? ?lat xs | ||
- | -鵑oん | ||
- | B欄 | ||
#comment | #comment | ||
- | >>>>915951 | ||
- | *0. は**B瓩 | ||
- | |||
- | ふxs | ||
- | -General Protc key7:00XXXX の XXXX をf | ||
- | |||
- | ふxs | ||
- | -General Protc | ||
- | O?gら船Кじ | ||
- | |||
- | りと起動ー | ||
- | しばらく-?m?瓩?ep | ||
- | 鬮た。校正、追加、修正大歓迎p | ||
- | 鬟瓠 1rer:http婢のぅ僖ぅ?瓩..ex(10){2003- に21 (火) 11:48:47} | ||
- | -螢 | ||
- | $:* 婢の任痢≡??ccw | ||
- | G2 setのT 襦2鵐肇椒奪?考⑲箇するぞ?J2BIM -516?http?B瓩..ex(10){2003- に21 (火) 15:19:28} | ||
- | -消NJ2BI校正?http婢のぅ僖ぅ?瓩..ex(10){2003- に21 (火) 17:15:37} | ||
- | 集綻なので |
(This host) = http://osask.net