3
至少運行VICE 2.4:
PRINT PEEK(53280)
254
POKE 53280,14
PRINT PEEK(53280)
254
很顯然,only bits #0-#3 are used,並認爲「正確」的值與AND 15
獲得,但爲什麼 6510是否將高位設置爲1
?
至少運行VICE 2.4:
PRINT PEEK(53280)
254
POKE 53280,14
PRINT PEEK(53280)
254
很顯然,only bits #0-#3 are used,並認爲「正確」的值與AND 15
獲得,但爲什麼 6510是否將高位設置爲1
?
6510 CPU不會將未使用的高位設置爲1;相反,沒有內存支持適當的VIC寄存器中的高位。所以發生的情況是,CPU在寫入數據總線時將任何8位值放入數據總線,但VIC芯片只存儲低4位;然後,當CPU嘗試從該地址讀取數據時,它會在地址總線上放置53280,VIC芯片需要將全部8位放在數據總線上。但它只存儲了低4位;更高的4位將需要僞裝爲1.當然,它也可以爲這些額外位選擇其他假值(例如,它可以使用全零)。重點是,它必須是一個固定值,因爲真正的4位從未存儲在任何地方。
謝謝。然而,必須有一個原因,爲什麼它是設計的'1',並不是更方便'0'...也許一些硬件優化,除非這純粹是一個「隨機」的設計選擇。 – youri
我不能說nMOS,但TTL通常讀取任何未連接的輸入作爲正電壓或1位。這是晶體管在輸入端佈置的不對稱方式的一種人爲現象。我忘記了細節,但是一個快速搜索表明TTL輸入或者'拉到地面'(0)或者'沒有拉到地面'(1),所以當沒有連接時默認的回答是1也可能是最省電的答案是1)。 nMOS可能使用了類似的FET佈局......但我不知道。 – sh1