Nugget
Bare-metal libraries and examples for the original PlayStation
Loading...
Searching...
No Matches
Functions | Variables
cdlseekp.c File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

 CESTER_TEST (cdlSeekP, test_instance, int resetDone=resetCDRom();if(!resetDone) { cester_assert_true(resetDone);return;} int setLocDone=setLoc(0, 2, 0);if(!setLocDone) { cester_assert_true(setLocDone);return;} initializeTime();while(updateTime()< 50000);initializeTime();CDROM_REG0=0;CDROM_REG1=CDL_SEEKP;uint32_t ackTime=waitCDRomIRQ();uint8_t cause1=ackCDRomCause();uint8_t ctrl1=CDROM_REG0 &~3;uint8_t response1[16];uint8_t responseSize1=readResponse(response1);uint8_t ctrl2=CDROM_REG0 &~3;CDROM_REG0=1;uint8_t cause1b=CDROM_REG3_UC;uint32_t completeTime=waitCDRomIRQ() - ackTime;uint8_t cause2=ackCDRomCause();uint8_t ctrl3=CDROM_REG0 &~3;uint8_t response2[16];uint8_t responseSize2=readResponse(response2);uint8_t ctrl4=CDROM_REG0 &~3;CDROM_REG0=1;uint8_t cause2b=CDROM_REG3_UC;cester_assert_uint_eq(3, cause1);cester_assert_uint_eq(2, cause2);cester_assert_uint_eq(0xe0, cause1b);cester_assert_uint_eq(0xe0, cause2b);cester_assert_uint_eq(2, response1[0]);cester_assert_uint_eq(1, responseSize1);cester_assert_uint_eq(2, response2[0]);cester_assert_uint_eq(1, responseSize2);cester_assert_uint_eq(0x38, ctrl1);cester_assert_uint_eq(0x18, ctrl2);cester_assert_uint_eq(0x38, ctrl3);cester_assert_uint_eq(0x18, ctrl4);cester_assert_uint_ge(ackTime, 500);cester_assert_uint_lt(ackTime, 7000);ramsyscall_printf("Basic seekP to 00:02:00: ack in %ius, complete in %ius\n", ackTime, completeTime);) CESTER_TEST(cdlSeekPwithArgs
 
 if (!resetDone)
 
 initializeTime ()
 
 while (updateTime()< 50000)
 
 cester_assert_uint_eq (5, cause1)
 
 cester_assert_uint_eq (0xe0, cause1b)
 
 cester_assert_uint_eq (3, response1[0])
 
 cester_assert_uint_eq (0x20, response1[1])
 
 cester_assert_uint_eq (2, responseSize1)
 
 cester_assert_uint_eq (0x38, ctrl1)
 
 cester_assert_uint_eq (0x18, ctrl2)
 
 cester_assert_uint_ge (errorTime, 500)
 
 cester_assert_uint_lt (errorTime, 7000)
 
 ramsyscall_printf ("Too many args seekP, errored in %ius\n", errorTime)
 
 CESTER_TEST (cdlSeekP2to4, test_instance, int resetDone=resetCDRom();if(!resetDone) { cester_assert_true(resetDone);return;} int seekDone=seekPTo(0, 2, 0);if(!seekDone) { cester_assert_true(seekDone);return;} int setLocDone=setLoc(0, 4, 0);if(!setLocDone) { cester_assert_true(setLocDone);return;} initializeTime();while(updateTime()< 50000);initializeTime();CDROM_REG0=0;CDROM_REG1=CDL_SEEKP;uint32_t ackTime=waitCDRomIRQ();uint8_t cause1=ackCDRomCause();uint8_t ctrl1=CDROM_REG0 &~3;uint8_t response1[16];uint8_t responseSize1=readResponse(response1);uint8_t ctrl2=CDROM_REG0 &~3;CDROM_REG0=1;uint8_t cause1b=CDROM_REG3_UC;uint32_t completeTime=waitCDRomIRQ() - ackTime;uint8_t cause2=ackCDRomCause();uint8_t ctrl3=CDROM_REG0 &~3;uint8_t response2[16];uint8_t responseSize2=readResponse(response2);uint8_t ctrl4=CDROM_REG0 &~3;CDROM_REG0=1;uint8_t cause2b=CDROM_REG3_UC;cester_assert_uint_eq(3, cause1);cester_assert_uint_eq(2, cause2);cester_assert_uint_eq(0xe0, cause1b);cester_assert_uint_eq(0xe0, cause2b);cester_assert_uint_eq(2, response1[0]);cester_assert_uint_eq(1, responseSize1);cester_assert_uint_eq(2, response2[0]);cester_assert_uint_eq(1, responseSize2);cester_assert_uint_eq(0x38, ctrl1);cester_assert_uint_eq(0x18, ctrl2);cester_assert_uint_eq(0x38, ctrl3);cester_assert_uint_eq(0x18, ctrl4);cester_assert_uint_ge(ackTime, 500);cester_assert_uint_lt(ackTime, 7000);ramsyscall_printf("Basic seekP from 00:02:00 to 00:04:00: ack in %ius, complete in %ius\n", ackTime, completeTime);) CESTER_TEST(cdlSeekP2to71
 
 cester_assert_uint_eq (3, cause1)
 
 cester_assert_uint_eq (2, cause2)
 
 cester_assert_uint_eq (0xe0, cause2b)
 
 cester_assert_uint_eq (2, response1[0])
 
 cester_assert_uint_eq (1, responseSize1)
 
 cester_assert_uint_eq (2, response2[0])
 
 cester_assert_uint_eq (1, responseSize2)
 
 cester_assert_uint_eq (0x38, ctrl3)
 
 cester_assert_uint_eq (0x18, ctrl4)
 
 cester_assert_uint_ge (ackTime, 500)
 
 cester_assert_uint_lt (ackTime, 7000)
 
 cester_assert_uint_ge (completeTime, 1000000)
 
 ramsyscall_printf ("Basic seekP from 00:02:00 to 71:00:00: ack in %ius, complete in %ius\n", ackTime, completeTime)
 
 CESTER_TEST (cdlSeekP2to85, test_instance, int resetDone=resetCDRom();if(!resetDone) { cester_assert_true(resetDone);return;} int seekDone=seekPTo(0, 2, 0);if(!seekDone) { cester_assert_true(seekDone);return;} int setLocDone=setLoc(0x85, 0, 0);if(!setLocDone) { cester_assert_true(setLocDone);return;} initializeTime();while(updateTime()< 50000);initializeTime();CDROM_REG0=0;CDROM_REG1=CDL_SEEKP;uint32_t ackTime=waitCDRomIRQ();uint8_t cause1=ackCDRomCause();uint8_t ctrl1=CDROM_REG0 &~3;uint8_t response1[16];uint8_t responseSize1=readResponse(response1);uint8_t ctrl2=CDROM_REG0 &~3;CDROM_REG0=1;uint8_t cause1b=CDROM_REG3_UC;uint32_t errorTime=waitCDRomIRQ() - ackTime;uint8_t cause2=ackCDRomCause();uint8_t ctrl3=CDROM_REG0 &~3;uint8_t response2[16];uint8_t responseSize2=readResponse(response2);uint8_t ctrl4=CDROM_REG0 &~3;CDROM_REG0=1;uint8_t cause2b=CDROM_REG3_UC;cester_assert_uint_eq(3, cause1);cester_assert_uint_eq(5, cause2);cester_assert_uint_eq(0xe0, cause1b);cester_assert_uint_eq(0xe0, cause2b);cester_assert_uint_eq(2, response1[0]);cester_assert_uint_eq(1, responseSize1);cester_assert_uint_eq(6, response2[0]);cester_assert_uint_eq(16, response2[1]);cester_assert_uint_eq(2, responseSize2);cester_assert_uint_eq(0x38, ctrl1);cester_assert_uint_eq(0x18, ctrl2);cester_assert_uint_eq(0x38, ctrl3);cester_assert_uint_eq(0x18, ctrl4);cester_assert_uint_ge(ackTime, 500);cester_assert_uint_lt(ackTime, 7000);cester_assert_uint_ge(errorTime, 600000);ramsyscall_printf("Basic seekP from 00:02:00 to 85:00:00: ack in %ius, errored in %ius\n", ackTime, errorTime);) CESTER_TEST(cdlSeekP2to85AndNop
 
 while (CDROM_REG0 &0x80)
 
 cester_assert_uint_eq (3, cause1b)
 
 cester_assert_uint_eq (5, cause2)
 
 cester_assert_uint_eq (2, response1b[0])
 
 cester_assert_uint_eq (1, responseSize1b)
 
 cester_assert_uint_eq (6, response2[0])
 
 cester_assert_uint_eq (0x10, response2[1])
 
 cester_assert_uint_eq (2, responseSize2)
 
 cester_assert_uint_eq (0xb8, ctrl1)
 
 cester_assert_uint_eq (0x38, ctrl1b)
 
 cester_assert_uint_eq (0x98, ctrl2)
 
 cester_assert_uint_ge (ackTime2, 500)
 
 cester_assert_uint_lt (ackTime2, 7000)
 
 cester_assert_uint_ge (errorTime, 600000)
 
 ramsyscall_printf ("Basic seekP with Nop from 00:02:00 to 85:00:00: ack in %ius, errored in %ius\n", ackTime, errorTime)
 

Variables

 test_instance
 
int resetDone = resetCDRom()
 
int setLocDone = setLoc(0, 2, 0)
 
 CDROM_REG0 = 0
 
 CDROM_REG2 = 0
 
 CDROM_REG1 = CDL_SEEKP
 
uint32_t errorTime = waitCDRomIRQ()
 
uint8_t cause1 = ackCDRomCause()
 
uint8_t ctrl1 = CDROM_REG0 & ~3
 
uint8_t response1 [16]
 
uint8_t responseSize1 = readResponse(response1)
 
uint8_t ctrl2 = CDROM_REG0 & ~3
 
uint8_t cause1b = CDROM_REG3_UC
 
int seekDone = seekPTo(0, 2, 0)
 
uint32_t ackTime = waitCDRomIRQ()
 
uint32_t completeTime = waitCDRomIRQ() - ackTime
 
uint8_t cause2 = ackCDRomCause()
 
uint8_t ctrl3 = CDROM_REG0 & ~3
 
uint8_t response2 [16]
 
uint8_t responseSize2 = readResponse(response2)
 
uint8_t ctrl4 = CDROM_REG0 & ~3
 
uint8_t cause2b = CDROM_REG3_UC
 
uint32_t ackTime2 = waitCDRomIRQ()
 
uint8_t ctrl1b = CDROM_REG0 & ~3
 
uint8_t response1b [16]
 
uint8_t responseSize1b = readResponse(response1b)
 
uint8_t ctrl2b = CDROM_REG0 & ~3
 

Function Documentation

◆ cester_assert_uint_eq() [1/26]

cester_assert_uint_eq ( 0x10  ,
response2  [1] 
)

◆ cester_assert_uint_eq() [2/26]

cester_assert_uint_eq ( 0x18  ,
ctrl2   
)

◆ cester_assert_uint_eq() [3/26]

cester_assert_uint_eq ( 0x18  ,
ctrl4   
)

◆ cester_assert_uint_eq() [4/26]

cester_assert_uint_eq ( 0x20  ,
response1  [1] 
)

◆ cester_assert_uint_eq() [5/26]

cester_assert_uint_eq ( 0x38  ,
ctrl1   
)

◆ cester_assert_uint_eq() [6/26]

cester_assert_uint_eq ( 0x38  ,
ctrl1b   
)

◆ cester_assert_uint_eq() [7/26]

cester_assert_uint_eq ( 0x38  ,
ctrl3   
)

◆ cester_assert_uint_eq() [8/26]

cester_assert_uint_eq ( 0x98  ,
ctrl2   
)

◆ cester_assert_uint_eq() [9/26]

cester_assert_uint_eq ( 0xb8  ,
ctrl1   
)

◆ cester_assert_uint_eq() [10/26]

cester_assert_uint_eq ( 0xe0  ,
cause1b   
)

◆ cester_assert_uint_eq() [11/26]

cester_assert_uint_eq ( 0xe0  ,
cause2b   
)

◆ cester_assert_uint_eq() [12/26]

cester_assert_uint_eq ( 1  ,
responseSize1   
)

◆ cester_assert_uint_eq() [13/26]

cester_assert_uint_eq ( 1  ,
responseSize1b   
)

◆ cester_assert_uint_eq() [14/26]

cester_assert_uint_eq ( 1  ,
responseSize2   
)

◆ cester_assert_uint_eq() [15/26]

cester_assert_uint_eq ( 2  ,
cause2   
)

◆ cester_assert_uint_eq() [16/26]

cester_assert_uint_eq ( 2  ,
response1  [0] 
)

◆ cester_assert_uint_eq() [17/26]

cester_assert_uint_eq ( 2  ,
response1b  [0] 
)

◆ cester_assert_uint_eq() [18/26]

cester_assert_uint_eq ( 2  ,
response2  [0] 
)

◆ cester_assert_uint_eq() [19/26]

cester_assert_uint_eq ( 2  ,
responseSize1   
)

◆ cester_assert_uint_eq() [20/26]

cester_assert_uint_eq ( 2  ,
responseSize2   
)

◆ cester_assert_uint_eq() [21/26]

cester_assert_uint_eq ( 3  ,
cause1   
)

◆ cester_assert_uint_eq() [22/26]

cester_assert_uint_eq ( 3  ,
cause1b   
)

◆ cester_assert_uint_eq() [23/26]

cester_assert_uint_eq ( 3  ,
response1  [0] 
)

◆ cester_assert_uint_eq() [24/26]

cester_assert_uint_eq ( 5  ,
cause1   
)

◆ cester_assert_uint_eq() [25/26]

cester_assert_uint_eq ( 5  ,
cause2   
)

◆ cester_assert_uint_eq() [26/26]

cester_assert_uint_eq ( 6  ,
response2  [0] 
)

◆ cester_assert_uint_ge() [1/5]

cester_assert_uint_ge ( ackTime  ,
500   
)

◆ cester_assert_uint_ge() [2/5]

cester_assert_uint_ge ( ackTime2  ,
500   
)

◆ cester_assert_uint_ge() [3/5]

cester_assert_uint_ge ( completeTime  ,
1000000   
)

◆ cester_assert_uint_ge() [4/5]

cester_assert_uint_ge ( errorTime  ,
500   
)

◆ cester_assert_uint_ge() [5/5]

cester_assert_uint_ge ( errorTime  ,
600000   
)

◆ cester_assert_uint_lt() [1/3]

cester_assert_uint_lt ( ackTime  ,
7000   
)

◆ cester_assert_uint_lt() [2/3]

cester_assert_uint_lt ( ackTime2  ,
7000   
)

◆ cester_assert_uint_lt() [3/3]

cester_assert_uint_lt ( errorTime  ,
7000   
)

◆ CESTER_TEST() [1/3]

CESTER_TEST ( cdlSeekP  ,
test_instance  ,
int  resetDone = resetCDRom(); if (!resetDone) { cester_assert_true(resetDone); return; } int setLocDone = setLoc(0, 2, 0); if (!setLocDone) { cester_assert_true(setLocDone); return; } initializeTime();  while (updateTime() < 50000); initializeTime(); CDROM_REG0 = 0; CDROM_REG1 = CDL_SEEKP; uint32_t ackTime = waitCDRomIRQ(); uint8_t cause1 = ackCDRomCause(); uint8_t ctrl1 = CDROM_REG0 & ~3; uint8_t response1[16]; uint8_t responseSize1 = readResponse(response1); uint8_t ctrl2 = CDROM_REG0 & ~3; CDROM_REG0 = 1; uint8_t cause1b = CDROM_REG3_UC; uint32_t completeTime = waitCDRomIRQ() - ackTime; uint8_t cause2 = ackCDRomCause(); uint8_t ctrl3 = CDROM_REG0 & ~3; uint8_t response2[16]; uint8_t responseSize2 = readResponse(response2); uint8_t ctrl4 = CDROM_REG0 & ~3; CDROM_REG0 = 1; uint8_t cause2b = CDROM_REG3_UC; cester_assert_uint_eq(3, cause1); cester_assert_uint_eq(2, cause2); cester_assert_uint_eq(0xe0, cause1b); cester_assert_uint_eq(0xe0, cause2b); cester_assert_uint_eq(2, response1[0]); cester_assert_uint_eq(1, responseSize1); cester_assert_uint_eq(2, response2[0]); cester_assert_uint_eq(1, responseSize2); cester_assert_uint_eq(0x38, ctrl1); cester_assert_uint_eq(0x18, ctrl2); cester_assert_uint_eq(0x38, ctrl3); cester_assert_uint_eq(0x18, ctrl4); cester_assert_uint_ge(ackTime, 500); cester_assert_uint_lt(ackTime, 7000);    ramsyscall_printf("Basic seekP to 00:02:00: ack in %ius, complete in %ius\n", ackTime, completeTime); 
)

◆ CESTER_TEST() [2/3]

CESTER_TEST ( cdlSeekP2to4  ,
test_instance  ,
int  resetDone = resetCDRom(); if (!resetDone) { cester_assert_true(resetDone); return; } int seekDone = seekPTo(0, 2, 0); if (!seekDone) { cester_assert_true(seekDone); return; } int setLocDone = setLoc(0, 4, 0); if (!setLocDone) { cester_assert_true(setLocDone); return; } initializeTime();  while (updateTime() < 50000); initializeTime(); CDROM_REG0 = 0; CDROM_REG1 = CDL_SEEKP; uint32_t ackTime = waitCDRomIRQ(); uint8_t cause1 = ackCDRomCause(); uint8_t ctrl1 = CDROM_REG0 & ~3; uint8_t response1[16]; uint8_t responseSize1 = readResponse(response1); uint8_t ctrl2 = CDROM_REG0 & ~3; CDROM_REG0 = 1; uint8_t cause1b = CDROM_REG3_UC; uint32_t completeTime = waitCDRomIRQ() - ackTime; uint8_t cause2 = ackCDRomCause(); uint8_t ctrl3 = CDROM_REG0 & ~3; uint8_t response2[16]; uint8_t responseSize2 = readResponse(response2); uint8_t ctrl4 = CDROM_REG0 & ~3; CDROM_REG0 = 1; uint8_t cause2b = CDROM_REG3_UC; cester_assert_uint_eq(3, cause1); cester_assert_uint_eq(2, cause2); cester_assert_uint_eq(0xe0, cause1b); cester_assert_uint_eq(0xe0, cause2b); cester_assert_uint_eq(2, response1[0]); cester_assert_uint_eq(1, responseSize1); cester_assert_uint_eq(2, response2[0]); cester_assert_uint_eq(1, responseSize2); cester_assert_uint_eq(0x38, ctrl1); cester_assert_uint_eq(0x18, ctrl2); cester_assert_uint_eq(0x38, ctrl3); cester_assert_uint_eq(0x18, ctrl4); cester_assert_uint_ge(ackTime, 500); cester_assert_uint_lt(ackTime, 7000);    ramsyscall_printf("Basic seekP from 00:02:00 to 00:04:00: ack in %ius, complete in %ius\n", ackTime, completeTime); 
)

◆ CESTER_TEST() [3/3]

CESTER_TEST ( cdlSeekP2to85  ,
test_instance  ,
int  resetDone = resetCDRom(); if (!resetDone) { cester_assert_true(resetDone); return; } int seekDone = seekPTo(0, 2, 0); if (!seekDone) { cester_assert_true(seekDone); return; } int setLocDone = setLoc(0x85, 0, 0); if (!setLocDone) { cester_assert_true(setLocDone); return; } initializeTime();  while (updateTime() < 50000); initializeTime(); CDROM_REG0 = 0; CDROM_REG1 = CDL_SEEKP; uint32_t ackTime = waitCDRomIRQ(); uint8_t cause1 = ackCDRomCause(); uint8_t ctrl1 = CDROM_REG0 & ~3; uint8_t response1[16]; uint8_t responseSize1 = readResponse(response1); uint8_t ctrl2 = CDROM_REG0 & ~3; CDROM_REG0 = 1; uint8_t cause1b = CDROM_REG3_UC; uint32_t errorTime = waitCDRomIRQ() - ackTime; uint8_t cause2 = ackCDRomCause(); uint8_t ctrl3 = CDROM_REG0 & ~3; uint8_t response2[16]; uint8_t responseSize2 = readResponse(response2); uint8_t ctrl4 = CDROM_REG0 & ~3; CDROM_REG0 = 1; uint8_t cause2b = CDROM_REG3_UC; cester_assert_uint_eq(3, cause1); cester_assert_uint_eq(5, cause2); cester_assert_uint_eq(0xe0, cause1b); cester_assert_uint_eq(0xe0, cause2b); cester_assert_uint_eq(2, response1[0]); cester_assert_uint_eq(1, responseSize1); cester_assert_uint_eq(6, response2[0]); cester_assert_uint_eq(16, response2[1]); cester_assert_uint_eq(2, responseSize2); cester_assert_uint_eq(0x38, ctrl1); cester_assert_uint_eq(0x18, ctrl2); cester_assert_uint_eq(0x38, ctrl3); cester_assert_uint_eq(0x18, ctrl4); cester_assert_uint_ge(ackTime, 500); cester_assert_uint_lt(ackTime, 7000);     cester_assert_uint_ge(errorTime, 600000); ramsyscall_printf("Basic seekP from 00:02:00 to 85:00:00: ack in %ius, errored in %ius\n", ackTime, errorTime); 
)

◆ if()

if ( !  resetDone)

◆ initializeTime()

initializeTime ( )

◆ ramsyscall_printf() [1/3]

ramsyscall_printf ( "Basic seekP from 00:02:00 to 71:00:00: ack in %  ius,
complete in %ius\n"  ,
ackTime  ,
completeTime   
)

◆ ramsyscall_printf() [2/3]

ramsyscall_printf ( "Basic seekP with Nop from 00:02:00 to 85:00:00: ack in %  ius,
errored in %ius\n"  ,
ackTime  ,
errorTime   
)

◆ ramsyscall_printf() [3/3]

ramsyscall_printf ( "Too many args  seekP,
errored in %ius\n"  ,
errorTime   
)

◆ while() [1/2]

while ( CDROM_REG0 &  0x80)

◆ while() [2/2]

while ( )

Variable Documentation

◆ ackTime

uint32_t ackTime = waitCDRomIRQ()

◆ ackTime2

uint32_t ackTime2 = waitCDRomIRQ()

◆ cause1

uint8_t cause1 = ackCDRomCause()

◆ cause1b

uint8_t cause1b = CDROM_REG3_UC

◆ cause2

uint8_t cause2 = ackCDRomCause()

◆ cause2b

uint8_t cause2b = CDROM_REG3_UC

◆ CDROM_REG0

CDROM_REG0 = 0

◆ CDROM_REG1

CDROM_REG1 = CDL_SEEKP

◆ CDROM_REG2

CDROM_REG2 = 0

◆ completeTime

uint32_t completeTime = waitCDRomIRQ() - ackTime

◆ ctrl1

uint8_t ctrl1 = CDROM_REG0 & ~3

◆ ctrl1b

uint8_t ctrl1b = CDROM_REG0 & ~3

◆ ctrl2

uint8_t ctrl2 = CDROM_REG0 & ~3

◆ ctrl2b

uint8_t ctrl2b = CDROM_REG0 & ~3

◆ ctrl3

uint8_t ctrl3 = CDROM_REG0 & ~3

◆ ctrl4

uint8_t ctrl4 = CDROM_REG0 & ~3

◆ errorTime

uint32_t errorTime = waitCDRomIRQ()

◆ resetDone

int resetDone = resetCDRom()

◆ response1

uint8_t response1[16]

◆ response1b

uint8_t response1b[16]

◆ response2

uint8_t response2[16]

◆ responseSize1

uint8_t responseSize1 = readResponse(response1)

◆ responseSize1b

uint8_t responseSize1b = readResponse(response1b)

◆ responseSize2

uint8_t responseSize2 = readResponse(response2)

◆ seekDone

int seekDone = seekPTo(0, 2, 0)

◆ setLocDone

int setLocDone = setLoc(0, 2, 0)

◆ test_instance

test_instance