I'll eventually have to take you up on that.
For now I'll just post what I wrote this morning right here.
The assembler syntax isn't 100% correct so don't yell because it doesn't assemble yet. Shouldn't take much work to get it going though. No promise all the address modes are right either, it's been ages since I've used the 6502.
It's a music player I ported from a Z80 program for the Aquarius (it may have originated somewhere else), to the 6803 on the MC-10. I did it for a sound upgrade I'm working on. I also ported it to the 6809 & Speech & Sound Pak. I figured while I was at it I'd hit the 6502 and Oric.
Since the player originated somewhere else I wouldn't be surprised if it already exists for the Oric. But hey, it's well documented and a work in process but not bad for a few hours work.
It includes the song data from the Aquarius version. The original file was named "FOREST.asm" or something similar.
I use tabs with a size of 8 in my editor.
Never been assembled or tested.
I've never written an Oric program before, for all I know I could be programming a VCR.
<edit> the code doesn't use labels for VIA registers in the section that talks to the AY sound chip. I'll fix that later.
<edit> I fixed syntax issues, changed remaining VIA accesses to defined labels, and fixed an address mode issue. The code assembles but I still need to locate the main body of code somewhere and properly locate the page zero song pointer. At this point I could use some input and it's about ready to test.
<edit> Commented out 65C02 instructions and added 6502 code. Oops.
<edit> Changed how interrupt is installed/removed. BASIC now works properly on exit. Bumped the date in the header.
<edit> Just realized the non-Oric AY registers are still reversed like the 6803 code. That would be accomplished on real hardware by inverting the A0 line. It makes sense on the 6803 since it has a 16 bit register D which can load/store the register number and data with 1 instruction each, but it makes no sense on the 6502 so I changed it back.
Code: Select all
;*************************************************************
;* FILE: Forest.s
;*************************************************************
;* Description:
;* Simple music player for the ORIC 1 & Oric Atmos.
;* Based on a Z80 program I found with the Virtual Aquarius emulator (I think)
;* Uses VIA timer to trigger the interrupt,
;* other machines may use the vertical blank interrupt.
;* Designed for the General Instruments AY sound chip but will work
;* with any sound chip with an internal address register and a data register.
;* This software is in the public domain.
;*
;* Song Data Format:
;* ;wait, number of registers to change,
;* ; register number, new value
;* ; register number, new value
;* ; etc.
;* ; ends when number of registers to change is 0.
;*
;* Author: J D
;* Date: May 29, 2009
;* Version:
;*************************************************************
; set build conditions here
;#define USE_C02 1 ; define to use 65C02 instructions
#define USENTSC 1 ; define to use NTSC VIA Timer settings
#define ORICAY 1 ; Use Oric VIA mapped AY chip, otherwise memory mapped AY
;*
#ifndef ORICAY
#define AYBase $0000 ; Put base address of memory mapped AY Chip here
#endif
#ifndef USENTSC
#define VBLVIA $4E00 ; VIA Timer Latch, settings matching PAL 50Hz
#else
#define VBLVIA $4100 ; VIA Timer Latch, settings matching NTSC 60Hz
#endif
#define IRQloc $024A ; IRQ handler address
; VIA register definitions
#define VIA_T1C $0304 ; Read/Write Counter Low-High T1
#define VIA_T1L $0306 ; Read/Write Latch Low-High T1
#define VIA_PCR $030C ; Peripheral Control Register
#define VIAIORA $030F ; Printer/Sound/Joystick (No Handshake)
.zero ; page zero variables
*= $007C ; start at $7C, right after OSDK reserved space
song .dsb 2,$00 ; page zero song pointer
.text ; start of code segment
*= $0600 ; start address of code
START ; just so we have the start address in the list file
_main
;==================
; playsong,
; play a song located at songstart
; based on Z80 Aquarius version by James the Animal Tamer
; ORIC 6502 XA source port by J D
; NOTE- uses timer interrupt rather than TOF interrupt despite code comments
playsong
; save registers
pha
#ifdef USE_C02
phx ;65c02
phy ;65c02
#else
txa
pha
tya
pha
#endif
;save VIA settings?
; clear the interrupt counter
lda #0 ; clear the interrupt handler counter
sta _VblCounter
; set the start address of the song
lda #<songstart
sta song
lda #>songstart
sta song+1
; set up a VIA timer for our interrupt
sei ; disable interrupts
lda VIA_T1L ; get contents of VIA_T1 and save for exit
sta VIASAVE
lda VIA_T1L+1
sta VIASAVE+1
lda #<VBLVIA ; Set our own VIA_T1 value for 50Hz or 60Hz
sta VIA_T1L
lda #>VBLVIA
sta VIA_T1L+1
;add our interrupt handler in place of rti on 6502 mem page 2
lda #$4C ; JMP instruction
sta IRQloc
lda #<_VBLIrq ; address of our interrupt handler
sta IRQloc+1
lda #>_VBLIrq
sta IRQloc+2
cli ; enable interrupts
;start of player
playline
ldy #1 ; offset from song pointer, Y must be used for this addressing mode
lda (song),y ; get number of registers to modify
beq playsongend ; check for end of song
#ifdef USE_C02
lda (song) ; get wait in A (65c02)
#else
dey
lda (song),y ; get wait in A
iny
#endif
tax ; move the counter to X
jsr waittof ; wait top of frame, A times
;6502 ORIC AY Control using the VIA 6522 makes this slower than memory mapped AY chip
lda (song),y ; get number of registers to modify in A
tax ; put it in X
iny ; next byte in song
_reglop
lda (song),y ; get the register number to modify
#ifdef ORICAY
sta VIAIORA ; set the AY data register number
lda #$FF ; $FF = VIAIORA holds a register number
sta VIA_PCR ; Set the VIA 6522 control line Register(PCR)
lda #$DD ; $DD = VIAIORA is inactive
sta VIA_PCR ; Set the VIA 6522 control line Register(PCR)
#else
sta AYBase+1 ; set the AY data register number
#endif
iny ; point to next byte in song
lda (song),y ; get the Value for the AY register
#ifdef ORICAY
sta VIAIORA ; load the data register value
lda #$FD ; $FD = VIAIORA holds data for a preset register
sta VIA_PCR ; Set the VIA 6522 control line Register(PCR)
lda #$DD ; $DD = VIAIORA is inactive
sta VIA_PCR ; Set the VIA 6522 control line Register(PCR)
#else
sta AYBase ; load the data register value
#endif
iny ; point to next byte in song
dex ; decrement the register count
bne _reglop ; keep looping if not done setting registers
; update the pointer (16 bit song pointer + 8 bit addition)
; (songLSB + y, songMSB + carry)
clc ; clear the carry for out 16 bit addition
tya ; put pointer offset in A
adc song ; add low byte (LSB)
sta song ; update low byte
lda #0 ; clear A
adc song+1 ; add carry to high byte (MSB)
sta song+1 ; update the song pointer
#ifdef USE_C02
bra playline ; continue playing (65c02)
#else
clc
bcc playline ; continue playing
#endif
;---
playsongend
;stop sound?
sei ; disable interrupts
;restore previous VIA timer
lda VIASAVE
sta VIA_T1L
lda VIASAVE+1
sta VIA_T1L+1
; remove our interrupt handler
lda #$40 ; RTI instruction
sta IRQloc
cli ; enable interrupts
; restore registers we saved
#ifdef USE_C02
ply ; 65c02
plx ; 65c02
#else
pla
tay
pla
tax
#endif
pla
rts ; return
;==================
; waittof,
; wait top of frame, a times
; preserve registers
waittof
loop_wait
lda _VblCounter
beq loop_wait
lda #0
sta _VblCounter
dex ; decrement the counter
bne loop_wait
rts
;==================
; our interrupt handler
_VBLIrq
bit VIA_T1C
inc _VblCounter
rti
;SVect jmp $0000 ; rti by calling old interrupt handler
codeend
; .bss ; start of the bss data segment
;==================
; variables we change
_VblCounter .byt 0 ; TOF flag variable
;SVect .byt 00,00 ; to save old interrupt vector info
VIASAVE .byt 00,00
; .data ; start of data segment
;==================
songstart
; rem song
; rem wait, number of registers to change,
; register number, new value
; register number, new value
; etc.
; ends when number of registers to change is 0.
.byt 1,4,8,0,9,0,10,0,7,56
;-- snip
.byt 1,3,0,221,1,1,8,15
.byt 14,1,8,0
.byt 1,3,0,250,1,1,8,15
.byt 14,1,8,0
.byt 1,6,0,112,1,4,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,125,3,2,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,246,1,2,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,151,1,5,8,15,2,221,3,1,9,15
.byt 29,2,8,0,9,0
.byt 1,6,0,251,1,4,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,112,1,4,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,125,3,2,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,246,1,2,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,151,1,5,8,15,2,221,3,1,9,15
.byt 29,2,8,0,9,0
.byt 1,6,0,251,1,4,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,112,1,4,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,125,3,2,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,246,1,2,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,151,1,5,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,1,8,0
.byt 1,7,0,56,1,2,8,15,9,0,2,236,3,5,9,15
.byt 14,1,8,0
.byt 1,3,0,89,1,2,8,15
.byt 13,2,8,0,9,0
.byt 1,6,0,112,1,4,8,15,2,56,3,2,9,15
.byt 29,2,8,0,9,0
.byt 1,3,0,246,1,2,8,15
.byt 29,1,8,0
.byt 1,3,0,236,1,5,8,15
.byt 29,1,8,0
.byt 1,3,0,221,1,1,8,15
.byt 14,1,8,0
.byt 1,3,0,250,1,1,8,15
.byt 14,1,8,0
.byt 1,6,0,112,1,4,8,15,2,56,3,2,9,15
.byt 13,1,9,0
.byt 1,3,2,125,3,2,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,56,3,2,9,15
.byt 13,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,151,1,5,8,15,2,221,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,203,1,2,8,15,2,123,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,251,1,4,8,15,2,62,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,83,1,3,8,15,2,123,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,187,1,3,8,15,2,221,3,1,9,15
.byt 29,2,8,0,9,0
.byt 1,6,0,244,1,3,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,1,8,0
.byt 1,7,0,56,1,2,8,15,9,0,2,112,3,4,9,15
.byt 14,1,8,0
.byt 1,3,0,125,1,2,8,15
.byt 14,1,8,0
.byt 1,7,0,56,1,2,8,15,9,0,2,246,3,2,9,15
.byt 14,1,8,0
.byt 1,3,0,250,1,1,8,15
.byt 14,1,8,0
.byt 1,7,0,221,1,1,8,15,9,0,2,151,3,5,9,15
.byt 14,1,8,0
.byt 1,3,0,169,1,1,8,15
.byt 14,2,8,0,9,0
.byt 1,6,0,203,1,2,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,251,1,4,8,15,2,62,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,83,1,3,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,187,1,3,8,15,2,123,3,1,9,15
.byt 29,1,8,0
.byt 1,7,0,221,1,1,8,15,9,0,2,244,3,3,9,15
.byt 14,1,8,0
.byt 1,3,0,250,1,1,8,15
.byt 14,1,9,0
.byt 1,7,8,0,0,112,1,4,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,125,3,2,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,246,1,2,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,151,1,5,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,203,1,2,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,251,1,4,8,15,2,62,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,83,1,3,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,187,1,3,8,15,2,221,3,1,9,15
.byt 29,2,8,0,9,0
.byt 1,6,0,244,1,3,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,1,8,0
.byt 1,7,0,56,1,2,8,15,9,0,2,112,3,4,9,15
.byt 14,1,8,0
.byt 1,3,0,125,1,2,8,15
.byt 14,1,8,0
.byt 1,7,0,56,1,2,8,15,9,0,2,246,3,2,9,15
.byt 14,1,8,0
.byt 1,3,0,125,1,2,8,15
.byt 14,1,8,0
.byt 1,7,0,89,1,2,8,15,9,0,2,236,3,5,9,15
.byt 14,1,8,0
.byt 1,3,0,250,1,1,8,15
.byt 14,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,151,1,5,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,1,8,0
.byt 1,7,0,56,1,2,8,15,9,0,2,236,3,5,9,15
.byt 14,1,8,0
.byt 1,3,0,125,1,2,8,15
.byt 13,2,8,0,9,0
.byt 1,6,0,112,1,4,8,15,2,56,3,2,9,15
.byt 29,2,8,0,9,0
.byt 1,3,0,221,1,1,8,15
.byt 14,1,8,0
.byt 1,3,0,250,1,1,8,15
.byt 14,1,8,0
.byt 1,6,0,112,1,4,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,125,3,2,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,151,1,5,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,203,1,2,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,251,1,4,8,15,2,62,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,83,1,3,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,187,1,3,8,15,2,221,3,1,9,15
.byt 28,2,8,0,9,0
.byt 1,6,0,244,1,3,8,15,2,221,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,112,1,4,8,15,2,56,3,2,9,15
.byt 13,1,9,0
.byt 1,3,2,125,3,2,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,151,1,5,8,15,2,221,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,203,1,2,8,15,2,123,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,251,1,4,8,15,2,62,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,83,1,3,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,187,1,3,8,15,2,123,3,1,9,15
.byt 28,2,8,0,9,0
.byt 1,6,0,244,1,3,8,15,2,221,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,112,1,4,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,125,3,2,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,151,1,5,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,203,1,2,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,251,1,4,8,15,2,62,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,83,1,3,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,187,1,3,8,15,2,221,3,1,9,15
.byt 29,2,8,0,9,0
.byt 1,6,0,244,1,3,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,112,1,4,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,125,3,2,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,246,1,2,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,125,3,2,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,236,1,5,8,15,2,89,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,151,1,5,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,1,8,0
.byt 1,7,0,56,1,2,8,15,9,0,2,236,3,5,9,15
.byt 14,1,8,0
.byt 1,3,0,125,1,2,8,15
.byt 14,1,8,0
.byt 1,7,0,56,1,2,8,15,9,0,2,112,3,4,9,15
.byt 29,2,8,0,9,0
.byt 30,6,0,83,1,3,8,15,2,101,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,123,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,56,1,2,8,15,2,169,3,1,9,15
.byt 14,1,8,0
.byt 1,4,9,0,2,125,3,2,9,15
.byt 15,6,0,251,1,4,8,15,4,62,5,1,10,15
.byt 14,1,10,0
.byt 1,4,9,0,2,101,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,244,1,3,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,1,8,0
.byt 1,7,0,123,1,1,8,15,9,0,2,187,3,3,9,15
.byt 14,1,8,0
.byt 1,3,0,169,1,1,8,15
.byt 13,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,187,1,3,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,62,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,83,1,3,8,15,2,101,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,123,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,56,1,2,8,15,2,169,3,1,9,15
.byt 14,1,8,0
.byt 1,3,0,125,1,2,8,15
.byt 14,1,9,0
.byt 1,6,2,236,3,5,9,15,4,123,5,1,10,15
.byt 14,2,8,0,10,0
.byt 1,3,0,169,1,1,8,15
.byt 13,2,8,0,9,0
.byt 1,9,0,179,1,4,8,15,2,246,3,2,9,15,4,221,5,1
.byt 10,15
.byt 13,1,10,0
.byt 1,3,4,250,5,1,10,15
.byt 13,3,8,0,9,0,10,0
.byt 1,6,0,112,1,4,8,15,2,221,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,56,1,2,8,15,2,246,3,2,9,15
.byt 13,1,8,0
.byt 1,3,0,125,1,2,8,15
.byt 13,2,8,0,9,0
.byt 1,6,0,112,1,4,8,15,2,56,3,2,9,15
.byt 28,2,8,0,9,0
.byt 1,3,0,123,1,1,8,15
.byt 13,1,8,0
.byt 1,3,0,62,1,1,8,15
.byt 13,1,8,0
.byt 1,6,0,83,1,3,8,15,2,101,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,123,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,56,1,2,8,15,2,169,3,1,9,15
.byt 13,1,8,0
.byt 1,4,9,0,2,125,3,2,9,15
.byt 14,6,0,251,1,4,8,15,4,62,5,1,10,15
.byt 13,2,9,0,10,0
.byt 1,3,2,101,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,244,1,3,8,15,2,123,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,187,1,3,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,244,1,3,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,112,1,4,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,123,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,169,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,221,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,151,1,5,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,203,1,2,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,236,1,5,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,89,3,2,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,112,1,4,8,15,2,56,3,2,9,15
.byt 30,2,8,0,9,0
.byt 32,6,0,83,1,3,8,15,2,101,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,123,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,56,1,2,8,15,2,169,3,1,9,15
.byt 14,1,8,0
.byt 1,4,9,0,2,125,3,2,9,15
.byt 15,6,0,251,1,4,8,15,4,62,5,1,10,15
.byt 14,1,10,0
.byt 1,4,9,0,2,101,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,244,1,3,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,1,8,0
.byt 1,7,0,123,1,1,8,15,9,0,2,187,3,3,9,15
.byt 14,1,8,0
.byt 1,3,0,169,1,1,8,15
.byt 13,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,187,1,3,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,62,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,83,1,3,8,15,2,101,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,123,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,56,1,2,8,15,2,169,3,1,9,15
.byt 14,1,8,0
.byt 1,3,0,125,1,2,8,15
.byt 14,1,9,0
.byt 1,6,2,236,3,5,9,15,4,123,5,1,10,15
.byt 14,2,8,0,10,0
.byt 1,3,0,169,1,1,8,15
.byt 13,2,8,0,9,0
.byt 1,9,0,179,1,4,8,15,2,246,3,2,9,15,4,221,5,1
.byt 10,15
.byt 13,1,10,0
.byt 1,3,4,250,5,1,10,15
.byt 13,3,8,0,9,0,10,0
.byt 1,6,0,112,1,4,8,15,2,221,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,56,1,2,8,15,2,246,3,2,9,15
.byt 13,1,8,0
.byt 1,3,0,125,1,2,8,15
.byt 13,2,8,0,9,0
.byt 1,6,0,112,1,4,8,15,2,56,3,2,9,15
.byt 29,2,8,0,9,0
.byt 1,3,0,123,1,1,8,15
.byt 13,1,8,0
.byt 1,3,0,62,1,1,8,15
.byt 13,1,8,0
.byt 1,6,0,83,1,3,8,15,2,101,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,123,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,56,1,2,8,15,2,169,3,1,9,15
.byt 14,1,8,0
.byt 1,3,0,125,1,2,8,15
.byt 14,1,9,0
.byt 1,6,2,251,3,4,9,15,4,62,5,1,10,15
.byt 13,2,8,0,10,0
.byt 1,3,0,101,1,1,8,15
.byt 13,2,8,0,9,0
.byt 1,6,0,244,1,3,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,187,1,3,8,15,2,123,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,244,1,3,8,15,2,123,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,112,1,4,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,123,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,169,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,221,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,151,1,5,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,203,1,2,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,236,1,5,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,89,3,2,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,112,1,4,8,15,2,56,3,2,9,15
.byt 30,2,8,0,9,0
.byt 32,3,0,221,1,1,8,15
.byt 14,1,8,0
.byt 1,3,0,250,1,1,8,15
.byt 14,1,8,0
.byt 1,6,0,112,1,4,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,125,3,2,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,246,1,2,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,151,1,5,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,203,1,2,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,251,1,4,8,15,2,62,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,83,1,3,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,1,9,0
.byt 1,7,8,0,0,187,1,3,8,15,2,221,3,1,9,15
.byt 28,2,8,0,9,0
.byt 1,6,0,244,1,3,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,1,8,0
.byt 1,7,0,56,1,2,8,15,9,0,2,112,3,4,9,15
.byt 14,1,8,0
.byt 1,3,0,125,1,2,8,15
.byt 13,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,151,1,5,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,203,1,2,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,251,1,4,8,15,2,62,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,83,1,3,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,187,1,3,8,15,2,123,3,1,9,15
.byt 28,2,8,0,9,0
.byt 1,6,0,244,1,3,8,15,2,221,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,112,1,4,8,15,2,56,3,2,9,15
.byt 13,1,9,0
.byt 1,3,2,125,3,2,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,151,1,5,8,15,2,221,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 14,2,8,0,9,0
.byt 1,6,0,203,1,2,8,15,2,123,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,251,1,4,8,15,2,62,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,101,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,83,1,3,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,187,1,3,8,15,2,221,3,1,9,15
.byt 28,2,8,0,9,0
.byt 1,6,0,244,1,3,8,15,2,221,3,1,9,15
.byt 13,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,112,1,4,8,15,2,56,3,2,9,15
.byt 13,1,9,0
.byt 1,3,2,125,3,2,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,56,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,125,3,2,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,236,1,5,8,15,2,89,3,2,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,246,1,2,8,15,2,123,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,169,3,1,9,15
.byt 13,2,8,0,9,0
.byt 1,6,0,151,1,5,8,15,2,221,3,1,9,15
.byt 14,1,9,0
.byt 1,3,2,250,3,1,9,15
.byt 14,1,8,0
.byt 1,7,0,56,1,2,8,15,9,0,2,236,3,5,9,15
.byt 14,1,8,0
.byt 1,3,0,125,1,2,8,15
.byt 14,1,8,0
.byt 1,7,0,56,1,2,8,15,9,0,2,112,3,4,9,15
.byt 30,2,8,0,9,0
;-- unsnip
.byt 1,3,8,0,9,0,10,0
.byt 0,0
;=== end of song
dataend ; so we have the end of the data in the list file
;.end