3

キーを押すためのこの ASM ルーチンを見つけました。キーを押すための ASM ルーチンをTurbo Basic ルーチンに含めたいのですが、これを行う方法がわかりません。ここで誰かがそれがどのように行われるか教えてもらえますか? ありがとう

編集: $INLINE という方法を見つけましたが、asm コードを機械語に変換して、基本プログラムにインライン化するにはどうすればよいですか?

編集: Asm コードを含むこの QBASIC を TURBO BASIC プログラムに入れることに成功しませんでした。それを行う方法について何か助けていただければ幸いです:

DECLARE FUNCTION GetKeyH% ()

CLS
DO
  LOCATE 10, 10
  PRINT "Key = "; HEX$(GetKeyH%); "    "
LOOP UNTIL INKEY$ = CHR$(27)
END

および ASM 部分:

Dosseg
.model medium, basic
.286
.stack
.code
Even
           public    getkeyh            ; make getkeyh public
getkeyh    proc far basic uses bp dx    ; save registers

           in   al,60h
           xchg dx,ax
           xor  ax,ax                   ; assume no key
           test dl,10000000b
           jnz  short getkeyhD
           mov  al,dl
getkeyhD:  ret
getkeyh    endp                         ; end of procedure
           end                          ; end of assembly code

ここに画像の説明を入力

編集:以下のMichael Petch氏の回答に感謝します。さらに、この ASM ルーチンは、押された CTL および ALT キーに対する解決策でもあることがわかりました。

4

1 に答える 1