2023년 7월 29일 토요일

[IPS] FEEDBACK RAM SLOT patch (2023-07-29)

 


Download: FEEDBACK_(RAM_SLOT_Patch).zip


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

FEEDBACK RAM SLOT patch (2023-07-29)

    By Yeongman Seo <sharksym@hitel.net>

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


외장 메모리가 존재할 때의 동작오류를 수정합니다.

예) turboR에 메모리 매퍼 카트리지 사용


IPS 패치이며, FEEDBACK 오리지널 및 한글패치판에 적용가능합니다.


그럼, 이만~


MMC/SD Drive V3/V4 - BIOS & Tool v5.69

Download: 20230729_MMCSD_Drive_V3_V4_BIOS_Tool_v569.zip

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

MMC/SD Drive(tm) V3/V4 - BIOS & Tool

    By Yeongman Seo <sharksym@hitel.net>

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



[ BIOS & Tool v5.69 ]


- FDD_EMU


  turboR에서 ONE-Drive Off 시, DiskROM 호환성 개선

  -> '/O' 옵션 시 자동적용됨

     eg: Moon Light Saga


  turboR DOS2 용 Fake FDD_EMU 모드 추가

  -> '/DT' 옵션으로 설정

     DOS2 디스크로 부팅 시,

     MMC/SD가 본체의 FDD(SLOT 3-2)처럼 동작하며,

     별도 드라이브로 등록되지않음



[ 업데이트 가이드 ]


1. MMCSD.COM, MMCSD.OVL 두개 파일을 SD카드에 복사.

   기존 파일을 덮어쓰면 됩니다.(예:UTILS 디렉토리)


2. MMCSD569.ROM 파일을 SD카드 루트에 복사.


3. MSX-DOS2 부팅 후 명령창에서 아래처럼 입력.

   A:\>MMCSD MMCSD569.ROM


4. 다운로드 완료 후 리턴키 눌러서 재부팅.


5. 끝





2023년 7월 26일 수요일

2023년 7월 25일 화요일

지난 20년 개발의 추억 #1 - 램상주 폰트를 써보신 분 있나요?

아래는 일부러 에뮬(blueMSX)에서 돌려본 모습입니다.

제 GT의 화면을 찍으면, '이거 폰트팩 아녀?'라고 하실지 몰라서 ㅎ.ㅎ





[서론]


10년 전에 만들어서 잠깐 썼지만, 특수문자/한자 폰트(16 x 16 사이즈)를 램상주용으로 만든 적이 있어요.

여기서 램상주 폰트라는 것은요,

DOS2의 메모리매퍼의 시스템 세그먼트에 로딩해서, 여러 프로그램이 함께 액세스해서 활용하는 걸 의미합니다.


최근 HI-TECH C 라이브러리 업뎃하고 동작 확인하려고, M으로 이것저것 해보다보니....

옛 생각이 나서 머리속의 기억들을 좀 긁어봅니다.


저의 1994년~2000년은 MSX 에뮬레이터를 신나게 돌리던 시절이었는데요.

국딩 때 샀던 아이큐2000은 상태도 안좋고, 사실 주변기기를 모아서 구동할 여력도 안되었어요.

아이큐2000 외의 실기는 없었습니다 ㅎ.ㅎ/


2001년이 되어서야 A1WSX를 구해서 책상위에 같이 올려놨습니다.

PC의 TV수신카드에 연결해놨었지요.

이렇게라도 해두면 자주 MSX를 켜지않을까 싶었는데...

결과는 꽝이었네요.

디럭스박스 꽂고 FDD로 메가롬 파일을 로딩해서 돌리는 것도 한두 번이죠ㅋ

WSX는 먼지만 쌓여가고~


2002년이 되니, 불타오르던 MSX 에뮬계도 꺼져가는 불꽃이 되네요.

하긴 MSX 에뮬이 워낙 초기부터 등장했었기 때문에, 10년이면 다들 지겨워질만도 했죠.

물론 저도 관심에서 한참 멀어져있었구요.


당시 대부분 에뮬들의 개발이 중단되었고 (저의 paraMSX도ㅋ)

가장 늦게 등장했던 blueMSX가 우주 대통합(?)을 이룰 때 쯔음... 갑자기 openMSX가 등장합니다.

