tossyst.asm

来自「Programming for feal strong programmers」· 汇编 代码 · 共 69 行

ASM
69
字号
	IDEAL
	MODEL SMALL
	RADIX	16
	P286

	DATASEG

CMOS_PORT		EQU	70
PORT_6845		EQU	63h
COLOR_PORT		EQU	03d4h
MONO_PORT		EQU	03b4h
STATUS_PORT		EQU	64h
SHUT_DOWN		EQU	0feh
INT_MASK_PORT	EQU	21h
VIRTUAL_MODE	EQU	0001
A20_PORT			EQU	0d1
A20_ON			EQU	0df
A20_OFF			EQU	0ddh
EOI				EQU	20
MASTER8259A		EQU	20
SLAVE8259A		EQU	0a0h
KBD_PORT_A		EQU	60h
KBD_PORT_B		EQU	61h

	gdt_off		dw	 ?
	gdt_seg		dw  ?

	real_ss		dw	?
	real_sp		dw	?
	real_es		dw	?

CODESEG

	PUBLIC  _real_mode, _protected_mode
	PUBLIC  _enable_interrupt
	PUBLIC   _pause

PROC _protected_mode NEAR
		push    bp
		mov     bp,sp

		mov     ax,[bp+4]
		mov     dx,[bp+6]
		mov     [gdt_seg], dx
		mov     [gdt_off], ax

		push		ds
		mov		ax,40
		mov		ds,ax
		mov		[WORD 67],OFFSET shutdown_return
		mov		[WORD 69],cs
		pop		ds

		cli
		in			al, INT_MASK_PORT
		and		al, 0ffh
		out		INT_MASK_PORT, al

		mov		al,8f
		out		CMOS_PORT,al
		jmp		delay1
delay1:
		mov		al,5
		out		CMOS_PORT+1,al

		mov		[real_ss],ss
		mov		[real_es],es

; 嚑`悝牓

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?