Dev

MSX의 특이한 명령들

February 26, 2018

author:

MSX의 특이한 명령들

마이크로소프트와 아스키가 만든 8비트 컴퓨터 MSX가 있었습니다. 처음 이 컴퓨터가 나올 때의 목표는 컴퓨터의 표준화였습니다. 이 MSX 시리즈는 실패했지만 지금 IBM 호환 기종이라는 표준의 컴퓨터를 여러분은 사용하고 계십니다. 그때의 꿈이 이루어졌다고 봐도 될까요? 어쨌든 이 MSX는 여러모로 재미난 부분들이 많았습니다. 그 중 하나는 탑재하고 있던 MSX-BASIC인데 지금의 베이직에서 볼 수 없는 명령어가 있습니다.

그 명령어들을 세 종류로 나누어서 설명할 수 있습니다. 첫째로 카세트테이프 레코더 명령입니다. 둘째로 조이스틱 관련 명령어입니다. 마지막으로 기타 명령어를 이야기할 수 있습니다. 대부분의 명령어는 MSX의 특성을 지원하기 갖췄던 명령어입니다.

카세트테이프 레코더가 무엇인지 궁금하신 분들이 계실 겁니다. 카세트테이프 레코더는 실제 우리가 일반적으로 사용하는 오디오 테이프를 녹음, 재생할 수 있는 장비입니다. 그런데 이 테이프에 컴퓨터 프로그램 데이터를 저장할 수 있는 것입니다. 지금 우리가 사용하는 CD-ROM 디스크가 원래 음향을 위해 만들어졌다는 것처럼 오디오 테이프도 컴퓨터의 디스크처럼 사용되곤 했습니다.

카세트테이프 레코더를 위한 명령어는 CLOAD, CSAVE가 있습니다. CLOAD는 문자열 리터럴을 인자로 가질 수 있습니다. (문자열 리터럴은 흔히 우리가 문자 상수라고 말을 하는 것인데 “가나다"와 같이 쓴 것입니다. 엄연히 말하면 상수가 아니기 때문에 잘못된 명칭입니다. 어떤 명칭이 올바른 명칭인지는 아직 모르겠습니다.) 예컨데 CLOAD를 입력하고 엔터를 눌러도 되고 CLOAD "DEMO" 이런식으로도 사용할 수 있는 것이지요. CLOAD만 누르고 엔터를 누르면 카세트 테잎의 현재위치에서 가장 가까운 프로그램이 시작되고 프로그램 이름을 넣었다면 그 프로그램을 찾아서 읽어냅니다. 하지만 CLOAD "프로그램 이름"만 믿고 있으면 카세트 테잎이 다 돌아갈 때까지 기다려야 하는 수가 있었습니다. 가장 이상 적인 것은 적당히 앞, 뒤로 감아주고 명령어를 입력하는 것입니다. CSAVE는 간단합니다. 지금 메모리에 입력해둔 베이직 명령어를 저장하는 것입니다.

조이스틱을 위한 명령어들은 ON STRIG GOSUBSTRIG ON, STRIG OFF 등의 명령어가 있습니다. ON STRING GOSUBON STRING GOSUB 10, 30, 50, 70, 90과 같은 형태로 사용할 수 있는데 스페이스키가 입력되면 프로그램의 10번째 줄 첫 번째 조이스틱의 버튼 1, 2번이 눌러지면 30 혹은 70번째 줄. 두 번째 조이스틱은 50, 90으로 이동하는 것입니다. 스페이스와 조이스틱이 같이 취급되는 것이 인상적인데요. MSX는 아마도 조이스틱의 방향과 키보드의 방향, 그리고 조이스틱의 버튼과 키보드의 스페이스를 추상화하여 유사한 인터페이스를 제공하고 싶었던 것 같습니다. STRIG ONSTRIG OFF의 경우 STRIG(0) ON STRIG(3) OFF와 같은 형태로 사용하는데 STRIG 뒤에 붙은 숫자는 0부터 4까지 허용되고 0은 키보드의 스페이스 1, 3은 첫번째 조이스틱, 2, 4는 두번째 조이스틱에 대응되었습니다. 사용자가 의도하지 않는 경우에 입력을 막을 수 있는 명령어를 제공했던 것입니다.

앞으로 어떤 하드웨어가 새롭게 나오고 어떤 전용 인터페이스가 사용될지 궁금해지네요. 확실한 것은 과거 MSX를 다루는 사람은 거의 사라졌듯 지금의 하드웨어를 다루는 사람과 방법은 점차 사라질 것입니다. 가끔은 점차 추억이 사라지는 것이 서운할 때도 있습니다. 하지만, 서운해할 필요는 없을 것 같습니다. 그 때가 되면 더 흥미로운 환경이 우리를 기다리고 있을테니깐요. 구닥다리 MSX-BASIC 이야기는 여기에서 마칩니다.

PS: 이 글은 예전에 제가 적었다가 유실되었던 글입니다.