2019년 9월 29일 일요일

SLT-X 제작 #2 - 동작 모드

SLT-X는 사용자 입맛에 맞춰 여러가지 조합(?)으로 구동할 수 있습니다.


기본적인 동작 모드는 현재 결합된 슬레이브 보드의 개수에 따라 자동으로 정해집니다.

부팅 중 SLTX 매니저 롬으로 모드를 변경하거나,

부팅 후 특정 슬롯의 모드를 바꾸는 등의 재설정을 할 수 있습니다.


매니저 롬은 마스터 보드에 내장되어있습니다.

256KB 플래쉬롬으로 들어있구요.

관리를 위한 프로그램과 SLTX의 초기설정을 저장하는 목적으로 사용됩니다.

매니저 롬에 관한 자세한 내용은 다음편(3편?ㅋ)에서 말씀드릴테니, 일단 넘어가셔요~ ㅎ.ㅎ



그럼, 각 동작 모드에 관한 설명이 나갑니다~


1. 1-SLOT 모드




마스터 보드 하나만 연결된 상태의 모드입니다.


보드에 장착된 플래쉬롬이 SLOT으로 연결되고, 슬롯 커넥터는 I/O SLOT으로만 동작됩니다.

결국, 일반적인 용도의 모드가 아니라는 얘기입니다.


이 모드에서 부팅하면, SLTX의 내부 설정을 위한 매니저 롬이 자동으로 실행됩니다.

만약 SLTX를 실기의 SLOT 2에 꽂았다면, 매니저 롬이 SLOT 2(기본슬롯 상태)에서 구동됩니다.


마스터 보드의 EX-SLOT 딥스위치는 원래 목적(EX-SLOT 신호설정)으로 사용되지 않고,

"안전모드"를 강제로 설정하는 용도로 사용됩니다.


EX-SLOT 딥스위치를 ON:ON 상태로 놓으면, "안전모드"로 설정됩니다.

이 상태에서는 각종 설정값이 디폴트로 구동됩니다.


참고로 디폴트 설정은 아래와 같습니다.

MANAGER ROM = OFF

ALL SUB SLOT = ON

ALL EX-SUB SLOT = ON

ALT-SLOT = I/O SLOT mode

SLOT-OUT = OFF

각각의 SLOT 명칭은 매니저롬을 설명 할 때, 알려드리겠습니다. (그냥 넘어가세요~ㅋ)


만약 매니저롬을 업데이트(플래쉬롬 다운로드) 도중 전원이 꺼지는 등의 사고(재난?) 발생 시,

안전모드로 부팅 후 다시 롬을 다운로드 할 수 있습니다.



2. 4-SLOT 모드




마스터 보드에 슬레이브 보드 1개를 연결한 상태의 모드입니다.


기본 기능은 통상의 확장슬롯과 같습니다.

슬롯 커넥터 4는 SUB SLOT으로 구동이 됩니다.

SLTX를 본체의 SLOT 2에 연결했다면, SUB SLOT은 SLOT 2-0,2-1,2-2,2-3으로 동작합니다.


부가기능으로는 SLOT-OUT을 쓸 수 있습니다.

특정 슬롯의 /SLTSL 신호를 /RSV1(5번핀) 또는 /RSV2(16번핀)으로 출력가능합니다.

SLOT-OUT에 관한 자세한 내용은 다음번에 알려드릴께요.

한줄 요약하면,

SLOT 0-x, SLOT 1-x, SLOT 2-x의 12개 슬롯 신호 중 2개를 선택/출력하는 기능입니다.


EX-SLOT 딥스위치는 1-SLOT 모드와 유사한 "안전모드"를 선택하는 용도로 사용됩니다.

딥스위치를 ON:ON 상태로 놓으면, 진짜 기본적인 확장슬롯(4슬롯)으로 동작하게 됩니다.

MANAGER ROM, ALT-SLOT, SLOT-OUT 모두 OFF됩니다.



3. 7-SLOT 모드




마스터 보드에 슬레이브 보드 2개를 연결한 상태의 모드입니다.

