Windows¾å¤ÇJWASM(¥Õ¥ê¡¼¤ÎMASM6¸ß´¹¥¢¥»¥ó¥Ö¥é)¤È98¥¨¥ß¥å¤ò»È¤Ã¤Æ¤Î¥×¥í¥°¥é¥àºîÀ®¤Ë´Ø¤¹¤ë¥¨¥È¥»¥È¥é¡£¤Þ¤¿¡¢PC-98¥×¥í¥°¥é¥ß¥ó¥°´Ø·¸¤Î½ñÀÒ¾Ò²ð¤È¤«¼«ºî¥½¥Õ¥È¤Î¿ÊĽ¤È¤«¤â¡£

³µÍ×

Ìó1/60Éôֳ֤ÇȯÀ¸¤¹¤ëVSYNC³ä¤ê¹þ¤ß¤Ï¡¢´Ê°×¥¿¥¤¥Þ¡¼¤ä²èÌÌɽ¼¨¤Ê¤É¤Ç»È¤ï¤ì¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£
¾ïÃ󥽥եȤÎÎà¤Ç¤ÏÉѽФǤ¹¤¬¡¢º£²ó¤Ï¥½¥Õ¥ÈÆâ¤Î³ä¤ê¹þ¤ß½èÍý¥ë¡¼¥Á¥ó¤Ç¤Î¥Þ¥¦¥¹É½¼¨¤ò¤ä¤Ã¤Æ¤ß¤Þ¤¹¡£
¤¢¤¨¤ÆÀÚ¤êʬ¤±¤Ê¤¤Êý¤¬¡¢ËÜÂΤ«¤éľÀÜÀ©¸æ¤·¤ä¤¹¤¯¡¢¤Þ¤¿ÀÚ¤ê¼è¤Ã¤Æ¾ïÃ󤵤»¤ë¥ë¡¼¥Á¥ó¤âÉÔÍפʤΤdzڤ«¤Ê¤È¡£

ºÇÄã¸ÂɬÍפÊÍ×ÁǤÎή¤ì

¡¦½é´ü²½
cli
¸Å¤¤³ä¤ê¹þ¤ß¥¢¥É¥ì¥¹¤òÊݸ(cs¤Ë¡£offset segmest¤Î½ç¤Ç)
¿·¤·¤¤³ä¤ê¹þ¤ß¥¢¥É¥ì¥¹¤òÀßÄê(ƱÍÍ)
stl

¡¦³ä¤ê¹þ¤ß¥Þ¥¹¥¯¥ì¥¸¥¹¥¿¤òVSYNCµö²Ä¤Ë
in al,02h
(ɬÍפʤéal¤òÊݸ)
and al,0fbh
out 02h,al

¡¦³ä¤ê¹þ¤ß¤òȯÀ¸¤µ¤»¤ë
out 64h,al
¤ÇǤ°Õ¤Îal¤ò½ÐÎϤ¹¤ë¤È¡¢¼¡¤Ë1²óȯÀ¸¡£
ɬÍפʤé³ä¤ê¹þ¤ß¤ÎºÇ¸å¤ÇȯÀ¸¤òͽÌ󤹤ë¤ÈÎɤ¤¤«¡£


¡¦³ä¤ê¹þ¤ß½èÍý¥ë¡¼¥Á¥ó
pushf
»È¤¦¥ì¥¸¥¹¥¿¤òpush¤ÇÂàÈò¡¢Ëô¤Ïpusha
½èÍý
pop¤ÇÌ᤹
jmp cs:dword ptr [¥¢¥É¥ì¥¹]

¤³¤Î¹à¤Ï¥È¥éµ»¥³¥ó¥Ô¥å¡¼¥¿1990/5 MS-DOS¤È³ä¤ê¹þ¤ß ¤ò»²¹Í¤·¤Þ¤·¤¿¡£

¤½¤Î¾

cs¤ËÊÑ¿ôÎΰè¤ò³ÎÊݤ·¤Æ¤ä¤ì¤Ð¡¢³ä¤ê¹þ¤ß¤Îon-off¤Ê¤É¤Î¥â¡¼¥É»ØÄ꤬´Êñ¤Ë½ÐÍè¤ë¡¢¤È»×¤¦¡£

¥Þ¥¦¥¹¤òɽ¼¨¤·¤Æ¤ß¤¿Îã

