1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
/*
ds81 - Nintendo DS ZX81 emulator
Copyright (C) 2006 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 2 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, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-------------------------------------------------------------------------
Provides the emulation for the ZX81
*/
#ifndef DS81_ZX81_H
#define DS81_ZX81_H
#include "z80.h"
#include "keyboard.h"
/* Initialise the ZX81
*/
void ZX81Init(uint16 *text_vram, uint16 *bitmap_vram, 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);
/* Displays a string on the ZX81's dislpay. The screen is cleared and the
string displayed with \n characters breaking the line.
Not all characters can be respresented by the ZX81, and the screen will be
lost on the next emulation update cycle.
The character '%' toggles inverse video.
ZX81SuspendDisplay() and ZX81ResumeDisplay() should be called so that the
ZX81 can set up its internals.
*/
void ZX81DisplayString(const char *p);
void ZX81SuspendDisplay(void);
void ZX81ResumeDisplay(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
#endif
/* END OF FILE */
|