playing with sounds

This commit is contained in:
Antoine Vignau 2023-09-03 22:10:44 +02:00
parent 53315fdcda
commit fed0c46f34
11 changed files with 5043 additions and 4521 deletions

Binary file not shown.

Binary file not shown.

View File

@ -1 +1,2 @@
playasound=Type(06),AuxType(1000),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)
LaBelleZohra=Type(B3),AuxType(DB00),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)

File diff suppressed because it is too large Load Diff

View File

@ -457,6 +457,7 @@ tblSTR2 ds 10*2 ; pointeur sur la seconde phrase
tblSIZE ds 10*2 ; taille de chaque son
tblFREQ ds 10*2 ; frŽquence de chaque son
fgSND ds 2 ; 0 means no sound
zikPLAY ds 2
zikMUSIC ds 4
sndVECTOR ds 4

View File

@ -1046,23 +1046,29 @@ mouse_off
*-----------------------
* musique
musique jsr init_musique
musique lda fgSND ; can we play?
bne mu_1 ; yes
rts ; no
mu_1 jsr init_musique
lda #1
sta i
]lp lda i
jsr rythme
jsr rythme_joue ; joue le rythme
lda i
jsr charge_son
jsr clavier_sonore
bcs mu_exit ; si *, on quitte le clavier sonore
jsr nettoie_musique
inc i
lda i
cmp #5
bcc ]lp
beq ]lp
rts
mu_exit rts
*-----------------------
* NETTOIE_MUSIQUE - OK
@ -1164,6 +1170,116 @@ ry_err1 jsl GSOS
clc
ry_err2 rts
*-----------------------
* RYTHME_JOUE - OK
*-----------------------
* rythme_joue
rythme_joue
lda ptrBEAT
sta dpFROM
lda ptrBEAT+2
sta dpFROM+2
* 1. on met en RAM son
sei
sep #$20
ldal $e100ca
ora #%0110_0000
stal $c03c
lda #0
stal $c03e
stal $c03f
ldy #0
]lp lda [dpFROM],y
stal $c03d
iny
cpy proEOF
bcc ]lp
* 2. on lance le rythme en mode loop sur deux oscillos
ldy #0 ; oscillos 0 & 1
ldal $e100ca ; volume
and #$0f
stal $c03c
tya ; frŽquence basse
stal $c03e
lda #217
stal $c03d
tya
ora #$01
stal $c03e
lda #217
stal $c03d
tya ; frŽquence haute
ora #$20
stal $c03e
lda #0
stal $c03d
tya
ora #$21
stal $c03e
lda #0
stal $c03d
tya ; volume
ora #$40
stal $c03e
lda #$ff
stal $c03d
tya
ora #$41
stal $c03e
lda #$ff
stal $c03d
tya ; address pointer
ora #$80
stal $c03e
lda #0
stal $c03d
tya
ora #$81
stal $c03e
lda #0
stal $c03d
tya ; waveform table size (32K)
ora #$c0
stal $c03e
lda #%00111111
stal $c03d
tya
ora #$c1
stal $c03e
lda #%00111111
stal $c03d
tya ; control register
ora #$a0
stal $c03e
lda #%0000_0000
stal $c03d
tya
ora #$a1
stal $c03e
lda #%0001_0000
stal $c03d
* 3. on sort et <EFBFBD>a joue
rep #$20
cli
rts
*-----------------------
* CHARGE_SON - OK
*-----------------------
@ -1311,12 +1427,18 @@ cl_loop pha
bne cl_loop
lda taskMESSAGE ; entre 0 et 9 ?
cmp #'*'
beq cl_exit
cmp #'0'
bne cl_1
clc
cl_0 php
_SetBackColor
_SetForeColor
plp
rts ; on sort
cl_exit sec ; dŽfinitivement
bra cl_0
cl_1 cmp #'1'
bcc cl_loop
@ -1353,6 +1475,8 @@ cl_1 cmp #'1'
ldy #23
jsr t
brl cl_loop ; LOGO
PushWord #%0000_0000_1000_0000 ; play the sound
_FFStopSound

