2012-05-16 79 views
2

我已經開始學習DCPU-16的程序集以準備0x10c,但是當我到達tutorial的結尾時,我發現程序沒有運行,不響應鍵盤輸入。進入一步一步,我發現代碼被卡住了設置爲讓CPU等待鍵盤輸入的循環。DCPU-16將不接受來自鍵盤的輸入

問題的行這裏:

IFE [0x9000 + I],0 ; if keyboard buffer is empty 
SET PC,loop 

難道是因爲代碼是舊版本的DCPU的?如果是這樣,它現在將如何工作?

關於堆棧溢出的第一篇文章,如果我犯了任何錯誤,請原諒我,謝謝大家。 全碼:

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 

回答

0

即使與老規範,我相信,開始時間的緩衝索引存儲在$ 9010左右,而不是設置我爲0,你應該做的:

SET I, [0x9010] 
相關問題