레이블이 _WAU인 게시물을 표시합니다. 모든 게시물 표시
레이블이 _WAU인 게시물을 표시합니다. 모든 게시물 표시

2025년 4월 1일 화요일

WAU - MP3 스트리밍 주소 파일입니다

모아둔 MP3 스트리밍 주소 파일입니다.

PLS(플레이 리스트) 파일로 되어있는데, 파일 하나당 URL 하나씩 들어 있습니다.

오래된 포맷이라서 대부분 뮤직 플레이어에서 지원되는 걸로 알고 있습니다요~


아래 압축 파일을 풀면 33개의 PLS 파일이 나옵니다.

MP3_PLS.ZIP




MSX에서는 M 파일매니저에서 WAU 카트리지로 스트리밍 가능합니다.

관련 프로그램은 정리되면 또 올려드릴게요.



그럼, 즐감하셔요! ㅎ.ㅎ/


2025년 3월 30일 일요일

WAU 제작 #15 - SNTP 시간으로 RTC 동기화

WAU에서는 SNTP에서 받아온 시간정보를 이용하여, RTC 데이터를 재설정합니다.


원래는 이 작업을 부팅 시 SLOT INIT 루틴에서 처리하도록 했는데요.

Wi-Fi MCU쪽의 부팅 -> AP 연결 및 잡다 설정 -> SNTP 데이터 전송 -> MSX RTC 재설정 ...

이 작업이 완료될 때까지 걸리는 시간이 들쑥날쑥 하거든요.


결국 SLOT INIT 시간을 잡아먹는 것 보다는 MSX-DOS2 부팅 시점에서 처리하는 게 좋을 것 같았습니다요.


WAU의 타임존 설정은 무선AP 연결 시, 함께 설정됩니다.

아래 사진은 부팅할 때 Wi-Fi 연결을 재설정하는 모습이네요.

참고로 부팅 시, W키를 누르면 해당 메뉴로 진입합니다.

보통은 DOS에서 WAU /W 명령으로 진행되는 기능이죠. 예전 글을 찾아보시면 관련 내용이 있어요~



그럼, 부팅 후 RTC 설정을 한번 해주면 되겠죠?

아래처럼 AUTOEXEC.BAT 배치파일에 WAU /T 명령을 넣어줍시다.

/Q 옵션은 프로그램 배너를 숨기는 기능입니까, 참고하시구요.



배치파일을 저장하고 본체를 리셋하면, 아래처럼 RTC가 재설정되는 것을 볼 수 있습니다.




본체의 배터리를 제거하고 쓰시는 분도 계실텐데요. 이런 경우는 WAU의 SNTP 기능을 활용하면 좋겠죠? ㅎ.ㅎ/


그럼, 이만...


2025년 3월 25일 화요일

WAU 제작 상황 - 보드 조립 완료 (2025-03-25)

열심히 납땜한 결과, 보드 조립이 완료되었습니다.

롬 다운로드, 동작 테스트, 케이스 조립까지 완성되려면 약 2주 더 소요될 듯 하네요.

완성되면 모두 함께 발송될 예정이니 참고하시구요~ ㅎ.ㅎ



그럼, 이만...


2025년 3월 15일 토요일

WAU 제작 #14 - HispaMSX에서 YMODEM 파일받기

어쩌다보니 연속으로 텔넷 얘기만 쓰고 있네요 ㅎ.ㅎㅋ


아마 한번쯤은 HispaMSX에 접속해보신 적이 있을겁니다. 텔넷이나 웹으로요~

여기는 다운 가능한 파일들이 있어서, YMODEM을 통한 전송테스트를 해보아요!

21세기에 무슨 텔넷 파일전송이야? 라고 하실 분들이 대부분이겠지만...

텔넷 클라이언트를 만들면 어쩔 수 없이 해야되는 단계 같은 거라고 생각해주시면 되겠습니다.

