ASSUME CS:MAIN,DS:DONNEES

DONNEES SEGMENT PARA
	NOM_MST DB  "NOM.MST",0
	RED   DB 256 DUP(0)
	GRN   DB 256 DUP(0)
	BLU   DB 256 DUP(0)
DONNEES ENDS

PICT SEGMENT PARA 
	DESSIN  DB 65535 DUP(0)
PICT ENDS

PILE SEGMENT STACK
	STACKS  DB 4096 DUP(0)
PILE ENDS

ASSUME CS:MAIN,SS:PILE,DS:DONNEES

MAIN SEGMENT 

;DEBUT DU CODE
;-------------

START PROC FAR

	PUSH    DS                      ;PREPARATION DU CODE DE FIN
	MOV     AX,0
	PUSH    AX
	MOV     AX,DONNEES
	MOV     DS,AX

	MOV     AX,13H
	INT     10H

;CHARGEMENT DU FICHIER
;---------------------

	MOV     AX,DONNEES
	MOV     DS,AX
	
	MOV     AX,03D00H               ;OUVERTURE DE NOM.MST
	MOV     DX,OFFSET NOM_MST
	INT     021H
	MOV     BX,AX
	
	MOV     AX,PICT
	MOV     DS,AX                   ;SEGMENT DESTINATION
	MOV     AX,03F00H               ;LECTURE FICHIER
	MOV     DX,OFFSET DESSIN        ;OFFSET MEMOIRE DESTINATION
	MOV     CX,64829                ;LONGUEUR FICHIER
	INT     021H                    ;APPEL SYSTEME

	MOV     AX,03E00H               ;FERMETURE FICHIER
	INT     021H
	
	MOV     AX,PICT
	MOV     DS,AX
	XOR     BX,BX
	MOV     SI,50
	MOV     DX,3C8H
	MOV     AL,0
	OUT     DX,AL
	INC     DX
ALIEN1:                           ;LECTURE COULEURS
	MOV     AL,DS:SI
	INC     SI
	SHR     AL,2
	OUT     DX,AL
	MOV     AL,DS:SI
	INC     SI
	SHR     AL,2
	OUT     DX,AL
	MOV     AL,DS:SI
	INC     SI
	SHR     AL,2
	OUT     DX,AL
	INC     BX
	CMP     BX,256
	JNE     ALIEN1

;AFFICHAGE
;---------

	MOV     AX,0A000H
	MOV     ES,AX
	MOV     AX,PICT
	MOV     CX,32000
	MOV     SI,818
	XOR     DI,DI
	REP     MOVSW

	RET
START ENDP
MAIN ENDS
END START

