2009년 11월 15일 일요일

파라동-4SLOT #1 CPLD 구현 및 테스트

이번에 흥건남자님이 확장슬롯 보드를 제작하고 있습니다.

여기 들어갈 서브슬롯 레지스터 회로를 제가 CPLD로 넣기로 약속(?)했습니다.

 

사실 서브슬롯 레지스터 구현은 간단한 것이라, 테스트 보드를 안만들어도 될 것 같았지만,

아무래도 안전하게 미리 해보는 게 좋겠지요. ㅎ.ㅎ;

 

일단 코드 다운로드(JTAG)하고 납땜하기 편하도록,

ALTERA CPLD인 EPM3032 44핀 PLCC 타입으로 결정했습니다.

 

44핀으로 만들려면 입력핀이 좀 부족하긴 한데 TQFP 납땜하는 것보다는 PLCC 소켓 꼽는게 제작하기 쉬우니까

일단 이렇게 하고, 모자라는 핀(어드레스 디코더 용)은 72LS20 한개로 보완하도록 했습니다.

(디바XX마트 쇼핑몰에서 구입시, 재료비 4000원 정도 나오네요.)

 

확장슬롯 처리는 왼쪽 소켓의 CPLD가 담당이고, 윗쪽에 3.3V 레귤레이터(CPLD 전원)랑 74LS20이 필요합니다.

보드에 슬롯 커넥터는 2개만 넣었습니다. (2개만 납땜하는데도 힘들어요...ㅋ)

 

사실 확장슬롯만 쓰면 아까울까봐, 여기에 1024KB 램 매퍼을 서브슬롯 0에 넣어서 IQ2000 활용에 보태려고 합니다. ㅎ

오른쪽 CPLD가 램매퍼 역할이고 그 옆에는 512KB SRAM 두개가 올라갈 예정입니다.

 

아래는 테스트 보드와 IQ2000/터보알에 꽂아 본 모습입니다.




본체에 꽂으면 사이즈가 딱 맞습니다. ㅎ.ㅎ

확장 슬롯에는 MMC/SD Drive v1.0과 v2.2를 한번 꽂아봤습니다.





PS. 완성 후 사진 추가합니다.

 

어제는 확장 슬롯만 동작 확인했었는데요, 이제 램매퍼도 구현되었습니다.

아래 사진 나갑니다요.

 

오른쪽 하단에 512KB SRAM 두개가 서브슬롯 0번에 연결됩니다.

(참고로 이 보드를 확장슬롯에 꽂으면 그냥 1024KB 램팩이 됩니다.)

 

램 매퍼도 같은 용량의 CPLD 한개로 구현되었습니다. OR 게이트 모자라서 74LS32 하나 추가했네요. ㅡ.ㅡ

램은 512KB / 1024KB  선택할 수 있도록 작은 딥스위치 하나 넣었습니다.




아래는 512KB SRAM 모듈 두장을 엎은 부분 사진입니다.

(SOP 변환 보드 무지 비싸요 ㅜ.ㅜ)

높이가 거의 일반 카트리지 높이랑 비슷합니다요.

왼쪽의 핀헤더 소켓은 IQ2000 상단 슬롯에 꼽을 때, 덮개에 걸리지 않도록 해줍니다. ㅋ




2009년 11월 13일 금요일

CPC-300 (IQ2000) 개조 - 동작 모습

막상 동작하는 것 찍어보려니, 특별 해볼만한게 생각이 안나네요. ㅎ.ㅎ;

 

BASIC으로 부팅 후, 키보드 (한글/일어/유럽 특수 문자/그래픽 문자 등) 좀 눌러보는 걸 찍어보았습니다.

 

순서는

대우 IQ2000, 대우 X-II, 파나소닉 FS-A1F, 필립스 VG-8240 순입니다.

참고로 모두 MSX2 모델입니다.

 

그럼, 감상하세요.

VG-8240의 경우 VDP 출력이 50Hz인데 수직해상도가 높다보니,

화면이 좀 눌린것 처럼 보이네요.




2009년 11월 12일 목요일

CPC-300 (IQ2000) 개조 - 플래쉬롬 조합

대우 IQ2000을 X-II 및 일제/필립스 MSX로 개조해보았습니다.

 

국산/일산/유럽산 등 MSX2는 내부 슬롯 세팅 외에, 기본적으로 MSX-BIOS 세팅에서 차이가 납니다.

