[Lapetus-cvs] lapetus cd.c,1.1,1.2
Status: Inactive
Brought to you by:
cyberwarriorx
From: Theo B. <cyb...@us...> - 2007-03-03 03:53:55
|
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; |