2017년 3월 5일 일요일

M v2.4의 백그라운드(ㅋ)스러운 프로그램 실행모드

M v2.4에 추가된 기능 하나를 소개해드립니다~


M에서 외부 프로그램을 실행하면, DOS 텍스트 모드로 복귀 후 실행이 되는데요.

물론 BASIC 프로그램은 BASIC 모드에서 실행되겠지만요. ㅎ.ㅎ


새로 추가된 실행모드를 쓰면,

M의 파일관리자 화면을 그대로 유지한 상태에서 외부 프로그램을 실행할 수 있습니다.


이 기능을 왜 만들었냐구요?ㅋ

VGMPLAY, KSSPLAY, MMC/SD Audio 등을 실행할 때, DOS로 갔다가 M으로 복귀하는게 귀찮아서요.

외부 프로그램의 실행 모습(DOS 출력 메시지)을 안봐도 괜찮은 경우에 사용하면 좋다는거죵~


아래는 제가 쓰는 M.INI 파일의 *.VGM, *.KSS, *.MA 파일 세팅입니다.

프로그램명 앞에 /(슬래쉬)를 붙이면 DOS 텍스트 모드로 복귀하지 않게 됩니다.




그럼, 실제로 M에서 실행해본 모습을 보시죠~





그럼, 즐거운 주말 되셔요~ ㅎ.ㅎ


2017년 3월 4일 토요일

paraMSX-R 제작 #5 - 슬롯 Bypass모드

두둥~ 주문한 PCB가 도착했습니다! ㅎ.ㅎ




칩 8개 모두 피치가 좁은 애들이라, 납땜이 쉽지않네요.

테스트 용으로 보드 두장 만들었습니다.





케이스를 씌우면 요렇게 됩니다.





보드 윗쪽에는 외부연결 용 슬롯 커넥터(IDC 50핀)가 있어서, 외부 카트리지와 연결가능합니다.

기본 슬롯 4개 중 3개는 CPLD 내부에서 동작이 됩니다. 남은 1개 슬롯이 외부 연결용인거죠~



에뮬모드를 켜기전까지는 본체는 paraMSX-R 카트리지가 없는 것처럼 동작하게 됩니다.

간단하게 "슬롯 Bypass모드"라고 이름을 붙였습니다.ㅋ

이 상태에서는 paraMSX-R가 확장슬롯의 버퍼 카트리지처럼 동작하게 됩니다.


제게 확장슬롯이 4개가 있는데, "4슬롯 + 2슬롯IO"으로 만들어진 놈을 주로 쓰고 있는데요.

여기에 연결해서 돌려보았습니다.

아래는 터보알 슬롯2에 연결된 모습입니다.





제가 만든 확장슬롯이랑 파라동20주년 확장슬롯(sinfox님 제작)은, 메인보드쪽에 버퍼가 들어있습니다.

그러니까 본체 연결되는 카트리지 내부엔 부품이 아무것도 없어요. 그냥 연장선 정도의 역할입니다.





만약 paraMSX-R에 확장슬롯을 연결하고 롬팩을 구동하게 되면, 신호는 아래처럼 흘러가게 되겠네요.

본체 슬롯 -> paraMSX-R [5V to 3.3V 레벨쉬프터 -> CPLD -> 3.3V to 5V 레벨쉬프터] -> 확장슬롯 버퍼 -> 롬팩


신호가 조금 딜레이 되겠지만, 왠만한 것(?)들은 잘 돌아가지 않을까 생각됩니다.

흐... 제가 갖고있는 카트리지를 이리저리 테스트해보니 동작 불안(불능)한 애들이 나오네요.

MMC/SD V3랑 MPX R2.0 두개가 안되는군요. ㅜ.ㅜ


아래는 동작확인했던 카트리지입니다.

PAC-V, FontPack, MPX R1.1, MoonSound v2.1, 필립스 Music Module, FM-PAC, SCC-I

그 외 일반 롬팩/메가롬팩은 열개정도 꽂아봤는데, 잘 돌아가네요.


아래는 현재 저의 책상샷입니다~




본체 왼쪽에는 paraMSX-R과 연결된 6슬롯이구요.

오른쪽에는 파라동20주년 확장슬롯입니다.

터보알 힘이 좋네요. 카트리지 많은데도 잘 돌아갑니다. ㅎ.ㅎb

참고로 저의 확장슬롯에는 따로 외부전원 안쓰고 있어요.



다음편에는 본격적인 paraMSX-R 에뮬모드 구현이 이어지겠습니다~

그럼, 다음에 또...


