-ACPMUG 4ACATALOG VOLUME4 OC ACT OC ACT OCACT31 OMR ACT31UC OMR!"#$%&'()*+AMAZE ,-UC CHARACTER SET (Z-NAME DUE TO LAST MINUTE ADD.) Y IT!!) 4.24 4K XDIR.M80 ML80 SOURCE FOR XDIR.COM 4.25 2K Z-LCTOUC.ACT ACTOR PROGRAM TO CONVERT STD ACTOR PROGRAMS TO ACTC.COM LATEST UPPER-CASE CHARACTER SET ACTOR INTERPRETER 4.4 2K AMAZE ACTOR PROGRAM 4.5 1K AMUSE ACTOR PROGRAM 4.6 16K CALENDAR.COM OBJECT OF CALENDAR.FOR AND NUMBER.MAC. CREATES DISK FILE CALLED CALENDAR TRY IT!! 4.7 4K CALENDAR.FOR SOURCE CODE FOR FORTRAN-80 ASSEMBLER. (NOTE SUFFIX MAC DOES NOT CONNOTE THAT MACROS ARE SUPPORTED. ASSEMBLER IS CALLED M80.COM - NOT TO BE CONFUSED WITH ML80 MACRO PROCESSOR M81.COM!!!!!) 4.20 1K RND.FOR SUB-PROGRAM OF MAZE 4.AMUSE .CALENDAROM|/0123456789:;<=>CALENDAROR?@ABFDL ,CDEFGHHAIKU IJIOEXAMP KLML81 OMXNOPQRSTUVWXL82 OMVYZ[\]^_`abcEE DISKETTE.DOC 4.13 5K L83.COM ML80 MODULE - SEE DISKETTE.DOC 4.14 10K M81.COM ML80 MODULE - SEE DISKETTE.DOC 4.15 20K MAZE.COM OBJECT OF MAZE.FOR AND RND.FOR CREATES A MAZE ON CONSOLE. TRY IT!!! 4.16 5K MAZE.FOR SOURCE OF MAZE.COM MAIN 4FORTRAN MAIN AND SUB-PROGRAMS 4.8 6K FDL ACTOR PROGRAM - CAREFUL WITH THIS AS IT CLEANS OUT INPUT FILES 4.9 2K HAIKU ACTOR PROGRAM 4.10 3K IOEXAMP ACTOR PROGRAM 4.11 11K L81.COM ML80 MODULE - SEE DISKETTE.DOC 4.12 11K L82.COM ML80 MODULE - S21 1K WDIR.COM OBJECT OF WDIR.M80 (TRY IT!!) 4.22 3K WDIR.M80 ML80 SOURCE FOR WDIR.COM 4.23 1K XDIR.COM OBJECT OF XDIR.M80 (TRY IT!!) 4.24 4K XDIR.M80 ML80 SOURCE FOR XDIR.COM 4.25 2K Z-LCTOUC.ACT ACTOR PROGRAM TO CONVERT STD ACTOR PROGRAMS TO ACTVOLUME 4 ACTOR, ML80 AND EXAMPLES OF FORTRAN-80 CODE NUMBER SIZE NAME COMMENTS CATALOG.4 CONTENTS OF CP/M GROUP VOL 4 VOLUME4.DOC COMMENTS ON PROGRAMS 4.1 16K ACT.DOC ACTOR MANUAL 4.2 11K ACT31.COM LATEST ACTOR INTERPRETER 4.3 11K ACT31UL83 OM&defghM81 OMLijklmnopqrCALENDAR stu.17 1K ML.SUB SUBMIT.COM COMMAND FILE TO RUN ML80 SOURCE THROUGH EACH MODULE AND CLEAN UP AFTERWARDS 4.18 1K MLCOPY.SUB SUBMIT.COM COMMAND FILE TO TRANSFER ML80 GROUP VIA PIP.COM 4.19 2K NUMBER.MAC CALENDAR TITLE GENERATOR WRITTEN INACT ACT(OR) IS A TRAK-LIKE STRING PROCESSING LANGUAGE. ACT31 IS THE MOST RECENT REVISION OF THE INTERPRETER. THE SYNTAX IS DESCRIBED IN ACT.DOC. ACTUC IS A VERSION OF THE INTERPRETER USING UPPER-CASE CHARACTER SET ONLY. Z-LCTOUC IS A PROGRAM WLab report UCID-30100. 2. Moors, C. N.; TRAC, a Procedure describing Language for the Reactive Typewriter. Comm. ACM 9, 3 (March, 1966) 3. Moors, C. N.; TRAC, A Text Handling Language. Proc. ACM 20th Nat. Conf., Cleveland, August, 1965.erpreter which runs under a CP/M system with more than 16K bytes of RAM. ACT uses the same algorithm as TRAC ("TRAC" is a registered trademark of Rockford Research Institute) and a set of primitive functions which are similar to those in the TRIX inteAILABLE FROM DIGITAL RESEARCH, DIGITAL SYSTEMS AND NTIS FOR THE COPYING COST. THE MODULES SUPPLIED HERE WORK!!!!! THIS IS UNLIKE MOST NOW FLOATING AROUND. TRY IT OUT ON XDIR AND WDIR, WRITTEN BY BRUCE RATOFF. SEE ML.SUB FOR SEQUENCE. FORTRAN higher level function. Any op or argument may have any of the three forms. For more information on the scanning algorithm see any of the published descriptions of TRAC. There is a version of ACT which uses upper case letters for the command names aHICH WILL CONVERT A STANDARD ACT SOURCE INTO THE ACTUC CONVENTION. THE FILE ITSELF INCLUDES INSTRUCTIONS. (THE Z- WAS ADDED TO THE NAME ONLY TO ADD IT TO THE CATALOG AT THE LAST MINUTE. RENAME TO SOMETHING MORE CONVENIENT) AMAZE, AMUSE, HAIKU AND F necessarly psychologically), the syntax is very simple. Program and data are character strings which are handled by the same rules. There are three structures: {...} @{op|arg1|arg2|...|argn} @@{op|arg1|arg2|...|argn} The frpreter. ACT also uses the special characters @{|} in place of TRAC's #(,). ACT has been used to control jobs on a large time sharing system and to format diskette files; it is generally too slow for efficient human interaction. Logically (but not MAZE AND CALENDAR COM'S ARE WORKING CP/M OBJECTS WHICH CREATE A MAZE TO THE CONSOLE OR A CALENDAR DISK FILE RESPECTIVELY. THE SOURCES ARE INCLUDED, TOGETHER WITH SUB-PROGRAMS IN FORTRAN AND ASSEMBLY LANGUAGE, IN ORDER TO ILLUSTRATE THE CAPABILITIESnd the special characters ^[,]' instead of @{|}`. Also, the meta-character is the exclaim (!). R_e_f_e_r_e_n_c_e_s_ 1. Moll, H; TRIX - An interactive, interpretive language for manipulating strings of characters. Lawrence Livermore ACT version 31 1 10/17/77 Summary of Actor (ACT) functions I_n_t_r_o_d_u_c_t_i_o_n_ ACT is a macro text intDL ARE ACTOR PROGRAMS. ENJOY......... ML80 ML80 IS AN ASSEMBLY LANGUAGE INCORPORATING SOME HIGH-LEVEL CONTROL CONSTRUCTS. INCLUDED IN THE PACKAGE IS A RECURSIVE MACRO PROCESSOR, RELOCATING COMPILER AND LINKING LOADER. A LANGUAGE MANUAL IS AVirst is a literal quote; the contents are passed on as the value. The second performs the indicated operation on the argument strings and immediately rescannes the resulting value. The last form performs the operation and passes the value to the next OF MICROSOFT FORTRAN-80. MAZE.FOR+RND.FOR=MAZE.COM CALENDAR.FOR+NUMBER.MAC=CALENDAR.COM  THE SOURCES ARE INCLUDED, TOGETHER WITH SUB-PROGRAMS IN FORTRAN AND ASSEMBLY LANGUAGE, IN ORDER TO ILLUSTRATE THE CAPABILITIES 4. Wegner, Peter; Programming Languages, Information Structures, and Machine Organization. McGraw-Hill Book Co., 1968. ACT version 31 2 10/1n" Turn the trace mode on and save the previous mode. Note: An @{io|d} is implicitly given so that the output will wrap around; see the fw function above. @{tf} "trace off" Restore the previous trace mode, up to eight levels. @{nb} control-D. Octopus output is then collected in the string @ro until the string x is encountered or until the time-out interval passes since the last character. The value is s if x was found, otherwise f. If s and f are omitted, the value. Free storage is allocated from the end of the interpreter up to, but not including, page hh or FBASE if ^hh is not given. N_o_n_-_d_i_s_k_ _I_/_O_ _a_n_d_ _d_e_b_u_g_ @{rs|prompt} "read string" Value is a line of inpus the Octopus time-out to n seconds. E.g. t120. mc redefines the meta-character to be the character c. p print: terminal output is thru CP/M, "fw" applies. d display: direct output, "fw" does not apply. L time sharing system. The so and ro functions talk to Octopus over a serial interface as an ordinary terminal. Separate documentation illustrates how this hardware dependent function can be patched for different i/o ports.) @{ro|x|s|f|eom}7/77 Summary of Actor (ACT) functions E_x_e_c_u_t_e_ _l_i_n_e_ act act act If a file name is given, then the ACT macros in the file are read firnd in.) A null x will always fail to match. A non-null last argument (eom) will change the Octopus message terminator. The argument eom must be the two hex characters which correspond to the terminator. The terminator is initially is null. (Note this ACT version 31 3 10/17/77 Summary of Actor (ACT) functions inconsistency with the functions gc at from the console (via CP/M call #10), or the next string from the input file. Line-feed, return, and tab characters from the input file are ignored; a string is terminated by the meta-character (~) or by the end-of-file. Comments on the Note: this option is hardware dependent. @{fw|n} "form width" The "print string" function will start a new line after n characters. The initial form width is 80. However, this does not apply if an @{io|p} is in effect. @{tn} "trace o "read Octopus" If the Octopus time-out is greater than zero, then a message terminator is sent. This terminator either causes a previous "so" message to be delivered or a log-out in case there was no previous "so" and the terminator is ast; has the general form "d:x.y". The string @in is initialized to the characters between "act " and the return. As a special case, may be the three characters ^hh, where ^ is the caret (or up arrow), and hh is a hex page numbera control-D. @{io|x|x|...} "input-output parameters" Each argument x is a letter (o,t,m) followed by an associated parameter: oa selects Octopus channel a. (initial value) ob selects Octopus channel b. tn sethe last argument. @{so|message} "send to Octopus" The message is sent over the selected Octopus channel. Usually the message does not end with an Octopus end-message character. The echo is lost. (Note: "Octopus" is the name of the LLinput file are enclosed within matching left quotes (`). Input files generally do not end with the meta-character. @{ps|a|a|...} "print string" Each argument (after the "ps") is printed on a separate line; but there is no CR-LF after t "number of blocks" Value is the number of sixteen word free storage blocks. @{fs|n|m} "free storage" Free storage is augmented by the memory locations n up to but not including m; n and m are decimal and must be multiples of 16. @{ "exit" Clear the active and neutral strings; then set the active string to x. @{st} "stop" Return to CP/M. @{zz|n} "sleep" Sleep for n/10 seconds. S_t_r_i_n_g_ _o_p_s_ _a_n_d_ _h_e_x_-_t_o_-_c_h_a_tput ended on a record boundary. The value is f if there is a write error, otherwise s. @{rf|string-name|m|s|f} "read file" The next m records are read from the currently opened file and appended to the named string. The value is f if threcord to read or write is set to n. (Records are numbered sequentially starting at zero; each record consists of 128 characters.) If the open fails the value is f; otherwise the value is s. Since only one file can be open at a time|...|b|s} or @{eq|a|b|s|b|s|...|f} "equal" The value is the first s for which the preceeding b is equal to a, where "equal" means string equality. If the last argument is not one of a "b-s" pair, then it provides an "else" value. @{ge| written to the currently opened file. If x is null, then the last partial record is not written; instead, the form pointer of the named string is left positioned at the remainder. For example, the output for the next write could be constvn} "version number" Value is the ACT version number. ACT version 31 4 10/17/77 Summary of Actor (ACT) functions read dialect" The value is the text from the currently open file. The file is read starting with the record set by the open file. The input is processed in the same manner as described for the rs function. Thus, one program can load anote physical end of file is reached, otherwise s. ACT version 31 5 10/17/77 Summary of Actor (ACT) functions @{rd} ", the record number of the crrrent file may need to be saved by @{rn}. Also, a currently opened output file must be closed before another open. @{mf|file-name|s|f} "make file" If the named file can be created, the value is s; otherwisen|m|s|f} "greater than or equal to" The value is s if n is numericallly greater than or equal to m, otherwise the value is f. @{nt|name|s|f} "null test" The value is s if the named string is null, otherwise the value is f. @{ex|x} ructed by @{ns|name|@@{in|name}}. If x is non-null, then the first character of x is used to pad out the remainder of the record and the record is written. An entire record of pad characters is written if the previous ou D_i_s_k_ _I_/_O_ @{of|file-name|n|s|f} "open file" The file name has the general form "d:x.y". If d is omitted, the system drive is selected; lower case characters in the name are mapped to upper case. The number of the next her in the same way as is done when a file name is put on the execute line after "act". Warning: No of or mf commands can be executed until the file has been read. C_o_n_t_r_o_l_ _a_n_d_ _d_e_l_a_y_ @{eq|a|b|s|b|s{rn} "record number" The value is the record number of the next record to read or write. This number applies to the currently opened file. @{wf|string-name|x|s|f} "write file" Characters from the named string, starting with the first, are the value is f. The current record number is set to zero. @{cf|s|f} "close file" The currently opened file is closed. The value is f if there is a close error, otherwise s. @{df} "destroy file" The current file is destroyed. @r_a_c_t_e_r_s_ @{ns|name|value|name|value|...} "name string" Create one or more strings with the given values. @{as|name|x|name|x|...} "append string" Append the string x to the named string. load the idle macro (i). Console input will stop output, or cause an immediate return from the zz or ro functions. G_e_n_e_r_a_t_i_n_g_ _a_ _C_O_M_ _f_i_l_e_ _w_i_t_h_ _a_ _p_r_e_l_o_a_d_e_d_ _A_Cose hex values are given. ACT version 31 7 10/17/77 Summary of Actor (ACT) functions @{uk|x} "unpack" Return the het characters" (4 or more arguments) Move the form pointer over n characters, or to the end of the form if there are fewer than n characters remaining. The characters passed over are put into the string "@gc". Return s if there are n cha ACT version 31 8 10/17/77 Summary of Actor (ACT) functions C_o_n_s_o_l_e_ _"_b_r_e_a_k_"_ The last character of any console imputnts except that the value of @in is also the value of this function. @{in|name} "initial" (2 arguments) Return the characters from the form pointer to the end of the form; also set @in to this value. The form pointer is left past the ACT version 31 6 10/17/77 Summary of Actor (ACT) functions @{ss|name|arg|arg|...} "segment string" Create arguments in the named string. @{cl|name|arg|an-m. @{ml|n|n|...} "multiply" Return the product of the arguments. @{dv|n|m} "divide" Return n/m. @{md|n|m} "mod" Return n mod m. S_p_e_c_i_a_l_ _s_t_r_i_n_g_s_ @cb "console break" The value of thex form of the string x. A_r_i_t_h_m_e_t_i_c_ @{ad|n|n|...} "add" Return the sum of the arguments. Numbers are represented by signed decimal integers whose magnitude is less than 32768. @{su|n|m} "subtract" Return racters after the form pointer in the named string, otherwise return f. @{gc|name|n} "get characters" (3 arguments) Like gc with 4 or more arguments except that the value of @gc is also the value of this function. @{gc|name} Return , other than for the @{rs} function, is saved in the string @cb. Moreover, if the input character is an ESC, then you will be prompted to type one of the letters t, n, or i which will turn the trace on (t), turn the trace off (n), or reend of the form. @{cr|name} "call restore" Move the form pointer of the named string to the beginning of the string. @{dd|name|name|...} "delete definitions" Delete the named strings. @{pk|hex} "pack" Return the characters whrg|...} or @{name|arg|arg|...} "call" Return the named string, starting at the first character, with the actual arguments substituted for those corresponding substrings which were matched by a previous "segment string". @{gc|name|n|s|f} "gis string is the last console break character. @im "idle macro" This macro is loaded whenever the active string is empty. The initial value of @im is @{ps|@{rs|.}}, but @im may be changed at any time. e put into the string "@in". If p is found return s, otherwise return f. The form pointer is left positioned after s, or at the end of the form. Null p always fails. @{in|name|p} "initial" (3 arguments) Like in with 4 or more argumethe total number of characters in the named form. @{in|name|p|s|f} "initial" (4 or more arguments) Starting at the form pointer, search for the substring p. The characters which are passed over in the search, up to but not including p, ar_T_ _p_r_o_g_r_a_m_ A COM file containing the ACT interpreter and a preloaded macro file may be created as follows, assuming a 32K system. 1. Append something like the following to your macro file @{ns|@im|{ @{fs|26!J&w.nN,F!(q#p!:&~,FOx-!(6#6=*:&#"(9.BNͣ$!(w#pOi`#"(!m&6!(N,F.q#p*(+"({_z!%w͙/!%!(6#6>!(,Ox]͓!(N,F.q#p_!(N,F͠͏>!(N,F! "(È!)6>!)N%. 6#6!)4!$)q#p,6!k~~ !\&q#p,6#6!^&~,F.\,Ox:> H (='*^&#"^&!`&q#p,6#6!`&~,F,,Oxڒ͙> H `=_> H m=l> H z=y!b&N,F! "b&G!d&~ҟ//!e&q͓/ڧ~Ҿ,~/,~/!f&6#6>!f&,Ox͓~//.fN,F! "f& 6700 hex; if your program needs more space, then you need more than 32K to make a COM file. The st function at the end of your file will return control to CP/M. 3. Make a COM file with the SAVE command save 103 code.com 4. Run tr!k&6.m6!(N,F!(wց1~/ .N,F.^͠ !(q#p,s#rw!(N,F!(wցO~?~!(N,FT!(wցO~[~!k&6,6?!%w[!%œ!(~ց>ɯ!(q#p-N,FHy²>!k&6!(~,FOxG!(wց~/ҷ>!(q#p!k&6!(~,FOxG!(wցM. NS STACK OVERFLOW: The number of unprocessed arguments exceeds 250. The level of nesting or the number of arguments is excessive. For example, the number of arguments for a ns should not get much over 200. 368|29184} @{ns|@im|{@{ps|@{rs|.}}}} @{start} }} @{st} where "start" is the name of your top level macro. Note that the fs function adds 6700 hex up to 7200 hex to the free storage list after theOxGy,,Ox)*( "(-N,F!(q#p-~,FOx-q#wGy.,Ox!(N,FHy*(~#F!(w#p.N,F!(N,F.q#pI!(q,s#r-N,FHyŽ*(~#FHҧ+~#F!(w#pÎ*( "(*(~ց#"(ñ!(N*(q#"({$*(w#p!(w#p*( "(!(~,F!(q#p!k&~>!(q#p!h&N,F*(q#p!(N,F!h&q#p!h&N,FHynLFREE STORAGE IS EMPTY $4ͣ!(~b61%&-N,F!(q#p*h&~#F!h&w#p*(6#6+##6#6*( 6#6*( 6#6*( 6#6 *( 6#6 *( 6#6*( 6#6!(~,F!(q#p,s#r.N,F.q#p!(~,Fhe code by typing either of the following code ACT version 31 9 10/17/77 Summary of Actor (ACT) functions O 2/ѣ8!(~/!%~.!(NV5!(N{;͓W.Jw;@!(q#p9.k6!(N,F!(wցʅ~/eNͣe!(q#p!l&6!(N,F!n&q#p!(wO.N,FTѓ!(~ց>͓Ҡ!(N,F.q#p_͠à!(~ց.N,F!n&q#p1%$@gc@in@ro@cb!O&q,s#r!S&q,s#r & &!%6!V&q^&!V&~ p%.6!%4~->!W&q!W&~/2 2!X&q#p -^,V&>*<&~!E&N.Gq*<&~=!G&w*<&6!F&~,N-q,^&![&q~aO>z program is started (step 4). Free storage normally extends to FBASE which is 7200 hex in a 32K system. 2. Load your program by typing act macro-file ^67 where "^" is the caret, or up arrow. Free storage will extend up to6!(N,F,q#p*(#"n&*n&#"n&{O!n&~,FOx!(q#w*(~#F!(w#p*( "n&*n&~!(q#p!l&~u6!(N,F,q#p*(#"(*(#"({›*(~#F!(w#p*( "(*(~!(q#p,s!m&~6!(N,F!r&q#p*r& "p&!(N*p&q#"p&{$*r&w#p!r&w#p*r& "p&!(q#p,s#ed strings, string names, and active and neutral strings has exceeded the allocated memory. At this point, the active and neutral strings are cleared and control given to the @im macro. The second time this happens, control returns to CP/ code options The options will be in the string @in. E_r_r_o_r_ _m_e_s_s_a_g_e_s_ DISK EOF: The rs function is trying to read beyond the end of file. FREE STORAGE IS EMPTY: The combined storage required for nam&6!$)N,F!')wց ~-w -~.wO%. ~#F! )w#pHy= .N%. "")* ) !$)N,F2/ ! )N,F,q#p* )~#F! )w#pHyJ >* ) ~#FO** ) ~#FO** )~#F*")w#p! )N,F!()q#p$! )w#p.N%. ~#F* )w#p!)N%. ! )N,Fyx* ) 6#6* ) ,F Ó!%wb!A&~րN6.& ~!)w!A&4$!(w#p!m&6%.~ !(w#p/ҍ-N,F%YP &>!)6!%#~!) 4N!% ~_!(N,F͠ß!)6!)~!C&!)~!%6~`,~/w~ /,%.N,F$,q#w.m6!Z)wց%^͠ Ód!])q*p&q#"p&{c!p&~,FOx!^)q#w*^)~#FOi`"p& O/ ![)q !(w#p/$.[4* ) ~#FOi`#"|(Wu!~(N,F!n&q#p!J&w.nN,F,q#p-~,F!(,Ox$.\w-~O,!\)~!p&~,F!(,Ox$.\w,!/)4 N! ~_!x(N,F͠!/)4 4 .N,F.x^,V.6*x( "z(!r(6 !(w#p/[ -N,F*C .r6!x(N,F!H&q#p*x(~#F!x(w#p!H&N,F*x( "z(!0)qù !z(~´ ` !x(N,FHy´ 1%*z(~͓ !1)w *z(#"z(ù -~ *z(6#"z(!1)~!4)q%.r4N!t& !%s,r$!4)#s#r !v)w#p !x)w#p !z)w#p7.xN,F%.q#p.vN,F,^,V2T!z)N,F%.q#p ÓO! !%s,r ÓO! !%~,FOxڏ !(w#p !(w#p !(w#p Ox!(q#w !(w#p.w#p !(w#p.N,F* ) ~#FO͞/!(N,F.q#p!|)q3.|,N~,F!S)q>9~0~G~7~W!T)q~ /~0~W!U)6 !(w#p/M$.U48.sN-q$.U~!l&6!(N,FT!W)wz~ց_>!V)wҒ~րz~,_!X)N,F!n&q#p!J&w!n&N,F!X)q#p!V)w~ց²>!|(N,F$.Xq#p%.N,F͞!X)N,F!n&q#!()N,F* ) 6#6!*)q#p* ) ~#FO** ) !*)N,Fyx* )##**)#s#r^ @{ps|@{rs|.}}!m&6$!H&w#p@O͠i͠m͠!H&N,F!J&w.HN,Fʹ !H&N,F!m&6$!H&w#p.K6> !K& N!Q ~_!H&N,F͠!K&4´ .HN,F !r(N!t& ~#F!,)w#p%.r4$.,~,F!ŕ!d)w#p.o6* )##~#F!n&w#p!h)w#p!m&6W.n~/&*d)+"d)!n&N,F!h)q#p.`N,F.n^͠&* )##!h)N,Fyx%.N,F.q#p$.d~,FOx.oҕ%.N,F.q#p!(~ұ$!(w#p_P$.`N,F !(w#p !(w#p !(w#p !(w#p.w#p/ʹ $!r)w#pO !(N,F%.N,F.|q#pØÙ!d)~,FOx%!n)wց8>ɯ!p)6#6!k&6* ) ~#F!H&w#p!H&N,F!n)wց&&O~,V!f),_zғ.n~/W*p)#"p)W.p~,F/Ҫʹ $!`)w#pO !(w#p !b)w#p !(w#p !(w#p.N,F/!b)~.f6#6:OvN,FOx*%q#w!t(q#w-~,FOxGi`"t(!v(6>.rV K NS STACK OVERFLOW $ 7 &!5)q%.v~Ҋ .rN!t& ~#FOxYW!5)Nw.tw#p,6 $.5N*t(q#"t({ !t(~,FOx$.6q#w$*6)w#p!t(w#p*t( "t(!9)6,6͌ !;)w{ -~ -4.:6 ~} -~6w-~%.rw OxG/$!(w#p!k&6.m6* ) ~#F!H&w#p!H&N,F!~)wց~/c%.N,F$.~^͠:~Ҿ~<.w.}O~ھ.~%.rO!t& ~#F!H&w#p.l6!H&N,FT!)wցʾ~/ҕ%.N,F$.^͠Õ: !(w#p-N,F͞!(w1%!)6 !(w#p/$.~>!)6%.NpZ#!X)N,F%.~q#p!n&N,F!(q#p>!V)~ց.͛/ !(w#p/Ғ-N,F/\!(N,Fʹ !(w#pq$O -N,F !r(N!t& !(N,Fyx9 !(w#p/(-N,F/ҽ!(N,Fʹ $O !(w#p!k&6!(N,F!Z)wցʓ* ) ~#F_P!Z)Nw!p&w#p-~,FOx(4N!t& ~#F %.w#p% >!s(N-q-N,F\V !(~w!%6!(~w /\  ʹ !m&6$!(w#p!%w,p͏!.)w_!%N,F͠!(N,F !.)~Þ T N I: $ ͣ͏!.)wt¶ 5 ~n C ~i 1%> @{@im}!x(N,F*$!x(w#p.~# !m&6!/)6>/* )##~#F!|(w#p!k&6.m6Wm!|(N,F!n&q#p!n&~,F!~(,Ox`!u)w//.rN,F.u^͠/.N,F.q#pö!|(N,F!n&q#p!(q#p!m&6!u)wցʶ~/҄!n&N,F!(q#p$.rN,F.u^͠Ä* )##!(N,Fyx.~$!(w#p_P$.rN,F O/* )##* ) ~#FOi`}o|g=|W}_0 *%s !@)N,F!@)q#pü.K~H.I4N.C 6-$!(w#p!m&6!J)6!I)~,ڀ-~,O.C ~_!(N,F͠!J)4[!L)q#p,6#6.R6!k&6!L)~,FOxG!Q)wց~-»,6Ö~0w .N^,V{_zW *N)*N)!Q)N "N)Ö,~.N,O>Gy.-5.9~.;NW ͌ !?)w@V͌ !J&w͌ !?)w{I͌ !J&w u@W @W u~{p͌ !J&w>O u@W !@)q#p.K6 .Iq.@N,FHyҦ.K6.@,O>-q#wü-~,FOx¼.I6.C60!@),O>6.I4N.C !%s,r !@)N,Fz/W{/_!>yOxG.^͠$!(w#p !H&w#p.k6.m6!H&N,F!)w!)w-~ց,O~ց-NO!)Nѳ_!(N,F͠$ !(w#p!k&6.m6$!(w#p!(N,F!)wց~O!_!(N,F͠!)~O!_͠Í OxGX/ʹ !)w#p !(w#p !o{"!D&6&{" {"))" ^#V!!%!+!1!7!=!C!I!O!U![!a!g!m!s!y!!!!!!!!!!!!!!!!!!!!!!!""!(~,FOx-q#w.sN-q!r(N!t& ~#F/"!r(N!t& ~#F!(w#p,,Ox".N,F*!r(N!t& !(~,F OxGyx.r4Ð"!z(~"` #*zà Ó!%w,p ÓO!%q,p!%^,V,N,Fv!h&N,F.Hq#p!)6#6!H&N,FHe*)#")*H&~#F!H&w#pC!)N,Fv Ó!%w,p Ó_P!%N,F$!(w#p!m&6!(N,F3͠1͠a͠!)q#p*<&6!)6> !)N*<& 6 !)46.6!k&6!)~ O.N,Fx\~(w#p !k&6!(N,F!K&wց"N.Bq!(N,F*!)N,F͆O!(N,F !(N,F.q#pc!(N,F !(N,F.q#p !(w#p/Ҁ-N,F܂ d!)6#6 !(w#p/Ү-N,F́O!)^,Vi`")É$.N,Fv Ó!%w,p Ó!%O~,V_zKGv!)6#6 !(w#p/?-N,F́O!%q,2!E&w,w,w!(~%6.6.x6#6!h&6#6*L&~#F!H&w#p*<& ~^‚$*<& ~O*<&O~OѳO!%q,p!%^,V!H&s#r*!H&^,VN $!(w#p.r6>!r($N!t& !(~,F OxGyx.r4¡$#*<&#~ %͵#.&~!KN *>& ~_!(N,F͠#!)wցK~:#,N*<&q!)6~./-6H-4N*<& !)Nw!)N,qͶ!)q#p *<& !)^,VzW{_ fs *<& !)~,FOxGy *<& ~• *<&O~Ov Oͻ ÓOO !(w#p!<&N,FYP2 !(w#p OͻO !(w#p!<&N,FY {"*)##~#FOo&"9{"{"Ͳ{"͢{"X{"{"{"){" {"́{"͓{"d{"͸{"{"{"{"H{"ͫ{"{"͋{"{":{"{"I{"p{"{"{"{"̓{"{"0{"5 {"C {" {"͏{"{"{"w{"p!%^,V!)N,F3yx`iDM!xxGyO.) !)s#r$.N,Fv Ó!%w,p ÓO!%q,p!%^,V,N,FKBv ÓO; !(w#p/!k&6!(N,F!)wo»a!d&wÃ~t%.N,F́!:&w#p~m!C&w~p!%6~d!%6!D&~%6#͵#%.6 ͌ !)w{,% %~|:% V%~@F%V%~}R%V%NW %vPP !(w#p$.~ !(w#p !(w#pO/>!(N,Fʹ $O Ó!)w#p !(w#p!),O>*)+")!<&N,FYP2ʄ !(w#p*>&~* )O~#V_w!p&w#p-~,FOx,q#w.m6.A6>!A&TN*>& ~_͠!A&4³T!%6$.A6 !)q#p.6>'!) N, P2 !(w#p !(w#p!<&N,FYP29 !(w#p!<&N,FYP&Ô!)~!A&N*>& !)Ny!A&4~ր“.!)K!)4nseqinntgecrgcsspkadasddsumldvrfwfofcfrnmfdfrdmdukpssoroioexnbtntffwvnclrszzfsst!/)4 N! ~_!x(N,F͠!/)4 4 .N,F.x^,V.6*x( "z(!r(6 !(w#p/[ -N,F*C .r6!x(N,F!H&q#p*x(~#F!x(w#p!H&N,F*x( "z(!0)qù !z(~´ ` !x(N,FHy´ 1%*z(~͓ !1)w *z(#"z(ù -~ *z(6#"z(!1)~!4)q%.r4N!t& !%s,r$!4)r!k&6.m6!(N,F!(wց1~/ .N,F.^͠ !(q#p,s#rw!(N,F!(wցO~?~!(N,FT!(wցO~[~!k&6,6?!%w[!%œ!(~ց>ɯ!(q#p-N,FHy²>!k&6!(~,FOxG!(wց~/ҷ>!(q#p!k&6!(~,FOxG!(wց!()N,F* ) 6#6!*)q#p* ) ~#FO** ) !*)N,Fyx* )##**)#s#r^ ^[PS,^[RS,.]]!m&6$!H&w#p^O͠I͠M͠!H&N,F!J&w.HN,Fʹ !H&N,F!m&6$!H&w#p.K6> !K& N!Q ~_!H&N,F͠!K&4´ .HN,F !r(N!t& ~#F!,)w#p%.r4$.,~,F!rOxGy,,Ox)*( "(-N,F!(q#p-~,FOx-q#wGy.,Ox!(N,FHy*(~#F!(w#p.N,F!(N,F.q#pI!(q,s#r-N,FHyŽ*(~#FHҧ+~#F!(w#pÎ*( "(*(~ց#"(ñ!(N*(q#"({$*(w#p!(w#p*( "(!(~,F!(q#p!k&~!J&w.nN,F!(q#p!:&~,FOx-!(6#6=*:&#"(9.BNͣ$!(w#pOi`#"(!m&6!(N,F.q#p*(+"({_z!%w͙/!%!(6#6>!(,Ox]͓!(N,F.q#p_!(N,F͠͏>!(N,F! "(È!)6>!)N%. 6#6!)4!$)q#p,6!kO 2/ѣ8!(~/!%~.!(NV5!(N{;͓W.Jw;@!(q#p9.k6!(N,F!(wցʅ~/eNͣe!(q#p!l&6!(N,F!n&q#p!(wO.N,FTѓ!(~ց>͓Ҡ!(N,F.q#p_͠à!(~ց.N,F!n&q#p1%$^GC^IN^RO^CB!O&q,s#r!S&q,s#r & &!%6!V&q^&!V&~ p%.6!%4~->!W&q!W&~/2 2!X&q#p -^,V&>*<&~!E&N.Gq*<&~=!G&w*<&6!F&~,N-q,^&![&q~aO>z(4N!t& ~#F %.w#p% >!s(N-q-N,F\V !(~w!%6!(~w /\  ʹ !m&6$!(w#p!%w,p͏!.)w_!%N,F͠!(N,F !.)~Þ T N I: $ ͣ͏!.)wT¶ 5 ~N C ~I 1%> ^[^IM]!x(N,F*$!x(w#p.~# !m&6!/)6>6!(N,F,q#p*(#"n&*n&#"n&{O!n&~,FOx!(q#w*(~#F!(w#p*( "n&*n&~!(q#p!l&~u6!(N,F,q#p*(#"(*(#"({›*(~#F!(w#p*( "(*(~!(q#p,s!m&~6!(N,F!r&q#p*r& "p&!(N*p&q#"p&{$*r&w#p!r&w#p*r& "p&!(q#p,s#&6!$)N,F!')wց ~-w -~.wO%. ~#F! )w#pHy= .N%. "")* ) !$)N,F2/ ! )N,F,q#p* )~#F! )w#pHyJ >* ) ~#FO** ) ~#FO** )~#F*")w#p! )N,F!()q#p$! )w#p.N%. ~#F* )w#p!)N%. ! )N,Fyx* ) 6#6* ) >!(q#p!h&N,F*(q#p!(N,F!h&q#p!h&N,FHynLFREE STORAGE IS EMPTY $4ͣ!(~b61%&-N,F!(q#p*h&~#F!h&w#p*(6#6+##6#6*( 6#6*( 6#6*( 6#6 *( 6#6 *( 6#6*( 6#6!(~,F!(q#p,s#r.N,F.q#p!(~,F~~ !\&q#p,6#6!^&~,F.\,Ox:> H (='*^&#"^&!`&q#p,6#6!`&~,F,,Oxڒ͙> H `=_> H m=l> H z=y!b&N,F! "b&G!d&~ҟ//!e&q͓/ڧ~Ҿ,~/,~/!f&6#6>!f&,Ox͓~//.fN,F! "f&öOx*%q#w!t(q#w-~,FOxGi`"t(!v(6>.rV K NS STACK OVERFLOW $ 7 &!5)q%.v~Ҋ .rN!t& ~#FOxYW!5)Nw.tw#p,6 $.5N*t(q#"t({ !t(~,FOx$.6q#w$*6)w#p!t(w#p*t( "t(!9)6,6͌ !;)w[ -~ -4.:6 ~] -~6à Ó!%w,p ÓO!%q,p!%^,V,N,Fv!h&N,F.Hq#p!)6#6!H&N,FHe*)#")*H&~#F!H&w#pC!)N,Fv Ó!%w,p Ó_P!%N,F$!(w#p!m&6!(N,F3͠1͠A͠!)q#p*<&6!)6> !)N*<& 6 !)46.6!k&6!)~ O.N,F#s#r !v)w#p !x)w#p !z)w#p7.xN,F%.q#p.vN,F,^,V2T!z)N,F%.q#p ÓO! !%s,r ÓO! !%~,FOxڏ !(w#p !(w#p !(w#p Ox!(q#w !(w#p.w#p !(w#p.N,F* ) ~#FO͞/!(N,F.q#p!|)q3.|,N~,F!S)q>9~0~G~7~W!T)q~ /~0~W!U)6 !(w#p/M$.U48.sN-q$.U~!l&6!(N,FT!W)wz~ց_>!V)wҒ~րz~,_!X)N,F!n&q#p!J&w!n&N,F!X)q#p!V)w~ց²>!|(N,F$.Xq#p%.N,F͞!X)N,F!n&q#(w#p !k&6!(N,F!K&wց"N.Bq!(N,F*!)N,F͆O!(N,F !(N,F.q#pc!(N,F !(N,F.q#p !(w#p/Ҁ-N,F܂ d!)6#6 !(w#p/Ү-N,F́O!)^,Vi`")É$.N,Fv Ó!%w,p Ó!%O~,V_zKGv!)6#6 !(w#p/?-N,F́O!%q,́!d)w#p.o6* )##~#F!n&w#p!h)w#p!m&6W.n~/&*d)+"d)!n&N,F!h)q#p.`N,F.n^͠&* )##!h)N,Fyx%.N,F.q#p$.d~,FOx.oҕ%.N,F.q#p!(~ұ$!(w#p_P$.`N,F !(w#p !(w#p !(w#p !(w#p.w#p/ʹ $!r)w#pO !(N,F-5.9~.;NW ͌ !?)w^V͌ !J&w͌ !?)w[I͌ !J&w u^W ^W u~[p͌ !J&w>O u^W !@)q#p.K6 .Iq.@N,FHyҦ.K6.@,O>-q#wü-~,FOx¼.I6.C60!@),O>6.I4N.C !%s,r !@)N,Fz/W{/_!>yOxG,F Ó!%wb!A&~րN6.& ~!)w!A&4$!(w#p!m&6%.~ !(w#p/ҍ-N,F%YP &>!)6!%#~!) 4N!% ~_!(N,F͠ß!)6!)~!C&!)~!%6~',~/w~ /,%.N,F$w-~%.rw OxG/$!(w#p!k&6.m6* ) ~#F!H&w#p!H&N,F!~)wց~/c%.N,F$.~^͠:~Ҿ~<.w.}O~ھ.~%.rO!t& ~#F!H&w#p.l6!H&N,FT!)wցʾ~/ҕ%.N,F$.^͠Õ: !(w#p-N,F͞!(w1%!)6 !(w#p/$.~>!)6%.NpZ#!X)N,F%.~q#p!n&N,F!(q#p>!V)~ց.͛/ !(w#p/Ғ-N,F/\!(N,Fʹ !(w#pq$O -N,F !r(N!t& !(N,Fyx9 !(w#p/(-N,F/ҽ!(N,Fʹ $O !(w#p!k&6!(N,F!Z)wցʓ* ) ~#F_P!Z)Nw!p&w#p-~,FOxp!%^,V!)N,F3yx`iDM!xxGyO.) !)s#r$.N,Fv Ó!%w,p ÓO!%q,p!%^,V,N,FKBv ÓO; !(w#p/!k&6!(N,F!)wO»A!d&wÃ~T%.N,F́!:&w#p~M!C&w~P!%6~D!%6/* )##~#F!|(w#p!k&6.m6Wm!|(N,F!n&q#p!n&~,F!~(,Ox`!u)w//.rN,F.u^͠/.N,F.q#pö!|(N,F!n&q#p!(q#p!m&6!u)wցʶ~/҄!n&N,F!(q#p$.rN,F.u^͠Ä* )##!(N,Fyx.~$!(w#p_P$.rN,F O/* )##* ) ~#FOi`}o|g=|W}_0 *%s !@)N,F!@)q#pü.K~H.I4N.C 6-$!(w#p!m&6!J)6!I)~,ڀ-~,O.C ~_!(N,F͠!J)4[!L)q#p,6#6.R6!k&6!L)~,FOxG!Q)wց~-»,6Ö~0w .N^,V{_zW *N)*N)!Q)N "N)Ö,~.N,O>Gy..^͠$!(w#p !H&w#p.k6.m6!H&N,F!)w!)w-~ց,O~ց-NO!)Nѳ_!(N,F͠$ !(w#p!k&6.m6$!(w#p!(N,F!)wց~O!_!(N,F͠!)~O!_͠Í OxGX/ʹ !)w#p !(w#p !%.N,F.|q#pØÙ!d)~,FOx%!n)wց8>ɯ!p)6#6!k&6* ) ~#F!H&w#p!H&N,F!n)wց&&O~,V!f),_zғ.n~/W*p)#"p)W.p~,F/Ҫʹ $!`)w#pO !(w#p !b)w#p !(w#p !(w#p.N,F/!b)~.f6#6:OvN,F,q#w.m6!Z)wց%^͠ Ód!])q*p&q#"p&{c!p&~,FOx!^)q#w*^)~#FOi`"p& O/ ![)q !(w#p/$.[4* ) ~#FOi`#"|(Wu!~(N,F!n&q#p!J&w.nN,F,q#p-~,F!(,Ox$.\w-~O,!\)~!p&~,F!(,Ox$.\w,!)wցK~:#,N*<&q!)6~./-6H-4N*<& !)Nw!)N,qͶ!)q#p *<& !)^,VzW{_ fs *<& !)~,FOxGy *<& ~• *<&O~Ov Oͻ ÓOO !(w#p!<&N,FYP2 !(w#p OͻO !(w#p!<&N,FYx\! ~#F!),Ox .~.4>(!r(N !t& !(~,F OxGyx!r(N!t& ~#F/W !r(5< !r(N!t& ~#Fo 1%!r(N,q-N!t& ~#FOx!w(q͙K !(~ !r(N!t& ~#FOx!)q#w%.N,F.q#p*) ~!)w*) ~!)wց*)O~ց!)_~AO>Z!2!E&w,w,w!(~%6.6.x6#6!h&6#6*L&~#F!H&w#p*<& ~^‚$*<& ~O*<&O~OѳO!%q,p!%^,V!H&s#r*!H&^,VN $!(w#p.r6>!r($N!t& !(~,F OxGyx.r4¡$#*<&#~ %͵#.& !)Ny!A&4~ր“.!)K!)4 {"*)##~#FOo&"9{"{"Ͳ{"͢{"X{"{"{"){" {"́{"͓{"d{"͸{"{"{"{"H{"ͫ{"{"͋{"{":{"{"I{"p{"{"{"{"̓{"{"0{"5 {"C {" {"͏{"{"{"w{"!D&~%6#͵#%.6 ͌ !)w[,% %~,:% V%~^F%V%~]R%V%NW %vPP !(w#p$.~ !(w#p !(w#pO/>!(N,Fʹ $O Ó!)w#p !(w#p!),O>*)+")!<&N,FYP2ʄ !(w#p*>&~* )O~#V_w!p&w#p-~,FOx,q#w.m6.A6>!A&TN*>& ~_͠!A&4³T!%6$.A6 !)q#p.6>'!) N, NSEQINNTGECRGCSSPKADASDDSUMLDVRFWFOFCFRNMFDFRDMDUKPSSOROIOEXNBTNTFFWVNCLRSZZFSST(~ց*x(O~#VZůџ` !s(N -q.v6*( ~ց=#!(N,F*ô#!w(ҍ#.N,F$.q#p*)~#FHi#+~#F!)w#pP#!x(N,F*)q#p!(N,F.xq#p*x( "z(ô#!k&6!(N,F!)wցʫ#NW Ò#%.N,F*/#ʹ $!(w#pO !m&6.K6*>&~!KN *>& ~_!(N,F͠#o{"!D&6&{" {"))" ^#V!!%!+!1!7!=!C!I!O!U![!a!g!m!s!y!!!!!!!!!!!!!!!!!!!!!!!""!(~,FOx-q#w.sN-q!r(N!t& ~#F/"!r(N!t& ~#F!(w#p,,Ox".N,F*!r(N!t& !(~,F OxGyx.r4Ð"!z(~"` #*z` The prime factors of n! n! = p(1)**j(1) p(2)**j(2) p(3)**j(3) ... can be calculated by the following algorithm, where "/" is an integer divide with the remainder discarded. To find the power j of some prime p in n!, calculate the sum j = n[x-Ko% n[-Ks% nH[-Ku%ݐ nl[8*|!.u͑!͔0[BEGIN EXECUTION:ʸ! ~#¡͌*2>[ ">2͠*"͠}|<>] 0FORLIB REL  |9} @{loop} @{ps|||I hope such things amuse you.|} }} @{ns|loop|{ @{eq|@@{@cb}||{ @{zz|10} @{ns|i|@@{ad|@@{n}|@@{k}|-8}} @{ns|m|@@{ad|@@{ml|@@{l}|@@{k}}|@@{i}}} @{ps|@@{l}*@@{k}+@@{i} = @@{m}|} @{ns|n|@@{ad|@@{n}|1}} @{ns|l|@@{lns|answer|@@{answer} @@{p}@@{ge|@@{j}|2|**@@{j}}} @{prime loop} }} }} @{ns|calc j|{ @{ns|j|@@{ad|@@{j}|@@{a}}} @{ns|a|@@{dv|@@{a}|@@{p}}} @{ge|@@{a}|1|{ @{calc j} }} }} @{ns|primes|{ 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 6V!~w:~w*: **yȷ* J~@*P"I*** ~ †::}G@ex xn?Command Erro~ #Ô~# ʞ ʞ`ڳ +!~G#~ ;x+#~0>*  :> :;!<o>/p + n/p**2 + n/p**3 + ... using the recursion relation n/p**(i+1) = (n/p**i)/p (In the ACT program, "a" is the current term in the j sum.) ` @{ns|prime factors of n!|{ @{ns|n|@{rs|Type an integer less than 600. }} @{ge|@@{n}|50|{@{ps|T}@@{n}} @{loop} }} }} @{ps|Hit any key to stop.||} @{amuse} {k}|-8}} @{ns|m|@@{ad|@@{ml|@@{l}|@@{k}}|@@{i}}} @{ps|@@{l}*@@{k}+@@{i} = @@{m}|} @{ns|n|@@{ad|@@{n}|1}} @{ns|l|@@{l1 67 71 73 79 83 89 97 101 103 107 109 113 127 131 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401g6 > _! o?File Not Foun> > PA,B/E >2!w#—!1w!<>2 :_<2!~"G"I"?go"22 !"{?No Start Addres?Loading Erro?Fatal Table Collisio!@o!Ou!͔2* ͸2r, /r͞MªG@RSUE *͑O2 Hr2 G:2͞Ì" z2Č2 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 }} @{prime factors of n!} x: 7*G*I͚ʨ ~G:~@‡/2:`‡~> G>/ +^+V+~ L/ ~@j>*2 ͠~+^+V͠0~<</O |}: )0 ) ´0 ±|}Gx0: go"92"9*?"=*"NUMBER MAC TEST1 FORRND RELb" *** " DB "* *" DB "* *" DB " *** " DB "* *" DB "* *" DB " *** " DB " *** " DB "* *" DB "* *" DB " ****" DB " *TBF7v>KAFORLIB RELs$%&'()*+,-./012r=oo==To{CRNZRPRPERPORRCRSTRZ SBB2SBI;"SHLDSPHL:2STA#STAX7STC SUB2SUI TERMXCHG XRA2XRIXTHL80X>Fk> /o/g K(~@wq+p* }| " "*; ";͚DMq ̀ %!q͔`>/ 0(~W+++~ +g%2nd COMMON Larger * "";͓ %Vz"ɯ ~@~@w+:6~_q+ÿ:7=¼>͍ 6+p+q+6+r+s(!͔`0(%Mult. Def. Glo++F+N+"E* 25͏ ~s#_~rWͫ  V+^++F+N+"E՟25͏ T ͏ r+s^#Vͫ L Fr#Nsp+qF+N++V+^+* DM~_q+Vp~_q#à :5 DM*A * {OzG*?*Eø ##|¿ } #y¶ #x· #~¸ :5 ~@w"E25}7>25*;DM*Aͳ " ";{_zW{_#"A"C>2628" 8P,A,! ~#foBK:6ʑ#:8=ʔ*;|q{v}{";*A|…}2 p#p#*C|ʢҬ§}Ҭ"C*=|ʺ҈¿}҈*ADM È:6:7=>͍ w+p+q#BW++ss# ('1','ENTER YEAR (4 DIGITS)') (I4)CALENDAR (1H1)(' ')!"!b*0$*!_*(!>*0.!͔;9=!b*0!(͹"BF!b*0!(̈́= UMBER MACREPRB RELJx n q [ ENDLEG END 0199 balů ~++5 #N+F@K :6] PYOG" |}(|(:6] #q+p(:6ʶ͂ ͭ (͂ >͍ :7=p >w+r+s+6+r+s(:7= 25 |ʦ ͏ ^#Vͫ Қ :7=25 ͏ ~s#_~rWͫ һ :8=*A DM*="E! ~#4 ʹ6+w<STAT COM*C͚"A z { `i"C*;*A͚l*C*;DM*Aͳ ͚{OzG*; "C` DM*Aq `i"A*C*=͚l|{ } q *A͚2 /O*= "=*C͚گ *A DM :8=yoxg"9:8= *9!"9 *A{OzGDM7===$Dr#͋:7>͞C?@2ԋx ( ;͞/> L6 #=Dy.̋xdq͞eʆ!~ †6R#6E#6Ly͞[ҩ0کAҥ:ҩÎO:6|(~_q#Vp»(͂ :8=>͍ :7=> f+^+V" (:728=(" DB " *" DB " *** " END  "**** " DB " *" DB " *" DB "* *" DB " *** " DB " *** " DB "* *" DB "* " DB "**** " DB "* *" P B,=NUMBER >2#"B$!F$#$=$"D$`i~*D$3$=.$*B$w#9$ *** * ** ** ** ** * *** * ** * * * * *** *** * * * * * * ***** *** * * * ** ** * *** * ** * * * * ***** * * ****** **b*0+*b*0/*b*0!"*+!)""3*b**"*)"*!)>**#*{zY0*#>>.77*b*0;*b*0?*b*0!"*+!){""C*b**"*)"*YT!YT7YY7L;YS7YT7>R7YD7R7>> b6 #=Zy.2dxzʇY{y/yYL 2gYOÈN 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031:O!~6#~O:;,"{" >"|1" 1"*&#|."tͤGDNͅ ù s>2ojˆ">(ͬ[**QWxm"~w+++ ["*&"**QW"& $ $C"(' ',' ',4(A1,A1,A1,A1,A1,3X))"!"!*!~#fo"n"!"p"!"r"*n"*p"`)"t"*r")d""v"*t"*v"s#r*t"*p"*s#r*#"}=Ɓa!"!"*++"!"*"!"*)"*!)*"*!T)*^~#fo#"*)"*)~#fo*s#r*#"*#>>B*#*{z<*#>>6*###> >(G*b*0 *b*0*b?COMMAND ERRO?FILE NOT FOUN?CAN'T ENTER FIL~p#n!=É!LÉ!\nê"*+++"b*:j2e*b: ʪ2m2g2l2k2i<2hzů2aͳ >2a!nͧ> 22y,*0~#fo*;{ozg}=. !*6{ozg"9*9*0~#fo*4s#r[";!;%! a(! '!=6!=ͧ%*2s#r*2%! a(! '!A6!Aͧ%"E![*E{ozg*4~#fo*4s#r*2~#fo++*2s#rH>:g"$!""$!" " `i" * ~#fo! `)" !)>**#*{z0*#>>2o,>[{u >2:"."0>!28!"6*.~#fo!`)))*.~#fo{ozg}ʌ!"6*.~#fo!d`)!d)*.~#fo{ozg}28*.~#fo!`)e.*.~#fo{ozg}!8!"6!"9*6;"; ++++++++++++++++++++++++++++++++(1H0,' J A N U A R Y ',' F E B R U A R Y ',' M A R C H ')(1H0,' A P R I L ',' M A Y ',' J U N E ')(1H0,' J U L Y )"t"*n"*t"{ozg"n"*p"! `)"p"*r"#>>"!"r"*r"+"x"!"z"*r"!)"v"*z"!#)*v"!"|"*z")d""~"x"*~"*|" $*z"#>>?#""*!b*!""!""*""v"*r"!)*v""|"*"!#)*|"!"~"*~"!$>%**"#>>#*"#>>#0*r"#>*0!"*+!)#""*b**"*)"*!)>**#*{z/0*#>>*b*0*b*0*b*0!"*+!)""#*b**"*)"*!)>**#*{z0*#>>'2i:a2iͳ 2f-:a@2a!ͧy=7 7YͳYCA2x  Q* ~#fo" !d`)" )" * !`)" * !d)* {ozg* ~#fo{ozg!)!`)" * ~#fo ! `)! )" ! * {ozg* ~#fo! )+!`)M* {ozg* * {ozg* ~#fo" !! %" * 7E*&7E*DMyE! ͅ 2!|2("#"&_*"*!T)*^"!*s#r*#> >*#>>*#>>!"!"!"*G*+}2*}=!* #"+}ʸ*#"*+}!"*)"*!)*"*!T)*^"* ',' A U G U S T ',' S E P T E M B E R ')(1H0,' O C T O B E R ',' N O V E M B E R ',' D E C E M B E R ')(1H0,3(' S M T W T F S '))(1H ,7(A2,1X),1X,7(A2,1X),1X,7(A2,1X),1X)(1H )""!"!"!"*)"*!)*** * ** * *** *** * ** **** * ** * *** ***** * * * * * * *** * ** * *** * ** * *** *** * ** * **** * * *** !q>6>%ҹ%5 7%6!u>6)g>7|Բ)>³%ak~#fo@)6[&([&7 4:V>2h>3|45!"f>2F>!444# %45yO!4:Z>D4!4 ^#V"d>y`4*M>"S>>x2O>b3j45}2<>2=y ڊ4:m>.”4b3*V>}2=*M>+"M>25XH(AILEFG5-1*`/L0`/`/`/5.1>+/r0,3--:U>G*=V>w#4"=*f>|32!Y>~t5x2=w:U>=5=5+-"f>"M>3*M>*G>F1*M>#"M>*f>+"f>|#.3!O>:=O5V.:=[.*= ~ 2m>!=q>M.> M.:F>I–.:=s.5*X>|.5:i>4*V>|/g}/o#"V>4>2=:=/>x­.!h>2=0:Y>4!=~w:=.*V>*X>{z_}W|o:=..}o"X>Ð.!./s>O(t>4ʂ6-(=(g.*^>:`>Oz(=(g.*q>:s>#(x<=T({_zWxG)yOHGÓ6R)d(767͹(y+F+F+Fw`h|ʱ(gyҕ(:q>O|g}oxG-|‰(}„(Ç)ElaOÃ(!t>~Gx(ƀ)w)w+ɷ6)6x{6!u>6)wg(z( >7| *S>"\>*f>"b>3!x"O>*M>*G>:Z>G2~'823.w#%2#~'+2"M>3~'^2G1*M>#"M>#G2*M>#"M>#~'M23:[>=2!l>4*\>"M>22[>3*b>+"b>|3*\>"M>![>43!=6:Z>2:=½2<*=6 2=̈́5:=2=:Z>2>x2= !=p#=2^32=3!l>~2w3*=+"=¿+*=+"=|»+< ,>G>02=!=#Z6!=4:Y>0w*V>))))"V>*X>))))o"X>$,"S>~:r, w+b,w!=|‡,}‡,!=4#"=|/W}/_*S>"S>:U>/4:=G:h>,xx2=,:h>,2=v1:h>,01!=5,<,:=,,Q1,E1:=!h>26z||`))7i&7q&*9&()|6E&![&V&*&g(x&>O!t>~+>w7QY6)7:t>ү&hڧ&*(Ɓʯ&)'!&5'Jk(QY67)Â6|Yt&wz^Pc|u~r16&5>2t>!&5'*og@)f' =~w`.A/*X>O|0GT])))*V>DM)) ) "V>&o"X>!=:=w03. C0:<>2O>C0/Fe0T/>2V>3.i04!V>~}0>T>Fw> #w#w#w>+}2o>> æ0}2o>> æ0}2o>>æ0O!6:o>Y*Y*=_^#V ^#V00*K>|05*I>|05:n>!=wʩ2:Z>>æ0*Z6!7:U>=/="/5:V>og"V>2X>>2Y>4:=,:=2=2=v13. K/>00\/:\/02m>>ɯ2=C0-t/>2i>y/+|/C04!=5!O>40:m>.ž/>2=0:m>`.E®/C0+ʽ/-/>2=C0y2>>!=5!O>4A//Ox /5> G/:=x//<2=G!6{>2t>͇)/~.)#~+~+~+LUX)!"t>ܬ)Ç)*@))zʃ)zB)|G||)7)5ajSX1)JS\E!t>)/~/woG}_}W}O*6||DM!>))) =)go"q>"s>!s>~7w?##wy7|3:l>¤2*f>|3+"f>:=2=2i>2=2=go"V>"X>:<>!O>w:Z>F34*d>:U>G*=V>~#P3"=B3æ02=go"V>*M>*G>~# s3-Š3= s3"M>2m>G03 Ҭ3*V>T])))_h3*V>|·3#x:=3o>g"V>|x*V>*X>xLCZU7ajSXb3"f>3,3/ʤ2)q2'2Pµ= -+--/<2=1:=_! 7{0G1}0G1:U>/4:=G!=:h>wR-,2=:=2=:=k-2=!=wv1:=/-*S>"Q>!"S>Q1!=4…-*Q>"S>Q1Õ-:U>/4:=,!=/<,w!<>~w2O>!h>~w<2P>>-2h>2P>>2O> 1-*M>*G>DM*f>3.+|}}{(qnz *6g(5'g(*~#6=xd(7f'@'R)c'77:t>6v'/<)7)g7!q>'~_#~W#~Oғ6#4ʂ6.8Ó6G~_#~W#~Oܬ)Ç)R)'77>Of'R)'7ʃ)7ȯG͹("^>y2`>Foͷ))!D*q>:V>*X>|311#1,1ejSX3131ch|H1{_zW}o|g41"X>"V>x!=5b1:Q>*1!S>501*=F#"=1!<>~!i>!=2Q>ʔ112=/1:i>-1!=51.1Q1Ý15 1!Q>5µ1Ô1:=!=1^4*=p!O>515:P>:f>32![>~425+ +> ZUlg*:=/<#+#+ZUl& =+2=:U>4+=4+Z"X>"V>4;5:=Y+Y+ 1=M+2=:V>G1*V>*X>ZUl& "X>"V>Z+:Z>ʝ+:=O:=2p>*= *=ͻ+y2="=:=O>2p>*=*= ͻ+y2=Ù+:U>G:p>=+:Z>+:p>2=>ͦ0*=û+>ͦ0:=2p>*=û+w# O*q>*s>"s>"q>>(*>(*>2U>.8B8~#fo":>B8"=*:>"=:n>S*w+9*39*5>2Z>~#fo"o>~#+x*!"G>!I>>8*I>~#’*!"I>*K>~#¡*!"K>2[>2l>2n>2h>2P>go"M>"=*G>|!="=*b3*M>"\>(252=2=<2n>:Z>>æ0;5*V>*X>3.>2i>>w$5++~o5/W+~/_s#r>2i>7!70!=~w%5@5Z6(5`5*V>*X>Z6(5"V>"X>!=4/G3"X>"V>+$52=go"V>"X>!=4>æ0*f>=|5ڝ535 :=3 1*f>+"f>|©53:U>G:<>2=~#O*=:o>:=!@>+"=>2o>>2=!6 ^#V"B>̈́MON,IDAYM) + 1 IF(IDAYW .EQ. 1) ILINE = ILINE + 1 IF(IDAYM .EQ. 1) ILINE = 1 KDATES(IDAYW,ILINE,IMON) = IDAYM IDAYR = IDAYR + 1 IF (IDAYR .LE. 366) GO TO 20 999 ICTR = 1 DO 30 J=3,12,3 M=J-2 DO 30 L=1,6 DO 30 K=M,J DO 30 N=1,7 MNUM=K>*q>!s>+ >2(>)~2#~2>% ! ****+++7>:XW>_:;.>{.>M>{*>2o>!>))ґ> =‰>ɯogG:70>:20>!x#ʾ>~#>ï>9Pͯ+PͲ>G:70>xʹ+G*#"FxGF >*****ZQ7 o-yOzW{_xG 8`iN#F#q#p#=82="^>"`>`i"=2=:=W8!^>_k8:=*=p8_~#fo:=<2=W:=҃8240d8P7:30<230d8$9[Ҹ8:Ҹ8Ý8O!~6FORTDATY*:3::9989!8:o>_~!8:o>_^#V8C9 END SUBROUTINE CALNDR(INYEAR,IOUT) DIMENSION KDATES(7,6,12),KPRINT(504),KHARS(32) DATA KHARS / 1 ' ',' 1',' 2',' 3',' 4',' 5',' 6',' 7',' 8',' 9', 2 '10','11','12','13','14','15','16','17','18','19', 3 '20','21','22','23','24','25 S<~+E<15<> S S<~0E<> S<#~#S<=G<_>2;x< <~+<1<> <<> <~ <0<> <#~#<=<_*=~52=2o>"=:=><2=>҄=Ä=IDF0MPIRFWITPRDOMLDZLGSQIBTLOBDEISBEINOVCNGLGSSNA2IODTBIRCEF!=>w!=533"V>{ozg"X>65J!t>qx!t>6F#~怩O6 4Æ6 e<;e`i"s>*q>*s>D@~:o>_!86!z;"=8! w#9;<<9<88>w*!8:o>O s#r!8r+s6#8w#l9:o>G 1wx څ90#w> #w#8w#‘9">wT] 688691;8;8@Į9888 d;6*=*=&9w#9','26','27','28','29', 4 '30','31' / DO 10 I=1,7 DO 10 J=1,6 DO 10 K=1,12 10 KDATES(I,J,K) = 0 IDAYW = 0 IDAYR = 1 ILINE = 0 20 CALL IDATE1(INYEAR,IDAYR,IMON,IDAYM) IF(IMON .GT. 12 .OR. IMON .LT. 1) GO TO 999 IDAYW = IDATE3(INYEAR,I =#~"= ,=!-=^#6 #> :s>7*V>*X>"q>OGgo"s>"X>>2p>͢7v7:p>=2p>Z7͢7v7͢7͢7;7*s>)oyg"V>q7*X>#"X>!=4*q>*s>}o|g"s>>G>O*X>>o>g"X>)*s>}o|g"s>xGyO*X>}o|g"X>|/G}/O!>7 77>{_zW}o|g=7|g}o8C IOUT = 6 WRITE(1,200) 200 FORMAT('1','ENTER YEAR (4 DIGITS)') READ (1,100) IYR 100 FORMAT(I4) CALL OPEN (IOUT,11HCALENDAR ,0) WRITE(IOUT,300) 300 FORMAT(1H1) CALL NPRINT(IYR,IOUT) WRITE(IOUT,301) 301 FORMAT(' ') CALL CALNDR(IYR,IOUT) 28>w7!8:o>_~O;4!8_#>Wɇ> ;> ;>;!8:o>_~;828w8;868!8~{2o>9{ };~ 82o>8C98 w ʼ;#w°;:o>_!68p+q:o>_!8^#V < < < < < <;:; <> S87886*=8>2=88 d;628:=*=> ;~+s:1g:> ;s:0> ;> ;#=ʁ:~;s::878862=28:: ʙ::*=&*=w"= :}ڙ:5:8!8:o>_~:5!8/Ɓ_#>W;8DATES(N,L,K) + 1 KPRINT(ICTR) = KHARS(MNUM) 30 ICTR = ICTR + 1 WRITE(IOUT,2000) WRITE(IOUT,3000) WRITE(IOUT,6000) DO 40 I=1,6 L=((I-1)*21) + 1 K=L + 20 40 WRITE(IOUT,4000) (KPRINT(J),J=L,K) WRITE(IOUT,2200) WRITE(IOUT,3000) WRITE(IOUTtroy a pre-existing output file` @{mf|@@{sink}||{@{ps|FULL DISKETTE.|}@{ex}}} @{ns|sinkrn|0}` preset the next output record number` @{ps|Sink: @@{sink}||} @{ns|f|}` f is formatted output` @{GD} }| { ITEN = ITEN / 10 4 CONTINUE DO 10 I=1,7 J=I-1 DO 11 K=1,4 11 CALL NUMBER(CH(1,I,K),N(K),J) WRITE(IOUT,200) ((CH(I1,I,I3),I1=1,5),I3=1,4) 200 FORMAT(' ',' ',4(A1,A1,A1,A1,A1,3X)) 10 CONTINUE RETURN END ') 2200 FORMAT(1H0, 4 ' A P R I L ', 5 ' M A Y ', 6 ' J U N E ') 2500 FORMAT(1H0, 1 ' J U L Y ', 2 ' A U G U S T ', 3 ' S E P T E M B E R ') 2700 FORMAT( file list can be blank or comma delimited` @{NF} }} @{ns|NF|{` Next File` @{in|files|,| { @{ns|source|@@{@in}} @{ps|||Source: @@{source} } @{of|@@{source}||` open the current input file` 100.)) IMON = IMON - 2 RETURN END FUNCTION IDATE3(I,J,K) C C IDATE3 RETURNS DATE OF WEEK (0-6) GIVVEN YY/MM/DD C C I=YEAR, J=MONTH, K=DAY C IDATE3=MOD((13*(J+10-(J+10)/13*12)-1)/5+K+77 1 +5*(I+(J-14)/12-(I+(J-14)/12)/100*100)/4,6000) DO 50 I=1,6 L=((I-1)*21)+(7*6*3)+1 K=L+20 50 WRITE(IOUT,4000) (KPRINT(J),J=L,K) WRITE(IOUT,2500) WRITE(IOUT,3000) WRITE(IOUT,6000) DO 60 I=1,6 L=((I-1)*21)+(7*6*3*2)+1 K=L+20 60 WRITE(IOUT,4000) (KPRINT(J),J=L,K) WRITE(IOUT,2701H0, 4 ' O C T O B E R ', 5 ' N O V E M B E R ', 6 ' D E C E M B E R ') 3000 FORMAT(1H0,3(' S M T W T F S ')) 4000 FORMAT(1H ,7(A2,1X),1X,7(A2,1X),1X,7(A2,1X),1X) 6000 FORMAT(1H ) END SUBROUTINE IDATE1(IYE { @{ns|b|}` b holds one record of the input file` @{rf|b|1} @{ns|sourcern|@@{rn}} @{ns|sink|@@{source}f}` NOTE: file sequence number must be less than 10` @{of|@@{sink}||{@{df}}}` des 2 +(I+(J-14)/12)/400-(I+(J-14)/12)/100*2,7) RETURN END SUBROUTINE NPRINT(INUM,IOUT) LOGICAL CH(5,7,4) DIMENSION N(4) NUM=INUM ITEN = 1000 DO 4 I=1,4 NTEMP = NUM/ITEN N(I) = NTEMP NTEMP = NTEMP*ITEN NUM = NUM - NTEMP 0) WRITE(IOUT,3000) WRITE(IOUT,6000) DO 70 I=1,6 L=((I-1)*21)+(7*6*3*3)+1 K=L+20 70 WRITE(IOUT,4000) (KPRINT(J),J=L,K) RETURN 2000 FORMAT(1H0, 1 ' J A N U A R Y ', 2 ' F E B R U A R Y ', 3 ' M A R C H @{ps||Format Destruction List 3/8/77|} @{ns|/|@@{pk|0d0a}}` set the string "/" to RETURN LINE-FEED` @{ns|NFL|{` Next File List` @{ns|files|@@{rs|@@{/}FILES: }} @{ss|files| | }@{ns|files|@@{files|,|,},}` 1 IF ((IYEAR/400)*400 .EQ. IYEAR .OR. 1 (IYEAR/100)*100 .NE. IYEAR) GO TO 20 IT = 0 20 ITEMP = 0 IF (IDAY .GT. (59+IT)) ITEMP = 2 - IT IDY = IDAY + ITEMP IMON = IFIX((FLOAT(IDY+91) * 100.)/3055.) IDY = IDY+91-(IFIX(FLOAT(IMON)*3055./AR,IDAY,IMON,IDY) C C THIS SUBROUTINE RETURNS MM/DD WHEN GIVEN YYY/DD C C IYEAR = YEAR (INPUT C IDAY = DAY WITHIN YEAR(I-366, INPUT) C C IMON = MONTH (OUTPUT) C IDY = DAY WITHIN MONTH (1-31) OUTPUT C IT = 0 IF ((IYEAR/4)*4 .EQ. IYEAR) IT =@{ps|No such file.|}@{NF}} } }| {@{NFL}} } }} @{ns|GD|{` Get Date of destruction from first line of file` @{in|b|@@{/}| { @{ns|d-date|@@{@in}} @{NL} }| {@{ps|The input file is empty.|}@{NOR.|}@{end}}}` write it to the output file buffer` @{ns|sinkrn|@@{rn}}` and save the next output record number` @{ns|#d|@@{ad|@@{#d}|1}} }} @{ns|c0| |c1| |c2| |c3| |c4|}` pad for four column fielddr|rv|vl|1|2|3|4}} }} @{ns|AAA|{` special checks for prints` @{ns|n|@@{in|p}@@{n}}@{ns|p|@@{@gc}}` handle, for example. aaa75 123456` @{ns|n1|@@{gc|n|8}} @{ns|q1|@@{gc|n|1}|q2|@@{gc|n|1}} @{eq|@@{in|n}|||{@{ps|The fo@{ND} @{NCL} } } }| {@{READ}}` no more full lines in b` } @{NL} }} @{ns|READ|{` Read the next record. (More output than input.)` @{ns|b|@@{@in}}` save the @{ns|c-n|@@{c}}@{ss|c-n|/|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z}` copy number: remove letters` @{ns|c-s|@@{c}}@{ss|c-s|/|0|1|2|3|4|5|6|7|8|9}` copy series: remove digits` @{ns|c|@@{c-n}@@{c@@{gc|c-n}}@@{c-s}@@{c@@{gc|c-s}}}` lef @{ns|x|@@{in|d}}@{eq|@@{x}|||{@{RF}}}` construct the reference field` @{eq|@@{gc|p|3}|aaa|{@{AAA}}} @{ns|p..|@@{p} }` document prefix will be left justified in columns 1-14` @{ns|n..|@@{n} }` F}} } }} @{ns|NL|{` Next Line. format:` @{in|b|@@{/}|` _;` {` where may be "." or "._"` @{ns|l|@@{@in}}` } } @{ns|n|@@{n1}@@{q1}@@{q2}}` reassemble the print number` }} @{ns|p1| |p2| |p3| |p4| |p5| |p6| |p7| |p8|}` pad for eight column field` @{ns|NCL|{` Next Lopy Loop` @{ns|c|@@{in|l|;}} @{llowing print number has been truncated.|}}} @{eq|@@{q1}|o| { @{ns|q1|0} @{eq|@@{q2}|o|{@{ns|q2|0}}}` change revision "oo" to "00" and "oa" to "0a"` }| { @{eq|@@{q2}|0|{@{ns|q2|0}}}` also change "a0" to "ao"` number of the next record to be written` @{cf}` and close the output file` @{of|@@{source}|@@{sourcern}}` open the source and set the next input record number` @{rf|b|1||{@{ps|READ ERROR.|}@{ex}}}` t justify in two four column fields` } } @{ns|r|@@{d} s@@{c}copd @@{d-date}@@{x}}` assemble the document` @{ps|@@{r}||} @{ns|f|@@{in|f}@@{r}@@{/}}` append to the unwritten part of the string f` @{wf|f|||{@{ps|WRITE ERR document number will be left justified in 15-28` @{ns|d|@@{gc|p..|14}@@{gc|n..|14}}` assemble prefix, number` } } }} @{ns|RF|{` reference field` @{ss|x|draft|rev|vol|i|ii|iii|iv} @{ns|x| @@{x| and may be null or "_rv_` @{ns|d|@@{in|l|;}}` ("_" is a space)` @{eq|@@{d}|/|` test for new page - "/" in a line` { @{ps||||@@{pk|0c}|||@@{sink}||} }| { eq|@@{c}|||{ @{NC}@{NCL} }} }} @{ns|NC|{` Next Copy` @{ge|@@{gc|c}|5|` assume no series or foreign number if > 5 chars.` {@{ns|c|@@{c}@@{p@@{gc|c}}}}|` left justify in one eight column field` {ND|{` Next Document (or end)` @{eq|@@{gc|d|5}|\end\| {@{end}}| { @{cr|d} @{eq|@@{gc|d|1}|.| {@{ns|d|@@{p} @@{in|d}}}| {@{cr|d}} } @{ns|p|@@{in|d| }}@{ss|p|-|/} @{ns|n|@@{in|d| }}@{ss|n|-|/|^|=|.} read the next record` @{ns|sourcern|@@{rn}}` save the number of the next input record` @{cf}` and close the input file` @{of|@@{sink}|@@{sinkrn}}` reopen the output file where it was` }} @{ns|s` @{ns|end|{ @{ns|f|@@{in|f}end of file. @@{#d} documents in @@{sink}@@{/}} @{wf|f|@@{pk|1a}||{@{ps|WRITE ERROR!|}}} @{cf||{@{ps|CLOSE ERROR!|}}} @{ns|#df|@@{in|d|,}} @{ps||End of file. @@{#df} documents in @@{in|d}|} @{eq|@@{#d}|@@{#df}||k file` @{mf|@@{sink}||{@{ps|Full disk.|}@{ex}}} @{do line}` OK - start processing` }| {@{ps|No file "@@{source}"|}}` Can't open source` } @{next file}` Go again (exit with Control-C)` }} @{ns|do line|{` Process one line` @{gks arcs grass stems sheep cows deer /stars clouds flowers buds leaves trees pools drops stones bells trails }} @{ns|list6|{ /spring fall cold heat sun shade dawn dusk /day night mist trees woods hills pools }} @{ns|list7|{ /Bang Hush Swish wness of the interpreter.) The indenting in this file is done with TAB characters, not blanks. ` @{ns|next file|{` Process one file (top level)` @{ns| source|@@{rs|input file: }|` Request file names.` sink|@@{rs|output file: }| source rnprint|1|2|3|4|5|6|7|8|9} @{ns|list1|{ /white blue red black grey green brown bright pure curved crowned starred }} @{ns|list2|{ /buds twigs leaves hills peaks snow ice sun rain /cloud sky dawn dusk mist fog spring heat cold }} @{ns|list3|{{@{ps|ERROR: found @@{#d} documents.|}}} @{NF} }} @{dd|#d} @{eq|@@{fn}||` see if this program was loaded by "cdl"` {@{NFL}}| {@{ns|files|@@{fn},}@{NF}} } ed burst }} @{ns|ssl|{ @{ge|9|@@{n}|{ @{ss|list@@{n}|/} @{ns|n|@@{ad|@@{n}|1}} @{ssl} }} }} @{ns|n|1}@{ssl} @{haiku} Ffttt Whizz Flick Shoo Grrr Whirr Look Crash }} @{ns|list8|{ /sun moon star cloud storm streak tree flower /bud leaf child crane bird plane moth }} @{ns|list9|{ /flit fled dimmed cracked passed shrunk smashed /blown sprung crashed gone fogg`from Computerized haiku by Margaret Masterman in Cybernetics, Art and Ideas` @{ns|haiku|{ @{get|5|Pick one of the above nouns: } @{get|1|Choose a word which goes with @@{5}: } @{get|2|and another: } @{get|3|and another: } @{get|8|and anothe|0|` Preset initial record numbers` sink rn|0| input||` Clear input and output strings` output|| n|0` Initialize line number` } @{of|@@{source}|| {` Source file exists` @{cf} @{of|@@{sink}||{@{df}}}`Destroy existing sin /see trace glimpse flash smell taste hear seize }} @{ns|list4|{ /snow tall pale dark faint white clear red blue green /grey black round square straight curved slim fat burst thin bright }} @{ns|list5|{ /trees peaks hills streams birds spec` This is an ACT program which reads a text file and writes another with the lines preceeded by a sequence number. The purpose of this example is to show how the disk i/o functions were intended to be used. (Another thing this example shows is the slo|@@{2}|@@{3}|@@{4}|@@{5}|@@{6}|@@{7}|@@{8}|@@{9}} @{haiku} }} @{ns|get|{ @{ps|@@{listN|@@{pk|0D0A} }|} @{ns|N|@@{rs|X}} }} @{ss|get|N|X} @{ns|print|{ @{ps|| All 1 in the 2,| I 3 4 5 in the 6.| 7! The 8 has 9.|| } }} @{ss|r which is especially close to @@{5}: } @{get|9|and yet another: } @{get|6|Choose a word which is strongly connected with @@{2}: } @{get|4|Choose another which goes with @@{2}: } @{get|7|Finally, pick a word which goes with @@{9}: } @{print|@@{1}et line}` Line is left in string l` @{eq|@@{l}|e.o.f.|` "e.o.f." comes from "read"` {@{close}}|` Close file; exit "do line"` {@{put line}@{do line}}` Output and loop` } }} @{ns|get line|{` Value is the next line, or e.o.f.` @{in|~.wj!6#6!r~!,O>ڠ-N,F!r ~O<!w-?.6.N.q.N,F.q#p.N.q#6!~ʐ~z.N,F* "z!6!~w,~,FOx-q#wX!N,F! "!6#6.6#6.~,& -~+.6#6& ~-.6#6& ~=.6#6& ~>.6#6& ~< ..$!4!q#p"CANNOT OPEN $L!N,Fͯ!6#6!~,F!,Oxҝ!N,F! !^,Vʐ~WRITE ERROR $qL!N,Fͯ* "=-6#6!q!~,FOx5-N,F! !Ny*#"5,^,VCANNOT CLOSE $L!N,Fͯove any Control-Z chars.` @{ns|source rn|@@{rn}}` Save the current record number` @{cf}` Close the input file` @{of|@@{sink}|@@{sink rn}}` Reopen the output file` }} @{ss|read|.n.}` Create the argument` @{ns|put line|{` Output line )  ^#V-N,F<!6!r~.;N.r ~O$!4!q#p-Nͤ!N,FHͤ!N-q,~f!w~ «.N y'.w.N,FHy'.wOyOxG‡y-Ox.q#wͤ!N,F<!~¶6!r4N !NyͷR!q~.qw!r~.!6#6 .N-No` @{ps|Write error|}@{ex} }} @{next file}` Start` Control-Z` @{cf||{@{write err}}} @{ps|@@{n} lines in @@{source}||} }} @{ns|write err|{` If error, reload the idle macrinput|@@{crlf}|` Another line in input string?` {@{ns|l|@@{@in}}}|` Yes - store in l` {@{read|10}@{get line}}` No - read more from diskette` } }} @{ns|read|{` "@{read|n}" reads the next n records` @{ns|input|@@{@in}}` Set input to las !N,F !6#6>!,O>S-N,F. !N,F. !N,F* ~ww!N,F! "YPYPYP| YP‘  *  !  ! 666!q~ O~ _~ O~ !q~0/O>9/!q~A/O>Z/_~a/O>z!~,FOx£-6#6!6#6!~,FOxң-N,F! !^,V!w=o!~,FOxb-N,F! 6ã~ʖÄREAD ERROR $xL!N,Fͯ* " !N,F! ~!w*#"!~ !6\#6!q#p * 6L * 68 * 60!^,Vnumber and line` @{ns|n|@@{ad|@@{n}|1}}` Increment the line number` @{ns|output| @@{in|output}` Unwritten part of output` @@{@@{gc|n}}` Pad for justification` @@{n} @@{l}` Line no., space, text of line` @@{crlf} } @{wf|output|||!w!6#6I.~'2-~-6-6R-~'C.6F!N!/!O~H!6.6#6 -~OO~QҎ.6~H›.6~B!wJ!Ҹ!6!~D!wJ!!6 !N!/!6>!RN 6 .1ô!q,s#r!q,s#r!q^ $ $!q#p -^,V!q#p1!N,F<!q> u~ AO$|~0O$!q~ „O_!~O_!q#p-N,FH}!N}úEND L81$L1!q#p.6> ! N* ~ !N* ~O$!~t partial line` @{cf}` Close the output file` @{of|@@{source}|@@{source rn}}` Open source at next record` @{rf|input|.n.||{` Append the next n records` @{as|input|e.o.f.@@{crlf}}` If eof, append "e.o.f."` }} @{ss|input|@@{pk|1a}}` Rem/_~$!qO!Nѳ!q!O~A/_>F/ѳ!qN!~0!~A !q%.[N y'wlLINE $fL!N,F͙:$*& SYNTAX ERROR NEAR $!6#6 UNEXPECTED EOF $!6#6 MISPELLED NUMBER: $!6#6 NUMBER TOO LARGE: $!6#6tput and close file` @{ns|output|@@{in|output}}` Define unwritten output` @{wf|output|@@{pk|1a}||{@{write err}}}` Pad with Control-Z` @{cf||{@{write err}}} @{ps|@@{n} lines in @@{source}||} }} @{ns|write err|{` If error, reload the idle macr{@{write err}}}` Write, if more than 128 chars.` @{ns|sink rn|@@{rn}}` Save current record number` }} @{ns|4||3| |2| |1| }` Blanks for right justification` @{ns|crlf|@@{pk|0d0a}}` Define end-of-line` @{ns|close|{` Write remaining ou6 #6& ~: .6 #6& ~\& .6 #6.~,FOx; D .N.q#6.6!r6.6-~) .6#6.q6.6.6!~ !Nͱ҉ Rx !~/,O~* RR!~*,O~/ -~ .6#6Rå RRo .6o .~ .6#6i N & ,O>&-N,F!p 6#6!N,F! "!6#6!~,F%.n,Oxҳ$.q6.N,F!q#p!N,F*h ~x!N,F*h ~O*#"O!qN%- ~#F_P!N,Fj !qN%- !N,Fyx* ".Z;ERRORS: $L![N}ͯv#F!h,Ox,q#w!6#6>!wM >M!6 !~A# !6t ~B1 !6t ~C? !6t ~DM !6t ~E[ !6t ~Hi !6t ~Lt !6!N.q#6.~ ʋ >.~,FOx-O~,V_zҝ *l "!N,FE !w#p!~ L !N,FE !w#p .N,F !w#p-~,FOxO,F%. ~#F!X^,VO !Tw#p-~,FOx,q#w-~,FOx0<-~,FOxP͆.R~,FOxGy,,Ox*X#"X!LN,F%. ~#F!X^,VO !Tw#p-~,FOx,q#w-~,FOx0®-~,FOx S{*X "X!Q6!q#p.6#6!nN,F!q#p!~,F!l!N ^& !~'# R & ͡i .~,FOx> i -~,FOxR i -~,FOxf ^i ͡!q#p,s#r.~,FOxG*h "!N,F*q#p!q#p-~,FOxG*h "~#F!q#p,s#r*~*O~ *~ >*#"*#"ú !q#p.qN%- ~#F!w#p!,O>&-N,F!p 6#6!N,F! "!6#6!~,F%.n,Oxҳ$.q6.N,F!q#p!N,F*h ~x!N,F*h ~O*#"O!qN%- ~#F_P!N,Fj !qN%-  80P 80S\ .~,FOx.O~,V%.n,_zA $.~,FOxG*h ~O! {B$.N,F.q#pà .qN%- ~#F_P!N,Fj !qN%- !N,Fyx*#"l!~,F%.n,Ox$.q#w.~,F.N,F.q#p.~,FOx» >-~,FOx .~,Fɯ!q#p,s#r*#*^~#FO* *\~#F!q%.L,OxTͤͤ* "!N,F*h ~E!N,F*h ~Oͤ*#"ͤ*#"ͤ!6#6,*~#F!\w#p*##~#F!^w#p* ~#F!`w#p* ~#F!bw#p* ~#F!dw#p * ~#F!fw#p * ~#F!hw#p* ~#F!lw#p,w#p*~#F!h,Ox,q#w!6#6>!,O>A .N,F*h !N,F*h Ͱ / !~,F!N,F͔ !w#p !q#p.rN* !j~,FOx҃ z SYMBOL LIST OVERFLOW$e Lͯ!6!r~.ڶ .N,F*h !N.r ~w*#"!4ˆ .N,F*h 6!~,FL !~ NWL .~,FOx.r^O> ҋ #~!!N,F*b ~!w.N,F*` ~!wͤ!Nͤ!Nͤ!N !LN,F%. ~#F!^O͊O;!T~,FOxG;ͤ!N,F< !Rw#pͤ!O6!P~.L,O>ڿWöUNRECOVERABLE ERROR$Lͯ W!R6#6.P6 !Rw#p!O~.X6#6.Q6!Q~6.LN~,F$.Ox%.Lq#w-~,FOx:1STACK UNDERFLOW$!Lͯ!q#p*L#"L!L~,F2OxriSTACK OVERFLOW$ZLͯ!LN,F%. !N,Fyx!q,sN*f ~!w!N*d ~!^*dO~!.N *d ~.~wÜ!T~,FOx$.q#w-~,FOx%.P6"##!!! ''%&(((()**,-+//0122 45533 66 7 99;;88$$$$$$.........<<<<<<<======:::::::' - . . /   000!0#0=0( 60;0E0>0?0@070( ) , ) H0L0 0$ % *    2 4 #; $ %( & M1 '- )) * + , - .+ /, 0. 1/ 20 35 46  $ % *    2 4 $ %( & M1  $ % *   2 4 $ %( & M1 '- )) * + , - .+ /, 0. 1/ 20 35 46 @;7 0000,8 00 0 0 0 0 00000$ % *   2 4 #; $ %( & M1 '- )) * + , - .+ /, 0. 1/ 20 35 46  ABCDEFGHIJK~      =BCFGHIJKLMPQTUX[))89>?@EFGJKLUVWZ]zz L L!$',-) * + , - .+ /, 0. 1/ 20 35 46 ;  & \ $ % & &0(L !N O P Q R S ,0  .000  3040( \0]0^0  - . d0e0( ;   * ( 2 M '- - . .+ /, 0. 1/ 20 * ( 2 M '- .+ /, 0. 1/ 20 ( p0   & \ - + v0i   * ( 2 M1 '- - . .+ /, 0. 1/ 20 35 46 x0y00000000000000) i * 2 M1 '- .+ /, 0. 1/ 20 35 46 (L !N O P Q R S P0'- )) * + , - .+ /, 0. 1/ 20 35 46 "0'0)0[0c0h0& $0\ %0; ) -0/01020`0, ) |0}0   '  $ % *   2 4 $ %( & M1 '- ( )) * + , - .+ /, 0. 1/ 20 35 46 o0z0{0r0* 2 $ % *   2 4 $ %( & M1 '- )) * + , - .+ /, 0. 1/ 20 35 46 B (E ;F  $ % *   2 4 $ %( & M1 '- )) * + , - .+ /, 0. 1/ 20 35 46 Z0(L !N O P Q R S T V .1f"EFGHIJKL]MNOPQRSTWpp]pM '- .+ /, 0. 1/ 20 i   *   ( ! 2 M1 '- - . .+ /, 0. 1/ 20 < > # 35 46    & \ - + 0 0J0K0  ! * 2 M '- .+ /, 0. 1/ 20 0=^ (a 0T0;  X0j0  Q0R0U0, ) ) ) ) ) q0) ) , ) 0, ) 90 B0D000S0(0*0!N O P Q R S _0a0~0( 00) ,_ ) ' u0w00! O0& \ &0W0Y0000000F0G080:0<0+0 f0i0s0t0) N0047:;<=> .+ /, 0. 1/ 20 35 46 00V0 0 $ % *   2 4 $ %( & M1 '- )) * + , - .+ /, 0. 1/ 20 35 46 w 00z 50(} | ~    A0  C0 $ % *    2 4 $ %( & M1 '- )X Y MZ g0k0l0m0n0] \ =^ 0,_ 0(a :` 0:b i * ;I02 "f M1 '- .+ /, 0. 1/ 20 35 46 0;j (m b0;n 0000000(o 0=p M0(q (r  $ % * s   2 4 $ %( & M1 '- )) * + , - #)+-/13579;=CKOQWY[_ackmuw{}G[L<7t=vFttt9>9:: &gF8u?yЊe"#=HJIJKKM@A{WoyȂCxD,F,^ !+q,s#r.N͋ !+N,F !+q,s-N͋  !+wN!+N!:) 6#6!+N!v) !+Ny͖ !+~!+q#p,s#r !+wN.^!+N!:) !+N,Fyx.N!v) !+N,Fyx͖ !+q#p,s#r.N͋ !+N.q.N,F,^,Vm !+q#p.s.N,F  !+!) ~!k+w!m+q,s#r.lNʹ=!l+N!) ~#F!`+w.mN,^,VX!l+N,^!l+N!) !n+N,Fyx!p+q,s!p+ҧN,^!q+~‚-N!q+~’-N!p+N%.^ ~#F!p+wd!t+q#p,s#r!r+ .t~,F,,Ox.tq#w.rN.lq.sN,^,V.rN%.^ ~#F!x+w.rN%.^ !v+N,Fyx%'(k),)W*M ^ UbZvOD)EEKIBM; !@nEra`@@jG'iB<%{&=@,@F]naO#z`@JcM]lPJ@"H-h0fA"|n(HH)tKic I{heڪYIO(!)w#p!+5!+q*( ~#F!+q*( ~#F!+q*( ~#F!+q*( ~#F/!+q*( ~#F?!+q*( ~#F!+q*( ~#F.!+q*( ~#F!+q[ Һ !+N͗ !+qͭ !+^*(O~#V>!+q*( ~#F!(~!~'.Jq#p!*J+ ~ր!J+N,Fw!*J+ ~!L+w"O*J+ !I+Ny!*J+ !L+N y!M+q^!N+q#p-NI!N+N,FHI!Q+qRI!Q+N!( ~#FOT!Q+N!:) ~#FOT!Q+N!v) ~#FOT!Q+N!) ~OI!R+q#p.Us*R++!,!U+Ny!V+q#p*V++!,~!X+q,s-N!) !X+N!) ~&cd&h\]^fphhߣ!'klUW\]p^3 EOF DECLAREINITIALENDIFTHENELSEZEROCYPYODDEVENPLUSMINUSDATABYTELABELEXTERNALCOMMONDO BY!+^.O~/!+q#p.s%.4~(*!*N$.^!*N$.^!*N%. !+N,Fyx%.N.^ !+N,Fyx.N*( ~#F!+w#p%.N.6 !+N,Fw!*N. !+N,Fyx-N,F%.^͹%.~!+q,sN !)N,F!+q#p!)N,F!+q#p.6.N.q.N,F.q#p.^$,N.rqò!y+q!)6!)~Ҟ,~%6N͛v!y+N P!)N%. !)N,Fyxg!)N%. !)N,Fyx.N!y+^!)~!)N͛ʕ!)Nj!)N!)4,4!z+q#p-N,F$. ~!|+w*z+#!,~!}+w-~,~-~N-^!~+q#p-N,F!+q#p-N,F14&"!-+q,s#r!1+q,s#r!5+q^  !6+q#p+ !6+^,V!8+q> a~ AOh~0O!9+q~ pOK!9+~OK!:+q#p-N,FHi!:+Ni!<+q!) ~ôEND L82$6+!=+qCANNOT OPEN $6!=+Nͩ!>+qCANNOT CLOSE $6(~!+q#p!)N,F*+ ")!)~,F.,Ox1 -N,F,q#p!(6!(N.q!(N,F.q#p@ .N.q.N,F.q#p!(N,F.q#p8 .N,F.q#p!+q!(q2 !+q^!+q,s-N͋ !+N͋ !+q,s.N,^͖ !+N,^͖ !+q#p.sN.^.N,FHY.N!+q#p,s.N,FHy ,N.^ -N!Y+w!Z+q,s-N!) !Z+N!) ~![+O~w!]+q,s#r.\N,^!\+N!:) !^+N,Fyx!a+q,s#r!`+ҟN!v) ~#F!e+w.`N.\q.aN,^,V0,N!v) 6#6!e+N.`q`!f+q!) ~­!g+q!) ~!h+q,s-N!) !h+N!) ~!i+O~w!j+q,s-N!) !j+N!WHILE"CASE#PROCEDURE$RETURN%CALL&GOTO'HL(UNTIL)REPEAT*HALT+NOP,DISABLE-ENABLE.BC/DE0SP1STACK2PSW3IN4OUTODDEVENPLUSMINUSDATABYTELABELEXTERNALCOMMONDO BY.w.N*( ~#F!+w#p!+N,F$. ~!+w= .N.^*+#"+ !+4~ M !+N. !*Ny$.N. !)N,Fyx!+q!+N. ~!* N. ~#F!+w#pSI!*N%. ~#FOT! +N,FT!+N,FT!*N%. ~OI!*N.6 ~_!+N,F͹%.5x $.~ .N. ~#F !(6!D+q,s~OyOxGy-OxGy!%(~րL6\L!%(N*"( ~!$+w!%(4!$+~(!9&w(_!9&N!F+q#p!*F+ ~!*F+ 6"*F+ !F+^,VýWRITE ERROR$6 !H+q,s-~*)#")&!J+q#pN *)#"):&!J+q#p!>+Nͩ:&YP C&YP4D~'YPHRͩ!?+q * ( 68 * ( 60 * ( !?+Ny\…!?+N * ( 6!%(6!@+q#p-^,V!@+^,V¿ *@+ ~O!C+qLINE $6! +N,Fͅ: ERROR $ !C+Ni!C+~N !+w.N,F!+wNʹ!+w-N,^!+~t -N!v) !+N!) ~#Fw#p!+N!) !+NyN!:) !+N,Fyx -N!:) !+N!) ~#FO*+ s#r!+N͠!+wO~ -N!v) !+N,Fyx -N!v) 6#6!+^ !+q#p,s#r.N͋ !+N,F.q#p.p.N.q"" !(w"!)N,F%.q#p"G ͖҆ !" !(wN$.v *) 믓O>q#w!+6,6^#ͩ !+6V,6ͩ !(6#6""͋ !(N,F!`+q!)^,VXt "͠"!(~$.O~,V_zKG͠"L .~" !(w#6.N$. !)N,Fyx!!(6.N,F7!+6,6!)N,F!+q#p!(w"!(N,F!(w#6-N͠=XÂ!(NʹlÂ!(N!l+q!)^,VL "2 .~,F$.,Oxҝ!)~,F%.ʖ,Ox"Ý!(N!`+q!)^,VX"!(N!`+q!(N. ~#FOi`X!(N!`+q!)^,V O!+N ѣ5!(^,V{_zW {@!+O͋ ̓ O!+N ѣX!+~O͋ !+N̓ O ѣ{!(~O͋ [ O!+NG ѣҗ͋ ͭ O!+Nͭ ѣ!(~O!+O~.$w _N͖ ͅ ~.~Q  !+^O͖ P͗ .q#p""L """!(~J.N!&+q,6!&+N!v) ~#FOxGyOGy/Ox/GyҎ!&+N!v) ~#F!%+w,N!v) !'+Ny-N,q.%N,q6!&+N!v) ~#FO_>!*+s#w.&N.\q!)^,V0.&N!v) 6#6!(~,FOxG$.^,Vi`"(+!'+~x.6.*N,Fm !'+N!!+^ͻS~#.N,F!+^ S~D.N,F!+q#p!(N,F!+^ S~S!+^ L !(N,Fҗ!+6,6!)N,F!+q#p$.$w !(N .qßL !+q#p!(N!(N!^* !+N,FyxL !+q#pL .N^.N,F!(q#p!(N,F!+6,6,6#N,F !+q,s-N*( ~#FO-!+Nͻ!+N !+w.N*( ~#FO!+wNʹ_!+N!+N!:) !+N!) ~#Fw#p!+N!v) 6#6!+^ !+q,s-N͋ !+N !+q,sN*( ~#F!+w#p.N*( ~!+w.N,Fͤ_P!+N .~.N.^,V .~.!(6"!)~,F.,Ox!(+q#w,6#6.#66!(~!#+E.*N,F*( "*+!#+4'.*~,F.(,Oxc!(+N,F,q#p.(~,FOx–,N,F !(N!r+q,6!)N,F%.^,Vͨ"!)N,F**+ ")!)~,F.,Oxҽ ã%.N!r+q,6!)N,F%.^,Vͨ"!(N.^^"!(N,FQ!(N. ~#X"!(N.q"" !(w"!(~ .^O" !(w"!(~ O" !(w.N!`+q!)^,VX"!(~ O" !(w"!(~ O" !(w"!(~ .^O" !(w"!(~O" !(w"!(~.^O" !(w"!(N.q"L "!(6"!(6"!(6"!(6"!(6"!(6"!(6" !+^,VO Po M!+~,FOx/7͋ P-~,FOxG7?͖ Jͅ Pͅ ~š v !+^,V$.O~_͖ Ù͗ Җ O!+N,Fͤ_P Ùͅ ͗ !+~ !+w.N*( ~#F_P!+N,F ~ !+^O͓ͅ ~ : &!+~! ,~v) ~#F!&+w,N!v) 6#6!'+N.\q.(^,V0.'N!( ~#FOi`"*+!&+N,q~x!+6,6!(N,Fͼ !(N!`+q!)^,VXt "2 "` .6"` .6"L .~".^" !(w#6*(#"("> "!(N.q.N!`+q!(^,VX!(N. ~#FOi`"("!(N,F.q#6!(N,F!(w.N .q#L !+q#p.s.N,F<>!+N,FO͠!$+w=.O~b>.$~O~y>ɯ!ͨ!(N͠¥!(N!* ~#F!(+w#pí!(+6#6.6",6!(N!^* ~#F!(O~_i`KB!(+^,Vͼ !(4L !+q#p-~,FOx-~,FOxigN.q.N*( ~#F_P!+N,F !+~-.N,^͓!+q,sN*( ~!+w-N*( ~#F!+w#p.~#O~-҇.N.q.N*( ~#F_P!+N,F ~) ,N,Fͤ_P!+N ~+´.N.^,V ~/.N,^͓>!+q*( ~!+w-N*( ~#F!+w#p.~.$w!(~!+FOi`!'+s!)~,F!'+Ox-q.6,6.'N.q#6.&N$.%w!(N!`+q!)^,VX"""" !(w"""!(N,F"L "!(6"!(6"!(6"!(N,F!+6,6,6#6!(w,6$.N,F.q#p"""!(62 $.N,F^.~ր4 )!(~O͋ 3!(~O͋ ~֐^ S!(~O͋ ]!(~O͋  /lͅ !+~‚,N,F$. ~!$+w.~‘,N,F.$q>.ҡì-~F.$^O͖ ͅ !+q,s#r.N*( ~#F!+w#p-N,F!+N,F!(q#p!+N,F!(q#p!+q!(~O͋ %~%,^͖ %:-^.ͅ G :*!+^.ͅ !+q,s-N*( ~!+w-N*( ~!+w.N*( ~#F!+w#p.~.$w Ң!+N Ҟ!+~.O͋ ͅ G !+N͗ !+O~ր.~O͋ ͅ ͅ ~° O͗ ѳҭ!+~,O~,V_z> ""W"2 "W"͋ "!(N͋ "!(N,F$I"!(~!+w!(N,F "͋ !(~!+w!(N!* ~#FO "!(~.O~,V_zW{_zҼ-~O͋ ".~.^,VO "{"!(N,F$"!(N,F!(w2 ͋ 80C 80D>L "L "L "L "L "!(6@ "!(6@ "!(6.̖,O>.q#w"!(6ͱ"!(6.^,Vͱ"!(6.N,F.q#p"!(Ny "y "y "/y "?y ".y ">y "y "y "!(6"!(6"!(6"!(6"!(6"!(6"!(( ~#F!(w#p *( ~#F!(w#p*(#~!(w*( ~!(w*( ~!(w*( ~!(w*(##~#F!(w#p*( ~#F!(w#p*( ~#F!(w#p.6#6.6(OxG!+N !(q.& !(~,F.¶OxGyx.N.b !(Ny.N. !(N,FyxÆ#~ %!(4~$!(N.& !4&s,r"{"!(6"8 "!(N,F$- "!(~!+w!(N,F "!(~.^,VO "͋ "!(6"8 "!(N!`+q!(^,VX"!)N,F%.q#p"v͋ "͋ "͋ "͋ " !(~O ѣ!(~O͋ "!(~.^͖ ͅ "ͅ "\ 80R6"!(6"!(6"!(6/"!(6'"!(6"!(6"!(6!-6"!(6!-6"!(6#ͱ"!(6#.^,Vͱ"!(6%.N,F.q#p"!(6'.N,F.q#p"!(~(.w.N,F.q#p.N,F.q#p")! ^#V2Wj}Yaow0SP1STACK2PSW3IN4OUTODDEVENPLUSMINUSDATABYTELABELEXTERNALCOMMONDO BYd*4&w#p/%~%d. w#p/%~*%.6/%Æ#.#6>!#+g%N͛M%!#+N͛`%!#+Nj!#+46%t .I!)N,FT!)N,FT!)N,FT:&w&w~'w vG 13 ͋ "̓ +͋ .ͅ "ͅ " w!(~!U.~O͋ "~'f.^͖ t2.tͅ "G ґ".ڔͅ Ôͅ "L "` ">L " !(N͋ o !(O~/?͋ ͅ L "L "2""PL!#+6>!#+V#N!:& !#+N!& !#+N!~' !#+N* ( ~www!#+4#:&͔&͔~'͔!#+6>!#+ڃ#N!#+4m#> !+~2%(!%+wN $(!(O~!+wN!&( "(!+N!b( "(!+N!( "(*(##~#F!(w#p*( ~#F!(w#p*( ~#F!(w#p*ě$ ' (2cGYaio7    " - 8 N _ q ! !!!%!-!5!@!K!\!n!!! SL!%(~ #.N,F!, !6&s,r(*6&w*(#"(!(~,FOx1> !q,s#r!q,s#r!q,s~OyOxG*y-OxGy!q#p,s#r.N,F*q#p!q.N.^ T T!q> ҅~ AOTÌ~0OT!q~ ”Oo!~Oo!q#p-N,FH͍!N͍!q#p*~$~OT*#"!q#pd!N,FͿEND L83 $ TO PRINTER$ `z .6.N,F͕`z/` C LA (XXXX) = $6 !w!^O.w#p!N,F,q#p$.#6!6#6$. "h!6!~ ^*@O~!w  .N,F$. !N!E !Nyq*#"!4Ç .N,F$. 6*#"! KBx!w.6!~.!D~ր5!D6\!w=*~5͇!DN*B ~!w!D4!~!?w_!?N?Tq (Y/N): $ h!wYO~y!q#pîLOAD ADDRESS = $!N,Fͩ!w0/O~:~0~A/O~G~A ?Tþ;\ COM!~.EN* ~#FO* "!N* !N,Fyx.N,F.q#p.4!q.N _.N%. ~#F~s.N%. ~#F~†.N.0 ~#F͇!~,FOx*+*~!wNF!w#p*+*~!w.N >.O~_~ѣ* ".NF!w#p!d!q#p T!6> !TN* ~ ?!N* ~OT!~M.T!4!q#p*~s~OT*#"[!q%.h ~#FOU!q*&fTOO MANY MODULES$ÀCANNOT CREATE$E ÀCANNOT CLOSE$E ÀWRITE ERROR$E À!N,Fyx.4 0EYPEYPA ͇ !E 6!N,F$. "!6!~.ڰ C͚~I!~.ʘ ~R.^O>ʍ ܌Is .N%. ~#FO!4\ 6!~. D͚~I!~. ~R.O~܌!~S. I .N N.X !N,F$. s#rS͚~I!~.ʩ ~R.O~,V_zң -N,F* "!N,F͢ң !4~p ͇*+*!NyN%.h !N,Fyx.N. !NyI% .N%. !N%. !N,Fyxq#p!N%. !N. !N,Fyxq#p!N.0 뇇!>w;!>!q#p,6#6!~,F,,OxH*+*~O!N,F! ".wM.w#pM.w#pM.w#p.~.ʉ.w~ x.w.~.w!q.6.N%.h ~#F!w#p.6>!,~-N*@ 6 -N*@ *~#"~!6!4©,~/NAME TOO LONGN,F* !N,F* >!~O~.N-q8 L:$5 !N,FͩN A:$J Ϳ!NFO* KBͩm T:$i Ϳ!N ƒ LTê ~‘ BTê ~Ÿ PTê ~ª ST T!N,F* KBU!6 *@ ~ ` SYMBOL LISTING$ `z.w OUTPUTREAD ERROR$\ ÀCANNOT OPEN$\ ÀMEMORY OVERFLOW$8ÀBAD RT FILE$QÀ)p ^#V (H]!6#6!~,F%.f,Ox$.N,F!f EYP͇* "Ì-6#6!q%.f~,FOx̄-N,F!f !Ny*f#"f. ~#FO!4² ̈́EYP* ͇!N,F͕F LAST ADDRESS = $6 *+KBͩdm MODULES LINKED: $\ !6!~.ړ d!Nt!4x dv!.N,F.q#p.N,F$. !N*B ~w*#"!4͇ü!q#p,s#r*~*O~v*~e>*#"*#"L!q#p.6*~ʝ~!w*#"Â!~!q#p-N,Fx!w.6!~.N. ~!.N%.h ~#F_P!N,FB!4·>!q#p.6 (TRUNCATED): $!Nt *@ 68 *@ 60 *@ !Ny,6 >!XN*@ 6!4? *@ 6*@6!D6\͇R͊l!N.X ~#F!w#p!q,s-N͊l!N,F.q#p\!w=* 2Ox͇!~9!~րʼN*B ~~#F!&q#p-N,Fk =!&q#p!$~,F!&,Ox/!&q#p-N,F M !&~,FOxGy!&N,F i !&~,FOxGy!&N,Fͨ !&q#p-N,F- O!f# ~#F!1&4~2ڙ ͒!1&N!$ !D&N,Fyx.1N%.6 !B&N,Fyx.1N%. !W#Ny!1&N%. !X#N,Fyx.^6!1&~<!1&N!&q~0/O>9/!&q~A/O>Z/_~a/O>z/_~$!&qO!&Nѳ!&q!&O~A/_>F/ѳ!&q{!&~0!&~A !W#N-q,~,~,FOx²\!W#w6*X##"X#{!b#,_z͒!X#N,F*`# ~!W#w!2#4N !V#Nÿ́!&q~!1#w!!&~r !V#N ̈́ !V#~/,O~*j ̈́̈́!V#~*,O~/a -~[ .R6#6̈́6 ̈́̈́ !&6 !V#~… .R6#6 Nғ ù !V#NҤ ͫù !V#~'¶ ̈́1ù  .R~,FOx  -~,FOx 1 -~,FOx ͫ !&,-N#!w&6!t&^,V.rN,F!r&s#r !t&N,F!t&q#pï.rN#!x&q#p.{6!{&~|N.x^,VzW{_ \{_zK#!{&~wM.x~,FOx#Q4 , * ~  * 6M * 68 * 60\ \!|&6>!|&N! !|&N* ~w!|&4 !&6;!V#~D!w͗!*!&6 ;!V#NN/;!&6>!&J̈́QN Q6 !&~!T#wø!L&6#6!2#~!L&,O>-N,F!2# ~Oi!&w-ڔ!U#6!&N.q!P#N,F!&q#p.N!P#q#6!&~~!P#N,F*& "P#!U#6!&~w,~,FOx-q#wñ.LN,F! "L&i!R#6#2#~.T!R#6#60.VN!V#N;!T#w!R#6#6Җ.V~'o~[Q._4.V~]\._5!V#~9-6-6._~̈́!V#~'ʊ.T6ÓÓ9!W#NN/!W#O~H!&6!R#6#6a!V#~OO~Q!&6;~H!&6;~B!w͗!1È!R&q#p-^,VzW{_ {B!U&q,s#r!Y&q,s#r!\&6#6!\&~,F!,OxҪ!\&N,F! ,YP ʝÒ WRITE ERROR, ABEND M81.$ y,8*\& "\&F-6#6!_&q!~,FOx>-N,F! !_&Ny*#"!`&q#p!~ր ,!6!`&^,q#p,s#r*&~*&O~1 *&~ >*&#"&*&#"& !&q#p*$#"${ִ_zS ͒j !$N,F%.f !&N,Fyx!&q#p-N,F!f# ~#FOxGy!&q#p-N,F!f# ~#FOxGyO› y!&q#p-N,F͆ !&O~,V_zW{_zW{B!&q,s#r-N,Fͨ O!&^i`!f#~#F!&q#p*&+!f#YP,YP  *  ! 66!\#6#6ͱ>͐YP gCANNOT CLOSE $Y}ͲERRORS: $v}!BN,F͖!}&q*B#"Bê*** LINE $}!\#N,F: ERROR $^!}&NA!}&~<!~&q~ O~ _~ O~ 6.P6#6.V~\,O~\( .P6#6Ý -~<,O~>F .P6#6Ý -~<,O~=d .P6#6Ý -~:,O~=҂ .P6_#6Ý -~>,O~=ҝ .P6#6.P~,FOxʲ û .VN.Pq#6!V#~] .^6 !T#6!2#6.U6-~¼ .P6#6.16!&6!_#6.T6CANNOT OPEN $}!l&N,FͲ͖!n&q> 9~ AO4@~0O4!o&q~ HO#!o&~O#!p&q#p04!p&N,FHA!p&NAH4!r&q#p-N,Fң-4!r&,O>-q#w!t&6#6'.w6>!t&,O><!t&^,V.rN,Fz/W{/_!>yOxG}o|g=|W}_!v&qV  >!N* ~!b&w!4!b&~ /*\##"\#!b&~!c&q.QN L.c^,R.cNͱ 4 4!d&q#p*d&~$|~O4*d&#"d&d!f&q#pS!f&N,F^!Q&6͐åEND M81 $}S8!h&q#p.k6> !k&N*h& ~ !k&N*h& ~O4!k&~.4!k&4¼!l&q#p͐%.6 ~#F!$,OxN -N,Fs Oi`+*`#~O!0" !$N,F w#p!$N,F- Oi`+"$ !1&N!$ ~#F!d#w#p!1&N%. ~#F!X#w#p!1&N%. ~!W#w!1&5!^#6!&q#p*&+*`#~!&wN!0" ~#F!&w#p!&~,FOx-N,Fs !&w#p.N,F*`# !&N,F*`#  !&~,F!&N,F !)  ^#V:EP[f+]*KflWn!&q#p,s#r*&#!\ ~#FO*& !D~#F!&q!6~!&!6wҤ͒!&q#p,s#r!64~ھ͒!6N%. !&N,Fyx!6N%. !&N,Fyx!&q#p,s#r-N,F!" !6&N,F!6&,O>-q#w.!6&N,Fs !6&w#p-N,F3 3 *6&+*`#~!&wN!0" ~#FO3 3 !&N!0" !$N,Fyx!4&N,F.2q#p!&q~ ~ o&6c6c!4&N,FҺ͒!4&N,F !4&~,FOxG!f# !8&N,Fyx͒!8&N,F.2q#pc!4&~!L&N,F*`# ~O*L&#"L&!N&N,F3 !1#N%- ~#FO3 *N&+*`#~O! KB3 *N&+*`#!1#NyN%- !$N,Fyx*L& "N&$.N,F,q#p~͇͐vx,q#w!L&6#6>!L&,O>-N,F!0" 6#6!L&N,F! "L&á,6#6!N&~,F!d#,Ox}.16!N&N,F.Lq#p!L&N,F*`# ~!&wÝ~'.8~,F.4,OxG!&wÝ~C.4~,F.8,Ox.wÝ~u.4~,F.8,Ox.4O~,V.8,_zKGѳ!&wÝ.4~,F.8,Ox-O~,V.4,_zKGѳ!&wN.2q#6c!2&6#6c!2&6#6c!2&6#6c!2&6#6c!2&6#6c!2&6#6c|c!4&N,F*8& "2&c!&w#pô !&q#p!2#N*& !b#~,FOx.͒!&6!2#~!&c.N,F*`# !&N!2# ~w*&#"&!&43.N,F*`# 6!&~,F!^#~Ҩ̈́!V#~[•.^6̈́>[~¡ uN4u !U#~ʾN͒ ë.PN,F.Zq#p.R~,FOx.P~,F-~,FOx>-~,FOx>&w#p.N͈!&N͊!6N%. ~#F!&^,VO!2&^,VOͥ!<~,FOx!Z#^,VGͥu!:w#p!76!8~u.6o͒͊͒!:6#6.86u!:w#p!7~}.A6.96!9~Ґ6.6N%. ~#F!A^Od!<w#p-~,FOx,q#w-~,FOx0]à-~,FOx[z.:~~#F!L&w#p!L&N,F!t! ~#FOx!L&^,V!t!O~#V!&,_zO*L&#!t!~#F*L& "L& !<~,FOx!&q~ x!86!&N!=! ~!&w-N!! ~!&w#6!6~!&O! "&##~#F!4&w#p*& ~#F!6&w#p*& ~#F!8&w#p*& ~#F!:&w#p *& ~#F!<&w#p *& ~#F! .6N,Fc~ .6N,FC7~/.6N47.6N,F]c!2&6 #6c!2&6#6c!2&6#6c!2&6#6c!6&N,F3 !A&N!0" ~#FO3 !I&~OyOxGŠyOxG3 !A&N!0" !$N,Fyxc*6&+*`#~!A&w.I6c!I&4c!4&N,F/c!4&~,FOxG!f# ~#F!L!L&N,F*`# ~O*L&#"L&!N&N,F3 !1#N%- ~#FO3 *N&+*`#~O! KB3 *N&+*`#!1#NyN%- !$N,Fyx*L& "N&$.N,F,q#p~͇͐ L80\4&~,F.8,Ox.2q#wc|c!8&^,V.4N,FKyx4`iDM!xxGyOF)8(!2&s#rc!8&^,V.4N,F!2&q#pc!8&^,V.4N,F!2&s#rc!4&N,FҚ͒c!4&N,F !4&~,FOxG!f# ~#F!2&w#p͒c|c!6&N,F.2q#pc!6&N,F.2q#pc!6&,O>.2q#wc.dN,F!F&q#p*d# "Z#!Z#N,F !&w#p!T#~D !&N,F !&w#p&*Z#+*`#!1#Ny!&N,F!d#q#p.R~,FOxt>.ZN,F͏ !&w#p-~,FOx£!Z#,O>-q#w>!Z#~,FOx.dq#w!&N,F !&N,F!f# ~#F!&N,F!Z#q#p>!&q#p-N,F!X#q#p!&N,F*`# ~!W#w,FOxGy,,Oxp.A4.6N%. ~#F!A^Od!<w#p-~,FOx,q#w-~,FOx0V]z-~,FOx j5mUz.A~w.96à&!`#q#p*~#F!`#,Ox,q#w!L&6#6>!L&,O>-N,F!0" 6#6!L&N,F! "L&á,6#6!N&~,F!d#,Ox}.16!N&N,F.Lq#p!L&N,F*`# ~0" !$N,Fyxc!6&~c͊ !:&N,Fc͊ !6&~@.:N,Fc.>N,Fc!$N,F!B&q#p!d#N,F!D&q#pc|c!4&~,F.8,Ox.2q#wc!4&~,F.8,Ox.2q#wc|c!4&~,F.8,Ox.2q#wc|c!6&~,F/Ox/.2q#wc|c!6&N .4~,F.8,Ox.wÝ~ .4~,F.8,OxG&w#p.4N,F !L&N,F(͊ !L&N,Fc!4&N,F=͒!$N,F!B&q#p.FN,F.Dq#p.J6|c!4&N,F/c!2&6#6.J4.4N,F Ҋ͒å!4&N,F͆ !J&Ң͒å|!2&N,F/!J&N.4^,V !N&w#p-N,F3 !6&N,F3 *N&+*`#~!K&wN!0" ~#FO3 3 !K&N!23 17 18 19 20 21 22 23 27 28 29 30 31 24 25 26 27 28 24 25 26 27 28 29 30 31 A P R I L M A Y J U N E S M T W T F S INT DEC OCT HEX CHAR MACROTHENELSEIF_ 1050P &2 0&2 00+5 -6 #0*= /> %? +0*= /> %? ,0.0/0003040Q 0R 0 "#$%&'(+.9>.ABCDEHILMN.OTWXYbsz{|}* * * * * * * * * *** *** *** *** J A N U A R Y F E B R U A R Y M A R C H S M T W T F S S M T W T F S S M T W T[ @[          ]  000000 0 _ 0% & !! -( (' * ) + 00000- 0]. 0 0 01 \0 0&2 00 0% & -     '@ ,/'A0E1F2G!3 4H"45I6J#=K>L?M F S 1 2 3 4 5 1 2 1 2 6 7 8 9 10 11 12 3 4 5 6 7 8 9 3 4 5 6 7 8 9 13 14 15 16 17 18 19 10 11 12 13 14 15 16 10 11 12 13 14 15 16 20 21 22 23 24 25 26 17 18 19 20 21 22 ( (' : ; < =7 <8 >9 +5 -6 "0*= /> %? *0-01020B & !! -( (' C 0001 D \0 001 \0 0% & !! -( (' % & !! -( (' !0% & -( (' % & -( (' $0%0&0'0(0)0% & -( (' )N 1 \0 )O * *** *** ***** ** * * * * * * * * * * **** * **** *** * * * 0