            SECTION         text,CODE


            include         'regs.i'
            include         'vgacst.i'


            XREF            _ROMINF
            XREF            _ROMSUP
            XREF            _ROMDISC
            XREF            _RAM_00
            XREF            _RAM_01
            XREF            _RAM_03
            XREF            _RAM_C4
            XREF            _RAM_C5
            XREF            _RAM_C6
            XREF            _RAM_C7
            XREF            _GfxBase
            XREF            _VP
            XREF            adrEcr
            XREF            _VBL


LoadRGB4    EQU             -192            ;arrrrg... dans quel include ?


;
; RedrawScreen : redessine complètement l'écran
;
;                ENTREE : /
;                SORTIE : /
;
RedrawScreen:
            MOVEM.L         D0-D4/A3-A6,-(A7)
            MOVEQ           #0,D1
            MOVE.W          adrEcr,D2
            MOVE.L          POKE(A4,D2.W*4),A0
            LEA             _BitmapEcran,A3                 ; Plan 0
            LEA             _BitmapEcran+TAILLE_PLAN,A4     ; Plan 1
            LEA             _BitmapEcran+TAILLE_PLAN*2,A5   ; Plan 2
            LEA             _BitmapEcran+TAILLE_PLAN*3,A6   ; Plan 3
            MOVE.W          #$1FFF,D2
     

Rds1:       MOVE.W          0(A2,D2.W*4),D0        ; Adresse écran AMIGA
            BMI.S           Rds2

            MOVE.B          0(A0,D2.W*2),D1 ; Octet 0 mémoire écran

            MOVE.L          0(A1,D1.W*4),D3 ; Octet 0 Plan 0 à 3

            MOVE.B          1(A0,D2.W*2),D1 ; Octet 1 mémoire écran

            MOVE.B          D3,D4           ; sauvegarde poids faible D3
            MOVE.B          2(A1,D1.W*4),D3 ; Octet 1 Plan 0
            MOVE.W          D3,0(A5,D0.W)   ; Plan 2 -> D3.W

            LSL.W           #8,D4
            MOVE.B          3(A1,D1.W*4),D4 ; Octet 1 Plan 1
            MOVE.W          D4,0(A6,D0.W)   ; Plan 3 -> D4.W

            SWAP            D3
            MOVE.B          D3,D4           ; sauvegarde poids faible D3
            MOVE.B          0(A1,D1.W*4),D3 ; Octet 1 Plan 2
            MOVE.W          D3,0(A3,D0.W)   ; Plan 0 -> D3.W

            LSL.W           #8,D4
            MOVE.B          1(A1,D1.W*4),D4 ; Octet 1 Plan 3
            MOVE.W          D4,0(A4,D0.W)   ; Plan 1 -> D4.W

Rds2:       DBF             D2,Rds1

            MOVEM.L         (A7)+,D0-D4/A3-A6
            RTS


;
; ClrScreen : efface l'écran
;
;                ENTREE : /
;                SORTIE : /
;
ClrScreen:
            MOVEM.L         D4-D7/A1-A6,-(A7)
            LEA             _BitmapEcran+TAILLE_PLAN,A3
            LEA             _BitmapEcran+TAILLE_PLAN*2,A4
            LEA             _BitmapEcran+TAILLE_PLAN*3,A5
            LEA             _BitmapEcran+TAILLE_PLAN*4,A6
            MOVE.W          #255,D0 ; TAILLE_PLAN = 256 * 80
            MOVEQ           #0,D1
            MOVEQ           #0,D2
            MOVEQ           #0,D3
            MOVEQ           #0,D4
            MOVEQ           #0,D5
            MOVEQ           #0,D6
            MOVEQ           #0,D7
            SUBA.L          A0,A0
            SUBA.L          A1,A1
            SUBA.L          A2,A2