PS. 보드가 v1.1로 바뀌면서 외부슬롯 커넥터가 삭제되었습니다.

그러니까 본문 내용은 그냥 잊으시면 되겠습니다요~ ㅎ.ㅎ;


2017년 2월 16일 목요일

paraMSX-R 제작 #4 - H/W 구성

paraMSX-R 진행을 재개합니다! 10개월만인가요? ㅋ

H/W 구성을 어떻게 하는게 좋을지 고민을 많이 했는데, 대충 결론이 나왔습니다. 으흐...


-> 결론: 플래쉬롬으로 떡칠!


사실 작년에 처음 구상할 때에는, 램을 많이 넣고 구동할 때마다 로딩하는 방식이 유연하지 않을까 생각했거든요.

이런식으로 구동되는 방식인거죠.

1. 본체 전원 ON, paraMSX-R 카트리지는 Bypass 모드로 동작(본체에서는 보이지 않음ㅋ)

2. DOS2에서 PARAMSXR.COM 프로그램으로 에뮬 머신(대우 아이큐1000 등) 선택

3. 에뮬 슬롯 설정 및 필요한 롬(BIOS 등) 데이터 로딩

4. paraMSX-R 카트리지의 외부 슬롯 리셋

5. 에뮬 머신으로 구동


뭐랄까, 윈도에서 MSX 에뮬 프로그램을 실행하는 것과 비슷한 식입니다.

근데 이렇게 만들면, 게임 롬팩을 꽂아서 구동하는게 불가능하더라구요.

게임이 먼저 구동되면 도스로 부팅이 안되니까요. ㅎ.ㅎ;


동작 방법을 하나 더 생각했습니다.

paraMSX-R 카트리지에서 직접 에뮬 머신을 설정하고 자동으로 재부팅하는 방식이욤~


이런식입니다.

1. paraMSX-R 카트리지의 모드 스위치 ON 및 본체 전원 ON

2. paraMSX-R 카트리지는 일반 SW카트리지 처럼 구동됨 (paraMSX-R의 외부 슬롯은 Bypass 모드로 동작)

3. 에뮬 머신 선택 프로그램이 자동실행 (대우 아이큐1000 등 선택)

4. 선택된 머신으로 재부팅 (paraMSX-R 외부 슬롯은 에뮬 슬롯으로 연결되어 동작)


글로 써서 이해가 힘드실지 모르겠네요.

"paraMSX-R 카트리지의 에뮬모드 스위치를 켜면, 본체 부팅 시 에뮬 모드로 바로 진입" 정도로 생각하시면 되겠습니다.


필요한 데이터는 미리 플래쉬롬에 넣어두는 방식으로 갑니다.

이렇게 하면 로딩하는 시간이 없어서, 에뮬 모드로 바로 부팅하더라도 빠르게 구동할 수 있겠습니다.

"오늘 하루는 내 GT를 X-II처럼 쓰고 싶다" 이럴 때, 좀 편하지 않을까요? ㅎ.ㅎ


다음은 로직을 위한 CPLD 선택인데요.

paraMSX-R 카트리지는 외부 카트리지 슬롯이 하나 있습니다.

아마 실제 사용 시, 확장슬롯이 연결되어 쓰이게 되겠지요?

I/O 핀도 많이 필요하고 구현해야 될 회로 로직도 많이 들어가야하니, 용량도 조좀 커야겠구요.

144핀짜리 EPM1270 칩이 딱 적당하더라구요. I/O 핀을 계산해보니 딱맞게 나오는것 같구요. ㅎ.ㅎ


그리고 외부 슬롯은 IDC 50핀 커넥터로 장착됩니다.

슬롯 커넥터를 달아야하나 한동안 고민했는데요...ㅋ

제가 만든 확장슬롯, 예전 파라동 20주년 확장슬롯, 최근의 8421님의 확장슬롯~

모두 IDC 50핀으로 연결할 수 있으니 편하게 쓸 수 있을거라 생각되네요. ㅎ.ㅎ/


최종 결정된 보드의 H/W 구성입니다.

- 플래쉬롬 8MBytes + SRAM 2MBytes

- 144핀 CPLD EPM1270

- 외부 슬롯 커넥터 (IDC 50핀)

- 에뮬 부팅 스위치 및 동작 LED


요렇게 넣어서 PCB를 그려보았습니다.

추후 테스트를 위한 R2R DAC, 옵션 저항, OSC 등 잡다 부품도 넣어놨어요.





보드가 나오면 본격적으로 로직 구현에 들어갈 예정입니다.

이 때가 제일 신나죠~ ㅎ.ㅎㅋ