Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

211 lines
7.4 KiB

  1. ;#########################################################################
  2. ;## �c�d�k�`�x�@���[�`�� ##
  3. ;## �@�w�肳�ꂽ���Ԃ����҂ƒ��[�`���i�P�ʂ����j ##
  4. ;## ##
  5. ;## ��ƂȂ��b�o�t�N���b�N ##
  6. ;## �u�R�O�F�P�O�l�gZ (PC-9801UV21) ##
  7. ;## �Q�W�U�F�P�Q�l�gZ (PC-9801RX2) ##
  8. ;## �R�W�U�F�Q�O�l�gZ (PC-98RL N-MODE) ##
  9. ;## �m�o�b�F�R�R�l�gZ (PC-H98 Model70) ##
  10. ;## ##
  11. ;## �@���F���s�@�̏ꍇ�A��N���b�N�ȊO�ł́A�����덷���ł܂� ##
  12. ;## ##
  13. ;## ���́F�b�w�Ɂ@�҂����ԁi�����j���������B ##
  14. ;## �o�́F�Ȃ� ##
  15. ;## �j�󂷂郌�W�X�^�F�b�w�A�t���O ##
  16. ;## ##
  17. ;##---------------------------------------------------------------------##
  18. ;##�@�@�ύX���� ##
  19. ;## DATE | Ver | ##
  20. ;## -------------------------------------------------------------- ##
  21. ;## 90-04-24 | 1.00 | Original ##
  22. ;## ##
  23. ;#########################################################################
  24. ;---------------------- �k�n�n�o���� --------------------------------------
  25. _V30_DELAY_ EQU 550 ;�u�R�O�@�����͂����ł�����
  26. _286_DELAY_ EQU 1070 ;�Q�W�U�@��������
  27. _386_DELAY_ EQU 1600 ;�R�W�U�@
  28. _DELAY_COUNT_ EQU 307 ;�m�o�b
  29. ;--------------------------------------------------------------------------
  30. ;########################################################################
  31. ;# �f�[�^�� #
  32. ;########################################################################
  33. ;;;;; _BIOS_FLAG1_ DB 0 ;[0:458H]�̓��e (del 90.10.6)
  34. ;;;;; _BIOS_FLAG2_ DB 0 ;[0:480H]�̓��e (del 90.10.6)
  35. ;;;;; _CPU_ DW 0 ;���s�@�́A�_�~�[���[�v���� (del 90.10.6)
  36. ;;;;; _TIME_ DW 0 ;�ڕW���� (del 90.10.6)
  37. ;;;;; _MUKASI_ DW 0 ;���‘O�̎��� (del 90.10.6)
  38. ;************************************************************************
  39. ;* �^�C���X�^���p�F�҂����Ԑ����Ɏg�p�����_�~�[���[�v������ *
  40. ;* �h�^�n���J�o���[�^�C���̕ۏ؂Ɏg�p�����B *
  41. ;* �����ł́A�������\�`�q�s�h�b�|�[�g���p�����B *
  42. ;* �����\�F �R�D�Q�U�@�@ �ʂ� *
  43. ;* �ő��l�F �P�O�U�D�W�@ ���� *
  44. ;* �A�h���X�F �O�O�T�b �g�i���[�h�j *
  45. ;************************************************************************
  46. _ARTIC_LOW_ EQU 005CH ;�^�C���X�^���p�h�^�n port
  47. MSR_DELAY:
  48. PUSH AX ;�g�p���郌�W�X�^���ޔ�
  49. PUSH BX ;�g�p���郌�W�X�^���ޔ�
  50. PUSH DX ;�g�p���郌�W�X�^���ޔ�
  51. push es ; (90.10.6)
  52. PUSH DS ;�f�[�^�Z�O�����g���W�X�^���ޔ�
  53. push ds ; (90.10.6)
  54. pop es ; (90.10.6)
  55. ;************************************************************************
  56. ;* �b�o�t�̂����킯 *
  57. ;* �|�|�|�|�|�|�|�a�h�n�r�e�k�`�f���Q�Ƃ��� *
  58. ;************************************************************************
  59. mov ax, 40h ;
  60. mov ds, ax ;
  61. ;----------------�m�o�b���ǂ����𔻒f------------------------------------
  62. MOV AL,BYTE PTR DS:[58H] ;40:58�̓��e��AL�ɓ�����
  63. MOV BYTE PTR ES:_BIOS_FLAG1_,AL
  64. ;----------------���s�@�̂ǂ̂b�o�t���𔻒f------------------------------
  65. MOV AL,BYTE PTR DS:[80H] ;40:80�̓��e��AL�ɓ�����
  66. MOV BYTE PTR ES:_BIOS_FLAG2_,AL
  67. MOV AL,BYTE PTR DS:[5BH] ;40:5B�̓��e��AL�ɓ����� (93.03.09)
  68. MOV BYTE PTR ES:_BIOS_FLAG3_,AL ;(93.03.09)
  69. POP DS ;�f�[�^�Z�O�����g���W�X�^�𕜋A
  70. AND BYTE PTR _BIOS_FLAG1_,80H ;���V�r�b�g�ȊO���O�Ń}�X�N����
  71. JNZ _NPC_
  72. AND BYTE PTR ES:_BIOS_FLAG3_,04H ;(93.03.09)
  73. JNZ _NPC_ ;(93.03.09)
  74. AND BYTE PTR _BIOS_FLAG2_,03H ;��0,1�r�b�g�ȊO��0�Ń}�X�N����
  75. JZ _V30_ ;��0,1�r�b�g���00��Ȃ��΂u�R�O
  76. CMP BYTE PTR _BIOS_FLAG2_,01H ;��0,1�r�b�g���01��Ȃ��΂Q�W�U
  77. JE _I286_
  78. ;########################################################################
  79. ;# ���s�@�̎� #
  80. ;########################################################################
  81. _I386_: ;�b�o�t�͂R�W�U
  82. MOV WORD PTR _CPU_,_386_DELAY_ ;386�̎���CPU=_386_DELAY_�ɂ���
  83. JMP short _EXIT_CPU_
  84. _V30_: ;�b�o�t�͂u�R�O
  85. MOV WORD PTR _CPU_,_V30_DELAY_ ;V30�̎���CPU=_V30_DELAY_�ɂ���
  86. JMP short _EXIT_CPU_
  87. _I286_: ;�b�o�t�͂Q�W�U
  88. MOV WORD PTR _CPU_,_286_DELAY_ ;286�̎���CPU=_286_DELAY_�ɂ���
  89. _EXIT_CPU_:
  90. ;---------------------------------------------- ���������̏����ŁA�P������
  91. ; �Ȃ��悤�ɂ���
  92. ;
  93. PUSH CX ;�J�E���^�̓��e���ޔ�
  94. MOV CX,_CPU_ ;�b�w���Q�b�o�t�Q
  95. ; ~~~~���̒l���@�킲�Ƃɕς���
  96. _LOOP2_: ;
  97. LOOP _LOOP2_ ;CX=CX-1 : IF ( CX == 0 ) GOTO _LOOP2_
  98. POP CX ;�J�E���^�̓��e�𕜋A
  99. ;
  100. ;----------------------------------------------
  101. LOOP _EXIT_CPU_ ;CX=CX-1 : IF ( CX == 0 ) GOTO LOOP1
  102. pop es
  103. POP DX ;�ޔ��������W�X�^�𕜋A
  104. POP BX ;�ޔ��������W�X�^�𕜋A
  105. POP AX ;�ޔ��������W�X�^�𕜋A
  106. RET ;RETURN
  107. ;########################################################################
  108. ;# �m�o�b�̎� #
  109. ;########################################################################
  110. _NPC_:
  111. CALL _NPC_DELAY_ ;�P��������[�`��
  112. LOOP _NPC_ ;CX=CX-1
  113. ; : IF ( CX == 0 ) GOTO LOOP1
  114. pop es ;(INS.91.1.14)
  115. POP DX ;�ޔ��������W�X�^�𕜋A
  116. POP BX ;�ޔ��������W�X�^�𕜋A
  117. POP AX ;�ޔ��������W�X�^�𕜋A
  118. RET
  119. _NPC_DELAY_:
  120. PUSH CX
  121. MOV DX,_ARTIC_LOW_ ;�`�q�s�h�b�|�[�g�̓��e��
  122. ;�c�w�ɂ�����
  123. IN AX,DX ;�`�q�s�h�b�|�[�g�����`�w��
  124. ;�f�[�^��������
  125. MOV BX,AX ;�������Ԃ��ۑ�
  126. MOV CX,_DELAY_COUNT_ ;�ݒ莞�Ԃ��b�w�ɓ�����
  127. ADD CX,BX ;�ڕW���Ԑݒ�
  128. MOV _TIME_,CX ;�ڕW���Ԃ��b�`�j�d�Ɋi�[
  129. JNC _POPO_
  130. ;******************************************************************************
  131. ;* 0 7FFF FFFF *
  132. ;* 1========��-----------------1-----------�~==========��============1 *
  133. ;* �� �� �@ �� *
  134. ;*�@�@�@�@�@�@�ڕW���ԁF�b�`�j�d �������ԁF�a�w�@�@���ݎ��ԁF�`�w �@ *
  135. ;* *
  136. ;* *
  137. ;* �̎� *
  138. ;* *
  139. ;******************************************************************************
  140. MOV _MUKASI_,BX ;�������Ԃ�_MUKASI_�ɓ����Ă���
  141. _YOMU1_:
  142. IN AX,DX ;���ݎ��Ԃ��`�w�ɓ�����
  143. CMP _MUKASI_,AX ;���‘O�̎��Ԃƌ��݂̎��Ԃ����r
  144. ;�@���ݎ��Ԃ��A�ڕW���Ԃ�����
  145. ;�@�傫�����߁A
  146. ; ���ݎ��Ԃƈ��‘O�̎��Ԃ�
  147. ;�@���r�����B
  148. ;�@���ݎ��Ԃ��������Ȃ����ꍇ
  149. ;�@�^�C���X�^���p���O�ɖ߂���
  150. ;�@���ƂɂȂ�
  151. JA _POPO_ ;���ݎ����̕����������Ȃ����I
  152. MOV _MUKASI_,AX ;���‘O�̎��Ԃ�_MUKASI_��
  153. ; ��������
  154. JMP _YOMU1_ ;���[�v
  155. ;******************************************************************************
  156. ;* 0 7FFF FFFF *
  157. ;* 1--------�~============��====1=============��---------------------1 *
  158. ;* �� �� �� *
  159. ;*�@�@�������ԁF�a�w�@�@�@���ݎ��ԁF�`�w�@�@�@�@�ڕW���ԁF�b�`�j�d *
  160. ;* *
  161. ;* *
  162. ;* �̎� *
  163. ;* *
  164. ;******************************************************************************
  165. _POPO_:
  166. IN AX,DX ;���ݎ��Ԃ��`�w�ɓ�����
  167. CMP _TIME_,AX ;�ڕW���Ԃ܂łȂ������H
  168. JA _POPO_ ;�m���F�܂��ڕW���Ԃł͂Ȃ�
  169. POP CX
  170. RET ;END NPC_RTN