From: SMTP%"mailserv-reply@kopc.hhs.dk" 3-JAN-1994 09:14:52.99 To: EVERHART CC: Subj: [MEM_EDIT]MEM_EDIT.1-OF-1;1 Date: Mon, 03 Jan 1994 14:41:30 +0100 From: "PMDF Mailserv V4.2" Subject: [MEM_EDIT]MEM_EDIT.1-OF-1;1 To: EVERHART@arisia.gce.com Message-id: <01H78ZQYGESQ8ZDZ76@kopc.hhs.dk> MIME-version: 1.0 Content-type: TEXT/PLAIN Content-transfer-encoding: 7BIT $! ------------------ CUT HERE ----------------------- $ v='f$verify(f$trnlnm("SHARE_UNPACK_VERIFY"))' $! $! This archive created by VMS_SHARE Version 8.3 $! On 21-MAR-1993 17:05:42.78 By user ARNE $! $! The VMS_SHARE software that created this archive $! was written by Andy Harper, Kings College London UK $! -- December 1992 $! $! Credit is due to these people for their original ideas: $! James Gray, Michael Bednarek $! $! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER $! AND EXECUTE AS A COMMAND PROCEDURE ( @name ) $! $! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING: $! 1. MEM.MAR;1 $! 2. Z.FOR;1 $! 3. ZZ.FOR;1 $! $set="set" $set symbol/scope=(nolocal,noglobal) $f=f$parse("SHARE_UNPACK_TEMP","SYS$SCRATCH:."+f$getjpi("","PID")) $e="write sys$error ""%UNPACK"", " $w="write sys$output ""%UNPACK"", " $ if .not. f$trnlnm("SHARE_UNPACK_LOG") then $ w = "!" $ if f$getsyi("CPU") .gt. 127 then $ goto start $ ve=f$getsyi("version") $ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto start $ e "-E-OLDVER, Must run at least VMS 4.4" $ v=f$verify(v) $ exit 44 $unpack: subroutine ! P1=filename, P2=checksum, P3=attributes $ if f$parse(P1) .nes. "" then $ goto dirok $ dn=f$parse(P1,,,"DIRECTORY") $ w "-I-CREDIR, Creating directory ''dn'" $ create/dir 'dn' $ if $status then $ goto dirok $ e "-E-CREDIRFAIL, Unable to create ''dn' File skipped" $ delete 'f'* $ exit $dirok: $ x=f$search(P1) $ if x .eqs. "" then $ goto file_absent $ e "-W-EXISTS, File ''P1' exists. Skipped" $ delete 'f'* $ exit $file_absent: $ w "-I-UNPACK, Unpacking file ", P1 $ n=P1 $ if P3 .nes. "" then $ n=f $ if .not. f$verify() then $ define/user sys$output nl: $ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT 'f'/OUT='n' PROCEDURE GetHex(s,p)LOCAL x1,x2;x1:=INDEX(t,SUBSTR(s,p,1))-1;x2:=INDEX(t, SUBSTR(s,p+1,1))-1;RETURN 16*x1+x2;ENDPROCEDURE; PROCEDURE SkipPartsep LOOP EXITIF MARK(NONE)=END_OF(b);EXITIF INDEX(ERASE_LINE, "-+-+-+-+-+-+-+-+")=1;ENDLOOP;ENDPROCEDURE;PROCEDURE ProcessLine LOCAL c,s,l,b, n,p;c := ERASE_CHARACTER(1);s := ERASE_LINE;IF c = "X" THEN SPLIT_LINE; ENDIF; MOVE_HORIZONTAL(-1);l := LENGTH(s);p := 1;LOOP EXITIF p > l;c := SUBSTR(s,p,1); p := p+1;CASE c FROM ' ' TO '`' ['`']: COPY_TEXT(ASCII(GetHex(s,p))); p:=p+2;[ ' ']: p:=p+1;[INRANGE,OUTRANGE]: COPY_TEXT(c);ENDCASE;ENDLOOP;ENDPROCEDURE; PROCEDURE Decode POSITION(BEGINNING_OF(b));LOOP EXITIF MARK(NONE)=END_OF(b); IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+-")=1 THEN SkipPartSep;ELSE ProcessLine; MOVE_HORIZONTAL(1);ENDIF;ENDLOOP;ENDPROCEDURE;SET(FACILITY_NAME,"UNPACK");SET( SUCCESS,OFF);SET(INFORMATIONAL,OFF);t:="0123456789ABCDEF";f:=GET_INFO( COMMAND_LINE,"file_name");b:=CREATE_BUFFER(f,f);Decode;WRITE_FILE(b,GET_INFO( COMMAND_LINE,"output_file"));QUIT; $ if p3 .eqs. "" then $ goto dl $ open/write fdl &f $ write fdl "RECORD" $ write fdl P3 $ close fdl $ w "-I-CONVRFM, Converting record format to ", P3 $ convert/fdl=&f &f-1 &P1 $dl: delete 'f'* $ checksum 'P1' $ if checksum$checksum .nes. P2 then $ - e "-E-CHKSMFAIL, Checksum of ''P1' failed." $ exit $ endsubroutine $start: $! $ create 'f' X`20`20`20`20`20`20`20`20.title`20`20mem X`20`20`20`20`20`20`20`20$RMSDEF X`20`20`20`20`20`20`20`20$DSCDEF X`20`20`20`20`20`20`20`20.macro`20`20fixdesc,l,a X`20`20`20`20`20`20`20`20.word`20`20`20l X`20`20`20`20`20`20`20`20.byte`20`20`20DSC$K_DTYPE_T X`20`20`20`20`20`20`20`20.byte`20`20`20DSC$K_CLASS_S X`20`20`20`20`20`20`20`20.address`20a X`20`20`20`20`20`20`20`20.endm X; X;`20readonly`20data`20section X; X`20`20`20`20`20`20`20`20.psect`20`20$PDATA`20quad,pic,con,lcl,shr,noexe,nowrt Xargl_edtm:`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20;`20argumentlist`20EDT$EDIT X`20`20`20`20`20`20`20`20.long`20`20`208 X`20`20`20`20`20`20`20`20.address`20memdes`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20;`20in-file X`20`20`20`20`20`20`20`20.address`20memdes`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20;`20out-file X`20`20`20`20`20`20`20`20.long`20`20`200`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20;`20com-file X`20`20`20`20`20`20`20`20.long`20`20`200`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20;`20jou-file X`20`20`20`20`20`20`20`20.long`20`20`200`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20;`20options X`20`20`20`20`20`20`20`20.address`20fileio`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20;`20fileio X`20`20`20`20`20`20`20`20.address`20workio`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20;`20workio X`20`20`20`20`20`20`20`20.long`20`20`200`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20;`20xlate Xargl_initialize:`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20;`20argumentlist`20TPU$INITIALIZE X`20`20`20`20`20`20`20`20.long`20`20`202 X`20`20`20`20`20`20`20`20.address`20pardes`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20;`20callback X`20`20`20`20`20`20`20`20.long`20`20`200`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20;`20user-arg Xargl_cliparse:`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20;`20argumentlist`20TPU$CLIPARSE X`20`20`20`20`20`20`20`20.long`20`20`203 X`20`20`20`20`20`20`20`20.address`20cmddes`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20;`20string X`20`20`20`20`20`20`20`20.address`20fiodes`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20;`20filio X`20`20`20`20`20`20`20`20.address`20usrdes`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20;`20call_user Xargl_control:`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20;`20argumentlist`20TPU$CONTROL X`20`20`20`20`20`20`20`20.long`20`20`201 X`20`20`20`20`20`20`20`20.long`20`20`200`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20;`20integer Xargl_cleanup:`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20;`20argumentlist`20TPU$CLEANUP X`20`20`20`20`20`20`20`20.long`20`20`201 X`20`20`20`20`20`20`20`20.address`20flags`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20;`20flags Xargl_findimagesymbol:`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20;`20argumentlist`20LIB$FIND_IMAGE_SYMBOL X`20`20`20`20`20`20`20`20.long`20`20`204 X`20`20`20`20`20`20`20`20.address`20tcudes`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20;`20file-name X`20`20`20`20`20`20`20`20.address`20tcudes`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20;`20symbol-name X`20`20`20`20`20`20`20`20.address`20symbol`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20;`20symbol-value X`20`20`20`20`20`20`20`20.long`20`20`200`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20;`20image-name Xmemdes:`20fixdesc`206,memadr Xmemadr:`20.ascii`20`20"MEMORY" Xfileio:`20.address`20mem_edt_fileio X`20`20`20`20`20`20`20`20.long`20`20`200 Xworkio:`20.address`20EDT$WORKIO X`20`20`20`20`20`20`20`20.long`20`20`200 Xpardes:`20.address`20mem_tpu_parse X`20`20`20`20`20`20`20`20.long`20`20`200 Xfiodes:`20.address`20mem_tpu_fileio X`20`20`20`20`20`20`20`20.long`20`20`200 Xusrdes:`20.address`20mem_tpu_calluser X`20`20`20`20`20`20`20`20.long`20`20`200 XFNMLEN=29 XCMDLEN=FNMLEN+4 Xcmddes:`20fixdesc`20CMDLEN,cmdadr Xcmdadr:`20.ascii`20`20"TPU`20SYS$COMMON:`5BSYSLIB`5DTPUSHR.EXE" Xflags:`20`20.long`20`20`20TPU$M_RESET_TERMINAL!`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20TPU$M_DELETE_BUFFERS!- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20TPU$M_DELETE_JOURNAL!- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20TPU$M_DELETE_WINDOWS!- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20TPU$M_DELETE_EXITH!- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20TPU$M_EXECUTE_PROC!- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20TPU$M_EXECUTE_FILE!- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20TPU$M_PRUNE_CACHE!- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20TPU$M_KILL_PROCESSES Xtcudes:`20fixdesc`2012,tcuadr Xtcuadr:`20.ascii`20`20"TPU$CALLUSER" X; X;`20writeread`20data`20section X; X`20`20`20`20`20`20`20`20.psect`20`20$LOCAL`20quad,pic,con,lcl,noshr,noexe,wrt Xargl_edit:`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20;`20argumentlist`20EDT$EDIT X`20`20`20`20`20`20`20`20.long`20`20`208 X`20`20`20`20`20`20`20`20.blkl`20`20`201`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20;`20input-file X`20`20`20`20`20`20`20`20.long`20`20`200`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20;`20output-file X`20`20`20`20`20`20`20`20.blkl`20`20`201`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20;`20command-file X`20`20`20`20`20`20`20`20.long`20`20`200`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20;`20journal-file X`20`20`20`20`20`20`20`20.long`20`20`200`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20;`20options X`20`20`20`20`20`20`20`20.long`20`20`200`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20;`20filio X`20`20`20`20`20`20`20`20.long`20`20`200`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20;`20workio X`20`20`20`20`20`20`20`20.long`20`20`200`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20;`20xlate Xcount:`20`20.blkl`20`20`201 Xnlin:`20`20`20.blkl`20`20`201 Xdumdes:`20fixdesc`200,dumdes Xsavdes:`20.blkq`20`20`201 Xmaxlen:`20.blkl`20`20`201 Xlladr:`20`20.blkl`20`20`201 Xsavadr:`20.blkl`20`20`201 Xsymbol:`20.blkl`20`20`201 X; X;`20code`20section X; X`20`20`20`20`20`20`20`20.psect`20`20$CODE`20quad,pic,con,lcl,shr,exe,nowrt X;******************** X; X;`20`20MEM_EDT`20(`20NLIN`20,`20LIN`20,`20LINLEN`20) X; X;`20`20memory`20edit`20with`20EDT-editor X; X;******************** X`20`20`20`20`20`20`20`20.entry`20`20mem_edt,`5Em X`20`20`20`20`20`20`20`20movl`20`20`20`20#0,count X`20`20`20`20`20`20`20`20movl`20`20`20`20@B`5E4(ap),nlin X`20`20`20`20`20`20`20`20movl`20`20`20`20B`5E8(ap),r0 X`20`20`20`20`20`20`20`20movl`20`20`20`20B`5E4(r0),dumdes+4 X`20`20`20`20`20`20`20`20movq`20`20`20`20dumdes,savdes X`20`20`20`20`20`20`20`20movzwl`20`20(r0),maxlen X`20`20`20`20`20`20`20`20movl`20`20`20`20B`5E12(ap),lladr X`20`20`20`20`20`20`20`20movl`20`20`20`20lladr,savadr X`20`20`20`20`20`20`20`20callg`20`20`20argl_edtm,G`5EEDT$EDIT X`20`20`20`20`20`20`20`20movl`20`20`20`20count,@B`5E4(ap) X`20`20`20`20`20`20`20`20ret X;******************** X; X;`20`20MEM_TPU`20(`20NLIN`20,`20LIN`20,`20LINLEN`20) X; X;`20`20memory`20edit`20with`20TPU-editor X; X;******************** X`20`20`20`20`20`20`20`20.entry`20`20mem_tpu,`5Em X`20`20`20`20`20`20`20`20movl`20`20`20`20#0,count X`20`20`20`20`20`20`20`20movl`20`20`20`20@B`5E4(ap),nlin X`20`20`20`20`20`20`20`20movl`20`20`20`20B`5E8(ap),r0 X`20`20`20`20`20`20`20`20movl`20`20`20`20B`5E4(r0),dumdes+4 X`20`20`20`20`20`20`20`20movq`20`20`20`20dumdes,savdes X`20`20`20`20`20`20`20`20movzwl`20`20(r0),maxlen X`20`20`20`20`20`20`20`20movl`20`20`20`20B`5E12(ap),lladr X`20`20`20`20`20`20`20`20movl`20`20`20`20lladr,savadr X`20`20`20`20`20`20`20`20moval`20`20`20G`5ETPU$HANDLER,(fp) X`20`20`20`20`20`20`20`20callg`20`20`20argl_initialize,G`5ETPU$INITIALIZE X`20`20`20`20`20`20`20`20calls`20`20`20#0,G`5ETPU$EXECUTE_INIFILE X`20`20`20`20`20`20`20`20callg`20`20`20argl_control,G`5ETPU$CONTROL X`20`20`20`20`20`20`20`20callg`20`20`20argl_cleanup,G`5ETPU$CLEANUP X`20`20`20`20`20`20`20`20movl`20`20`20`20count,@B`5E4(ap) X`20`20`20`20`20`20`20`20ret X;******************** X; X;`20`20mem_edt_fileio X; X;`20`20fileio`20routine X; X;******************** X`20`20`20`20`20`20`20`20.entry`20`20mem_edt_fileio,`5Em X`20`20`20`20`20`20`20`20movl`20`20`20`20@B`5E8(ap),r0 X`20`20`20`20`20`20`20`20cmpl`20`20`20`20r0,#EDT$K_INPUT_FILE X`20`20`20`20`20`20`20`20beql`20`20`20`2050$ X`20`20`20`20`20`20`20`20cmpl`20`20`20`20r0,#EDT$K_OUTPUT_FILE X`20`20`20`20`20`20`20`20beql`20`20`20`2050$ X`20`20`20`20`20`20`20`20brw`20`20`20`20`201000$ X50$:`20`20`20`20movl`20`20`20`20@B`5E4(ap),r0 X`20`20`20`20`20`20`20`20cmpl`20`20`20`20r0,#EDT$K_OPEN_INPUT X`20`20`20`20`20`20`20`20bneq`20`20`20`20100$ X`20`20`20`20`20`20`20`20brw`20`20`20`20`20900$ X100$:`20`20`20cmpl`20`20`20`20r0,#EDT$K_OPEN_OUTPUT_SEQ X`20`20`20`20`20`20`20`20bneq`20`20`20`20200$ X`20`20`20`20`20`20`20`20brw`20`20`20`20`20900$ X200$:`20`20`20cmpl`20`20`20`20r0,#EDT$K_OPEN_OUTPUT_NOSEQ X`20`20`20`20`20`20`20`20bneq`20`20`20`20300$ X`20`20`20`20`20`20`20`20brw`20`20`20`20`20900$ X300$:`20`20`20cmpl`20`20`20`20r0,#EDT$K_OPEN_IN_OUT X`20`20`20`20`20`20`20`20bneq`20`20`20`20400$ X`20`20`20`20`20`20`20`20brw`20`20`20`20`20900$ X400$:`20`20`20cmpl`20`20`20`20r0,#EDT$K_GET X`20`20`20`20`20`20`20`20bneq`20`20`20`20500$ X`20`20`20`20`20`20`20`20cmpl`20`20`20`20count,nlin X`20`20`20`20`20`20`20`20blss`20`20`20`20450$ X`20`20`20`20`20`20`20`20movq`20`20`20`20savdes,dumdes X`20`20`20`20`20`20`20`20movl`20`20`20`20savadr,lladr X`20`20`20`20`20`20`20`20movl`20`20`20`20#0,count X`20`20`20`20`20`20`20`20movl`20`20`20`20#RMS$_EOF,r0 X`20`20`20`20`20`20`20`20ret X450$:`20`20`20movl`20`20`20`20lladr,r0 X`20`20`20`20`20`20`20`20movw`20`20`20`20(r0),dumdes X`20`20`20`20`20`20`20`20movl`20`20`20`20B`5E12(ap),r0 X`20`20`20`20`20`20`20`20moval`20`20`20dumdes,r1 X`20`20`20`20`20`20`20`20jsb`20`20`20`20`20G`5ESTR$COPY_DX_R8 X`20`20`20`20`20`20`20`20incl`20`20`20`20count X`20`20`20`20`20`20`20`20addl2`20`20`20maxlen,dumdes+4 X`20`20`20`20`20`20`20`20addl2`20`20`20#4,lladr X`20`20`20`20`20`20`20`20movl`20`20`20`20#RMS$_NORMAL,r0 X`20`20`20`20`20`20`20`20ret X500$:`20`20`20cmpl`20`20`20`20r0,#EDT$K_PUT X`20`20`20`20`20`20`20`20bneq`20`20`20`20600$ X`20`20`20`20`20`20`20`20movl`20`20`20`20B`5E12(ap),r1 X`20`20`20`20`20`20`20`20movl`20`20`20`20lladr,r0 X`20`20`20`20`20`20`20`20movw`20`20`20`20(r1),(r0) X`20`20`20`20`20`20`20`20moval`20`20`20dumdes,r0 X`20`20`20`20`20`20`20`20movc3`20`20`20(r1),@B`5E4(r1),@B`5E4(r0) X`20`20`20`20`20`20`20`20incl`20`20`20`20count X`20`20`20`20`20`20`20`20addl2`20`20`20maxlen,dumdes+4 X`20`20`20`20`20`20`20`20addl2`20`20`20#4,lladr X`20`20`20`20`20`20`20`20movl`20`20`20`20#RMS$_NORMAL,r0 X`20`20`20`20`20`20`20`20ret X600$:`20`20`20cmpl`20`20`20`20r0,#EDT$K_CLOSE_DEL X`20`20`20`20`20`20`20`20bneq`20`20`20`20700$ X`20`20`20`20`20`20`20`20brw`20`20`20`20`20900$ X700$:`20`20`20cmpl`20`20`20`20r0,#EDT$K_CLOSE X`20`20`20`20`20`20`20`20bneq`20`20`20`20800$ X`20`20`20`20`20`20`20`20brw`20`20`20`20`20900$ X800$:`20`20`20halt X900$:`20`20`20movl`20`20`20`20#RMS$_NORMAL,r0 X`20`20`20`20`20`20`20`20ret X1000$:`20`20callg`20`20`20(ap),G`5EEDT$FILEIO X`20`20`20`20`20`20`20`20ret X;******************** X; X;`20`20mem_tpu_parse X; X;`20`20parse`20routine X; X;******************** X`20`20`20`20`20`20`20`20.entry`20`20mem_tpu_parse,`5Em X`20`20`20`20`20`20`20`20callg`20`20`20argl_cliparse,G`5ETPU$CLIPARSE X`20`20`20`20`20`20`20`20ret X;******************** X; X;`20`20mem_tpu_fileio X; X;`20`20fileio`20routine X; X;******************** XMEM=88 X`20`20`20`20`20`20`20`20.entry`20`20mem_tpu_fileio,`5Em X`20`20`20`20`20`20`20`20cmpl`20`20`20`20@B`5E4(ap),#TPU$K_OPEN X`20`20`20`20`20`20`20`20bneq`20`20`20`20100$ X`20`20`20`20`20`20`20`20movl`20`20`20`20B`5E12(ap),r0 X25$:`20`20`20`20cmpw`20`20`20`20B`5E2(r0),#TPU$K_FILENAME X`20`20`20`20`20`20`20`20beql`20`20`20`2050$ X`20`20`20`20`20`20`20`20addl2`20`20`20#12,r0 X`20`20`20`20`20`20`20`20brb`20`20`20`20`2025$ X50$:`20`20`20`20cmpw`20`20`20`20(r0),#FNMLEN X`20`20`20`20`20`20`20`20bgeq`20`20`20`2051$ X`20`20`20`20`20`20`20`20brw`20`20`20`20`20200$ X51$:`20`20`20`20cmpc3`20`20`20#FNMLEN,cmdadr+4,@B`5E4(r0) X`20`20`20`20`20`20`20`20tstl`20`20`20`20r0 X`20`20`20`20`20`20`20`20beql`20`20`20`2052$ X`20`20`20`20`20`20`20`20brw`20`20`20`20`20200$ X52$:`20`20`20`20movl`20`20`20`20#MEM,@B`5E8(ap) X`20`20`20`20`20`20`20`20movl`20`20`20`20#RMS$_NORMAL,r0 X`20`20`20`20`20`20`20`20ret X100$:`20`20`20cmpl`20`20`20`20@B`5E8(ap),#MEM X`20`20`20`20`20`20`20`20beql`20`20`20`20101$ X`20`20`20`20`20`20`20`20brw`20`20`20`20`20200$ X101$:`20`20`20cmpl`20`20`20`20@B`5E4(ap),#TPU$K_CLOSE X`20`20`20`20`20`20`20`20bneq`20`20`20`20110$ X`20`20`20`20`20`20`20`20movl`20`20`20`20#RMS$_NORMAL,r0 X`20`20`20`20`20`20`20`20ret X110$:`20`20`20cmpl`20`20`20`20@B`5E4(ap),#TPU$K_CLOSE_DELETE X`20`20`20`20`20`20`20`20bneq`20`20`20`20120$ X`20`20`20`20`20`20`20`20movl`20`20`20`20#RMS$_NORMAL,r0 X`20`20`20`20`20`20`20`20ret X120$:`20`20`20cmpl`20`20`20`20@B`5E4(ap),#TPU$K_GET X`20`20`20`20`20`20`20`20bneq`20`20`20`20130$ X`20`20`20`20`20`20`20`20cmpl`20`20`20`20count,nlin X`20`20`20`20`20`20`20`20blss`20`20`20`20125$ X`20`20`20`20`20`20`20`20movq`20`20`20`20savdes,dumdes X`20`20`20`20`20`20`20`20movl`20`20`20`20savadr,lladr X`20`20`20`20`20`20`20`20movl`20`20`20`20#0,count X`20`20`20`20`20`20`20`20movl`20`20`20`20#RMS$_EOF,r0 X`20`20`20`20`20`20`20`20ret X125$:`20`20`20movl`20`20`20`20lladr,r0 X`20`20`20`20`20`20`20`20movw`20`20`20`20(r0),dumdes X`20`20`20`20`20`20`20`20movl`20`20`20`20B`5E12(ap),r0 X`20`20`20`20`20`20`20`20moval`20`20`20dumdes,r1 X`20`20`20`20`20`20`20`20jsb`20`20`20`20`20G`5ESTR$COPY_DX_R8 X`20`20`20`20`20`20`20`20incl`20`20`20`20count X`20`20`20`20`20`20`20`20addl2`20`20`20maxlen,dumdes+4 X`20`20`20`20`20`20`20`20addl2`20`20`20#4,lladr X`20`20`20`20`20`20`20`20movl`20`20`20`20#RMS$_NORMAL,r0 X`20`20`20`20`20`20`20`20ret X130$:`20`20`20cmpl`20`20`20`20@B`5E4(ap),#TPU$K_PUT X`20`20`20`20`20`20`20`20bneq`20`20`20`20140$ X`20`20`20`20`20`20`20`20movl`20`20`20`20B`5E12(ap),r1 X`20`20`20`20`20`20`20`20movl`20`20`20`20lladr,r0 X`20`20`20`20`20`20`20`20movw`20`20`20`20(r1),(r0) X`20`20`20`20`20`20`20`20moval`20`20`20dumdes,r0 X`20`20`20`20`20`20`20`20movc3`20`20`20(r1),@B`5E4(r1),@B`5E4(r0) X`20`20`20`20`20`20`20`20incl`20`20`20`20count X`20`20`20`20`20`20`20`20addl2`20`20`20maxlen,dumdes+4 X`20`20`20`20`20`20`20`20addl2`20`20`20#4,lladr X`20`20`20`20`20`20`20`20movl`20`20`20`20#RMS$_NORMAL,r0 X`20`20`20`20`20`20`20`20ret X140$:`20`20`20halt X200$:`20`20`20callg`20`20`20(ap),G`5ETPU$FILEIO X`20`20`20`20`20`20`20`20ret X;******************** X; X;`20`20mem_tpu_calluser X; X;`20`20calluser`20routine X; X;******************** X`20`20`20`20`20`20`20`20.entry`20`20mem_tpu_calluser,`5Em X`20`20`20`20`20`20`20`20callg`20`20`20argl_findimagesymbol,G`5ELIB$FIND_IMAGE_ VSYMBOL X`20`20`20`20`20`20`20`20movl`20`20`20`20symbol,r0 X`20`20`20`20`20`20`20`20callg`20`20`20(ap),(r0) X`20`20`20`20`20`20`20`20ret X`20`20`20`20`20`20`20`20.end $ call unpack MEM.MAR;1 1362386109 "" $! $ create 'f' X`20`20`20`20`20`20PROGRAM`20Z X`20`20`20`20`20`20INTEGER*4`20NL,LL(20),I X`20`20`20`20`20`20CHARACTER*80`20L(20) X`20`20`20`20`20`20NL=3 X`20`20`20`20`20`20LL(1)=1 X`20`20`20`20`20`20L(1)(1:LL(1))='A' X`20`20`20`20`20`20LL(2)=2 X`20`20`20`20`20`20L(2)(1:LL(2))='BB' X`20`20`20`20`20`20LL(3)=3 X`20`20`20`20`20`20L(3)(1:LL(3))='CCC' X`20`20`20`20`20`20CALL`20MEM_EDT(NL,L,LL) X`20`20`20`20`20`20DO`20100`20I=1,NL X`20`20`20`20`20`20`20`20WRITE(*,*)`20'>'//L(I)(1:LL(I))//'<' X100`20`20`20CONTINUE X`20`20`20`20`20`20END $ call unpack Z.FOR;1 1685717334 "" $! $ create 'f' X`20`20`20`20`20`20PROGRAM`20ZZ X`20`20`20`20`20`20INTEGER*4`20NL,LL(20),I X`20`20`20`20`20`20CHARACTER*80`20L(20) X`20`20`20`20`20`20NL=3 X`20`20`20`20`20`20LL(1)=1 X`20`20`20`20`20`20L(1)(1:LL(1))='A' X`20`20`20`20`20`20LL(2)=2 X`20`20`20`20`20`20L(2)(1:LL(2))='BB' X`20`20`20`20`20`20LL(3)=3 X`20`20`20`20`20`20L(3)(1:LL(3))='CCC' X`20`20`20`20`20`20CALL`20MEM_TPU(NL,L,LL) X`20`20`20`20`20`20DO`20100`20I=1,NL X`20`20`20`20`20`20`20`20WRITE(*,*)`20'>'//L(I)(1:LL(I))//'<' X100`20`20`20CONTINUE X`20`20`20`20`20`20END $ call unpack ZZ.FOR;1 790639846 "" $ v=f$verify(v) $ exit