¥Þ¥¯¥íÄêµÁ¤Ê¤É¤òÈ´¤¤¤Æ¤Þ¤¹¤Î¤Ç¡¢¤³¤Î¤Þ¤Þ¤À¤ÈÆ°¤­¤Þ¤»¤ó¡£Í×˾¤¬¤¢¤ì¤Ð´°Á´¤Ê¥½¡¼¥¹¤ò¾å¤²¤Þ¤¹¤¬¡¢EGC¤Î²èÁüɽ¼¨¥µ¥ó¥×¥ë¤ò¸«¤ì¤Ð¤¤¤¤¤Î¤ÇɬÍפʤ¤È¦¤Ç¤¹¡£

½é´ü²½¤ÈData Segment

.model small
.286;ÌÌÅݤʤΤÇshl reg,n¤ò»È¤¦¤Î¤È¡¢EGC¤ò»È¤¦¤Î¤Ç286°Ê¾å¤Ë»ØÄê¡£shl¤òcl¶´¤à¤«Ê¤٤ì¤Ð¥³¡¼¥É¾å¤Ï8086ÍѤǤâOK
INCLUDE <04G.h>;¥°¥é¥Õ¥£¥Ã¥¯´Ø·¸¤Î¥Þ¥¯¥í¤òÆþ¤ì¤¿¤ê¡¢Library¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ë»ÈÍÑ¡£ÆâÍƤϲèÁüɽ¼¨¤Î¥µ¥ó¥×¥ë¤Ë¶á¤¤¤Î¤Çά



.stack

.data
;¥Þ¥¦¥¹²èÁü(¥¯¥ê¥¢¤Ç0¤Ë¤¹¤ëÉôʬ32byte¤È¿§ÈÖ¹æ1¤Ë¤¹¤ëÉôʬ32byte¤Î¹½À®)
GRA db 7FH,0FFH,3FH,0FFH,1FH,0FFH,0FH,0FFH,07H,0FFH,03H,0FFH,01H,0FFH,00H,0FFH,
07H,0FFH,03H,0FFH,43H,0FFH,0E1H,0FFH,0E1H,0FFH,0F0H,0FFH,0F0H,0FFH,0F8H,0FFH,
00H,00H,00H,00H,40H,00H,60H,00H,70H,00H,78H,00H,7CH,00H,70H,00H,
70H,00H,18H,00H,18H,00H,0CH,00H,0CH,00H,06H,00H,06H,00H,00H,00H

SYNC_RSET EQU 64h;VSYNC¤Î¥ê¥»¥Ã¥È(ºÆÉÁ²è)

SYNC_OFS EQU 28h;³ä¤ê¹þ¤ß¤Îoffset
SYNC_SEG EQU 2Ah;³ä¤ê¹þ¤ß¤ÎSEGMENT

IO_MOTO db 0;IO¤Î¸µ¤Î¥Ç¡¼¥¿

PLpass db 'chara1.pal',0;Æɤ߹þ¤à¥Õ¥¡¥¤¥ë̾
PLDATA db 32 dup(0EEh);4bit¤º¤Ä¤Ç¥À¥ß¡¼¡Übrg

¥Þ¥¯¥í¤ÈPROC¤ÎÄêµÁ

.code
;VSYNC¤òÂԤĥޥ¯¥í¡£¾Ü¤·¤¯¤Ï¥¹¡¼¥Ñ¡¼¥Æ¥¯¥Ë¥Ã¥¯¤ò»²¾È
V_WAIT MACRO
LOCAL V_lp,V_NOT,V_GO
V_lp:jmp $+2
jmp $+2
in al,0A0h
test al,020h
jnz V_lp
;VSYNC¤¬¥ª¥Õ¤À¤Ã¤¿¤é³«»Ï¤Þ¤Ç°Ê²¼¤ÇÂÔ¤Ä
pushf
V_NOT: cli
in al,0A0h
test al,20h
jnz V_GO
popf
pushf
jmp V_NOT
V_GO:
popf
sti
ENDM

_MO_MES1 PROC C ,POS:word,Fl:word;¥Þ¥¦¥¹²èÁüɽ¼¨¤Î¥µ¥Ö¥ë¡¼¥Á¥ó
OUT dx,ax
mov di,POS
MOV cx,16;¤³¤³¤Ç½Ä
SMLP: pushcx
push di
mov cx,1
add cx,Fl
rep MOVSW
pop di
pop cx
add di,80
cmp Fl,0
je @f
sub si,2
@@: LOOP SMLP
ROL ax,1
RET
_MO_MES1 ENDP

