2017년 10월 21일 토요일

MS-DOS Player 맛보기

MS-DOS Player는 윈도에서 구동되는 프로그램입니다.

http://takeda-toshiya.my.coocan.jp/msdos/


이름만 봐도 기능을 추측할 수 있는 프로그램인데요.ㅋ

윈도에서 MS-DOS 용 16비트 프로그램을 실행해줍니다.

그러니까 MS-DOS 에뮬인 셈이죠. 소스를 보니 CPU쪽은 MAME의 코드가 쓰였네요.


저는 윈도10 x64 버전을 쓰고 있구요.

프로그램(msdos.exe)를 윈도 PATH가 걸린 폴더에 복사했습니다.

명령 프롬프트를 열어서 실행해보면, 아래처럼 뜨는걸 볼 수 있네요.





윈도에서 DOS 프로그램 실행은 여러가지 방법이 있는데요.

대표적으로 VMware, DOSBox 같은 프로그램이 먼저 떠오르네요.


근데 MS-DOS Player는 실행하려는 프로그램에 에뮬레이터를 삽입해서,

win32 프로그램처럼 변환해주는 좀 특이한 기능을 갖고 있습니다.

사용자 입장에서는 요게 아주 편리한 방식이죠.


그럼 어떻게 구동되는지 한번 보시죠!



테스트에 쓰인 프로그램은 DOS 용 LHA.EXE랑 UC.EXE입니다.

압축 테스트 용 LZH 파일도 하나 준비했구요.

참고로 UC는 UltraCompressor II 입니다.


윈도의 명령 프롬프트에서 실행해볼까요?

아래처럼 에러가 나오네요. 흐흐...





그럼 MS-DOS Player로 LHA를 실행해보겠습니다.

잘 돌아가네요!





근데 매번 msdos lha .... 으로 실행하려면 귀찮겠죠?

링크를 만드는 등의 다른 방법도 있겠지만...

MS-DOS Player의 실행파일 변환 기능을 한번 써보겠습니다요!


msdos -c -p437 LHA.EXE 를 실행한 모습입니다.

옵션에서 -c는 실행파일 변환을 의미하구요. -p437은 문자의 코드페이지437을 의미합니다.

new_exec_file.exe 라는 이름으로 변환된 파일이 나왔네요. (용량이 뻥튀기되었..ㅋ)





그럼, 원래의 LHA.EXE 파일을 삭제하고 새로 생성된 파일을 LHA.EXE로 바꿔서 실행해봅니다.

잘 돌아가죠? 오리지널 win32 프로그램처럼요 ㅋㅋ





LHA.EXE 파일도 만들었으니, 이걸로 파일 입출력이 제대로 되는지 봐야겠죠?

lha l 명령과 lha e 명령 둘다 잘 먹네요.





파일이 정상적으로 생성되었는지 텍스트 파일 하나만 열어봅시다~

압축이 잘 풀렸네요! 짝짝짝~ ㅎ.ㅎ






UltraCompressor도 같은 방식으로 파일변환을 해봅니다.

실행도 잘 되는군요! ㅎ.ㅎb





이런식으로 윈도에서 도스용 프로그램을 써야할 경우가 생기면,

MS-DOS Player가 유용하게 쓰일 수 있겠죠?


그럼, 즐거운 윈도 생활(?) 되세요~ ㅎ.ㅎ


.

.

.

.

.


마지막으로 몇줄 더 적습니다.


윈도10의 파워쉘에는 LHA 프로그램이 내장되어있습니다.

어, 그럼 여태 삽질한건가요?

그건 아니구요.


아래 스크린샷을 한번 보시죠!





lha l 명령을 써보면 압축파일 처리에 문제가 발생하는게 보이시죠? ㅋ

e 명령에서는 에러가 없는데... 아마 압축은 제대로 풀린 것 같네요.


결론은,

MS-DOS Player를 이용해서 DOS 실행파일을 변환하면 편하게 쓸 수 있다

입니다.


그럼, 즐거운 주말되세요!!


2017년 10월 19일 목요일

paraMSX-R 제작 #13 - MSX-Audio BIOS v1.3 테스트

간만에 paraMSX-R 영상을 찍어보았습니다. ㅎ.ㅎ


paraMSX-R에는 MSX-Audio BIOS v1.3 에뮬이 들어있습니다.

여기서 쓰이는 BIOS는 파나소닉의 오리지널 롬은 아니구요,

브라질의 sd_snatcher님이 개인적으로 개발하는 개조 BIOS입니다.


오리지널 MSX-Audio는 Y8950에서만 구동이 되지만,

개조 BIOS는 필립스 뮤직모듈, 문사운드, 달소리 등의 Y8950 및 OPL 계열칩이 있으면 쓸 수 있습니다.

참고로 BIOS 롬은 PARATOOL.COM 프로그램으로 paraMSX-R에 다운로드 가능합니다.


그럼 실제 동상 모습을 볼까요?

저의 A1GT에서 문사운드 카트리지와 함께 paraMSX-R을 구동했습니다.

전반은 CPC-400 모드에서 딜럭스박스에 제비우스를 로딩/구동하는 영상이구요.

후반은 FS-A1WX 모드에서 파이어호크 HDD 인핸스 버전을 구동하는 영상입니다.


MSX-Music (OPLL)과 차이가 좀 느껴지시나요? ㅎ.ㅎㅋ




그럼, 즐거운 밤 되세요. ㅎ.ㅎ/


2017년 10월 15일 일요일

MAD80 - 페이지3의 메모리 덤프 시 슬롯 조건??

최근에 천국동 질답 게시판에 MAD-80 글이 하나 올라왔었습니다.

http://cafe.naver.com/msx/13227


