kosher: POP DS ; Setup special low vectors
MOV Word ptr ES:8,offset int_2 ; ...NMI interrupt
MOV Word ptr ES:14h,offset int_5 ; ...print screen interrupt
MOV Word ptr ES:7Ch,0 ; No special graphics chars.
MOV Word ptr ES:7Eh,0 ; ...so zero vector 1Fh
MOV DX,61h
IN AL,DX ; Read machine flags
OR AL,30h ; ...clear old parity error
OUT DX,AL ; Write them back to reset
AND AL,0CFh ; ...enable parity
OUT DX,AL ; Write back, parity enabled
MOV AL,80h ; ...allow NMI interrupts
OUT 0A0h,AL
MOV AX,30h ; Load monochrome
MOV DS:10h,AX ; ...say found
INT 10h ; ...initialize
MOV AX,20h ; Load CGA 80 x 25
MOV DS:10h,AX ; ...say found
INT 10h ; ...initialize
IN AL,62h
AND AL,0Fh
MOV AH,AL
MOV AL,0ADh
OUT 61h,AL
IN AL,62h
MOV CL,4
SHL AL,CL
OR AL,AH
MOV AH,0
MOV DS:10h,AX
AND AL,30h ; Test for Video
JNZ LE232 ; ...present
MOV AX,offset DUMMY ; No CRT found, dummy INT_10
MOV ES:40h,AX ; ...save offset
JMP short LE235
LE232: CALL V_INIT ; Setup video