Nugget
Bare-metal libraries and examples for the original PlayStation
Loading...
Searching...
No Matches
Functions | Variables
cdlsetloc.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 (cdlSetLoc, test_instances, int resetDone=resetCDRom();if(!resetDone) { cester_assert_true(resetDone);return;} initializeTime();CDROM_REG0=0;CDROM_REG2=0;CDROM_REG2=2;CDROM_REG2=0;CDROM_REG1=CDL_SETLOC;uint32_t ackTime=waitCDRomIRQ();uint8_t cause1=ackCDRomCause();uint8_t ctrl1=CDROM_REG0 &~3;uint8_t response[16];uint8_t responseSize=readResponse(response);uint8_t ctrl2=CDROM_REG0 &~3;CDROM_REG0=1;uint8_t cause1b=CDROM_REG3_UC;cester_assert_uint_eq(3, cause1);cester_assert_uint_eq(0xe0, cause1b);cester_assert_uint_eq(0x38, ctrl1);cester_assert_uint_eq(0x18, ctrl2);cester_assert_uint_eq(2, response[0]);cester_assert_uint_eq(1, responseSize);cester_assert_uint_ge(ackTime, 500);cester_assert_uint_lt(ackTime, 7000);ramsyscall_printf("Basic setloc to 00:02:00, ack in %ius\n", ackTime);) CESTER_TEST(cdlSetLocNoArgs
 
 if (!resetDone)
 
 initializeTime ()
 
 cester_assert_uint_eq (5, cause1)
 
 cester_assert_uint_eq (0xe0, cause1b)
 
 cester_assert_uint_eq (0x38, ctrl1)
 
 cester_assert_uint_eq (0x18, ctrl2)
 
 cester_assert_uint_eq (3, response[0])
 
 cester_assert_uint_eq (0x20, response[1])
 
 cester_assert_uint_eq (2, responseSize)
 
 cester_assert_uint_ge (errorTime, 500)
 
 cester_assert_uint_lt (errorTime, 7000)
 
 ramsyscall_printf ("Invalid setloc with no args, errored in %ius\n", errorTime)
 
 CESTER_TEST (cdlSetLocMultiple, test_instances, int resetDone=resetCDRom();uint8_t cause;if(!resetDone) { cester_assert_true(resetDone);return;} initializeTime();CDROM_REG0=0;CDROM_REG2=0;CDROM_REG2=2;CDROM_REG2=0;CDROM_REG1=CDL_SETLOC;uint32_t time1=waitCDRomIRQ();cause=ackCDRomCause();CDROM_REG1;if(cause !=3) { cester_assert_uint_eq(3, cause);return;} initializeTime();CDROM_REG0=0;CDROM_REG2=0x99;CDROM_REG2=0x59;CDROM_REG2=0x74;CDROM_REG1=CDL_SETLOC;uint32_t time2=waitCDRomIRQ();cause=ackCDRomCause();CDROM_REG1;if(cause !=3) { cester_assert_uint_eq(3, cause);return;} initializeTime();CDROM_REG0=0;CDROM_REG2=0x50;CDROM_REG2=0;CDROM_REG2=0;CDROM_REG1=CDL_SETLOC;uint32_t time3=waitCDRomIRQ();cause=ackCDRomCause();CDROM_REG1;if(cause !=3) { cester_assert_uint_eq(3, cause);return;} cester_assert_uint_ge(time1, 500);cester_assert_uint_lt(time1, 7000);cester_assert_uint_ge(time2, 500);cester_assert_uint_lt(time2, 7000);cester_assert_uint_ge(time3, 500);cester_assert_uint_lt(time3, 7000);ramsyscall_printf("Multiple setloc to 00:02:00, complete in %ius, %ius, %ius\n", time1, time2, time3);) CESTER_TEST(cdlSetLocInvalid1
 
 cester_assert_uint_eq (0x10, response[1])
 
 ramsyscall_printf ("Invalid setloc to 00:02:2a, errored in %ius\n", errorTime)
 
 CESTER_TEST (cdlSetLocInvalid2, test_instances, int resetDone=resetCDRom();if(!resetDone) { cester_assert_true(resetDone);return;} initializeTime();CDROM_REG0=0;CDROM_REG2=0;CDROM_REG2=2;CDROM_REG2=0x79;CDROM_REG1=CDL_SETLOC;uint32_t errorTime=waitCDRomIRQ();uint8_t cause1=ackCDRomCause();uint8_t ctrl1=CDROM_REG0 &~3;uint8_t response[16];uint8_t responseSize=readResponse(response);uint8_t ctrl2=CDROM_REG0 &~3;CDROM_REG0=1;uint8_t cause1b=CDROM_REG3_UC;cester_assert_uint_eq(5, cause1);cester_assert_uint_eq(0xe0, cause1b);cester_assert_uint_eq(0x38, ctrl1);cester_assert_uint_eq(0x18, ctrl2);cester_assert_uint_eq(3, response[0]);cester_assert_uint_eq(0x10, response[1]);cester_assert_uint_eq(2, responseSize);cester_assert_uint_ge(errorTime, 500);cester_assert_uint_lt(errorTime, 7000);ramsyscall_printf("Invalid setloc to 00:02:79, errored in %ius\n", errorTime);) CESTER_TEST(cdlSetLocTooManyArgs
 
 ramsyscall_printf ("Invalid setloc with too many args, errored in %ius\n", errorTime)
 

Variables

 test_instances
 
int resetDone = resetCDRom()
 
 CDROM_REG0 = 0
 
 CDROM_REG1 = CDL_SETLOC
 
uint32_t errorTime = waitCDRomIRQ()
 
uint8_t cause1 = ackCDRomCause()
 
uint8_t ctrl1 = CDROM_REG0 & ~3
 
uint8_t response [16]
 
uint8_t responseSize = readResponse(response)
 
uint8_t ctrl2 = CDROM_REG0 & ~3
 
uint8_t cause1b = CDROM_REG3_UC
 
 CDROM_REG2 = 0
 

Function Documentation

◆ cester_assert_uint_eq() [1/8]

cester_assert_uint_eq ( 0x10  ,
response  [1] 
)

◆ cester_assert_uint_eq() [2/8]

cester_assert_uint_eq ( 0x18  ,
ctrl2   
)

◆ cester_assert_uint_eq() [3/8]

cester_assert_uint_eq ( 0x20  ,
response  [1] 
)

◆ cester_assert_uint_eq() [4/8]

cester_assert_uint_eq ( 0x38  ,
ctrl1   
)

◆ cester_assert_uint_eq() [5/8]

cester_assert_uint_eq ( 0xe0  ,
cause1b   
)

◆ cester_assert_uint_eq() [6/8]

cester_assert_uint_eq ( 2  ,
responseSize   
)

◆ cester_assert_uint_eq() [7/8]

cester_assert_uint_eq ( 3  ,
response  [0] 
)

◆ cester_assert_uint_eq() [8/8]

cester_assert_uint_eq ( 5  ,
cause1   
)

◆ cester_assert_uint_ge()

cester_assert_uint_ge ( errorTime  ,
500   
)

◆ cester_assert_uint_lt()

cester_assert_uint_lt ( errorTime  ,
7000   
)

◆ CESTER_TEST() [1/3]

CESTER_TEST ( cdlSetLoc  ,
test_instances  ,
int  resetDone = resetCDRom(); if (!resetDone) { cester_assert_true(resetDone); return; } initializeTime(); CDROM_REG0 = 0; CDROM_REG2 = 0; CDROM_REG2 = 2; CDROM_REG2 = 0; CDROM_REG1 = CDL_SETLOC; uint32_t ackTime = waitCDRomIRQ(); uint8_t cause1 = ackCDRomCause(); uint8_t ctrl1 = CDROM_REG0 & ~3; uint8_t response[16]; uint8_t responseSize = readResponse(response); uint8_t ctrl2 = CDROM_REG0 & ~3; CDROM_REG0 = 1; uint8_t cause1b = CDROM_REG3_UC; cester_assert_uint_eq(3, cause1); cester_assert_uint_eq(0xe0, cause1b); cester_assert_uint_eq(0x38, ctrl1); cester_assert_uint_eq(0x18, ctrl2); cester_assert_uint_eq(2, response[0]); cester_assert_uint_eq(1, responseSize);   cester_assert_uint_ge(ackTime, 500); cester_assert_uint_lt(ackTime, 7000); ramsyscall_printf("Basic setloc to 00:02:00, ack in %ius\n", ackTime); 
)

◆ CESTER_TEST() [2/3]

CESTER_TEST ( cdlSetLocInvalid2  ,
test_instances  ,
int  resetDone = resetCDRom(); if (!resetDone) { cester_assert_true(resetDone); return; } initializeTime(); CDROM_REG0 = 0; CDROM_REG2 = 0; CDROM_REG2 = 2; CDROM_REG2 = 0x79; CDROM_REG1 = CDL_SETLOC; uint32_t errorTime = waitCDRomIRQ(); uint8_t cause1 = ackCDRomCause(); uint8_t ctrl1 = CDROM_REG0 & ~3; uint8_t response[16]; uint8_t responseSize = readResponse(response); uint8_t ctrl2 = CDROM_REG0 & ~3; CDROM_REG0 = 1; uint8_t cause1b = CDROM_REG3_UC; cester_assert_uint_eq(5, cause1); cester_assert_uint_eq(0xe0, cause1b); cester_assert_uint_eq(0x38, ctrl1); cester_assert_uint_eq(0x18, ctrl2); cester_assert_uint_eq(3, response[0]); cester_assert_uint_eq(0x10, response[1]); cester_assert_uint_eq(2, responseSize); cester_assert_uint_ge(errorTime, 500); cester_assert_uint_lt(errorTime, 7000); ramsyscall_printf("Invalid setloc to 00:02:79, errored in %ius\n", errorTime); 
)

◆ CESTER_TEST() [3/3]

CESTER_TEST ( cdlSetLocMultiple  ,
test_instances  ,
int  resetDone = resetCDRom(); uint8_t cause; if (!resetDone) { cester_assert_true(resetDone); return; } initializeTime(); CDROM_REG0 = 0; CDROM_REG2 = 0; CDROM_REG2 = 2; CDROM_REG2 = 0; CDROM_REG1 = CDL_SETLOC; uint32_t time1 = waitCDRomIRQ(); cause = ackCDRomCause(); CDROM_REG1; if (cause != 3) { cester_assert_uint_eq(3, cause); return; } initializeTime(); CDROM_REG0 = 0; CDROM_REG2 = 0x99; CDROM_REG2 = 0x59; CDROM_REG2 = 0x74; CDROM_REG1 = CDL_SETLOC; uint32_t time2 = waitCDRomIRQ(); cause = ackCDRomCause(); CDROM_REG1; if (cause != 3) { cester_assert_uint_eq(3, cause); return; } initializeTime(); CDROM_REG0 = 0; CDROM_REG2 = 0x50; CDROM_REG2 = 0; CDROM_REG2 = 0; CDROM_REG1 = CDL_SETLOC; uint32_t time3 = waitCDRomIRQ(); cause = ackCDRomCause(); CDROM_REG1; if (cause != 3) { cester_assert_uint_eq(3, cause); return; }     cester_assert_uint_ge(time1, 500); cester_assert_uint_lt(time1, 7000); cester_assert_uint_ge(time2, 500); cester_assert_uint_lt(time2, 7000); cester_assert_uint_ge(time3, 500); cester_assert_uint_lt(time3, 7000); ramsyscall_printf("Multiple setloc to 00:02:00, complete in %ius, %ius, %ius\n", time1, time2, time3); 
)

◆ if()

if ( !  resetDone)

◆ initializeTime()

initializeTime ( )

◆ ramsyscall_printf() [1/3]

ramsyscall_printf ( "Invalid setloc to 00:02:2a  ,
errored in %ius\n"  ,
errorTime   
)

◆ ramsyscall_printf() [2/3]

ramsyscall_printf ( "Invalid setloc with no  args,
errored in %ius\n"  ,
errorTime   
)

◆ ramsyscall_printf() [3/3]

ramsyscall_printf ( "Invalid setloc with too many  args,
errored in %ius\n"  ,
errorTime   
)

Variable Documentation

◆ cause1

uint8_t cause1 = ackCDRomCause()

◆ cause1b

uint8_t cause1b = CDROM_REG3_UC

◆ CDROM_REG0

CDROM_REG0 = 0

◆ CDROM_REG1

CDROM_REG1 = CDL_SETLOC

◆ CDROM_REG2

CDROM_REG2 = 0

◆ ctrl1

uint8_t ctrl1 = CDROM_REG0 & ~3

◆ ctrl2

uint8_t ctrl2 = CDROM_REG0 & ~3

◆ errorTime

uint32_t errorTime = waitCDRomIRQ()

◆ resetDone

int resetDone = resetCDRom()

◆ response

uint8_t response[16]

◆ responseSize

uint8_t responseSize = readResponse(response)

◆ test_instances

test_instances