1 /* snap_accessors.c: simple accessor functions for libspectrum_snap
2 Copyright (c) 2003-2009 Philip Kendall
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License along
15 with this program; if not, write to the Free Software Foundation, Inc.,
16 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
18 Author contact information:
19
20 E-mail: philip-fuse@shadowmagic.org.uk
21
22 */
23
24 /* NB: this file is autogenerated from snap_accessors.txt by accessor.pl */
25
26 #include <config.h>
27
28 #include "internals.h"
29
30 struct libspectrum_snap {
31
32 /* Which machine are we using here? */
33
34 libspectrum_machine machine;
35
36 /* Registers and the like */
37
38 libspectrum_byte a , f ; libspectrum_word bc , de , hl ;
39 libspectrum_byte a_, f_; libspectrum_word bc_, de_, hl_;
40
41 libspectrum_word ix, iy; libspectrum_byte i, r;
42 libspectrum_word sp, pc, memptr;
43
44 libspectrum_byte iff1, iff2, im;
45
46 int halted; /* Is the Z80 currently HALTed? */
47 int last_instruction_ei; /* Was the last instruction an EI? */
48 int last_instruction_set_f; /* Did the last instruction set Flags? */
49
50 /* Custom ROM */
51 int custom_rom;
52 size_t custom_rom_pages;
53 libspectrum_byte* roms[ 4 ];
54 size_t rom_length[ 4 ];
55
56 /* RAM */
57
58 libspectrum_byte *pages[ SNAPSHOT_RAM_PAGES ];
59
60 /* Data from .slt files */
61
62 libspectrum_byte *slt[ SNAPSHOT_SLT_PAGES ]; /* Level data */
63 size_t slt_length[ SNAPSHOT_SLT_PAGES ]; /* Length of each level */
64
65 libspectrum_byte *slt_screen; /* Loading screen */
66 int slt_screen_level; /* The id of the loading screen. Not used
67 for anything AFAIK, but I'll copy it
68 around just in case */
69
70 /* Peripheral status */
71
72 libspectrum_byte out_ula; libspectrum_dword tstates;
73
74 libspectrum_byte out_128_memoryport;
75
76 libspectrum_byte out_ay_registerport, ay_registers[16];
77
78 /* Used for both the +3's and the Scorpion's 0x1ffd port */
79 libspectrum_byte out_plus3_memoryport;
80
81 /* Timex-specific bits */
82 libspectrum_byte out_scld_hsr, out_scld_dec;
83
84 /* Interface 1 status */
85 int interface1_active;
86 int interface1_paged;
87 int interface1_drive_count;
88 int interface1_custom_rom;
89 libspectrum_byte* interface1_rom[1];
90 size_t interface1_rom_length[1]; /* Length of the ROM */
91
92 /* Betadisk status */
93 int beta_active;
94 int beta_paged;
95 int beta_autoboot;
96 int beta_drive_count;
97 int beta_custom_rom;
98 int beta_direction; /* FDC seek direction:
99 zero => towards lower cylinders (hubwards)
100 non-zero => towards higher cylinders (rimwards) */
101 libspectrum_byte beta_system, beta_track, beta_sector, beta_data,
102 beta_status;
103 libspectrum_byte *beta_rom[1];
104
105 /* Plus D status */
106 int plusd_active;
107 int plusd_paged;
108 int plusd_drive_count;
109 int plusd_custom_rom;
110 int plusd_direction; /* FDC seek direction:
111 zero => towards lower cylinders (hubwards)
112 non-zero => towards higher cylinders (rimwards) */
113 libspectrum_byte plusd_control, plusd_track, plusd_sector, plusd_data,
114 plusd_status;
115 libspectrum_byte *plusd_rom[1];
116 libspectrum_byte *plusd_ram[1];
117
118 /* Opus Discovery status */
119 int opus_active;
120 int opus_paged;
121 int opus_drive_count;
122 int opus_custom_rom;
123 int opus_direction; /* FDC seek direction:
124 zero => towards lower cylinders (hubwards)
125 non-zero => towards higher cylinders (rimwards) */
126 libspectrum_byte opus_track, opus_sector, opus_data, opus_status;
127 libspectrum_byte opus_data_reg_a, opus_data_dir_a, opus_control_a;
128 libspectrum_byte opus_data_reg_b, opus_data_dir_b, opus_control_b;
129 libspectrum_byte *opus_rom[1];
130 libspectrum_byte *opus_ram[1];
131
132 /* ZXATASP status */
133 int zxatasp_active;
134 int zxatasp_upload;
135 int zxatasp_writeprotect;
136 libspectrum_byte zxatasp_port_a, zxatasp_port_b, zxatasp_port_c;
137 libspectrum_byte zxatasp_control;
138 size_t zxatasp_pages;
139 size_t zxatasp_current_page;
140 libspectrum_byte *zxatasp_ram[ SNAPSHOT_ZXATASP_PAGES ];
141
142 /* ZXCF status */
143 int zxcf_active;
144 int zxcf_upload;
145 libspectrum_byte zxcf_memctl;
146 size_t zxcf_pages;
147 libspectrum_byte *zxcf_ram[ SNAPSHOT_ZXCF_PAGES ];
148
149 /* Interface 2 cartridge */
150 int interface2_active;
151 libspectrum_byte *interface2_rom[1];
152
153 /* Timex Dock cartridge */
154 int dock_active;
155 libspectrum_byte exrom_ram[ SNAPSHOT_DOCK_EXROM_PAGES ];
156 libspectrum_byte *exrom_cart[ SNAPSHOT_DOCK_EXROM_PAGES ];
157 libspectrum_byte dock_ram[ SNAPSHOT_DOCK_EXROM_PAGES ];
158 libspectrum_byte *dock_cart[ SNAPSHOT_DOCK_EXROM_PAGES ];
159
160 /* Keyboard emulation */
161 int issue2;
162
163 /* Joystick emulation */
164 size_t joystick_active_count;
165 libspectrum_joystick joystick_list[ SNAPSHOT_JOYSTICKS ];
166 int joystick_inputs[ SNAPSHOT_JOYSTICKS ];
167
168 /* Kempston mouse status */
169 int kempston_mouse_active;
170
171 /* Simple 8-bit IDE status */
172 int simpleide_active;
173
174 /* DivIDE status */
175 int divide_active;
176 int divide_eprom_writeprotect;
177 int divide_paged;
178 libspectrum_byte divide_control;
179 size_t divide_pages;
180 libspectrum_byte* divide_eprom[ 1 ];
181 libspectrum_byte* divide_ram[ SNAPSHOT_DIVIDE_PAGES ];
182
183 /* Fuller box status */
184 int fuller_box_active;
185
186 /* Melodik status */
187 int melodik_active;
188
189 /* Cheetah SpecDrum status */
190 int specdrum_active;
191 libspectrum_signed_byte specdrum_dac;
192
193 /* Spectranet status */
194 int spectranet_active;
195 int spectranet_paged;
196 int spectranet_paged_via_io;
197 int spectranet_nmi_flipflop;
198 int spectranet_programmable_trap_active;
199 int spectranet_programmable_trap_msb;
200 int spectranet_all_traps_disabled;
201 int spectranet_rst8_trap_disabled;
202 int spectranet_deny_downstream_a15;
203 int spectranet_page_a;
204 int spectranet_page_b;
205 libspectrum_word spectranet_programmable_trap;
206 libspectrum_byte *spectranet_w5100[1];
207 libspectrum_byte *spectranet_flash[1];
208 libspectrum_byte *spectranet_ram[1];
209
210 /* Timings emulation */
211 int late_timings;
212
213 /* Printer emulation */
214 int zx_printer_active;
215 };
216
217 /* Initialise a libspectrum_snap structure */
218 libspectrum_snap*
libspectrum_snap_alloc_internal(void)219 libspectrum_snap_alloc_internal( void )
220 {
221 return libspectrum_malloc( sizeof( libspectrum_snap ) );
222 }
223
224 libspectrum_machine
libspectrum_snap_machine(libspectrum_snap * snap)225 libspectrum_snap_machine( libspectrum_snap *snap )
226 {
227 return snap->machine;
228 }
229
230 void
libspectrum_snap_set_machine(libspectrum_snap * snap,libspectrum_machine machine)231 libspectrum_snap_set_machine( libspectrum_snap *snap, libspectrum_machine machine )
232 {
233 snap->machine = machine;
234 }
235
236 libspectrum_byte
libspectrum_snap_a(libspectrum_snap * snap)237 libspectrum_snap_a( libspectrum_snap *snap )
238 {
239 return snap->a;
240 }
241
242 void
libspectrum_snap_set_a(libspectrum_snap * snap,libspectrum_byte a)243 libspectrum_snap_set_a( libspectrum_snap *snap, libspectrum_byte a )
244 {
245 snap->a = a;
246 }
247
248 libspectrum_byte
libspectrum_snap_f(libspectrum_snap * snap)249 libspectrum_snap_f( libspectrum_snap *snap )
250 {
251 return snap->f;
252 }
253
254 void
libspectrum_snap_set_f(libspectrum_snap * snap,libspectrum_byte f)255 libspectrum_snap_set_f( libspectrum_snap *snap, libspectrum_byte f )
256 {
257 snap->f = f;
258 }
259
260 libspectrum_word
libspectrum_snap_bc(libspectrum_snap * snap)261 libspectrum_snap_bc( libspectrum_snap *snap )
262 {
263 return snap->bc;
264 }
265
266 void
libspectrum_snap_set_bc(libspectrum_snap * snap,libspectrum_word bc)267 libspectrum_snap_set_bc( libspectrum_snap *snap, libspectrum_word bc )
268 {
269 snap->bc = bc;
270 }
271
272 libspectrum_word
libspectrum_snap_de(libspectrum_snap * snap)273 libspectrum_snap_de( libspectrum_snap *snap )
274 {
275 return snap->de;
276 }
277
278 void
libspectrum_snap_set_de(libspectrum_snap * snap,libspectrum_word de)279 libspectrum_snap_set_de( libspectrum_snap *snap, libspectrum_word de )
280 {
281 snap->de = de;
282 }
283
284 libspectrum_word
libspectrum_snap_hl(libspectrum_snap * snap)285 libspectrum_snap_hl( libspectrum_snap *snap )
286 {
287 return snap->hl;
288 }
289
290 void
libspectrum_snap_set_hl(libspectrum_snap * snap,libspectrum_word hl)291 libspectrum_snap_set_hl( libspectrum_snap *snap, libspectrum_word hl )
292 {
293 snap->hl = hl;
294 }
295
296 libspectrum_byte
libspectrum_snap_a_(libspectrum_snap * snap)297 libspectrum_snap_a_( libspectrum_snap *snap )
298 {
299 return snap->a_;
300 }
301
302 void
libspectrum_snap_set_a_(libspectrum_snap * snap,libspectrum_byte a_)303 libspectrum_snap_set_a_( libspectrum_snap *snap, libspectrum_byte a_ )
304 {
305 snap->a_ = a_;
306 }
307
308 libspectrum_byte
libspectrum_snap_f_(libspectrum_snap * snap)309 libspectrum_snap_f_( libspectrum_snap *snap )
310 {
311 return snap->f_;
312 }
313
314 void
libspectrum_snap_set_f_(libspectrum_snap * snap,libspectrum_byte f_)315 libspectrum_snap_set_f_( libspectrum_snap *snap, libspectrum_byte f_ )
316 {
317 snap->f_ = f_;
318 }
319
320 libspectrum_word
libspectrum_snap_bc_(libspectrum_snap * snap)321 libspectrum_snap_bc_( libspectrum_snap *snap )
322 {
323 return snap->bc_;
324 }
325
326 void
libspectrum_snap_set_bc_(libspectrum_snap * snap,libspectrum_word bc_)327 libspectrum_snap_set_bc_( libspectrum_snap *snap, libspectrum_word bc_ )
328 {
329 snap->bc_ = bc_;
330 }
331
332 libspectrum_word
libspectrum_snap_de_(libspectrum_snap * snap)333 libspectrum_snap_de_( libspectrum_snap *snap )
334 {
335 return snap->de_;
336 }
337
338 void
libspectrum_snap_set_de_(libspectrum_snap * snap,libspectrum_word de_)339 libspectrum_snap_set_de_( libspectrum_snap *snap, libspectrum_word de_ )
340 {
341 snap->de_ = de_;
342 }
343
344 libspectrum_word
libspectrum_snap_hl_(libspectrum_snap * snap)345 libspectrum_snap_hl_( libspectrum_snap *snap )
346 {
347 return snap->hl_;
348 }
349
350 void
libspectrum_snap_set_hl_(libspectrum_snap * snap,libspectrum_word hl_)351 libspectrum_snap_set_hl_( libspectrum_snap *snap, libspectrum_word hl_ )
352 {
353 snap->hl_ = hl_;
354 }
355
356 libspectrum_word
libspectrum_snap_ix(libspectrum_snap * snap)357 libspectrum_snap_ix( libspectrum_snap *snap )
358 {
359 return snap->ix;
360 }
361
362 void
libspectrum_snap_set_ix(libspectrum_snap * snap,libspectrum_word ix)363 libspectrum_snap_set_ix( libspectrum_snap *snap, libspectrum_word ix )
364 {
365 snap->ix = ix;
366 }
367
368 libspectrum_word
libspectrum_snap_iy(libspectrum_snap * snap)369 libspectrum_snap_iy( libspectrum_snap *snap )
370 {
371 return snap->iy;
372 }
373
374 void
libspectrum_snap_set_iy(libspectrum_snap * snap,libspectrum_word iy)375 libspectrum_snap_set_iy( libspectrum_snap *snap, libspectrum_word iy )
376 {
377 snap->iy = iy;
378 }
379
380 libspectrum_byte
libspectrum_snap_i(libspectrum_snap * snap)381 libspectrum_snap_i( libspectrum_snap *snap )
382 {
383 return snap->i;
384 }
385
386 void
libspectrum_snap_set_i(libspectrum_snap * snap,libspectrum_byte i)387 libspectrum_snap_set_i( libspectrum_snap *snap, libspectrum_byte i )
388 {
389 snap->i = i;
390 }
391
392 libspectrum_byte
libspectrum_snap_r(libspectrum_snap * snap)393 libspectrum_snap_r( libspectrum_snap *snap )
394 {
395 return snap->r;
396 }
397
398 void
libspectrum_snap_set_r(libspectrum_snap * snap,libspectrum_byte r)399 libspectrum_snap_set_r( libspectrum_snap *snap, libspectrum_byte r )
400 {
401 snap->r = r;
402 }
403
404 libspectrum_word
libspectrum_snap_sp(libspectrum_snap * snap)405 libspectrum_snap_sp( libspectrum_snap *snap )
406 {
407 return snap->sp;
408 }
409
410 void
libspectrum_snap_set_sp(libspectrum_snap * snap,libspectrum_word sp)411 libspectrum_snap_set_sp( libspectrum_snap *snap, libspectrum_word sp )
412 {
413 snap->sp = sp;
414 }
415
416 libspectrum_word
libspectrum_snap_pc(libspectrum_snap * snap)417 libspectrum_snap_pc( libspectrum_snap *snap )
418 {
419 return snap->pc;
420 }
421
422 void
libspectrum_snap_set_pc(libspectrum_snap * snap,libspectrum_word pc)423 libspectrum_snap_set_pc( libspectrum_snap *snap, libspectrum_word pc )
424 {
425 snap->pc = pc;
426 }
427
428 libspectrum_word
libspectrum_snap_memptr(libspectrum_snap * snap)429 libspectrum_snap_memptr( libspectrum_snap *snap )
430 {
431 return snap->memptr;
432 }
433
434 void
libspectrum_snap_set_memptr(libspectrum_snap * snap,libspectrum_word memptr)435 libspectrum_snap_set_memptr( libspectrum_snap *snap, libspectrum_word memptr )
436 {
437 snap->memptr = memptr;
438 }
439
440 libspectrum_byte
libspectrum_snap_iff1(libspectrum_snap * snap)441 libspectrum_snap_iff1( libspectrum_snap *snap )
442 {
443 return snap->iff1;
444 }
445
446 void
libspectrum_snap_set_iff1(libspectrum_snap * snap,libspectrum_byte iff1)447 libspectrum_snap_set_iff1( libspectrum_snap *snap, libspectrum_byte iff1 )
448 {
449 snap->iff1 = iff1;
450 }
451
452 libspectrum_byte
libspectrum_snap_iff2(libspectrum_snap * snap)453 libspectrum_snap_iff2( libspectrum_snap *snap )
454 {
455 return snap->iff2;
456 }
457
458 void
libspectrum_snap_set_iff2(libspectrum_snap * snap,libspectrum_byte iff2)459 libspectrum_snap_set_iff2( libspectrum_snap *snap, libspectrum_byte iff2 )
460 {
461 snap->iff2 = iff2;
462 }
463
464 libspectrum_byte
libspectrum_snap_im(libspectrum_snap * snap)465 libspectrum_snap_im( libspectrum_snap *snap )
466 {
467 return snap->im;
468 }
469
470 void
libspectrum_snap_set_im(libspectrum_snap * snap,libspectrum_byte im)471 libspectrum_snap_set_im( libspectrum_snap *snap, libspectrum_byte im )
472 {
473 snap->im = im;
474 }
475
476 libspectrum_dword
libspectrum_snap_tstates(libspectrum_snap * snap)477 libspectrum_snap_tstates( libspectrum_snap *snap )
478 {
479 return snap->tstates;
480 }
481
482 void
libspectrum_snap_set_tstates(libspectrum_snap * snap,libspectrum_dword tstates)483 libspectrum_snap_set_tstates( libspectrum_snap *snap, libspectrum_dword tstates )
484 {
485 snap->tstates = tstates;
486 }
487
488 int
libspectrum_snap_halted(libspectrum_snap * snap)489 libspectrum_snap_halted( libspectrum_snap *snap )
490 {
491 return snap->halted;
492 }
493
494 void
libspectrum_snap_set_halted(libspectrum_snap * snap,int halted)495 libspectrum_snap_set_halted( libspectrum_snap *snap, int halted )
496 {
497 snap->halted = halted;
498 }
499
500 int
libspectrum_snap_last_instruction_ei(libspectrum_snap * snap)501 libspectrum_snap_last_instruction_ei( libspectrum_snap *snap )
502 {
503 return snap->last_instruction_ei;
504 }
505
506 void
libspectrum_snap_set_last_instruction_ei(libspectrum_snap * snap,int last_instruction_ei)507 libspectrum_snap_set_last_instruction_ei( libspectrum_snap *snap, int last_instruction_ei )
508 {
509 snap->last_instruction_ei = last_instruction_ei;
510 }
511
512 int
libspectrum_snap_last_instruction_set_f(libspectrum_snap * snap)513 libspectrum_snap_last_instruction_set_f( libspectrum_snap *snap )
514 {
515 return snap->last_instruction_set_f;
516 }
517
518 void
libspectrum_snap_set_last_instruction_set_f(libspectrum_snap * snap,int last_instruction_set_f)519 libspectrum_snap_set_last_instruction_set_f( libspectrum_snap *snap, int last_instruction_set_f )
520 {
521 snap->last_instruction_set_f = last_instruction_set_f;
522 }
523
524 libspectrum_byte
libspectrum_snap_out_ula(libspectrum_snap * snap)525 libspectrum_snap_out_ula( libspectrum_snap *snap )
526 {
527 return snap->out_ula;
528 }
529
530 void
libspectrum_snap_set_out_ula(libspectrum_snap * snap,libspectrum_byte out_ula)531 libspectrum_snap_set_out_ula( libspectrum_snap *snap, libspectrum_byte out_ula )
532 {
533 snap->out_ula = out_ula;
534 }
535
536 libspectrum_byte
libspectrum_snap_out_128_memoryport(libspectrum_snap * snap)537 libspectrum_snap_out_128_memoryport( libspectrum_snap *snap )
538 {
539 return snap->out_128_memoryport;
540 }
541
542 void
libspectrum_snap_set_out_128_memoryport(libspectrum_snap * snap,libspectrum_byte out_128_memoryport)543 libspectrum_snap_set_out_128_memoryport( libspectrum_snap *snap, libspectrum_byte out_128_memoryport )
544 {
545 snap->out_128_memoryport = out_128_memoryport;
546 }
547
548 libspectrum_byte
libspectrum_snap_out_plus3_memoryport(libspectrum_snap * snap)549 libspectrum_snap_out_plus3_memoryport( libspectrum_snap *snap )
550 {
551 return snap->out_plus3_memoryport;
552 }
553
554 void
libspectrum_snap_set_out_plus3_memoryport(libspectrum_snap * snap,libspectrum_byte out_plus3_memoryport)555 libspectrum_snap_set_out_plus3_memoryport( libspectrum_snap *snap, libspectrum_byte out_plus3_memoryport )
556 {
557 snap->out_plus3_memoryport = out_plus3_memoryport;
558 }
559
560 libspectrum_byte
libspectrum_snap_out_ay_registerport(libspectrum_snap * snap)561 libspectrum_snap_out_ay_registerport( libspectrum_snap *snap )
562 {
563 return snap->out_ay_registerport;
564 }
565
566 void
libspectrum_snap_set_out_ay_registerport(libspectrum_snap * snap,libspectrum_byte out_ay_registerport)567 libspectrum_snap_set_out_ay_registerport( libspectrum_snap *snap, libspectrum_byte out_ay_registerport )
568 {
569 snap->out_ay_registerport = out_ay_registerport;
570 }
571
572 libspectrum_byte
libspectrum_snap_ay_registers(libspectrum_snap * snap,int idx)573 libspectrum_snap_ay_registers( libspectrum_snap *snap, int idx )
574 {
575 return snap->ay_registers[idx];
576 }
577
578 void
libspectrum_snap_set_ay_registers(libspectrum_snap * snap,int idx,libspectrum_byte ay_registers)579 libspectrum_snap_set_ay_registers( libspectrum_snap *snap, int idx, libspectrum_byte ay_registers )
580 {
581 snap->ay_registers[idx] = ay_registers;
582 }
583
584 libspectrum_byte
libspectrum_snap_out_scld_hsr(libspectrum_snap * snap)585 libspectrum_snap_out_scld_hsr( libspectrum_snap *snap )
586 {
587 return snap->out_scld_hsr;
588 }
589
590 void
libspectrum_snap_set_out_scld_hsr(libspectrum_snap * snap,libspectrum_byte out_scld_hsr)591 libspectrum_snap_set_out_scld_hsr( libspectrum_snap *snap, libspectrum_byte out_scld_hsr )
592 {
593 snap->out_scld_hsr = out_scld_hsr;
594 }
595
596 libspectrum_byte
libspectrum_snap_out_scld_dec(libspectrum_snap * snap)597 libspectrum_snap_out_scld_dec( libspectrum_snap *snap )
598 {
599 return snap->out_scld_dec;
600 }
601
602 void
libspectrum_snap_set_out_scld_dec(libspectrum_snap * snap,libspectrum_byte out_scld_dec)603 libspectrum_snap_set_out_scld_dec( libspectrum_snap *snap, libspectrum_byte out_scld_dec )
604 {
605 snap->out_scld_dec = out_scld_dec;
606 }
607
608 int
libspectrum_snap_interface1_active(libspectrum_snap * snap)609 libspectrum_snap_interface1_active( libspectrum_snap *snap )
610 {
611 return snap->interface1_active;
612 }
613
614 void
libspectrum_snap_set_interface1_active(libspectrum_snap * snap,int interface1_active)615 libspectrum_snap_set_interface1_active( libspectrum_snap *snap, int interface1_active )
616 {
617 snap->interface1_active = interface1_active;
618 }
619
620 int
libspectrum_snap_interface1_paged(libspectrum_snap * snap)621 libspectrum_snap_interface1_paged( libspectrum_snap *snap )
622 {
623 return snap->interface1_paged;
624 }
625
626 void
libspectrum_snap_set_interface1_paged(libspectrum_snap * snap,int interface1_paged)627 libspectrum_snap_set_interface1_paged( libspectrum_snap *snap, int interface1_paged )
628 {
629 snap->interface1_paged = interface1_paged;
630 }
631
632 int
libspectrum_snap_interface1_drive_count(libspectrum_snap * snap)633 libspectrum_snap_interface1_drive_count( libspectrum_snap *snap )
634 {
635 return snap->interface1_drive_count;
636 }
637
638 void
libspectrum_snap_set_interface1_drive_count(libspectrum_snap * snap,int interface1_drive_count)639 libspectrum_snap_set_interface1_drive_count( libspectrum_snap *snap, int interface1_drive_count )
640 {
641 snap->interface1_drive_count = interface1_drive_count;
642 }
643
644 int
libspectrum_snap_interface1_custom_rom(libspectrum_snap * snap)645 libspectrum_snap_interface1_custom_rom( libspectrum_snap *snap )
646 {
647 return snap->interface1_custom_rom;
648 }
649
650 void
libspectrum_snap_set_interface1_custom_rom(libspectrum_snap * snap,int interface1_custom_rom)651 libspectrum_snap_set_interface1_custom_rom( libspectrum_snap *snap, int interface1_custom_rom )
652 {
653 snap->interface1_custom_rom = interface1_custom_rom;
654 }
655
656 libspectrum_byte*
libspectrum_snap_interface1_rom(libspectrum_snap * snap,int idx)657 libspectrum_snap_interface1_rom( libspectrum_snap *snap, int idx )
658 {
659 return snap->interface1_rom[idx];
660 }
661
662 void
libspectrum_snap_set_interface1_rom(libspectrum_snap * snap,int idx,libspectrum_byte * interface1_rom)663 libspectrum_snap_set_interface1_rom( libspectrum_snap *snap, int idx, libspectrum_byte* interface1_rom )
664 {
665 snap->interface1_rom[idx] = interface1_rom;
666 }
667
668 size_t
libspectrum_snap_interface1_rom_length(libspectrum_snap * snap,int idx)669 libspectrum_snap_interface1_rom_length( libspectrum_snap *snap, int idx )
670 {
671 return snap->interface1_rom_length[idx];
672 }
673
674 void
libspectrum_snap_set_interface1_rom_length(libspectrum_snap * snap,int idx,size_t interface1_rom_length)675 libspectrum_snap_set_interface1_rom_length( libspectrum_snap *snap, int idx, size_t interface1_rom_length )
676 {
677 snap->interface1_rom_length[idx] = interface1_rom_length;
678 }
679
680 int
libspectrum_snap_beta_active(libspectrum_snap * snap)681 libspectrum_snap_beta_active( libspectrum_snap *snap )
682 {
683 return snap->beta_active;
684 }
685
686 void
libspectrum_snap_set_beta_active(libspectrum_snap * snap,int beta_active)687 libspectrum_snap_set_beta_active( libspectrum_snap *snap, int beta_active )
688 {
689 snap->beta_active = beta_active;
690 }
691
692 int
libspectrum_snap_beta_paged(libspectrum_snap * snap)693 libspectrum_snap_beta_paged( libspectrum_snap *snap )
694 {
695 return snap->beta_paged;
696 }
697
698 void
libspectrum_snap_set_beta_paged(libspectrum_snap * snap,int beta_paged)699 libspectrum_snap_set_beta_paged( libspectrum_snap *snap, int beta_paged )
700 {
701 snap->beta_paged = beta_paged;
702 }
703
704 int
libspectrum_snap_beta_autoboot(libspectrum_snap * snap)705 libspectrum_snap_beta_autoboot( libspectrum_snap *snap )
706 {
707 return snap->beta_autoboot;
708 }
709
710 void
libspectrum_snap_set_beta_autoboot(libspectrum_snap * snap,int beta_autoboot)711 libspectrum_snap_set_beta_autoboot( libspectrum_snap *snap, int beta_autoboot )
712 {
713 snap->beta_autoboot = beta_autoboot;
714 }
715
716 int
libspectrum_snap_beta_drive_count(libspectrum_snap * snap)717 libspectrum_snap_beta_drive_count( libspectrum_snap *snap )
718 {
719 return snap->beta_drive_count;
720 }
721
722 void
libspectrum_snap_set_beta_drive_count(libspectrum_snap * snap,int beta_drive_count)723 libspectrum_snap_set_beta_drive_count( libspectrum_snap *snap, int beta_drive_count )
724 {
725 snap->beta_drive_count = beta_drive_count;
726 }
727
728 int
libspectrum_snap_beta_custom_rom(libspectrum_snap * snap)729 libspectrum_snap_beta_custom_rom( libspectrum_snap *snap )
730 {
731 return snap->beta_custom_rom;
732 }
733
734 void
libspectrum_snap_set_beta_custom_rom(libspectrum_snap * snap,int beta_custom_rom)735 libspectrum_snap_set_beta_custom_rom( libspectrum_snap *snap, int beta_custom_rom )
736 {
737 snap->beta_custom_rom = beta_custom_rom;
738 }
739
740 int
libspectrum_snap_beta_direction(libspectrum_snap * snap)741 libspectrum_snap_beta_direction( libspectrum_snap *snap )
742 {
743 return snap->beta_direction;
744 }
745
746 void
libspectrum_snap_set_beta_direction(libspectrum_snap * snap,int beta_direction)747 libspectrum_snap_set_beta_direction( libspectrum_snap *snap, int beta_direction )
748 {
749 snap->beta_direction = beta_direction;
750 }
751
752 libspectrum_byte
libspectrum_snap_beta_system(libspectrum_snap * snap)753 libspectrum_snap_beta_system( libspectrum_snap *snap )
754 {
755 return snap->beta_system;
756 }
757
758 void
libspectrum_snap_set_beta_system(libspectrum_snap * snap,libspectrum_byte beta_system)759 libspectrum_snap_set_beta_system( libspectrum_snap *snap, libspectrum_byte beta_system )
760 {
761 snap->beta_system = beta_system;
762 }
763
764 libspectrum_byte
libspectrum_snap_beta_track(libspectrum_snap * snap)765 libspectrum_snap_beta_track( libspectrum_snap *snap )
766 {
767 return snap->beta_track;
768 }
769
770 void
libspectrum_snap_set_beta_track(libspectrum_snap * snap,libspectrum_byte beta_track)771 libspectrum_snap_set_beta_track( libspectrum_snap *snap, libspectrum_byte beta_track )
772 {
773 snap->beta_track = beta_track;
774 }
775
776 libspectrum_byte
libspectrum_snap_beta_sector(libspectrum_snap * snap)777 libspectrum_snap_beta_sector( libspectrum_snap *snap )
778 {
779 return snap->beta_sector;
780 }
781
782 void
libspectrum_snap_set_beta_sector(libspectrum_snap * snap,libspectrum_byte beta_sector)783 libspectrum_snap_set_beta_sector( libspectrum_snap *snap, libspectrum_byte beta_sector )
784 {
785 snap->beta_sector = beta_sector;
786 }
787
788 libspectrum_byte
libspectrum_snap_beta_data(libspectrum_snap * snap)789 libspectrum_snap_beta_data( libspectrum_snap *snap )
790 {
791 return snap->beta_data;
792 }
793
794 void
libspectrum_snap_set_beta_data(libspectrum_snap * snap,libspectrum_byte beta_data)795 libspectrum_snap_set_beta_data( libspectrum_snap *snap, libspectrum_byte beta_data )
796 {
797 snap->beta_data = beta_data;
798 }
799
800 libspectrum_byte
libspectrum_snap_beta_status(libspectrum_snap * snap)801 libspectrum_snap_beta_status( libspectrum_snap *snap )
802 {
803 return snap->beta_status;
804 }
805
806 void
libspectrum_snap_set_beta_status(libspectrum_snap * snap,libspectrum_byte beta_status)807 libspectrum_snap_set_beta_status( libspectrum_snap *snap, libspectrum_byte beta_status )
808 {
809 snap->beta_status = beta_status;
810 }
811
812 libspectrum_byte*
libspectrum_snap_beta_rom(libspectrum_snap * snap,int idx)813 libspectrum_snap_beta_rom( libspectrum_snap *snap, int idx )
814 {
815 return snap->beta_rom[idx];
816 }
817
818 void
libspectrum_snap_set_beta_rom(libspectrum_snap * snap,int idx,libspectrum_byte * beta_rom)819 libspectrum_snap_set_beta_rom( libspectrum_snap *snap, int idx, libspectrum_byte* beta_rom )
820 {
821 snap->beta_rom[idx] = beta_rom;
822 }
823
824 int
libspectrum_snap_plusd_active(libspectrum_snap * snap)825 libspectrum_snap_plusd_active( libspectrum_snap *snap )
826 {
827 return snap->plusd_active;
828 }
829
830 void
libspectrum_snap_set_plusd_active(libspectrum_snap * snap,int plusd_active)831 libspectrum_snap_set_plusd_active( libspectrum_snap *snap, int plusd_active )
832 {
833 snap->plusd_active = plusd_active;
834 }
835
836 int
libspectrum_snap_plusd_paged(libspectrum_snap * snap)837 libspectrum_snap_plusd_paged( libspectrum_snap *snap )
838 {
839 return snap->plusd_paged;
840 }
841
842 void
libspectrum_snap_set_plusd_paged(libspectrum_snap * snap,int plusd_paged)843 libspectrum_snap_set_plusd_paged( libspectrum_snap *snap, int plusd_paged )
844 {
845 snap->plusd_paged = plusd_paged;
846 }
847
848 int
libspectrum_snap_plusd_drive_count(libspectrum_snap * snap)849 libspectrum_snap_plusd_drive_count( libspectrum_snap *snap )
850 {
851 return snap->plusd_drive_count;
852 }
853
854 void
libspectrum_snap_set_plusd_drive_count(libspectrum_snap * snap,int plusd_drive_count)855 libspectrum_snap_set_plusd_drive_count( libspectrum_snap *snap, int plusd_drive_count )
856 {
857 snap->plusd_drive_count = plusd_drive_count;
858 }
859
860 int
libspectrum_snap_plusd_custom_rom(libspectrum_snap * snap)861 libspectrum_snap_plusd_custom_rom( libspectrum_snap *snap )
862 {
863 return snap->plusd_custom_rom;
864 }
865
866 void
libspectrum_snap_set_plusd_custom_rom(libspectrum_snap * snap,int plusd_custom_rom)867 libspectrum_snap_set_plusd_custom_rom( libspectrum_snap *snap, int plusd_custom_rom )
868 {
869 snap->plusd_custom_rom = plusd_custom_rom;
870 }
871
872 int
libspectrum_snap_plusd_direction(libspectrum_snap * snap)873 libspectrum_snap_plusd_direction( libspectrum_snap *snap )
874 {
875 return snap->plusd_direction;
876 }
877
878 void
libspectrum_snap_set_plusd_direction(libspectrum_snap * snap,int plusd_direction)879 libspectrum_snap_set_plusd_direction( libspectrum_snap *snap, int plusd_direction )
880 {
881 snap->plusd_direction = plusd_direction;
882 }
883
884 libspectrum_byte
libspectrum_snap_plusd_control(libspectrum_snap * snap)885 libspectrum_snap_plusd_control( libspectrum_snap *snap )
886 {
887 return snap->plusd_control;
888 }
889
890 void
libspectrum_snap_set_plusd_control(libspectrum_snap * snap,libspectrum_byte plusd_control)891 libspectrum_snap_set_plusd_control( libspectrum_snap *snap, libspectrum_byte plusd_control )
892 {
893 snap->plusd_control = plusd_control;
894 }
895
896 libspectrum_byte
libspectrum_snap_plusd_track(libspectrum_snap * snap)897 libspectrum_snap_plusd_track( libspectrum_snap *snap )
898 {
899 return snap->plusd_track;
900 }
901
902 void
libspectrum_snap_set_plusd_track(libspectrum_snap * snap,libspectrum_byte plusd_track)903 libspectrum_snap_set_plusd_track( libspectrum_snap *snap, libspectrum_byte plusd_track )
904 {
905 snap->plusd_track = plusd_track;
906 }
907
908 libspectrum_byte
libspectrum_snap_plusd_sector(libspectrum_snap * snap)909 libspectrum_snap_plusd_sector( libspectrum_snap *snap )
910 {
911 return snap->plusd_sector;
912 }
913
914 void
libspectrum_snap_set_plusd_sector(libspectrum_snap * snap,libspectrum_byte plusd_sector)915 libspectrum_snap_set_plusd_sector( libspectrum_snap *snap, libspectrum_byte plusd_sector )
916 {
917 snap->plusd_sector = plusd_sector;
918 }
919
920 libspectrum_byte
libspectrum_snap_plusd_data(libspectrum_snap * snap)921 libspectrum_snap_plusd_data( libspectrum_snap *snap )
922 {
923 return snap->plusd_data;
924 }
925
926 void
libspectrum_snap_set_plusd_data(libspectrum_snap * snap,libspectrum_byte plusd_data)927 libspectrum_snap_set_plusd_data( libspectrum_snap *snap, libspectrum_byte plusd_data )
928 {
929 snap->plusd_data = plusd_data;
930 }
931
932 libspectrum_byte
libspectrum_snap_plusd_status(libspectrum_snap * snap)933 libspectrum_snap_plusd_status( libspectrum_snap *snap )
934 {
935 return snap->plusd_status;
936 }
937
938 void
libspectrum_snap_set_plusd_status(libspectrum_snap * snap,libspectrum_byte plusd_status)939 libspectrum_snap_set_plusd_status( libspectrum_snap *snap, libspectrum_byte plusd_status )
940 {
941 snap->plusd_status = plusd_status;
942 }
943
944 libspectrum_byte*
libspectrum_snap_plusd_rom(libspectrum_snap * snap,int idx)945 libspectrum_snap_plusd_rom( libspectrum_snap *snap, int idx )
946 {
947 return snap->plusd_rom[idx];
948 }
949
950 void
libspectrum_snap_set_plusd_rom(libspectrum_snap * snap,int idx,libspectrum_byte * plusd_rom)951 libspectrum_snap_set_plusd_rom( libspectrum_snap *snap, int idx, libspectrum_byte* plusd_rom )
952 {
953 snap->plusd_rom[idx] = plusd_rom;
954 }
955
956 libspectrum_byte*
libspectrum_snap_plusd_ram(libspectrum_snap * snap,int idx)957 libspectrum_snap_plusd_ram( libspectrum_snap *snap, int idx )
958 {
959 return snap->plusd_ram[idx];
960 }
961
962 void
libspectrum_snap_set_plusd_ram(libspectrum_snap * snap,int idx,libspectrum_byte * plusd_ram)963 libspectrum_snap_set_plusd_ram( libspectrum_snap *snap, int idx, libspectrum_byte* plusd_ram )
964 {
965 snap->plusd_ram[idx] = plusd_ram;
966 }
967
968 int
libspectrum_snap_opus_active(libspectrum_snap * snap)969 libspectrum_snap_opus_active( libspectrum_snap *snap )
970 {
971 return snap->opus_active;
972 }
973
974 void
libspectrum_snap_set_opus_active(libspectrum_snap * snap,int opus_active)975 libspectrum_snap_set_opus_active( libspectrum_snap *snap, int opus_active )
976 {
977 snap->opus_active = opus_active;
978 }
979
980 int
libspectrum_snap_opus_paged(libspectrum_snap * snap)981 libspectrum_snap_opus_paged( libspectrum_snap *snap )
982 {
983 return snap->opus_paged;
984 }
985
986 void
libspectrum_snap_set_opus_paged(libspectrum_snap * snap,int opus_paged)987 libspectrum_snap_set_opus_paged( libspectrum_snap *snap, int opus_paged )
988 {
989 snap->opus_paged = opus_paged;
990 }
991
992 int
libspectrum_snap_opus_drive_count(libspectrum_snap * snap)993 libspectrum_snap_opus_drive_count( libspectrum_snap *snap )
994 {
995 return snap->opus_drive_count;
996 }
997
998 void
libspectrum_snap_set_opus_drive_count(libspectrum_snap * snap,int opus_drive_count)999 libspectrum_snap_set_opus_drive_count( libspectrum_snap *snap, int opus_drive_count )
1000 {
1001 snap->opus_drive_count = opus_drive_count;
1002 }
1003
1004 int
libspectrum_snap_opus_custom_rom(libspectrum_snap * snap)1005 libspectrum_snap_opus_custom_rom( libspectrum_snap *snap )
1006 {
1007 return snap->opus_custom_rom;
1008 }
1009
1010 void
libspectrum_snap_set_opus_custom_rom(libspectrum_snap * snap,int opus_custom_rom)1011 libspectrum_snap_set_opus_custom_rom( libspectrum_snap *snap, int opus_custom_rom )
1012 {
1013 snap->opus_custom_rom = opus_custom_rom;
1014 }
1015
1016 int
libspectrum_snap_opus_direction(libspectrum_snap * snap)1017 libspectrum_snap_opus_direction( libspectrum_snap *snap )
1018 {
1019 return snap->opus_direction;
1020 }
1021
1022 void
libspectrum_snap_set_opus_direction(libspectrum_snap * snap,int opus_direction)1023 libspectrum_snap_set_opus_direction( libspectrum_snap *snap, int opus_direction )
1024 {
1025 snap->opus_direction = opus_direction;
1026 }
1027
1028 libspectrum_byte
libspectrum_snap_opus_track(libspectrum_snap * snap)1029 libspectrum_snap_opus_track( libspectrum_snap *snap )
1030 {
1031 return snap->opus_track;
1032 }
1033
1034 void
libspectrum_snap_set_opus_track(libspectrum_snap * snap,libspectrum_byte opus_track)1035 libspectrum_snap_set_opus_track( libspectrum_snap *snap, libspectrum_byte opus_track )
1036 {
1037 snap->opus_track = opus_track;
1038 }
1039
1040 libspectrum_byte
libspectrum_snap_opus_sector(libspectrum_snap * snap)1041 libspectrum_snap_opus_sector( libspectrum_snap *snap )
1042 {
1043 return snap->opus_sector;
1044 }
1045
1046 void
libspectrum_snap_set_opus_sector(libspectrum_snap * snap,libspectrum_byte opus_sector)1047 libspectrum_snap_set_opus_sector( libspectrum_snap *snap, libspectrum_byte opus_sector )
1048 {
1049 snap->opus_sector = opus_sector;
1050 }
1051
1052 libspectrum_byte
libspectrum_snap_opus_data(libspectrum_snap * snap)1053 libspectrum_snap_opus_data( libspectrum_snap *snap )
1054 {
1055 return snap->opus_data;
1056 }
1057
1058 void
libspectrum_snap_set_opus_data(libspectrum_snap * snap,libspectrum_byte opus_data)1059 libspectrum_snap_set_opus_data( libspectrum_snap *snap, libspectrum_byte opus_data )
1060 {
1061 snap->opus_data = opus_data;
1062 }
1063
1064 libspectrum_byte
libspectrum_snap_opus_status(libspectrum_snap * snap)1065 libspectrum_snap_opus_status( libspectrum_snap *snap )
1066 {
1067 return snap->opus_status;
1068 }
1069
1070 void
libspectrum_snap_set_opus_status(libspectrum_snap * snap,libspectrum_byte opus_status)1071 libspectrum_snap_set_opus_status( libspectrum_snap *snap, libspectrum_byte opus_status )
1072 {
1073 snap->opus_status = opus_status;
1074 }
1075
1076 libspectrum_byte
libspectrum_snap_opus_data_reg_a(libspectrum_snap * snap)1077 libspectrum_snap_opus_data_reg_a( libspectrum_snap *snap )
1078 {
1079 return snap->opus_data_reg_a;
1080 }
1081
1082 void
libspectrum_snap_set_opus_data_reg_a(libspectrum_snap * snap,libspectrum_byte opus_data_reg_a)1083 libspectrum_snap_set_opus_data_reg_a( libspectrum_snap *snap, libspectrum_byte opus_data_reg_a )
1084 {
1085 snap->opus_data_reg_a = opus_data_reg_a;
1086 }
1087
1088 libspectrum_byte
libspectrum_snap_opus_data_dir_a(libspectrum_snap * snap)1089 libspectrum_snap_opus_data_dir_a( libspectrum_snap *snap )
1090 {
1091 return snap->opus_data_dir_a;
1092 }
1093
1094 void
libspectrum_snap_set_opus_data_dir_a(libspectrum_snap * snap,libspectrum_byte opus_data_dir_a)1095 libspectrum_snap_set_opus_data_dir_a( libspectrum_snap *snap, libspectrum_byte opus_data_dir_a )
1096 {
1097 snap->opus_data_dir_a = opus_data_dir_a;
1098 }
1099
1100 libspectrum_byte
libspectrum_snap_opus_control_a(libspectrum_snap * snap)1101 libspectrum_snap_opus_control_a( libspectrum_snap *snap )
1102 {
1103 return snap->opus_control_a;
1104 }
1105
1106 void
libspectrum_snap_set_opus_control_a(libspectrum_snap * snap,libspectrum_byte opus_control_a)1107 libspectrum_snap_set_opus_control_a( libspectrum_snap *snap, libspectrum_byte opus_control_a )
1108 {
1109 snap->opus_control_a = opus_control_a;
1110 }
1111
1112 libspectrum_byte
libspectrum_snap_opus_data_reg_b(libspectrum_snap * snap)1113 libspectrum_snap_opus_data_reg_b( libspectrum_snap *snap )
1114 {
1115 return snap->opus_data_reg_b;
1116 }
1117
1118 void
libspectrum_snap_set_opus_data_reg_b(libspectrum_snap * snap,libspectrum_byte opus_data_reg_b)1119 libspectrum_snap_set_opus_data_reg_b( libspectrum_snap *snap, libspectrum_byte opus_data_reg_b )
1120 {
1121 snap->opus_data_reg_b = opus_data_reg_b;
1122 }
1123
1124 libspectrum_byte
libspectrum_snap_opus_data_dir_b(libspectrum_snap * snap)1125 libspectrum_snap_opus_data_dir_b( libspectrum_snap *snap )
1126 {
1127 return snap->opus_data_dir_b;
1128 }
1129
1130 void
libspectrum_snap_set_opus_data_dir_b(libspectrum_snap * snap,libspectrum_byte opus_data_dir_b)1131 libspectrum_snap_set_opus_data_dir_b( libspectrum_snap *snap, libspectrum_byte opus_data_dir_b )
1132 {
1133 snap->opus_data_dir_b = opus_data_dir_b;
1134 }
1135
1136 libspectrum_byte
libspectrum_snap_opus_control_b(libspectrum_snap * snap)1137 libspectrum_snap_opus_control_b( libspectrum_snap *snap )
1138 {
1139 return snap->opus_control_b;
1140 }
1141
1142 void
libspectrum_snap_set_opus_control_b(libspectrum_snap * snap,libspectrum_byte opus_control_b)1143 libspectrum_snap_set_opus_control_b( libspectrum_snap *snap, libspectrum_byte opus_control_b )
1144 {
1145 snap->opus_control_b = opus_control_b;
1146 }
1147
1148 libspectrum_byte*
libspectrum_snap_opus_rom(libspectrum_snap * snap,int idx)1149 libspectrum_snap_opus_rom( libspectrum_snap *snap, int idx )
1150 {
1151 return snap->opus_rom[idx];
1152 }
1153
1154 void
libspectrum_snap_set_opus_rom(libspectrum_snap * snap,int idx,libspectrum_byte * opus_rom)1155 libspectrum_snap_set_opus_rom( libspectrum_snap *snap, int idx, libspectrum_byte* opus_rom )
1156 {
1157 snap->opus_rom[idx] = opus_rom;
1158 }
1159
1160 libspectrum_byte*
libspectrum_snap_opus_ram(libspectrum_snap * snap,int idx)1161 libspectrum_snap_opus_ram( libspectrum_snap *snap, int idx )
1162 {
1163 return snap->opus_ram[idx];
1164 }
1165
1166 void
libspectrum_snap_set_opus_ram(libspectrum_snap * snap,int idx,libspectrum_byte * opus_ram)1167 libspectrum_snap_set_opus_ram( libspectrum_snap *snap, int idx, libspectrum_byte* opus_ram )
1168 {
1169 snap->opus_ram[idx] = opus_ram;
1170 }
1171
1172 int
libspectrum_snap_custom_rom(libspectrum_snap * snap)1173 libspectrum_snap_custom_rom( libspectrum_snap *snap )
1174 {
1175 return snap->custom_rom;
1176 }
1177
1178 void
libspectrum_snap_set_custom_rom(libspectrum_snap * snap,int custom_rom)1179 libspectrum_snap_set_custom_rom( libspectrum_snap *snap, int custom_rom )
1180 {
1181 snap->custom_rom = custom_rom;
1182 }
1183
1184 size_t
libspectrum_snap_custom_rom_pages(libspectrum_snap * snap)1185 libspectrum_snap_custom_rom_pages( libspectrum_snap *snap )
1186 {
1187 return snap->custom_rom_pages;
1188 }
1189
1190 void
libspectrum_snap_set_custom_rom_pages(libspectrum_snap * snap,size_t custom_rom_pages)1191 libspectrum_snap_set_custom_rom_pages( libspectrum_snap *snap, size_t custom_rom_pages )
1192 {
1193 snap->custom_rom_pages = custom_rom_pages;
1194 }
1195
1196 libspectrum_byte*
libspectrum_snap_roms(libspectrum_snap * snap,int idx)1197 libspectrum_snap_roms( libspectrum_snap *snap, int idx )
1198 {
1199 return snap->roms[idx];
1200 }
1201
1202 void
libspectrum_snap_set_roms(libspectrum_snap * snap,int idx,libspectrum_byte * roms)1203 libspectrum_snap_set_roms( libspectrum_snap *snap, int idx, libspectrum_byte* roms )
1204 {
1205 snap->roms[idx] = roms;
1206 }
1207
1208 size_t
libspectrum_snap_rom_length(libspectrum_snap * snap,int idx)1209 libspectrum_snap_rom_length( libspectrum_snap *snap, int idx )
1210 {
1211 return snap->rom_length[idx];
1212 }
1213
1214 void
libspectrum_snap_set_rom_length(libspectrum_snap * snap,int idx,size_t rom_length)1215 libspectrum_snap_set_rom_length( libspectrum_snap *snap, int idx, size_t rom_length )
1216 {
1217 snap->rom_length[idx] = rom_length;
1218 }
1219
1220 libspectrum_byte*
libspectrum_snap_pages(libspectrum_snap * snap,int idx)1221 libspectrum_snap_pages( libspectrum_snap *snap, int idx )
1222 {
1223 return snap->pages[idx];
1224 }
1225
1226 void
libspectrum_snap_set_pages(libspectrum_snap * snap,int idx,libspectrum_byte * pages)1227 libspectrum_snap_set_pages( libspectrum_snap *snap, int idx, libspectrum_byte* pages )
1228 {
1229 snap->pages[idx] = pages;
1230 }
1231
1232 libspectrum_byte*
libspectrum_snap_slt(libspectrum_snap * snap,int idx)1233 libspectrum_snap_slt( libspectrum_snap *snap, int idx )
1234 {
1235 return snap->slt[idx];
1236 }
1237
1238 void
libspectrum_snap_set_slt(libspectrum_snap * snap,int idx,libspectrum_byte * slt)1239 libspectrum_snap_set_slt( libspectrum_snap *snap, int idx, libspectrum_byte* slt )
1240 {
1241 snap->slt[idx] = slt;
1242 }
1243
1244 size_t
libspectrum_snap_slt_length(libspectrum_snap * snap,int idx)1245 libspectrum_snap_slt_length( libspectrum_snap *snap, int idx )
1246 {
1247 return snap->slt_length[idx];
1248 }
1249
1250 void
libspectrum_snap_set_slt_length(libspectrum_snap * snap,int idx,size_t slt_length)1251 libspectrum_snap_set_slt_length( libspectrum_snap *snap, int idx, size_t slt_length )
1252 {
1253 snap->slt_length[idx] = slt_length;
1254 }
1255
1256 libspectrum_byte*
libspectrum_snap_slt_screen(libspectrum_snap * snap)1257 libspectrum_snap_slt_screen( libspectrum_snap *snap )
1258 {
1259 return snap->slt_screen;
1260 }
1261
1262 void
libspectrum_snap_set_slt_screen(libspectrum_snap * snap,libspectrum_byte * slt_screen)1263 libspectrum_snap_set_slt_screen( libspectrum_snap *snap, libspectrum_byte* slt_screen )
1264 {
1265 snap->slt_screen = slt_screen;
1266 }
1267
1268 int
libspectrum_snap_slt_screen_level(libspectrum_snap * snap)1269 libspectrum_snap_slt_screen_level( libspectrum_snap *snap )
1270 {
1271 return snap->slt_screen_level;
1272 }
1273
1274 void
libspectrum_snap_set_slt_screen_level(libspectrum_snap * snap,int slt_screen_level)1275 libspectrum_snap_set_slt_screen_level( libspectrum_snap *snap, int slt_screen_level )
1276 {
1277 snap->slt_screen_level = slt_screen_level;
1278 }
1279
1280 int
libspectrum_snap_zxatasp_active(libspectrum_snap * snap)1281 libspectrum_snap_zxatasp_active( libspectrum_snap *snap )
1282 {
1283 return snap->zxatasp_active;
1284 }
1285
1286 void
libspectrum_snap_set_zxatasp_active(libspectrum_snap * snap,int zxatasp_active)1287 libspectrum_snap_set_zxatasp_active( libspectrum_snap *snap, int zxatasp_active )
1288 {
1289 snap->zxatasp_active = zxatasp_active;
1290 }
1291
1292 int
libspectrum_snap_zxatasp_upload(libspectrum_snap * snap)1293 libspectrum_snap_zxatasp_upload( libspectrum_snap *snap )
1294 {
1295 return snap->zxatasp_upload;
1296 }
1297
1298 void
libspectrum_snap_set_zxatasp_upload(libspectrum_snap * snap,int zxatasp_upload)1299 libspectrum_snap_set_zxatasp_upload( libspectrum_snap *snap, int zxatasp_upload )
1300 {
1301 snap->zxatasp_upload = zxatasp_upload;
1302 }
1303
1304 int
libspectrum_snap_zxatasp_writeprotect(libspectrum_snap * snap)1305 libspectrum_snap_zxatasp_writeprotect( libspectrum_snap *snap )
1306 {
1307 return snap->zxatasp_writeprotect;
1308 }
1309
1310 void
libspectrum_snap_set_zxatasp_writeprotect(libspectrum_snap * snap,int zxatasp_writeprotect)1311 libspectrum_snap_set_zxatasp_writeprotect( libspectrum_snap *snap, int zxatasp_writeprotect )
1312 {
1313 snap->zxatasp_writeprotect = zxatasp_writeprotect;
1314 }
1315
1316 libspectrum_byte
libspectrum_snap_zxatasp_port_a(libspectrum_snap * snap)1317 libspectrum_snap_zxatasp_port_a( libspectrum_snap *snap )
1318 {
1319 return snap->zxatasp_port_a;
1320 }
1321
1322 void
libspectrum_snap_set_zxatasp_port_a(libspectrum_snap * snap,libspectrum_byte zxatasp_port_a)1323 libspectrum_snap_set_zxatasp_port_a( libspectrum_snap *snap, libspectrum_byte zxatasp_port_a )
1324 {
1325 snap->zxatasp_port_a = zxatasp_port_a;
1326 }
1327
1328 libspectrum_byte
libspectrum_snap_zxatasp_port_b(libspectrum_snap * snap)1329 libspectrum_snap_zxatasp_port_b( libspectrum_snap *snap )
1330 {
1331 return snap->zxatasp_port_b;
1332 }
1333
1334 void
libspectrum_snap_set_zxatasp_port_b(libspectrum_snap * snap,libspectrum_byte zxatasp_port_b)1335 libspectrum_snap_set_zxatasp_port_b( libspectrum_snap *snap, libspectrum_byte zxatasp_port_b )
1336 {
1337 snap->zxatasp_port_b = zxatasp_port_b;
1338 }
1339
1340 libspectrum_byte
libspectrum_snap_zxatasp_port_c(libspectrum_snap * snap)1341 libspectrum_snap_zxatasp_port_c( libspectrum_snap *snap )
1342 {
1343 return snap->zxatasp_port_c;
1344 }
1345
1346 void
libspectrum_snap_set_zxatasp_port_c(libspectrum_snap * snap,libspectrum_byte zxatasp_port_c)1347 libspectrum_snap_set_zxatasp_port_c( libspectrum_snap *snap, libspectrum_byte zxatasp_port_c )
1348 {
1349 snap->zxatasp_port_c = zxatasp_port_c;
1350 }
1351
1352 libspectrum_byte
libspectrum_snap_zxatasp_control(libspectrum_snap * snap)1353 libspectrum_snap_zxatasp_control( libspectrum_snap *snap )
1354 {
1355 return snap->zxatasp_control;
1356 }
1357
1358 void
libspectrum_snap_set_zxatasp_control(libspectrum_snap * snap,libspectrum_byte zxatasp_control)1359 libspectrum_snap_set_zxatasp_control( libspectrum_snap *snap, libspectrum_byte zxatasp_control )
1360 {
1361 snap->zxatasp_control = zxatasp_control;
1362 }
1363
1364 size_t
libspectrum_snap_zxatasp_pages(libspectrum_snap * snap)1365 libspectrum_snap_zxatasp_pages( libspectrum_snap *snap )
1366 {
1367 return snap->zxatasp_pages;
1368 }
1369
1370 void
libspectrum_snap_set_zxatasp_pages(libspectrum_snap * snap,size_t zxatasp_pages)1371 libspectrum_snap_set_zxatasp_pages( libspectrum_snap *snap, size_t zxatasp_pages )
1372 {
1373 snap->zxatasp_pages = zxatasp_pages;
1374 }
1375
1376 size_t
libspectrum_snap_zxatasp_current_page(libspectrum_snap * snap)1377 libspectrum_snap_zxatasp_current_page( libspectrum_snap *snap )
1378 {
1379 return snap->zxatasp_current_page;
1380 }
1381
1382 void
libspectrum_snap_set_zxatasp_current_page(libspectrum_snap * snap,size_t zxatasp_current_page)1383 libspectrum_snap_set_zxatasp_current_page( libspectrum_snap *snap, size_t zxatasp_current_page )
1384 {
1385 snap->zxatasp_current_page = zxatasp_current_page;
1386 }
1387
1388 libspectrum_byte*
libspectrum_snap_zxatasp_ram(libspectrum_snap * snap,int idx)1389 libspectrum_snap_zxatasp_ram( libspectrum_snap *snap, int idx )
1390 {
1391 return snap->zxatasp_ram[idx];
1392 }
1393
1394 void
libspectrum_snap_set_zxatasp_ram(libspectrum_snap * snap,int idx,libspectrum_byte * zxatasp_ram)1395 libspectrum_snap_set_zxatasp_ram( libspectrum_snap *snap, int idx, libspectrum_byte* zxatasp_ram )
1396 {
1397 snap->zxatasp_ram[idx] = zxatasp_ram;
1398 }
1399
1400 int
libspectrum_snap_zxcf_active(libspectrum_snap * snap)1401 libspectrum_snap_zxcf_active( libspectrum_snap *snap )
1402 {
1403 return snap->zxcf_active;
1404 }
1405
1406 void
libspectrum_snap_set_zxcf_active(libspectrum_snap * snap,int zxcf_active)1407 libspectrum_snap_set_zxcf_active( libspectrum_snap *snap, int zxcf_active )
1408 {
1409 snap->zxcf_active = zxcf_active;
1410 }
1411
1412 int
libspectrum_snap_zxcf_upload(libspectrum_snap * snap)1413 libspectrum_snap_zxcf_upload( libspectrum_snap *snap )
1414 {
1415 return snap->zxcf_upload;
1416 }
1417
1418 void
libspectrum_snap_set_zxcf_upload(libspectrum_snap * snap,int zxcf_upload)1419 libspectrum_snap_set_zxcf_upload( libspectrum_snap *snap, int zxcf_upload )
1420 {
1421 snap->zxcf_upload = zxcf_upload;
1422 }
1423
1424 libspectrum_byte
libspectrum_snap_zxcf_memctl(libspectrum_snap * snap)1425 libspectrum_snap_zxcf_memctl( libspectrum_snap *snap )
1426 {
1427 return snap->zxcf_memctl;
1428 }
1429
1430 void
libspectrum_snap_set_zxcf_memctl(libspectrum_snap * snap,libspectrum_byte zxcf_memctl)1431 libspectrum_snap_set_zxcf_memctl( libspectrum_snap *snap, libspectrum_byte zxcf_memctl )
1432 {
1433 snap->zxcf_memctl = zxcf_memctl;
1434 }
1435
1436 size_t
libspectrum_snap_zxcf_pages(libspectrum_snap * snap)1437 libspectrum_snap_zxcf_pages( libspectrum_snap *snap )
1438 {
1439 return snap->zxcf_pages;
1440 }
1441
1442 void
libspectrum_snap_set_zxcf_pages(libspectrum_snap * snap,size_t zxcf_pages)1443 libspectrum_snap_set_zxcf_pages( libspectrum_snap *snap, size_t zxcf_pages )
1444 {
1445 snap->zxcf_pages = zxcf_pages;
1446 }
1447
1448 libspectrum_byte*
libspectrum_snap_zxcf_ram(libspectrum_snap * snap,int idx)1449 libspectrum_snap_zxcf_ram( libspectrum_snap *snap, int idx )
1450 {
1451 return snap->zxcf_ram[idx];
1452 }
1453
1454 void
libspectrum_snap_set_zxcf_ram(libspectrum_snap * snap,int idx,libspectrum_byte * zxcf_ram)1455 libspectrum_snap_set_zxcf_ram( libspectrum_snap *snap, int idx, libspectrum_byte* zxcf_ram )
1456 {
1457 snap->zxcf_ram[idx] = zxcf_ram;
1458 }
1459
1460 int
libspectrum_snap_interface2_active(libspectrum_snap * snap)1461 libspectrum_snap_interface2_active( libspectrum_snap *snap )
1462 {
1463 return snap->interface2_active;
1464 }
1465
1466 void
libspectrum_snap_set_interface2_active(libspectrum_snap * snap,int interface2_active)1467 libspectrum_snap_set_interface2_active( libspectrum_snap *snap, int interface2_active )
1468 {
1469 snap->interface2_active = interface2_active;
1470 }
1471
1472 libspectrum_byte*
libspectrum_snap_interface2_rom(libspectrum_snap * snap,int idx)1473 libspectrum_snap_interface2_rom( libspectrum_snap *snap, int idx )
1474 {
1475 return snap->interface2_rom[idx];
1476 }
1477
1478 void
libspectrum_snap_set_interface2_rom(libspectrum_snap * snap,int idx,libspectrum_byte * interface2_rom)1479 libspectrum_snap_set_interface2_rom( libspectrum_snap *snap, int idx, libspectrum_byte* interface2_rom )
1480 {
1481 snap->interface2_rom[idx] = interface2_rom;
1482 }
1483
1484 int
libspectrum_snap_dock_active(libspectrum_snap * snap)1485 libspectrum_snap_dock_active( libspectrum_snap *snap )
1486 {
1487 return snap->dock_active;
1488 }
1489
1490 void
libspectrum_snap_set_dock_active(libspectrum_snap * snap,int dock_active)1491 libspectrum_snap_set_dock_active( libspectrum_snap *snap, int dock_active )
1492 {
1493 snap->dock_active = dock_active;
1494 }
1495
1496 libspectrum_byte
libspectrum_snap_exrom_ram(libspectrum_snap * snap,int idx)1497 libspectrum_snap_exrom_ram( libspectrum_snap *snap, int idx )
1498 {
1499 return snap->exrom_ram[idx];
1500 }
1501
1502 void
libspectrum_snap_set_exrom_ram(libspectrum_snap * snap,int idx,libspectrum_byte exrom_ram)1503 libspectrum_snap_set_exrom_ram( libspectrum_snap *snap, int idx, libspectrum_byte exrom_ram )
1504 {
1505 snap->exrom_ram[idx] = exrom_ram;
1506 }
1507
1508 libspectrum_byte*
libspectrum_snap_exrom_cart(libspectrum_snap * snap,int idx)1509 libspectrum_snap_exrom_cart( libspectrum_snap *snap, int idx )
1510 {
1511 return snap->exrom_cart[idx];
1512 }
1513
1514 void
libspectrum_snap_set_exrom_cart(libspectrum_snap * snap,int idx,libspectrum_byte * exrom_cart)1515 libspectrum_snap_set_exrom_cart( libspectrum_snap *snap, int idx, libspectrum_byte* exrom_cart )
1516 {
1517 snap->exrom_cart[idx] = exrom_cart;
1518 }
1519
1520 libspectrum_byte
libspectrum_snap_dock_ram(libspectrum_snap * snap,int idx)1521 libspectrum_snap_dock_ram( libspectrum_snap *snap, int idx )
1522 {
1523 return snap->dock_ram[idx];
1524 }
1525
1526 void
libspectrum_snap_set_dock_ram(libspectrum_snap * snap,int idx,libspectrum_byte dock_ram)1527 libspectrum_snap_set_dock_ram( libspectrum_snap *snap, int idx, libspectrum_byte dock_ram )
1528 {
1529 snap->dock_ram[idx] = dock_ram;
1530 }
1531
1532 libspectrum_byte*
libspectrum_snap_dock_cart(libspectrum_snap * snap,int idx)1533 libspectrum_snap_dock_cart( libspectrum_snap *snap, int idx )
1534 {
1535 return snap->dock_cart[idx];
1536 }
1537
1538 void
libspectrum_snap_set_dock_cart(libspectrum_snap * snap,int idx,libspectrum_byte * dock_cart)1539 libspectrum_snap_set_dock_cart( libspectrum_snap *snap, int idx, libspectrum_byte* dock_cart )
1540 {
1541 snap->dock_cart[idx] = dock_cart;
1542 }
1543
1544 int
libspectrum_snap_issue2(libspectrum_snap * snap)1545 libspectrum_snap_issue2( libspectrum_snap *snap )
1546 {
1547 return snap->issue2;
1548 }
1549
1550 void
libspectrum_snap_set_issue2(libspectrum_snap * snap,int issue2)1551 libspectrum_snap_set_issue2( libspectrum_snap *snap, int issue2 )
1552 {
1553 snap->issue2 = issue2;
1554 }
1555
1556 size_t
libspectrum_snap_joystick_active_count(libspectrum_snap * snap)1557 libspectrum_snap_joystick_active_count( libspectrum_snap *snap )
1558 {
1559 return snap->joystick_active_count;
1560 }
1561
1562 void
libspectrum_snap_set_joystick_active_count(libspectrum_snap * snap,size_t joystick_active_count)1563 libspectrum_snap_set_joystick_active_count( libspectrum_snap *snap, size_t joystick_active_count )
1564 {
1565 snap->joystick_active_count = joystick_active_count;
1566 }
1567
1568 libspectrum_joystick
libspectrum_snap_joystick_list(libspectrum_snap * snap,int idx)1569 libspectrum_snap_joystick_list( libspectrum_snap *snap, int idx )
1570 {
1571 return snap->joystick_list[idx];
1572 }
1573
1574 void
libspectrum_snap_set_joystick_list(libspectrum_snap * snap,int idx,libspectrum_joystick joystick_list)1575 libspectrum_snap_set_joystick_list( libspectrum_snap *snap, int idx, libspectrum_joystick joystick_list )
1576 {
1577 snap->joystick_list[idx] = joystick_list;
1578 }
1579
1580 int
libspectrum_snap_joystick_inputs(libspectrum_snap * snap,int idx)1581 libspectrum_snap_joystick_inputs( libspectrum_snap *snap, int idx )
1582 {
1583 return snap->joystick_inputs[idx];
1584 }
1585
1586 void
libspectrum_snap_set_joystick_inputs(libspectrum_snap * snap,int idx,int joystick_inputs)1587 libspectrum_snap_set_joystick_inputs( libspectrum_snap *snap, int idx, int joystick_inputs )
1588 {
1589 snap->joystick_inputs[idx] = joystick_inputs;
1590 }
1591
1592 int
libspectrum_snap_kempston_mouse_active(libspectrum_snap * snap)1593 libspectrum_snap_kempston_mouse_active( libspectrum_snap *snap )
1594 {
1595 return snap->kempston_mouse_active;
1596 }
1597
1598 void
libspectrum_snap_set_kempston_mouse_active(libspectrum_snap * snap,int kempston_mouse_active)1599 libspectrum_snap_set_kempston_mouse_active( libspectrum_snap *snap, int kempston_mouse_active )
1600 {
1601 snap->kempston_mouse_active = kempston_mouse_active;
1602 }
1603
1604 int
libspectrum_snap_simpleide_active(libspectrum_snap * snap)1605 libspectrum_snap_simpleide_active( libspectrum_snap *snap )
1606 {
1607 return snap->simpleide_active;
1608 }
1609
1610 void
libspectrum_snap_set_simpleide_active(libspectrum_snap * snap,int simpleide_active)1611 libspectrum_snap_set_simpleide_active( libspectrum_snap *snap, int simpleide_active )
1612 {
1613 snap->simpleide_active = simpleide_active;
1614 }
1615
1616 int
libspectrum_snap_divide_active(libspectrum_snap * snap)1617 libspectrum_snap_divide_active( libspectrum_snap *snap )
1618 {
1619 return snap->divide_active;
1620 }
1621
1622 void
libspectrum_snap_set_divide_active(libspectrum_snap * snap,int divide_active)1623 libspectrum_snap_set_divide_active( libspectrum_snap *snap, int divide_active )
1624 {
1625 snap->divide_active = divide_active;
1626 }
1627
1628 int
libspectrum_snap_divide_eprom_writeprotect(libspectrum_snap * snap)1629 libspectrum_snap_divide_eprom_writeprotect( libspectrum_snap *snap )
1630 {
1631 return snap->divide_eprom_writeprotect;
1632 }
1633
1634 void
libspectrum_snap_set_divide_eprom_writeprotect(libspectrum_snap * snap,int divide_eprom_writeprotect)1635 libspectrum_snap_set_divide_eprom_writeprotect( libspectrum_snap *snap, int divide_eprom_writeprotect )
1636 {
1637 snap->divide_eprom_writeprotect = divide_eprom_writeprotect;
1638 }
1639
1640 int
libspectrum_snap_divide_paged(libspectrum_snap * snap)1641 libspectrum_snap_divide_paged( libspectrum_snap *snap )
1642 {
1643 return snap->divide_paged;
1644 }
1645
1646 void
libspectrum_snap_set_divide_paged(libspectrum_snap * snap,int divide_paged)1647 libspectrum_snap_set_divide_paged( libspectrum_snap *snap, int divide_paged )
1648 {
1649 snap->divide_paged = divide_paged;
1650 }
1651
1652 libspectrum_byte
libspectrum_snap_divide_control(libspectrum_snap * snap)1653 libspectrum_snap_divide_control( libspectrum_snap *snap )
1654 {
1655 return snap->divide_control;
1656 }
1657
1658 void
libspectrum_snap_set_divide_control(libspectrum_snap * snap,libspectrum_byte divide_control)1659 libspectrum_snap_set_divide_control( libspectrum_snap *snap, libspectrum_byte divide_control )
1660 {
1661 snap->divide_control = divide_control;
1662 }
1663
1664 size_t
libspectrum_snap_divide_pages(libspectrum_snap * snap)1665 libspectrum_snap_divide_pages( libspectrum_snap *snap )
1666 {
1667 return snap->divide_pages;
1668 }
1669
1670 void
libspectrum_snap_set_divide_pages(libspectrum_snap * snap,size_t divide_pages)1671 libspectrum_snap_set_divide_pages( libspectrum_snap *snap, size_t divide_pages )
1672 {
1673 snap->divide_pages = divide_pages;
1674 }
1675
1676 libspectrum_byte*
libspectrum_snap_divide_eprom(libspectrum_snap * snap,int idx)1677 libspectrum_snap_divide_eprom( libspectrum_snap *snap, int idx )
1678 {
1679 return snap->divide_eprom[idx];
1680 }
1681
1682 void
libspectrum_snap_set_divide_eprom(libspectrum_snap * snap,int idx,libspectrum_byte * divide_eprom)1683 libspectrum_snap_set_divide_eprom( libspectrum_snap *snap, int idx, libspectrum_byte* divide_eprom )
1684 {
1685 snap->divide_eprom[idx] = divide_eprom;
1686 }
1687
1688 libspectrum_byte*
libspectrum_snap_divide_ram(libspectrum_snap * snap,int idx)1689 libspectrum_snap_divide_ram( libspectrum_snap *snap, int idx )
1690 {
1691 return snap->divide_ram[idx];
1692 }
1693
1694 void
libspectrum_snap_set_divide_ram(libspectrum_snap * snap,int idx,libspectrum_byte * divide_ram)1695 libspectrum_snap_set_divide_ram( libspectrum_snap *snap, int idx, libspectrum_byte* divide_ram )
1696 {
1697 snap->divide_ram[idx] = divide_ram;
1698 }
1699
1700 int
libspectrum_snap_fuller_box_active(libspectrum_snap * snap)1701 libspectrum_snap_fuller_box_active( libspectrum_snap *snap )
1702 {
1703 return snap->fuller_box_active;
1704 }
1705
1706 void
libspectrum_snap_set_fuller_box_active(libspectrum_snap * snap,int fuller_box_active)1707 libspectrum_snap_set_fuller_box_active( libspectrum_snap *snap, int fuller_box_active )
1708 {
1709 snap->fuller_box_active = fuller_box_active;
1710 }
1711
1712 int
libspectrum_snap_melodik_active(libspectrum_snap * snap)1713 libspectrum_snap_melodik_active( libspectrum_snap *snap )
1714 {
1715 return snap->melodik_active;
1716 }
1717
1718 void
libspectrum_snap_set_melodik_active(libspectrum_snap * snap,int melodik_active)1719 libspectrum_snap_set_melodik_active( libspectrum_snap *snap, int melodik_active )
1720 {
1721 snap->melodik_active = melodik_active;
1722 }
1723
1724 int
libspectrum_snap_specdrum_active(libspectrum_snap * snap)1725 libspectrum_snap_specdrum_active( libspectrum_snap *snap )
1726 {
1727 return snap->specdrum_active;
1728 }
1729
1730 void
libspectrum_snap_set_specdrum_active(libspectrum_snap * snap,int specdrum_active)1731 libspectrum_snap_set_specdrum_active( libspectrum_snap *snap, int specdrum_active )
1732 {
1733 snap->specdrum_active = specdrum_active;
1734 }
1735
1736 libspectrum_signed_byte
libspectrum_snap_specdrum_dac(libspectrum_snap * snap)1737 libspectrum_snap_specdrum_dac( libspectrum_snap *snap )
1738 {
1739 return snap->specdrum_dac;
1740 }
1741
1742 void
libspectrum_snap_set_specdrum_dac(libspectrum_snap * snap,libspectrum_signed_byte specdrum_dac)1743 libspectrum_snap_set_specdrum_dac( libspectrum_snap *snap, libspectrum_signed_byte specdrum_dac )
1744 {
1745 snap->specdrum_dac = specdrum_dac;
1746 }
1747
1748 int
libspectrum_snap_spectranet_active(libspectrum_snap * snap)1749 libspectrum_snap_spectranet_active( libspectrum_snap *snap )
1750 {
1751 return snap->spectranet_active;
1752 }
1753
1754 void
libspectrum_snap_set_spectranet_active(libspectrum_snap * snap,int spectranet_active)1755 libspectrum_snap_set_spectranet_active( libspectrum_snap *snap, int spectranet_active )
1756 {
1757 snap->spectranet_active = spectranet_active;
1758 }
1759
1760 int
libspectrum_snap_spectranet_paged(libspectrum_snap * snap)1761 libspectrum_snap_spectranet_paged( libspectrum_snap *snap )
1762 {
1763 return snap->spectranet_paged;
1764 }
1765
1766 void
libspectrum_snap_set_spectranet_paged(libspectrum_snap * snap,int spectranet_paged)1767 libspectrum_snap_set_spectranet_paged( libspectrum_snap *snap, int spectranet_paged )
1768 {
1769 snap->spectranet_paged = spectranet_paged;
1770 }
1771
1772 int
libspectrum_snap_spectranet_paged_via_io(libspectrum_snap * snap)1773 libspectrum_snap_spectranet_paged_via_io( libspectrum_snap *snap )
1774 {
1775 return snap->spectranet_paged_via_io;
1776 }
1777
1778 void
libspectrum_snap_set_spectranet_paged_via_io(libspectrum_snap * snap,int spectranet_paged_via_io)1779 libspectrum_snap_set_spectranet_paged_via_io( libspectrum_snap *snap, int spectranet_paged_via_io )
1780 {
1781 snap->spectranet_paged_via_io = spectranet_paged_via_io;
1782 }
1783
1784 int
libspectrum_snap_spectranet_nmi_flipflop(libspectrum_snap * snap)1785 libspectrum_snap_spectranet_nmi_flipflop( libspectrum_snap *snap )
1786 {
1787 return snap->spectranet_nmi_flipflop;
1788 }
1789
1790 void
libspectrum_snap_set_spectranet_nmi_flipflop(libspectrum_snap * snap,int spectranet_nmi_flipflop)1791 libspectrum_snap_set_spectranet_nmi_flipflop( libspectrum_snap *snap, int spectranet_nmi_flipflop )
1792 {
1793 snap->spectranet_nmi_flipflop = spectranet_nmi_flipflop;
1794 }
1795
1796 int
libspectrum_snap_spectranet_programmable_trap_active(libspectrum_snap * snap)1797 libspectrum_snap_spectranet_programmable_trap_active( libspectrum_snap *snap )
1798 {
1799 return snap->spectranet_programmable_trap_active;
1800 }
1801
1802 void
libspectrum_snap_set_spectranet_programmable_trap_active(libspectrum_snap * snap,int spectranet_programmable_trap_active)1803 libspectrum_snap_set_spectranet_programmable_trap_active( libspectrum_snap *snap, int spectranet_programmable_trap_active )
1804 {
1805 snap->spectranet_programmable_trap_active = spectranet_programmable_trap_active;
1806 }
1807
1808 int
libspectrum_snap_spectranet_programmable_trap_msb(libspectrum_snap * snap)1809 libspectrum_snap_spectranet_programmable_trap_msb( libspectrum_snap *snap )
1810 {
1811 return snap->spectranet_programmable_trap_msb;
1812 }
1813
1814 void
libspectrum_snap_set_spectranet_programmable_trap_msb(libspectrum_snap * snap,int spectranet_programmable_trap_msb)1815 libspectrum_snap_set_spectranet_programmable_trap_msb( libspectrum_snap *snap, int spectranet_programmable_trap_msb )
1816 {
1817 snap->spectranet_programmable_trap_msb = spectranet_programmable_trap_msb;
1818 }
1819
1820 int
libspectrum_snap_spectranet_all_traps_disabled(libspectrum_snap * snap)1821 libspectrum_snap_spectranet_all_traps_disabled( libspectrum_snap *snap )
1822 {
1823 return snap->spectranet_all_traps_disabled;
1824 }
1825
1826 void
libspectrum_snap_set_spectranet_all_traps_disabled(libspectrum_snap * snap,int spectranet_all_traps_disabled)1827 libspectrum_snap_set_spectranet_all_traps_disabled( libspectrum_snap *snap, int spectranet_all_traps_disabled )
1828 {
1829 snap->spectranet_all_traps_disabled = spectranet_all_traps_disabled;
1830 }
1831
1832 int
libspectrum_snap_spectranet_rst8_trap_disabled(libspectrum_snap * snap)1833 libspectrum_snap_spectranet_rst8_trap_disabled( libspectrum_snap *snap )
1834 {
1835 return snap->spectranet_rst8_trap_disabled;
1836 }
1837
1838 void
libspectrum_snap_set_spectranet_rst8_trap_disabled(libspectrum_snap * snap,int spectranet_rst8_trap_disabled)1839 libspectrum_snap_set_spectranet_rst8_trap_disabled( libspectrum_snap *snap, int spectranet_rst8_trap_disabled )
1840 {
1841 snap->spectranet_rst8_trap_disabled = spectranet_rst8_trap_disabled;
1842 }
1843
1844 int
libspectrum_snap_spectranet_deny_downstream_a15(libspectrum_snap * snap)1845 libspectrum_snap_spectranet_deny_downstream_a15( libspectrum_snap *snap )
1846 {
1847 return snap->spectranet_deny_downstream_a15;
1848 }
1849
1850 void
libspectrum_snap_set_spectranet_deny_downstream_a15(libspectrum_snap * snap,int spectranet_deny_downstream_a15)1851 libspectrum_snap_set_spectranet_deny_downstream_a15( libspectrum_snap *snap, int spectranet_deny_downstream_a15 )
1852 {
1853 snap->spectranet_deny_downstream_a15 = spectranet_deny_downstream_a15;
1854 }
1855
1856 int
libspectrum_snap_spectranet_page_a(libspectrum_snap * snap)1857 libspectrum_snap_spectranet_page_a( libspectrum_snap *snap )
1858 {
1859 return snap->spectranet_page_a;
1860 }
1861
1862 void
libspectrum_snap_set_spectranet_page_a(libspectrum_snap * snap,int spectranet_page_a)1863 libspectrum_snap_set_spectranet_page_a( libspectrum_snap *snap, int spectranet_page_a )
1864 {
1865 snap->spectranet_page_a = spectranet_page_a;
1866 }
1867
1868 int
libspectrum_snap_spectranet_page_b(libspectrum_snap * snap)1869 libspectrum_snap_spectranet_page_b( libspectrum_snap *snap )
1870 {
1871 return snap->spectranet_page_b;
1872 }
1873
1874 void
libspectrum_snap_set_spectranet_page_b(libspectrum_snap * snap,int spectranet_page_b)1875 libspectrum_snap_set_spectranet_page_b( libspectrum_snap *snap, int spectranet_page_b )
1876 {
1877 snap->spectranet_page_b = spectranet_page_b;
1878 }
1879
1880 libspectrum_word
libspectrum_snap_spectranet_programmable_trap(libspectrum_snap * snap)1881 libspectrum_snap_spectranet_programmable_trap( libspectrum_snap *snap )
1882 {
1883 return snap->spectranet_programmable_trap;
1884 }
1885
1886 void
libspectrum_snap_set_spectranet_programmable_trap(libspectrum_snap * snap,libspectrum_word spectranet_programmable_trap)1887 libspectrum_snap_set_spectranet_programmable_trap( libspectrum_snap *snap, libspectrum_word spectranet_programmable_trap )
1888 {
1889 snap->spectranet_programmable_trap = spectranet_programmable_trap;
1890 }
1891
1892 libspectrum_byte*
libspectrum_snap_spectranet_w5100(libspectrum_snap * snap,int idx)1893 libspectrum_snap_spectranet_w5100( libspectrum_snap *snap, int idx )
1894 {
1895 return snap->spectranet_w5100[idx];
1896 }
1897
1898 void
libspectrum_snap_set_spectranet_w5100(libspectrum_snap * snap,int idx,libspectrum_byte * spectranet_w5100)1899 libspectrum_snap_set_spectranet_w5100( libspectrum_snap *snap, int idx, libspectrum_byte* spectranet_w5100 )
1900 {
1901 snap->spectranet_w5100[idx] = spectranet_w5100;
1902 }
1903
1904 libspectrum_byte*
libspectrum_snap_spectranet_flash(libspectrum_snap * snap,int idx)1905 libspectrum_snap_spectranet_flash( libspectrum_snap *snap, int idx )
1906 {
1907 return snap->spectranet_flash[idx];
1908 }
1909
1910 void
libspectrum_snap_set_spectranet_flash(libspectrum_snap * snap,int idx,libspectrum_byte * spectranet_flash)1911 libspectrum_snap_set_spectranet_flash( libspectrum_snap *snap, int idx, libspectrum_byte* spectranet_flash )
1912 {
1913 snap->spectranet_flash[idx] = spectranet_flash;
1914 }
1915
1916 libspectrum_byte*
libspectrum_snap_spectranet_ram(libspectrum_snap * snap,int idx)1917 libspectrum_snap_spectranet_ram( libspectrum_snap *snap, int idx )
1918 {
1919 return snap->spectranet_ram[idx];
1920 }
1921
1922 void
libspectrum_snap_set_spectranet_ram(libspectrum_snap * snap,int idx,libspectrum_byte * spectranet_ram)1923 libspectrum_snap_set_spectranet_ram( libspectrum_snap *snap, int idx, libspectrum_byte* spectranet_ram )
1924 {
1925 snap->spectranet_ram[idx] = spectranet_ram;
1926 }
1927
1928 int
libspectrum_snap_late_timings(libspectrum_snap * snap)1929 libspectrum_snap_late_timings( libspectrum_snap *snap )
1930 {
1931 return snap->late_timings;
1932 }
1933
1934 void
libspectrum_snap_set_late_timings(libspectrum_snap * snap,int late_timings)1935 libspectrum_snap_set_late_timings( libspectrum_snap *snap, int late_timings )
1936 {
1937 snap->late_timings = late_timings;
1938 }
1939
1940 int
libspectrum_snap_zx_printer_active(libspectrum_snap * snap)1941 libspectrum_snap_zx_printer_active( libspectrum_snap *snap )
1942 {
1943 return snap->zx_printer_active;
1944 }
1945
1946 void
libspectrum_snap_set_zx_printer_active(libspectrum_snap * snap,int zx_printer_active)1947 libspectrum_snap_set_zx_printer_active( libspectrum_snap *snap, int zx_printer_active )
1948 {
1949 snap->zx_printer_active = zx_printer_active;
1950 }
1951