RdsM2_2:    MOVEM.L         D1-D7/A0-A2,-(A3)           ; efface 40 octets
            MOVEM.L         D1-D7/A0-A2,-(A4)
            MOVEM.L         D1-D7/A0-A2,-(A5)
            MOVEM.L         D1-D7/A0-A2,-(A6)

            MOVEM.L         D1-D7/A0-A2,-(A3)           ; et on double...
            MOVEM.L         D1-D7/A0-A2,-(A4)
            MOVEM.L         D1-D7/A0-A2,-(A5)
            MOVEM.L         D1-D7/A0-A2,-(A6)

            DBF             D0,RdsM2_2

            MOVEM.L         (A7)+,D4-D7/A1-A6
            MOVEQ           #0,D0
            RTS


;
; WriteVGA : Ecrit un octet dans le registre de controle du VGA
;
;                ENTREE : D1 = valeur
;                SORTIE : /
;
_WriteVGA:  MOVE.B          D1,D0
            AND.B           #$C0,D0
            BNE.S           WriteVGA1

            AND.W           #$F,D1
            MOVE.W          D1,Couleur
            RTS

WriteVGA1:  CMP.B           #$40,D0
            BNE.S           WriteVGA2
            MOVEM.L         A1/A6,-(A7)
            AND.W           #$1F,D1
            LEA             tabCouleursCPC,A0
            LEA             _TableRGB4,A1
            MOVE.W          Couleur,D0
            MOVE.W          0(A0,D1.W*2),D1
            CMP.W           0(A1,D0.W*2),D1
            BEQ.S           WriteVGA11
            MOVE.W          D1,0(A1,D0.W*2)
            MOVE.L          _VP,A0
            MOVE.L          _GfxBase,A6         ; Pointeur sur Graphics.library
            MOVE.W          #16,D0              ; Nombre de couleurs
            JSR             LoadRGB4(A6)
            MOVEQ           #0,D0
WriteVGA11: MOVEM.L         (A7)+,A1/A6
            RTS

WriteVGA2:  CMP.B           #$80,D0
            BNE.W           WriteVGA3
            OR.B            #ROMINF_SEL!ROMSUP_SEL,DecodeurAdresse
            BTST            #3,D1
            BEQ.S           WriteVGA21
            AND.B           #N_ROMSUP_SEL,DecodeurAdresse
WriteVGA21: BTST            #2,D1
            BEQ.S           WriteVGA22
            AND.B           #N_ROMINF_SEL,DecodeurAdresse
WriteVGA22: AND.W           #3,D1
            LEA             TabMode,A0
            MOVE.L          0(A0,D1.W*4),A1

;
; ChangeROM : Sélectionne/Déselectionne les ROMs
;
;                ENTREE : /
;                SORTIE : /
;
ChangeROM:  MOVE.B          DecodeurAdresse,D0
            MOVE.B          D0,D1
;
; Test pour la banque 0 (RAM_00 ou ROM_INF)
;
            LEA             _ROMINF,A0
            AND.B           #ROMINF_SEL,D0
            BNE.S           ChangeROM1

            LEA             _RAM_00,A0
ChangeROM1: MOVE.L          A0,PEEK(A4)
            MOVE.L          A0,PEEK+16(A4)      ; rebouclage pour macro PEEK16
;
; Test pour la banque 3 (RAM_03, ROM_SUP, ROM_DISC)
;
            LEA             _RAM_03,A0
            MOVE.B          D1,D0
            AND.B           #ROMSUP_SEL,D0
            BEQ.S           ChangeROM2

            LEA             _ROMSUP,A0
            AND.B           #ROMDISC_SEL,D1
            BEQ.S           ChangeROM2

            LEA             _ROMDISC,A0
ChangeROM2: MOVE.L          A0,PEEK+12(A4)  
            RTS


WriteVGA3:  MOVE.B          D1,D0

;
; ChangeRAM : Sélectionne/Déselectionne les RAMs supplémentaires du 6128
;
;                ENTREE : D0 = n° Banque RAM
;                SORTIE : /
;
ChangeRAM:  AND.B           #7,D0
;
; Changement de la banque 1 (RAM_01, RAM_C4...RAM_C7)
;
            LEA             _RAM_01,A0

            CMP.B           #4,D0
            BNE.S           ChangeRAM2
            LEA             _RAM_C4,A0
            BRA.S           ChangeRAM5

