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...
; 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