Les Extensions Ou Plug In

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.

extension_mode-5600d33.png

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


Retour Menu

Sauf mention contraire, le contenu de cette page est protégé par la licence Creative Commons Attribution-ShareAlike 3.0 License