home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
zip
/
mint
/
mntlib16.lzh
/
MNTLIB16
/
LINEA.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-08-03
|
4KB
|
213 lines
/*
* function form of linea bindings
* ++jrb
*/
#define __NO_INLINE__
#include <linea.h>
void linea0()
{
__asm__ volatile
("
.word 0xA000;
movl a0,%0;
movl a1,%1;
movl a2,%2"
: "=g"(__aline), "=g"(__fonts), "=g"(__funcs) /* outputs */
: /* inputs */
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */
);
}
void linea1()
{
__asm__ volatile
("
.word 0xA001"
: /* outputs */
: /* inputs */
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */
);
}
int linea2()
{
short retvalue;
__asm__ volatile
("
.word 0xA002;
movew d0,%0"
: "=g"(retvalue) /* outputs */
: /* inputs */
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */
);
return (int)retvalue;
}
void linea3()
{
__asm__ volatile
("
.word 0xA003"
: /* outputs */
: /* inputs */
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */
);
}
void linea4()
{
__asm__ volatile
("
.word 0xA004"
: /* outputs */
: /* inputs */
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */
);
}
void linea5()
{
__asm__ volatile
("
.word 0xA005"
: /* outputs */
: /* inputs */
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */
);
}
void linea6()
{
__asm__ volatile
("
.word 0xA006"
: /* outputs */
: /* inputs */
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */
);
}
void linea7(BBPB *P)
{
__asm__ volatile
("
movml d2/a2/a6, sp@-;
movl %0,a6;
.word 0xA007;
movml sp@+, d2/a2/a6"
: /* outputs */
: "r"(P) /* inputs */
: "d0", "d1", "a0", "a1" /* clobbered regs */ \
);
}
void linea8()
{
__asm__ volatile
("
.word 0xA008"
: /* outputs */
: /* inputs */
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */
);
}
void linea9()
{
__asm__ volatile
("
.word 0xA009"
: /* outputs */
: /* inputs */
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */
);
}
void lineaa()
{
__asm__ volatile
("
.word 0xA00A"
: /* outputs */
: /* inputs */
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */
);
}
void lineab()
{
__asm__ volatile
("
.word 0xA00B"
: /* outputs */
: /* inputs */
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */
);
}
void lineac(void *P)
{
__asm__ volatile
("
movl %0,a2;
.word 0xA00C"
: /* outputs */
: "r"(P) /* inputs */
: "d0", "d1", "d2", "a0", "a1", "a2", "a6" /* clobbered regs */
);
}
void __linead(int x, int y, SFORM * sd, void *ss)
{
__asm__ volatile
("
movw %0,d0;
movw %1,d1;
movl %2,a0;
movl %3,a2;
.word 0xA00D"
: /* outputs */
: "r"((short)x), "r"((short)y), "r"(sd), "r"(ss) /* inputs */
: "d0", "d1", "d2", "a0", "a1", "a2", "a6" /* clobbered regs */
);
}
void lineae()
{
__asm__ volatile
("
.word 0xA00E"
: /* outputs */
: /* inputs */
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */
);
}
void lineaf()
{
__asm__ volatile
("
.word 0xA00F"
: /* outputs */
: /* inputs */
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */
);
}