여전히 뭐 관심 밖~ㅋ


2003년에는 하이텔 VT가 폐쇄 된 후에는 활동하는 분들이 엄청 줄었습니다.

활동이 줄어든게 아니라, 웹으로 전환된 게시판을 보고 있으니 회원님들 활동이 더 잘 보여서 그런걸지도요ㅋ


여담이지만, 예전 파라동의 한마디 게시판을 보면, 94년~97년 사이에 올라온 글이 전체의 70%쯤 됩니다.

파란 웹으로 전환된 후 2012년 네이버 이사하기 전까지의 글은 전체의 10%도 안됩니다요.

활동하는 분들이 20명도 안될걸요? 아마ㅋ


그러던 어느날,

"이젠 좀 다른 걸 해보자!!"라는 생각이 머리속에 팍! 떠오릅니다.


서론이 겁나 길었는데요, 이제부터 시작(응?)입니다. 아주 긴 글이 될 것 같아요ㅋ



[본론]


때는 2003년,

영혼의 친구였던 아이큐2000을 창고에 넣고, turboR로 실기생활을 다시 시작하게 됩니다.

지금이 2023년이니까, 지난 세월을 돌아보는 것도 재밌겠죠? (재미없으면 뒤로 가기 버튼을!ㅋ)


일단 A1GT부터 장만합니다.

사실 예전에도 turboR에서 DOS2를 구동하면 어떤 느낌일까? 한번 몸으로 느껴보는게 필요하겠더라구요.

에뮬을 쓰면 속도도 빠르고, 디스크 부팅도 순식간이라 별 감흥이 없었는데,

GT에 전원넣고 돌려보니... 아~~ 느낌이 오네요.

이걸 1991년~1993년 사이에 실제로 쓰신 분들, 존경합니다 ㅎ.ㅎb


한참 신나서 이것저것 돌려보고, 사캔88로 미디도 들어보고 그랬네요.

근데 가만보니 GT의 램이 512KB인데, 이걸 활용하는 프로그램이 거의 없더라구요.


Q: 내가 쓸만한 프로그램이 없으면 어떻게 하나요?

A: 본인이 직접 만드세요~


음, MSX용 프로그램을 만드는 건 중고딩 때 BASIC + 어셈 섞어서 대충 때우던게 전부였는데...ㅋ


이제 멀리 바라보며 계획을 세웁니다.

개발자가 다 그렇죠. 망상에 망상만 가득ㅋㅋ



1. S/W 개발 환경을 찾아보자


여기서 가장 중요한 목적은 turboR MSX-DOS2에서 활용을 극대화 하는데 있습니다.

옛날처럼 16KB/32KB 롬팩용 프로그램을 만드는건 아닙니다요.


몇가지 어셈블러와 C 컴파일러들을 만져보면서 주력으로 쓸 툴을 골라봅니다.

물론 롬팩으로 되어있거나, BASIC의 메인램에 로딩해서 구동되는 방식은 예선탈락입니다 ㅎ.ㅎ

필수조건: CP/M 또는 MSX-DOS에서 실행되어야 함


'GEN80'

HiSoft Devpac80 개발툴에 포함된 어셈블러입니다. CP/M용 프로그램입니다.

1987년 버전이니까 꽤 최근(ㅋ)에 등장한 프로그램입니다 ㅎ.ㅎ

20년째 쓰고 있는데, 이거 하나면 충분하더라구요.

사실 어셈블러는 특별한 제약사항이 없으면 뭐든 괜찮습니다요.


'HI-TECH C'

HI-TECH 사에서 만든 초강력 C 컴파일러입니다.

아마 CP/M, MSX-DOS용 C 컴파일러 중에서 ANSI C를 지원하는 유일한 프로그램일거에요.

마지막 버전인 v3.09(1989년)을 사용합니다. 제작사가 free로 풀어버렸기에 아무런 제약없이 쓸 수 있습니다.

C 라이브러리가 소스로 제공이 되어서, 추가/수정해서 MSX용 라이브러리를 추가할 때도 편리합니다.



2. 플래쉬 메모리 기반의 디스크드라이브를 만들자


S/W 개발은 어차피 윈도 PC에서 하니까 불편함은 없는데, 막상 실기로 구동하면?

