AppleWin でApple2のゲームプログラミングに挑む

Windows10でも動きます。

ひょんなことからAppleWinというApple2のエミュレーターをダウンロードしたので、標準でついているBASIC言語でなにかゲームを作れないかと思案したものの当時のプログラミング方法について書かれた資料が非常に少なかったうえApple2でプログラミングする方法について書かれた日本語サイトも少なかったので記憶の整理がてら書いていこうと思います。

CATALOG:フロッピーディスクに描かれている内容を見る

SAVE セーブデータ名:フロッピーにプログラムデータを名前を付けて保存
    書き方:SAVE PINBALL

LOAD データ名:指定のデータを読み込む
    書き方:LOAD PINBALL 

IF文条件式の書き方

「~かつ~のとき」と書きたいとき
IF ( 条件 ) AND ( 条件 ) THEN 飛ぶ先なり結果

DATA文 :DATA 1,2,3…
このように書けば、複数のデータを一度に描ける。キャラのドット情報やマッピングに必須。

READ文: READ 変数
先ほどのDATA文からデータを読み出す命令。複数のデータも、配列とFOR文を書けば管理は簡単だが、指定の場所のDATAを読み出すことはできないようで。

FOR文: FOR I=0 TO 15 STEP 2
ほとんど通常のFOR文と変わらないが、通常なら1++などと書くところをSTEP 数字 と書くところに注意。

一応、Apple2 program reference と検索すればそれなりに情報は出てきます。ぜひ往年のプログラムに浸るもよし、昔のプログラムに浸ってみるのもいかがでしょうか?
ちなみに私は
画面上の緑と白のブロックを取ればクリア。青いブロックが操作するキャラ。

プログラムを実行すると、マリオの画像が左から右へ流れる。
といったものを作ってみました。うえのものはパックマンのようなものを作ろうと思い、まずはマップの表示とキャラクターのあたり判定を確認し、二枚目は複雑な画像の表示と座標の移動を実験しました。どちらもとりあえず目的は成功しましたので満足満足(・ε・)
しかし1MhzのCPUの世界なので、非常に遅くこれではゲームにならない…やはりアセンブラに手を出すしかないみたいですが…え?Apple2には画面が二つある?どういうこと?
というわけで、次回はApple2の裏ページとPEEK,POKEに挑んでみようと思います。
でもBASICしか使えないのに、どうやってアセンブラを書くんでしょうね…

コメント

このブログの人気の投稿

ファミコンの完全自作ROM&カセットを作ろう!!その1~立ちはだかるコンパイラの壁~

ファミコンの完全自作ROM&カセット作ろう!〜cc65で起動ROMをつくる〜

74HC595を使ってarduinoの16ビットパラレル出力に挑んでみた