Á¦¸ñ : - 640 KB ¸¦ ³ÑÀÚ. ¾È³çÇϼ¼¿ä Ç㸣¹ÌÀÔ´Ï´Ù. ¿À´ÃºÎÅÍ ¼öȸ¿¡ °ÉÃļ­ Virtual Memory System ¿¡ ´ëÇؼ­ ¾Ë¾Æº¸µµ·Ï ÇÏ°ÚÀ¾´Ï´Ù. Virtual Memory System À̶õ °ÍÀº °¡»ó±â¾ïüÁ¦,Áï ÇÑÁ¤µÈ Memory Space ¿¡ ±×Ä¡Áö ¾Ê°í '±â¾ïÀå¼Ò' ¶ó´Â °³³äÀ» »ç¿ë°¡´É ÇÑ ÀÚ¿ø Àüü¿¡ È®ÀåÇÔÀ¸·Î½á º¸´Ù µ¥ÀÌÅÍ °ü¸®µîÀ» À¯¿¬ÇÏ°Ô ÇÏ ±â À§ÇÑ °ÍÀÔ´Ï´Ù. PC ¿¡¼­ ´ëÇ¥ÀûÀ¸·Î ÀÌ¿ë°¡´ÉÇÑ ÀÚ¿øÀº Expanded Memory,Extended Memory,Xms,Hard Disk,Conventional Memory µîÀÌ ÀÖÀ¾´Ï´Ù. ¿ì¸®°¡ º¸Åë ÀÌ¿ëÇÏ´Â ºÎºÐÀº Conventional Memory »ÓÀÌÁÒ. ÀÌ°ÍÀº 640 KB ÀÇ Á¦ÇÑÀ» ¹þ¾î³¯ ¼ö ¾øÀ¸¹Ç·Î Å« µ¥ÀÌÅ͸¦ ´Ù·ç¾î¾ß¸¸ ÇÏ´Â ÇÁ·Î±×·¥¿¡´Â ¹®Á¦°¡ »ý±æ ¼ö ¹Û¿¡ ¾ø°ÚÁÒ. ¿¹¸¦ µé¾îº¸¸é Word Processor °¡ ÀÖÀ¾´Ï ´Ù. Word Processor ´Â ÃÖ±Ùµé¾î ±× µ¢Ä¡°¡ ¹«Ã´ °Å´ëÇØÁ³À¾´Ï ´Ù. Word Perfect À» ¿¹·Î µé´õ¶óµµ µ¥ÀÌÅÍ ¿µ¿ªÀº EMS ¸¦ »ç¿ë ÇÔÀ¸·Î½á Àüü ÆíÁý°¡´É ¹®¼­·®À» ´Ã¸®°í ÀÖ´Ù°í ÇÕ´Ï´Ù. ¹°·Ð EMS °¡ ¾ø´Â ÄÄÇ»ÅÍ¿¡´Â ¾µ¸ð°¡ ¾øÀ¾´Ï´Ù. ±×·¯³ª EMS °¡ ¾øÀ¸¸é HardDisk ¿¡¶óµµ Swapping ÇØ ÁÙ ÇÊ¿ä°¡ »ý±æ¶§°¡ ÀÖÀ¾´Ï´Ù. ÀÌ ·¯ÇÑ Ã³¸®µéÀ» °£ÆíÈ÷ ¼öÇàÇϱâ À§Çؼ­ Virtual Library ¸¦ ±¸»ó ÇÏ°Ô µÇ¾úÀ¾´Ï´Ù. Ç㸣¹Ì Virtual Library v1.0 ¿¡¼­´Â Expanded Memory,Hard Disk,Conventional Memory ¸¦ Áö¿øÇÕ´Ï´Ù. EMS °¡ ÀÖÀ» °æ¿ì¿¡´Â Conventional Memory ´Â 128 KB Çѵµ³»¿¡¼­¸¸ »ç ¿ëÇÏ°í ±× ÀÌ»óÀº EMS,HardDisk ¼øÀ¸·Î »ç¿ëÇÏ°Ô µË´Ï´Ù. EMS °¡ ¾øÀ¸¸é Conventional Memory ¸¦ 256 KB ±îÁö »ç¿ëÇÏ°í °ð¹Ù·Î HardDisk ¸¦ »ç¿ëÇÏ°Ô µÇÁÒ. Á¦°¡ ÀÌ ¶óÀ̺귯¸®¸¦ »ç¿ëÇؼ­ ¹° º¸¶ó Hangul Reader v1.0 À» ¸¸µé¾î º¸¾ÒÀ¾´Ï´Ù. Ç㸣¹Ì ÇÑ±Û ¶ó À̺귯¸® 1.5 ¿Í ÇÔ²² »ç¿ëÇؼ­ ¸¸µç °ÍÀε¥ EMS 2 MB ÀÇ Á¦ ÄÄ Ç»ÅÍ¿¡¼­ 800 KB ÀÇ ¹®¼­¸¦ EMS ¿¡ ¸ðµÎ ÀоîµéÀÌ°í ³»ºÎ¿¡¼­ ÀÚ À¯·Ó°Ô ÆäÀÌ¡Çϴµ¥ ¼º°øÇßÀ¾´Ï´Ù. ÇÁ·Î±×·¥ÀÇ ³»ºÎ±¸Á¶»ó ÃÖ´ë 32 M ±îÁöÀÇ ¹öÆÛ¸¸À» °ü¸®ÇÒ ¼ö ÀÖÁö¸¸ È®ÀåÀº º°·Î ¾î·Á¿î ÀÏ ÀÌ ¾Æ´Õ´Ï´Ù. ¶ÇÇÑ EMS °¡ ¾ø°Å³ª ºÎÁ·ÇÑ °æ¿ì °¡´ÉÇÑ ¸¸Å­¸¸ ¿Ã ·Á³õ°í ³ª¸ÓÁö´Â HardDisk ·Î Swapping ÇÏ°Ô µÇ¹Ç·Î »ç½Ç»ó ¸Þ¸ð ¸® ¹®Á¦´Â ¾î´ÀÁ¤µµ ÇØ°áÇÒ ¼ö ÀÖ°Ô µÈ ¼ÀÀÔ´Ï´Ù. ¾ÆÁ÷ ±â´É»óÀÇ ¹®Á¦Á¡Àº ¸¹ÀÌ ÀÖÁö¸¸ (ƯÈ÷ EMM) ¾î´ÀÁ¤µµ ¾ÈÁ¤ÀûÀ¸·Î µ¿ÀÛÇÏ´Â ´Ü°è¿¡ À̸£·¶±â¿¡ °ø°³ÇÏ°íÀÚ ÇÕ´Ï´Ù. ÀÌ ¶óÀ̺귯¸®´Â Ç㸣¹Ì ÇÑ±Û ¶óÀ̺귯¸® 2.0 ÀÇ ¸Þ¸ð¸® °ü¸® ¸ðµâ·Î µé¾î°¥ ¿¹Á¤ÀÔ´Ï´Ù. Screen Save µî Å« µ¥ÀÌÅ͸¦ ´Ù·ê¶§ À¯¿ëÇÏ°Ô ¾²À̸®¶ó »ý°¢ÇÏ°í ÀÖÀ¾´Ï´Ù. ÀÏ´Ü ¼Ò°³ÇÏ´Â ÀÔÀå¿¡¼­ Çì´õÈ­ÀÏÀ» º¸°ÚÀ¾´Ï´Ù. /*========================================*/ /* */ /* THIS IS C Total Library */ /* */ /* Virtual Memory System */ /* */ /* "Sub Header.." */ /* */ /* made by Han Woo-jin.KIT e900519 */ /* */ /* KETEL ID : hwjketel */ /* TEL : (02) 488-1558,house */ /* (042) 820-4231,KIT. */ /* */ /*========================================*/ typedef unsigned char byte; typedef struct vmem { int logichandle; int type; } VMEM; typedef struct phy { unsigned int segment; unsigned int pnum; } PHYSICAL_PAGE; #define CON 1 #define EMM 2 #define HARD 3 extern byte *vgbuff; /* virtual global buff */ extern unsigned vgseg; /* buff segment */ extern unsigned vgoff; /* buff offset */ extern int emmflag; extern int hardflag; extern unsigned long hardsize; extern unsigned long consize; extern unsigned ftbuff; /* expanded segment */ /* prototype */ VMEM *hgVMallocCON(unsigned size); void hgVFreeCON(VMEM **p); void hgVSetBuffCON(VMEM *p); void hgVSaveBuffCON(VMEM *p); VMEM *hgVMallocHARD(unsigned size); void hgVFreeHARD(VMEM **p); void hgVSetBuffHARD(VMEM *p); void hgVSaveBuffHARD(VMEM *p); VMEM *hgVMallocEMM(unsigned size); void hgVFreeEMM(VMEM **p); void hgVSetBuffEMM(VMEM *p); void hgVSaveBuffEMM(VMEM *p); /* automatic function */ VMEM *hgVMalloc(unsigned size); void hgVFree(VMEM **p); void hgVSetBuff(VMEM *p); void hgVSaveBuff(VMEM *p); /* initial & end function */ void hgVMEMInit(); void hgVMEMEnd(); /* special function */ unsigned long hgVGetFreeHARD(); unsigned long hgVGetFreeCON(); void hgSetEMMOff(); void hgSetEMMOn(); void hgSetHARDOff(); void hgSetHARDOn(); void hgSetCONLimit(unsigned long limit); /* emm function */ char hgEMM_IsInstalled(); char hgEMM_IsEnoughPages(int pages); int hgEMM_GetFreePages(); int hgEMM_GetTotalPages(); char hgEMM_AllocatePages(int pages,unsigned int *emm_handle); char hgEMM_MapPages(unsigned int handle,int ppage,int lpage); char hgEMM_GetAddress(char **pf_ptr); char hgEMM_FreeHandle(unsigned int emm_handle); char hgEMM_GetVersion(char *s); int hgEMM_GetHandleCount(); int hgEMM_GetHandlePages(unsigned int handle); int hgEMM_GetPhysicalNumber(); int hgEMM_GetPhysicalTable(PHYSICAL_PAGE *p); ¿©·¯°¡Áö ÇÔ¼öµéÀÌ ³ª¿ÍÀִµ¥ Á¦ÀÏ Ã³À½¿¡ CON,HARD,EMM ÀÌ Á¤ ÀǵǾî ÀÖ´Â °ÍÀ» º¼ ¼ö ÀÖÀ¾´Ï´Ù. CON Àº Conventional Memory °ü¸® ·çƾÀ̸ç HARD ´Â HardDisk °ü¸®·çƾ,EMM Àº Expanded Memory °ü¸® ·çƾÀÔ´Ï´Ù. °¢ Á¾·ù¸¶´Ù VMalloc,VFree,VSetBuff, VSaveBuff ÇÔ¼ö°¡ ÀÖÀ½À» ¾Ë ¼ö ÀÖÀ¾´Ï´Ù. ¶ÇÇÑ ¿ì¼±¼øÀ§¸¦ µÎ¾î ÀÚµ¿À¸·Î ÇÊ¿äÇÑ ¸Þ¸ð¸®¸¦ ÇÒ´çÇØ ÁÖ´Â AutoMatic Function µµ Á¦°øµÇ°í ÀÖÀ¾´Ï´Ù. ÇÊ¿äÇϸé ƯÁ¤ ¸Þ¸ð¸®¸¸À» È®º¸Çϵµ·Ï ÇÒ ¼ö µµ ÀÖÀ¾´Ï´Ù. ¶ÇÇÑ È®Àå¸Þ¸ð¸® ¸Å´ÏÀú¸¦ °ü¸®Çϱâ À§ÇÑ ÁÖ¿ä ·ç ƾµéÀ» ³»ºÎ¿¡ Æ÷ÇÔÇÏ°í ÀÖÀ¾´Ï´Ù. À̺κÐÀº hgEMM~ À¸·Î ½ÃÀÛµÇ ´Â ÇÔ¼öµéÀε¥ ÀÌ ÇÔ¼ö´Â 'È®Àå¸Þ¸ð¸® »ç¿ë¹ý' À̶ó´Â Ã¥À» Âü°í ÇÏ¿´À¾´Ï´Ù. Á¦°¡ Virtual System À» °ü¸®ÇÏ´Â µ¥ »ç¿ëÇÑ ¹æ¹ýÀº Global Buffer ¿¡ ÀÇÇÑ ¹æ¹ýÀÔ´Ï´Ù. Áï »ç¿ëÀÚ´Â hgVMalloc ÇÔ¼ö·Î VMEM ÇüÀÇ Æ÷ÀÎÅ͸¦ ¾òÀ» ¼ö ÀÖÀ¾´Ï´Ù. ÀÌ Æ÷ÀÎÅÍ´Â ³»ºÎÀûÀ¸·Î Á¤ÀÇ µÈ LogicHandle °ú Device Type À» °¡Áö°í ÀÖÀ¾´Ï´Ù. ÀÌÁ¦ »ç¿ë ÀÚ´Â vgbuff ¶ó´Â 64 KB ÀÇ ¹öÆÛ¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ÀÌ ¹öÆÛ¸¦ »ç¿ëÇÏ´Ù°¡ ÀÌ ¹öÆÛÀÇ ³»¿ëÀ» Virtual Memory ÁßÀÇ Àû´ç ÇÑ À§Ä¡·Î Swapping Out Çϱâ À§Çؼ­ hgVSaveBuff ÇÔ¼ö¸¦ »ç¿ëÇÕ ´Ï´Ù. ¶ÇÇÑ ÀÌ·¸°Ô Swapping Out µÈ ¹öÆÛÀÇ ³»¿ëÀ» ´Ù½Ã vgbuff ¿¡ °¡Á®¿À±â À§Çؼ­ hgVSetBuff ÇÔ¼ö¸¦ »ç¿ëÇÏ°Ô µË´Ï´Ù. ÀÌ ÇÔ ¼öµéÀº Conventional,Expanded,HardDisk ÀÇ »óŸ¦ Àû´çÈ÷ ÆÇ´Ü ÇÏ¿© Àû´çÇÑ À§Ä¡¿¡ µ¥ÀÌÅ͸¦ ¾²°í/ÀÐÀ» ¼ö ÀÖµµ·Ï ÇØÁÝ´Ï´Ù. vgbuff ´Â ÀÏÁ¾ÀÇ ¹öÆÛ¶ó°í º¸½Ã¸é µË´Ï´Ù. ÀϹÝÀûÀ¸·Î EMM,ƯÈ÷ HardDisk ¸¦ ¾ï¼¼½ºÇÏ´Â °ÍÀº Conventional º¸´Ù ´À¸®¹Ç·Î vgbuff ¶ó´Â 64 KB Â¥¸® ¹öÆÛ´Â Áß°£¿¡¼­ ¾ï¼¼½º Ƚ¼ö¸¦ ÁÙÀÌ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù. ¾Æ·¡ ¿¹¸¦ µé¾îº¸°ÚÀ¾´Ï´Ù. ¿¹1) ±âÁ¸ÀÇ ÇÔ¼öÀÎ malloc À¸·Î 64 KB ¸¦ 0xff ·Î ä¿ì´Â ¿¹ char *buff; unsigned i; buff=(char *)malloc((size_t)0xffff); for (i=0;i<0xffff;i++) buff[i]=0xff; ¿¹2) hgVMalloc ÀÇ »ç¿ë¿¹ VMEM *p; unsigned i; p=(VMEM *)hgVMalloc((unsigned)0xffff); for (i=0;i<0xffff;i++) vgbuff[i]=0xff; <- global buffer Á÷Á¢ ÀÌ¿ë hgVSaveBuff(p); ¹°·Ð ¾Æ·¡ÀÇ ¿¹°¡ ¸î°¡Áö ±º»ìÀÌ ´õ ºÙ¾úÀ¾´Ï´Ù¸¸ °ÅÀÇ ºñ½ÁÇÑ ¸Þ¸ð¸® »ç¿ë¹ýÀ¸·Î 32 M ¿¡ ÇØ´çÇÏ´Â ¹æ´ëÇÑ ¿µ¿ªÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â ÀåÁ¡ÀÌ ÀÖÀ¾´Ï´Ù. º¸Åë ÇÁ·Î±×·¥ÀÇ Code ´Â Conventional ¿¡ ¿Ã·Á³õ°Ô µË´Ï´Ù. µû¶ó¼­ ¸¹Àº µ¥ÀÌÅ͸¦ Conventional ¿¡ È® º¸ÇÏ´Â °ÍÀº »ç½Ç»ó ¹«¸®ÀÔ´Ï´Ù. Virtual Library ¸¦ »ç¿ëÇÑ´Ù¸é VMEM * ÇüÀÇ Æ÷ÀÎÅÍÇϳª¸¸À» °¡Áö°í °¢Á¾ ÀÚ¿øÀ» ÃÖ´ë·Î È°¿ëÇÒ ¼ö ÀÖÀ» »Ó ¾Æ´Ï¶ó ´Ù¸¥ ÀÚ¿øÀÇ Ãß°¡µµ °£´ÜÇϹǷΠ¸Þ¸ð¸® °ü¸® ¸¦ ÈξÀ Æí¸®ÇÏ°Ô ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ¿äÁòÀº Disk-Based µÈ ÇÁ·Î±×·¥µéÀ» ¸¹ÀÌ º¾´Ï´Ù. Disk-Based Hangul Editor µî Çϵåµð ½ºÅ©»ó¿¡¼­ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ°Ô Çؼ­ ÀÛ¾÷¿µ¿ªÀ» ³ÐÈú ¼ö ÀÖµµ·Ï ÇÏ´Â ÇÁ·Î±×·¥ÀÌ ¸¹½À´Ï´Ù. ±×·¯³ª EMM µî È®Àå ¸Þ¸ð¸®¸¦ ÃæºÐÈ÷ Áö¿øÇÏÁö´Â ¸øÇÏ´Â °Í °°½À´Ï´Ù. Disk-Based ´Â À§ Virtual Library ¿¡¼­ EMM ÀÌ ¾ø°Å³ª OFF µÈ »óÅÂ(OFF ÇÔ¼ö°¡ ÀÖÀ½) ¿Í °°½À´Ï´Ù. Áï HardDisk Swapping ¸¸À» ÀÌ¿ëÇÏ´Â °ÍÀÌÁÒ. ÀÖ´Â ÀÚ ¿øÀº ÃÖ´ë·Î È°¿ëÇØ¾ß ÇÕ´Ï´Ù. Hard Disk ´Â Virtual Library ¿¡ ¼­ ¿ì¼±¼øÀ§°¡ °¡Àå ³·½À´Ï´Ù. ±× ´À¸° ¼Óµµ¶§¹®ÀÌÁÒ. ÇÏÁö¸¸ EMM Àº Conventional º¸´Ù´Â ´À·Áµµ HardDisk º¸´Ù´Â ¿ùµîÇÏ°Ô ºü¸¨´Ï´Ù. ¿äÁîÀ½Àº ƯÈ÷³ª ·¥À» 4 ¸Þ°¡ ÀÌ»ó ÀåÂøÇÑ 386 ±âÁ¾ÀÌ ¸¹¾ÆÁö°í ÀÖÀ¾´Ï´Ù. emm386.exe ¸¦ ÀÌ¿ëÇؼ­ Expanded Memory ¸¦ Àû´çÈ÷ °¡Áö°í ÀÖ´Â PC ¶ó¸é EMM À» ÃæºÐÈ÷ ÀÌ¿ëÇØ¾ß ÇÕ´Ï´Ù. ±× ·³ ´ÙÀ½°­ÁºÎÅÍ ½ÇÁ¦·Î º¸¿©Áö´Â Virtual Library ÀÇ ¼³°è¸¦ ±â ´ëÇØÁÖ¼¼¿ä. Âü. Mulbora Hangul Reader v1.0 (hr.exe) ´Â °ð ÀÚ ·á½Ç¿¡ ¾÷·Îµå µÉ °ÍÀÔ´Ï´Ù. Herc/VGA °ø¿ëÀÔ´Ï´Ù. ±×·³.Ç㸣¹Ì.