Merge branch 'master' into deflate

This commit is contained in:
optixx 2009-10-20 22:07:28 +02:00
commit e13b124e93
5 changed files with 250 additions and 82 deletions

View File

@ -23,9 +23,10 @@ F_CPU = 20000000
TARGET = main
AVRDUDE = avrdude -c usbasp -p $(DEVICE)
SIZE = avr-size
BOOT_ROM_SMALL = ../../roms/qd16boot01.smc
BOOT_ROM_FULL = ../../roms/qd16boot02.smc
ROM_CONVERT = ../../scripts/conv_rle.py
BOOT_ROM01 = ../../roms/qd16boot01.smc
BOOT_ROM02 = ../../roms/qd16boot02.smc
CONVERT_RLE = ../../scripts/conv_rle.py
CONVERT_ZIP = ../../scripts/conv_zip.py
@ -79,11 +80,11 @@ fuse:
flash: main.hex
$(AVRDUDE) -U flash:w:main.hex:i
loader:
python $(ROM_CONVERT) $(BOOT_ROM_SMALL)
loader01:
python $(CONVERT_RLE) $(BOOT_ROM01)
loader_full:
python $(ROM_CONVERT) $(BOOT_ROM_FULL)
loader02:
python $(CONVERT_ZIP) $(BOOT_ROM02)
.c.o:
$(COMPILE) -c $< -o $@

View File

@ -1,6 +1,6 @@
/*
File: qd16boot01.smc
Time: Sun, 18 Oct 2009 09:40:40
Time: Tue, 20 Oct 2009 21:42:10
*/
#ifndef __FIFO_H__
#define __FIFO_H__

View File