네, 그닥 쓸모없는 기능인 것은 맞습니다요ㅋㅋ


HispaMSX에 접속 후 T를 눌러 파일전송 메뉴로 진입하면,

BASIC, DOCS 등의 서브 디렉토리(게시판)을 볼 수 있습니다.


원하는 파일을 선택 후, D를 누르면 다운로드 가능합니다.

프로토콜은 YMODEM으로 선택 후, 키보드의 GRAPH + Y를 누르면 파일전송이 시작됩니다.

참고로, 전송받은 파일은 현재 디렉토리에 저장됩니다.


그럼, 실제 동작 모습은 아래 영상으로 확인하시죠!



그럼, 이만...


2025년 2월 24일 월요일

WAU 제작 #13 - 텔넷으로 NetHack 접속

혹시 MS-DOS 시절(90년초)에 NetHack을 플레이해보셨나요?


이게 지금도 있더라구요 @.@

텔넷으로 nethack.alt.org로 접속하시면 플레이 가능합니다.


다른 유저가 플레이하는 모습도 구경할 수 있어서, 영상으로 조금 찍어보았습니다~ ㅎ.ㅎ



그럼, 이만...


2025년 2월 7일 금요일

WAU 카트리지의 레이블이 나왔습니다

이번에도 무광 스티커로 뽑아서 붙여보았습니다~ ㅎ.ㅎ



확장슬롯에 꽂은 모습입니다.



그나저나 SLT-X에 여유 슬롯이 2개가 생겨서 넘나 좋군요 ㅎ.ㅎ/


그럼, 이만...



2025년 1월 18일 토요일

WAU 제작 #12 - 터미널용 폰트

Wi-Fi도 있고, UART도 있으면 터미널(단말기)로 활용하는 것이 먼저 떠오르긴 하는데요.

MSX를 터미널로 만들어서 뭘 할 수 있을까요?

.

.

.

2025년 현재, 아무리 머리를 굴려도 반짝하고 떠오르는 건 딱히 없네요 ㅎ.ㅎ

뭐, '못쓰는 것'과 '안쓰는 것'은 조금 차이가 있긴 합니다요.


MSX2의 텍스트2 모드는 SCREEN 0에서 WIDTH 80 명령을 쓰도록 되어있습니다.

이 모드는 80 x 24 텍스트로 동작하니까, 터미널 기본 화면으로 딱 맞습니다.

근데, 이대로 쓰는 건 재미없으니까, 고해상도 그래픽 모드로 한글도 쓸 수 있도록 해보아요~


스크린7 인터레이스 또는 스크린6 인터레이스 모드를 위한 폰트를 만들어봅시다.

참고로, 화면 해상도는 512 x 424입니다.

영문 6 x 16, 한글 12 x 16 픽셀이 필요하겠네요.


먼저 ASCII 영역의 폰트를 에디터로 대강 찍어보았습니다.




한글 폰트는 둥근모 폰트를 폭을 줄여서 만들어봤습니다.

세로 라인들이 1픽셀로 바뀌어서 그런지, 둥근모의 느낌이 많이 사라지더라구요.




한자폰트는 워낙 많아 손으로 수정하는 건 불가능해서,

그냥 기존 폰트를 대충 스케일다운해서 넣었습니다.

모양이 안좋습니다만... 없는 거 보다는 낫겠죠? ㅎ.ㅎㅋ





WAU의 폰트 I/O는 한글 폰트팩의 그것과는 조금 구현이 다르게 되어있습니다.

WAU쪽은 1BPP, 4BPP 데이터만 처리가능하구요.

I/O포트로 읽을 때 16bit 어드레싱을 쓰도록 되어있습니다.

만약 IN A,(N) 명령을 쓰려면, 매번 A레지스터로 상위 8bit 주소를 넘겨야하니 쓰기 힘들겠네요.

그냥 IN r,(C), INI, INIR 등의 명령을 써야합니다.