;¥Þ¥¦¥¹²èÁü¤Îɽ¼¨ËÜÂΡ£¤Þ¤¨¤Î¥ä¥Ä¤È°ì½ï
_MO_MES PROC C ,D_Ofs:ptr byte,MX1:word,MY1:word
local Flag:word
mov Flag,0
OUT2 4A2H,0FFH
OUT2 4A4H,0CC0H;È´¤­¥¢¥ê
OUT2 4A8H,0FFFFH
OUT2 4AEH,7;¤Þ¤Ç¥Þ¥¦¥¹Æ©²á¤Î½é´ü²½

mov si,0
mov bx,MX1
mov ax,bx
and ax,15
cmp ax,9
jb @f
mov Flag,1
@@: SHL ax,4
mov dx,04ACH
OUT dx,ax;¥·¥Õ¥ÈÎ̤ò»ØÄê


SHR bx,4
shl bx,1
add si,bx
mov bx,MY1
SHL bx,4
add si,bx
SHL bx,2
add bx,si;bx=ÀèƬbyte

MOV SI,D_Ofs
MOV AX,0FFF0H
MOV DX,4A0H
INVOKE _MO_MES1,bx,Flag;¥Ñ¥ì¥Ã¥È0(¡á¹õ¤Ë)
OUT2 4A4H,0CFCH

MOV AX,0FFFEH
MOV DX,4A0H
INVOKE _MO_MES1,bx,Flag;¥Ñ¥ì¥Ã¥È1(¡áÇò¤Ë)
;¾¤Î¿§¤Ï»È¤ï¤Ê¤¤¤Î¤Ç¡¢¤³¤³¤Þ¤Ç¤¬¥Þ¥¦¥¹¤ÎÉÁ²è
RET
_MO_MES ENDP

_MO_MES2 PROC ;¤³¤Ã¤Á¤ÏOLDÍÑ¥µ¥Ö¥ë¡¼¥Á¥ó
;si,di¤Ï»ØÄêºÑ¤ß¤È¤¹¤ë
MOV cx,16;¤³¤³¤Ç½Ä
SMLP: push cx
push di
mov cx,2
rep MOVSW
pop di
pop cx
add di,80
LOOP SMLP
RET
_MO_MES2 ENDP

;1FÁ°¤ÎÉôʬ¤òÉüµ¢
;Éý2word¥³¥Ô¡¼¤¹¤ì¤Ð1wordÉý¤Þ¤Ç¤Î²èÁü¤Ï100%¤½¤ÎÈÏ°ÏÆâ¤Ê¤Î¤Ç¥·¥Õ¥È̵¤·¤ÇOK
;EGC¤ò»È¤ï¤Ê¤¤¾ì¹ç¤Ïº£²ó¤Î¥Þ¥¦¥¹²èÁü¤Ï8bitÉý¤Ê¤Î¤Ç1wordʬ¤ÇOK
_OLD_MES PROC C ,MX1:word,MY1:word
OUT2 04A2H,000FFH
OUT2 04A4H,028F0h;¤³¤³¤Ç¥Þ¥¹¥¯¤È¤«¤ÎÀßÄê
OUT2 0A8H,0FFFFH
OUT2 04ACH,0
OUT2 04A0H,0FFF0h;Á´¥×¥ì¡¼¥óÀ©¸æ
OUT2 04AEh,31

mov si,0
mov di,MX1

SHR di,4
shl di,1
add si,di
mov di,MY1
SHL di,4
add si,di
SHL di,2
add di,si;di=ÀèƬbyte

mov si,7FC0h;VRAM¤Î;¤ê¤Î°ìÈֺǸå¤Î4byte¡ß½Ä16¡á64byteʬ¤ò»ÈÍÑ¡¢¤À¤«¤é¥³¥ì¤ÇÎɤ¤¤Ï¤ºŽ¥Ž¥Ž¥¡£
push ds;ds(@DATA)¤òes(VRAM³«»Ï¥¢¥É¥ì¥¹)¤ËÊѹ¹
push es
pop ds
call _MO_MES2
pop ds
ret
_OLD_MES ENDP


