2025년 10월 3일 금요일

SLT-Turbo 제작 #15 - MIDI

GT의 미디 인터페이스를 구현하려면, UART Tx/Rx 및 i8253 타이머가 필요합니만...

SLT-Turbo에서는 출력용 필수기능만 넣어봅니다ㅋ


MIDI OUT (Tx) -> 포함

MIDI IN (Rx)  -> 제외

i8253 Counter 0 -> UART baudrate 고정

i8253 Counter 1 -> 제외

i8253 Counter 2 -> 포함

... 요렇게 되겠습니다.


문득 25년 전의 추억이 떠오르네요.

paraMSX에 turboR GT 에뮬을 넣을 때, 미디 H/W 정보가 없어서 걍 포기하고,

타이머를 안쓰는 WSX의 MusicROM을 넣어서 돌리고 그랬죠. 짭ST 느낌? ㅎ.ㅎ


암튼 SLT-Turbo에는 MIDI OUT 커넥터만 하나만 들어있으니, 좋아하시는 미디 모듈을 붙여주시면 되겠네요.

저는 SC-88VL과 mt32-pi를 연결해서 쓰고 있습니다.


미디는 더 설명이 필요없네요. 아래 영상으로 구경하세요~

MIDRY 플레이, 문라이트사가 오프닝은 SC-88VL의 사운드이구요,

뒤의 환영도시 오프닝은 mt32-pi의 사운드입니다. (mt32-pi가 좀 버벅거려서 음이 가끔 튀니까 참고하시고...)





그럼, 다음편에서 보아요~


2025년 9월 28일 일요일

SLT-Turbo 제작 #14 - 외부 슬롯 (SLT-X)


먼저 지난 글에서 알려드린 X-II 모드에서, 바뀐 부분을 알려드립니다.


X-II 모드에서는 메인램이 SLOT 0-2에 배치되어있고,

고속모드는 ROM모드까지만 지원되는 것으로 설정했었는데요.

아무래도 기존 turboR용 S/W를 사용할 때 CPU 모드 전환이 불편할 것 같아서,

그냥 GT모드와 동일하도록 메인램을 SLOT 3-0으로 옮겼습니다.

Shadow RAM도 GT모드와 비슷하게 정리했습니다.

결국 고속모드 ROM/RAM 모두 가능합니다.


메인 BIOS에는 2+/turboR 호환용 엔트리 4개를 추가했습니다.

#017A RDRES,  #017D WRRES

#0180 CHGCPU, #0183 GETCPU

VDP와 관련된 루틴(스크린10,11,12 및 수평 스크롤)을 제외하면 turboR처럼 사용가능합니다.


X-II모드에 내장된 디스크롬도 GT모드와 동일한 DOS2 v2.31 롬이 들어있어서,

부팅 환경에 따라 자동으로 고속모드/일반모드로 전환됩니다.

COMMAND2 2.44의 CPU 명령도 그대로 쓸 수 있습니다.

아무래도 별도의 유틸을 쓰는 것 보다는 turboR 호환모드로 두는 방식이 쓰기 편할 것 같습니다.

표준에서는 좀 벗어나지만, 대충 넘어가는 걸로...ㅋ


그럼, 외부 슬롯 이야기로 갑니다요~


SLT-Turbo의 외부 커넥터에는 SLT-X V2를 연결합니다.

8개의 서브슬롯이 SLOT 1-x, SLOT 2-x로 동작합니다.

SLT-X가 연결된 상태에서는 파란색 LED가 켜지는 것으로 확인가능합니다.

바이패스 커넥터에 연결하면 LED가 켜지지 않으니 참고하시구요.




위의 사진에서는 데모를 위해 WSX의 상단 슬롯에 꽂아놨지만,

실사용할 때는 대부분 후면 슬롯에서 사용하실 거라고 봅니다. 미디 케이블도 연결하구요.

이 상태에서 상단 슬롯에 PAC-V만 추가하면 해피 엔딩이 되겠죠 ㅎ.ㅎ


외부 슬롯의 CLOCK핀은 3.58MHz 출력으로 기존 turboR과 똑같습니다.

신호를 제대로 구현하려면 3.58MHz phase에 맞춰서 내부 클럭 폭을 늘려야겠지만,

일단 단순하게 wait로 때우는 식으로 만들어봅니다.

일부 타이밍에 민감한 기기 외에는 대충(ㅋ) 동작하겠습니다.


저의 기기들을 동작시키는 모습과 turboR 전용 프로그램을 실행하는 모습을 영상으로 담았습니다.

본체는 MSX2+ 기종(A1WSX)을 사용했구요. 영상 전반은 GT모드, 후반은 X-II모드로 돌렸습니다.

