Search the web
Sign In
New User? Sign Up
AVRButterFly · AVR ButterFly & Beginners Group
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Want to share photos of your group with the world? Add a group photo to Flickr.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
SOUND EFFECTS for Butterfly in ASM (210 bytes)   Message List  
Reply | Forward Message #980 of 996 |
Small collection of sound effects for the AVR Butterfly using assembler. Program is approx 210 bytes.


;----------------------------------------------------------;
; SOUNDZ - SMALL COLLECTION OF SOUND EFFECTS FOR BUTTERFLY ;
; DJ DOREY (RETRODAN) 09-OCT-09                            ;
;----------------------------------------------------------;

.NOLIST
.INCLUDE "M169DEF.INC"    ;BUTTERFLY DEFS
.LIST

;---------------------------------:
; RENAME/DEFINE WORKING REGISTERS ;
;---------------------------------;

.DEF A       = R16    ;R16:R31 CAN BE LOADED IMMEDIATE (LDI)
.DEF AH      = R17
.DEF B       = R18
.DEF C       = R19
.DEF D       = R20
.DEF I       = R21
.DEF J       = R22
.DEF K       = R23
.DEF L       = R24
.DEF N       = R25

.ORG $0000
       RJMP RESET

RESET: JMP INIT

MAIN:
MLUPE: RCALL CHIRP    ;A BIRD CHIRP
       RCALL PAUSE
       RCALL WHIT     ;A WHISTLE SOUND
       RCALL PAUSE
       RCALL DEWEDO   ;A DEW-EE-DEW SOUND
       RCALL PAUSE
       RCALL WOLFW    ;A WOLF WISTLE
       RCALL PAUSE
       RCALL RAY1     ;A RAYGUN SOUND
       RCALL PAUSE
       RCALL RAY2     ;A RAYGUN SOUND
       RCALL PAUSE
       RCALL ALARM    ;AN ALARM SOUND
       RCALL PAUSE
       RCALL PAUSE
        RJMP MLUPE

;================= SUBROUTINES =====================

;-----------------;
; INITIALIZATIONS ;
;-----------------;
INIT:  LDI A,HIGH(RAMEND)   ;SETUP THE STACK POINTER
       OUT SPH,A            ;AT TOP OF MEMORY AND
       LDI A,LOW(RAMEND)    ;GROW DOWNWARDS
       OUT SPL,A
       LDI A,128            ;SET CLOCK SPEED
       STS CLKPR,A
       LDI A,2              ;0=8MHz 1=4MHz 2=2MHz 3=1MHz
       STS CLKPR,A          ;BUTTERFLY RUNS AT 2MHZ OUT-OF-THE-BOX
        JMP MAIN

;---------------;
; SOUND EFFECTS ;
;---------------;
ALARM:   PUSH N
         LDI N,16
ALARML:  RCALL WEEOH
         DEC N
          BRNE ALARML
         POP N
          RET

RAY1:    PUSH N
         LDI N,16
RAY1L:   RCALL CHIRP
         DEC N
          BRNE RAY1L
         POP N
          RET

RAY2:    PUSH N
         LDI N,16
RAY2L:   RCALL WHIT
         DEC N
          BRNE RAY2L
         POP N
          RET

WOLFW:   RCALL WEEOH
         RCALL DEWIT
          RET

DEWEDO:   RCALL DEWIT
         RCALL WEEOH
          RET

WEEOH:   RCALL WHIT
         RCALL CHIRP
          RET

DEWIT:   RCALL CHIRP
         RCALL WHIT
          RET

;------------------------------------------------;
; NO RESTORE CHIRP ROUTINE, USES THE R0 REGISTER ;
;------------------------------------------------;
CHIRP:  CLR  R0
        SBI  DDRB,5         ;SET PORTB-BIT5 FOR OUTPUT
CLUPE:  SBI  PORTB,5        ;SET PORTB-BIT5
        RCALL CPAUSE        ;WAIT
        CBI PORTB,5         ;CLEAR BORTB-BIT5
        RCALL CPAUSE        ;WAIT
        DEC R0
         BRNE CLUPE         ;LOOP AROUND
          RET
CPAUSE: PUSH R0             ;PAUSE TWEEN PULSES
CPLUPE: INC R0              ;IE DETERMINS FREQ
         BRNE CPLUPE
        POP R0
         RET

;-----------------------------------------------;
; NO RESTORE WHIT ROUTINE, USES THE R0 REGISTER ;
;-----------------------------------------------;
WHIT:   CLR  R0
        SBI  DDRB,5         ;SET PORTB-BIT5 FOR OUTPUT
WHLUPE: SBI  PORTB,5        ;SET PORTB-BIT5
        RCALL WPAUSE        ;WAIT
        CBI PORTB,5         ;CLEAR BORTB-BIT5
        RCALL WPAUSE        ;WAIT
        DEC R0
         BRNE WHLUPE        ;LOOP AROUND
          RET
WPAUSE: PUSH R0             ;PAUSE TWEEN PULSES
WPLUPE: DEC R0              ;IE DETERMINS FREQ
         BRNE WPLUPE
        POP R0
         RET

;-----------------------------------;
; PAUSE/DELAY ROUTINE               ;
; USES R0:R1 - NOT RESTORED         ;
; WARNING R0:R1 ARE NOT INITIALIZED ;
; USES A - RESTORED                 ;
;-----------------------------------;
PAUSE:
DELAY: CLR R0
       CLR R1
       PUSH A
       LDI A,24
DLUPE: DEC R0
        BRNE DLUPE
         DEC R1
          BRNE DLUPE
           DEC A
            BRNE DLUPE
             POP A
              RET



Tue Oct 20, 2009 3:34 am

retr0dan
Offline Offline
Send Email Send Email

Forward
Message #980 of 996 |
Expand Messages Author Sort by Date

Small collection of sound effects for the AVR Butterfly using assembler. Program is approx 210 bytes. ...
retr0dan
Offline Send Email
Oct 20, 2009
3:34 am
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help