_MO_MES3 PROC ;¤³¤Ã¤Á¤Ï¥Ð¥Ã¥¯¥³¥Ô¡¼ÍÑ¥µ¥Ö¥ë¡¼¥Á¥ó
;si,di¤Ï»ØÄêºÑ¤ß¤È¤¹¤ë
MOV cx,16;¤³¤³¤Ç½Ä
SMLP: push cx
push si
mov cx,2
rep MOVSW
pop si
pop cx
add si,80
LOOP SMLP
RET
_MO_MES3 ENDP

;½ñ¤­¹þ¤ßÁ°¤ÎVRAM¤òÂàÈò
;si¤Èdi¤¬µÕ¤Ê¤À¤±¤Ç´ðËܤϾå¤È°ì½ï
_BCK_CPY PROC C ,MX1:word,MY1:word
OUT2 04A2H,000FFH
OUT2 04A4H,028F0h;¤³¤³¤Ç¥Þ¥¹¥¯¤È¤«¤ÎÀßÄê
OUT2 04A8H,0FFFFH
OUT2 04ACH,0
OUT2 04A0H,0FFF0h;Á´¥×¥ì¡¼¥óÀ©¸æ
OUT2 04AEh,31

mov si,0
mov bx,MX1

SHR bx,4
shl bx,1
add si,bx
mov bx,MY1
SHL bx,4
add si,bx
SHL bx,2
add si,bx;si=ÀèƬbyte

mov di,7FC0H;di;¥³¥Ô¡¼Àè


push ds
push es
pop ds
call _MO_MES3
pop ds
ret
_BCK_CPY ENDP

¥á¥¤¥ó¥ë¡¼¥Á¥ó

;¥á¥¤¥ó¥ë¡¼¥Á¥ó

.startup
;½é´ü²½
CALL _USE_ALL
call _CLR_ALL;¥Æ¥­¥¹¥È´Ø·¸¤ò¾Ãµî¤·¤Æ¤ë¤À¤±
call _CUR_NOT

CLD
CALL _GINIT;16¿§½é´ü²½
CALL _EGC_ON;EGC¤ò»ÈÍÑ


FLD_DS <offset PLpass>,32,<offset PLDATA>;¥Ñ¥ì¥Ã¥È¤ò¥á¥â¥ê¤Ë¥í¡¼¥É


mov cx,15
@@: PALSET <offset PLDATA>,cl,cx;¥Ñ¥ì¥Ã¥È¤ËÀßÄê
loop @b

mov ax,0A800H
mov es,ax

BACK 3;Çطʤò¥Ñ¥ì¥Ã¥È3¤ÇÅɤê¤Ä¤Ö¤¹¥Þ¥¯¥í

;¤³¤³¤Þ¤Ç¤ÏËܼÁ¤Ë¤Ï´Ø¤ï¤é¤Ê¤¤¤Ç¤¹¤·¡¢°ÊÁ°¤Î¥µ¥ó¥×¥ë¤ò²þ¤¤·¤¿¤ê½ÐÍè¤ë¤Î¤Ç¾Ü¤·¤¯¤Ï½Ò¤Ù¤Þ¤»¤ó¡£

push es
;³ä¤ê¹þ¤ß½é´ü²½³«»Ï
push ds
xor ax,ax
mov ds,ax;³ä¤ê¹þ¤ß»ØÄêÍѤËds¤ò0¤Ë
pop es;es=@data
CLI
mov ax,ds:[SYNC_OFS];³ä¤ê¹þ¤ßÀè¤ÎÂàÈò
mov cs:[SYNC_M_OFS],ax
mov ax,ds:[SYNC_SEG]
mov cs:[SYNC_M_SEG],ax

mov ax,offset MOU_CH;³ä¤ê¹þ¤ß¤Î½ñ¤­´¹¤¨
mov ds:[SYNC_OFS],ax
mov ax,cs
mov ds:[SYNC_SEG],ax
STI
push es
pop ds
pop es;¥»¥°¥á¥ó¥È¤ò¸µ¤ËÌᤷ¤¿¤À¤±

mov ax,cs:[OLD_X]
mov bx,cs:[OLD_Y]
invoke _BCK_CPY,ax,bx;¥Þ¥¦¥¹ÉÁ²è¤¬»Ï¤Þ¤ëÁ°¤Ë²èÁü¤ò¥³¥Ô¡¼¤·¤Æ¤ª¤¯


in al,02h;³ä¤ê¹þ¤ß¤Î³«»Ï
mov IO_MOTO,al
and al,0FBh
out 02h,al

