diff --git a/Machines/Commodore/1540/Commodore1540.cpp b/Machines/Commodore/1540/Commodore1540.cpp index 5fe054b7a..f53fa0527 100644 --- a/Machines/Commodore/1540/Commodore1540.cpp +++ b/Machines/Commodore/1540/Commodore1540.cpp @@ -29,7 +29,7 @@ unsigned int Machine::perform_bus_operation(CPU6502::BusOperation operation, uin return 1; } -void Machine::set_rom(uint8_t *rom) +void Machine::set_rom(const uint8_t *rom) { memcpy(_rom, rom, sizeof(_rom)); } diff --git a/Machines/Commodore/1540/Commodore1540.hpp b/Machines/Commodore/1540/Commodore1540.hpp index e0d28d248..1e5608986 100644 --- a/Machines/Commodore/1540/Commodore1540.hpp +++ b/Machines/Commodore/1540/Commodore1540.hpp @@ -21,7 +21,7 @@ class Machine: public: unsigned int perform_bus_operation(CPU6502::BusOperation operation, uint16_t address, uint8_t *value); - void set_rom(uint8_t *rom); + void set_rom(const uint8_t *rom); private: uint8_t _ram[0x800]; diff --git a/Machines/Commodore/Vic-20/Vic20.cpp b/Machines/Commodore/Vic-20/Vic20.cpp index ab9c61a20..ba463e594 100644 --- a/Machines/Commodore/Vic-20/Vic20.cpp +++ b/Machines/Commodore/Vic-20/Vic20.cpp @@ -158,6 +158,7 @@ void Machine::set_rom(ROMSlot slot, size_t length, const uint8_t *data) case Characters: target = _characterROM; max_length = 0x1000; break; case BASIC: target = _basicROM; break; case Drive: + if(_c1540) _c1540->set_rom(data); return; } diff --git a/OSBindings/Mac/Clock Signal/Documents/Vic20Document.swift b/OSBindings/Mac/Clock Signal/Documents/Vic20Document.swift index f4b647b09..bbf5ddaee 100644 --- a/OSBindings/Mac/Clock Signal/Documents/Vic20Document.swift +++ b/OSBindings/Mac/Clock Signal/Documents/Vic20Document.swift @@ -31,6 +31,10 @@ class Vic20Document: MachineDocument { vic20.setBASICROM(basic) vic20.setCharactersROM(characters) } + + if let drive = dataForResource("1540", ofType: "bin", inDirectory: "ROMImages/Commodore1540") { + vic20.setDriveROM(drive) + } } override class func autosavesInPlace() -> Bool {