PAGE	58,132
TITLE	Graphics Demo
.MODEL MEDIUM
.386
INCLUDE DENNIS.MAC
.STACK
.DATA
EXM		DB	"Demo Finished",13,10,24H
KEY		DB	"Press a key when ready.....",13,10,24H
MESS		DB	"Dennis's Graphics Demo.",13,10,24H
DEMOLIKE	DB	"Demo 1 finished.  To see the next, not like you have a choice",13,10,24H
CO		DB	?
G		DB	?
R		DB	?
B		DB	?
X		DW	?
Y		DW	?
SM		DW	?
.CODE

MAIN	PROC	FAR
	PUSHA
	PUSH	DS
	MOV	AX,@DATA
	MOV	DS,AX
	MOV	ES,AX
	SCREEN	03h
	XOR	AX,AX
	MOV	CO,0
	MOV	CX,1
	MOV	X,1
	MOV	Y,1

INTRO:
	PRINT	MESS
	PRINT	KEY
	MOV	AH,07h
	INT	21h		;Wait for a keypress
ModeSet:
	SCREEN	13h
	XOR	BX,BX
INPALSET:
	INC	CO		      ;Set initial palette to
	MOV	R,62		      ;white by setting red green and
	MOV	G,62	      ;blue values to maximum.
	MOV	B,62	      ;
	PAL	CO,R,G,B	 ;Set palette
	CMP	CO,6		      ;
	JE	BSET		      ;
	JMP	INPALSET	      ;
BSET:
	MOV	CO,1			;Set values to 0 for registers and
	XOR	CX,CX			;1 for colour to start fresh.
	XOR	BX,BX
	XOR	DX,DX
COLCOMP:
	CMP	CO,6		;See if the colour is 6, if it is then
	JE	GFX1
	INC	CO
	XOR	CX,CX
DRAW1_2:
	MOV	X,0
	MOV	CX,0
	PUSH	DS
	MOV	AX,320
	XOR	BX,BX
	MOV	BX,Y
	MUL	BX
	ADD	AX,X
	MOV	CL,CO
	MOV	BX,0A000H
	MOV	ES,BX
	MOV	DI,AX
DAG:
	MOV	ES:[DI],CL
	INC	X
	INC	DI
	CMP	X,26C0H
	JL	DAG
	POP	DS
	JMP	COLCOMP
GFX1:
	MOV	R,0		;SET VALUES TO 0
	MOV	G,0
	MOV	B,0
	MOV	CO,0
	MOV	SM,0
GFX1LOOP:
	ADD	CO,1
	CMP	CO,6
	JE	GFX2
	ADD	R,10
	ADD	G,10
	ADD	B,10
	PAL	CO,R,G,B
	JMP	GFX1LOOP
GFX2:
	MOV	SM,0
	MOV	CO,0
	MOV	R,0
	MOV	G,0
	MOV	B,0
	MOV	CX,0
GFX2L:
	ADD	CO,1
	CMP	CO,7
	JE	PR
	ADD	SM,10
	MOV	CX,SM
	MOV	R,CL
	MOV	G,CL
	MOV	B,CL
RED:
	PUSH	CX
	PAL	CO,R,G,B
	POP	CX
	DEC	R
	LOOP	RED
	MOV	CX,SM
BLUE:
	PUSH	CX
	PAL	CO,R,G,B
	POP	CX
	DEC	B
	LOOP	BLUE
	MOV	CX,SM
GREEN:
	PUSH	CX
	PAL	CO,R,G,B
	POP	CX
	DEC	G
	LOOP	GREEN
	JMP	GFX2L
PR:
	PAL	1,63,63,63
	SCREEN	03h
	PRINT	DEMOLIKE
	PRINT	KEY
	MOV	AH,07h
	INT	21h		;Wait for a keypress








	MOV	AX,4C00H
	INT	21H
	RET
MAIN	ENDP
	END	MAIN