ChangeRAM2: CMP.B           #5,D0
            BNE.S           ChangeRAM3
            LEA             _RAM_C5,A0
            BRA.S           ChangeRAM5

ChangeRAM3: CMP.B           #6,D0
            BNE.S           ChangeRAM4
            LEA             _RAM_C6,A0
            BRA.S           ChangeRAM5

ChangeRAM4: CMP.B           #7,D0
            BNE.S           ChangeRAM5
            LEA             _RAM_C7,A0

ChangeRAM5: MOVE.L          A0,PEEK+4(A4)
            MOVE.L          A0,POKE+4(A4)
            RTS


            SECTION         data,DATA


tabCouleursCPC:
            DC.W            $888    ; Blanc            (13)
            DC.W            $888    ; Blanc            (13)
            DC.W            $0F8    ; Vert Marin       (19)
            DC.W            $FF8    ; Jaune Pastel     (25)
            DC.W            $008    ; Bleu              (1)
            DC.W            $F08    ; Pourpre           (7)
            DC.W            $088    ; Turquoise        (10)
            DC.W            $F88    ; Rose             (16)
            DC.W            $F08    ; Pourpre           (7)
            DC.W            $FF0    ; Jaune vif        (24)
            DC.W            $FF0    ; Jaune vif        (24)
            DC.W            $FFF    ; Blanc Brillant   (26)
            DC.W            $F00    ; Rouge vif         (6)
            DC.W            $F0F    ; Magenta vif       (8)
            DC.W            $F80    ; Orange           (15)
            DC.W            $F8F    ; Magenta pastel   (17)
            DC.W            $008    ; Bleu              (1)
            DC.W            $0F8    ; Vert Marin       (19)
            DC.W            $0F0    ; Vert vif         (18)
            DC.W            $0FF    ; Turquoise vif    (20)
            DC.W            $000    ; Noir              (0)
            DC.W            $00F    ; Bleu vif          (2)
            DC.W            $080    ; Vert              (9)
            DC.W            $08F    ; Bleu ciel        (11)
            DC.W            $808    ; Magenta           (4)
            DC.W            $8F8    ; Vert pastel      (22)
            DC.W            $8F0    ; Vert citron      (21)
            DC.W            $8FF    ; Turquoise pastel (23)
            DC.W            $800    ; Rouge             (3)
            DC.W            $80F    ; Mauve             (5)
            DC.W            $880    ; Jaune            (12)
            DC.W            $88F    ; Bleu pastel      (14)

