100 ORG 100H 110 LD E,0 ;横座標 120 LD D,2 ;縦座標 130LOOP: ;行番号とラベルとの間にスペースを入れてはならない。 140 LD A,'A' ;表示する文字をアキュムレーターにロードする。 141 PUSH DE ;IOCS を呼ぶ前にレジスタの値を待避しておく。 150 CALL 0BE62H ;IOCS を呼んで表示する。 151 POP DE ;IOCS を呼び終わったらレジスタの値を戻しておく。 152 LD BC,0 ;wait 処理 (16 ビットカウンターを初期化する) 153L1: ; 〃 154 DEC BC ; 〃 (カウンターを 1 だけデクリメントする) 155 LD A,B ; 〃 (16 ビットを 8 ビットずつにわけて両者の OR をとり、全部のビットがゼロになっているかどうかを調べて、ノンゼロならループを繰り返す) 156 OR C ; 〃 ( 〃 ) 157 JP NZ,L1 ; 〃 ( 〃 ) 160 LD A,'' 161 PUSH DE 170 CALL 0BE62H ;150 行目で文字を表示した座標に空文字を表示する (表示されていた文字を消す)。 171 POP DE 180 INC E ;横座標を 1 だけインクリメントする (1 だけ右にずらす)。 190 LD A,E ;横座標をアキュムレーターにロードする。 200 CP 24 ;アキュムレーターの値と 24 (1 行の最大文字数) とをコンペアする。 201 ;アキュムレーターの値のほうが小さいときに (つまり注目座標が画面をはみ出していないとき) C (キャリー) フラグが立つ。 210 JP C,LOOP ;C フラグが立ったら LOOP ラベルへジャンプして、また処理を繰り返す。 220 RET
参考: ポケコンジャーナル、1994 年 1 月号、p.68-69