@ -44,6 +44,12 @@
extern system_t system;
const char STR_ROM[] PROGMEM = "Rom";
const char STR_RAM[] PROGMEM = "Sram";
const char STR_BAT[] PROGMEM = "Battery";
const char STR_SUPERFX[] PROGMEM = "SuperFX";
const char STR_SA[] PROGMEM = "SA-1";
uint8_t command_buf[RECEIVE_BUF_LEN];
uint8_t recv_buf[RECEIVE_BUF_LEN];
@ -153,7 +159,7 @@ static uint8_t get_int32(uint32_t *val)
}
ISR(USART0_RX_vect) // Interrupt for UART Byte received
ISR(USART0_RX_vect)
{
UCSR0B &= (255 - (1<<RXCIE0));// Interrupts disable for RxD
sei();
@ -164,11 +170,11 @@ ISR(USART0_RX_vect) // Interrupt for UART Byte received
prompt();
}
recv_buf[recv_counter] = UDR0;
uart_putc(recv_buf[recv_counter]); /* do a echo, maybe should reside not in interrupt */
uart_putc(recv_buf[recv_counter]);
if (recv_buf[recv_counter] == 0x0d) {
/* recv_buf[recv_counter] = 0; */
cr = 1; // found a CR, so the application should do something
recv_buf[++recv_counter]='\0'; // terminate string
cr = 1;
recv_buf[++recv_counter]='\0';
recv_counter = 0;
prompt();
} else {
@ -179,7 +185,7 @@ ISR(USART0_RX_vect) // Interrupt for UART Byte received
recv_counter++;
}
}
UCSR0B |= (1<<RXCIE0);// Interrupts enable for RxD
UCSR0B |= (1<<RXCIE0);
}
enum cmds {
@ -385,26 +391,70 @@ void shell_run(void)
switch(c){
case 0x20:
info_P(PSTR("LOROM\n"));
info_P(PSTR("LoROM, not fast\n"));
break;
case 0x21:
info_P(PSTR("HIROM\n"));
info_P(PSTR("HiRom, not fast\n"));
break;
case 0x30:
info_P(PSTR("LOROM FAST\n"));
info_P(PSTR("LoROM, fast\n"));
break;
case 0x31:
info_P(PSTR("HIROM FAST\n"));
info_P(PSTR("HiRom, fast\n"));
break;
default:
info_P(PSTR("UNKNOW 0x%02x\n"),c);
info_P(PSTR("Unkown 0x%02x\n"),c);
break;
}
info_P(PSTR("TYPE 0x%04x 0x%02x\n"), (0xffd6 - offset),sram_read(0xffd6 - offset));
info_P(PSTR("ROM 0x%04x 0x%02x\n"), (0xffd7 - offset),sram_read(0xffd7 - offset));
info_P(PSTR("RAM 0x%04x 0x%02x\n"), (0xffd8 - offset),sram_read(0xffd8 - offset));
info_P(PSTR("CCODE 0x%04x 0x%02x\n"), (0xffd9 - offset),sram_read(0xffd9 - offset));
c = sram_read(0xffd6 - offset);
info_P(PSTR("TYPE 0x%04xc"), (0xffd6 - offset),c);
switch(c){
case 0x00:
info_P(PSTR("Rom\n"));
break;
case 0x01:
info_P(PSTR("Rom + Sram\n"));
break;
case 0x02:
info_P(PSTR("Rom + Sram + Battery\n"));
break;
case 0x13:
info_P(PSTR("SuperFX\n"));
break;
case 0x14:
info_P(PSTR("SuperFX\n"));
break;
case 0x15:
info_P(PSTR("SuperFX + Sram\n"));
break;
case 0x1a:
info_P(PSTR("SuperFX + Sram\n"));
break;
case 0x34:
info_P(PSTR("SA-1"));
break;
case 0x35:
info_P(PSTR("SA-1"));
break;
default:
info_P(PSTR("Unkown 0x%02x\n"),c);
break;
}
arg1 = ( 2 << ( sram_read(0xffd7 - offset) - 1 ));
info_P(PSTR("ROM 0x%04x %li MBit ( %li KiB)\n"), (0xffd7 - offset), (arg1 / 128), arg1);
arg1 = ( 2 << ( sram_read(0xffd8 - offset) - 1 ));
info_P(PSTR("RAM 0x%04x %li KiB\n"), (0xffd8 - offset), arg1);
info_P(PSTR("CCODE 0x%04x "), (0xffd9 - offset));
c = sram_read(0xffd9 - offset);
if (c==0x00 || c==0x01 || 0x0d )
info_P(PSTR("NTSC\n"));
else if (c>=0x02 || c<=0x0c )
info_P(PSTR("PAL\n"));
else
info_P(PSTR("Unkown 0x%02x\n"),c);
info_P(PSTR("LIC 0x%04x 0x%02x\n"), (0xffda - offset),sram_read(0xffda - offset));
info_P(PSTR("VER 0x%04x 0x%02x\n"), (0xffdb - offset),sram_read(0xffdb - offset));
info_P(PSTR("SUM1 0x%04x 0x%04x\n"), (0xffdc - offset),sram_read16_be(0xffdc - offset));

View File

@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>currentDocument</key>
<string>avr/usbload/main.c</string>
<string>avr/usbload/shell.c</string>
<key>documents</key>
<array>
<dict>
@ -21,33 +21,75 @@
<integer>271</integer>
<key>metaData</key>
<dict>
<key>avr/usbload/Makefile</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>10</integer>
<key>line</key>
<integer>86</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>45</integer>
</dict>
<key>avr/usbload/command.c</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>18</integer>
<integer>1</integer>
<key>line</key>
<integer>42</integer>
<integer>100</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>95</integer>
<integer>122</integer>
</dict>
<key>avr/usbload/command.h</key>
<key>avr/usbload/config.h</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>26</integer>
<integer>37</integer>
<key>line</key>
<integer>30</integer>
<integer>54</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>7</integer>
</dict>
<key>avr/usbload/crc.c</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>59</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>34</integer>
</dict>
<key>avr/usbload/debug.c</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>5</integer>
<key>line</key>
<integer>26</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>1</integer>
</dict>
<key>avr/usbload/irq.c</key>
<dict>
@ -56,86 +98,112 @@
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>54</integer>
<integer>39</integer>
</dict>
<key>columnSelection</key>
<false/>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>26</integer>
<integer>23</integer>
<key>selectFrom</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>38</integer>
</dict>
<key>selectTo</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>39</integer>
</dict>
</dict>
<key>avr/usbload/main.c</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>18</integer>
<integer>0</integer>
<key>line</key>
<integer>269</integer>
<integer>330</integer>
</dict>
<key>columnSelection</key>
<false/>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>247</integer>
<key>selectFrom</key>
<integer>281</integer>
</dict>
<key>avr/usbload/shared_memory.c</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>8</integer>
<integer>26</integer>
<key>line</key>
<integer>269</integer>
<integer>247</integer>
</dict>
<key>selectTo</key>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>222</integer>
</dict>
<key>avr/usbload/shell.c</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>83</integer>
<key>line</key>
<integer>444</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>409</integer>
</dict>
<key>avr/usbload/shell.h</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>22</integer>
<key>line</key>
<integer>23</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>0</integer>
</dict>
<key>avr/usbload/sram.c</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>321</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>288</integer>
</dict>
<key>avr/usbload/sram.h</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>23</integer>
<key>line</key>
<integer>269</integer>
</dict>
</dict>
<key>avr/usbload/system.c</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>119</integer>
<integer>208</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>78</integer>
</dict>
<key>avr/usbload/system.h</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>12</integer>
<key>line</key>
<integer>33</integer>
</dict>
<key>columnSelection</key>
<false/>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>1</integer>
<key>selectFrom</key>
<dict>
<key>column</key>
<integer>9</integer>
<key>line</key>
<integer>33</integer>
</dict>
<key>selectTo</key>
<dict>
<key>column</key>
<integer>19</integer>
<key>line</key>
<integer>33</integer>
</dict>
<integer>175</integer>
</dict>
<key>scripts/conv_rle.py</key>
<dict>
@ -151,6 +219,34 @@
<key>firstVisibleLine</key>
<integer>49</integer>
</dict>
<key>scripts/conv_zip.py</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>46</integer>
<key>line</key>
<integer>22</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>6</integer>
</dict>
<key>scripts/zip2raw.rb</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>0</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>95</integer>
</dict>
<key>snes/banktest/LoadGraphics.asm</key>
<dict>
<key>caret</key>
@ -184,10 +280,18 @@
<array>
<string>scripts/conv_rle.py</string>
<string>avr/usbload/main.c</string>
<string>avr/usbload/command.h</string>
<string>avr/usbload/system.c</string>
<string>avr/usbload/system.h</string>
<string>avr/usbload/shell.h</string>
<string>avr/usbload/shell.c</string>
<string>scripts/conv_zip.py</string>
<string>avr/usbload/Makefile</string>
<string>scripts/zip2raw.rb</string>
<string>avr/usbload/shared_memory.c</string>
<string>avr/usbload/sram.h</string>
<string>avr/usbload/sram.c</string>
<string>avr/usbload/command.c</string>
<string>avr/usbload/crc.c</string>
<string>avr/usbload/config.h</string>
<string>avr/usbload/debug.c</string>
<string>avr/usbload/irq.c</string>
</array>
<key>showFileHierarchyDrawer</key>
@ -233,12 +337,20 @@
</dict>
</dict>
<key>scripts</key>
<dict>
<key>isExpanded</key>
<true/>
<key>subItems</key>
<dict>
<key>webpy</key>
<dict>
<key>isExpanded</key>
<true/>
<key>subItems</key>
<dict/>
</dict>
</dict>
</dict>
<key>snes</key>
<dict>
<key>isExpanded</key>

View File

@ -9,14 +9,19 @@ huffman = False
TARGET=os.getcwd()
SOURCE=sys.argv[1]
DEFLATE=os.path.basename(sys.argv[1]) + ".deflate"
PATH="/Users/david/Devel/arch/avr/code/quickdev16/scripts"
WINE="/Applications/Darwine/Wine.bundle/Contents/bin/wine"
KZIP=os.path.join(PATH,"kzip.exe")
DEFLOPT=os.path.join(PATH,"DeflOpt.exe")
ZIP2RAW=os.path.join(PATH,"zip2raw.rb")
if os.path.isfile("rom.zip"):
os.unlink("rom.zip")
os.system("wine kzip.exe rom /s1 %s" % SOURCE)
os.system("wine DeflOpt.exe /a rom.zip")
os.system("ruby zip2raw.rb rom.zip")
os.system("%s %s rom /s1 %s" % (WINE,KZIP,SOURCE))
os.system("%s %s /a rom.zip" % (WINE,DEFLOPT))
os.system("ruby %s rom.zip" % ZIP2RAW)
if os.path.isfile("rom.zip"):
os.unlink("rom.zip")