MLOOP:
V_WAIT;VSYNC¤òÂÔ¤Ä
;¥Þ¥¦¥¹ºÂɸ¤Ëɽ¼¨¤È¤«
mov cs:[mode],0;ºÂɸ¹¹¿·Ää»ß
mov ax,cs:[OLD_X]
mov bx,cs:[OLD_Y]
invoke _OLD_MES,ax,bx
mov ax,cs:[MOU_X]
mov bx,cs:[MOU_Y]
push ax
push bx
invoke _BCK_CPY,ax,bx
pop bx
pop ax
invoke _MO_MES,ADDR GRA,ax,bx
mov cs:[mode],1;ºÂɸ¹¹¿·ºÆ³«

mov AX,400h;£Å£Ó£Ã¤ò²¡¤¹¤È½ªÎ»
int 18h
test AH,1
jne ENDING
jmp MLOOP;¤³¤³¤Þ¤Ç¥á¥¤¥ó¥ë¡¼¥×

ENDING:V_WAIT;½ªÎ»½èÍý
CALL _EGC_OFF
mov al,IO_MOTO;°Ê²¼Éüµ¢½èÍý
out 02h,al
xor ax,ax
mov ds,ax
CLI
mov ax,cs:[SYNC_M_OFS]
mov ds:[SYNC_OFS],ax
mov ax,cs:[SYNC_M_SEG]
mov ds:[SYNC_SEG],ax
STI

mov ah,4Ch;½ªÎ»
int 21h

³ä¤ê¹þ¤ß½èÍý¤È¥Ç¡¼¥¿Éô

MOU_CH:pusha;³ä¤ê¹þ¤ß¥ë¡¼¥Á¥ó
pushf
mov cl,cs:[mode]
cmp cl,0
je MOU_EN
cmp cl,2
je @f
mov ax,cs:[MOU_X]
mov cs:[OLD_X],ax
mov ax,cs:[MOU_Y]
mov cs:[OLD_Y],ax


@@: OUT2 7FDDh,80h;X²¼°Ì4bit¤òÆþ¼ê&¥Ð¥Ã¥Õ¥¡¸ÇÄê
mov dx,7FD9h
in ax,dx
and ax,0Fh;ÉÔÍפʾðÊó¤ò¥«¥Ã¥È
mov bx,ax

OUT2 7FDDh,0A0h;X¾å°Ì4bit¤òÆþ¼ê
mov dx,7FD9h
in ax,dx
and ax,0Fh;ÉÔÍפʾðÊó¤ò¥«¥Ã¥È

SHL ax,4;¥·¥Õ¥È¤·¤Æ­¤·¹ç¤ï¤»
add al,bl;al=¥«¥¦¥ó¥¿

cbw ;al¤òÉä¹æÉÕ¤­¤Çax¤Ë
add cs:MOU_X,ax
test cs:MOU_X,8000h
jz @f
mov cs:MOU_X,0

@@: cmp word ptr cs:MOU_X,632
jb @f
mov cs:MOU_X,631;°Ê¾åX

@@: OUT2 7FDDh,0C0h;Y²¼°Ì4bit¤òÆþ¼ê
mov dx,7FD9h
in ax,dx
and ax,0Fh;ÉÔÍפʾðÊó¤ò¥«¥Ã¥È
mov bx,ax

OUT2 7FDDh,0E0h;Y¾å°Ì4bit¤òÆþ¼ê
mov dx,7FD9h
in ax,dx
and ax,0Fh;ÉÔÍפʾðÊó¤ò¥«¥Ã¥È
SHL ax,4
add al,bl;al=¥«¥¦¥ó¥¿

cbw
add cs:MOU_Y,ax
test cs:MOU_Y,8000h
jz @f
mov cs:MOU_Y,0

@@:
cmp word ptr cs:MOU_Y,385
jb @f
mov word ptr cs:MOU_Y,384
@@:
OUT2 7FDDh,00h;¥Ð¥Ã¥Õ¥¡¸ÇÄê²ò½ü
out SYNC_RSET,al
popf
popa
MOU_EN: jmp dword ptr SYNC_M_OFS;Á°¤Î³ä¤ê¹þ¤ß¤Ë¥¸¥ã¥ó¥×
iret;¥¸¥ã¥ó¥×¤¹¤ë¤Î¤Ç¤³¤Î¹Ô¤ÏɬÍפʤ¤¤Ç¤¹
;³ä¤ê¹þ¤ß¥ë¡¼¥Á¥ó¤³¤³¤Þ¤Ç


