CODINGSOURCES ★ CODING Source &021 - EQUALISERS ★

Equalisers horizontal et verticalCoding Sources
Ces 2 sources ce compile sans problème sous l'assembleur de WinAPE, elles indépendantent l'une de l'autre bien sur.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; https://cpcrulez.fr
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ORG  #A000
  LD   A,#02       ;
  CALL #BC0E       ; mode 2
BOUCLE   DI             ; arret des interruptions
  LD   B,#F5       ;
FRAME IN   A,(C)       ;synchronisation avec le balayage
  RRA            ;)
  JR   NC,FRAME         ;
  ; ADRESSE D'EXECUTION DE LA MUSIQUE
;   CALL #8FF3
call &2240
  LD   HL,VOIE1         ;HL pointe sur VOIE1
  LD   C,#08       ; correspond a la voie A
  CALL TEST
  INC  HL
  LD   C,#09       ; voie B
  CALL TEST
  INC  HL
  LD   C,#0A       ; voie C
  CALL TEST
  LD   HL,#FFA3         ; adresse d'effacement de la voie A
  CALL EFFACE
  LD   HL,#FFA7         ; adresse d'effacement de la voie B
  CALL EFFACE
  LD   HL,#FFAB         ; adresse d'effacement de la voie C
  CALL EFFACE
  LD   A,(VOIE1)
  LD   HL,#FFA3         ; adresse d'affichage de la voie A
  CALL AFFICHE
  LD   A,(VOIE2)
  LD   HL,#FFA7         ; adresse d'affichage de la voie B
  CALL AFFICHE
  LD   A,(VOIE3)
  LD   HL,#FFAB         ; adresse d'affichage de la voie C
  CALL AFFICHE
  CALL #BB09       ;test touche espace
  RET  C          ;si C=1 RET
  JP   BOUCLE        ; sinon on boucle
EFFACE   LD   B,32
EFF1  PUSH BC
  LD   (HL),#00
  INC  HL
  LD   (HL),#00
  CALL RBC29
  POP  BC
  DJNZ EFF1
  RET
AFFICHE  OR   A
  RET  Z
  ADD  A,A
  LD   B,A
AFF1  PUSH BC
  LD   (HL),#FF
  INC  HL
  LD   (HL),#FF
  CALL RBC29
  POP  BC
  DJNZ AFF1
  RET
TEST  LD   B,#F4
  OUT  (C),C
  LD   BC,#F6C0
  OUT  (C),C
  LD   BC,#F600
  OUT  (C),C
  LD   BC,#F792
  OUT  (C),C
  LD   BC,#F640
  OUT  (C),C
  LD   BC,#F400
  IN   A,(C)
  LD   (HL),A
  LD   BC,#F782
  OUT  (C),C
  LD   BC,#F600
  OUT  (C),C
  RET
RBC29 LD   BC,#DFFF
  ADD  HL,BC
  LD   A,H
  CP   #C0
  RET  P
  LD   BC,#3FB0
  ADD  HL,BC
  RET
VOIE1 DEFB #0
VOIE2 DEFB #0
VOIE3 DEFB #0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; https://cpcrulez.fr
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ORG  #A000
  LD   A,#02
  CALL #BC0E
BOUCLE   DI
  LD   B,#F5
FRAME IN   A,(C)
  RRA
  JR   NC,FRAME
  ; ADRESSE D'EXECUTION DE LA MUSIQUE
   CALL #8FF3
call &2240
  LD   HL,VOIE1
  LD   C,#08
  CALL TEST
  INC  HL
  LD   C,#09
  CALL TEST
  INC  HL
  LD   C,#0A
  CALL TEST
  LD   HL,#C780
  CALL EFFACE
  LD   HL,#C730
  CALL EFFACE
  LD   HL,#C6E0
  CALL EFFACE
  LD   A,(VOIE1)
  LD   HL,#C6E0
  CALL AFFICHE
  LD   A,(VOIE2)
  LD   HL,#C730
  CALL AFFICHE
  LD   A,(VOIE3)
  LD   HL,#C780
  CALL AFFICHE
  CALL #BB09
  RET  C
  JP   BOUCLE
EFFACE   LD   B,32
EFF1  PUSH BC
  PUSH HL
  LD   BC,#0800
  LD   (HL),#00
  ADD  HL,BC
  LD   (HL),#00
  ADD  HL,BC
  LD   (HL),#00
  ADD  HL,BC
  LD   (HL),#00
  POP  HL
  INC  HL
  INC  HL
  POP  BC
  DJNZ EFF1
  RET
AFFICHE  OR   A
  RET  Z
  ADD  A,A
  LD   B,A
AFF1  PUSH BC
  PUSH HL
  LD   BC,#0800
  LD   (HL),#FF
  ADD  HL,BC
  LD   (HL),#FF
  ADD  HL,BC
  LD   (HL),#FF
  ADD  HL,BC
  LD   (HL),#FF
  POP  HL
  INC  HL
  INC  HL
  POP  BC
  DJNZ AFF1
  RET
TEST  LD   B,#F4
  OUT  (C),C
  LD   BC,#F6C0
  OUT  (C),C
  LD   BC,#F600
  OUT  (C),C
  LD   BC,#F792
  OUT  (C),C
  LD   BC,#F640
  OUT  (C),C
  LD   BC,#F400
  IN   A,(C)
  LD   (HL),A
  LD   BC,#F782
  OUT  (C),C
  LD   BC,#F600
  OUT  (C),C
  RET
VOIE1 DEFB #0
VOIE2 DEFB #0
VOIE3 DEFB #0

https://CPCrulez.fr

★ ANNÉE: ???
★ AUTEUR(S): ???

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

Lien(s):
» Coding Src's » SUB CHAR : Erweiterter Zeichensatz für den Schneider CPC (CPC Amstrad International)
» Coding Src's » ConvWAV v0.1 (DEMONIAK)
» Coding Src's » Heute: The BASIC String Orchestra & The Assembler Punks (CPC Amstrad International)
» Coding Src's » FDC Lire Piste - TrackLoad (test de protection)
» Coding Src's » Read or write in record time (Computing with the Amstrad)
» Coding Src's » RP11 Diagnostic ROM Cartridge source
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 067 millisecondes et consultée 2098 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.