From: Hans Vlems [hvlems@iae.nl] Sent: Wednesday, November 06, 2002 2:17 PM To: Info-VAX@Mvb.Saic.Com Subject: Re: VAX Macro Porting Problems with the stack frame library SF$ "Aaron" schreef in bericht news:99c3a525.0211060922.7f427a14@posting.google.com... > I am trying to port Vax Macro to an Alpha and I have run into a > problem. The stack frame library (SF$) is not supported on an Alpha > and I cannot find any documentation here or on the net about SF$. > > I need to port the following functions to an Alpha: > SF$L_SAVE_FP > SF$L_SAVE_PC > SF$L_SAVE_AP > SF$L_SAVE_REGS > SF$V_SAVE_MASK > SF$S_SAVE_MASK > > I have nothing to tell me what these functions do. The only thing I > have found is that SF$ is not supported on the Alpha. I was wondering > if there is anybody out there that can give me any information on how > these functions work and how to port code that uses them to an Alpha. The format $_ suggests they're constants. A search on STARLET.PAS (VAX/VMS) gave this result: $ sear sys$share:starlet.pas sf$ (* Define stack frame offsets as a separate structure SF$ *) CONST SF$M_C = 1; SF$M_V = 2; SF$M_Z = 4; SF$M_N = 8; SF$M_TBIT = 16; SF$M_IV = 32; SF$M_FU = 64; SF$M_DV = 128; TYPE SF$TYPE = RECORD CASE INTEGER OF 1: (SF$A_HANDLER : $DEFPTR; (* Adr. of handler or 0 if no handler * ) SF$R_SAVE_PSW_OVERLAY : [BYTE(2)] RECORD END; SF$R_SAVE_MASK_OVERLAY : [BYTE(2)] RECORD END; SF$L_SAVE_AP : UNSIGNED; (* saved AP *) SF$L_SAVE_FP : UNSIGNED; (* saved FP *) SF$L_SAVE_PC : UNSIGNED; (* saved PC *) SF$L_SAVE_REGS : UNSIGNED; (* first register saved is saved here * ) 2: (SF$W_SAVE_PSW : [POS(32)] $UWORD; (* saved PSW *) SF$W_SAVE_MASK : [POS(48)] $UWORD; (* saved register mask plus flags *) 4: (SF$V_C : [POS(32)] $BOOL; (* carry *) SF$V_V : [POS(33)] $BOOL; (* overflow *) SF$V_Z : [POS(34)] $BOOL; (* zero *) SF$V_N : [POS(35)] $BOOL; (* negative *) SF$V_TBIT : [POS(36)] $BOOL; (* trace trap enable *) SF$V_IV : [POS(37)] $BOOL; (* integer overflow enable *) SF$V_FU : [POS(38)] $BOOL; (* floating underflow enable *) SF$V_DV : [POS(39)] $BOOL; (* decimal overflow enable *) SF$V_SAVE_MASK : [POS(48)] $BIT12; (* register save mask *) SF$V_CALLS : [POS(61)] $BOOL; (* 1 if CALLS *) SF$V_STACKOFFS : [POS(62)] $BIT2; (* SP offset *) Not sure whether this information will help you though, Hans