;³ä¤ê¹þ¤ßÍѥǡ¼¥¿(CS¾å¤Ë³ÊǼ)
MOU_X dw 320
MOU_Y dw 200

OLD_X dw 320
OLD_Y dw 200

MODE byte1;0´°Á´Ìµ¸ú¡¡1Ä̾2OLD¤ò¹¹¿·¤»¤º¤Ë±¿ÍÑ(¥¹¥ê¡¼¥×Ū¤Ê)

SYNC_M_OFS dw 0
SYNC_M_SEG dw 0
END

ºîÀ®¤Î°Õ¿Þ¤ÈÃí°ÕÅÀ

³ä¤ê¹þ¤ß¾å¤Ç²èÁü¤òɽ¼¨¤µ¤»¤¿¤ê¤·¤Ê¤¤¤Î¤Ï¡¢¥á¥¤¥ó¥ë¡¼¥Á¥ó¤Ç¤ä¤Ã¤¿Êý¤¬¾®ºÙ¹©¤¬¸ú¤¯¤È¹Í¤¨¤¿¤¿¤á¤Ç¤¹¡£
¥Þ¥¦¥¹¥É¥é¥¤¥Ð¤È¤·¤Æ¸ø³«¤¹¤ë¤Ç¤â¤Ê¤·¡¢Á´Éô¥Þ¥·¥ó¸ì¤Ç½ñ¤¯¤ó¤À¤«¤é¡¢ºÙ¤«¤¯¥â¡¼¥Éʬ¤±¤ò¤·¤Æ³ä¤ê¹þ¤ßÉôʬ¤¬ÈÑ»¨¤Ë¤Ê¤ë¤è¤ê¡¢¥á¥¤¥ó¤ÎÊý¤ÇɬÍפ˱þ¤¸¤ÆÉÁ¤±¤Ð¤¤¤¤¤«¤Ê¤È¡£
¤¢¤È¡¢²¼¼ê¤Ë¥É¥é¥¤¥Ð²½¤¹¤ë¤È¡¢½èÍý¤¬½Å¤¯¤Ê¤Ã¤¿¾ì¹ç¤Ëºï¤ë¤Î¤Ëº¤¤ëµ¤¤â¤·¤¿¤Î¤Ç¡£

VRAM´Ö¥³¥Ô¡¼¤Ç¤ÎEGC¤ÎÀßÄ꤬Æüì¤Ç¤¹¡£
04A4h¤Ë028F0h¤ò½ÐÎϤ¹¤ë¤È»ØÄꤷ¤¿¥×¥ì¡¼¥óÁ´¤Æ¤ÎVRAM´Ö¥³¥Ô¡¼¤¬²Äǽ¤Ê¤Î¤Ç½Å¤Í¹ç¤ï¤»¤Ê¤É¤Ë¤È¤Æ¤âÊØÍø¤Ç¤¹¡£
¤¼¤Ò³Ð¤¨¤Æ¤ª¤¯¤È¤¤¤¤¤Ç¤·¤ç¤¦¡£
¤½¤Î¤¦¤ÁEGC¤Î´ðËÜ»ö¹à¤ò¤Þ¤È¤á¤¿¤¤¤Ç¤¹¤Í¡£

²èÁüɽ¼¨·Ï¤ò°ìÈ̲½¤·¤¿PROC¤òºî¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤È¥³¡¼¥ÉÍÆÎÌŪ¤Ë¤«¤Ê¤êºï¸º¤Ç¤­¤Þ¤¹¤·¡¢º£²ó¤ß¤¿¤¤¤Ë¸ÄÊ̤ËÍÑ°Õ¤¹¤ë¤È®ÅÙ¾å¤Á¤ç¤Ã¤ÈÍ­Íø¤Ë¤Ê¤ê¤Þ¤¹¡£
¤ª¹¥¤ß¤Ç¤É¤¦¤¾¡£

