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

  1. org $5000
  2. ;push hl
  3. ld a,0
  4. ld ($47FD),a
  5. ld hl,_graphic1
  6. ld a,33 ; code caractere
  7. call $001B
  8. ld hl,_graphic2
  9. ld a,34 ; code caractere
  10. call $001B
  11. ld hl,_ef9345; très important cette routine integre le fameux timing à mettre ;régulierement quand on envoie des donnés dans l'EF9345
  12. call $00AD ;sinon ça fait n'importe-quoi
  13. ld hl,_graphic3
  14. ld a,35 ; code caractere
  15. call $001B
  16. ld hl,_graphic4
  17. ld a,36 ; code caractere
  18. call $001B
  19. ld hl,_ef9345
  20. call $00AD
  21. ld hl,_graphic5
  22. ld a,37 ; code caractere
  23. call $001B
  24. ld hl,_ef9345
  25. call $00AD
  26. ;pop hl
  27. ;ret
  28. _efface_ecran_avec_caractere_37:
  29. ld a,37
  30. ld (_caractere5),a
  31. ld hl,_sequence5
  32. call $00AD
  33. ld hl,_ef9345
  34. call $00AD
  35. ld a,(_cursorx5)
  36. dec a
  37. ld (_cursorx5),a
  38. jp nz,_efface_ecran_avec_caractere_37
  39. ld hl,_sequence5
  40. call $00AD
  41. ld hl,_ef9345
  42. call $00AD
  43. ld a,(_cursory5)
  44. inc a
  45. ld (_cursory5),a
  46. ld a,39
  47. ld (_cursorx5),a
  48. ld a,(_cursory5)
  49. cp 32
  50. jp nz,_efface_ecran_avec_caractere_37
  51. ;push hl
  52. ld hl,_sequence0
  53. call $00AD
  54. ld hl,_sequence1
  55. call $00AD
  56. ld hl,_ef9345
  57. call $00AD
  58. ld hl,_sequence2
  59. call $00AD
  60. ld hl,_sequence3
  61. call $00AD
  62. ld hl,_ef9345
  63. call $00AD
  64. ld hl,_sequence4
  65. call $00AD
  66. ld hl,_sequence5
  67. call $00AD
  68. ld hl,_ef9345
  69. call $00AD
  70. ;jp _boucle
  71. ;pop hl
  72. ;ret
  73. _boucle_infini:
  74. jp _boucle_infini
  75. _ef9345:
  76. db 16;nomnbre d'octets à injecter dans l'ef9345
  77. db $00; R0
  78. db $00;donnée
  79. db $28;ro+8
  80. db $81; tgs
  81. db $21
  82. db $00
  83. db $28
  84. db $82; mat
  85. db $21
  86. db $67
  87. db $28
  88. db $83; pat
  89. db $21
  90. db $13
  91. db $28
  92. db $84; dor
  93. ;DB $20
  94. ;;DB $08
  95. ;DB $87
  96. ;DB $28
  97. _sequence0:
  98. db 12
  99. db $21 ; R1
  100. _caractere0:
  101. db 65; code caractere "A"
  102. db $22; R2
  103. _mode0:
  104. db $00; non redefini mono
  105. db $23; couleur de caractere
  106. _color0:
  107. db 228
  108. db $26; coordonnée y
  109. _cursory0:
  110. db 11
  111. db $27; coordonnée x
  112. _cursorx0:
  113. db 0
  114. db $28;RO+8
  115. db 00; krf
  116. _sequence1:
  117. db 12
  118. db $21 ; R1
  119. _caractere1:
  120. db 33; code caractere
  121. db $22; R2
  122. _mode1:
  123. db $80; redefini mono
  124. db $23; couleur de caractere
  125. _color1:
  126. db 228
  127. db $26; coordonnée y
  128. _cursory1:
  129. db 11
  130. db $27; coordonnée x
  131. _cursorx1:
  132. db 1
  133. db $28;RO+8
  134. db 00; krf
  135. _sequence2:
  136. db 12
  137. db $21 ; R1
  138. _caractere2:
  139. db 34; code caractere
  140. db $22; R2
  141. _mode2:
  142. db $80; redefini mono
  143. db $23; couleur de caractere
  144. _color2:
  145. db 160
  146. db $26; coordonnée y
  147. _cursory2:
  148. db 11
  149. db $27; coordonnée x
  150. _cursorx2:
  151. db 2
  152. db $28;RO+8
  153. db 00; krf
  154. _sequence3:
  155. db 12
  156. db $21 ; R1
  157. _caractere3:
  158. db 35; code caractere
  159. db $22; R2
  160. _mode3:
  161. db $80; redefini mono
  162. db $23; couleur de caractere
  163. _color3:
  164. db 177
  165. db $26; coordonnée y
  166. _cursory3:
  167. db 11
  168. db $27; coordonnée x
  169. _cursorx3:
  170. db 3
  171. db $28;RO+8
  172. db 00; krf
  173. _sequence4:
  174. db 12
  175. db $21 ; R1
  176. _caractere4:
  177. db 36; code caractere
  178. db $22; R2
  179. _mode4:
  180. db $80; redefini mono
  181. db $23; couleur de caractere
  182. _color4:
  183. db 211
  184. db $26; coordonnée y
  185. _cursory4:
  186. db 11
  187. db $27; coordonnée x
  188. _cursorx4:
  189. db 4
  190. db $28;RO+8
  191. db 00; krf
  192. _sequence5:
  193. db 12
  194. db $21 ; R1
  195. _caractere5:
  196. db 37; code caractere
  197. db $22; R2
  198. _mode5:
  199. db $d8; redefini quadrichrome
  200. db $23 ;r3
  201. _color5:
  202. db 211; couleur de caractere
  203. db $26; r6 coordonnée y
  204. _cursory5:
  205. db 0
  206. db $27; r7 coordonnée x
  207. _cursorx5:
  208. db 40
  209. db $28;RO+8
  210. db 00; krf
  211. _graphic1:
  212. db $00,$3C,$42,$9D,$9F,$9F,$9F,$46,$38,$00
  213. _graphic2:
  214. db $00,$00,$00,$84,$40,$7C,$7C,$40,$84,$00
  215. _graphic3:
  216. db $00,$54,$6A,$56,$2A,$3E,$1A,$0E,$18,$10
  217. _graphic4:
  218. db $00,$3C,$04,$08,$78,$48,$78,$08,$04,$3C
  219. _graphic5:
  220. 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)



Ce site est protégé par copyright, toute reproduction même partielle est interdite sous peine de sanctions pénales.
Optimisé par Webnode Cookies
Créez votre site web gratuitement ! Ce site internet a été réalisé avec Webnode. Créez le votre gratuitement aujourd'hui ! Commencer