View File

@ -122,11 +122,7 @@ fgRESTART = 2
tdc
sta myDP
lda #clavier_sonore
stal $300
lda #^clavier_sonore
stal $302
*--- Version du systeme
jsl GSOS
@ -147,9 +143,20 @@ fgRESTART = 2
pla
brl meQUIT1
*--- Compacte la mémoire
okVERS PushLong #0
PushLong #$8fffff
PushWord myID
PushWord #%11000000_00000000
PushLong #0
_NewHandle
_DisposeHandle
_CompactMem
*--- 64K pour les images des scènes
okVERS jsr make64KB
jsr make64KB
bcc okMEM1
koMEM pha
@ -209,7 +216,15 @@ okMEM1 sty ptrIMAGE
*--- Et la musique...
okTOOL _HideMenuBar
okTOOL pha
_SoundToolStatus
pla
bne noSOUND
lda #1
sta fgSND
noSOUND _HideMenuBar
PushWord #0
PushWord #%11111111_11111111

Binary file not shown.

View File

@ -0,0 +1,109 @@
*
* Essai sonore
*
org $1000
lst off
clc
xce
rep #$30
sei
sep #$20
ldal $e100ca
ora #%0110_0000
stal $c03c
lda #0
stal $c03e
stal $c03f
ldy #0
]lp lda $2000,y
stal $c03d
iny
cpy #$4000
bcc ]lp
* 2. on lance le rythme en mode loop sur deux oscillos
ldy #0 ; oscillos 0 & 1
ldal $e100ca ; volume
and #$0f
stal $c03c
tya ; frŽquence basse
stal $3e
lda #217
stal $c03d
tya
ora #$01
stal $c03e
lda #217
stal $c03d
tya ; frŽquence haute
ora #$20
stal $c03e
lda #0
stal $c03d
tya
ora #$21
stal $c03e
lda #0
stal $c03d
tya ; volume
ora #$40
stal $c03e
lda #$ff
stal $c03d
tya
ora #$41
stal $c03e
lda #$ff
stal $c03d
tya ; address pointer
ora #$80
stal $c03e
lda #0
stal $c03d
tya
ora #$81
stal $c03e
lda #0
stal $c03d
tya ; waveform table size
ora #$c0
stal $c03e
lda #%00111111
stal $c03d
tya
ora #$c1
stal $c03e
lda #%00111111
stal $c03d
tya ; control register
ora #$a0
stal $c03e
lda #%0000_0000
stal $c03d
tya
ora #$a1
stal $c03e
lda #%0001_0000
stal $c03d
* 3. on sort et <EFBFBD>a joue
sec
xce
sep #$30
cli
rts

View File

