home *** CD-ROM | disk | FTP | other *** search
- /*
- * 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 */
- );
- }
-