; opt h- ; org 0 tadcl equ $FF00 tadch equ tadcl+48 tapat equ tadch+48 kod equ tapat+48 tab_1 equ kod+96 patno equ 0 (1) patend equ patno+1 (1) pataed equ patend+1 (1) patadr equ pataed+1 (2) cnts equ patadr+2 (1) pause equ cnts+1 (1) nr0 equ pause+1 (1) nr1 equ nr0+1 (1) nr2 equ nr1+1 (1) nr3 equ nr2+1 (1) vbl equ $d8 sng equ $400 tivol equ sng+$80 ;glosnosc sampla tstrl equ tivol+$20 trepl equ tstrl+$20 tendl equ trepl+$20 ;lsb dl. sampla tstrh equ tendl+$20 treph equ tstrh+$20 tendh equ treph+$20 ;msb dl. sampla tlenl equ tendh+$20 tab_3 equ tlenl+$20 tlng equ tab_3+$20 tlen equ tlng+$20 tadr equ tlen+16 tbnk equ tadr+16 dta d' ' inf3 dta d'SPACE-play ESC-exiô' s_pl dta d' samples-' memo dta d'No memorù' pmain equ * bank0 lda #$fe sta $d301 ist_0 lda #0 iad0_m adc #0 sta ist_0+1 lda p_0c+1 iad0_s adc #0 sta p_0c+1 bcc p_0c inc p_0c+2 lda p_0c+2 ien0_s cmp #0 bcc p_0c ire0_m lda #0 sta p_0c+1 ire0_s lda #0 sta p_0c+2 jmp bank1 p_0c ldx $ffff ivol10 lda $d800,x ch0 sta $d600 bank1 lda #$fe sta $d301 ist_1 lda #0 iad1_m adc #0 sta ist_1+1 lda p_1c+1 iad1_s adc #0 sta p_1c+1 bcc p_1c inc p_1c+2 lda p_1c+2 ien1_s cmp #0 bcc p_1c ire1_m lda #0 sta p_1c+1 ire1_s lda #0 sta p_1c+2 jmp bank2 p_1c ldx $ffff ivol11 lda $d800,x ch1 sta $d601 bank2 lda #$fe sta $d301 ist_2 lda #0 iad2_m adc #0 sta ist_2+1 lda p_2c+1 iad2_s adc #0 sta p_2c+1 bcc p_2c inc p_2c+2 lda p_2c+2 ien2_s cmp #0 bcc p_2c ire2_m lda #0 sta p_2c+1 ire2_s lda #0 sta p_2c+2 jmp bank3 p_2c ldx $ffff ivol12 lda $d800,x ch2 sta $d602 bank3 lda #$fe sta $d301 ist_3 lda #0 iad3_m adc #0 sta ist_3+1 lda p_3c+1 iad3_s adc #0 sta p_3c+1 bcc p_3c inc p_3c+2 lda p_3c+2 ien3_s cmp #0 bcc p_3c ire3_m lda #0 sta p_3c+1 ire3_s lda #0 sta p_3c+2 jmp p_e p_3c ldx $ffff ivol13 lda $d800,x ch3 sta $d603 p_e dey beq pat jmp pmain *----------------- *requests pat ldy #vbl dec cnts beq pre jmp pmain pre lda #0 sta patend lda #$fe sta $d301 *--------------------------- * track 0 i_0 ldy #1 lda (patadr),y tax and #$1f beq i_0c tay sta nr0 lda tivol-1,y sta ivol10+2 i_0c txa and #$c0 beq i_0f tax cpx #$40 bne *+8 ldy #2 lda (patadr),y sta ivol10+2 cpx #$c0 bne *+8 ldy #2 lda (patadr),y sta pause cpx #$80 bne *+4 stx patend i_0f ldy #0 lda (patadr),y beq i_1 tax lda tadcl-1,x sta iad0_m+1 lda tadch-1,x sta iad0_s+1 ldy nr0 lda tab_3-1,y sta bank0+1 lda tstrl-1,y sta p_0c+1 lda tstrh-1,y sta p_0c+2 lda tendh-1,y sta ien0_s+1 lda trepl-1,y sta ire0_m+1 lda treph-1,y sta ire0_s+1 * track 1 i_1 ldy #4 lda (patadr),y tax and #$1f beq i_1c tay sta nr1 lda tivol-1,y sta ivol11+2 i_1c txa and #$c0 beq i_1f tax cpx #$40 bne *+8 ldy #5 lda (patadr),y sta ivol11+2 cpx #$c0 bne *+8 ldy #5 lda (patadr),y sta pause cpx #$80 bne *+4 stx patend i_1f ldy #3 lda (patadr),y beq i_2 tax lda tadcl-1,x sta iad1_m+1 lda tadch-1,x sta iad1_s+1 ldy nr1 lda tab_3-1,y sta bank1+1 lda tstrl-1,y sta p_1c+1 lda tstrh-1,y sta p_1c+2 lda tendh-1,y sta ien1_s+1 lda trepl-1,y sta ire1_m+1 lda treph-1,y sta ire1_s+1 * track 2 i_2 ldy #7 lda (patadr),y tax and #$1f beq i_2c tay sta nr2 lda tivol-1,y sta ivol12+2 i_2c txa and #$c0 beq i_2f tax cpx #$40 bne *+8 ldy #8 lda (patadr),y sta ivol12+2 cpx #$c0 bne *+8 ldy #8 lda (patadr),y sta pause cpx #$80 bne *+4 stx patend i_2f ldy #6 lda (patadr),y beq i_3 tax lda tadcl-1,x sta iad2_m+1 lda tadch-1,x sta iad2_s+1 ldy nr2 lda tab_3-1,y sta bank2+1 lda tstrl-1,y sta p_2c+1 lda tstrh-1,y sta p_2c+2 lda tendh-1,y sta ien2_s+1 lda trepl-1,y sta ire2_m+1 lda treph-1,y sta ire2_s+1 * track 3 i_3 ldy #10 lda (patadr),y tax and #$1f beq i_3c tay sta nr3 lda tivol-1,y sta ivol13+2 i_3c txa and #$c0 beq i_3f tax cpx #$40 bne *+8 ldy #11 lda (patadr),y sta ivol13+2 cpx #$c0 bne *+8 ldy #11 lda (patadr),y sta pause cpx #$80 bne *+4 stx patend i_3f ldy #9 lda (patadr),y beq i_e tax lda tadcl-1,x sta iad3_m+1 lda tadch-1,x sta iad3_s+1 ldy nr3 lda tab_3-1,y sta bank3+1 lda tstrl-1,y sta p_3c+1 lda tstrh-1,y sta p_3c+2 lda tendh-1,y sta ien3_s+1 lda trepl-1,y sta ire3_m+1 lda treph-1,y sta ire3_s+1 i_e lda patend bne i_en lda patadr clc adc #12 sta patadr lda patadr+1 adc #0 sta patadr+1 cmp pataed bcc i_end i_en inc patno ldx patno patmax cpx #0 bcc i_ens lda #6 sta pause ldx #0 stx patno i_ens lda sng,x sta patadr+1 clc adc #3 sta pataed lda #0 sta patadr i_end lda $d01f beq r_qu lda pause sta cnts ldy #vbl _ret jmp pmain r_qu jmp $a00 inf2 dta d'-move cursor RETURN-loaä' inf1 dta d'SPACE-directorù' erro dta d'Erroò'