2021년 9월 10일 금요일

MoonBase - 달기지 이동 중...



MoonBase 보드가 완성되었습니다.

케이스 작업 및 배송은 맛탱이님께서 해주시겠습니다.

추석 연휴 후 배송될 예정입니다~ ㅎ.ㅎ


2021년 9월 5일 일요일

실기에서 에뮬로~ 다시 실기로!

지금으로부터 20년전, 한참 에뮬에 미쳐있던 시절...

다시 MSX 실기로 돌아가게 된 계기가 된 사건이 있었습니다.

.

.

.

그 보다 먼저 처음 컴퓨터를 만져본 시절부터 적어봅니다요.

글만 주르르~ 나오니깐, 바쁘신 분은 나중에 읽어보셔요 ㅎ.ㅎ;



[실기를 처음 만지다]


제가 컴퓨터를 처음 만져본 때는 국3년 때였구요.

친구집에 놀러가서 애플2 기종을 보게 되었는데요. 아마 애플 정품은 아니고 복제품이었을겁니다요.

디스크 넣고 게임 돌리는게 전부였지만, 키보드 만지는 것만으로도 신기했었지요 ㅎ.ㅎ


국4년 때 컴퓨터부(클럽활동 같은)에 들어가면서 본격적(?)으로 컴퓨터를 만져보게 되었습니다.

PC실에는 아이큐1000, SPC-1000, FC-30 세 종류가 섞여있었는데, 저는 주로 SPC-1000 자리에 앉았었죠.

본체에 카세트가 붙어있어서 멋지구리했었지요.

사실 선생님이 알려주시건 진짜 기본적인 BASIC라서, 기종이 달라도 별 지장이 없었습니다.

FC-30의 BASIC 에디터가 좀 그지같아서 애들이 좀 싫어했던 것만 기억나네요.

PC실에 늦게 도착하면 빈자리가 항상 FC-30쪽이었죠ㅋㅋ


그렇게 컴퓨터의 맛(!)을 보게된 후, 부모님을 졸라서 컴퓨터학원을 다니게 되었지요.

학원에 교실이 4개가 있었는데요.

SPC-1000반, 아이큐1000반, 책상만 있는 강의실(?) 그리고 주산반이 있었어요.

1년 지나니까 주산반이 없어지고 슬롯 구멍 막힌 아이큐1000반으로 바뀌더라구요.

학원의 메인 스트림(?)은 MSX였습니다.

RGB 모니터가 붙은 아이큐2000도 한대있었고, 그 외 CP/M 전용기도 한두대 있었구요.


제 방에 아이큐2000 + FDD + RGB모니터 풀셋이 들어오던 날, 진짜 하늘을 날아갈 듯한 기분이었지요.

학원에서 자연스럽게(!) 아이큐1000으로 수업하면서, MSX BASIC 전용 명령어들을 제대로 배웠습니다.

아마 국딩 때 그래픽이나 스프라이트 명령을 써보셨으면 다 같은 생각을 해봤을거에요.

"아~~ 나도 열심히 하면, 코나미 게임같은걸 만들 수 있겠구나!"


하지만 중딩이 되어 어셈블리를 뚝딱거릴 때쯤엔 한계를 알게 됩니다.

"역쉬 내 실력으로는 무리구만..."

삽질하는 시간에 코나미/팔콤 아자씨들이 만든 게임을 열심히 하는게 더 가성비(?)가 맞는거죠ㅋㅋ

그래도 그 시절 머리를 굴려가면서 이리저리 프로그래밍하던 건 잼났습니다.


돌이켜보면 아이큐2000을 미친듯이 만졌던 시간이 불과 몇년이 되지않더라구요.

중3 때 쯤엔 MSX 보다 XT를 가진 친구들이 더 많아지는 슬픈 일이 ㅠ.ㅠ


고딩때는 밤늦게까지 학교에 잡혀있다보니, 집에서 가끔 게임 한두판 해보는 정도였네요.



[에뮬의 세계로]


그렇게 시간이 흘러 대학생이 됩니다.

주로 486 PC를 쓰다보니, 아이큐2000을 켜는 시간이 거의 없었습니다.

