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

AMSLIVE n°02 - RastersCoding 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: ???
★ AUTEURS: OffseT

Page précédente : AMSLIVE n°02 - Choisir Son Assembleur

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

Lien(s):
» Coding » AMSLIVE n°01 - Init
» Coding » AMSLIVE n°18 - Crtc Detection
» Coding » AMSLIVE n°15 - la Vie en 16
» Coding » AMSLIVE n°04 - Asic - Scrollhard
» Coding » AMSLIVE n°18 - BIDULES ET MACHINS VRAIMENT CHOUETTES
» Coding » AMSLIVE n°01 - Balayage Video
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.732-desktop/c
Page créée en 351 millisecondes et consultée 3642 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.