...21세기에 FDD는 좀 아니잖아요?


한동안 에뮬 개발에 미쳐있어서, 디스크드라이브를 구현하는데는 문제가 없는데요.

회사에서 이것저것 써보는 H/W들이 많지만, 그걸 직접 만들어보는 건 처음이라... 걸음마부터 시작합니다.



2.1. 개발용 카트리지를 찾아보자


PCB를 만드는 건 힘드니까, 이미 있는 기기를 활용하는게 좋겠죠?

코나미의 '코파의 야망' 카트리지가 눈에 보입니다.

SCC도 들어있어서 메가롬 매퍼도 활용할 수 있으니 딱 좋네요ㅋ


롬을 적출하고 EPROM으로 구워서 이리저리 돌려봅니다. 잘 되네요.

ebay에서 비싸게 준 카트리지인데 어쩔수 없이 살팩을! ㅎ.ㅎ



2.2 플래쉬롬 카트리지로 개조하자


현업에서 쓰이는 칩들이 죄다 3.3V, 2.5V 쓰는데, 5V짜리 FlashROM이 있으려나요?

근데 찾아보니 아직도 팔더라구요 ㅎ.ㅎ

Atmel의 512KB 플래쉬롬인 AT29C040A 칩을 골라봅니다.


ATLOAD라는 이름으로 다운로더를 만들어서 테스트해봅니다. 잘 되는군요.

이제 실기에서 롬 S/W 테스트할 때는 편리하게 쓸 수 있겠습니다.

GT는 배터리백업되는 램디스크가 내장되어있어서, 본체의 내장 S/W를 켜면 사용가능한데요.

여기에 ATLOAD.COM처럼 자주쓰이는 프로그램을 넣으면 편하게 쓸 수 있습니다.

참고로, 이 램디스크에 AUTOEXEC.BAT가 존재하면 부팅 후 MSXVIEW가 실행되지않고, 사용자의 AUTOEXEC.BAT가 실행됩니다.

초고속으로 DOS2 부팅이 되는거죠 ㅎ.ㅎ (ST는 이런 기능이 없어요. 램만 고자인게 아니라능ㅋ)


아래 사진에서 D: 드라이브가 GT전용 램디스크입니다.

참고로, A: B: 드라이브는 FDD이구요,  C: 드라이브는 GT의 롬디스크입니다.

(20년전 휴대폰으로 찍은거라 화질이 안좋아유~)





2.3 롬 디스크드라이브를 만들자


기본적으로 디스크드라이브의 DiskROM은 DOS 커널과 물리디스크 드라이버로 이루어집니다.

커널은 그대로 사용하고 하위 레이어의 물리디스크 루틴은 만들어서 넣으면 간단히 완성되는거죠.

카트리지의 플래쉬롬 AT29C040A은 512KB이니까, DiskROM 영역 16KB를 제외하면 496KB를 롬디스크로 쓸 수 있겠네요.

포맷루틴은 필요없고 그냥 고정 사이즈의 FAT 볼륨이니까... 대충 Disk I/O 루틴을 구현해서 돌려봅니다.

잘 되는군요. 흡사 GT의 내장 롬디스크를 쓰는 느낌일까요? 암튼 빠른게 좋은겁니다요!



2.4 MMC 디스크드라이브를 만들자 


2004년 드디어 MMC/SD V1의 등장입니다.

당시 외장 디스크로 쓸 수 있는 플래쉬메모리 카드는 몇 종류가 있었습니다.

CF (CompactFlash): IDE라서 쓰이는 곳이 많았고, MSX에서는 이미 2002년에 선라이즈 CF ATA-IDE가 있었습니다.

SM (SmartMedia): 얇은데 사이즈는 좀 넓직한 편이었습니다.

MMC (MultiMediaCard): 1bit 시리얼 인터페이스이구요. 90년대 후반에 나와서 종종 볼 수 있었습니다.

SD (Secure Digital): 1bit 또는 4bit 인터페이스이구요. 모양이 MMC와 비슷하지만 약간 더 얇았습니다.


그럼 어떤걸로 할까요?

이미 선라이즈가 있는데 IDE를 또 만들 이유는 없었고, 저물어가는 SM는 이제 관심 밖ㅋ

