|
̾¾Îpcvt , vt —
PC
¥³¥ó¥½¡¼¥ë²¾ÁÛ¥¹¥¯¥ê¡¼¥ó¥·¥¹¥Æ¥à
½ñ¼°options “PCVT_FREEBSD = version | PCVT_NETBSD = version”[options “PCVT_NSCREENS = number”] [options “PCVT_XXXX”] (ÀßÄê ¤Î¹àÌܤò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£)
ÀâÌÀ³µÍ×pcvt
¥É¥é¥¤¥Ð¤Ï¡¢ÅÁÅýŪ¤Ê¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¤Ë¤Ï̵¤¤¤¤¤¯¤Ä¤«¤Î
µ¡Ç½¤ò»ý¤Ã¤¿²¾ÁÛ¥¹¥¯¥ê¡¼¥ó¥·¥¹¥Æ¥à¤òÄ󶡤·¤Þ¤¹¡£
Ê£¿ô¤Î²¾ÁÛ¥¹¥¯¥ê¡¼¥ó¤ò°·¤¨¤ë¤Û¤«¡¢¤ª¤½¤é¤¯ºÇ¤â½ÅÍפʤâ¤Î¤Ï
¹ÈϰϤˤ錄¤ë
DEC VT-220 (TM)
¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤Ç¤¹¡£¾ÜºÙ¤Ï
ÆÃħ
¤Î¹àÌܤò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
ÆÃħ
¤Ç¤¤Ê¤¤¤³¤È:
ÀßÄ긽ºßpcvt
¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¤Ï¡¢
Intel ¥Ù¡¼¥¹¤Î BSD
¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ç¤¢¤ë
NetBSD/i386 (¥ê¥ê¡¼¥¹
0.9 °Ê¾å)
¤ª¤è¤Ó FreeBSD
(¥ê¥ê¡¼¥¹ 1.0-GAMMA
°Ê¾å)
¤ÇÍøÍѤǤ¤Þ¤¹¡£
¥·¥¹¥Æ¥à¤«¤é¤ÎŬÀڤʥµ¥Ý¡¼¥È¤òÆÀ¤ë¤¿¤á¤Ë¡¢
PCVT_NETBSD ¤Þ¤¿¤Ï
PCVT_FREEBSD
¤Î¤¦¤Á¤É¤Á¤é¤«¤Î¥ª¥×¥·¥ç¥ó¤ò¥·¥¹¥Æ¥à¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ç
»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó
(config(8)
¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤)
¡£ ¤µ¤é¤Ë FreeBSD
¤ª¤è¤Ó NetBSD
¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ë¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤ò
ÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
FreeBSD
¤Ç¤Ï¡¢¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤ò
3
·å¤Î¿ô»ú¤Çɽ¸½¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
Î㤨¤Ð¡¢1.0 release
(¼ÂºÝ¤Ë¤Ï¥Ð¡¼¥¸¥ç¥ó
1.0.2)
¤ò»È¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢
PCVT_FREEBSD = 102 ¤Î¤è¤¦¤ËÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ NetBSD ¤Ç¤Ï¡¢NetBSD 0.9 ¤Î¾ì¹ç¡¢¤³¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Ï 9 ¤Èɽ¸½¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ NetBSD-current (1.0 °ÊÁ°) ¤Î¾ì¹ç¤Ï 9 ¤è¤êÂ礤¤Ç¤°Õ¤ÎÃͤˤʤê¤Þ¤¹¡£ NetBSD 1.0¤Î¾ì¹ç¤Ï ( FreeBSD ¤ÈƱÍͤË) 100 ¤ò¡¢NetBSD-current ¤Ç¤Ï 999 ¤ò»È¤¦¤³¤È¤¬¿ä¾©¤µ¤ì¤Þ¤¹¡£ Î㤨¤Ð NetBSD 1.0 release ¤Î¾ì¹ç¡¢ PCVT_NETBSD = 100 ¤ÈÄêµÁ¤¹¤Ù¤¤Ç¤¹¡£
ÍøÍѲÄǽ¤ÊÀßÄꥪ¥×¥·¥ç¥ó¤ÎÄÌÍ÷¤ò¼¡¤Î¥ê¥¹¥È¤Ë¼¨¤·¤Þ¤¹¡£ ¾ÜºÙ¤Ï¥«¡¼¥Í¥ë¥½¡¼¥¹¥Ä¥ê¡¼¤Î i386/isa/pcvt/pcvt_hdr.h ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ ¥Î¡¼¥È: ¤¹¤Ù¤Æ¤Î¥Ö¡¼¥ëÃÍ¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¡¢¼¡¤Î¤è¤¦¤ÊÌó«¤ò¤·¤Þ¤¹¡£ ¤â¤·¤¢¤ë¥ª¥×¥·¥ç¥ó¤¬Ãͤʤ·¤ÇÍ¿¤¨¤é¤ì¤¿¾ì¹ç¡¢1 ¤È¤¤¤¦ÃÍ (͸ú) ¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥ª¥×¥·¥ç¥óÃͤȤ·¤Æ 0 ¤¬Í¿¤¨¤é¤ì¤¿¾ì¹ç¡¢¤½¤Î¥ª¥×¥·¥ç¥ó¤Ï ̵¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£¤½¤ì°Ê³°¤ÎÃÍ¤Ç¤Ï 1 ¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥ª¥×¥·¥ç¥ó¤¬¾Êά¤µ¤ì¤¿¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤¬²¾Äꤵ¤ì¤Þ¤¹¡£
¼ç¤Ë¥Ç¥Ð¥Ã¥°¤ä¥Ï¡¼¥É¥¦¥§¥¢¤ÎÌäÂê¤ËÂн褹¤ë¤¿¤á¤Ë¡¢¤µ¤é¤Ë¥ª¥×¥·¥ç¥ó¤¬ ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ i386/isa/pcvt/pcvt_hdr.h ¤ËÀâÌÀ¤¬¤¢¤ê¤Þ¤¹¡£ ÆâÉôµ¡Ç½pcvt
¥É¥é¥¤¥Ð¤Ë´ØÏ¢¤¹¤ë¥Ç¥Ð¥¤¥¹¥Î¡¼¥É¾å¤Î¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ½Ò»Ò¤ò¤È¤â¤Ê¤Ã¤Æ
ioctl(2)
¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ö¤³¤È¤Ç¡¢
°Ê²¼¤Ë½Ò¤Ù¤ë¤è¤¦¤Êµ¡Ç½¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤½¤ì¤é¤òÍøÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢¥×¥í¥°¥é¥à¤Ï¼¡¤Î¹Ô¤ò´Þ¤àɬÍפ¬¤¢¤ê¤Þ¤¹:
#include
<machine/pcvt_ioctl.h> °Ê²¼¤Ë°úÍѤµ¤ì¤¿¥Ñ¥é¥á¡¼¥¿¤ÎÄêµÁ¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ë ¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤¤ë¤Ç¤·¤ç¤¦¡£ ¥¡¼¥Ü¡¼¥É¤Ë´ØÏ¢¤¹¤ëµ¡Ç½ ´ðËÜŪ¤Ê¥¡¼¥Ü¡¼¥É¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Ë´Ø·¸¤¹¤ëµ¡Ç½¤¬ 3 ¤Ä¤¢¤ê¤Þ¤¹¡£
ŬÀÚ¤ÊÄê¿ô¤òɽ¤¹¥·¥ó¥Ü¥ëÃͤ¬ÍøÍѤǤ¤Þ¤¹¡£ ¥¡¼¥ê¥Ô¡¼¥ÈÃÙ±ä»þ´Ö¤Î½é´üÃͤò»ØÄꤹ¤ë¤Î¤Ï¡¢ 250 ¥ß¥êÉäòɽ¤¹ KBD_TPD250 ¤«¤é¡¢1000 ¥ß¥êÉäòɽ¤¹ KBD_TPD1000 ¤Þ¤Ç¤Î 250 ¥ß¥êÉùï¤ß¤ÎÃͤǤ¹¡£ ¥¡¼¥ê¥Ô¡¼¥È®Å٤ϡ¢ ËèÉà 30.0 ʸ»ú¤òɽ¤¹ KBD_TPM300 ¤«¤é¡¢ ËèÉà 2.0 ʸ»ú¤òɽ¤¹ KBD_TPM20 ¤Þ¤Ç¤ÎÃͤ¬¤¢¤ê¤Þ¤¹¡£ Ãæ´ÖÃͤϡ¢ËèÉà 30.0, 26.7, 24.0, 21.8, 20.0, 18.5, 17.1, 16.0, 15.0, 13.3, 12.0, 10.9, 10.0, 9.2, 8.6, 8.0, 7.5, 6.7, 6.0, 5.5, 5.0, 4.6, 4.3, 4.0, 3.7, 3.3, 3.0, 2.7, 2.5, 2.3, 2.1, 2.0 ʸ»ú¤¬»ØÄê¤Ç¤¤Þ¤¹¡£
¤³¤ì¤é¤âÃͤò³ÊǼ¤¹¤ë int ·¿ÊÑ¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¥Ñ¥é¥á¡¼¥¿¤È¤·¤Æ ¼õ¤±¼è¤ê¡¢¥É¥é¥¤¥ÐÆâÉô¤Î¥¡¼¥ê¥Ô¡¼¥È¥Õ¥é¥°¤òÁàºî¤·¤Þ¤¹¡£ ²Äǽ¤ÊÃÍ¤Ï KBD_REPEATOFF ¤¢¤ë¤¤¤Ï KBD_REPEATON ¤Ç¤¹¡£
°ú¿ô¤Ç¤¢¤ë¥Ý¥¤¥ó¥¿¤Î»Ø¤¹ int ·¿ÊÑ¿ô¤Ï KBD_SCROLLLOCK, KBD_NUMLOCK, KBD_CAPSLOCK ¤È¤¤¤¦Ãͤò¤È¤ê¡¢¤³¤ì¤é¤ÏÏÀÍýϤÎÁȤ߹ç¤ï¤»¤Î·Á¤Ç»È¤ï¤ì¤ë¤Ç¤·¤ç¤¦¡£
¤³¤ì¤é¤â¡¢¥É¥é¥¤¥Ð¤¬»ý¤Ä LED ¥Õ¥é¥°¤Î¾õÂÖ¤ò ÀßÄꤷ¤¿¤ê¼èÆÀ¤·¤¿¤ê¤¹¤ë¤Î¤ÈƱ¤¸ÊýË¡¤Ç»È¤ï¤ì¤ë¤Ù¤¤Ç¤¹¡£ ¥¡¼¥Ü¡¼¥É¤ÎºÆ¥Þ¥Ã¥×
¤³¤ì¤é¤¬¤½¤Îµ¡Ç½¤ò¹½À®¤·¤Þ¤¹¡£¤³¤ì¤é¤Ï¼¡¤Ë½Ò¤Ù¤ë struct kbd_ovlkey ¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¿ô¤È¤·¤Æ¼õ¤±¼è¤ê¤Þ¤¹¡£ ²Ã¤¨¤Æ¡¢¼¡¤Î¤è¤¦¤Ê´Ø¿ô¤¬¤¢¤ê¤Þ¤¹¡£
struct kbd_ovlkey /* ¥¡¼¤Î´°Á´¤ÊÄêµÁ */ { u_short keynum; /* ¥¡¼¤½¤Î¤â¤Î */ u_short type; /* ¥¡¼¤Î¥¿¥¤¥×¡£°Ê²¼¤ò»²¾È¡£ */ u_char subu; /* ¥µ¥Ö¥¿¥¤¥×¡£½ñ¤¹þ¤ß»þ¤Ë¤Ï̵»ë¤µ¤ì¤ë¡£ */ char unshift[KBDMAXOVLKEYSIZE+1]; /* Èó shift »þ¤ËÀ¸À®¤µ¤ì¤ëʸ»úÎó¡£ */ u_char subs; /* ¥µ¥Ö¥¿¥¤¥×¡£½ñ¤¹þ¤ß»þ¤Ë¤Ï̵»ë¤µ¤ì¤ë¡£ */ char shift[KBDMAXOVLKEYSIZE+1]; /* shift »þ¤ËÀ¸À®¤µ¤ì¤ëʸ»úÎó¡£ */ u_char subc; /* ¥µ¥Ö¥¿¥¤¥×¡£½ñ¤¹þ¤ß»þ¤Ë¤Ï̵»ë¤µ¤ì¤ë¡£ */ char ctrl[KBDMAXOVLKEYSIZE+1]; /* control »þ¤ËÀ¸À®¤µ¤ì¤ëʸ»úÎó¡£ */ u_char suba; /* ¥µ¥Ö¥¿¥¤¥×¡£½ñ¤¹þ¤ß»þ¤Ë¤Ï̵»ë¤µ¤ì¤ë¡£ */ char altgr[KBDMAXOVLKEYSIZE+1]; /* altgr »þ¤ËÀ¸À®¤µ¤ì¤ëʸ»úÎó¡£ */ }; type ¥Õ¥£¡¼¥ë¥É¤ÎŬÀÚ¤ÊÃͤϼ¡¤ÎÄ̤ê¤Ç¤¹¡£
¥µ¥Ö¥¿¥¤¥× ¥Õ¥£¡¼¥ë¥É¤Ï¼¡¤Î¤¦¤Á¤Î ¤É¤ì¤« 1 ¤Ä¤ÎÃͤòÊÝ»ý¤·¤Þ¤¹¡£
¥Þ¥¦¥¹¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó ¥Þ¥¦¥¹¥¨¥ß¥å¥ì¡¼¥¿¤Ï
(¤â¤·ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð)
Mouse Systems
¥×¥í¥È¥³¥ë¤ò»È¤Ã¤Æ
3
¥Ü¥¿¥ó¥Þ¥¦¥¹¤Î¿¶¤ê¤ò¤·¤Þ¤¹¡£
²¾ÁÛ¥¹¥¯¥ê¡¼¥ó¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤Æ¤¤¤Ê¤¤¡¢ºÇ½é¤Î
¼¡¤Î¥³¥Þ¥ó¥É¤Ë¤è¤ê¡¢¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤òÀ©¸æ¤·¤Þ¤¹¡£
¤É¤Á¤é¤â
struct mousedefs { int leftbutton; /* "º¸¥Ü¥¿¥ó" ¤Î¥¡¼¤ËÂбþ¤¹¤ë (PC) ¥¹¥¥ã¥ó¥³¡¼¥É */ int middlebutton; /* "Ãæ¥Ü¥¿¥ó" ¤Î¥¡¼¤ËÂбþ¤¹¤ë (PC) ¥¹¥¥ã¥ó¥³¡¼¥É */ int rightbutton; /* "±¦¥Ü¥¿¥ó" ¤Î¥¡¼¤ËÂбþ¤¹¤ë (PC) ¥¹¥¥ã¥ó¥³¡¼¥É */ int stickybuttons; /* ¿¿¤Ê¤é¤Ð "sticky" ¤Ç¤¢¤ë¡£ */ int acceltime; /* ¥Þ¥¦¥¹¥Ý¥¤¥ó¥¿¤¬²Ã®¤·»Ï¤á¤ë¤Þ¤Ç¤Î¥Þ¥¤¥¯¥íÉÃñ°Ì¤Î»þ´Ö */ /* ¥Ç¥Õ¥©¥ë¥ÈÃÍ: scan(F1), scan(F2), scan(F3), µ¶, 500000 */ }; ¥À¥¦¥ó¥í¡¼¥É²Äǽ¤Êʸ»ú½¸¹ç¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹ EGA ¤ª¤è¤Ó VGA ¥Ó¥Ç¥ª¥¢¥À¥×¥¿¤Ï¡¢¥À¥¦¥ó¥í¡¼¥É²Äǽ¤Ê¥½¥Õ¥È¥¦¥§¥¢¥Õ¥©¥ó¥È¤ò °·¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤É¤Î IBM ¸ß´¹ PC ¥Ó¥Ç¥ª¥Ü¡¼¥É¤Î ‘¥Í¥¤¥Æ¥£¥Ö¤Êʸ»ú½¸¹ç’ ¤â¡¢DEC ¿¹ñÀÒʸ»ú½¸¹ç¤ä ISO Latin-1 (ISO 8859-1) ¤Î´°Á´¤Êɽ¸½¤ÏÉÔ²Äǽ¤Ê¤Î¤Ç¡¢¤³¤ì¤Ï U**X ´Ä¶¤Ë¤È¤Ã¤ÆÍÍѤǤ¹¡£
¤³¤ì¤é¤Ï¥À¥¦¥ó¥í¡¼¥É¥Õ¥©¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤ò°·¤¤¤Þ¤¹¡£ struct vgafontattr ¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¿ô¤È¤·¤Æ¤È¤ê¤Þ¤¹: struct vgafontattr { int character_set; /* VGA ʸ»ú½¸¹ç */ int font_loaded; /* ¥Õ¥©¥ó¥È¤¬¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¤«¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¤Î¥Þ¡¼¥¯ */ int screen_size; /* ¥¹¥¯¥ê¡¼¥óÅö¤¿¤ê¤Î¹Ô¿ô */ int character_scanlines; /* ʸ»úÅö¤¿¤ê¤Î¥¹¥¥ã¥ó¥é¥¤¥ó¿ô - 1 */ int screen_scanlines; /* ¥¹¥¯¥ê¡¼¥óÅö¤¿¤ê¤Î¥¹¥¥ã¥ó¥é¥¤¥ó¿ô - 1 ¥Ð¥¤¥È */ }; ¤½¤ì¤¾¤ì¤Î¥Õ¥©¥ó¥È¤Î¤½¤ì¤¾¤ì¤Îʸ»ú¤Ï¡¢¼¡¤Î´Ø¿ô¤Ë¤è¤ê¥À¥¦¥ó¥í¡¼¥É¤µ¤ì¤Þ¤¹¡£
struct vgaloadchar ¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¿ô¤È¤·¤Æ¤È¤ê¤Þ¤¹: struct vgaloadchar { int character_set; /* ¥í¡¼¥É¤¹¤ë VGA ʸ»ú½¸¹ç */ int character; /* ¥í¡¼¥É¤¹¤ëʸ»ú */ int character_scanlines; /* ʸ»ú¤Î¥¹¥¥ã¥ó¥é¥¤¥ó¿ô */ u_char char_table[32]; /* VGA ʸ»ú¤Î·Á¤Î¥Æ¡¼¥Ö¥ë */ }; EGA ¤¢¤ë¤¤¤Ï VGA ¤Ë¤ª¤¤¤Æ¡¢ character_set ¥Õ¥£¡¼¥ë¥É¤Ï CH_SET0, CH_SET1, CH_SET2, CH_SET3 ¤È¤¤¤¦Ãͤò ¤È¤ê¤Þ¤¹¡£VGA ¤Ç¤Ï¡¢ºÇÂç 8 ¤Ä¤Î¥Õ¥©¥ó¥È¤ò¥í¡¼¥É¤·¤Æ»ý¤Ä¤³¤È¤¬ ¤Ç¤¤Þ¤¹¤Î¤Ç¡¢CH_SET4, CH_SET5, CH_SET6, CH_SET7 ¤È¤¤¤¦Ãͤ⠤Ȥ뤳¤È¤¬¤Ç¤¤Þ¤¹¡£ ¥Õ¥©¥ó¥È¥µ¥¤¥º¤È¡¢É½¼¨²Äǽ¤Ê¥¹¥¯¥ê¡¼¥ó¤Î (¹Ôñ°Ì¤Î) ¹â¤µ¤Î´Ø·¸¤Ï¡¢»È¤ï¤ì¤ë¥Ó¥Ç¥ª¥«¡¼¥É¤Ë°Í¸¤¹¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤: ¥¹¥¯¥ê¡¼¥ó¤ÎÂ礤µ (¹Ô¤Î¿ô) EGA VGA ¥Õ¥©¥ó¥È¥µ¥¤¥º 8 x 8 43 50 8 x 10 35 40 8 x 14 25 28 8 x 16 ÍøÍÑÉÔ²Ä 25 °ìÈÌŪ¤Ê¥¹¥¯¥ê¡¼¥óÁàºî¥³¥Þ¥ó¥É
°Ê²¼¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò°ú¿ô¤È¤·¤Æ¤È¤ê¤Þ¤¹: struct cursorshape { int screen_no; /* ÀßÄꤹ¤ë¥¹¥¯¥ê¡¼¥óÈֹ档 */ /* -1 ¤Ï¸½ºß¤Î¥¢¥¯¥Æ¥£¥Ö¤Ê¥¹¥¯¥ê¡¼¥ó¡£ */ int start; /* ¥È¥Ã¥×¥¹¥¥ã¥ó¥é¥¤¥ó¡£0 ¤«¤é ʸ»ú¤Î¹â¤µ -1 ¤ÎÈÏ°Ï */ int end; /* ¥¨¥ó¥É¥¹¥¥ã¥ó¥é¥¤¥ó¡£0 ¤«¤é ʸ»ú¤Î¹â¤µ -1 ¤ÎÈÏ°Ï */ };
¤³¤ì¤é¤Ï¡¢¤¤¤¯¤Ä¤«¤Î°ìÈÌŪ¤Ê¥É¥é¥¤¥ÐÆâÉôÊÑ¿ô¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Þ¤¹¡£ ¤½¤ì¤é¤ÎÆâÉôÊÑ¿ô¤Ï¡¢¥¹¥¯¥ê¡¼¥ó¤Î¿¶Éñ¤¤¤òÊѹ¹¤·¤¿¤ê¡¢ ñ¤Ë¥É¥é¥¤¥Ð¤ò¤¢¤ë°ì¤Ä¤Î¥¹¥¯¥ê¡¼¥ó¤Ø¶¯À©Åª¤ËÀÚ¤êÂؤ¨¤¿¤ê¤¹¤ë¤â¤Î¤Ç¤¹¡£ °Ê²¼¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò°ú¿ô¤È¤·¤Æ¤È¤ê¤Þ¤¹: struct screeninfo { int adaptor_type; /* ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ó¥Ç¥ª¥¢¥À¥×¥¿¤Î */ /* ¥¿¥¤¥×¡£ */ /* Æɤ߼è¤êÀìÍÑ¡£½ñ¤¹þ¤ß»þ¤Ï (̤¤À!) ̵ */ /* »ë¤µ¤ì¤Þ¤¹¡£ */ int totalfonts; /* ¥À¥¦¥ó¥í¡¼¥É²Äǽ¤Ê¥Õ¥©¥ó¥È¤Î¿ô¡£ */ /* Æɤ߼è¤êÀìÍÑ¡£½ñ¤¹þ¤ß»þ¤Ï̵»ë¤µ¤ì¤Þ */ /* ¤¹¡£ */ int totalscreens; /* ²¾ÁÛ¥¹¥¯¥ê¡¼¥ó¤Î¿ô¡£ */ /* Æɤ߼è¤êÀìÍÑ¡£½ñ¤¹þ¤ß»þ¤Ï̵»ë¤µ¤ì¤Þ */ /* ¤¹¡£ */ int screen_no; /* ¹½Â¤ÂΤξðÊó¤ò¼èÆÀ¤·¤¿¥¹¥¯¥ê¡¼¥óÈֹ档 */ /* ½ñ¤¹þ¤ß»þ¤Ë -1 ¤Ê¤é¤Ð pure_vt_mode */ /* ¤Þ¤¿¤Ï/¤«¤Ä screen_size ¤ò¸½ºß¤Î¥¹¥¯ */ /* ¥ê¡¼¥ó¤ËŬÍѤ·¡¢¤½¤ì°Ê³°¤Ê¤é¤ÐÍ¿¤¨¤é¤ì */ /* ¤¿ screen_no ¤Î¥¹¥¯¥ê¡¼¥ó¤ËŬÍѤ·¤Þ¤¹¡£*/ int current_screen; /* ¸½ºßɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥¹¥¯¥ê¡¼¥óÈֹ档 */ /* ½ñ¤¹þ¤ß»þ¤Ë -1 ¤Ê¤é¤Ð¸½ºßɽ¼¨¤µ¤ì¤Æ¤¤ */ /* ¤ë¥¹¥¯¥ê¡¼¥ó¤ò¥«¥ì¥ó¥È¥¹¥¯¥ê¡¼¥ó¤È¤·¡¢ */ /* ¤½¤ì°Ê³°¤Ê¤é¸½ºßɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥¹¥¯¥ê¡¼ */ /* ¥ó¤ò¥Ñ¥é¥á¡¼¥¿¤Î¥¹¥¯¥ê¡¼¥ó¤ËÀÚ¤êÂؤ¨¤Þ */ /* ¤¹¡£ */ int pure_vt_mode; /* ½ã¿è¤Ê VT ¥â¡¼¥É¤« HP/VT ¥â¡¼¥É¤«¤òɽ */ /* ¤¹¥Õ¥é¥°¡£ */ /* ½ñ¤¹þ¤ß»þ¤Ë -1 ¤Ê¤é¤ÐÊѹ¹¤·¤Þ¤»¤ó¡£ */ int screen_size; /* ¥¹¥¯¥ê¡¼¥ó¥µ¥¤¥º¡£ */ /* ½ñ¤¹þ¤ß»þ¤Ë -1 ¤Ê¤é¤ÐÊѹ¹¤·¤Þ¤»¤ó¡£ */ int force_24lines; /* ½ã¿è¤Ê VT220 ¤Î¥¹¥¯¥ê¡¼¥ó¥µ¥¤¥º¤òÆÀ¤ë */ /* ¤¿¤á¤Ë 25 ¥é¥¤¥ó VT ¥â¡¼¥É¤«¡¢ */ /* 28 ¥é¥¤¥ó HP ¥â¡¼¥É¤Î¾ì¹ç¤Ë 24 ¥é¥¤¥ó */ /* ¤ò¶¯À©¤·¤Þ¤¹¡£ */ /* ½ñ¤¹þ¤ß»þ¤Ë -1 ¤Ê¤é¤ÐÊѹ¹¤Þ¤»¤ó¡£ */ int vga_family; /* adaptor_type ¤¬ VGA ¤Ê¤é¤Ð¡¢Æɤ߼è¤ê¸å */ /* ¥Á¥Ã¥×¥»¥Ã¥È¥Õ¥¡¥ß¥ê¤òÈ¿±Ç¤·¤Æ¤¤¤Þ¤¹¡£ */ /* ½ñ¤¹þ¤ß»þ¤Ë¤Ï²¿¤âµ¯¤³¤ê¤Þ¤»¤ó... */ int vga_type; /* adaptor_type ¤¬ VGA ¤Ê¤é¤Ð¡¢Æɤ߼è¤ê¸å */ /* ¥Á¥Ã¥×¥»¥Ã¥È¤òÈ¿±Ç¤·¤Æ¤¤¤Þ¤¹¡£ */ /* ½ñ¤¹þ¤ß»þ¤Ë¤Ï²¿¤âµ¯¤³¤ê¤Þ¤»¤ó... */ int vga_132; /* ¥É¥é¥¤¥Ð¤¬ 132 ¥«¥é¥à¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤ */ /* ¤ë¾ì¹ç¡¢1 ¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£ */ /* ¸½ºß¡¢½ñ¤¹þ¤ß»þ¤Ë¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ */ }; pure_vt_mode ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥¡¼¥é¥Ù¥ë¤È¥¹¥Æ¡¼¥¿¥¹¥é¥¤¥ó¤òȼ¤¦ VTxxx ¤È HP Mode ¤Îº®À®¤ËÂФ·¤Æ¤Ï M_HPVT ¤È¤¤¤¦Ãͤò¼è¤ê¡¢ ¥é¥Ù¥ë¤òȼ¤ï¤Ê¤¤ VTxxx ¥·¡¼¥±¥ó¥¹¤Î¤ß¤¬Ç§¼±¤µ¤ì¤ë¤â¤Î¤ËÂФ·¤Æ¤Ï M_PUREVT ¤ò¼è¤ê¤Þ¤¹¡£
¤³¤ì¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢80 ¤¢¤ë¤¤¤Ï 132 ¤Î¤É¤Á¤é¤«¤ÎÃͤòÊÝ»ý¤¹¤ë int ·¿ÊÑ¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¹¡£ ¥«¥é¥à¿ô 132 ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤Î¤Ï VGA ¥¢¥À¥×¥¿»ÈÍÑ»þ¤Î¤ß¤Ç¤¹¡£ ¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤¥«¥é¥à¿ô¤Ç¤Ï ioctl ¤Ï¼ºÇÔ¤·¡¢ errno (intro(2) ¤ò»²¾È) ¤Ë EINVAL ¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£ VGA ¥«¥é¡¼¥Ñ¥ì¥Ã¥È¥¤¥ó¥¿¥Õ¥§¡¼¥¹ VGA ¥¢¥À¥×¥¿¤Ë¤ª¤¤¤Æ¤Î¤ß¡¢½ÐÎϤ˥«¥é¡¼¥Ñ¥ì¥Ã¥È¥ì¥¸¥¹¥¿¤¬Â¸ºß¤·¤Þ¤¹¡£ 256 ¼ïÎà¤ÎÆâÉô¥«¥é¡¼¥³¡¼¥É¤Î¤½¤ì¤¾¤ì¤ËÂФ¹¤ë ÀÖ¡¢ÎС¢ÀĤνÐÎÏÅÅ°µ¤ò ÊÝ»ý¤·¡¢0 ¤«¤é 63 ¤Þ¤Ç¤ÎÃͤò¼è¤ê¤Þ¤¹ (63 ¤Ï¥Ù¡¼¥¹¥«¥é¡¼¤Ë¤Ä¤¤¤Æ ¤â¤Ã¤È¤âÌÀ¤¯¤Ê¤ëÃͤǤ¹)¡£ ¤¹¤Ê¤ï¤Á¡¢¤³¤ì¤é¤Î¥¢¥À¥×¥¿¤Ï¤½¤ì¤¾¤ì¤Î¥«¥é¡¼¥³¡¼¥É¤ò¡¢ 262144 ¿§¤ÎÃ椫¤é¼è¤ê½Ð¤·¤¿ “¥Ñ¥ì¥Ã¥È” ¤Î¿§¤Ø¥Þ¥Ã¥×¤·¤Þ¤¹¡£
¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ï¡¢¥Ñ¥ì¥Ã¥È¥ì¥¸¥¹¥¿¤ËÂФ¹¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò ³ÎΩ¤·¤Þ¤¹¡£°ú¿ô¤Ï°Ê²¼¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¹: struct vgapel { unsigned idx; /* ¥Ñ¥ì¥Ã¥È¤Ø¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¡£0 ¤«¤é 255 ¤¬Í¸ú¡£ */ unsigned r, g, b; /* RGB ¤ÎÃÍ¡£VGA_PMASK (63) ¤Ç¥Þ¥¹¥¯¤µ¤ì¤ë¡£ */ }; ¥É¥é¥¤¥Ð¤ÎȽÊÌ
struct pcvtid { #define PCVTIDNAMELN 16 /* ¥É¥é¥¤¥Ð ID - ʸ»úÎó¤ÎŤµ */ char name[PCVTIDNAMELN]; /* ¥É¥é¥¤¥Ð¤Î̾Á° == PCVTIDSTR */ #define PCVTIDNAME "pcvt" /* ¥É¥é¥¤¥Ð ID - ʸ»úÎó */ int rmajor; /* ¥á¥¸¥ã¡¼¥ê¥Ó¥¸¥ç¥óÈÖ¹æ */ #define PCVTIDMAJOR 3 int rminor; /* ¥Þ¥¤¥Ê¡¼¥ê¥Ó¥¸¥ç¥óÈÖ¹æ */ #define PCVTIDMINOR 00 };
struct pcvtinfo { u_int opsys; /* PCVT_xxx(x)BSD */ #define CONF_UNKNOWNOPSYS 0 #define CONF_386BSD 1 /* ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó !!! */ #define CONF_NETBSD 2 #define CONF_FREEBSD 3 u_int opsysrel; /* NetBSD/FreeBSD ¤ËÂФ¹¤ë¥ê¥ê¡¼¥¹ */ u_int nscreens; /* PCVT_NSCREENS */ u_int scanset; /* PCVT_SCANSET */ u_int updatefast; /* PCVT_UPDATEFAST */ u_int updateslow; /* PCVT_UPDATESLOW */ u_int sysbeepf; /* PCVT_SYSBEEPF */ u_int pcburst; /* PCVT_PCBURST */ u_int kbd_fifo_sz; /* PCVT_KBD_FIFO_SZ */ /* ÀßÄê¥Ö¡¼¥ëÃÍ */ u_long compile_opts; /* PCVT_xxxxxxxxxxxxxxx */ }; ¥¹¥¯¥ê¡¼¥ó¥»¡¼¥Ð
¤³¤ì¤ÏÀ°¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¿ô¤È¤·¤Æ¤È¤ê¤Þ¤¹¡£¥³¥Þ¥ó¥É¤Î̾Á°¤È¤Ï´Ø·¸¤Ê¤¯¡¢ config(8) ¤Î “PCVT_SCREENSAVER” ¥ª¥×¥·¥ç¥ó¤Ë¤è¤êÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ ¤É¤Î¤è¤¦¤Ê ¼ïÎà¤Î¥¢¥À¥×¥¿¤Ç¤âÍøÍѤǤ¤Þ¤¹¡£ USL ¥¹¥¿¥¤¥ë VT ¤Î¤¿¤á¤Î¸ß´¹¥³¥Þ¥ó¥É ¤³¤Î ¥Õ¥¡¥¤¥ë
Îò»Ëpcvt
¥É¥é¥¤¥Ð¤Ï
386BSD ¥ê¥ê¡¼¥¹ 0.1
¤Î¤¿¤á¤Ë³«È¯¤µ¤ì¡¢Ä󶡤µ¤ì¤Æ¤¤Þ¤·¤¿¡£
¥ê¥ê¡¼¥¹ 3.00
¤«¤é¡¢NetBSD 0.9
¤ËÂФ¹¤ëÌÀ¼¨Åª¤Ê¥µ¥Ý¡¼¥È¤¬
Ä󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥ê¥ê¡¼¥¹
3.00 °Ê¹ß¤Ï¡¢pcvt
¤Ë¤ª¤¤¤Æ 386BSD 0.1
¸þ¤±¤Î
¤µ¤é¤Ê¤ë³«È¯¤Ï¤Ê¤¤¤ÈͽÁÛ¤µ¤ì¡¢¼ÂºÝ¡¢¥ê¥ê¡¼¥¹
3.20 ¤Ç¤Ï 386BSD
¤Î¥µ¥Ý¡¼¥È¤ÏÂǤÁÀÚ¤é¤ì¤Þ¤·¤¿¡£
ºî¼ÔBrian Dunford-Shore ⟨brian@morpheus.wustl.edu⟩ ¤ª¤è¤ÓJoerg Wunsch ⟨joerg_wunsch@uriah.sax.de⟩ ¤é¤Î¶¨ÎϤβ¼¡¢ Hellmuth Michaelis ⟨hm@hcshh.hcs.de⟩ ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤Þ¤·¤¿¡£ ¤³¤Î¥É¥é¥¤¥Ð¤Ï¿ô¿Í¤Ë¤è¤Ã¤Æ¤Ê¤µ¤ì¤¿À®²Ì¤ò¸µ¤Ë¤·¤Æ¤¤¤Þ¤¹¡£ Æäˡ¢ William Jolitz' ¤È Don Ahn's ⟨ljolitz@cardio.ucsf.edu⟩ ¤Ë¤è¤ëÎò»ËŪ¤Ê pccons(4) ¤Î¼ÂÁõ¡¢¤ª¤è¤Ó Holger Veit ⟨veit@first.gmd.de⟩ ¤Ë¤è¤ë¥¡¼¥Ü¡¼¥É¥Þ¥Ã¥×¤Î¥³¡¼¥É¤Ë¤è¤Ã¤Æ¤¤¤Þ¤¹¡£ ´ØÏ¢¹àÌÜintro(2), ioctl(2), atkbd(4), keyboard(4), screen(4), config(8), ispcvt(8)¥Ð¥°¤â¤Á¤í¤ó¸ºß¤·¤Þ¤¹¡£ºÇ¿·¤Î¥Ð¥°¥ê¥¹¥È¤Ï¡¢¥É¥¥å¥á¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î BugList ¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¸¡¾ÚºÑ¤ß¤Î¥Ó¥Ç¥ª¥Ü¡¼¥ÉÀ½Â¤¼Ô ¥Á¥Ã¥×¥»¥Ã¥È ¥â¥Ë¥¿ 2theMax (?) ET4000 VGA Color Video7 Inc. Video 7 VGA Color Diamond Stealth VRAM S3 NEC 3FGx Trident TVGA 8800CS NEC 3D Data General C&T P82C604 VGA Color NoName Hercules W86855AF Mono Kyocera (Mainboard) WD90C11 Sony Color unknown ET3000 NEC 3D ¸¡¾ÚºÑ¤ß¤Î¥¡¼¥Ü¡¼¥ÉÀ½Â¤¼Ô ¥¿¥¤¥× ¥ì¥¤¥¢¥¦¥È Cherry MF II US Cherry/Tandon MF II German Hewlett-Packard MF II US Hewlett-Packard MF II German Tatung AT German ¸Å¤¤ PC ¥¡¼¥Ü¡¼¥É¤ÏÁ´¤¯¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤ª¤ê¤Þ¤»¤ó (¤½¤ì¤é¤Ï 83 ¸Ä¤Î¥¡¼¤¬¤¢¤ê¤Þ¤¹) ¡£ F9 ¤«¤é F12 ¤Þ¤Ç¤Ïµ¡Ç½¤ÎÀ©¸æ¤Î¤¿¤á¤Ë¥¨¥ß¥å¥ì¡¼¥¿¤¬É¬ÍפȤ·¤Æ¤¤¤ë¤Î¤Ç¡¢ AT ¥¡¼¥Ü¡¼¥É (84 ¸Ä¤Î¥¡¼¤È¤½¤ì¤È¤ÏÊ̤οô»ú¥¡¼¥Ñ¥Ã¥É¤¬¤¢¤ê¡¢F11 ¤È F12 ¤Ï¤¢¤ê¤Þ¤»¤ó) ¤ËÂФ¹¤ë¥µ¥Ý¡¼¥È¤ÏÀ©¸Â¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤Þ¤¿¸½ºß¤Î¥¡¼¥Ü¡¼¥É¥É¥é¥¤¥Ð¤ÎÀ߷פΤ椨¤Ë ALtGr ¥¡¼¤ò»ý¤¿¤Ê¤¤³Æ¹ñ¤Î¥¡¼¥Ü¡¼¥É¤ËÂФ¹¤ë (´°Á´¤Ê) ¥µ¥Ý¡¼¥È¤Ï¤¢¤ê¤Þ¤»¤ó¡£ MF ¥¡¼¥Ü¡¼¥É¤Ï¡¢101 ¥¡¼¤ª¤è¤Ó 102 ¥¡¼¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë ¤Ä¤¤¤Æ´°Á´¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤ª¤ê¤Þ¤¹¡£
Visit the GSP FreeBSD Man Page Interface. |