OSCR
Open Source Cartridge Reader
Loading...
Searching...
No Matches
ti99.h
1
2#pragma once
3#ifndef CRDB_TI99_H_
4# define CRDB_TI99_H_
5
6# include "config.h"
7
8# if HAS_TI99
9# include "common/CRDB.h"
10# include "cores/TI99.h"
11
12namespace OSCR::Databases
13{
14 using OSCR::Cores::TI99::crdbTI99Record;
15
17 : public OSCR::CRDB::GenericCartRecord<crdbTI99Record>
18 {
19 public:
20 void debug() const
21 {
22# if defined(ENABLE_CRDB_DEBUG)
23 OSCR::Serial::printLine(F(" ===== ROM DEBUG INFO ===== "));
24
25 OSCR::Serial::print(FS(OSCR::Strings::Labels::NAME));
26 OSCR::Serial::printLine(_data.name);
27
28 OSCR::Serial::print(FS(OSCR::Strings::Labels::CRCSum));
29 OSCR::Serial::printLine(_data.crc32);
30
31 OSCR::Serial::print(FS(OSCR::Strings::Labels::MAPPER));
32 OSCR::Serial::printLine(_data.mapper);
33
34 OSCR::Serial::print(FS(OSCR::Strings::Labels::SIZE));
35 OSCR::Serial::printLine(_data.size);
36
37 OSCR::Serial::print(FS(OSCR::Strings::Labels::MAPPER));
38 OSCR::Serial::printLine(_data.gmapper);
39
40 OSCR::Serial::print(FS(OSCR::Strings::Labels::SIZE));
41 OSCR::Serial::printLine(_data.gsize);
42
43 OSCR::Serial::printLine(F(" ========================== "));
44# endif /* ENABLE_CRDB_DEBUG */
45 }
46 };
47
48 class TI99 : public OSCR::CRDB::CRDB<TI99Record, CRDB_RECORD_SIZE_TI99>
49 {
50 using CRDB::CRDB;
51 public:
52 void nextRecord()
53 {
54 clearError();
55 readNum32(currentRecord->data()->crc32);
56 readNum16(&currentRecord->data()->mapper);
57 readNum16(&currentRecord->data()->size);
58 readNum16(&currentRecord->data()->gmapper);
59 readNum16(&currentRecord->data()->gsize);
60 readBytes(&currentRecord->data()->name, 100);
61 }
62 };
63}
64
65# endif /* HAS_TI99 */
66
67#endif /* CRDB_TI99_H_ */
#define F(str)
Definition CRDB.h:313
Definition CRDB.h:63
Definition ti99.h:49
Definition ti99.h:18