DCPU-16不接受键盘输入

use*_*478 2 assembly input dcpu-16

我已经开始学习DCPU-16的汇编以准备0x10c,但是在得到我正在运行的教程的结论时,我发现该程序没有响应键盘输入.进入一步一步,我发现代码被卡在循环设置让cpu等待键盘输入.

在这里违规:

IFE [0x9000 + I],0 ; if keyboard buffer is empty
SET PC,loop
Run Code Online (Sandbox Code Playgroud)

可能是因为代码适用于较旧版本的DCPU?如果是这样,它现在怎么样?

关于Stack溢出的第一篇文章,如果我做了任何失礼,请原谅我,谢谢大家.完整代码:

SET A,0
SET B,0
SET C, 0xF000
SET I, 0
:loop
IFE [0x9000 + I],0 ; if keyboard buffer is empty
SET PC,loop
IFE [0x9000 + I],8
SET PC, backspace
IFE [0x9000 + I],10
SET PC, enter
SET B, [0x9000 + I]
BOR B,C
SET [0x8000+A], B
SET [0x9000 + I], 0
ADD A, 1
ADD I, 1
IFE I, 16
SET I, 0
SET PC,loop
:backspace
SUB A, 1
SET [0x8000+A],0
SET [0x9000 + I], 0
ADD I, 1
IFE I, 16
SET I, 0
SET PC,loop
:enter
AND A, 0xFFE0
ADD A, 0x0020
SET [0x9000 + I], 0
ADD I, 1
IFE I, 16
SET I, 0
SET PC,loop
Run Code Online (Sandbox Code Playgroud)

Fog*_*ird 5

在最新的规格中,键盘是基于中断的,而不是使用地址0x9000处的内存映射.因此,如果您使用的是最新的模拟器,那么您的代码将无效.

http://dcpu.com/highnerd/rc_1/keyboard.txt