さて・・・どうしたものか・・・w
これはかなり時間をかける予定。やりたいことがいっぱいあるからw
(途中であきらめてリリースする可能性大w)
構想
.g01計画
分かっているだけでもかなりのものがefg01対応化しており、さらにバージョンアップしているのでもう一気にg01(ようは最新となるはず)にあげちゃう!
(EXE化とかじゃなくて生粋の.g01化)
30日本 | .g0化 | |
aksa | aksa1a | aksa |
bim2g01 | -- | bim2g01 |
bim2hrb | bim2hrb | bim2hrb |
bin2obj | bin2obj0 | bin2obj |
bin2ucc | -- | bin2ucc |
cpy | -- | cpy |
cpyc | -- | cpyc |
gas2nask | gas2nask | gas2nask |
golib00 | golib00 | golib00 |
makefntc | -- | makefntc |
makefnt | makefnt | makefnt |
mtek2org | -- | mtek2org |
nask | nask | nask |
naskconv0 | naskconv0 | naskconv0 |
obj2bin | obj2bi4c | obj2bin |
rjcg01 | -- | rjcg01 |
sjisconv | sjisconv | sjisconv |
tekmin0 | -- | tekmin0 |
tekmin1 | -- | tekmin1 |
bim2binワンパック化
これが最大に厄介ではある。まず、lzma SDKを現行のものを使って5tlzmaを作り直す(PDSになるぞ!)。うまくいったらtek5圧縮部をbim2bin内に内臓してt5lzmaは廃止に。
互換性維持を捨てる
ファイル名を互換維持のために元のままにしてるよね。(aska.exeやnask.exe)
もうそれをやめちゃう。hidetol_6で在来物(OSASKやCD収録はりぼて)はコンパイルできるようにしてるんだから。
新しいものだってファイル名直せばそれで使える。それくらいは自分でやってちょ!
また、Win9x系列のものは廃止。どうしてもほしければhidetol_6使うかなんかして自分でやってちょ!
Asuka Ver2.0計画
こんなこっといっいな♪ でっきた ら いーいな♪
今のAsukaはC++で作られてるので28GOではコンパイルできない。(これが別パッケージになってる理由)
・・・これさぁ・・・C化ってできないもんか???
そうすれば28GO_Kに収められるからすっきりするし、うまくいけば気をよくしたKタンが.g01化してくれたりなんかして???www
28GO_G
ここのソースはcpp0とcc1およびcc1plusが入ってるね。でさ・・・
こいつだけ、ソースがでかいんだよなぁ。ダウンロード実験の時、時間かかってしょうがない!(解凍も)
cc1plusが今後使われたり改良される可能性は限りなく低いんでね?
なので、いっそ、ソース抜いちゃおうかとwww
せっかくなのでちょっと。28GOcppoに必要なファイル郡。
2010/01/25 15:36 18,137 auto-host.h 2010/01/25 15:36 896 config.h 2010/01/25 15:36 3,030 cppdefault.c 2010/01/25 15:36 3,507 cppdefault.h 2010/01/25 15:36 8,405 cpperror.c 2010/01/25 15:36 26,987 cppexp.c 2010/01/25 15:36 35,075 cppfiles.c 2010/01/25 15:36 4,075 cpphash.c 2010/01/25 15:36 16,370 cpphash.h 2010/01/25 15:36 66,928 cppinit.c 2010/01/25 15:36 59,246 cpplex.c 2010/01/25 15:36 54,627 cpplib.c 2010/01/25 15:36 23,283 cpplib.h 2010/01/25 15:36 48,283 cppmacro.c 2010/01/25 15:36 14,156 cppmain.c 2010/01/25 15:36 15,671 defaults.h 2010/01/25 15:36 111,857 except.c 2010/01/25 15:36 7,648 except.h 2010/01/25 15:36 8,669 hashtable.c 2010/01/25 15:36 3,144 hashtable.h 2010/01/25 15:36 4,921 hwint.h 2010/01/25 15:36 207 insn-constants.h 2010/01/25 15:36 91,249 insn-flags.h 2010/01/25 15:36 1,412 intl.c 2010/01/25 15:36 1,579 intl.h 2010/01/25 17:09 97,072 libcpp.lib 2010/01/25 15:36 6,517 line-map.c 2010/01/25 15:36 4,948 line-map.h 2010/01/25 16:41 4,690 Makefile 2010/01/25 15:36 9,877 mbchar.c 2010/01/25 15:36 1,606 mbchar.h 2010/01/25 15:36 6,662 mkdeps.c 2010/01/25 15:36 2,734 mkdeps.h 2010/01/25 15:36 8,068 prefix.c 2010/01/25 15:36 1,226 prefix.h 2010/01/25 15:36 17,680 system.h 2010/01/25 15:36 173 version.c 2010/01/25 15:36 118 version.h
28GOcc1に必要なの・・・
2010/01/25 15:36 82,996 alias.c 2010/01/25 15:36 42,362 attribs.c 2010/01/25 15:36 18,137 auto-host.h 2010/01/25 15:36 26,469 basic-block.h 2010/01/25 15:36 7,203 bb-reorder.c 2010/01/25 15:36 19,389 bitmap.c 2010/01/25 15:36 12,411 bitmap.h 2010/01/25 15:36 6,781 builtin-attrs.def 2010/01/25 15:36 8,218 builtin-types.def 2010/01/25 15:36 130,313 builtins.c 2010/01/25 15:36 16,728 builtins.def 2010/01/25 15:36 22,535 c-aux-info.c 2010/01/25 15:36 134,692 c-common.c 2010/01/25 15:36 5,090 c-common.def 2010/01/25 15:36 34,570 c-common.h 2010/01/25 15:36 4,149 c-convert.c 2010/01/25 15:36 249,039 c-decl.c 2010/01/25 15:36 1,417 c-errors.c 2010/01/25 15:36 85,124 c-format.c 2010/01/25 15:36 3,729 c-lang.c 2010/01/25 15:36 41,367 c-lex.c 2010/01/25 15:36 1,209 c-lex.h 2010/01/25 15:36 10,356 c-objc-common.c 2010/01/25 15:36 214,224 c-parse.c 2010/01/25 15:36 14,136 c-pragma.c 2010/01/25 15:36 1,977 c-pragma.h 2010/01/25 15:36 22,266 c-semantics.c 2010/01/25 15:36 16,157 c-tree.h 2010/01/25 15:36 227,906 c-typeck.c 2010/01/25 15:36 27,628 caller-save.c 2010/01/25 15:36 155,730 calls.c 2010/01/25 15:36 18,009 cfg.c 2010/01/25 15:36 33,698 cfganal.c 2010/01/25 15:36 26,098 cfgbuild.c 2010/01/25 15:36 53,518 cfgcleanup.c 2010/01/25 15:36 15,265 cfglayout.c 2010/01/25 15:36 1,326 cfglayout.h 2010/01/25 15:36 23,575 cfgloop.c 2010/01/25 15:36 58,697 cfgrtl.c 2010/01/25 15:36 444,322 combine.c 2010/01/25 18:21 103,133 combine.o 2010/01/25 15:36 4,742 conditions.h 2010/01/25 15:36 896 config.h 2010/01/25 15:36 15,670 conflict.c 2010/01/25 15:36 15,428 convert.c 2010/01/25 15:36 1,076 convert.h 2010/01/25 15:36 3,030 cppdefault.c 2010/01/25 15:36 3,507 cppdefault.h 2010/01/25 15:36 8,405 cpperror.c 2010/01/25 15:36 26,987 cppexp.c 2010/01/25 15:36 35,075 cppfiles.c 2010/01/25 15:36 4,075 cpphash.c 2010/01/25 15:36 16,370 cpphash.h 2010/01/25 15:36 66,928 cppinit.c 2010/01/25 15:36 59,246 cpplex.c 2010/01/25 15:36 54,627 cpplib.c 2010/01/25 15:36 23,283 cpplib.h 2010/01/25 15:36 48,283 cppmacro.c 2010/01/25 15:36 250,371 cse.c 2010/01/25 15:36 37,913 cselib.c 2010/01/25 15:36 2,309 cselib.h 2010/01/25 15:36 90,174 dbxout.c 2010/01/25 15:36 1,021 dbxout.h 2010/01/25 15:36 2,540 debug.c 2010/01/25 15:36 6,059 debug.h 2010/01/25 15:36 15,671 defaults.h 2010/01/25 15:36 42,172 dependence.c 2010/01/25 15:36 102,761 df.c 2010/01/25 15:36 11,361 df.h 2010/01/25 15:36 44,015 diagnostic.c 2010/01/25 15:36 373 diagnostic.def 2010/01/25 15:36 12,814 diagnostic.h 2010/01/25 15:36 29,278 doloop.c 2010/01/25 15:36 19,709 dominance.c 2010/01/25 15:36 17,346 dwarf2.h 2010/01/25 15:36 25,376 dwarf2asm.c 2010/01/25 15:36 2,931 dwarf2asm.h 2010/01/25 15:36 379,147 dwarf2out.c 2010/01/25 15:36 1,285 dwarf2out.h 2010/01/25 15:36 237,178 dwarfout.c 2010/01/25 15:36 142,702 emit-rtl.c 2010/01/25 15:36 1,718 errors.h 2010/01/25 15:36 111,857 except.c 2010/01/25 15:36 7,648 except.h 2010/01/25 15:36 48,759 explow.c 2010/01/25 15:36 156,841 expmed.c 2010/01/25 15:36 347,971 expr.c 2010/01/25 15:36 31,879 expr.h 2010/01/25 15:36 112,995 final.c 2010/01/25 15:36 21,210 flags.h 2010/01/25 15:36 133,678 flow.c 2010/01/25 15:36 251,287 fold-const.c 2010/01/25 15:36 255,535 function.c 2010/01/25 15:36 25,033 function.h 2010/01/25 15:36 5,278 gcov-io.h 2010/01/25 15:36 208,910 gcse.c 2010/01/25 15:36 17,972 genrtl.c 2010/01/25 15:36 20,016 genrtl.h 2010/01/25 15:36 19,592 ggc-common.c 2010/01/25 15:36 43,400 ggc-page.c 2010/01/25 15:36 9,290 ggc.h 2010/01/25 15:36 63,318 global.c 2010/01/25 15:36 11,192 graph.c 2010/01/25 15:36 1,099 graph.h 2010/01/25 15:36 229 gstab.h 2010/01/25 15:36 1,315 gsyms.h 2010/01/25 15:36 61,982 haifa-sched.c 2010/01/25 15:36 17,723 hard-reg-set.h 2010/01/25 15:36 5,597 hash.c 2010/01/25 15:36 4,868 hash.h 2010/01/25 15:36 8,669 hashtable.c 2010/01/25 15:36 3,144 hashtable.h 2010/01/25 15:36 1,352 hooks.c 2010/01/25 15:36 1,096 hooks.h 2010/01/25 15:36 4,921 hwint.h 2010/01/25 15:36 389,761 i386.c 2010/01/25 15:36 81,451 ifcvt.c 2010/01/25 15:36 1,695 input.h 2010/01/25 15:36 1,793 insn-addr.h 2010/01/25 15:36 4,592 insn-attr.h 2010/01/25 15:36 988,099 insn-attrtab.c 2010/01/25 15:36 16,626 insn-codes.h 2010/01/25 15:36 412 insn-config.h 2010/01/25 15:36 207 insn-constants.h 2010/01/25 15:36 413,064 insn-emit.c 2010/01/25 15:36 69,072 insn-extract.c 2010/01/25 15:36 91,249 insn-flags.h 2010/01/25 15:36 22,918 insn-opinit.c 2010/01/25 15:36 431,045 insn-output.c 2010/01/25 15:36 671 insn-peep.c 2010/01/25 15:36 1,227,452 insn-recog.c 2010/01/25 15:36 105,432 integrate.c 2010/01/25 15:36 8,435 integrate.h 2010/01/25 15:36 1,412 intl.c 2010/01/25 15:36 1,579 intl.h 2010/01/25 15:36 65,669 jump.c 2010/01/25 15:36 6,775 langhooks-def.h 2010/01/25 15:36 8,286 langhooks.c 2010/01/25 15:36 6,933 langhooks.h 2010/01/25 15:36 44,758 lcm.c 2010/01/25 18:55 4,646,954 libbackend.lib 2010/01/25 18:09 97,072 libcpp.lib 2010/01/25 15:36 8,342 libfuncs.h 2010/01/25 15:36 6,517 line-map.c 2010/01/25 15:36 4,948 line-map.h 2010/01/25 15:36 4,091 lists.c 2010/01/25 15:36 80,898 local-alloc.c 2010/01/25 15:36 334,496 loop.c 2010/01/25 15:36 16,555 loop.h 2010/01/25 15:36 8,939 machmode.def 2010/01/25 15:36 5,995 machmode.h 2010/01/25 15:36 9,877 mbchar.c 2010/01/25 15:36 1,606 mbchar.h 2010/01/25 15:36 6,662 mkdeps.c 2010/01/25 15:36 2,734 mkdeps.h 2010/01/25 15:36 157,341 optabs.c 2010/01/25 15:36 10,819 optabs.h 2010/01/25 15:36 181 options.h 2010/01/25 15:36 21,825 output.h 2010/01/25 15:36 2,342 params.c 2010/01/25 15:36 4,002 params.def 2010/01/25 15:36 3,209 params.h 2010/01/25 15:36 29,598 predict.c 2010/01/25 15:36 4,220 predict.def 2010/01/25 15:36 1,511 predict.h 2010/01/25 15:36 8,068 prefix.c 2010/01/25 15:36 1,226 prefix.h 2010/01/25 15:36 18,933 print-rtl.c 2010/01/25 15:36 23,194 print-tree.c 2010/01/25 15:36 36,306 profile.c 2010/01/25 15:36 151,319 real.c 2010/01/25 15:36 17,686 real.h 2010/01/25 15:36 92,753 recog.c 2010/01/25 15:36 9,783 recog.h 2010/01/25 15:36 84,991 reg-stack.c 2010/01/25 15:36 80,443 regclass.c 2010/01/25 15:36 76,217 regmove.c 2010/01/25 15:36 54,158 regrename.c 2010/01/25 15:36 8,897 regs.h 2010/01/25 15:36 238,998 reload.c 2010/01/25 15:36 15,136 reload.h 2010/01/25 15:36 320,221 reload1.c 2010/01/25 15:36 127,333 reorg.c 2010/01/25 15:36 40,868 resource.c 2010/01/25 15:36 2,108 resource.h 2010/01/25 15:36 4,157 rtl-error.c 2010/01/25 15:36 19,617 rtl.c 2010/01/25 15:36 46,315 rtl.def 2010/01/25 15:36 85,494 rtl.h 2010/01/25 15:36 78,912 rtlanal.c 2010/01/25 15:36 13,432 sbitmap.c 2010/01/25 15:36 5,692 sbitmap.h 2010/01/25 15:36 48,960 sched-deps.c 2010/01/25 15:36 9,715 sched-ebb.c 2010/01/25 15:36 12,684 sched-int.h 2010/01/25 15:36 91,622 sched-rgn.c 2010/01/25 15:36 23,861 sched-vis.c 2010/01/25 15:36 53,060 sdbout.c 2010/01/25 15:36 925 sdbout.h 2010/01/25 15:36 23,901 sibcall.c 2010/01/25 15:36 83,363 simplify-rtx.c 2010/01/25 15:36 37,727 ssa-ccp.c 2010/01/25 15:36 22,962 ssa-dce.c 2010/01/25 15:36 66,530 ssa.c 2010/01/25 15:36 2,616 ssa.h 2010/01/25 15:36 9,369 stab.def 2010/01/25 15:36 197,862 stmt.c 2010/01/25 15:36 67,272 stor-layout.c 2010/01/25 15:36 4,854 stringpool.c 2010/01/25 15:36 17,680 system.h 2010/01/25 15:36 7,154 target-def.h 2010/01/25 15:36 8,282 target.h 2010/01/25 15:36 578 timevar.h 2010/01/25 15:36 2,779 tm-preds.h 2010/01/25 15:36 122 tm_p.h 2010/01/25 15:36 159,578 toplev.c 2010/01/25 15:36 5,483 toplev.h 2010/01/25 15:36 15,536 tree-check.h 2010/01/25 15:36 24,157 tree-dump.c 2010/01/25 15:36 2,965 tree-dump.h 2010/01/25 15:36 47,099 tree-inline.c 2010/01/25 15:36 1,592 tree-inline.h 2010/01/25 15:36 138,337 tree.c 2010/01/25 15:36 41,525 tree.def 2010/01/25 15:36 131,273 tree.h 2010/01/25 15:36 481 typeclass.h 2010/01/25 15:36 148,071 unroll.c 2010/01/25 15:36 152,960 varasm.c 2010/01/25 15:36 2,865 varray.c 2010/01/25 15:36 11,029 varray.h 2010/01/25 15:36 173 version.c 2010/01/25 15:36 118 version.h 2010/01/25 15:36 55,043 vmsdbgout.c 2010/01/25 15:36 25,660 winnt.c 2010/01/25 15:36 13,860 xcoffout.c
いらないと思われるファイル達。
cpディレクトリ内 2010/01/25 15:34 176,585 call.c 2010/01/25 15:34 15,048 cfns.h 2010/01/25 15:34 255,601 class.c 2010/01/25 15:34 4,299 cp-lang.c 2010/01/25 15:34 11,975 cp-tree.def 2010/01/25 15:34 190,445 cp-tree.h 2010/01/25 15:34 39,521 cvt.c 2010/01/25 15:34 466,028 decl.c 2010/01/25 15:34 2,005 decl.h 2010/01/25 15:34 162,934 decl2.c 2010/01/25 15:34 11,308 dump.c 2010/01/25 15:34 78,045 error.c 2010/01/25 15:34 25,427 except.c 2010/01/25 15:34 3,843 expr.c 2010/01/25 15:34 14,078 friend.c 2010/01/25 15:34 107,563 init.c 2010/01/25 15:34 47,149 lex.c 2010/01/25 15:34 3,410 lex.h 2010/01/25 15:34 329 Makefile 2010/01/25 15:34 73,898 mangle.c 2010/01/25 15:34 32,018 method.c 2010/01/25 15:34 6,174 operators.def 2010/01/25 15:34 9,936 optimize.c 2010/01/25 15:34 442,688 parse.c 2010/01/25 15:34 2,361 parse.h 2010/01/25 15:34 322,662 pt.c 2010/01/25 15:34 6,496 ptree.c 2010/01/25 15:34 10,533 repo.c 2010/01/25 15:34 45,877 rtti.c 2010/01/25 15:34 82,452 search.c 2010/01/25 15:34 73,561 semantics.c 2010/01/25 15:34 42,716 spew.c 2010/01/25 15:34 70,234 tree.c 2010/01/25 15:34 219,474 typeck.c 2010/01/25 15:34 42,890 typeck2.c gccディレクトリ内 2010/01/25 15:36 12,446 cppmain.n 2010/01/25 15:36 10,559 dwarf.h 2010/01/25 15:36 3,024 halfpic.h 2010/01/25 15:36 1,514 stack.h 2010/01/25 15:36 6,913 vmsdbg.h 2010/01/25 15:36 8,004 xcoffout.h
総ソース18MBが3MB近く減ったぞw これでいっちゃうかw
あと、生成されるものも、cc1・cpp0から、28GOcc1・28GOcpp0に名前変更~。 宣言通り、もう互換性とかは基本無視しまするw
28GO_K
まず、いくつかのものが.g01化してるので当然efg01相当がいるよね。 h_efg01とかってかなりグレーなので、近々Usageとかを搭載して、hijk Ver1.7をリリースして、これを載せる予定。
aksa
とりあえずソースをg01のものに入れ替え。
コンパイル実験はまだでけた。ついでに名前もakusAに変更。
バージョン表記搭載まだなんだけど・・・なんぞこれ? この異常に複雑なUsage表示!??
・・・まいったなぁ・・・Usageのメッセージなんぞでかく占めたくないってんで複雑な関数になってる。efg01側の解析からやらにゃならん。どうしたもんだこれ・・・
static unsigned char cmdusg[] = { ベタ書きに変換! 0x86, 0x50, 0x86, 0x5c, 0, 0x88, 0x88, in:input-file 0x02, 'o', 'f', 's', 0x11, '#', 0x0c, 2, 'o', 'f', 's', 0x1c, 1, '#', 0x11, '-', 'r', 0x20, 0x1c, 1, '-', 'r', 0x20, 0x02, 'e', 'i', 'p', 0x11, '#', 0x0c, 2, 'e', 'i', 'p', 0x1c, 1, '#', 0x00, 'd', 0x11, '#', 0x0c, 0, 'd', 0x1c, 1, '#', 0x02, 'l', 'i', 'n', 0x11, '#', 0x0c, 2, 'l', 'i', 'n', 0x1c, 1, '#', 0x40 0x40 };
ばんざーい! 解析できたーーーーー!!!!!
・・・バージョン表記はefg01側で考えないといけないのね・・・・・・・orz
結論!!! 今回はバージョン表記は見送りまする。まずhidetol_8で完成させて、次回にhijkの内部をイジってなんとかしまるす。(それしかなさそうだもんなぁ~)
g01libcとg01libc1
内部にはオブジェクトファイルあり。ライセンスの確認が必要なので棚上げ
- g01libc内の_chkstk.oは例の条件付GPLのヤツと同一であることを確認。なので、在来の28GO_G内のものを流用してくみ上げるよう、インストーラーを工夫する。(つかり28GO_Kからは除外する)
- g01libc1内のものはみんなKタン作であることを確認。(考えてみれば、.nasや.askを書くヒトなんてKタンくらいではなかろうかとwww)
gas2naskに例の問題が?
g01化された最新(たぶん)のgas2naskに例の
skip:adcl %edx, 20(%ecx) skip:adcl %edx, 20(%esi)
エラーが出ることが判明。これを修理。
その意味では初のg01アプリのバージョンアップwつーことになるかな? www
・・・あれ? 前のと違うじゃんこれ!
検証
以前にも似たバグがあった。今、手動でbim2bin.cを中間コンパイルしてbim2bin.gasを作ってみた。みてみると・・・
あったあった。二箇所。 つまり、上記のエラーは、gas2naskが 「そんなオペランド知らんぞ!訳せないぞ!」とこういっているわけ。っということは、GASのオペランドと、Nasuku(NASM互換?)のオペランドをつき合わせて書いてあげればいい・・・ということかな???
(前回と違い、今回はgas2naskのソースは最新。うへぇ~! こまったぁ・・・・)
これはようするに、i386 CPUのオペランドとニーモニックの一覧表がないとどーしよーもないぞおぉぉ!!! orz
だれかそういうのの載ってるURL教えてけれ!!
ググっても全然みつからないよ・・・orz・・・
手がかりがあったぞ
adclは、拡張加減算と呼ばれるものらしい。
・・・やっとこさ、NASMの解説サイトを見つけたんだが・・・・
http://ryujin.kuis.kyoto-u.ac.jp/~nobu/study/nasm/nasm.html
これからこれを読むのか・・・頭クラクラしてきた・・・
お得意のやっつけ変化球
実験的にadclの行を抜いてgas2naskしてみた。するってーと、Nasukaとしてはこんな文法になることがわかった。
_rc_encode0: _rc_encode0: pushl %ebp PUSH EBP movl %esp, %ebp MOV EBP,ESP movl 8(%ebp), %ecx MOV ECX,DWORD [8+EBP] shrl 4(%ecx) SHR DWORD [4+ECX],1 cmpl $0, 12(%ebp) CMP DWORD [12+EBP],0 jne L4079 JNE L4079 movl 4(%ecx), %eax MOV EAX,DWORD [4+ECX] xorl %edx, %edx XOR EDX,EDX addl %eax, 16(%ecx) ADD DWORD [16+ECX],EAX ; adcl %edx, 20(%ecx) L4079: L4079: movl 4(%ecx), %eax MOV EAX,DWORD [4+ECX] cmpl $16777215, %eax CMP EAX,16777215
また、adcl、そしてそれに良く似たaddl命令の働きがわかって来た。上記の例で解る通り、addlはgas2naskで翻訳できていて、さらにそのパターンがわかる!
GASソース | Nasuka(NASM風)ソース | ||||||
addl命令 | addl | %eax | 16(%ecx) | ADD | DWORD[16+ECX] | EAX |
これらの比較から、まだ未確認だがこういう予測が立ってきた・・・
- 多くの命令は、GASの場合、おケツにlが付いているだけ。
- 第一オペランドと第二オペランドが逆
・・・つーことはだよ? x86に、ADCという命令がダイレクトにあれば、addl(ADD)と同じ翻訳でいいんでないのか?これ????
出ました!乱暴者!!!
どうもx86には、ADCという命令はあるっぽい(まだ、調べきっていないのだが)。・・・だったらさぁ・・・・
さっき出来た.nasに、手書きでADC命令を書きこんでNasukaにかけ、bim2binをでっち上げてみる!!!!
さぁ!動くか!? うごくのかあぁぁぁぁ!!!!
動いちゃうんだからやめられないよなホントwwww
- -osacmp -tek0 正常動作。出力ファイルに違いがない!
- -osacmp -tek1 正常動作。出力ファイルに違いがない!
- -osacmp -tek5 正常動作。出力ファイルに違いがない!
完璧だ・・・私は完璧だ! 今日から戦闘力10万の完璧超人を名乗らせてもらおう!!
貴様風情に北斗1800年の歴史を極めることなどできない
・・・でさ・・・gas2naskどうすんのよ・・
・・・・・・・・・・・・・orz・・・・・・・・・・・・・・・
さてgas2naskのソースを眺めてると、acDl(ADD)命令の定義が二箇所ある。さらに各々の定義部に、one_param、tow_paramという名前がつけられている。
・・・これは、オペランドが一個しかないもの、2個あるものっていう定義なのだろうか? もしそうなら、addl命令は、オペランドがひとつの場合と二つの場合があり、3つってのはない・・・そうなるが・・・
ふむ。大体合ってると思う。one_param内にはCALLやJPがあるが、tow_param内にはないし。
しかしそうなると、ADDにはオペランドが一個っていう場合がある・・・のかなぁ。そういう用法が見つからない。むむむ・・・
あぁぁぁっと!勘違いだ! ADDにはパラメータ一個は存在しない! それは、FADDだ!!
うーん・・・ADDに対してFADDはFPUを使っての命令・・・と。で、その場合はパラメータ一個もありうる・・・(まだ未確認)
しかし、逆に、これのCF関連命令であるADCに、FADCっていう命令はみつからないぞ? もしかしてない??
たぶんこれで合っているはず。adcl(ADC)命令には、パラメータ一個のパターンは存在しない!!!!
なので、たぶん、adclの定義はtwo_param内に追加すればいいはず!
ソース内の定義の意味は?
gas2naskのソース内では、たとえばaddlの場合、
"1addb ADD", "4addl ADD", "2addw ADD",
こんなことをしている。先頭の数値とお尻の一文字。これはどういう意味なんだろう?? お尻はほとんど関係なくADDに翻訳されているんだが、頭の数値はなんだんだろうこれ・・・
いけた?でもわかんねw
"1addb ADD", "4addl ADD", "2addw ADD", "4adcl ADD",
もうわっかんないので無理やりこんなことしてみたら、ちゃんと.nasが正しく出力されたぞ?? いいのか? 本当にこれでいいのか???www
復帰~
うーん・・・思うところもあるけど、本来の目的であるhidetol_8を完成させる観点から、ちょっとこれで突き進めちゃおう・・・
(どーせこれは、GOでもなんでもない。28GOであり、hidetolなんだから・・・<オープン アゲイン!!!
OSASKコンパイル
・・・ダメでした・・・orz・・・
で、問題を検証してみたんだけど、どうもpokonがおかしい。で、どの段階でおかしいかってーと、obj2bimだってことが解った。pokon0.objまでの段階ではまったく同じバイナリなんだけど、こいつをobj2bimでpokon0.bimにすると違いが出ちゃう。
- 差を見てみると、なんとかくだけど規則的に差が出ているように見える・・・
- そもそも、ほんのわずかだけど、サイズが異なる
でね。こりゃ、obj2bimがバグってるのかぁ?っていうと、winman0ではこれが起きてないんだよなぁ・・・(winman0はこの後のbinでもまったく同じバイナリになってる)
・・・どゆことなんだべか???
おぉぉっとぉ! 動いたぞ!!!
二つの差。それは、rulファイル(各々専用)。ちょっとヤマカンでやってみたのよ。mak_pk0.txtを!
元々のmak_pl0.txt こうしますた! STK_PK_AT = 1m STK_PK_AT = 64k STK_PK_TW = 1m STK_PK_TW = 64k STK_PK_NE = 1m STK_PK_NE = 64k
これでコンパイルかけてみた。やっぱり同じにはならないんだけど、サイズが揃ったんだよね。で、runしてみるってーと・・・ジャジャ~ン!!!
オレは天才だあぁぁぁ! どんな言語もたちどころに習得できるのに、誰も奥義を授けようとはしなかったあぁ!!!
リリース向け準備
たぶんもう問題はないと思う。リリースに向けて最後の準備。
で!
この版ではコマンドそのものやパラメータがいろいろ変化していて、hidetol_7みたいにOSASKやはりぼてでチェックができない。(あちこち直さないといけない)
Linuxとかならpatchを流せばいいんだけどWinの場合はねぇ・・・
そんなわけで、とりあえずご用意。
OSASK4.7の代替
ここからOSAKA Ver4.7を落としてくださいな。OSAKAはOSASKからの派生物。で、なに派生したかって、なーんにも変化していないというwww
コイツはhidetol_8で一発コンパイルできるようにMakefile関係だけをイジってあると考えていただければ。
はりぼての代替
こいつは「30日で出来る!OS自作入門」付属CD-ROM内の、30日目の最後のソースに、hidetol_8でコンパイルできるようにMakefileやらなんやらを改造したもの。以下ね。
harib27_x ├app_mak.txt ├apilib │ └Makefile ├haribote │ └Makefile └gvuiew └Makefile
リリース完了! ('10/2/1)
リリースが完了しましたので、このページは凍結♪ 添付も引っこ抜きます。以降はこちらにて。
Counter: 382,
today: 1,
yesterday: 0
初版日時: 2010-01-19 (火) 19:32:32
最終更新: 2010-02-05 (金) 00:00:00 (JST) (349d) by lina
|
ぺージ情報 | 閲覧可 | 編集可 | |||
---|---|---|---|---|---|---|
ぺージ名 : | hideyosi/hidetol8計画 | グループ : | すべての訪問者 | グループ : | 登録ユーザ | |
ページ作成 : | lina | ユーザー : | すべての訪問者 | ユーザー : | なし | |
ページ別名 : | 未設定 |