mirror of
https://github.com/TomHarte/CLK.git
synced 2024-12-25 18:30:21 +00:00
Ensured that the ROM gets installed. So next for some video action?
This commit is contained in:
parent
f7d2e988b6
commit
e6937d8003
@ -19,8 +19,25 @@ void Machine::configure_as_target(const StaticAnalyser::Target &target)
|
||||
{
|
||||
}
|
||||
|
||||
void Machine::set_rom(std::vector<uint8_t> data)
|
||||
{
|
||||
memcpy(_rom, data.data(), std::min(data.size(), sizeof(_rom)));
|
||||
}
|
||||
|
||||
unsigned int Machine::perform_bus_operation(CPU6502::BusOperation operation, uint16_t address, uint8_t *value)
|
||||
{
|
||||
if(address > 0xc000)
|
||||
{
|
||||
if(isReadOperation(operation)) *value = _rom[address&16383];
|
||||
}
|
||||
else
|
||||
{
|
||||
if(isReadOperation(operation))
|
||||
*value = _ram[address];
|
||||
else
|
||||
_ram[address] = *value;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -29,6 +29,8 @@ class Machine:
|
||||
public:
|
||||
Machine();
|
||||
|
||||
void set_rom(std::vector<uint8_t> data);
|
||||
|
||||
// to satisfy ConfigurationTarget::Machine
|
||||
void configure_as_target(const StaticAnalyser::Target &target);
|
||||
|
||||
@ -44,6 +46,9 @@ class Machine:
|
||||
virtual void run_for_cycles(int number_of_cycles) { CPU6502::Processor<Machine>::run_for_cycles(number_of_cycles); }
|
||||
|
||||
private:
|
||||
// RAM and ROM
|
||||
uint8_t _ram[65536], _rom[16384];
|
||||
|
||||
// Outputs
|
||||
std::shared_ptr<Outputs::CRT::CRT> _crt;
|
||||
};
|
||||
|
@ -19,6 +19,21 @@
|
||||
Oric::Machine _oric;
|
||||
}
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
if(self)
|
||||
{
|
||||
NSData *rom = [self rom:@"basic10"];
|
||||
if(rom) _oric.set_rom(rom.stdVector8);
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSData *)rom:(NSString *)name
|
||||
{
|
||||
return [[NSBundle mainBundle] dataForResource:name withExtension:@"rom" subdirectory:@"ROMImages/Oric"];
|
||||
}
|
||||
|
||||
- (CRTMachine::Machine * const)machine {
|
||||
return &_oric;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user