Afin de pouvoir étendre les capacités d'iMPdraw v2, j'ai décidé de mettre en place un système de plug-in appelé "extension" dans le logiciel.
Celui ci se compose d'un petit programme que vous aurez au préalablement crée à partir de l'adresse #9800 (pour le moment!)
Qu'est-ce que les extensions ? quel est leur rôle ?
Imaginons que vous vouliez créer une image mélangeant les différents modes graphiques ou bien une image composée de rasters, de split-rasters, que sais je encore, une image qui affiche sur la même ligne 2 voire 3 mode écrans différents. Le mode 'extension' ou plug in est fort utile.
Il permet au programmeur de créer 'facilement' cet artifice. Le fichier devra ensuite être sauvegardé au format .bin pour être utilisé comme extension.
En mode fullscreen uniquement CTRL+E permet alors de charger cette extension et E d'exécuter ladite extension afin d'avoir le rendu final sur l'image.
Pour vous donner une idée de ce à quoi peut ressembler une extension, voici un exemple documenté.
;
; PLug In - Simple Raster dans l'image
; -----> AsT/iMPACT 07/04/2019
;
org #9800 ; adresse de départ de l'extension
;
main ei ; **TOUS les plug ins doivent commencer par l'instruction EI**
halt ;
di
ld b,#f5 ; attente vbl
vbl in a,(c)
rra
jr nc,vbl
;
ld b,0 ; Attente 32 lignes affichées
djnz $
djnz $
;
ld b,7 ; on attends un peu afin d'être bien synchro
djnz $
;
; La routine de raster débute en début de ligne iMPdraw x=0 y=0
;
ld hl,rastertable
ld bc,#7F01 ; le raster se fera dans l'encre 1
out (c),c
ld e,29 ; nombre de lignes de couleurs à afficher
rastloo ld a,(hl)
out (c),a
inc hl
defs 64-12,0 ; on attends quelques nops pour être bien synchro
dec e
jr nz,rastloo
;
; Attente appuie sur la touche espace
; **L'attente de touche est obligatoire pour avoir un visu avant qu'iMPdraw ne reprenne la main**
;
ld bc,#f40e
out(c),c
ld bc,#F6c0
out (c),c
out (c),0
ld bc,#f792
out (c),c
ld bc,#f645 ; ligne clavier 5
out (c),c
ld b,#f4
in a,(c)
ld bc,#f782
out (c),c
dec b
out (c),0
bit 7,a
jp nz,main
ret
;
; Ma table de rasters
;
rastertable
defb #44,#44,#44,#44
defb #55,#55,#55,#55
defb #57,#57,#57,#57
defb #53,#53,#4B,#4B
defb #4B,#4B
defb #49,#49
defb #4a,#4a,#4E,#4e
defb #4c,#4c,#4c,#4c
defb #54
Pour en finir sur le sujet des extensions, on peut générer facilement les extensions en sortant d'iMPdraw proprement via CTRL+B dans le mode éditeur. Il ne vous reste ensuite qu'à assembler ce bout de code sous Orgams. Ensuite on revient sous i2 grâce à |i, on passe en mode fullscreen copy et on appuie sur E, espace pour sortir du mode extension.

Le mode extension est par définition un mode qui se veut ouvert. N'hésitez pas à partager vos créations !