- TV 영상 출력에 맞춘 VDP V-sync 50Hz/60Hz

   이 때문에 타이머 인터럽트 속도가 다른데, 유럽 MSX에서는 게임이 약간 느리게 구동되지요. ㅋ

- 각 나라별 키보드의 키 배열 및 문자 폰트. 

  참고로 대우는 일제 키보드와 같은 배열을 씁니다. 흔히 보는 미국식 배열이 아니고요.

 

여기서 대우 IQ2000는 내부에 3개의 EPROM이 들어있습니다.

MSX-BIOS ROM          : 슬롯 0-0

한글 BASIC                 : 슬롯 0-1

EXT-BIOS / 한글 BIOS : 슬롯 0-3

이 세개의 롬이 내부 확장된 슬롯0에서 동작합니다.

 

근본적으로 MSX에서 메인 BIOS만 슬롯 0-0에 있으면 되고, (일단 시스템 기동을 해야하니...불변입니다.)

나머지 확장 롬 또는 메모리는 아무 슬롯에 있어도 상관이 없는데요.

이것을 이용하면, 원래 슬롯 세팅이 다른 일본산/유럽산 MSX2으로도 개조할 수 있게 됩니다.

 

슬롯 세팅은 아래처럼 해보았습니다.




모델 하나 당 BIOS 롬이 128KB 필요한데요. (사실 슬롯 0-2는 램이라서 못쓰니까 96KB가 되겠네요.)

여기서 한글/KANJI BASIC은 Page1,2에 위치하도록 해야합니다.

실제 IQ2000의 EPROM 핀을 살펴보니, 이부분은 미러 롬이 되도록 (16KB 상하위를 반대로) 만들면 되겠더군요.

 

HW 구현은 간단하게 만들어졌습니다.

IQ2000의 보드상의 EPROM 3개를 뽑고 소켓의 위치를 맞춰보니,

일반 만능기판(2.54mm)이랑 같네요. 앗싸~ㅋ

핀헤더를 이용해서 기존 롬소켓 3개에 맞도록해주면 OK입니다.

 

남은 것은 512KB 플래쉬롬을 16등분해서 각 모델의 서브슬롯에 맞도록 매핑하는 것인데,

이건 EPROM의 /CE,/OE 신호를 A16,A15로 활용해서 간단하게 구현했습니다.

128KB씩 구분하는 부분은 외부에 스위치 2개를 조합하도록 했습니다.

플래쉬롬의 /CE, /OE를 위해 3인풋 AND TTL 칩하나만 쓰면 되는군요.

 

아래는 실제 IQ2000 보드에 꽂은 모습입니다.


세개의 롬 소켓이 보이는데,

왼쪽이 한글 BASIC, 가운데가 메인 BIOS, 오른쪽이 EXT 및 한글 BIOS입니다.




작업된 보드를 끼운 모습입니다.

대부분의 Addr/Data 라인은 가운데 소켓이랑 연결됩니다.




아래는 보드의 밑면이군요.

IQ2000 보드의 콘덴서랑 간섭되는 부분이 있어서, 모서리 부분을 조금 잘랐습니다.ㅋ




제작하는 것도 별로 힘들지 않고 재밌네요.

 

외부 스위치로 IQ2000, X-II, FS-A1F, VG-8240을 맘데로 선택할 수 있습니다.

특히 필립스의 유럽 모델은 VDP 출력 50Hz가 되니까, SW 테스트 할때도 요긴할 것 같네요.

 

물론 이걸로 끝나는 것은 아닙니다.

X-II와 일제 MSX2의 완성형 폰트 로직을 만들어야 하는데,

일단 각 폰트롬 256KB는 덤프되어 있으니, HW만 만들면 되겠네요.

이것도 외부 스위치로 한글 또는 한자 모드로 선택할 수 있도록 만들려고 합니다.

512KB 플래쉬롬이 하나 더 쓰이겠군요.


테스트해보니 X-II의 스크린9에서 한글/한자 폰트가 없으면, 그냥 내부 조합형 한글 출력으로 나오네요.

화면 가득히 박스만 나오려나 싶었는데, BIOS에서 롬체크를 하나봅니다.

에뮬에서도 테스트해보니 같은 결과네요. ㅎ.ㅎ

 

그럼, 다음 편을 기대해주세요.