.title LIB77_TRANSFER    IMPRTL Transfer Vectors

;    Defines entry points for the shareable IMP77 run-time library.
;
;      **  NOTE **
;                  To avoid having to relink all images which
;               access the shareable library, entry points
;               already defined within this module MUST NOT
;               be removed or the order of definition changed.
;
;
;    Updating the module
;
;         Any additions must be made at the end of the module. Two
;      macros are defined to assist in updating :
;
;      CALL_ENTRY :: To add entry points for procedures which are
;                    called by either CALLS or CALLG.
;
                       .macro CALL_ENTRY,name
                          .transfer name
                          .mask name
                          jmp name+2
                          .endm


;      JSB_ENTRY  :: To add entry points for subroutines which are
;                    called by the JSB instruction.
;
                       .macro JSB_ENTRY,name
                          .transfer name
                          jmp name
                          .endm


.page
.psect $vector$,pic,shr,nowrt,exe

	CALL_ENTRY prompt
	CALL_ENTRY currentprompt
	CALL_ENTRY suppressecho
	CALL_ENTRY disableecho
	CALL_ENTRY enableecho
	CALL_ENTRY disableeof
	CALL_ENTRY enableeof
	CALL_ENTRY expandtabs
	CALL_ENTRY passtabs
	CALL_ENTRY digit
	CALL_ENTRY letter
	CALL_ENTRY selectinput
	CALL_ENTRY selectoutput
	CALL_ENTRY openinput
	CALL_ENTRY openoutput
	CALL_ENTRY openappend
	CALL_ENTRY setdefault
	CALL_ENTRY currentdefault
	CALL_ENTRY explode
	CALL_ENTRY defstream
	CALL_ENTRY infilename
	CALL_ENTRY outfilename
	CALL_ENTRY instream
	CALL_ENTRY outstream
	CALL_ENTRY inpos
	CALL_ENTRY outpos
	CALL_ENTRY intype
	CALL_ENTRY outtype
	CALL_ENTRY delete
	CALL_ENTRY closeinput
	CALL_ENTRY closeoutput
	CALL_ENTRY resetinput
	CALL_ENTRY resetoutput
	CALL_ENTRY readrecord
	CALL_ENTRY printrecord
	CALL_ENTRY readsq
	CALL_ENTRY writesq
	CALL_ENTRY readch
	CALL_ENTRY readsymbol
	CALL_ENTRY nextch
	CALL_ENTRY nextsymbol
	CALL_ENTRY printch
	CALL_ENTRY printsymbol
	CALL_ENTRY setmargin
	CALL_ENTRY tab
	CALL_ENTRY skipch
	CALL_ENTRY skipsymbol
	CALL_ENTRY setstreams
	CALL_ENTRY getstreams
	CALL_ENTRY event
	CALL_ENTRY subevent
	CALL_ENTRY eventinfo
	CALL_ENTRY printstring
	CALL_ENTRY readstring
	CALL_ENTRY nextitem
	CALL_ENTRY skipitem
	CALL_ENTRY readitem
	CALL_ENTRY endofinput
	CALL_ENTRY itos
	CALL_ENTRY write
	CALL_ENTRY poctal
	CALL_ENTRY newline
	CALL_ENTRY newlines
	CALL_ENTRY space
	CALL_ENTRY spaces
	CALL_ENTRY newpage
	CALL_ENTRY read
	CALL_ENTRY phex
	CALL_ENTRY printfl
	CALL_ENTRY print
	CALL_ENTRY fracpt
	CALL_ENTRY rem
	CALL_ENTRY username
	CALL_ENTRY processname
	CALL_ENTRY getjpi
	CALL_ENTRY cputime
	CALL_ENTRY deltacpu
	CALL_ENTRY connecttime
	CALL_ENTRY deltaconnect
	CALL_ENTRY adjwsl
	CALL_ENTRY dclexh
	CALL_ENTRY canexh
	CALL_ENTRY cpulimit
	CALL_ENTRY pagefaults
	CALL_ENTRY deltapage
	CALL_ENTRY freestore
	CALL_ENTRY date
	CALL_ENTRY time
	CALL_ENTRY sysmess
	CALL_ENTRY translate
	CALL_ENTRY trnlog
	CALL_ENTRY crelog
	CALL_ENTRY typeof
	CALL_ENTRY sizeof
	CALL_ENTRY imptype
	CALL_ENTRY length
	CALL_ENTRY charno
	CALL_ENTRY substring
	JSB_ENTRY $_a       ; set up dope vector
	JSB_ENTRY $_b       ; array declaration
	JSB_ENTRY $_c       ; unassigned check
	JSB_ENTRY $_d       ; %for ... %cycle  check
	JSB_ENTRY $_e       ; string resolution
	JSB_ENTRY $_f       ; check resolution
	JSB_ENTRY $_h       ; %stop
	JSB_ENTRY $_i       ; string move
	JSB_ENTRY $_k       ; string comparison
	JSB_ENTRY $_l       ; %monitor
	CALL_ENTRY $_m      ; procedure parameter entry
	JSB_ENTRY $_n       ; integer exponentiation
	JSB_ENTRY $_o       ; real exponentiation
	JSB_ENTRY $_p       ; %signal
	JSB_ENTRY $_q       ; multi-dimensional array reference
	JSB_ENTRY $_r       ; one-dimensional array reference
	JSB_ENTRY $_s       ; switch jump
	JSB_ENTRY $_t       ; read ch
	JSB_ENTRY $_u       ; read symbol
	JSB_ENTRY $_v       ; print ch
	JSB_ENTRY $_w       ; print symbol
	CALL_ENTRY settrap
	CALL_ENTRY removetrap
	CALL_ENTRY canctrlc
	CALL_ENTRY onctrlc
	CALL_ENTRY verifying
	CALL_ENTRY batchmode
	CALL_ENTRY prober
	CALL_ENTRY probew
	CALL_ENTRY imp$_init
	CALL_ENTRY imp$streaminit
	CALL_ENTRY imp$catch
	CALL_ENTRY exists
	CALL_ENTRY sqrt
	CALL_ENTRY mod
	CALL_ENTRY log
	CALL_ENTRY logten
	CALL_ENTRY exp
	CALL_ENTRY sin
	CALL_ENTRY cos
	CALL_ENTRY tan
	CALL_ENTRY arcsin
	CALL_ENTRY arccos
	CALL_ENTRY arctan
	CALL_ENTRY randomreal
	CALL_ENTRY randominteger
	CALL_ENTRY changerandoms
	CALL_ENTRY getfab
	CALL_ENTRY dumpfab
	CALL_ENTRY setupfab
	CALL_ENTRY cliparam
	CALL_ENTRY resetrandoms
	CALL_ENTRY expand
	CALL_ENTRY getcmdline
	CALL_ENTRY noprompt
	CALL_ENTRY imp$_event
	JSB_ENTRY $_z
	JSB_ENTRY $_g
	CALL_ENTRY setdefaultprotection
	CALL_ENTRY currentprotection
	JSB_ENTRY $_j
	JSB_ENTRY $_x
	JSB_ENTRY $_y
	CALL_ENTRY ftos
	CALL_ENTRY rtos
	CALL_ENTRY stoi
	CALL_ENTRY abandonoutput
	CALL_ENTRY purge
	CALL_ENTRY rename
	CALL_ENTRY clipresent
	CALL_ENTRY clivalue
	CALL_ENTRY devicemodel
	CALL_ENTRY terminalmodel
	CALL_ENTRY imp$getdev
	CALL_ENTRY imp$new
	CALL_ENTRY imp$dispose
	CALL_ENTRY qualifierpresent
	CALL_ENTRY qualifierr
	CALL_ENTRY qualifieri
	CALL_ENTRY qualifiers
	CALL_ENTRY connectfile
	CALL_ENTRY makefile

.END
