|
|
;######################################################################### ;## �c�d�k�`�x�@���[�`�� ## ;## �@�w�肳�ꂽ���Ԃ����҂��[�`���i�P�ʂ����j ## ;## ## ;## ��ƂȂ��b�o�t�N���b�N ## ;## �u�R�O�F�P�O�l�gZ (PC-9801UV21) ## ;## �Q�W�U�F�P�Q�l�gZ (PC-9801RX2) ## ;## �R�W�U�F�Q�O�l�gZ (PC-98RL N-MODE) ## ;## �m�o�b�F�R�R�l�gZ (PC-H98 Model70) ## ;## ## ;## �@���F���s�@�̏ꍇ�A��N���b�N�ȊO�ł́A�����덷���ł܂� ## ;## ## ;## ���́F�b�w�Ɂ@�҂����ԁi�����j���������B ## ;## �o�́F�Ȃ� ## ;## �j�郌�W�X�^�F�b�w�A�t���O ## ;## ## ;##---------------------------------------------------------------------## ;##�@�@�ύX���� ## ;## DATE | Ver | ## ;## -------------------------------------------------------------- ## ;## 90-04-24 | 1.00 | Original ## ;## ## ;#########################################################################
;---------------------- �k�n�n�o���� -------------------------------------- _V30_DELAY_ EQU 550 ;�u�R�O�@�����͂����ł����� _286_DELAY_ EQU 1070 ;�Q�W�U�@�������� _386_DELAY_ EQU 1600 ;�R�W�U�@ _DELAY_COUNT_ EQU 307 ;�m�o�b ;-------------------------------------------------------------------------- ;######################################################################## ;# �f�[�^�� # ;######################################################################## ;;;;; _BIOS_FLAG1_ DB 0 ;[0:458H]�̓��e (del 90.10.6) ;;;;; _BIOS_FLAG2_ DB 0 ;[0:480H]�̓��e (del 90.10.6) ;;;;; _CPU_ DW 0 ;���s�@�́A�_�~�[���[�v���� (del 90.10.6) ;;;;; _TIME_ DW 0 ;�ڕW���� (del 90.10.6) ;;;;; _MUKASI_ DW 0 ;���O�̎��� (del 90.10.6)
;************************************************************************ ;* �^�C���X�^���p�F�҂����Ԑ����Ɏg�p�����_�~�[���[�v������ * ;* �h�^�n���J�o���[�^�C���̕ۏɎg�p�����B * ;* �����ł́A�������\�`�q�s�h�b�|�[�g���p�����B * ;* �����\�F �R�D�Q�U�@�@ �ʂ� * ;* �ő��l�F �P�O�U�D�W�@ ���� * ;* �A�h���X�F �O�O�T�b �g�i���[�h�j * ;************************************************************************
_ARTIC_LOW_ EQU 005CH ;�^�C���X�^���p�h�^�n port
MSR_DELAY: PUSH AX ;�g�p���郌�W�X�^���ޔ� PUSH BX ;�g�p���郌�W�X�^���ޔ� PUSH DX ;�g�p���郌�W�X�^���ޔ� push es ; (90.10.6) PUSH DS ;�f�[�^�Z�O�����g���W�X�^���ޔ� push ds ; (90.10.6) pop es ; (90.10.6)
;************************************************************************ ;* �b�o�t�̂����킯 * ;* �|�|�|�|�|�|�|�a�h�n�r�e�k�`�f���Q�Ƃ��� * ;************************************************************************
mov ax, 40h ; mov ds, ax ;
;----------------�m�o�b���ǂ����f------------------------------------
MOV AL,BYTE PTR DS:[58H] ;40:58�̓��e��AL�ɓ����� MOV BYTE PTR ES:_BIOS_FLAG1_,AL
;----------------���s�@�̂ǂ̂b�o�t���f------------------------------ MOV AL,BYTE PTR DS:[80H] ;40:80�̓��e��AL�ɓ����� MOV BYTE PTR ES:_BIOS_FLAG2_,AL
MOV AL,BYTE PTR DS:[5BH] ;40:5B�̓��e��AL�ɓ����� (93.03.09) MOV BYTE PTR ES:_BIOS_FLAG3_,AL ;(93.03.09)
POP DS ;�f�[�^�Z�O�����g���W�X�^�A AND BYTE PTR _BIOS_FLAG1_,80H ;���V�r�b�g�ȊO���O�Ń}�X�N���� JNZ _NPC_ AND BYTE PTR ES:_BIOS_FLAG3_,04H ;(93.03.09) JNZ _NPC_ ;(93.03.09) AND BYTE PTR _BIOS_FLAG2_,03H ;��0,1�r�b�g�ȊO��0�Ń}�X�N���� JZ _V30_ ;��0,1�r�b�g���00��Ȃ��u�R�O CMP BYTE PTR _BIOS_FLAG2_,01H ;��0,1�r�b�g���01��Ȃ��Q�W�U JE _I286_
;######################################################################## ;# ���s�@�̎� # ;######################################################################## _I386_: ;�b�o�t�͂R�W�U MOV WORD PTR _CPU_,_386_DELAY_ ;386�̎���CPU=_386_DELAY_�ɂ��� JMP short _EXIT_CPU_ _V30_: ;�b�o�t�͂u�R�O MOV WORD PTR _CPU_,_V30_DELAY_ ;V30�̎���CPU=_V30_DELAY_�ɂ��� JMP short _EXIT_CPU_ _I286_: ;�b�o�t�͂Q�W�U MOV WORD PTR _CPU_,_286_DELAY_ ;286�̎���CPU=_286_DELAY_�ɂ��� _EXIT_CPU_: ;---------------------------------------------- ���������̏����ŁA�P������ ; �Ȃ��悤�ɂ��� ; PUSH CX ;�J�E���^�̓��e���ޔ� MOV CX,_CPU_ ;�b�w���Q�b�o�t�Q ; ~~~~���̒l���@�킲�Ƃɕς��� _LOOP2_: ; LOOP _LOOP2_ ;CX=CX-1 : IF ( CX == 0 ) GOTO _LOOP2_ POP CX ;�J�E���^�̓��e�A ; ;---------------------------------------------- LOOP _EXIT_CPU_ ;CX=CX-1 : IF ( CX == 0 ) GOTO LOOP1
pop es POP DX ;�ޔ��������W�X�^�A POP BX ;�ޔ��������W�X�^�A POP AX ;�ޔ��������W�X�^�A RET ;RETURN ;######################################################################## ;# �m�o�b�̎� # ;######################################################################## _NPC_: CALL _NPC_DELAY_ ;�P��������[�`�� LOOP _NPC_ ;CX=CX-1 ; : IF ( CX == 0 ) GOTO LOOP1
pop es ;(INS.91.1.14) POP DX ;�ޔ��������W�X�^�A POP BX ;�ޔ��������W�X�^�A POP AX ;�ޔ��������W�X�^�A
RET _NPC_DELAY_: PUSH CX MOV DX,_ARTIC_LOW_ ;�`�q�s�h�b�|�[�g�̓��e�� ;�c�w�ɂ����� IN AX,DX ;�`�q�s�h�b�|�[�g�����`�w�� ;�f�[�^�������� MOV BX,AX ;�������Ԃ��ۑ� MOV CX,_DELAY_COUNT_ ;�ݒ莞�Ԃ��b�w�ɓ����� ADD CX,BX ;�ڕW���Ԑݒ� MOV _TIME_,CX ;�ڕW���Ԃ��b�`�j�d�Ɋi�[ JNC _POPO_ ;****************************************************************************** ;* 0 7FFF FFFF * ;* 1========��-----------------1-----------�~==========��============1 * ;* �� �� �@ �� * ;*�@�@�@�@�@�@�ڕW���ԁF�b�`�j�d �������ԁF�a�w�@�@���ݎ��ԁF�`�w �@ * ;* * ;* * ;* �̎� * ;* * ;****************************************************************************** MOV _MUKASI_,BX ;�������Ԃ�_MUKASI_�ɓ����Ă���
_YOMU1_: IN AX,DX ;���ݎ��Ԃ��`�w�ɓ����� CMP _MUKASI_,AX ;���O�̎��Ԃƌ��݂̎��Ԃ����r ;�@���ݎ��Ԃ��A�ڕW���Ԃ����� ;�@�傫�����߁A ; ���ݎ��Ԃƈ��O�̎��Ԃ� ;�@���r�����B ;�@���ݎ��Ԃ��������Ȃ����ꍇ ;�@�^�C���X�^���p���O�ɖ߂��� ;�@���ƂɂȂ�
JA _POPO_ ;���ݎ����̕����������Ȃ����I MOV _MUKASI_,AX ;���O�̎��Ԃ�_MUKASI_�� ; �����Ă��� JMP _YOMU1_ ;���[�v ;****************************************************************************** ;* 0 7FFF FFFF * ;* 1--------�~============��====1=============��---------------------1 * ;* �� �� �� * ;*�@�@�������ԁF�a�w�@�@�@���ݎ��ԁF�`�w�@�@�@�@�ڕW���ԁF�b�`�j�d * ;* * ;* * ;* �̎� * ;* * ;******************************************************************************
_POPO_: IN AX,DX ;���ݎ��Ԃ��`�w�ɓ����� CMP _TIME_,AX ;�ڕW���Ԃ܂łȂ������H JA _POPO_ ;�m���F�܂��ڕW���Ԃł͂Ȃ�
POP CX RET ;END NPC_RTN
|