여기서부터가 진짜 SLTX의 제작목적과 연관된 부분입니다요~ ㅎ.ㅎ


슬롯 개수부터가 조금 요상하죠?

통상적인 6슬롯에 슬롯 한개가 더 붙은 형태입니다.


ALT 1, ALT 0 슬롯은 사용자가 /SLTSL 신호를 선택해서 구동합니다.

기본적으로는 /SLTSL OFF 상태라서, I/O SLOT으로 동작합니다.

SLOT 0,1,2 슬롯의 모든 서브슬롯 12개 중에서 선택가능합니다.

실제로는 11개가 되겠네요. SLOT 0-0은 못쓰니까요~ㅎ


파나소닉의 MSX2+, turboR 계열은 SLOT 0가 모두 확장되어있고,

사용하지 않는 슬롯이 한두개 정도가 있으니, 요걸 할당해서 사용하면 좋습니다.

보통 6슬롯을 만들 때에는, 본체를 개조해서 SLOT 0-1, 0-3의 /SLTSL 신호를 뽑아서 쓰는데요.

SLTX를 쓰면 본체를 개조할 필요가 없습니다. /SLTSL 신호를 직접 생성해서 사용합니다.


SUB 3,2,1,0 슬롯은 4-SLOT 모드와 동일한 일반 확장슬롯입니다.


EX-SLOT은 4가지 /SLTSL 신호 중에서 선택구동하는 슬롯입니다.

마스터 보드의 딥스위치를 통해 신호를 선택할 수 있습니다.

ON :ON  = RSV 2 (슬롯 핀16번 입력신호)

ON :OFF = RSV 1 (슬롯 핀5번 입력신호)

OFF:ON  = SLOT 2 (SLTX 내부생성 신호)

OFF:OFF = SLOT 1 (SLTX 내부생성 신호)


보통 확장슬롯 기기를 본체의 후면 슬롯에 연결하는 경우가 많은데요.


예를 들어,

SLTX를 GT 후면 슬롯(SLOT 2)에 연결하고, EX-SLOT을 SLOT 1으로 사용가능합니다.

이 때, GT의 상단 슬롯(SLOT 1)은 EX-SLOT과 같은 슬롯번호가 되니까, GT의 슬롯은 비워둬야합니다.


다른 예로,

SLTX를 X-II의 후편 슬롯(SLOT 3)에 연결하고 EX-SLOT을 SLOT 1으로 선택하면,

본체의 전면 슬롯을 비워두고 사용가능합니다.


만약 본체를 개조해서 RSV1, RSV2 핀을 /SLTSL로 출력하고 있다면,

EX-SLOT을 RSV1, RSV2 신호로 선택해서 쓸 수 있습니다.


또 다른 예로 ㅎ.ㅎ;

본체의 SLOT 0가 확장되어 있고 SLOT 0-2가 비어있는 상태인데, 이걸 EX-SLOT으로 뽑아내려면?

SLOT-OUT 출력으로 SLOT 0-2를 설정하고, 해당 SLOT-OUT 신호를 EX-SLOT의 RSV핀으로 선택하면 됩니다.

참고로 SLOT-OUT0는 RSV1으로 출력되고, SLOT-OUT1은 RSV2로 출력됩니다.

글로 적으니 좀 복잡한데, 머리속으로 그림을 한번 그려보셔요~ ㅎ.ㅎ



4. 10-SLOT 모드




마스터 보드에 슬레이브 보드 3개를 연결한 형태의 모드입니다.

사실 슬레이브 보드를 4개,5개,,, 계속 연결해도 10-SLOT 모드가 됩니다.

실제로 이렇게 쓰일 경우는 없겠지만...

4번째 슬레이브 보드부터는 해당 보드의 슬롯 커넥터는 전부 I/O SLOT으로만 동작합니다.

참고만 하세요~


7-SLOT 모드와 비슷하게 동작이 됩니다.

EX-SLOT에서 선택한 슬롯이 확장이 된다는 것이 차이입니다.

