	TITLE SETCOLOR PROGRAM
	PAGE 65,132
;**********************************************************************
;
;                               SETCOLOR
;
; THE SETCOLOR PROGRAM SWITCHES THE DISPLAY TO 80 COLUMN TEXT MODE ON
; THE COLOR GRAPHICS CARD AND MONITOR WITH A BLUE BACKGROUND AND
; INTENSE WHITE TEXT CHARACTERS.
;
; THE BORDER, COLUMN AND SETATTR CONSTANTS CAN BE SET TO ANY DESIRED
; COMBINATION. REFER TO THE THE TECHNICAL REFERENCE MANUAL PAGE 2-51.
; USE THE MACRO ASSEMBLER, LINK AND EXE2BIN PROGRAMS TO PRODUCE A NEW
; COM FILE WITH THE NEW COMBINATIONS. NOTE: IGNORE THE WARNING MESSAGE
; "NO STACK SEGMENT" PRODUCED BY THE LINK PROGRAM.
;
; PRINT INFORMATION:
; THIS PROGRAM IS ENTERED USING DEFAULT TABS FOR OBVIOUS REASONS.
; HOWEVER, CERTAIN PRINTERS DO NOT RECOGNIZE CONSECUTIVE TAB CHARACTERS.
; THEREFORE TO PRINT THIS PROGRAM DURING ASSEMBLY AS ENTERED DIRECT
; THE OUTPUT TO THE CONSOLE AND USE Ctrl PrtSc TO SENT THE OUTPUT TO
; THE PRINTER. YOUR OUTPUT WILL NOW HAVE A NICE FORMATTED APPEARANCE.
; TO OBTAIN A COMPRESSED OUTPUT ISSUE MODE LPT1:132 BEFORE ASSEMBLY.
;
;                                             		BOB STEPHENS
;							SAN JOSE, CA.
;							2/8/83
;
;**********************************************************************
;
; USE THE FOLLOWING NUBMERS FOR THE VARIOUS COLORS:
;  0=BLACK   1=BLUE    2=GREEN   3=CYAN
;  4=RED     5=MAGENTA 6=YELLOW  7=WHITE
;
BORDER		EQU	1		;BLUE BORDER COLOR (0-7 ADD
					;  8 FOR INTENSE COLORS)
COLUMN		EQU	80     		;COLUMN WIDTH (40 OR 80)
SETATTR   	EQU 	1FH 		;INTENSE WHITE ON BLUE
; FOR SETATTR USE:
;  0BBBFFFF (8 BITS)
;  WHERE BBB=BACKGROUND COLOR (0-7)
;        FFFF=FOREGROUND COLOR (0-7 ADD 8 FOR INTENSE COLORS)
;
;**********************************************************************
	SUBTTL MAIN PROGRAM
	PAGE
SETCOLOR SEGMENT PARA PUBLIC 'CODE'
	ASSUME CS:SETCOLOR,DS:SETCOLOR,SS:SETCOLOR,ES:SETCOLOR
;**********************************************************************
;SETCOLOR CODE BEGINS
;**********************************************************************
SETCLR	PROC FAR
START	EQU	$
 	MOV	AX,0040H		;SEE TECHNICAL REF. PAGE A-2
 					;  SEGMENT FOR EQUIPMENT FLAGS
 	MOV	DS,AX                   ;SET UP SEGMENT
 	MOV	AX,DS:[0010H]		;GET FLAGS
  	AND 	AL,0CFH			;ZERO DISPLAYS
     IF COLUMN EQ 80   			;TEST FOR WIDTH
 	OR	AL,020H			;SET COLOR MONITOR FLAG WIDTH 80
 	MOV	DS:[0010H],AX		;UPDATE FLAGS
	MOV	AX,0003H		;WIDTH 80
     ELSE
 	OR	AL,010H			;SET COLOR MONITOR FLAG WIDTH 40
 	MOV	DS:[0010H],AX		;UPDATE FLAGS
 	MOV	AX,0001H		;WIDTH 40
     ENDIF
	INT	10H			;SEE TECHNICAL REF. PAGE A-43
					;  SET MODE
;
	MOV	AX,0920H		;WRITE BLANKS TO CLEAR SCREEN
	MOV	BX,SETATTR  		;PAGE 0 AND ATTRIBUTE BYTE
	MOV 	CX,COLUMN*25 		;CHARACTER COUNT
	INT	10H			;SEE TECHNICAL REF. PAGE A-43
	   				;  WRITE ATTRIBUTE/CHARACTER
;
	MOV	BH,0			;PALLETTE O FOR THE BORDER
	MOV	BL,BORDER		;BORDER COLOR
	MOV	AH,11			;SET BORDER
	INT	10H			;SEE TECHNICAL REF. PAGE A-43
					;  SET BORDER COLOR
	INT   	20H			;RETURN TO DOS
;
;MACRO TO ALIGN ON PARAGRAPH BOUNDRY
     IF ($-START) MOD 16
ORG	($-START)+16-(($-START) MOD 16)
     ENDIF
;
        DB	'SETCOLOR PROGRAM'
        DB	'BOB STEPHENS    '
        DB	'SAN JOSE, CA.   '
        DB	'2/8/83          '
;
SETCLR 	ENDP
SETCOLOR ENDS
	END
