연속 확장 메모리(XMS)와 고위 메모리(HMA) 쓰기
연속 확장 메모리(XMS) 관리자인 HIMEM.SYS는 CONFIG.SYS에서 XMS를 쓰는 다른 풀그림이나 장치보다 먼저 메모리에 띄우도록 해야 한다.
DEVICE=C:\DOS\HIMEM.SYS
DOS=HIGH
'DOS=HIGH'라고 하면 기본 메모리를 차지하는 도스 알맹이(커널)의 일부를 크기가 64KB인 고위 메모리(HMA)로 옮겨서 40KB쯤 되는 기본 메모리 공간을 아낄 수 있다.
상위 메모리(UMB)와 중첩 확장 메모리(EMS) 쓰기
EMM386.EXE는 램 상주 풀그림을 올릴 수 있는 상위 메모리(UMB) 공간을 마련하거나, 드물게 몇몇 풀그림이 이용하는 중첩 확장 메모리 공간을 마련하는 역할을 한다. EMM386.EXE는 XMS 공간을 이용하므로 HIMEM.SYS 다음에 실행해야 한다.
상위 메모리(UMB)만 쓰기
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE NOEMS
DOS=HIGH,UMB
'NOEMS'는 중첩확장 메모리는 만들지 않고 상위 메모리(UMB)만 만들라는 선택사항이어서 가장 많은 상위 메모리를 확보할 수 있다. 'DOS=UMB'라고 하면 상위 메모리(UMB)를 도스의 메모리 자원으로 인식하여 상위 메모리에 램 상주 풀그림이 들어갈 수 있다. 'DOS=HIGH'와 'DOS=UMB'를 'DOS=HIGH,UMB'로 묶어 적었다.
중첩 확장 메모리(EMS)만 쓰기
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE EMS 1024
DOS=HIGH
EMM386.EXE에 'EMS 1024'라고 붙이면 중첩 확장 메모리(EMS) 1024KB를 만들게 된다. EMS 크기를 붙이지 않으면 자동으로 256KB가 설정된다. EMM386.EXE가 상위 메모리(UMB)는 만들지 않으므로, 'DOS=UMB'를 붙이지 않았다.
상위 메모리(UMB)와 중첩 확장 메모리(EMS) 모두 쓰기
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM 1024
DOS=HIGH,UMB
'DEVICE=EMM386.EXE RAM 1024'라고 하면 상위 메모리(UMB)와 중첩 확장 메모리(EMS) 1024KB를 모두 만들게 된다. 상위 메모리(UMB)에 EMS 페이지 프레임이 들어가므로, 'NOEMS'로 한 것보다 쓸 수 있는 UMB 용량이 64KB 적다.
램 상주 풀그림을 상위 메모리(UMB)에 올리기
EMM386.EXE로 상위 메모리(UMB)를 만들어서 'DOS=UMB'라는 명령도 적었다면, EMM386.EXE 다음에 실행되는 램 상주 풀그림을 상위 메모리에 올려서 기본 메모리를 아낄 수 있다. config.sys와 autoexec.bat에서 실행문에 'DEVICEHIGH'나 'LOADHIGH'를 쓰면 된다.
DEVICE=C:\DOS\RAMDRIVE.SYS 1024 /E
→ DEVICEHIGH=C:\DOS\RAMDRIVE.SYS 1024 /E
C:\DOS\MOUSE.EXE
→ LOADHIGH C:\DOS\MOUSE.EXE
출처:
https://pat.im/724