메모리 덤프 명령 쓸 때, 시작 주소를 C000H 이후(페이지3)로 설정하면 주소가 0000H으로 바뀌는 현상에 대한 것이었습니다.

일단 이경우가 발생하면 0000H ~ BFFFH 메모리 덤프를 반복하게 됩니다. (무한루프~ㅋ)


MAD80이 오래된 프로그램이긴 하지만...

80년대에 아이큐1000/2000에서 쓰셨던 분들이 많을거라 생각해서 몇가지 테스트를 해보았습니다.

사실 저는 이거 안써봤어요. ㅎ.ㅎ


아래는 MAD80 설명서에서 긁어온 내용입니다.


1) MAD80 2.0 의 상주과정.

기존의 MAD80 에서는 무조건 슬롯 2에 MAD80  을 세트시킴으로 메인램이 슬롯 0의 

확장슬롯2에 있던 MSX 2 에서는 안될수밖에 없었다.  그러나 MAD80 2.0 에서는 다

음과 같은방법으로어떤환경에서든 잘  상주시킬수 있게 되었다. MAD80 2.0  은 페

이지 1에 상주하고  페이지 0을 오브젝트 영역으로 쓰는데 찾는방법은  각 기본슬

롯 및 확장슬롯을 모두조사하여 그 페이지가 램이면  그 슬롯의 페이지 1에 MAD80 

2.0 을 상주시킨다. 예를들어 MSX  2 의 경우라면 0(기본슬롯)-0(확장슬롯),0-1로 

찾아나가다가 0-2의 페이지 1에서 램이 발견되므로 그곳의  페이지 1에 MAD80 2.0 

을 상주시키고  페이지 0을 오브젝트  영역으로 사용한다. 그러나 항상  상주하는 

위치가 같은것은 아니다.(확장램이 있을경우 그곳에 자리잡는다)


요약을 해보면,

- MAD80.BIN 파일을 로딩/실행하면 램에 상주한다.

- 페이지1 (4000H~7FFFH)에 상주하며, 슬롯 위치에 상관없이 상주 메모리를 찾는다.

- 확장램이 발견되면 확장램에 상주한다. (여기서 확장램은 재미나 램카드일 확률이 높겠죠?)



그럼, 테스트를 해봅니다.

blueMSX 에뮬에서 FS-A1WSX 머신으로 구동했습니다.

참고1) A1WSX는 슬롯0, 슬롯3 두곳이 확장되어있고, 메인메모리(64KB)는 슬롯3-0에 위치합니다.

참고2) MAD80의 슬롯지정은 일반적인 MSX BIOS의 슬롯ID와는 다릅니다. 설정값은 매뉴얼을 참고하세요.


1)

#DC00,DC01F 명령으로 메모리 32바이트를 덤프해봤습니다.

어라? 메인램이 있는 슬롯3-0은 덤프가 정상적으로 되네요.

그 외의 슬롯은 모두 오동작합니다.

아래 슬롯0-0에서 덤프한 것 처럼 무한루프로 빠지면서, 0000H ~ BFFFH 덤프가 반복됩니다.

비어있는 카트리지 슬롯이든, 64KB 롬팩을 넣은 슬롯 상관없이 오동작합니다. (페이지3은 덤프 불가!)





2)

메인메모리(BIOS가 선택하는 메인메모리) 위치와 덤프 조건과 연관이 있을까요?

슬롯2에 메모리매퍼 2048KB를 설정하고 부팅합니다. 이렇게 되면 메인메모리가 슬롯2로 선택이 되겠죠?


덤프를 해보면 아래처럼 나오네요.

메인램이 있는 슬롯2에서는 C000H 이후 메모리가 제대로 덤프가 됩니다.

근데, 본체 내장메모리인 슬롯3-0에서 덤프하면 오동작하네요. @.@

그럼, 메인메모리가 아닌 슬롯은 무조건 오동작하는걸까요?





3)

그럼, MAD80 프로그램이 어느 슬롯에 상주해있는지 확인해봅시다.

슬롯2의 페이지1을 덤프합니다. --> 아무것도 없네요. FFFF....

슬롯3-0의 페이지1을 덤프합니다. --> MAD80 프로그램이 보이네요.

어랏, 아까 슬롯3-0의 페이지3을 덤프하면 맛이 갔는데...ㅋ






현상을 정리하면...

- 메인메모리로 선택된 슬롯은 페이지3을 덤프할 수 있다.

- 메인메모리로 선택된 슬롯이 아니라면, 본체 내장/외부 상관없이 페이지3을 덤프할 수 없다.


그럼, 결론은 뭘까요?

-> MAD80으로 페이지3을 덤프하는 용도로 쓰지 못함


이상입니다~ ㅎ.ㅎ

2017년 10월 13일 금요일

세가 마스터 시스템 버전의 YS 음악 (DCSG, OPLL)

아시다시피 MSX2 버전의 YS는 PSG (AY-8910) 사운드만 사용합니다. (YS2도... YS3도... ㅎ.ㅎ)

세가 마스터 시스템 버전의 YS는 사운드가 두 종류더라구요. DCSG (SN76489)와 OPLL (YM2413)인데요.


세가쪽의 YS 음악들은 VGM 파일로 덤프가 되어있어서, MSX에서 재생을 해볼 수 있습니다.

그래서 제 GT로 돌려봤다는 얘기죠!ㅋ


M에서 두버전의 VGM 파일들을 교대로 재생시키는 영상을 찍어보았습니다.

VGMPlay는 Grauw님의 프로그램을 사용하였습니다.



.

.

.


그리고, 요건 보너스 영상~ ㅎ.ㅎ;

앞부분 30초만 들어보세요. 뭔가 익숙한 멜로디 ... 그거 맞나요? ㅋ