/* 3ds81 - Nintendo 3DS ZX81 emulator Copyright (C) 2021 Ian Cowburn (ianc@noddybox.co.uk) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see ------------------------------------------------------------------------- Provides the emulation for the ZX81 */ #ifndef DS81_ZX81_H #define DS81_ZX81_H #include #include "framebuffer.h" #include "z80.h" #include "keyboard.h" /* Initialise the ZX81 */ void ZX81Init(Z80 *z80); /* Render the display */ void ZX81RenderDisplay(Framebuffer *fb, Z80 *z80); /* Handle keypresses */ void ZX81HandleKey(SoftKey k, int is_pressed); /* Enable fopen() loading of tape files */ void ZX81EnableFileSystem(int enable); /* Set a file to load from tape */ void ZX81SetTape(const Z80Byte *image, int len); /* Reset the 81 */ void ZX81Reset(Z80 *z80); /* Tell the 81 that config may have changed. */ void ZX81Reconfigure(void); /* Interfaces for the Z80 */ Z80Byte ZX81ReadMem(Z80 *z80, Z80Word addr); void ZX81WriteMem(Z80 *z80, Z80Word addr, Z80Byte val); Z80Byte ZX81ReadPort(Z80 *z80, Z80Word port); void ZX81WritePort(Z80 *z80, Z80Word port, Z80Byte val); #define ZX81ReadDisassem ZX81ReadMem /* Interfaces to allows the ZX81 to save/load itself as a snapshot to/from a stream. */ void ZX81SaveSnapshot(FILE *fp); void ZX81LoadSnapshot(FILE *fp); #endif /* END OF FILE */