Mercurial > repos > blastem
comparison menu.c @ 2499:d74d3998482c
Make some progress on compiling full emulator with new 68K core
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 30 Apr 2024 00:02:14 -0700 |
parents | bdd83b47d78a |
children |
comparison
equal
deleted
inserted
replaced
2498:dffda054d218 | 2499:d74d3998482c |
---|---|
48 char *src = NULL; | 48 char *src = NULL; |
49 for (cur = buf; cur < buf+maxchars; cur+=2, guest_addr+=2, src+=2) | 49 for (cur = buf; cur < buf+maxchars; cur+=2, guest_addr+=2, src+=2) |
50 { | 50 { |
51 if (!src || !(guest_addr & 0xFFFF)) { | 51 if (!src || !(guest_addr & 0xFFFF)) { |
52 //we may have walked off the end of a memory block, get a fresh native pointer | 52 //we may have walked off the end of a memory block, get a fresh native pointer |
53 src = get_native_pointer(guest_addr, (void **)m68k->mem_pointers, &m68k->options->gen); | 53 src = get_native_pointer(guest_addr, (void **)m68k->mem_pointers, &m68k->opts->gen); |
54 if (!src) { | 54 if (!src) { |
55 break; | 55 break; |
56 } | 56 } |
57 } | 57 } |
58 *cur = src[1]; | 58 *cur = src[1]; |
70 char *dst = NULL; | 70 char *dst = NULL; |
71 for (char *cur = src; cur < src+tocopy; cur+=2, guest_addr+=2, dst+=2) | 71 for (char *cur = src; cur < src+tocopy; cur+=2, guest_addr+=2, dst+=2) |
72 { | 72 { |
73 if (!dst || !(guest_addr & 0xFFFF)) { | 73 if (!dst || !(guest_addr & 0xFFFF)) { |
74 //we may have walked off the end of a memory block, get a fresh native pointer | 74 //we may have walked off the end of a memory block, get a fresh native pointer |
75 dst = get_native_pointer(guest_addr, (void **)m68k->mem_pointers, &m68k->options->gen); | 75 dst = get_native_pointer(guest_addr, (void **)m68k->mem_pointers, &m68k->opts->gen); |
76 if (!dst) { | 76 if (!dst) { |
77 break; | 77 break; |
78 } | 78 } |
79 } | 79 } |
80 dst[1] = *cur; | 80 dst[1] = *cur; |
84 | 84 |
85 #define SAVE_INFO_BUFFER_SIZE (11*40) | 85 #define SAVE_INFO_BUFFER_SIZE (11*40) |
86 | 86 |
87 uint32_t copy_dir_entry_to_guest(uint32_t dst, m68k_context *m68k, char *name, uint8_t is_dir) | 87 uint32_t copy_dir_entry_to_guest(uint32_t dst, m68k_context *m68k, char *name, uint8_t is_dir) |
88 { | 88 { |
89 uint8_t *dest = get_native_pointer(dst, (void **)m68k->mem_pointers, &m68k->options->gen); | 89 uint8_t *dest = get_native_pointer(dst, (void **)m68k->mem_pointers, &m68k->opts->gen); |
90 if (!dest) { | 90 if (!dest) { |
91 return 0; | 91 return 0; |
92 } | 92 } |
93 *(dest++) = is_dir; | 93 *(dest++) = is_dir; |
94 *(dest++) = 1; | 94 *(dest++) = 1; |
104 term = 1; | 104 term = 1; |
105 } | 105 } |
106 dst += 2; | 106 dst += 2; |
107 if (!(dst & 0xFFFF)) { | 107 if (!(dst & 0xFFFF)) { |
108 //we may have walked off the end of a memory block, get a fresh native pointer | 108 //we may have walked off the end of a memory block, get a fresh native pointer |
109 dest = get_native_pointer(dst, (void **)m68k->mem_pointers, &m68k->options->gen); | 109 dest = get_native_pointer(dst, (void **)m68k->mem_pointers, &m68k->opts->gen); |
110 if (!dest) { | 110 if (!dest) { |
111 break; | 111 break; |
112 } | 112 } |
113 } else { | 113 } else { |
114 dest += 2; | 114 dest += 2; |
156 } | 156 } |
157 dst = copy_dir_entry_to_guest(dst, m68k, entries[i].name, entries[i].is_dir); | 157 dst = copy_dir_entry_to_guest(dst, m68k, entries[i].name, entries[i].is_dir); |
158 } | 158 } |
159 free(ext_list); | 159 free(ext_list); |
160 //terminate list | 160 //terminate list |
161 uint8_t *dest = get_native_pointer(dst, (void **)m68k->mem_pointers, &m68k->options->gen); | 161 uint8_t *dest = get_native_pointer(dst, (void **)m68k->mem_pointers, &m68k->opts->gen); |
162 if (dest) { | 162 if (dest) { |
163 *dest = dest[1] = 0; | 163 *dest = dest[1] = 0; |
164 } | 164 } |
165 free_dir_list(entries, num_entries); | 165 free_dir_list(entries, num_entries); |
166 break; | 166 break; |
254 } else { | 254 } else { |
255 menu->latch = value; | 255 menu->latch = value; |
256 menu->state = 1; | 256 menu->state = 1; |
257 } | 257 } |
258 if (m68k->should_return) { | 258 if (m68k->should_return) { |
259 m68k->target_cycle = m68k->current_cycle; | 259 m68k->target_cycle = m68k->cycles; |
260 } | 260 } |
261 | 261 |
262 return context; | 262 return context; |
263 } | 263 } |