보통 1BPP 폰트는 램으로 전송 후, 그래픽 모드에 맞춰서 다시 그려주니까...

폰트를 읽을 때에는 B레지스터를 16(영문) 또는 32(한글)로 놓고 INIR로 주르륵 가져오면 되겠습니다.


4BPP 폰트는 1BPP의 1/0가 아닌 15/0으로 데이터가 들어옵니다.

폰트팩의 경우는 컬러매핑 기능이 있어서, 설정된 컬러값으로 자동변경됩니다만,

WAU의 폰트는 컬러 변경을 SW로 해야합니다요~ 컬러값과 AND 연산을 해주면 되겠죠.


폰트를 연속으로 읽으려면,

먼저 B레지스터를 0으로 설정 후 IN r,(C)로 읽고, DEC B로 주소를 카운트다운합니다.

IN 및 DEC를 반복으로 하면 되겠죠.

한글폰트의 경우 96바이트를 읽게 됩니다.


참고로 한글코드는 CP949를 지원합니다.

WAU의 내장 FlashROM 절반을 폰트데이터로 쓰고 있어요ㅋ


아래는 영문 6 x 16 폰트 및 한글 12 x 16 폰트를 출력해본 모습입니다.

메인 BIOS의 영문 6 x 8 폰트도 함께 표시했으니, 사이즈를 비교해보셔요~





실제 터미널 프로그램에서는 어떻게 표시되는지 볼까요?

간이 텔넷 프로그램을 만들어보았습니다. 요건 영상으로 보시죠.

고해상도 그래픽이라 많이 무겁습니다만, turboR의 도움을 받으시면 좋아요 ㅎ.ㅎ




WAU의 기본 기능은 이정도로 마무리합니다~ ㅎ.ㅎ/

PS. 2025-01-19
한글 머드 서버가 있어서 접속해보았어요!




2025년 1월 12일 일요일

WAU 제작 #11 - LPT & AUX Driver

기본적으로 UART Tx/Rx는 COM 디바이스로 사용합니다.

근데, BASIC과 DOS에서는 LPT(또는 PRN) 및 AUX 디바이스가 미리 등록되어있어서,

Hook을 이용하면 이 디바이스를 사용자가 원하는 입출력으로 바꿔서 활용할 수 있습니다.

WAU의 UART를 LPT(PRN), AUX 디바이스로 등록하여 사용하는 방법을 보여드리겠습니다요~


@ LPT-UART


원래 LPT(PRN) 디바이스는 본체 후면에 연결되는 프린터 포트로 동작합니다.

WAU의 LPT-UART 드라이버를 설치하면, LPT가 UART-TX로 바뀌어 동작하게 됩니다.

DOS에서 WAU.COM /LPT 명령을 쓰면 설치됩니다.


아래는 DOS에서 AUTOEXEC.BAT 파일을 PRN 디바이스로 출력(하드 카피)한 모습입니다.



아래는 BASIC의 LLIST 명령을 실행한 모습입니다. UART Tx를 프린터처럼 쓸 수 있어요.



이번에는 LPT 디바이스에 문자를 직접 출력해보았습니다.

간단하게 OPEN 후 PRINT 명령이 실행된 상태입니다. COM 디바이스로 출력하는 것과 똑같죠 ㅎ.ㅎ




@ AUX-UART


AUX는 DOS에서 자동으로 등록되는 디바이스입니다.

DOS에서 WAU.COM /AUX 명령을 쓰면 드라이버가 설치됩니다.


그럼, DOS에서 AUX 디바이스로 데이터를 받아서 파일로 저장하는 걸 보시죠~


먼저 COPY AUX MSX.TXT 명령으로 AUX 입력을 처리하도록 합니다.



PC쪽 터미널에서 텍스트파일(MSX_LOGO.txt)을 UART로 전송합니다.



