주말이므로 취미 프로젝트를 작성하여 일주일 프로그래밍에 익숙해졌습니다.6502 CPU 에뮬레이션
어제 MOS 6502 CPU 에뮬레이터의 프레임 워크를 작성하여 레지스터, 스택, 메모리 및 모든 opcode가 구현되었습니다. (아래의 소스에 대한 링크)
필자가 작성한 디버거에서 일련의 작업을 수동으로 실행할 수 있지만 NES ROM을로드하고 지침에 프로그램 카운터를 가리키고 싶습니다. 결함있는 opcode를 찾는 가장 빠른 방법.
빠른 NES 롬 로더를 작성하고 ROM 뱅크를 CPU 메모리에로드했습니다.
문제는 opcode가 어떻게 인코딩되는지를 모른다는 것입니다. 나는이 연산 코드 인수를 찾을되어있어 어디 확실하지 않다 그러나 옵 코드 자체가 고유하게 작동 코드를 식별 오피 당 한 바이트의 패턴,
0 - BRK
1 - ORA (D,X)
2 - COP b
등
을 따르 것을 알고있다. 그것은 바로 뒤에 오는 바이트인가? 절대 메모리에서는 바이트가 아니지만 짧을 수도 있습니다.
이 CPU의 메모리 모델에 익숙한 사람이 있습니까?
편집 : 어둠 속에서 촬영되었을 가능성이 높지만, 여기에 숨어있는 올드 스쿨 애플 및 Commodore 해커가 있었으면합니다.
편집 : 여러분 모두를 도와 주셔서 감사합니다. 각 작업을 정렬하기 위해 적절한 변경을 구현 한 후 CPU는 Mario Brothers를로드하고 실행할 수 있습니다. 그것은 시작을 기다리고 루프하지만 아무것도하지 않는,하지만 좋은 징조 :
나는 소스 업로드 : 사람이 궁금 경우
http://www.codeplex.com/Cpu6502/SourceControl/DirectoryView.aspx?SourcePath=&changeSetId=1810
어떻게 에뮬레이터 작품은 아주 쉽게 따라와. 최소한의 최적화, 그러나 다시, 나는 2.4 기가 헤르츠 고출력 기계 :)에 2MHz의에서 실행되는 CPU를 모방하고있어이
이봐, 난이 (게시시) 당신 같은 상황에서 꽤 많이 해요 내가 좋아하는 것 귀하의 코드를 확인하지만, 링크가 깨진 것 같습니다. 아직도 갖고 있니? – Petruza