diff --git a/hash/coco_cart.xml b/hash/coco_cart.xml index dca0227e128..b0aa2927bac 100644 --- a/hash/coco_cart.xml +++ b/hash/coco_cart.xml @@ -475,6 +475,7 @@ Compiled by K1W1 and Cowering (from GoodCoCo) Tandy + @@ -552,6 +553,7 @@ Compiled by K1W1 and Cowering (from GoodCoCo) Tandy + @@ -976,6 +978,7 @@ Compiled by K1W1 and Cowering (from GoodCoCo) + diff --git a/src/devices/bus/coco/coco_dcmodem.cpp b/src/devices/bus/coco/coco_dcmodem.cpp index 693b2457e51..bebd6c275d5 100644 --- a/src/devices/bus/coco/coco_dcmodem.cpp +++ b/src/devices/bus/coco/coco_dcmodem.cpp @@ -70,6 +70,11 @@ namespace return memregion("eprom")->base(); } + virtual memory_region* get_cart_memregion() override + { + return memregion("eprom"); + } + private: // internal state required_device m_uart; diff --git a/src/devices/bus/coco/coco_orch90.cpp b/src/devices/bus/coco/coco_orch90.cpp index 4023c7f2a0b..2ad8afdaae1 100644 --- a/src/devices/bus/coco/coco_orch90.cpp +++ b/src/devices/bus/coco/coco_orch90.cpp @@ -92,6 +92,11 @@ namespace return memregion("eprom")->base(); } + virtual memory_region* get_cart_memregion() override + { + return memregion("eprom"); + } + private: WRITE8_MEMBER(write_left) { m_ldac->write(data); } WRITE8_MEMBER(write_right) { m_rdac->write(data); } diff --git a/src/devices/bus/coco/coco_rs232.cpp b/src/devices/bus/coco/coco_rs232.cpp index e058a9d3f3c..5a124986792 100644 --- a/src/devices/bus/coco/coco_rs232.cpp +++ b/src/devices/bus/coco/coco_rs232.cpp @@ -68,6 +68,11 @@ namespace return memregion("eprom")->base(); } + virtual memory_region* get_cart_memregion() override + { + return memregion("eprom"); + } + private: // internal state required_device m_uart; diff --git a/src/devices/bus/coco/cococart.cpp b/src/devices/bus/coco/cococart.cpp index 93045e85230..6bf6360d24b 100644 --- a/src/devices/bus/coco/cococart.cpp +++ b/src/devices/bus/coco/cococart.cpp @@ -412,11 +412,11 @@ image_init_result cococart_slot_device::call_load() { memory_region *cart_mem = m_cart->get_cart_memregion(); uint8_t *base = cart_mem->base(); - offs_t read_length, cart_legnth = cart_mem->bytes();; + offs_t read_length, cart_length = cart_mem->bytes();; if (!loaded_through_softlist()) { - read_length = fread(base, cart_legnth); + read_length = fread(base, cart_length); } else { @@ -424,7 +424,7 @@ image_init_result cococart_slot_device::call_load() memcpy(base, get_software_region("rom"), read_length); } - while (read_length < cart_legnth) + while (read_length < cart_length) { offs_t len = std::min(read_length, m_cart->get_cart_size() - read_length); memcpy(base + read_length, base, len);