最終更新:ID:4mHyealEgA 2017年02月09日(木) 11:35:09履歴
メモリ空間 | $A |
---|---|
ルーチン番号 | 3 |
AccA≠0の場合は、AccAとAccBに格納されている文字コードに対応する全角文字を現在のカーソル位置へ表示し、カーソルを全角文字の1文字進めます。
現在のカーソルの水平方向位置がTTY出力範囲の右端-1の場合には、カーソルはTTY出力範囲内で1行下の左端に進みます。
現在のカーソル位置がTTY出力範囲内の最下位行で、水平方向位置がTTY出力範囲の右端-1の場合は文字出力後、TTY出力範囲内で1行スクロール・アップし、カーソル位置はTTY出力範囲内の左下端になります。
AccA≠0でカーソル位置が下図の斜線範囲外の場合は何もせずにリターンします。
なおTTY出力範囲の設定は、システム・コールTTYREGで行います。
AccA=0の場合は、AccBに格納されている文字コードに対応する半角文字をTTYCRと同機能で画面に出力します。
┌────────────────────┬─┐
│////////////////////│ │←
│////////////////////│半│T T
│////////////////////│角│T T
│////////////////////│文│R Y
│/////全角文字を出力可能な/////│字│E 出
│/////カーソル位置の範囲//////│1│G 力
│////////////////////│文│で 範
│////////////////////│字│設 囲
│////////////////////│分│定
│////////////////////│ │
└────────────────────┴─┘
現在のカーソルの水平方向位置がTTY出力範囲の右端-1の場合には、カーソルはTTY出力範囲内で1行下の左端に進みます。
現在のカーソル位置がTTY出力範囲内の最下位行で、水平方向位置がTTY出力範囲の右端-1の場合は文字出力後、TTY出力範囲内で1行スクロール・アップし、カーソル位置はTTY出力範囲内の左下端になります。
AccA≠0でカーソル位置が下図の斜線範囲外の場合は何もせずにリターンします。
なおTTY出力範囲の設定は、システム・コールTTYREGで行います。
AccA=0の場合は、AccBに格納されている文字コードに対応する半角文字をTTYCRと同機能で画面に出力します。
┌────────────────────┬─┐
│////////////////////│ │←
│////////////////////│半│T T
│////////////////////│角│T T
│////////////////////│文│R Y
│/////全角文字を出力可能な/////│字│E 出
│/////カーソル位置の範囲//////│1│G 力
│////////////////////│文│で 範
│////////////////////│字│設 囲
│////////////////////│分│定
│////////////////////│ │
└────────────────────┴─┘
- AccA≠0 AND ≠$77の場合
- AccA:JISコードの上位バイト $21〜$7E
- AccB:JISコードの下位バイト $21〜$7E
- AccA=$77 AND $21≦AccB≦$75の場合
- AccA=外字コードの上位バイト $77
- AccB:外字コードの下位バイト $21〜$75
- AccA=0の場合
- AccA:0
- AccB:ASCIIコード $00〜$FF
(5,5)にカーソルを表示後、任意のキーを押すとカーソル位置に"亜"が表示され、(7,5)にカーソルが移動します。
任意のキーを入力するとBASICに復帰します。
任意のキーを入力するとBASICに復帰します。
0 0000 ORG $0000 1 0000 KTTYCR EQU * --SAMPLE OF "KTTYCR" ROUTINE-- 2 0000 CC 0505 LDD #$0505 D:CURSOR POSITION(5,5) 3 0003 103F SWI2 CALL "GCURST" ROUTINE 4 0005 4A FCB $4A MAP NO=A ROUTINE NO=1 5 0006 01 FCB $01 6 0007 CC 050F LDD #$050F D:CURSOR CONFIGRATION 7 000A 103F SWI2 CALL "GCURSOR" ROUTINE 8 000C 4A FCB $4A MAP NO=A ROUTINE NO=0 9 000D 00 FCB $00 10 000E 103F LOOP1 SWI2 CALL "INKBD" ROUTINE 11 0010 4A FCB $4A MAP NO=A ROUTINE NO=F 12 0011 0F FCB $0F 13 0012 27 FA BEQ LOOP1 LOOP UNTIL A KEY IS PUSHED 14 0014 CC 3021 LDD #$3021 D:CHARACTER CODE 15 0017 103F SWI2 CALL "KTTYCR" ROUTINE 16 0019 4A FCB $4A MAP NO=A ROUTINE NO=3 17 001A 03 FCB $03 18 001B 103F LOOP2 SWI2 19 001D 4A FCB $4A 20 001E 0F FCB $0F 21 001F 27 FA BEQ LOOP2 LOOP UNTIL A KEY IS PUSHED 22 0021 39 RTS 23 END
コメントをかく