2016-09-04 12 views
3

적어도 VICE 2.4을 실행하는 :

PRINT PEEK(53280) 
254 

POKE 53280,14 

PRINT PEEK(53280) 
254 

그것은 분명 그 "올바른"값은 AND 15 얻을하지만 only bits #0-#3 are used, 그 6510은 상위 비트를 1으로 설정합니까?

답변

4

6510 CPU는 사용하지 않은 상위 ​​비트를 1로 설정하지 않습니다. 오히려 적절한 VIC 레지스터의 상위 비트를 뒷받침하는 메모리가 없습니다. 따라서 CPU는 쓰기 작업시 데이터 버스에 8 비트 값을 넣지 만 VIC 칩은 하위 4 비트 만 저장합니다. 그런 다음 CPU가 해당 주소에서 읽기를 시도하면 주소 버스에 53280을 넣고 VIC 칩은 데이터 버스에 8 비트를 모두 넣어야합니다. 그러나 하위 4 비트 만 저장했습니다. 상위 4 비트는 1로 위조되어야 할 필요가 있습니다.

물론 이러한 여분의 비트에 대해 다른 가짜 값을 선택할 수도 있습니다 (예 : 모든 0을 사용할 수 있음). 핵심은 실제 4 비트가 아무 곳에도 저장되지 않았기 때문에 고정 값이어야한다는 것입니다.

+0

감사합니다. 그럼에도 불구하고 설계 상 '1'이고 편리하게 '0'이 아닌 이유가 있어야합니다 ... 하드웨어 최적화가 아니라면, "임의"디자인을 선택하지 않는 것이 좋습니다. – youri

+1

nMOS에 대해 말할 수는 없지만 일반적으로 TTL은 연결되지 않은 입력을 양극 전압 또는 1 비트로 읽습니다. 이것은 트랜지스터가 입력에 배치되는 비대칭 방식의 인공물이었습니다. 세부 사항을 잊어 버렸지 만 빠른 검색은 TTL 입력이 '땅에 뽑았습니다'(0) 또는 '땅에 가져 오지 않았습니다'(1)라고 제안하므로 아무 것도 연결되어 있지 않으면 1이됩니다 가장 전력 효율이 좋은 대답이 1 일 수도 있습니다. nMOS가 유사한 FET 배열을 사용했을 가능성이 있습니다 ... 그러나 나는 모른다. – sh1