CODINGSOURCES ★ CODING Source &018 - RASTER QUI REBONDIT ★

Raster qui RebonditCoding Sources
Ce source ce compile sans problème sous l'assembleur de WinAPE.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; https://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

https://CPCrulez.fr

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

Lien(s):
» Coding Src's » Rom Kopie Ins Ram (CPC Amstrad International)
» Coding Src's » Stained Glass
» Coding Src's » .PT3 Player
» Coding Src's » A Very Moving Experience (Sean McManus and Amstrad Computer User)
» Coding Src's » Miniorgany (Bajtek)
» Coding Src's » Division 16 bits
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 065 millisecondes et consultée 2337 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.