-2

以下の「processKey」関数は、キーボードで押されたキーを認識し、押されたキーに基づいて何らかのアクションを実行するように作成されています。以下にプログラムされているすべてのキーが機能します。4 つの矢印キー (上、下、左、右) と CTRL UP および CTRL DWN を検出する機能を関数に追加する必要があります。これらのキーにはアスキー コードがなく、スキャン コードがあることを理解しています。誰かがスキャンコードを見つけるのを手伝ってくれませんか? 私はオンラインで探してみましたが、あまり運がありませんでした。オペレーティング システムと関係がある場合は、Macintosh で Windows 8.1 を実行しています。ありがとうございました!

processKey PROC
    PUSH AX BX
    MOV AH, 10h
    INT 16h
    CMP AL, 1Bh                     ;ESC key?
    JE ESCKey
    JMP F1Key
 ESCKey:
    MOV     AH, 4Ch                
    INT     21h
 F1Key:
    CMP AX, 3B00h                   ;F1 key?
    JE toggleLineType
    JMP F2Key
 toggleLineType:
    CMP singleOrDouble, 0
    JE toggleDouble
    MOV singleOrDouble, 0
    JMP done
 toggleDouble:
    MOV singleOrDouble, 1
    JMP done
 F2Key:
    CMP AX, 3C00h                   ;F2 key?
    JE foregroundToggle
    JMP F3Key
 foregroundToggle:
    CMP foreground, 7
    JE resetForeground
    MOV BL, foreground
    INC BL
    MOV foreground, BL
    JMP done
 resetForeground:
    MOV foreground, 1
 F3Key:
    CMP AX, 3D00h                   ;F3 key?
    JE backgroundToggle
    JMP done
 backgroundToggle:
    CMP background, 7
    JE resetBackground
    MOV BL, background
    INC BL
    MOV background, BL
    JMP done
 resetBackground:
    MOV background, 1
 done:
    POP BX AX
    CALL drawBox
 RET   
processKey ENDP
4

1 に答える 1