2024년 6월 9일 일요일

지난 20년 개발의 추억 #9 - XII-V

월간 추억팔이 #9편이 나왔습니다~ ㅎ.ㅎ


#1 ~ #8편은 아래 링크를 이용하세요!

https://sharksym.blogspot.com/2023/07/20-1.html

https://sharksym.blogspot.com/2023/08/20-2.html

https://sharksym.blogspot.com/2023/10/20-3.html

https://sharksym.blogspot.com/2023/10/20-4-mmcsd-drive-v3.html

https://sharksym.blogspot.com/2023/11/20-5-paramsx-r.html

https://sharksym.blogspot.com/2024/01/20-6-paramsx-r-v11.html

https://sharksym.blogspot.com/2024/03/20-7-audiofactory.html

https://sharksym.blogspot.com/2024/04/20-8-mmcsd-drive-v4.html


2019년으로 넘어가면서 파라동에도 많은 변화가 생깁니다.

일명 '대란 X-II' 본체 수백대가 장터에 나오면서, 새로운 X-II 유저가 많이 늘었습니다.

작년 2018년에 MMC/SD V4가 나오게 되면서, 주변기기가 없던 분들도 X-II를 쉽게 활용할 수 있게 된 것도 하나의 이유겠죠? ㅎ.ㅎ


조금 문제라면...

'대란 X-II'로 MSX 실기를 처음 접하시는 분들은, 어쩔수 없이 '삽질'을 많이 하셨던 것 정도겠네요.

안그래도 슬롯 동작에 좀 문제가 있던 모델인데, 침수 피해를 복구한 본체들이라... 상태가 더 메롱메롱ㅋ


저는 X-II를 써본 기억이라고는 88년 쯤, 아는 형네 컴터로 조금 만져본 게 전부였는데요.

이번 '대란 X-II'로 구한 기기로 저의 주변기기 테스트용으로 잘 쓰고 있습니다요~ ㅎ.ㅎ

(MMC/SD V4 만들 때에도 X-II 땜에 겁나 힘들었슴다 ㅠ.ㅠ)



어느날, 이 많은 X-II를 좀 더 활용할 수 있는 방법이 없을까? 고민하다가 두가지를 생각했습니다.


1) Z80 고속모드 및 잡다


MSX 본체를 싸게 만들 수 있게 된 이유 중 하나는, 야마하, 도시바의 MSX-ENGINE 칩 때문이었는데요.

후기 MSX2+/turboR 기종들은 Z80 내장된 도시바의 T9769 시리즈를 사용하구요.

초기 MSX2 기종들은 Z80 없는 야마하 S1985를 주로 씁니다.

대우 MSX2(CPC-300/400) 기종들은 MSX-ENGINE이라고 부르긴 민망하지만, 확장슬롯과 메모리매퍼 256KB 로직을 묶은 칩을 썼습니다.


근데, 대란 X-II를 사용기들을 보니, 본체의 Z80, RTC 칩이 죽어있는 경우가 꽤 많더라구요.

저도 Z80 교체하고 VDP도 V9958로 하나 바꿔서 사용하고 있습니다.


암튼 기존 Z80 및 주변 칩들을 뽑고, 작은 도터보드를 꽂아서 활용성을 높이는 거죠.

Z80 20MHz + 램 + 기타 등등 짬뽕하는거죠. turboR BIOS로 노말/고속 모드 대응도 하구요.

물론 VDP는 V9958로 업글해야겠지만요.


근데 X-II를 일년 넘게 써보니...

보수했던 키보드는 역시나 또 접점불량 고질병 발생.

전면슬롯, 외부 확장슬롯 및 주변기기 카트리지들의 동작 호환문제.

AV 보드 동작 불안 등등

.

.

.

이건 뭐, 종합 병동이네요. 차라리 AV보드, 키보드를 새로 만드는 게 X-II 활용에 더 도움이 될 것 같았습니다.

결국 이 계획은 접었습니다요! 에혀...ㅋ



2) X-II 전용의 LED Visualizer


X-II 전면을 보면 FDD용 베이가 2개가 있는데요.

여기 여분의 FDD B: 쪽에 PAC-V의 LED 비주얼라이저를 박으면 멋지구리할 것 같은 느낌이 들더라구요.

사이즈를 측정해보니, LED도 잘 보이고 PCB도 수납하기에 별 문제 없어보였습니다.

아래처럼 만들면 되겠더라구요.



이름은 XII-V로 정했습니다. 이름만 봐도 X-II 전용 비주얼라이저 같죠? ㅎ.ㅎ


참고로 PAC-V는 PAC 기능에 LED Visualizer가 추가된 일반적인 카트리지 형태입니다.

