nolist
STab equ &5400 STabH equ &54 write"syntmc" org &5000 ;ROMs schalten (weil's besser is') di exx set 2,c ;LowerRom off res 3,c ;UpperRom on out (c),c exx ei ;aus einer viertel SinusTabelle eine ganze SinusTabelle machen ld hl,SinTab+63 ld de,SinTab+64 ld b,64 loop1 ld a,(hl) ld (de),a dec hl inc de djnz loop1 ld hl,SinTab ld b,128 loop2 ld a,(hl) neg ld (de),a inc hl inc de djnz loop2 ld hl,SinTab ld de,STab ld bc,256 ldir di ld b,&EF ;Druckerport Beispiel1 ld d,16 loop3 ld e,64 ld h,STabH loop4 ld a,(hl) xor 128 out (c),a ld c,d wait dec c jr nz,wait ld a,e srl a srl a scf adc l ld l,a jr nc,loop4 dec e jr nz,loop4 dec d jr nz,loop3 Beispiel2 ld d,1 loop5 ld e,64 loop6 ld a,l xor 128 out (c),a ld c,d wait2 dec c jr nz,wait2 ld h,e srl h srl h scf ld a,l adc h ld l,a jr nc,loop6 dec e jr nz,loop6 inc d ld a,d cp 16 jr nz,loop5 Beispiel3 call b3 ld a,(aen2) push af xor a ld (aen2),a call b3 pop af ld (aen2),a Beispiel4 ld d,16 loop9 ld e,64 loop10 ld a,l xor 128 out (c),a ld c,d wait4 dec c jr nz,wait4 ld h,e srl h srl h scf ld a,l adc h ld l,a jr nc,loop10 loop11 ld a,l xor 128 out (c),a ld c,d wait5 dec c jr nz,wait5 ld h,e srl h srl h scf ld a,l adc h ld l,a jr nc,loop11 dec e jr nz,loop10 dec d jr nz,loop9 ei ret b3 ld hl,STab ld de,STab ld a,24 loop8 call sndb3 sub 8 jr nz,loop8 ret sndb3 ld (aen+1),a add a sub 128 neg ld c,a loop7 ld a,(de) add (hl) aen2 ccf rra out (c),a aen ld a,20 wait3 dec a jr nz,wait3 inc l inc d jr nz,loop7 inc l inc l inc l dec c jr nz,loop7 ld a,(aen+1) ret sintab db 128,131,134,137,140,144,147,150,153,156,159,162,165,168 db 171,174,177,179,182,185,188,191,193,196,199,201,204,206 db 209,211,213,216,218,220,222,224,226,228,230,232,234,235 db 237,239,240,241,243,244,245,246,248,249,250,250,251,252 db 253,253,254,254,254,255,255,255 ;Normale Abspielroutine fuer einen Sample (Beispiel DIGI1 und DIGI2) Len equ 28998 warte equ 13 centprt equ &EF Abspiel di ld b,centprt ld hl,Sample ld de,Len loop ld a,warte wt dec a jr nz,wt ld a,(hl) xor 128 out (c),a inc hl dec de ld a,d or e jr nz,loop ei ret Sample end |