; Doug's Programming Language  -- DPL, Version 2.22
; Copyright (c) 1988 Douglas S. Cody, All rights reserved.
;---------------------------------------
;
SUBPGM	VIDOFF
;
; V I D O F F  -  Turn off the video controller card.
;
; Entry Conditions:
;	BIOS segment holds the video controller card
;	base I/O address & current video state
; Exit Conditions:
;	No registers modified
;
BEGIN	VIDOFF
	PUSH	ES			; SAVE ALL REGISTERS USED
	PUSH	DX
	PUSH	AX
;
	MOV	AX,40H			; SETUP THE BIOS SEGMENT
	MOV	ES,AX
;
	MOV	DX,ES:[063H]		; GET THE VIDEO CONTROLLER BASE
	MOV	AL,ES:[065H]		; FETCH THE VIDEO MODE REGISTER 
	AND	AL,0F7H			; TURN OFF THE VIDEO BIT
;
COMMON_CODE:
	MOV	ES:[065H],AL		; SAVE THE NEW VIDEO CONTROLLER BYTE
	ADD	DX,04			; MOVE TO THE SELECT PORT
	OUT	DX,AL			; TURN IT ON OR OFF
;	
	POP	AX			; RESTORE THE REGISTERS
	POP	DX
	POP	ES
	RETURN
;
;
;----------------------------------------
; V I D O N  -  Turn on the video controller card.
;
; Entry Conditions:
;	BIOS segment holds the video controller card
;	base I/O address & current video state
; Exit Conditions:
;	No registers modified
;
	PUBLIC	VIDON
VIDON	PROC	NEAR
	PUSH	ES			; SAVE ALL REGISTERS USED
	PUSH	DX
	PUSH	AX
;
	MOV	AX,40H			; SETUP THE BIOS SEGMENT
	MOV	ES,AX
;
	MOV	DX,ES:[063H]		; GET THE VIDEO CONTROLLER BASE
	MOV	AL,ES:[065H]		; FETCH THE VIDEO MODE REGISTER 
	OR	AL,08H			; TURN ON THE VIDEO BIT
	JMP	SHORT COMMON_CODE	; CONTINUE IN COMMON CODE

VIDON	ENDP
;
ENDPGM	VIDOFF
;

