TI 83 Plus 汇编/输入
外观
在 TI-83+ 上,有三种方法可以从汇编程序接收输入。前两种是 ROM 调用,最后一种是直接与计算器的键盘进行交互。
这是两个使用 b_call() 宏调用的例程。它们都是接收输入的好方法。
此例程将等待用户按下键,只有当用户按下时,才会返回主程序。此例程的优点是它为您处理 [2nd] 和 [Alpha] 键按下。参数:无 返回值:累加器中的键值 要查看代码列表,请点击 这里
示例
.include "ti83plus.inc" . . . waitForUser: bCall(_GetKey) ; [x]Or: rst $28 \ .dw $4972 ; [x]Or: bCall($4972) cp kEnter jr nz,waitForUser jr continue continue: . . .
所以,该示例是一个简单的程序,它会暂停执行,直到用户按下 [Enter] 键。
此例程类似于 GetKey 例程,但有两个例外。第一个是,与 GetKey 例程不同,它不会等待用户按下键。第二个是它使用不同的键码集,您可以在 这里 找到。此外,它不会处理键组合,但您可以自己创建解析器。
参数:无 返回值:如果按下键,则累加器中的键码,否则为 0(在累加器中)。 示例
.include "ti83plus.inc" . . . waitForUserCSC: bCall(_GetCSC) cp 0 jr z,waitForUserCSC jr nz,continue continue: . . .
此示例将一直等待,直到按下任意键。
注意:这是一种更高级的方法,因为它直接处理键盘驱动程序。 TI 83+ 计算器的键盘分为七个部分。这些是
- 方向键
- [ENTER],垂直延伸到 [CLEAR]
- [(-)],垂直延伸到 [VARS]
- [.],垂直延伸到 [DEL]
- [0],垂直延伸到 [MODE]
- [STO->],垂直延伸到 [2ND]
- [Y=],水平延伸到 [GRAPH]
要读取组的键值,您必须首先打开该组。这是通过写入端口 1 (01 十六进制) 来完成的。
位 0 - 组 1
位 1 - 组 2
位 2 - 组 3
等等。要打开一个组,您需要将其指定的位设置为 0(零)。
示例
. . . waitForUserInputDirect: ; You cannot write an actual value to one of the ports. You must forward it through the (a) register. ; Use group '1' ld a,%11111101 out ($01),a ; Read in a value in a,($01) ; Test bit 0 (Enter) bit 0,a ; If true, goto continue jr z,continue ; Else jr waitForUserInputDirect continue: . . .
它与之前的两个示例做同样的事情。请注意,此方法不需要任何 ROM 调用,并且可读性较差。有关键码列表,请访问 这里。