// This is part of Pico Library\r
\r
// (c) Copyright 2004 Dave, All rights reserved.\r
-// (c) Copyright 2006 notaz, All rights reserved.\r
+// (c) Copyright 2006-2007, Grazvydas "notaz" Ignotas\r
// Free for non-commercial use.\r
\r
// For commercial use, separate licencing terms must be obtained.\r
extern const unsigned short vcounts[];\r
extern int rendstatus;\r
\r
+#ifndef UTYPES_DEFINED\r
typedef unsigned char u8;\r
typedef unsigned short u16;\r
+typedef unsigned int u32;\r
+#define UTYPES_DEFINED\r
+#endif\r
\r
\r
static __inline void AutoIncrement()\r
\r
if(Pico.m.scanline != -1) {\r
Pico.m.dma_bytes += len;\r
- SekSetCyclesLeft(SekCyclesLeft - CheckDMA());\r
+ if ((PicoMCD&1) && (PicoOpt & 0x2000)) SekCyclesBurn(CheckDMA());\r
+ else SekSetCyclesLeftNoMCD(SekCyclesLeftNoMCD - CheckDMA());\r
} else {\r
// be approximate in non-accurate mode\r
SekSetCyclesLeft(SekCyclesLeft - (len*(((488<<8)/167))>>8));\r
r = Pico.cram;\r
for(a2=a&0x7f; len; len--)\r
{\r
- r[a2>>1] = (u16)*pd++;; // bit 0 is ignored\r
+ r[a2>>1] = (u16)*pd++; // bit 0 is ignored\r
// AutoIncrement\r
a2+=inc;\r
// didn't src overlap?\r
if (cmd&0x80) CommandDma();\r
}\r
\r
-void PicoVideoWrite(unsigned int a,unsigned short d)\r
+PICO_INTERNAL_ASM void PicoVideoWrite(unsigned int a,unsigned short d)\r
{\r
struct PicoVideo *pvid=&Pico.video;\r
\r
}\r
}\r
\r
-unsigned int PicoVideoRead(unsigned int a)\r
+PICO_INTERNAL_ASM unsigned int PicoVideoRead(unsigned int a)\r
{\r
unsigned int d=0;\r
\r