 ; http://www.cpcrulez.2ya.com
 ;

 ;
 ;      RUBI_DOUILLE (c) 1989
 ;
 ; ----- AFFICHEUR OVERSCAN -----
 ;
 ;
            ORG    #8000

            CP     1
            RET    NZ
            LD     L,(IX+0)
            LD     H,(IX+1)
            LD     C,(HL)
            INC    HL
            LD     E,(HL)
            INC    HL
            LD     D,(HL)
            LD     B,0
            LD     A,C
            ADD    A,4
            PUSH   AF
            LD     HL,NOM
            EX     DE,HL
            LDIR
            EX     DE,HL
 ;
            LD     (HL),"."    ; Rajouter extention
            INC    HL
            LD     (HL),"S"
            INC    HL
            LD     (HL),"C"
            INC    HL
            LD     (HL),"A"
            INC    HL

            POP    BC
            LD     HL,NOM
            LD     DE,#680     ; Chargement d'un
            CALL   #BC77       ; sprite de 24Ko ( 92*264)

            RET    NC          ; Test si ok

            LD     HL,#D0      ; Sauvegarde du Basic
            LD     DE,#8200
            LD     BC,#1200
            LDIR

            LD     BC,#BC01    ; On Cache l'ecran
            OUT    (C),C
            DEC    C
            INC    B
            OUT    (C),C

            LD     HL,#680     ; On charge
            CALL   #BC83
            CALL   #BC7A
 ;
            LD     HL,#4000    ; On deplace le sprite 
                               ; pour l'afficher

            PUSH   HL 
            PUSH   HL
            PUSH   HL
            LD     DE,#C000
            LD     B,H
            LD     C,L
            LDIR
            LD     HL,#680
            POP    DE
            LD     BC,#3980
            LDIR

            POP    DE          ; On affiche le haut
            LD     HL,#D0
            LD     B,160
            LD     C,#C0
            CALL   ENVOIE

            LD     DE,#C000    ; On affiche le bas
            POP    HL
            LD     B,104
            LD     C,#80
            CALL   ENVOIE

            LD     HL,ECR1     ; On active l'overscan
            CALL   OUTT        ;

            LD     HL,#C000    ; On vide l'ancien ecran
            LD     D,H
            LD     E,1
            LD     BC,#4000
            LD     (HL),0
            LDIR

            CALL   #BB06

            LD     HL,ECR2     ; Ecran AMSTRAD demande
            CALL   OUTT

            LD     HL,#8200
            LD     DE,#D0
            LD     BC,#1E00
            LDIR
            RET

 ENVOIE:    PUSH   BC          ; C5
            PUSH   HL          ; E5
            EX     DE,HL       ; EB
            LD     BC,92       ;
            LDIR               ;
            EX     DE,HL       ; EB
            POP    HL          ; E1
            POP    BC          ; C1
            PUSH   DE          ; D5
            LD     A,H         ; 7C
            ADD    A,8         ;
            LD     H,A         ; 67
            AND    C           ; A1
            JR     Z,ENVOIE_1  ;
            LD     DE,#C000+92 ;
            ADD    HL,DE       ; 19
 ENVOIE_1:
            POP    DE          ; D1
            DJNZ   ENVOIE      ;
            RET                ; C9

 OUTT:                         ; Dressage du CRTC
            LD     C,6         ;
            LD     B,#BD       ;
 OUT1:
            DEC    B           ; 05
            LD     A,(HL)      ; 7E
            OUT    (C),A       ;
            INC    B           ; 04
            INC    HL          ; 23
            LD     A,(HL)      ; 7E
            OUT    (C),A       ;
            INC    HL          ; 23
            DEC    C           ; 0D
            JR     NZ,OUT1     ;
            RET                ; C9

 ECR1:        DB &01,&2E
              DB &02,&31
              DB &06,&21
              DB &07,&22
              DB &0c,&0C
              DB &0d,&68

 ECR2:      DB &01,&28,&02,&2e,&06,&19
            DB &07,&1e,&0c,&30,&0d,&00

