CODINGSOURCES ★ CODING Source &021 - EQUALISERS ★

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

 

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

 

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

http://cpcrulez.fr

[next=coding_src]

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

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