;
; Tableau des valeurs à envoyer en fonction de l'octet se trouvant
; en mémoie écran du cpc, pour chacun des 4 plans Amiga...
;
tabOctMode0:
            DC.L            $00000000,$0000000F,$000000F0,$000000FF
            DC.L            $000F0000,$000F000F,$000F00F0,$000F00FF
            DC.L            $00F00000,$00F0000F,$00F000F0,$00F000FF
            DC.L            $00FF0000,$00FF000F,$00FF00F0,$00FF00FF
            DC.L            $00000F00,$00000F0F,$00000FF0,$00000FFF
            DC.L            $000F0F00,$000F0F0F,$000F0FF0,$000F0FFF
            DC.L            $00F00F00,$00F00F0F,$00F00FF0,$00F00FFF
            DC.L            $00FF0F00,$00FF0F0F,$00FF0FF0,$00FF0FFF
            DC.L            $0000F000,$0000F00F,$0000F0F0,$0000F0FF
            DC.L            $000FF000,$000FF00F,$000FF0F0,$000FF0FF
            DC.L            $00F0F000,$00F0F00F,$00F0F0F0,$00F0F0FF
            DC.L            $00FFF000,$00FFF00F,$00FFF0F0,$00FFF0FF
            DC.L            $0000FF00,$0000FF0F,$0000FFF0,$0000FFFF
            DC.L            $000FFF00,$000FFF0F,$000FFFF0,$000FFFFF
            DC.L            $00F0FF00,$00F0FF0F,$00F0FFF0,$00F0FFFF
            DC.L            $00FFFF00,$00FFFF0F,$00FFFFF0,$00FFFFFF
            DC.L            $0F000000,$0F00000F,$0F0000F0,$0F0000FF
            DC.L            $0F0F0000,$0F0F000F,$0F0F00F0,$0F0F00FF
            DC.L            $0FF00000,$0FF0000F,$0FF000F0,$0FF000FF
            DC.L            $0FFF0000,$0FFF000F,$0FFF00F0,$0FFF00FF
            DC.L            $0F000F00,$0F000F0F,$0F000FF0,$0F000FFF
            DC.L            $0F0F0F00,$0F0F0F0F,$0F0F0FF0,$0F0F0FFF
            DC.L            $0FF00F00,$0FF00F0F,$0FF00FF0,$0FF00FFF
            DC.L            $0FFF0F00,$0FFF0F0F,$0FFF0FF0,$0FFF0FFF
            DC.L            $0F00F000,$0F00F00F,$0F00F0F0,$0F00F0FF
            DC.L            $0F0FF000,$0F0FF00F,$0F0FF0F0,$0F0FF0FF
            DC.L            $0FF0F000,$0FF0F00F,$0FF0F0F0,$0FF0F0FF
            DC.L            $0FFFF000,$0FFFF00F,$0FFFF0F0,$0FFFF0FF
            DC.L            $0F00FF00,$0F00FF0F,$0F00FFF0,$0F00FFFF
            DC.L            $0F0FFF00,$0F0FFF0F,$0F0FFFF0,$0F0FFFFF
            DC.L            $0FF0FF00,$0FF0FF0F,$0FF0FFF0,$0FF0FFFF
            DC.L            $0FFFFF00,$0FFFFF0F,$0FFFFFF0,$0FFFFFFF
            DC.L            $F0000000,$F000000F,$F00000F0,$F00000FF
            DC.L            $F00F0000,$F00F000F,$F00F00F0,$F00F00FF
            DC.L            $F0F00000,$F0F0000F,$F0F000F0,$F0F000FF
            DC.L            $F0FF0000,$F0FF000F,$F0FF00F0,$F0FF00FF
            DC.L            $F0000F00,$F0000F0F,$F0000FF0,$F0000FFF
            DC.L            $F00F0F00,$F00F0F0F,$F00F0FF0,$F00F0FFF
            DC.L            $F0F00F00,$F0F00F0F,$F0F00FF0,$F0F00FFF
            DC.L            $F0FF0F00,$F0FF0F0F,$F0FF0FF0,$F0FF0FFF
            DC.L            $F000F000,$F000F00F,$F000F0F0,$F000F0FF
            DC.L            $F00FF000,$F00FF00F,$F00FF0F0,$F00FF0FF
            DC.L            $F0F0F000,$F0F0F00F,$F0F0F0F0,$F0F0F0FF
            DC.L            $F0FFF000,$F0FFF00F,$F0FFF0F0,$F0FFF0FF
            DC.L            $F000FF00,$F000FF0F,$F000FFF0,$F000FFFF
            DC.L            $F00FFF00,$F00FFF0F,$F00FFFF0,$F00FFFFF
            DC.L            $F0F0FF00,$F0F0FF0F,$F0F0FFF0,$F0F0FFFF
            DC.L            $F0FFFF00,$F0FFFF0F,$F0FFFFF0,$F0FFFFFF
            DC.L            $FF000000,$FF00000F,$FF0000F0,$FF0000FF
            DC.L            $FF0F0000,$FF0F000F,$FF0F00F0,$FF0F00FF
            DC.L            $FFF00000,$FFF0000F,$FFF000F0,$FFF000FF
            DC.L            $FFFF0000,$FFFF000F,$FFFF00F0,$FFFF00FF
            DC.L            $FF000F00,$FF000F0F,$FF000FF0,$FF000FFF
            DC.L            $FF0F0F00,$FF0F0F0F,$FF0F0FF0,$FF0F0FFF
            DC.L            $FFF00F00,$FFF00F0F,$FFF00FF0,$FFF00FFF
            DC.L            $FFFF0F00,$FFFF0F0F,$FFFF0FF0,$FFFF0FFF
            DC.L            $FF00F000,$FF00F00F,$FF00F0F0,$FF00F0FF
            DC.L            $FF0FF000,$FF0FF00F,$FF0FF0F0,$FF0FF0FF
            DC.L            $FFF0F000,$FFF0F00F,$FFF0F0F0,$FFF0F0FF
            DC.L            $FFFFF000,$FFFFF00F,$FFFFF0F0,$FFFFF0FF
            DC.L            $FF00FF00,$FF00FF0F,$FF00FFF0,$FF00FFFF
            DC.L            $FF0FFF00,$FF0FFF0F,$FF0FFFF0,$FF0FFFFF
            DC.L            $FFF0FF00,$FFF0FF0F,$FFF0FFF0,$FFF0FFFF
            DC.L            $FFFFFF00,$FFFFFF0F,$FFFFFFF0,$FFFFFFFF