MSX에서 AUX 입력을 중지하려면 CTRL-STOP을 눌러줍니다.

아래처럼 TYPE 명령으로 저장된 파일의 내용을 확인해봅니다.

(ASCII 아트로 만든 MSX 로고에요 ㅎ.ㅎ)



이번엔 반대로 MSX에서 AUX로 파일을 출력해봅니다.

PRN으로 출력하는 것과 똑같은 방법입니다. PC쪽 터미널에도 잘 나오네요.



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


2025년 1월 11일 토요일

WAU 제작 #10 - Serial BIOS

일반적으로 MSX에서 처리속도와 멀티 I/O가 필요한 곳은 Memory mapped I/O를 주로 쓰고,

I/O 접근 편의성이 더 중요한 곳은 I/O Port를 씁니다.


WAU는 SPI, UART 등 모든 I/O에서 Port mapped I/O를 사용합니다.

MP3 모듈, Wi-Fi, UART를 동시에 활용하는 등의 여러가지 상황에서 편하게 쓰기 위함이 목적이죠.

뭐, 조금 아쉬운 거라면 Z80에는 port to port 전송명령어가 없다는 것 정도네요.

port to mem, mem to port 명령어 두개로 처리해야되지만, 어차피 주변장치(SPI, UART)가 느려서 딱히 손해는 없습니다요! ㅎ.ㅎ


WAU의 Serial BIOS는 ASCII MSX-SERIAL232 BIOS v1.0과 호환됩니다.

참고로 BIOS v1.0은 I/O Port를 사용하구요. v2.0은 Memory mapped I/O를 사용하니까 시리얼 카트리지를 여러개 꽂을 수 있어요.


오리지널 BIOS의 Baudrate는 19200 이하에서 설정하도록 되어있는데요.

WAU는 921600bps로 고정되어 있습니다.

프로토콜도 START 1bit + DATA 8bits + NO PARITY(0bit) + STOP 1bit 으로 고정되어있어요 ㅎ.ㅎ

참고로, COMINI 등의 초기화 명령으로 파라미터를 바꾸더라도 무시됩니다~~ 유후~~


PC와 MSX를 연결 시, 921600bps 및 H/W Flow control (RTS/CTS)을 사용해야합니다.

아래는 제가 주로쓰는 테라텀의 포트 설정입니다.




그럼, 테라텀으로 간단한 BASIC 로딩을 해보아요~

MSX쪽에서는 LOAD"COM:" 명령으로 로딩을 해줍니다.

참고로 COM:은 시리얼 디바이스 이름이구요. 여러개 있을 때에는 COM1, COM2 이런식으로 할당됩니다.

WAU는 멀티 카트리지를 지원하지 않으니까, 그냥 COM만 쓰시면 되겠어요!



PC쪽 터미널에서는 원하는 파일(TUTOR_F.BAS)을 바이너리 전송모드로 전달합니다.

테라텀에서는 파일을 드래그 & 드랍해주면 아래처럼 전송 메뉴가 뜹니다.



전송이 완료되면, LIST 명령으로 소스를 확인해보아요.



실행해보니 아래처럼 잘 나오네요 ㅎ.ㅎ



그 외 COM 디바이스의 OPEN, READ, WRITE 루틴으로 BASIC 프로그램에서 활용할 수도 있겠습니다.

(쓰실 분은 거의 없겠지만요... 저도 물론이구요ㅋㅋ)



Serial BIOS에는 간이 터미널도 내장되어있습니다.

BASIC에서 CALL COMTERM 명령으로 실행합니다.


아래는 윈도의 터미널에서 'Hello MSX!'를 입력하고,

MSX의 COMTERM에서 'Hello Windows!'를 입력한 모습입니다.



여담이지만, COMTERM 프로그램은 KANJI 스크린 및 폰트팩의 한글 ANSI 스크린에서는 오동작합니다.