MMC와 SD가 남아있는데, SD가 비싸서 개인프로젝트로 테스트하기엔 부담이 좀 되어서, 걍 MMC로 선정!

기억이 가물가물하지만, 그 때 샀던 256MB짜리 MMC가 25,000원 정도였던걸로 생각나네요.

10년 전, 94년에 장만한 저의 486DX 컴퓨터가 퀀텀 270MB HDD를 쓰고 있었는데, 기술의 발전은 후덜덜합니다 ㅎ.ㅎ


열실히 구글링해서 찾아보니, MMC 1bit I/O를 SPI I/O로 전환해서 간단히 쓸 수 있다는걸 알게되었네요.

TTL 몇개로 I/O를 구현하고 테스트를 해보니... 대박! 잘되네요ㅋㅋ


만들어진 기기는 'MMC Disk Interface'라고 이름을 붙였어요.

파라동에서는 다들 'MMC Disk'라고 불렀습니다 ㅎ.ㅎ

https://sharksym.blogspot.com/2004/10/mmc-drive-aka-mmcsd-drive-v1.html


DIY용 회로도를 공개해서 올렸지만, 실제로 제작하신 분은 별로 없었네요.

스페인 등의 외국에서도 몇몇 제작이 되었습니다.



2.5 MMC Disk를 좀 더 빠르게


기존 1bit I/O는 FDD와 비슷한 속도였습니다.

FDD가 빠를 때는 10KB/sec 속도가 나오는데요. MMC Disk는 8KB/sec 정도였습니다.

여담이지만 이 상태의 MMC Disk에서 FDD 에뮬(2DD 파티션)을 구동하면 진짜 FDD 느낌이 났었어요 ㅎ.ㅎ


이제 걸음마를 떼었으니 달려봅시다.

H/W 쉬프터(TTL 칩)을 이용해서 1bit x 8 -> 8bit로 빠르게 묶어보아요.

S/W로 하던 작업을 칩이 대신 해주니 좋네요.

MMC Disk의 속도가 30KB/sec가 되었어요.

역시 디스크가 빠르니까 GT가 날라갑니다 +_+


하지만 속도가 빨라지니 FDD 에뮬에선 오동작하는 게임이 주르르~ ㅎ.ㅎ

이건 뭐 paraMSX 만들 때에도 많이 봤던 것들이라, 속도조절(느리게 해주는) 옵션을 넣는걸로 대충 넘어갑니다.



2.6 SD를 쓰려면 어떻게 해야할까?


이젠 SD도 싸졌으니 SD를 꽂아볼까? 생각해봅니다.

사실은 일반 사용자용 메모리 카드 시장에서 SD가 MMC를 밀어버려서 MMC가 뾰로롱~ 다 사라졌어요 ㅎ.ㅎ

MMC는 임베디드 칩에 들어가는 용도로 쓰이고, SD는 일반 사용자용 리무버블 디스크가 되어버린거죠.


암튼 또 구글링을 해보니, SD도 1bit SPI를 쓸 수가 있네요.

으음... 초기화 커맨드도 비슷하고, 걍 SD를 사서 꽂아봅니다.

코드 몇줄만 고치니깐 잘 되네요. 우후훗~


이제 이름을 'MMC Disk'에서 'MMC/SD Drive'로 바꿉니다.

그러니까 게시판에서 MMC/SD V1 이런게 보이면 MMC Disk랑 똑같은거라고 보심 됩니다요.



3. 빨라진 디스크를 활용해보자


3.1 SymbOS의 등장


디럭스박스에 로딩하거나 미디플레이어를 구동할 때도 쾌적해서 좋습니다만...

새 H/W에는 새 S/W를 붙이는게 더 재밌겠죠?


유럽에서는 SymbOS라는 Z80 용 멀티태스킹 OS가 나옵니다.

기본적으로 Amstrad CPC 기종 용으로 만들어졌는데, 제작자가 MSX 버전도 보여줍니다.

최대 1024KB까지 활용가능한 OS라고 하는군요.

오~~ 내 GT가 램 1024KB인데, 어떻게 알았지? (농담입니다)


디스크드라이버만 제작해서 넣으면, MMC/SD에서도 돌릴 수 있겠군요.

SymbOS의 문서와 샘플 드라이버를 받아서 분석해봅니다.

