2024년 1월 26일 금요일

지난 20년 개발의 추억 #6 - paraMSX-R v1.1 마무리

월간 추억팔이 #6편이 나왔습니다~ ㅎ.ㅎ

지난 12월말에 글을 썼어야했는데 까먹었네요ㅋ


이전글을 보시려면, 아래 링크를 눌러주세요!

https://sharksym.blogspot.com/2023/07/20-1.html

https://sharksym.blogspot.com/2023/08/20-2.html

https://sharksym.blogspot.com/2023/10/20-3.html

https://sharksym.blogspot.com/2023/10/20-4-mmcsd-drive-v3.html

https://sharksym.blogspot.com/2023/11/20-5-paramsx-r.html



12.4 구조 변경


때는 2017년, 확장슬롯을 피기백으로 쓰는 구조를 결국 포기합니다.

물론 특정 확장슬롯에 최적화해서 제작하더라도 쓸모가 있겠습니다만...

결과적으로 paraMSX-R과 해당 확장슬롯이 한세트가 되어버리면, 쓰일 귀회를 많이 잃게 되겠죠.

paraMSX-R과 확장슬롯을 통합해서 만드는 방법뿐이라는 얘기가 되겠습니다.

이 방식은 수년 후 SLT-Turbo에서 쓰이게됩니다만,

paraMSX-R은 이 방식을 포기하고, 단독 카트리지의 형태로 제작하기로 결정했습니다.


뭐, 당연한 얘기가 되겠지만...

실제 사용 시, SLOT 1 = paraMSX-R, SLOT 2 = 확장슬롯 따로 연결이 되니까,

paraMSX-R에서 확장슬롯에 꽂혀있는 기기들을 직접 액세스하는게 불가능해집니다.


에뮬모드에서 주변기기를 어떻게 활용할 것인가? 이게 가장 큰 문제가 되겠어요.



12.5 우회 처리


그럼, 외부 기기들 중 필수가 되는 것들을 우회해서 활용할 수 있는 방법이 필요한데요.

지원되는 기기는 FMPAC (OPLL 제외), MSX-Audio (Y8950 제외), FontPack (폰트롬 제외)입니다.


정확히 말하면 우회 처리는 아니구요.

슬롯의 I/O로 동작가능한 부분은 기존 기기 그대로 구동하고,

메모리 영역(롬, 램, 매퍼 등)만 구현해서 넣은 것입니다요~

따라서 SCC-I, MPX 같은 메모리맵 I/O를 쓰는 사운드 칩은 활용이 불가능합니다.



12.6 기본 내장 기능


그 외 시스템 Flag, Kanji 폰트, 대우 한글폰트, PAC, 재미나 딜럭스박스 등, 자주 쓰이는 H/W도 구현해줍니다.

구동되는 본체(호스트)가 일제든 국산이든 상관없이, paraMSX-R의 내장 I/O와 충돌하지 않도록 구동됩니다.


따라서,

V9958 개조된 X-II에서 A1WSX 에뮬모드로 구동 후 Kanji 폰트롬 출력,

A1GT에서 X-II 에뮬모드로 구동 후 대우 데모 프로그램 실행

등의 상황을 연출할 수 있습니다.



12.7 가상 디스크


본체에 내장된 FDD를 연결하거나 외부 슬롯의 디스크를 연결해주는 가상의 디스크입니다.


원래 디스크롬은 마스터 디스크롬에서 슬레이브 디스크롬을 호출하는 방식인데요.

여기서는 가상의 마스터롬이 실제처럼 보이도록 만들어줍니다.

아래처럼 런처에서 슬롯을 선택할 수 있어요.




MSX에서 최대 4개의 디스크롬을 쓸 수 있는데, paraMSX-R에서는 일단 하나의 디스크롬만 매핑하도록 했습니다.

나중에 필요하면 기능을 추가할까 했는데, 6년이 흐른 지금도 딱히 떠오르는 활용 시나리오가 없네요. 그냥 패스~ㅋ


실제 동작은 아래 영상으로 구경하셔요!



12.8 롬디스크 부팅


요즘 실기를 쓰시는 분들은 보통 주변기기를 주렁주렁 달고 계시겠지만... (아니라구요?)

아무것도 없는 MSX2에 paraMSX-R을 쓰는 경우도 한번 생각해봤습니다.


디스크 드라이브가 없는 환경에서는 CALL PARAMSX 명령으로, paraMSX-R의 내장 롬디스크로 부팅이 가능합니다.

재부팅하면 PARAMSX.COM 프로그램이 자동으로 실행됩니다.


아래는 FS-A1에 paraMSX-R 하나만 꽂고, 대우 아이큐1000 모드를 구동 후 디럭스박스에 카세트로 로딩하는 모습입니다.

데이터레코더 대신 휴대폰으로 WAV파일을 재생했네요 ㅎ.ㅎ



12.9 보너스 기능


paraMSX-R은 오랫동안 고민해서 만든 결과물이긴한데, 조금 문제가...ㅎ.ㅎ

이게 실기를 켤때마다 사용하는 기기가 아니잖아요.

보통은 카트리지를 서랍에 보관하다 필요할 때 꺼내서 쓰는 상황이 되겠죠?

.

.

.

"Out of sight, out of mind"라는 말이 있습니다요.

카트리지가 안보이면 잘 안쓰이게 됩니다ㅋ


그래서 'paraMSX-R을 평상시에도 활용하고 싶다'라는 생각이 들더라구요.

어떤 기능이 좋을까 고민을 해봤는데, 그냥 램 2048KB를 몽땅 메모리매퍼로 구동하는 거였습니다. 단순! 간단!


H/W 특성 상, paraMSX-R을 기본슬롯에 꽂아야만 에뮬모드를 활용할 수 있으니...

확장슬롯에 꽂아서 부팅하면 자동으로 메모리매퍼 전용 모드로 바뀌도록 해놨습니다.

그리고, 카트리지의 EXIT 버튼을 누른채로 리셋하면 메모리매퍼 모드로 강제전환도 가능하구요.


나중에는 SLT-X 확장슬롯에서 기본슬롯 전환 기능을 넣어서, 좀 더 편하게 쓸 수 있도록 되었네요.

뭐, 그렇게 paraMSX-R은 확장슬롯에 붙박이로 자리잡게 되었습니다요~ ㅎ.ㅎ



paraMSX v1.1에서 최종완성이 되었네요.


그럼, 다음편에서 뵙겠습니다! ㅎ.ㅎ


댓글 없음:

댓글 쓰기