I’m loser, baby.

So why don't you kill me?

ジェダイへの道 Retroのソースを読んでみる1

午前中には(7月から職業訓練所に行くので)最初で最後の失業認定を受けて、帰りに図書館に寄って本を返したり新たに借りたり。オライリーのCポインタの本とかその他。

 

詳説 Cポインタ

詳説 Cポインタ

 

 

Core Memory ―ヴィンテージコンピュータの美

Core Memory ―ヴィンテージコンピュータの美

 

 こうしてみるとAmiga2000は綺麗ではないかもしれないがセクシーでステキなコンピューターだったなあ。これまでの人生の中で、いまのところ一番ケースの開け閉めをしたコンピュータだ。

たぶんAmigaは買い直さないけれど、これはちょっとステキかも。

MIST - a FPGA based aMIga and ST

AtariSTだとボランティアベースだと思うけど売ってるのもある。

An Open Source Atari ST(E) IP-Core written in VHDL

エミュレートするだけならAmigaAtariもPCで色々あるし、エミュレートって事自体への情熱はそんなにないのだけれど(Amigaで使ってたトラッカーに関しては現状のRenoiseにとても満足しているので敢えてAmigaに戻る理由はない。あるとすればあの8bitの音の良さ、太さ)Atariはモノを持っていなかったのでちょっと欲しいってのはあるかもしれない。

ちなみにLinuxで動くAtariエミュレータはXsteemとHatariとがあって性能、デザイン的にはXsteemの方が好きなんだけれど、64bit版Linuxでは音が出ないというバグがまだ直ってないのがツライ。Hatariはデザイン的なもっさり感があるのだけど音がちゃんとしてるのがアドバンテージ。

ちなみにAtariエミュレータに関しては有志でコンパチOSをフルスクラッチで書いているのでROMイメージとかなくても動いたりするので実機持ってなくても法的な面とか大丈夫なのだった。

Steem Engine

それで、午後は夕方に近所に散歩&買い物に行った以外はRetroのVMであるNgaroのソースを読んでみました。

前回、PIC版のVMイメージを読むと言っていたけれど、よくREADME読んでみると、PIC版はRetroBSDで動くのだった。同じ「Retro」でよく判ってなかったがOS上で動くのであれば、普通のC言語版とそんなに変わらないだろうと思い、結局Mbed版から読んでみることに。

判らないところは飛ばしつつ飛ばしつつ、とにかく一通りVMについて読んでみたら、697行中、本当のコアの部分は200行位で、先日読んだBrainf*ckのVM版とそんなに変わらない事が判明。オペコードが31個で、スタックも普通に配列として宣言されているだけ。

当初CELLって単語が出てきてC言語の何かかと思って調べてしまったが、単にマクロでinit16_tを言い換えているだけでした。ただ調べるついでにお気楽C言語超入門の連結リストの章でセルとリストについて学べました。lisp系のリストはこういう理由で配列ではなくリストなんですね。あとGCが必要な理由とか。

 

メインの部分以外はマイコンならではの入出力のピンの定義、Mbed専用のシリアル通信用の処理、ファイル読み書きの処理、なのでプロペラに移植する際にはゼロから書くことになる項目ばかりなので飛ばし読み。

 

でも、これならメイン部分は詳しく読んで手を動かせば判りそうな予感であります。