오호.. 하위 드라이버 만드는게 간단하네요.

대충 구현해서 돌려봅니다.


MSX에서 멀티태스킹은 이런 느낌인가!? 신세계네요 +_+

느리지만 초당 6프레임의 영상도 볼 수 있고, PSG 음악 플레이어도 기본으로 들어있네요.

SymbOS 자체는 완전한 OS입니다만, 로더가 DOS 용 프로그램이라서 일단 MSX-DOS로 부팅이 필요합니다.

암튼 잠시 재밌었네요~

https://sharksym.blogspot.com/2007/03/mmcsd-drive-symbos-v11-for-msx.html




3.2 turboR 용 MPX 플레이어를 만들자


2007년에 무서운 기기가 하나 등장합니다. 바로 김준성님(JunSoft)의 MPX 카트리지입니다. 

빠른 MSX가 있고 빠른 디스크드라이브가 있고, MP3 디코더 카트리지가 있다?

그럼, MP3를 재생해보는게 당연히 매너(!)아닌가요? ㅎ.ㅎ


목적은 간단합니다 --> 고속모드에서 MPX 카트리지를 활용

turboR은 내장 램에서는 빠르게 동작하고 외부 SLOT은 H/W 호환을 위해 느리게 동작합니다.

BUS 타이밍이 기존 MSX 3.5MHz에 맞춰 align 되어있어요.


결국 MP3 플레이어가 고속모드에서 손해를 보지않으려면,

SLOT I/O 영역을 R/W 할 때 외엔 S/W가 모두 램에서 구동되어야합니다. 간단하죠? ㅎ.ㅎ

그렇게 DOS/DOS2 용 MPX 플레이어를 만들게됩니다. 이름은 그냥 MPXPㅋ

https://sharksym.blogspot.com/2007/10/mpxp-v110-media-player-for-mpx.html


근데 아무리 최적화를 해도 좀 아쉬움이 남네요.

MMC Disk에서 구동해도 MP3 192kbps 재생이 한계네요. bitrate 높은 애들은 포기~ㅎ



3.3 S/W의 한계는 H/W로 극복(?)


목표는 'MPX로 320kbps의 MP3를 재생하기'


MMC/SD Drive의 SPI 처리에서 BIT 쉬프터를 SLOT의 CLK(3.58MHz)으로 직접 구동하도록 개선합니다.

기본 속도가 122KB/sec가 되었네요. turboR에서는 134KB/sec이구요.

V1보다 4배가 빨라지니, MP3 320kbps는 한방에 해결이네요! ㅎ.ㅎ

turboR 고속모드와 고속디스크의 향연~ MMC/SD Drive V2 ㅎ.ㅎ/

https://sharksym.blogspot.com/2007/10/mmcsd-drive-v2-swhw.html



3.4 FAT12 파티션의 한계


320kbps의 MP3 재생이 해결되니, 또 다른 문제가 떠오르네요.

DOS2가 사용하는 FAT12 파티션은 최대 사이즈가 32MB입니다.

MP3 3개를 넣으면 가득차는 용량이죠ㅋ


일본에서는 Okei씨가 DOS2에서 FAT16 파티션을 쓸 수 있도록 커널 패치를 제작하고 있었는데요.

수년에 걸쳐 개발, 수정이 되었지만 크게 사용이 되지못했습니다.

사실 MSX에서 큰 용량의 파티션이 그렇게 필요한 환경은 아니었거든요.

32MB 파티션을 여러개 쪼개서 쓰더라도 충분했습니다.

저는 MMC/SD V2 쓸 때 A: B: C: 드라이브를 32MB 파티션으로 썼는데, 그닥 불편함이 없었습니다.


그러다 2006년말 1chipMSX가 나올 때, 이 FAT16 패치가 기본적으로 탑재된 상태로 발매됩니다.

FAT16 패치 버그때문에 쓰는 사람이 별로 없었는데, 이제 안정버전이 되었나 싶더라구요.

참고로 현재 2023년에도 쓰이는 FAT16 패치 v0.12는 2006년 5월에 릴리스되었습니다.

1chipMSX 출시 눈앞이었던 때였어요 ㅎ.ㅎ

이제 2008년 MMC/SD Drive에서도 FAT16 지원을 해야할 타이밍입니다.


