TBIOSLD.SYS¤ÎÄ󶡤¹¤ëµ¡Ç½
TBIOS¤ò¥×¥í¥Æ¥¯¥È¥á¥â¥ê¤Ë¥í¡¼¥É¤¹¤ë¥Ç¥Ð¥¤¥¹¤Ç¤¹¡£
int 0x8e¤òÍѤ¤¤ÆϢ³¤·¤¿ÊªÍý¥¢¥É¥ì¥¹¾å¤Î4KB¶³¦¾å¤ËÆɤ߹þ¤ß¤Þ¤¹¡£
¥í¡¼¥É¥¢¥É¥ì¥¹¤ª¤è¤Ó¥µ¥¤¥º¤òÄÌÃΤ¹¤ë¤Î¤Ë²¿¸Î¤«I/O¤ò»È¤¤¤Þ¤¹¡£
CMOSÎΰè¤Ê¤Î¤Ç1¥Ð¥¤¥È¤ª¤¤Ë²¼°Ì¥Ð¥¤¥È¤«¤é³ÊǼ¤·¤Þ¤¹¡£
port(0x3b90) TBIOSʪÍý¥¢¥É¥ì¥¹
port(0x3b98) TBIOS¥µ¥¤¥º
port(0x3ad0) TBIOS¥ï¡¼¥¯ÊªÍý¥¢¥É¥ì¥¹(512byte)
TBIOSTOP.BIN¤Î¥Ø¥Ã¥À¤ÈÈæ³Ó¤·¤Æ¡¢Àµ¾ï¤Ë¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¤«³Î¤«¤á¤Þ¤¹¡£
TBIOSLD.SYS¤Ï²¿¸Î¤«°ìÉô¤¬°Å¹æ²½¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¾Ü¤·¤¯¤ÏDTBIOSLD.C¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
TBIOSTOP.BIN¤Ïɬ¤ºTBIOS¤ÎÀèƬ¤ËÇÛÃÖ¤µ¤ì¤ëñ½ã¤Ê¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤Ç¤¹¡£
¤½¤Î¾¤ÎBIN¥Õ¥¡¥¤¥ë¤ÏREX·Á¼°¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ç°Ê²¼¤Î¥Ø¥Ã¥À¤ò»ý¤Á¤Þ¤¹¡£
TBIOS MODULE¥Ø¥Ã¥À¹½Â¤
00 8bytes ¥Ð¡¼¥¸¥ç¥ó
08 8bytes ÆüÉÕ
10 8bytes Townes
18 8bytes ¥«¥Æ¥´¥ê
20 dword ̤»ÈÍÑ?(0)
24 dword ¸ø³«¥ï¡¼¥¯¥¢¥É¥ì¥¹ 0¤Ê¤é¸ºß¤·¤Ê¤¤
28 word CODESEG(0x110)
2a word DATASEG(0x118)
2c word ¥Ø¥Ã¥À¥Ð¡¼¥¸¥ç¥ó?(0x10)
2e word ¥¨¥ó¥È¥ê¡¼¤Î¿ô
30 dword ¥¨¥ó¥È¥ê¡¼¥¢¥É¥ì¥¹³ÊǼ¥ª¥Õ¥»¥Ã¥È
34 dword ¥¨¥ó¥È¥ê¡¼¥¢¥É¥ì¥¹ ¸µ¤ÎÃͤ¬³ÊǼ¤µ¤ì¤ë¤¿¤á¥Õ¥Ã¥¯²Äǽ
¥í¡¼¥É¤¹¤ë½ç½ø¤È¸ø³«¥ï¡¼¥¯¥¢¥É¥ì¥¹³ÊǼ¥ª¥Õ¥»¥Ã¥È
BIN
EGB 0x200
EGI 0x208
XGI 0x210
SND 0x218
INT 0x220
MOS 0x228
MIO 0x230
TMM 0x238
SPR 0x240
FNT 0x248
IOM 0x250
EXT 0x258
NUL 0x260
\t_file\read4.doc¤è¤ê
/D ¾ïÃó¾õÂÖɽ¼¨¤ò¥«¥Ã¥È¤¹¤ë¥ª¥×¥·¥ç¥ó
/E ¥é¥¤¥ó£É£ÎÆþÎϲ»Î̤òºÇÂç¤Ë¤¹¤ë¥ª¥×¥·¥ç¥ó
/R ¥ê¥¢¥ë¶õ´Ö¤Ë¾ïÃ󤵤»¤ë¥ª¥×¥·¥ç¥ó
/S £±£µ£Ë£È£úɽ¼¨¤ò£³£±£Ë£È£úɽ¼¨¤ËÊÑ´¹¤¹¤ë¥ª¥×¥·¥ç¥ó
/V Ä´ººÃæ
SCAN¥³¥ó¥Ð¡¼¥¿¡¼
port 0x470 R/? byte bit7:0(SCAN¥³¥ó¥Ð¡¼¥¿¡¼»ÈÍѲÄǽ)
port 0x472 R/W word SCAN¥³¥ó¥Ð¡¼¥¿¡¼¥¢¥É¥ì¥¹¥Ý¡¼¥È
port 0x474 R/W dword SCAN¥³¥ó¥Ð¡¼¥¿¡¼¥Ç¡¼¥¿¡¼¥Ý¡¼¥È
address 0x0003 bit16:1(15->31»ÈÍѲÄǽ) bit16:0(15->31͸ú)
void v_option(void) {
if (!(_inb(0x470) & 0x80)) {
int adr, dat;
adr = _inw(0x472);
_outw(0x472, 3);
dat = _ind(0x474);
if (dat & 0x10000) _outd(0x474, dat | 1);
_outw(0x472, adr); /* ¥¢¥É¥ì¥¹¤ÏÁàºî¸å¤Ë¸µ¤ËÌ᤹ */
}
}
Ìá¤ë