mirror of
https://github.com/Interlisp/maiko.git
synced 2026-01-26 20:02:37 +00:00
Remove support for the Sun386i. (#329)
This was a machine running SunOS 4, which we no longer support. It had an odd display controller and a compiler with issues that required workarounds. Those compiler issues aren't an issue in today's world, so we don't need to keep the workarounds present for reference. It had a bit of inline assembly, but that is still present in other files for other platforms.
This commit is contained in:
@@ -302,7 +302,6 @@ SET(MAIKO_HDRS
|
|||||||
inc/initkbddefs.h
|
inc/initkbddefs.h
|
||||||
inc/initsoutdefs.h
|
inc/initsoutdefs.h
|
||||||
inc/inlineC.h
|
inc/inlineC.h
|
||||||
inc/inln386i.h
|
|
||||||
inc/inln68k.h
|
inc/inln68k.h
|
||||||
inc/inlndos.h
|
inc/inlndos.h
|
||||||
inc/inlnPS2.h
|
inc/inlnPS2.h
|
||||||
|
|||||||
@@ -11,8 +11,6 @@ Flag Name Meaning/Usage
|
|||||||
_________ ________________________________________________________
|
_________ ________________________________________________________
|
||||||
BYTESWAP Used when compiling for a hardware architecture that has
|
BYTESWAP Used when compiling for a hardware architecture that has
|
||||||
byte-swapped words and word-swapped 32-bit cells, e.g. 80386.
|
byte-swapped words and word-swapped 32-bit cells, e.g. 80386.
|
||||||
I386 True if compiling for the Sun386i (not just any 80386);
|
|
||||||
used because the 386i's display controller is odd.
|
|
||||||
OS4 True if compiling for SunOS 4.x
|
OS4 True if compiling for SunOS 4.x
|
||||||
|
|
||||||
NOPIXRECT Used to suppress pixrect/pixwin options when they're not
|
NOPIXRECT Used to suppress pixrect/pixwin options when they're not
|
||||||
|
|||||||
@@ -44,11 +44,7 @@
|
|||||||
|
|
||||||
/* Translate Lisp_address to 68K address */
|
/* Translate Lisp_address to 68K address */
|
||||||
/* Lisp_addr: word offset */
|
/* Lisp_addr: word offset */
|
||||||
#ifndef I386
|
|
||||||
#define Addr68k_from_LADDR(Lisp_addr) (Lisp_world + (Lisp_addr))
|
#define Addr68k_from_LADDR(Lisp_addr) (Lisp_world + (Lisp_addr))
|
||||||
#else
|
|
||||||
#define Addr68k_from_LADDR(Lisp_addr) ((Lisp_addr) + Lisp_world)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* translate LispPage to 68k address */
|
/* translate LispPage to 68k address */
|
||||||
@@ -62,11 +58,6 @@
|
|||||||
#define StkOffset_from_68K(ptr68k)\
|
#define StkOffset_from_68K(ptr68k)\
|
||||||
((LispPTR)(((UNSIGNED)(ptr68k) - (UNSIGNED)Stackspace) >>1))
|
((LispPTR)(((UNSIGNED)(ptr68k) - (UNSIGNED)Stackspace) >>1))
|
||||||
|
|
||||||
#ifndef I386
|
|
||||||
#define Addr68k_from_StkOffset(stkoffset)\
|
#define Addr68k_from_StkOffset(stkoffset)\
|
||||||
(Stackspace + (stkoffset))
|
(Stackspace + (stkoffset))
|
||||||
#else
|
|
||||||
#define Addr68k_from_StkOffset(stkoffset)\
|
|
||||||
( (stkoffset) + Stackspace)
|
|
||||||
#endif
|
|
||||||
#endif /* ADR68K_H */
|
#endif /* ADR68K_H */
|
||||||
|
|||||||
@@ -14,8 +14,7 @@
|
|||||||
/********************************************************/
|
/********************************************************/
|
||||||
#if defined(SUNDISPLAY) && \
|
#if defined(SUNDISPLAY) && \
|
||||||
!defined(NOPIXRECT) && \
|
!defined(NOPIXRECT) && \
|
||||||
!defined(NEWBITBLT) && \
|
!defined(NEWBITBLT)
|
||||||
!defined(I386)
|
|
||||||
#define prropstyle 1
|
#define prropstyle 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
221
inc/inln386i.h
221
inc/inln386i.h
@@ -1,221 +0,0 @@
|
|||||||
/* $Id: inln386i.h,v 1.2 1999/01/03 02:06:02 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
|
|
||||||
|
|
||||||
/************************************************************************/
|
|
||||||
/* */
|
|
||||||
/* inlinedefs386i.c */
|
|
||||||
/* */
|
|
||||||
/* Dispatch-loop macro definitions specific to the Sun386i */
|
|
||||||
/* */
|
|
||||||
/************************************************************************/
|
|
||||||
|
|
||||||
/************************************************************************/
|
|
||||||
/* */
|
|
||||||
/* Copyright 1989, 1990 Venue, Fuji Xerox Co., Ltd, Xerox Corp. */
|
|
||||||
/* */
|
|
||||||
/* This file is work-product resulting from the Xerox/Venue */
|
|
||||||
/* Agreement dated 18-August-1989 for support of Medley. */
|
|
||||||
/* */
|
|
||||||
/************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
/* undefine these macros so we use the 386i inline code */
|
|
||||||
#undef Get_BYTE_PCMAC0
|
|
||||||
#undef Get_BYTE_PCMAC1
|
|
||||||
#undef Get_BYTE_PCMAC2
|
|
||||||
#undef Get_BYTE_PCMAC3
|
|
||||||
|
|
||||||
#undef Get_DLword_PCMAC0
|
|
||||||
#undef Get_DLword_PCMAC1
|
|
||||||
#undef Get_DLword_PCMAC2
|
|
||||||
#undef Get_DLword_PCMAC3
|
|
||||||
|
|
||||||
#define Get_BYTE_PCMAC0 Get_BYTE_PCMAC0fn()
|
|
||||||
#define Get_BYTE_PCMAC1 Get_BYTE_PCMAC1fn()
|
|
||||||
#define Get_BYTE_PCMAC2 Get_BYTE_PCMAC2fn()
|
|
||||||
#define Get_BYTE_PCMAC3 Get_BYTE_PCMAC3fn()
|
|
||||||
|
|
||||||
#define Get_DLword_PCMAC0 Get_DLword_PCMAC0fn()
|
|
||||||
#define Get_DLword_PCMAC1 Get_DLword_PCMAC1fn()
|
|
||||||
#define Get_DLword_PCMAC2 Get_DLword_PCMAC2fn()
|
|
||||||
#define Get_DLword_PCMAC3 Get_DLword_PCMAC3fn()
|
|
||||||
|
|
||||||
#undef DIFFERENCE
|
|
||||||
#undef PLUS2
|
|
||||||
#undef IDIFFERENCE
|
|
||||||
#undef IPLUS2
|
|
||||||
|
|
||||||
#define DIFFERENCE { \
|
|
||||||
fast_op_difference(POP_TOS_1); \
|
|
||||||
nextop1; \
|
|
||||||
diff_err: \
|
|
||||||
asm("diff_err:"); \
|
|
||||||
asm("addw $7,%bx"); \
|
|
||||||
asm("rorl $15,%ebx"); \
|
|
||||||
asm("popl %ecx"); \
|
|
||||||
N_OP_POPPED_CALL_2(N_OP_difference, GET_POPPED); \
|
|
||||||
}
|
|
||||||
#define IDIFFERENCE { \
|
|
||||||
fast_op_idifference(POP_TOS_1); \
|
|
||||||
nextop1; \
|
|
||||||
idiff_err: \
|
|
||||||
asm("idiff_err:"); \
|
|
||||||
asm("addw $7,%bx"); \
|
|
||||||
asm("rorl $15,%ebx"); \
|
|
||||||
asm("popl %ecx"); \
|
|
||||||
N_OP_POPPED_CALL_2(N_OP_idifference, GET_POPPED); \
|
|
||||||
}
|
|
||||||
#define IDIFFERENCE_N(n) { \
|
|
||||||
fast_op_idifferencen(n); \
|
|
||||||
nextop2; \
|
|
||||||
idiffn_err: \
|
|
||||||
asm("idiffn_err:"); \
|
|
||||||
asm("addw $7,%bx"); \
|
|
||||||
asm("rorl $15,%ebx"); \
|
|
||||||
asm("popl %ecx"); \
|
|
||||||
N_OP_CALL_1d(N_OP_idifferencen, n); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define PLUS2 { \
|
|
||||||
fast_op_plus(POP_TOS_1); \
|
|
||||||
nextop1; \
|
|
||||||
plus_err: \
|
|
||||||
asm("plus_err:"); \
|
|
||||||
asm("addw $7,%bx"); \
|
|
||||||
asm("rorl $15,%ebx"); \
|
|
||||||
asm("popl %ecx"); \
|
|
||||||
N_OP_POPPED_CALL_2(N_OP_plus2, GET_POPPED); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define IPLUS2 { \
|
|
||||||
fast_op_iplus(POP_TOS_1); \
|
|
||||||
nextop1; \
|
|
||||||
iplus_err: \
|
|
||||||
asm("iplus_err:"); \
|
|
||||||
asm("addw $7,%bx"); \
|
|
||||||
asm("rorl $15,%ebx"); \
|
|
||||||
asm("popl %ecx"); \
|
|
||||||
N_OP_POPPED_CALL_2(N_OP_iplus2, GET_POPPED); \
|
|
||||||
}
|
|
||||||
#define IPLUS_N(n) { \
|
|
||||||
fast_op_iplusn(n); \
|
|
||||||
nextop2; \
|
|
||||||
iplusn_err: \
|
|
||||||
asm("iplusn_err:"); \
|
|
||||||
asm("addw $7,%bx"); \
|
|
||||||
asm("rorl $15,%ebx"); \
|
|
||||||
asm("popl %ecx"); \
|
|
||||||
N_OP_CALL_1d(N_OP_iplusn, n); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef GREATERP
|
|
||||||
#define GREATERP { \
|
|
||||||
fast_op_greaterp(POP_TOS_1); \
|
|
||||||
nextop1; \
|
|
||||||
greaterp_err: \
|
|
||||||
asm("greaterp_err: popl %ecx"); \
|
|
||||||
N_OP_POPPED_CALL_2(N_OP_greaterp, GET_POPPED); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef IGREATERP
|
|
||||||
#define IGREATERP { \
|
|
||||||
fast_op_igreaterp(POP_TOS_1); \
|
|
||||||
nextop1; \
|
|
||||||
igreaterp_err: \
|
|
||||||
asm("igreaterp_err: popl %ecx"); \
|
|
||||||
N_OP_POPPED_CALL_2(N_OP_igreaterp, GET_POPPED); \
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#undef LRSH8
|
|
||||||
#define LRSH8 { \
|
|
||||||
fast_op_lrsh8(); \
|
|
||||||
nextop1; \
|
|
||||||
lrsh8_err: \
|
|
||||||
asm("lrsh8_err: "); \
|
|
||||||
N_OP_CALL_1(N_OP_lrsh8); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef LRSH1
|
|
||||||
#define LRSH1 { \
|
|
||||||
fast_op_lrsh1(); \
|
|
||||||
nextop1; \
|
|
||||||
lrsh1_err: \
|
|
||||||
asm("lrsh1_err: "); \
|
|
||||||
N_OP_CALL_1(N_OP_lrsh1); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef LLSH8
|
|
||||||
#define LLSH8 { \
|
|
||||||
fast_op_llsh8(); \
|
|
||||||
nextop1; \
|
|
||||||
llsh8_err: \
|
|
||||||
asm("llsh8_err: "); \
|
|
||||||
N_OP_CALL_1(N_OP_llsh8); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef LLSH1
|
|
||||||
#define LLSH1 { \
|
|
||||||
fast_op_llsh1(); \
|
|
||||||
nextop1; \
|
|
||||||
llsh1_err: \
|
|
||||||
asm("llsh1_err: "); \
|
|
||||||
N_OP_CALL_1(N_OP_llsh1); \
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#undef LOGOR
|
|
||||||
#define LOGOR { \
|
|
||||||
fast_op_logor(POP_TOS_1); \
|
|
||||||
nextop1; \
|
|
||||||
logor_err: \
|
|
||||||
asm("logor_err: popl %ecx"); \
|
|
||||||
asm("rorl $15,%ebx"); \
|
|
||||||
N_OP_POPPED_CALL_2(N_OP_logor, GET_POPPED); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef LOGAND
|
|
||||||
#define LOGAND { \
|
|
||||||
fast_op_logand(POP_TOS_1); \
|
|
||||||
nextop1; \
|
|
||||||
logand_err: \
|
|
||||||
asm("logand_err: popl %ecx"); \
|
|
||||||
asm("rorl $15,%ebx"); \
|
|
||||||
N_OP_POPPED_CALL_2(N_OP_logand, GET_POPPED); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef LOGXOR
|
|
||||||
#define LOGXOR { \
|
|
||||||
fast_op_logxor(POP_TOS_1); \
|
|
||||||
nextop1; \
|
|
||||||
logxor_err: \
|
|
||||||
asm("logxor_err: popl %ecx"); \
|
|
||||||
asm("rorl $15,%ebx"); \
|
|
||||||
N_OP_POPPED_CALL_2(N_OP_logxor, GET_POPPED); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef N_OP_ADDBASE
|
|
||||||
#define N_OP_ADDBASE { \
|
|
||||||
fast_op_addbase(POP_TOS_1); \
|
|
||||||
nextop1; \
|
|
||||||
addbase_err: \
|
|
||||||
asm("addbase_err: popl %ecx"); \
|
|
||||||
asm("addw $7,%bx"); \
|
|
||||||
asm("rorl $15,%ebx"); \
|
|
||||||
N_OP_POPPED_CALL_2(N_OP_addbase, GET_POPPED); \
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#undef N_OP_LOLOC
|
|
||||||
#define N_OP_LOLOC { fast_op_loloc(); nextop1; }
|
|
||||||
#undef N_OP_HILOC
|
|
||||||
#define N_OP_HILOC { fast_op_hiloc(); nextop1; }
|
|
||||||
|
|
||||||
#undef N_OP_VAG2
|
|
||||||
#define N_OP_VAG2 \
|
|
||||||
{ \
|
|
||||||
asm(" subl $4,%esi"); \
|
|
||||||
asm(" movl (%esi),%eax"); \
|
|
||||||
asm(" roll $16,%ebx"); \
|
|
||||||
asm(" movw %ax,%bx"); \
|
|
||||||
asm(" rorl $16,%ebx"); \
|
|
||||||
nextop1; }
|
|
||||||
@@ -614,8 +614,6 @@ typedef struct
|
|||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
#ifndef I386
|
|
||||||
|
|
||||||
/* Get DTD pointer(68k) from typenum */
|
/* Get DTD pointer(68k) from typenum */
|
||||||
#ifdef BIGVM
|
#ifdef BIGVM
|
||||||
#define GetDTD(typnum) (DTDspace + ((typnum)<<4)+((typnum)<<1))
|
#define GetDTD(typnum) (DTDspace + ((typnum)<<4)+((typnum)<<1))
|
||||||
@@ -626,20 +624,6 @@ typedef struct
|
|||||||
/* Get all type entry */
|
/* Get all type entry */
|
||||||
#define GetTypeEntry(address) ( GETWORD(MDStypetbl+((address)>>9)) )
|
#define GetTypeEntry(address) ( GETWORD(MDStypetbl+((address)>>9)) )
|
||||||
|
|
||||||
#else
|
|
||||||
/* Because the 386i's code generator does better with them */
|
|
||||||
/* in this order (does an add, rather than mov-add) */
|
|
||||||
/* JDS 22-mar-90 */
|
|
||||||
|
|
||||||
/* Get DTD pointer(68k) from typenum */
|
|
||||||
#define GetDTD(typnum) (((typnum)<<4) + DTDspace)
|
|
||||||
|
|
||||||
/* Get all type entry */
|
|
||||||
#define GetTypeEntry(address) ( GETWORD(((address)>>9) + MDStypetbl) )
|
|
||||||
|
|
||||||
#endif /* I386 */
|
|
||||||
|
|
||||||
|
|
||||||
/* the type number is in the low 11 bits */
|
/* the type number is in the low 11 bits */
|
||||||
#define GetTypeNumber(address) (GetTypeEntry(address) & 0x7ff)
|
#define GetTypeNumber(address) (GetTypeEntry(address) & 0x7ff)
|
||||||
|
|
||||||
|
|||||||
26
src/bbtsub.c
26
src/bbtsub.c
@@ -1268,19 +1268,6 @@ LispPTR bltchar(LispPTR *args)
|
|||||||
DestPixRect->pr_width = destbpl = abs(pbt->pbtdestbpl);
|
DestPixRect->pr_width = destbpl = abs(pbt->pbtdestbpl);
|
||||||
SrcePixRect->pr_height = DestPixRect->pr_height = pbt->pbtheight;
|
SrcePixRect->pr_height = DestPixRect->pr_height = pbt->pbtheight;
|
||||||
|
|
||||||
#ifdef I386
|
|
||||||
/* Need to take care of byte order, because display bank */
|
|
||||||
/* on the 386 is NOT bit reversed.... */
|
|
||||||
if (IN_DISPLAY_BANK(pbt->pbtsourcehi))
|
|
||||||
mpr_d(SrcePixRect)->md_flags |= MP_I386;
|
|
||||||
else
|
|
||||||
mpr_d(SrcePixRect)->md_flags &= (~MP_I386);
|
|
||||||
if (IN_DISPLAY_BANK(pbt->pbtdesthi))
|
|
||||||
mpr_d(DestPixRect)->md_flags |= MP_I386;
|
|
||||||
else
|
|
||||||
mpr_d(DestPixRect)->md_flags &= (~MP_I386);
|
|
||||||
#endif /* I386 */
|
|
||||||
|
|
||||||
mpr_mdlinebytes(DestPixRect) = (destbpl + 7) >> 3;
|
mpr_mdlinebytes(DestPixRect) = (destbpl + 7) >> 3;
|
||||||
mpr_mdlinebytes(SrcePixRect) = (srcebpl + 7) >> 3;
|
mpr_mdlinebytes(SrcePixRect) = (srcebpl + 7) >> 3;
|
||||||
|
|
||||||
@@ -2096,19 +2083,6 @@ void tedit_bltchar(LispPTR *args)
|
|||||||
DestPixRect->pr_width = destbpl = abs(pbt->pbtdestbpl);
|
DestPixRect->pr_width = destbpl = abs(pbt->pbtdestbpl);
|
||||||
SrcePixRect->pr_height = DestPixRect->pr_height = pbt->pbtheight;
|
SrcePixRect->pr_height = DestPixRect->pr_height = pbt->pbtheight;
|
||||||
|
|
||||||
#ifdef I386
|
|
||||||
/* Need to take care of byte order, because display bank */
|
|
||||||
/* on the 386 is NOT bit reversed.... */
|
|
||||||
if (IN_DISPLAY_BANK(pbt->pbtsourcehi))
|
|
||||||
mpr_d(SrcePixRect)->md_flags |= MP_I386;
|
|
||||||
else
|
|
||||||
mpr_d(SrcePixRect)->md_flags &= (~MP_I386);
|
|
||||||
if (IN_DISPLAY_BANK(pbt->pbtdesthi))
|
|
||||||
mpr_d(DestPixRect)->md_flags |= MP_I386;
|
|
||||||
else
|
|
||||||
mpr_d(DestPixRect)->md_flags &= (~MP_I386);
|
|
||||||
#endif /* I386 */
|
|
||||||
|
|
||||||
mpr_mdlinebytes(DestPixRect) = (destbpl + 7) >> 3;
|
mpr_mdlinebytes(DestPixRect) = (destbpl + 7) >> 3;
|
||||||
mpr_mdlinebytes(SrcePixRect) = (srcebpl + 7) >> 3;
|
mpr_mdlinebytes(SrcePixRect) = (srcebpl + 7) >> 3;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -334,18 +334,10 @@ N_OP_stkscan
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
LispPTR N_OP_stkscan(LispPTR tos) {
|
LispPTR N_OP_stkscan(LispPTR tos) {
|
||||||
#ifdef I386
|
|
||||||
int scratchx[3];
|
|
||||||
int *scratch = (int *)(0xFFFFFFFC & (3 + (UNSIGNED)scratchx));
|
|
||||||
*scratch = tos;
|
|
||||||
nnewframe(CURRENTFX, (DLword *)scratch, POINTERMASK & *scratch);
|
|
||||||
return (swapx(*scratch));
|
|
||||||
#else
|
|
||||||
int scratch;
|
int scratch;
|
||||||
scratch = tos;
|
scratch = tos;
|
||||||
nnewframe(CURRENTFX, (DLword *)&scratch, POINTERMASK & scratch);
|
nnewframe(CURRENTFX, (DLword *)&scratch, POINTERMASK & scratch);
|
||||||
return (swapx(scratch));
|
return (swapx(scratch));
|
||||||
#endif /* I386 */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**************************************************
|
/**************************************************
|
||||||
|
|||||||
@@ -479,10 +479,6 @@ void init_display2(DLword *display_addr, int display_max)
|
|||||||
else
|
else
|
||||||
ColorDisplayPixrect = pr_open("/dev/fb");
|
ColorDisplayPixrect = pr_open("/dev/fb");
|
||||||
DisplayRegionPixrect = mem_point(displaywidth, displayheight, 1, display_addr);
|
DisplayRegionPixrect = mem_point(displaywidth, displayheight, 1, display_addr);
|
||||||
#ifdef I386
|
|
||||||
((struct mpr_data *)DisplayRegionPixrect->pr_data)->md_flags |= MP_I386;
|
|
||||||
((struct mpr_data *)ColorDisplayPixrect->pr_data)->md_flags |= MP_I386;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
pr_getcolormap(ColorDisplayPixrect, 0, 2, oldred, oldgreen, oldblue);
|
pr_getcolormap(ColorDisplayPixrect, 0, 2, oldred, oldgreen, oldblue);
|
||||||
@@ -604,16 +600,6 @@ void display_before_exit() {
|
|||||||
#endif /* DOS */
|
#endif /* DOS */
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DISPLAYBUFFER
|
|
||||||
|
|
||||||
#ifdef I386
|
|
||||||
#define EVENADDR(ptr) (0xFFFFFFFE & (int)ptr)
|
|
||||||
#else
|
|
||||||
#define EVENADDR(ptr) (ptr)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* DISPLAYBUFFER */
|
|
||||||
|
|
||||||
#if defined(DISPLAYBUFFER) || defined(DOS)
|
#if defined(DISPLAYBUFFER) || defined(DOS)
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
@@ -647,16 +633,8 @@ in_display_segment(baseaddr)
|
|||||||
void flush_display_buffer() {
|
void flush_display_buffer() {
|
||||||
#ifdef SUNDISPLAY
|
#ifdef SUNDISPLAY
|
||||||
#ifdef DISPLAYBUFFER
|
#ifdef DISPLAYBUFFER
|
||||||
#ifdef I386
|
|
||||||
bit_reverse_region(DisplayRegion68k, displaywidth, displayheight, DLWORD_PERLINE);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
pr_rop(ColorDisplayPixrect, 0, 0, displaywidth, displayheight, COPY_PIXRECT_TO_COLOR,
|
pr_rop(ColorDisplayPixrect, 0, 0, displaywidth, displayheight, COPY_PIXRECT_TO_COLOR,
|
||||||
DisplayRegionPixrect, 0, 0);
|
DisplayRegionPixrect, 0, 0);
|
||||||
|
|
||||||
#ifdef I386
|
|
||||||
bit_reverse_region(DisplayRegion68k, displaywidth, displayheight, DLWORD_PERLINE);
|
|
||||||
#endif
|
|
||||||
#endif /* DISPLAYBUFFER */
|
#endif /* DISPLAYBUFFER */
|
||||||
#endif /* SUNDISPLAY */
|
#endif /* SUNDISPLAY */
|
||||||
|
|
||||||
@@ -737,18 +715,6 @@ void byte_swapped_displayregion(int x, int y, int w, int h)
|
|||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
void flush_display_lineregion(UNSIGNED x, DLword *ybase, UNSIGNED w, UNSIGNED h)
|
void flush_display_lineregion(UNSIGNED x, DLword *ybase, UNSIGNED w, UNSIGNED h)
|
||||||
#ifdef I386
|
|
||||||
{ /*flush_display_buffer(); */
|
|
||||||
int y;
|
|
||||||
y = ((DLword *)ybase - DisplayRegion68k) / DLWORD_PERLINE;
|
|
||||||
|
|
||||||
bit_reverse_region(ybase, displaywidth, h, DLWORD_PERLINE);
|
|
||||||
pr_rop(ColorDisplayPixrect, x, y, displaywidth, h, COPY_PIXRECT_TO_COLOR, DisplayRegionPixrect, x,
|
|
||||||
y);
|
|
||||||
|
|
||||||
bit_reverse_region(ybase, displaywidth, h, DLWORD_PERLINE);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
{
|
{
|
||||||
int y;
|
int y;
|
||||||
y = ((DLword *)ybase - DisplayRegion68k) / DLWORD_PERLINE;
|
y = ((DLword *)ybase - DisplayRegion68k) / DLWORD_PERLINE;
|
||||||
@@ -766,7 +732,6 @@ void flush_display_lineregion(UNSIGNED x, DLword *ybase, UNSIGNED w, UNSIGNED h)
|
|||||||
TPRINT(("Exit flush_display_lineregion\n"));
|
TPRINT(("Exit flush_display_lineregion\n"));
|
||||||
#endif /* DOS */
|
#endif /* DOS */
|
||||||
}
|
}
|
||||||
#endif /* I386 */
|
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
@@ -786,18 +751,14 @@ void flush_display_lineregion(UNSIGNED x, DLword *ybase, UNSIGNED w, UNSIGNED h)
|
|||||||
#define BITSPERWORD 16
|
#define BITSPERWORD 16
|
||||||
|
|
||||||
void flush_display_ptrregion(DLword *ybase, UNSIGNED bitoffset, UNSIGNED w, UNSIGNED h)
|
void flush_display_ptrregion(DLword *ybase, UNSIGNED bitoffset, UNSIGNED w, UNSIGNED h)
|
||||||
#ifdef I386
|
|
||||||
{ flush_display_buffer(); }
|
|
||||||
#else
|
|
||||||
{
|
{
|
||||||
int y, x, baseoffset;
|
int y, x, baseoffset;
|
||||||
baseoffset = (((DLword *)ybase) - DisplayRegion68k);
|
baseoffset = (((DLword *)ybase) - DisplayRegion68k);
|
||||||
y = baseoffset / DLWORD_PERLINE;
|
y = baseoffset / DLWORD_PERLINE;
|
||||||
x = bitoffset + (BITSPERWORD * (baseoffset - (DLWORD_PERLINE * y)));
|
x = bitoffset + (BITSPERWORD * (baseoffset - (DLWORD_PERLINE * y)));
|
||||||
#endif /* I386 */
|
|
||||||
|
|
||||||
#if (defined(SUNDISPLAY) && defined(DISPLAYBUFFER))
|
#if (defined(SUNDISPLAY) && defined(DISPLAYBUFFER))
|
||||||
pr_rop(ColorDisplayPixrect, x, y, w, h, COPY_PIXRECT_TO_COLOR, DisplayRegionPixrect, x, y);
|
pr_rop(ColorDisplayPixrect, x, y, w, h, COPY_PIXRECT_TO_COLOR, DisplayRegionPixrect, x, y);
|
||||||
#elif (defined(XWINDOW) || defined(DOS))
|
#elif (defined(XWINDOW) || defined(DOS))
|
||||||
TPRINT(("Enter flush_display_ptrregion\n x=%d, y=%d, w=%d, h=%d\n", x, y, w, h));
|
TPRINT(("Enter flush_display_ptrregion\n x=%d, y=%d, w=%d, h=%d\n", x, y, w, h));
|
||||||
(currentdsp->bitblt_to_screen)(currentdsp, DisplayRegion68k, x, y, w, h);
|
(currentdsp->bitblt_to_screen)(currentdsp, DisplayRegion68k, x, y, w, h);
|
||||||
|
|||||||
18
src/main.c
18
src/main.c
@@ -530,26 +530,10 @@ int main(int argc, char *argv[])
|
|||||||
JDS -- 1/18/90 also BITBLTSUB does it now. */
|
JDS -- 1/18/90 also BITBLTSUB does it now. */
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef I386
|
#ifdef DOS
|
||||||
/* 80387 initialization */
|
|
||||||
asm(".data");
|
|
||||||
asm(".align 4");
|
|
||||||
asm("__FP_trunc:");
|
|
||||||
asm(" .globl __FP_trunc");
|
|
||||||
asm(".byte 0x3f");
|
|
||||||
asm(".byte 0x0c");
|
|
||||||
asm("__FP_round:");
|
|
||||||
asm(" .globl __FP_round");
|
|
||||||
asm(".byte 0x3f");
|
|
||||||
asm(".byte 0x00");
|
|
||||||
asm(".text");
|
|
||||||
asm("fldcw __FP_round");
|
|
||||||
#elif DOS
|
|
||||||
_setrealmode(0x3f); /* Don't interrupt on FP overflows */
|
_setrealmode(0x3f); /* Don't interrupt on FP overflows */
|
||||||
_getrealerror();
|
_getrealerror();
|
||||||
#endif /* I386 */
|
|
||||||
|
|
||||||
#ifdef DOS
|
|
||||||
tzset();
|
tzset();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -202,8 +202,6 @@ LispPTR unix_getparm(LispPTR *args) {
|
|||||||
if (strcmp(envname, "MACH") == 0) {
|
if (strcmp(envname, "MACH") == 0) {
|
||||||
#if defined(sparc)
|
#if defined(sparc)
|
||||||
envvalue = "sparc";
|
envvalue = "sparc";
|
||||||
#elif defined(I386)
|
|
||||||
envvalue = "i386";
|
|
||||||
#elif defined(DOS)
|
#elif defined(DOS)
|
||||||
envvalue = "386";
|
envvalue = "386";
|
||||||
#elif defined(MAIKO_OS_MACOS)
|
#elif defined(MAIKO_OS_MACOS)
|
||||||
@@ -215,8 +213,6 @@ LispPTR unix_getparm(LispPTR *args) {
|
|||||||
} else if (strcmp(envname, "ARCH") == 0) {
|
} else if (strcmp(envname, "ARCH") == 0) {
|
||||||
#if defined(sparc)
|
#if defined(sparc)
|
||||||
envvalue = "sun4";
|
envvalue = "sun4";
|
||||||
#elif defined(I386)
|
|
||||||
envvalue = "sun386";
|
|
||||||
#elif defined(DOS)
|
#elif defined(DOS)
|
||||||
envvalue = "dos";
|
envvalue = "dos";
|
||||||
#elif defined(MAIKO_OS_MACOS)
|
#elif defined(MAIKO_OS_MACOS)
|
||||||
|
|||||||
25
src/xc.c
25
src/xc.c
@@ -131,10 +131,6 @@ register LispPTR tscache asm("bx");
|
|||||||
#include "inlnSPARC.h"
|
#include "inlnSPARC.h"
|
||||||
#endif /* SPARCDISP */
|
#endif /* SPARCDISP */
|
||||||
|
|
||||||
#ifdef I386
|
|
||||||
#include "inln386i.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "fast_dsp.h"
|
#include "fast_dsp.h"
|
||||||
|
|
||||||
/* trick now is that pccache points one ahead... */
|
/* trick now is that pccache points one ahead... */
|
||||||
@@ -1059,27 +1055,6 @@ nextopcode:
|
|||||||
case377:
|
case377:
|
||||||
CLARITHEQUAL;
|
CLARITHEQUAL;
|
||||||
|
|
||||||
#ifdef I386
|
|
||||||
/* to defeat the damn optimizer, make it look like */
|
|
||||||
/* we might branch to the error labels. */
|
|
||||||
case 0400: goto plus_err;
|
|
||||||
case 0401: goto iplus_err;
|
|
||||||
case 0402: goto iplusn_err;
|
|
||||||
case 0403: goto idiff_err;
|
|
||||||
case 0404: goto diff_err;
|
|
||||||
case 0405: goto idiffn_err;
|
|
||||||
case 0406: goto greaterp_err;
|
|
||||||
case 0411: goto igreaterp_err;
|
|
||||||
case 0407: goto llsh8_err;
|
|
||||||
case 0410: goto lrsh1_err;
|
|
||||||
case 0414: goto lrsh8_err;
|
|
||||||
case 0417: goto llsh1_err;
|
|
||||||
case 0413: goto logor_err;
|
|
||||||
case 0412: goto logand_err;
|
|
||||||
case 0416: goto logxor_err;
|
|
||||||
case 0415: goto addbase_err;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
default: error("should not default");
|
default: error("should not default");
|
||||||
|
|
||||||
} /* switch */
|
} /* switch */
|
||||||
|
|||||||
Reference in New Issue
Block a user