tabOctMode1:
            DC.L            $00000000,$00030000,$000C0000,$000F0000
            DC.L            $00300000,$00330000,$003C0000,$003F0000
            DC.L            $00C00000,$00C30000,$00CC0000,$00CF0000
            DC.L            $00F00000,$00F30000,$00FC0000,$00FF0000
            DC.L            $03000000,$03030000,$030C0000,$030F0000
            DC.L            $03300000,$03330000,$033C0000,$033F0000
            DC.L            $03C00000,$03C30000,$03CC0000,$03CF0000
            DC.L            $03F00000,$03F30000,$03FC0000,$03FF0000
            DC.L            $0C000000,$0C030000,$0C0C0000,$0C0F0000
            DC.L            $0C300000,$0C330000,$0C3C0000,$0C3F0000
            DC.L            $0CC00000,$0CC30000,$0CCC0000,$0CCF0000
            DC.L            $0CF00000,$0CF30000,$0CFC0000,$0CFF0000
            DC.L            $0F000000,$0F030000,$0F0C0000,$0F0F0000
            DC.L            $0F300000,$0F330000,$0F3C0000,$0F3F0000
            DC.L            $0FC00000,$0FC30000,$0FCC0000,$0FCF0000
            DC.L            $0FF00000,$0FF30000,$0FFC0000,$0FFF0000
            DC.L            $30000000,$30030000,$300C0000,$300F0000
            DC.L            $30300000,$30330000,$303C0000,$303F0000
            DC.L            $30C00000,$30C30000,$30CC0000,$30CF0000
            DC.L            $30F00000,$30F30000,$30FC0000,$30FF0000
            DC.L            $33000000,$33030000,$330C0000,$330F0000
            DC.L            $33300000,$33330000,$333C0000,$333F0000
            DC.L            $33C00000,$33C30000,$33CC0000,$33CF0000
            DC.L            $33F00000,$33F30000,$33FC0000,$33FF0000
            DC.L            $3C000000,$3C030000,$3C0C0000,$3C0F0000
            DC.L            $3C300000,$3C330000,$3C3C0000,$3C3F0000
            DC.L            $3CC00000,$3CC30000,$3CCC0000,$3CCF0000
            DC.L            $3CF00000,$3CF30000,$3CFC0000,$3CFF0000
            DC.L            $3F000000,$3F030000,$3F0C0000,$3F0F0000
            DC.L            $3F300000,$3F330000,$3F3C0000,$3F3F0000
            DC.L            $3FC00000,$3FC30000,$3FCC0000,$3FCF0000
            DC.L            $3FF00000,$3FF30000,$3FFC0000,$3FFF0000
            DC.L            $C0000000,$C0030000,$C00C0000,$C00F0000
            DC.L            $C0300000,$C0330000,$C03C0000,$C03F0000
            DC.L            $C0C00000,$C0C30000,$C0CC0000,$C0CF0000
            DC.L            $C0F00000,$C0F30000,$C0FC0000,$C0FF0000
            DC.L            $C3000000,$C3030000,$C30C0000,$C30F0000
            DC.L            $C3300000,$C3330000,$C33C0000,$C33F0000
            DC.L            $C3C00000,$C3C30000,$C3CC0000,$C3CF0000
            DC.L            $C3F00000,$C3F30000,$C3FC0000,$C3FF0000
            DC.L            $CC000000,$CC030000,$CC0C0000,$CC0F0000
            DC.L            $CC300000,$CC330000,$CC3C0000,$CC3F0000
            DC.L            $CCC00000,$CCC30000,$CCCC0000,$CCCF0000
            DC.L            $CCF00000,$CCF30000,$CCFC0000,$CCFF0000
            DC.L            $CF000000,$CF030000,$CF0C0000,$CF0F0000
            DC.L            $CF300000,$CF330000,$CF3C0000,$CF3F0000
            DC.L            $CFC00000,$CFC30000,$CFCC0000,$CFCF0000
            DC.L            $CFF00000,$CFF30000,$CFFC0000,$CFFF0000
            DC.L            $F0000000,$F0030000,$F00C0000,$F00F0000
            DC.L            $F0300000,$F0330000,$F03C0000,$F03F0000
            DC.L            $F0C00000,$F0C30000,$F0CC0000,$F0CF0000
            DC.L            $F0F00000,$F0F30000,$F0FC0000,$F0FF0000
            DC.L            $F3000000,$F3030000,$F30C0000,$F30F0000
            DC.L            $F3300000,$F3330000,$F33C0000,$F33F0000
            DC.L            $F3C00000,$F3C30000,$F3CC0000,$F3CF0000
            DC.L            $F3F00000,$F3F30000,$F3FC0000,$F3FF0000
            DC.L            $FC000000,$FC030000,$FC0C0000,$FC0F0000
            DC.L            $FC300000,$FC330000,$FC3C0000,$FC3F0000
            DC.L            $FCC00000,$FCC30000,$FCCC0000,$FCCF0000
            DC.L            $FCF00000,$FCF30000,$FCFC0000,$FCFF0000
            DC.L            $FF000000,$FF030000,$FF0C0000,$FF0F0000
            DC.L            $FF300000,$FF330000,$FF3C0000,$FF3F0000
            DC.L            $FFC00000,$FFC30000,$FFCC0000,$FFCF0000
            DC.L            $FFF00000,$FFF30000,$FFFC0000,$FFFF0000


