2024년 10월 25일 금요일

WAU 제작 #5 - PC 리모트 드라이브

MSX와 PC가 네트웍으로 데이터를 공유한다면, 어떤 방식을 쓰는 것이 좋을까요?


이번에 WAU에서 구현된 'PC 리모트 드라이브' 기능은,

PC에 연결된 이동식(removable) 디스크의 RAW 섹터 액세스를 그대로 MSX에서 동작시켜주는 방식입니다.

실제 HDD는 PC에 연결되어 있지만, MSX 유저는 로컬 디스크를 쓰는 것처럼 모든 디스크 기능들이 그대로 동작되는 거죠.


왜 이동식 디스크라는 얘기를 썼냐면요.

윈도에서 물리적인 디스크 섹터의 액세스를 일반 프로그램에세 허용해 주는 것이 제한되어있습니다.

PC 본체에 물려진 내장 디스크는 접근이 안되거든요.

물론 커널 드라이버를 만들면 되겠지만... 어차피 MSX가 인식할 수 있는 게 저용량 FAT16이니까,

그냥 적당한 외장 디스크(USB 메모리스틱, USB HDD 등)를 붙입시다요~ ㅎ.ㅎ/


아래는 제가 백업용도로 쓰고 있는 USB HDD입니다.

용량이 2TB인데, 끝부분 2GB정도만 잘라서 FAT16으로 포맷 후 Y: 드라이브로 마운트했놨습니다.

테스트 용도로 폴더 및 파일들을 복사해놨구요.



PC와 MSX WAU간의 TCP 통신을 위해, 간단하게 만든 PC쪽 서버 프로그램을 실행해둡니다.


.

.

.

'이제 와우 서버에서 얼라이언스와 호드가 만나게 되는데...'는 아니구요.

WAU에서 요청하는 드라이브의 간접 액세스를 대신 처리하는 용도입니다 ㅎ.ㅎ


그럼, MSX쪽에서 서버 설정 및 드라이브 선택을 해야겠죠?

WAU프로그램에서 /D:IP주소 옵션을 입력하면, 아래처럼 PC의 드라이브가 연결됩니다.

PC의 Y: 드라이브를 MSX의 H: 드라이브로 동작이 됩니다. DOS의 DIR H: 명령이 실행된 모습이네요.




WAU의 드라이브 문자는 기존 일반 드라이브처럼 부팅 시 정해집니다만, 약간의 차이점이 있어요.


- 마스터 디스크롬으로 등록불가

  WAU를 빠른 슬롯에 꽂았을 때, WAU의 디스크롬이 마스터가 되어 부팅 드라이브 A:가 되는 것을 막기 위함입니다.


- 슬레이브 디스크롬으로 등록 순위

  WAU가 빠른 슬롯에 장착되어, 첫 디스크롬으로 실행되는 경우는 드라이브 등록을 취소합니다.

  따라서 다른 디스크롬이 부팅 드라이브 A:부터 점유하게 됩니다.

  이 때, MMC/SD V3 또는 V4가 존재한다면, MMC/SD 이후의 드라이브로 등록됩니다.


  예를 들어 FDD가 내장된 파나소닉 기종에서,

  SLOT 1   = WAU

  SLOT 2   = MMC/SD V4

  SLOT 3-2 = FDD

  로 배치했다면, V4 -> WAU -> FDD 순으로 드라이브가 등록됩니다

  만약 V3, V4 외의 대용량 디스크드라이브를 사용한다면,

  해당 디스크를 SLOT 1에 넣고, WAU를 SLOT 2에 장착하는 식으로 쓰면 됩니다.


  다른 예로 X-II에서,

  SLOT 2   = FDD

  SLOT 3-0 = V4

  SLOT 3-3 = WAU

  로 배치했다면, V4 -> WAU -> FDD 순으로 등록됩니다.

  X-II에서는 내장 FDD가 가장 늦게 리매핑이 되도록 해놨습니다.



아래는 M 파일매니저를 실행한 모습입니다.

그냥 MSX의 로컬 디스크를 쓰는 것과 동일하게 사용하면 됩니다.

DOS 커맨드를 쓰거나 Disk BASIC에서 명령들을 똑같이 쓸 수 있어요.



그럼, 실제로 사용하는 모습을 영상으로 보시겠습니다.





그럼, 다음편에서 이어집니다...


2024년 10월 20일 일요일

WAU 제작 #4 - GitHub 다운로드

MSX가 인터넷에 연결되면, 뭘 하면 도움이 될까요? ㅎ.ㅎ


만약 프로그램, 데이터 파일을 다운로드 받는 용도로 쓴다면, 어떤 방법이 좋을까요?

텔넷, FTP 정도가 머리에 떠오릅니다만...

요즘엔 이런 서버를 운영하는 곳도 드물고, 실제로 접속해서 쓰는 사람도 거의 없네요.


그래서 이것 저것 생각하다보니,

요즘은 GitHub를 S/W 개발용이 아닌 파일 저장소로 쓰는 분들이 꽤 있더라구요.

GitHub에 널린(?) MSX 자료를 받는 용도로 써본다면 좀 의미가 있겠죠?


으흠... GitHub용 간이 브라우저는 나중에 생각해보기로 하구요.

이미 알고 있는 GitHub repo에서 파일을 받는 걸 해봅시다!


근데, 보통 파일을 다운받을 수 있는 URL이 키보드를 타이핑해서 입력가능한 수준이 아닙니다.

