        
        ifndef  OPEN
                include 'graphics.i'
        endif

// Voici un exemple d'appel aux 3 procedures
/*        org 1536

        PLA            // Si appel via y=usr(1536)
        LDA        #21 // Mode graphique 5 + 16
        JSR GRAPHICS
        
        LDA #0         // Point aux coordonnees 0,0
        sta COLCRS
        sta COLCRS + 1
        sta ROWCRS
        lda #1         // Couleur 1
        jsr PLOT
        
        lda #10        // Ligne aux coordonnees 10,10
        sta COLCRS     
        sta ROWCRS
        lda #2         // Couleur 2
        jsr DRAWTO
        rts      */

/* GRAPHICS: Selection d'un mode graphique.
        L'accumulateur doit avoir le mode graphique avan appel a cette procedure */
GRAPHICS PHA
; Par securite, fermeture du canal 6 avant de l'utiliser, au cas ou ! 
        LDX     #$60            ; IOCB #6 comme en basic
        LDA     #CLOSE          ; CLOSE #6 
        STA     ICCOM,X
        JSR     CIOV
        LDA     #OPEN
        STA     ICCOM,X
        LDA     #FNAME&255         ; device S:
        STA     ICBAL,X
        LDA     #FNAME/256
        STA     ICBAH,X
        LDA     #OPNIN+OPNOUT
        STA     ICAUX1,X

        PLA                  ; GR. MODE
        STA     ICAUX2,X
        JSR     CIOV
        
        RTS

FNAME   .DB     "S:"
        .DB     $9B



/* PLOT: Dessiner un point.
        Les coordonnees X et Y seront stockees dans COLCRS (55) et COLCRS + 1 (56) pour X, ROWCRS (54)
        Avant d'appeler la procedure, il faudra passer la couleur dans l'accumulateur
*/

PLOT        PHA

/* On lance la commande PLOT via le CIO. A noter que l'accumulateur contient la couleur */
        LDX        #$60        ; IOCB #6
        LDA        #PUTCHR
        STA        ICCOM,X
        LDA        #$0        ; 0 pour la taille du BUFFER
        STA        ICBLL,X
        STA        ICBLH,X
        PLA        ; couleur a utiliser pour le plot
        JSR        CIOV

        RTS

/* DRAWTO: Dessiner un segment.
        Les coordonnees X et Y seront stockees dans COLCRS (55) et COLCRS + 1 (56) pour X, ROWCRS (54) pour Y
        Avant d'appeler la procedure, il faudra passer la couleur dans l'accumulateur
*/
DRAWTO:
; On appel la routine pour tracer une droite
        STA        ATACHR ; On stock la couleur ici pour un drawto.
        LDX        #$60  ; IOCB #6
        LDA        #DRAWLN; DRAWTO 
        STA        ICCOM,X
        LDA        #OPIN + OPOUT
        STA        ICAUX1,X   
        LDA        #$0
        STA        ICAUX2,X
        JSR        CIOV

        RTS                    


