home *** CD-ROM | disk | FTP | other *** search
- /****************************************************************************/
- /* mpvaxsjt.c -- REPLACEMENT setjmp & longjmp FUNCTIONS FOR VAX (TEST PGM) */
- /* Created: 12/2/87 Release: 0.7 Version: 12/3/87 */
- /****************************************************************************
- (c) Copyright 1987 by Michael Benjamin Parker (USA SS# 557-49-4130)
-
- All Rights Reserved unless specified in the following include files: */
- #include "mptsk.cpy" /*
-
- DO NOT REMOVE OR ALTER THIS NOTICE AND ITS PROVISIONS.
- ****************************************************************************/
- /* OVERVIEW:
-
- This program tests the mpvaxsj functions. See mpvaxsj.h for more details.
- */
- /****************************************************************************/
- /****************************************************************************/
- /****************************************************************************/
- #include "mpvaxsj.h"
- /****************************************************************************/
-
- int mpvaxsj_protofn(jmper)
- MPVAXSJ jmper;
- {
- register int a= 16;
- register int b= 17;
- register int c= 18;
- register int d= 19;
- register int e= 20;
- register int f= 21;
- register int g= 22;
- register int h= 23;
- register int i= 24;
- register int j= 25;
- register int k= 26;
- register int l= 27;
- register int m= 28;
-
- return(a+b+c+d+e+f+g+h+i+j+k+l+m);
- }
-
- void mpvaxsj_printsp()
- {
- int dumb[1];
- printf("\tsp= %d,\tcond= %d,\tmask= %d,\tap= %d,\tfp= %d,\tpc= %d\n",
- &(dumb[1]),dumb[1], dumb[2], dumb[3], dumb[4], dumb[5]);
- }
-
- void mpvaxsj_test()
- {
- MPVAXSJ jmper;
- int ret;
- register int r11= 11;
- register int r10= 10;
- register int r9= 9;
- register int r8= 8;
- register int r7= 7;
- register int r6= 6;
- register int r5= 5;
-
- printf("\nSetting jumper.\n");
- mpvaxsj_printsp();
- printf("\tRegisters r5-r11: %d, %d, %d, %d, %d, %d, %d\n",
- r5, r6, r7, r8, r9, r10,r11);
- if (!(ret= mpvaxsj_setjmp(jmper))) {
-
- r5=r6=r7=r8=r9=r10=r11= 2;
- printf("\nJumping Jumper\n");
- mpvaxsj_printsp();
- printf("\tRegisters r5-r11: %d, %d, %d, %d, %d, %d, %d\n",
- r5, r6, r7, r8, r9, r10,r11);
- mpvaxsj_longjmp(jmper,2);
- printf("\nShould Never Evaluate\n");
- }
- /* Return Value should be 2. All registers should be restored */
- printf("\nCatching Jump with a %d returned.\n",ret);
- mpvaxsj_printsp();
- printf("\tRegisters r5-r11: %d, %d, %d, %d, %d, %d, %d\n",
- r5, r6, r7, r8, r9, r10,r11);
- }
-
- /* Compile Command: cc -g -o mpvaxsjt mpvaxsjt.c mpvaxsj.s
- */
-
- main()
- {
- mpvaxsj_test();
- printf("mpvaxsj_test() Returned\n");
- }
-
- /****************************************************************************/
-
-