Hackfix and re-enable strtoull and wcstoull, see bug #3798.
[sdcc.git] / sdcc-extra / emu / rrgb / z80.h.0.21
blob572891e408a4c44a98e6a1f36b0c5f22ee8f2bdb
1 /* Miscellaneous definitions for xz80, copyright (C) 1994 Ian Collier.
2  *
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation; either version 2 of the License, or
6  * (at your option) any later version.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
16  */
18 #include <stdio.h>
20 #define Z80_quit  1
21 #define Z80_NMI   2
22 #define Z80_reset 3
23 #define Z80_load  4
24 #define Z80_save  5
25 #define Z80_log   6
27 #define SEG_SIZE 8192
28 #define SEG_SIZE_BITS 13
29 #define SEG_MASK  0x1FFF
30 #define NUM_SEGS (65536/SEG_SIZE)
32 extern unsigned char mem[];
33 extern unsigned char *segments[NUM_SEGS];
34 extern FILE *binFP;
35 extern int memattr[];
36 extern int hsize,vsize;
37 extern volatile int interrupted;
38 extern int forceok;
41 void printGBfloat(unsigned fhl, unsigned fde);
42 void switchBank( int segment, unsigned bank );
44 extern int mainloop();
46 #define fetch(x) (segments[x>>SEG_SIZE_BITS][x&SEG_MASK])
47 #define fetch2(x) ((segments[(x+1)>>SEG_SIZE_BITS][(x+1)&SEG_MASK]<<8)| segments[x>>SEG_SIZE_BITS][x&SEG_MASK])
49 #define store( addr, value ) segments[addr>>SEG_SIZE_BITS][addr&SEG_MASK]=value;
51 #define store2b(addr,hi,lo) \
52         segments[addr>>SEG_SIZE_BITS][addr&SEG_MASK]=(lo);\
53         segments[(addr+1)>>SEG_SIZE_BITS][(addr+1)&SEG_MASK]=(hi);
55 #define store2(x,y) store2b(x,(y)>>8,(y)&255)
57 #ifdef __GNUC__
58 static void inline storefunc(unsigned short ad,unsigned char b){
59    store(ad,b);
61 #undef store
62 #define store(x,y) storefunc(x,y)
64 static void inline store2func(unsigned short ad,unsigned char b1,unsigned char b2){
65    store2b(ad,b1,b2);
67 #undef store2b
68 #define store2b(x,hi,lo) store2func(x,hi,lo)
69 #endif
71 #define bc ((b<<8)|c)
72 #define de ((d<<8)|e)
73 #define hl ((h<<8)|l)