This successfully reads the first 17 sectors of the first data track of a CD.
44 lines
916 B
C++
44 lines
916 B
C++
#include <cstdint>
|
|
|
|
namespace gdrom {
|
|
|
|
namespace status {
|
|
|
|
constexpr uint8_t bsy = (1 << 7);
|
|
constexpr uint8_t drdy = (1 << 6);
|
|
constexpr uint8_t df = (1 << 5);
|
|
constexpr uint8_t dsc = (1 << 4);
|
|
constexpr uint8_t drq = (1 << 3);
|
|
constexpr uint8_t corr = (1 << 2);
|
|
constexpr uint8_t check = (1 << 0);
|
|
|
|
}
|
|
|
|
namespace interrupt_reason {
|
|
|
|
constexpr uint8_t io = (1 << 1);
|
|
constexpr uint8_t cod = (1 << 0);
|
|
|
|
}
|
|
|
|
namespace command {
|
|
|
|
constexpr uint8_t test_unit = 0x00;
|
|
constexpr uint8_t req_stat = 0x10;
|
|
constexpr uint8_t req_mode = 0x11;
|
|
constexpr uint8_t set_mode = 0x12;
|
|
constexpr uint8_t req_error = 0x13;
|
|
constexpr uint8_t get_toc = 0x14;
|
|
constexpr uint8_t req_ses = 0x15;
|
|
constexpr uint8_t cd_open = 0x16;
|
|
constexpr uint8_t cd_play = 0x20;
|
|
constexpr uint8_t cd_seek = 0x21;
|
|
constexpr uint8_t cd_scan = 0x22;
|
|
constexpr uint8_t cd_read = 0x30;
|
|
constexpr uint8_t cd_read2 = 0x31;
|
|
constexpr uint8_t get_scd = 0x40;
|
|
|
|
}
|
|
|
|
}
|