@ -0,0 +1,114 @@
------+------------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------
Line | # File Line | Line Type | MX | Reloc | Size | Address Object Code | Source Code
------+------------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------
1 | 1 playasound.s 1 | Comment | 11 | | 0 | 00/8000 | *
2 | 1 playasound.s 2 | Comment | 11 | | 0 | 00/8000 | * Essai sonore
3 | 1 playasound.s 3 | Comment | 11 | | 0 | 00/8000 | *
4 | 1 playasound.s 4 | Empty | 11 | | 0 | 00/8000 |
5 | 1 playasound.s 5 | Directive | 11 | | 0 | 00/8000 | org $1000
6 | 1 playasound.s 6 | Directive | 11 | | 0 | 00/1000 | lst off
7 | 1 playasound.s 7 | Empty | 11 | | 0 | 00/1000 |
8 | 1 playasound.s 8 | Code | 11 | | 1 | 00/1000 : 18 | clc
9 | 1 playasound.s 9 | Code | 11 | | 1 | 00/1001 : FB | xce
10 | 1 playasound.s 10 | Code | 00 | | 2 | 00/1002 : C2 30 | rep #$30
11 | 1 playasound.s 11 | Empty | 00 | | 0 | 00/1004 |
12 | 1 playasound.s 12 | Code | 00 | | 1 | 00/1004 : 78 | sei
13 | 1 playasound.s 13 | Code | 10 | | 2 | 00/1005 : E2 20 | sep #$20
14 | 1 playasound.s 14 | Empty | 10 | | 0 | 00/1007 |
15 | 1 playasound.s 15 | Code | 10 | | 4 | 00/1007 : AF CA 00 E1 | ldal $e100ca
16 | 1 playasound.s 16 | Code | 10 | | 2 | 00/100B : 09 60 | ora #%0110_0000
17 | 1 playasound.s 17 | Code | 10 | | 4 | 00/100D : 8F 3C C0 00 | stal $c03c
18 | 1 playasound.s 18 | Empty | 10 | | 0 | 00/1011 |
19 | 1 playasound.s 19 | Code | 10 | | 2 | 00/1011 : A9 00 | lda #0
20 | 1 playasound.s 20 | Code | 10 | | 4 | 00/1013 : 8F 3E C0 00 | stal $c03e
21 | 1 playasound.s 21 | Code | 10 | | 4 | 00/1017 : 8F 3F C0 00 | stal $c03f
22 | 1 playasound.s 22 | Empty | 10 | | 0 | 00/101B |
23 | 1 playasound.s 23 | Code | 10 | | 3 | 00/101B : A0 00 00 | ldy #0
24 | 1 playasound.s 24 | Code | 10 | | 3 | 00/101E : B9 00 20 | ozunid_1 lda $2000,y
25 | 1 playasound.s 25 | Code | 10 | | 4 | 00/1021 : 8F 3D C0 00 | stal $c03d
26 | 1 playasound.s 26 | Code | 10 | | 1 | 00/1025 : C8 | iny
27 | 1 playasound.s 27 | Code | 10 | | 3 | 00/1026 : C0 00 40 | cpy #$4000
28 | 1 playasound.s 28 | Code | 10 | | 2 | 00/1029 : 90 F3 | bcc ozunid_1
29 | 1 playasound.s 29 | Empty | 10 | | 0 | 00/102B |
30 | 1 playasound.s 30 | Comment | 10 | | 0 | 00/102B | * 2. on lance le rythme en mode loop sur deux oscillos
31 | 1 playasound.s 31 | Empty | 10 | | 0 | 00/102B |
32 | 1 playasound.s 32 | Code | 10 | | 3 | 00/102B : A0 00 00 | ldy #0 ; oscillos 0 & 1
33 | 1 playasound.s 33 | Empty | 10 | | 0 | 00/102E |
34 | 1 playasound.s 34 | Code | 10 | | 4 | 00/102E : AF CA 00 E1 | ldal $e100ca ; volume
35 | 1 playasound.s 35 | Code | 10 | | 2 | 00/1032 : 29 0F | and #$0f
36 | 1 playasound.s 36 | Code | 10 | | 4 | 00/1034 : 8F 3C C0 00 | stal $c03c
37 | 1 playasound.s 37 | Empty | 10 | | 0 | 00/1038 |
38 | 1 playasound.s 38 | Code | 10 | | 1 | 00/1038 : 98 | tya ; frŽquence basse
39 | 1 playasound.s 39 | Code | 10 | | 4 | 00/1039 : 8F 3E 00 00 | stal $3e
40 | 1 playasound.s 40 | Code | 10 | | 2 | 00/103D : A9 D9 | lda #217
41 | 1 playasound.s 41 | Code | 10 | | 4 | 00/103F : 8F 3D C0 00 | stal $c03d
42 | 1 playasound.s 42 | Code | 10 | | 1 | 00/1043 : 98 | tya
43 | 1 playasound.s 43 | Code | 10 | | 2 | 00/1044 : 09 01 | ora #$01
44 | 1 playasound.s 44 | Code | 10 | | 4 | 00/1046 : 8F 3E C0 00 | stal $c03e
45 | 1 playasound.s 45 | Code | 10 | | 2 | 00/104A : A9 D9 | lda #217
46 | 1 playasound.s 46 | Code | 10 | | 4 | 00/104C : 8F 3D C0 00 | stal $c03d
47 | 1 playasound.s 47 | Empty | 10 | | 0 | 00/1050 |
48 | 1 playasound.s 48 | Code | 10 | | 1 | 00/1050 : 98 | tya ; frŽquence haute
49 | 1 playasound.s 49 | Code | 10 | | 2 | 00/1051 : 09 20 | ora #$20
50 | 1 playasound.s 50 | Code | 10 | | 4 | 00/1053 : 8F 3E C0 00 | stal $c03e
51 | 1 playasound.s 51 | Code | 10 | | 2 | 00/1057 : A9 00 | lda #0
52 | 1 playasound.s 52 | Code | 10 | | 4 | 00/1059 : 8F 3D C0 00 | stal $c03d
53 | 1 playasound.s 53 | Code | 10 | | 1 | 00/105D : 98 | tya
54 | 1 playasound.s 54 | Code | 10 | | 2 | 00/105E : 09 21 | ora #$21
55 | 1 playasound.s 55 | Code | 10 | | 4 | 00/1060 : 8F 3E C0 00 | stal $c03e
56 | 1 playasound.s 56 | Code | 10 | | 2 | 00/1064 : A9 00 | lda #0
57 | 1 playasound.s 57 | Code | 10 | | 4 | 00/1066 : 8F 3D C0 00 | stal $c03d
58 | 1 playasound.s 58 | Empty | 10 | | 0 | 00/106A |
59 | 1 playasound.s 59 | Code | 10 | | 1 | 00/106A : 98 | tya ; volume
60 | 1 playasound.s 60 | Code | 10 | | 2 | 00/106B : 09 40 | ora #$40
61 | 1 playasound.s 61 | Code | 10 | | 4 | 00/106D : 8F 3E C0 00 | stal $c03e
62 | 1 playasound.s 62 | Code | 10 | | 2 | 00/1071 : A9 FF | lda #$ff
63 | 1 playasound.s 63 | Code | 10 | | 4 | 00/1073 : 8F 3D C0 00 | stal $c03d
64 | 1 playasound.s 64 | Code | 10 | | 1 | 00/1077 : 98 | tya
65 | 1 playasound.s 65 | Code | 10 | | 2 | 00/1078 : 09 41 | ora #$41
66 | 1 playasound.s 66 | Code | 10 | | 4 | 00/107A : 8F 3E C0 00 | stal $c03e
67 | 1 playasound.s 67 | Code | 10 | | 2 | 00/107E : A9 FF | lda #$ff
68 | 1 playasound.s 68 | Code | 10 | | 4 | 00/1080 : 8F 3D C0 00 | stal $c03d
69 | 1 playasound.s 69 | Empty | 10 | | 0 | 00/1084 |
70 | 1 playasound.s 70 | Code | 10 | | 1 | 00/1084 : 98 | tya ; address pointer
71 | 1 playasound.s 71 | Code | 10 | | 2 | 00/1085 : 09 80 | ora #$80
72 | 1 playasound.s 72 | Code | 10 | | 4 | 00/1087 : 8F 3E C0 00 | stal $c03e
73 | 1 playasound.s 73 | Code | 10 | | 2 | 00/108B : A9 00 | lda #0
74 | 1 playasound.s 74 | Code | 10 | | 4 | 00/108D : 8F 3D C0 00 | stal $c03d
75 | 1 playasound.s 75 | Code | 10 | | 1 | 00/1091 : 98 | tya
76 | 1 playasound.s 76 | Code | 10 | | 2 | 00/1092 : 09 81 | ora #$81
77 | 1 playasound.s 77 | Code | 10 | | 4 | 00/1094 : 8F 3E C0 00 | stal $c03e
78 | 1 playasound.s 78 | Code | 10 | | 2 | 00/1098 : A9 00 | lda #0
79 | 1 playasound.s 79 | Code | 10 | | 4 | 00/109A : 8F 3D C0 00 | stal $c03d
80 | 1 playasound.s 80 | Empty | 10 | | 0 | 00/109E |
81 | 1 playasound.s 81 | Code | 10 | | 1 | 00/109E : 98 | tya ; waveform table size
82 | 1 playasound.s 82 | Code | 10 | | 2 | 00/109F : 09 C0 | ora #$c0
83 | 1 playasound.s 83 | Code | 10 | | 4 | 00/10A1 : 8F 3E C0 00 | stal $c03e
84 | 1 playasound.s 84 | Code | 10 | | 2 | 00/10A5 : A9 3F | lda #%00111111
85 | 1 playasound.s 85 | Code | 10 | | 4 | 00/10A7 : 8F 3D C0 00 | stal $c03d
86 | 1 playasound.s 86 | Code | 10 | | 1 | 00/10AB : 98 | tya
87 | 1 playasound.s 87 | Code | 10 | | 2 | 00/10AC : 09 C1 | ora #$c1
88 | 1 playasound.s 88 | Code | 10 | | 4 | 00/10AE : 8F 3E C0 00 | stal $c03e
89 | 1 playasound.s 89 | Code | 10 | | 2 | 00/10B2 : A9 3F | lda #%00111111
90 | 1 playasound.s 90 | Code | 10 | | 4 | 00/10B4 : 8F 3D C0 00 | stal $c03d
91 | 1 playasound.s 91 | Empty | 10 | | 0 | 00/10B8 |
92 | 1 playasound.s 92 | Code | 10 | | 1 | 00/10B8 : 98 | tya ; control register
93 | 1 playasound.s 93 | Code | 10 | | 2 | 00/10B9 : 09 A0 | ora #$a0
94 | 1 playasound.s 94 | Code | 10 | | 4 | 00/10BB : 8F 3E C0 00 | stal $c03e
95 | 1 playasound.s 95 | Code | 10 | | 2 | 00/10BF : A9 03 | lda #%0000_0011
96 | 1 playasound.s 96 | Code | 10 | | 4 | 00/10C1 : 8F 3D C0 00 | stal $c03d
97 | 1 playasound.s 97 | Code | 10 | | 1 | 00/10C5 : 98 | tya
98 | 1 playasound.s 98 | Code | 10 | | 2 | 00/10C6 : 09 A1 | ora #$a1
99 | 1 playasound.s 99 | Code | 10 | | 4 | 00/10C8 : 8F 3E C0 00 | stal $c03e
100 | 1 playasound.s 100 | Code | 10 | | 2 | 00/10CC : A9 13 | lda #%0001_0011
101 | 1 playasound.s 101 | Code | 10 | | 4 | 00/10CE : 8F 3D C0 00 | stal $c03d
102 | 1 playasound.s 102 | Empty | 10 | | 0 | 00/10D2 |
103 | 1 playasound.s 103 | Comment | 10 | | 0 | 00/10D2 | * 3. on sort et <20>a joue
104 | 1 playasound.s 104 | Empty | 10 | | 0 | 00/10D2 |
105 | 1 playasound.s 105 | Code | 10 | | 1 | 00/10D2 : 38 | sec
106 | 1 playasound.s 106 | Code | 11 | | 1 | 00/10D3 : FB | xce
107 | 1 playasound.s 107 | Code | 11 | | 2 | 00/10D4 : E2 30 | sep #$30
108 | 1 playasound.s 108 | Code | 11 | | 1 | 00/10D6 : 58 | cli
109 | 1 playasound.s 109 | Code | 11 | | 1 | 00/10D7 : 60 | rts
110 | 1 playasound.s 110 | Empty | 11 | | 0 | 00/10D8 |
------+------------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------