이게 초기 MSX1 시절에 나온 구닥다리 프로그램이라서 그런지, 호환성이 안좋은 것 같더라구요.

음, 그러니까 COMTERM으로 한글 채팅이라도 해보실 분들은 미리 포기하시는 편이... ㅎ.ㅎ;


제가 언젠가는 한글 터미널을 만들게(?) 되겠지만,

아직까지는 쓸 곳이 없어서 개발 우선순위에서는 한참 밑에 뒀습니다. 흐흐...



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


WAU 제작 #9 - USB-UART

구닥다리 PC에서 가장 유명한 시리얼 인터페이스라면? RS-232C가 먼저 생각나는데요.

이젠 MSX에서 RS-232C를 활용할 주변기기도 별로 없군요.

생각해보니, 최근 십여년은 윈도 PC와 파일을 주고 받는 용도로만 쓴 것 같네요 ㅎ.ㅎ


아래는 예전에 자작해서 쓰던 RS-232C 카트리지입니다.



WAU에서는 RS-232C 대신 USB-UART를 쓰는 것으로 정했습니다.

PC와 MSX를 연결하는 용도로만 쓸 수 있겠습니다!

USB-C 타입이니 참고하시구요.

(근데 그거 아시나요? 이미 USB가 나온지 30년 됐다는 사실ㅋ)


WAU 카트리지 오른쪽에 USB 포트가 있습니다.




UART Baudrate는 115k, 230k, 460k, 921k로 사용가능합니다.

기본설정은 921kbps이구요.


참고로 보드의 CPLD에는 UART와 SPI 컨트롤러가 들어있습니다.

UART는 Wi-Fi 모듈 및 USB-UART 모듈과 연결이 되구요.

SPI는 MP3 모듈과 직결되어있습니다.


UART 컨트롤러에는 패스쓰루(passthrough) 기능이 있습니다.

통상적으로는 Wi-Fi 모듈과 MSX가 연결되고, USB-UART 모듈도 MSX랑 연결되지만...

Wi-Fi 모듈과 USB-UART를 연결해서 PC에서 Wi-Fi 모듈을 컨트롤 할 수도 있구요.

Wi-Fi 모듈과 MSX가 연결 중일 때, Wi-Fi의 출력을 USB-UART로 빼서 모니터링도 가능합니다.

흐~~ 사실 이건 디버깅 목적이에요 ㅎ.ㅎ



그럼, 다시 MSX와 USB-UART 연결의 주용도로 넘어옵니다.

이렇게 연결이 되겠죠?

MSX <-> WAU (USB-UART) <-> PC


UART 921kbps 속도라면 90KB/s 정도의 전송이 가능하니까, PC의 자원을 끌어다쓰는 용도로 써도 괜찮습니다.

근데 이미 Wi-Fi도 있는데, 굳이 USB 케이블 연결해서 쓰실 분이 얼마나될까 싶긴 합니다만,

아무래도 UART를 쓰는 프로그램(PC 및 MSX)을 만드는 게 더 쉽겠죠.

(심심하실 때 SW개발도 해보세요. 잼납니다요~)


일단은 이미 만들어진 파일 전송 기능을 봅시다.

제 경우는,

- 윈도에서 MSX 프로그램을 개발 후 MSX로 전송

- BAT, ROM파일 등의 사이즈 작은 파일들을 MSX로 전송

시 사용합니다.


전송용 툴은 윈도용 콘솔 프로그램이구요. 이름은 MSX_FX입니다.

저는 윈도의 '보내기(SendTo)' 메뉴에 등록해서 쓰고 있습니다. 이게 젤 편하죠.


아래는 윈도에서 M 파일매니저의 파일들을 MSX로 보내는 모습입니다.




MSX에서는 WAU /RX 명령으로 아래처럼 주르륵~ 파일들을 받을 수 있습니다.



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


2024년 11월 10일 일요일

