2019년 4월 20일 토요일

IMSP v0.6 (IMS Player for MSX-DOS2) (2019-04-20)


Download: IMSP_v0.6.zip

Download: STANDARD.zip


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

    IMS Player v0.6 (MSX-DOS2용 IMS 플레이어 2019.04.20)

        By 서영만 <sharksym@hitel.net>

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


* 변경 내용


  - 기능 추가

    OPLL 사운드 모드 지원



* IMSP


  IMSP는 MSX-DOS2 용 IMS 음악 플레이어입니다.

  MoonSound 호환 OPL4 카트리지를 OPL2 모드로 연주합니다.

  OPL4 카트리지가 없는 경우 OPLL 모드로 전환합니다.

  (OPLL 모드 시, 칩 내장된 악기 사용)



* 요구 사항


  MSX-DOS2, V9938/9958 VRAM 128KB, OPL4 또는 OPLL

  추가 메모리매퍼 사용하지 않음 (TPA 기본 메모리 사용)

  

  주의: IMS 데이터를 VRAM 영역(120KB)에 로딩하므로,

        FontPack ANSI 스크린, Kanji 스크린 등의 그래픽모드에서는

        실행이 불가능합니다. 일반 텍스트 모드를 사용하세요.



* 옵션 사항


  PAC-V/XII-V 카트리지가 있으면 LED 비주얼라이저가 동작합니다.



* 사용법


  PATH 걸린 디렉토리에 파일을 복사하시면 됩니다.

  IMSP.COM 및 STANDARD.BNK 두개를 복사합니다.

  DOS2 프롬프트에서 IMSP Filename으로 실행합니다.

  ESC키를 누르면, 프로그램 종료합니다.


2019년 4월 13일 토요일

M의 IMS 플레이어에 가사(ISS)를 출력해보아요~

M에 내장된 IMS 플레이어는 #IMSP라는 이름으로 들어있습니다.

IMSP.COM 으로된 별도 프로그램도 존재하니까 참고하시구요.

아래 링크를 보시면 되겠네요~ ㅎ.ㅎ

https://sharksym.blogspot.com/2019/04/imsp-v06-ims-player-for-msx-dos2-2019.html



관련 루틴이 무겁다보니, 터보알 고속모드에서만 제대로 구동이 됩니다.

#IMSP는 십년가까이 기능개선 없이 M에 내장되어있었습니다.


최근 X-II에 XII-V와 OPL4 카트리지를 내장하고 보니, #IMSP가 좀 아쉽더라구요ㅋ

그래서 최적화 삽질을 하게되었습니다~


IMS 코드 및, ADLIB 라이브러리를 모두 어셈블리로 바꾸는건 무리구요.

성능에 영향이 많이 가던 메모리 핸들러를 개선하고,

어셈블리를 좀 섞어서 상당히 속도 개선이 되었습니다.


이젠 R800 고속모드에서는 CPU 여유가 꽤 나옵니다.

그래도 일반 Z80 3.58MHz에서는 조금씩 버벅거리네요ㅋ

그럭저럭 들을만한 수준은 됩니다요~ ㅎ.ㅎ



R800 고속모드에서 여유가 생기면, 뭘 해야될까요?

당근 ISS 가사 출력 아닐까요? ㅎ.ㅎ

후딱 구현해서 돌려봅니다.

사실 ISS 루틴은 오래전부터 M에 들어있었어요. (속도가 느려서 켜지못하는 슬픔...)


문자 출력 부분도 좀 더 최적화해주니 제대로 돌아가네요!

ISS 가사는 M의 하단 윈도 두줄로 출력됩니다.

타이밍 맞춰서 색칠도 되구요. 노래방~ ㄱㄱ





ISS 출력은 고속모드에서만 자동으로 켜지도록 되어있습니다.

물론 ISS 파일이 존재하는 경우에서요~


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

음악 저작권 문제때문에 유투브에서 짤릴수도 있으니, 참고하시구요. ㅎ.ㅎ






