2017년 4월 15일 토요일

paraMSX-R 제작 #7 - FMPAC, DOS2, FDD 지원

- FMPAC/PAC BIOS가 추가되었습니다.

SRAM 세이브 등의 기본 기능을 위한 것이라고 보면 되겠네요.


아래는 IQ-1000 + FMPAC 모드로 구동한 모습입니다.

키티야님의 한글판 롬으로 실행해봤어요.




- 이제 paraMSX-R 에뮬 구동 중 종료하고 DOS2로 돌아올 수 있습니다.

카트리지 상단에 버튼 스위치가 추가되었습니다.

원래 슬라이드 스위치를 달았는데, 푸쉬 버튼으로 바꿨어요. ㅎ.ㅎ

써보니까 버튼이 편하네요.


스위치를 누르게 되면, 소프트 인터럽트를 발생시켜 종료할 수 있게됩니다.

프로그램 종료 시, CPU 레지스터랑 슬롯 값 한번 찍어봤어요.

혹시 디버깅 할때 도움이 될까 모르겠습니다. 흐...




- DOS2 지원이 추가되었습니다.

ASCII DOS2 v2.20 카트리지의 롬을 사용합니다.

KANJI 드라이버는 제거했습니다. 대우 MSX2에서 문제없도록이요~ㅋ



- FDD 지원이 추가되었습니다.

이부분이 paraMSX-R의 중요한 부분 중 하나인데요.

아마 이전 글에서 조금 언급이 되었을거에요.

본체의 FDD 또는 디스크 이미지 파일을 에뮬 드라이브로 연결(마운트)하는 방식입니다.

에뮬 상에서는 A: 드라이브로 인식되어 부팅가능합니다.


이제 좀 진짜 에뮬레이터...스럽네요.ㅋ

X-II + FMPAC + 재미나 디럭스카드 + FDD 세팅으로, 처절했던 19세기 환경을 재현할 날이 곧 오게되겠습니다요~ ㅎ.ㅎ



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

영상은,

1. IQ-1000 + FMPAC

2. IQ-2000 + FDD (퀸플 구동)

3. A1WSX + DOS2 + FDD (DOS2 디스켓 부팅)

4. A1WSX + FDD (피드백 구동)

...순으로 진행됩니다. 참고하셔요.





그럼, 즐거운 주말 되시구요!



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로 복귀하는 기능은 구현이 안되어있어요.

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




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


2017년 3월 7일 화요일

MMC/SD Drive V1,V2 - BIOS v4.13

Download: MMCSD_V1V2_BIOS_4.13.zip


------------------------------------------------------------------------------

    MMC/SD Drive BIOS v4.13 (2017.03.07)

        By 서영만 <sharksym@hitel.net>

------------------------------------------------------------------------------


* 개선 사항


- BIOS v4.13

  멀티롬 런처에서 게임 실행 시, 스택오류 수정

  (예: King's Valley II 실행 문제)


------------------------------------------------------------------------------