2020년 12월 11일 금요일

M File Manager - 내장 도움말을 바꿔보아요

M에서 #HELP 명령을 쓰면 내장 도움말이 화면에 표시됩니다.

아마 안해보신 분도 있으실거라 예상됩니다요~ ㅎ.ㅎ


단축키 설정을 안바꿨다면, F1 누르면 아래처럼 메뉴가 나올겁니다.

요기서 #HELP를 선택하시면 되겠어요.




도움말 자체는 M 프로그램 안에 내장된건 아니고, M.HLP 문서를 화면에 표시만 해줍니다.

44라인의 텍스트 문서를 두화면에 교대로 표시해주는거에요~


이미 M 사용법에 익숙하시다면, 이 파일을 본인이 원하는 방향(?)으로 편집해서 사용하셔도 됩니다.

MMCSD.COM에서 자주 쓰이는 기능을 도움말로 만들어보았습니다.


첨부된 텍스트 파일을 M.HLP로 이름을 바꿔서 쓰시면 되겠습니다요~ (기존 파일은 미리 백업을..)


아래처럼 M을 종료하지 않고 간단한 도움말을 볼 수 있습니다.

본인의 취향에 맞게 만들어 쓰시면 되겠죠? ㅎ.ㅎ





그럼, 이만~


2020년 12월 10일 목요일

M File Manager - %f를 써보아요

%f는 확장자 또는 펑션키 입력메뉴의 커맨드 문자열에서 사용되는 특수문자입니다.

M에서 현재 커서가 위치한 아이템(파일 또는 디렉토리)의 이름으로 치환되는 명령은 두가지 있습니다.

%s와 %f요~


만약 커서가 AUTOEXEC.BAT 파일에 위치한 상태라면,

%s는 AUTOEXEC.BAT 전체 파일명으로 치환되구요.

%f는 확장자를 제외한 AUTOEXEC으로 치환됩니다.


근데 %f를 쓸만한 경우가 잘 없을꺼에요.

요걸 아래처럼 한번 사용해봅시다요~


MMC/SD V3 또는 V4에서 YS2 HDD 이미지파일을 구동할 때, MMCSD.COM에서 /HD 옵션을 씁니다.

이 옵션을 M.INI의 DSK 확장자에 등록하지 않고, 별도의 HDD 확장자에 등록해서 실행해봅니다.

아래 사진처럼이요.






만약 YS2MMCSD.HDD 파일을 선택 후 실행하면,

M은 "MMCSD YS2MMCSD.DSK /HD"으로 실행하겠죠?



이렇게 YS2MMCSD.DSK를 간접실행(?)하려면 HDD 파일이 필요하겠네요.

그냥 이름만 YS2MMCSD.HDD가 되도록 파일을 하나 생성하면 됩니다.


아래처럼, 도스 프롬프트에서 COPY CON YS2MMCSD.HDD 명령으로 만들 수도 있어요.





꼼수지만... 이렇게 쓰는 방법이 있다는 것도 기억하시면 좋겠습니다 ㅎ.ㅎ


그럼, 이만~


2020년 11월 29일 일요일

SLT-Turbo 제작 #5 - I/O 프로세서 개선

V4 납땜하다가... 다시 SLT-Turbo로 달려봅니다요~

이번엔 데모 영상을 위해 X-II에 기기를 연결했습니다.




I/O 프로세서는 호스트의 CPU가 담당하지만, 실제 코드는 SLT-Turbo의 BUS Arbiter가 생성합니다.

예전에 이게 DMA 컨트롤러의 마이크로 코드 작업과 비슷하다...라고 설명했는데요.

코드가 동적으로 변경되는거라서 좀 차이는 있겠습니다요~ (사실 일반 DMAC는 구조가 간단합니다)


초기 버전과 현재 버전의 동작차이를 요약하면 이렇습니다.


@ 초기 버전

  모든 코드는 호스트 메모리에서 구동

  호스트 CPU가 SLT-Turbo의 BUS 상태를 체크하고 필요한 루틴을 실행


@ 현재 버전

  모든 코드는 SLT-Turbo 슬롯에서 구동

  BUS Arbiter가 필요한 코드를 생성함



호스트 CPU의 코드 공간(주소)는 Page 0 (0000H ~ 3FFFH) 입니다.

어차피 인터럽트 처리 때문에 Page 0을 쓰는게 공간을 적게 차지하겠습니요.

참고로 Page 1,2는 SLT-Turbo의 가상 슬롯 매핑에 쓰입니다. (자세한건 나중에 설명을~ㅋ)

Page 3는 호스트의 메모리 그대로 유지합니다. DATA, Stack 용으로 계속 쓰이는거죠.



이번에 데모로 찍은 영상은 X-II 순정에 V9958 교체 후 XII-V만 내장된 상태입니다.

그러니까 MSX-MUSIC이 없는걸로 보시면 맞습니다.


지난번 A1WSX로 데모했을 때에는 OPLL 칩이 본체에 내장되어있어서,

I/O 프로세서가 처리한 사운드 결과만 확인이 가능했는데요.

이번엔 XII-V(LED 비주얼라이저)가 호스트에 있고, OPLL은 SLT-Turbo에 있습니다.

그러니까, LED와 사운드가 동시에 동작하는걸 확인할 수 있다는 얘기입니다.



그럼 영상으로 확인해보시죠~ ㅎ.ㅎ

X-II의 전면 슬롯에는 MMC/SD V4가 있고,

후면 슬롯에는 50핀 케이블로 SLT-Turbo가 직결되어있습니다. (케이블은 27cm 정도 되네요)



아래는 영상 설명입니다.


00:00 Host MSX, Booting

-> 호스트 본체가 부팅됩니다.


00:35 SLT-Turbo, Illusion City

-> GT 모드로 구동 후 환영도시를 실행합니다.


03:30 SLT-Turbo, Fray

-> GT 모드로 구동 후 프레이(터보알 버전)을 실행합니다.


05:55 SLT-Turbo, Video Play

-> GT 모드로 구동 후 MV 영상 재생합니다.

원본 영상 속도와 거의 동일한걸 볼 수 있어요.



MV 재생 시, 음성이 약간 빨라졌다 느려지는 현상이 나오는데요.

이건 기기특성은 아니고, MMC/SD의 MV 플레이루틴이 기기를 진짜 A1GT로 착각해서 발생하는 현상입니다.

WSX, GT에서 쓰인 T9769는 VDP IO처리시 1클럭 wait가 더 추가됩니다.

이 때문에 일반 MSX2보다 조금 느리게 동작합니다.


MV 재생처럼 VDP를 과도하게 쓰는 경우는 이 차이를 사람이 느낄 수 있는 정도가 되거든요.

MMC/SD의 MV 플레이어는 1클럭 wait가 없는 기종에서는 속도 보상을 하도록 구현되어있습니다.

그래서 MSX2, MSX2+, turboR 모두 영상재생 속도가 동일하도록 처리됩니다.

.

.

.

사실 모든 기종을 다 커버하지는 못합니다 ㅎ.ㅎㅋ

MSX-ENGINE이 좀 다른 MSX2/2+ 기종이 있는걸로 알고 있어요.

지금 영상의 MSX2 본체에서 VDP를 V9958로 개조하고 SLT-Turbo를 구동하면,

현재의 MMC/SD의 MV 플레이어는 본체를 GT로 인식하게 됩니다. 이 경우도 커버가 안되는거죠.

이건 나중에 MMC/SD BIOS 업뎃할 때 지원하도록 하겠습니다.



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


궁금한 점 있으시면 댓글로 ㄱㄱㄱ