CODINGSOURCES ★ CODING Source &045: Routines dots par Demoniak ★

Dots (Demoniak)Coding Sources
Ce source ce compile sans problème sous MAXAM ou l'assembleur de WinAPE. L'astuce : toute les coordonées sont codées sur 16 bits , 2 bits pour le numéro de pixel , et 14 bits pour l'adresse.

  ORG  #A400
TabPt EQU  #200
  DI
  LD   IX,TabPt     ; Adresse des points à afficher
  LD   IY,Vide     ; Adresse d'un buffer "vide"
debutprog:
  LD   B,#F5
Sync:
  IN   A,(C)       ; Attendre la VBL
  RRA
  JR   NC,SynC
  LD   BC,#7F10
  LD   A,#54
  OUT  (C),C
  OUT  (C),A       ; Border noir
debut:
  LD   D,#A5       ; Adresse du masque des points = #A500
  LD   BC,#C0      ; C = adresse début mémoire vidéo, B = 0
;
; Efface l'ancienne image
;
Clear:
  LD   A,(IY+1)     ; Adresse poids fort mémoire vidéo à effacer
  LD   E,A
  LD   L,(IY+0)     ; Adresse poids faible mémoire vidéo à éffacer
  OR   L        ; Y-a-t-il encore des points à effacer ?
  JR   Z,FinClear     ; Sinon, fini !
  LD   A,E
  OR   C        ; Pour adresse mémoire vidéo débutant en #C000
  LD   H,A
  LD   (HL),B      ; Efface le point
  INC  IY
  INC  IY
  JR   Clear       ; Passer au point suivant
FinClear:
  PUSH IX        ; On a fini, d'effacer l'ancienne image,
  POP  IY        ; On fait Ancienne image = nouvelle image
Trace:
  LD   A,(IX+1)     ; Adresse poids fort mémoire vidéo à afficher
  LD   E,A      ; bits 7 et 6 de E = numéro octet
  LD   L,(IX+0)     ; Adresse poids faible mémoire vidéo à afficher
  OR   L
  JR   Z,Fin       ; Adresse = 0 -> trame finie
  LD   A,E
  OR   C        ; C = #C0 -> mettre adresse mémoire vidéo en #C000
  LD   H,A      ; HL = adresse mémoire vidéo
  LD   A,(DE)      ; récupére octet (#A500 à #A5FF)
  XOR   (HL)       ; on aurai pu faire aussi un OR
  LD   (HL),A      ; ou bien directement un LD (HL),A
  INC  IX
  INC  IX        ; passer au point suivant
  JR   Trace
fin:
  INC  IX
  INC  IX
  LD   A,(IX+0)     ; Fin animation ?
  LD   B,(IX+1)
  OR   B
  JR   NZ,FinSuiv
  LD   IX,TabPt     ; Réinitialise pointeur début animation
FinSuiv:
  LD   BC,#7F10
  LD   A,#4B
  OUT  (C),C       ; Border en blanc (pour mesure VBL)
  OUT  (C),A
  CALL TSPACE      ; Test touche Espace
  RLA
  RET  C        ; Retour si espace appuyé
  JR   DebutProg     ; Sinon, on boucle
;
; Test la touche espace avec le PPI... Du classique...
;
TSPACE:
  LD   A,#45
TCLAV:
  LD   (TCLAV1+1),A:; A=N. LIGNE
  XOR  A
  LD   BC,#F40E
  OUT  (C),C
  LD   BC,#F6C0
  OUT  (C),C
  OUT  (C),A
  LD   BC,#F792
  OUT  (C),C
TCLAV1:
  LD   BC,#F645
  OUT  (C),C
  LD   B,#F4
  IN   A,(C)
  CPL
  LD   BC,#F782
  OUT  (C),C
  RET
;
; Adresse vide pour la premiére image: rien à effacer
;
Vide:
  DB   0,0
;
; Table des valeurs des octets pour chaque points
;
  ORG  #A500
  DS   64,#88    ; Points en x = 0
  DS   64,#44    ; Points en x = 1
  DS   64,#22    ; Points en x = 2
  DS   64,#11    ; Points en x = 3

https://CPCrulez.fr

★ ANNÉE: ???
★ AUTEUR: DEMONIAK

★ AMSTRAD CPC ★ DOWNLOAD ★

Other platform tools:
» coding  src45  dotsDATE: 2006-12-01
DL: 378
TYPE: ZIP
SiZE: 58Ko
NOTE: 42 Cyls
.HFE: Χ

» TextPixMode1V2DATE: 2013-08-28
DL: 410
TYPE: text
SiZE: 5Ko
NOTE:

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

Lien(s):
» Coding Src's » Caleidoscópio (Amstrad Magazine)
» Coding Src's » Rotozoom scroll (Rhino/Batman Group )
» Coding Src's » Rasters (Dr Felix pour AMS'DEM)
» Coding Src's » Karl's Treasure Hunt (unasmbled by Dominique Bernard)
» Coding Src's » Circle of Triangles (Computing with the Amstrad)
» Coding Src's » Tolle Video-Tricks (Happy Computer)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» 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 780 millisecondes et consultée 2524 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.