그러니까, SLTX를 GT의 후면 슬롯에 꽂고 EX-SLOT을 SLOT 1으로 선택하면,

통상의 확장슬롯 두개를 SLOT 1,2에 각각 꽂은 것과 비슷한 환경이 되는거지요.


만약 EX-SLOT을 RSV1, RSV2로 선택했을 때는

해당 신호가 기본 슬롯의 /SLTSL 신호가 아니라면, EX-SLOT가 확장슬롯이 되진않습니다.

EX-SUB 0 외의 1,2,3 슬롯은 그냥 I/O SLOT으로 동작하겠죠.



여기까지 각 동작 모드를 간단히 적어보았습니다.

대충 감이 오시죠? ㅎ.ㅎ



근데, 동작 모드를 부팅 중에 바꿀 수 있다고 했는데 기억하시나요? (글 앞부분에 있어요)

예를 들어 평소에는 슬레이브 보드 3개를 연결해서 10-SLOT 모드로 쓰다가,

뭔가가(?) 필요할 때, 7-SLOT 모드로 변경해서 EX-SLOT을 확장슬롯에서 기본슬롯으로 바꾼다거나..

그런걸 할 수 있어요.


그러면, 아래 사진처럼 슬롯 설정이 되겠네요.

7-SLOT에서 쓰는 슬롯 커넥터 외에는 모두 I/O SLOT으로 변경됩니다.




10-SLOT의 EX-SUB 3 자리가 EX-SLOT 기본슬롯으로 바뀌는데요.

기본슬롯과 확장슬롯에서 동작이 바뀌는 카트리지를 활용할 때 유용합니다.


paraMSX-R이 대표적인 예가 되겠네요.

요놈은 원래의 머신에뮬 기능을 쓰려면 기본슬롯에 꽂아야합니다.

만약 확장슬롯에 꽂으면 머신에뮬을 쓰지 못하기 때문에,

기동롬(STARTUP ROM)에서 paraMSX-R을 메모리매퍼 2048KB로 동작 모드를 바꿔줍니다.

그러니까 그냥 2MB 매퍼램팩이 되는거죠.


근데 이 때는 카트리지 구조가 바뀌니까 소프트 리셋도 함께 해줍니다.

결국 EX-SUB 3 자리에 꽂아두면, 부팅할 때마다 소프트 리셋을 한번씩 하게되겠죠.

설명이 길었지만...

진짜 메모리가 필요한 경우(대용량 VGM 재생 등)가 아니라면 잘 안썼다는 얘기입니다.


근데 이걸 SLTX가 미리 관리(?)를 해주면 편하게 쓸 수 있지않을까요?

평상시에는 paraMSX-R을 메모리매퍼 2048KB로 쓰고 소프트 리셋은 안해도 되도록~

paraMSX-R의 에뮬모드를 쓸때는 10-SLOT에서 7-SLOT모드로 바꾸고 EX-SLOT을 기본슬롯으로 구동~


사실 이 시나리오 때문에, SLTX의 요상한 구조가 만들어졌다고 보시면 맞습니다ㅋㅋ

실제로 동작 모습은 이렇습니다.


> 10-SLOT 모드에서 paraMSX-R가 메모리매퍼로 구동




> 7-SLOT 모드에서 paraMSX-R가 기본 모드로 구동





그럼, 다음편에서 뵙겠습니다요~ ㅎ.ㅎ/


2019년 9월 24일 화요일

SLT-X 제작 #1 - 확장슬롯의 재구성 (2탄?)

10년전에 같은 제목으로 글을 올린적이 있는데, 기억하시는 분 계실지 몰겠네요.


그게... 요놈 얘기였는데요.





이제부터는 돌아온 "확장슬롯의 재구성" 이야기입니다. ㅎ.ㅎㅋ

GT와 동고동락하던 확장슬롯이 맛이 가는 바람에 새로 만들어야하는 상황에 놓였습니다.

지금은 이런 모습입니다. 미라...같네요ㅋ