일단 MMC/SD의 SD카드 슬롯을 2개로 늘립니다.

기본 SD는 원래 용도(FAT12 부팅, 작업용 및 FDD 에뮬용)의 파티션으로 나눠서 쓰고,

추가된 SD는 전체를 FAT16 파티션으로 포맷해서 쓰는거죠.


일단 디스크롬은 paraMSX로 구현해서 테스트를 해봅니다.

에뮬에서는 SD카드(디스크 이미지 파일)가 망가져도 상관없으니 편하게 테스트가 가능합니다요~


완성 후 MMC/SD의 디스크롬에도 적용!

아... MP3, MIDI 등의 멀티미디어 데이터로 꽉꽉 채우니 완전 편하네요.

FAT16 만세! ㅎ.ㅎ/


2023년 요즘에도 가끔 MMC/SD V2 얘기가 나오곤 하는데요.

보통 V2라고 얘기하면, 이 때 만든 SD카드 슬롯이 두개인 MMC/SD Drive V2.2를 의미합니다.

https://sharksym.blogspot.com/2008/04/mmcsd-drive-v22.html



3.5 MMC/SD에 DOS2 커널을 넣어보자


FDD의 디스크롬에는 기본적으로 1984년에 개발된 DOS1 커널이 들어있습니다.

1988년에 DOS2가 별도의 카트리지로 출시되었지만, 국내에서는 보기 힘들었구요.

1990년 FS-A1ST turboR에 DOS2가 기본내장되면서 아마 접해보신 분들이 계셨을겁니다.


뭐 turboR 유저라면 DOS2 사용에 문제가 없지만, MSX2/2+를 쓰는 분들은 두가지 벽에 부딛히게 되는데요.

- 첫번째 벽:

메모리매퍼가 최소 128KB가 있어야 부팅이 되는데, 다른 프로그램을 활용하려면 최소 256KB 필요합니다.

많이 쓰이는 소니, 파나소닉의 MSX2+들이 죄다 램이 64KB밖에 들어있지않습니다.

본체의 램확장이 필수였던거죠. 기기를 만들어도 사용하는 사람이 별로 없으면 좀 심심합니다.

이 때부터 제가 "512KB 램 증설은 기본으로 하셔야죠~"라고 외치기 시작합니다요ㅋㅋ

- 두번째 벽:

DOS2 커널을 쓰려면 오리지널 DOS2 카트리지를 구해서 쓰거나, 커널롬만 따로 자작해서 써야합니다.

여기까지는 괜찮은데, 본체의 기본 슬롯이 2개뿐인데 DOS2랑 MMC/SD 카트리지를 꽂으면 남는 슬롯이 없게됩니다.

결국 또 확장슬롯을 기본으로 장착해야하는 사태가...ㅎ.ㅎ


암튼 어떻게든 MMC/SD 사용자 확보(!)를 위해, 디스크롬에 DOS2 v2.20 합체 작업을 해봅니다.

사실 turboR에 내장된 디스크롬이 이런 스타일(DOS1 + DOS2)이라, 비슷하게 구현하는건 문제가 아니었는데...

복병이 대우 아이큐2000에서 발생하더라구요.

DOS2와 일반 디스크롬이 각각의 슬롯에 있지않으면 초기화할 때 램이 엉망이 되어서 ㄷㄷㄷ

사실 DOS2 초기화가 좀 복잡합니다ㅋ

암튼 이리저리 디버깅을 해서, 결국 대우 기종에서도 쓸 수 있게 되었어요.

https://sharksym.blogspot.com/2008/06/mmcsd-drive-v1v2-bios-v310.html


모든 MSX2/2+/turboR에 MMC/SD Drive를 꽂는 날까지 달립니다~~~



3.6 동영상과 PCM오디오 플레이어


대용량 디스크를 낭비(ㅋ)하는 좋은 방법은 역시 멀티미디어 데이터로 채우는거죠.

그럼 먼저 동영상 플레이어를 만들어야하는데..응?


SD카드에서 데이터를 읽어서 메모리에 저장하는게 아니라, VRAM과 turboR PCM포트에 바로 출력하면 빠르게 출력할 수 있습니다.

한가지 고민해야할 부분은,

DOS1에서 DOS2로 바뀔 때, 디스크 Read 시 타켓 슬롯은 메모리만 된다는건데요.

