home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / c-kermit / ckmasm.h < prev    next >
C/C++ Source or Header  |  2020-01-01  |  7KB  |  290 lines

  1. /* $Id: ckmasm.h,v 1.4 91/12/15 23:16:43 rick Exp $
  2.  * $Source: /uw/mackermit/RCS/ckmasm.h,v $
  3.  *------------------------------------------------------------------
  4.  * $Log:    ckmasm.h,v $
  5.  * Revision 1.4  91/12/15  23:16:43  rick
  6.  * ut9
  7.  * 
  8.  * Revision 1.3  91/09/12  21:50:29  rick
  9.  * UT(3). Install on watsun
  10.  * 
  11.  * Revision 1.2  1991/09/10  22:21:37  rick
  12.  * Update to UTexas(2)
  13.  *
  14.  * Revision 1.1  1991/09/10  19:17:44  rick
  15.  * Initial revision
  16.  *
  17.  *------------------------------------------------------------------
  18.  * $Endlog$
  19.  */
  20.  
  21. /*
  22.  * file ckmasm.h
  23.  *
  24.  * Module of Mac Kermit containing code for assembler instructions needed
  25.  *
  26.  */
  27.  
  28. /*
  29.   Copyright (C) 1985, 1992, Trustees of Columbia University in the City of New
  30.   York.  Permission is granted to any individual or institution to use this
  31.   software as long as it is not sold for profit.  This copyright notice must be
  32.   retained.  This software may not be included in commercial products without
  33.   written permission of Columbia University.
  34. */
  35.  
  36.  
  37. #ifdef MPW
  38.  
  39. /****************************************************************************/
  40. pascal void
  41. SPtoaA0 ()
  42. /****************************************************************************/
  43. extern 0x208F;            /* MOVE.L SP, (A0) */
  44.  
  45.  
  46.  
  47. /****************************************************************************/
  48. pascal void
  49. loadA0 (params)
  50. char *params;
  51. /****************************************************************************/
  52. extern 0x205F;            /* MOVEA.L (A7)+,A0 */
  53.  
  54.  
  55.  
  56. /****************************************************************************/
  57. pascal void
  58. loadD1 (value)
  59. long value;
  60. /****************************************************************************/
  61. extern 0x221F;            /* MOVE.L (A7)+,D1 */
  62.  
  63.  
  64.  
  65. /****************************************************************************/
  66. pascal void
  67. loadD2 (value)
  68. long value;
  69. /****************************************************************************/
  70. extern 0x241F;            /* MOVE.L (A7)+,D2 */
  71.  
  72.  
  73.  
  74. /****************************************************************************/
  75. pascal void
  76. pushD0 ()
  77. /****************************************************************************/
  78. extern 0x2F00;            /* MOVE.L D0,-(A7) */
  79.  
  80.  
  81.  
  82. /****************************************************************************/
  83. pascal void
  84. poptoA0 ()
  85. /****************************************************************************/
  86. extern 0x209F;            /* MOVE.L (A7)+,(A0) */
  87.  
  88.  
  89.  
  90. /****************************************************************************/
  91. pascal void
  92. saveA0 ()
  93. /****************************************************************************/
  94. extern 0x2F08;            /* MOVEA.L A0,-(A7) */
  95.  
  96.  
  97.  
  98. /****************************************************************************/
  99. pascal void
  100. restoreA0 ()
  101. /****************************************************************************/
  102. extern 0x205F;            /* MOVEA.L (A7)+,A0 */
  103.  
  104.  
  105.  
  106. /****************************************************************************/
  107. pascal void
  108. AllRegs ()
  109. /****************************************************************************/
  110. extern 0xFFFF;            /* D0-D7/A0-A7 (all registers) */
  111.  
  112.  
  113.  
  114. /****************************************************************************/
  115. pascal void
  116. SaveRegs ()
  117. /****************************************************************************/
  118. extern 0x48E7;            /* MOVEM.L <registers>,-(A7) */
  119.  
  120.  
  121.  
  122. /****************************************************************************/
  123. pascal void
  124. RestoreRegs ()
  125. /****************************************************************************/
  126. extern 0x4CDF;            /* MOVEM.L (A7)+,<registers> */
  127.  
  128.  
  129.  
  130. /****************************************************************************/
  131. pascal void
  132. execute ()
  133. /****************************************************************************/
  134. extern 0x4E90;            /* JSR (A0) */
  135.  
  136.  
  137.  
  138. /****************************************************************************/
  139. pascal void
  140. Launch ()
  141. /****************************************************************************/
  142. extern 0xA9F2;            /* Launch Trap */
  143.  
  144.  
  145. /****************************************************************************/
  146. pascal void
  147. Reset ()
  148. /****************************************************************************/
  149. extern 0x4E70;
  150.  
  151.  
  152. #ifdef MPW2
  153.  
  154. /**********************************/
  155. pascal Boolean
  156. WaitNextEvent (eventMask, theEvent, sleep, mouseRgn)
  157. short eventMask;
  158. EventRecord *theEvent;
  159. long sleep;
  160. RgnHandle mouseRgn;
  161. /***********************************/
  162. extern 0xA860;            /* it's a toolbox trap... */
  163.  
  164. #endif /* MPW2 */
  165.  
  166. #define num_WaitNextEvent    0x60
  167. #define num_JugglDispatch    0x8F    /* The Temp Memory calls (RWR) */
  168. #define num_UnknownTrap        0x9F
  169. #define num_ScriptTrap        0xBF
  170.  
  171.  
  172. /***********************************/
  173. pascal void
  174. UnknownTrap ()
  175. /***********************************/
  176. extern 0xA89F;
  177.  
  178. #else /* MPW */
  179.  
  180. /****************************************************************************/
  181. pascal void
  182. SPtoaA0 () = 0x208F;                /* MOVE.L SP, (A0) */
  183.  
  184.  
  185.  
  186. /****************************************************************************/
  187. pascal void
  188. loadA0 (char *params) = 0x205F;            /* MOVEA.L (A7)+,A0 */
  189.  
  190.  
  191.  
  192. /****************************************************************************/
  193. pascal void
  194. loadD1 (long value) = 0x221F;            /* MOVE.L (A7)+,D1 */
  195.  
  196.  
  197.  
  198. /****************************************************************************/
  199. pascal void
  200. loadD2 (long value) = 0x241F;            /* MOVE.L (A7)+,D2 */
  201.  
  202.  
  203.  
  204. /****************************************************************************/
  205. pascal void
  206. pushD0 () = 0x2F00;            /* MOVE.L D0,-(A7) */
  207.  
  208.  
  209.  
  210. /****************************************************************************/
  211. pascal void
  212. poptoA0 () = 0x209F;            /* MOVE.L (A7)+,(A0) */
  213.  
  214.  
  215.  
  216. /****************************************************************************/
  217. pascal void
  218. saveA0 () = 0x2F08;            /* MOVEA.L A0,-(A7) */
  219.  
  220.  
  221.  
  222. /****************************************************************************/
  223. pascal void
  224. restoreA0 () = 0x205F;            /* MOVEA.L (A7)+,A0 */
  225.  
  226.  
  227.  
  228. /****************************************************************************/
  229. pascal void
  230. AllRegs () = 0xFFFF;            /* D0-D7/A0-A7 (all registers) */
  231.  
  232.  
  233.  
  234. /****************************************************************************/
  235. pascal void
  236. SaveRegs () = 0x48E7;            /* MOVEM.L <registers>,-(A7) */
  237.  
  238.  
  239.  
  240. /****************************************************************************/
  241. pascal void
  242. RestoreRegs () = 0x4CDF;            /* MOVEM.L (A7)+,<registers> */
  243.  
  244.  
  245.  
  246. /****************************************************************************/
  247. pascal void
  248. execute () = 0x4E90;            /* JSR (A0) */
  249.  
  250.  
  251.  
  252. /****************************************************************************/
  253. pascal void
  254. Launch () = 0xA9F2;            /* Launch Trap */
  255.  
  256.  
  257. /****************************************************************************/
  258. pascal void
  259. Reset () = 0x4E70;            /* Reboot the Mac */
  260.  
  261.  
  262. /**********************************/
  263. #ifndef THINK_C
  264.  
  265. pascal Boolean
  266. WaitNextEvent (short eventMask, EventRecord *theEvent, long sleep,
  267.            RgnHandle mouseRgn) = 0xA860; /* it's a toolbox trap... */
  268.  
  269. #endif /* !THINK_C */
  270.  
  271. #define num_WaitNextEvent    0x60
  272. #define num_JugglDispatch    0x8F    /* The Temp Memory calls (RWR) */
  273. #define num_UnknownTrap        0x9F
  274. #define num_ScriptTrap        0xBF
  275.  
  276. /***********************************/
  277. pascal void
  278. UnknownTrap () = 0xA89F;
  279.  
  280. #endif /* MPW */
  281.  
  282. /*
  283.  * Junk so Emacs will set local variables to be compatible with Mac/MPW.
  284.  * Should be at end of file.
  285.  * 
  286.  * Local Variables:
  287.  * tab-width: 4
  288.  * End:
  289.  */
  290.