📄 rmt.asx
字号:
lda tabbeganddistor,y sta nr lda tmp ora tabbeganddistor+1,y sta trackn_audc,xInstrumentsEffects lda trackn_effdelay,x beq ei2 cmp #1 bne ei1 lda trackn_shiftfrq,x clc adc trackn_effshift,x clc ldy trackn_effvibratoa,x adc vib0,y sta trackn_shiftfrq,x iny tya cmp trackn_effvibratoend,x bne ei1a lda trackn_effvibratobeg,xei1a sta trackn_effvibratoa,x jmp ei2ei1 dec trackn_effdelay,xei2 ldy trackn_tableend,x cpy #INSTRPAR+1 bcc ei3 lda trackn_tablespeeda,x bpl ei2fei2c tya cmp trackn_tablea,x bne ei2c2 IFT FEAT_TABLEGO lda trackn_tablelop,x ELS lda #INSTRPAR EIF sta trackn_tablea,x bne ei2aei2c2 inc trackn_tablea,xei2a lda trackn_instrdb,x sta nt lda trackn_instrhb,x sta nt+1 ldy trackn_tablea,x lda (nt),y IFT FEAT_TABLEMODE ldy trackn_tablemode,x beq ei2e clc adc trackn_tablenote,xei2e EIF sta trackn_tablenote,x lda trackn_tabletypespeed,x IFT FEAT_TABLETYPE||FEAT_TABLEMODE and #$3f EIFei2f sec sbc #1 sta trackn_tablespeeda,xei3 lda trackn_instrreachend,x bpl ei4 lda trackn_volume,x beq ei4 IFT FEAT_VOLUMEMIN cmp trackn_volumemin,x beq ei4 bcc ei4 EIF tay lda trackn_volumeslidevalue,x clc adc trackn_volumeslidedepth,x sta trackn_volumeslidevalue,x bcc ei4 tya sbc #16 sta trackn_volume,xei4 IFT FEAT_COMMAND2 lda #0 sta frqaddcmd2 EIF lda reg2 sta trackn_command,x and #$70 lsr @ lsr @ sta jmx+1jmx bcc * jmp cmd0 nop jmp cmd1 nop jmp cmd2 nop jmp cmd3 nop jmp cmd4 nop jmp cmd5 nop jmp cmd6 nop jmp cmd7cmd1 IFT FEAT_COMMAND1 lda reg3 jmp cmd0c EIFcmd2 IFT FEAT_COMMAND2 lda reg3 sta frqaddcmd2 lda trackn_note,x jmp cmd0a EIFcmd3 IFT FEAT_COMMAND3 lda trackn_note,x clc adc reg3 sta trackn_note,x jmp cmd0a EIFcmd4 IFT FEAT_COMMAND4 lda trackn_shiftfrq,x clc adc reg3 sta trackn_shiftfrq,x lda trackn_note,x jmp cmd0a EIFcmd5 IFT FEAT_COMMAND5&&FEAT_PORTAMENTO IFT FEAT_TABLETYPE lda trackn_tabletypespeed,x bpl cmd5a1 ldy trackn_note,x lda (nr),y clc adc trackn_tablenote,x jmp cmd5ax EIFcmd5a1 lda trackn_note,x clc adc trackn_tablenote,x cmp #61 bcc cmd5a2 lda #63cmd5a2 tay lda (nr),ycmd5ax sta trackn_portafrqc,x ldy reg3 bne cmd5a sta trackn_portafrqa,xcmd5a tya lsr @ lsr @ lsr @ lsr @ sta trackn_portaspeed,x sta trackn_portaspeeda,x lda reg3 and #$0f sta trackn_portadepth,x lda trackn_note,x jmp cmd0a ELI FEAT_COMMAND5 jmp pp9 EIFcmd6 IFT FEAT_COMMAND6&&FEAT_FILTER lda reg3 clc adc trackn_filter,x sta trackn_filter,x lda trackn_note,x jmp cmd0a ELI FEAT_COMMAND6 jmp pp9 EIFcmd7 IFT FEAT_COMMAND7SETNOTE||FEAT_COMMAND7VOLUMEONLY IFT FEAT_COMMAND7SETNOTE lda reg3 IFT FEAT_COMMAND7VOLUMEONLY cmp #$80 beq cmd7a EIF sta trackn_note,x jmp cmd0a EIF IFT FEAT_COMMAND7VOLUMEONLYcmd7a lda trackn_audc,x ora #$f0 sta trackn_audc,x lda trackn_note,x jmp cmd0a EIF EIFcmd0 lda trackn_note,x clc adc reg3cmd0a IFT FEAT_TABLETYPE ldy trackn_tabletypespeed,x bmi cmd0b EIF clc adc trackn_tablenote,x cmp #61 bcc cmd0a1 lda #0 sta trackn_audc,x lda #63cmd0a1 IFT FEAT_BASS16 sta trackn_outnote,x EIF tay lda (nr),y clc adc trackn_shiftfrq,x IFT FEAT_COMMAND2 clc adc frqaddcmd2 EIF IFT FEAT_TABLETYPE jmp cmd0ccmd0b cmp #61 bcc cmd0b1 lda #0 sta trackn_audc,x lda #63cmd0b1 tay lda trackn_shiftfrq,x clc adc trackn_tablenote,x clc adc (nr),y IFT FEAT_COMMAND2 clc adc frqaddcmd2 EIF EIFcmd0c sta trackn_audf,xpp9 IFT FEAT_PORTAMENTO lda trackn_portaspeeda,x beq pp10 dec trackn_portaspeeda,x bne pp10 lda trackn_portaspeed,x sta trackn_portaspeeda,x lda trackn_portafrqa,x cmp trackn_portafrqc,x beq pp10 bcs pps1 adc trackn_portadepth,x bcs pps8 cmp trackn_portafrqc,x bcs pps8 jmp pps9pps1 sbc trackn_portadepth,x bcc pps8 cmp trackn_portafrqc,x bcs pps9pps8 lda trackn_portafrqc,xpps9 sta trackn_portafrqa,xpp10 lda reg2 and #$01 beq pp11 lda trackn_portafrqa,x clc adc trackn_shiftfrq,x sta trackn_audf,xpp11 EIFppnext dex bmi rmt_p4 jmp pp1rmt_p4 IFT FEAT_AUDCTLMANUALSET lda trackn_audctl+0 ora trackn_audctl+1 ora trackn_audctl+2 ora trackn_audctl+3 tax ELS ldx #0 EIFqq1 stx v_audctl IFT FEAT_FILTER IFT FEAT_FILTERG0L lda trackn_command+0 bpl qq2 lda trackn_audc+0 and #$0f beq qq2 lda trackn_audf+0 clc adc trackn_filter+0 sta trackn_audf+2 IFT FEAT_COMMAND7VOLUMEONLY&&FEAT_VOLUMEONLYG2L lda trackn_audc+2 and #$10 bne qq1a EIF lda #0 sta trackn_audc+2qq1a txa ora #4 tax EIFqq2 IFT FEAT_FILTERG1L lda trackn_command+1 bpl qq3 lda trackn_audc+1 and #$0f beq qq3 lda trackn_audf+1 clc adc trackn_filter+1 sta trackn_audf+3 IFT FEAT_COMMAND7VOLUMEONLY&&FEAT_VOLUMEONLYG3L lda trackn_audc+3 and #$10 bne qq2a EIF lda #0 sta trackn_audc+3qq2a txa ora #2 tax EIFqq3 IFT FEAT_FILTERG0L||FEAT_FILTERG1L cpx v_audctl bne qq5 EIF EIF IFT FEAT_BASS16 IFT FEAT_BASS16G1L lda trackn_command+1 and #$0e cmp #6 bne qq4 lda trackn_audc+1 and #$0f beq qq4 ldy trackn_outnote+1 lda frqtabbasslo,y sta trackn_audf+0 lda frqtabbasshi,y sta trackn_audf+1 IFT FEAT_COMMAND7VOLUMEONLY&&FEAT_VOLUMEONLYG0L lda trackn_audc+0 and #$10 bne qq3a EIF lda #0 sta trackn_audc+0qq3a txa ora #$50 tax EIFqq4 IFT FEAT_BASS16G3L lda trackn_command+3 and #$0e cmp #6 bne qq5 lda trackn_audc+3 and #$0f beq qq5 ldy trackn_outnote+3 lda frqtabbasslo,y sta trackn_audf+2 lda frqtabbasshi,y sta trackn_audf+3 IFT FEAT_COMMAND7VOLUMEONLY&&FEAT_VOLUMEONLYG2L lda trackn_audc+2 and #$10 bne qq4a EIF lda #0 sta trackn_audc+2qq4a txa ora #$28 tax EIF EIFqq5 stx v_audctl IFT TRACKS>4 IFT FEAT_AUDCTLMANUALSET lda trackn_audctl+4 ora trackn_audctl+5 ora trackn_audctl+6 ora trackn_audctl+7 tax ELS ldx #0 EIF stx v_audctl2 IFT FEAT_FILTER IFT FEAT_FILTERG0R lda trackn_command+0+4 bpl qs2 lda trackn_audc+0+4 and #$0f beq qs2 lda trackn_audf+0+4 clc adc trackn_filter+0+4 sta trackn_audf+2+4 IFT FEAT_COMMAND7VOLUMEONLY&&FEAT_VOLUMEONLYG2R lda trackn_audc+2+4 and #$10 bne qs1a EIF lda #0 sta trackn_audc+2+4qs1a txa ora #4 tax EIFqs2 IFT FEAT_FILTERG1R lda trackn_command+1+4 bpl qs3 lda trackn_audc+1+4 and #$0f beq qs3 lda trackn_audf+1+4 clc adc trackn_filter+1+4 sta trackn_audf+3+4 IFT FEAT_COMMAND7VOLUMEONLY&&FEAT_VOLUMEONLYG3R lda trackn_audc+3+4 and #$10 bne qs2a EIF lda #0 sta trackn_audc+3+4qs2a txa ora #2 tax EIFqs3 IFT FEAT_FILTERG0R||FEAT_FILTERG1R cpx v_audctl2 bne qs5 EIF EIF IFT FEAT_BASS16 IFT FEAT_BASS16G1R lda trackn_command+1+4 and #$0e cmp #6 bne qs4 lda trackn_audc+1+4 and #$0f beq qs4 ldy trackn_outnote+1+4 lda frqtabbasslo,y sta trackn_audf+0+4 lda frqtabbasshi,y sta trackn_audf+1+4 IFT FEAT_COMMAND7VOLUMEONLY&&FEAT_VOLUMEONLYG0R lda trackn_audc+0+4 and #$10 bne qs3a EIF lda #0 sta trackn_audc+0+4qs3a txa ora #$50 tax EIFqs4 IFT FEAT_BASS16G3R lda trackn_command+3+4 and #$0e cmp #6 bne qs5 lda trackn_audc+3+4 and #$0f beq qs5 ldy trackn_outnote+3+4 lda frqtabbasslo,y sta trackn_audf+2+4 lda frqtabbasshi,y sta trackn_audf+3+4 IFT FEAT_COMMAND7VOLUMEONLY&&FEAT_VOLUMEONLYG2R lda trackn_audc+2+4 and #$10 bne qs4a EIF lda #0 sta trackn_audc+2+4qs4a txa ora #$28 tax EIF EIFqs5 stx v_audctl2 EIFrmt_p5 IFT FEAT_INSTRSPEED==0||FEAT_INSTRSPEED>1 lda v_ainstrspeed ELS lda #1 EIF rtsSetPokey IFT STEREOMODE==1 ;* L1 L2 L3 L4 R1 R2 R3 R4 ldy #$ffv_audctl2 equ *-1 lda trackn_audf+0+4 ldx trackn_audf+0xstastx01 sta $d210 stx $d200 lda trackn_audc+0+4 ldx trackn_audc+0xstastx02 sta $d211 stx $d201 lda trackn_audf+1+4 ldx trackn_audf+1xstastx03 sta $d212 stx $d202 lda trackn_audc+1+4 ldx trackn_audc+1xstastx04 sta $d213 stx $d203 lda trackn_audf+2+4 ldx trackn_audf+2xstastx05 sta $d214 stx $d204 lda trackn_audc+2+4 ldx trackn_audc+2xstastx06 sta $d215 stx $d205 lda trackn_audf+3+4 ldx trackn_audf+3xstastx07 sta $d216 stx $d206 lda trackn_audc+3+4 ldx trackn_audc+3xstastx08 sta $d217 stx $d207 lda #$ffv_audctl equ *-1xstysta01 sty $d218 sta $d208 ELI STEREOMODE==0 ;* L1 L2 L3 L4 ldy #$ffv_audctl equ *-1 lda trackn_audf+0 ldx trackn_audc+0 sta $d200 stx $d201 lda trackn_audf+1 ldx trackn_audc+1 sta $d200+2 stx $d201+2 lda trackn_audf+2 ldx trackn_audc+2 sta $d200+4 stx $d201+4 lda trackn_audf+3 ldx trackn_audc+3 sta $d200+6 stx $d201+6 sty $d208 ELI STEREOMODE==2 ;* L1 R2 R3 L4 ldy #$ffv_audctl equ *-1 lda trackn_audf+0 ldx trackn_audc+0 sta $d200 stx $d201 sta $d210 lda trackn_audf+1 ldx trackn_audc+1 sta $d210+2 stx $d211+2 lda trackn_audf+2 ldx trackn_audc+2 sta $d210+4 stx $d211+4 sta $d200+4 lda trackn_audf+3 ldx trackn_audc+3 sta $d200+6 stx $d201+6 sta $d210+6 sty $d218 sty $d208 ELI STEREOMODE==3 ;* L1 L2 R3 R4 ldy #$ffv_audctl equ *-1 lda trackn_audf+0 ldx trackn_audc+0 sta $d200 stx $d201 lda trackn_audf+1 ldx trackn_audc+1 sta $d200+2 stx $d201+2 lda trackn_audf+2 ldx trackn_audc+2 sta $d210+4 stx $d211+4 sta $d200+4 lda trackn_audf+3 ldx trackn_audc+3 sta $d210+6 stx $d211+6 sta $d200+6 sty $d218 sty $d208 EIF rtsRMTEND
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -