Retro Game & PC/매뉴얼 팁 작업

TRS-80 Model I

smores 2015. 2. 19. 00:43

일전에 Taipan을 즐기면서 오리지널 프로그램이 Tandy Radioshack의 TRS-80 Model I 에서 베이식으로 개발되었다는 것을 배웠다. 개인적으로 레트로 취미는 게임을 하는 것도 즐기지만 사실 프로그램 그 자체에 대해 알아가는 것이 무척 흥미롭다. 그래서 Taipan의 원본 소스를 꼭 한번 보고 싶었고, 오리지널 게임도 돌려보고 싶은 마음이 무척 강했다. 최근 Radioshack이 파산신청을 한 뉴스와 더불어 TRS-80에 대한 관심도 높아져 구글링을 하여 TRS-80에 대해 좀 공부를 하게 되었다. 


TRS-80은 1977년도에 Commodore PET, Apple II 와 함께 삼총사로 데뷔한 8비트 개인용 컴퓨터의 하나이다. 다른 기종들에 비해 엄청 조악한 세미 그래픽 모드(128x48 사각 블록 도트)로 말미암아 그래픽 기반의 게임은 그다지 괜찮은 것이 없었다. 사운드 역시 애플보다도 나을 것 없는 자체 사운드 기능조차 없는 컴퓨터였다. 오로지 장점이라곤 Radioshack의 넓은 유통망 정도.



하지만 64x16 의 텍스트 모드는 다른 기종의 40/32 컬럼에 비해 한줄에 보여주는 글자수가 많음으로 마이크로컴퓨터용 응용 프로그램의 포팅에 적합했던 것 같다. 덕분에 초기 개인용 컴퓨터 시장에 선보이던 텍스트 기반의 베이식 코드로 작성된 게임들이 꽤 많이 개발된 것 같다. 게다가 글자와 semi graphic 도트를 함께 그릴 수 있는 특징으로 간단한 비트맵 그래픽을 함께 보여줄 수도 있다는 점은 애플보다는 베이식으로 간단한 게임을 작성하기 용이했던 듯... 본인의 블로그에도 한번 소개한 바 있는 Basic Computer Games 같은 책자는 TRS-80 버전이 따로 나올 정도이다. 어드밴처 게임의 거의 초기 개념을 보여주는 듯 한 Wumpus 같은 게임도 그렇고, 시뮬레이션을 기반으로 하는 Taipan 같은 게임 역시 그들 중 하나이다. 


다른 기종에 비해 좀 단명한 기종으로 알려져 있지만, 열악한 하드웨어의 조건으로 오히려 많은 geek 들이 기발한(이라고 쓰고 황당한 이라고 말한다) 테크닉을 개발해서 데이터 저장용 카세트 플레이어를 조작해서 사운드를 낸다거나, 화면의 플리커를 이용한 원래는 없던 grey level을 보여준다거나 하는 기법까지도 나왔었다. 역시 초창기 8비트 레트로 컴퓨터의 재미는 하드웨어의 극한을 이용한 다양한 테크닉을 구사한다는 점...


글의 주제로 되돌아와서 Taipan 오리지널을 즐기고자 하는 갈망에 드디어 TRS-80 Art Canfil의 오리지널 Taipan 베이식 소스를 구했고 이를 돌리기 위한 공부가 시작된다.


먼저 에뮬레이터는 다양하게 많이 있지만 제일 만만한 MESS 0.149의 TRS-80 Model I Level II Basic 모드를 사용하게 되었다. (해보니까 한번에 잘 되기에... ㅋㅋ 게다가 윈도우 버전의 경우 NTSC 에뮬레이션으로 마치 오래된 CRT 화면을 보는듯한 효과까지 보여주기에 딱이다!)


다음은 TRS-80 Model I 에뮬레이션 방법을 간단히 정리한다.


인터넷에서 구할수 있는 데이터 파일 종류는 대략 DSK, DMK (두가지는 디스크 이미지 이다), BAS (베이식 소스, 보통 토큰화된 것이 많다), CMD (바이너리 실행파일) 정도이다.


MESS UI를 돌려서 (미디어 마운팅 기능이 편해서 MESS UI를 즐겨쓰게 되었다) TRS-80 이라고 찾아보면 몇종류가 나온다. 일단 Model I (Level II Basic) 을 선택한다. (소프트웨어는 당연히 이 기종에 맞추어 개발된 것을 써야 함)




CMD 파일의 경우 MESS에는 친절하게도 direct로 실행할 수 있는 mount 기능이 있기에 (Quickload) 이곳에 마운트하여 실행하면 된다. 


BAS의 경우는 디스크 이미지에 넣어서 도스로 부팅해서 쓰는 편이 편하다. 이 경우는 2장의 디스크 이미지가 필요. 하나는 여기 첨부하는 NEWDOS80.DSK 이미지(시스템 부팅 디스크)로 첫번째 FDD에 마운트한다. 다른 하나는 공디스크 이미지로 원하는 BAS 또는 CMD를 넣어서 사용하도록 준비하면 된다. 편의를 위해 준비해 놓은 WORK.DSK 를 사용한다. 이미 여러가지 프로그램이 들어있는데 뒤에 설명할 도스 명령어 KILL 로 필요없는 것을 지울 수 있다. 그게 귀찮으면 함께 첨부한 blank_80sssd_jv1.DSK 을 이름만 바꾸어 쓰던가~ 