마지막으로 BASIC, 어셈 코딩을 해본게 언제인지 기억도 안나네요 ㅎ.ㅎ


그러다가 MSX 에뮬레이터가 갑자기 뜨게됩니다.

유럽산 에뮬도 있고, 브라질산도 있었구요. 물론 국내에서 제작된 것도 있었지요.

fMSX 제작자가 유닉스용 소스를 공개해서, DOS, WIN3.1 등 다양한 포트가 나왔습니다.

DJGPP 컴파일러를 써서 DOS로 포팅해서 잼나게 놀았었지요.

486으로도 풀프레임 속도가 안나왔다는게 함정이지만...

고딩 때는 에뮬이라는 개념자체도 없었느니, 당시엔 엄청난 충격이었죠.


그러다 96년 군입대를 했구요. 98년 여름에 제대하고 돌아오니... 이젠 MAME의 시대가 ㄷㄷㄷ

PC 환경도 DOS에서 윈98로 확 바꼈구요.

그렇게 20세기말까지는 온갖 에뮬레이터가 쏟아져서 정신없었습니다.

저도 대세에 맞춰 fMSX의 윈도 포트(paraMSX)를 만들었구요.

에뮬로 게임들의 동작을 분석하면서 한동안 재밌게 보냈었지요.


이 시절에는 아이큐2000을 켜는 이유가 딱 하나 뿐이었습니다.

VDP, FDD 등의 에뮬동작 확인 용으로요ㅋ

MSX2+ 에뮬 수준으로 왠만한건 다 해볼수 있어서, 그 때 머리속엔 이거 하나뿐이었습니다요.

"에뮬 짱!"

참고로 터보알은 아는게 없어서 관심도 별로 없었어요.

그냥 "환영도시 구동기" 정도의 느낌? ㅎ.ㅎ;


이제 2001년이 되어 회사를 다니게 됩니다.

paraMSX v0.32 릴리스를 마지막으로 에뮬은 정리하고 MSX를 잠시 잊게 됩니다요.

대신 기념으로 A1WSX를 한대 마련합니다.

에뮬레이터를 만드는 사람에게 MSX2+ 본체 한대는 있어야 뭔가 말이 되는 것 같아서요. (무슨 말인지..ㅋㅋ)


그 후 에뮬관련으로 들어온 요청들을 처리하면서,

마지막이라는 생각으로 paraMSX v0.42를 릴리스합니다.

2002년 쯤이군요. 뭐, 그 때는 에뮬로 더 해볼게 없다고 생각했어요.

사실 디아블로 하느라 정신이 없..ㅋ



[다시 실기로]


으흐흐... 여기서부터가 메인입니다.


갑자기 실기로 DOS2를 써보고 싶더라구요.

90년대에 MSX로 끝까지 가보신 분들은 MEGA-SCSI, 선라이즈 IDE 등으로 HDD를 써보셨겠지만,

저는 그 때 에뮬만 만지느라 실기에 관심이 없었습니다요~


암튼 A1WSX의 본체 메모리를 512KB로 늘리고 DOS2 커널롬 카트리지를 만들어서 테스트해봅니다.

역시 느린 FDD로는 그닥 느낌이 없네요. PASS~!


그.러.던. 어느날

옥션 알림이 옵니다. 헠... 키워드 등록을 'GT'로 해놨는데!!

후다닥 옥션에 로그인해서 즉시구매 눌러버렸어요. 괜히 생각하다가 늦으면 꽝이니까요.

그렇게 GT를 구하게 되었습니다. 하핫~


이것 저것 테스트해보니 와우~~ 정말 빠르네요.

터보알 에뮬레이터를 이미 써봤지만, 그게 실기랑 얼마나 차이가 있는지 알수가 없었거든요.

GT를 구하게 되어 진짜 성능을 보게되니, 후덜덜 했습니다.


한동안 SC-88도 놀고 있었는데, MSX랑 붙여서 음악 듣는 것도 재밌었구요.

WSX는 PC 용 TV수신카드에 S-Video로 붙여서 썼는데, GT를 이렇게 쓰는건 아닌 듯 해서...

15인치 LCD TV를 한대 구해서 RGB 15KHz로 개조합니다.

아이큐2000에 물렸던 RGB 모니터는 갖다버린지 몇년 됐던터라,

MSX의 깔끔한 RGB 화면을 오랫만에 보니까 기분이 좋더라구요.


갑자기 뭔가 느낌이 옵니다. "GT를 제대로 써봐야겠다"

디아블로2도 지겹던 때라 뭔가 타이밍이 딱 맞았어요.

아마 와우(World of Warcraft)가 2년만 일찍 나왔으면, 제가 뭔가 많이 달랐을겁니다ㅋ


GT가 겁나 빠른데, 느린 FDD로는 제대로 쓸 수가 없었죠.

뭔가 HDD 인터페이스를 구해야 되겠더라구요.

근데 당시에 MMC 메모리가 유행하던 때였습니다.

이걸로 MSX 용 디스크드라이브를 만들어보기로 합니다.

에뮬은 지겹도록 만졌으니까, 디스크 SW만드는 건 별일이 아니었는데...

당시에 MMC 관련자료를 구하는게 쉽지않더라구요.


결국 SPI 프로토콜로 구동하는 방법을 겨우 찾아서 "MMC Disk Interface"를 완성하게 됩니다.

회로도랑 SW를 공개해서, 유럽 아자씨들도 자작해서 쓰고했었죠.

MRC에 올렸다가 "왜 바퀴를 또 발명하냐?" 핀잔도 듣고 그랬던 추억이ㅋ


이 때부터 GT를 본격적으로 만지게 됩니다.

만약 91년에 이렇게 썼더라면 정말 재밌는 MSXing라는 생각이 들더라구요.

혹시 그 시절에 터보알과 아스키 HDD 인터페이스를 써보신 분 계세요? ㅎ.ㅎ


암튼 몇년이 흘러 준소프트님의 MPX 카트리지가 나오게 됩니다.

MSX에서 MP3 플레이를 할 수 있게되었지요.

기존 MMC Disk로는 224kbps MP3 정도가 한계라서, 속도를 개선한 MMC/SD V2를 만들게 됩니다.

MSX로 320kbps 들을 수 있게되니 좋더라구요. 이 때가 2007년말이었죠.


MMC/SD V2를 만든 후 느낀점이 "역시 GT는 빠르다"입니다.

디스크만 빨라져도 훨씬 쾌적한 환경이 되네요.


이제 저의 MSX 활용 방향을 정하게 됩니다.

터보알을 제대로 쓰기 위해, S/W 개발환경도 다시 만들어야겠더라구요.

터보알은 본체 내장 메모리에서 코드가 구동되어야만 고속모드 효과를 볼 수 있습니다.

외부 슬롯은 호환성 때문에 버스가 3.58MHz로 구동되느라, 고속모드에서도 별로 빠르지 않아요.

그 때문에 외부 슬롯에서 구동하면, R800 고속모드 보다 WSX의 반터보(5.37MHz)가 오히려 더 빠릅니다.


암튼 S/W 동작환경을 DOS2로 맞춰 만들게 됩니다.

메모리매퍼를 코드 뱅킹으로 구현하고, DATA/BSS 영역을 로컬뱅크와 공통 영역으로 구현합니다.

관련 내용이 궁금하시면 'DOS2용 SW개발시 메모리 활용방안'으로 검색하시면 예전에 쓴 글을 볼 수 있어요.

(오래된 글이라 현재 최종상태와 차이가 있음을 미리 알려드립니다요ㅋ)


그렇게 S/W 환경이 대충 완성된 후 다음 단계로 넘어갑니다.

"필요한 H/W도 직접 만들어보자" 단계죠 ㅎ.ㅎ

FontPack을 시작으로 MMC/SD V3, paraMSX-R, PAC-V 등등 줄줄이 비엔나로 나오게 되었습니다요.


그 후로 저의 실기 생활은 비슷하게 쭈욱~ 이어지고 있네요.


긴 글 읽어주셔서 감사합니다요! ㅎ.ㅎb

즐 MSX 하셔요~