Moved dei/deo masks into emulators
This commit is contained in:
parent
76be67efa0
commit
77c8e82419
|
@ -33,18 +33,8 @@ WITH REGARD TO THIS SOFTWARE.
|
||||||
#define PUT2(o, v) { tmp = (v); s->dat[s->ptr - o - 2] = tmp >> 8; s->dat[s->ptr - o - 1] = tmp; }
|
#define PUT2(o, v) { tmp = (v); s->dat[s->ptr - o - 2] = tmp >> 8; s->dat[s->ptr - o - 1] = tmp; }
|
||||||
#define PUSH(stack, v) { if(s->ptr > 254) HALT(2) stack->dat[stack->ptr++] = (v); }
|
#define PUSH(stack, v) { if(s->ptr > 254) HALT(2) stack->dat[stack->ptr++] = (v); }
|
||||||
#define PUSH2(stack, v) { if(s->ptr > 253) HALT(2) tmp = (v); stack->dat[stack->ptr] = (v) >> 8; stack->dat[stack->ptr + 1] = (v); stack->ptr += 2; }
|
#define PUSH2(stack, v) { if(s->ptr > 253) HALT(2) tmp = (v); stack->dat[stack->ptr] = (v) >> 8; stack->dat[stack->ptr + 1] = (v); stack->ptr += 2; }
|
||||||
#define DEO(a, b) { u->dev[a] = b; if((deo_masks[(a) >> 4] >> ((a) & 0xf)) & 0x1) uxn_deo(u, a); }
|
#define DEO(a, b) { u->dev[a] = b; if((deo_mask[(a) >> 4] >> ((a) & 0xf)) & 0x1) uxn_deo(u, a); }
|
||||||
#define DEI(a, b) { PUT(a, ((dei_masks[(b) >> 4] >> ((b) & 0xf)) & 0x1) ? uxn_dei(u, b) : u->dev[b]) }
|
#define DEI(a, b) { PUT(a, ((dei_mask[(b) >> 4] >> ((b) & 0xf)) & 0x1) ? uxn_dei(u, b) : u->dev[b]) }
|
||||||
|
|
||||||
static
|
|
||||||
Uint16 deo_masks[] = {
|
|
||||||
0x6a08, 0x0300, 0xc028, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000,
|
|
||||||
0x0000, 0x0000, 0xa260, 0xa260, 0x0000, 0x0000, 0x0000, 0x0000};
|
|
||||||
|
|
||||||
static
|
|
||||||
Uint16 dei_masks[] = {
|
|
||||||
0x0000, 0x0000, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0000,
|
|
||||||
0x0000, 0x0000, 0x0000, 0x0000, 0x07fd, 0x0000, 0x0000, 0x0000};
|
|
||||||
|
|
||||||
int
|
int
|
||||||
uxn_eval(Uxn *u, Uint16 pc)
|
uxn_eval(Uxn *u, Uint16 pc)
|
||||||
|
|
|
@ -40,6 +40,8 @@ typedef struct Uxn {
|
||||||
extern Uint8 uxn_dei(Uxn *u, Uint8 addr);
|
extern Uint8 uxn_dei(Uxn *u, Uint8 addr);
|
||||||
extern void uxn_deo(Uxn *u, Uint8 addr);
|
extern void uxn_deo(Uxn *u, Uint8 addr);
|
||||||
extern int uxn_halt(Uxn *u, Uint8 instr, Uint8 err, Uint16 addr);
|
extern int uxn_halt(Uxn *u, Uint8 instr, Uint8 err, Uint16 addr);
|
||||||
|
extern Uint16 dei_mask[];
|
||||||
|
extern Uint16 deo_mask[];
|
||||||
|
|
||||||
/* built-ins */
|
/* built-ins */
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,9 @@ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
WITH REGARD TO THIS SOFTWARE.
|
WITH REGARD TO THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
Uint16 deo_mask[] = {0x6a08, 0x0300, 0xc028, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x0000, 0x0000, 0xa260, 0xa260, 0x0000, 0x0000, 0x0000, 0x0000};
|
||||||
|
Uint16 dei_mask[] = {0x0000, 0x0000, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x07fd, 0x0000, 0x0000, 0x0000};
|
||||||
|
|
||||||
static int
|
static int
|
||||||
emu_error(char *msg, const char *err)
|
emu_error(char *msg, const char *err)
|
||||||
{
|
{
|
||||||
|
|
|
@ -46,6 +46,9 @@ static SDL_AudioDeviceID audio_id;
|
||||||
static SDL_Rect gRect;
|
static SDL_Rect gRect;
|
||||||
static SDL_Thread *stdin_thread;
|
static SDL_Thread *stdin_thread;
|
||||||
|
|
||||||
|
Uint16 deo_mask[] = {0x6a08, 0x0300, 0xc028, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x0000, 0x0000, 0xa260, 0xa260, 0x0000, 0x0000, 0x0000, 0x0000};
|
||||||
|
Uint16 dei_mask[] = {0x0000, 0x0000, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x07fd, 0x0000, 0x0000, 0x0000};
|
||||||
|
|
||||||
/* devices */
|
/* devices */
|
||||||
|
|
||||||
static Uint8 zoom = 1;
|
static Uint8 zoom = 1;
|
||||||
|
|
Loading…
Reference in New Issue