2015년 5월 25일 월요일

DOS2 램디스크 간단 활용 및 버그(?) 소개

일단 서론 나갑니다. ㅎ.ㅎㅋ


DOS2부터 커널에서 메모리 매퍼를 지원합니다.

근데, 대부분의 DOS프로그램들은 TPA(기본 메모리 64K 이하 영역) 만으로 구동되기 때문에,

메모리를 많이 확장하더라도 그다지 활용되지 않습니다.


20여년 전 국내 상황에서는 turboR 기종이 아니면, DOS2 사용하기가 힘들었던 것도 이유가 되겠구요.

DOS2 용 프로그램 만들어봐야 구동 가능한 사용자가 별로 없으니,

차라리 재미나 램카드를 활용하는 프로그램이 더 유용했을 것 같기도 하네요. ㅎ.ㅎ


어쨌거나 20여년이 지난 지금, 많은 분들이 DOS2 를 사용하고 계시지요. (맞나요? ㅋ)

DOS2는 자체적으로 램디스크를 지원합니다.

메모리 매퍼 일부분을 가상의 디스크로 만들어주는 것이지요.


기본적인 사용법은 DOS2 프롬프트에서 HELP RAMDISK 라고 입력하면, 도움말을 볼 수 있으니 참고하시구요.

그럼, 본론 나갑니다~


1) 램디스크 설정

   RAMDISK 숫자

   숫자는 KB단위로 인식됩니다. 128KB 램디스크를 만드려면, RAMDISK 128 입력하면 되겠습니다.

   램디스크는 항상 H: 드라이브로 생성이 됩니다.

   만약 H: 드라이브가 이미 존재한다면, 램디스크 추가가 불가능합니다.


2) 램디스크 해제

   RAMDISK /D

   입력하면 할당된 메모리가 해제되며, H: 드라이브는 더이상 사용 불가능합니다.

   임시로 저장했던 파일이 있다면, 미리 다른 물리 디스크로 복사해야 되겠지요.


3) 주의 사항

   FAT16 드라이버(Okei 씨 프로그램)를 함께 사용하려면,

     먼저 RAMDISK 설정 후 FAT16 드라이버를 실행해야합니다.

   FAT16 드라이버가 실행된 상태에서는 RAMDISK 설정/해제가 불가능합니다.


4) 실제 활용

   램디스크가 FDD보다는 훨 빠르지만,

     MMC/SD 드라이브, 선라이즈 IDE, OCM MEGA-SD 등의 기기보다는 느립니다.

   이 경우는 CPU, 메모리가 고속인 turboR에서만 램디스크 효과가 있겠습니다.


   DOS2에서 응용 프로그램 실행/종료가 되면 항상 COMMAND2 쉘 프로그램이 재로딩됩니다.

   이 때, COMMAND2가 램디스크에서 로딩되면 조금 더 쾌적한 환경이 됩니다.

   제 경우는 아래처럼 AUTOEXEC.BAT 및 REBOOT.BAT 설정하고 있습니다.

   SET SHELL 설정 참고하셔요.


[AUTOEXEC.BAT]

SET EXPERT=ON

SET SHELL=A:\COMMAND2.COM

SET PATH=B:\UTILS\;B:\M\;C:\

SET HELP=B:\HELP

MODE 80

VER

RAMDISK /D

RAMDISK 64

COPY COMMAND2.COM H:\

VOL H:RAM_Disk

FAT16

KS_SPE

KS_HANJA

REBOOT %1


[REBOOT.BAT]

SET SHELL=H:\COMMAND2.COM

SET PATH=H:\;B:\UTILS\;B:\M\;C:\

SET TEMP=H:\

C:

cd \

MODE 80

M



마지막으로, 램디스크의 버그로 보이는 동작 하나 소개합니다.

RAMDISK는 항상 H: 드라이브로 할당되도록 만들어져있는데요.

근데 램디스크 해제 명령인 RAMDISK /D는

 H: 드라이브가 실제 물리적인 디스크인 상태에서 실행하면, H: 드라이브를 날려버립니다.

H: 드라이브가 없어지면 접근이 불가능해집니다. 흐흠...


저는 요걸 터보알에서 유용하게 쓰고 있는데요.

부팅 시 MMC/SD 두대가 A: B: C: D: E: F: 로 할당되고,

G: H: 가 본체 내장 FDD로 할당됩니다. (FDD는 물리적인 디스크는 한개지만 가상으로 2개를 지원합니다.)


이 상태에서는 DOS2의 드라이브 문자가 모두 할당되어서 더이상 RAMDISK 설정이 불가능합니다.

근데 RAMDISK /D 를 실행하면, FDD인 H: 가 삭제됩니다. ㄷ ㄷ ㄷ

그러면 RAMDISK 설정 시, 에러나지않고 정상 할당이 됩니다.

저~~~기 위의 AUTOEXEC.BAT 내용에 RAMDISK /D가 포함된게 그 이유 때문이에요.


그럼, 줄입니다.

궁금한 점 있으시면, 덧글 달아주세요~ ㅎ.ㅎ


댓글 없음:

댓글 쓰기