FC-150, TMS9918 & Z80-CTC
FC-150의 회로중의 일부입니다.
전체적인 시스템을 분석하던중 그냥 놓쳤던 부분이었는데, 지금 조금 놀라고 있습니다.
Z80은 인터럽트 모드가 0,1,2가 있습니다.
Z80은 6502와 다르게 인터럽트가 걸리면 0038H 번지의 메모리에 있는 명령을처리합니다. 이것은 인터럽트 모드1입니다.
인터럽트를소프트웨어 인터럽트라고하는 8086처럼실행루틴을 고르는 RST 0(0000H).. RST7(0038H)의 번지로점프하는 인터럽트 모드 0.
그리고 가장 Z80을 멋지게 생각하는 인터럽트인 모드2는 인터럽트를 발생시키면 칩으로 부터 하위주소를 받아서 해당 메모리의 번지로 가서 실행하는 모드2 일종의 벡터방식이 되겠네요.
근데, FC-150을 분석하던 도중에 이 인터럽트 모드를 2를 사용하네요. 그간 펌웨어는 분석해 보지 않았는데, 순간 놀랐습니다.
그리고 회로도에서 보다시피 CPU의 INT는 CTC에만 연결되어있고, 외부 INT를 CIO에서 처리합니다. 이것은 Z80시절에는 없었던 인터럽트콘트롤러(8259)의 기능의 일부를 Z80 CTC로 해결한것으로 보입니다. 사실 8259 가 이것을 흉내낸것이지요.
당연히 TMS9918의 인터럽트도 Z80 CTC에 물려있습니다.
지금 FC-150과 가장 유사한 SEGA SG-3000의 게임을 FC-150에서 돌려보려고 계획하고 있습니다.
하는 도중에 TMS9918과 기타 IO기능관련된 어셈코드에많이 익숙해질것 같습니다.
나중에 많이 익숙해지만 MSX게임을 컨버트해서돌릴수 있지 않을까 하는 환상에 젖어보기도 합니다
기타: Z80이 6502보다 훨씬 우월하다고 인정하는것중의 몇가지가강력한 인터럽트의 특성,복잡한 리프레쉬회로의 내장으로 DRAM사용을 쉽게 해결,IO 어드레스의분리, 그리고 내부래지스터가16비트의 특징을 가지고 있다는것입니다.
애플의CPU로 6502CPU가 선택된것이 6800CPU계열의 명령이었고값이 상대적으로 매우 쌌다는것이 큰 이유였습니다. 좋았다는 이유가 아니었지요. 이런 이유로 많은것을 구현하려고 애쓴 워즈의 노고의 정도를가늠해볼수 있습니다.
Z80참 대단한 CPU인것 같습니다.
다음에는6809 CPU도 연구해 보려고 하고 있습니다.
'◆ FC-150' 카테고리의 다른 글
SORD.m5 BIOS (IPL ROM) (0) | 2012.04.28 |
---|---|
FC-150이 내가 가지고 있는 가장 Smart한 Z80머신 입니다 (2) | 2011.07.03 |
FC-150과 BASIC-W&Game 합본팩 (1) | 2011.06.15 |
FC-150 (Sord m5 emulator) (2) | 2011.06.13 |
SC-3000과 MSX1 에 대하여.. (0) | 2011.06.10 |