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 등 잡다 부품도 넣어놨어요.





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

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


2017년 2월 10일 금요일

FontPack 제작 #10 - 확장슬롯 동작문제(BUSDIR) 수정

폰트팩 H/W 오류 수정에 대한 내용입니다.


현상: DATA 라인에 양방향 버퍼를 사용하는 확장슬롯에서 폰트 I/O 에러 발생

원인: 확장슬롯 용 BUSDIR 신호처리가 되지않음


아래는 BUSDIR 신호를 추가하여, 보드를 수정하는 방법입니다.

직접 수정해보실 분은 참고하셔요~ ㅎ.ㅎ


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


폰트팩은 2종류의 보드가 있습니다.

2015년에 제작된 DevPack v1.0

2016년에 제작된 DevPack v1.1 두 종류입니다. 보드 좌측 상단의 버전 번호로 확인가능합니다.

두 회로의 차이는 크게 없지만 신호 패턴이 조금 다릅니다.


회로 추가를 위해 74LS05 칩 및 4.7K옴 저항 2개가 필요합니다.

노란색 부분은 니퍼 등을 이용해서 보드의 신호선을 끊어주어야합니다.

나머지 부분은 색깔에 맞춰 서로 연결하면 되겠습니다.

74LS05 14번핀의 VCC 5V 입력은 보드의 상단의 넒은 부분에 납땜하면 됩니다.

칼등으로 살살 긁으면 녹색 페인트를 벗길수 있어요.


아래는 DevPack v1.0 보드를 위한 납땜 위치를 보여줍니다.




아래는 DevPack v1.1 보드를 위한 납땜 위치를 보여줍니다.




아래는 제가 작업한 모습입니다.

74LS05 칩의 다리를 구부려서 저항 두개를 납땜했습니다.




아래는 최종 작업된 모습입니다.