나만의 입력기 그리고 ‘어드벤-츄타’의 추억

문득 초글링 때 접했던 1983년작 MSX 게임 ‘어드벤-츄타(Adven’chuta!)’가 생각났다.
대충 기억한 제목은 어드밴-튜터1였는데, 유튜브를 뒤져보니 정확한 제목을 알 수 있었다.

제작사의 자작곡이지만 왠지 《The Entertainer》을 연상시키는 음악을 듣다 보니 그 때의 기억들이 하나씩 떠올랐다.

image

1. 게임을 ‘소유’하는 가장 고된 방법, 타이핑

1980년대 처음 개인용 컴퓨터가 보급되었을 때는 플로피는 커녕 테이프도 사치였던 시절이었다.
PC에 카세트가 내장된 SPC-1000과 달리, MSX 기종들은 카세트를 별도로 구입해야 됐었다.

이 무렵에 컴퓨터 책자에서 프로그램을 배포하는 방식은 그냥 BASIC 소스나 기계어 코드를 인쇄하는 것이었다.
그리고, 그 인쇄본을 일일이 타이핑한 뒤 테이프에 저장하여 소유할 수 있었다.

물론 이 과정은 글로 읽는 것보다는 훨씬 더 고난의 연속이었다.
BASIC 코드야 오류가 나오면 그 부분을 고치면 된다지만, 기계어 코드는 오타가 있어 뻗으면 그걸로 끝장이었다.

2. 입력이 불편하면 기계어 입력기를 만들면 되지

BASIC 소스는 꽤 잘 만들어진 인터프리터가 기본적으로 제공되니 사용할만 했다.
문제는 기계어 코드.

표준화된 기계어 입력 프로그램은 따로 없었지만, 그래도 입력하는 프로그램이 몇 있기는 했었다.
그리고, 아마도 모든 환경은 다음과 같은 De-Facto Standard가 동작했던 것 같다.

  • 한 줄에 16 바이트 단위로 표시
  • 체크썸은 입력된 값의 합계의 하위 1바이트
  • CRC 같은 고오오오급 기술은 사용 불가

이 때 기본적으로 제공(?)해준 입력 프로그램은 참으로 불편했었다.
한 바이트 입력 시마다 일일이 리턴 키2를 눌러야 해서 그렇지 않아도 끝없이 펼쳐지는 입력 노가다를 더욱 힘들게 했었다.

결국 그 불편함을 참지 못하고 직접 입력 프로그램을 만들기로 했다.

  • 체크썸(Checksum)의 원리를 파악: 기존 입력 프로그램 코드를 읽어보고 인쇄된 내용을 확인해서 합계라는 점을 확인
  • 입력 프로세스 최적화: 두 글자 입력 시 다음 바이트로 이동, 체크썸 자동 계산으로 입력 편이성 증대 및 입력 위치 이동 기능

그러니까… 게임을 하고 싶은 건 이미 뒷전이고, 비효율적인 입력 방안 개선이 메인이 되어버린 것이다.
그거 만들 시간에 무식하게 입력했으면 더 빨랐을 것을…

3. 반복되는 배경음악과 함께 흐르는 8비트의 낭만

이렇게 만든 툴로 입력해서 안전하게 카세트 테이프에 저장한 뒤에 실행했을 때의 음악이 나오던 기억이 생생하다.
지금 찾아보니 주인공은 생쥐 ‘츄타’ 였지만, 당시에 초글링이었던 내가 그런 걸 알 리가…

심지어 게임 자체는 뭔가 이상하게 어려웠었다. ㅎㅎ
지금 보면 8비트 컴퓨터 성능 한계로 인해 입력 인터페이스가 많이 불편했다.

마치며: 생각해보면 생애 최초의 ‘최적화 프로젝트’

돌이켜보면 그 입력기의 개발은 생애 최초의 최적화 프로젝트였다.

데이터 입력은 INPUT 명령을 제거하고 INKEY$로 대체해서 non-blocking 하게 만들었다.
입력된 키가 16진수 값이 아니면 무시하는 메커니즘도 구현했다.
한 바이트 입력 시마다 커서 위치를 옮기고 체크썸을 출력한 뒤 다시 커서 위치를 옮기도록 했다.

가끔은 제한된 컴퓨팅 파워 환경에서 한계까지 갈아넣던 낭만의 시대가 그리울 때가 있다.


  1. 아마도 일본 자료 번역 과정에서 왜색이 덜 느껴지도록 이름을 바꿨던 것 같음 

  2. 당시 MSX의 키보드에는 현재 [Enter] 키라고 사용되던 키가 [Return] 키였음 

카테고리:

업데이트: