Update of /cvsroot/lapetus/lapetus
In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv11206
Modified Files:
cd.c
Log Message:
-Changed to use new VdpPrint* functions
-Changed CDReadSector so you specify the sector size type, instead of the actual size of the sector
Index: cd.c
===================================================================
RCS file: /cvsroot/lapetus/lapetus/cd.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- cd.c 1 Mar 2007 23:21:09 -0000 1.1
+++ cd.c 3 Mar 2007 03:53:44 -0000 1.2
@@ -21,7 +21,8 @@
//////////////////////////////////////////////////////////////////////////////
-static int cdsectorsize = 2048;
+static int cdsectorsize = SECT_2048;
+int sectorsizetbl[4] = { 2048, 2336, 2340, 2352 };
//////////////////////////////////////////////////////////////////////////////
@@ -99,7 +100,7 @@
//////////////////////////////////////////////////////////////////////////////
-int CDDebugExecCommand(u16 hirqmask, cdcmd_struct *cdcmd, cdcmd_struct *cdcmdrs)
+int CDDebugExecCommand(font_struct *font, u16 hirqmask, cdcmd_struct *cdcmd, cdcmd_struct *cdcmdrs)
{
int old_levelmask;
u16 hirq_temp;
@@ -121,10 +122,10 @@
CDWriteCommand(cdcmd);
// Go into an endless loop showing the HIRQ
- VdpPrintText(2 * 8, 20 * 8, 0xF0, "HIRQ = ");
+ VdpPrintText(font, 2 * 8, 20 * 8, 15, "HIRQ = ");
for (;;)
- VdpPrintf(2 * 8, 20 * 8, 0xF0, "%d", CDB_REG_HIRQ);
+ VdpPrintf(font, 2 * 8, 20 * 8, 15, "%d", CDB_REG_HIRQ);
// return interrupts back to normal
InterruptSetLevelMask(old_levelmask);
@@ -367,28 +368,7 @@
cdcmd_struct cdcmd;
cdcmd_struct cdcmdrs;
- switch (size)
- {
- case 2048:
- cdsectorsize = size;
- size = 0;
- break;
- case 2336:
- cdsectorsize = size;
- size = 1;
- break;
- case 2340:
- cdsectorsize = size;
- size = 2;
- break;
- case 2352:
- cdsectorsize = size;
- size = 3;
- break;
- default:
- size = 0xFF;
- break;
- }
+ cdsectorsize = size;
cdcmd.CR1 = 0x6000 | (size & 0xFF);
cdcmd.CR2 = size << 8;
@@ -445,7 +425,7 @@
for (i = 0; i < 20000; i++) {}
// Do transfer
- for (i = 0; i < ((numsectors * cdsectorsize) / 4); i++)
+ for (i = 0; i < ((numsectors * sectorsizetbl[cdsectorsize]) / 4); i++)
buffer[i] = CDB_REG_DATATRNS; // this can also be done in word units as well
if ((ret = CDEndTransfer()) != 0)
@@ -709,7 +689,7 @@
return ret;
sectorsread += sectorstoread;
- buffer += cdsectorsize;
+ buffer += sectorsizetbl[cdsectorsize];
if (sectorsread >= numsectors)
done = 1;
|