MCPcopy Create free account
hub / github.com/BlitterStudio/amiberry / cdrom_command_thread

Function cdrom_command_thread

src/cdtv.cpp:526–698  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

524}
525
526static void cdrom_command_thread (uae_u8 b)
527{
528 uae_u8 *s;
529
530 cdrom_command_input[cdrom_command_cnt_in] = b;
531 cdrom_command_cnt_in++;
532 s = cdrom_command_input;
533
534 switch (cdrom_command_input[0])
535 {
536 case 0x00:
537 case 0x80:
538 if (cdrom_command_cnt_in == 2) {
539 cdrom_command_output[0] = 0xaa;
540 cdrom_command_output[1] = 0x55;
541 cdrom_command_accepted(2, s, &cdrom_command_cnt_in);
542 }
543 break;
544 case 0x01: /* seek */
545 if (cdrom_command_cnt_in == 7) {
546 cdrom_command_accepted (0, s, &cdrom_command_cnt_in);
547 cd_finished = 1;
548 if (currprefs.cd_speed)
549 sleep_millis (500);
550 activate_stch = 1;
551 }
552 break;
553 case 0x02: /* read */
554 if (cdrom_command_cnt_in == 7) {
555 read_sectors ((s[1] << 16) | (s[2] << 8) | (s[3] << 0), (s[4] << 8) | (s[5] << 0));
556 cdrom_command_accepted (0, s, &cdrom_command_cnt_in);
557 }
558 break;
559 case 0x04: /* motor on */
560 if (cdrom_command_cnt_in == 7) {
561 cd_motor = 1;
562 cdrom_command_accepted (0, s, &cdrom_command_cnt_in);
563 cd_finished = 1;
564 }
565 break;
566 case 0x05: /* motor off */
567 if (cdrom_command_cnt_in == 7) {
568 cd_motor = 0;
569 cdrom_command_accepted (0, s, &cdrom_command_cnt_in);
570 cd_finished = 1;
571 }
572 break;
573 case 0x09: /* play (lsn) */
574 case 0x0a: /* play (msf) */
575 if (cdrom_command_cnt_in == 7) {
576 cdrom_command_accepted (play_cd (cdrom_command_input), s, &cdrom_command_cnt_in);
577 }
578 break;
579 case 0x0b:
580 if (cdrom_command_cnt_in == 7) {
581 cdrom_command_accepted (play_cdtrack (cdrom_command_input), s, &cdrom_command_cnt_in);
582 }
583 break;

Callers 1

dev_threadFunction · 0.85

Calls 12

cdrom_command_acceptedFunction · 0.85
sleep_millisFunction · 0.85
read_sectorsFunction · 0.85
play_cdFunction · 0.85
play_cdtrackFunction · 0.85
cdrom_modesetFunction · 0.85
cdrom_subqFunction · 0.85
cdrom_infoFunction · 0.85
read_tocFunction · 0.85
pause_audioFunction · 0.85
ismediaFunction · 0.70
write_logFunction · 0.70

Tested by

no test coverage detected