" " Begin include file ...... scan.incl.alm " tsx2 scan does command scan on 14 wds at line. " Arguments are placed in arg (i). Numbers are converted as octal " unless followed by decimal point. Decimal conversion of number " can always be found in darg (i). Number of args is stored in arg_count. " 6-bit Alpha descriptor for alpha args is in earg (i). " " Modified 8/7/74 by N. I. Morris " EIS args added 7/11/75 by B. Greenberg scan: sar4 scar4 Save AR4. stx0 scx0 Save X0. mlr (),(),fill(77) clear args desc6a *,0 desc6a arg,arglen*6 mlr (),(),fill(77) clear decimal conversion, too desc6a *,0 desc6a darg,arglen*6 lda scdesc6 clear out earg eax7 0 rpt arglen,1 sta earg,7 eax7 0 X7 is arg pointer eax6 -1 X6 is line offset eax5 0 set state to 0 scl1: eax6 1,6 step to next input character scl2: cmpx6 84,du are we finished? tmi scget if not, go get next ldq 3,dl make believe it's an asterisk tra scgo .. scget: mrl (x6),(),fill(0) get one character desc6a line,1 desc6a scchar,6 lda scchar character in AL mrl (al),(),fill(0) get the character type desc4a sctypes,1 desc6a sctype,6 ldq sctype character type in QL scgo: mpy 6,dl multiply by 6 lda scstate,5 get table entry for this state alr 6,ql grab correct entry for this type ana =o77,dl and mask tra scdisp,al* dispatch on action code " scnum1: stz arg,7 start numeric field tsx5 scstartf prepare to start field scnum2: ldq arg,7 octal conversion qls 3 .. orq scchar insert new character stq arg,7 .. ldq darg,7 decimal conversion qls 2 .. adlq darg,7 .. qls 1 .. adlq scchar add in new digit stq darg,7 .. eax5 1 new state is 1 tra scl1 loop scalph1: lda =h " start character field sta arg,7 start with blanks tsx5 scstartf prepare to start field scalph2: lda arg,7 process character als 6 make room for new one ora scchar insert it sta arg,7 .. eax5 2 new state is 2 tra scl1 loop scdec: lda darg,7 make number decimal sta arg,7 .. eax6 1,6 force character index to advance scnum3: szn scsign finish numeric field tze scalph3 make negative, if required ldq 0,dl clear Q ssq darg,7 make negative ssq arg,7 .. scalph3: eaa 0,6 get charx of n+1st char sbla scatemp get length of field arl 18 to lower, ana =o7777,dl just to make sure.. orsa earg,7 move in length stz scsign clear negative indicator eax7 1,7 step to next arg cmpx7 arglen,du all full? tpl scret if so, all finished eax5 0 new state is 0 tra scl2 loop without advancing character index " scminus1: stc2 scsign set minus sign indicator stz arg,7 clear conversion tsx5 scstartf prepare to start new field eax5 3 new state is 3 tra scl1 loop scminus2: lda =h - character minus sta arg,7 set it eax5 2 new state is 2 tra scl2 loop without advancing character index scret: sbx7 1,du stx7 arg_count Make number of args available. lar4 scar4 Restore AR4. scx0: eax0 * Restore X0. tra 0,2 scstartf: stz darg,7 clear decimal conversion a6bdx 4|line,6 get pointer to start of string ara4 earg,7 set descriptor to start stx6 scatemp save for length computation tra 0,5 return to caller " " Tables and storage. " " Types are: " 0 blank 3 asterisk " 1 minus 4 number " 2 decimal point 5 other " sctypes: " Character type table. vfd 5/4,4/4,5/4,4/4,5/4,4/4,5/4,4/4 (00-07) vfd 5/4,4/4,5/5,4/5,5/5,4/5,5/5,4/5 (10-17) vfd 5/0,4/5,5/5,4/5,5/5,4/5,5/5,4/5 (20-27) vfd 5/5,4/5,5/5,4/2,5/5,4/5,5/5,4/5 (30-37) vfd 5/5,4/5,5/5,4/5,5/5,4/5,5/5,4/5 (40-47) vfd 5/5,4/5,5/1,4/5,5/3,4/5,5/5,4/5 (50-57) vfd 5/5,4/5,5/5,4/5,5/5,4/5,5/5,4/5 (60-67) vfd 5/5,4/5,5/5,4/5,5/5,4/5,5/5,4/5 (70-77) scstate: " State table. vfd 6/0,6/3,6/2,6/10,6/1,6/2 0 - searching for next field vfd 6/6,6/6,6/8,6/6,6/4,6/6 1 - processing numeric field vfd 6/7,6/5,6/5,6/7,6/5,6/5 2 - processing character field vfd 6/9,6/9,6/9,6/9,6/4,6/9 3 - processing minus sign scdisp: " Action table. tra scl1 0 - ignore character tra scnum1 1 - start numeric field tra scalph1 2 - start character field tra scminus1 3 - process minus sign tra scnum2 4 - process numeric character tra scalph2 5 - process non-numeric character tra scnum3 6 - complete numeric field * tra scalph3 7 - complete character field * tra scdec 8 - force number decimal tra scminus2 9 - store minus character * tra scret 10 - stop " * These actions cause current character to be reexamined. arg_count:bss ,1 scsign: oct 0 scchar: bss ,1 sctype: bss ,1 scatemp: oct 0 charx of first char of field scar4: bss ,1 save for ar4 scdesc6: desc6a line,0 prototype descriptor for arg " End of include file ...... scan.incl.alm " " " ----------------------------------------------------------- " " " " 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 " "