キーを押すためのこの 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 キーに対する解決策でもあることがわかりました。