; CODE BY Александр -=TmK deMarche=- ; play frame ; use: af,hl,de,bc 251 STARTUP_SOUND: LD HL,.BYTE_POS LD A,(HL) LD C,SP_SND.AY ; AND A JR NZ,.no_init ; LD DE,7*256 + %0011'1011 LD B,high SP_SND.AY.CTRL OUT (C),D LD B,high SP_SND.AY.DATA OUT (C),E ; .no_init: CP .volDataSize JR C,.play ;-- mus off .mute: XOR A LD E,A .offLp: CALL .set_regs CP 14 JR NZ,.offLp ; LD A,7 DEC E CALL .set_regs RET ; .play: ; ;--- set tone LD HL,(.WORD_TONE) ;A=0 LD A,4 ;REG C .playToneLp: LD B,high SP_SND.AY.CTRL OUT (C),A LD B,high SP_SND.AY.DATA + 1 OUTI INC A CP 6 JR NZ,.playToneLp ; LD (.WORD_TONE),HL ;--- set volume .playVol: LD HL,(.WORD_VOL) LD A,10 LD E,(HL) INC HL .playVolLp: CALL .set_regs ; LD (.WORD_VOL),HL LD HL,.BYTE_POS INC (HL) RET ; ; .set_regs: LD B,high SP_SND.AY.CTRL OUT (C),A LD B,high SP_SND.AY.DATA OUT (C),E INC A RET ;----------------------------------------------------------------------- .BYTE_POS: DB 0 .WORD_VOL: DW .volData .WORD_TONE: DW .toneData ;----------------------------------------------------------------------- .toneData: DW #022, #044, #088, #110, #220, #440 DW #880, #440, #220, #110, #088, #044 DW #022, #044, #088, #110, #220, #440 DW #880, #440, #220, #110, #088, #044 DW #022 .volData: DB #02, #04, #06, #08, #0A, #0C DB #0E, #0D, #0C, #0B, #0A, #09 DB #08, #07, #06, #05, #04, #03 DB #02, #06, #08, #0A, #0C, #0E DB #0F .volDataSize EQU $ - .volData .codeEnd: DISPLAY "StartUp Sound size: ",/A,.codeEnd - STARTUP_SOUND /* ; CODE BY Александр -=TmK deMarche=- ; play frame ; use: af,hl,de,bc 251 STARTUP_SOUND: LD HL,.BYTE_POS LD A,(HL) LD C,SP_SND.AY ; AND A JR NZ,.no_init ; LD DE,7*256 + %0011'1011 LD B,high SP_SND.AY.CTRL OUT (C),D LD B,high SP_SND.AY.DATA OUT (C),E ; .no_init: CP .volDataSize JR C,.play ;-- mus off .mute: XOR A LD E,A .offLp: CALL .set_regs CP 14 JR NZ,.offLp ; LD A,7 DEC E CALL .set_regs RET ; .play: ; ;--- set tone LD HL,(.WORD_TONE) ;A=0 LD A,4 ;REG C .playToneLp: LD B,high SP_SND.AY.CTRL OUT (C),A LD B,high SP_SND.AY.DATA + 1 OUTI INC A CP 6 JR NZ,.playToneLp ; LD (.WORD_TONE),HL ;--- set volume .playVol: LD HL,(.WORD_VOL) LD A,10 LD E,(HL) INC HL .playVolLp: CALL .set_regs ; LD (.WORD_VOL),HL LD HL,.BYTE_POS INC (HL) RET ; ; .set_regs: LD B,high SP_SND.AY.CTRL OUT (C),A LD B,high SP_SND.AY.DATA OUT (C),E INC A RET ;----------------------------------------------------------------------- .BYTE_POS: DB 0 .WORD_VOL: DW .volData .WORD_TONE: DW .toneData ;----------------------------------------------------------------------- .toneData: DW #022, #044, #088, #110, #220, #440 DW #880, #440, #220, #110, #088, #044 DW #022, #044, #088, #110, #220, #440 DW #880, #440, #220, #110, #088, #044 DW #022 .volData: DB #02, #04, #06, #08, #0A, #0C DB #0E, #0D, #0C, #0B, #0A, #09 DB #08, #07, #06, #05, #04, #03 DB #02, #06, #08, #0A, #0C, #0E DB #0F .volDataSize EQU $ - .volData .codeEnd: DISPLAY "StartUp Sound size: ",/A,.codeEnd - STARTUP_SOUND */