最終更新:ID:4mHyealEgA 2017年02月09日(木) 21:20:17履歴
メモリ空間 | 9 |
---|---|
ルーチン番号 | 5 |
Xに格納されているデータの上位1バイトを左上端の水平方向座標、下位1バイトを左上端の垂直方向座標、Yに格納されているデータの上位1バイトを右下端の水平方向座標、下位1バイトを右下端の標垂方向座標とし、左上端座標と右下端座標で指定される範囲内の画面を、AccAに格納されているデータ行数分スクロール・ダウンします。
カーソル位置は変わりません。
AccA=0の場合は、指定された範囲内の全画面をスクロール・ダウンします。
入力値が範囲外の場合は何もせずにリターンします。
│↓左上端座標 │
│┌───────────────────┐│
││///////////////////││
││///////////////////││
││///////////////////││
││//////指定範囲画面///////││
││///////////////////││
││///////////////////││
││///////////////////││
│└───────────────────┘│
│ 右下端座標↑│
└─────────────────────┘
カーソル位置は変わりません。
AccA=0の場合は、指定された範囲内の全画面をスクロール・ダウンします。
入力値が範囲外の場合は何もせずにリターンします。
- 表示画面
│↓左上端座標 │
│┌───────────────────┐│
││///////////////////││
││///////////////////││
││///////////////////││
││//////指定範囲画面///////││
││///////////////////││
││///////////////////││
││///////////////////││
│└───────────────────┘│
│ 右下端座標↑│
└─────────────────────┘
- X:
- (上位1バイト)左上端水平方向座標 0〜79
- (上位1バイト)左上端垂直方向座標 0〜19
- Y:
- (上位1バイト)右下端水平方向座標 0〜79
- (上位1バイト)右下端垂直方向座標 0〜19
- AccA:スクロール・ダウン行数 0〜20
- 0の場合は範囲内全面スクロール
画面全体に文字を表示後、任意のキーを入力すると、(5,5)、(60,15)を対角とする範囲内を5行スクロール・ダウンします。
任意のキーを入力するとBASICに復帰します。
任意のキーを入力するとBASICに復帰します。
0 0000 ORG $0000 1 0000 KSCLDW EQU * --SAMPLE OF "KSCLDW" ROUTINE-- 2 0000 108E 0000 LDY #0 3 0004 4F CLRA 4 0005 C6 30 LDB #$30 OUTPUT CHARACTERS ON SCREEN 5 0007 8E 0000 LOOP1 LDX #0 6 000A 103F LOOP2 SWI2 CALL "OUTCHR" ROUTINE 7 000C 4A FCB $4A MAP NO=A ROUTINE NO=C 8 000D 0C FCB $0C 9 000E 30 01 LEAX 1,X 10 0010 8C 0050 CMPX #80 11 0013 2D F5 BLT LOOP2 12 0015 5C INCB 13 0016 31 21 LEAY 1,Y 14 0018 108C 0014 CMPX #20 15 001C 2D E9 BLT LOOP1 16 001E 103F LOOP3 SWI2 CALL "INKBD" ROUTINE 17 0020 4A FCB $4A MAP NO=A ROUTINE NO=F 18 0021 0F FCB $0F 19 0022 27 FA BEQ LOOP3 LOOP UNTIL A KEY IS PUSHED 20 0024 8E 0505 LDX #$0505 X:SCROLL SCOPE 21 0027 108E 3C0F LDY #$3C0F Y:SCROLL SCOPE 22 002B 86 05 LDA #$05 A:LINE NO. OF SCROLL 23 002D 103F SWI2 CALL "KSCRDW" ROUTINE 24 002F 49 FCB $49 MAP NO=9 ROUTINE NO=5 25 0030 05 FCB $05 26 0031 103F LOOP4 SWI2 CALL "INKBD" ROUTINE 27 0033 4A FCB $4A MAP NO=A ROUTINE NO=F 28 0034 0F FCB $0F 29 0035 27 FA BEQ LOOP4 LOOP UNTIL A KEY IS PUSHED 30 0037 39 RTS 31 END
コメントをかく