2017년 4월 1일 토요일

paraMSX-R 제작 #6 - 기본기능 구현

이제 본격적으로 내부 구현을 해야겠죠? ㅎ.ㅎ


MSX 머신을 만드려면 어떤 것들이 필요할까요?

자세한 내용은 "테크니컬 데이터북" 책에 다 나와있어요 ㅋ


참고로, 처음 생각했던 방법은 "paraMSX-R 제작 #1 - 구상" 게시물에 있습니다.

그럼 현재 구현 상황을 요약해봅니다.


[ 기본 H/W ]


1. CPU (동작 OK)


표준 Z80 3.58MHz 모드에 맞춰서 동작합니다.

본체(호스트 CPU)의 Z80을 그대로 재사용합니다.


paraMSX-R Tool 프로그램은 DOS2에서 동작이 되는데요.

본체 구동 -> paraMSX-R 보드 구동 -> 본체 구동으로 복귀가능하도록 제작될 예정입니다.

그러니까 DOS2 상에서 에뮬을 실행했다가 종료하면 원래 DOS2로 복귀하게 되는것이죠.



2. SLOT (구현 OK)


paraMSX-R에서는 자체적인 SLOT I/O를 갖게 됩니다.

본체(호스트 MSX)의 PPI SLOT I/O랑 충돌하면 동작이 안되니까요~

확장슬롯이 별도의 I/O로 되어있어서, paraMSX-R 카트리지를 본체의 확장슬롯에 꽂아도 동작됩니다.


슬롯0 - 기본/확장슬롯

슬롯1 - 카트리지 슬롯 (사용자 용)

슬롯2 - 카트리지 슬롯 (사용자 용)

슬롯3 - 기본/확장슬롯

으로 설정됩니다.



3. PPI - 키보드/CAPS LED/1BIT 사운드 (동작 OK), 카세트 (미구현)


PPI로 연결된 슬롯 I/O, 카세트 I/O 외는 모두 본체의 H/W를 그대로 재사용합니다.

카세트는 CAS 이미지파일로 가상의 카세트테입으로 구현될 예정입니다.



4. VDP (동작 OK)


본체의 H/W 그대로 재사용됩니다.

당연한거지만 VDP는 기본 기능들이 하위 호환됩니다.

제 A1GT에서 테스트 시, MSX1/2/2+ 머신으로 모두 잘 동작되는 것 확인했습니다.



5. PSG - 사운드/조이스틱 (동작 OK)


본체의 H/W 그대로 재사용됩니다.



6. OPLL (동작 OK)


본체의 H/W 그대로 재사용됩니다.



7. RTC (동작 OK)


본체의 H/W 그대로 재사용됩니다.

머신에 따라서 특수 데이터가 쓰일 수 있으니,

시계(CLOCK)외의 설정은 머신별로 따로 로드/세이브 하는 방식으로 구현됩니다.

만약 paraMSX-R의 CPLD 용량이 남으면, 본체 H/W를 쓰지않고 별도로 구현될 가능성도 있습니다.



8. System Flag (구현 OK)


본체의 소프트 리셋 상태를 확인하는 용도로 쓰이는 1BIT H/W입니다.

물론 터보알은 조금 다르지만, 에뮬 구현은 MSX2+ 기준입니다요~

A1WSX 머신으로 구동 시, 제대로 동작하는 것 확인되었습니다.



9. KANJI 및 한글/한자 폰트 (미구현)


아직 미구현 상태입니다.

KANJI JIS1 1셋, JIS2 2셋(소니/파나소닉), 한글/한자 1셋으로 구현될 예정입니다.



10. 메모리 매퍼 (구현 OK)


256KB 용량의 메모리로 들어갑니다.

IQ-2000 및 A1WSX 머신으로 동작 테스트되었습니다.



11. FDD (미구현)


본체의 FDD를 사용하는 방식과 일반 DSK 이미지파일을 사용하는 방식, 두가지로 지원될 예정입니다.

1차 구현목표는 DSK 이미지 구동입니다.



[ 부가 H/W ]


1. PAC/FM-PAC (미구현)


OPLL 칩이 없는 SRAM(또는 BIOS + SRAM)으로 구현될 예정입니다.



2. 재미나 디럭스카드 (미구현)


256KB (2메가비트) 메가램 카트리지로 구현될 예정입니다.



3. FontPack (미구현)


폰트 I/O를 제외한 BIOS + SRAM으로 구현될 예정입니다.

본체에 FontPack 카트리지가 꽂혀있어야 동작합니다.

OPLL 없는 FM-PAC과 유사한 방식입니다.



흐... 설명이 길었네요~

그냥 동작 사진으로 보는게 더 이해가 쉽겠죠? ㅎ.ㅎ



대우 IQ-1000의 구동 모습입니다.

슬롯0,1,2,3 모두 기본슬롯으로 설정된 상태입니다.





MSX1 호환 BIOS인 CBIOS1_JP의 구동 모습입니다.

참고로 CBIOS는 카트리지 INIT까지만 수행이 됩니다.

따라서 FDD 등의 구동은 안되구요. 간단한 롬팩 정도만 실행할 수 있어요.





대우 IQ-2000의 구동 모습입니다.

슬롯0는 확장슬롯으로 설정된 상태이구요. 메모리 매퍼는 256KB 설정입니다.

32인치 LCD에서 엄지손가락 로고가 뜨는걸 보니 재밌네요~ ㅋ




대우 재믹스 수퍼V의 구동 모습입니다.

이게 키보드 외장형의 MSX2 호환기...였던가요? 써본적이 없어서리...ㅋ

실기는 메모리 매퍼 64KB이지만, 그냥 256KB로 넣어서 돌렸습니다.





파나소닉의 마지막 MSX2+ 모델이죠. A1WSX의 구동 모습입니다.

슬롯0, 슬롯3 둘다 확장슬롯으로 설정되어 있습니다. 메모리 매퍼는 256KB 설정이구요.




마지막으로, 저의 A1GT에서 동작하는 모습을 영상으로 담았습니다.

에뮬 구동 후 DOS2로 복귀하는 기능은 구현이 안되어있어요.

에뮬 종료하려면, 본체를 리셋해야합니다. ㅎ.ㅎㅋ




그럼, 즐거운 주말 되셔요!


댓글 없음:

댓글 쓰기