2 NEC TK-80BS (COMPO BS/80) Emulator 'eTK-80BS'
4 Author : Takeda.Toshiya
13 #define DEVICE_NAME "NEC TK-80BS"
14 #define CONFIG_NAME "tk80bs"
16 // device informations for virtual machine
17 #define FRAMES_PER_SEC 59.9
18 #define LINES_PER_FRAME 262
19 #define CPU_CLOCKS 2048000
20 //#define CPU_START_ADDR 0xf000
22 #define I8255_AUTO_HAND_SHAKE
23 #define SCREEN_WIDTH 256
24 #define SCREEN_HEIGHT 164
25 #define MEMORY_ADDR_MAX 0x10000
26 #define MEMORY_BANK_SIZE 0x200
27 #define IO_ADDR_MAX 0x10000
28 #define SCREEN_WIDTH_ASPECT SCREEN_WIDTH
29 #define SCREEN_HEIGHT_ASPECT SCREEN_HEIGHT
30 #define WINDOW_WIDTH_ASPECT 256
31 #define WINDOW_HEIGHT_ASPECT 192
33 // device informations for win32
34 #define USE_BOOT_MODE 2
36 #define TAPE_BINARY_ONLY
37 #define USE_BINARY_FILE1
38 #define NOTIFY_KEY_DOWN
39 #define USE_ALT_F10_KEY
40 #define USE_AUTO_KEY 5
41 #define USE_AUTO_KEY_RELEASE 6
42 #define USE_AUTO_KEY_NO_CAPS
45 #include "../../common.h"
46 #include "../../fileio.h"
89 uint8 ram[0x5000]; // with TK-M20K
95 // ----------------------------------------
97 // ----------------------------------------
102 // ----------------------------------------
103 // for emulation class
104 // ----------------------------------------
106 // drive virtual machine
112 DEVICE *get_cpu(int index);
119 void initialize_sound(int rate, int samples);
120 uint16* create_sound(int* extra_frames);
121 int sound_buffer_ptr();
124 void key_down(int code, bool repeat);
125 void key_up(int code);
128 void load_binary(int drv, _TCHAR* file_path);
129 void save_binary(int drv, _TCHAR* file_path);
130 void play_tape(_TCHAR* file_path);
131 void rec_tape(_TCHAR* file_path);
133 bool tape_inserted();
136 void update_config();
138 // ----------------------------------------
140 // ----------------------------------------
143 DEVICE* get_device(int id);
145 DEVICE* first_device;