기존 기기는 기본 확장슬롯(SUB 4슬롯) + RSV 5핀/16핀 두개를 /SLTSL로 추가한 6슬롯이었지요.

이번에는 조금 다르게 만들어보려고 합니다.

그동안 제작된 주변기기들을 좀 더 편하게 쓰려는데에 목적이 있다고 보심되겠네요.


주변기기들을 떠올려보면...

 필수기기는 MMC/SD Drive, SCC-I, FontPack, MPX, RS-232C, MoonSound,

 기본슬롯을 써야하는 paraMSX-R,

 본체슬롯에 꽂아야 각이 나오는 PAC-V,

 가끔 한번씩 꽂아보는 게임팩 및 듀얼 MMC/SD V4...

주로 쓰는건 이 정도네요.


기존 환경(GT + 6슬롯확장)에서 가장 불편했던 점은,

1. 본체 슬롯(SLOT 1)을 독점해야하는 PAC-V와 paraMSX-R가 경쟁

2. PAC-V로 인한 SLOT 1의 낭비? (기본슬롯 한개를 독점)

3. DOS2 + M + VGMPLAY 활용으로 램 소모가 많은 경우, 외부 매모리매퍼램이 추가필요


참고로 오디오 증폭의 경우는 기존 2단,3단 증폭만으로도 충분했기 때문에...

요건 그대로 가려고 합니다.



그럼 이제 머리를 좀 굴려봅시다요~


1) 불편사항 1,2번을 해결하는 가장 간단한 방법은 뭘까요?

본체의 기본슬롯인 SLOT 1 신호를 외부 확장슬롯에서 사용하고,

본체에 남은 슬롯은 SLOT 0-1 용도로 쓰는 것이죠.


사실 처음 구상할 때는...

확장슬롯에서 SLOT 1-0, 1-1, 1-2, 1-3의 /SLTSL 신호를 만든 후

SLOT 1-0 신호를 확장슬롯에서 본체쪽으로 보내서 PAC-V가 본체 슬롯에서 구동하는 식이었어요.

RSV1,2 핀의 입출력을 반대로 활용하는 방식입니다.

(글로 적어서 이해하기 좀 힘드실지도 모르겠네요)


이 방법 보다는 그냥 확장슬롯은 SLOT 1-0...1-3 전체를 그대로 쓰고,

본체에 꽂는 카트리지(PAC-V)가 SLOT 0-1신호를 독점하는게 더 나은 방법으로 생각되었습니다.


확장슬롯에서 본체로 /SLTSL 신호를 보내는 기능 자체는 들어가겠지만,

X-II 등의 다른 기종에서 더 유용하게 쓸 수 있을까 생각이 되네요.


여담이지만, PAC, FMPAC는 SLOT 0-x에 존재하더라도 대부분의 S/W에서 잘 인식됩니다.

OPLL 사운드(MSX-MUSIC)는 본체 내장할 때, SLOT 0-x 또는 SLOT 3-x에 들어가기 때문이거든요.



2) 확장슬롯에서 SLOT1,2 모두 확장할 때 고려사항


SLOT1,2가 모두 확장되면, 불편사항 3번은 그냥 사라지게 됩니다.

슬롯이 늘어나면 매퍼램 카트리지를 추가하는데 불편함이 없으니까요~


근데 SLOT 1,2 모두 확장해버리면 또 다른 불편함이 생길 수 있겠죠?

기본슬롯이 필요한 경우도 종종 있으니까요.

기기 제작 후 테스트 할 때도 기본슬롯/확장슬롯 테스트도 필수이겠구요.


고민끝에 내린 결론은 확장슬롯의 동작모드를 다양하게 만들어보자...입니다.

- 본체 물리슬롯에 연결된 확장슬롯(기본 4슬롯)

- 기본슬롯 SLOT 1(1슬롯) + 물리 확장슬롯(4슬롯)

- 확장슬롯 SLOT 1(4슬롯) + 물리 확장슬롯(4슬롯)


물리슬롯이라고 쓴건 실제 본체에 연결된 슬롯번호를 의미합니다.

