amalgamation
[picodrive.git] / Pico / Misc.c
index 887e90c..2a0e569 100644 (file)
@@ -85,7 +85,7 @@ const unsigned char hcounts_32[] = {
 0x0a,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0d,\r
 };\r
 \r
-// vcounter values for PicoFrameSimple \r
+// vcounter values for PicoFrameSimple\r
 const unsigned short vcounts[] = {\r
   0,  0,  1,  1,  2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,\r
   8,  8,  9,  9, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16,\r
@@ -141,7 +141,7 @@ unsigned int lastSSRamWrite = 0xffff0000;
 \r
 // sram_reg: LAtd sela (L=pending SCL, A=pending SDA, t=type(1==uses 0x200000 for SCL and 2K bytes),\r
 //                      d=SRAM was detected (header or by access), s=started, e=save is EEPROM, l=old SCL, a=old SDA)\r
-void SRAMWriteEEPROM(unsigned int d) // ???? ??la (l=SCL, a=SDA)\r
+PICO_INTERNAL void SRAMWriteEEPROM(unsigned int d) // ???? ??la (l=SCL, a=SDA)\r
 {\r
   unsigned int sreg = Pico.m.sram_reg, saddr = Pico.m.sram_addr, scyc = Pico.m.sram_cycle, ssa = Pico.m.sram_slave;\r
 \r
@@ -247,7 +247,7 @@ void SRAMWriteEEPROM(unsigned int d) // ???? ??la (l=SCL, a=SDA)
   Pico.m.sram_slave= (unsigned char)  ssa;\r
 }\r
 \r
-unsigned int SRAMReadEEPROM()\r
+PICO_INTERNAL_ASM unsigned int SRAMReadEEPROM(void)\r
 {\r
   unsigned int shift, d=0;\r
   unsigned int sreg, saddr, scyc, ssa;\r
@@ -282,7 +282,7 @@ unsigned int SRAMReadEEPROM()
   return d;\r
 }\r
 \r
-void SRAMUpdPending(unsigned int a, unsigned int d)\r
+PICO_INTERNAL void SRAMUpdPending(unsigned int a, unsigned int d)\r
 {\r
   unsigned int sreg = Pico.m.sram_reg;\r
 \r
@@ -303,3 +303,36 @@ void SRAMUpdPending(unsigned int a, unsigned int d)
 \r
   Pico.m.sram_reg = (unsigned char) sreg;\r
 }\r
+\r
+\r
+#ifndef _ASM_MISC_C\r
+PICO_INTERNAL_ASM void memcpy16(unsigned short *dest, unsigned short *src, int count)\r
+{\r
+       while (count--)\r
+               *dest++ = *src++;\r
+}\r
+\r
+\r
+PICO_INTERNAL_ASM void memcpy16bswap(unsigned short *dest, void *src, int count)\r
+{\r
+       unsigned char *src_ = src;\r
+\r
+       for (; count; count--, src_ += 2)\r
+               *dest++ = (src_[0] << 8) | src_[1];\r
+}\r
+\r
+\r
+PICO_INTERNAL_ASM void memcpy32(int *dest, int *src, int count)\r
+{\r
+       while (count--)\r
+               *dest++ = *src++;\r
+}\r
+\r
+\r
+PICO_INTERNAL_ASM void memset32(int *dest, int c, int count)\r
+{\r
+       while (count--)\r
+               *dest++ = c;\r
+}\r
+#endif\r
+\r