Tuesday, 13 September 2005
rvtl on Mac OS X (Tiger) 続き
ってなわけで Mac OS X 上で PowerPC version を動かすことができました。付属のasが
Apple Computer, Inc. version cctools-590.obj〜12, GNU assembler version 1.38
らしく、.macro/.ifdef が動かないので Perlでmacroを展開するプログラムを書いてgccでコンパイルしました。32kbyte程度になるようです。Tiny basic にしてはでかい。いくつかsystem call がLinuxと異なるようで、brk,getdent,getcwd,umount,pivot あたりはifdefで切りました。他のもテストはしてないです。bench mark だと4秒と出るが...
最後に(バス待ち中に)とったバグはこれ。 sys_read ですが、sc の直後に
li r0, sys_read
sc
lwz r0, 0(r1) # pop r0
するのはPowerBookのCPUでは動作しないようです。lwzuは使わないようにして、
li r0, sys_read
sc
lwz r3, 4(r1) # pop r3
lwz r4, 8(r1) # pop r4
lwz r5, 12(r1) # pop r5
lwz r0, 0(r1) # pop r0
addi r1, r1, 16 # restore r1
とすると良いようです。
http://www.ie.u-ryukyu.ac.jp/%7Ekono/pub/software/rvtl-macosx.tgz
にバイナリとソースを一緒に置いてみました。
ifdefの処理と最小限のマクロのscriptで一日以内なら許す... CbC でインタプリタを書くってのもやってみたいのを思い出した。
向うのWWWにも書いたけど、こっちにも書いておこう。
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment