最終更新:ID:4mHyealEgA 2017年02月06日(月) 20:22:57履歴
メモリ空間 | 1 |
---|---|
ルーチン番号 | 1 |
キーボードをチェックして、もしキー入力されていればCCRのZビットを0にリセットし、入力された文字コードをAccAに格納します。
また、キー入力されていなければCCRのZビットを1にセットします。
本ルーチンの出力情報の文字コードがMSKDCの第1バイト($81〜$9F、$E0〜$FD)の場合、漢字コード(2バイト)の入力が行われたことを示します。
この場合、再度本ルーチン呼ぶと、MSKDCの第2バイトを返します。
なお、半角の$81〜$9F、$E0〜$FDのコードは、入力してもBEEP音を出力し、入力は行われません。
また、キー入力されていなければCCRのZビットを1にセットします。
本ルーチンの出力情報の文字コードがMSKDCの第1バイト($81〜$9F、$E0〜$FD)の場合、漢字コード(2バイト)の入力が行われたことを示します。
この場合、再度本ルーチン呼ぶと、MSKDCの第2バイトを返します。
なお、半角の$81〜$9F、$E0〜$FDのコードは、入力してもBEEP音を出力し、入力は行われません。
キーボードのキー入力チェックを行い、キー入力されるまでプログラムをループさせます。
そして、キー入力された時点でそのコードがMSKDCの第1バイトならば漢字コードの入力なので、再びKPOLKBをコールし、MSKDCの第2バイトを入力してAccA=MSKDC第1バイト、AccB=MSKDC第2バイトを返します。
最初の入力が、MSKDCの第1バイトでない場合はAccA=0、AccB=入力コードを返します。
そして、キー入力された時点でそのコードが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
コメントをかく