#IMSP 개선된 부분은 조만간 코드 정리되면 M v2.7 릴리스에 포함될 예정입니다.

기존의 별도 프로그램으로 된 IMSP.COM / IMSP4.COM은...

IMSP.COM 하나로 통합해서 OPLL 또는 OPL4를 지원할 예정입니다.


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


2019년 4월 12일 금요일

XII-V 제작 #4 - 트윈슬롯 활용 그리고...

XII-V가 장착될 곳은 원래 FDD를 추가하기 위해 마련된 공간입니다.

XII-V를 넣어도 공간이 꽤 남게 되는데, 이걸 활용하기 위해...

보드에 트윈슬롯 커넥터를 붙일 수 있도록 옵션을 넣었습니다.


슬롯 용 엣지 커넥터를 보드와 수평 방향으로 납땜을 해야되니까 약간 어렵습니다.

핀들을 구부려야 납땜을 할 수 있어요.

참고로 판매될 보드에는 엣지 커넥터가 붙어있지 않습니다.

필요하신 분은 부품을 따로 납땜하셔야 되욤~ ㅎ.ㅎ






근데 트윈슬롯? 이게 또 뭔지 모르시는 분이 있을테니 '재방송' 나갑니다!

보통 슬롯에는 카트리지 하나만 꽂을 수 있게 만들어져 있습니다.


만약 슬롯 메모리공간에서,

- Page1만 사용하는 카트리지와 Page2만 사용하는 카트리지를 함께 꽂으려면 어떻게 하나요?

- 또는 I/O 포트만 사용하는 카트리지를 함께 꽂으려면 어떻게 하나요?


이럴 때 활용하기 위해 트윈슬롯이라는게 존재합니다.

말그대로 원래 슬롯과 똑같은 신호를 받는 쌍둥이 슬롯이라는 얘기죠.


XII-V는 I/O포트만 사용하는 기기입니다.

따라서 실제로 사용 시, X-II 본체의 슬롯1번과 트윈슬롯 형태로 연결이 됩니다.

이왕 케이블을 길게 끌어왔으니, 본체 남는 공간을 좀 더 활용할 수 있으면 좋지않겠습니까요? ㅎ.ㅎ


XII-V 보드 뒷면에 추가된 트윈슬롯에 카트리지를 하나 더 꽂아보아요~

본체 전면의 슬롯1번은 범용으로 써야되니, Page를 쪼개서 동작하는 카트리지를 함께 쓰긴 어렵겠구요.

대신 I/O 포트만 사용하는 카트리지를 골라봅니다.

문사운드의 클론 카트리지인 메가밍크스님의 OPL4 카트리지를 골랐어요.

(준소프트님의 달소리 R1 카트리지도 쓸 수 있겠습니다.)


OPL4 카트리지를 꽂으면 아래 사진처럼 됩니다. 오른쪽에 보이는 FDD와 길이가 비슷해보이네요.

OPL4는 한번 꽂으면 다시 뽑을 이유는 없으니, 본체안에 내장하면 편하게 쓸 수 있겠죠? ㅎ.ㅎ






참고로 OPL4 오디오 출력은 카트리지의 이어잭으로부터 X-II 본체의 사운드 입력 핀으로 직결했습니다.





.

.

.

그리고 마지막으로 영상 하나 올려봅니다.


PAC-V의 경우는 본체가 부팅 될 때, 기동 코드에서 약간의 LED 애니메이션을 보여주는데요.

XII-V에서는 S/W로 처리가 불가능하기 때문에, CPLD에 로직으로 LED 애니메이션을 넣어봤습니다.

"X-II" 로고가 나타는 영상입니다. 로고의 도트 디자인은 곰님이 해주셨어요. 곰님 짱~ ㅎ.ㅎb





XII-V 개발기는 여기서 끝입니다. 너무 빨리 끝나서 좀 아쉽네요~ ㅎ.ㅎ