short cut to ... [main] [news] [forum] [download] [Hall of Fame] [game] [cg] [link]

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);  /* ¥¢¥É¥ì¥¹¤ÏÁàºî¸å¤Ë¸µ¤ËÌ᤹ */
  }
}



Ìá¤ë