이게 무슨 소리냐면...

예를 들어 Memory mapped I/O로 구현된 주변기기가 있더라도,

DOS2의 디스크 루틴을 사용하게 되면, 디스크를 데이터를 읽어서 해당 주변기기의 I/O로 전송하는게 불가능하다는 얘기입니다.

DOS2에서는 메모리매퍼를 이용해서, Page1은 디스크 커널, Page2는 소스/타겟 메모리로 고정하기 때문에,

전송 중 슬롯 전환 같은 불필요한 작업이 필요없고, 메모리 주소 영역에 따른 페이지 전환도 빨라서 성능이 더 좋습니다.

결국 이득이 훨씬 더 많은 커널인거죠.


암튼 동영상 플레이어처럼 데이터를 읽어서 비디오로 쓰인 후엔 바로 버려지는 경우는,

메모리에 로딩(DOS2 커널 무시)할 필요없이 그냥 디스크에서 읽은 데이터를 VRAM으로 보내면 끝입니다.

그리고 비디오 데이터를 처리하면서 간간히(ㅋ) 오디오 PCM을 출력하면 소리도 나오겠죠? ㅎ.ㅎ


동영상 인코딩은 MSX로 불가능하니, 윈도용 프로그램으로 대충 만들고,

동영상 플레이어 루틴은 MMC/SD 디스크롬에 넣어버립니다.

스크린12와 스크린8을 지원하니까 색깔은 꽤 괜찮게 나옵니다. 화면 크기가 작은게 좀 아쉽지만요 ㅎ.ㅎ

그리고 turboR에서는 S/W 구동 속도를 올리기위해 보통 고속모드(램 코드)를 사용하는데요.

고속모드에서는 VDP I/O 패널티(wait clock)가 있어서, 동영상 재생할 때는 Z80 노말모드(3.58MHz)로 구동합니다.

영상/음성 출력에 대한 자세한 내용은 아래 링크들을 보시면 되겠습니다.

https://sharksym.blogspot.com/2009/08/mmcsd-drive-v2-1.html

https://sharksym.blogspot.com/2009/08/mmcsd-drive-v2-2.html

https://sharksym.blogspot.com/2009/08/mmcsd-drive-pcm.html


동영상 인코더는 아래 링크에서 볼 수 있습니다만, 쓰실 일은 없겠네요. 이젠 V3,V4가 주력이니~ ㅎ.ㅎ

https://sharksym.blogspot.com/2009/12/mmcsd-drive-v1v2.html


그 때 찍었던 영상도 구경하시죠 ㅎ.ㅎ





3.7 메인 SD카드의 파티션 구조 변경


기존 파티션관리를 위해 사용되던 툴이 DISKMAN, DSKCOPY 인데...

이게 사용이 불편해서, 윈도용 Disk Manager을 만들어서 주로 사용했습니다.

이렇게 생겼습니다. 아마 못 보신 분들도 많을 듯요.




근데 이게 저만 그런게 아니라 다른 분들도 거의 윈도 프로그램만 쓰는거 같더라구요.

이건 올바른 방향이 아니라는 생각이 머리를 스치게됩니다.

그.래.서.

이제 MSX가 아닌 다른 컴퓨터의 도움을 빌리는 방식은 쓰지않기로 다짐합니다.

지난 5년 동안(2004년~2008년) 잘 썼던 프로그램들을 다 폐기하고, 새로운(이상한?) 세상으로 나가는겁니다. 흐...


디스크관리 툴은 DISKMAN 하나로 통합됩니다.

대충 이런 모습이에요.




S/W 개발/테스트 작업은 주로 paraMSX에서 했습니다.

괜히 실기에서 SD카드 포맷하고 이미지 전송하느라 시간 허비할 필요는 없으니까요.

에뮬에서 동작하는 모습은 아래 링크에서 볼 수 있습니다.

https://sharksym.blogspot.com/2009/10/paramsx-v050b-mmcsd-drive.html


.

.

.


2003년 turboR을 구하면서 2009년까지 미친듯이 달렸던 기억들을 모아봤습니다.

어랏... 근데 제목의 "램상주 폰트" 얘기는 언제 나오냐구요? 이건 다음편에서 ㅎ.ㅎ


