独り言日記
2003/12/30 update.

OS X 10.3.2 続き
更新日時 2003/12/30
内容 先日OS XでのXcodeにて、「Undefined Symbols」でうまいこと静的ライブラリのリンクができなかった問題、解決しました。
なんてことはない、静的ライブラリに必要なクラスがコンパイル・リンクされていないという理由でした。 せめて、足りないクラス・メソッドをエラー表示してくれればよかったんですが・・・、どうにか無事クリア。
ただ、一部OS X 10.2.xのときとはイベント時の挙動が変わってますね。またかよ、といった感じですが(^_^;;
この手のお仕事は正月にしかできないので、早く片づけなければ。3足くらいわらじを履いている状態ですが、来年こそは一本化しないと。 どれを捨ててどれを生かすか、といった取捨選択に迫られそうです。
OS X 10.3.2
更新日時 2003/12/29
内容 「Mac OS X 10.3.2」(Panther)をようやく入れてみました(2ヶ月くらい前にPanther買ったのに、箱を開けたのは今日だったり(^_^;;)。 開発ツールは「Xcode」というgcc3.3ベースの統合環境です(ProjectBuilderの後継)。
さっそく使ってみたのですが静的ライブラリのリンクで、「Undefined Symbols」エラーが・・・Macでプログラムするときには必ずここで引っかかりますね。 以前の10.2.xとCodeWarrior8.3のときもそうでした。 というか、この互換性の無さをどうにかしてほしぃ(^_^;;
OSがバージョンアップすればライブラリが使えなくなったり、コンパイラがバージョンアップすれば互換性がなくなったり・・・ このあたり、UNIX系の悪い習性を引きずっているような・・・。
情報が少ないため、自分で探り出すのに正月はつぶれてしまいますね、う〜む。

この時期は音楽だけが心の友、ということでお気に入りの紹介。
「プレイヤーズ王国」というサイトに多くの音楽家の方が作品を載せています。
で、ここのKaoruさんのとこ。インギー(Yngwie Malmsteen)といえば早弾きのギタリストですが、 これをピアノでアレンジしてます。トリロジーとかカチューシャとか、とにかくかっこいいっす。

http://players.music-eclub.com/players/Player_detail.php3?player_id=3410

こちらも同じく「プレイヤーズ王国」のアップストリームさんのところ。歌ってらっしゃいます。
「時代」とか、情熱的で好きっすねぇ。全体的に聞き入ってしまいます。 そうか、こう歌えばいいんだ、と参考にもなります(^_^;;

http://players.music-eclub.com/players/Player_detail.php3?player_id=247

プレイヤーズ王国の音楽を聞くには、専用のプレイヤーがいるので注意です。
後、「http://www.music-eclub.com/musicdata/」にて楽譜の販売もしてますね。 練習用に買っちゃいました(笑)。
RUIの「月のしずく」のピアノ譜です・・・つか、練習する時間と精神的余裕があるかが問題ですが(^_^;; あんまり仕事に押されるのも息苦しいので、来年は趣味にも没頭できるようにしたいですね。
千年女優
更新日時 2003/12/15
内容 ようやく1つの仕事が山場を越えた感じで、落ち着いてきました。でも、また別の山があるんですけども(^_^;;
結局は正月もなさげですねぇ(T_T)、毎年のことではありますが。

さて、DVDで「千年女優」(アニメです)が見たかったので、近くの店を 探して回ってました。結局どこにも売ってなかったため、amazon.co.jpで注文しました。 1日で届きましたねぇ、はやっ。
なんか、私好みな雰囲気ですので何回か見直したいなぁ、というそんな映画でした。
古めかしいのが好きな方とかノスタルジーな雰囲気が好きな方とかは、はまれるかもしれません。
シーンの切り替わり(時代から時代への移り変わり)が滑らかで、また映像的にもイイっす。 MEMORIESっぽいと思ったら、監督さんが携わってたんすね。
Z80とR800
更新日時 2003/12/07
内容 MSXで使用されているCPUは、Zilog社の「Z80」ですが、 MSX turboRでは「R800」(ASCIIが開発)です。これは、名前からしてRISCっぽいですが、 Z80の互換CPUで速度がZ80よりも早いというのが特徴です。 命令を1クロックで実行するようにしたから早いらしい。後は、乗算命令の拡張。 大部分はZ80と変わらないようですね。
このあたりは、「MSXマガジン 永久保存版2」にコラムがありますね。
さて、先日インストールした「HI-TECH C」にてアセンブラもコンパイル可能なので 試してみることにしました。

まず、Z80のレジスタ構成から。
8ビットレジスタの「A / F / B / C / D / E / H / L」があり、
「A」がアキュムレータ(計算で使用される)、
「F」がフラグレジスタになります。
「BC / DE / HL」のように2つを合わせて指定することにより、16ビットで扱えます。
その他「IX / IY」という16ビットのインデックスレジスタ、「SP」スタックポインタ(16ビット)、 「PC」プログラムカウンタ(16ビット)、「R」リフレッシュレジスタ(7ビット)、 があります。
その他、「A' / F' / B' / C' / D' / E' / H' / L'」の裏レジスタというのがあります。
表のレジスタと切り替えて使用することになります。

次、MSXのメモリ空間。0000〜FFFFまでの64KBの空間があります。 これは、Z80でアクセスできるメモリ空間でもあります。
0000H 〜 0100Hでは、MSX-BASICの空間で、 0100Hからプログラムなどを置きます。
VRAMはPC-98のようにメモリ上にマッピングされているのでしょうか、ちょっと分からず。

では、アセンブラのプログラムです。「test.as」というファイルに以下を記述します。

;TEST.AS
    psect text

    global main

SYSTEM  equ 0005H
POUT    equ 0009H

    jp  main

main:
    ld    de,str
    ld    c,POUT
    call  SYSTEM
    ret

    psect data
str:
    defm  'Hello world!'
    defb  0dh,0ah,'$'

    end

これは、画面上に「Hello world!」と表示するだけのプログラムです。 システムコール(?)にて文字列表示を行ってます。
レジスタの「C」に文字列表示の命令コード(0009H)を、 「DE」に文字列の先頭ポインタを、そして「0005H」を呼び出すことにより、 文字列表示処理を呼んでいます。

「HI-TECH C」では、

zas test.as

にてコンパイル(test.objが生成されます)、

link -Z -Ptext=100H,data -C100H -Otest.com test.obj

にて、実行ファイル「test.com」を生成しています(100Hは、コードを配置するアドレス)。
後は、「test.com」を実行すると「Hello world!」と表示されます。
詳しい情報は・・・古本をあさるかユーザのサイトを見るしかないですねぇ。
まぁ、80386よりはいじりやすそうです(8ビットだしシンプルだし)。
別にZ80に精通したところで「それがどーした」なんですが(^_^;;、趣味としていじるのは面白いかも。
Flash MX 2004
更新日時 2003/12/07
内容 「Flash MX 2004」買ってきました。というより、ダウンロード販売で(バージョンアップ)購入。
別に店頭にいかなくても購入できるっていいですね。今後はこのような形態になると製品コストも抑えることができて いいのでは、と思ったりします(ただ、やはりセキュリティの面で気にはなるのですけども)。
「Flash MX 2004」での大きな変更点は、「ActionScript 2.0」と「一部高速化」です。 よりプログラマがタッチしやすい言語体系に近づいてます(もちろん、過去バージョンとの互換性はあります)。Javaライクになってきてますね。
後は、サーバ側との連携の強化など、どっちかというとシステム分野のユーザの取り込みが伺えます。
・・・と、Flashはデザイン用のツールのはずなのにプログラム的な要素がどんどん必要になってくる、ということで敷居が上がってきてますねぇ。 その表現力ゆえに仕事としてFlashが絡んでくることもあるので、私としてはありがたいです。が、デザイナさんは苦労されてるみたいです。
プログラマもデザインの能力が必要になってきてるわけですし、「手に職」が1つだけでは今後つらいのかもしれませんね。

と、いきなり別の話題。
「MSX Magazine 永久保存版 2」が発売されました。公式MSXエミュレータ「MSXPlayer」(turboR相当)がついています。もちろん購入です。
これが、楽しい!!(単なる懐古ですけどね(^_^;;)仕様が今のOSに比べて単純なので、理解(というか制覇)しやすい、 というのが一番の要因のように思います。ゲームとかなら、スレッドとかイベントドリブンとか考えるより、一本道の流れ(+割り込み)の ほうが楽ですもんね。「ゲーム」という遊びを目指すのなら、今の3D一色(ムービーとかをやたら凝ったり) よりも、原点復帰を考えたほうがいい(本質のゲームを楽しみたい)、と思うのは私だけでしょうか。 今のゲームは、映画になってきてる部分も多いわけですし。 「古き良き時代」とか懐古するのも、年をとった証拠なのかもしれないですね(^_^;;
MSXにもC言語コンパイラがあるのですが、これは標準では付属してませんでした。フリーで「HI-TECH C」というのがありましたので インストールです。 「Hello World!!」表示させる数行のプログラムのコンパイルだけで数分かかりました(^_^;(RAMディスク上に上げるともっと速度アップするかも)
動作OSは「MSX-DOS2」ということで、これまた懐かしいです。ちょっと息抜きにMSXPlayerで遊ぶ、というのでしばらくははまってそうです。 (起動したときはMSX-BASICが立ち上がります。DOS環境へは、(仮想)ディスクを入れ替えてリセット。昔のマシンって、ROMにBASICが焼き付いてましたよね。)
未だアツいユーザ層がいますので、情報は大量にあるというのも魅力です。