LISTING FOR >special_ldd>online>emac-dir>e_lap_ COMPILED BY Multics LISP Assembly Program, Version 1.1, January 1975 ON 01/26/82 1018.2 mst Tue IN BEHALF OF Holmstedt.SysMaint.a ;;; ****************************************************** ;;; * * ;;; * * ;;; * Copyright (c) 1978 by Massachusetts Institute of * ;;; * Technology and Honeywell Information Systems, Inc. * ;;; * * ;;; * * ;;; ****************************************************** ;;; ;;; ;;; LAP String Hackery ;;; BSG ;;; (declare (nouuo t) (sstatus uuolinks nil)) (declare (*rset t) (setq errset '(lambda n (break foobar)))) ;;; Table generating macro (defun make-n-of macro (x) (let ((howmany (eval (cadr x))) (thingum (eval (caddr x)))) (do ((i 0 (1+ i)) (l nil (cons (list thingum thingum) l))) ((= i howmany) l)))) ;;; Create a pseudo-string object (lap e_lap_$make-dat-ol-black-magic-string subr 1) ; (make-dat-ol-black-magic-string string-ptr) (returns string) ; -2,-1 (ldaq ap|-2) ;get fixnum ptr in q (eppap ap|-2) ;pop it (lls 18.) ; 000000 00SSSS OOOOOO 000000 (als 18.) ; 00SSSS 000000 OOOOOO 000000 (ora 064043,dl) ; 00SSSS 064043 OOOOOO 000000 ;ungc-able string (tra ab|return,*) () ;;; ;;; ;;; EMACS string manipulators ;;; (An EMACS string is either an atom, a string, or a file-cons) ;;; ;;; Take substr of EMACS string (lap e_lap_$gsubstr subr 3) ; (gsubstr stuff pos-0-rel howmany) (returns string) ; -6,-5 -4,-3 -2,-1 (ldq ap|-1) ;len (call ab|cons-string,*) (staq ap|-2) ;save (epprp ap|-2,*) (eppbp ap|-6) ;gets all cases (tsx0 loadup) (lda ap|-3) ;offset (a9bd bp|0,al) (ldq rp|0) ;len (mlr (pr,rl),(pr,rl)) (desc9a bp|0,ql) (desc9a rp|1,ql) (ldaq ap|-2) ;string object (eppap ap|-6) (tra ab|return,*) ;;; Get numeric equivalent of i'th character of EMACS string (entry e_lap_$ggcharn subr 2) ; (ggcharn stuff pos-0-rel) (returns fixnum) ; -4,-3 -2,-1 (eppbp ap|-4) (tsx0 loadup) (lda ap|-1) ;offset (stz ap|-1) (mlr (pr,al),(pr)) (desc9a bp|0,1) (desc9a ap|-1(3),1) (ldaq ap|-2) (eppap ap|-4) (tra ab|return,*) ;;; ;;; Internal subr to get ptr and lth of EMACS string loadup (ldaq bp|0) (eppbp bp|0,*) (cana 077700,dl) ;If it's a cons, then (tze loadup-fileptr) ;load it from file. (cana 010000,dl) ;=atsym (lisp symbol) (tze 2,ic) ;SKIP if string (eppbp bp|4) ;move pointer up to printname (lda bp|0) ;move length into a (eppbp bp|1) ;move string pointer into bp (tra 0,x0) loadup-fileptr (lda bp|3) ;move length into a (lprpbp bp|1) ;move string pointer into bp (tra 0,x0) ;;; Scan EMACS string for next non-printing character (entry e_lap_$tabscan subr 3) ; (tabscan stuff length pos-0-rel) (returns fixnum) ; -6,-5 -4,-3 -2,-1 (eppbp ap|-6) (tsx0 loadup) (ldq ap|-3) (sblq ap|-1) (lda ap|-1) (a9bd bp|0,al) (tct (pr,rl),mask(000)) (desc9a bp|0,ql) (arg tabscan-table) (arg ap|-1) (ldaq ap|-2) (anq (% 000777777777)) (eppap ap|-6) (tra ab|return,*) tabscan-table ;EIS table to scan for non-printing chars (make-n-of 8. -1) ;000-037 (make-n-of 8. 0) ;040-077 (make-n-of 8. 0) ;100-137 (make-n-of 7. 0) ;140-173 000000000001 ;174-177 (make-n-of (- 256. 32.) -1) ;200-777 ;;; ;;; Compare two EMACS strings (actually substring) (entry e_lap_$compare_strings subr 5) ; (compare_strings stuff1 pos-0-rel1 stuff2 pos-0-rel2 length) (returns t/nil) ; -12,-11 -10,-7 -6,-5 -4,3 -2,-1 (eppbp ap|-12) ;firsto (tsx0 loadup) (eppbb bp|0) (ldq ap|-7) ;len (a9bd bb|0,ql) (eppbp ap|-6) ;second (tsx0 loadup) (ldq ap|-3) (a9bd bp|0,ql) (lda ap|-1) ;len (cmpc (pr,rl),(pr,rl)) (desc9a bb|0,al) (desc9a bp|0,al) (tze eql) (ldaq 'nil) (tra r2d2) eql (ldaq 't) r2d2 (eppap ap|-12) (tra ab|return,*) ;;; ;;; Strip leading and trailing whitespace from EMACS string (entry e_lap_$trim subr 1) ; (trim stuff) (returns string) ; -2,-1 (eax7 4,x7) ;get temporaries (eppbp ap|-2) (tsx0 loadup) ;get input string (spribp us|-4) ;save ptr to source (sta us|-2) ;save original length (tsx0 compute-rtrim) ;compute new length in us|-1 (eppbp us|-4,*) ;restore ptr (lda us|-1) (tra do-ltrim) ;now trim leading whitespace ;;; Strip leading whitepace from EMACS string (entry e_lap_$ltrim subr 1) ; (trim stuff) (returns string) ; -2,-1 (eax7 4,x7) ;get temporaries (eppbp ap|-2) (tsx0 loadup) ;get input string (spribp us|-4) do-ltrim (sta us|-2) ;save original length (tct (pr,rl)) ;find first non-whitespace (desc9a bp|0,al) (arg whitespace-table) (arg us|-1) ;result of scan (ldq us|-1) (anq (% 000777777777)) (stq us|-1) (ldq us|-2) ;compute new length (sbq us|-1) (tspbp ab|cons-string,*) ;make return string (staq ap|-2) (epprp ap|-2,*) ;get ptr to length/string (lda us|-1) ;get offset of start of string (ldq rp|0) ;get length of substring (eppbp us|-4,*) ;get ptr to original string (mlr (pr,rl,al),(pr,rl),fill(040)) (desc9a bp|0,ql) (desc9a rp|1,ql) (ldaq ap|-2) ;get result string (eppap ap|-2) (eax7 -4,x7) (tra ab|return,*) ;;; Strip trailing whitespace from EMACS string (entry e_lap_$rtrim subr 1) ; (rtrim stuff) (returns string) ; -2,-1 (eax7 4,x7) ;get temporaries (eppbp ap|-2) (tsx0 loadup) ;get input string (spribp us|-4) (sta us|-2) ;save original length (tsx0 compute-rtrim) ;compute new length (ldq us|-1) (tspbp ab|cons-string,*) ;make return string (staq ap|-2) (epprp ap|-2,*) ;get ptr to length/string (lda rp|0) (eppbp us|-4,*) ;get ptr to original string (mlr (pr,rl),(pr,rl),fill(040)) ;move substring (desc9a bp|0,al) (desc9a rp|1,al) (ldaq ap|-2) ;get result string (eppap ap|-2) (eax7 -4,x7) (tra ab|return,*) compute-rtrim ;internal subr to compute rtrim length (tctr (pr,rl)) (desc9a bp|0,al) (arg whitespace-table) (arg us|-1) ;result of scan (ldq us|-1) (anq (% 000777777777)) (stq us|-1) (ldq us|-2) ;get original length (sbq us|-1) ;compute new length (stq us|-1) (tra 0,x0) whitespace-table ;EIS table to scan for non-whitespace (make-n-of 2. -1) ;000-007 777000777777 ;010-013 (make-n-of 5. -1) ;014-037 000777777777 ;040-043 (make-n-of 7. -1) ;044-077 (make-n-of 16. -1) ;100-177 (make-n-of (- 128. 32.) -1) ;200-777 ;;; ;;; Scan EMACS string with supplied table (entry e_lap_$tct subr 3) ; (tct pos-0-rel tblarrayobj stuff) (returns fixnum) ; -6,-5 -4,-3 -2,-1 (eppbp ap|-2) (tsx0 loadup) (tsx0 tct_stringm) (tct (pr,rl)) (desc9a bp|0,al) (arg lb|0) (arg ap|-5) (tra 0,x0) ;;; Scan EMACS string in reverse with supplied table (entry e_lap_$tctr subr 3) ; (tctr pos-0-rel tblarrayobj stuff) (returns fixnum) ; -6,-5 -4,-3 -2,-1 (eppbp ap|-2) (tsx0 loadup) (ldac ap|-5) ;pointpos is len (tsx0 tct_stringm) (tctr (pr,rl)) (desc9a bp|0,al) (arg lb|0) (arg ap|-5) (tra 0,x0) ;old coroutine cruft tct_stringm ;xec's blew out EIS box. jj (ldq ap|-5) (a9bd bp|0,ql) (epplb ap|-4,*) (epplb lb|2,*) (szn bp|0)(szn lb|0)(szn lb|76) (tsx0 0,x0) (ttf nolose) (lrl 44) (lda fixnum-type,dl) (tra 2,ic) nolose (ldaq ap|-6) (anq (% 000777777777)) (eppap ap|-6) (tra ab|return,*) ;;; ;;; Entries to manipulate the work-string ;;; (entry e_lap_$rplacstring-offset subr 6) ;like next, but last is source offset (eppbp ap|-12) ;-10 for him (tsx0 loadup) (ldq ap|-1) (a9bd bp|0,ql) (eppap ap|-2) (tra rplacj) (entry e_lap_$rplacstring subr 5) ;(allofthat magicptr newchars len offset newlen) ; -12,-11 -10,-7 -6,-5 -4,-3 -2,-1 (eppbp ap|-10) ;new (tsx0 loadup) rplacj (eppbb bp|0) (eppbp ap|-12,*) ;-> magic (eppbp bp|1) (ldq ap|-3) ;offset (a9bd bp|0,ql) (ldq ap|-5) ;len (mlr (pr,rl),(pr,rl)) (desc9a bb|0,ql) (desc9a bp|0,ql) (lda ap|-1) (sta ap|-12,*) (eppap ap|-12) (ldaq 'nil) (tra ab|return,*) (entry e_lap_$delete-chars subr 3) ;.. work-string curpointpos ct ; -6,-5 -4,-3 -2,-1 (eppbp ap|-6,*) (eppbp bp|1) (lda ap|-3) ;point (a9bd bp|0,al) (eppbb bp|0) (lda ap|-1) ;count (a9bd bb|0,al) (lda ap|-6,*) ;-orig count (sbla ap|-3) (sbla ap|-1) (mlr (pr,rl),(pr,rl)) (desc9a bb|0,al) (desc9a bp|0,al) (lcq ap|-1) (asq ap|-6,*) (eppap ap|-6) (ldaq 'nil) (tra ab|return,*) (entry e_lap_$insert-chars subr 4) ; ... workstring offset stuff count ; -10,-7 -6,-5 -4,-3 -2,-1 (eppbp ap|-4) (tsx0 loadup) (eppbb bp|0) (eppbp ap|-10,*) (eppbp bp|1) (ldq ap|-5) ;offset (a9bd bp|0,ql) (epplb bp|0) (ldq ap|-1) ;count (asq ap|-10,*) (a9bd lb|0,ql) (lda ap|-10,*) ;stringlen (sbla ap|-5) (mrl (pr,rl),(pr,rl)) (desc9a bp|0,al) (desc9a lb|0,al) (mlr (pr,rl),(pr,rl)) (desc9a bb|0,ql) (desc9a bp|0,ql) (lda 40047,dl) (eppap ap|-10) (tra ab|return,*) ;;; ;;; ;;; Entries to move data to/from Multics files ;;; ;;; Get index of next NL in Multics file (entry e_lap_$segnlindex subr 3) ; (segnlindex fileptr length offset) (returns fixnum) ; -6,-5 -4,-3 -2,-1 (lprplb ap|-5) ;-> segment (ldq ap|-3) ;-> iolen (sblq ap|-1) ;guys offset, gives length remaining (lda ap|-1) ;guys offset (scm (pr,rl,al),(du),mask(000)) (desc9a lb|0,ql) ;input string (arg 012000) ;000 000 NEWLINE 000 (arg ap|-1) ;reuse input fixnum for output (ldaq ap|-2) ;get index into aq (eppap ap|-6) ;pop stack and return (tra ab|return,*) ;;; Get a string from Multics file (entry e_lap_$return-string subr 3) ; (return-string fileptr offset length) (returns string) ; -6,-5 -4,-3 -2,-1 (ldq ap|-1) ;len (tspbp ab|cons-string,*) ;allocate it (staq ap|-2) ;save it here, dont need this (epprp ap|-2,*) ;point at length ctl (ldq rp|0) ;length again (lprpbp ap|-5) ;fileptr (lda ap|-3) ;source offset (mlr (pr,rl,al)(pr,rl)) (desc9a bp|0,ql) (desc9a lb|1,ql) (ldaq ap|-2) (eppap ap|-6) (tra ab|return,*) ;;; Move EMACS string to a file (entry e_lap_$write-string subr 3) ; (write-string stuff fileptr offset) (returns fixnum) ; -6,-5 -4,-3 -2,-1 (eppbp ap|-6) (tsx0 loadup) (lprpbb ap|-3) ;get pointer to file (ldq ap|-1) ;and offset where to put it (mlr (pr,rl),(pr,rl,ql)) (desc9a bp|0,al) (desc9a bb|0,al) ;copy string to file (ada ap|-1) ;update offset by length (lrl 36.) (lda 40047,dl) ;make a fixnum (eppap ap|-6) (tra ab|return,*) ;;; ;;; Scan two substrings for obscure long-line redisplay case. ;;; Given fffffnnnnn first, and ;;; fffffaaann second, we want to tell that 3 chars were ;;; inserted. BSG 3/1/79 (entry e_lap_$rdis-crossmatch subr 4) ;(rdis-crossmatch string1 string2 leftcommon stringl) ;Must be real strings ; -8,.-7 -6,-5 -4,-3 -2,-1 (eppcp ap|-8,*) (epprp ap|-6,*) (lda ap|-1) ;stringl (sbla ap|-3) (ldq ap|-3) ;leftcommon (adq 4,dl) ;varying-word (a9bd bb|0,ql) (a9bd lb|0,ql) (tsx0 crossmatch) (tra crossmatch-succeeds-neg) (eppbp bb|0) (eppcp lb|0) (epprp bp|0) (tsx0 crossmatch) (tra crossmatch-succeeds) (ldaq 'nil) (eppap ap|-8.) (tra ab|return,*) crossmatch-succeeds-neg (eaa 0) (negl 0) crossmatch-succeeds (lda 40047,dl) (eppap ap|-8) (tra ab|return,*) crossmatch (scd (pr,rl),(pr,rl)) (desc9a bb|0,al) (desc9a lb|0,al) (arg ap|-1) (ttn 1,x0) (ldq ap|-1) (qls 18.) (stq ap|-1) (eax1 0,al) (sblx1 ap|-1) (cmpc (pr,rl,qu),(pr,rl)) (desc9a bb|0,x1) (desc9a lb|0,x1) (tnz 1,x0) (qrl 18.) (tra 0,x0) (entry e_lap_$get-x7 subr 0) ;for error handlers (eaq 0,x7) (qrl 18.) (orq -2,du) (lda 40047,dl) (tra ab|return,*) ;;; ;;; Replacements for PL/I searches - BSG 12/4/79 ;;; (entry e_lap_$forward-search-string subr 3) ; (forward-search-line searchee offset searchstring) => 0-rel index or -1 ; -6,-5 -4,-3 -2,-1 ; unm pdl for this and next fun: ; searchee-len searchstring-len forward-offset eis-answer-dump ; -4 -3 -2 -1 (tsx4 search-string-setup) (sbla ap|-3) ;xec'd to get see len (lda ap|-3) ;xec'd to get see offset (tpnz search-2-or-more) ;do it;else l = 1 (scm (pr,rl),(pr),mask(000)) (desc9a bb|0,ql) (desc9a bp|0,1) (arg us|-1) (ttn search-fails) ;tally on = fails search-succeeds (ldq us|-1) search-return-fixnum (lda 40047,dl) ;fixnum (eppap ap|-6) (eax7 -4,x7) (tra ab|return,*) search-fails (lcq 1,dl) (tra search-return-fixnum) search-2-or-more (lda 0,dl) ;Init loop offset (sblq us|-3) ;dont search last l(ss)-1 search-2-or-more-loop (adlq 2,dl) ;ok to match 2 more (scd (pr,rl,al),(pr)) (desc9a bb|0,ql) (desc9a bp|0) (arg us|-1) (ttn search-fails) ;SURELY cant find it ;;; OK maybe this won. It wins if bp compares to bb for l(ss). ;;; remaining-length was already truncated down, needn't check. (adla us|-1) ;how far'd it find it? (sta us|-1) ;in case we win (ldq us|-3) ;l(ss) (cmpc (pr,rl,al),(pr,rl)) (desc9a bb|0,ql) (desc9a bp|0,ql) (tze search-succeeds) ;definitely found it ;right offset at us|-1 ;;; Lost. Increment ptrs, decrement length, see if done. (adla 1,dl) ;consider 1 more from here (ldq us|-4) ;l(see) (sblq us|-1) ;rem = l(see) - new offset (sblq 1,dl) (sblq us|-3) ;compare to l(ss), deduct (tmi search-fails) (tra search-2-or-more-loop) ;try more 2-matches ;;; ;;; Same, but reverse. Much harder. ;;; (entry e_lap_$reverse-search-string subr 3) ; (reverse-search-line searchee offset searchstring) => 0-rel index or -1 ; -6,-5 -4,-3 -2,-1 ; unm pdl same as above (tsx4 search-string-setup) (lda ap|-3) ;xec'd to get see len (lda 0,dl) ;xec'd to get see offset (tpnz revsearch-2-or-more) (scmr (pr,rl),(pr),mask(000)) ;search for 1 (desc9a bb|0,ql) (desc9a bp|0) (arg us|-1) (ttn search-fails) (tra search-succeeds) revsearch-2-or-more (sblq us|-3) ;start len = l(see) - l(ss) (adlq 2,dl) ;2 more always ok revsearch-2-or-more-loop ;a = l(ss) (scdr (pr,rl,al),(pr,al)) (desc9a bb|-1(2),ql) ;start offset! (desc9a bp|-1(2)) ;last 2 chars (arg us|-1) ;result (ttn search-fails) ;definitely lost ;;; Same deal. May have won. ;;; Lets say we are looking for FOOBARU. Current state of world: ;;; A B C D E F O O B A R U C X Q F R U T M C ;;;||< contents of q >| ;;; |< l(ss) >|| ;;; so start of FOOBARU = l(ss) - 2 + q - result - l(ss) = q - 2 - result (sblq 2,dl) ;q - 2 (sblq us|-1) ;subtract offset he found ;;; See if string at offset is really ss. Q is cleverly real offset. A = l(ss). (cmpc (pr,rl,ql),(pr,rl)) (desc9a bb|0,al) (desc9a bp|0,al) (tnz revsearch-gotta-move-on) ;br if fails ;;; Found it. Hack up result. (adlq us|-3) ;add l(ss) (sblq us|-4) ;l(see) (lda 0,dl) (negl 0) (tra search-return-fixnum) revsearch-gotta-move-on ;; (new q for eis) = (old-q-for-eis) - (result) -1, the 1 for moving on, ;; = current-q + result + 2 - result - 1 = current-q + 1 (adlq 1,dl) (cmpq 2,dl) ;see if anything left (tmi search-fails) (tra revsearch-2-or-more-loop) ;;; ;;; Common setup for searches -- sets up unm pdl : ;;; see-len ss-len offset zero-for-eis ;;; -4 -3 -2 -1 search-string-setup ;s/r on x4, does everything (eax7 4,x7) (eppbp ap|-6) ;searchee (tsx0 loadup) (xec 0,x4) ;subt offset or load len (rv) (sta us|-4) (xec 1,x4) ;load offset or 0 (rv) (a9bd bp|0,al) (eppbb bp|0) (eppbp ap|-2) (tsx0 loadup) ;searchstring (sta us|-3) (cmpa us|-4) (tpnz search-fails) ;l(ss) > l(see) (stz us|-1) ;result (ldq us|-4) ;l(see) (cmpa 1,dl) ;l(ss) (tmi search-succeeds) ;0 case (tra 2,x4) (entry e_lap_$string_length subr 1) ;;; (string_length "guaranteed-string") = (stringlength string) (lda 40047,dl) (ldq ap|-2,*) (eppap ap|-2) (tra ab|return,*) () FUNCTION e_lap_$make-dat-ol-black-magic-string (1 arg-temp) 0 077776237100 ldaq ms|-2 temp 1 1 077776350100 eppms ms|-2 2 000022737000 lls 22 3 000022735000 als 22 4 064043275007 ora 64043,dl 5 100062710120 tra op|62,* return operator FUNCTION e_lap_$gsubstr (3 arg-temps) 6 077777236100 ldq ms|-1 temp 3 7 100136272120 call op|136,* cons string operator 10 077776757100 staq ms|-2 temp 3 11 077776371520 epprp ms|-2,* temp 3 12 077772352100 epptp ms|-6 temp 1 13 000037700000 tsx0 37 14 077775235100 lda ms|-3 temp 2 15 200000500505 *** tp|0,al 16 500000236100 ldq rp|0 17 000140100540 mlr (pr,rl),(pr,rl) 20 200000000006 arg 200000,ql 21 500001000006 arg -277777,ql 22 077776237100 ldaq ms|-2 temp 3 23 077772350100 eppms ms|-6 24 100062710120 tra op|62,* return operator FUNCTION e_lap_$ggcharn (2 arg-temps) 25 077774352100 epptp ms|-4 temp 1 26 000037700000 tsx0 37 27 077777235100 lda ms|-1 temp 2 30 077777450100 stz ms|-1 temp 2 31 000100100505 mlr ms|100,al temp 35 32 200000000001 arg 200000,au 33 077777600001 tze 77777,au 34 077776237100 ldaq ms|-2 temp 2 35 077774350100 eppms ms|-4 36 100062710120 tra op|62,* return operator 37 200000237100 ldaq tp|0 40 200000352120 epptp tp|0,* 41 077700315007 cana 77700,dl 42 000051600000 tze 51 43 010000315007 cana 10000,dl 44 000002600004 tze 2,ic 46 45 200004352100 epptp tp|4 tra from 44 46 200000235100 lda tp|0 47 200001352100 epptp tp|1 50 000000710010 tra 0,x0 51 200003235100 lda tp|3 52 200001762100 lprptp tp|1 53 000000710010 tra 0,x0 FUNCTION e_lap_$tabscan (3 arg-temps) 54 077772352100 epptp ms|-6 temp 1 55 000037700000 tsx0 37 56 077775236100 ldq ms|-3 temp 2 57 077777136100 sblq ms|-1 temp 3 60 077777235100 lda ms|-1 temp 3 61 200000500505 *** tp|0,al 62 000000164540 *** ms|0,ft1 temp 4 63 200000000006 arg 200000,ql 64 000072000000 arg 72 65 077777000100 arg ms|-1 temp 3 66 077776237100 ldaq ms|-2 temp 3 67 001343376004 anq 1343,ic 1432 = 134217727 70 077772350100 eppms ms|-6 71 100062710120 tra op|62,* return operator 72 777777777777 *** sb|-1,*x7 73 777777777777 *** sb|-1,*x7 74 777777777777 *** sb|-1,*x7 75 777777777777 *** sb|-1,*x7 76 777777777777 *** sb|-1,*x7 77 777777777777 *** sb|-1,*x7 100 777777777777 *** sb|-1,*x7 101 777777777777 *** sb|-1,*x7 102 000000000000 103 000000000000 104 000000000000 105 000000000000 106 000000000000 107 000000000000 110 000000000000 111 000000000000 112 000000000000 113 000000000000 114 000000000000 115 000000000000 116 000000000000 117 000000000000 120 000000000000 121 000000000000 122 000000000000 123 000000000000 124 000000000000 125 000000000000 126 000000000000 127 000000000000 130 000000000000 131 000000000001 arg 0,au 132 777777777777 *** sb|-1,*x7 133 777777777777 *** sb|-1,*x7 134 777777777777 *** sb|-1,*x7 135 777777777777 *** sb|-1,*x7 136 777777777777 *** sb|-1,*x7 137 777777777777 *** sb|-1,*x7 140 777777777777 *** sb|-1,*x7 141 777777777777 *** sb|-1,*x7 142 777777777777 *** sb|-1,*x7 143 777777777777 *** sb|-1,*x7 144 777777777777 *** sb|-1,*x7 145 777777777777 *** sb|-1,*x7 146 777777777777 *** sb|-1,*x7 147 777777777777 *** sb|-1,*x7 150 777777777777 *** sb|-1,*x7 151 777777777777 *** sb|-1,*x7 152 777777777777 *** sb|-1,*x7 153 777777777777 *** sb|-1,*x7 154 777777777777 *** sb|-1,*x7 155 777777777777 *** sb|-1,*x7 156 777777777777 *** sb|-1,*x7 157 777777777777 *** sb|-1,*x7 160 777777777777 *** sb|-1,*x7 161 777777777777 *** sb|-1,*x7 162 777777777777 *** sb|-1,*x7 163 777777777777 *** sb|-1,*x7 164 777777777777 *** sb|-1,*x7 165 777777777777 *** sb|-1,*x7 166 777777777777 *** sb|-1,*x7 167 777777777777 *** sb|-1,*x7 170 777777777777 *** sb|-1,*x7 171 777777777777 *** sb|-1,*x7 172 777777777777 *** sb|-1,*x7 173 777777777777 *** sb|-1,*x7 174 777777777777 *** sb|-1,*x7 175 777777777777 *** sb|-1,*x7 176 777777777777 *** sb|-1,*x7 177 777777777777 *** sb|-1,*x7 200 777777777777 *** sb|-1,*x7 201 777777777777 *** sb|-1,*x7 202 777777777777 *** sb|-1,*x7 203 777777777777 *** sb|-1,*x7 204 777777777777 *** sb|-1,*x7 205 777777777777 *** sb|-1,*x7 206 777777777777 *** sb|-1,*x7 207 777777777777 *** sb|-1,*x7 210 777777777777 *** sb|-1,*x7 211 777777777777 *** sb|-1,*x7 212 777777777777 *** sb|-1,*x7 213 777777777777 *** sb|-1,*x7 214 777777777777 *** sb|-1,*x7 215 777777777777 *** sb|-1,*x7 216 777777777777 *** sb|-1,*x7 217 777777777777 *** sb|-1,*x7 220 777777777777 *** sb|-1,*x7 221 777777777777 *** sb|-1,*x7 222 777777777777 *** sb|-1,*x7 223 777777777777 *** sb|-1,*x7 224 777777777777 *** sb|-1,*x7 225 777777777777 *** sb|-1,*x7 226 777777777777 *** sb|-1,*x7 227 777777777777 *** sb|-1,*x7 230 777777777777 *** sb|-1,*x7 231 777777777777 *** sb|-1,*x7 232 777777777777 *** sb|-1,*x7 233 777777777777 *** sb|-1,*x7 234 777777777777 *** sb|-1,*x7 235 777777777777 *** sb|-1,*x7 236 777777777777 *** sb|-1,*x7 237 777777777777 *** sb|-1,*x7 240 777777777777 *** sb|-1,*x7 241 777777777777 *** sb|-1,*x7 242 777777777777 *** sb|-1,*x7 243 777777777777 *** sb|-1,*x7 244 777777777777 *** sb|-1,*x7 245 777777777777 *** sb|-1,*x7 246 777777777777 *** sb|-1,*x7 247 777777777777 *** sb|-1,*x7 250 777777777777 *** sb|-1,*x7 251 777777777777 *** sb|-1,*x7 252 777777777777 *** sb|-1,*x7 253 777777777777 *** sb|-1,*x7 254 777777777777 *** sb|-1,*x7 255 777777777777 *** sb|-1,*x7 256 777777777777 *** sb|-1,*x7 257 777777777777 *** sb|-1,*x7 260 777777777777 *** sb|-1,*x7 261 777777777777 *** sb|-1,*x7 262 777777777777 *** sb|-1,*x7 263 777777777777 *** sb|-1,*x7 264 777777777777 *** sb|-1,*x7 265 777777777777 *** sb|-1,*x7 266 777777777777 *** sb|-1,*x7 267 777777777777 *** sb|-1,*x7 270 777777777777 *** sb|-1,*x7 271 777777777777 *** sb|-1,*x7 272 777777777777 *** sb|-1,*x7 273 777777777777 *** sb|-1,*x7 274 777777777777 *** sb|-1,*x7 275 777777777777 *** sb|-1,*x7 276 777777777777 *** sb|-1,*x7 277 777777777777 *** sb|-1,*x7 300 777777777777 *** sb|-1,*x7 301 777777777777 *** sb|-1,*x7 302 777777777777 *** sb|-1,*x7 303 777777777777 *** sb|-1,*x7 304 777777777777 *** sb|-1,*x7 305 777777777777 *** sb|-1,*x7 306 777777777777 *** sb|-1,*x7 307 777777777777 *** sb|-1,*x7 310 777777777777 *** sb|-1,*x7 311 777777777777 *** sb|-1,*x7 312 777777777777 *** sb|-1,*x7 313 777777777777 *** sb|-1,*x7 314 777777777777 *** sb|-1,*x7 315 777777777777 *** sb|-1,*x7 316 777777777777 *** sb|-1,*x7 317 777777777777 *** sb|-1,*x7 320 777777777777 *** sb|-1,*x7 321 777777777777 *** sb|-1,*x7 322 777777777777 *** sb|-1,*x7 323 777777777777 *** sb|-1,*x7 324 777777777777 *** sb|-1,*x7 325 777777777777 *** sb|-1,*x7 326 777777777777 *** sb|-1,*x7 327 777777777777 *** sb|-1,*x7 330 777777777777 *** sb|-1,*x7 331 777777777777 *** sb|-1,*x7 332 777777777777 *** sb|-1,*x7 333 777777777777 *** sb|-1,*x7 334 777777777777 *** sb|-1,*x7 335 777777777777 *** sb|-1,*x7 336 777777777777 *** sb|-1,*x7 337 777777777777 *** sb|-1,*x7 340 777777777777 *** sb|-1,*x7 341 777777777777 *** sb|-1,*x7 342 777777777777 *** sb|-1,*x7 343 777777777777 *** sb|-1,*x7 344 777777777777 *** sb|-1,*x7 345 777777777777 *** sb|-1,*x7 346 777777777777 *** sb|-1,*x7 347 777777777777 *** sb|-1,*x7 350 777777777777 *** sb|-1,*x7 351 777777777777 *** sb|-1,*x7 352 777777777777 *** sb|-1,*x7 353 777777777777 *** sb|-1,*x7 354 777777777777 *** sb|-1,*x7 355 777777777777 *** sb|-1,*x7 356 777777777777 *** sb|-1,*x7 357 777777777777 *** sb|-1,*x7 360 777777777777 *** sb|-1,*x7 361 777777777777 *** sb|-1,*x7 362 777777777777 *** sb|-1,*x7 363 777777777777 *** sb|-1,*x7 364 777777777777 *** sb|-1,*x7 365 777777777777 *** sb|-1,*x7 366 777777777777 *** sb|-1,*x7 367 777777777777 *** sb|-1,*x7 370 777777777777 *** sb|-1,*x7 371 777777777777 *** sb|-1,*x7 372 777777777777 *** sb|-1,*x7 373 777777777777 *** sb|-1,*x7 374 777777777777 *** sb|-1,*x7 375 777777777777 *** sb|-1,*x7 376 777777777777 *** sb|-1,*x7 377 777777777777 *** sb|-1,*x7 400 777777777777 *** sb|-1,*x7 401 777777777777 *** sb|-1,*x7 402 777777777777 *** sb|-1,*x7 403 777777777777 *** sb|-1,*x7 404 777777777777 *** sb|-1,*x7 405 777777777777 *** sb|-1,*x7 406 777777777777 *** sb|-1,*x7 407 777777777777 *** sb|-1,*x7 410 777777777777 *** sb|-1,*x7 411 777777777777 *** sb|-1,*x7 412 777777777777 *** sb|-1,*x7 413 777777777777 *** sb|-1,*x7 414 777777777777 *** sb|-1,*x7 415 777777777777 *** sb|-1,*x7 416 777777777777 *** sb|-1,*x7 417 777777777777 *** sb|-1,*x7 420 777777777777 *** sb|-1,*x7 421 777777777777 *** sb|-1,*x7 422 777777777777 *** sb|-1,*x7 423 777777777777 *** sb|-1,*x7 424 777777777777 *** sb|-1,*x7 425 777777777777 *** sb|-1,*x7 426 777777777777 *** sb|-1,*x7 427 777777777777 *** sb|-1,*x7 430 777777777777 *** sb|-1,*x7 431 777777777777 *** sb|-1,*x7 432 777777777777 *** sb|-1,*x7 433 777777777777 *** sb|-1,*x7 434 777777777777 *** sb|-1,*x7 435 777777777777 *** sb|-1,*x7 436 777777777777 *** sb|-1,*x7 437 777777777777 *** sb|-1,*x7 440 777777777777 *** sb|-1,*x7 441 777777777777 *** sb|-1,*x7 442 777777777777 *** sb|-1,*x7 443 777777777777 *** sb|-1,*x7 444 777777777777 *** sb|-1,*x7 445 777777777777 *** sb|-1,*x7 446 777777777777 *** sb|-1,*x7 447 777777777777 *** sb|-1,*x7 450 777777777777 *** sb|-1,*x7 451 777777777777 *** sb|-1,*x7 452 777777777777 *** sb|-1,*x7 453 777777777777 *** sb|-1,*x7 454 777777777777 *** sb|-1,*x7 455 777777777777 *** sb|-1,*x7 456 777777777777 *** sb|-1,*x7 457 777777777777 *** sb|-1,*x7 460 777777777777 *** sb|-1,*x7 461 777777777777 *** sb|-1,*x7 462 777777777777 *** sb|-1,*x7 463 777777777777 *** sb|-1,*x7 464 777777777777 *** sb|-1,*x7 465 777777777777 *** sb|-1,*x7 466 777777777777 *** sb|-1,*x7 467 777777777777 *** sb|-1,*x7 470 777777777777 *** sb|-1,*x7 471 777777777777 *** sb|-1,*x7 FUNCTION e_lap_$compare_strings (5 arg-temps) 472 077766352100 epptp ms|-12 temp 1 473 000037700000 tsx0 37 474 200000353500 eppcp tp|0 475 077771236100 ldq ms|-7 temp 2 476 300000500506 *** cp|0,ql 477 077772352100 epptp ms|-6 temp 3 500 000037700000 tsx0 37 501 077775236100 ldq ms|-3 temp 4 502 200000500506 *** tp|0,ql 503 077777235100 lda ms|-1 temp 5 504 000140106540 *** ms|140,ft1 temp 54 505 300000000005 arg 300000,al 506 200000000005 arg 200000,al 507 000512600000 tze 512 510 100012237100 ldaq op|12 nil 511 000513710000 tra 513 512 100014237100 ldaq op|14 t 513 077766350100 eppms ms|-12 514 100062710120 tra op|62,* return operator FUNCTION e_lap_$trim (1 arg-temp) 515 000004627017 eppus 4,x7 516 077776352100 epptp ms|-2 temp 1 517 000037700000 tsx0 37 520 177774252117 spritp us|-4 521 177776755117 sta us|-2 522 000604700000 tsx0 604 523 177774352137 epptp us|-4,* 524 177777235117 lda us|-1 525 000532710000 tra 532 FUNCTION e_lap_$ltrim (1 arg-temp) 526 000004627017 eppus 4,x7 527 077776352100 epptp ms|-2 temp 1 530 000037700000 tsx0 37 531 177774252117 spritp us|-4 532 177776755117 sta us|-2 533 000000164540 *** ms|0,ft1 temp 2 534 200000000005 arg 200000,al 535 000617000000 arg 617 536 177777000117 arg us|-1 537 177777236117 ldq us|-1 540 000672376004 anq 672,ic 1432 = 134217727 541 177777756117 stq us|-1 542 177776236117 ldq us|-2 543 177777176117 sbq us|-1 544 100136272120 call op|136,* cons string operator 545 077776757100 staq ms|-2 temp 1 546 077776371520 epprp ms|-2,* temp 1 547 177777235117 lda us|-1 550 500000236100 ldq rp|0 551 177774352137 epptp us|-4,* 552 040140100545 mlr ms|-37640,scr temp -8142 553 200000000006 arg 200000,ql 554 500001000006 arg -277777,ql 555 077776237100 ldaq ms|-2 temp 1 556 077776350100 eppms ms|-2 557 777774627017 eppus -4,x7 560 100062710120 tra op|62,* return operator FUNCTION e_lap_$rtrim (1 arg-temp) 561 000004627017 eppus 4,x7 562 077776352100 epptp ms|-2 temp 1 563 000037700000 tsx0 37 564 177774252117 spritp us|-4 565 177776755117 sta us|-2 566 000604700000 tsx0 604 567 177777236117 ldq us|-1 570 100136272120 call op|136,* cons string operator 571 077776757100 staq ms|-2 temp 1 572 077776371520 epprp ms|-2,* temp 1 573 500000235100 lda rp|0 574 177774352137 epptp us|-4,* 575 040140100540 mlr ms|-37640,ft1 temp -8142 576 200000000005 arg 200000,al 577 500001000005 arg -277777,al 600 077776237100 ldaq ms|-2 temp 1 601 077776350100 eppms ms|-2 602 777774627017 eppus -4,x7 603 100062710120 tra op|62,* return operator 604 000000165540 *** ms|0,ft1 temp 1 605 200000000005 arg 200000,al 606 000617000000 arg 617 607 177777000117 arg us|-1 610 177777236117 ldq us|-1 611 000621376004 anq 621,ic 1432 = 134217727 612 177777756117 stq us|-1 613 177776236117 ldq us|-2 614 177777176117 sbq us|-1 615 177777756117 stq us|-1 616 000000710010 tra 0,x0 617 777777777777 *** sb|-1,*x7 620 777777777777 *** sb|-1,*x7 621 777000777777 *** sb|-1000,*x7 622 777777777777 *** sb|-1,*x7 623 777777777777 *** sb|-1,*x7 624 777777777777 *** sb|-1,*x7 625 777777777777 *** sb|-1,*x7 626 777777777777 *** sb|-1,*x7 627 000777777777 *** ms|777,*x7 temp 256 630 777777777777 *** sb|-1,*x7 631 777777777777 *** sb|-1,*x7 632 777777777777 *** sb|-1,*x7 633 777777777777 *** sb|-1,*x7 634 777777777777 *** sb|-1,*x7 635 777777777777 *** sb|-1,*x7 636 777777777777 *** sb|-1,*x7 637 777777777777 *** sb|-1,*x7 640 777777777777 *** sb|-1,*x7 641 777777777777 *** sb|-1,*x7 642 777777777777 *** sb|-1,*x7 643 777777777777 *** sb|-1,*x7 644 777777777777 *** sb|-1,*x7 645 777777777777 *** sb|-1,*x7 646 777777777777 *** sb|-1,*x7 647 777777777777 *** sb|-1,*x7 650 777777777777 *** sb|-1,*x7 651 777777777777 *** sb|-1,*x7 652 777777777777 *** sb|-1,*x7 653 777777777777 *** sb|-1,*x7 654 777777777777 *** sb|-1,*x7 655 777777777777 *** sb|-1,*x7 656 777777777777 *** sb|-1,*x7 657 777777777777 *** sb|-1,*x7 660 777777777777 *** sb|-1,*x7 661 777777777777 *** sb|-1,*x7 662 777777777777 *** sb|-1,*x7 663 777777777777 *** sb|-1,*x7 664 777777777777 *** sb|-1,*x7 665 777777777777 *** sb|-1,*x7 666 777777777777 *** sb|-1,*x7 667 777777777777 *** sb|-1,*x7 670 777777777777 *** sb|-1,*x7 671 777777777777 *** sb|-1,*x7 672 777777777777 *** sb|-1,*x7 673 777777777777 *** sb|-1,*x7 674 777777777777 *** sb|-1,*x7 675 777777777777 *** sb|-1,*x7 676 777777777777 *** sb|-1,*x7 677 777777777777 *** sb|-1,*x7 700 777777777777 *** sb|-1,*x7 701 777777777777 *** sb|-1,*x7 702 777777777777 *** sb|-1,*x7 703 777777777777 *** sb|-1,*x7 704 777777777777 *** sb|-1,*x7 705 777777777777 *** sb|-1,*x7 706 777777777777 *** sb|-1,*x7 707 777777777777 *** sb|-1,*x7 710 777777777777 *** sb|-1,*x7 711 777777777777 *** sb|-1,*x7 712 777777777777 *** sb|-1,*x7 713 777777777777 *** sb|-1,*x7 714 777777777777 *** sb|-1,*x7 715 777777777777 *** sb|-1,*x7 716 777777777777 *** sb|-1,*x7 717 777777777777 *** sb|-1,*x7 720 777777777777 *** sb|-1,*x7 721 777777777777 *** sb|-1,*x7 722 777777777777 *** sb|-1,*x7 723 777777777777 *** sb|-1,*x7 724 777777777777 *** sb|-1,*x7 725 777777777777 *** sb|-1,*x7 726 777777777777 *** sb|-1,*x7 727 777777777777 *** sb|-1,*x7 730 777777777777 *** sb|-1,*x7 731 777777777777 *** sb|-1,*x7 732 777777777777 *** sb|-1,*x7 733 777777777777 *** sb|-1,*x7 734 777777777777 *** sb|-1,*x7 735 777777777777 *** sb|-1,*x7 736 777777777777 *** sb|-1,*x7 737 777777777777 *** sb|-1,*x7 740 777777777777 *** sb|-1,*x7 741 777777777777 *** sb|-1,*x7 742 777777777777 *** sb|-1,*x7 743 777777777777 *** sb|-1,*x7 744 777777777777 *** sb|-1,*x7 745 777777777777 *** sb|-1,*x7 746 777777777777 *** sb|-1,*x7 747 777777777777 *** sb|-1,*x7 750 777777777777 *** sb|-1,*x7 751 777777777777 *** sb|-1,*x7 752 777777777777 *** sb|-1,*x7 753 777777777777 *** sb|-1,*x7 754 777777777777 *** sb|-1,*x7 755 777777777777 *** sb|-1,*x7 756 777777777777 *** sb|-1,*x7 757 777777777777 *** sb|-1,*x7 760 777777777777 *** sb|-1,*x7 761 777777777777 *** sb|-1,*x7 762 777777777777 *** sb|-1,*x7 763 777777777777 *** sb|-1,*x7 764 777777777777 *** sb|-1,*x7 765 777777777777 *** sb|-1,*x7 766 777777777777 *** sb|-1,*x7 767 777777777777 *** sb|-1,*x7 770 777777777777 *** sb|-1,*x7 771 777777777777 *** sb|-1,*x7 772 777777777777 *** sb|-1,*x7 773 777777777777 *** sb|-1,*x7 774 777777777777 *** sb|-1,*x7 775 777777777777 *** sb|-1,*x7 776 777777777777 *** sb|-1,*x7 777 777777777777 *** sb|-1,*x7 1000 777777777777 *** sb|-1,*x7 1001 777777777777 *** sb|-1,*x7 1002 777777777777 *** sb|-1,*x7 1003 777777777777 *** sb|-1,*x7 1004 777777777777 *** sb|-1,*x7 1005 777777777777 *** sb|-1,*x7 1006 777777777777 *** sb|-1,*x7 1007 777777777777 *** sb|-1,*x7 1010 777777777777 *** sb|-1,*x7 1011 777777777777 *** sb|-1,*x7 1012 777777777777 *** sb|-1,*x7 1013 777777777777 *** sb|-1,*x7 1014 777777777777 *** sb|-1,*x7 1015 777777777777 *** sb|-1,*x7 1016 777777777777 *** sb|-1,*x7 FUNCTION e_lap_$tct (3 arg-temps) 1017 077776352100 epptp ms|-2 temp 3 1020 000037700000 tsx0 37 1021 001040700000 tsx0 1040 1022 000000164540 *** ms|0,ft1 temp 4 1023 200000000005 arg 200000,al 1024 500000000100 arg rp|0 1025 077773000100 arg ms|-5 temp 1 1026 000000710010 tra 0,x0 FUNCTION e_lap_$tctr (3 arg-temps) 1027 077776352100 epptp ms|-2 temp 3 1030 000037700000 tsx0 37 1031 077773034100 ldac ms|-5 temp 1 1032 001040700000 tsx0 1040 1033 000000165540 *** ms|0,ft1 temp 4 1034 200000000005 arg 200000,al 1035 500000000100 arg rp|0 1036 077773000100 arg ms|-5 temp 1 1037 000000710010 tra 0,x0 1040 077773236100 ldq ms|-5 temp 1 1041 200000500506 *** tp|0,ql 1042 077774371520 epprp ms|-4,* temp 2 1043 500002371520 epprp rp|2,* 1044 200000234100 szn tp|0 1045 500000234100 szn rp|0 1046 500076234100 szn rp|76 1047 000000700010 tsx0 0,x0 1050 001054607000 ttf 1054 1051 000044773000 lrl 44 1052 040047235007 lda 40047,dl 1053 000002710004 tra 2,ic 1055 1054 077772237100 ldaq ms|-6 temp 1 tra from 1053 1055 000355376004 anq 355,ic 1432 = 134217727 1056 077772350100 eppms ms|-6 1057 100062710120 tra op|62,* return operator FUNCTION e_lap_$rplacstring-offset (6 arg-temps) 1060 077766352100 epptp ms|-12 temp 2 1061 000037700000 tsx0 37 1062 077777236100 ldq ms|-1 temp 6 1063 200000500506 *** tp|0,ql 1064 077776350100 eppms ms|-2 1065 001070710000 tra 1070 FUNCTION e_lap_$rplacstring (5 arg-temps) 1066 077770352100 epptp ms|-10 temp 2 1067 000037700000 tsx0 37 1070 200000353500 eppcp tp|0 1071 077766352120 epptp ms|-12,* temp 1 1072 200001352100 epptp tp|1 1073 077775236100 ldq ms|-3 temp 4 1074 200000500506 *** tp|0,ql 1075 077773236100 ldq ms|-5 temp 3 1076 000140100540 mlr (pr,rl),(pr,rl) 1077 300000000006 arg 300000,ql 1100 200000000006 arg 200000,ql 1101 077777235100 lda ms|-1 temp 5 1102 077766755120 sta ms|-12,* temp 1 1103 077766350100 eppms ms|-12 1104 100012237100 ldaq op|12 nil 1105 100062710120 tra op|62,* return operator FUNCTION e_lap_$delete-chars (3 arg-temps) 1106 077772352120 epptp ms|-6,* temp 1 1107 200001352100 epptp tp|1 1110 077775235100 lda ms|-3 temp 2 1111 200000500505 *** tp|0,al 1112 200000353500 eppcp tp|0 1113 077777235100 lda ms|-1 temp 3 1114 300000500505 *** cp|0,al 1115 077772235120 lda ms|-6,* temp 1 1116 077775135100 sbla ms|-3 temp 2 1117 077777135100 sbla ms|-1 temp 3 1120 000140100540 mlr (pr,rl),(pr,rl) 1121 300000000005 arg 300000,al 1122 200000000005 arg 200000,al 1123 077777336100 lcq ms|-1 temp 3 1124 077772056120 asq ms|-6,* temp 1 1125 077772350100 eppms ms|-6 1126 100012237100 ldaq op|12 nil 1127 100062710120 tra op|62,* return operator FUNCTION e_lap_$insert-chars (4 arg-temps) 1130 077774352100 epptp ms|-4 temp 3 1131 000037700000 tsx0 37 1132 200000353500 eppcp tp|0 1133 077770352120 epptp ms|-10,* temp 1 1134 200001352100 epptp tp|1 1135 077773236100 ldq ms|-5 temp 2 1136 200000500506 *** tp|0,ql 1137 200000371500 epprp tp|0 1140 077777236100 ldq ms|-1 temp 4 1141 077770056120 asq ms|-10,* temp 1 1142 500000500506 *** rp|0,ql 1143 077770235120 lda ms|-10,* temp 1 1144 077773135100 sbla ms|-5 temp 2 1145 000140101540 *** ms|140,ft1 temp 53 1146 200000000005 arg 200000,al 1147 500000000005 arg -300000,al 1150 000140100540 mlr (pr,rl),(pr,rl) 1151 300000000006 arg 300000,ql 1152 200000000006 arg 200000,ql 1153 040047235007 lda 40047,dl 1154 077770350100 eppms ms|-10 1155 100062710120 tra op|62,* return operator FUNCTION e_lap_$segnlindex (3 arg-temps) 1156 077773765100 lprprp ms|-5 temp 1 1157 077775236100 ldq ms|-3 temp 2 1160 077777136100 sblq ms|-1 temp 3 1161 077777235100 lda ms|-1 temp 3 1162 000003124545 *** ms|3,scr temp 5 1163 500000000006 arg -300000,ql 1164 012000000000 arg 12000 1165 077777000100 arg ms|-1 temp 3 1166 077776237100 ldaq ms|-2 temp 3 1167 077772350100 eppms ms|-6 1170 100062710120 tra op|62,* return operator FUNCTION e_lap_$return-string (3 arg-temps) 1171 077777236100 ldq ms|-1 temp 3 1172 100136272120 call op|136,* cons string operator 1173 077776757100 staq ms|-2 temp 3 1174 077776371520 epprp ms|-2,* temp 3 1175 500000236100 ldq rp|0 1176 077773762100 lprptp ms|-5 temp 1 1177 077775235100 lda ms|-3 temp 2 1200 000140100545 mlr ms|140,scr temp 52 1201 200000000006 arg 200000,ql 1202 500001000006 arg -277777,ql 1203 077776237100 ldaq ms|-2 temp 3 1204 077772350100 eppms ms|-6 1205 100062710120 tra op|62,* return operator FUNCTION e_lap_$write-string (3 arg-temps) 1206 077772352100 epptp ms|-6 temp 1 1207 000037700000 tsx0 37 1210 077775763100 lprpcp ms|-3 temp 2 1211 077777236100 ldq ms|-1 temp 3 1212 000146100540 mlr ms|146,ft1 temp 55 1213 200000000005 arg 200000,al 1214 300000000005 arg 300000,al 1215 077777075100 ada ms|-1 temp 3 1216 000044773000 lrl 44 1217 040047235007 lda 40047,dl 1220 077772350100 eppms ms|-6 1221 100062710120 tra op|62,* return operator FUNCTION e_lap_$rdis-crossmatch (4 arg-temps) 1222 077770353520 eppcp ms|-10,* temp 1 1223 077772371520 epprp ms|-6,* temp 2 1224 077777235100 lda ms|-1 temp 4 1225 077775135100 sbla ms|-3 temp 3 1226 077775236100 ldq ms|-3 temp 3 1227 000004076007 adq 4,dl 1230 300000500506 *** cp|0,ql 1231 500000500506 *** rp|0,ql 1232 001251700000 tsx0 1251 1233 001244710000 tra 1244 1234 300000352100 epptp cp|0 1235 500000353500 eppcp rp|0 1236 200000371500 epprp tp|0 1237 001251700000 tsx0 1251 1240 001246710000 tra 1246 1241 100012237100 ldaq op|12 nil 1242 077770350100 eppms ms|-10 1243 100062710120 tra op|62,* return operator 1244 000000635000 eaa 0 1245 000000533000 negl 0 1246 040047235007 lda 40047,dl 1247 077770350100 eppms ms|-10 1250 100062710120 tra op|62,* return operator 1251 000140120540 *** ms|140,ft1 temp 45 1252 300000000005 arg 300000,al 1253 500000000005 arg -300000,al 1254 077777000100 arg ms|-1 temp -3 1255 000001606410 ttn 1,x0 1256 077777236100 ldq ms|-1 temp -3 1257 000022736000 qls 22 1260 077777756100 stq ms|-1 temp -3 1261 000000621005 eax1 0,al 1262 077777121100 sblx1 ms|-1 temp -3 1263 000140106542 *** ms|140,42 temp 45 1264 300000000011 arg 300000,x1 1265 500000000011 arg -300000,x1 1266 000001601010 tnz 1,x0 1267 000022772000 qrl 22 1270 000000710010 tra 0,x0 FUNCTION e_lap_$get-x7 (0 arg-temps) 1271 000000636017 eaq 0,x7 1272 000022772000 qrl 22 1273 777776276003 orq 777776,du 1274 040047235007 lda 40047,dl 1275 100062710120 tra op|62,* return operator FUNCTION e_lap_$forward-search-string (3 arg-temps) 1276 001404704000 tsx4 1404 1277 077775135100 sbla ms|-3 temp 2 1300 077775235100 lda ms|-3 temp 2 1301 001316605400 tpnz 1316 1302 000100124540 *** ms|100,ft1 temp 36 1303 300000000006 arg 300000,ql 1304 200000000001 arg 200000,au 1305 177777000117 arg us|-1 1306 001314606400 ttn 1314 1307 177777236117 ldq us|-1 1310 040047235007 lda 40047,dl 1311 077772350100 eppms ms|-6 1312 777774627017 eppus -4,x7 1313 100062710120 tra op|62,* return operator 1314 000001336007 lcq 1,dl 1315 001310710000 tra 1310 1316 000000235007 lda 0,dl 1317 177775136117 sblq us|-3 1320 000002036007 adlq 2,dl 1321 000100120545 *** ms|100,scr temp 33 1322 300000000006 arg 300000,ql 1323 200000000000 arg 200000 1324 177777000117 arg us|-1 1325 001314606400 ttn 1314 1326 177777035117 adla us|-1 1327 177777755117 sta us|-1 1330 177775236117 ldq us|-3 1331 000140106545 *** ms|140,scr temp 49 1332 300000000006 arg 300000,ql 1333 200000000006 arg 200000,ql 1334 001307600000 tze 1307 1335 000001035007 adla 1,dl 1336 177774236117 ldq us|-4 1337 177777136117 sblq us|-1 1340 000001136007 sblq 1,dl 1341 177775136117 sblq us|-3 1342 001314604000 tmi 1314 1343 001320710000 tra 1320 FUNCTION e_lap_$reverse-search-string (3 arg-temps) 1344 001404704000 tsx4 1404 1345 077775235100 lda ms|-3 temp 2 1346 000000235007 lda 0,dl 1347 001356605400 tpnz 1356 1350 000100125540 *** ms|100,ft1 temp 36 1351 300000000006 arg 300000,ql 1352 200000000000 arg 200000 1353 177777000117 arg us|-1 1354 001314606400 ttn 1314 1355 001307710000 tra 1307 1356 177775136117 sblq us|-3 1357 000002036007 adlq 2,dl 1360 000105121545 *** ms|105,scr temp 38 1361 377777400006 *** 377777,ql 1362 277777400000 *** 277777 1363 177777000117 arg us|-1 1364 001314606400 ttn 1314 1365 000002136007 sblq 2,dl 1366 177777136117 sblq us|-1 1367 000140106546 *** ms|140,ft2 temp 52 1370 300000000005 arg 300000,al 1371 200000000005 arg 200000,al 1372 001400601000 tnz 1400 1373 177775036117 adlq us|-3 1374 177774136117 sblq us|-4 1375 000000235007 lda 0,dl 1376 000000533000 negl 0 1377 001310710000 tra 1310 1400 000001036007 adlq 1,dl 1401 000002116007 cmpq 2,dl 1402 001314604000 tmi 1314 1403 001360710000 tra 1360 1404 000004627017 eppus 4,x7 1405 077772352100 epptp ms|-6 temp 1 1406 000037700000 tsx0 37 1407 000000716014 xec 0,x4 1410 177774755117 sta us|-4 1411 000001716014 xec 1,x4 1412 200000500505 *** tp|0,al 1413 200000353500 eppcp tp|0 1414 077776352100 epptp ms|-2 temp 3 1415 000037700000 tsx0 37 1416 177775755117 sta us|-3 1417 177774115117 cmpa us|-4 1420 001314605400 tpnz 1314 1421 177777450117 stz us|-1 1422 177774236117 ldq us|-4 1423 000001115007 cmpa 1,dl 1424 001307604000 tmi 1307 1425 000002710014 tra 2,x4 FUNCTION e_lap_$string_length (1 arg-temp) 1426 040047235007 lda 40047,dl 1427 077776236120 ldq ms|-2,* temp 1 1430 077776350100 eppms ms|-2 1431 100062710120 tra op|62,* return operator 1432 000777777777 *** ms|777,*x7 temp 256 1433 000000000000 Functions Defined Name Offset Offset Name e_lap_$compare_strings 472 0 e_lap_$make-dat-ol-black-magic-string e_lap_$delete-chars 1106 6 e_lap_$gsubstr e_lap_$forward-search-string 1276 25 e_lap_$ggcharn e_lap_$get-x7 1271 54 e_lap_$tabscan e_lap_$ggcharn 25 472 e_lap_$compare_strings e_lap_$gsubstr 6 515 e_lap_$trim e_lap_$insert-chars 1130 526 e_lap_$ltrim e_lap_$ltrim 526 561 e_lap_$rtrim e_lap_$make-dat-ol-black-magic-string 0 1017 e_lap_$tct e_lap_$rdis-crossmatch 1222 1027 e_lap_$tctr e_lap_$return-string 1171 1060 e_lap_$rplacstring-offset e_lap_$reverse-search-string 1344 1066 e_lap_$rplacstring e_lap_$rplacstring 1066 1106 e_lap_$delete-chars e_lap_$rplacstring-offset 1060 1130 e_lap_$insert-chars e_lap_$rtrim 561 1156 e_lap_$segnlindex e_lap_$segnlindex 1156 1171 e_lap_$return-string e_lap_$string_length 1426 1206 e_lap_$write-string e_lap_$tabscan 54 1222 e_lap_$rdis-crossmatch e_lap_$tct 1017 1271 e_lap_$get-x7 e_lap_$tctr 1027 1276 e_lap_$forward-search-string e_lap_$trim 515 1344 e_lap_$reverse-search-string e_lap_$write-string 1206 1426 e_lap_$string_length Functions Referenced ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved