Seq # *Modification Id* Act
----------------------------+
00001 M00S00001.comfcid +++|
00002 M00S00002.comfcid +++|* COMFCID PROVIDES CYBIL TO COMPASS STANDARD INTERFACE
Line S00001 Modification History |
M01 (Added by) | 281l803 |
Seq # *Modification Id* Act
----------------------------+
00003 M01S00001.281l803 +++|*
00004 M01S00002.281l803 +++|* COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
00005 M00S00003.comfcid +++|
00006 M00S00004.comfcid +++| CTEXT COMFCID - CYBIL INTERFACE DEFINITIONS
00007 M00S00005.comfcid +++| SPACE 2
00008 M00S00006.comfcid +++| B1=1
00009 M00S00007.comfcid +++| SPACE 4
00010 M00S00008.comfcid +++|*** THE FOLLOWING DEFINES THE NIL POINTER, INDICATING IN CYBIL
00011 M00S00009.comfcid +++|* A POINTER POINTING TO NOTHING
00012 M00S00010.comfcid +++|
00013 M00S00011.comfcid +++|
00014 M00S00012.comfcid +++|NIL EQU 377777B
00015 M00S00013.comfcid +++| SPACE 4
00016 M00S00014.comfcid +++|*** THE FOLLOWING MACROS DEFINE THE ENTRY/EXIT SEQUENCE OF
00017 M00S00015.comfcid +++|* CYBIL PROCEDURES.
00018 M00S00016.comfcid +++|
00019 M00S00017.comfcid +++|* ENTRY CONDITIONS
00020 M00S00018.comfcid +++|* B1 1
00021 M00S00019.comfcid +++|* B2 POINTER TO CALLER'S STACK FRAME / TOP OF STACK (TOS)
00022 M00S00020.comfcid +++|* B3 STACK LIMIT
00023 M00S00021.comfcid +++|* X1 1ST ARGUMENT THAT FITS IN A REGISTER IF IT FITS (IF ANY)
00024 M00S00022.comfcid +++|* X2 2ND ARGUMENT THAT FITS IN A REGISTER IF IT FITS (IF ANY)
00025 M00S00023.comfcid +++|* X3 3RD ARGUMENT THAT FITS IN A REGISTER IF IT FITS (IF ANY)
00026 M00S00024.comfcid +++|* X4 4TH ARGUMENT THAT FITS IN A REGISTER IF IT FITS (IF ANY)
00027 M00S00025.comfcid +++|* X5 5TH ARGUMENT THAT FITS IN A REGISTER IF IT FITS (IF ANY)
00028 M00S00026.comfcid +++|* B5 POINTER TO ARGUMENT EXTENSION LIST (IF ANY)
00029 M00S00027.comfcid +++|* X7 PROCEDURE LINKAGE WORD (RETURN ADDRESS)
00030 M00S00028.comfcid +++|
00031 M00S00029.comfcid +++|* EXIT CONDITIONS
00032 M00S00030.comfcid +++|* B1 1
00033 M00S00031.comfcid +++|* B2 AS ON ENTRY
00034 M00S00032.comfcid +++|* B3 AS ON ENTRY
00035 M00S00033.comfcid +++|* X1 AS X7 ON ENTRY
00036 M00S00034.comfcid +++|
00037 M00S00035.comfcid +++| SPACE 4
00038 M00S00036.comfcid +++|*** THE FOLLOWING MACRO DEFINES THE ENTRY SEQUENCE
00039 M00S00037.comfcid +++|* USING THE CYBIL STACK DISCIPLINE.
00040 M00S00038.comfcid +++|
00041 M00S00039.comfcid +++|
00042 M00S00040.comfcid +++| PURGMAC ENTR
00043 M00S00041.comfcid +++|
00044 M00S00042.comfcid +++| MACRO ENTR,NAME
00045 M00S00043.comfcid +++| LOCAL MORE
00046 M00S00044.comfcid +++|MORE RJ =XCIL#SPE * CALL PROLOG EXCEPTION ROUTINE
00047 M00S00045.comfcid +++|NAME SX0 B2 * COPY POINTER TO CALLER'S STACK FRAME
00048 M00S00046.comfcid +++| LX0 18 * POSITION IT
00049 M00S00047.comfcid +++| BX6 X7+X0 * MERGE IT INTO LINKAGE WORD
00050 M00S00048.comfcid +++| SB7 6 * SET ROUTINE STACK FRAME SIZE
00051 M00S00049.comfcid +++| SB2 B2-B7 * ADJUST STACK FRAME POINTER
00052 M00S00050.comfcid +++| GE B3,B2,MORE * CHECK IF ROOM IN STACK SEGMENT
00053 M00S00051.comfcid +++| SA6 B2 * STORE LINKAGE WORD INTO STACK
00054 M00S00052.comfcid +++| ENDM
00055 M00S00053.comfcid +++| SPACE 4
00056 M00S00054.comfcid +++|*** DONE DEFINES THE CODE SEQUENCE TO RETURN FROM A
00057 M00S00055.comfcid +++|* CYBIL PROCEDURE.
00058 M00S00056.comfcid +++|
00059 M00S00057.comfcid +++|
00060 M00S00058.comfcid +++| PURGMAC DONE
00061 M00S00059.comfcid +++|
00062 M00S00060.comfcid +++|DONE MACRO
00063 M00S00061.comfcid +++| SA1 B2 * LOAD LINKAGE WORD
00064 M00S00062.comfcid +++| SB7 X1 * GET RETURN ADDRESS
00065 M00S00063.comfcid +++| SB2 B2+6 * RESTORE CALLER'S STACK POINTER
00066 M00S00064.comfcid +++| JP B7 * RETURN
00067 M00S00065.comfcid +++| ENDM
00068 M00S00066.comfcid +++| SPACE 4
00069 M00S00067.comfcid +++|*** THE FOLLOWING MACRO DEFINES THE CALLING SEQUENCE FOR A CYBIL
00070 M00S00068.comfcid +++|* PROGRAM. IT IS ASSUMED, THAT ARGUMENTS ARE ALREADY SET UP.
00071 M00S00069.comfcid +++|
00072 M00S00070.comfcid +++|
00073 M00S00071.comfcid +++| PURGMAC CALL
00074 M00S00072.comfcid +++|
00075 M00S00073.comfcid +++|CALL MACRO P
00076 M00S00074.comfcid +++| LOCAL RETAD
00077 M00S00075.comfcid +++| SX7 RETAD * SET RETURN ADDRESS
00078 M00S00076.comfcid +++| EQ P * TRANSFER CONTROL TO PROCEDURE
00079 M00S00077.comfcid +++|RETAD BSS 0
00080 M00S00078.comfcid +++| ENDM
00081 M00S00079.comfcid +++| SPACE 2
00082 M00S00080.comfcid +++| ENDX