.TITLE TRANSFER_ALPHA ;+ --- ; ; These Alpha transfer vectors are used because when compiling ; XRN for use with MultiNet, the compiler options are that are ; needed are /STAND=VAXC/PREFIX=ANSI which causes problems in ; that certain functions don't get the DECC$ prefix. This ; allows us to use those functions anyways. ; ;- --- ;+ --- ; ; Vector Generating Macro for Alpha/VMS ; ;- --- .MACRO TRANSFER_VECTOR, NAME, FUNCTION_NAME .PSECT $LINK$,NOWRT,NOEXE .CODE_ADDRESS 'FUNCTION_NAME' ;Transfer to here .ADDRESS 'FUNCTION_NAME' ;New Procedure Descr .PROCEDURE_DESCRIPTOR 'NAME', _'NAME' ;Define Name .WORD ^X1808 ;Flags, Kind=NULL .WORD 0 .WORD 26 ;Entry_RA .WORD 0 ;No signature .ADDRESS _'NAME' ;Code Address .PSECT $CODE,PIC,SHR,EXE,NORD,NOWRT _'NAME': LDQ R28,-16(R27) ;Get the Code Address LDQ R27, -8(R27) JMP R31, (R28) ;Jump there .ENDM TRANSFER_VECTOR CLOSE, DECC$CLOSE TRANSFER_VECTOR FSTAT, DECC$FSTAT TRANSFER_VECTOR ACCESS, DECC$ACCESS TRANSFER_VECTOR CHMOD, DECC$CHMOD TRANSFER_VECTOR DELETE, DECC$DELETE TRANSFER_VECTOR GETPID, DECC$GETPID TRANSFER_VECTOR MKTEMP, DECC$MKTEMP TRANSFER_VECTOR STAT, DECC$STAT TRANSFER_VECTOR SLEEP, DECC$SLEEP TRANSFER_VECTOR MKDIR, DECC$MKDIR TRANSFER_VECTOR KILL, DECC$KILL .END