CODINGSOURCES ★ CODING Source &018 - RASTER QUI REBONDIT ★

Ce source ce compile sans problème sous l'assembleur de WinAPE.

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; http://cpcrulez.fr
;;
;; Raster qui rebondit
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
         ORG  #1000                     ;
                                        ;
         LD   ix,tab                    ; Ix pointe sur tab
         LD   iy,att                    ; IY pointe sur att
         DI
         LD   hl,(#38)                  ; Stocke (#38)
         LD   (inter+1),hl
         LD   hl,#c9fb                  ; Vire interrupts
         LD   (#38),hl
         EI
loop                                    ; Boucle principale
         LD   b,#f5                     ; Synchronisation avec écran
vsync    IN   a,(c)
         RRA
         JP   nc,vsync
;
         LD   bc,#7f9d                  ; Remet compteur interrupt a 0
         OUT  (c),c
         HALT                           ; attent un p'tit peu
         NOP
         LD   a,(cont)
         INC  a
         LD   (cont),a
         CP   57                        ; Teste si fin de att
         JP   z,change                  ; Si oui --> Change
         XOR  a
         NOP
         JP   suite                     ; Je sais,c'est debile,mais bon...
suite
         LD   a,(cont)
         LD   (pl0+2),a
pl0      LD   a,(iy+0)                  ; lit att qui est point par iy
         LD   b,a
lp00
         DEFS 34,0                      ; 1 = 34 nops d'attente , 2=68 nops...
         DJNZ lp00
;
         LD   b,40                      ; Rapete 40 fois (40 donnees)
lp1      PUSH bc
         LD   a,b                       ; Met b-1 dans b
         DEC  a
         LD   (pl1+2),a                 ; met a dans pl1+2  Ld a,(ix+a)
pl1      LD   a,(ix+0)
         LD   bc,#7f00                  ; Fond
         OUT  (c),c
         OUT  (c),a
         LD   c,#10                     ; Border
         OUT  (c),c
         OUT  (c),a
         DEFS 22,0                      ; NOP pour Synchro
         POP  bc
         DJNZ lp1
;
key      LD   bc,#f40e                  ; Teste la barre Espace
         OUT  (c),c
         LD   bc,#f6c0
         OUT  (c),c
         XOR  a
         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,loop                    ; Boucle si non
inter    LD   hl,0                      ; Fin (remet Interupts)
         LD   (#38),hl
         RET
;
;        Donnes
;
cont     DEFB 0                         ; Compteur pour le rebond
;
tab                                     ; Table des couleurs pour le Raster
         DEFB #54,#4c,#5c,#4c,#4c
         DEFB #4e,#4c,#4e,#4e,#4a
         DEFB #4e,#4a,#4a,#43,#43
         DEFB #43,#43,#4b,#43,#4b
         DEFB #4b,#43,#4b,#43,#43
         DEFB #43,#43,#4a,#4a,#4e
         DEFB #4a,#4e,#4e,#4c,#4e
         DEFB #4c,#4c,#5c,#4c,#5c
;
change                                  ; Remet cont a 0
         XOR  a
         LD   (cont),a
         JP   suite
;
att                                     ; Table des attentes
         DEFS 3,1
         DEFS 3,2
         DEFS 3,4
         DEFS 3,8
         DEFS 3,16
         DEFS 3,32
         DEFS 3,64
         DEFS 3,128
         DEFS 3,200
         DEFS 3,0
         DEFS 3,200
         DEFS 3,128
         DEFS 3,64
         DEFS 3,32
         DEFS 3,16
         DEFS 3,8
         DEFS 3,4
         DEFS 3,2
         DEFS 3,1

http://cpcrulez.fr

[next=coding_src]

CPCrulez[Content Management System] v8.75-desktop/c
Page créée en 053 millisecondes et consultée 858 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.