- if (display->render) {
- lem1802_pixbuf_refresh_full_(display, vm->ram);
- display->render(display->renderer_data, display->pixbuf, PIX_X, PIX_Y);
+ switch (display->cycle_state_) {
+ case CYCLE_IDLE:
+ break;
+
+ case CYCLE_COPY_TO_RAM:
+ TRACE("%s>> copy_to_ram words:%zu src:%p dst_addr:0x%04x",
+ __func__,
+ display->cycle_state_copy_words_,
+ VOIDP(display->cycle_state_copy_src_ptr_),
+ display->cycle_state_copy_dst_addr_);
+ vm->ram[display->cycle_state_copy_dst_addr_] = *display->cycle_state_copy_src_ptr_;
+ display->cycle_state_copy_dst_addr_++;
+ display->cycle_state_copy_src_ptr_++;
+ display->cycle_state_copy_words_--;
+ if (display->cycle_state_copy_words_ == 0) {
+ display->cycle_state_ = CYCLE_IDLE;
+ }
+ break;
+ }
+
+ if (display->cycles_until_active_) {
+ display->cycles_until_active_--;
+ if (display->cycles_until_active_ == 0) {
+ TRACE("%s>> display now active", __func__);
+ }