WAU 제작 #8 - 리모트 플레이어

MSX의 사운드 기기만으로 재생이 불가능한 미디어파일들이 많이 있는데요.

이것들을 PC쪽 리모트 드라이브에 놓고 플레이해보아요~


WAU 서버가 오디오(PCM)를 MP3 320kbps로 인코딩 후 MSX로 스트리밍해주는 방식입니다.

MSX에서는 Wi-Fi로 데이터를 받아서 VS1003으로 재생(디코딩 출력)합니다.

PAC-V가 있다면 LED 비주얼라이저도 함께 동작하겠네요 ㅎ.ㅎ


WAU 서버에는 OpenMPT와 VGMplay가 내장되어 있습니다.

ffmpeg의 경우는 외부 프로그램으로 구동되지만, 데이터를 pipe로 전달받아서 사용합니다.


ffmepg  -> MKV, MP4, FLAC, OGG 등의 오디오 처리

OpenMPT -> S3M, MOD 등의 모듈 음악 플레이

VGMplay -> VGM, VGZ(압축) 음악 플레이


M 파일매니저에 내장된 #MPXP, #VGMP 플레이어에서는,

현재 재생하려는 파일이 리모트 드라이브에 존재하는 경우, 자동으로 WAU 리모트 플레이어로 전환합니다.

이렇게 동작하는 방식이 사용자 입장에서는 제일 편한 것 같네요.


그럼, 실기에서 동작하는 모습을 감상하시죠~

부팅 후 리모트 드라이브를 연결하고 S3M -> MP4 -> VGM 순으로 재생하는 모습을 볼 수 있습니다.



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


2024년 11월 1일 금요일

WAU 제작 #7 - S3M 플레이어 테스트

WAU에 들어있는 Wi-Fi 모듈은 ESP-12F입니다.

ESP8266 32BIT MCU에 4MB(32Mbit) SPI 플래쉬롬이 붙어있는데요. 이 플래쉬롬은 1MB 영역만 CPU에 매핑됩니다.

결국 나머지 3MB는 코드가 아닌 다른 영역으로 활용하게 됩니다.


보통은 F/W를 2세트로 넣어서, 런타임으로 다운로드 및 교체하는 방식으로 2MB를 사용하구요.

나머지는 영역에는 파일시스템을 탑재하거나, 별도의 데이터로 활용하면 됩니다.

아니면 그냥 F/W를 4세트로 넣어버려도 좋구요 ㅎ.ㅎ


사실 1MB 맵에서 공용 데이터를 제외하면 실제 메인 프로그램의 영역은 896KB가 되는데요.

이게 TCP/IP 및 RF 등의 기본적인 코드만 넣어도 700KB 수준이라서,

사용자가 추가할 수 있는 코드가 200KB 정도로 보시면 되겠습니다.


현재 WAU에서는 기본 F/W 1개, MP3 스트리밍 모드 전용(TCP 수신버퍼 최대활용) F/W 1개가 들어갑니다.

이제 플래쉬롬 2MB가 남았네요.

남은 부분으로 뭘 만들면 재밌을까요? ㅎ.ㅎ


Wi-Fi 모듈 및 USB-UART 모듈은 둘 다 UART 921KBPS를 사용합니다.

UART start 1bit, data 8bit, stop 1bit 세팅에서 92KB/s 전송이 가능합니다.


만약 전송되는 데이터를 몽땅 사운드 PCM으로 활용한다면, 오디오 디코더처럼 쓸 수 있겠네요!

16BIT MONO 44KHz PCM은 가능하겠죠? STEREO PCM이라면 16BIT 22KHz 또는 8BIT 44KHz가 되겠습니다.

전송되는 데이터는 88KB/s입니다.


사운드 테스트를 위해 S3M 플레이어를 넣어보았습니다.

RTOS와 최소한의 라이브러리만 남기고, 기본적인 S3M 플레이어 코드를 넣으니, 285KB 정도의 F/W를 만들 수 있네요.

