home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
kermit.columbia.edu
/
kermit.columbia.edu.tar
/
kermit.columbia.edu
/
old
/
ckermit5a190
/
ckmasm.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-11-25
|
7KB
|
290 lines
/* $Id: ckmasm.h,v 1.4 91/12/15 23:16:43 rick Exp $
* $Source: /uw/mackermit/RCS/ckmasm.h,v $
*------------------------------------------------------------------
* $Log: ckmasm.h,v $
* Revision 1.4 91/12/15 23:16:43 rick
* ut9
*
* Revision 1.3 91/09/12 21:50:29 rick
* UT(3). Install on watsun
*
* Revision 1.2 1991/09/10 22:21:37 rick
* Update to UTexas(2)
*
* Revision 1.1 1991/09/10 19:17:44 rick
* Initial revision
*
*------------------------------------------------------------------
* $Endlog$
*/
/*
* file ckmasm.h
*
* Module of Mac Kermit containing code for assembler instructions needed
*
*/
/*
Copyright (C) 1985, 1992, Trustees of Columbia University in the City of New
York. Permission is granted to any individual or institution to use this
software as long as it is not sold for profit. This copyright notice must be
retained. This software may not be included in commercial products without
written permission of Columbia University.
*/
#ifdef MPW
/****************************************************************************/
pascal void
SPtoaA0 ()
/****************************************************************************/
extern 0x208F; /* MOVE.L SP, (A0) */
/****************************************************************************/
pascal void
loadA0 (params)
char *params;
/****************************************************************************/
extern 0x205F; /* MOVEA.L (A7)+,A0 */
/****************************************************************************/
pascal void
loadD1 (value)
long value;
/****************************************************************************/
extern 0x221F; /* MOVE.L (A7)+,D1 */
/****************************************************************************/
pascal void
loadD2 (value)
long value;
/****************************************************************************/
extern 0x241F; /* MOVE.L (A7)+,D2 */
/****************************************************************************/
pascal void
pushD0 ()
/****************************************************************************/
extern 0x2F00; /* MOVE.L D0,-(A7) */
/****************************************************************************/
pascal void
poptoA0 ()
/****************************************************************************/
extern 0x209F; /* MOVE.L (A7)+,(A0) */
/****************************************************************************/
pascal void
saveA0 ()
/****************************************************************************/
extern 0x2F08; /* MOVEA.L A0,-(A7) */
/****************************************************************************/
pascal void
restoreA0 ()
/****************************************************************************/
extern 0x205F; /* MOVEA.L (A7)+,A0 */
/****************************************************************************/
pascal void
AllRegs ()
/****************************************************************************/
extern 0xFFFF; /* D0-D7/A0-A7 (all registers) */
/****************************************************************************/
pascal void
SaveRegs ()
/****************************************************************************/
extern 0x48E7; /* MOVEM.L <registers>,-(A7) */
/****************************************************************************/
pascal void
RestoreRegs ()
/****************************************************************************/
extern 0x4CDF; /* MOVEM.L (A7)+,<registers> */
/****************************************************************************/
pascal void
execute ()
/****************************************************************************/
extern 0x4E90; /* JSR (A0) */
/****************************************************************************/
pascal void
Launch ()
/****************************************************************************/
extern 0xA9F2; /* Launch Trap */
/****************************************************************************/
pascal void
Reset ()
/****************************************************************************/
extern 0x4E70;
#ifdef MPW2
/**********************************/
pascal Boolean
WaitNextEvent (eventMask, theEvent, sleep, mouseRgn)
short eventMask;
EventRecord *theEvent;
long sleep;
RgnHandle mouseRgn;
/***********************************/
extern 0xA860; /* it's a toolbox trap... */
#endif /* MPW2 */
#define num_WaitNextEvent 0x60
#define num_JugglDispatch 0x8F /* The Temp Memory calls (RWR) */
#define num_UnknownTrap 0x9F
#define num_ScriptTrap 0xBF
/***********************************/
pascal void
UnknownTrap ()
/***********************************/
extern 0xA89F;
#else /* MPW */
/****************************************************************************/
pascal void
SPtoaA0 () = 0x208F; /* MOVE.L SP, (A0) */
/****************************************************************************/
pascal void
loadA0 (char *params) = 0x205F; /* MOVEA.L (A7)+,A0 */
/****************************************************************************/
pascal void
loadD1 (long value) = 0x221F; /* MOVE.L (A7)+,D1 */
/****************************************************************************/
pascal void
loadD2 (long value) = 0x241F; /* MOVE.L (A7)+,D2 */
/****************************************************************************/
pascal void
pushD0 () = 0x2F00; /* MOVE.L D0,-(A7) */
/****************************************************************************/
pascal void
poptoA0 () = 0x209F; /* MOVE.L (A7)+,(A0) */
/****************************************************************************/
pascal void
saveA0 () = 0x2F08; /* MOVEA.L A0,-(A7) */
/****************************************************************************/
pascal void
restoreA0 () = 0x205F; /* MOVEA.L (A7)+,A0 */
/****************************************************************************/
pascal void
AllRegs () = 0xFFFF; /* D0-D7/A0-A7 (all registers) */
/****************************************************************************/
pascal void
SaveRegs () = 0x48E7; /* MOVEM.L <registers>,-(A7) */
/****************************************************************************/
pascal void
RestoreRegs () = 0x4CDF; /* MOVEM.L (A7)+,<registers> */
/****************************************************************************/
pascal void
execute () = 0x4E90; /* JSR (A0) */
/****************************************************************************/
pascal void
Launch () = 0xA9F2; /* Launch Trap */
/****************************************************************************/
pascal void
Reset () = 0x4E70; /* Reboot the Mac */
/**********************************/
#ifndef THINK_C
pascal Boolean
WaitNextEvent (short eventMask, EventRecord *theEvent, long sleep,
RgnHandle mouseRgn) = 0xA860; /* it's a toolbox trap... */
#endif /* !THINK_C */
#define num_WaitNextEvent 0x60
#define num_JugglDispatch 0x8F /* The Temp Memory calls (RWR) */
#define num_UnknownTrap 0x9F
#define num_ScriptTrap 0xBF
/***********************************/
pascal void
UnknownTrap () = 0xA89F;
#endif /* MPW */
/*
* Junk so Emacs will set local variables to be compatible with Mac/MPW.
* Should be at end of file.
*
* Local Variables:
* tab-width: 4
* End:
*/