슬롯 하나를 점유하는 방식이죠.

근데 X-II는 이걸 본체에 내장해야하니까, 사용자가 슬롯을 맘대로 고를 수가 없습니다.

게다가 본체의 확장슬롯(SLOT 0-0, 0-1, 0-2, 0-3)은 이미 점유된 상태라 빈 곳도 없구요.


그럼 XII-V에 확장슬롯을 넣고 슬롯 커넥터 3개 + 비주얼라이저를 만들면 어떨까? 고민도 잠깐 해봤는데요.

후면 슬롯을 개조해서 /SLTSL 3개를 reserved pin을 활용해서 출력, 전용의 서브슬롯 x3을 장착하는 방식이죠.

.

.

아앜... 배보다 배꼽이 커지네요. 포기~ㅋ


결국, PAC 기능은 완전히 제거하고 LED Visualizer만 I/O 포트로 구현하게 됩니다.

문사운드 같은 I/O 카트리지 형태로 진행합니다. 전면부 슬롯과 병렬로 케이블을 연결해서 I/O 포트만 사용합니다.


PAC-V의 비주얼라이저와의 차이라면...

PAC-V는 LED 애니매이션 패턴을 SRAM에 저장하고 배터리 백업으로 동작하지만,

XII-V는 이 패턴이 플래쉬롬에 미리 기록되어있어서 배터리를 쓰지않습니다.

대신 PAC-V처럼 유저가 패턴을 편집할 수는 없지만, 미리 내장된 패턴 4개 중에서 선택해서 쓰는 방식입니다.



이번 XII-V는 오버리치님, 곰님과의 협업(콜라보~)으로....

회원님들의 전면부 덮개를 받아서 레이저로 가공 및 아크릴 덮개 제작과 슬롯 케이블 작업도 진행되었습니다.

저는 LED쪽과 메인보드 제작만 했습니다 ㅎ.ㅎ


그리고, 가끔 장터를 보면 XII-V를 구하신다는 분이 계시던데, 이건 앞뒤가 좀 안맞는 얘기입니다요.

XII-V로 개조된 X-II를 구매하신다고 하면 말이 되겠지만요.



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


2024년 6월 8일 토요일

M File Manager v4.4 for MSX-DOS2

 



Download: M_v4.4_20240610_fixed.zip


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

    M File Manager v4.4 for MSX-DOS2 (2024-06-08)

        By Yeongman Seo <sharksym@hitel.net>

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


* UPDATE


  @ 기능 변경/개선


  - 일부 기능키에서 클릭 대신 누름 동작으로 변경


  - 속성(Attribute)표시용 문자 변경


  - 파일 선택 표시용 문자 변경


  - 속성 변경과 타겟 패널 열기용 단축키 서로 바꿈

    속성변경 -> CTRL + RETURN

    패널열기 -> SHIFT + RETURN


  - 현재 파일과 동일한 확장자의 파일을 선택하는 기능 추가

    CTRL + SPACE

    (예: MUSIC.IMS 파일에서 키 입력 시, 모든 *.IMS 선택됨)


  - #IMSP 및 #MPXP에서 연속 재생 시, 취소키 추가

    기존 CANCEL(파나소닉 기종의 취소) 및 STOP 사용


  - #MPXP에서 ID3v2.4 지원

    UTF-8 문자열 표시 및 연도 TAG(TDRC)


  - 도움말 파일(M.HLP, M_IL.HLP) 업데이트



2024년 6월 7일 금요일

긴파일명(LFN) 사용 시 주의 사항

오리지널 MSX 유저라면 아마 나이가 40대 후반에서 50대,60대 정도일겁니다.


최근에 MSX를 접하신 30대 분들이라면, 아마 태어나셨을 때 MSX가 단종되었을거에요.

아마 처음 접하신 PC도 윈95가 설치된 PC가 아닐까 싶으네요.


이제 MSX-DOS, MS-DOS에서 사용되는 디렉토리, 파일명에 대한 얘기를 한번 꺼낼 시기가 된 것 같습니다.


.

.

.


MSX-DOS, MS-DOS를 쓰다가 윈95를 처음 쓸 때 기억하시나요? ㅎ.ㅎ

기존 FAT에 긴파일명(LFN)을 쓸 수 있게 되었는데, VFAT이라고 불렀습니다.


디렉토리 엔트리는 32바이트의 파일 또는 서브 디렉토리로 구성됩니다.

기존 FAT에서는 파일/서브 디렉토리는 하나의 엔트리였지만,

VFAT에서는 긴파일명(LFN) 표시를 위해 여러개의 엔트리를 사용하여 표시합니다.

파일명이 길수록 더 많은 엔트리를 소모하는 식이죠.


