2: 2003-10-21 (火) 00:19:16 |
3: 2004-01-23 (金) 10:47:55 |
- | しばらくは編集綻なので、見てもなんの意味もありません。 | + | *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} | |
- | 集綻なので | |