GT 후면 슬롯이라면 SLOT 2가 되겠구요. X-II 후면 확장BUS라면 SLOT 3이 되겠네요.


그리고 동작 모드도 많고 기타 설정도 많아지면, S/W로 설정을 바꿀 수 있는게 좋겠네요~ ㅎ.ㅎ



3) 실제 모습은 어떻게?


일반 카트리지 용 보드를 만드는 경우라면 업계 표준인 OVERRICH 케이스에 맞추면 땡입니다.

확장슬롯은 사이즈가 크니까 케이스를 따로 만들어야겠죠?

근데 이쪽은 제 능력밖이라..ㅋㅋ

그래서 보드 사이즈를 작게 만들고 OVERRICH 케이스를 이용해서 합체/분리하도록 디자인했습니다.

마스터 보드 1개 + 슬레이브 보드 N개를 결합하는 방식입니다.

본체와 연결하는 50핀 IDC케이블은 마스터 보드 뒷쪽에 연결이 됩니다.


케이스는 OVERRICH 케이스의 뒷면 반쪽에 보드를 얹는 형태가 됩니다.

보드 두개가 합체되면 이런 모습입니다.

마스터 보드 + 슬레이브 보드 1개로 완성된 기본 확장슬롯 모드입니다.





카트리지를 뒤집으면 요렇게 되어있어요.





마스터 보드 + 슬레이브 보드 3개가 결합되면 10슬롯이 됩니다.

확장슬롯 2개(8슬롯)에 추가 2슬롯이 되는 모드입니다.





그럼 다음편에서 뵈겠습니다요~ ㅎ.ㅎ/


2019년 9월 2일 월요일

FS-A1GT YM2413 (OPLL) 출력 개조

밀린 숙제나 한번 해봅니다~ ㅎ.ㅎ


아마 이건 예전에 얘기가 한번 나왔던거라 기억하시는 분이 많으실겁니다.

터보알 기종(A1ST/A1GT)의 OPLL 출력단은 캐패시터 용량이 레퍼런스 회로와 좀 다르게 되어있는데요.

레퍼런스 회로는 아래 YM2413 Application Manual 기준입니다.





참고로 아래는 FMPAC의 회로 일부분입니다.

(출처 http://www.ejunkelec01.shop/FMPAC_02a.pdf)

MSX2+ 기종(A1WX)도 마찬가지입니다.






위의 두 회로를 보면 MO, RO 사운드 출력에 0.015uF 캐패시터가 들어갑니다.


근데 turboR은 0.033uF으로 들어있어요.

ST/GT의 회로도에는 아래처럼 되어있습니다.





이것 때문에 기존 MSX2+의 OPLL 소리보다 좀 먹먹(?)하게 들린다는 얘기가 있었어요.

실제로 들어보면, A1 + FMPAC 또는 A1WSX에 비해 A1GT가 약간 답답하게 들리긴합니다.


참고로, 저항 + 캐패시터가 Low pass filter 역할을 하게 되는데,

캐패시터 용량이 작아지면 cutoff 주파수가 올라가니까, 고음이 더 크게 들리게 됩니다.


구글링 해보니 일본 아자씨도 요걸 0.015uF으로 바꾸는 개조를 하더라구요.

그.래.서. 저도 뚜따를 했습니다.

이거 개조하려면 메인보드 아랫쪽의 부품을 교체해야되서, 좀 귀찮아요...

(그 땜에 작업을 2년이나 미뤘다는 전설이..ㅋ)



아래 사진에서 보이는 캐패시터 두개를 교체합니다.





칩은 디바X스 마트에서 구입했습니다. ㅎ.ㅎㅋ





아래는 교체 후 찍은 사진입니다. (검댕이가 좀 붙어있네요ㅋ)






교체 후 들어오니 조금 변화가 있는 것 같으네요. (플라시보 효과?)

제대로 비교하려면 WSX랑 GT 출력을 녹음해서 봐야겠지요. 귀찮아서 포기 ㅎ.ㅎb


그럼, 즐거운 월욜밤 되셔요!