CODINGAMSLIVE ★ AMSLIVE n°02 - ASSEMBLEUR : LES RASTERS ★

Amslive02 - Rasters Coding Amslive

Voici le programme promis la dernière fois. Il est entièrement commenté et je ne pense pas que vous aurez de problème pour le comprendre car il est assez élémentaire. Ceci dit, vous aurez droit aux split-rastersla prochaine fois...

OffseT

; Exemple de rasters relatif au cours
; de programmation d'Amstrad Live 1
; par OffseT/ Futurs'
; Source Maxam quelques modifs
; à faire pour Dams
;-)
;
        ORG &8000         ; No comment
        LIMIT &9FFF       ; (MAXAM)
        NOLIST            ; (MAXAM)

; On détourne les interruptions système

        DI                ; Disable Interrupt
        LD  HL,(&38)
        LD  (INTER+1),HL
        LD  HL,&C9FB      ; Séquence EI,RET
        LD  (&38),HL      ; On poke en &38
        EI                ; Enable Interrupt
        LD  BC,&7F00      ; On sélectionne l'encre 0
        OUT (C),C         ; pour notre raster

; ici on peu mettre
; cette sélection hors
; boucle car on ne
; touche qu'à cette
; encre

; Boucle principale du programme

PROG    LD B,&F5           ; On attend le début
SYNCHRO IN A,(C)           ; de la VBL
        RRA                ; avant d'entreprendre
        JR NC,SYNCHRO      ; quoi que ce soit...
        LD BC,&7F00+64+20  ; On met le fond
        OUT (C),C          ; en noir
        LD B,255           ; On attend un peu
WAIT    DJNZ WAIT          ; pour éviter le
; 1er HALT sur certains
;CRTCs
        HALT               ; On descend de 52 HBL
        HALT               ; Encore un coup !
        HALT               ; On est au mileu de l'écran
        DS 32              ; On attend le début de la ligne

; Début boucle raster
        LD B,&7F            ;B-portCateArray
        LD HL,RASTER        ; HL pointe sur data raster
        LOOP
        LD A,(HL)           ; on lit la couleur
        OR A                ; si 0 alors
        JR Z,SUITE          ; on a fini le raster
        OUT (C),A           ; sinon on envoie la couleur
        INC HL              ; on passe à la suivante
        DS 50               ; on attend la fin de la ligne
        JR LOOP             ; on boucle (=64 nops !)

; Fin boucle raster
SUITE   LD BC,&F40E        ; On fait un petit
        OUT (C),C          ; test clavier hardware
        LD BC,&F6C0        ; de la touche espace
        OUT (C),C          ; histoire de pouvoir
        XOR A              ; sortir du prog...
        OUT (C),A
        LD BC&F792
        OUT (C),C
        LD BC,&F645
        OUT (C),C
        LD B,&F4
        IN A,(C)
        LD BC,&F782
        OUT (C),C
        LD BC,&F600
        OUT (C),C
        RLA
        JP C,PROG ; Si pas espace : boucle !
        EXIT
        DI                 ; Inutile ici mais bon.
INTER   LD HL,0    ;Automodif!
        LD(&38),HL       ; Hop là ! Tout est
        EI                 ; en ordre...
        RET             ; Basic me voilà !

; DATA RASTERS
RASTER  DB 64+20,64+4,64+21,64+23
        DB 64+31,64+19,64+11
        DB 64+10,64+14,64+12
        DB 64+28,64+20,0

AMSLIVE n°2

ANNÉE(S): ???
AUTEURS: OFFSET
Page précedente : Coding Amslive02 - Choisir Son Assembleur

A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

» Coding Amslive06 - Sinus
» Coding Amslive12 - Vu Metre
» Coding Amslive04 - Z80
» Coding Amslive05 - Multiplication De Solutions
» Coding Amslive02 - Asm
» Coding Amslive18 - Asm
» Coding Amslive14 - 3d
» Coding Amslive17 - 3d
» Coding Amslive07 - Sinus
CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ CPC RULEZ
CPCrulez[Content Management System] v8.00 par hERMOL
Page créée en 309 millisecondes et consultée 242 fois