[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ANN: New 6502 cross-compiler designed for the Apple II



I converted the "simple tone routine" from at http://8bitsoundandfury.ld8.org/programming.html
)

this should go in a file called "beep.s" in the lib directory
###########################################

beep_pitch:
  .byte 0
beep_duration:
  .byte 0

beep:   ;(duration pitch --)
  jsr  pop
  sta beep_pitch
  jsr  pop
  sta beep_duration

beep_main_loop:
  lda $c030 ;toggle speaker
beep_delay_between_clicks:
  dey
  bne beep_not_waited_255_cycles
  dec beep_duration
  beq beep_done
beep_not_waited_255_cycles:
  dex
  bne beep_delay_between_clicks
  ldx beep_pitch
  jmp beep_main_loop
beep_done:
  rts
###############################

then open up spl.py, and add "beep" to both  DEPENDENCIES (depends on
'pop') and LIBRARYMAP.

finally, here's some sample code (which got my 18mo daughter very
excited):
###############################

org 0x801

def pause #(duration --)
  {
    1- dup ?0break
  }
  drop
end

def main
  108 128 beep
  10 pause
  108 128 beep
  10 pause
  108 85 beep
  10 pause
  108 85 beep
  10 pause
  108 76 beep
  10 pause
  108 76 beep
  10 pause
  216 85 beep
  10 pause
  108 96 beep
  10 pause
  108 96 beep
  10 pause
  108 102 beep
  10 pause
  108 102 beep
  10 pause
  108 114 beep
  10 pause
  108 114 beep
  10 pause
  216 128 beep
  10 pause
  108 85 beep
  10 pause
  108 85 beep
  10 pause
  108 96 beep
  10 pause
  108 96 beep
  10 pause
  108 102 beep
  10 pause
  108 102 beep
  10 pause
  216 114 beep
  10 pause
  108 85 beep
  10 pause
  108 85 beep
  10 pause
  108 96 beep
  10 pause
  108 96 beep
  10 pause
  108 102 beep
  10 pause
  108 102 beep
  10 pause
  216 114 beep
  10 pause
  108 128 beep
  10 pause
  108 128 beep
  10 pause
  108 85 beep
  10 pause
  108 85 beep
  10 pause
  108 76 beep
  10 pause
  108 76 beep
  10 pause
  216 85 beep
  10 pause
  108 96 beep
  10 pause
  108 96 beep
  10 pause
  108 102 beep
  10 pause
  108 102 beep
  10 pause
  108 114 beep
  10 pause
  108 114 beep
  10 pause
  216 128 beep
  10 pause
end

###############################