현재 보드는 SLT-X 연결시 고속클럭에서 문제가 있어서, Z80 클럭을 15MHz로 낮춘 상태입니다.

실제 turboR보다 약간 느린편이니, 영상을 보실 때 참고하셔요.





그럼, 다음편에서 보아요~


2025년 9월 21일 일요일

SLT-Turbo 제작 #13 - 내부 슬롯

고속 모드를 제대로 활용하려면, turboR처럼 동작해야 되겠죠? ㅎ.ㅎ



@ GT 모드


A1GT와 유사한 구조로 되어있구요. 내부 슬롯은 아래처럼 배치됩니다.


SLOT 0-0 = MainROM     (Page 0,1)

SLOT 0-1 = BASIC'N 2.1 (Page 1) + reserved (Page 2)

SLOT 0-2 = MusicROM GT (Page 1) + SLT-OPT  (Page 2)

SLOT 0-3 = CPU helper  (Page 0) + MSX LOGO (Page 1)


SLOT 3-0 = RAM 4096KB

SLOT 3-1 = SubROM      (Page 0) + KanjDRV  (Page 1,2)

SLOT 3-2 = DOS2 v2.31  (Page 1)

SLOT 3-3 = FontPack V2 (Page 1,2)


기존 turboR과 차이라면... BASIC'N, FontPack V2 내장 정도겠네요.

여기서 FontPack V2는 BIOS뿐만 아니라 한글폰트도 포함됩니다.

특별한 이유가 없다면 외부슬롯에 FontPack을 꽂을 필요가 없습니다.

내장 I/O로 빠르게 구동하는 쪽이 더 좋으니까요~ ㅎ.ㅎ/

(물론 내장 FontPack을 끄고 외장을 쓸 수 있습니다.)



@ X-II 모드


고속모드도 없는 MSX2 기종이지만, 옛날 국산 프로그램들을 실행하는 용도로 쓰려구요.

내부 슬롯은 아래처럼 배치됩니다.


SLOT 0-0 = MainROM      (Page 0,1)

SLOT 0-1 = Hangul/Hanja (Page 1,2)

SLOT 0-2 = RAM 4096KB

SLOT 0-3 = SubROM       (Page 0) + HangulROM (Page 1)


SLOT 3-0 = MusicROM     (Page 1) + SLT-OPT   (Page 2)

SLOT 3-1 = BASIC'N 2.1  (Page 1) + reserved  (Page 2)

SLOT 3-2 = DOS2 v2.31   (Page 1)

SLOT 3-3 = None


X-II에서 숨긴(?) 저작권 및 버전 표시는 다시 켜놨습니다.

내장된 완성형 한글폰트는 명조체가 아니라 '둥근모' 폰트입니다.


SLOT 3-3의 FontPack은 기본적으로 OFF됩니다.

대우의 SCREEN9 출력루틴과 조금 간섭이 되더라구요.

BIOS의 한글 입력기와 ANSI 스크린만 제외되는 것이라서,

일반 프로그램에서 한글 폰트 I/O는 그대로 활용가능합니다. (예: M 파일매니저)

물론 FontPack BIOS를 켜는 것도 가능합니다.


CPU 모드 설정을 위해 별도의 BASIC CALL CPUn 명령을 추가했습니다.

CALL CPU0, CALL CPU1, CALL CPU2 이렇게요.

숫자만 봐도 뭔지 아시겠죠? 노말모드, 고속모드(ROM), 고속모드(RAM)입니다.

(참고로 이 명령은 GT 모드에서도 똑같이 사용가능합니다.)



@ BIOS shadow RAM


고속모드에서는 BIOS를 RAM에 복사해서 wait 없이 빠르게 구동할 수 있습니다.

turboR의 shadow RAM과 같은 방식으로 동작합니다.

기존 turboR은 shadow RAM에 64KB를 할당하지만, SLT-Turbo에서는 256KB를 할당합니다.

내장 BIOS 대부분이 shadow RAM으로 전환된다고 생각하시면 맞습니다.


그 외 추가 256KB의 shadow RAM이 예약되어있습니다.

FontPack에서 128KB를 사용하는데요.

FontPack을 끄고 Kanji(또는 X-II 한글) 폰트를 shadow RAM으로 변경할 수도 있습니다.

MMC/SD V4의 Kanji RAM 기능과 동일합니다. 사용자가 원하는 폰트롬으로 로딩가능합니다.


전체 4096KB의 램에서 512KB가 shadow RAM으로 할당됩니다.

따라서 가용 메모리는 3584KB가 되겠습니다.



그럼, 실제로 동작하는 모습을 영상으로 보시죠!

GT 모드에서 FontPack 사용 및 X-II 모드에서 SCREEN 9를 사용하는 모습입니다.





그럼, 다음편에서 보아요~