URL을 찾는 것도 S/W의 도움이 없으면 불가능한데, 일단 본인의 repo라면 대충 기억하실테니 어떻게 한번 시도해보아요.


WAU.COM 프로그램에서 /G 옵션으로 파일을 GET 하기위한 URL을 입력합니다.

아래처럼 저의 git에서 파일을 하나 골라서, 명령어를 BAT 파일로 만들었습니다.



실행하면, 아래처럼 현재 디렉토리에 파일을 다운받는 것을 볼 수 있어요.



이번엔 repo에 있는 디렉토리, 파일 목록을 읽어서 다운로드 해주는 프로그램을 만들어봅니다.

git은 아래처럼 구성해서, 제가 만든 프로그램 몇개를 올려놨습니다.

https://github.com/sharksym/MSX-APP



WAU.COM에서 /A 명령을 주면, MSX-APP repo의 디렉토리 목록을 보여줍니다.




다운 받을 앱의 이름(디렉토리)을 WAU.COM의 /A:옵션으로 실행합니다.

아래는 WAU /A:PACV 를 실행한 모습입니다.




이젠 저의 프로그램들 또는 다른 분들의 자료를 받을 때, MSX 혼자만의 힘으로 가능하겠지요? ㅎ.ㅎ


그럼, 실제 동작하는 모습을 영상으로 구경하시죠!



그럼, 다음편에서 이어집니다...


2024년 10월 18일 금요일

WAU 제작 #3 - Audio

WAU의 Audio 기능은 VS1003B 칩으로 동작합니다.

준소프트님의 예전 MPX R1.0 카트리지에 들어간 오디오 디코더와 같습니다.

MP3, WMA 디코딩이 가능하구요, WAV도 다이렉트로 출력가능합니다.

(있으나 마나 수준의 MIDI 재생도 들어있..ㅋ)


MPX R1.0 카트리지와 오디오 칩은 동일합니다만,

레지스터가 메모리맵 I/O가 아닌 포트 I/O만 사용합니다.

바꿔말하면 S/W가 서로 호환이 되지않습니다.


외부 오디오 단자는 2개가 있습니다.

카트리지 전면에 가까운 단자가 출력이구요. 후면에 가까운 단자는 입력입니다.

외부에서 입력된 신호는 패시브 믹서로 WAU의 오디오와 믹스되어 출력됩니다.



WAU는 앞으로 확장슬롯에 늘 꽂혀 있을테니, 믹서를 하나 넣는 것도 괜찮아보였어요.

저는 NeoTron의 출력을 WAU의 오디오 입력으로 넣었습니다.

요걸로 주렁주렁 달린 A-MPS 한개를 떼어냈네요. 흐흐...

아래는 확장슬롯에 꽂힌 카트리지의 모습입니다. (레이블 없는 까만놈이 WAU에요)




그 외 기본적인 오디오 기능은 MPX R1.0 때와 비슷합니다.

물론 제가 만든 S/W만 WAU를 지원하겠지만요 ㅎ.ㅎ


M 파일 매니저의 #MPXP 명령으로 MP3, WMA, MIDI 파일의 재생이 가능하구요.

스펙트럼 애널라이저 펌웨어를 로딩해서 PAC-V(또는 XII-V)의 비주얼라이저 구동도 가능해요.

이미 다 아시는 기능이니, 따로 사진을 찍을 필요는 없을 것 같군요. 넘어갑니다요~



이제, WAU만으로 할 수 있는 활용법이 나갑니다.


WAU에는 Wi-Fi가 있으니, MP3 스트리밍을 해봐야겠죠?

로컬 디스크에 있는 MP3 파일이 아닌, 이터넷으로 데이터를 받으려면 스트리밍을 해주는 URL을 입력해야하는데요.

어떻게 하면 좋을까요?

주소를 사용자가 직접 타이핑하거나, 별도의 프로그램으로 URL 리스트를 관리해주는 방법도 있고 뭐, 그렇네요.


참고로, M 파일매니저의 음악 재생 방식은, 폴더(디렉토리) 플레이어류와 같은 방식입니다.

현재 내가 열어놓은 디렉토리에서 원하는 파일을 주르륵 골라서 재생시키는 거죠.


혹시 20세기 WinAmp 시절부터 내려오는 그 전설의 PLS 파일을 아시나요? ㅎ.ㅎ

원래 목적은 자기가 좋아하는 음악들을 분류해서 여러개의 리스트(*.PLS)를 만들어서 쓰는 건데요.

인터넷 라디오(오디오 스트리밍) 용 URL도 쓸 수 있습니다.

아마 예전에 한번씩 써보셨을 거에요.


아래는 PLS 파일의 샘플입니다.

[playlist]

File1=http://radio.streemlion.com:1560/stream

Title1=Greatest Hits of the 80s [320kbps]

NumberOfEntries=1

Version=2


M 파일매니저에서는 PLS의 항목에서 1번 링크(File1)만 사용합니다.

그러니까 PLS 파일과 URL 주소가 1:1로 대응된다고 보시면 되겠습니다.


여기저기서 모은 스트리밍 주소들을 각각의 PLS로 만들고,

제 윈도 PC에서 구동한 icecast의 주소도 만들어봤습니다.


만들어진 PLS 파일들을 M 파일매니저에서 실행하면,

 WAU의 WiFi + MP3 디코더를 이용해서 음악을 듣게 되겠습니다요~ ㅎ.ㅎ/


그럼, 동작 영상으로 보시죠~





그럼, 다음편에서 이어집니다...