긴 글 읽어주셔서 감사합니다요~


2023년 7월 22일 토요일

M File Manager v4.2 for MSX-DOS2

 


Download: M_v4.2_20230722.zip


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

    M File Manager v4.2 for MSX-DOS2 (2023-07-22)

        By Yeongman Seo <sharksym@hitel.net>

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


* UPDATE


  @ 기능 변경/개선


  - 메모리 관리 및 코드 속도 최적화


  - M.INI의 사용자 메뉴 설정 메모리 변경

    기존 4.5KB에서 6KB로 증가


  - 도움말 파일(H.HLP, M_IL.HLP)에 Quick-Dir 설명 추가



  @ 기능 추가


  - Quick-Dir

    '즐겨찾기' 방식의 메뉴입니다. HOME 키를 눌러 표시합니다.

    INS 키 -> 현재 디렉토리를 목록에 추가

    DEL 키 -> 선택된 디렉토리를 삭제

    CURSOR/RETURN 키 -> 디렉토리 선택 및 이동

    디렉토리 목록은 별도의 파일(QDIR.DAT)로 저장

   



2023년 7월 15일 토요일

[IPS] YS2 Music mode patch (20230715)

 


Download: YS2_Disk2_(Music_Mode)_20230715.zip


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

YS2 Music mode patch (2023-07-15)

    By Yeongman Seo <sharksym@hitel.net>

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


YS2의 두번째 디스크(Data Disk) 용 IPS 패치입니다.


패치된 디스크로 부팅 시,

F3키를 누르지않아도 뮤직모드로 진입합니다.


그럼, 이만~


2023년 7월 14일 금요일

MMC/SD Drive V3/V4 - BIOS & Tool v5.68

 


Download: 20230714_MMCSD_Drive_V3_V4_BIOS_Tool_v568.zip


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

MMC/SD Drive(tm) V3/V4 - BIOS & Tool

    By Yeongman Seo <sharksym@hitel.net>

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



[ BIOS & Tool v5.68 ]


- MegaRAM / FDD_EMU / GameRunner


  MoonBase의 OPLL PCM Drum 모드전환 추가  

  -> '/M?' 옵션으로 OPLL Drum 모드로 전환

     GameRunner 모드에서는 DOS2로 복귀 후,

       MoonBase의 기존 동작모드로 원복됨.

     사용예: /M04 (PCM 패턴 0, 볼륨 4)

             /M15 (PCM 패턴 1, 볼륨 5)


- SUB-ROM


  MSX1에서 구동 가능하도록 개선

  -> 최소환경: MSX1 RAM 16KB



[ 업데이트 가이드 ]


1. MMCSD.COM, MMCSD.OVL 두개 파일을 SD카드에 복사.

   기존 파일을 덮어쓰면 됩니다.(예:UTILS 디렉토리)


2. MMCSD568.ROM 파일을 SD카드 루트에 복사.


3. MSX-DOS2 부팅 후 명령창에서 아래처럼 입력.

   A:\>MMCSD MMCSD568.ROM


4. 다운로드 완료 후 리턴키 눌러서 재부팅.


5. 끝


2023년 7월 7일 금요일

M File Manager v4.1 for MSX-DOS2

 



Download: M File Manager v4.1


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

    M File Manager v4.1 for MSX-DOS2 (2023-07-07)

        By Yeongman Seo <sharksym@hitel.net>

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


* UPDATE


  @ 버그 수정


  - LFN 모드에서 #CDD 명령 사용 시 오동작 수정



  @ 기능 변경/개선


  - #MPXP에서 ID3v2 태그 표시 개선

    일부 긴 문자열이 '-too big-'으로 대체되는 현상 수정


  - M.INI에서 'LED:' 옵션 제거

    turboR에서 실시간 MIC 입력으로 레벨미터를 표시하던 기능 삭제



  @ 기능 추가


  - #MPXP에서 MPX R2.0 카트리지 지원 추가

    MP3, WMA, FLC(flac) 등의 기본적인 플레이만 가능합니다.

    (비트레이트 표시불가, 스펙트럼 애널라이저 펌웨어 사용불가)


  - 흑백 팔레트 모드 추가

    CTRL + N 키를 눌러, 흑백/컬러 모드를 전환합니다.