896KB 범위 내에서라면... 608KB 정도의 S3M 데이터를 넣어서 실행가능합니다.


참고로, ESP8266 칩은 사용자용 램(캐시를 제외)이 80KB밖에 없어요.

따라서 프로그램에서 쓰는 변수 외의 const 데이터 테이블은 모두 SPI 플래쉬롬 상에서 직접 액세스해야합니다.

캐시도 작아서, 악기용 PCM 샘플과 노트 데이터를 연속으로 읽으면 캐시미스로 성능이 대폭 하락할 예정ㅋ


그래도 한번 해보면 재미겠죠? ㅎ.ㅎ


전체적인 프로그램의 흐름은 이렇게 되겠습니다.

1. MSX의 디스크에서 S3M 데이터를 읽어서 ESP로 전송합니다. (SPI 플래쉬롬 1섹터 4KB단위)

2. ESP에서는 전송받은 S3M 데이터를 플래쉬롬에 다운로드합니다.

3. 전송 및 다운로드가 완료되면, ESP에서 S3M 전용 F/W로 전환하고 리부팅합니다.

4. ESP의 S3M 플레이어는 최종 PCM 데이터를 생성 후 MSX로 전송(스트리밍)합니다.

5. MSX에서는 수신된 PCM 데이터를 WAU의 VS1003 디코더로 전송합니다.

6. 주기적으로 VS1003의 스펙트럼 애널라이저 데이터를 수신하여, PAC-V의 LED 비주얼라이저를 설정합니다.


이렇게 해서, 최종 오디오는 WAU의 HP출력단자로 나오게 되겠습니다요~ ㅎ.ㅎ/


그럼, 제 GT에서 동작하는 모습을 보시죠!




이번 S3M 플레이어는 이런식으로 Wi-Fi(ESP) 모듈을 활용할 수 있다...정도로 보시면 되겠습니다.

이미 문사운드용 MOD/S3M 플레이어가 있어서, 굳이 WAU-S3M을 사용할 이유는 딱히 없어요 ㅎ.ㅎ


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


2024년 10월 27일 일요일

WAU 제작 #6 - 윈도 VHD 활용

지난 '#5 - PC 리모트 드라이브' 글에서 PC의 이동식(Removable) 디스크를 WAU에 연결하는 것을 보여드렸는데요.

오늘 문득 이런 생각이 들더라구요.

'혹시 윈도의 VHD(가상 하드 디스크)가 Removable로 등록이 되었던가?'

.

.

.

그래서 해봤습니다 ㅎ.ㅎ


아래 스크린샷은 저의 윈도11 기준입니다. 혹시 윈도10을 쓰시는 분이라면 제어판이 조금 다를 수 있으니 참고하셔요.


제어판에서 '시스템 > 저장소 > 디스크 및 볼륨' 메뉴로 가면 VHD 만들기 항목이 나옵니다.

아래처럼 2GB 고정크기로 만들면 되겠습니다.



레이블은 적당히 MSX_WAU로 넣었구요. 파일시스템은 당연히 FAT으로 하셔야합니다. ㅎ.ㅎ

몇가지 테스트용 파일들을 복사해서 넣었습니다.



마운트 해제는 '꺼내기' 버튼을 누르시면 되구요.



다시 마운트하려면 VHD 파일에서 탑재 메뉴를 선택하면 되겠습니다.



이제 WAU Server를 실행해봅니다.

아래처럼 'V: MSX_WAU' 드라이브가 목록에 나옵니다. 짜잔~



아래는 실기에서 WAU로 연결한 모습입니다.




PC와 MSX 공유용 드라이브는 윈도의 VHD를 활용하는 편이 간단하고 좋네요 ㅎ.ㅎ/


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


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 혼자만의 힘으로 가능하겠지요? ㅎ.ㅎ


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



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