info EF9345

Mode monochromatique text et graphique (deux couleurs par caractere)
Attention très important, il faut régulièrement passer par la routine "ld hl ,_EF9345 call $00AD ", pour le timing ! (cette routine intègre le timing pour écrire dans le video processeur EF9345)
Exemple d'utilisation de la routine rom de "clefs pour VG5000 page 77"

Pense bête
- org $5000
- ;push hl
- ld a,0
- ld ($47FD),a
- ld hl,_graphic1
- ld a,33 ; code caractere
- call $001B
- ld hl,_graphic2
- ld a,34 ; code caractere
- call $001B
- ld hl,_ef9345; très important cette routine integre le fameux timing à mettre ;régulierement quand on envoie des donnés dans l'EF9345
- call $00AD ;sinon ça fait n'importe-quoi
- ld hl,_graphic3
- ld a,35 ; code caractere
- call $001B
- ld hl,_graphic4
- ld a,36 ; code caractere
- call $001B
- ld hl,_ef9345
- call $00AD
- ld hl,_graphic5
- ld a,37 ; code caractere
- call $001B
- ld hl,_ef9345
- call $00AD
- ;pop hl
- ;ret
- _efface_ecran_avec_caractere_37:
- ld a,37
- ld (_caractere5),a
- ld hl,_sequence5
- call $00AD
- ld hl,_ef9345
- call $00AD
- ld a,(_cursorx5)
- dec a
- ld (_cursorx5),a
- jp nz,_efface_ecran_avec_caractere_37
- ld hl,_sequence5
- call $00AD
- ld hl,_ef9345
- call $00AD
- ld a,(_cursory5)
- inc a
- ld (_cursory5),a
- ld a,39
- ld (_cursorx5),a
- ld a,(_cursory5)
- cp 32
- jp nz,_efface_ecran_avec_caractere_37
- ;push hl
- ld hl,_sequence0
- call $00AD
- ld hl,_sequence1
- call $00AD
- ld hl,_ef9345
- call $00AD
- ld hl,_sequence2
- call $00AD
- ld hl,_sequence3
- call $00AD
- ld hl,_ef9345
- call $00AD
- ld hl,_sequence4
- call $00AD
- ld hl,_sequence5
- call $00AD
- ld hl,_ef9345
- call $00AD
- ;jp _boucle
- ;pop hl
- ;ret
- _boucle_infini:
- jp _boucle_infini
- _ef9345:
- db 16;nomnbre d'octets à injecter dans l'ef9345
- db $00; R0
- db $00;donnée
- db $28;ro+8
- db $81; tgs
- db $21
- db $00
- db $28
- db $82; mat
- db $21
- db $67
- db $28
- db $83; pat
- db $21
- db $13
- db $28
- db $84; dor
- ;DB $20
- ;;DB $08
- ;DB $87
- ;DB $28
- _sequence0:
- db 12
- db $21 ; R1
- _caractere0:
- db 65; code caractere "A"
- db $22; R2
- _mode0:
- db $00; non redefini mono
- db $23; couleur de caractere
- _color0:
- db 228
- db $26; coordonnée y
- _cursory0:
- db 11
- db $27; coordonnée x
- _cursorx0:
- db 0
- db $28;RO+8
- db 00; krf
- _sequence1:
- db 12
- db $21 ; R1
- _caractere1:
- db 33; code caractere
- db $22; R2
- _mode1:
- db $80; redefini mono
- db $23; couleur de caractere
- _color1:
- db 228
- db $26; coordonnée y
- _cursory1:
- db 11
- db $27; coordonnée x
- _cursorx1:
- db 1
- db $28;RO+8
- db 00; krf
- _sequence2:
- db 12
- db $21 ; R1
- _caractere2:
- db 34; code caractere
- db $22; R2
- _mode2:
- db $80; redefini mono
- db $23; couleur de caractere
- _color2:
- db 160
- db $26; coordonnée y
- _cursory2:
- db 11
- db $27; coordonnée x
- _cursorx2:
- db 2
- db $28;RO+8
- db 00; krf
- _sequence3:
- db 12
- db $21 ; R1
- _caractere3:
- db 35; code caractere
- db $22; R2
- _mode3:
- db $80; redefini mono
- db $23; couleur de caractere
- _color3:
- db 177
- db $26; coordonnée y
- _cursory3:
- db 11
- db $27; coordonnée x
- _cursorx3:
- db 3
- db $28;RO+8
- db 00; krf
- _sequence4:
- db 12
- db $21 ; R1
- _caractere4:
- db 36; code caractere
- db $22; R2
- _mode4:
- db $80; redefini mono
- db $23; couleur de caractere
- _color4:
- db 211
- db $26; coordonnée y
- _cursory4:
- db 11
- db $27; coordonnée x
- _cursorx4:
- db 4
- db $28;RO+8
- db 00; krf
- _sequence5:
- db 12
- db $21 ; R1
- _caractere5:
- db 37; code caractere
- db $22; R2
- _mode5:
- db $d8; redefini quadrichrome
- db $23 ;r3
- _color5:
- db 211; couleur de caractere
- db $26; r6 coordonnée y
- _cursory5:
- db 0
- db $27; r7 coordonnée x
- _cursorx5:
- db 40
- db $28;RO+8
- db 00; krf
- _graphic1:
- db $00,$3C,$42,$9D,$9F,$9F,$9F,$46,$38,$00
- _graphic2:
- db $00,$00,$00,$84,$40,$7C,$7C,$40,$84,$00
- _graphic3:
- db $00,$54,$6A,$56,$2A,$3E,$1A,$0E,$18,$10
- _graphic4:
- db $00,$3C,$04,$08,$78,$48,$78,$08,$04,$3C
- _graphic5:
- db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
Mode graphique (Quatre couleurs par caractere)
ld hl,_graphic
ld a,33 ;code caractere
call $001b ; increment jusqu'a 10 automatiquement les données dans graphic
boucle:
ld hl,_ef9345
call $00ad ; appel la routine pour adresser l'ef9345
jp boucle
_graphic:
db 255,1,12,29,129,55,88,189,129,255 ; pixels aleatoires
_ef9345:
db 32 ; nombre de données a injester dans l'ED9345 ici il y en a 32 si dessous
db $21
db $01
db $28
db $81 ;tgs
db $21
db $04
db $28
db $82 ;mat
db $21
db $67
db $28
db $83 ;pat
db $21
db $13
db $28
db $84 ;dor
db $21
db $08 : écrant texte $28 pour écran graphique
db $28
db $87 ;ror vram (scrolling)
db $21
db 33 ;code caractere "!" redefini attention il n'y a que 96 caracteres setet et 96 seteg
db $22
db $d8 ;=mode multicolor setet redefini / $c8 seteg multicolorredefini / $00 = standard non redefini/ ; $80 graphique 2 couleurs
db $23
db 135 ; couleur ( voir le tableau des agencement des couleur )
db $26
db 19 ; position y
db $27
db 19 ;position x
db $28 fin execution
db 0
Mode texte " retour écran du BASIC "
_ef9345:
db 20 ; nombre de données a injecter dans l'ED9345 ici il y en a 20 si dessous
db $21
db $00
db $28
db $81 tgs
db $21
db $6E
db $28
db $82 mat
db $21
db $F7
db $28
db $83 pat
db $21
db $13
db $28
db $84 dor
db $21
db $08 écrant texte $28 pour écran graphique
db $28
db $87 ror vram (scrolling)
