日立MB-S1に関する情報

メモリ空間$A
ルーチン番号3

機能

漢字、外字、ASCII文字を画面の現在のカーソル位置へTTY形式で出力します(TTY形式出力とは、カーソル移動制御を伴う文字出力のことです)。

解説

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 力
│////////////////////│文│で 範
│////////////////////│字│設 囲
│////////////////////│分│定
│////////////////////│ │
└────────────────────┴─┘

入力情報

  • 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に復帰します。
 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

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

どなたでも編集できます