예전에 늑돌이가 시그마리온3에서 DOSBox를 이용, 삼국지3를 실행한 적이 있다.

도스박스는 386용 프로그램을 실행하는 등 무한한 가능성을 보여주었지만 프로그램 자체의 완성도가 낮아 실용적으로 쓰는데는 제한이 있었다.

반면에 도스박스와 마찬가지로 도스 에뮬레이터로 유명한 포켓도스는 상용 어플리케이션인 까닭에 완성도 면에서 한층 뛰어나다. 다만 도스박스와는 달리 8086/80186 코드만 실행시킬 수 있는 까닭에 도스 시절 후반부에 나타난 80286이나 80386 전용 코드를 사용한 프로그램은 도저히 실행이 불가능했다.

그러나 그런 문제점도 포켓도스에 확장 플러그인을 사용할 수 있게 됨으로써 해결이 되었다. 기존에 8086/80186이 아닌 80486 CPU를 에뮬레이션 할 수 있게 된 것이다.

당연히, 삼국지3 같이 기존에 실행되지 않던 프로그램도 실행할 수 있어야 했다. 하지만 실행되지 않았다.


삼국지3의 경우, 문제는 메모리였다.



보다 자세한 설명(좀 복잡함)을 보고 싶으면 눌러라.



자, 이제 본격적인 작업을 시작해보자.

1.

ems40a.zip


을  다운로드 받고 압축을 풀어 포켓도스가 깔려있는 디렉토리에 EMS40.SYS 파일을 복사해놓은 다음, 다음과 같이 CONFIG.SYS를 고치자.

rem ----
rem PocketDOS User CONFIG.SYS Configuration File.
rem ----
rem This file can be modified, but should not be deleted or a (harmless)
rem error message will be displayed on startup
rem ----

rem ----
rem Load Expanded Memory (LIM EMS 3.2) Driver
rem ----
rem DEVICEHIGH=\DOS\EMSMEM.SYS
DEVICEHIGH=A:\EMS40.SYS 64

rem ----
rem Load country-specific settings (use country dialing code eg. 044 for UK)
rem ----
rem COUNTRY=



2. 포켓도스를 실행한다. 다음과 같이 나올 것이다.

Starting PocketDOS (Revision 1.09.1)...
EMS 4.0 Simulator, Ver. 1.1 (C) 1989 Ziff Communications
PC Magazine / Douglas Boling


3. 마지막으로 mem을 실행하여 확인한다.

C:\>mem
ROM-DOS MEM v6.22 (Revision 3.00.0)
Copyright (c) 1989-1999 Datalight, Inc.

Memory Type Total = Used + Free
---------------- ------- ------- -------
Conventional 640K 47K 593K
Upper 112K 69K 43K
Adapter RAM/ROM 384K 384K 0K
Extended (XMS) 64K 0K 64K
---------------- ------- ------- -------
Total memory 1,088K 388K 700K

Total under 1 MB 752K 116K 636K

Total Expanded (EMS) 64K (65,536 bytes)
Free Expanded (EMS) 64K (65,536 bytes)

Largest executable program size 593K (607,520 bytes)
Largest free upper memory block 43K (43,984 bytes)
ROM-DOS is resident in the ROM.



자, 64KB의 EMS가 잡혔다. 매우 작지만 삼국지3를 실행하기에는 충분한 양이다.


4. 포켓도스를 실행하고 연이어 삼국지3를 실행해보자.




물론 잘 된다. ^^



< 덧붙임 >

참고로 이 글은 올린 다음 하루만에 내용이 좀 바뀌었다. 몇몇분들의 지적에 따라 재미있는 사실을 발견한 것이다.
그 지적은 바로 CPU 플러그인이 필요하지 않다는 것.

그래서 알아낸 사실은 다음과 같다.

1. 삼국지3는 8088/8086/80186 CPU로도 충분히 실행된다.

2. 삼국지3는 매우 작은 양의 EMS만 있어도 실행이 된다.

3. 포켓도스는 80486 CPU 플러그인을 사용하지 않아도 64KB의 EMS가 잡힌다(이 경우 Settings의 Memory 설정과는 아무 관계 없다. CPU 플러그인을 사용할 때만 이 메모리 설정이 XMS로 잡힌다.).

4. CPU 플러그인을 활용하면 포켓도스의 속도가 전반적으로 느려진다.


위 사항을 고려하여 삼국지3가 아닌, 좀 더 많은 메모리를 필요로 하는 다른 프로그램에 적용한다고 하면 그 순서는 다음과 같다.

