source: thomson/code/3rdparty/sources2-hcl/REPLAY.ASM@ ceffc47

main
Last change on this file since ceffc47 was ceffc47, checked in by Adrien Destugues <pulkomandy@…>, 10 years ago

Add that collection of 3rdparty source I had lying on my disk for some time...

git-svn-id: svn://localhost/thomson@51 85ae3b6b-dc8f-4344-a89d-598714f2e4e5

  • Property mode set to 100644
File size: 4.0 KB
Line 
1****************************************
2* *
3* R E P L A Y *
4* Crunched/6 bits *
5* -------------------------- *
6* (c) 12.9.1991 by Doctor Lô / HCL *
7* *
8****************************************
9* *
10* REPLAY joue une série de "segments" *
11* dont la structure permet de composer *
12* de véritables musiques : *
13* *
14* BANK (1o): La Bank où est le segment *
15* TEMPO (1o): "Vitesse" (0 ->23.8 KHz) *
16* START (2o): (Adresse de début)-1 !!! *
17* SIZE (2o): Longueur en "quadruplets" *
18* *
19* La fin de la liste de segments est *
20* codée: ($80+BANK du premier segment) *
21* et la musique boucle tant qu'aucune *
22* touche n'est frappée au clavier. *
23* - *
24* REPLAY accepte en entrée 2 pointeurs *
25* dans la liste des segments: *
26* -> on commence à jouer à partir de U *
27* -> pour boucler, on reprend à X. *
28* ------- *
29* *
30* L'intervalle entre deux "notes" est *
31* TOUJOURS de 42+5*TEMPO microsecondes *
32* réparties comme suit: *
33* 31: Avant validation de la hauteur. *
34* 4: Validation de la hauteur du son. *
35* 7+5*TEMPO: boucle de temporisation. *
36* *
37****************************************
38
39
40
41 ORG $9F00 Last byte in $9F80
42REPLAY PSHS U,Y,X,DP,B,A,CC
43 LDA #$E7
44 TFR A,DP
45 STX PLAY4-4 sgmnt début boucle
46 PULU A,B,X,Y
47 STA <$E5 bank du 1er sgmnt
48 PSHS B val. temporisation
49 BRA PLAY1
50
51*******début*de**la*boucle*REPLAY*******
52
53PLAY3 LDA ,X+ 6
54 ASLA 2
55 ASLA 2
56 STA *+8 5
57 LDA ,X 4
58 ANDA #3 2
59 ORA #0 2
60 STA <$CD 4------------note3
61 LDB ,S 4
62 BEQ *+5 3
63 DECB
64 BNE *-1
65
66
67* Répartition du son sur le quadruplet:
68*
69* [54321010] [54325432] [54321010] *
70* X:^^^^^^ *
71
72 LDD ,X 5
73 LEAY -1,Y 5 fin de segment ?
74 BEQ NEWBNK 3
75 LDB [D,Y]
76 BRA PLAY4
77NEWBNK LDB ,U 4 nouvelle Bank
78 BMI *+4 3 fin de musique ?
79 BRA *+5 non:continue
80 LDU #0 3 oui:recommence
81 STB <$E5 4
82PLAY4 LSRA 2
83 LSRA 2
84 STA <$CD 4------------note4
85 LDB ,S 4
86 BEQ *+5 3
87 DECB
88 BNE *-1
89
90
91* Répartition du son sur le quadruplet:
92*
93* [54321010] [54325432] [54321010] *
94*X+1:^^^^^^ *
95
96 LEAY ,Y 4 fin de segment ?
97 BEQ NEWSEG 3 oui:re-paramètre
98 MUL non:continue
99 JMP PLAY1
100NEWSEG PULU A,B,X,Y 11 début;longueur;
101 STB ,S 4 nouveau tempo
102PLAY1 LDA 1,X 5
103 LSRA 2
104 LSRA 2
105 STA <$CD 4------------note1
106 LDB ,S 4
107 BEQ *+5 3
108 DECB
109 BNE *-1
110
111
112* Répartition du son sur le quadruplet:
113*
114* [54321010] [54325432] [54321010] *
115*X+1: ^^ ^^^^ *
116
117 LEAX 1,X 5
118 BRN * 3
119PLAY2 LDA ,X+ 6
120 ANDA #3 2
121 STA *+8 5
122 LDA ,X 4
123 LSRA 2
124 LSRA 2
125 ORA #0 2
126 STA <$CD 4------------note2
127 LDB ,S 4
128 BEQ *+5 3
129 DECB
130 BNE *-1
131
132
133* Répartition du son sur le quadruplet:
134*
135* [54321010] [54325432] [54321010] *
136* X: ^^^^ ^^ *
137
138 LDA $E7C8 5 touche frappée ?
139 BEQ PLAY3 3 non: on continue
140
141********fin*de*la*boucle*REPLAY*********
142
143 PULS B dépile le TEMPO
144 PULS CC,A,B,DP,X,Y,U,PC retour
Note: See TracBrowser for help on using the repository browser.