User Tools

Site Tools


zx10

ZX-10 by Bytepack


Pekné beep hradlo od Bytepacka. Syntax je pre sjasmplus, data melódie stvoril z00m/TCG/SinDiKAT.

      device zxspectrum48
 
;4-kanalovy hudobny generator
;          ZX-10
;      J.Deak (c)1989
;    Bytepack Bratislava
;
;skladbu treba rozlozit na bloky
;pre jednotlive kanaly
;zaciatok bloku treba oznacit
;navestim a blok napisat vo for-
;me:
;bl1a  db #00,#00,#00,#00
;      db #00,#00,#00,#00  atd
;za #00 sa napisu noty
;hexacisla maju takuto strukturu
;- prava cislica (4bity)
;  udava ton 0-e  (beep 0-14)
;              f medzera
;
;- druha cislica:
;        1bit 0-nizsia 1-vyssia
;                  oktava
;            (pre medzeru 1)
;
;        2-4bit dlzka noty
;            (bin)000-1doba
;                 011-4doby
;                 111-8dob
;
; !!!!cislo #ef ukoncuje blok!
;
;priklad : #72  ton:d
;               okt:vyssia
;              doby:4
;          #60  ton:c
;               okt:nizsia
;              doby:4
;
;do ma,mb,mc,md treba napisat
;adresy blokov (navestia)
;v tom poradi,v akom budu hrane
;
;(a,b,c,d-kanaly)
;
;napr.
;ma   dw  #0300,fax
;     dw  fa1,fa1
;
;     #03-pocet adres
;      fax-medzera na zaciatku
;      fa1-navestie bloku
;(ak ma byt niekt.kanal v urc.
;case vypnuty,treba napisat blok
;zlozeny zo samych medzer
;
;!!!hrane bloky sa musia casovo
;   kryt!!!
;   tempo  ln=19  (ld hl,xxxx)
 
       org  34000
 
p      di
obs    ld   ix,sc1
       ld   hl,adst
       ld   c,4
o1     push bc
       call p1
       pop  bc
       inc  hl
       inc  hl
       inc  hl
       dec  c
       jr   nz,o1
       ld   a,247
       in   a,(254)
       cpl
       and  15
       jp   nz,kon
       ld   hl,1024   ;tempo
sc     exx
sc0    dec  c
       jp   nz,s1
sc1    ld   c,0
       ld   l,0
l1     dec  b
       jp   nz,s2
sc2    ld   b,0
       ld   l,0
l2     dec  e
       jp   nz,s3
sc3    ld   e,0
       ld   l,0
l3     dec  d
       jp   nz,s4
sc4    ld   d,0
       ld   l,0
l4     ld   a,l
       and  #10
       sla  l
       out  (254),a
       exx
       dec  hl
       ld   a,h
       or   l
       exx
       jp   nz,sc0
       out  (254),a
       exx
       jp   obs
s1     nop
       jp   l1
s2     nop
       jp   l2
s3     nop
       jp   l3
s4     nop
       jp   l4
kon    ei
       ret
p1     ld   a,(hl)
       or   a
       jp   z,p2
       dec  (hl)
       sla  (ix+3)
       set  4,(ix+3)
       jp   psix
p2     push hl
       inc  hl
       ld   c,(hl)
       inc  hl
       ld   b,(hl)
       ld   a,(bc)
       inc  bc
       ld   (hl),b
       dec  hl
       ld   (hl),c
       cp   #ef
       call z,odzac
       res  4,(ix+2)
       ld   hl,frq
       ld   c,a
       and  15
       cp   15
       jr   nz,pp0
       set  4,(ix+2)
pp0    ld   e,a
       ld   d,0
       add  hl,de
       ld   a,(hl)
       bit  4,c
       jr   z,p3
       srl  a
p3     ld   (ix+1),a
       ld   a,c
       rlca
       rlca
       rlca
       rlca
       and  14
       inc  a
       pop  hl
       ld   (hl),a
       ld   (ix+3),#1f
psix   ld   de,8
       add  ix,de
       ret
odzac  ld   de,12
       add  hl,de
       ld   c,(hl)
       inc  hl
       ld   b,(hl)
       or   a
       sbc  hl,de
       push hl
       ld   h,b
       ld   l,c
       ld   a,(hl)
       inc  hl
       cp   (hl)
       dec  hl
       jr   nz,odzc1
       xor  a
       ld   (hl),a
       jr   odzc2
odzc1  inc  (hl)
odzc2  inc  a
       ex   de,hl
       ld   l,a
       ld   h,0
       add  hl,hl
       add  hl,de
       ld   c,(hl)
       inc  hl
       ld   b,(hl)
       pop  hl
       ld   a,(bc)
       inc  bc
       ld   (hl),b
       dec  hl
       ld   (hl),c
       ret
adst   db   0
       dw   sx
       db   0
       dw   sx
       db   0
       dw   sx
       db   0
       dw   sx
       db   0
       dw   ma
       db   0
       dw   mb
       db   0
       dw   mc
       db   0
       dw   md
sx     db   #ef
frq    db   255,241,227,214
       db   202,191,180,170
       db   161,152,143,135
       db   127,120,114,107
;fax    db   #ff,#ef
ma     dw   #4000
       dw   p11a,p12a,p11a,p12a
       dw   p11a,p12a,p13a,p14a
       dw   p15a,p16a,p15a,p16a
       dw   p11a,p12a,p11a,p17a
       dw   p11a,p12a,p11a,p12a
       dw   p11a,p12a,p13a,p14a
       dw   p15a,p16a,p15a,p16a
       dw   p11a,p12a,p11a,p18a
 
       dw   p21a,p22a,p21a,p22a
       dw   p23a,p24a,p23a,p24a
       dw   p21a,p22a,p21a,p25a
       dw   p26a,p27a,p26a,p28a
       dw   p21a,p22a,p21a,p22a
       dw   p23a,p24a,p23a,p24a
       dw   p21a,p22a,p21a,p25a
       dw   p26a,p27a,p26a,p28a
 
mb     dw   #4000
       dw   p11b,p12b,p13b,p11b
       dw   p14b,p15b,p16b,p17b
       dw   p18b,p19b,p20b,p21b
       dw   p22b,p23b,p24b,p25b
       dw   p11b,p12b,p13b,p11b
       dw   p14b,p15b,p16b,p17b
       dw   p18b,p19b,p20b,p21b
       dw   p22b,p23b,p24b,p26b
 
       dw   p31b,p32b,p33b,p37b
       dw   p34b,p35b,p36b,p38b
       dw   p39b,p40b,p41b,p42b
       dw   p43b,p44b,p45b,p46b
       dw   p31b,p32b,p33b,p37b
       dw   p34b,p35b,p36b,p38b
       dw   p39b,p40b,p41b,p42b
       dw   p43b,p44b,p45b,p46b
 
mc     dw   #4000
       dw   p11c,p12c,p13c,p14c
       dw   p11c,p12c,p13c,p14c
       dw   p15c,p16c,p17c,p18c
       dw   p11c,p12c,p13c,p14c
       dw   p11c,p12c,p13c,p14c
       dw   p11c,p12c,p13c,p14c
       dw   p15c,p16c,p17c,p18c
       dw   p11c,p12c,p13c,p14c
 
       dw   p15c,p16c,p17c,p18c
       dw   p11c,p12c,p13c,p14c
       dw   p15c,p16c,p17c,p18c
       dw   p19c,p20c,p21c,p22c
       dw   p15c,p16c,p17c,p18c
       dw   p11c,p12c,p13c,p14c
       dw   p15c,p16c,p17c,p18c
       dw   p19c,p20c,p21c,p22c
 
md     dw   #4000
       dw   p11d,p12d,p13d,p14d
       dw   p11d,p12d,p13d,p14d
       dw   p15d,p16d,p17d,p18d
       dw   p11d,p12d,p13d,p14d
       dw   p11d,p12d,p13d,p14d
       dw   p11d,p12d,p13d,p14d
       dw   p15d,p16d,p17d,p18d
       dw   p11d,p12d,p13d,p14d
 
       dw   p15d,p16d,p17d,p18d
       dw   p11d,p12d,p13d,p14d
       dw   p15d,p16d,p17d,p18d
       dw   p19d,p20d,p21d,p22d
       dw   p15d,p16d,p17d,p18d
       dw   p11d,p12d,p13d,p14d
       dw   p15d,p16d,p17d,p18d
       dw   p19d,p20d,p21d,p22d
 
p11a   db   #04,#14,#04,#04,#ef ;e4,e5,e4,e4
p12a   db   #12,#14,#04,#04,#ef ;d5,e5,e4,e4
p13a   db   #04,#14,#06,#16,#ef ;e4,e5,f#4,f#5
p14a   db   #07,#17,#08,#18,#ef ;g4,g5,g#4,g#5
p15a   db   #09,#19,#09,#09,#ef ;a4,a5,a4,a4
p16a   db   #07,#19,#09,#09,#ef ;g4,a5,a4,a4
p17a   db   #0a,#0b,#07,#09,#ef ;a#4,b4,g4,a4
p18a   db   #0a,#0b,#17,#19,#ef ;a#4,b4,g5,a5
 
p21a   db   #09,#19,#19,#09,#ef ;a4,a5,a5,a4
p22a   db   #19,#09,#17,#19,#ef ;a5,a4,g5,a5
p23a   db   #04,#14,#14,#04,#ef ;e4,e5,e5,e4
p24a   db   #14,#04,#12,#14,#ef ;e5,e4,d5,e5
p25a   db   #17,#19,#19,#0a,#ef ;g5,a5,a4,a#4
p26a   db   #0b,#1b,#1b,#0b,#ef ;b4,b5,b5,b4
p27a   db   #1b,#0b,#0b,#1b,#ef ;b5,b4,b4,b5
p28a   db   #1e,#1e,#1e,#14,#ef ;d6,d6,d6,e5
 
p11b   db   #1a,#1b,#14,#1a,#ef ;a#5,b5,e5,a#5
p12b   db   #1b,#14,#1a,#1b,#ef ;b5,e5,a#5,b5
p13b   db   #14,#1a,#1b,#14,#ef ;e5,a#5,b5,e5
p14b   db   #1b,#1b,#1b,#0b,#ef ;b5,b5,b5,b4
p15b   db   #1b,#1b,#1b,#1a,#ef ;b5,b5,b5,a#5
p16b   db   #19,#17,#19,#17,#ef ;a5,g5,a5,g5
p17b   db   #14,#12,#14,#14,#ef ;e5,d5,e5,e5
p18b   db   #19,#19,#1f,#14,#ef ;a5,a5,s,e5
p19b   db   #14,#1f,#19,#19,#ef ;e5,s,a5,a5
p20b   db   #1f,#14,#14,#1f,#ef ;s,e5,e5,s
p21b   db   #19,#14,#19,#1a,#ef ;a5,e5,a5,a#5
p22b   db   #1b,#1b,#1f,#1a,#ef ;b5,b5,s,a#5
p23b   db   #1a,#1f,#19,#19,#ef ;a#5,s,a5,a5
p24b   db   #1f,#17,#17,#1f,#ef ;s,g5,g5,s
p25b   db   #14,#1f,#12,#13,#ef ;e5,s,d5,d#5
p26b   db   #14,#1f,#17,#19,#ef ;e5,s,g5,a5
 
p31b   db   #19,#1f,#09,#19,#ef ;a5,s,a4,a5
p32b   db   #17,#19,#1f,#09,#ef ;g5,a5,s,a4
p33b   db   #1f,#09,#09,#19,#ef ;s,a4,a4,a5
p34b   db   #14,#1f,#04,#14,#ef ;e5,s,e4,e5
p35b   db   #12,#14,#1f,#04,#ef ;d5,e5,s,e4
p36b   db   #1f,#04,#14,#04,#ef ;s,e4,e5,e4
p37b   db   #09,#19,#07,#09,#ef ;a4,a5,g4,a4
p38b   db   #04,#14,#02,#04,#ef ;e4,e5,d4,e4
p39b   db   #09,#14,#19,#09,#ef ;a4,e5,a5,a4
p40b   db   #19,#09,#09,#09,#ef ;a5,a4,a4,a4
p41b   db   #09,#09,#19,#09,#ef ;a4,a4,a5,a4
p42b   db   #09,#09,#17,#19,#ef ;a4,a4,g5,a5
p43b   db   #0b,#19,#1b,#0b,#ef ;b4,a5,b5,b4
p44b   db   #1b,#0b,#0b,#0b,#ef ;b5,b4,b4,b4
p45b   db   #0b,#0b,#1b,#0b,#ef ;b4,b4,b5,b4
p46b   db   #1a,#19,#17,#14,#ef ;a#5,a5,g5,e5
 
p11c   db   #17,#17,#1f,#17,#ef ;g5,g5,s,g5
p12c   db   #17,#1f,#19,#19,#ef ;g5,s,a5,a5
p13c   db   #1f,#1f,#19,#19,#ef ;s,s,a5,a5
p14c   db   #1f,#17,#17,#1f,#ef ;s,g5,g5,s
 
p15c   db   #10,#10,#1f,#10,#ef ;c5,c5,s,c5
p16c   db   #10,#1f,#12,#12,#ef ;c5,s,d5,d5
p17c   db   #1f,#1f,#12,#12,#ef ;s,s,d5,d5
p18c   db   #1f,#10,#10,#1f,#ef ;s,c5,c5,s
 
p19c   db   #12,#12,#1f,#12,#ef ;d5,d5,s,d5
p20c   db   #12,#1f,#14,#14,#ef ;d5,s,e5,e5
p21c   db   #1f,#1f,#14,#14,#ef ;s,s,e5,e5
p22c   db   #1f,#12,#12,#1f,#ef ;s,d5,d5,s
 
p11d   db   #1b,#1b,#1f,#1b,#ef ;b5,b5,s,b5
p12d   db   #1b,#1f,#1b,#1b,#ef ;b5,s,b5,b5
p13d   db   #1f,#1f,#1b,#1b,#ef ;s,s,b5,b5
p14d   db   #1f,#1b,#1b,#1f,#ef ;s,b5,b5,s
 
p15d   db   #14,#14,#1f,#14,#ef ;e5,e5,s,e5
p16d   db   #14,#1f,#14,#14,#ef ;e5,s,e5,e5
p17d   db   #1f,#1f,#14,#14,#ef ;s,s,e5,e5
p18d   db   #1f,#14,#14,#1f,#ef ;s,e5,e5,s
 
p19d   db   #16,#16,#1f,#16,#ef ;f#5,f#5,s,f#5
p20d   db   #16,#1f,#16,#16,#ef ;f#5,s,f#5,f#5
p21d   db   #1f,#1f,#16,#16,#ef ;s,s,f#5,f#5
p22d   db   #1f,#16,#16,#1f,#ef ;s,f#5,f#5,s
 
       end
 
       savesna "zx-10.sna",p

Navigation: general . math . graphic . sound . system . other . back to start

zx10.txt · Last modified: 2017/02/16 13:44 by darkbyte