週末はファミレスでコーディング
平日が忙しい&諸事情から早く寝ないといけないので、3Dプログラミングは週末限定になってしまっています。
とりあえず金曜日の深夜に近所のファミレスで独りシコシコと背景のモデリングやステージイベントを考案しながら作っています。
このファミレスでは、ある日ウェイトレスのおねいさんと挨拶をする仲になったので、「仕事ですか?」と、よく聴かれるのですが、とりあえず「そんなものです。」とか「ブログ書いてます。」とか言っておくのですが、たまに持参のXbox 360のコントローラーを握っているのを見られている(と思う)ので、「何をしているのだろう…」とか思われているのかもしれません。(^^;
とりあえず金曜日の深夜に近所のファミレスで独りシコシコと背景のモデリングやステージイベントを考案しながら作っています。
このファミレスでは、ある日ウェイトレスのおねいさんと挨拶をする仲になったので、「仕事ですか?」と、よく聴かれるのですが、とりあえず「そんなものです。」とか「ブログ書いてます。」とか言っておくのですが、たまに持参のXbox 360のコントローラーを握っているのを見られている(と思う)ので、「何をしているのだろう…」とか思われているのかもしれません。(^^;
そんな感じで3Dプログラミングをしている訳ですが、先日「4月から新天地で働くための気持ちの整理」として、バックアップしてある「昔勉強してきたプログラムのソースファイル」をぼんやりと眺めていたところ、1990年初頭辺りのX68000のソースコードが発掘されました。
私はフロッピーディスクを扱うようになってから、勉強プログラムソースとメールデータ(これはパソコン通信時代から、現在に至るまで全て)は、殆んど保管しており、X68000のデータも同様に保管しています。
しかも、紛失したと思っていたX68000の自作ゲームフレームワークも出てきて、ちょっとビックリ。しかし、肝心な"コレを使って作っていたアクションゲーム"のソースコードが見つかっていないので、ちょっと残念でした。
そして、このX68000の勉強プログラムの中から、2つの程興味あるソースが出てきたので、3Dプログラムは一時停止して、優雅に"ファミレス de アセンブラ"(おフランス風)を始めようと思いました。
幸い(?)な事に、ノートPCにはX68000のエミュレータが入っているので、「久々のHuman68kだなやぁ~(釣りキチ三平風)」という感じでしたが、まぁ、とりあえずやってみるか…と。
RESET.S
…と久々にリストを載せてみましたが、なんかTABのHTMLがテーマのスタイルシートに食われているので、タブが効かない事をすっかり忘れてました。う~ん、まぁ、いいや…(^^;
要はOSをリセットするプログラムです。こんな命令だけでリセットを行うのが時代を感じさせます。
まぁ、WindowsならExitWindowsEx APIで一発なので、同じようなものですがw
久々にAS.Xでアセンブルをして、CV.Xでリロケータブルファイルに変換をしました。体が覚えていたようなシーケンスですw
…が、いざ実行してみると、アプリケーションエラーが…

あ、あるぇ~?
プログラムサイズを見ると、66バイト… 「えっ? リロケータブルファイルだから、そんなハズはないべ、だって直マシン語のファイルじゃん。多分、この程度の命令なら2バイトか4バイトだべ?」と「?????」になりましたが、ファミレスなのでネット環境がありません。(私が貧乏インフラなだけですが(^^ゞ)
「う~ん、本腰入れないと解析できないなぁ…」という事で諦める事に。
もう一つは、更に複雑なプログラムなので、「これもアセンブルができないと、凹みそうだな…」と思い断念。
という事で、もう一つのソースもベタで載せておきます。(将来のため)
C_PROMPT.S
ベタでスミマセン。m(_ _)m しかも、1990年位に書いているから、半角カタカナとか使っちゃてるしw
(OS依存しちゃうな、こりゃ(^^;)
コイツはTSR(死語)…いや、常駐プログラム(これも死語かw)…で、実行すると「コマンドプロンプトがフェードイン/アウト」します。見た目、滑らかにグラデーションしながら点滅する感じです。
仕様としてはエスケープシーケンスで、プレーン1を色付きで指定した場合にグラデーションする感じだと思います(動かしていないので、なんとも言えないのが辛い…(^^;)
このプログラムは結構気にいっていて、ゲーム開発の朋友であるF田くんにも渡してあげて、彼も数年間自分のX68000に仕込んでくれていました。
私はいまだにターミナル系のソフトを何かしらのOSで起動したりしますが、このような表現を実現するソフトって見た事ないんですよねぇ~。背景が半透明になるものはやたらと見るのですが…
ですので、死ぬまでに何かのOSで作りたいと思っています。どーせやるなら、「コマンドプロンプトに虹色にグラデと、ボンジャック(アーケード版ですよ)風のグラデ、ナイトライダーのナイトフラッシャー風グラデ」と、この3つは実現しようかとw
よし、決めた!還暦になったら作ろう!(嘘
とまぁ、「忙しい忙しいといつも言っときながら、ファミレスで独り何やってんのかなぁ~」と、ちょっとだけ思ったりはしましたが、「ワイは、懐古主義なんや!(・3・)」と、開き直るという事で一つよろしくお願いいたします。(なんだそりゃw)
私はフロッピーディスクを扱うようになってから、勉強プログラムソースとメールデータ(これはパソコン通信時代から、現在に至るまで全て)は、殆んど保管しており、X68000のデータも同様に保管しています。
しかも、紛失したと思っていたX68000の自作ゲームフレームワークも出てきて、ちょっとビックリ。しかし、肝心な"コレを使って作っていたアクションゲーム"のソースコードが見つかっていないので、ちょっと残念でした。
そして、このX68000の勉強プログラムの中から、2つの程興味あるソースが出てきたので、3Dプログラムは一時停止して、優雅に"ファミレス de アセンブラ"(おフランス風)を始めようと思いました。
幸い(?)な事に、ノートPCにはX68000のエミュレータが入っているので、「久々のHuman68kだなやぁ~(釣りキチ三平風)」という感じでしたが、まぁ、とりあえずやってみるか…と。
RESET.S
* RESETプログラム kill: moveq.l #0,d0 trap #10 .end |
…と久々にリストを載せてみましたが、なんかTABのHTMLがテーマのスタイルシートに食われているので、タブが効かない事をすっかり忘れてました。う~ん、まぁ、いいや…(^^;
要はOSをリセットするプログラムです。こんな命令だけでリセットを行うのが時代を感じさせます。
まぁ、WindowsならExitWindowsEx APIで一発なので、同じようなものですがw
久々にAS.Xでアセンブルをして、CV.Xでリロケータブルファイルに変換をしました。体が覚えていたようなシーケンスですw
…が、いざ実行してみると、アプリケーションエラーが…

あ、あるぇ~?
プログラムサイズを見ると、66バイト… 「えっ? リロケータブルファイルだから、そんなハズはないべ、だって直マシン語のファイルじゃん。多分、この程度の命令なら2バイトか4バイトだべ?」と「?????」になりましたが、ファミレスなのでネット環境がありません。(私が貧乏インフラなだけですが(^^ゞ)
「う~ん、本腰入れないと解析できないなぁ…」という事で諦める事に。
もう一つは、更に複雑なプログラムなので、「これもアセンブルができないと、凹みそうだな…」と思い断念。
という事で、もう一つのソースもベタで載せておきます。(将来のため)
C_PROMPT.S
.include doscall.mac .include iocscall.mac .include const.h .text .even code: .dc.b 'C_PR' /*常駐プログラムID start: movem.l d0-d2/a1,-(sp) /*待避 move.w #2,d1 /*パレットコード1 move.w palet,d2 /*d2にフラグ取り込み tst.w flag beq pal2 /*flagが0 add.w #$800,d2 /*色つき cmpi.w #$f83e,d2 /*$f83eなら beq pal3 /*0以下ならpal3へ bra pal4 pal2: sub.w #$800,d2 /*色が落ちる cmpi.w #$3e,d2 bne pal3 move.w #1,flag /*flag on bra pal4 pal3: clr.w flag /*flag初期化 pal4: move.w d2,palet IOCS _TPALET movem.l (sp)+,d0-d2/a1 rte palet: .dc.w $f83e flag: .dc.w 0 *↑ 常駐部分 *↓ 非常駐部分 init: movea.l (a0),a0 cmpa.l #$10000,a0 bcs int lea.l $100(a0),a1 move.l (a1),d1 cmp.l code,d1 beq goodbye bra init int: lea.l start,a1 /*割り込みアドレス move.w #1*256+2,d1 /*カウンタ IOCS _VDISPST tst.l d0 beq skip /*OK bra byebye goodbye: lea.l stackp,sp pea.l $10(a0) DOS _MFREE addq.l #4,sp byebye: suba.l a1,a1 /*終了処理 IOCS _VDISPST DOS _EXIT /*さよならー skip: clr.w -(sp) move.l #init,d1 sub.l #code,d1 move.l d1,-(sp) DOS _KEEPPR /*常駐終了 .stack .even stackend: .ds.l 256 stackp: .end init |
ベタでスミマセン。m(_ _)m しかも、1990年位に書いているから、半角カタカナとか使っちゃてるしw
(OS依存しちゃうな、こりゃ(^^;)
コイツはTSR(死語)…いや、常駐プログラム(これも死語かw)…で、実行すると「コマンドプロンプトがフェードイン/アウト」します。見た目、滑らかにグラデーションしながら点滅する感じです。
仕様としてはエスケープシーケンスで、プレーン1を色付きで指定した場合にグラデーションする感じだと思います(動かしていないので、なんとも言えないのが辛い…(^^;)
このプログラムは結構気にいっていて、ゲーム開発の朋友であるF田くんにも渡してあげて、彼も数年間自分のX68000に仕込んでくれていました。
私はいまだにターミナル系のソフトを何かしらのOSで起動したりしますが、このような表現を実現するソフトって見た事ないんですよねぇ~。背景が半透明になるものはやたらと見るのですが…
ですので、死ぬまでに何かのOSで作りたいと思っています。どーせやるなら、「コマンドプロンプトに虹色にグラデと、ボンジャック(アーケード版ですよ)風のグラデ、ナイトライダーのナイトフラッシャー風グラデ」と、この3つは実現しようかとw
よし、決めた!還暦になったら作ろう!(嘘
とまぁ、「忙しい忙しいといつも言っときながら、ファミレスで独り何やってんのかなぁ~」と、ちょっとだけ思ったりはしましたが、「ワイは、懐古主義なんや!(・3・)」と、開き直るという事で一つよろしくお願いいたします。(なんだそりゃw)
コメントの投稿
トラックバック
C_PROMPT.S: テキストパレット2をイルミネーションする常駐ソフト
おきブログ 週末はファミレスでコーディング OKI 氏による、RESET プログラムと「コマンドプロンプトがフェードイン/アウト」する常駐ソフト。 リセットプログラムは moveq + trap だと4バイトなので、.R 形式にコンバートして66バイトになるっていうのはおかしいです
« マック de 氷抜き l Home l 昔のゲームの想い出 [0127] 「ファルシオン」 [コナミ] [1987] [ファミリーコンピュータ] »
初めまして。OKIと申します。
私の日記にトラックバック&感想ありがとうございます。
とても嬉しかったです♪
X68000は名機ですよね~。想い出が一杯詰っています。(^^)