テスト用プログラムの作成 (LIFEゲーム)


サンプルプログラムとしてLIFEゲームを取り上げます。
キャラクタタイプの表示装置の場合、表示したい箇所のVRAMアドレスのメモリに キャラクタコードを書込み際すれば良い。
VRAMのベースアドレスを VRAM、書き込みたい箇所の座標をX、Yとするとき、 VRAM + ( Y * 80 ) + X のアドレスに書き込めば良い。


プログラムは、以下のようにアセンブルし、プログラムメモリ内に初期プログラ ムとして配置できるようにしておく。

kiteasm -l life.asm
lst2ram -s -f -2 life.lst
メモリの初期化は以下のように $readmemh を利用する。
   initial
   begin
      $readmemh( "life.ram", MEM );
   end


以下に、LIFE プログラムの一例を示す。
	;;
	;; Life Game for LCD Monitor on SpartanIIIe board
	;; 
	
	.word MAIN		; ARレジスタの初期値を0にしたことにより、
	.word 0			; スタートベクタが0番地に配置された。
	.word 0			; KITE-2 の仕様に合わせ、最初の16ワードを
	.word 0			; ベクタテーブルとする。
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0

MAIN:	ld16	#STACK		; sp = 0x800 スタックポインタの初期化
	mv	sp, acc

	;;
	;; Main Loop
	;;

NEXT1:	call	disp		; 生物情報の画面への表示
	call	wait		; 時間待ち
	call	clear_work	; ワークエリアの初期化
	call	simulation	; ライフ本体
	call	copy_work	; ワークエリアから初期エリアへコピー
	jp	NEXT1

disp:	...

wait:	...

clear_work: ...

simulation: ...

copy_work: ...

	end


| Back | CAD Home |


| Back |