¿½Å³ä¤ê¹þ¤ß¤ÎÃí°Õ¡£
vsync¤òȯÀ¸¤µ¤»¤Æ¤¤¤ëºÇÃæ¤Ëint 21hÅù¤ò»È¤¦¤È¡¢Â¿½Å³ä¤ê¹þ¤ß¤¬È¯À¸¤·¤Æ¥Ð¥°¤Ã¤¿¤ê¤·¤Þ¤¹¡£
³ä¤ê¹þ¤ß¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë½ªÎ»½èÍý¤Îmov al,IO_MOTO out02h,al¤ò¸Æ¤Ó½Ð¤·¤Ævsync¤ò»ß¤á¤Æ¤¯¤À¤µ¤¤¡£
²»³Ú±éÁդǥ¿¥¤¥Þ¡¼³ä¤ê¹þ¤ß¤Ê¤É¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤½¤ì¤¾¤ì¤Î³ä¤ê¹þ¤ßÃæ¤Ï¾¤Î³ä¤ê¹þ¤ß¤òµö²Ä¤·¤Ê¤¤¤è¤¦¤Ëcli,sti¤ò»È¤Ã¤Æ²¼¤µ¤¤¡£

VRAM¤Î;¤ê¤òȾʬ¤ËÀÚ¤êµÍ¤á¤ë¾ì¹ç¤Ï¡¢EGC¤ÎÀßÄê¤Ç¥³¥Ô¡¼¸µ¤ò¥·¥Õ¥È¤·¤¿¤ê¤¬¡¢¤Á¤ç¤Ã¤ÈÌÌÅݤǤ¹¤¬¡¢Â¿Ê¬½ÐÍè¤ë¤Ï¤º¤Ç¤¹¡£
(¥³¥Ô¡¼¸µ¤Î¥·¥Õ¥È¼þ¤ê¤Î¥ë¡¼¥×²ó¿ô»ØÄê¤Ë¤Á¤ç¤Ã¤ÈÊʤ¬¤¢¤ë¤Î¤ÇÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£)
byteÉý¤Þ¤ÇÀÚ¤êµÍ¤á¤ë¤Î¤â²Äǽ¤Ê¤Ï¤º¤Ç¤¹¤¬¡¢¥³¥Ô¡¼Àè¤Þ¤Ç¥·¥Õ¥È¤·¤¿¤ê¤¹¤ë¤³¤È¤Ë¤Ê¤ë¤Î¤Ç®ÅÙ¤¬¿´ÇۤǤ¹¡£
¤³¤ÎÊդϥޥ·¥ó¸ì¥²¡¼¥à¥°¥é¥Õ¥£¥Ã¥¯¥¹ÊÕ¤ê¤ò»²¹Í¤Ë¤ä¤Ã¤Æ¤ß¤Æ¤â¤¤¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£

¤¢¤È¡¢VRAM¤Î;¤êÉôʬ¤Î¥¢¥É¥ì¥¹»ØÄê¤Ï¹¥¤ß¤ÇÊѤ¨¤ÆOK¤Ç¤¹¡£¡ÊËÜÅö¤Ë¥³¥ì¤Ç¤¢¤Ã¤Æ¤ë¤«¤Á¤ç¤Ã¤ÈÉ԰¤⤢¤ê¤Þ¤¹¤·¡Ë
¥¯¥ê¥Ã¥¯È½Äê¤Ïº£²ó¤Î¥á¥¤¥ó¤¸¤ã¤Ê¤¤¤Ç¤¹¤·¡¢´Êñ¤Ê¤Î¤Çά¤·¤Þ¤¹¡£
°ì±þIO¤«¤éIN¤·¤¿ÃͤÎÆÃÄê¥Ó¥Ã¥È¤¬1or0¤ÇȽÊ̤¹¤ë¤À¤±¤Ç¤¹¤Î¤Ç¡¢UNDOCUMENTED9801vol.2¤«¥×¥í¥°¥é¥Þ¡¼¥º¥Ð¥¤¥Ö¥ëÊÕ¤ê¤ò¸«¤ì¤Ð¤¤¤¤¤È»×¤¤¤Þ¤¹¡£

ËÜÊԤDzòÀâ¤òÆþ¤ì˺¤ì¤Þ¤·¤¿¤¬¡¢OUT2¤ÏOUT¡¡dx,ax¤ò¥é¥Ã¥×¤·¤¿¤À¤±¤Î¥Þ¥¯¥í¤Ç¤¹¡£

´°Á´¤Ê¥½¡¼¥¹¤¬É¬Íפʤ饳¥á¥ó¥È¤Ç¤â¤·¤Æ²¼¤µ¤¤¡£
µ¤ÉÕ¤¤¤¿¤éUP¤·¤Þ¤¹¡£

Menu

´ÉÍý¿Í/Éû´ÉÍý¿Í¤Î¤ßÊÔ½¸¤Ç¤­¤Þ¤¹