pt3player-asl
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| pt3player-asl [2013/02/12 14:12] – created darkbyte | pt3player-asl [2017/02/16 13:27] (current) – darkbyte | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | Navigation: [[general]] . [[math]] . [[graphic]] . [[sound]] . [[system]] . [[other]] . back to [[start]] | + | ====PT2 / PT3 player==== |
| + | |||
| + | ---- | ||
| + | |||
| + | //syntax is for ASL// | ||
| + | |||
| + | <code z80> | ||
| + | cpu z80undoc | ||
| + | relaxed on | ||
| + | |||
| + | ; module p1 | ||
| + | ;universal pt2 and pt3 player for zx spectrum and msx | ||
| + | ; | ||
| + | ; | ||
| + | ;ASL adaptation by z00m^TCG & mborik 02/2013 | ||
| + | |||
| + | ;release number | ||
| + | release equ " | ||
| + | |||
| + | ; | ||
| + | ;1) version of rout (zx or msx standards) | ||
| + | zx equ 1 | ||
| + | msx equ 0 | ||
| + | |||
| + | ;2) current position counter at (start+11) | ||
| + | curposcounter equ 1 | ||
| + | |||
| + | ;3) allow channels allocation bits at (start+10) | ||
| + | acbbac equ 1 | ||
| + | |||
| + | ;4) allow loop checking and disabling | ||
| + | loopchecker equ 1 | ||
| + | |||
| + | ;5) insert official identificator | ||
| + | id equ 1 | ||
| + | |||
| + | |||
| + | ;features | ||
| + | ;-------- | ||
| + | ;-can be compiled at any address (i.e. no need rounding org | ||
| + | ; address). | ||
| + | ;-variables (vars) can be located at any address (not only after | ||
| + | ;code block). | ||
| + | ;-init subprogram checks pt3-module version and rightly | ||
| + | ; generates both note and volume tables outside of code block | ||
| + | ; (in vars). | ||
| + | ;-two portamento (spc. command 3xxx) algorithms (depending of | ||
| + | ; pt3 module version). | ||
| + | ;-any tempo value are accepted (including tempo=1 and tempo=2). | ||
| + | ;-fully compatible with ay_emul pt3 and pt2 players codes. | ||
| + | ;-see also notes at the end of this source code. | ||
| + | |||
| + | ; | ||
| + | ; | ||
| + | ;-can run in ram only (self-modified code is used). | ||
| + | ;-pt2 position list must be end by #ff marker only. | ||
| + | |||
| + | ;warning!!! play subprogram can crash if no module are loaded | ||
| + | ;into ram or init subprogram was not called before. | ||
| + | |||
| + | ;call mute or init one more time to mute sound after stopping | ||
| + | ;playing | ||
| + | |||
| + | |||
| + | ;test codes (commented) | ||
| + | ; ld a,2 ; | ||
| + | ; ld (start+10), | ||
| + | ; call start | ||
| + | ; ei | ||
| + | ;_lp halt | ||
| + | ; call start+5 | ||
| + | ; xor a | ||
| + | ; in a,(#fe) | ||
| + | ; cpl | ||
| + | ; and 15 | ||
| + | ; jr z,_lp | ||
| + | |||
| + | tona equ 0 | ||
| + | tonb equ 2 | ||
| + | tonc equ 4 | ||
| + | noise equ 6 | ||
| + | mixer equ 7 | ||
| + | ampla equ 8 | ||
| + | amplb equ 9 | ||
| + | amplc equ 10 | ||
| + | env equ 11 | ||
| + | envtp equ 13 | ||
| + | |||
| + | ; | ||
| + | ;reset group | ||
| + | |||
| + | chp_psinor equ 0 | ||
| + | chp_psinsm equ 1 | ||
| + | chp_cramsl equ 2 | ||
| + | chp_crnssl equ 3 | ||
| + | chp_crensl equ 4 | ||
| + | chp_tslcnt equ 5 | ||
| + | chp_crtnsl equ 6 | ||
| + | chp_tnacc equ 8 | ||
| + | chp_conoff equ 10 | ||
| + | |||
| + | ;reset group | ||
| + | |||
| + | chp_onoffd equ 11 | ||
| + | |||
| + | ;ix for ptdecod here (+12) | ||
| + | |||
| + | chp_offond equ 12 | ||
| + | chp_ornptr equ 13 | ||
| + | chp_samptr equ 15 | ||
| + | chp_nntskp equ 17 | ||
| + | chp_note equ 18 | ||
| + | chp_sltont equ 19 | ||
| + | chp_env_en equ 20 | ||
| + | chp_flags equ 21 | ||
| + | |||
| + | ;enabled - 0, | ||
| + | |||
| + | chp_tnsldl equ 22 | ||
| + | chp_tslstp equ 23 | ||
| + | chp_tndelt equ 25 | ||
| + | chp_ntskcn equ 27 | ||
| + | chp_volume equ 28 | ||
| + | |||
| + | ; | ||
| + | |||
| + | chp equ 29 | ||
| + | |||
| + | ;entry and other points | ||
| + | ;start initialize playing of module at mdladdr | ||
| + | ;start+3 initialization with module address in hl | ||
| + | ;start+5 play one quark | ||
| + | ;start+8 mute | ||
| + | ;start+10 setup and status flags | ||
| + | ;start+11 current position value (byte) (optional) | ||
| + | ;first 12 values of tone tables (packed) | ||
| + | |||
| + | ;@p1 | ||
| + | |||
| + | start | ||
| + | ld hl, | ||
| + | jr init | ||
| + | jp play | ||
| + | jr mute | ||
| + | setup db 0 | ||
| + | |||
| + | ;set bit0, if you want to play without looping | ||
| + | ; | ||
| + | ;set bit1 for pt2 and reset for pt3 before | ||
| + | ;calling init; | ||
| + | ;bits2-3: %00-abc, %01 acb, %10 bac (optional); | ||
| + | ;bits4-6 are not used | ||
| + | ;bit7 is set each time, when loop point is passed | ||
| + | ; | ||
| + | |||
| + | if curposcounter | ||
| + | curpos db 0 | ||
| + | ;for visualization only (i.e. no need for playing) | ||
| + | endif | ||
| + | |||
| + | ; | ||
| + | if id | ||
| + | db " | ||
| + | endif | ||
| + | |||
| + | if loopchecker | ||
| + | checklp ld hl, | ||
| + | set 7, | ||
| + | bit 0, | ||
| + | ret z | ||
| + | pop hl | ||
| + | ld hl, | ||
| + | inc (hl) | ||
| + | ld hl, | ||
| + | inc (hl) | ||
| + | endif | ||
| + | |||
| + | mute xor a | ||
| + | ld h,a | ||
| + | ld l,a | ||
| + | ld (ayregs+ampla), | ||
| + | ld (ayregs+amplb), | ||
| + | jp rout | ||
| + | |||
| + | init ; | ||
| + | ld a, | ||
| + | and 2 | ||
| + | jr nz, | ||
| + | |||
| + | call setmdad | ||
| + | push hl | ||
| + | ld de, | ||
| + | add hl, | ||
| + | ld a, | ||
| + | ld (delay), | ||
| + | push hl | ||
| + | pop ix | ||
| + | add hl, | ||
| + | ld (crpsptr), | ||
| + | ld e, | ||
| + | inc hl | ||
| + | |||
| + | if curposcounter | ||
| + | ld a,l | ||
| + | ld (possub+1), | ||
| + | endif | ||
| + | |||
| + | add hl, | ||
| + | ld (lposptr), | ||
| + | pop de | ||
| + | ld l, | ||
| + | ld h, | ||
| + | add hl, | ||
| + | ld (patsptr), | ||
| + | ld hl, | ||
| + | add hl, | ||
| + | ld (ornptrs), | ||
| + | ld hl, | ||
| + | add hl, | ||
| + | ld (samptrs), | ||
| + | ld a, | ||
| + | sub $30 | ||
| + | jr c, | ||
| + | cp 10 | ||
| + | jr c, | ||
| + | l20 ld a, | ||
| + | l21 ld (zversion+1), | ||
| + | push af ; | ||
| + | cp 4 | ||
| + | ld a, | ||
| + | rla | ||
| + | and 7 | ||
| + | push af; | ||
| + | ld hl, | ||
| + | ld (samcnv), | ||
| + | ld a, | ||
| + | ld (orncp), | ||
| + | ld (samcp), | ||
| + | ld a, | ||
| + | ld (ornld), | ||
| + | ld (samld), | ||
| + | ld a, | ||
| + | ld (samclc2), | ||
| + | ld bc, | ||
| + | ld hl,0 | ||
| + | ld de, | ||
| + | jr initcommon | ||
| + | |||
| + | initpt2 ld a, | ||
| + | ld (delay), | ||
| + | push hl | ||
| + | push hl | ||
| + | push hl | ||
| + | inc hl | ||
| + | inc hl | ||
| + | ld a, | ||
| + | inc hl | ||
| + | ld (samptrs), | ||
| + | ld e, | ||
| + | inc hl | ||
| + | ld d, | ||
| + | pop hl | ||
| + | and a | ||
| + | sbc hl, | ||
| + | call setmdad | ||
| + | pop hl | ||
| + | ld de, | ||
| + | add hl, | ||
| + | ld (ornptrs), | ||
| + | ld e,32 | ||
| + | add hl, | ||
| + | ld c, | ||
| + | inc hl | ||
| + | ld b, | ||
| + | ld e,30 | ||
| + | add hl, | ||
| + | ld (crpsptr), | ||
| + | ld e,a | ||
| + | inc hl | ||
| + | |||
| + | if curposcounter | ||
| + | ld a,l | ||
| + | ld (possub+1), | ||
| + | endif | ||
| + | |||
| + | add hl, | ||
| + | ld (lposptr), | ||
| + | pop hl | ||
| + | add hl, | ||
| + | ld (patsptr), | ||
| + | ld a,5 | ||
| + | ld (zversion+1), | ||
| + | push af | ||
| + | ld a,2 | ||
| + | push af | ||
| + | ld hl, | ||
| + | ld (samcnv), | ||
| + | ld a, | ||
| + | ld (orncp), | ||
| + | ld (samcp), | ||
| + | ld a, | ||
| + | ld (ornld), | ||
| + | ld (samld), | ||
| + | ld a, | ||
| + | ld (samclc2), | ||
| + | ld bc, | ||
| + | ld hl, | ||
| + | ld de, | ||
| + | |||
| + | initcommon | ||
| + | |||
| + | ld (ptdecod+1), | ||
| + | ld (pscalc), | ||
| + | push de | ||
| + | |||
| + | ;note table data depacker | ||
| + | ;(c) ivan roshin | ||
| + | ld de, | ||
| + | ld bc, | ||
| + | tp_0 ld a, | ||
| + | inc de | ||
| + | cp 15*2 | ||
| + | jr nc, | ||
| + | ld h,a | ||
| + | ld a, | ||
| + | ld l,a | ||
| + | inc de | ||
| + | jr tp_2 | ||
| + | tp_1 push de | ||
| + | ld d,0 | ||
| + | ld e,a | ||
| + | add hl, | ||
| + | add hl, | ||
| + | pop de | ||
| + | tp_2 ld a, | ||
| + | ld (bc), | ||
| + | dec bc | ||
| + | ld a,l | ||
| + | ld (bc), | ||
| + | dec bc | ||
| + | sub ($f8*2)# | ||
| + | jr nz, | ||
| + | |||
| + | ld hl, | ||
| + | res 7, | ||
| + | |||
| + | if curposcounter | ||
| + | inc hl | ||
| + | ld (hl), | ||
| + | endif | ||
| + | |||
| + | ld hl, | ||
| + | ld (hl), | ||
| + | ld de, | ||
| + | ld bc, | ||
| + | ldir | ||
| + | ld (adinpta), | ||
| + | inc a | ||
| + | ld (delycnt), | ||
| + | ld hl, | ||
| + | ld (chana+chp_ntskcn), | ||
| + | ld (chanb+chp_ntskcn), | ||
| + | ld (chanc+chp_ntskcn), | ||
| + | pop hl | ||
| + | ld (chana+chp_ornptr), | ||
| + | ld (chanb+chp_ornptr), | ||
| + | ld (chanc+chp_ornptr), | ||
| + | |||
| + | pop af | ||
| + | |||
| + | ; | ||
| + | ;a - notetablenumber*2+versionfornotetable | ||
| + | ;(xx1b - 3.xx..3.4r, xx0b - 3.4x..3.6x..vtii1.0) | ||
| + | |||
| + | ld hl, | ||
| + | push de | ||
| + | ld d,b | ||
| + | add a,a | ||
| + | ld e,a | ||
| + | add hl, | ||
| + | ld e, | ||
| + | inc hl | ||
| + | srl e | ||
| + | sbc a,a | ||
| + | and $a7 ;# | ||
| + | ld (l3), | ||
| + | ex de, | ||
| + | pop bc ; | ||
| + | add hl, | ||
| + | |||
| + | ld a, | ||
| + | add a, | ||
| + | ld c,a | ||
| + | adc a, | ||
| + | sub c | ||
| + | ld b,a | ||
| + | push bc | ||
| + | ld de, | ||
| + | push de | ||
| + | |||
| + | ld b,12 | ||
| + | l1 push bc | ||
| + | ld c, | ||
| + | inc hl | ||
| + | push hl | ||
| + | ld b, | ||
| + | |||
| + | push de | ||
| + | ex de, | ||
| + | ld de, | ||
| + | ld ixu, | ||
| + | |||
| + | l2 srl b | ||
| + | rr c | ||
| + | l3 db $19 ; | ||
| + | ld a,c | ||
| + | adc a, | ||
| + | ld (hl), | ||
| + | inc hl | ||
| + | ld a,b | ||
| + | adc a,d | ||
| + | ld (hl), | ||
| + | add hl, | ||
| + | dec ixu | ||
| + | jr nz, | ||
| + | |||
| + | pop de | ||
| + | inc de | ||
| + | inc de | ||
| + | pop hl | ||
| + | inc hl | ||
| + | pop bc | ||
| + | djnz l1 | ||
| + | |||
| + | pop hl | ||
| + | pop de | ||
| + | |||
| + | ld a,e | ||
| + | cp (tcold_1)# | ||
| + | jr nz, | ||
| + | ld a, | ||
| + | ld (nt_+$2e), | ||
| + | |||
| + | corr_1 ld a, | ||
| + | and a | ||
| + | jr z, | ||
| + | rra | ||
| + | push af | ||
| + | add a,a | ||
| + | ld c,a | ||
| + | add hl, | ||
| + | pop af | ||
| + | jr nc, | ||
| + | dec (hl) | ||
| + | dec (hl) | ||
| + | corr_2 inc (hl) | ||
| + | and a | ||
| + | sbc hl, | ||
| + | inc de | ||
| + | jr corr_1 | ||
| + | |||
| + | tc_exit | ||
| + | |||
| + | pop af | ||
| + | |||
| + | ; | ||
| + | ;a - versionforvolumetable (0..4 - 3.xx..3.4x; | ||
| + | ;5.. - 2.x, | ||
| + | |||
| + | cp 5 | ||
| + | ld hl, | ||
| + | ld d,h | ||
| + | ld e,h | ||
| + | ld a, | ||
| + | jr nc, | ||
| + | dec l | ||
| + | ld e,l | ||
| + | xor a | ||
| + | m1 ld (m2), | ||
| + | |||
| + | ld ix, | ||
| + | |||
| + | ld c,$f | ||
| + | initv2 push hl | ||
| + | |||
| + | add hl, | ||
| + | ex de, | ||
| + | sbc hl, | ||
| + | |||
| + | ld b, | ||
| + | initv1 ld a, | ||
| + | m2 db $7d | ||
| + | ld a,h | ||
| + | adc a,0 | ||
| + | ld (ix), | ||
| + | inc ix | ||
| + | add hl, | ||
| + | djnz initv1 | ||
| + | |||
| + | pop hl | ||
| + | ld a,e | ||
| + | cp $77 | ||
| + | jr nz, | ||
| + | inc e | ||
| + | m3 dec c | ||
| + | jr nz, | ||
| + | |||
| + | jp rout | ||
| + | |||
| + | setmdad ld (modaddr), | ||
| + | ld (mdaddr1), | ||
| + | ld (mdaddr2), | ||
| + | ret | ||
| + | |||
| + | ptdecod jp $c3c3 | ||
| + | |||
| + | ;pt2 pattern decoder | ||
| + | pd2_sam call setsam | ||
| + | jr pd2_loop | ||
| + | |||
| + | pd2_eoff ld (ix-12+chp_env_en), | ||
| + | jr pd2_loop | ||
| + | |||
| + | pd2_env ld (ix-12+chp_env_en), | ||
| + | ld (ayregs+envtp), | ||
| + | ld a, | ||
| + | inc bc | ||
| + | ld l,a | ||
| + | ld a, | ||
| + | inc bc | ||
| + | ld h,a | ||
| + | ld (envbase), | ||
| + | jr pd2_loop | ||
| + | |||
| + | pd2_orn call setorn | ||
| + | jr pd2_loop | ||
| + | |||
| + | pd2_skip inc a | ||
| + | ld (ix-12+chp_nntskp), | ||
| + | jr pd2_loop | ||
| + | |||
| + | pd2_vol rrca | ||
| + | rrca | ||
| + | rrca | ||
| + | rrca | ||
| + | ld (ix-12+chp_volume), | ||
| + | jr pd2_loop | ||
| + | |||
| + | pd2_del call c_delay | ||
| + | jr pd2_loop | ||
| + | |||
| + | pd2_glis set 2, | ||
| + | inc a | ||
| + | ld (ix-12+chp_tnsldl), | ||
| + | ld (ix-12+chp_tslcnt), | ||
| + | ld a, | ||
| + | inc bc | ||
| + | ld (ix-12+chp_tslstp), | ||
| + | add a,a | ||
| + | sbc a,a | ||
| + | ld (ix-12+chp_tslstp+1), | ||
| + | scf | ||
| + | jr pd2_lp2 | ||
| + | |||
| + | pt2pd and a | ||
| + | |||
| + | pd2_lp2 ex af, | ||
| + | |||
| + | pd2_loop ld a, | ||
| + | inc bc | ||
| + | add a, | ||
| + | jr z, | ||
| + | jr c, | ||
| + | add a, | ||
| + | jr c, | ||
| + | inc a | ||
| + | jr z, | ||
| + | add a, | ||
| + | jp z, | ||
| + | jr c, | ||
| + | add a, | ||
| + | jr c, | ||
| + | add a, | ||
| + | jr c, | ||
| + | add a, | ||
| + | jr c, | ||
| + | inc a | ||
| + | jr z, | ||
| + | inc a | ||
| + | jr z, | ||
| + | inc a | ||
| + | jr z, | ||
| + | inc a | ||
| + | jr z, | ||
| + | ld a, | ||
| + | inc bc | ||
| + | ld (ix-12+chp_crnssl), | ||
| + | jr pd2_loop | ||
| + | |||
| + | pd2_port res 2, | ||
| + | ld a, | ||
| + | inc bc | ||
| + | inc bc ; | ||
| + | inc bc | ||
| + | scf | ||
| + | jr pd2_lp2 | ||
| + | |||
| + | pd2_stop ld (ix-12+chp_tslcnt), | ||
| + | jr pd2_loop | ||
| + | |||
| + | pd2_rel ld (ix-12+chp_flags), | ||
| + | jr pd2_exit | ||
| + | |||
| + | pd2_note ld l, | ||
| + | ld a, | ||
| + | ld (prnote+1), | ||
| + | ld (ix-12+chp_note), | ||
| + | xor a | ||
| + | ld (ix-12+chp_tslcnt), | ||
| + | set 0, | ||
| + | ex af, | ||
| + | jr nc, | ||
| + | bit 2, | ||
| + | jr nz, | ||
| + | ld (lostep), | ||
| + | add a,a | ||
| + | sbc a,a | ||
| + | ex af, | ||
| + | ld h,a | ||
| + | ld l,a | ||
| + | inc a | ||
| + | call setport | ||
| + | noport2 ld (ix-12+chp_tslcnt), | ||
| + | noglis2 xor a | ||
| + | |||
| + | |||
| + | pd2_exit ld (ix-12+chp_psinsm), | ||
| + | ld (ix-12+chp_psinor), | ||
| + | ld (ix-12+chp_crtnsl), | ||
| + | ld (ix-12+chp_crtnsl+1), | ||
| + | jp pd_fin | ||
| + | |||
| + | ;pt3 pattern decoder | ||
| + | pd_orsm ld (ix-12+chp_env_en), | ||
| + | call setorn | ||
| + | pd_sam_ ld a, | ||
| + | inc bc | ||
| + | rrca | ||
| + | |||
| + | pd_sam call setsam | ||
| + | jr pd_loop | ||
| + | |||
| + | pd_vol rrca | ||
| + | rrca | ||
| + | rrca | ||
| + | rrca | ||
| + | ld (ix-12+chp_volume), | ||
| + | jr pd_lp2 | ||
| + | |||
| + | pd_eoff ld (ix-12+chp_env_en), | ||
| + | ld (ix-12+chp_psinor), | ||
| + | jr pd_lp2 | ||
| + | |||
| + | pd_sore dec a | ||
| + | jr nz, | ||
| + | ld a, | ||
| + | inc bc | ||
| + | ld (ix-12+chp_nntskp), | ||
| + | jr pd_lp2 | ||
| + | |||
| + | pd_env call setenv | ||
| + | jr pd_lp2 | ||
| + | |||
| + | pd_orn call setorn | ||
| + | jr pd_loop | ||
| + | |||
| + | pd_esam ld (ix-12+chp_env_en), | ||
| + | ld (ix-12+chp_psinor), | ||
| + | call nz, | ||
| + | jr pd_sam_ | ||
| + | |||
| + | pt3pd ld a, | ||
| + | ld (prnote+1), | ||
| + | ld l, | ||
| + | ld h, | ||
| + | ld (prslide+1), | ||
| + | |||
| + | pd_loop ld de, | ||
| + | pd_lp2 ld a, | ||
| + | inc bc | ||
| + | add a,e | ||
| + | jr c, | ||
| + | add a,d | ||
| + | jr z, | ||
| + | jr c, | ||
| + | add a,e | ||
| + | jr z, | ||
| + | jr c, | ||
| + | add a,e | ||
| + | jr z, | ||
| + | jr c, | ||
| + | add a, | ||
| + | jr c, | ||
| + | add a,e | ||
| + | jr c, | ||
| + | add a,d | ||
| + | jr c, | ||
| + | add a,e | ||
| + | jr c, | ||
| + | add a,a | ||
| + | ld e,a | ||
| + | ld hl, | ||
| + | add hl, | ||
| + | ld e, | ||
| + | inc hl | ||
| + | ld d, | ||
| + | push de | ||
| + | jr pd_loop | ||
| + | |||
| + | pd_nois ld (ns_base), | ||
| + | jr pd_lp2 | ||
| + | |||
| + | pd_rel res 0, | ||
| + | jr pd_res | ||
| + | |||
| + | pd_note ld (ix-12+chp_note), | ||
| + | set 0, | ||
| + | xor a | ||
| + | |||
| + | pd_res ld (pdsp_+1), | ||
| + | ld sp, | ||
| + | ld h,a | ||
| + | ld l,a | ||
| + | push hl | ||
| + | push hl | ||
| + | push hl | ||
| + | push hl | ||
| + | push hl | ||
| + | push hl | ||
| + | pdsp_ ld sp, | ||
| + | |||
| + | pd_fin ld a, | ||
| + | ld (ix-12+chp_ntskcn), | ||
| + | ret | ||
| + | |||
| + | c_portm ld a, | ||
| + | inc bc | ||
| + | ;skip precalculated tone delta (because | ||
| + | ;cannot be right after pt3 compilation) | ||
| + | inc bc | ||
| + | inc bc | ||
| + | ex af, | ||
| + | ld a, | ||
| + | inc bc | ||
| + | ld (lostep), | ||
| + | ld a, | ||
| + | inc bc | ||
| + | and a | ||
| + | ex af, | ||
| + | ld l, | ||
| + | ld h, | ||
| + | |||
| + | ;set portamento variables | ||
| + | ;a - delay; a' - hi(step); zf' - (a' | ||
| + | |||
| + | setport res 2, | ||
| + | ld (ix-12+chp_tnsldl), | ||
| + | ld (ix-12+chp_tslcnt), | ||
| + | push hl | ||
| + | ld de, | ||
| + | ld a, | ||
| + | ld (ix-12+chp_sltont), | ||
| + | add a,a | ||
| + | ld l,a | ||
| + | ld h,0 | ||
| + | add hl, | ||
| + | ld a, | ||
| + | inc hl | ||
| + | ld h, | ||
| + | ld l,a | ||
| + | push hl | ||
| + | prnote ld a, | ||
| + | ld (ix-12+chp_note), | ||
| + | add a,a | ||
| + | ld l,a | ||
| + | ld h,0 | ||
| + | add hl, | ||
| + | ld e, | ||
| + | inc hl | ||
| + | ld d, | ||
| + | pop hl | ||
| + | sbc hl, | ||
| + | ld (ix-12+chp_tndelt), | ||
| + | ld (ix-12+chp_tndelt+1), | ||
| + | pop de | ||
| + | zversion ld a, | ||
| + | cp 6 | ||
| + | jr c, | ||
| + | prslide ld de, | ||
| + | ld (ix-12+chp_crtnsl), | ||
| + | ld (ix-12+chp_crtnsl+1), | ||
| + | lostep equ $+1 | ||
| + | oldprtm ld a, | ||
| + | ex af, | ||
| + | jr z, | ||
| + | ex de, | ||
| + | nosig sbc hl, | ||
| + | jp p, | ||
| + | cpl | ||
| + | ex af, | ||
| + | neg | ||
| + | ex af, | ||
| + | set_stp ld (ix-12+chp_tslstp+1), | ||
| + | ex af, | ||
| + | ld (ix-12+chp_tslstp), | ||
| + | ld (ix-12+chp_conoff), | ||
| + | ret | ||
| + | |||
| + | c_gliss set 2, | ||
| + | ld a, | ||
| + | inc bc | ||
| + | ld (ix-12+chp_tnsldl), | ||
| + | ld (ix-12+chp_tslcnt), | ||
| + | ld a, | ||
| + | inc bc | ||
| + | ex af, | ||
| + | ld a, | ||
| + | inc bc | ||
| + | jr set_stp | ||
| + | |||
| + | c_smpos ld a, | ||
| + | inc bc | ||
| + | ld (ix-12+chp_psinsm), | ||
| + | ret | ||
| + | |||
| + | c_orpos ld a, | ||
| + | inc bc | ||
| + | ld (ix-12+chp_psinor), | ||
| + | ret | ||
| + | |||
| + | c_vibrt ld a, | ||
| + | inc bc | ||
| + | ld (ix-12+chp_onoffd), | ||
| + | ld (ix-12+chp_conoff), | ||
| + | ld a, | ||
| + | inc bc | ||
| + | ld (ix-12+chp_offond), | ||
| + | xor a | ||
| + | ld (ix-12+chp_tslcnt), | ||
| + | ld (ix-12+chp_crtnsl), | ||
| + | ld (ix-12+chp_crtnsl+1), | ||
| + | ret | ||
| + | |||
| + | c_engls ld a, | ||
| + | inc bc | ||
| + | ld (env_del), | ||
| + | ld (curedel), | ||
| + | ld a, | ||
| + | inc bc | ||
| + | ld l,a | ||
| + | ld a, | ||
| + | inc bc | ||
| + | ld h,a | ||
| + | ld (esldadd), | ||
| + | ret | ||
| + | |||
| + | c_delay ld a, | ||
| + | inc bc | ||
| + | ld (delay), | ||
| + | ret | ||
| + | |||
| + | setenv ld (ix-12+chp_env_en), | ||
| + | ld (ayregs+envtp), | ||
| + | ld a, | ||
| + | inc bc | ||
| + | ld h,a | ||
| + | ld a, | ||
| + | inc bc | ||
| + | ld l,a | ||
| + | ld (envbase), | ||
| + | xor a | ||
| + | ld (ix-12+chp_psinor), | ||
| + | ld (curedel), | ||
| + | ld h,a | ||
| + | ld l,a | ||
| + | ld (curesld), | ||
| + | c_nop ret | ||
| + | |||
| + | setorn add a, | ||
| + | ld e,a | ||
| + | ld d,0 | ||
| + | ld (ix-12+chp_psinor), | ||
| + | ornptrs equ $+1 | ||
| + | ld hl, | ||
| + | add hl, | ||
| + | ld e, | ||
| + | inc hl | ||
| + | ld d, | ||
| + | mdaddr2 equ $+1 | ||
| + | ld hl, | ||
| + | add hl, | ||
| + | ld (ix-12+chp_ornptr), | ||
| + | ld (ix-12+chp_ornptr+1), | ||
| + | ret | ||
| + | |||
| + | setsam add a, | ||
| + | ld e,a | ||
| + | ld d,0 | ||
| + | samptrs equ $+1 | ||
| + | ld hl, | ||
| + | add hl, | ||
| + | ld e, | ||
| + | inc hl | ||
| + | ld d, | ||
| + | mdaddr1 equ $+1 | ||
| + | ld hl, | ||
| + | add hl, | ||
| + | ld (ix-12+chp_samptr), | ||
| + | ld (ix-12+chp_samptr+1), | ||
| + | ret | ||
| + | |||
| + | ;all 16 addresses to protect from broken pt3 modules | ||
| + | spccoms dw c_nop | ||
| + | dw c_gliss | ||
| + | dw c_portm | ||
| + | dw c_smpos | ||
| + | dw c_orpos | ||
| + | dw c_vibrt | ||
| + | dw c_nop | ||
| + | dw c_nop | ||
| + | dw c_engls | ||
| + | dw c_delay | ||
| + | dw c_nop | ||
| + | dw c_nop | ||
| + | dw c_nop | ||
| + | dw c_nop | ||
| + | dw c_nop | ||
| + | dw c_nop | ||
| + | |||
| + | chregs xor a | ||
| + | ld (ampl), | ||
| + | bit 0, | ||
| + | push hl | ||
| + | jp z, | ||
| + | ld (csp_+1), | ||
| + | ld l, | ||
| + | ld h, | ||
| + | ld sp, | ||
| + | pop de | ||
| + | ld h,a | ||
| + | ld a, | ||
| + | ld l,a | ||
| + | add hl, | ||
| + | inc a | ||
| + | ; | ||
| + | orncp inc a ; | ||
| + | jr c, | ||
| + | ornld db 1 ; | ||
| + | ch_orps ld (ix+chp_psinor), | ||
| + | ld a, | ||
| + | add a, | ||
| + | jp p, | ||
| + | xor a | ||
| + | ch_ntp cp 96 | ||
| + | jr c, | ||
| + | ld a,95 | ||
| + | ch_nok add a, | ||
| + | ex af, | ||
| + | ld l, | ||
| + | ld h, | ||
| + | ld sp, | ||
| + | pop de | ||
| + | ld h,0 | ||
| + | ld a, | ||
| + | ld b,a | ||
| + | add a,a | ||
| + | samclc2 add a, | ||
| + | ld l,a | ||
| + | add hl, | ||
| + | ld sp, | ||
| + | ld a,b | ||
| + | inc a | ||
| + | ; | ||
| + | samcp inc a ; | ||
| + | jr c, | ||
| + | samld db 1 ; | ||
| + | ch_smps ld (ix+chp_psinsm), | ||
| + | pop bc | ||
| + | pop hl | ||
| + | |||
| + | ;convert pt2 sample to pt3 | ||
| + | ; | ||
| + | samcnv pop hl ; | ||
| + | pop hl | ||
| + | ld h,b | ||
| + | jr nz, | ||
| + | ex de, | ||
| + | and a | ||
| + | sbc hl, | ||
| + | sbc hl, | ||
| + | ld d,c | ||
| + | rr c | ||
| + | sbc a,a | ||
| + | cpl | ||
| + | and $3e | ||
| + | rr c | ||
| + | rr b | ||
| + | and c | ||
| + | ld c,a | ||
| + | ld a,b | ||
| + | rra | ||
| + | rra | ||
| + | rr d | ||
| + | rra | ||
| + | and $9f | ||
| + | ld b,a | ||
| + | |||
| + | e_ ld e, | ||
| + | ld d, | ||
| + | add hl, | ||
| + | bit 6,b | ||
| + | jr z, | ||
| + | ld (ix+chp_tnacc), | ||
| + | ld (ix+chp_tnacc+1), | ||
| + | ch_noac ex de, | ||
| + | ex af, | ||
| + | add a, | ||
| + | ld l,a | ||
| + | adc a, | ||
| + | sub l | ||
| + | ld h,a | ||
| + | ld sp, | ||
| + | pop hl | ||
| + | add hl, | ||
| + | ld e, | ||
| + | ld d, | ||
| + | add hl, | ||
| + | csp_ ld sp, | ||
| + | ex (sp), | ||
| + | xor a | ||
| + | or (ix+chp_tslcnt) | ||
| + | jr z, | ||
| + | dec (ix+chp_tslcnt) | ||
| + | jr nz, | ||
| + | ld a, | ||
| + | ld (ix+chp_tslcnt), | ||
| + | ld l, | ||
| + | ld h, | ||
| + | ld a,h | ||
| + | add hl, | ||
| + | ld (ix+chp_crtnsl), | ||
| + | ld (ix+chp_crtnsl+1), | ||
| + | bit 2, | ||
| + | jr nz, | ||
| + | ld e, | ||
| + | ld d, | ||
| + | and a | ||
| + | jr z, | ||
| + | ex de, | ||
| + | ch_stpp sbc hl, | ||
| + | jp m, | ||
| + | ld a, | ||
| + | ld (ix+chp_note), | ||
| + | xor a | ||
| + | ld (ix+chp_tslcnt), | ||
| + | ld (ix+chp_crtnsl), | ||
| + | ld (ix+chp_crtnsl+1), | ||
| + | ch_amp ld a, | ||
| + | bit 7,c | ||
| + | jr z, | ||
| + | bit 6,c | ||
| + | jr z, | ||
| + | cp 15 | ||
| + | jr z, | ||
| + | inc a | ||
| + | jr ch_svam | ||
| + | ch_amin cp -15 | ||
| + | jr z, | ||
| + | dec a | ||
| + | ch_svam ld (ix+chp_cramsl), | ||
| + | ch_noam ld l, | ||
| + | ld a,b | ||
| + | and 15 | ||
| + | add a,l | ||
| + | jp p, | ||
| + | xor a | ||
| + | ch_apos cp 16 | ||
| + | jr c, | ||
| + | ld a,15 | ||
| + | ch_vol or (ix+chp_volume) | ||
| + | add a, | ||
| + | ld l,a | ||
| + | adc a, | ||
| + | sub l | ||
| + | ld h,a | ||
| + | ld a, | ||
| + | ch_env bit 0, | ||
| + | jr nz, | ||
| + | or (ix+chp_env_en) | ||
| + | ch_noen ld (ampl), | ||
| + | bit 7,b | ||
| + | ld a,c | ||
| + | jr z, | ||
| + | rla | ||
| + | rla | ||
| + | sra a | ||
| + | sra a | ||
| + | sra a | ||
| + | add a, | ||
| + | bit 5,b | ||
| + | jr z, | ||
| + | ld (ix+chp_crensl), | ||
| + | no_enac ld hl, | ||
| + | add a, | ||
| + | ld (hl), | ||
| + | jr ch_mix | ||
| + | no_ensl rra | ||
| + | add a, | ||
| + | ld (addtons), | ||
| + | bit 5,b | ||
| + | jr z, | ||
| + | ld (ix+chp_crnssl), | ||
| + | ch_mix ld a, | ||
| + | rra | ||
| + | and $48 | ||
| + | ch_exit ld hl, | ||
| + | or (hl) | ||
| + | rrca | ||
| + | ld (hl), | ||
| + | pop hl | ||
| + | xor a | ||
| + | or (ix+chp_conoff) | ||
| + | ret z | ||
| + | dec (ix+chp_conoff) | ||
| + | ret nz | ||
| + | xor (ix+chp_flags) | ||
| + | ld (ix+chp_flags), | ||
| + | rra | ||
| + | ld a, | ||
| + | jr c, | ||
| + | ld a, | ||
| + | ch_ondl ld (ix+chp_conoff), | ||
| + | ret | ||
| + | |||
| + | play xor a | ||
| + | ld (addtoen), | ||
| + | ld (ayregs+mixer), | ||
| + | dec a | ||
| + | ld (ayregs+envtp), | ||
| + | ld hl, | ||
| + | dec (hl) | ||
| + | jp nz, | ||
| + | ld hl, | ||
| + | dec (hl) | ||
| + | jr nz, | ||
| + | adinpta equ $+1 | ||
| + | ld bc, | ||
| + | ld a, | ||
| + | and a | ||
| + | jr nz, | ||
| + | jumptonextpos | ||
| + | ld d,a | ||
| + | ld (ns_base), | ||
| + | crpsptr equ $+1 | ||
| + | ld hl, | ||
| + | inc hl | ||
| + | ld a, | ||
| + | inc a | ||
| + | jr nz, | ||
| + | |||
| + | if loopchecker | ||
| + | call checklp | ||
| + | endif | ||
| + | |||
| + | lposptr equ $+1 | ||
| + | ld hl, | ||
| + | ld a, | ||
| + | inc a | ||
| + | plnlp ld (crpsptr), | ||
| + | dec a | ||
| + | ; | ||
| + | pscalc dec a ; | ||
| + | dec a ; | ||
| + | add a,a | ||
| + | ld e,a | ||
| + | rl d | ||
| + | |||
| + | if curposcounter | ||
| + | ld a,l | ||
| + | possub sub $d6 | ||
| + | ld (curpos), | ||
| + | endif | ||
| + | |||
| + | patsptr equ $+1 | ||
| + | ld hl, | ||
| + | add hl, | ||
| + | modaddr equ $+1 | ||
| + | ld de, | ||
| + | ld (psp_+1), | ||
| + | ld sp, | ||
| + | pop hl | ||
| + | add hl, | ||
| + | ld b,h | ||
| + | ld c,l | ||
| + | pop hl | ||
| + | add hl, | ||
| + | ld (adinptb), | ||
| + | pop hl | ||
| + | add hl, | ||
| + | ld (adinptc), | ||
| + | psp_ ld sp, | ||
| + | pl1a ld ix, | ||
| + | call ptdecod | ||
| + | ld (adinpta), | ||
| + | |||
| + | pl1b ld hl, | ||
| + | dec (hl) | ||
| + | jr nz, | ||
| + | ld ix, | ||
| + | adinptb equ $+1 | ||
| + | ld bc, | ||
| + | call ptdecod | ||
| + | ld (adinptb), | ||
| + | |||
| + | pl1c ld hl, | ||
| + | dec (hl) | ||
| + | jr nz, | ||
| + | ld ix, | ||
| + | adinptc equ $+1 | ||
| + | ld bc, | ||
| + | call ptdecod | ||
| + | ld (adinptc), | ||
| + | |||
| + | delay equ $+1 | ||
| + | pl1d ld a, | ||
| + | ld (delycnt), | ||
| + | |||
| + | pl2 ld ix, | ||
| + | ld hl, | ||
| + | call chregs | ||
| + | ld (ayregs+tona), | ||
| + | ld a, | ||
| + | ld (ayregs+ampla), | ||
| + | ld ix, | ||
| + | ld hl, | ||
| + | call chregs | ||
| + | ld (ayregs+tonb), | ||
| + | ld a, | ||
| + | ld (ayregs+amplb), | ||
| + | ld ix, | ||
| + | ld hl, | ||
| + | call chregs | ||
| + | ld (ayregs+tonc), | ||
| + | |||
| + | ld hl, | ||
| + | ld a,h | ||
| + | add a,l | ||
| + | ld (ayregs+noise), | ||
| + | |||
| + | addtoen equ $+1 | ||
| + | ld a, | ||
| + | ld e,a | ||
| + | add a,a | ||
| + | sbc a,a | ||
| + | ld d,a | ||
| + | ld hl, | ||
| + | add hl, | ||
| + | ld de, | ||
| + | add hl, | ||
| + | ld (ayregs+env), | ||
| + | |||
| + | xor a | ||
| + | ld hl, | ||
| + | or (hl) | ||
| + | jr z, | ||
| + | dec (hl) | ||
| + | jr nz, | ||
| + | env_del equ $+1 | ||
| + | ld a, | ||
| + | ld (hl), | ||
| + | esldadd equ $+1 | ||
| + | ld hl, | ||
| + | add hl, | ||
| + | ld (curesld), | ||
| + | |||
| + | rout | ||
| + | if acbbac | ||
| + | ld a, | ||
| + | and 12 | ||
| + | jr z, | ||
| + | add a, | ||
| + | ld e,a | ||
| + | adc a, | ||
| + | sub e | ||
| + | ld d,a | ||
| + | ld b,0 | ||
| + | ld ix, | ||
| + | ld hl, | ||
| + | ld a, | ||
| + | inc de | ||
| + | ld c,a | ||
| + | add hl, | ||
| + | ld a, | ||
| + | ld c, | ||
| + | ld (ix+tonb), | ||
| + | ld (hl), | ||
| + | inc hl | ||
| + | ld a, | ||
| + | ld c, | ||
| + | ld (ix+tonb+1), | ||
| + | ld (hl), | ||
| + | ld a, | ||
| + | inc de | ||
| + | ld c,a | ||
| + | add hl, | ||
| + | ld a, | ||
| + | ld c, | ||
| + | ld (ix+amplb), | ||
| + | ld (hl), | ||
| + | ld a, | ||
| + | inc de | ||
| + | ld (rxca1), | ||
| + | xor 8 | ||
| + | ld (rxca2), | ||
| + | ld hl, | ||
| + | ld a, | ||
| + | and (hl) | ||
| + | ld e,a | ||
| + | ld a, | ||
| + | rxca1 ld a, | ||
| + | and %010010 | ||
| + | or e | ||
| + | ld e,a | ||
| + | ld a, | ||
| + | and %010010 | ||
| + | rxca2 or e | ||
| + | or e | ||
| + | ld (hl), | ||
| + | abc | ||
| + | endif | ||
| + | if zx | ||
| + | noout xor a | ||
| + | ld de, | ||
| + | ld bc, | ||
| + | ld hl, | ||
| + | lout out (c), | ||
| + | ld b,e | ||
| + | outi | ||
| + | ld b,d | ||
| + | inc a | ||
| + | cp 13 | ||
| + | jr nz, | ||
| + | out (c), | ||
| + | ld a, | ||
| + | and a | ||
| + | ret m | ||
| + | ld b,e | ||
| + | out (c), | ||
| + | ret | ||
| + | endif | ||
| + | |||
| + | if msx | ||
| + | ;msx version of rout (c)dioniso | ||
| + | xor a | ||
| + | ld c, | ||
| + | ld hl, | ||
| + | lout out (c), | ||
| + | inc c | ||
| + | outi | ||
| + | dec c | ||
| + | inc a | ||
| + | cp 13 | ||
| + | jr nz, | ||
| + | out (c), | ||
| + | ld a, | ||
| + | and a | ||
| + | ret m | ||
| + | inc c | ||
| + | out (c), | ||
| + | ret | ||
| + | endif | ||
| + | |||
| + | if acbbac | ||
| + | chtable equ $-4 | ||
| + | db 4, | ||
| + | endif | ||
| + | |||
| + | nt_data db (t_new_0-t1_)*2 | ||
| + | db tcnew_0-t_ | ||
| + | db (t_old_0-t1_)*2+1 | ||
| + | db tcold_0-t_ | ||
| + | db (t_new_1-t1_)*2+1 | ||
| + | db tcnew_1-t_ | ||
| + | db (t_old_1-t1_)*2+1 | ||
| + | db tcold_1-t_ | ||
| + | db (t_new_2-t1_)*2 | ||
| + | db tcnew_2-t_ | ||
| + | db (t_old_2-t1_)*2 | ||
| + | db tcold_2-t_ | ||
| + | db (t_new_3-t1_)*2 | ||
| + | db tcnew_3-t_ | ||
| + | db (t_old_3-t1_)*2 | ||
| + | db tcold_3-t_ | ||
| + | |||
| + | t_ | ||
| + | |||
| + | tcold_0 db $00+1, | ||
| + | db $18+1, | ||
| + | tcold_1 db $5c+1, | ||
| + | tcold_2 db $30+1, | ||
| + | db $9e, | ||
| + | tcnew_3 db $56+1 | ||
| + | tcold_3 db $1e+1, | ||
| + | tcnew_0 db $1c+1, | ||
| + | db $bc+1, | ||
| + | tcnew_1 equ tcold_1 | ||
| + | tcnew_2 db $1a+1, | ||
| + | db $ba+1, | ||
| + | |||
| + | pt3emptyorn equ $-1 | ||
| + | db 1,0 | ||
| + | t_pack db ($06ec*2/ | ||
| + | db $0755-$06ec | ||
| + | db $07c5-$0755 | ||
| + | db $083b-$07c5 | ||
| + | db $08b8-$083b | ||
| + | db $093d-$08b8 | ||
| + | db $09ca-$093d | ||
| + | db $0a5f-$09ca | ||
| + | db $0afc-$0a5f | ||
| + | db $0ba4-$0afc | ||
| + | db $0c55-$0ba4 | ||
| + | db $0d10-$0c55 | ||
| + | db $066d*2/ | ||
| + | db $06cf-$066d | ||
| + | db $0737-$06cf | ||
| + | db $07a4-$0737 | ||
| + | db $0819-$07a4 | ||
| + | db $0894-$0819 | ||
| + | db $0917-$0894 | ||
| + | db $09a1-$0917 | ||
| + | db $0a33-$09a1 | ||
| + | db $0acf-$0a33 | ||
| + | db $0b73-$0acf | ||
| + | db $0c22-$0b73 | ||
| + | db $0cda-$0c22 | ||
| + | db $0704*2/ | ||
| + | db $076e-$0704 | ||
| + | db $07e0-$076e | ||
| + | db $0858-$07e0 | ||
| + | db $08d6-$0858 | ||
| + | db $095c-$08d6 | ||
| + | db $09ec-$095c | ||
| + | db $0a82-$09ec | ||
| + | db $0b22-$0a82 | ||
| + | db $0bcc-$0b22 | ||
| + | db $0c80-$0bcc | ||
| + | db $0d3e-$0c80 | ||
| + | db $07e0*2/ | ||
| + | db $0858-$07e0 | ||
| + | db $08e0-$0858 | ||
| + | db $0960-$08e0 | ||
| + | db $09f0-$0960 | ||
| + | db $0a88-$09f0 | ||
| + | db $0b28-$0a88 | ||
| + | db $0bd8-$0b28 | ||
| + | db $0c80-$0bd8 | ||
| + | db $0d60-$0c80 | ||
| + | db $0e10-$0d60 | ||
| + | db $0ef8-$0e10 | ||
| + | |||
| + | ;vars from here can be stripped | ||
| + | ;you can move vars to any other address | ||
| + | |||
| + | vars | ||
| + | |||
| + | ; | ||
| + | chana ds chp | ||
| + | chanb ds chp | ||
| + | chanc ds chp | ||
| + | |||
| + | ; | ||
| + | delycnt db 0 | ||
| + | curesld dw 0 | ||
| + | curedel db 0 | ||
| + | ns_base_addtons | ||
| + | ns_base db 0 | ||
| + | addtons db 0 | ||
| + | |||
| + | ayregs | ||
| + | |||
| + | vt_ ds 256 ; | ||
| + | |||
| + | envbase equ vt_+14 | ||
| + | |||
| + | t1_ equ vt_+16 ; | ||
| + | |||
| + | t_old_1 equ t1_ | ||
| + | t_old_2 equ t_old_1+24 | ||
| + | t_old_3 equ t_old_2+24 | ||
| + | t_old_0 equ t_old_3+2 | ||
| + | t_new_0 equ t_old_0 | ||
| + | t_new_1 equ t_old_1 | ||
| + | t_new_2 equ t_new_0+24 | ||
| + | t_new_3 equ t_old_3 | ||
| + | |||
| + | pt2emptyorn equ vt_+31 ; | ||
| + | |||
| + | nt_ ds 192 ; | ||
| + | |||
| + | ;local var | ||
| + | ampl equ ayregs+amplc | ||
| + | |||
| + | var0end equ vt_+16 ; | ||
| + | |||
| + | varsend equ $ | ||
| + | |||
| + | |||
| + | mdladdr equ $ | ||
| + | |||
| + | ;release 0 steps: | ||
| + | ; | ||
| + | ;merging pt2 and pt3 players; debug | ||
| + | ; | ||
| + | ;debug; optimization | ||
| + | ; | ||
| + | ;migration to sjasm; conditional assembly (zx, msx and | ||
| + | ; | ||
| + | ; | ||
| + | ;setport subprogram (35 bytes shorter) | ||
| + | ; | ||
| + | ;fixed curposcounter error | ||
| + | ; | ||
| + | ;added acb and bac channels swapper (for spectre); more cond. | ||
| + | ;assembly keys; optimization | ||
| + | |||
| + | ;tests in immation tester v1.0 by andy man/pos | ||
| + | ;(for minimal build) | ||
| + | ;module name/ | ||
| + | ;pt3 (a little slower than standalone player) | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ;pt2 (more slower than standalone player) | ||
| + | ; | ||
| + | ;ny themes/ | ||
| + | ;guest 4/alex job | ||
| + | ; | ||
| + | |||
| + | ;size (minimal build for zx spectrum): | ||
| + | ;code block #7b4 bytes | ||
| + | ;variables #21d bytes (can be stripped) | ||
| + | ;size in ram # | ||
| + | |||
| + | ;notes: | ||
| + | ;pro tracker 3.4r can not be detected by header, so pt3.4r tone | ||
| + | ;tables realy used only for modules of 3.3 and older versions. | ||
| + | |||
| + | ; endmodule | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **Navigation: [[general]] . [[math]] . [[graphic]] . [[sound]] . [[system]] . [[other]] . back to [[start]]** | ||
pt3player-asl.1360674774.txt.gz · Last modified: 2013/02/12 14:12 by darkbyte