VFAT을 지원 못하는 OS에서는 LFN 엔트리가 보이지않고 기존 8.3 짧은 파일명으로 인식됩니다.

따라서 8.3 파일명으로 데이터를 읽는데에는 아무런 문제가 없습니다.

그냥 볼륨+시스템+히든 속성의 이상한(?) 파일들이 잔뜩 있는 것으로 인식되는 것 뿐이욤 ㅎ.ㅎ


근데, 여기서 주의해야될 부분이 한가지 있는데요.

VFAT을 지원하는 OS에서는 LFN으로 저장된 파일을 삭제, 이동 등의 작업 시 연결된 엔트리들이 함께 처리됩니다.

만약 VFAT을 지원하지 않는 프로그램 또는 OS에서 디스크작업을 하게 되면. 연결된 LFN 엔트리가 손상되어 쓰레기로 남습니다.

결국, MSX-DOS/DOS2 및 구버전 MS-DOS에서 쓰이던 디스크관련 프로그램을 쓰면 안된다는 얘기죠.



음...

LFN 얘기를 처음 들으셨으면, '그럼 파일명을 8.3 포맷으로 짧게 해주면 되겠네'라고 생각하실 수도 있는데요.

원래 FAT에서는 파일명이 항상 대문자로 저장됩니다. 따라서 파일명에 소문자가 섞여있으면 무조건 LFN으로 바뀌게 됩니다요.



그럼, MSX용 디스크에 LFN 파일을 넣고 MSX-DOS2에서 파일 삭제를 하면 어떤 결과가 나오는지 한번 테스트해보겠습니다~


아래처럼 문자수는 8.3 포맷으로 짧게 보이지만, 소문자가 섞여있는 LFN 파일 2개를 MSX 디스크에 복사합니다.




M 파일매니저에서는 아래처럼 긴파일명으로 인식이 되는 것을 볼 수 있어요.




그럼, 파티션을 덤프해서 실제 디렉토리 엔트리가 어떻게 저장이 되는지 봅시다.

일반 파일들은 32바이트 엔트리로 저장되는데, 해당 LFN 파일은 각각 64바이트로 저장된 것을 확인할 수 있어요.

LFN은 빨간색으로 표시했습니다.




그럼, Ys3(k).DSK 및 Ys3(k).USR 두개 파일을 삭제해봅시다. 물론 MSX에서 삭제해야겠죠?

파일이 삭제되면 각 엔트리의 첫 바이트가 E5H로 변경이 됩니다.

근데 아래 스샷에서 여전히 원래값 41H로 시작하는 엔트리가 보이시죠?

MSX-DOS2는 저 엔트리가 연결된 하나의 파일이라고 인식을 못하기 때문에 그냥 둔거에요.




이 손상된 드라이브는 윈도에서 CHKDSK /F 명령으로 쉽게 수정을 할 수 있습니다.




수정 후 덤프해보면 아래처럼 모두 삭제된 엔트리를 볼 수 있어요.




.

.

.


그리고, 보너스입니다.


윈도10 이후에서는 모든 드라이브에 'System Volume Information'이라는 긴이름의 폴더가 생성됩니다.

이동식 드라이브도 마찬가지구요.


만약 MSX에서 쓰이는 디스크를 윈도에 연결(마운트)하게 되면, 해당 LFN 폴더가 생성이 됩니다.

이 폴더를 지우지않고 MSX에서 그대로 사용하면, 이 폴더가 MSX-DOS2에서는 볼륨명으로 인식이 됩니다요~ ㅎ.ㅎ


원래 LFN 엔트리는 속성(Attribute) 값이 0FH가 되는데, 기존 FAT에서는 이런 파일이 없습니다.

그래서 Volume label + System + Hidden + Read-only 모든 속성을 켜서 LFN 인식으로 쓰는 꼼수를 쓴거죠.

그리고 LFN 엔트리들은 별도의 연결 리스트를 사용하지 않습니다. 단지 여러개 엔트리가 연속으로 설정되도록 되어있어요.


암튼 MSX-DOS2에서 이 엔트리를 볼륨명으로 인식하게 되면서, "B "로 볼륨명이 표시되는 현상이 있습니다.

아래 덤프된 엔트리를 보시면 왜 그런지 이해되시죠?

96바이트의 LFN 엔트리의 첫 부분이  42H, 20H, 00H 값으로 시작됩니다. Volume label 속성이니 이걸 걍 볼륨명으로 인식한거죠.




제가 만든 M 파일매니저에서는 볼륨명을 읽을 때 LFN은 무시하도록 되어있어서 이런 현상은 나오지않습니다. 참고하셔요.


그럼, 이만...