TRS80.zip



다음은 위키에 정리된 몇몇 TRS-DOS 용 명령어들이다.




빈 디스크에 BAS나 CMD 파일을 넣을 경우 역시 함께 첨부한 trstools.exe 를 이용하여 윈도우즈에서 쉽게 할 수 있다. (윈7 64비트에서 동작 확인)


디스크 두장을 모두 마운트 후 MESSUI에서 TRS-80 에뮬레이션 시작. 만일 부팅이 안되고 MEMORY SIZE? 라고 물어보면 MESS UI 메뉴의 Options > Configuration... 을 들어가서 FDD 사용을 ON 으로 바꾸어준다. 




그리고 hard reset 하면 다음과 같이 부팅된 화면이 나온다.




DIR을 내리면 작업 디스크에 있는 내용을 보여준다. 




부팅 디스크만 마운트된 경우는 아무것도 안보여주고 DIRECTORY READ ERROR 메시지를 보여주고 READY 프롬프트가 나온다. 




CMD의 경우 MESS UI 에서는 바로 마운트해서 돌릴수도 있지만 다른 에뮬레이터는 가능한지 잘 모르겠기에 디스크에 넣고 실행하는 방법을 여기 함께 설명한다. 아래 설명에서 [ENTER]는 엔터키를 누르라는 뜻.


BAS 의 경우 - BASIC RUN "filename/bas" [ENTER]

CMD 의 경우 - 그냥 filename/cmd [ENTER] 만으로 실행된다.




CAS 파일의 경우는 카세트 데이터 이미지인데 조금 방법이 복잡하다. 일단 위에 설명한 FDD ON 옵션을 OFF 로 꺼 두어야 한다. 카세트 디바이스에 이미지 파일을 마운트 하고 




엔터키로 부팅. 




MEMORY SIZE? 가 나오면 그냥 엔터. 이 부분은 베이식 프로그래밍을 할 경우 일부 메모리를 전용 용도를 위해 확보할 필요가 있을 때 숫자를 넣어주는 것이지만 그냥 게임 즐기는 입장에서는 몰라도 상관없으므로 자세한 설명은 패스. LEVEL II BASIC 프롬프트(>)가 READY 다음에 나오면 카세트에 저장된 내용이 BAS 코드인지 CMD 바이너리 코드인지에 따라 대응이 달라진다. 어느 타입인지 모르면 한가지씩 해 봐서 알아내야 할 듯.


BAS 타입의 경우 

CLOAD [ENTER]


CMD 타입의 경우 다음의 3단계

SYSTEM [ENTER]

*? filename first letter [ENTER] 

*? / [enter]


두번째 단계에서 삐~ 소리 나면서 한참 카세트 내용 읽는다. MESS의 경우 빨리 스킵하려면 Partial Emulation (UI Enable) 로 해 놓고 Ins 키로 속도를 내서 지나간다.


~~~~~~~~~~~~~~


DMK 디스크 이미지 사용법은 아직은 잘 모르겠다. 나중에 알게되면 추가하기로...


이 작업을 시작하게 된 동기는 Taipan 오리지널 베이식 코드를 돌려보고 싶어서였다. 그리고 그 코드를 직접 보고도 싶었고. 때문에 찾아놓은 코드를 ASCII 파일로 변환해서 윈도우즈에서도 보고 싶다. 이를 위한 작업은 파일을 먼저 베이식으로 로드 후 아스키 파일로 저장하여 디스크 이미지 안에 있는 아스키 파일을 trstools.exe 로 추출하면 된다.


예를 들어,


BASIC LOAD "TAIPANYY/BAS"

베이식 프롬프트 > 가 나오면

SAVE "TAITXT",A


이렇게 해서 추출한 TRS-80 버전 원본 Taipan 베이식코드와 실행화면을 아래 보여준다. 실행시에는 MESS 창을 크게 하고 Ctrl+Alt+F5로 hlsl NTSC 기능을 활성화해서 CRT 화면처럼 해서 보았다. 게임을 진행하다 보면 대포를 맞을 때 화면이 흔들리는 것 같은 효과가 나온다. 이런 것이 바로 그냥 매뉴얼같은 곳에는 잘 안나오는 하드웨어 기능을 사용한 트릭이라고 해야 할 듯...








왠지 오리지널이라고 해서인지 애플보다 느낌이 더 나은 듯~ 나중에 시간날때 한번 더 해 볼까 싶다.


TRS-80 에뮬레이션을 하면서 알고싶은 것 몇가지만 더 메모해 두고 포스팅을 마친다.


- how to switch text mode between 64x16 and 32x16

- how to run .dmk

- screen clear key : HOME (MESS의 경우)

- break key (program list 중 멈추거나 할 경우) : END (MESS의 경우)