fix off-by-1 screen title fill
[AROS.git] / arch / m68k-amiga / card / cardmiscontrol.c
blobd29d9d36353eba16892d5322d964a49c5218eafd
1 /*
2 Copyright © 1995-2011, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc: CardMiscControl() function.
6 Lang: english
7 */
9 #include <proto/exec.h>
11 #include "card_intern.h"
13 #define STATUSMASK (GAYLE_CS_WR | GAYLE_CS_DAEN)
14 #define IRQMASK (GAYLE_INT_BVD1 | GAYLE_INT_BVD2 | GAYLE_INT_BSY)
16 AROS_LH2(UBYTE, CardMiscControl,
17 AROS_LHA(struct CardHandle*, handle, A1),
18 AROS_LHA(UBYTE, control_bits, D1),
19 struct CardResource*, CardResource, 8, Cardres)
21 AROS_LIBFUNC_INIT
23 volatile struct GayleIO *gio = (struct GayleIO*)GAYLE_BASE;
24 UBYTE control, val;
26 CARDDEBUG(bug("CardMiscControl(%p,%02x)\n", handle, control_bits));
28 if (!ISMINE)
29 return 0;
31 val = control_bits & IRQMASK;
33 Disable();
35 gio->status = control_bits & STATUSMASK;
37 if (val) {
38 control = gio->intena;
39 if (control_bits & CARD_INTF_SETCLR)
40 control |= val;
41 else
42 control &= ~val;
43 gio->intena = control;
46 Enable();
48 return control_bits & (STATUSMASK | IRQMASK | CARD_INTF_SETCLR);
50 AROS_LIBFUNC_EXIT