1. Settings-System-CPU/FPU 탭에서 PDOS_DOSBOX_CPU.dll, PDOS_BOCHS_CPU.dll 등의 80486 CPU 플러그인을 사용하도록 설정한다.

2. Settings-Memory-Expanded를 3072로 설정한다(3072는 3MB다. 필요하다면 다른 수치를 적어도 된다. 예를 들어 1024(1MB)를 적어도 된다. 그럴 경우 3번 작업시 CONFIG.SYS에서도 3072를 1024로 고쳐라)

3. 일단 포켓도스를 종료하고 CONFIG.SYS를 고친다. 위 3번의 내용에서 64를 3072로 고치면 된다.

4. 다시 포켓도스를 실행한 다음 mem을 실행하여 확인

C:\>mem
ROM-DOS MEM v6.22 (Revision 3.00.0)
Copyright (c) 1989-1999 Datalight, Inc.

Memory Type Total = Used + Free
---------------- ------- ------- -------
Conventional 640K 47K 593K
Upper 176K 70K 106K
Adapter RAM/ROM 384K 384K 0K
Extended (XMS) 3,072K 0K 3,072K
---------------- ------- ------- -------
Total memory 4,096K 324K 3,772K

Total under 1 MB 816K 116K 700K

Total Expanded (EMS) 3,072K (3,145,728 bytes)
Free Expanded (EMS) 3,072K (3,145,728 bytes)

Largest executable program size 593K (607,520 bytes)
Largest free upper memory block 106K (108,960 bytes)
ROM-DOS is resident in the ROM.



5. 프로그램을 실행해보자.



삼국지3를 예로 든다면, 필자의 시그마리온3(530Mhz로 오버클러킹해서 씀)에서는 어떤 경우든 그럭저럭 할만한 속도가 나온다.

그러나 확실히 말해서 CPU 플러그인을 사용하지 않은 경우가 가장 빠르다. 노턴 유틸리티의 SI를 활용한 간이속도측정을 보면,


1등 CPU 플러그인 없음 : 22 내외

2등 PDOS_DOSBOX_CPU.dll : 9.1 내외

3등 PDOS_BOCHS_CPU.dll : 5.1 내외



역시 플러그인을 사용하지 않을 때가 가장 빠르다. 이 경우에는 도스박스(SI를 돌렸더니 죽더라... -_-;;)에서 실행했을 때와 비슷할 정도로 체감속도가 나온다.


여기서 유추할 수 있는 결론은, 64KB 이상의 EMS 또는 XMS가 필요할 때, 그리고 80286 이상의 전용 코드를 이용하는 프로그램을 포켓도스에서 돌릴 때만 CPU 플러그인을 활용하자는 이야기다.

이 경우에도 더 빠른 PDOS_DOSBOX_CPU.dll을 사용하는게 좋은데, 대신 이놈은 80486SX 급을 에뮬레이션 해주므로 FPU가 필요한 프로그램인 경우에는 PDOS_BOCHS_CPU.dll을 써야 한다.



이 글은 시그마리온3를 기준으로 이야기했지만, 모디아나 조나다 7x0 등의 기종에서도 이 방법을 쓰면 삼국지3를 비롯한 EMS를 활용하면 다른 프로그램도 무리없이 돌아간다.

다만 시그마리온3보다 속도는 좀 더 느릴테지만, 그래도 돌아가는게 어딘가? 자, 이제 먼지만 쌓였던 도스 프로그램을 한두개씩 꺼내보자. 도스 프로그램의 재활용이야말로 키보드가 달린 HPC에 제격이 아닐까?




< 덧붙임 >

1. 시그마리온3에서 포켓도스를 쓸 때 왜 '='가 입력이 안 되는 걸까요?

2. 죄송하지만 여러가지 도스 게임들에 대한 실행 여부 확인과 도스 게임을 구해달라는 요청에는 답변드리지 못하겠습니다.

3. PDOS_DOSBOX_CPU.dll과  PDOS_BOCHS_CPU.dll은
http://www.pocketdos.com/download.htm 로 가서
DOSBox i80486SX CPU emulator plug-in for PocketDOS (v1.09.0+), Bochs i80486DX CPU emulator plug-in for PocketDOS (v1.09.0+)을 받으면 됩니다.


관련 글
2004/08/13 - 삼국지가 어린이에게 끼치는 악영향
2004/06/23 - 시그마리온3 = 휴대용 삼국지3 게임기?





유튜브 LAZION tv 채널 구독해 주세요.