日立MB-S1に関する情報

メモリ空間1
ルーチン番号1

機能

キーボード入力チェックと1文字分のデータを入力します。

解説

キーボードをチェックして、もしキー入力されていればCCRのZビットを0にリセットし、入力された文字コードをAccAに格納します。
また、キー入力されていなければCCRのZビットを1にセットします。
本ルーチンの出力情報の文字コードがMSKDCの第1バイト($81〜$9F、$E0〜$FD)の場合、漢字コード(2バイト)の入力が行われたことを示します。
この場合、再度本ルーチン呼ぶと、MSKDCの第2バイトを返します。
なお、半角の$81〜$9F、$E0〜$FDのコードは、入力してもBEEP音を出力し、入力は行われません。

出力情報

  • AccA:入力された文字コード($00〜$FF)
  • CCR(Z):キー入力情報
    • 0…キー入力が行われた状態
    • 1…キー入力が行われていない状態

サンプル・プログラム

内容

キーボードのキー入力チェックを行い、キー入力されるまでプログラムをループさせます。
そして、キー入力された時点でそのコードがMSKDCの第1バイトならば漢字コードの入力なので、再びKPOLKBをコールし、MSKDCの第2バイトを入力してAccA=MSKDC第1バイト、AccB=MSKDC第2バイトを返します。
最初の入力が、MSKDCの第1バイトでない場合はAccA=0、AccB=入力コードを返します。
 0 0000                     ORG  $0000
 1           0000   KPOLKB  EQU  *          --- SAMPLE OF "KPOLKB" ROUTINE ---
 2                  *       EQU  TABLE
 3           0081   MSKLS   EQU  $81
 4           00A0   MSKLE   EQU  $A0
 5           00E0   MSKHS   EQU  $E0
 6           00FD   MSKHE   EQU  $FD
 7           0000   ZERO    EQU  $00
 8 0000             KEYLP1  EQU  *
 9 0000 103F                SWI2            CALL "KPOLKB" ROUTINE
10 0002      41             FCB  $41        MAP No.=1 ROUTINE No.=1
11 0003      01             FCB  $01
12 0004   27 FA             BEQ  KEYLP1
13 0006   81 81             CMPA #MSKLS     COMPARE INPUT CODE WITH MSKDC CODE
14 0008   25 19             BCS  ASCII      IF 81H <= INPUT CODE < A0H OR
15 000A   81 A0             CMPA #MSKLE     E0H <= INPUT CODE < FCH
16 000C   25 08             BCS  KANJI      THEN INPUT CODE IS FIRST CODE
17 000E   81 E0             CMPA #MSKHS     ELSE INPUT CODE IS ASCII CODE
18 0010   25 11             BCS  ASCII
19 0012   81 FD             CMPA #MSKHE
20 0014   24 0D             BHS  ASCII
21           0016   KANJI   EQU  *
22 0016   34 02             PSHS A
23           0018           KEYLP2  EQU  *
24 0018 103F                SWI2            CALL "KPOLKB" ROUTINE FOR SECOND CODE
25 001A      41             FCB  $41        MAP No.=1 ROUTINE No.=1
26 001B      01             FCB  $01
27 001C   27 FA             BEQ  KEYLP2
28 001E   1F 89             TFR  A,B        SET ACCA=FIRST BYTE OF KANJI CODE
29 0020   35 02             PULS A          SET ACCB=SECOND BYTE OF KANJI CODE
30           0022   KBDEND  EQU  *
31 0022   3F                SWI 
32           0023   ASCII   EQU  *
33 0023   1F 89             TFR  A,B        SET ACCA=0, ACCB=ASCII CODE
34 0025   86 00             LDA  #ZERO
35 0027   20 F9             BRA  KBDEND
36                          END

コメントをかく


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

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

どなたでも編集できます