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