前回のおさらい
前回は、PC-8801の画面要素の1つでテキストスクリーンに関するプログラム例を上げました。
グラフィック命令
今回はグラフィック命令です。
PC-8801のグラフィック画面はカラー画面で640×200ドットの画面で色が8色使えます。
最もかんたんなコマンドがPSET命令で点を打ちます。
PSET (X座標,Y座標),色
色は、0−7までの数値で1が青、2が赤、4が緑を表しており2のn乗値の合成で
0は黒、青と赤で3がシアン、青と緑で5がスカイブルー、赤と緑で6が黄色、青・赤・緑が7で白を意味します。
LINE命令は
LINE (始点X座標、始点Y座標) - (終点X座標、終点Y座標),色
という命令で選が引けます。
#サンプルプログラム
ZIZYOU.BAS
100 CLS 3:PCOL=2
110 LINE (0,100)-(639,100),5
120 LINE (320,0)-(320,199),6
130 MINX=-1!:MAXX=1!
140 MINXD=0:MAXXD=639
150 MINY=-1!:MAXY=1!
160 MINYD=199:MAXYD=0
170 FOR P=MINXD TO MAXXD STEP 8
180 X = MINX + P*(MAXX-MINX)/(MAXXD-MINXD)
190 PX = ((MAXXD-MINXD)*X + (MAXXD-MINXD))/(MAXX-MINX)
200 Y = MINY + (X*X)/(MAXY-MINY)
210 PY = (MAXYD-MINYD)*Y/(MAXY-MINY)
220 GOSUB 250
230 NEXT P
240 END
250 PSET (PX-1,PY),PCOL
260 PSET (PX,PY-1),PCOL
270 PSET (PX+1,PY),PCOL
280 PSET (PX,PY+1),PCOL
290 RETURN
解説を入れると
100行目から160行目で画面の初期化と定数値を変数に設定して
170から230目はループ命令のFORでMINXDからMAXXDまでの数値を8づつ増やしながらPに渡しています
その値から二乗値をYとしたグラフを書くための座標計算をしてGOSUB 250で実際にグラフを書くサブルーチンを呼び出しています。
250から290行目はサブルーチンの内容で4つの点を打ってグラフを描画しています。
このように、サブルーチン化することでループ全体を見通しやすくしています。
今回の動画