±è¼ºÀÍ (NOERROR ) LSP FAQ 2/2 6. ŸÀÏ ½ºÅ©·ÑÀº ? ŸÀÏ ½ºÅ©·ÑÀº µû·Î ¾î·Æ°Ô »ý°¢ÇÒ Çʿ䰡 ¾ø½À´Ï´Ù. ³í¸®ÁֱⰡ È­¸éº¸´Ù Å« ¹öÆÛ¸¦ Àâ¾Æ ³õ°í ±× °÷¿¡ ¹è°æÀ» ±×¸°ÈÄ¿¡ ¸Å ÇÁ·¹ÀÓ LSP¿¡ µî·Ï½ÃŰ¸é µË´Ï´Ù. (ResetLspºÎºÐ¿¡¼­ ÇØ¹ö¸®¸é ÆíÇÔ. ) ¸¸¾à È­¸é °¡·Î ±æÀ̰¡ 160Çȼ¿À̰í ŸÀÏÀÌ 16Å©±â¶ó¸é(¼¼·Î´Â 1·Î »ý°¢ÇսôÙ.) 176Â¥¸® ¹öÆÛ¸¦ Àâ¾Æ³õ°í 0ºÎÅÍ 160¸¸Å­, 1ºÎÅÍ 160¸¸Å­,... ÀÌ·±½ÄÀ¸·Î µî·ÏÇϰí Ãâ·ÂÇϰí ÇÏ¸é ½ºÅ©·ÑÀÌ µÇ°ÚÁö¿ä ? °¡·ÎºÎÅÍ 16¸¸Å­ À̵¿ÇßÀ»¶§´Â ´ÙÀ½ ºÎºÐ¿¡ ³ª¿Ã ŸÀÏ 16¸¸ °»½ÅÇØÁÖ¸éµÇ°í¿ä. ´ÜÁö ÁÖÀÇÇÒ°ÍÀ̶ó¸é ¸Þ¸ð¸® ¹üÁÖ¸¦ ÁöÄѼ­ 󸮸¦ ÇØ¾ß ÇÑ´Ù´Â °Å°ÚÁö¿ä. 7. ´ÙÁß½ºÅ©·ÑÀº ? 8. 0¹ø ¾ÐÃà ½ºÇÁ¶óÀÕÀº ? LSP´Â 0¹ø ¾ÐÃà ½ºÇÁ¶óÀÕ°ú Àß ±ÃÇÕÀÌ ¸ÂÁö¿ä. ±âÁ¸ÀÇ ½ºÇÁ¶óÀÕÃâ·Â ¹æ½ÄÀº ÀÏÀÏÀÌ Åõ¸í»ö(0,ȤÀº ´Ù¸¥ »ö) ÀÎÁö¸¦ Á¶»çÇÑ ÈÄ¿¡ Ãâ·Â¿©ºÎ¸¦ °áÁ¤ÇÕ´Ï´Ù. ±×·¯³ª 0¹ø ¾ÐÃàÀº ÀϰüÀûÀ¸·Î Åõ¸íºÎºÐ°ú Ãâ·ÂºÎºÐÀ» ³ª´©¾î ó¸®ÇÔÀ¸·Î¼­ ±×·¯ÇÑ ¹ø°Å·Î¿òÀ» ¾ø¾Ö ÁÖÁÒ. '0 ¹ø ¾ÐÃà' À̶õ ¸»ÀÇ Àǹ̰¡ Åõ¸í»ö(0)À» ÀϰüÀûÀ¸·Î ó¸®ÇÒ¼ö ÀÖµµ·Ï ÁÙ¿©ÁÖ´Â(¾ÐÃà)°ÍÀ» ¸»ÇÏ´Â °ÅÁÒ ( ´Ü¼øÈ÷ Å©±â¸¦ ÁÙÀ̱â À§ÇÑ ¾ÐÃà¹ý°ú´Â Â÷À̰¡ ÀÖ½À´Ï´Ù. ) 0 0 1 2 3 3 3 2 1 0 0 0 0 ÀÌ·± µ¥ÀÌŸ¸¦ Ãâ·ÂÇÑ´Ù°í ÇØº¸ÁÒ.(0 ¹øÀ» Åõ¸í»öÀ¸·Î ¼³Á¤ÇսôÙ.) ±âÁ¸ÀÇ ¹æ½ÄÀÏ °æ¿ì¿£ ÀÏÀÏÀÌ 0¹øÀÎÁö Á¶»ç¸¦ ÇÑÈÄ¿¡ Ãâ·ÂÀ» ÇÕ´Ï´Ù. ( 0 ¹øÀÏ °æ¿ì¿£ Ãâ·ÂÇÏÁö ¾Ê°í ´ÙÀ½ Á¡À¸·Î À̵¿ÇؾßÇϴϱî¿ä.) ±×·¯³ª 0¹ø ¾ÐÃà¹ýÀº ÀÌ·± °úÁ¤À» ¾ø¾Ö°Ô ÇØÁÜ´Ï´Ù. À§ÀÇ µ¥ÀÌŸ´Â ´ÙÀ½°ú °°ÀÌ ¹Ù²ãÁú¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. 2 7 1 2 3 3 3 2 1 4 ºÐ¼®À» ÇØº¸¸é ¾Æ·¡¿Í °°½À´Ï´Ù. 2 - ¸ÕÀú µîÀåÇÏ´Â ¼ö´Â 0¹øÀÇ ¼ö¸¦ ³ªÅ¸³¿´Ï´Ù. ±×·¯¹Ç·Î ±×³É Á¡ÀÇ À§Ä¡¸¦ ÀÌ ¼ö¿¡ ¸ÂÃß¾î À̵¿ÇÏ¸é µÊ´Ï´Ù. 7 - ´ÙÀ½ÀÇ ¼ö´Â 0 ¹øÀÌ ¾Æ´Ñ ÀÏ¹Ý Çȼ¿µ¥ÀÌŸÀÇ ¼ö¸¦ ³ªÅ¸³¿´Ï ´Ù. ÀÌ ¼ö¸¸Å­¸¸ È­¸é¿¡ ±×·ÁÁÖ¸éµÊ´Ï´Ù. 1 2 3 3 3 2 1 - ÀÌ 7°³°¡ ¹Ù·Î Çȼ¿µ¥ÀÌŸÁÒ. ÀÌ°É ±×·ÁÁÖ¸é µÊ´Ï´Ù. 4 - ´Ù½Ã 0¹øÀÇ °¹¼ö¸¦ ³ªÅ¸³À´Ï´Ù. ÀÌ·±½ÄÀ¸·Î 0¹ø°ú 0¹ø ¾Æ´Ñ À̹ÌÁö·Î ±¸ºÐÇØ ³õ°Ô µÇÁÒ. ±×¸®°í 0¹øÀÌ¸é ¾Æ¹«°Íµµ ¾ÈÇÏ°í ´ÜÁö ÁÂÇ¥¸¸ À̵¿½ÃÄÑÁÖ°í È­¸é¿¡ ±×·Á¾ßÇÒ ¸î°³ÀÇ µ¥ÀÌŸ´Â LSP¿¡ µî·ÏÀ» ½ÃÄѳõ½À´Ï´Ù. ÀÌ·±½ÄÀÇ ¹Ýº¹À» ÇÏ¸é µÇÁö¿ä. µî·ÏÇÒ ¶§ ÁÂÇ¥¿¡ µû¸¥ Ŭ¸®Çΰ°Àº °Ç °í·Á ¾ÈÇØµµ µÇ´Ï ¿©·¯¸ð·Î ÆíÇÏÁÒ. 9. È®´ë Ãà¼Ò Ãâ·ÂÀº °¡´ÉÇѰ¡ ? 10. º£»ç ¸ðµå¿¡¼± ¾î¶»°Ô Àû¿ë½Ãų ¼ö ÀÖ´Â °¡ ? LSP´Â º£»ç¿¡µµ À¯¸®ÇÑ ¸éÀÌ ÀÖ½À´Ï´Ù. ÀÏ´Ü È­¸éÀÌ Å©±â ¶§¹®¿¡ ¹öÆÛ¸µÀ» Çϸé Å« ¸Þ¸ð¸®¸¦ ´Ù·ç¾î¾ß Çϱ⠶§¹®¿¡ ´À·ÁÁý´Ï´Ù. LSP´Â ¹Ù·Î È­¸é¿¡ »Ñ·ÁÁֱ⠶§¹®¿¡ ÀÌ·± Á¡Àº Ä¿¹öÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í ¹ðŷ󸮵µ ¾ÆÁÖ °£´ÜÇØ ÁöÁÒ. ¶óÀκ°·Î ¹ðÅ·±³È¯ÀÌ ÀϾ´Â °÷Àº ÇÑÈ­¸é¿¡ ¸î±ºµ¥ ¾ÈµÇ±â ¶§¹®ÀÔ´Ï´Ù. À§¿¡¼­ Âß »Ñ·ÁÁָ鼭 ¹ðÅ©±³È¯ÀÌ ÀϾ¶§¸¸ ¹ðÅ©¸¦ ¹Ù²ãÁÖ¸é µÇ±â ¶§¹®¿¡ ¹ðÅ©º¯È¯¼ö ´Â ÃÖ¼Ò·Î ÁÙ°Ô µÇÁö¿ä. ( ¹öÆÛ¸µ°ú ¸¶Âù°¡Áö... ) long offset; // 0ºÎÅÍ °¡·Î ±æÀÌ ¸¸Å­ ¸Å ¶óÀθ¶´Ù Áõ°¡ // BANK_SIZEº¸´Ù Ä¿Áö¸é ¹ðÅ© 1Áõ°¡Çϰí BANK_SIZE¸¸Å­ °¨¼Ò if (offset >= BANK_SIZE-SCREEN_XSIZE) { // ¶óÀÎÀ» ±×¸®´Â Áß¿¡ ¹ðÅ© ±³È¯ÀÖÀ½ for (x=0; xnext) { if(offset+x+node->length>=BANK_SIZE) // À̹ø ³ëµåÁß°£¿¡ ¹ðÅ© ±³È¯ ÀÖÀ½ // (BANK_SIZE-offset)¸¸Å­ »Ñ¸®°í ¹ðÅ©±³È¯ÇÏ°í ³ª¸ÓÁöºÎºÐÀ» // »Ñ·Á¾ß ÇÔ else // ¹ðÅ©±³È¯¾øÀ½ } } else // ¶óÀÎÀ» ±×¸®´Â Áß¿¡ ¹ðÅ© ±³È¯¾øÀ½ ( ±×³É ºñµð¿À¸Þ¸ð¸®¿¡ º¹»ç ) ´ëÃæ À§¿Í °°Àº ±¸¼ºÀ» ÇÒ °ÍÀÔ´Ï´Ù. ( Âü°í ÀÚ·á Âü°í ¹Ù¶÷ ) 11. 3Â÷¿ø¿¡ ¾î¶»°Ô Àû¿ëµÉ ¼ö ÀÖ´Â °¡ ? ³ëµå¸¦ »õ·Ó°Ô ±¸¼ºÇØ¾ß °ÚÁö¿ä. ¾Æ·¡ ¼Ò½º¸¦ º¸½Ã¸é ´ëÃæ °¨ÀÌ ¿À½Ç°Ì´Ï´Ù. ( ¹°·Ð ±¸ÇöÀ» ÇØº¸½ÅºÐµéÀ̶ó¸é... ) struct LSP { short length; short mx, dmx; short my, dmx; char *source; LSP *next; }; node = lspnode[y]; for(i = 0; i < SCREEN_XSIZE;) { { int mx = node->mx; int my = node->my; int dmx = node->dmx; int dmx = node->dmy; for(int j=0; jlength; j++, mx+=dmx, my+=dmy) video[i+j] = source[(mx>>8)+(my>>8)*buf_width]; } i += node->length; node = node->next; } ¾ÆÁ÷ È¿À²¿¡ °üÇÑ ½ÃÇèÀ̳ª Æò°¡´Â ¾ø´Â °ü°è·Î ¼º´É¿¡ ´ëÇØ ´ÜÁ¤ ÁöÀ» ¼ö ¾ø½À´Ï´Ù¸¸ ºñ±³Àû º¹ÀâÇÏÁö ¾ÊÀº ¹è°æÃ³¸®(ÄùÀÌÅ©³ª µÒ, ¹öÆÄ,... ÀÇ ¹è°æºÎºÐ) ¿¡ ¾à°£ÀÇ °¡´É¼ºÀ» °¡Áö°í ÀÖ½À´Ï´Ù. ( ÀÌ°Ç °³ÀÎÀûÀÎ ÀǰßÀÓ ) 12. À©µµ¿ì ´ÙÀÌ·ºÆ® X¿¡ Àû¿ë 13. ³ëµå »ý¼º¿¡ °üÇØ ³ëµå¸¦ »ý¼ºÇÒ ¶§ ¸Å¹ø LSP *node = new LSP; // LSP *node = malloc(sizeof(LSP)); ÀÌ·±½ÄÀ¸·Î »ý¼ºÇϰí free, deleteµîÀ¸·Î »èÁ¦ÇÑ´Ù¸é ¿©·¯¸ð·Î ºÒÀÌÀÍÀÌ »ý±é´Ï´Ù. ¸ÕÀú »ý¼º½Ã°£ ³¶ºñ·Î ÀÎÇØ LSPÀÇ Ä¡¸íÀû ´ÜÁ¡ÀÌ µÉ ¼öµµ ÀÖ°í ÀæÀº ÇÒ´çÀ¸·Î ÀÎÇØ Ãѿ뷮Àº ¸¹¾Æµµ ¸Þ¸ð¸® ÇÒ´çÀÌ ¾ÈµÇ´Â ÀÏÀÌ »ý±æ ¼öµµ ÀÖÁö¿ä. ( ÇöÀç 2¸Þ°¡°¡ ³²¾Æ¼­ 1¸Þ°¡¸¦ ÇÒ´çÇÏ·Á Çß´õ´Ï ¸Þ¸ð¸®°¡ 0.5¸Þ°¡ ºí·°´ÜÀ§·Î 4°³°¡ ³²¾ÆÀÖ´Ù°í ÇÏ¸é ´ç¿¬È÷ ÇÒ´çÀÌ ¾ÈµÅÁö ¾Ê½À´Ï±î ? ) ±×·¡¼­ ¹Ì¸® ÃæºÐÇÑ ¾çÀ» °í·ÁÇØ¼­ ÇÒ´çÇØ ³õÀº ÈÄ¿¡ AllocLSPÇÔ¼ö¸¦ ÀÌ¿ëÇØ ¹èºÐÇÏ´Â ¹æ½ÄÀ» ÀÌ¿ëÇÕ´Ï´Ù. LSP *node, *temp; void InitLsp() { node = new LSP [MAX]; temp = node; } void UninitLsp() { delete node; } void ResetLsp() { temp = node ; .... } LSP *AllocNode() { return temp++; } ÀÌ·±½ÄÀ¸·Î ¸»ÀÌÁÒ. MAX´Â ÃæºÐÈ÷ ¾ÈÁ¤ÀûÀ̶ó°í »ý°¢µÇ´Â ¼ö·Î Á¤ÇÏ¸é µË´Ï´Ù. ÀÏ´Ü ÇÑ ¶óÀÎÀÌ ÃÖ°í ¸î°³±îÁö ºÐÇÒ µÉ±î¸¦ »ý°¢Çغ» ÈÄ¿¡ ÃÑ ¶óÀμö¸¦ °öÇÏ°í ¿©±â¿¡ Ç÷¯½º ¾ËÆÄ¸¦ ÇÑ °ªÀÌ µÇ°ÚÁö¿ä. ( ±¦È÷ º¹ÀâÇÑ µí... ) ÇÊ¿äÇϸé ÇÒ´çµÈ ³ëµå¼ö¸¦ Ã¼Å©ÇØ¼­ ÀÏÁ¤¼ö ÀÌ»ó ÇÒ´çÀ» ¿ä±¸Çϸé Ãß°¡·Î ´Ù¸¥ ¹öÆÛ¿¡ ÇÒ´çÇØ¼­ ±×Âʲ¬ ºÐ¹èÇØÁÖ¾î ÃÖ´ë°ªÀ» ´Ã¸®°í ¹¹ ÀÌ·±½ÄÀ¸·Î ÇØµµ µÇ°ÚÁö¿ä. ¾Ïư ¹æ¹ýÀÌ¾ß ¾î¶»µç AllocNode¸¦ È£ÃâÇßÀ» ¶§ ºó³ëµå°ªÀ» ¸®ÅÏÇØ ÁÖ¾î¾ß Çϰí ResetLsp¸¦ È£ÃâÇϸé ÇÒ´çÇØÁÖ¾ú´ø ¸ðµç ³ëµå´Â ´Ù½Ã ºó³ëµå·Î ÀνÄÇØÁ൵ µÈ´Ù´Â Á¤µµ¸¸ ÁöÄÑÁÖ¸é µÇ°ÚÁö¿ä. 14. ±âŸ ±âº» LSPÀÌ·ÐÀ» ¹ÙÅÁÀ¸·Î ±×³É ¿©·¯°¡Áö Ç¥ÇöÀÌ °¡´ÉÇÕ´Ï´Ù. ¿¹¸¦ µé¸é LSP¸¦ ÀÌ¿ëÇØ ÀϺκи¸ Ãâ·ÂÇØÁÖ´Â °Í °°Àº °ÅÁÒ. void PutScreen(int x, int y, int xs, int ys) { int x1, x2, skip; LSP *node ; x2 = min(SCREEN_XSIZE, x+xs); x1 = max(0, x); if (x2 < x1) return; for(ys=min(y+ys, SCREEN_YSIZE), y=max(y, 0); ynext) { if(x+node->length > x1) { skip = max(x1-x, 0); PutImage(x+skip, y, node->address+skip, \ min(node->length, x2-x) - skip, node->table); } x += node->length ; } } } ÀÌ·± Ãâ·Â ·çƾÀÌ µÇ°ÚÁÒ ? ÇØ´ç¶óÀθ¶´Ù Ãâ·ÂÇÒ Çʿ䰡 ¾ø´Â ºÎºÐ(³ëµå)Àº ±×³É Áö³ªÄ¡°í ÇØ´çºÎºÐ¸¸ Ãâ·ÂÀ» ÇÏ°Ô Çϰí Ãâ·ÂÀÌ ³¡³ª¸é ´ÙÀ½ ¶óÀÎÀ¸·Î °¡´Â ¹æ½ÄÀÌ Áö¿ä. LSP´Â ºñ±³Àû ¸¹Àº ºÐ¾ß¿¡ ¾²ÀÏ ¼ö ÀÖ½À´Ï´Ù. ³ëµå¸¦ »ç¿ëÇϱ⠶§¹®¿¡ ÀÀ¿ëÀÌ ¿ëÀÌÇϱ⠶§¹®ÀÌÁÒ. ¾ÆÀÌÅÛÀ» ÀÚÀ¯·ÎÀÌ Ãß°¡ÇÒ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù. 3Â÷¿øÀÇ ÀÀ¿ë ºÎºÐ¿¡¼­ ¸ÊÇÎÀÇ u,vº¤ÅÍ °ª°ú ¹ÌºÐ°ªÀ» ³ÖÀ» ¼ö ÀÖµµ·Ï ÇßµíÀÌ ¸»ÀÌÁÒ. 15. Âü°íÀÚ·á