tabOctMode2:
            DC.L            $00000000,$01000000,$02000000,$03000000
            DC.L            $04000000,$05000000,$06000000,$07000000
            DC.L            $08000000,$09000000,$0A000000,$0B000000
            DC.L            $0C000000,$0D000000,$0E000000,$0F000000
            DC.L            $10000000,$11000000,$12000000,$13000000
            DC.L            $14000000,$15000000,$16000000,$17000000
            DC.L            $18000000,$19000000,$1A000000,$1B000000
            DC.L            $1C000000,$1D000000,$1E000000,$1F000000
            DC.L            $20000000,$21000000,$22000000,$23000000
            DC.L            $24000000,$25000000,$26000000,$27000000
            DC.L            $28000000,$29000000,$2A000000,$2B000000
            DC.L            $2C000000,$2D000000,$2E000000,$2F000000
            DC.L            $30000000,$31000000,$32000000,$33000000
            DC.L            $34000000,$35000000,$36000000,$37000000
            DC.L            $38000000,$39000000,$3A000000,$3B000000
            DC.L            $3C000000,$3D000000,$3E000000,$3F000000
            DC.L            $40000000,$41000000,$42000000,$43000000
            DC.L            $44000000,$45000000,$46000000,$47000000
            DC.L            $48000000,$49000000,$4A000000,$4B000000
            DC.L            $4C000000,$4D000000,$4E000000,$4F000000
            DC.L            $50000000,$51000000,$52000000,$53000000
            DC.L            $54000000,$55000000,$56000000,$57000000
            DC.L            $58000000,$59000000,$5A000000,$5B000000
            DC.L            $5C000000,$5D000000,$5E000000,$5F000000
            DC.L            $60000000,$61000000,$62000000,$63000000
            DC.L            $64000000,$65000000,$66000000,$67000000
            DC.L            $68000000,$69000000,$6A000000,$6B000000
            DC.L            $6C000000,$6D000000,$6E000000,$6F000000
            DC.L            $70000000,$71000000,$72000000,$73000000
            DC.L            $74000000,$75000000,$76000000,$77000000
            DC.L            $78000000,$79000000,$7A000000,$7B000000
            DC.L            $7C000000,$7D000000,$7E000000,$7F000000
            DC.L            $80000000,$81000000,$82000000,$83000000
            DC.L            $84000000,$85000000,$86000000,$87000000
            DC.L            $88000000,$89000000,$8A000000,$8B000000
            DC.L            $8C000000,$8D000000,$8E000000,$8F000000
            DC.L            $90000000,$91000000,$92000000,$93000000
            DC.L            $94000000,$95000000,$96000000,$97000000
            DC.L            $98000000,$99000000,$9A000000,$9B000000
            DC.L            $9C000000,$9D000000,$9E000000,$9F000000
            DC.L            $A0000000,$A1000000,$A2000000,$A3000000
            DC.L            $A4000000,$A5000000,$A6000000,$A7000000
            DC.L            $A8000000,$A9000000,$AA000000,$AB000000
            DC.L            $AC000000,$AD000000,$AE000000,$AF000000
            DC.L            $B0000000,$B1000000,$B2000000,$B3000000
            DC.L            $B4000000,$B5000000,$B6000000,$B7000000
            DC.L            $B8000000,$B9000000,$BA000000,$BB000000
            DC.L            $BC000000,$BD000000,$BE000000,$BF000000
            DC.L            $C0000000,$C1000000,$C2000000,$C3000000
            DC.L            $C4000000,$C5000000,$C6000000,$C7000000
            DC.L            $C8000000,$C9000000,$CA000000,$CB000000
            DC.L            $CC000000,$CD000000,$CE000000,$CF000000
            DC.L            $D0000000,$D1000000,$D2000000,$D3000000
            DC.L            $D4000000,$D5000000,$D6000000,$D7000000
            DC.L            $D8000000,$D9000000,$DA000000,$DB000000
            DC.L            $DC000000,$DD000000,$DE000000,$DF000000
            DC.L            $E0000000,$E1000000,$E2000000,$E3000000
            DC.L            $E4000000,$E5000000,$E6000000,$E7000000
            DC.L            $E8000000,$E9000000,$EA000000,$EB000000
            DC.L            $EC000000,$ED000000,$EE000000,$EF000000
            DC.L            $F0000000,$F1000000,$F2000000,$F3000000
            DC.L            $F4000000,$F5000000,$F6000000,$F7000000
            DC.L            $F8000000,$F9000000,$FA000000,$FB000000
            DC.L            $FC000000,$FD000000,$FE000000,$FF000000



;
; Tableau de fonctions à appeler lors d'un acces en écriture à la ram vidéo
; (suivant le mode écran déterminé)
;
TabMode:
            DC.L            tabOctMode0         ; mode 0
            DC.L            tabOctMode1         ; mode 1
            DC.L            tabOctMode2         ; mode 2
            DC.L            tabOctMode0         ; hybride (inutilisé)


;
; Table utilisée par LoadRGB4
;
_TableRGB4: DS.W            16

Couleur:    DC.W            0,0


DecodeurAdresse:
            DC.B            ROMINF_SEL,0,0,0


            SECTION         udatac,BSS_C

_BitmapEcran:
            DS.B            80*256*4


            XDEF            RedrawScreen
            XDEF            ClrScreen
            XDEF            ChangeROM
            XDEF            ChangeRAM
            XDEF            _WriteVGA
            XDEF            _BitmapEcran
            XDEF            DecodeurAdresse
            XDEF            _TableRGB4


            END
