]> hydra-www.ietfng.org Git - acmetensortoys-chiptunes/commitdiff
Move target/ to avr-libc built in progmem.h
authorNathaniel Wesley Filardo <nwf@smaug.priv.ietfng.org>
Mon, 1 Mar 2010 00:56:48 +0000 (19:56 -0500)
committerNathaniel Wesley Filardo <nwf@smaug.priv.ietfng.org>
Mon, 1 Mar 2010 00:56:48 +0000 (19:56 -0500)
target/asm.S
target/main.c

index 7f9c5dcd486bdb6b73d03d4081031ec3eb11a055..8289b5f966094ecd6b526f6cf60a568d23c32ccf 100644 (file)
@@ -2,24 +2,12 @@
 #include <target/config.h>
 #include <avr/io.h>
 
-               .global readsongbyte
                .global watchdogoff
                .global __vector_14
 
                .extern lastsample
                .extern noiseseed
                .extern osc
-               .extern songdata
-
-readsongbyte:
-                ldi     r30, lo8(songdata)
-                add     r30, r24
-                ldi     r31, hi8(songdata)
-                adc     r31, r25
-                lpm
-                mov     r24, r0
-                mov     r25, r1
-                ret
 
 watchdogoff:
                wdr
index cd2b66814ee27f53bafc05f81d22c1ec1889c4a0..3b1690f0068e272d2e99e279f9191db1882a1ccc 100644 (file)
@@ -1,5 +1,6 @@
 #include <avr/io.h>
 #include <avr/interrupt.h>
+#include <avr/pgmspace.h>
 
 #define TRACKLEN 32
 
@@ -75,8 +76,9 @@ u16 resources[16 + MAXTRACK];
 
 struct unpacker songup;
 
-u8 readsongbyte(u16 offset);
 void watchdogoff();
+extern u8 songdata[] __ATTR_PROGMEM__;
+#define readsongbyte(x) pgm_read_byte_near(&songdata[x]);
 
 static void initup(struct unpacker *up, u16 offset) {
        up->nextbyte = offset;