PC-98¤Î¥×¥í¥°¥é¥àºîÀ®¤Ë´Ø¤¹¤ë¥¨¥È¥»¥È¥é - ¥¨¥ß¥å¤ò»È¤Ã¤ÆIPL¥×¥í¥°¥é¥ß¥ó¥°¤â¤É¤­¡¡­£

¥¨¥ß¥å¤ò»È¤Ã¤ÆIPL¥×¥í¥°¥é¥ß¥ó¥°¤â¤É¤­¡¡­£

º£²ó¤Ï¥»¥¯¥¿£²°Ê¹ß¤òÆɤ߼è¤Ã¤Æ¤½¤³¤Î¥¢¥É¥ì¥¹¤ËÈô¤Ö¥Æ¥¹¥È¤Ç¤¹¡£
¼«Í³¤Ë¥»¥¯¥¿¤òÆɤ߼è¤Ã¤Æ»ØÄê¤Î¥á¥â¥ê¤Ë½ñ¤­¹þ¤ó¤À¤ê¤½¤³¤ËÈô¤ó¤À¤ê¤Ç¤­¤ì¤Ð¡¢DOS¤È¤«¤òµ¤¤Ë¤»¤º¼«Í³¤Ë¥á¥â¥ê¤ò»È¤Ã¤Æ¥×¥í¥°¥é¥à¤òÆ°¤«¤¹¤³¤È¤¬²Äǽ¤È¤Ê¤ë¤Ï¤º¤Ç¤¹¡¢ÍýÏÀ¾å¡£

¤È¤¤¤¦¤³¤È¤Çº£²ó¤Î¥³¡¼¥É¤Ï²¼¤ÎÄ̤ꡣ

.model tiny
.386

CODE SEGMENT
assume DS:CODE,CS:CODE,ES:CODE,SS:CODE

mov ax,cs ; ¥ì¥¸¥¹¥¿½é´ü²½
mov ds,ax
mov es,ax
mov fs,ax
mov gs,ax
mov ax,60
mov ss,ax
mov eax,0FFh
mov sp,ax

;¥»¥¯¥¿4¤òÆɤ߹þ¤ß(SEG:70,ofs:0¤«¤é)
push bp
mov ax,70h
mov es,ax
mov bp,0
mov ah,01110110b
mov al,90h
mov ch,03h
mov cl,0
mov dh,0
mov dl,04h
mov bx,400h

int 1bh
pop bp

mov si,offset AD
jmp dword ptr [si] ;SEG:70h¤«¤é¥×¥í¥°¥é¥à¤òÆɤ߹þ¤Þ¤»¤ë
AD word 0
SE word 70h

ORG 1024*3
MAIN:
mov ax,0A000h
mov es,ax
mov edx,23
mov edi,2000h
add edi,80
mov eax,0F1h

@@: mov ecx,30
push edi
rep STOSW
pop edi
add edi,160
dec edx
jnz @b

mov edx,23
mov edi,80
mov eax,087h

@@: mov ecx,30
push edi
rep STOSW
pop edi
add edi,160
dec edx
jnz @b

@@:
jmp @b

CODE ENDS
END



¥á¥â¥ê¤Î6FFh°ÊÁ°¤ò¥¹¥¿¥Ã¥¯Îΰè¤Ë¡¢700h°Ê¹ß¤ò¥×¥í¥°¥é¥à¤È¤«¤Î¼ÂÂΤÎÎΰè¤È¤·¤Æ»È¤¦ÀßÄê(¤È¤¤¤¦¤«ÌÑÁÛ¡©)¤Ç¤¹¡£
IPL¼«ÂΤÏDISK BIOS¤Ç700h¤Ë¥»¥¯¥¿4¤òÆɤ߹þ¤ó¤Çjmp¤¹¤ë¤À¤±¤Î¥·¥ó¥×¥ë¤Ê¥³¡¼¥É¤Ç¤¹¡£
DISK BIOS¤ÏMS-DOS¤¸¤ã¤Ê¤¤¤Î¤Çµ¯Æ°»þ¤Ë¥á¥â¥ê¾å¤ËÁȤ߹þ¤Þ¤ì¡¢·ë²Ì¤³¤¦¤¤¤¦¼êÈ´¤­¤¬²Äǽ¤Ç¤¹¡£
¤Ê¤ª¡¢¼Âµ¡BIOS¤Ê¤·¤Ç¤â¸ß´¹¤Î¤â¤Î¤¬Æ±Åù¤ÎƯ¤­¤ò¤¹¤ë¤Î¤ÇÆ°¤­¤Þ¤¹¡£
¥»¥°¥á¥ó¥È¤Î½é´ü²½¤Ï¥Æ¥­¥È¡¼¤Ç¤¹¤Î¤Ç¡¢Å¬Àڤʤâ¤Î¤Ë½ñ¤­´¹¤¨¤Æ¤¯¤À¤µ¤¤¡£
jmp¤Î¸å¤ÏÁ°²ó¤Î¤â¤Î¤ò386°Ê¹ßÍѤäݤ¯¤·¤Æ¤½¤Î¤Þ¤ÞήÍѤ·¤Æ¤¤¤ë¤Î¤Ç¥»¥°¥á¥ó¥È¤ÎºÆÀßÄê¤Ï¤·¤Æ¤Þ¤»¤ó¤¬¡¢ËÜÍè¤ÏɬÍפÀ¤È»×¤¤¤Þ¤¹¡£

¤³¤ó¤Ê¤Î¤ò¤â¤Ã¤ÈËܳÊŪ¤Ë¤¹¤ì¤Ð¡¢¤­¤Ã¤È¤½¤ì¤Ã¤Ý¤¤IPL¤Ë¤Ê¤ë¡¢¤ó¤¸¤ã¤Ê¤¤¤«¤Ê¤È¡£
¥ê¥¢¥ë¥â¡¼¥É¤Ë¤·¤Æ¤«¤éÆɤ߹þ¤ó¤Çjmp¡¢¤È¤«¤Ç¡Ä¤­¤Ã¤È¡¢¤ª¤½¤é¤¯¡¢Â¿Ê¬¡£