IMD 1.18: 7/12/2016 12:14:00                C 68020 5.0e00 Z KNOWN BUGS IN THIS COMPILER: REV 5.0e 9-JAN-87 The compiler produces self-relocating code, but not position- independent code. External symbols must currently be unique in the first seven characters. Internal symbols must be unique to eight char acters. File I/O is buffered, and is much more efficient in version 5.0. Terminal I/O is still unbuffered, so be wary of using input functions like scanf and gets. The best technique currently is to read a terminal line with xglb or xglu and theCBUG)CHLP e  _C068*  pX _C1687:%X _CCV!!J )X _CPPxGGX _MASM20dd. )MLIB%:) n parse that line with sscanf. The character '\n' is a carriage return under PDOS, not a line feed. The character '\r' is also a carriage return -- but with the high bit set to distinguish it. The character output routines will translate a '\n' tQLINK6440)ROMLINKk 9%CENDO | X _CSTARTO }d X _FFPLIB X _IEEELIB $$M68881LIB WWX _STDLIBLIB D ._ _ o a carriage-return/line-feed combination if it is going out to the console. If it is going to a disk file or to a port, '\n' is left as is. The character '\l' (lower-case 'el') is used to indicate a line-feed. Be aware of this if you are going tXLIBLIB 44&) (,CTYPEH*1 DIRENTH/ % .,FILESLOTH2E {{OLDSYRAMH7 [O &1SETJMPHC  +NSTDIOHDx% :NSYRAMHH # +N o be exchanging data from a C program on a non-PDOS system -- most UNIX and MS-DOS systems treat '\n' as a line-feed and '\r' as a carriage-return. When the compiler reports an error or a warning, it just gives the line-number of the offending linTCBHW { +Nctype.he1 /A +Nmath.hj ~ Vmemory.hno G Gsetjmp.ho  +Nstdio.hpx% :NCCC t33 W WROMLINKC H 7% e. Use MEDIT to find the offending line ([ESC][^G] to go to a specific line). The compiler may become confused as to the number of the line in error under some circumstances. If you leave out a closing brace '}' or semi-colon ';' the compiler maTESTXLIBC jj  ICENDASM)g  CSTARTASM+(% >ECHOC=e J JFFPSRC>%%FPERRS00HELLOC+ !J mSIEVEC/J ) y not detect the error until several lines later. If you define a macro that runs over several lines (lines terminated with a backslash), the compiler might not correctly report the line number of an erroneous line. Currently, there is no way to dSTDLIBSRC\ %N 6,XLIBSRCZZn F5)CCAC Gs+=.=FDIFFC I VGREPC d00 VHANOIC Y 3SORTCC  VWCC S isplay an error in context. We hope to have this capability plus the ability to mingle C source as comments in the emitted assembly language source in a future revision. The C compiler only optimizes on a per-statement basis. This may result in      useless register loads, because the compiler makes no assumptions as to the previous contents of the scratch registers A0,A1,A2 and D0,D1,D2. A global optimizer is planned for a future revision. The compiler does not always properly handle the 'zero and other errors not properly handled w/ H option. external symbols MUST be unique to seven characters. The compiler will NOT properly handle declarations of the two symbols "sys_t_on()" and "sys_t_off()" -- they both are output as ".sys_t_onenum' construct. Specifically, the following legal declaration causes an error. enum x { a,b }; struct c { enum x d; enum x e; /* this causes a duplicate structure name error */ }; Currently, work around this by declaring structure fiel". the different versions of scanf (from STDLIB:LIB, M68881:LIB, FFP:LIB and IEEE:LIB) do not act the same. Specifically, IEEE:LIB does not return an end of file error when you enter an escape/control C. formatted output routines in the floatingds to be of type 'int' which is the same size and assignment compatible with the 'enum' type. We can provide a compiler which provides only 68020-type instructions or a compiler which provides only 68000-type instructions. Unfortunately we can't  point libraries do not round properly. If a structure contains fields defined with typedef symbols, a second similar structure with fields of the same name may foul up references to the first. Consider the following example: #include provide a compiler which provides the best of both world, and the 68020-type instructions are generally longer and slower than the equivalent 68000-type. Until this is resolved, we will not issue 68020-type instructions, except for those specifical /* defines typedef FILE */ struct A{ FILE *y; }; struct B{ FILE y; }; Now, the definition of field "y" in a variable of type "struct A" will act as if it were a field "y" in a variable of type "struct B". For instance: structly needed for the 68881 co-processor. The PDOS monitor does not print a carriage-return/line-feed when a program runs. This means that the traditional "hello, world\n" will print on the same line as the program invocation. To avoid this problem A q; i = sizeof(q.y); /* returns 260, not 4 */ Presently, use "#define" statements instead of "typedef" statements where this becomes a problem. For instance, the definition of FILE could be changed to #define FILE struct _iobuf and the prece, PRECEDE every line with a newline, instead of putting it on the end. Or, you may want to modify the CSTART:ASM file so that it executes a "XPCL" before calling the main entry point. Assemble your version of CSTART into CSTART:O and your programsding code would work. A different bug occurs when someone tries to compare the address of a static array to a constant. Usually, this happens when the programmer forgets the square brackets -- as in "if (a < 't')" instead of "if (a[0] < 't')". T will always start on new lines. The usual convention is that printf uses upper-case A-F for hex numbers under the format %X and lower-case a-f under the format %x. This is the way the floating-point versions of printf work, but the stripped- dohe compiler gets confused and creates assembly code to compare one immediate value to another -- which causes an assembly error. In the future, the compiler will flag an error. Send us a description of any problems you run into -- we appreciate wn version only puts out upper-case, and only accepts the %x format. If a file has both carriage-returns and line-feeds, the compiler will increment the line number count on each. Thus, errors may be reported in the wrong line number. divide by the feed-back. q Z     !CC To compile a C program, use the scheduling program CC. Usage: CC ,, filename extension defaults to :C, but others may be specified. if extension is :O, only the link step is performed. )'ith BRAVO:O to make a program named ALPHA. CC E:O,E,F,G Link E:O, F:O, and G:O together with the IEEE:LIB library to make a program named E. CC A:O,VQ,B,C,G:LIB Link A:O, B:O, and C:O along with routines from G:LIB to make an" filenames after the options are treated as libraries (extension= LIB) or as object files to be linked in with the first file options follow the filename in any order with these definitions V : display each step as it executes ( SY file called 'A'. Create a link map called A:MAP. Display each step of the link. IEEE:LIB library to make a program named E. CC A:O,VQ,B,C,G:LIB Link A:O, B:O, and C:O along with routines from G:LIB to make an SY f#! D(abc) : define symbol 'abc' for preprocessor U(abc) : undefine symbol 'abc' for preprocessor F,E,H : floating point. F = Fast Floating Point (single precision) E = IEEE floating point + |C2`&& $ rdבTIQSfA(g@"<(R0<A:?a Program linked to run at addr: "|3 |,OepI:?ah r ep&IBn2E' ZeR' `"/</SnHW?## < | NqN,?.2N$" H = 68881 floating point B : output error messages to 'xxxxx:ERR' S : don't assemble -- leave in xxxxx:SR C : don't link -- leave in xxxxx:O Q : create 'SFU' link map Q(xyz) : creat,*4.20/:2gHT 0g  Exit Status NVH n &PX nl .N*| n (PX `f. /<N:X#f./< NDX.N0@SHc n #*z. n /N:X#X JgJ. n /N:X%#e 'xyz' link map (options in parentheses) R : create ROMable object instead of SY file To link modules compiled separately, compile each module with the 'C' flag, then compile the main module, specifying the ':O' extension explici-+#X Jg&. n /N:X#X Jf. ND#Ry3*t3[n` n *P -g .N`H`h3By`p3By`^Ry`TRy*x`JRy`@Ry `6Ry`,`$.N`H |r &$tly and including the other modules after the options parameter. !Hit return for examples: CC Examples: CC HELLO Compile and links HELLO CC ECHO,S Compile ECHO to assembly language HELLO:SR CC TEST,F Compile TEST (FFP format); link wit.,W h$N``vX SnJnfLJyfJyfRyNx`N BWND3f>NHJyf NJb`. N.*zNPNJL8N^NuNVJyg >`BWNN^NuNV./< NDXN^NuNV>/</< /9N'%h FFP:LIB CC,MYFILE,CF Compile MYFILE:C (FFP format); assemble to MYFILE:O CC oddfile:c Compile the file "oddfile:c" into a program named "oddfile" (Note lower case ':c') CC OTHER/7,V Compile the file OTHER:C/7 and show e/- >?.?.?.?.?. /./9N.?< NTRyN^NuNV>?.?.?.?.?. /.N3NN^NuNVJyfV>/</< /9N ./. /./9N .?< NTN^NuNV(&ach step CC HELLO,Q(S)VR Compile the file HELLO:C. Create link map HELLO:MAP and save section information. Display each step of the operation. Create a ROMable output file HELLO:ROM. CC ALPHA,,BRAVO Compile ALPHA and link w0.H>?.?.?.?.?. /.N`BWND> G\gJGg G]g G^f>NlJLN^NuNVH n R>9` 0H H@@0"nRHǏ JGf nBRyJLN^NuNVH*n. BF`f0`RFJfp`JL N^NuNVH     1/*nBG`RGJf0`JL N^Nu 0 H L R X ^ d n v z                ABDABDINVALID97..N`f< ng20-@0 @ g" ng./<."NX0-@0 @ glf` ngV ng nf(0-@ @ fBWND3 @f .NW nf BWNH`BWND3 @dg J:8D3 @OfD y"g6f" ng./<.2NX.N $`ZB&>LNJ@g(.B?.?.NP=@*y& fHBWND @\g..BNJL N^NuNVHJnf JygBB@=@=@=@=@BBn n<BBy31 V b n z     & . 6 > F N V ^ d l t |      ;9BWND> GOf y"gvBn3#" y h g y hf< ym"0ySH&"y ` y#&`F GdfF309"`By`Jyg..^NRy`JFg& Fg Fg Fg.42FHLSfgtw@(#)main.c 3.4 2/20/86asmautobreakcasecharcontinuedefaultdodoublegotoelseexternfloatforifintlongregisterreturnshortsizeofstaticst<:.xN|`JFg Fg..N|`JFg Fg Fg..NJyfp`p<`xJFg& Fg F g Fg..N F gp`p<`8Rn`0Rn`(Rn` 3 ".U///.N > G g #53ructswitchtypedefunionunsignedwhileenumvoid+-*/%>><<&|^!U-~--p++pp--p++=+=-=*=/=%=>>=<<=&=|=^=jsr==!=>>=<<=int->longlong->intbtstloadlong*long/long%long*=long/=long%==addr=n=;&`Jng..N.N=|`Jng..N=|`Jng./N=|`zJng./(N=|`\Jng./BN y "g Jygp `p =@`"`S@ @b@0@-B PN` Rn`">NlJnf64ot=negdocastltofftolitofftoitocharint->ultoucharftoddtofst=invalid-60invalid-61invalid-62invalid-63invalid-64invalid-65invalid-66invalid-67invalid-68invalid-69U&U*&&||?:,cintclongsymbol++aa--><=|JFf|Jng@ nf =|`, n fJyf=| `./\NJng ng./vNJy g nfJnf=|JngJ nf =|`6 nf =|`" nf =|`./N n0 n 0 n 0.75callcall()bitfieldifinitloadR0divlongcdoublelrcommacastsemilcurbrrcurbrlbrackrbracklparenrparenstringreswordaptrperiodsizeofmparensfreturnasmrcan't open %swwwtemp creation error(.text usage: %s source i?=`JLN^NuNVHB>ONJ@f4=|.NT>/NnX#"`Bn-y" nJ(fF nJyf n n| n1|BN? n1_`( n (g./</NX>]NJ@g >ONJ@f86code link strings [-e|-f|-H] [-w]"%s", * %d: "%s", * %d: (warning) NVHBy>\NJ@f@ <##r=|Jy fp`p=@>/Q/Y/UNz > n f BWNHB'4` n f 9&+@+@JGf"0-@0 @ g@>./N` y"1| y"| y">NJ@gxRyvByBWN3*@ f 3./NSyv``Syv3 UMf >-H` UNf .-`./N y"!G>LN=@RJnf>^NJ@f.0N`@     A?Jng.06N`( n (g./<0JNXJL N^NuNVH<9ByB>9"Ry>ONJ@f(x.QNT>/QNnX#"`BD 9"-@"n " nJ(fF nJyf n n|  n1| BN? nIG`| ng nfhJGf0n g`0y"<J0gL0y"<0HHH+@Ry09y*m 09`09*3*`Jygr0n g` n g n fL0y"<0HHH+@Ry09y*m 09`B@1_`( n ( g./<0nNXBy>]NJ@gh0y' '0J'0g y'0BRy0y& 0y'B:9By G f >`> N$R/ n Jy g n V"n" yo #"3JH09*3*`=|`n0y"<J0g f =|`H0y"<0HHH+@Ry09y*m 09`09*3* nf<>?-?-NzX-@ .Rѹ*~ 9*~D+@` nf0y+HRy0.H@JyfCA>^NJ@f.0N`TJgL n0h"<"Jg./<0NX n0h""n 0y&B0y'BSyfB'0`JDg.0N` n ( g./<0NX` n0h"<KIJygP yfD ng ng nf&BW/-/ ?.?-BgNL g20-@ @f" m&g mg.1N .`JL N^NuNVH Ry#r*n>?-0m/-H??-NhT?N^ # #rDB"Jf0y"<'JgJ0y"|' p h f,0y' '0J'0g y'0B~ Ry*t09*t @m.0ND0y*t(t ` n"n2i" 3 nJPg.1N Gfp `0"n20`JLLJ.1N././<1NP>9> N$R3Ry>]NJ@f.1N` n h+f.1N>/<1NX y > y ?( y ?(NzX-@./<1NX09H"y #@ Ry.2NECN^NuNVHBWND3 @\gBWND3 @bfB`FBWN'n Jn mJ&g*y&0. @0 @ fBm JgF.\?-?. /9N+P=@ 0. @ @ f y (+@+@`n0. @ @ fFJf +y&Jg.N;@MKB*~|33(|'4`N*T* m fJyf;|  mg mfJy fp`pHڀJy g mg mfT -f)E|`B+E|0-@0 @0f$>?-NhT?NT;@Rm -g -g -FD`./<1NX`0. @ @ f ;y*t-H`r` n g nf`j ng n f`R0-@0 @ gB ng ng nfp`` nfp`pH@0-n fl-Hng ng ng ngNLf. >/-/ -H??-?<NL>?-?-NzX-@Jy f .R` .V܀PJfBW//<2?<?<BgNLT.2NN#ByB&BWN$RBWNH`:BWNJ@g.2N`*3ByGE0-@0 @ f ng nf0. @0 @ f =|`0. @0 @ f"0-@0 @ f.1@N`\Jyf./<1ZNX`./<1nNX .`` @b@0@- PN;n >. G00. @=@ JygJyg>OMNrBy>^NJ@g>/<20NX>*?9*?9*/9*~NJP>N`3SyJL0N^NuNVH (|'4`V*TJgJBWBg/,?<?-N^ .BgBg/--H??-N^ /NXPJfJL0N^NuNVHB.=G=nJyHFKNJ@gV=| NE-@09@H;@. .??. NX-@-@Jg .;@`2. ?-N&T-@>?-?-NzXЮ-@ .Ѯ +n  G f^ ng6 ng, ng" ng ng.1N ng ng=|PN fp`p=@>///Nz J@g3Jyg`>KNJ@gPNE-@. .??.NX, n g ކچ` o*>LNJ@f`./?.?.NP,J&g y&0(@ @ g y&0(@ @ f     QOj y& h f.28N y& (g y& ( f y&!y&`"y& 9&#@"y&#@J&fJnfb n fX`D n g ކچ` o* nf0J&g& y&f g.&NWB&>NJ@gBy yYWrr$rrrBrrBrrf&rnr~r|vrrXX@external definition syntax(.globl _%.8s (.globl _%.8s exRP" hm y" h o( y"0(@0 @g.2RN`3RyvN6N<-@.NJ@g.2xN`.>N3-@g.N|`.2NSyv3>LN=@Jnf>\NJ@f.2NBy` ByZXternal definition syntaxinvalid typedef statementinvalid storage classinvalid storage classinvalid storage classinvalid register specificationinvalid type declarationinvalid type declarationinvalid type declarationinvalid type declarationSQ`B&By.?<N&Tڀ `JLN^NuNVB&>N'=@m>N` 0.`N^NuNVH?BG8>aNJ@g">N'>>bNJ@f`>NJ@g >?.N'T?NT`:9>ONJ@g 9"#&*@BG;E`[Yinvalid type declarationinvalid long declarationinvalid short declarationinvalid unsigned declarationredeclaration: %.8senumeration identifier expectedinvalid enumeration valueinvalid enumeration valueenumeration declaration syntaxno enuTRP>aNJ@gJyfB@333B@3*3*3*3RyBWND3 @dfT`$`>NJ@f>LNJ@g,>///Nz J@f-|'4`&y"g./<2NX` <(lb\Zmeration nameinvalid enumeration prototype: %.8sredeclaration: %.8sstructure declaration syntaxredeclaration: %.8sno structure nameinvalid structure prototype: %.8sstructure table overflowinvalid type declarationinvalid structure declaratioUS.2NSy``` <'4f" nJg.2NSy`\7| | Jy fp`p7@ n P>LNJ@f Sy`>ONJ@f*Sy <'4g nB>bNJ@gJyf <'4f nJfBy> ?N][n: %.8sfunction return redefinedredeclaration: %.7sredeclaration: %.8sillegal function declarationinvalid void specification(.text (_%.8s: (~~%.8s: function body syntax(.bss (L%d: (.ds.b %ld (.text _EnD__%% { not matched by }(L%dVTT>`N>_NJ@g RD>`NJ@g.N`(y&-y69=y3NE-@3#&g"JyfJnf 9y#&<`0/.0F"<"/0NRP/0F" RFym09ސE@fSy.N^\: #1 data type size unknownillegal autoinitialization data typeauto initilization syntaxauto initialization syntaxdeclaration syntaxredeclaration: %.8stoo many parametersparameter declaration syntaxinvalid declaratorNVHJnfNWU<>`NJ@gN>0?NT>`6Jnf J&g JyfJngBy0```.3Np`JL8N^NuNVHBD n<(` 0@0 @0fRD`>Nh<0@0fBG<. :.`n>?NT>JDgP0@0 @0fB n0h"<"/0_]6`,.UN7`\ n\g n^f >Nl.HN#&n#*|3"$B````J@g @g`0np(gNJy$f ng ng n[f^ ng ng nhgBy$0np<F?Jy*g nKXV0E"<"/0NRP/0E" RE>Nh<0@0f n<( n:(`20@0 @0f0E"<".NRE>Nh<0@0f n<(`>?NT<>Nh>0@0f>G G f n"n0` G f n0*t0`JLN^Nu`^f By*`6Jyvg nLg nZgJyxg nKf|` y|hn$ y|hf0npgX| 9| |e.HND ng nf|`H nRf(|09S@3 yafSy` nag n_f| y     a_|0 y|1F`$ y|>Y|0`>NlJy2fBWNFJ@gN*@ g#&n#*|3"$ ` nbf`>SNFJ@fBW/<HNXB`` n`f^>NFJ@gN~G`F>?<NT.N>NFJ@g"ig`./<IHNX`0-@0 @ f 3 -g0-@0 @ f0-@ @ g0-@ @ fl y" (g y" ( f 0y&"y" `0y&"y" 0y0.N*@;|`>?-b``6`H |Fr W h$N Gag>NFJ@g``BWND=@f.HNB`JL N^NuNV#n&By2#|*3$"J|g Jnf#|#.n`X| y|0n y|1|#rBy$N^NuNVH n0`jh/--H??-N^ *@0y"<Jpf0-@ @ g0-@ @ fl y" (g y" ( f 0y&"y" `0y&"y" 0y0 `JL N^NuNVHBn n :( n8( n PMf> Dgca\>"?9*NT.NJ@gB@`Pp`JJyf N`N*@.NJ@gB@`p`."?<NPT.NJ@gB@`p`N<*@.NJ@gB@`p`>"NRhBWBg0y"/?<?<1N^ .NJ@gB@`p` yki Dg Df n0(,` n0(H,`$ n PNf n,(Rn`B@`N n PMf> Eg Eg Ef n 0(.` n 0(H.` n PNfgx nfn Egf Eg^JngV>Nh=@ ng@ ng6 n >db"f n0g` y"f n0j`B@`JJy$gB@`:`0By$`&Jy$f n0h3$`Jy$fB@``Jy$g n0`Jy$g n0`Jy$fBWND3 @Mf09"D@3"p`BWND3 @Nf 9lj n ?(?.NzX=@0.H//NRP, n .(Rn`B@`f Eg0 Eg( Eg Dg Dg DgB@`p=@ n#n0np(f B@``2Jnf./?.NA\.`./?.NC \.Jy f>Jng60npec"D#"p`pBWND3 @YfJyg.9"g <"` <"`TJyg&/9"/9"NrP#"#"`&9"g"` "p` n0 `Jy$f n0F`Jy$f n0G`Jy$fNB@=@mkg" n 1| n 0M "n 3@`zJnf$Job o Jng oF n 0N n !G Eg Df n 1|` Ef n 1|` "n 3@. Np`JLN^NuNV0.`N . Ю`X . `L/./. NRP`8/./. Npfd=@-yBBW//]/QNz J@g n f.N`09=@>?.B?<?.N^ *@>N'm>bNJ@fB@`Jg$.\?-?-/9N+P;@` #.N n0[0-@ @ g0-@ @nlP`$/./. NP` . ` . ` . ".` . ".` . ".` . gB@`pH` . fB@`pH` . nB@`pH` . mB@`pH`f . lB@`pH`L . oB@`pH`2BW/<ge f*0y& "0y0 y| PgfRy$p`B`$>bNJ@g ?<h`?<R n0`Ry0y"<Jpf y" (g y" ( f 0y&"y" `D0y&"y"  n Pff.INomI`NXB``S@ @"b@0@G PNN^NuNV0.`f . Ю`p . `d/./. NP`P/./. NP` D.`4JgB@`p.` B@`V` @ g @ g @ g` n PMfJy f "n 3@` n !G. Np`JLN^NuNVH (y#rRyvBWN3*@> GNf -m` GMf0m-H` GOf mf mywNuNV0. `0. @0 @ g././<U NP` n g& n g././<UNP`././<U(NPJng>/./<U6NP`8././<UBNP``S@ @b@0@S PNN^NuNVH n -h0.S@Ю @-hrpf -m ` G%f4 m PMf( m0(H-@ mf <`L G%f4 m PNf( m (H-@ mf <`B.INSyv# .`JL0N^NuR_ahn55555555zx .-@ nn*n `zJf.Jy g .UX`.U\/<UNNX`4Jy g./<U^NX`./<UnNX>/<U|NX\SnlJn o> /<UNX`NJoH0.m8Jg4Jy g./<UNX`sq5R6 JLMNOY_`abcdef8998P8P88<2<>7"777P8d8:8n78;;<AAAAABBB4BBB&BBBBBBB{y./<UNX<9RyJy f,> /./<UNP>/<UNX`(> /./<UNP>/<VNX.V4NJyf NJb`.VPN>/<VXNX*n `: -f>/<V`NX\`> /<VlNXR .trBBBBBBBBBBBBBPBjBBBBC,C8CDCXClCCCCCDvDvDvDvDvDvDvDvDvDvDvDvDvDvDvDvDvDvDvCCCD:DDXinvalid expressionexpression too compl|zo.VxN`<9Ry>?/<VN\>9Ry>/<VNX0.@>?/<VN\Jyf NJb`.VN>/<VNX*n >.`-m./<VNX\SGlB/<WNX*n >.`>/<WNX\SGl> /<usexnull expression encounteredunexpected EOFcoercion to structure/unioncoercion to structure/union pointerundefined symbol: %.8sbad constant binary operationbad constant binary operationconstant requiredNV.?9/<SN\3}{W"NX.W.NJL N^NuNVH.N6.W6/.N:X#f./<W8NDX`.?NT ySh m y h@"yR`.N<>nJLN^NuNVJy*g.?<,NTRy*>/<WFNXN^NuNVvtN^NuNV3*.SNN^NuNV3*.SNN^NuNV3*.SNN^NuNV nf NI`NI> /<TNXN^NuNV3*.T NN^NuNV3*.TNN^NuNV3 *.TNN^NuNV3 *.T$NN^~|NJ./<WJNXNRHN^NuNV0.3* @ f.WPN`.WXN> //./. Nl ./<W`NXNRHN^NuNVBy*.?< NTN^NuNV-y#=yS3S>/<WdNX0y".0y"/wuNuNVJyg>/<T,NXJn f Jngz.T6NJn g4>0. W/<TTNXJng.?</NTJng>0.W/<T\NX.?< NTJng>0.W/<TdNX.T~N-y#=yS3SJn}NRX.WlN#3SN^NuNVHNI . n . ` ..*|"`6H>WNQt y*f oNRHNISJnNRH . o . ./<WtNX`(Jg . SoBW/<WNX .`JL N^Nuxv fJnfX n .D./<TNX`./<TNXJng>0.W/<TNXJn f JngJ>0. W/<TNXJng>0.W/<TNX`.TNJy*xg.TN.?<%NT#3SN^~MfMMLMMMMMMfMMMMM.%x.%s (.dc.b (.dc.w (.dc.l $%x (.data (.data (.data (.data (~_lE%d: (tst.l (sp)+ (movem.l (sp)+,R%d-R7R%d-R13(fmovem.x (sp)+,FP%d-FP7 (unlk R14 (rts link R14,#%ld link R14,#     0 suba.l #%ld,sp fmovem.x FP%d-FP7,-(sp) movem.l R%d-R7/R%d-R13,-(sp) ,-(sp) tst.b -100(sp) (~%.8s=L%ld (~%.8s=R%ld (~%.8s=FP%ld (~%.8s=%d (~%.8s=%ld (tst%sR0 .l (cmp.l #%ld,R0 (cmp #%ld,R0 (beq L%d (bra L%d (sub.l #%ld,R0 (sub3 @\f`h0. @0 @0f.././/.?. N^^-@`,By. n(H??.?Nm\H-@Jy*g$.?<NubT<0HѮ0HJg( .찮g./<x NX .ѮJg(>LN>^NJ@f.xN #%ld,R0 (cmp #%ld,R0 (bhi L%d (asl #2,R0 (move R0,R8 (add.l #L%d,R8 (cmp.l #%ld,R0 (bhi L%d (asl.l #2,R0 (move.l R0,R8 (add.l #L%d,R8 (move.l (R8),R8 (jmp (R8) (.text (L%d: (.dc.l L%d (.dc.l L%d (.text (ext.l R0 (move.l #L%d,R8 (move  .Rg.x4N .谮o n0(@0 @0fp n=h `> Nh=@ 0. @0 @0g n> n?(?. NzX//.NpP/ n0h" ` .萮>/<x]N#%d,R1 (L%d: (cmp.l (R8)+,R0 (dbeq R1,L%d (move.l %d(R8),R8 (jmp (R8) (.text (L%d: (.dc.l $%lx (.dc.l $%lx (.dc.l L%d (.dc.l L%d (.text rcan't copy %s$%x$%lx(.dc.s (.dc.d %s(L%d: (.even (.ds.b %ld string initializer truncated=@0.@0 @0f>Nh`0.:0.@=@ n0h"#* n> n?(?.NzX#*l 9*D#*=|`Bn`>Nh:0n*"n2i" 0@0 @f*0n"<* 02n*"`F0nNVH n>( n> n?(?NzX-@l .D-@BWND3 @Lg.BWND3 @ZgBWND3 @\f .R-@ n (f"././<w8NP` n (g n (f n|`\.wJN n ("<0H@?H/0n"<*/0NRP/0n* 0n*Jl.xXNB`X0n"<*/00nSH"<*/0NpP/0nSH* Rnng0@0 @0g n1g4 n3g* n4g n5g n7g n8f>/<wRNX./<wZNX./<wdNX.wpN`(3*-yB>NJ@fBW/<wxNX Gg0@0 @f NJ~`, G f NJ` G f NJ`NJb n (f./<wNX`2 n ( >?./9*Nk\܀B`h nf>?/9*Nm \܀B`B>??.SW?.SWNc\H܀Jnf.9*l.xNBJng(>LN>^NJ@f.xN n `JLN^NuNVH,. n*~Bn>Nh=@0.@=@>/<wNX./<wNX n> n?( n?(/.NZP n (f.wN#By*JLN^NuNVH8.>. `SD>Nh>0@0 @0gB-@-@>?.?. NzX-@B0. @ @ f&0. @0 @0f.././>]N=@ n0h"#* n> n?(?.NzX#*l 9*D#*=|`Bn n;f(BW/9*?./.?.Nf ڀ`V0.@0 @0f,Jnf.xN`>Nh=@0G*"n2i" 0G"<*/.?. NaB-@`0. @0 @g0@0 @fp-@-@>]NH-@f.wN././/.?<N^^-@>LNBWND3 @^gBWND3 @\f`> Gf*. n(H??.?Nm\H-@` n /0 n0h"<"/0NRP/0G* 0G"<*/00GSH"<*/0NpP/0GSH* RG0.nfJJnf*>/.?.?SW?SWNe Hڀ`.xN,9*l.xNB`>?./9*Nm \ڀB>LNJn fj>??NzX-@BWND3 @]g.wN n././/.?. BgNh-@`>??NzX-@-@BWND3 @]g.wN n././/.?BgNh-@>LNBWND3 @^gBWNDg>^NJ@f.yN n `JLN^NuNVBn0.n g>]NJ@fB@`p=@Jn fJBWND3 @^f Bn`(>?. 0n"<*/0Nk\=@`HJnfBn`N>?. ?. SW?.Nc\n0n "<* 0     0no >LNRn0.H2n *"m0.H2n *"fj0.H2n *"lJ0n "<* 02.H./<y4NX0n "<* 0=@`B`*>?. ?. SW?.Nc\n>LNBWND3`0y". /NRX܀ `BBgBg?. Nm\H܀nl.zN `f>LNJ@g.BWND3 @\gBWND3 @^f@Jnf ./<z,NX ` `JLN^NuNVHBJng <` ..BBgBg?. Nm\H܀ @^f0.n g0Jng(>LN>^NJ@f.y@N0.`N^NuNVBnJn fVBWND3 @^f Bn`4>0n"<*/0?./.?< Nf =@`Bn`,>/.?. ?. SW?.Ne nRn0.H2n *"nl.z8N `d>LNJ@g,BWND3 @\gBWND3 @^fJnf ./<zTNX ` `JLN^NuNVH?Ryv=yBy>]N=@BWN3*@ f"3.z`NSyvB@`3Syv n fm0.H2n *"lJ0n "<* 02.H./<y\NX0n "<* 0=@>LN>LN0.`N^NuNVB-@-@=@ n -h>Nh=@ n 0h"-PJng>]N=@>]N=@././.ztNB@`> GMf0m#"`p GNf#"`\ GOf$ mf mf# "~M`2 G6f m PMf m0(HHH#"`j m PNf m (HHH#"`F m P%f. m h PNf m h (HHH#"`.zN/.?.?.NhBn>LN .ѮBWND3 @^gBWND3 @\fJng&Jng>^NJ@f.yhN .l ../<yNX-n .`N^NuNVH.. n,:. BJnf>]NJ@fB@`p=@~M` G8f m PMf m0(@H#"`j m PNf m (#"`F m P%f. m h PNf m h (#"`.zN~M0.@ @ g0.@ @ f GMg GNfJyg /9"NX./NrX`^Jyf0. @ @ f f nJg n*h:-BWND3 @\gBWND3gBWND3 @^gg80@ @g*0@ @gJ*fSR.yN g~ E fv-F-mJf./<yNX`T n> n?(RW?N:0.@ @ gBW`>/9"NX//NP`/9"NX#"#"Jyg0.@ @ fp GYfhJ"g^(9" 9"r&9"p9"g r#"*9" n f./?. ?.NzX-@././Q/.?BgNh`` 0@0 @0f>?-?NzX-@B0@ @ g"././Q/.?N^^`B././Q/.?NaB .o ../<yNX`rg, Eg$ EgJ*fSR.yNtP`Jy*g.?.NubT`B@<0.@?`RBy" GMg GNf y"l| @.@>?<NJ.T0.@ @f l,Jm&0.@ @f& n lBW/<zNXRF`` >?<NJ.TTF` GFf.9"H> f.BgBg?Nm\H-@` .-H??-?Nm\H-@ܮJf n m n o.. l.yNҾnB` .0. @ @ fbJfVJy*g.?<NubT`B@8܇0HJg./<yNXB0. @0 @0f `*mW?<NJ.TBW/<zNXRF`~ GOf.{ N`f GFf.{N`N GNg GMfD <g$ < gBW/<{DNX >?<NJ.T`>*/ N{XTF`Jyf,.NQJyf."NQPF`XF`."/9Jo>LNJ@f0. @ @ fBJy*g.?<NubT`B@8܇0HJg./<yNXB n Jng(>LN>^NJ@f.yN `JL N^NuNVHBJng <` ..>cNJ@gDJng0y".0y"/NRX"?< NQ\PF`Jyf.NQ`."/9"?< NQ\XF`` GMg GNg>*/ N{XXF`:.NQXF`,.{ZN``S@ @9b@0@vP PNJng>^NJ@f.{nN0`JL N^NuNVH0.@ @g0.@ @     fp`*0.@ @g0.@ @fp`p :0. @HH@:Jy*gy*o y*g y*f ng nfZ y*g y*f ng nf. y*g y*f, ng" ng.?.NubT<`BF3*3P.N|N^NuNV.Bg?.?. ?<UNP.N|N^NuNVH09ygNI.N.?<(NT*|"`2.H?NT  f.?<(NTRJf.?< NTJL N^NuNVJgNI.N|N^NuNVJg> n*p2. A`S@H. . 2㠁*Ry*0`JLN^NuNVBy* y*g y*f` 9*>?<NJ.T0.@?=@B* ng& ng. f.{N`p`p`f y*g y*f(NI 9*>/<{NXB*`( hfN n hf@ n POf4>?<M/<N\ n ( >/<NX` n hg n hf n P;g >` n> n?/<N\ n h f6 nJhgBW/.NX.`B/<NX`J n hf< n0hNJ.*/<{NXB*p`p`N^NuqlrVrVstqlsrVsts@rssssssstsstststsststststststssssssssssssssssssssqrrVrV"<"Jg.N..`B/<NX n0` n>/<NX` n=h n=h >?./<N\`Jyfd n=h n=h Jyf,>?./<N\ n=h n=h>?./<N\`<> /stqrsrVsts@r(.comm _%.8s,%ld (.bss (L%d: (`%.8s: (.ds.b %ld (.text old fashion initialization(_%.8s: (L%d: (`%.8s: (.text missing { in initializationmissing { in initializationmissing { in initialization(.ds.b %ld  n/( /(Nl ./<NX` n>/<NX n hf./<NX`, n=h n=h >?./<N\`.?< NT` n>/<NX n.N|`f.?< NT n.Nmissing } in initialization(.even too many initializers (%d)null dimension in multi-dimensioned arrayinitializer list too longmissing } in initializationmissing { in initializationnull dimension in multi-dimensioned arrayinitializer list too l| n0Pp(g n. N|``H |BrW hNN^NuMNOTUY~<~V.~undeclared initializer: %.8s0 %x.%x.%x %x.%x.%lx.%lx.%x .%x.%x .%x.%x.%x.%x .%s .%x.%.8s .%ongmissing } in initialization(.ds.b %ld missing } in initialization(.ds.b %ld missing } in initialization(.ds.b %ld (.even undefined structure %.8s(.ds.b %ld (.even initializer alignment(.ds.b %ld (.ds.b %ld missing } in initializationx.%x .%x NVH#"#"B` ހH@HހBB/9"/9"Ntg^H@H/NX///</<@$/9"/9"N//N2#"#"`" m/NX#"#"Nx @0m 9o:H>array initializer alignment(.ds.b %ld array initializer alignment(.ds.b %ld invalid initializerillegal initialization of external variablesinvalid initializerinvalid initializerinitializer truncatedstring used to initialize character valueinNBB/9"/9"Ntf/NX#"#" `JLN^NuNVHB`ZNx @0m 9n 0`0H@ @Am FnH@H``HHހ`H>N `JLN^NuNVHBEB`8 7o.NJngvalid initializerpointer illegal initalizer for shortinitializer truncatedinvalid initializermissing } in initialization(.even $%x $%lx NV nJhf./<NX.BgBg?. ?<VNP.N|N^NuNV.BgBg n?(?<WNRE0 @n&H@HހNx @0m 9oH>N `JLN^NuNVHBBn-n-n -|-|JnfNx @.fz``/</<@$/./.N-@-A/./.H@H/NX//N2-@-ARNx @0     m 9o eg Ef>-NBJ@gp`>+NBJ@gB@`B@=@`^/</<@$/./.N-@-A/./.H@H/NX//N2-@-ANx @0m 9oH>NJng/./.NrP-@-A/NX//ByJygRyp]`V0y"<Jpg* yg>N`0yBPJygSyp^``>=NBJ@gp`p `>"?</<"N\3"Rypc`>=NBJ@gp`p`>=NBJ@gp`>&NBJ@g/./.N//NP,/././NX//N#"#"Jyg."/9"NrX`"JyfBW/9"/9"NPJLN^NuNV &n l0Jyf dn l.8NJlL-|?-|pH`p`h>'?</<"N\ y"o.tN3"09"S@3"By"*|"`09"@3"H@y"Sy"npM`>=NBJ@gp`p`>=NBJ@gp`>+NBJ@gp`p`>=NBJ@gp`0>-NBJ@`./</<@$/./.N-@-ARJm`H-|?-|`./</<@$/./.N-@-ASJn". .`N^NuNVHBB/. /.Ntf B"`>BB/. /.Ntl z/. /.NrP-@-A `BEgp`>>NBJ@gpe`p`T>*NBJ@gF` G*f>/NBJ@fNx>JGfJGf.NB@``>/NBJ@g`Nx>JGg G f`>=NBJ@gp`p`BEBy"3* G0g|>NN& nJmB@B`,R/</<@/. /.N-@-A /</ G.g Geg GEf&>NBW/9"/9"N8PpY`2>N`>xNBJ@f>XNBJ@g:N<& nJmB@`p8 o 3*`V>.NBJ@g>.N`BWN& nJmB@`p8 o "JLN^NuNVHBB/. /.NtfB#"#"` BB/. /.Ntl z/. /.NrP-@-A `BEB`,R/</<@/. /.N-@-A /</<@/. /.Ntl`,S/</<@/. /.N-@3*>lNBJ@f">LNBJ@fJy fJDg#"pN`>3"pM`2>=NBJ@gp#`0>=NBJ@gp`p`p"`0yBP>=NBJ@gp`Jyg>>>NBJ@g>>>NBJ@gBW/<NXp`8.Np`&`Nx>>/< NX:m\ El*Nx< F g>/<NX>N0E"<0H:BW/< NX0`` >Np`>=NBJ@gp!N//NP#"JEgJng p <#"`p <#"JLN^NuNVH?Jyg:9By0``0G"<0H`.bN`Rypa`Jy$gSy$pK`Jy"fpK`zSy">:N`0>>NBJ@g>=NBJ@gp`p`p `TKz`JEoNx>SE0G }g0G ygJEoB>N>0.W/QNnX#" y"gX y" (3" y"f3By`" y"g y"f 3 pdRy$Sypb`XRy">(NpJ`BSy09yf 3pb`Ry0yBPp_`Syp`` yg09R@ylpZ`pL`ByBy"0G"<0H`Nx>>N0G yf>BBN8PpY`xpf`r`BypO`~>=NBJ@gp`p `b>=NBJ@gp`>|NBJ@gpI`p `0`H |&rW htNNx>JGfnfp`>NB@`JLN^NuNVHJy*g>9*By*0` ySh m      y h@"yR`.N<> G f@09ygJygNI.BN3Ry`hJygL G#fD ySh m y h@"yR`.N.G` >?NT>>Nh=@0.@0f0`JLN^NuNVHJn l.NNBn Jn f . ?.N&T,By `Jyg y*g y*f ng nfZ y*g y*f ng n`.N<> G"g 0@H` 0@H ySh m y h@"yR`.N<> G"g G f G g< ySh m y h@"yR`.N<>B3`JGlBG`By0`JL N^NuNVH`Nf. y*g y*f2 ng( ng. ?.N&T,By`B3*0.` n o.bN0. y @ nB@`pH.0. y @ o~`.. ކ` n o.|N0. y @nB@`pH.0. y @x>0G ognfp`>NB@`JLN^NuNVJy*g.FN` 3*N^NuNVH3"*n>. `JFg F f.bN` F\fNx<0 @0m> F7n6>N>N<m Fo.|N`f`>>/<o~`.. ކ`f n o.N0. y @nB@`pH.`..NB`:`S@ @b@0@ PNJgBy0. y Ї`JLN^NuNVH.. JygF y*g y*fR`" y*g y*fX`TByNX:m0E"<0H<` F f By`&JGoRy"`JGf.NSGNx<.H@fJGnSBJL N^NuNVHBWND>nfp`& GZf nLfp`3B@`JLN^NuNVJyg.N3N^Nu`>Nh=@0.@0 @0g䞮 ng ng . ЇgR `JLN^NuNV0.@0f.N>Nh`N^NuNV n POf8 n hf* n h1f nJhf0y"-H` n0(@0 @f n Pg* n> nooooooopqrstabuvLwfxyyyyyyyyyyK\z{|J}}}}}}}}}}}}}}}}}}}}}}}}}}_`~}}}}}}}}}}}}}}}}}}}}}}}}}}}]^  JKL\]^_`abfopqrstuvwxyz{|}?( n?(NzX-@`b n-h n-h ` n-h n-h n Pg n=h nf@ n0h"<"/0 n0hSH"<"/0NRP-@`0.@ @ g0.@ @ fx n0Ppg nJg n-h n0hSH~~Dn88<XPlPznon-octal digit in octal constantlarge exponent, over/under flow expectedinvalid charactercharacter constant too long"<"/0 n?( n?( n?(Nz\/NRP-@`D0.@0@"<0H@?H/ n0hSH"<"/0NRP-@Jn g 3 . o.N .`N^NuNV n0(@0fp`0 n> n?( n?(NhT?Nzno */ before EOFold fashion assignment "=<<"illegal operator '=<'old fashion assignment "=>>"illegal operator '=>'-*&+/|^%=%c assumedold fashion assignment statement0 too many chars pushed backstring cannot cross linebad character coX`N^NuNVH~0.@0 @0f.>Nh=@0.@0 @0g0n ".0.@0 @ fB`|0.@0 @fp`B n g n f0n "<" 0`0n"<0H@?H,Jf. N//NRP`JLN^NuNVH n>( Gnstantbnrtflestring too longtoo many tokens pushed backNVH>9Ry Gm.ND0G" 0`JLN^NuNVH>.Gn0.@0g.,N` 0.@=@0. @0nG`JLN^NuNVH>.Gn0.@G`gx Ggp Ggh Gg` GgX0@0g0@0 @f@ n PGg4Jn f Jy g Gg GgBW/<"NXJLN^Nu>>dimension table overflowarrays limited to five dimensionsinvalid field sizefield      overflows long-wordfield overflows wordfield overflows byteinvalid field type descriptionbad indirectionsizeof object larger than can be stored in an intdata type size unknownintegral type expectedNVH>.HǏHGg pGn*yr0. ;| Jf0y+HRy ->/<bNXJL N^NuNVJy~f.jN09~`N^NuNVJy|f.N09|`N^NuNVHRyxNE-@Syx>KNJ@f.NJyl.N`x ym.NHЍ  e.BND0.HЍ#r `JL N^NuNVH>N:*@:O n(H;@ n;h n;h n;h n+h ./.N®X `JL N^NuNVH> N:*@:M;nBmBm;n  `JL N^NuNVH> N`\>9>/.?909zW09z /N J@gRy>/<NXRyJLN^NuNV>KNJ@f.NJyl.N`&3Ry>/<NXN^NuNVH<9~3~Ry:9|3|RyѤ:*@:N;nBmBm+n  `JL N^NuNVH>N:*@:Y;| BmBm+y"+y" `JL N^NuNVH>N:*@:Y;| BmBm+y"+y" `JL N^NuNVH>N:*@:;n ;n ;n+n+n `JL N^>9RyNI.&N>/<*NXNr>|/<2NX>NtJ@f,BW/<:NXJGo>/<HNX`>?<N/N|\>~/<RNX3~3|JLN^NuNVH:9~3~Ry89|3|Ry>aNuNVH>N:*@:O;n ;n;n;n+n `JL N^NuNV <nnb.ZND yn XnN^NuNVH <.neB`Yn yn*P `JL N^NuNV.NJy$gp`Ry$B@`N^Nuexpression too complexNJ@f.ZN`>\NJ@f BWN3.N|>\NJ@g&y>\NJ@fR>9RyJGo>/<pNX=|BWN3(@#r>\NJ@gb`Bn<9Ry>/<zNX=y>bNJ@g0Nr>|/<Nexpression too complexNVH`BWND>0`0y0BWN$R`>^NJ@fNrBWNJ@g.N`>Nl`>:NJ@g N`~>NlBWN3.N|`<09"`N<JFo>/<NX`N`X=y3`XBWN3*@#r>bNJ@gNr>|/<NX=y3.N|Jng&>/<NX>?</ N|\`JFo>/<NX#3>~/<NX3~3|JL8N^NuNVHNI.,N<JFo>/<NX`N`N`N`N<JFo>/<NX`N"`N`vN`Nr`N`>NlBWN3.N|`.N`p.N```U@ @b@0@ PN`H |jrܹNN*@BF> NtJ@gN<`x>NtJ@gN<`\>NtJ@gN<`@>NtJ@g0>;NJ@g<9>;N` >dNlJFgH>?</ N|\>\NJ@f.N> NtJ@gNr`>9RyW hN>\NJ@f.NBy``JLN^NuNVH>aNJ@g63BWN3*@ByBy>bNJ@g `. NB`JL N^NuNVH>ONJ@f.*N`*y"J-f*;| ;| Jf0y+HRy>Bg/ N|\Nr> NtJ@gN<9RyJFo>/<NX>/<NXNr>/<NX`>/<NXJL N^NuNVH>;NJ@fBWN3*@ g y h g./9 ?<iN:\`\#|#.n. N.`P m gF>/ NnX#"*y";| ;| Jf0y+HRyJ-g -f m f -`.:NB@`JL N^NuNVH*y"J-gF m f./<HNX`d>/ NnX#"*y"|;|N>iNFN.N| y ( >/<NX` >;N` >;NJyo>/<NXJL N^NuNVNI.N>aNJ@g,>cNJ@g>bNJ@g N|@`.NN^NuNVH?>9~3~RyN     *@BW/ NZX.BgBgB?<Jy f ?<`?<N^ /?<N:\89JDlRy69z3z<9RyJFo>/<NX:9ByNrJy~o>~/<"NX>/<,NXJyf 3~09z .?9&+P0F'#'0Jygp`B@;@ 0F"<'Jg0F"|' p!M`0F"|& p!M0F' ` ;y >0W/.NDX>0G*+P"0G* `JL N^NuNVH*y fX>NX*@f.?909zWNMX>~/<4NX3z33~3JL N^NuNVH <9~3~Ry>9|3|Ry:9|3|Ry*yNI.|/<@NX#r>/<JNXNrND~'`( b.ND+y"#&Q` #"./.N®X `JL N^NuNVH&nBnJyfZBW/ NDX0@**P`8H@g(-H>/ / NPJ@g `*m" fƙ09yfBW/ NDX0@>|/<RNX>?</ N|\>~/<ZNX#3~3|JL0N^NuNVHBWND> Gdf09"°ng>NlB@`p`JLN^NuNVH 0. *@+n:(M]`D ,f.bNB@`2 ,l.,)m+G<**P`h-H>/ / NPJ@gD0- yfBy .N `D`Jn f0- nm (M=m *m" f gBy .N ``Bn>09W/ NDX0@**P`-H>/ / NPJ@g^.U/ / NPJ@g88:]]Sn lp`JL0N^NuNVH#|#.n. N.N>NFN*@ g . N{B|BnJL N^NuNV#|#.n.N. N>NFN.N|B|BnN^Nu*LVxBy Jyg09yo.N `h` f Jnf(M*m" f| g,JyfJyg JygBy `By BWBg/ N\`JL8N^NuNVH*nJyg Jy*gH -f>0-@0 @ g.>?-?-NzX-@ .RO\]^d { not matched by }(bra L%d (bra L%d (bra L%d invalid declarationinvalid keywordmissing semicolonparenthesi-@``P-y#=yS3S|./<.NX#3SJL N^NuNVH-|*><`™ n*P`&m" nf$f./<>NXH@g(M`hf0- nl(M`N -f0-@0gzed expression syntaxexpected labelinvalid labellabel redeclaration: %.8s(L%d: invalid break statementinvalid continue statementmissing coloncase not inside a switch blocktoo many cases in switch(L%d: missing colondefault not inside a Sy`Sy g )m""` n "+y"#*K fRXSGl<`(U`,HJFg~Jlmv0,@ @ ff0l(t&P0k"<"Jg@ k)h ,g , g)l9k0,@@ 9@Bl F  switch block(L%d: 0 (L%d: (L%d: missing while(bra L%d (L%d: invalid for statement(bra L%d (L%d: (L%d: (L%d: (L%d: (bra L%d (L%d: 0 missing semicolon(bra L%d (L%d: (L%d: (L%d: (move.l #L%d,r0 (bra L%d 0 illegal g Ff../<TNX F fp`pH@(l" f4XSGl&JL8N^NuNVHJn g 0<`B@>*n|` H@SFJgJFn0HH@`JL N^NuNVH JyfJyfJyfp`p> n gB@`p29 @gB@`,*nasm syntax(bra L%d (bra L%d (L%d: (L%d: 0 (bra L%d (L%d: (L%d: (L%d: duplicate case valueNVH*|`>?< /N\\JfJL N^NuNVH.N*@<90. H0n+HB@;@;@;@H@B@H+@+@+@JFg0F(n `JgSGfp`gB@`JL0N^NuNVJyf 09`09=@0n"<& 0"n")f B p`DJ g6 n0("n 2)Af n ("n ")g n0B@`N^NuNVH *n(n ~`Jg H`B@HQJL0N^Nu     symbol table overflowbad symbol tablestructure field duplication(.globl _%.8s undefined label: %.8snot in parameter list: %.8sOOPPP N NKJJ$ $ """""".....LLMMMM@@@@@@@"@  NF`8.N>FNF.N>FNF>;NF32p``z<.2N>JEf&Bn TNf z9E`z9EBC8`x>Nj8>Nj60npfCm$02HЁ @"<0H6BD`"02HЁ @"<0H6x>=|" $IH G GE@@@@@R@E"Q@RR R"QNVH?0np(g:N(@ fB@` B.Nެ.NH(@:, Efz`N*@ fB@` 0-@0 @f nff.*N njfJyg Cg CfBC0npg Fg Ff TMf 0,H9@ ng nifH TMg( Cg CfvBW/<NNX` CfBW/<hNX ng n[f*0` BC``[@ @b@0@߾ PN` nKf0@p` ngf,>/ NX>?<NT.Np` 0np(gl n[gb TfZ0-@ @g0-@ @f: l0(@0 @f& l 0(@0 @fBW/<^NX nif mf.N nFg..Nެ*@ nRg n0gEg.0npg Cg C g CfBC`N0np(g8 nKg. UMg UNf TMg TNf mgBCBn0npg0 Cg C f 0@? @g0@? @fBC nif C fBC CfRBC nf ~RnSg .NH*@`0 Uf( m POf m PMf.Np` ./ ?.N\J@gp` ~<- Ff|0npg>/ NZX0np(g& UOg UGg UTg.N0np(fB.?.NDTJ@f(B/ ?-`< nig20@?2A?Af0@? @gBW/<NX n[f6 mg mf lg lfB@`p=@JCgl Cf.N`TJDg*>/ N.X/??/ Nn *@`&>/ N.X/??/ Nn (@ n[fJn?-??.N .Np` F g E f nf F gV>Nh>0@0 @f& Gm G o G f.N;l;l;l| ` TMg TNf<0,;@<;l;l.N.N>NFp` `N T;flBW/ NX#gP mg$B/ BgBg?<?<6N (@` B/ BgBg?<?<8N (@`0@@ @$g<g4 Ef,>/ N.X/?<?/ Nn (@`^JCfX lg* lg 9m9m TTg9m`& mg mg mf9|.N2.N.N>FNF l.N>FNF>;NF>LNF32p`` TLf| l P;ffBW/ NX#2.N.N>FNF l h.N>FNF>;NF>LNF32p``Z E gR>Nh>0@0 @f&0npg~ n[g>/ / ?.N> J@fj0@ @ g,0@ @ g0@ @ g0@ @ g&M`&L./ ?+?+??.N &@.NJngN FgFN*@ fB@`8>/-N.X/?<?</ Nn .N Gm G o G f.N9m9m9mz BW/ NX-@ TSg TRf=T .-@#2`FNF.N nSg nRg >FNF>;NF32p``Zp`JL8N^NuNVH n >(0.`f`x n 0(@0 @f80n"<./<NX n hgB@`p n0(@0 @f80n"<./<NX n hgB@`pB@` n 0(@0 @f80n"<./<NX nif@BW/9 NX#2 T;f l PFf l&h`&l.N*@ y +h ;|.N.N>FNF.N l PFf >FNF>;NF>LNF32`.N*@ y +h ;| TMg TNf&;l.N.N> n hgB@`p n0(@0 @f80n"<./<NX n hgB@`pB@`T n 1|. N>GNFN-@ n POf, n hg* n h g n h g.N n>(0@0 @0f>N> nRh n        h f n PRg n PSf. N| n > n ?(B?<?<N^ -@ n> n?(?/. NݤP> n ?(NT? n 1_. N`4 n> n?(?/. NݤP. N>FNF n. BgNPT.N>NF n0( ./.BgBg?. ?<N -@` g0npg .` n g ng n f .` nfp`p> l .>?<NT*@`.?<NPT*@BW/ /.?N> J@g N`0` n PMf n0(@0 @0g >GNFN-@ n h f.B/. n?( n?(??<TN -@ `R n PKg.6N` n PMfV n h PMfF n h PMf6 n Jhg n h0(` n h 0("n 3@`*./. BgBg n?(?.N H.?. NPT`~$` n PMf" n0(.?. NPT`~7` n PMg~4` n f n PNg~2`~ n PMf n0(H/` n/(NX#"#"Jyg@BW/9"/9"NPN-@0. @ @ f .`$~:`RJy -@ n"n"i1i`./. BgBg 92??.N -@ `l./. BgBg n?(?.N -@ `@./. BgBg?<?.N -@ ` n PFf n 0(@"n "i2)AAgP n h0(@"n 2)AA"n "i3@ n h  g*N-@0. @ @ f .`~:` ."/9"NrXN``~3`~5`~%`Jyg$ n POf n hf .`~9`fJyg$ n POf n hf .`Z~:`4>/<NX .`:` @b@0@ PN."n 1i n h"n 1i n -h `R0@0 @ f.RNB/. n ?( n ?(?NT??<GN -@ `:0@0 @ gx>Nh>0@0 @ g.rN`P>?NhT?NT? n 1_B/. n ?( n ?(??<GN  /.BgBg?. ?N `JL N^NuNVH n1n Jnm n1n n1n n> GFf> N=@ `2 GGf>?. NT=@ ` Gg Gf>?.?. n/(NݤPJLN^NuNV n0(@0 @ fBB/. n?( n?(?< -@ ./. n ?( n ?(?NT??.N -@ `z n PGf n 0(@"n "i2)AAgP n h0(@"n 2)AA"n "i3@ n h"n 1i n h"n 1i n -h ` n POfZ n hf.NB/. n   n?(NX??<FN -@ .`N^NuNVH n0(@0 @0f n POf, n hgx n h gj n h g\ nRh n>(.NBW?< n?(NT?/.NݤP>FNFN-@ n1G .`JLN^NuNV0.` ?( n ?(?<?NX??<FN -@ `n n Pf" n h PFf.N`B n h g n hf n PRg n PSg.N``H |rW hTN. Np`JLN^NuNVHJfD0. @ @f4 n 0B@`@p`:p`4p`.p`(p`"p``S@ @ b@0@ PNN^Nǔ̮̮̮̮̮̮̮̮̮̮̌̌̌̌ ;FGHIJLRSZefxxxxx[g nigBW/<NX-|=| n PJf n h h0("n"i "i 2)Ag n h *h> Nj<>Nj=@02.HЁ @"<0H=@>/.?.?. / Nn / n h !_ n h *h >Nj=@02.HЁ xԾ>: ۘHp۞۞ڮڮHvߚv߂|ߚ|߈ߎߔpointer variable is illegal lhs of period operatorpointer subtra @"<0H=@>/.?.?. / Nn / n h !_ n1n  .`0.` n g0. @? @f n[g nif ~$`d` n[g nig nKfv~$ gd .>?<NT*@BW/ /.?<N> J@gN-@`$ction yields a long resultvoid function cannot return a valueassignable operand requiredsuspect structure assignmentsuspect structure assignmentlhs of structure assignment smaller than rhsillegal structure operationshort assigned to pointer      pointer assigned to shortsuspect conversion operationillegal type conversionpointer illegal lhs %spointer illegal rhs %spointer illegal lhs %spointer illegal rhs %sinvalid structure member nameinvalid ?: operator syntaxindirection on fun`p<`RRF Fl 0g`Jng.`0\./NJX&@`Jng.` 0./NJX&@`Jng.` 0./NfX&@`0H@B.G`&\`~eG`r=| 0m: 9n2BF H@FH @0ction invalidillegal calladdress of register& operator ignored& operator illegalcoercion to function pointerinvalid conversion %dNVH*|`*mJUo.N>N.Jf>NJL N^NuNVH *n gJUfp`v c.Nm 9oS n0`GB.G``H |r W h(NBF`RFSn0HJ3gJnonmJnf$`0.@>W N*0.SnJ@n`H>N*Jg0.SnJ@n nf` > N*0.SnJ@nfJL8N^NuNVJy2g.2.>N.J@gp`TBU(|`(lf)mBJf #`(y`(lJf)Mp`JL0N^NuNVH*n,-  Jg.- g$. ?/N\>g >N;| A +HB@`JL N^NuNVH *nJUl*(yO H?NT` y2 R2N^NuNVH*n.. <r0HBF`? r0HRF F mB `R 0g `JL N^Nu.0cdlosuxj2/Bg:p0D@HNb>Bm `JUf4zU]„HB>f G f`0Bm `~- g Bm ~`j.YA +H /?/<Nr =@g .S` <;@ m m@R`p>Jng;|0`JL0N^NuNVH*n Jg(y#Nu"og pg:r`g$Opffff0Nu C"/lD&/nm <"`\D f r`:pmn2pr`,t l 0BAHA`Ԃփd`efJojDDJojD#3&Nu C"D"/&/ f r`@pe:fpr`2t(f 0BAHA`Ԃe`> NX(@fB` rg wg agB`~ wfBW/.N>X>|` af|`BF -+f| Gf>/.NX> Gf. agB`BW/.N>X> GfB`p8BBl&|`&kJf'LH`*2td`ef&( NuJolDRIJolDSI2/0/ 4 B4/g0/gBH@B@Ј2 gDNu2/0/ 4 B4/g0/gBH@B@ЈNu////NpP Nu////NP Nu/"o2/ m|nA>;0f@:0`:p.Nu/CLNF&Nu/9| A )H`(Bl A)H` @ag @rg @wg` `JL8N^NuNVH >.*n G f2N: @f(|N"L>NJUf 0`bJUf 0`NJUl"(yR0D@H0`(Jm n .N;|0"mRSm 0`JL0N^Nu CLNP&NuJgB`Jg Jf " NuJNuH?,.ҁփҁփ*HFHG:NOFG8Gg,b DD@AFHE D7b4 De QDf`SDf(HDDkV҃тgRFg~tgfgTтgRFgXNUVHFBFL>>BREAKNVH>.-|9gR0Hй"Yl-y0Hѹ*n`Be .`JL N^NuNV32#2A #2.NN^NuNV32#2A#2. NN^NuNVBy2#2A#2. N yNudD@EJf gB@H@HABAFo`fҁSFfrp`N2`/C$& "NLNuHJjJj@AfdDLNu/CLa&NuH?*(g.,gHB0/v JfJgfpr$<@HzbeJeFBC`(@gaNN^NuNVH*n(y2`r %gH>N*`Z -f=|R`Bn=|'A-HB@=@=@=@H`pRn`A-H`Jng.`0\./NVX&@JnfXJngp gXт`nbeb ҂fJg kڅ`NuBBbe eRBCꎈ0H@HE80HE82HA82HDNFe|RцgS<>^_FGGi$CF^FHFBFLNuN8`jN2`rp`/CLa&NuH"H@4HA6BC      !XY@gAg@A@i?prxz|JfJgh`/܇ۄ>/ ܇ۄHEЅ*HFBFBEHE҆хgG h`*ҁg0fg$)'HHA@!$$!HD"  B@"@  @ H H@ @B HHBB@B@ @@ (JHH $BDBI@@$"$HBHH$ " фgG hjN2`(rp`"Go_GHGBG|QPLNu /"/@Nu /"/aNuHNv$Dv$- Gdm0Hd@0HHǏdHG0H @0H0H H@@0HB .`JL N^Nu???tzG{?@bM? 6C->h>>j򚼯J>5y0<>. &֖=|׽=yd=a-., @@@D!$@ @B @H @ @H$  @ @ $@DA H H@@ I@H@HB@$@$I@ @ H@$ @B@$ A '%=,%hIv<+<V<Ҳ؉X[n`X n *P -g 20$@"@H  @ A@BA ! !A HD@ B$! @HH HB ! !I I I)$$I $"H)%!!A HHHB $B $"$ I   $   BH$ :8.N`|H`ZBy`jRy ^.N>`TRy b`JRy ``@Ry d`6Ry f`,`$.N`H |r W h(N``0.SnJ@fZ#xN.N.Jy pg >`BWN8JL0N^NuNVH`0`N 3 nN\#31 JH $"I !"I$I RJII$!$Q"ID)B P$IUUUUUUPU@@  @@@@@$H$ D!!! !AR@$@@@@@B;9 x tN*@ gd0`F.N`L.NB`>>?-/-N\`&.N`` @Ug @Vg @Wg``N`>` >N y VSh m y V h@"y VR`. VN> G f>N`` y VSh m y V h@42  @ H@ A @@!DB!@ $""D"BD!! @ B@<:"y VR`. VN> G f` >N y ZSh m y Z h@"y ZR`. ZN> G%g Gf Gf.N`6>?/<N \` ` @%g0 @(g @.g2` y VSh m y V h@"y VR`. VN>53H @H  $ @H @@ @ @@ "H$I @  @ HAUUUPUUUUUUUUUUUUUP=;nJL N^NuNVH N >nB`@N < F g Ff(N 8 GRg GSf F f|`BD0`N : Ef .QN l.??NX*@` BWBgN /??Nn *@`N >?N.T*@`N .??<NNhX*@`lJy ^g"64BD @ !$%B@ @@ !UUT >-|Bn y VSh m y V h@"y VR`. VN @-fH y VSh m y V h@"y VR`. VNH=|`Bn`/</<@$/./.N-@-A/./.H@H/NX//N -@-A y      A? VSh m y V h@"y VR`. VNHJngR`J .fBRn y VSh m y V h@"y VR`. VNH 0m 9o eg EfJ y VSh m y V h@"y VR`. VNH -gB@`pIGNV./<NXN^NuNVH . f..xNӒ <x#*@`Be` y RJL N^NuNVH>?.?.?.?.?.?. /./NK`H>NRJfJL N^Nu<'B@=@ -g +f> y VSh m y V h@"y VR`. VNH`/</<@$/./.N-@-A/./.H@H/NX//N -@-A y VSh m y V h@"y VR`. VNH 0m 9oZJHFHLTafgltT,@J ,6@JXZZZ -.0CA  gH>H?/<N \Jng/./.NP-@-A/NX///./.N//NP,/././NX///</<@$N//N-@-AJng/./.NP-@-A". .`JLN^NuNVHBF:`KI123456789ABCDEFabcdef    , , , , , , , , , , H H H H H H : : : : : : V .0123456789ABCDB y VSh m y V h@"y VR`. VN>0`\z`lJEf0`0D@`\F0@@`JF0@@`?/<N \`H |rW hdN`NJLN^NuNVHBFBD` y VSh m y V h@"y VR`LJDEFabcdef  2@(#)main.c 3.4 3/20/86rrwcan't open %s%s IDNT 5,0 OPT ALT,NOWARN,XREF,TC OPT P=68881 SECTION 1 EVEN SEC. VN:0`jN0@@`rN0@@`dN0@@`V0RDJ@f >BF`DJDg=G=F .`2>?/<>N \`H |trW h`N`@JLN^NuNVH~*n` SGm y VSh m y V h@"y VR`. VN< F fJGMKECTION 2 EVEN END early termination of link fileintermediate code error %c,%dintermediate code error - %c,%dintermediate code error - %c,%dintermediate code error - %c,%d"%s", ** %d: "%s", ** %d: (warning) expression too complexusage: %s icFDoB .`JL N^NuNV> n/</<^/9 8Nl >?.?.?.?.?. /./9 8Nl. 8?< NHTRy pN^NuNV> n/</<l/9 8Nl ./. /./9 8Nl . 8?< NHTN^NuNV>?.?.?.?.NLode link asm ident [-Tav]NVN.N"J@g BWBg?</.N@X/NEPN^NuNVN.N"J@g(BWBg?.?. /.N@X/N_ N^NuNVN.N"J@g4.BgBgBg?</.N@X/NE ?NXN^NuNVHN.GE?. /.N >N8N^NuNVH>N"*@:;n ;n ;n+n+n `JL N^NuNVH> N"*@:M;|;n;n  `JL N^NuNVH> N"*@:;|;n +n  `JL N^NuNVH>N"*@:;|OMN"J@g n>(.N@-@ n PFf n-h n PMg n PNg n POfP n PMg.N.` .N.>N> NBWBg/.N>\`.N > NJLN^NuNVH>N"*@:O;n;n;n;n 0.HF;n +n +n `JL N^NuNVH>N"*@:;|;n +n +n `JL N^NuNVH>.HǏHGg pGn*y t0.HЍ wc.N0.HЍ# t `JL N^NuNVH *n(n ~`Jg H`B@HQJL0N^NuPN `ZB Bm . ;@`ZB . ;@Bm`F;|+n ;|Bm`,+n BmBm`` @g @g @g` `JL N^NuNV .  xe <xdB@`b n0Pgp`F n0P(g n. N"J@fB@` n.      QON"`N^NuNVJy lgJy jf > NJy `f> n/<,N.X`> n/<6N.XN^Nu.dc.l .dcinvalid initialization*line %d ~_lN%d: NV.N-@>Bg/.NΚ\.N3-@.PN$J@f .`N^NuNVH? nYWBgBg?<?<N -@` Ef n h Pf n h h PTf n h *h(m>-GG8-Dp2S-@<> n/(NX-@ n-h >/ NX-@ n h hg n h hf>?<N.T./.BgBg?<?<NRP:0Eg .` n h PTf6 Eg Ef&"np2:>?<N.T/ n!_ n h PTf6 Eg Ef&"np2:>?<N.T/ n!_ n h6(0Eg0 n h PTf n h 0Pgn n h h PTZX -@.?<?<NNhX./.BgBg?<?<N -@./.BgBg?<?N -@`>?<N.T./.BgBg?<?<N -@>?<N.T./.BgBg?<?<N -@./.BgBg?<?N -@ n. N/ n!_SQfZ n*h > n h /(NX/ n!_ ./ BgBg??<LN -@.N` n. N/ n!_ n*h(m>-GG8-Dp2S-@< n h PMf Eg Ef Cg Cg Ef& n!L n h 20(`1@ .` [Y `0E"<00@g n h Pf n h h PTf n h*h(m>-GG8-Dp2S-@<>/ NX-@ n-h n h hg n h hf>?<N.T./.BgBg?<?<N -@.?<?<NNhX./.BgTR n h Jhf. n0 n!L02`F@"n"i 3@ .` n h 0(F@f, n0 n!L02`"n"i 3@ .`` Ef2 n!L n h 2 (!@ n h 1C .`R n h Jf< n0 n!L .2F"n"i #@ n h 1C .\ZBg?<?<N -@B/.BgBg?<?N -@`>?<N.T./.BgBg?<?<N -@>?<N.T./.BgBg?<?<N -@B/.BgBg?<?N -@ n.N/ n!_`F n.N/ n!_0EUS` n h (f: n0 n!L .2"n"i #@ n h 1C .` Cg Cg Fg Cg Cf f n!L`f>/ NX-@ n: n-h  EgRBW/ NX-@.N*@.?</ N\/BgBg?<?WN][(g n. N/ n!_ .`JL0N^NuNVH n&P0+@gkk:0Eg EOf kf + m  o|. ?<?<NNhX.BgBg0k/?<?+WNn /BgBg?+W?<N .BgBg?+?<VT -@`>/ NX-@ Cg Cf.?<?<NNhX./.BgBg?<?<N -@>?<N.T./.BgBg?<?<N -@ .2F.?<?<NNhX./.BgBg?<?<N *@./ BgBg?<?< N -@.^\GNP&@ n p`BB@`?<N.T./.BgBg?<?<N -@>?<N.T./.BgBg?<?<N -@02`F@>?<N.T./.BgBg?<?<N *@./ BgBg?<?< N -@./.BgBg?<?<N _] `B-@JgLJng n-h`6 n hg n0(H-@` n0(H-@0` JghJf&M` 0-@0 @f0 TNf( ,>0H",f8M9|9G` UFf ."mѩ &M` jJg.NBJ@g&M` L` 2 TfBXV-@` ETf n>(GGp"n2)AS-@< Cg Cfp>?<N.T. n/(BgBg?<?<N -@.?<?<NNhX./.BgBg?<?<N -@`f>?<N.T. n/(BgBg?<?<N -@>?<N.T./.`^.N;HJ@g2 l PMf&*l;| l 0(Hѭ 'M 6.` T%f l P)fv(l l PXfD l Jm l n l 0M l 1| l ("l 3@` l P$f l )h T%'L ` x Ef Jg.NBJ@g&M` RJgv m      a_fl n[gbJng ,88M`8, Do.DNR0@9@`" Dl.ENR0@H9@` ` Jg|Jf&M` 6Jnf .D"n3@`L nNf .D"n#@`0Jy bg ."<` ."<"n#@` P.igN9X(@ g4Jnf, n0(@0 @g n0,HѨ &n`".N;HJ@g~./- N9X(@ g4Jnf, n1| n1k n0,HѨ &n`Jyf& m PFf m *hVm;k&M``d.N;HJ@g: n0(mf* UfpQb`/ N9X-@g*Jng nJg,Jnf nJhg UYf.NBJ@g6 *L'M` ` JgPJf.E&N &L` f&M` f Sfp `p06` Jg$.NBJ@g.E6N &L` f./ N9X-@g*jh`pP"n2 n1k&n`J`H |Bzr W h$N`0Ug&M0Sq6`` kf7|0Uf &m` U$f:6$;|` U%f:6%;|`` Uf0-@@;@&M``t./ N9XJg.JngcaJng nJg,Jnf nJhg UYf.NBJ@g&M` .N@J@g n&P``JgZJf.EFN &L` f4Jnf nBh` nB Ef 6`&L`Jg$.NBJ@g.EVN &L``./ N9ki -H;@` 0-H;@;|&M`F`,Jy bg &M`2`Jg n1|  n0[Jy ^f.NBJ@f~ n (-@ n ( r n (r-@ n(g < .r n!n&n`v`\.dbX-@g*Jng nJg,Jnf nJhg UYf.NBJ@g&M`.N@J@g n&P``Jg6 f&M` f Sfp `p06`.N@J@g n&P`Jg.NBJ@g 6`n`TJg.NA>mlj/ N9XJg$Jng -;@m;|&M`8``S@ @Fb@0@B PN.N;J@g n&PRF:0Eg n 0`JL8N^NuNVZH n>0Gg^A-H\Ad-H`.`/\/.N8PY\Y`BFK`0 U hec| Uft./- N9X(@ gXJnf0l.NA̰GgJng6.NA̰Gf&0Sq6 nBh n0M``Jg4Jf, mg mg mf.EfNR`Jg,Jf$ mg mg mf6`JJg4mkg U0(@0f U hfRF` X\cK`JFg.Z/N9XJf U hg| U0(@0fn U hgb g g f.BgBg?<?<7NP*`.BgBg?<?<$NP*.N@*` .N3*X\cJK`,(M`fdJf, mg mg mf.ENR` Jg,Jf$ mg mg mf6`Jg f&M``Jg"Jf&M` f&L`Jg.NBJ@g&M``nJg T$f6 l hg l hg l hf 'l `Jg"Jf&M`Ĺg 'n `Jg.NBJ@g&M``z UGf &m` UOf: mf06 - >?<omf 7|`7|`c-K`0G(g n.N3/ n!_ n. N3/ n!_ 0GgL n&h. n/( N7*XJ@g, n2Gq0 n"n!i  n!K `00G"<00@@@f n.N3/ n!_ .`hfN.T'@ ;k;|B `@`&-m0` n1k&n`BWBg0m/?< ?+Nn &@`> Bg/-?< ?+Nn &@`> Bg/-?< ?+Nn &@`.N;HJ@g;|;kB &M``\ n POf^ n hfP./- pnJL8N^NuNV n h fB@` n h fp` n POf n hfB@`| n POf n hfp`\.U/. N9XJgp`@.U/.N9XJgB@`$ n0("n 2)AnB@`p`N^NuNV0.`N n hf n ho      qoB@`^ n hf n hop`<`` @g @ g` n 0("n2)AnB@`p`N^NuNVH (n *n n0"n"i2Af./ n/(N8P` T"n X n0"n"i 2Af./ n/( N8P` T"n X U XJL0N^Nuywf0-S@=@` -S=@`"B@`<`H |DrrW hN8Jng:M;np`B@`JL0N^NuNV n PNfp`: n hg& n0(@0f n hgB@`p`N^NuNVH n*P.N>6>g n*P(m .N@hJ@f.NrpNV n PNg n P[f n "n0 .`` n BP n PMf .` n P7f n h PMg n h PNfh n0N n h PNf n"n"i!i` n h0("n#@ n1| n 0 .`T`J n P$f n h PMg nzx@hJ@g0`:(`.N@hJ@g lgU% TNf8X`.N@hJ@gt TNf8XU>/ NX.?</-N\/BgBg?-?<N / n RG``H |DrW hN0`JL0N^NuNVH~`.f .-@SGJsq h PNf n0N n1| n h PNf n"n"i!i`R n h hf* n h0(H"n#@ <"n` n h0(H"n#@ n 0 .`` n P%fv n h PMg n h PNfV n0M n1| n h PNf n{yf . gp`0`JLN^NuNVJy ^f$ nJf nJ fp`2`(BB n/( /(NNfp`B@`N^NuFMNOY[011/p/////1p&(+)*..--tr h ("n3@` n"n"i1i .`B`N^NuNV n POf$ n hf n hmp`B@`N^NuNVH n&P>*k0Gf m fB@`tBn.U/ N9X*@ gJng -`0-H*`B@`80G(g(k|z.1t113333'X(((N+)*..(N(N.3,6,6- ,-@-~133333333333333333233.32^33333333333//d<us GJf*l(l Jng UNf TNgB@`Jnf UMf TMgB@`JngJg -` ,+@`Jg 0-`0,;@ n p`.Y/ N9X(@ g0 n[g&Jng ,`0,H,0.n`B@`F0`چ` `//NhP*}{<<= ==0=<===H======================P=f=|=??????@AAAAVA<A<Avalue vt`//NP*`//NP*`" *`" *` `nB@`pH*`lB@`pH*`mB@`pH*`loB@`pH*`V D*`L F*`BJgB@`p*`.`(ʆ`"B@`L`S@ @"b@0@C PNJng~|assigned to char truncatedvalue assigned to char truncateddivide by zerodivide by zeromodulus by zeromodulus by zerounsigned comparison >= 0unsigned comparison < 0NVH n PLg n PZfB>?.?< n/(NEP>?.?. nwu.?<?<NNhX*@`;E n p`JL8N^NuNVH n(P l h g l h fB@`.U/, N9X*@ gJnf0m.NA=@lB@`Jng.NA=@lB@`> Gg: Gg2 l hg$ l hg l hgB@`}/( NEP``D n Pg n Pf, n f" n Pf n0` n0BFA-H./.NGX-@ d n f| n0Pg^. n/( N9X(@ g8Jng JgJnf Jlf| n-h=| `xv^0`"~ lg0,@0f lf l hg l0(@0fv l hgh l hg l hg l hf".BgBg?,?<7NP)@`.BgBg?,?<$NP)@`~`z~`t~`n~Jnf0-S@=@` -S=@`H~Jn~|` |=| >?.?. /.NHP> d Ff0Jy ff>/<l6N.X`>/<lDN.XK`>?RW?</NHPXe Ff.?NT` Ff>/<lRN.X0`JL0N^NuNVH n>0Gf GJ      g GHg GIf .` Gg Gf>> n/(NX*@>/.NX/ n P "n X `Z0G(g . n/( NGX/ n!_ . n/(NGX/ n!_ .`JL N^NuNVH n0`BF>9 r n h POgRy r n/ NHP>>?.RWW?< n/( NHP< n>???<NW"\0.` n h f n g n f TOg TGf TOf" lf=| n3 h`3 hBn-L n PGf& n-h n POf nh` n POf n PRf n*h `V UZf>3j\>?.?</-NHPByj\. Nh@*y`. Nh@*m g ULg UZg g .Nh@ n0>?.?</.NHP>N3 r n fXJy ^g8 n h g n h f.?.BgNX hf~ n hf >W n?(/<m^N.\ n. /<mnN.X>W/<mzN.X> h?.W?<BgNW"\``4 n hf&B/.Bg?<?<?<FN -@Jng: n h> n h?(/<mN.\ n h=h`">0.`.?.BgNX`BW?. /.NK\=@0.`>?.?< n/(NHP>?.?. n/( NHP`Jyj\g n#`>?.?< n/(NHP>?.?. n/( NHP`N n f n. Nj8m> n/(Nh?.W?</.NHP=@> h?.?<BgNW"\Ry r0.`$`P n f 0.``: nm.U n/( N9X*@ g n h hg n h hg n h hgJnf mg, mg"Jng g f>?.X8m n h 0P"<00@g n"n"i !i n h 1D n h 0M n h 1| n0&.N@-@>?./.NΚ\``H |j^rW hN>?.?. /PNcLPJ@g< n f2 n POf& n hf n hl 0.`?< n/(NHP> n.?.?NX mf.?.?./<mNbP.?.?./<mNbP>?. /.NK\0.`` n.N;HJ@gn0.@=@.?. n h>(?NX n h1n>?.RW?. /.NHP.??.N">?.?. /.NMP:0`JL0N^NuNV0. `.?.NT`Ry rJy ^g@ n h g n h f$>/<l`N.XRy r=| `p n h f Jy bg* n gBW`>/.?.N\`0 n f .l`.l/<ltNX0.`` n f8 nm.0.@=@>?.?. /.NHP0.` `L.U n/( N9X*@ g\Jnf(Jml mm0-D@;@ nRP`.Jng&Jl m -D+@ nRP` nmF n h hg4 n h0(@0f .XRy r`"` @g" @g. @g&`0.`N^NuNVH n(h n0` n&h n f TFf l POf SMg SNfv SMf 0+H` +-@.lNR.lN.BWBg/,N>\Jf.lN.`./<lN.X0. n h hg0.@=@` nmX n h hgF n h0(@0f2 n h hg n h hg0.@=@``H |jrW h`N>?./.NΚ\>?.?. /.NXRP>m0`>?.?. /.N^xP>m0`v` R`~ n fX TOfP lg lf<.lNR.mN.BWBg/ N>\.m&N.0.`` lfp`& lfp` lfp`0, @g> lfp`& lfp` lfp`0, @f" n f nm0.>?.?. /.N\rP>m0`R n f>?</.N\*@ gl>/ ?.?</.N > n0Pg2 n.N;HJ@g n. n h?(NT`>?. /.N\*@ g&>/ ?.?. /.N >`| n g@=@`~ n h h m| l mr>?.W?</ NHP>>/<m:N.XRy r>?.RWW?< n/( NHP<>/<mLN.XSy r` n h h mF>?.W?< n/( NHP<>?.RWW?</ NHP>`B>?.W?<2>?.?</.NMP>?. /.NK\>`B n h g( n0P"<R./<mN X`.mN 0`JL8N^NuNVH n l(> W?. /<mN.\0. @=@ n l(> W?. /<mN.\0. @=@ >9Ry> W      0.H?SW/<mN.\Jng2JGo>/<mN.X> ?. /<nN.\`D> W?./<nN.\JGo>/<n$N.X> /<n*N.X>?. W/<n>N.\JLN^NuNVH? n PGg n h nn n:( n=h n PGf n(h?.?NXJFo>/<nrN.X0.`p`JLN^NuNVH n*h n:0E(g n(h 8. 0`: nJhf(Jn fJno>/<nxN.X`$Jn gJno>/<nN.X`>?.?.Jn gBg`?</ N_  Tf l n*l (lBG UMf>-0 @m Gn Tg>Bg0G/?<?Nn -@.N;HJ@g n1l`F>?.W?</ NHP< Fl.?W?NX0@"n3@` UMf *l (l.N;HJ@f".N;HJ@f UOf`Jn gB@`p=@ Jn fl>9Ry>?.?JDgBg`?</ N_ >?.?.?/ N_ JGo>/<nN.X`:>?.?.?/ N_ >?.?.?/ N_ `>?.?< n/(NEP>?.?.?. n/( N mf&L(M*KB@H-@&@.N;HJ@gB mg8 mg.6, UOf mf=m=m`&M`f TOfF lf< lg2 lg(Jyf UFg=l=l-M` UFf -L&M`-M&LBDJgRD g SFf JygRD0.D@_ `>/ / ??. N J@f0Eg, UPf$ TPf0-lf.Nl`>?.?</.NEPJy ^g$ n h g n h f|`BF0Eg mgL mgB mg80-@0f, lg" l @n<.Jg@>?W?</.NHP6 Cl.?W?NXCRF g: SFf2Jyf(-k nVh n0HѨ n1C`F g >??</ NHP=@=k>?.0G/??N߼ -@ nm* n hg n hf0.g lg0,@0gRF`6Jy ^g, m g m g l g l f|`zJn f0Eq:0@2HЁ @"<q0H<>0F"<n/0/<nN.P``H |kVrW hNJL0N^NuNVH n*P<BG0F@=@./.?.?< n?(?<'N -@>?.?. /.NHP`p`JL8N^NuNVH n Pf` n*h UMf `PJyf@ UFf -`6 n*h UFf n"n!i  n!M -`B`JL N^NuNVH n>0Gf FLg FJg FHg FIg FZg F"g F#gx F gp F!gh>?.?. / PNcLP@0F(g >?.?. /  NcLP@>?.?. /.NdHP@JGg n.N@/ n 0`JL N^NuNVHBF n*P`0&m SOf:g n h hg n h hf.U n/( N9X*@ gJng8. n/(Bg?< ?<?<'N / n!_`H mn ml4. n/(Bg?< ?<?<'N / n!_ n g 0Gf GIg GHg G-m 0` kf kg kf0` n0`" n h hf kf0` n h hg n h P$f> n h hg n h P$f kg kf0` km0`v n(h kn> n/( NfXJ@f0`D f<9Ry>?.??</.N_ BW?<N.T.N@*@>?.?. / NHP:9RyJEo>/<nLN.XJFo>/<nVN.X>?<N.T.N@*@>?.?. / NHPJEo>/<n\N.X0.`p`JL N^NuNVH n(h TOf lf0,kg+L >?.?</ NHP n+h n0@:``S@ @ b@0@k PN kg0` kg kf0`>?.?</ NMP*K`Z n g kf0`n>?.?</ NMP*K`$`@ @ n PJf n g>9Ry>?.?Bg n/(N_ :9 r>?.?. n h /(NEP8.?.?NX3 rJynB@`p<0RyJ@g<9>/<nbN.XRyJGo>/<nlN.X>?.?. n h /( NEP8.b@0@k PN`*.N@*@ n RF>0G(f0`JL8N^NuNV n0PgF n POf4 n hg n hf n0(n fB@`^p`X> n/(NfXJ@fB@`8 n0P(g> n/( NfX`     p`N^NuNVH n>(0@0gp`p0`09 h`4`S@ @ b@0@k PN>/<nN XB@`JLN^NuNVHBGJy bf2 n h f$B/.BgBg?< ?<9N -@Jy rf(Jy ^gBrrrrrrrrrrrrrrrrrr\Psh< pvzfdydx{*t8usrRXr(40  n h g n h f&BWBg?</.NHP.Ngh>`@By hBWBg?</.NHPJy bf n h f~`>9 h0`JLN^NuNVH n hg n hfBG`.Ngh>0. H@SG n POfd n0(`> n hl 0. X        &'(    (( `p` n0HѨ 0. HH@``U@ @b@0@l PN`` n PGfT>?<N.T. n/(BgBg n h?(?<N / n!_0. HH@`p`JLN^NuNV.U/.N9X-@fp`2Jng n (` n0(H-@.N **! #"%$),+-././%0$1 #2!"3#"! "# !sssssss$s*s.s4s<addincsubdecmulsmuludivsdivuasrlsA`N^NuLRSZJJLHHJKv$'+,-7;FOSRSSN0SS:S:S:S:S:S:S:S:MTPS:S:S:TxNrasllslandoreornegnotmoveclrcmptstlmul_ldivlremalmulaldivalrembeqbnebgtbgebltbleblsblobccbhijmp*nopbtstbfinsbfextubfextudivsldivulfbeqfbnefbgtfbgefbltfblemovemove.ljsrclrclr.lext.wext.lleMQUH HILMZ`L`|`a>_a>ae2e2ddde"e"e"e"e"f f ftftdteeftftfteeeeegggggggggggiBi^i^i^i^i^move sr,R%d movea(sp)extb.lfmove ,- +, , , , , ,() ,  sDsD sTsT shsh , , , , ,()  ss ss ss  ()  ccr,R%d move R%d,ccr fmove.d fp%d,-(sp) move.l d1,%s move.l d0,-(sp) -(sp)(sp)global identifier existence testmove.l #,-(sp) tst.l (sp)+ ,-(sp) cmpi.l #$%lx,(sp)+ global identifier existence testmove.l #,-(sp) tst.l (sp)+ move.l R%d , ()   t t t t  t( t(fmove.x , fmovecr.x #$f,  (), , , , , ,  (),  (),  (), (),  t~  t~,-(sp) move.l (sp)+,R%d move.l r%d,r%d add.l #%ld,r%d add.l R%d,R%d addaddno code table for %sillegal structure operationmove.l r%d,r%d move.l r%d,r%d move #$%x,r%d L%d:move (r%d)+,(r%d)+ add.l #$%x,r%d L%d:move -(r%d),-(sp) db t  t t t  t t t tp  tp t  t  t t t t  t t t t t t , , ,  (), (),ra r%d,L%d bra L%d L%d:L%d:bra L%d L%d:L%d:bra L%d bra L%d L%d:%s L%d cdsize: invalid type %drrrr rrrrr$r*r.r2r6r:r>rBrFrJrNrTrXr\r`rfrlrrrxr~rrrrrr , , , ,  (), ,  (), ,  (),  (), , uu u uu u uuuu u v v v  vv v$      uu uv2v2 vDvX vlvlvlvz #1, D0,  (),  D0,() #$0, #$3ff00000,  (), (),  r0,() r1,() (), #1, ,() , # , ,- + , , ,  , ,()  (),()  (), ,  ,() nd*,c  ,() ,() ,  (),()  ,() , ,  ,  1, , #1, D0, -, D0,+ #$0, #$3ff00000, -, -, r0,+ r1,+ -, ,+  (), ,()  wz w w w x  x  x$  xL  x x x x} } } } } } } } } } }yyyyy y yyz  z ~ ~~~ ~ ~~$~$ ~$ ~$zZ  (), , , ,    y y" y" y* y* y8 y8  y8  y8 y@  y@  yR  yZ ,  , (), ,()  (), zZzZzZzZ zZzZ zZ  zZ zZ  zZ zZzb  zbzn  zn~> ~^ ~v z  ~  ~  {0 ~ ~ ~~~~~~ ~ (), ,  ,()  ,()  , , ,() , .x , ,  (), (), ,() ,()  (), (), , ,  , , ,() ,()  , , ,() ,~ ~ ~ ~  ~~~ ~~~~~~~~ ~~~~~~ ~~~~~~ "() , , , , , , ,  ,() ,() ,()  , ,() yyyyyyyy y yyz  z z  22HZZZ Zhhvvvvvv v          ~>  {n  {n  {n  {n  {n  {n  z z  z z. z.z. z.z> z> z>z>zZ  zZzb zb  zb zbzn  znzx z z z  {  {  {0  {B {B {B{B {B{B{~ {~{~ {~            {0 ,  , , ,  , ,  ,  , , ,  ,   {B{N{N{^{^{^{^ {^  {n  {n  {n  {n {~{~ {~{~ {~  () () fmovecr.x #$f, ,() fmovecr.x #$f, fmovecr.x #$f, , ,  (),  (), .x ,  (), .x ,  (), .x ,  (), .x , , .x , .d , .d ,    Z b b j t    ,() , , , , ,  (),() (),()  ,() ,()  (), (), , ,  () , , , , , , , , ,           , , ,,B BZd d  d dZ Z Z  Z      Zp  p     ,  ,       , ,  , ,       @R ,  ,       &&& F F h h h h      J Jp p pp      , -, , ,+ -, .x , ,+ ,- +, -, , ,+ -, , ,+ -, , ,+  -, (), ,+  -, (), ,+ p p pp                :j  , ,  -, (), ,+  -, ,+  -, -, ,+ ,+ -,  , ,+  -, , ,+  -, , ,+  -, , ,+  -, , ,+ , , , (), ,  (), ,()  -, (), ,+ -, , ,+ ,  (), , ,() , , ,  , ,()  , ,()  , ,()  , ,() ’  -, , ,+  (), , ,()  ,() (),  (), , ,()  (), , ,()  (), , ,()  (), , ,()  (), , ,ʏ (), .x , , .x , .x , ,  (), .x , ,()  (), .x , ,()  (), (), .x , ,()  ~~ v vvv~~{B()  (), , ,()  (), , ,()  (), .d ,  (), .d , ,()  (), -, .x , ,+  (), , ,()  (), .x , ,()  (), .x , ~~~~~{B{B{Bvvvv {B      {n {~ << L {B{B  {nXn  ,()  -, .x , ,+  (), ,()  (), (),  r1,() r0,()  (), (), r1,() r0,()  (), , ,()  (), , ,()  (), ,                       0ŀ ,() ,  (), , ,()  (), , ,()  w w wz w     x  x  x$  xL 8 888JJddd 0 0 0 ,- +,  , ,() (),        , ,  ~~  {B {B {B{B {n {n {n {n~~~     , , H H H H H Hdd  {~~@{Bv {nX - +,  () (), -, , ,+ -, , ,+  -, , ,+  -, , ,+  (), , ,()  (),      Ϝ , ,()  (), , ,()  (), , ,()   && >> XX XXr   vv~~~~~   &&8          J  () ,    ~~   ,      and.l #$ff, , and.l #$ffff, , , , ,  $ : R  b   T    Z Zp  p ^^ ^^^ ^ zz z z z  z ,  ,()  ((00  dlandi.l #$ff, andi.l #$ffff,       $ :   fmove.l fp0, fmove.l ,  2  2 D  D 2 2  2 d d d - +,  (), ,() , ,  , ,()  () (),  ,               () ҙ2  yZ yZ  yR yR D  D 2 2  2 2  yZ  yZ  yZ yZ  yR  yR  yR yR fmove.l , fmove.l ,  22 :: HH   ` ` f f     ,  -, , ,+  -, , ,+ dd~    yZ yZfmove.w , andi.w #$ff, fmove.w , fmove.b , andi.l #$ffff, fmove.l , fmove.w , fmove.l , andi.l #$ff, , andi.l #$ffff, , , ,   J J  ppp p pp p ppp            Ԛ          6 6  T  T d dand #$ff,     ( (     ܡ  H& F F h h    :j ,  (), , ~       (),   yZ     yR  ,  (), ftst ftst  (), , move.b , , , , , ,    (), , .x , .d      -, , ,+ , swap , swap        , , ,  ֳ, .d ,   t } } } } ~ ~ ~ }         ~~ B Bzv       * * * * -, and.l #$ff, , ,+ -, , ,+ -, , ,+ -,  , ,+ -, , ,+  -, ext.w ext.l ,      ߘ ,+  -, , ,+  (), , ,()     : d d    J Jppp p p ,8DP\hlptxz|~+-*/%>><<&|^!U-~--p++pp--p++=+=-=*=/=%=>>=<<=&=|=^=jsr==!=>>=<<=int-p p ppp                : , (),  ,  , ,  >longlong->intbtstloadlong*long/long%long*=long/=long%==addr=not=negdocastlong->floatfloat->longint->floatfloat->inttocharint->ultoucharftoddtofst=invalid-60invalid-61invalid-62invalid-63invalid-64invalid-ᢁ ,   ,  Z b b   *  6B R f , ,, ,B Bd d d  dZZ 65invalid-66invalid-67invalid-68invalid-69U&U*&&||?:,cintclongsymbol++aa--callcall()bitfieldifinitloadR0divlongcdoublelrcommacfloatNVH? n> Gm G o G(m G*o n hf0.@=@ nZ Z  Z Zp  p    , , , ,  , (),  (), (), (), ,  ,  ,  ,  ,  , -hBC=C n*h(M=|0G(g*Rn n(h n hg n0(@0f n hff Gg\ GgT GgN nlD mg:0-@0f. mg$ lg0,@0f lgRC0`p mg mg mfRn`b m , .x ,         &2  > L f , ,, ,B Bd d d  dg4 mg* mg lg lg lfRn``W@ @b@0@Ȃ PN<.RF0.R@=@` D0` p>N` ~Sy r.VN.Jy ^g n h fSy r` JSy r>N` 6Uy r>N` "Yy r>N` Jy ^ZZ Z Z  Z ZX X  X Xp  p    ,  (), ,   ,       g, n h f.\N.=| Ry r`. n f.bN.=| `.hN.Ry r` Jng>/<nN.X`R` ~ UOf mg.|N >?<?-NX` H nmF nH@ @f. n hg$ n0(@0f B    > R f , ,, ,B Bd d d  dZZ Z Z  Z Zp  p     n hg8<0D"<q./<̂N.X`Jy df.̆N.`.̌N.`Jy bf.̔N.`.̜N.`> n?(?NX`f0Gg n>`>N`:0Gg n>`>Nh`慐INVALIDJ  $(*.04>HNTZ`fnv~ lg80,@0f, lg" mg0-@0f mf >N`>N` nH8R` Dg Jng0 @"<pB0H=@`0 @"<pB0H=@0n"<n.N. DfJy dg >N`$>N Df     .̤N.` Df ` &@ n +fR>?</ N>\`: n -fR>?</ N>\`>?</ N>\` Df ` &@ n +fRBW?</ N>\`6 n -fRBW?</ N>\`BW?</ N>\`" no`.RN.`.XN.`p.^N.``.dN.`P.jN.`@0n"<R./<pN X``S@ @/b@0@ PNN^NuNVH n g n g n g n fJy bgpf` n g n fpd`psH0.`.̨N >/<N.X` no.N >/<N.X`>N`>N`>WN`>WN`>?</ N\`x Df >`>?-/ N\`TJy dgP0-@ @g0-@ @f>?<?-NH>/<͊N.X`H>/<͒N.X`H>/<͚N.X`lH>/<ͤN.X`TH>/<ͬN.X`<.ʹN.`,.ͼN.`Jy bfH>/<N.X`.N.` n g n g n f/<X`>?</ N\`* mg mf>?<?-NX` Df >`>?,/ N\`> lg lg lf ?<`?<?-NX`n>?,?-NX`V>?-?,NX`>Sn Df ` Df `N.X`H>/<N.X`8Jy bfH>/<N.X`H>/<N.X`XH>/<N.X`@0n"<R./<N X``S@ @9b@0@ʒ PN` n g4 n g* n g n g n g n fn0. .&@ nH=@R=|.g n f =|`=|`.g=|.g>=n k g k fJy ^g.f :.`:` :.=n.g SGg 0G"<R./<N X&k.N[JgV&k kg0+@`L.N.`R.$N.`B.*N.`2>/<0N X``H |zrW hN`j0.`L.PN.`R.VN.`B.\N.`2>/<bN X``H |˲rW hNJLN^NuNVH n>0 @??./ NHP=@ nf.g( nl.?W?.NXE`.g <.`кng Dg nlJno Df:BW?./ NΚ\"n2)An>?./ Ng (n` n(h0G(fB@`p<g n&h 0T"<00@g Gg0S"<00@f n g n g n g lg lg lg Gg, l hgt l hgf l hgX0GgΚ\ @o@ DfNBW?./ NΚ\"n2An2>?./ NΚ\ @n0.@=@<.RF`.?.?.NX=n`0Uf2.N[&@ g SMf JkgBWBg/ N>\`d0Tf2.N[&@ g SMf JkgBWBg SMg> SNg6 n!l>?. /.N\*@ g `J n!L`0S"<00@g k0P"<00@f kg| kgr kgh Gg, k hgR k hgD k hg6 n!k >?. /.N\*@ g ` n!K / N>\`0Uf$.N[&@ g SMfJkf.N.`Xk>Bg/ N>\Yk`0Tf@.N[&@ g. SMf JkgXk>Bg/ N>\Yk`.N.`^0`RC>/<N.X` @g @g @*0. `F=|`R=|`H=|`>=|`4> /<tN XB`B`S@ @b@0@ PN02.HЁ @"<pB0H=@fB`0no*P`>/ NvXJ@g G'f0Jy dg& n g n f0-@ @fJFg>/ NvXg @-g`` `@ @/<&N.X`>/<:N.X0.`JL8N^NuNV0.`.FN.`.LN.J@gz G2g G4fdJy ^g00-@ @ g mfB@`p@f6`,0-@ @ g m fB@`p@f `PJUf B`JL8N^NuNVH? n0(n n. g n PGgB@`8. D n>(0@0 @ fG Gg Gg      GgB@`p<g0 Gfp` Gfp` Gfp`0>BE n0` n hnRE`Jy ^g n h g n h f6. C Cm CnB@` n hf Dfp` nJhf(BB n/( /(NNfp`` @ _dptosp_%cptol_fpftol_ulto%cp_fpultof_lto%cp_fpltof_%cpcmpinvalid floating point op %slmululdivulremuinvalid unsigned long opcall %dlmulldivlremopcall bad op %dmatch cookie=%d skelmatch type: %xNVH 0. @=@ n:0EMg^ @NgH @YgT`0`\ GgB@`p`^ Gfp`P GgJEfB@`p`60`0JFg GgB@`p`JFg GgB@`p`JFg GgB@`p` Gg0@0f GgB@`p`Jy ^f G g G f Jy bfB@ (g n*h n(h ` 0E"<00@@@f n*h0` n ( l n ( n ><` n (8 EMf n8(JDfBG`F Df ><`6 Dm Dn ><` Dm Dn ><`><`N>?. / NΚ\>>?.`p` G f Jy ^gB@`p`n G f Jy ^fB@`p`P G f Jy ^fB@`p`2>/<ΆN XB@``S@ @ b@0@ PNJLN^Nu6>FN((((  / NΚ\8Do0`0> G o0`0< >`>?. / NΚ\>` nJfB@`0<>` nJf nJ fB@`0<>`><` n hg ><`@ n h g n h f ><` n hl ><`><`B>?. / ((666666666ftp"``"r,, :\  NΚ\>?. / NΚ\>< `>?. / NΚ\>0E(g Gn*>?. / NΚ\8Do0`0>`>>?. RW/ NΚ\< Fo n o G o0`0< > G l 0< `0>` G n G l 0< `0>Jy ^f" n h ~PPPPPPP P@PPPPPPP000000PPP@PPPPPPPP *BnnnnnnnZn  g n h f>< ` `@( @3b@0@ PNJng n1G0`JL0N^NuЦЦЦииϚ6Nn*BnnnnnnnVVVVVVnnnnnnnnnnnnZnnnnr()*$( FFЦиFϚOOPPP N NKJJ$ $ """""".....LLMMMM@@@@@@@"@  " $IH G GE@@@@@R@@E@ Q@NVH*nJy )*`p`p 8Lj:TTnǮ 4tmuls.ltmulu.ltdivs.ltdivu.l(sp)+-(sp)(sp)-(sp)move.l R0,R%dEXTB%smovemove.l_ltosp_fpltof.lfloating point expressio g By `" ~g `f* *f.N".bN"`.d/ NtXJ@g.p/ NtXJ@f6JyfRy.|N"3.N"`./ NtXJ@f yf3`` yfd&|܆ByY-HG-H@`n too complexfp%dfloating point expression too complexfp%dcode skeleton error: %s44swap R%d andi.l #$ffff,R%d ext.l R%d faddfsubfmulfdivfnegfcmpfmovebad floating point op %s_%cpadd_%cpsub_%cpmult_%cpdiv_%cpneg_sptodpX KPf.X/< NX.?+/</ N .N"`Jy ^gH>/</ NPJ@f.G-|ܮ`B. n/NtXXJ@f(./<f/ NP3 .N"`~ nJf./<xNtXJ@f".|/< NX3 `./<ސ     NtXJ@f".ޖ/< NX3 `N./<ުNtXJ@f".ް/< NX3 `./</< NP. / NX.N"`#.UNڜ(@ .:f2.N".N" yJg.NӒ`V . f^./ NtXSCCMAC1 MACRO DC.W SCC&# ENDM SCCMAC2 MACRO SCCMACN SET &#-1 SCC&SCCMACN& EQU &1 TST.B D0 BNE &2 ENDM SCCMAC1 move R0,ccr SCCMAC2 $%x,%s jsr _acosasinatanatanhcoscoshlog10lognlognp1sinsinhsqrttantanh f%s.d (A7)+,fp0 J@f (|`>./ NtXJ@f (|`./ NtXJ@f(| ag lf ,sf ,lg ,rf./</< NP. N".UNڜ.N4(@J.fD Dg Af4./</< NP. / NX.N"`B.exp fetox.d (A7)+,fp0 fabs fabs.d (A7)+,fp0 fmod fmove.d (a7)+,fp0 fmod.d (a7)+,fp0 jsr .%s cmpcmp.waddadd.wsubsub.w %s #1,%s clr.l sub.l %s,%s clr.l_globlEXTN_bssSECTION 2_textSECTION 0_dataSECTION 1_evenEVH>/ NX`,. / NtXJ@fx.UNڜ.N4(@ Af:./ /</< N . / NX.N"`. N".H>/ NX`.(/ NtXJ@f (|0`n.6/ NtXJ@f, yg <<` <F(@3EN_ds._dc._comm SECTION 2 ds.b %s%cspA7%s%c >>BREAKNVH>N"*@:O;n;|;n ;|+n ;n;n `JL N^NuNVH n>0` n hg n hf*. n?( n?(NX*@`6BWBg n/(`..H/ NtXJ@f(Jyg <N` <X(@By`.Z/ NtXJ@f, yg <`` <j(@3`.l/ NtXJ@f (|r`>/<x/ NPJ@g>/<~/ NPJ@fR`X.߄/ NtXJ@fB.UNڜ(@ n?( n?(Nn *@ n;h n+h n;h ` n> n?(N.T`f n. n?(?<NNhX`FJy ^f& n. n?(?<[NhX``& n. /( n?(?<[NP`Jy ^f. n. n/( n?(?<YN yg3.ߊN".N"(|ߖ| .H>/ NXJL8N^NuNVH*n. H>/ /<ߜ/< N . N"`d. Nڜ.N4*@.ߢ/ NtXJ@f*|ߦ. H>/ /<ߪ/< N . N" yJf.P``& n. /( n?(?<YNP` n. n?(?<XNhX*@ `vBWBgB?< n?(Nn *@ GQf. g:Q` GPf. g:P n;h `. f> n/(NX``$. f> n/(NX`߰N"JL N^NuNVH*y-MH`.`_`` @.g @_g``NH`0R`@ n"M#Jg RB .``H |rW h8N`JL N^NuNVHBG*nR nH@ @rf 0m 9nHG`` 0m 90Gg*. f> n/(NX`n ./< n?(Bg n?(?N *@0G(g> n/( NX+@ > n/(NX+@ ``H |2r W h0NJL N^NuNVH n PFf n-h>#Nn H@@ GntJg .fd .f&H@ H lg wg bf8 Gl nD`$ G oR nA0@("n@ .`JL N^NuNVH*n(y 4`BJl n,.N~N @f&|߲"K>N8 lRSl JfJL n*( JngX n>( n<( n0`. g>/<N.X`.Jng>/<N.X`>/<N.X`. g>/<N.X`.Jng>/<N.X`>/<$N.X`~. g >#N n>/<*N.X`P.8N^NuhiRlsSccTloUneVeqWge\lt]gt^le_"(.28>DLPV\` #()+,-/:=[] move sr,R0move ccr,R0  g >#NJy ^f0Jnf n.` n. /<.N.X`<> / n/( /(N ./<4N.X`. g >#N n./<8N.X`. g >#NJy ^f n./<>N.X`<> / n     !/( /(N ./<DN.X`" n0(`Jg.HN `4 n hg>/<dN.X`>/<hN.X`Jg>//<nN.P`>/<xN.X`TJg./<~N.X./<N.X`"Jf >/./<)'f8 n h hl& n h hf n h hgB@`&> n h?(/<N.\p`N^NuNVH>N"*@:O;n;n BmBmB ./. NX `JL N^NuNVJno*> nn ?<q`?<a/<(N.\N^Nu" N.P`">/.//<N. `Jg./<N.X>/<N.X`Jg./<N.X>?/<N.\` n>?//<N. n>Nh>)N`J./<N.X`6 n>/<N X``U@ @ *(MNOPQXY[FF "BhD.hhhhhh\h(R%d)+4(R%d)(R%d)-(R%d)4(R%d)(R%d)%d$%lx#!b@0@ PN`D n0P"<R./<N X``@M @b@0@ PNJLN^NuNVJy ^g n f.N.`Jy ^g n f.N.`f n g, n g" ng0.@0f nf. N.`" ng n+)%s$%lx$%lx%sinvalid register expressionr%dfp%d$%lx(R%d)(R%d)$%lx+_%.8s_%.8s(R%d)$%lx+_%.8s(R%d)$%lx+L%d$%lx+L%d(R%d)$%lx(R%d,R%d$%lxinvalid storage class %dinvalid operator %s.d.s.l.b.landi.l #$ffff,R%d ext.l $"f.N.N^NuNV ng,0.@0f ng n g n f.N.N^NuNV nl n hg n0(@0f n hg n g0. @0f n f n0(@ @f>?. n?(NX`T n hg n,*R%d andi.l #$ff,R%d andi #$ff,R%d ext.w R%d ext.l R%d ext.w R%d %s.w R%d,R%d movefmove.x fp%d,fp%d cmpm (R%d)+,(R%d)+ expression too complexR%dcmp #0,r%d ftst.x fp%d tst r%d move R%d,%s -(sp)(sp)dbra R%d,L%d add%%# hg n hf>/<N.X`>/<*N.XN^NuNVH>.<. :. El Gg$ Fg Fg Fg 0@0gD Fg0@0f Ff>/<6N.X`>/<HN.X`B Fg0@0f Ff>?/<XN.\`-+c.l #%d,sp NVH*| <`*mJUo.N~>NJf>NJL N^NuNVH*n,-  Jg.- g$. ?/N \>g >N8;| A +HB@`JL N^NuNVH *nJUl*(y JO0D@HN>Bm `JUf4&$>/<nN.XJLN^NuNV./<zN.X n l nm n>Nh`< n hg n hf.~N.` n>N>?. /<N.\N^NuNV0.n ghJy ^g n h g. n h g . ?. ?./<NbP`.,zU]„HB> Jng;|0`JL0N^NuNVH*n J Fg(y F# F`> N(@f'%$.N.> ?./<N.\N^NuNVH.N. n h>N n h > n h?(/<N.\JLN^NuNV0.@ @o.N >/<N.XN^NuNV nm2.N. n >Nh>/<N.X`jJy ^g4/-B` rg wg agB`~ wfBW/.NX>|` af|`BF -+f| Gf>/.NX> Gf. agB`BW/.NX> GfB`p8BBl&| <`&kJf'LH`*2t9| A )H`(Bl A)H`(& n h g n h f>/<N.X`..N. n >N>/<N.XN^NuNV.N. n >NhJng .`.?./<N.\N^NuNVJng n gJnf n gB@` n PfR n PMfF n h0. @ag @rg @wg` `JL8N^NuNVH >.*n G f2N @f(|"L>N8JUf 0`bJUf 0`NJUl"(y JR0D@H0`(Jm n .N~;|0"mRSm 0`JL0N^Nu >>BREAKNVH>.-|9     1/ +gR (0Hй ("Yl-y (0Hѹ (*n`B (e .`JL N^NuNVH *n(n ` g SS`JfHHA`JL0N^NuNVH*n(n &M`f `JL8N^NuNVH *n(n >.`"Jg gHHA`&RRQ97UVHFBFLNudD@EJf gB@H@HABAFo`fҁSFfrp`N`/C$& "NhLNuHJjJj@AfdDLNu/CLa&NuH"H@4HA6BCXY@gAg@A@i?prxz|JfJgh`N8N^NuNVH*n:8 BFHF҆/܇ۄ>/ ܇ۄHEЅ*HFBFBEHE҆хgG h`*ҁg0fg$фgG hjN`(rp`"Go_GHGBG|Q31(y`r %gH>N`Z -f=|R`Bn=|'A-HB@=@=@=@H`pRn`A-H`Jng.`0\./NX&@JnfXJngp`p<`RRF Fl 0g`Jng.`0\./NX&@`Jng;9PLNu /"/@Nu /"/aNuHNHv$Dv$R&W N0.SnJ@n`H>NJg0.SnJ@n nf` > N0.SnJ@nfJL8N^NuNVJyg.. H?NHT` y RN^NuNVH*n.. <r0HBF`=;$^_FGGi$CF^FHFBFLNuN`jN`75 f r`:pmn2pr`,t l 0BAHA`Ԃփd`efJojDDJojD#&NuJolDRIJolDSI2/0/ 4 B4/g0/gBH@B@Ј2 gDNu////NP Nu/"o2/ m|nA>;0f@:0`:p.Nu/CL?=rp`NVr`NVrC0n N`H@HH "$D&- GKI @@ @  @@$  ! $  @ " $ @@H @@ @@ @ $DBdm0Hd@0HHǏdHG0H @0H0H H@@0HB .`JL N^Nu???tzG{?@bM? 6C->h>>j򚼯J>5y0<>. &֖=|׽=yd=a-=,%hIv<+<V<Ҳ؉N>/</ NPJy"xf./</<"xNPJ f# `4.Q/<"n/9 /</<"NSQ@@@D@$@"$BD!D H$@""I @$UUU@UUU @ @@ @$ @@@@  @@ @$$@  H H@$[Y#" Jyg&| &| `0./ /</N .NXJf."xN y"o./< NX`J y"f>./< :NX./< DNX./< NX y"f>./< NX./<TR H ! @!HH$ @@@ H  @@ H$H ! HUUUUUUUUT@@!  @\Z :NX./< DNX./<"N/< /</< N . :/ / / / /<6/<,N . D/<"n yf /<"n`/ / / /<f/<TN  yf BWN yf .Q`. yf /<"n`/ yfUS "@@  @  !@ !!@ @@!B!@][ ?<#`Bg/ /</<N  yf BWN Jyf ."n`.Jy"g /<``/ y(AHnf /<T @@ ^\`/</NPJ,f |OB, ./ P/ ?</ P/<Nz J@g /< `/<$/< /< NNPXH N/NX KJf0Jy"g./<(/bNP.bN./<./bNP.^/bNW |C2`&& $ rdבTIQSfA(g@"<(R0<A:?a Program linked to run at addr: "|#, |,OepI:?ah r ep&IBn2E' ZeR' `"/</SnHW?## < | NqN,?.2N _]XJ@g.bN./ /<4/bN `&.Q/<"n/<H/bN ."x/b/9 0y""< 0/0/<l/< NNPXH N/N&yJy g.N`+Q#*"'| N*.N3"'yXV4.20/:2gHT 0g  Exit Status NVVH*|"&y+QH3"#*"34"+PH3" nnN .U n /(NX(@n> y(AHnf /<`/</QNP>/ /<"nNPB9"v ,OfJ, fB@``^"*09"H@QJy"g>"/<NVX.Z/<"xNX Zg>/<"xN &X>N Jy"g(.Q/<"n/ / /</<N JL8N^NuNVH*| @` .NJfBWN JL N^NuNVH *n(n * (fFBnR     a_*`, )fB=|` am znRJfJngR `JL0N^NuNVHBW/.N^X>|`.Y/< N?Nv\RFn mBF`V. N/<NXRF0 @o6BF.NNJ@l>NNp`..N.Y/< N?Nv\J@g>igR C : don't link -- leave in xxxxx:O Q : create 'SFU' link map Q(xyz) : create 'xyz' link map (options in parentheses) R : create ROMable object instead of SY file/%d%s:%.3s%s%s:ERR%s-%c%s CTEMP%db`NNJLN^NuNVH*y. /././././. /< NNJy f-Q. N/< NX."xN>/<"xN^X;@4>p@P-QAQ. NN3"|QB@;@4H@PJy"gd09"y"gT>N.]/ ?/<NVjh%s:ERRMA %s,#%s:MAP%s OSR1SRL%s:%s-DIEEE -f -f-DFFP -DM68881 -H -HC PreprocessorCPP %s%s %s:SRC ParserC068 %s:SR %s:O %s:L %s:SR1%sC Code GeneratorC168 %s:O %s:L %s:SR %s%sAssemblerMASM20 %s:SR,%c%s:O%sZE SE 0,0 GR 0ca =@.?9"Jng /.`/<N\Jng>NNJy"g8Jy fBW/<"xN &X>"/./<NVP`F n Cf:Jy f0./<"xNXJgBW/<"xN &X09"H@Q09"H@P;y"4JL N^NuNVH*y09ki,1 IG 2 %sIN CSTART:O DEFINE DOX881 $%lx DEFINE DOXGNP $%lx IN %s:O BITMAP BEGIN /%d%s %.8s:%.3s%s LIBINLI%s:SR%s:OMA R,%s:SR OU %s:O RELINK 2,Q$H0 BITMAP END OU #%s%s %sLI STDLIB:LIB LI XLIB:LIB IN CEND:O %s%sMA MUO,%s SY EN QU Qdb"H@QJm4g&0-4y"g=m2>4NN;n2;y"4+y"*09"H@P>NJL N^Nu,HRn(r$ZPPhPPPPPPljLINKQLINKQLINKROMLINKROMLINK %s:O,%s:SR,%s:ROM%s%s Hit any character to continue: %s %s error %dNVH *n (n`RJf`f .`JL0N^NuNVH*nBG`RGRJf0`JL N^NuNVH *n(n >.`"Jg gHHecPPPt\PLI FFP:LIB LI IEEE:LIB LI M68881:LIB 68K PDOS C Compiler R5.0 10/24/86 Eyring Copyright 1985-1986 Usage: CC ,, filename extension demkA`&RRQ GfB@`HHA`JL0N^NuNVH*n(n >.&M`SGmf`BSGl `JL8N^NuNVH*yBWNR-@AD-H."N=@Jnf-mmJ-m"-mB-mF-m&+n| J.PN+n"+|B+|4Ffdfaults to :C, but others may be specified. if extension is :O, only the link step is performed. filenames after the options are treated as libraries (extension= LIB) or as object files to be linked in with the first file options follow nl.//././.?<N.=@>NN=m2nJ+n+n"+nB+nF+n&0.`JL N^NuNV>/<"NXN^NuNV :>/<"NXN^NuNVH>.-|9gR0Hй"Yl-y0Hѹ*ngethe filename in any order with these definitions V : display each step as it executes D(abc) : define symbol 'abc' for preprocessor U(abc) : undefine symbol 'abc' for preprocessor F,E,H : floating point. F = Fast Fom`Be .`JL N^NuNV3### A ##(.NN^NuNV3### A##(. NN^NuNVBy###$A##(. N y#$B .`N^NuNV3### A ##(.N>N N^NuNVH*n(yhfloating Point (single precision) E = IEEE floating point H = 68881 floating point B : output error messages to 'xxxxx:ERR' S : don't assemble -- leave in xxxxx:Spn#(`r %gH>N$`Z -f=|R`Bn=|'A-HB@=@=@=@H`pRn`A-H`Jng.`0\./NX&@JnfXJngp`p<`RRF Fl 0g`Jng.`0\./NX&@`Jng.`     qo 0./NX&@`Jng.` 0./N`X&@`0H@B.G`&\`~eG`r=| 0m: 9n2BF H@FH @0m 9oS n0`GB.G``H |r W h(NBF`RFSn0HJ3gy |BLC2`&& $ rdבTIQSfA(g@"<(R0<A:?a Program linked to run at addr: BD"| |BL,OepI:?ah r ep&IBn2E' ZeR' `"/</SnHW?#Cr#Cn <B` |BT NqN,?.2N4rpJnonmJnf$`0.@>W N$0.SnJ@n`H>N$Jg0.SnJ@n nf` > N$0.SnJ@nfJL8N^NuNVJy#g.# . H?N(T` y#$ R#$N^NuNVH*n.. <r0HBF`?zx4.20/:2gHT 0g  Exit Status NVH*n -] nl../<N=/ N9X: Eg00Hsq r0HRF F mB `R 0g `JL N^Nu.0cdlosuxd NVH >.*n G f2N @f(|"L>N JUf 0`bJUf 0`NJUl"(y{yЌR292Hsz"A#@Ry20EB`092Hsz @BRy2RF`0y4wb Ry4RF` y6fSy6.NJg0y6 Ry6`0y6 "Ry6RF`NRyyXRyyZ`DRyy^`:.@/./<$N=rtrR0D@H0`(Jm n .N;|0"mRSm 0`JL0N^Nu >>BREAKNVH*n,-  Jg.- g$. ?/N\>g >N ;| A +HB@`JL N^Nu2/Bg:pNu/"o2/ m|nA>;0f@:0`:p.|zP`H |r W h,NJFf B@>fSno U -g no.v/./<ZN=rP./<N4?92NJTNusNu o,!HBNu0/fp oL.Nu"ofp o NurmdSAUA NuL"@jNuL"@hNu"of$o@4 `pNumdSAUA NupZep o Nu$ 2/L f L $&p&BNu0/:Nu"C /2/$o fp`$o$& Nu$2/$of}{JL8N^NuNVJyg >`BWN4N^NuNVH*nBEx 0fxR M xg XfxR`J<F0 @Am FFn >G` G0m G9n G0``DlGB@>f0`JL N^NuD\^`bdfnt~CDvtp`$o 4&Nu0/ Nu2/fpNu /2/$o fpNu"ofpNu|I @$ $ @$P$ B@A"@$IIDH I@ID @ A!$!@!$@ @DH@$$D $$@  ~|EIUcdeiuwbDbD@(#)main.c 3.8 4/23/86MC68000PDOSC68 compiler Version 5.0 %s (c)1986 Alcyon Corporation. 10/24/86usage: %s %s souwuA$HH@$ $B@@$A$@D@@" $H! D! (B }rce [dest] [-C] [-E] [-D] [-U] [-w]too many -I options.usage: %s %s source [dest] [-C] [-E] [-D] [-U] [-w]usage: %s %s source [dest] [-C] [-E] [-D] [-U] [-w]usage: %s %s source [dest] [-C] [-E] [-D] [-U] [-w]NVH#8##v  A@ ~8 yBP~`N0<0`ByJGg <6d. NNBGT y0`JGg|`JGf`JGg`JGfBG>N NJ@g`xJGfvBWN NJ@gh <fX<9> N0`fJGf< Fn4``H |      r W h(N~>N NJ@g`.N Ff > NB@`JLN^NuNVH`.N+>0`.N3p`ByKz`B@< F'g F\f~ 0e0 7b(BF`F@@F 0e 7c`HB@<0`&| `6| ./9B\N= XRyN^NuNV <b.NN0."yRN^NuNVH.NNbJL N^NuNVH <}dS y@``z <wy.fB@`.BTN4*y.Jy`0|`*<<`"| ``H | RrW hN09@F3SElZp`./N Gfl.N+> G gp`.N0*@.N+> Ggp` gp`B@3p``$ G g p`ny^f( yy. (&1*g.NSy yy.#BT>N0N0> yBTSh m yBT h@"yBTR`.BTN5>mL0`JLN^NuNVH BG.N> *@Cz` - 0g./ N~XJ@g ` f& - 0g -`.N0*@`.N0*@ g.N(`p `.`&0`$` @ g @!g @$g0``JL N^NuNVH0n :E?` y Pf" nfUUp`(` y> y0P (g<U y> y0 0gJf(M sze$0RGJ@g.NN*|Cz - 0fn g)|0 ` `JL0N^NuNVH.NR*@ - 0f+|0B` `JL N^NuNVH *nNZH@ @"<P0@<0`@>`hF`zF`tUU y PgB@`U yJPg0`0>`4B@`0G`&F` F`JGgJFfB@`p>`JGfJFfB@`p>`FgB@`p>`ҾFfB@`p>`FmB@`p>`FoB@`p>`FnB@`p?</.NX\J@g 0`` n p`n|```N``N`>`FlB@`p>`n0g`f0g`^0D@>`TJGgB@`p>`@0F@>`6`0HǏ`(HǏHG``S@ @b@0@ PN y0UU yPm <b.NNT y0T y0p`JLN^NuPP>|NJ@g||`|>&NJ@g|&`b>=NJ@g| =`H>>NJ@g |>`>=NJ@g|=`>=NJ@g|=`>=NJ@g =`|`>*NJ@gJyyXg>/N#>EEHJILLNNNNOORRRFG NZddndbfnrt   V V $ 2 8 * r *N#BD`  fFRDJyyXg$BWN#.y/<N/NJ@g(JyyXg>*N#>/N#`,`JyyXg@>N#NZHfRJf.N>N0.Np``j>/NJ@gZJy " ( 0  X >expression stack overflowexpression syntaxdefinedexpression operator stack overflowNVH*n|BG` @@SFJgJFn0HH@`JL N^NuNVH *n(n ~`SGgJfp`RRgB@`JL0N^NuNVyXg>/N#>/N#`JyyXg@>N#NZHg  f| n `FNZH`8@>/<NX``W@ @#b@0@ PNB0`JL0N^NuNVH*n>. UG`~JFg F f$B*n`@>N#JfB@`pSGH *n(n ~`Jg @`B@HQJL0N^NuNVJyy2g*>y4/<y6/<`/9B\N= `h <wy.f*>}/9y`/<p/9B\N= `0 yy.>/9y./</9B\N= >?.?.?.?.?. /./9B\N= o`JGf.*N F\f(NZ<SGo`JGf.:NNZ<.@@fpBp`JL N^NuNVHNZ>nfp`>NB@`JLN^Nu##% $&!!!!!!!!!!        "   FFFFFFhF4FFFFFFFFFFFFFFTF%s, # line %d: %s, # line %d: %s, # line %d: too many cN,<JFfSyyJyyfN0>`( FfRyyBWN,`.20NJyyfNJ@g>N,`BWN,Ryy` JyyfNJ@g>N,`BWN,Ryy`JyyfN$`Jyyf(.N+> G f.Nharacters pushed back(warning) unmatched conditional at end of include filesymbol table overflow%sno */ before EOFbad character 0x%xstring too longstring too longNVH#wy.3}.1/9y`N6X#BTf.y`/<1NX`$x`Jyyf>.N- <wy.f .`.y.N<0``XJyyfN..N``6Jyyf.2>N``S@ @ b@0@1. PNN#` GgJyyg N#``p G f$.N0*@ g.N(`6.JyyZf8.1/<ydN6X#BXf.yd/<1NX`.BX?< N8TT>/9y`NX(|Cz`)|0 sncBG> N9&@#Cj`> N9'@&kRG GmB>N;#y#y yf.1NN0<3y/N!XJ@fK`@>N#Jf.Np> GgJGfByBWN#p`JL N^NuNVH.2\/.N"N#*n `@>N#Jf>"N#`>.2d/.N"N#NB$*@`@>N#J3yByy#}#1*<@>/<1NX<@>/<1NX`20.H @"<sz.0.H @"<sz/0N&XSnl`0n "<wb.N$xSn l` <wy.f <}f Ry}` <wy.g yy.RhJyyff>"N#`.2l/.N"N#NB**@`@>N#Jf>"N#`.2t/.N/?.N9J\B.K`R  g`@>N#Jf`B@`XJyfH` y}B 9} ycS} y}  c.y/<1N <}fByJyy2gByy2>N0N0>.y`NJ@f <а1*g.1N09yyyo 3yyJL8N^NuNVHJyp`JL N^NuNVH`.Np> GgJGfJLN^NuNV <}}c0."y}R}`Jy}fRy}.2|NN^NuNV |y#}BBy}N^NuNVJyyf0>N; f.2NN3yRyySyy0."yyy\fFJyyVf N$BWN$JL N^NuNVH.NR*@./.NX+yy<@>N$J g(` n @>N$R n JRyN^NuNVH.NR*@B+|0JL N^NuNV(H.N+> G g./<2NX`.NR&@ + 0g"Jyy^f./<2NXSy./NX'yyBFK(.Np> Gfx`R F1N$BWN$JL N^NuNVH*|0` ./NJGfB@` Gf.N+> Gfp`.N`.N+ @ f$.N0Jg>N,`P0F!MI` c.2N`fRF.N+> Gf>N$` .N<@>N$.N+>` G g G$g G%f&.??/N&P`P`2 G"f* . f >N0> N$Ryy2``BWN,Ryy`.N+ @ f(.N0JgBWN,Ryy` >N,`@N,<JFfSyyJyyfN0>` Fg.2N`N,<JFf&SyyJyyfN0>>N,`( FfRyyBWN,`.2"N`I`@>N$Jf.Np> GgJGf^.NBWN$N0>Byy2JL8N^NuNVH*n n g@>N$`BG`$. n2H/0N(X<JFf RGnmؾnl">RWN$<@>N$`N`@>N$@     P @  g@P @ !g _g`& \f@>N$@>N$@P @  g*@P @ !g _gJfJfJL N^NuNVH *n(n .N<>.N0GP g0GPJg0GP #fB>/NX`< <wy.f>/9y`NX`>/9y.NX Gg*` NZ>0GP g0GPJfJL N^NuNVH>.HǏ HG0.H =@>W0NJnnJLN^00H4@P @ !g0G _fB@`&BG`gB@`RRRGJf0`JL0N^NuNV(HRy09 @do.2N`$ n&h./.NN#Jf`z f`.(N+ @g.(N`NuNV <wy.f>}/9y`NX` yy.>/9y.NXN^NuNV <wy.f0.y}`0."yy.iN^NuNV.Y/.NAX`N^Nu1V1X1`1h1n1t1|111 1 : NIBE`l E90`.(N4*>y0>N0.3N  gRySdJL8N^NuNVH.N+> Gg G f0`6 Gf.Nlid #elifinvalid preprocessor command__FILE__DATE__TIME__LINEline overflowdefine table overflowbad define name: %s(warning) %.8s redefinedtoo many argumentsargument buffer overflowdefine recursiontoo many argumentsargument buffe+> G g./<3bNX0`JLN^NuNVH`.Np> G#g0`JLN^NuNVH (nBBn=|` nf> N#>N0`*K`Snn.3rNB@`zRf nf Rn`. nf Sn`Jnf.3Nr overflow_Largument mismatch expanding "%s"bad argument:%smacro argument too longunexpected EOFcondition stack overflowbad include filebad include file nameincludes nested too deeplyrcan't open include file %sinvalid #line argsNVN.Np=@ @g nfVJnfN0.`JL0N^NuNV <㰹1*d.3NN0."y1*R1*N^NuNV <а1*ep`S1* y1*@`N^NuNVHK.N+> G$g G%f.I`ܼfBK`H*n`R  g  g  g| +g -f +fp`p<BG` H@GR 0m 9o0`JL N^NuNVH*|B``*mJUo.N5>NADJf>NJL N^NuNVH *n gJUfp`v c.N5>NADJ@g Gg.3N``d`I`Jf.Np> Gg GgJGf Gg .3N.N`BKN# <y.y.b.3N`-yBT.3/ N6X#BTf(#BT./<3NX`J`F yy. yy.p`TBU(|B``(lf)mBJCjf #Cj`(yCj`(lJf)Mp`JL0N^NuNVH*n,-  Jg.- g$. ?/NB0\>g >N4;| A +HB@`JL N^NuNVH *nJUl*(yCnO0D@HNA>1|$>/ NX.N. yy.!y1*&*y.JL8N^NuNVH*yy.X` nR nJfBJL N^NuNVH`.Np: E#g E!g.4N` .N4*<3y2NZ>0GP #g0GP gb0GPJgTKBm `JUf4zU]„HB>B`f G f`0Bm `~- g Bm ~`j.YA +H /?/<NB =@g .S` <;@ m m@R`p>Jng;|0`JL0N^NuNVH*n JCjg(yCj#Cj`> N     ;(@fB` rg wg agB`~ wfBW/.NATX>|` af|`BF -+f| Gf>/.NAX> Gf. agB`BW/.NATX> GfB`p8BBl&|B``&kJf'LH`*2t9| A )H``0H@B.G`&\`~eG`r=| 0m: 9n2BF H@FH @0m 9oS n0`GB.G``H |@r W h(NBF`RFSn0HJ3gJnonmJnf$`0.@>W N@@0.SnJ@n`H>N@@J(Bl A)H` @ag @rg @wg` `JL8N^NuNVH >.*n G f2NA @f(|9"L>N4JUf 0`bJUf 0`NJUl"(yCnR0D@H0`(Jm n .N5;|0"mRSm 0`JL0N^Nu >>BREAKNVHg0.SnJ@n nf` > N@@0.SnJ@nfJL8N^NuNVJyg.. H?N8TT` y RN^NuNVH*n.. <r0HBF`? r0HRF F mB `R 0g `JL N^Nu.0*n. BF`f0`RFRJfp`JL N^NuNVH>.*n <.:l0D@>BD0H H@@02D@RDHǏ nJEl0D|-RD` SF0@o` 0DSDlBJL N^NuNV>N9`N^NuNVH >.ZG0>RG GfB`(yCv cdlosux>>?*?>>>?>>&?02/Bg:pNu"og pg:r`g$Opffff0Nu/"o2/ m|nA>;0f@:0`:p.Nu"ofp o NurmdSAUA NuL"@jNuL"@hNuf(| #Cv#By*Tmb8mf(`m0-;G#Cv < \`(Cvf>N:*@ fB`(M*U`JL0N^NuNVH>.9BOgRBL0йBL"Yd*yBL0ѹBL`B`" <;GmdSAUA Nu"C /2/$o fp`$o$& Nu\ Nu^ Nu /2/$o fpNu I "!B  !D!$ H!"BI" UR*)DA! $A@.\N;. 9Cv`JL N^NuNVH *n fB`]JmB` <(yCv`ebe (Tcd0-Ѝf T0(m T*`*0,Ќf0-l(`(#Cv `JL0N^NuNVH>.-|9BOgRBL0HйBL!@ $UUUUUUUUU@@HI$ $D !$$ $$! $ H  $  @@ I"B  H@  $ (D$D"Yl-yBL0HѹBL*n`BBLe .`JL N^NuNVH *n(n ` g SS`JfHHA`JL0N^NuNVH*n(n &M`f `JL8N^NuNVH*nBG`RGRJf0`JL N^NuNV3#BXA #.N=$HR @ DH$$$HI!@!B D" @  $ $!H@D$B@ I@  @ @$H!$@$I@  "@ $  B@ @N^NuNV3#A#. N=N^NuNVBy#A#. N= yB .`N^NuNV3#B\A #.N=>N4N^NuNVH*n(y`r %gH>N@@`Z -f=|R`Bn=|'A-HB@=@H "$   $@  IB H H$ !!@BH H@BA !$$@H  $IUU@@@ @@ @@=@=@H`pRn`A-H`Jng.`0\./NAX&@JnfXJngp`p<`RRF Fl 0g`Jng.`0\./NAX&@`Jng.` 0./NAX&@`Jng.` 0./N@|X&@ I B !  "@@      (N,JAORH CBe-II-LaPǠ`bZbg@Bfa`蠊p1Eg /f Qg" .g Ad S@nB`B"a,gaa1B"a5gl ENDQgda g제ap:`Bg(IJgL =fB)Vm>$6<$I"LVf :f* b$R(Iaxfa^"3"J "/g  bXWNwa,a XLer`FR"KanC Qg6 QgJpAY  eg RH`S@n S@j"a$BNuI "ia `AYnfSJNuH oC  gRI  fp(F$.f,$BCSNJq kP Rn@,:`RnJC LTNuB.` |`P_`a$_`a_`a_`Ca\f^` _&NBS"HؠJgZc6` CԠ|mXg($I #fpRJJg ,fB)V0"JԠf6Na UHJg` Hz:r2T`NurdXOp:`a  "$C&0<BYS@nRnB.:-|=|8|@=|BgH4xz~EGzB.B.ea"`Xaf6><"L (f*H @PCfP<*<-`><0.".aBJg|kxC\Rg Jfa`~CZef f` SLSITIJf egJGk( g  gn  f~`V  ga- `Gb8SDk6 Jpa$H@vgE{Ap S@n\RIa^RIBNuabfde\B.ajfTB&a8f8Jnf2a f(a\a-I&e".JgaM`a'af apfa>"a` @8f제_`BBg ?fJ.j` |f.gJg |fRMXWNw MJg  c |fNwBnaaV  g gSDkaJgJj$H4`HHzafU NuCC0NJg$Jk J@g H@J@f ` A4$$%A`4$BZRD ebd f RK (fB`^ .f ,Wf` ,LfPTL`JDflBPXo g"Ro J.g(RnTo zrJ.jJ.f@E-AL,4NwaA"$. g*GU(KaFA~a(fa$3|BY2PKJfCaFfHIAzJgfSLB@E"g&EARRfSLHnιeaR@ @e-L. fJngA ."@ BS@n-I .g&Ad g (k( eaR.af`aWz"aFf4aa$-I& g&da>Mff.!g a$`a&afafal! ,fa xaaB.a `p @8f]Ba,J.f p"NJg a` .~g J.fRnNur.RT\&$NBJnfaTf2a@\!2.ga2\'a$a@a`4QI$$$z4)fPRDXWNw 'fSHftJgaVnfa%`^ LrvCgSHJgftg8 .gFC1 e(f H@H@J@ganB@Ҁ҂`RBfJjSH(H4$BZ`n Wf` LfPTH`()=<<>><\+-*/&!<>-~<=<><<>=>>f, a4fa\a]BCNuSAgSNuPa _"H/fSJNuBg. f2.gXWNw _0g4426gBvJBgJ.gE\caΠf`ؠgr2T\Ǡ`NBgAtSBkHJXffB=A1WBf20Hr$Nf,Gbf|,"NpgRKS@n  BXWNwpEAV"NfSIr2j@,'%$ """"""<djpYCtJnfZZrBgrNu,jDJgjDa"`:a>aNua6zNu҂iNuiNu,jDJjDHaH$L9JfJjDiNu,jDJgjDaH`vFNuv"DiNu‚NuNuNuNu& H@HC:xa*HCHEHE8BE҅фNu/Š:"NnNw?<Jng(BWa&>pC0"f J,fSnNw"gS@nNwJgJ,fRnNwENDCIFCIFEQIFNEIFLTIFLEIFGTIFGEIFNCB. f4CZ8RLa f~ag<+\\f.JCfJfa$N4 ` aRC CmaBCan eJCgaJfCZNaNuCZ*aalzG(nd gx$N4 +\\fdax*LBCJgV*U r2-jDA*IPf|/2-jDAA?PfSJRC CeaNJg$N4  `a6vz<gTTJgHzaSNu L0<0XfaJgZ )f8vz:~a0Hg`8. gJ.fJfak@0HT"W21 jDAJ&ga8laNp`pBgH88A~ag~C($n d -J . g:$@d -J Hn &n`4aji^keHC6<;HCa\ )gaPiDgB`JK[Jjpf*[RKBCHCzK )fJgJ``jJpH@NuRL&<0akge&za ]fJ`J``aiPkeHC6<;HCa ]f@RL )ghag,h`K[Jj )gaxha4Hs%bbXOB %b e&b &"2BYBp` ")jJDfa Yf Q`bXoJ g@E$ Q &nG(Jg&S`$n]J-J&B4.JnJDgDB4L NwBgE&.tg2"҃ be 0(rgb&` $fNwCXWNwBga$M2.@fN`:`fajigJjK[ ]f )gaJkca` RCz~fJg,~TJ.knJ.knJ@f0Hg~TaNu ,g XO`Bg Lz ZfzM EPCf:<XWNw ESPf:GB~C .g Ae ZbOA0CR|<k~~CjBD!  bD$LCBG eXbNRng8pJg .gR`D f.g"HC>=Y>kfJg .gFf"LA Jg .fBNup S@nRMB.g.9KNuJAgpHAG>2tvpgJE>8j. f:DDE>~aF$Ka@r2.gTCa02.TCa&ECa"RC=n=nTKS@jRHSBnLNu$ICg nD) `2/ E`J.gJ. gJ. g*G".*gAJSAg R+SAnB.pWBafrafl ifdB. RA!m2.@fE*f Ama`>Rn@I"Q AB!! -Ia:fJfSMt a tfSIBSBnNuaXNu n6-H:~I2204`ANubBwWlLsSdDxXpP00aR2gYgJf` JjJ*gDa!0~TG`:aRGHe THJf><`&2< H BEG(nKB@g2AgF@0;Rj D@HN@Hnιea6`Jn g(nE-LBL7GNuHzCKaJfNu4T|$ |$Jg K/K`H +f R$\`ChC`8 +gIChC`R$\k     pS@nCha JfNuHn!eJg/ Baa"_EKNuXONuC` Cy`CoaJfNupS@n"LhPLfSJNu L:/ "K$Lad&IS(J " g$_رeNuB@Nua`R 0123456789ABCDEF********J.gP G&NuE JCAkaTC:aNp+f(azf$"JG pS@nTIa `aal2.g C0$Na"HX6La^a $NatXO` fSJNu:MASM20 R3.2aBgH"J$KaC$Krfp @g *f  e`f RJSAjXoLNwpJngSnNupa0CNu<".&g A aa$LaJaRCA_aDa< JCAra8r2.Pa.pa2^B)a" X6ap*aCAQaCbaa`fSHNu HreNuJ.gNHa e>Jf`SnYYg RgaTn`~Sn`\LNu .gofp. ghJ.gkZPAC! mf )-g@f:g(fPJfLa0!jX n&.gL f adSH0 `< `g6fN$n]Jc-J0 $4`a f n&.ga `r n&.gJ.gaߐuNuJ.gJ(j(f f NuSHfga\pNu.gRa,NupC:8ja$f"LNu,< ~afa߂gBASGn-F`2 ae f& -g gE*gBfgnJnghSnNuB. NC$I2r2.JnfRAjJfp/  fRH@p g  gHn8eB2.f"J`a*a`$NfJ.g`JnkdfRnJ.fa:Rn0.nnBf0$NJnga`.gaB.a\Jg 2.a"`SGn`Ez0RJ".&g "AQIa`p CgRJS@n S@naJg*AHz"LV(Im T8#JfYI`aC8Nuaa< fJfJga\f FJf`a`af agRnNuRnNuBgpJgkpJjJgXWNwgNwA`Aپaaf afSMJg6nBBnNu.Fg"B.S..0.no aSj`B` .*"gLHJfC"Hn"b .Ba,JgBa8gf`RIa,g ;f.a fLNuHA"JAg eNu 'fFJf  g  NuJfC"bTJpCS@fSJ S@j$NNu/2< Hg2"LkgJjJfa`&Df =g*J!f".kS`F-A ,gSM".` g| gjVo  f `6B\:F r v   `^ n  h Dh 26JD|@&| .`xtZ2z.:n-AAa ` f=A` f*p  gp  g p  f ".` f YA=A``P(Iaf`lp EgS@nBR`FEMS NLCIOPM6800M6801M6802M6888NOOLOLLNOLXRE?O?OF||NOALALPDO NOSS NOCRCR WARN| H|  D J  | V~ RXjn |Nx ^82$T 28XfahxNuTNua\XO`aRa>fafjB. Ga$a a.gNEdD g4*j.~OWAR NOBUBU ARARCENOCECNOCFRFRMNOMMENOMENOMNOMPNuaf"L 'f IJfB(`| $fRLPaa JfP`Ra`BF`<".&g A(aHa^afB@J&g n& `aRLNu<.a.aFa4fa٤fJgnf-AF     a&`aXNuB. JkWfNu0.HA".!NuaaaaBf AbRA=AIA-p`aafFANuafPC:r'p gc@SAnBNu|`|aTajadf:aJf:UIgadmf. _IpS@nTI`a4`JfaJj|JFga FgnXANuN```a`ZYYݮNuJ.gHzarNuf"n.<TIeSK \`gJjJj| Ff.fa|pS@n`J.g gaДwNu<^Raa?a80W_8fHgF]DE`za<^Raax`P!`aOxa"LVo( AbJRDafBaf6a0!fp g fJ.fJg aM`a`a`a` ,gSMXONuB <$%'gfPNuP`B..gT. n^a`Jf 'gv $gBaaa fp0 lpJfHHgap]Ea``a<a0@Hf]M` EcE]F@R`4<^R Ma #fJ.g$*Haf@`*Hat0@8f]Eaf`SGf0@FX@F`a϶eNu/ a*_ #f/BG(<@a2.p (<Ȫ `(<a]Ep(* aa bUGg Jj n2lJgѮap`AaDATEfX6` aTIMEf^(IJfB<'` ( * ,.RLHneat`gP 'ff4RLJ.g fp  fRLDk dR`ULR`Jgl&D(E-F`$aր'Nu"WX/pfS@fJ _NuaPafLa,HkNfHa4J.g a֞f& `nJGg`. g( a&f "L #fVoS b p8a`aԈa*DHJfB @SPg @A0e6 @A7b0 *>f|acJj ~ n2l<^R`ra0X@a:a$(< g" bH?a*0 b@`xx`AHp nmpH`p al` XO`at<<NuUK MOVCUNEOORMARESTORSAVCALGLDIMUICOQRUTAENTORAPSWOTO$GEDNFDEEGLNUDLLEGANCLUDMSEINSLESACREXIGOTIENOVPOUSULBCEOFORMAp fp|NaH LJf|-*BaǴa߶ݮNuaLHF<.FHa̴HFa& ,f̜`a(HF<.F@a̐HF`aHF<.F|JkWFanHF`anHF`a<.HF<<\a٪ #faa8^^`na "n.^^Nua,<n  ISOBAGBFFSEPACGERINESEOXTBCECTIOPTOUWAARAPSTNLPDERE<@F `>@@2@P@8@ @<@GpAt0p܀aR ,f #f maXa2`&abg*(*a gBaaHg" xaa `a(* aˮUfBHF`HE܅Nu aa LJg {f"HB)Jg$ }fB!$(<a` gR(BJg]f #g, ,Dfp0m nH  @2@@@@@`;@A@A@KKLLLMKKHHE@`;A@a;H@܀`vaHA܁`d[fHFNFHFrI`BgH0ra:t&0 * -fRLa CgR 7o<0Cf /g`j _pH @FPfb 0mX 7nRNBgH0rpH @FPf:t @CRgt @SRgt @IAf Rf /g܁J$fXoL Nwaan   A@N@'@O?@PA@`V@Q 'B@3@F@Q' `>@ @2@@<P`:Q`:@(@)+,,f gB,<nag(<aaBatf`a0(<aHF`6,<naf8HA܁a(NuBa(SLaf +g -fPa(INuNu"L .fRL?<pg g 0e 9b0BWNw D ex L ;@LNu d'B@ Y Y Y! Y a_@$b# Y Y ^% Y@`7\`/& Y$ Y' Y      Yc Y Y( Y Y Y Y`]@: Y Y@ PSPRBFRCNRCPRDE*RDMRDN\RDTRFARFPRLFRNFROOROPRPSRSEBRSRRSTRSZDRTE^RTM4RTPRTSRWFSEFFSEVSMPSOPSPFSPT SSP STM<STPSUI,SUPSWPSYSSZFTABTEF6UAD`UDTJ1N4'N4'A 7'@NP@`C@@@@@@ULFULTUSPbUTMWBFdWDTWFAWFPWLFWSEfWTMZFLEQNEGTNGTGENGELTNLTLENLEGLNGLGLENGLEOGT ULEOGE ULTOLT UGEOLE UGTOGL UEQORUNFTSF@-< `-@Nz HH `/7/@`0p .@@I@`R @`R H4D@3@@3STSEQSNEACI$.BCLK.BFLG.BIOS.BRKF.8BUM$B_SIDB_TPSB_CLKB_TEV CCNT.CHK$CHIN.CHOT.CLB$CLP$CMD$JCNT$MCSC$:DFLG.E122.E123.E124.E125.EAD$&ECF$LERR$FEUM$"EVTB.xEVTINq@1F@3@G0@2@@SH@ 4'Np1.EVTM.EVTO.EVTS.EXT$BF8BT.HFCNT.FEC$8FLG$6FPA$FPE$IMP$*IORD.KIL$LEN$2MAIL.MAPS.MMF$NMPB$pMWB$POPIP.PATB.(PNOD.PRT$OPSC$@SDAY.!SDK$ASDS$>SFI$4SLV$7SHRS.$SMIN.%SMON. SPTN.SPU$PSSEC.&SUIM.SVF$SYRS."TBE$TICS.TID$KTL0$`TLCK.TLTP.TPRY.TRC$ TRP$TRV$TSKN.TSP$TW0$XTW1$ZTW2$\U1P$RU2P$SU4P$@2@Q@8@ @<H@@4J4P`U@N@6@Nv1J@WNX4@SD 0tjTFHILSCCCSTU8P$UUART.XUNT$QURAT.hUSIM.UTCB.UTIM.UTYP.XWIND.WADR.ZDV$s;:I\o~4!.VjgI, ***ERRO ***WARNIN ***INCLUDERRO0ModifieinstrucNEEQVC VS PL MI GE LTGTLEHSLO881lAIMAPFpBCPBFL8BUGrCBCPCBDRCBHTCBMtCBPjCBXVCDBCFACHFhCHXCLFvCLSCPY&CTB2DEVDFLDLFJDMP$DTV ERR0EXCEXTLEXZFACtion0Illegasymbol0Multipldefinesymbol0Multipldefinesymboreferenced0Undefinesymbol0Phaserror0Illegaopcode0Illegaopcodextension0Waoodbytboundary0Missinoperand1Illegaoperanmode1Unaroperatoerror1Stacunderflow1FBFFFNXFTD@FUMHGCBxGCCGCPzGCR|GLB~GLMGLUGLXGMLGMPZGNPGTM"GTP>GUMISEKTB(KTMLDF:LERLFNLKFLKT.LSRLSTNOP PADPBCNPCBPCCPCLPCRPDCnPELPEMPLCPMCPSCPSF Stacoverflow1Syntaerror1Absolutexpressiorequired1Illegacompleexpression1Arithmetioverflow1Fieloverflow1Displacemenfieloverflow2Divisiobzero2Unmatchequoteoparens2Branctodaddress2Branccoulbshorter2Parameteouo     !range2Illegaregistelist2Strintruncated2Illegasectiospecification2IllegaOPTION2Labenoallowed3IFxoMACRerror3Floatinpoinerror3ENDw/oumatchinIFxx3ENDw/ouMACRheader3LegaonlibodoMACRO3MACRlabenofound3Musbs)'m(g&f,=AFaFa0APCfaNu]NuNuCPJf |m>gHGCJf |mgf>=AFa2a~F NuuNuNuapPWNu0.XgCPJfCP|mgƠf=AH0.X2!RAIЁ,$n`(JGdJgr$NG" ymbol3Laberequired3MACRdefinitioncannobnested3Infinitparametesubstitution46802instructiooaddresmode4IllegaIS/memorindirection4Expectinclosinparentheses4Expectincomma4Illegascalfactor4Illega{offset:widthformat4Il*(pQ"҆PKRfSJJSgGpQ"҆PKRfSJFBB"NJfDR\I  B$N2.HgB2T*.\>.J2HG>.Ha4aH B.WNuNuNuBnXBnZB\BZ$IAPfxdf jd0*ZcVm(C qp,"P C [g @3g#!legaregistespecification6802PDOAssembleR3.2a09-Jan-87ERIICopyrigh1983-86SRC= OBJ= LST= ERR= XRF= END OF PASS END MASM [/] ERROR WARNING DEFINED SYMBOLS: EXTERNAL DEFINITIONS: EXTERNAL REFERENCES: UNDEFINED SYMBOLS:+) =AJaB.WNuCPJf.CP|mgg B2T*`ޠi=AFAJfpWBz(n`2.FE"Jg Jg Fg GfR n`pRnXQEB<$VnJf.g*RnZҮ\ p Q"J-H`B`$.\2.J$n`XJ2.F <f 2.$" SYMBOL CROSS REFERENCE: NONE*FAI UNREFERENCED SYMBOLS:*QUERY*: UMESXDLRMACRO 68020 PDOS Assembler 09-Jan-87 PAGE: FILE: PDOS ERR INVALISOURCPARAMETER>>BREAK PDOS CLOSE ERR ENSTATEMENMISSING PDOS WRITE E,*JѮ\g @8g 2.JѮ\aFNu~mf`BPB$IZeZcAPfZcAf"JNuBnFCPJgf=AF=nPL=|P=n4N=A4^B)r\r2.ZT2.XT#".\RNuJnFg=nLP=nN4a0FNu C* B* _ #RR SYMBOL TABLE OVERFLOW**ILLEGASYMBOL-+p*C *B*  gSI_p.C*B*  gSI_ApCk`Nu: //ID JTgarSnAPC g ;g /fSI 'F B-K`RnXtNua6 fpNu0k mg_ m nHNum.E`2Hzp2.FEVf eNu.E @'%g<.+C" ""BCҠ$2.JfEҠ 0fa` p .FMeJnFftm,0< C/ p   WB!&_CҠ `za2NuJ.Wgm eg Ng aXJNuCPJf Ѡ|mtgrfv=AF>.X,.\anXgZ$.\2.J2.F$n`XJ2.F <f /-8gB2TaFNu _0g$426gBvJBgf`g2T`N 68K LIBRARY GENERATOR, Rev 3.01 09-Jan-87 ** Illegal Command ** Modules in Library 68K Library Generator 3.01 # of Modules= # of Labels= Workfile size =(&2.JѮ\g @8g 2.JѮ\RnZPWaF Nue`NuCPJf |mrgpafrJgnSnZ  nXJPgpQ`BT-L`C f8>=AFHG$ԅ2.J>$ .\\*aaBFPWNu>NucNuCPJf }|m@g>avf:CJf y|0.$ Ident= Typ= Rev= Created= XDEF Labels in Library Filename XDEF'd labels ** WARNING ** Library is altered, but not written. Quit anyway (Y/N)? ADD Filename= ADD file had no XDEF entries. File not ADDed. ADD erro     1/r. Could not OPEN file DELETE Module= DELETE error. Workfile reopen failed. DELETE error. Could not find module REPLACE Module= REPLACE Filename= REPLACE error. Could not find module REPLACE error. Could not OPEN fil97:RNuCa A0JPf 1`0 Nu/0<:NuCaf*) B) B@) HA"- #AҰ#AaNuG - @bJ3f f*e$ea `8 Cg(ù"c+L"`דSBnNuC4g  @bR@"->+A>SBnNu&m(mJmg&mJm g(m `">.<P`GJ[g2.<6Qk ALLg$~gAk b`` ɮfC aBmBmHzX W0k 31rkfile Got error defining TMP file. MLIB aborted. MLIB:TMP already defined. May not be large enough. LIBRARY Filename= MERGE error. Open file Err MERGE error. Convert offset bad. Processing Library file ...... Lib> C;9gN`XOaXNuF HLP(0$NC%na"-:a`$IC&azJg(TJfC&aR"N" "a$I HneCpgS@nRJSJ S@jBp$C  g, pS@n  <: //JfSJpAJfa42alling sequence: MLIB {file}{,#sect} where filename is existing library Commands: L,LIST {outfile} Short list of files in library {to file} X,XDEF {outfile} List of all XDEF labels in library {to file} A,ADD {file} Add file to library at end <:`0Jg,$N4 p; S@n PCa "SaaT`a`6C&WagjrRdJf"N2 RABJkSIarJg , `53D,DELETE {file} Delete file from library R,REPLACE {file1,file2} Replace file1 with disk file2 C,COPY {file1,file2} Write object from file1 to disk file2 M,MERGE {library} Add modules and labels from library O,OUT {outfile} Build and write out a=;B`GvC$9an +DRg>$N4 < ABSJCgC < 10$$ "a "+Dғa"+ғaa.XKRC CmNuC+[aRfSJNu+0<:NuC af,>HG>C&$IJg*"Re"bieb) ebࠜ,0< :Nu`.&JCafC&$IJg"R eb0,ieb) e4ltered library {outfile} Q,QUIT Exit without writing PDOS READ ERR PDOS CLOSE ERR ILLEGAL HEX CHARACTERMLIB:TMP;199>0< :`)a*aXO`C4fPNu  @bHE - "ҀF€$Ҫx*RNuPrCJYga(f+ABC JYg XDEFfT-Nu*0<:NuBgH0ra4t᪂ -fRIa"R7)ka&CBZe+I"# pDCPS@nC.+I*`&/ K3+_E$NuHz+Ġm.Nu)Lmeg *gE&G&XK Ig$jDgJ"jSH`JfJfࠜ1!0<:`gaf(KE%BB B*BJgjDagSH`TJJf`Sf*"M2/ Jf"K"_|m\`"_?=㚂f /gJ!fXoL Nw _p Ag.)0m n f 0m 5n 0R@NB-`E"- AbI - %Bp%@DBNu)d0<:Nu - @bHE"- $Ҫx) RNu|"-:CJYg"+A"-"ҭ:C JYg"+A"-C*JYg"86Bag`"M/ / Sn>Jf "K"_|m*` "_Bapg`"Wa!f "_2"`0}0<:XO`Jf"KCʠ|mgp ICa,g`BCʠVo"WRQ0H#JfXO`BN`?<g  g ,gBWNw  fB NwC af&Caf) B) $IC av%IadNu"-:'+m@>+A`0P"-:CJYg"+A"-"ҭ:C JYg"+A(m"-R(q"-RNuC a`BmBm(<C"ua PC!a a Nu"m6e Yf, -"- $m,&-L:fRnNur"T)0n0<:NuE~"JJYgaf P SG     A?nNu)A0<:NuaBBeXO`CE,fC,f0;AB2-f af  e Gg4 Ffpag @8ga a Nur2T(7n0<:Nup af"JafeC Ap   gS@nB AC $pS@nB V$2-Bf!JC젊BaNrdF`vCIGA!rf ##DDX ADe`HGpkHmeLNuEDrAXCH$0DBDfձ!!԰DBDX ADe`J2f m+H2+H6Nu(`ֹ"c+L"`RLR`C'naG~af-Af:e4ea`(eJkAB!>-HgR"$a `"dH\L) gRa XIa : * fSJ`BJjSkf|R`|Ca Xa`JEfC` @NuJmg rd`tmNu~XONuG.Jg&S g(k0$Yg6jDRfxHH$ g"C`Ni/`/Ca 0<:`"$HECSCnNuaa"RgڠR.D`Baa(GH瀀<NAH`Aй`d!`A`:HF ->LfbBNuaHG/HGva .SGfNuv`v`vajJjta$HBJ<$-> f0e*ea` CmnHGUCn"c+L"NuKNu6<~"m2"eX+IMKHCұ`"dH\L")) j d "ASBna B@) HAҰ`J `B@+ k&"->ffHC:eNd+ k@gSg `202`HHg0<:p+ "+$Na v`zC)`zC,aBEG. FBJf ca`JfCaFD m* +I*B"6B2$-씭:"$HBBjtaJAJ$0 K`N6<`6<`aa"m2]I"e+I+I2JAHް "JNua4a~Cr2k a :CaSnBatCaht* m2 "ev+@2JZ1! ACJg"Q`"NL&S (k0$Yg6jDRfxHH$ g"CNi/`/Ca0<:`"$HHCұ`"dH\L")) j d "ASBnaB@) HAҰ`J `"Fb2 `2 p+ "+HAҰhPI.rB+ grWgrL" := "+ kDhPI2 gSf<0$6GEB$HBBjtaJ& 얭:C CH NuaJ2"m2UI"e +I+I2NuJ2Ca4RBg r2a :a6aSnBapCa f) #GJAHް #GNuaa.DNu!0<:t-/p SBkaf`p'`aJC# a&NuaOM` H$HHög3|**`Hg3|* `AKfSIJk, BREHnHea,aD`$N0A\fC_E a,CWEa"\RIa ^a"J`RIBNuVm TJfYI`C Nu QPARTIAL 31uaaJ-nbJ-gp&-"&m얋Ra`>*-B,->HF4RBv~?a SWnTONua0  f<[YYfR~ `P  bc<""$vg,  lc(""CA@0Ni$ f fRK`zgz)L}NuBg -gh !Qfj )$fbTI$< Q$x)$VmD Ab>IAZ Lf"(D` Hf""(ҐZ,-|=$/ R"_XWNw\O`|H(hBD(IVn`m :fX Ab`RA8(ITR0kfrXSf TKRAeUCnDHA2`5"hPIHnFea8JnNuXg$I Cm 4aaUg 3aSn"J`R\INuFB$NrJfDa  Ba"NNu2-g$Nf rd`ala Nuh`jJfSINu$Na\a^a` fSJNuBgH`BD(IVf :fX AbL\Z4< LCBafBBAa^fRH(@Je2JBf$HaDg,Jmg&Iad"")"J/IXoLNwa`a` q0< :L`d$(<h,048v"FNuv"DNu҂NuNu‚NuNuNuNuH,jDJjDaJ$LxJg<NuJjDNuH,jDJgjDaB$LHUSRA8(I4< LCBajffRH(@Je2JBf  gJfJmgIXoLNwa`a`Bgp $gHp' _g@ 0e 9b -`,Bgp .g" zb ae Ae Zb4XWNwpNwBgH8v`$BgH8v`BgH8v`BgH8va fzC&$IJg"R eb][`LHC Sa0<:Nu& H@HC*xa*HCHEHE8BE҅фNupv 㐰eRSCfNu())+-*/&!<>-~" ҭ:R0< :z2RXISnzp dp. dSntmeNup$N?<H0&J$2-$m0-f(0-g S@Sg$J@np~Eg @8f;CfBo.;@VT0,ie|bJf6J) kJ) fD ) e`bJ m `H) eLba| `2J) j0Jg() e0b) g"iSEnHz0<:NuRo$Xo$L?NwJk"m"+I"$$IXJ$4BZBBBTo$`H$NAfSJaXIa'BLNu$NfJmf>Jmg8Rmr^\;@+JL Nw *JADDWADD.LAASBEBIAPCANDDNEDIKDUPEEVGUPHPIGOREIUTLARYMOBCTOFETOUTPIALQTRELNKRENMERSARTSIONSRCRDSYLEUFINEDWTEXFZOtthvږWU2-PEBJfEB^pS@nE;\pS@nEaRm m8mBm$N2-gNu"JNu"a / "JhPJ"_Nu@g /Nu Nu $.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_aHzHr2@HAH(HANu _B0g4425gBuJBgkEsf f`_]ڢnLpp/߆ 0ߎ*p1j  Alias symbol= Equate symbol= Base address= Command file= {Section:}symbol= Value= Disk #= Sectors= XVg2Tn0<:`N _0$MBRJYg J@gf4NРgr2Tin0<:NE"- AbI - $G.Jg&SJ `a`NuA"JàT f`DISK #nC Eg,A&fA.+H`RpS@nNu0<:NuACfAC +If"-RA+A(A`^ Base section= Group sections= Ignore sections= File= Library file= Section= Address= Output file= Rename symbol  to  Disk= Sector= Start addr= End addr= Symbol= B)egin, E)nd= S     a_ection,Data=PDO68QuicLinke09-Jan-87ERIICopyrigh1983-86*Wa MEMORY BUFFER BASE ADDRESS=$ EXTERNALLY DEFINED SYMBOLS: NAME MODULE VALUE S/DISPL REFERENCES NONE # SECTION BASE LOWESTigBOL 'SFILEBASE=$LENGTH= MULTIPLY DEFINED EXTERNAL DEFINITIONS:Staraddress=$Enaddress=$Address=$ ILLEGACOMMANDILLEGANUMBERILLEGASECTIOSPECIFICATIONILLEGASYMBOLTOMANCOMMANFILESPDOCLOSERPDOOPEERPDOLOAb` HIGHEST RESOLVED REFERENCE VALUES: ADDRESS VALUE OVERFLOW REFERENCE VALUES:ENTRADDRESS= XREF OPERATION LIST: ADDRESS VALUE UNRESOLVED EXTERNAL REFERENCES: INPUT FILE MAP: INDEX FILE NAME TYP IDNT jhER'OBo'SYFILREQUIREDMEMORSIZEXCEEDEDILLEGAOBJECTA'INVALIADDRESRANGEPDOREAERILLEGAOPTION ARITHMETIC OVERFLOW AT DIVISION BY ZERO AT PDOWRITERILLEGASECTIOGROUPINGNESTINERRORFIELOVERFLOASYMBONOFOUNDca R V DATE TIME SECTION ADDRESSES SECTION GROUPS: BASE SECTIONS IGNORED SECTIONS: UNRESOLVED EXTERNAL DEFINITIONS: USER ALIASES:VERIF(Y/N)?INPUADD{.oL[sec]{..,[value]}AdtsectionALIA,iSYMBOALREADDEFINEDUNDEFINESYMBOL**MEMOROVERFLOW:LINK:PLINKSSY$FILE 0 0BBX$FILE 0 0REPROM DISK 0 0 68K PDOS Linker 09-Jan-87 PAGE: 0 XX:XX XX/XX/XX dbEquatsymbolsBAS[addr]SememorbuffebaseBITMACreatrelocatiobitmapCOMMANCommanfileDEFIN,[value]DefinsymbolDIS[disnumber],[size]LindisimageDUM{[adr1],[adr2]}DumbuffememoryEN{[addressol |C2`&& $ rdבTIQSfA(g@"<(R0<A:?a Program linked to run at addr: "|| |,OepI:?af r ep&IBn2E' ZeR' `"/</SnHW?## < | N*?.2Nec}FinislinkEVE{
,}EvemodulboundariesGROU[gsec]{..,[sec]}GroucontiguousectionsHELPThimessageIGNOR[sec]{..,[sec]}IgnorsectiodataINPULinfileLIBRARLinlibraryMA{,}Outpulinmmk4.20/:2gHT 0g  Exit Status NVH nlL.hBg?</<JNP.rN n ./<NX.N`2BW n /(NX3hn" n . n //<NP``F 9Rf:$B9./<NXNfdapOBJEC{[sadr],[eadr]}OutpuOobjectOFFSE[section],[addr]SesectiooffsePCOUTPULinobjecoutpufilePARTIA{{,XDEF}OutpupartialinkQUITExilinkerStrikankeyRELIN
,RelintnebaseRENAM,<nl>/.NX./<?9hNd\J@g>hNfByh-y09ѹBW n /(NX3jn n . n //<NP> n /( NvX3ln" n . n //<NP`.H?9jN.T./Y?9j/<gesym2>RenamsymbolRESTARTReselinkerSECTIO[section],[addr]SesectioaddressSRECOR{[sadr],[eadr]{,[adr]}OutpuS-recordsSYFIL{[sadr],[eadr]}OutpuSobjectUNDEFINE{}LisunresolvesymbolsWRIT[dsk],[sec],[ad1],[ad2]WritmemorimagomN> .N?9jN.T./Q?9j/<N> BW?< n /(/<@/<N .N^(@&|RRN(@R./././<T/<N .NpB.?9jN.T*nBF`^Bn09Юf=|hfeXDEPartiaexternadefineZEROZerbufferMAoptionsA=AliasesM=MultiplDefinedB=MemorbaseO=OverflowsD=SymbolsR=ReferencesF=FillistS=SectionsG=GroupsU=UndefinedI=IgnoresV=Resolved>>BREAKUNRESOLVED MULTIPLY DEFINED SYMpn*.`*` mT./?9j/<N> ./<t0H/N .PF XY`N./?9j/<N> >/<|0H/N .PZFTU FAm NpBFJnDJnfh./?9j/<N     qo> .?-/<0H/N . F X\ FAm NpBFm.0H/N .XNp./<Bg?</</<N ..?9lNT> ?9lNT>jNfJL8N^NuNVJyhg>hNfJylg>yw 0g `JL N^Nu.0cdlosux   v   &NVH >.*n G f2N @f(| "L>NJUf 0`bJUf 0`NJUl"(yR0D@H0`(;|Jm n .NrplNfJyjg>jNf>NN^NuNVH ..*y09(@Ry(`\n`(9l]f*;n JL0N^NuNV|H~F*|`H@Jf0D@>W/</</|N . .|?9lNTJL N^NuNVH *|zx 0"mRSm 0`JL0N^Nu >>BREAKNVH*n,-  Jg - fB@`8. ?/N\>g >N;| A +HB@`JL N^Nu2/Bg:pNu"og pg:r`g$Opffff0Nu/"o2/ m|nA>;0fsq(|BG`B<BE`RFRE0EJg0H5H2H4HAg0EJfp`RG0GJfB@`JL0N^Nu 68K PDOS C Linker R%d.%d %s09/05/86 ERII, Copyright 1985-1986 Usage: %s ,, Create the mapfile with MAP R, in{y@:0`:p.NuڒrmdSAUA NuL"@jNu"oVnm `"o"`pNuLfNuL"@hNu2/$/fNu"C /2/$o f`$o$& Nu\ Nu$2/$of`$o 4&Nu^ Nu /2/$o fNu2/$ofNu?tr QLINK %s: can't open mapfile %s %s: can't open syfile %s %s: can't create object file %s0C%-9.9s%3.3d%3.3dE0%08lxE1%08lx21%08lx20000000005%08lx4%04x9%1d%08lx81000000000:ROMLINK R%d.%d %s %s 09/05/8616:57:24%sF%02x 2/NV3zIDH $I@H D$A @A$A"@BBH$HHPB"!@ UUP @ usn#pA #x.N N^NuNV3n#pA#x. N N^NuNVByn#tA#x. N ytB .`N^NuNV3n#pA #x.N >NN^NuNVH*n(yx`r %gH>N 6`Z -f=|0CCEND:ASM 1 21024861304E100000008E200000004C17..ENDS100000000F37 C27..ENDS200000000210000000050000000150000000022000000002200000004FBC :MASM20 R3.2 24-Oct-86 13:04:51 vtR`Bn=|'A-HB@=@=@=@H`pRn`A-H`Jng.`0\./N"X&@JnfXJngp`p<`RRF Fl 0g`Jng.`0\./NX&@`Jng.` 0./NX&@`Jng~0CCSTART:AS 5 01024861304E000000104E20000012E2000000000C27._EOMEM00000000FAF C27._FSPTR00000004C26.STDIN00000008C27.STDOUT0000000CC27.STDERR00000010F0C C27._STRM000000014C27._STRM10000011EC28._TCBPTR00000122C27._SYRAM00000126F63 C28._ALLOCP0000012AC0wu.` 0./N rX&@`0H@B.G`&\`~eG`r=| 0m: 9n2BF H@FH @0m 9oS n0`GB.G``H | r W h(NBF`RFSn0HJ3gJnonmJnf$`0.@>W N}6._EXIT000000D4541FAFFFE4B1FC9000000000FD8 8467405A08C00184223C900000000085A052A08A5303C00415A03A3F00FA7 5610000B050A0D507256F67726156D206C6956E6B6564520746F2047275F37 56E2061745206164645723A2000A 7..ENDS184227CA 7..ENDS284207CFFF 9200000000852C4F9DFC5xv 60.SnJ@n`H>N 6Jg0.SnJ@n nf` > N 60.SnJ@nfJL8N^NuNVJyng.p. H?N :T` yt RtN^NuNVH*n.. <r0HBF`? r0HRF F mB `R~000001005B3CE650857049A03A53F006168FE1 520C97200520C1B1C9565FA70015A01026495426E0432545EE01004270AF43 A 6DOXGNP75650652805270960F6522002F3C50000000052F1B538146EFAF9B 548573F00423CD92000001268423CE920000012284203C920000001484207CFFB 92000000088520C020C0     420C0A 6DOX881744EB9A 5.MAIN84A01053F2E0432F10 44EB9A 5.EXIT84A0105342E04325302F00045A03A32005670E48C15A054000CFEE 5A08A300256702A00C5A00E0D0A545786974520537461574757320F5E 3002000000104220000000022000000042200000008220000000C2200000010FAC 220000001422 00006819G0:.ATAN FPATAN:O 00006819FCC G0:FPCMP FPCMP:O 000068D7G0:.FPCMP FPCMP:O 000068D7F8E G0:COS FPCOS:O 0000699AG0:.COS FPCOS:O 0000699AF26 G0:FPDIV FPDIV:O 00006A55G0:.FPDIV FPDIV:O 000000011E22000001222200000126220000012A220000012EF0C 1000000000FD9 :MASM20 R3.2 24-Oct-86 13:04:24 006A55F92 G0:EXP FPEXP:O 00006B1DG0:.EXP FPEXP:O 00006B1DFFE G0:LOG FPLOG:O 00006BD8G0:.LOG FPLOG:O 00006BD8F1C G0:FPMULT FPMUL:O 00006C93G0:.FPMULT FPMUL:O 00006C93FF6 G0:FPNEG FPNEG:O 000G0:.PRINTF FPPRINTF:O 00000D76G0:.FPRINTF FPPRINTF:O 00000D76FCA G0:.SPRINTF FPPRINTF:O 00000D76G0:.__DOPRIN FPPRINTF:O 00000D76F46 G0:.__PUTCH FPPRINTF:O 00000D76G0:.PFTOA FPPRINTF:O 00000D76FDA G0:.PETOA FPPRINTF:O 00000D76G0:.SC06D5EG0:.FPNEG FPNEG:O 00006D5EF90 G0:POW FPPWR:O 00006E1DG0:.POW FPPWR:O 00006E1DFCE G0:SIN FPSIN:O 00006EE1G0:.SIN FPSIN:O 00006EE1F02 G0:SQRT FPSQRT:O 00006F9CG0:.SQRT FPSQRT:O 00006F9CFANF FPSCANF:O 00001FC9FA8 G0:.FSCANF FPSCANF:O 00001FC9G0:.SSCANF FPSCANF:O 00001FC9F93 G0:.__DOSCAN FPSCANF:O 00001FC9G0:.__SCAN FPSCANF:O 00001FC9FE9 G0:.__DEC FPSCANF:O 00001FC9G0:.__FLOAT FPSCANF:O 00001FC9F44 G0:.__NF4 G0:FPSUB FPSUB:O 0000705AG0:.FPSUB FPSUB:O 0000705AF7E G0:TAN FPTAN:O 00007122G0:.TAN FPTAN:O 00007122F68 G0:FPCOSH COSH:O 000071DDG0:.COSH COSH:O 000071DDFCE G0:FPSINH SINH:O 00007295G0EXT FPSCANF:O 00001FC9G0:.__DIGIT FPSCANF:O 00001FC9FF6 G0:.__STREND FPSCANF:O 00001FC9G0:.__SPLEND FPSCANF:O 00001FC9F70 G0:.__INITS FPSCANF:O 00001FC9G0:.__STRX FPSCANF:O 00001FC9FCE G0:.__CHAR FPSCANF:O 00001FC9G0:.__GETCH :.SINH SINH:O 00007295FEC G0:.TANH TANH:O 0000734DG0:FPTANH TANH:O 0000734DFF2 G0:FFPADD FFPADD:O 00007405G0:FFPSUB FFPADD:O 00007405F71 G0:FFPATAN FFPATAN:O 000076A5G0:FFPDIV FFPDIV:O 00007886FC8 G0:FPSCANF:O 00001FC9F1D G0:.__UNGET FPSCANF:O 00001FC9G0:.__GS FPSCANF:O 00001FC9F49 G0:.__UNGS FPSCANF:O 00001FC9G0:.ATAN2 ATAN2:O 00003D77F0A G0:.ATOF ATOF:O 00003F15G0:.CEIL CEIL:O 000048EDF48 G0:.ETOA EFFPEXP FFPEXP:O 00007A75G0:FFPLOG FFPLOG:O 00007D57FED G0:FFPMUL2 FFPMUL2:O 00007FCCG0:FFPSIN FFPSIN:O 0000817AF9E G0:FFPCOS FFPSIN:O 0000817AG0:FFPTAN FFPSIN:O 0000817AFF8 G0:FFPSINCS FFPSIN:O 0000817AG0:FFPSQRTOA:O 00004A54G0:.FABS FABS:O 000050E2F66 G0:.FLOOR FLOOR:O 000051A7G0:.FMOD FMOD:O 0000530FFDE G0:.FREXP FREXP:O 00005520G0:.FTOA FTOA:O 00005806FED G0:.FPFTOL FTOL:O 00005DFEG0:.LDEXP LDEXP:OT FFPSQRT:O 000085BFF02 G0:FFPHTHET FFPHTHET:O 00008801G0:FFPTHETA FFPTHETA:O 00008951FC8 G0:FFPTNORM FFPTNORM:O 00008ABCG0:FFPABS FFPABS:O 00008BBAF0F G0:FFPNEG FFPABS:O 00008BBAG0:FFPCMP FFPCMP:O 00008C5AFF8 G0:FFPTST  00006003F63 G0:.LOG10 LOG10:O 000061ABG0:.FPLTOF LTOF:O 00006289FE1 G0:.MODF MODF:O 00006495G0:.FPULTOF ULTOF:O 000065A9F77 G0:FPADD FPADD:O 00006751G0:.FPADD FPADD:O 00006751F16 G0:ATAN FPATAN:O FFPCMP:O 00008C5AG0:FFPPWR FFPPWR:O 00008D18FB3 G0:FFPSINH FFPSINH:O 00008DEAG0:FFPCOSH FFPSINH:O 00008DEAF0F G0:FFPTANH FFPSINH:O 00008DEAFE9 0CFPPRINTF 5 01024861501E0000005B4E1000000D8E20000000C2200000000FCD 22000000042     0000000002200000004220000000820000000002200000008F4E 220000000C2000000000C07.PRINTF0000000054E56FFF8423F9A 7.STDOUTFD2 892000000008541EE0008423C892000000088542574EB99000000072844E5EFE8 44E75C08.FPRINTF0000002454E56FFFC523EE000892000000008541EE000CFF5 4756000000653EBC000152F2EFF9844267FC9 53F3C001052F0E06975FFFFFFB052F0C4EB9A 9.__PRTINT84DFFC500000010FE2 4548C54A6EFFA85670000044548C560000100423CC92000000088420799200000008F9B 852D50FF9C458B99200000008842879920000000885600000E053D5CFFA6FF3 5302EFFA644823C892000000088542574EB99000000072854E5E4E75C08.SPRINTF00000046FC0 54E56FFFC523EE000892000000048541EE000C423C89200000008853EBC0001F50 44EB9900000007284207992000000048542104E5E44E75C09.__DOPRIN00000072F46 54E56FF98548E7030C420799200000008852A5058B9920008051D40FFB05422EFFB15600000CA53EAEFFAC52F0E0697F69 5FFFFFFB052F0C4EB9900000057E85508F588C53D7CFFFF4FFAC5600000A8FC3 53EAEFFAC52F0E06975FFFFFFB052F0C4EB9900000054885508F588C53D7CFFFFFB0 4FFAC56000008653EAEFFAC52F0E06975FFFFFFB052F0C4EB99000000548F19 85500008842879F52 92000000088560000464423CC9200000008850C070025567000018510074880F0A 43E8053F2E000844EB9900000050484548F5600004404424053D40FFAA53D40FFA2F5E 5101D488041E0050C40002D56600000841E1D5526EFFAA50C070023566000008F45 41E1D5526EFFA251D7C00204FFA050C08F2E8E406975FFFFFFB044EB9A 7.STRLEN85322EFFAC55E41B041F17 56F00001853EAEFFAC52F0E06975FFFFFFB052F0C4EB9900000057E84508FFED 4588C53D7CFFFF4FFAC56000003451007488043E8053F2E000844EB99000000504F6E 84548F56000010056000001A50440004350C400035562DCE54053040D107003056600000851D47FFA041E1DFA2 53D7CFFFF4FFAE56000002654A6EFFAE56C0000065426EFFAE5302EFFAE5C1FC000AF1C 5120748814D04150640FFD053D40FFAE41E1D50C07003056D00000850C070039F15 46FCE50C07002A56600000841E1D53D5CFFAE53D7CFFFF4FFAC50C07002EF1A 5660000085426EFFCF4A 91000000008520504ED021000000009000000334890000001AE8900000034AF58 8900000036C8900000038E890000003E0890000003E0890000003E0890000003E0F58 890000003E0890000003E0890000003E089000000228890000003E0890000003E0F70 890000003E089000000314890000003E08900000FAC41E1D56000001A5302EFFAC5C1FC000A512074881FE9 4D04150640FFD053D40FFAC41E1D50C07003056D00000850C07003946FDAFB6 50C07002A56600000841E1D53D5CFFAC5426EFFA850C07006C5660000085526EFFA8FD4 41E1D541EEFFB052D48FF9C51007488056000024E54A6EFFA856700000EFB2 42D7C01FE890000003E0890000003E0F60 8900000028E890000003E0890000003E0890000003E0890000003E0890000003E0F5D 890000003E0890000003E0890000003E0890000003E0890000003E089000000334F72 890000001AE8900000034A8900000036C8900000038E890000003E0890000003E0F49 890000003E08A 8.__PRTLD84FF9856000000A42D7CA 9.__PRTSHO85FF98425752F2EFF98F6F 53F3C000153F3C000A52F0E06975FFFFFFB052F0C4EB9A 9.__PRTINT8FEA 4DFFC5000000104548C54A6EFFA85670000044548C560000216542572F3CFE4 A 9.__PRTSHO84426753F3C000A52F0E06975FFFFFFB052F0C4EB9A 9.__90000003E0890000003E0890000003E0890000003E089000000228F70 890000003E0890000003E0890000003E089000000314890000003E0890000001FEF60 890000003E0890000003E08900000028E8200000041252EAEFF9C44EB9A 7.STRLENFE7 853D40FFA45302EFFAC5B06EFFA456C00001054A6EFFAC56D000PRTINTF62 84DFFC5000000104548C5600001EC54A6EFFA256700001253EBC003053F2E0008FBE 44EB9900000050484548F54A6EFFA856700000E42D7CA 8.__PRTLD84FF98FB4 56000000A42D7CA 9.__PRTSHO85FF98425752F2EFF984426753F3C0008F14 52F0E06975FFFFFFB052F0C4EB9A 9.__PRTINT84DFFC00853D6EFFACF1D 4FFA45302EFFAE5906EFFA453D40FFA654A6EFFAA56600005A50C2E00204FFA0F1B 56700002C5206EFF9C50C10002D5660000205536EFFA45206EFF9C510104880F29 43E8053F2E000844EB9900000050484548F552AEFF9C5600000165102EFFA0F56 548803E8053F2E000844EB99000000504845000000104548CFAF 54A6EFFA85670000044548C56000018654A6EFFA256700002253EBC003053F2E0008F1C 44EB9900000050484548F53EBC007853F2E000844EB9900000050484548FFF2 54A6EFFA856700000E42D7CA 8.__PRTLD84FF9856000000A42D7CA 9.__PRTSHOFCB 84FF9850C0700585670000084425548F5302EFFA65536EFFA644A40F3D 46EE056000001C5206EFF9C51010488043E8053F2E000844EB99000000504FC7 84548F552AEFF9C5302EFFA45536EFFA454A4066DA5600000165102EFFA0F49 548803E8053F2E000844EB9900000050484548F5302EFFA65536EFFA644A40F3D 56EE01E1D56600FB9A44A9F54C     DF308054E5E4E75C08.__PUTCH00000504FCD 54E56FFFC54A6E00085670000164207992000000048510AE000B452B99200000004FB6 856000001842EB9920000000085102E000B548803F0044EB9A 6.FPUTC8F0D 4548F5102E000B4488056000000254E5E4E75C06.PFTOA0000054854E56FFF8FE9 54A6E001056C0000182542AE000CFAC 5600001925CDFC000A5100548804DC4050646FFD056000018044A47567000008F48 470FD56000017847E0156000016E44A47567000008470FD56000016647EFFFDB 56000015C43E8753F3C000844A4656700000843F0656000000653F3C0064F40 52F2E000C44EB9900000035884508F5600000000853D7C0006400105206E000852D50FFFC53EAE001052F2E000CF33 52F2EFFFC44EB9A 5.FTOA84508F56000000254E5E4E75C06.PETOA0000057EF61 54E56FFF854A6E001056C00000853D7C0006400105206E000852D50FFFC53EAE0010F07 52F2E000C52F2EFFFC44EB9A 5.ETOA84508F56000000254E5E4E713A43E8753F3C000A44A46567000008F96 43F0656000000653F3C006452F2E000C44EB9900000035884508F560000114FD0 43E8753F3C001044A4656700000843F0656000000653F3C006452F2E000CF24 44EB9900000035884508F5600000EE44A47567000008470FD5600000E244A46F7D 56700000843E86560000521000000D8F5D 21000000D8220000000CFC4 :MASM20 R3.2 24-Oct-86 15:01:57 0CFPSCANF 5 01024861502E000000950E10000013CE2000000922200000000F2E 220000000420000000002200000004220000000820000000002200000008F4E 220000000C2000000000220000000C220000000E200000653EBC000152F2E000C44EB990000007BC84588FF97 5600000C244A47567000008470FD5600000B642EBC90000005EE844A46567000008FB7 43F0656000000653F3C006452F2E000C44EB99000000702845C8F560000090FC1 44A4656700000843E8656000000653EBC006452F2E000C44EB99000000488FEA 8458000000220000000EF16 22000000102000000000220000001022000000122000000000C06.SCANF00000000F83 54E56FFFC533FC0001920000000E8423F9A 6.STDIN892000000008541EE0008FC9 423C89200000004844EB99000000086856000000254E5E4E75C07.FSCANF0000002EF3E 54E56FFFC533FC00019208F56000007044A47567000008470FD56000006452EAE000844EB99000000672FBF 844A40567000008470FD56000004E42EBC9000000640844A4656700000843F06F67 56000000653F3C006452F2E000C44EB99000000702845C8F560000028470FDFAE 56000002256000001A50440002A50C40004E562ECE54053040D000000E8523EE000892000000008541EE000C423C8F55 9200000004844EB99000000086856000000254E5E4E75C07.SSCANF0000005AF46 54E56FFFC533FC0002920000000E8523EE000892000000088541EE000C423C8F4C 9200000004844EB99000000086856000000254E5E4E75C09.__DOSCAN00000086F94 54E1FC9100000000F92 8520504ED0210000000090000001B2890000003288900000032889000000328F2E 8900000032889000000328890000001BA890000001BA890000001BA890000001BAF4A 890000001BA890000001BA890000001BA890000001BA890000001BA890000001BAF1C 890000003288900000032889000056FFFC548E70F005424033C09200000010853E00207992000000048F97 52D50FFFC458B9920000000485600000D45206EFFFC51010488041C00552AEFFFCF4E 5600000B2430075600000C05206EFFFC50C100025567000064420799200000004F67 852E902F0E559974EB9900000018C84588F560000030458B99200000328890000003288900000032889000000328FA6 8900000032889000000328890000003288900000026289000000216890000002C0FA5 890000002C0890000002C089000000328890000003288900000032889000000328F96 890000003288900000032889000000328890000001F08900000032889000000328F9C 00004F54 84524756000003C4300756000008A44A4756700000843007560000004470FFF17 560000078470FF56000007256000001A50C40FFFE467DE50C40FFFF467D2FB0 54A4067CA50C400001567BC60DE56000004E552AEFFFC542574EB990000004DAFC0 8548801A004BC0556700002051005488053E804EB9900890000003288900000028E89000000328890000003288900000032889000000328F94 8900000023C8900000032889000000328890000002E08900000032889000000328F91 890000003288900000032889000000328890000003288900000032889000000262FA9 89000000216890000002C0890000002C089000000200008B0844A47F9E 56700000843007560000004470FE56000001E56000001656000001244A40FAF 56700FF4C50C40002556700FF4A460B856000FF2C44A9F54CDF00E044E5EF75 44E75C07.__SCAN0000018C54E560000548E70F00542463E065600001B0FCD 5206E0008520501010548801A005226E000845291560C0890000001DE89000000328F75 8900000032889000000328890000001CC8900000032889000000328890000001F0F82 8900000032889000000328890000003288900000028E8900000032889000000328F94 89000000328890000003288900000023C8200000034A56000FE5044A9F54CDF00E0FD5 54E5E4E75C06.     __DEC0000035854E56FFFC548E73F0C52A6E0008542434284FC6 4424053D40FFFE43A0053EBC000144EB990000004DA841E00560000022470FEF39 5600000FA53D7C00015FFFE524553EBCFFFF44EB990000004DA8548801E00F3A 56000001C50C40FFFF567DA4A40467D650C40002B467DC50C40002D467D0FAD 5600001C5102E00095488048C042040F0F 4223C920000001285103018004488056000000254E5E4E75C08.__INITS00000672F45 54E560000548E70F0452A6E0008520551E104529550C07005E56600000EF5F 54245205551E10529556000000457A017C015600000105300532464D3FCFA5 9200000012851280524650C0000025426EFFFC5600000425526EFFFC4524554A6E001056700001E42F04F13 5306E000E52F084EB9A 4LMUL85508F28005300648C04D88056000000CF1D 5302E000E5C1C336005D646425744EB990000004DA8548801E0053EAE000EFAA 51007488053F004EB9900000054485548F3C0056D0000085BA6E000C46DA46008056DEC7001590453A0056000002844A07F3A 566000008470FF5600000305300512074488150241007F53241D3FC9200000012F76 851280205551E10529550C07005D466D4513FC00019200000012844240FCE 56000000244A9F54CDF20E054E5E4E75C07.__STRX0000070254E560000F72 548E71F0C52A6E002FC9 51007488053E804EB990000008B0854A6EFFFC566000008470FF560000046FB6 4200D5660000084424056000003A54A6EFFFE56700001A54A6E001056700000CF4F 520044480428005600000085300344404360054A6E001056700000A4284DF9B 4288456000000453A83700156000000244A9F54CDF30F854E50853E2E000C5286E000E57801B9FC90000006408566000008FE5 44240560000004570013A0044A4556700001C53EBC000144EB990000004DAF17 8548801C0051006488053E804EB990000008B0856000000E4200D567000004FF1 51AC6424453A043E8544EB990000004DA851C003E8054E944A4056600000AFB9 530E4E75C08.__FLOAT00000488F6B 54E56FF94548E7010452A6E000842EBC90000005EE853F3C006452F0E0697F75 5FFFFFF9C44EB99000000702845C8F53D40FF9652E8E06975FFFFFF9C44EB9F62 A 5.ATOF852D40FF9852AAEFF985302EFF9656000000244A9F54CDF200044E5EF4F 44E75C07.__NEXT000004DA5407534754A406ED851006488053E804EB990000008B0844A44567000016FF5 50C06FFFF566000008470FE560000004470FF5600000164200D566000008F2A 4424056000000A54215700156000000244A9F54CDF30F054E5E4E75C07.__CHAR000007BCFC6 54E560000548E70F0C52A6E000853E2E000C5284D3A075600E560000548E7030044EB99000000844843E00F05 50C47FFFF566000008470FF56000004454A6E000856600000843007560000036F64 56000001A50C47000D56600000A54A6E000856D00001C44EB99000000844F43 843E0050C470020467E250C470009467DC50C47000D567D63007560000002FFB 44A9F54CDF00800004E44257F2D 44EB990000004DA8548801C0056E0000365300552404BE4056600001A50C06FFFFFB2 566000008470FE560000004470FF56000003A5600000144200D566000008F83 44240560000004470015600000244200D56700000451AC63005553454A40FA9 566AC200D566000008442405600000044700156054E5E4E75C08.__DIGIT0000054454E560000548E70F00F26 51E2E000953C2E000A50C07003056C000008470FF56000008450C07003756E00000EF88 51007488050640FFD056000007050C460008566000008470FF560000062F9B 50C07003956E00000E51007488050640FFD056000004E50C46000A56700000AFA0 00000244A9F54CDF30E0F4A 54E5E4E75C08.__GETCH0000084454E56FFFC43039920000000E856000004CFE0 420799200000000855368000A56D000020420799200000000852068000641010FFA 5024000FF4227992000000008552A9000656000000E42EB99200000000844EB9F8B A 9._FILLBUF856000002044EB50C07004156C000008470FF56000003850C07004656E00000E510074880F94 50640FFC956000002450C07006156D00000A50C07006656F000008470FF56000000EF91 51007488050640FFA956000000244A9F54CDF00E054E5E4E75C09.__STREND000005EEFD0 54E560000548E703005102E0009548801E0050C40FF99000000902856000001656000001250C400001FF9 467B050C400002467E656000000254E5E4E75C08.__UNGET000008B054E56FFFCF11 43039920000000E856000003242EB9920000000085102E0009548803F00FBE 44EB9A 7.UNGETC84548F5600000285102E0009548803E8044EB9900000093AF01 8560000016FF566000008470FFF38 56000002C50C07002056700001850C07000956700001050C07000D567000008F06 44A07566000008470015600000084424056000000244A9F54CDF008044E5EF1A 44E75220000001222000000922000000640C09.__SPLEND0000064054E56FFFCFC9 50C2EFFFF40009566000008470FF560056000001250C400001467CA50C400002467DE56000000244E5EF34 44E75C05.__GS0000090254E560000548E70300420799200000008841E10FF3 44A0756700000C452B992000000088560000008470FF56000000A510074880F0D 56000000244A9F54CDF008054E5E4E75C07.__UNGS0000093A54E56FFFCF2C 54A2     E0009567000008453B99200000008854E5E4E75210000013C210000013CFC3 2200000092FCB :MASM20 R3.2 24-Oct-86 15:02:14 0CATAN2 5 01024861502E000000074C06.ATAN20000000054E56FFFCFB4 442A752F2E000844EB9A 6.FPCMP84508F56600000844280560000056442A7F67 52F2E0006FFFCFAE 548E70F00442A752F2E000844EB9A 6.FPCMP84508F566000008442805600000E4F78 442A752F2E000844EB9A 6.FPCMP84508F56C00001852F2E000844EB9A 6.FPNEGFEA 84588F52D40000847A0156000000454245424756000001A552472F3C580000042F66 52F2E000844EB9A 6.FPDIV84508F52D40C44EB9A 6.FPCMP84508F566000028442A752F2E000844EB9A 6.FPCMPFE5 84508F56F00000C4203C5C90FDA415600000284203C5C90FDAC156000001EFA8 52F2E000C52F2E000844EB9A 6.FPDIV85508F2E8044EB9A 5.ATAN8560000002F3D 54E5E4E75210000000021000000002200000000F03 :MASM20 R3.2 000842F3C58000004152F2E0008F72 44EB9A 6.FPCMP85508F6CD456000001A553472F3C58000004252F2E0008FA4 44EB9A 7.FPMULT84508F52D40000842F3C58000004052F2E000844EB9A 6.FPCMPF9C 85508F6DD442F3C58000005952F2E000844EB9A 7.FPMULT84508F52D400008FB3 52F2E000844EB9A 7.F 24-Oct-86 15:02:21 0CATOF 5 01024861502E0000003CEC05.ATOF0000000054E56FFD2FE0 548E7010C54BEEFFEC549EEFFE85426EFFE25426EFFDA560000006552AE0008F60 5206E000850C100020467F25206E000850C100009467E85206E000850C10002DF79 567000008442405600000044700153PFTOL84588F52D40FFFC5202EFFFC4E18052D40FFFCF41 5064700404300750240007F448C0581AEFFFC44A4556700000A400AE500000080F12 4FFFC5202EFFFC56000000244A9F54CDF00E054E5E4E7554E56FFF842D7CF0A 5000000004FFFC56000004642F3C5A000004452F2EFFFC44EB9A 7.FPMULTF08 84508F5D40FFDE5206E000850C10002D56700000EF82 5206E000850C10002B566000006552AE000856000004C5206E000850C10002EFC6 56600000A5526EFFE25600000345206E000850C10003056D0000245206E0008FB7 50C10003956E0000185206E000841AD054A6EFFE25670000065526EFFDA560000006F3F 560000022D40FFFC52F2EFFFC5206E000851010488050640FFD0548C02F00F7E 44EB9A 7.FPLTOF85588F2F0044EB9A 6.FPADD84508F52D40FFFC552AE0008F28 5206E000850C10003056D00000C5206E000850C10003946FA65202EFFFC560000002F7C 54E5E4E75210000000021000000002200000000F03 :MASM20 R3.2 6552AE00085206E000844A105670000185206E000850C10006556700000CFDB 5206E000850C1000455669642155206E000850C10006556700000E5206E0008FD3 50C100045566000050552AE00085206E000850C10002D56700000844240560000004FF8 4700153D40FFE05206E000850C10002D56700000E5206E000 24-Oct-86 15:02:31 0CCEIL 5 01024861502E00000005EC05.CEIL0000000054E56FFFCFF8 548E70300442A752F2E000844EB9A 6.FPCMP84508F56F00001842F3C5FFFFFF40FF1 52F2E000844EB9A 6.FPADD84508F52D40000852F2E000844EB9A 7.FPFTOLFB7 85588F2E0052F074EB9A 7.FPLTOF850C10002B566000006F9F 552AE000856000000C5206E0008418D0552AE00085206E000854A1066EEF52 542142E8E406975FFFFFFEC44EB99000000358852D40FFD652E8E06975FFFFFFE8F98 44EB9A 5.ATOI853D40FFDC54A6EFFE05670000105302EFFDC444405906EFFDAF11 56000000A5302EFFDC5906EFFDA584588F52D40FFFC5202EFFFC560000002F97 44A9F54CDF008054E5E4E75210000000021000000002200000000FDD :MASM20 R3.2 24-Oct-86 15:02:38 0CETOA 5 01024861502E00000023CE10000002821000000005CCCCCC3CF6F 5A3D70A39583126E365D1B717325A7C5AC2F58637BD2C5D6BF94283D40FFDA52F2EFFD653F2EFFDA44EB990000001D4FF7 85548F2F0044EB9A 7.FPMULT84508F52D40FFD252EAEFFD244EB9900000024CF0A 852D40FFE454A6EFFDE56700000A400AE5000000804FFE45202EFFE4560000002F81 44A9F54CDF300054E5E4E7554E56FFF85302E0008548C04A8056C000032FCE 42D7C585ABCC7725F98 589705F225DBE6FE1E2000000000C05.ETOA0000000054E560000548E70F04F66 53E2E001044A4756E0000084700156000001250C47000956E00000843007F7D 560000004570093E0052A6E000C442A752F2E000844EB9A 6.FPCMP84508FF78 56600003051AFC003051AFC002E56000000651AFC00300000414FFFC56000001C42F3C5A000004452F2EFFFC44EB9A 6.FPDIVF2D 84508F52D40FFFC5526E000854A6E000846DE056000002E42D7C580000041FA0 4FFFC56000001C42F3C5A000004452F2EFFFC44EB9A 7.FPMULT84508F52D40FFFCF40 5536E000854A6E000846EE05202EFFFC56000000254E5E4E7554E5053007534744A40F69 466F451AFC006551AFC003051AFC0030442155202E000C5600001C6442A7FF7 52F2E000844EB9A 6.FPCMP84508F56C00001651AFC002D52F2E000844EB9F2D A 6.FPNEG84588F52D4000084424656000001A553462F3C5A000004452F2E0008FD7 44EB9A 7.FPMULT84508F52D40000842F3C     58000004152F2E000844EB9A 6.FPCMPF9B 85508F6DD456000001A552462F3C5A000004452F2E000844EB9A 6.FPDIVF97 84508F52D40000842F3C58000004152F2E000844EB9A 6.FPCMP85508F6CD4F20 53047D1C85D1C8223C9100000000852F30180052F2E000844EB9A 6.FPADDF95 84508F52D40000842F3C5D40FFF85202EFFF856000000244A9F54CDF008054E5E4E752100000000F5F 21000000002200000000FF3 :MASM20 R3.2 24-Oct-86 15:03:06 0CFREXP 5 01024861503E0000000F8C06.FREXP0000000054E56FFF8F4D 442A752F2E000844EB9A 6.FPCMP84508F56C00001C53D7C00014FFFE52F2E0008000004152F2E000844EB9A 6.FPCMP84508F56D00001AF31 42F3C5A000004452F2E000844EB9A 6.FPDIV84508F52D400008552465346F7A 42F3C5A000004452F2E000844EB9A 7.FPMULT84508F52D40000852F2E0008F06 44EB9A 7.FPFTOL85588F3A005300548C052F004EB9A 7.FPLTOF84588FF10 42F0052F8F0A 44EB9A 6.FPNEG84588F52D4000085600000065426EFFFE5426EFFFC42F3CFF4 58000004052F2E000844EB9A 6.FPCMP84508F56C00003856000001C42F3CF91 58000004252F2E000844EB9A 7.FPMULT84508F52D4000085536EFFFC42F3CFD0 58000004052F2E000844EB9A 6.FPCMP85508F6DD256000004A2E000844EB9A 6.FPSUB84508F52D4000084300550640003044880F69 41AC051AFC002E56000005042F3C5A000004452F2E000844EB9A 7.FPMULTF38 84508F52D40000852F2E000844EB9A 7.FPFTOL85588F3A005300548C0FE7 52F004EB9A 7.FPLTOF85588F2F0052F2E000844EB9A 6.FPSUB84508FF50 52D4042F3C580000041FB6 52F2E000844EB9A 6.FPCMP84508F56F00003456000001C42F3C580000042F90 52F2E000844EB9A 6.FPDIV84508F52D4000085526EFFFC42F3C580000041F32 52F2E000844EB9A 6.FPCMP85508F6ED25206E000C530AEFFFC54A6EFFFEFD6 56700001252F2E000844EB9A 6.FPNEG84588F56000843005506400030548801AC053007534754A406EAA51AFC0065F5F 44A4656C00000C53006444043C0051AFC002D5300648C0581FC000A506400030F55 548801AC05300648C0581FC000A44840506400030548801AC0442155202E000CF62 56000000244A9F54CDF20E054E5E4E752100000028210000002822000000000065202E0008560000002F01 54E5E4E75210000000021000000002200000000F03 :MASM20 R3.2 24-Oct-86 15:03:13 0CFTOA 5 01024861503E000000200E1000000282100000000580000040FFF 5CCCCCC3C5A3D70A39583126E365D1B717325A7C5AC2F58637BD2C5D6BF9428F6E 5ABCC77250000FFD :MASM20 R3.2 24-Oct-86 15:02:46 0CFABS 5 01024861502E00000001EC05.FABS0000000054E56FFFCFFE 5202E0008402805FFFFFF7F52D4000085202E000856000000254E5E4E75F19 210000000021000000002200000000F10 :MASM20 R3.2 24-Oct-86 15:02:53 0CFLOOR 589705F222000000000C05.FTOA0000000054E560000548E70F04F89 53E2E001044A4756E0000084424056000001250C47000956E00000843007F7B 560000004570093E0052A6E000C442A752F2E000844EB9A 6.FPCMP84508FF78 56600002A51AFC003044A4756700001651AFC002E56000000651AFC003043007F55 01024861502E00000005EC06.FLOOR0000000054E56FFFCF4D 548E70300442A752F2E000844EB9A 6.FPCMP84508F56C00001842F3C5FFFFFF40FF4 52F2E000844EB9A 6.FPSUB84508F52D40000852F2E000844EB9A 7.FPFTOLF96 85588F2E0052F074EB9A 7.FPLTOF84588F52D40FFFC5202EFFFC560000002D 553474A40566F442155202E000C560000190442A752F2E000844EB9A 6.FPCMPFEB 84508F56C00001651AFC002D52F2E000844EB9A 6.FPNEG84588F52D400008F19 4424656000001A553462F3C5A000004452F2E000844EB9A 7.FPMULT84508FF25 52D40000842F3C58000004152F2E000844EB9A 6.FPCMP8550F97 44A9F54CDF008054E5E4E75210000000021000000002200000000FDD :MASM20 R3.2 24-Oct-86 15:02:59 0CFMOD 5 01024861503E0000000A2C05.FMOD0000000054E56FFF0FFF 548E7030052EAE000844EB9A 5.FABS852D40FFF452EAE000C44EB9A 5.FABSF7E 852D40FFF052D6EFFF44FFFC8F6DD443047F6C 5D1C8D1C84223C9100000000852F30180052F2E000844EB9A 6.FPADD8F2C 4508F52D40000856000001A552462F3C5A000004452F2E000844EB9A 6.FPDIVFEB 84508F52D40000842F3C58000004152F2E000844EB9A 6.FPCMP85508F6CD4F20 44A4656E00000651AFC003056000005242F3C5A0056000001652F2EFFF052F2EFFFC44EB9A 6.FPSUBF6E 84508F52D40FFFC442A752F2EFFF052F2EFFFC44EB9A 6.FPSUB85508F2F00F41 44EB9A 6.FPCMP85508F6CCE52F2EFFFC44EB9A 7.FPFTOL85588F2E00FE5 442A752F2E000844EB9A 6.FPCMP84508F56C000004544872F0744EB9A 7.FPLTOFF94 84588F520004452F2E000844EB9F18 A 7.FPMULT84508F52D40000852F2E000844EB9A 7.FPFTOL85588F3A00F25 5300548C052F004EB9A 7.FPLTOF85588F2F0052F2E000844EB9A 6.FPSUBFC3 84508F52D40000843005506400030548801AC0553464A4656EAC4A47567000076F1F 51AFC002E56000000A51AFC003055347      524644A4656C00000654A4766EEF29 56000005042F3C5A000004452F2E000844EB9A 7.FPMULT84508F52D400008F32 52F2E000844EB9A 7.FPFTOL85588F3A005300548C052F004EB9A 7.FPLTOFF7B 85588F2F0052F2E000844EB9A 6.FPSUB84508F52D40000843005506400030F4D 548801AC053007534754A400000000FF3 :MASM20 R3.2 24-Oct-86 15:03:49 0CMODF 5 01024861503E00000003CC05.MODF0000000054E56FFFCFE9 52F2E000844EB9A 7.FPFTOL85588F2F0044EB9A 7.FPLTOF85588F2F00FFC 5206E000C4209F5206E000C42F1052F2E000844EB9A 6.FPSUB84508F560000002F69 54E5E4E76EAA442155202E000C56000000244A9F54CDF20E0F1C 54E5E4E75210000002821000000282200000000FEF :MASM20 R3.2 24-Oct-86 15:03:22 0CFTOL 5 01024861503E0000000A0C07.FPFTOL0000000054E560000F8D 548E70F005202E00084028050000007F406805FFFFFFC043C0054AAE0008FD5210000000021000000002200000000F03 :MASM20 R3.2 24-Oct-86 15:03:56 0CULTOF 5 01024861504E00000007AC08.FPULTOF0000000054E560000FFA 548E7030054AAE00085660000084428056000005C47E1856000000E5202E0008F85 4E28852D400008452875202E00084028058F000000466E1 56700000844A4656C0000084428056000006A5202E000840280500000080FA2 43A0050C46001F56F00001C44A4556700000C4203C580000000560000008F71 4203C57FFFFFFF56000003C50446001852E2E00085E0870287500FFFFFFFAD 5600000065E287524654A466DF85600000065E387534654A466EF844A45856000000E5202E0008F54 4E38852D400008453875082E00075000967EC5202E00084E18852D400008F27 4068750000004052007028050000007F581AE00085202E0008560000002FDF 44A9F54CDF008054E5E4E75210000000021000000002200000000FDD :MASM20 R3.2 24-Oct-86 15:04:03 0CFPADD:S F33 56700000852007448052E00200756000000244A9F54CDF00E054E5E4E75F50 210000000021000000002200000000F10 :MASM20 R3.2 24-Oct-86 15:03:29 0CLDEXP 5 01024861503E000000078C06.LDEXP0000000054E56FFFCF61 50C6E001F4000C56F00000853D7C001F4000C54A6E000C56D0 1 11024861504E000000020C05FPADD00000000C06.FPADD00000000F06 200000000054E56FFFC548E71F0052E2E000852C2E000C44EB9A 6FFPADDF73 84200754CDF00F854E5E4E75F64 :MASM20 R3.2 24-Oct-86 15:04:04 0CFPATAN:S 1 11024861504E00000001CC04ATAN00000000C05.ATAN0000002852F2E0008F1F 470015322E000C5E36048C052F004EB9A 7.FPLTOF85588F2F0044EB9FFE A 7.FPMULT84508F56000003052F2E00085302E000C548C02F0044EB9A 7.FPLTOFF9C 85588F2F0042F3C58000004244EB9A 4.POW85508F2F0044EB9A 7.FPMULTFD6 84508F56000000254E5E4E75210000000021000000F31 200000000054E56FFFC548E71F0052E2E000844EB9A 7FFPATAN84200754CDF00F8FC2 54E5E4E75FAD :MASM20 R3.2 24-Oct-86 15:04:04 0CFPCMP:S 1 11024861504E00000001E2000000000C05FPCMP00000000F98 C06.FPCMP0000000054E56FFFC548E71F0052E2E000852C2E000C44EB900000002200000000FF7 :MASM20 R3.2 24-Oct-86 15:03:36 0CLOG10 5 01024861503E000000028C06.LOG100000000054E56FFFCFDA 42F3C5935D8D4252F2E000844EB9A 4.LOG85588F2F0044EB9A 6.FPDIVF4D 84508F56000000254E5E4E75210000000021000000002200000000FF7 :MASM20 RA 6FFPCMPF71 854CDF00F854E5E4E75F61 :MASM20 R3.2 24-Oct-86 15:04:05 0CFPCOS:S 1 11024861504E00000001CC03COS00000000C04.COS00000000FD0 200000000054E56FFFC548E71F0052E2E000844EB9A 6FFPCOS84200754CDF00F8F02 54E5E4E75FAD :MASM20 R3.2 24-Oct-86 15:043.2 24-Oct-86 15:03:42 0CLTOF 5 01024861503E0000000A2C07.FPLTOF0000000054E560000F8B 548E7070054AAE000856C00001247C015202E00084448052D400008560000004F8E 4424654AAE00085660000084428056000006A47E1856000000E5202E0008F62 4E28052D400008452875202E000:06 0CFPDIV:S 1 11024861504E000000020C05FPDIV00000000C06.FPDIV00000000FB8 200000000054E56FFFC548E71F0052E2E000852C2E000C44EB9A 6FFPDIVF59 84200754CDF00F854E5E4E75F64 :MASM20 R3.2 24-Oct-86 15:04:06 0CFPEXP:S 1 11024861504E00000001CC03EXP000084028057F000000466E856000000E5202E0008F5D 4E38052D400008453875082E00075000967EC5202E00084E18052D400008F37 4068750000004052007028050000007F581AE000844A4656700000A400AEF72 500000080400085202E000856000000244A9F54CDF00C054E5E4E752100000000F4D 21000000002200000C04.EXP00000000FB8 200000000054E56FFFC548E7010052E2E000844EB9A 6FFPEXP84200754CDF0080F26 54E5E4E75FAD :MASM20 R3.2 24-Oct-86 15:04:07 0CFPLOG:S 1 11024861504E00000001CC03LOG00000000C04.LOG00000000FD9 200000000054E56FFFC548E7010052E2E000844EB9      A 6FFPLOG84200754CDF0080F31 54E5E4E75FAD :MASM20 R3.2 24-Oct-86 15:04:08 0CFPMUL:S 1 11024861504E000000020C06FPMULT00000000C07.FPMULT00000000FED 200000000054E56FFFC548E71F0052E2E000852C2E000C44EB9A 7FFPMUL2F1B 84200754CDF00F854E5E4E75F64 :MASM20 E4C06FFPADD00000012C06FFPSUB00000000F48 200000000051806675250A04008056B6A1A0756B6C660E5603E180646B5EF22 5673E1A0756B5E673259A046B384180750C0500185642C260654203EAABF15 51E3C00805DE83650451E044E755E29752045690264F457EFF530441E04FFD 5003C000254E752E0651E0R3.2 24-Oct-86 15:04:08 0CFPNEG:S 1 11024861504E00000001CC05FPNEG00000000C06.FPNEG00000000FC1 200000000054E56FFFC548E71F0052E2E000844EB9A 6FFPNEG84200754CDF00F8F0D 54E5E4E75FAD :MASM20 R3.2 24-Oct-86 15:04:09 0CFPPWR:S 1 11024861504E000000044E7554A074E7550C05FFE856FF0440542606F00 54207EAAF5163C00805DE8365CC51E044E7551A076BA6567D676804B705FC3 59A04675046B3C50C050018564CC180751E03260654203EAAB59E836BA0FFE 51A044207553040C87500007FFF5620648475040400104DE8755BCCFFFCFF6 5B9056B0651E04670254E720C03POW00000000C04.POW00000000FAC 200000000054E56FFFC548E71F0052E2E000852C2E000C44EB9A 6FFPPWRF43 84200754CDF00F854E5E4E75F64 :MASM20 R3.2 24-Oct-86 15:04:10 0CFPSIN:S 1 11024861504E00000001CC03SIN00000000C04.SIN00000000FC1 200000000054E56FFFC5457E0044E7550C05FFE856F8A4405526072E06FEC 51E3C0080560BE1A075C9451E0659E8667E056ABA44875180560B6FF6 :MASM20 R3.2 24-Oct-86 15:04:17 0AFFPATAN:S 1 21024861504E0000000922000000000C07FFPATAN00000000FCE 548E77E8041F0750207007F42C3C58000004154227BE0656518E71F0052E2E000844EB9A 6FFPSIN84200754CDF00F8FFD 54E5E4E75FAD :MASM20 R3.2 24-Oct-86 15:04:11 0CFPSQRT:S 1 11024861504E00000001CC04SQRT00000000C05.SQRT00000000FBF 200000000054E56FFFC548E71F0052E2E000844EB9A 7FFPSQRT84200754CDF00F8F9C 54E5E4E75FAD 062044BE86F04 5630A46175CF464EB9A 6FFPDIV85040700434440750C07001F563047C00FA3 56038EEAF57C002A3C520000000441F9A 8FFPTHETA9 00000004B0847218F64 5740160065E4A4DA845DC90280752605E4A359E836AF052E045888FFC 55202E28B551C9FFF244EB9A 8FFPTNORM852E064A1F5670C2E:MASM20 R3.2 24-Oct-86 15:04:11 0CFPSUB:S 1 11024861504E000000020C05FPSUB00000000C06.FPSUB00000000FA3 200000000054E56FFFC548E71F0052E2E000852C2E000C44EB9A 6FFPSUBF52 84200754CDF00F854E5E4E75F64 :MASM20 R3.2 24-Oct-86 15:04:12 0CFPTAN:S 1 113C5C90FDB41F39 44EB9A 6FFPSUB851C1F4A074670650206008048E0654CDF017E44E75FF2 :MASM20 R3.2 24-Oct-86 15:04:18 0AFFPDIV:S 1 11024861504E0000000A0C06FFPDIV000000282000000000F22 58EFC000054A86662048EBC5FFFFFF7F44A075003C000254E75484644847F75 5BD0760EA5024861504E00000001CC03TAN00000000C04.TAN00000000FD6 200000000054E56FFFC548E71F0052E2E000844EB9A 6FFPTAN84200754CDF00F8F04 54E5E4E75FAD :MASM20 R3.2 24-Oct-86 15:04:13 0CCOSH:S 1 11024861504E000000018C06FPCOSH00000000C05.COSH00000000FDF 2000000006BFA2E3C50000000054E751A06567D42807567E476804DA45FE7 5D844B7055B7049805569E042075484748465BE466B085D83C0002469C8F06 5E29F484751A03BB445E24C2607586C63A035C6C69E83548474846FEB 5360642035C6C59E835640A260654203DE8359A7C000152606484344247F49 58EC3484556B0A3054E56FFFC42F0752E2E000844EB9A 7FFPCOSH8520072E1F44E5EF98 44E75FA1 :MASM20 R3.2 24-Oct-86 15:04:14 0CSINH:S 1 11024861504E000000018C06FPSINH00000000C05.SINH00000000FD0 200000000054E56FFFC42F0752E2E000844EB9A 7FFPSINH8520072E1F44E5EF93 44E75FA1 :A074DA855983C000153E053A074DABC50000008042E05FC9 51E04678244E75FBB :MASM20 R3.2 24-Oct-86 15:04:20 0AFFPEXP:S 1 21024861504E0000001002000000000C06FFPEXP00000026F1F 53C1F4A0656A047E00560087EFF4E20F5003C000254CDF017E54E752E3CFBE 58000004154FEF001E54MASM20 R3.2 24-Oct-86 15:04:14 0CTANH:S 1 11024861504E000000018C05.TANH00000000C06FPTANH00000000FE5 200000000054E56FFFC42F0752E2E000844EB9A 7FFPTANH8520072E1F44E5EF9A 44E75FA1 :MASM20 R3.2 24-Oct-86 15:04:15 0AFFPADD:S 1 11024861504E0000000A074E75548E77E8053F0767EA50207007F42407F0D 42C3C5B8AA3B4144EB9A 7FFPMUL28569BE1A0741C075040500604440550C050018FEE 46FAE50C05002056C22EAAF51E87EBAF51E062C3C5B172184044EB9A 7FFPMUL2FD8 852C072E0244EB9A 6FFPSUB8524076004542172E0244207504020043F70 4440250C!     02001F563027E005E4AF7A0042C3C526A3D100441F9A 8FFPHTHETFE3 85740072035613659885534272095612E598855342720A4612654A2F0001F4A 56A04448554417DC8544EB9A 8FFPTNORM852E06DE1756B00FF3456700FF30F83 4548F54CDF017E54E7552425260528065E4A3E4A454A876B0C5DA84DC83FA7 4 E8460F657A002C3CFDF 5EC9162404283C53243F6A85E7876B045448644845DE8441F9A 8FFPTHETAFE9 85721774FF55242260552806E4A35E4A44A8756B0C9A845DC839E98FA1 551C9FFEA5600ADA8459C83DE98551C9FFDE5322F001C56A24520146632F8D 5613C2E0652C0561365670E4EB9A 6FFPDIV854CDF0179E98551C9FFEA54E759A8459C83DE98551C9FFDE44E75F13 :MASM20 R3.2 24-Oct-86 15:04:22 0AFFPLOG:S 1 21024861504E0000000D02000000000C06FFPLOG00000000F2A 54A07670E46A1450207007F4610E5003C000254E757EFF44EF9900000000CFB5 8548E77E8041F0751E3C004142C3C5800000 E5548F4E7542E3CF1E 5FFFFFF7F560F0670252C05611852E064A0754CDF017E5548F4E7542F05F92 4610852F46001852C1F60E6528066B0C40C865000000FF5620C7C0044E75FEC 5E08452845660260F444EF9A 8FFPTNORM8F85 :MASM20 R3.2 24-Oct-86 15:04:27 0AFFPSQRT:S 1 11024861504E0000041524074EB9A 6FFPADD84C547F27 44EB9A 6FFPSUB852C024EB9A 6FFPDIV84674E5040700434440750C07001FFA5 563027E005EEAF7C0042A3C520000000441F9A 8FFPHTHET8572167401FD7 56006E4A459A84DC905280726055E4A39E8356AF02E04558885202F0A 4E28B551C9FFF257E004EB9A 8FFPTNORM85  00C42000000000C07FFPSQRT0000000CF64 50207007F461065003C000254E751607567566BEE5E20B640455203E28FF3A 506030020448435363C00175EE8F280752A072C08541FA003A42E3C500800000F4A 5988704855012000005600C07C752805D88452A049A9849A8755BCBFFF2FF8 55ACBFFF256302528752046704520652E06240747C00F78 41C1F5040600415672C120656A0244065E09E7A474DC8655BCDFFFC41C05F92 50201008058C012E3C5B172184044EB9A 7FFPMUL2852C024EB9A 6FFPADDFEE 854CDF017E44E75F56 :MASM20 R3.2 24-Oct-86 15:04:23 0AFFPMUL2:S 1 11024861504E000000086C07FFPM  648435E18F64045E397520351E034E75500100000F55 500080000500040000500020000500010000500008000500004000500002000FAA 500001000500000800500000400500000200500000100500000080500000040FAB 500000020500000010500000008500000004500000002500000001500000000FB5 500000UL2000000002000000000FD4 51A0767525180667685DA45D84457680B7045B705DA045695E1803F25 5B945E25D548453A0654207420553805C8C754844260754843C6C5F35 5D883484652606C6C75D88342445D904484454847CEC6548464845F11 5DE846A0C4068750000008051E05671A54E755305569146512578  000F05 :MASM20 R3.2 24-Oct-86 15:04:28 0AFFPHTHET: 1 11024861504E0000000602000000000C08FFPHTHET00000000F74 51193EA7A5082C577D50405624750200AB115010015585008002AA500400055FA6 50020000A500100001500080000500040000500020000500010000500008000F9B 500004040DE84F36 5DE8764045E297520551E05670254E757E0054E756AFA5BD070087FF9 5FFFFFF7F44A075003C000244E75F6E :MASM20 R3.2 24-Oct-86 15:04:25 0AFFPSIN:S 1 21024861504E00000017A2000000000C06FFPSIN0000001EFFF C06FFPCOS0000000CC06FFPTAN00000006C08FFPSINCS00000 00500002000500001000500000800500000400500000200500000100FB1 500000080500000040500000020F8D :MASM20 R3.2 24-Oct-86 15:04:29 0AFFPTHETA: 1 11024861504E00000006C2000000000C08FFPTHETA00000000F6F 51921FB5450ED63382507D6DD7E503FAB753501FF55BB500FFEAAD50000053F3CFFFEF0D 4602453F3CFFFF4601453F3C00014601850C0700B856212548F54A074E75FD1 542674A0746BEE50C070038463EE548E77E8052407DE0750C07008A46350FC2 50C0700A84630C5003C000254CDF017E5548F4E7542C3C5A2F9833E42E02FAB 44EB9A 7FFPMUL2841A0750205007F50405005854405 7FFD55F77 5003FFFAA5001FFFF55000FFFFE50007FFFF50003FFFF50001FFFF50000FFFFF2A 500007FFF500003FFF500001FFF500000FFF5000007FF5000003FF5000001FFF25 5000000FF50000007F50000003F50000001F50000000F500000007FE6 :MASM20 R3.2 24-Oct-86 15:04:30 0AFFPTNORM: 1 78FF54204EBAC5000400FFF29 5CE842C3C5C90FDB4344EB9A 7FFPMUL2852C072E0244EB9A 6FFPSUB8FF7 52407283C50C90FDAA52E02420754A026B1A5040200464440250C02001FF46 563027E005E4AFBE8456F249E8459E8460F65040200C64440250C02001FF01 563027E005E4AF448754484BE8456C069E845921024861504E00000003CC08FFPTNORM000000002000000000F3D 4283C50000004254A86673056A0644865183C00C24BCBC500007FFF46206FF4 448465983C00104DC8655BCCFFFC54A066A0E4DCBC50000010056406E296F86 5D83C000151C044E75FE0 :MASM20 R3.2 24-Oct-86 15:04:31 0AFFPABS:S 1!      11024861504E000000010C06FFPABS000000002000000000F56 50207007F44E75C06FFPNEG0000000654A07670450A07008044E75F11 :MASM20 R3.2 24-Oct-86 15:04:32 0AFFPCMP:S 1 11024861504E00000001CC06FFPCMP000000002000000000F2F 54A066A0C54A076A085BC07660A5BC874E755Bdptoil:O 000031A7F03 G0:.DPTOI dptoil:O 000031A7G0:.DPTOL dptoil:O 000031A7F97 G0:.CVTLF_ dptosp:O 000032B2G0:.DPTOSP dptosp:O 000032B2F0C G0:.EXP exp:O 00003388G0:.FABS fabs:O 000037D7FBD G0:.SPABS fE0666025BE864E75FC5 C06FFPTST0000001854A074E75FBB :MASM20 R3.2 24-Oct-86 15:04:33 0AFFPPWR:S 1 11024861504E00000002A2000000000C06FFPPWR00000000FFE 54A076A0C50207007F461065003C000254E754EB9A 6FFPLOG8548E71C00F8A 44EB9A 7FFPMUL2854CDF003844EF9A 6FFPabs:O 000037D7G0:.FMOD fmod:O 00003866F2D G0:.FREXP frexp:O 0000395EG0:.CVTIL_ iltodp:O 00003A20F97 G0:.ITODP iltodp:O 00003A20G0:.LTODP iltodp:O 00003A20FA3 G0:.CVTIF_ iltosp:O 00003B21G0:.ITOSP iltosp:EXP8F01 :MASM20 R3.2 24-Oct-86 15:04:34 0AFFPSINH:S 1 21024861504E0000000BA2000000000C07FFPSINH00000034F93 C07FFPCOSH00000000C07FFPTANH0000006E42F0650207007F44EB9A 6FFPEXPFC6 8569202F0752C072E3C58000004144EB9A 6FFPDIV852C1F4EB9A 6FFPADDFD6 85670653O 00003B21F3A G0:.LTOSP iltosp:O 00003B21G0:.LOG log:O 00003C39FBF G0:.LOG10 log:O 00003C39G0:.MUL10_ mul10:O 0000410DF6D G0:.POLYF_ polyf:O 000041A8G0:.POLYL_ polyl:O 000042B8F7A G0:.POW pow:O 07568027E0054CDF004054E752F0644EB9A 6FFPEXP84692AF02 52F072C0742E3C58000004144EB9A 6FFPDIV852C174EB9A 6FFPADD846706FB0 55307680257E002C0752E1F4EB9A 6FFPSUB854CDF004054E752F0644A07F4B 567305207569304EB9A 6FFPEXP8569322F0742C3C58000004144EB9A 6FFPADDF27  000043CBG0:.LL_ pow:O 000043CBFB9 G0:.POWL powl:O 000044EDG0:.LI_ powl:O 000044EDFEE G0:.SINH sinh:O 00004685G0:.COSH sinh:O 00004685F39 G0:.SPSUB spadd:O 000048C5G0:.SPADD spadd:O 00842F0752E2F000444EB9A 6FFPSUB852C1F4EB9A 6FFPDIV85588F2C1FF1B 54E752E3C5800000825E21760F242E3C580000041460EAFF7 :MASM20 R3.2 24-Oct-86 15:04:35 0048C5F51 G0:.SUBF_ spadd:O 000048C5G0:.ADDF_ spadd:O 000048C5F4D G0:.SPACOS spasin:O 00004B42G0:.SPASIN spasin:O 00004B42F3F G0:.SPATAN spatan:O 00004E5DG0:.SPATAN2 spatan:O 00004E5DF18 G0:.CVTAF_ spatof:O 000G0:.ACOS asin:O 00001016G0:.ASIN asin:O 00001016F73 G0:.ATAN2 atan:O 000015E3G0:.ATAN atan:O 000015E3F4C G0:.CVTAL_ atof:O 00001C0FG0:.ATOF atof:O 00001C0FFBF G0:.DPSUB dpadd:O 00001F6CG0:.DP05133G0:.SPATOF spatof:O 00005133F58 G0:.SPCMP spcmp:O 000051CEG0:.DIVF_ spdiv:O 0000526CF08 G0:.SPDIV spdiv:O 0000526CG0:.SPEXP spexp:O 000054E7FF9 G0:.SPINT spint:O 000057BBG0:.SPLOG splog:O 00005886FADD dpadd:O 00001F6CF75 G0:.SUBL_ dpadd:O 00001F6CG0:.ADDL_ dpadd:O 00001F6CF47 G0:.DPCMP dpcmp:O 00002343G0:.CMPL_ dpcmp:O 00002343F6B G0:.DPDIV dpdiv:O 00002446G0:.DIVL_ dpdiv:O 00002446F57 G0:.DPIF9 G0:.SPLOG10 splog:O 00005886G0:.MULF_ spmul:O 00005B54FE0 G0:.SPMULT spmul:O 00005B54G0:.SPNEG spneg:O 00005D6BFC9 G0:.FF_ sppow:O 00005DE1G0:.SPPOW sppow:O 00005DE1F16 G0:.FI_ sppowl:O 00005EDFG0NT dpint:O 000027DBG0:.DPMULT dpmul:O 000028DEFD2 G0:.MULL_ dpmul:O 000028DEG0:.DPNEG dpneg:O 00002CE2F14 G0:.SIN dpsct:O 00002D61G0:.COS dpsct:O 00002D61FE5 G0:.TAN dpsct:O 00002D61G0:.CVTLI_  :.SPPOWL sppowl:O 00005EDFF25 G0:.SPSIN spsct:O 0000603DG0:.SPCOS spsct:O 0000603DF01 G0:.SPTAN spsct:O 0000603DG0:.SPSINH spsinh:O 000063CFF7E G0:.SPCOSH spsinh:O 000063CFG0:.SPSQRT spsqrt:O 00006579FDE G0:"     !.SPTANH sptanh:O 0000666DG0:.CVTFL_ sptodp:O 00006812F1F G0:.SPTODP sptodp:O 00006812G0:.CVTFI_ sptoil:O 000068E3F09 G0:.SPTOI sptoil:O 000068E3G0:.SPTOL sptoil:O 000068E3F47 G0:.SQRT sqrt:O 000069E9G0:.TANH )'C5407A124F4263C5101EB84244EB9A 6.ADDL_852406260744EB9A 6.MULL_F97 84243C5C06486C04263C53E2B87CB44EB9A 6.ADDL_852F012F00520062207F11 4243C5BFE64BBD4263C5B5E61E6444EB9A 6.MULL_84243C540244E174263CF9D 564EC392744EB9A 6.ADDL_852406260744EB9A 6.MULL_84243C5" tanh:O 00006B0DFE7 G0:.FOVR_ FPERR:O 00006F0CG0:.LOVR_ FPERR:O 00006F0CF10 G0:.IDIV0_ FPERR:O 00006F0CG0:.FDIV0_ FPERR:O 00006F0CF1B G0:.LDIV0_ FPERR:O 00006F0CG0:.FARG_ FPERR:O 00006F0CF31 G0:.LARG_ *(C043D82CF87 4263C5A9A6DA9E44EB9A 6.ADDL_852406260744EB9A 6.MULL_84243C5404C9AA7F46 4263C5360AD48944EB9A 6.ADDL_852406260744EB9A 6.MULL_84243C5C03B5E55F78 4263C5A83A0A6144EB9A 6.ADDL_852406260744EB9A 6.MULL_85241F261FF96 44EB9A 6.DIVL_85241F261F44EB9A 6#! FPERR:O 00006F0CG0:.CEIL mceil:O 00007073F1F G0:.ETOA metoa:O 00007251G0:.FLOOR mfloor:O 00007C41F2C G0:.FTOA mftoa:O 00007E20G0:.LDEXP mldexp:O 000087B5F1E G0:.MODF mmodf:O 000089A1G0:.SCANF msc+).MULL_844EB9A 6.ADDL_8543EE0008FD1 54A9F662054A44671242439900000021C8426399000000220844EB9A 6.ADDL_F16 854A516A2A50840001F560244A5156B0C4A804670450840001F54A446714F16 441F99000000214852430400052630400444EB9A 6.ADDL_854CDF00D8F45 54E5E4E755400921FB55444$"anf:O 00008AD9F35 G0:.FSCANF mscanf:O 00008AD9G0:.SSCANF mscanf:O 00008AD9F5F G2:.__SPLSET mscanf:O 00008AD9G0:.SPETOA mspetoa:O 0000A768F56 G0:.SPFTOA mspftoa:O 0000AF58G0:.UITODP mutodp:O 0000B736FBF G0:.ULTODP muto,*2D1853FF921FB554442D18FDE :MASM20 R3.1a 09/04/86 18:00:17 0Aatan:S 5 00904861800E00000024AC06.ATAN200000000C05.ATAN00000070F95 54E560000543EE0008545EE001052229000452011661454A516A524203CF7E 5400921FB4223C554442D1854E5E4E7542F035262A000452412660E4%#dp:O 0000B736G0:.UITOSP mutosp:O 0000B90CFDD G0:.ULTOSP mutosp:O 0000B90CG0:.FPRINTF mprintf:O 0000BAD5F58 G0:.PRINTF mprintf:O 0000BAD5G0:.SPRINTF mprintf:O 0000BAD5F19 G0:.DPTOUI mdptou:O 0000CE8CG0:.DPTOUL mdptou:O -+2039F09 900000023A842239900000023E8560224EB9A 6.DIVL_85613A4A5246A16FC8 508C0001F4243C5400921FB4263C554442D1844EB9A 6.ADDL_854A516A04F5B 508C0001F5261F4E5E44E7554E5600005202E00085222E000C561044E5EF2E 44E75548E7970050880001F54245243C53FF00000576004EB9A &$ 0000CE8CFC5 G0:.SPTOUI msptou:O 0000D0DDG0:.SPTOUL msptou:O 0000D0DDF97 0Aasin:S 5 00904861800E000000224C05.ACOS00000000C05.ASIN0000000CFBB 54E560000543EE000857408600A54E560000543EE000847400548E73B00F5C 52019221150880001F4243C53FE000.,6.CMPL_FCE 856C0EC5405C7414EB9A 6.DIVL_85064500104243C53FD126144263C55E9ECD56FFA 44EB9A 6.CMPL_856C3A2C0052E01243C53FFBB67A4263C5E8584CAA44EB9FB2 A 6.ADDL_85CD40CF4144EB9A 6.MULL_84243C53FF00000576004EB9A 6.SUBL_F39 852406260744EB9A 6.DIVL_85504524005D'%00576004EB9A 6.CMPL_85644A7808FBB 59897243C53FF0000044EB9A 6.CMPL_856E08672E44EF9A 6.LARG_84C540F7A 5C7414EB9A 6.SUBL_852F012F0050457001044EB9A 5.SQRT840680580100000F46 5240026015201F221F5601E700047200560000146528170C8053E500000FBE 56500013A52400260144/-4820C8257CA00000565000102F9F 52F012F0052400260144EB9A 6.MULL_852C002E015240026014203CFA0 5402E0C494223C5E14AC71044EB9A 6.ADDL_844EB9A 6.MULL_84243C5404DCA0AF54 4263C5320DA3D444EB9A 6.ADDL_852406260744EB9A 6.MULL_84243C540558A12F98 4263C5040B6DA444EB9A (&EB9A 6.MULL_8548E7300052C002E01524002601FDD 4203C5C037D2E84223C56EF9861E44EB9A 6.ADDL_844EB9A 6.MULL_84243CF21 54062DE7C4263C596591C6E44EB9A 6.ADDL_852406260744EB9A 6.MULL_FB4 84243C5C077DDCE4263C5FC56A84744EB9A 6.ADDL_852406260744EB9A 6.MULL_F3E 842430.6.ADDL_852406260744EB9A 6.MULL_84243C54044887CF8C 4263C5BCC495A844EB9A 6.ADDL_852F012F005200622074243C5BFEACD7AFF7 4263C5D9B187BC44EB9A 6.MULL_84243C5C020FD3F4263C55C8D6A6344EB9F71 A 6.ADDL_852406260744EB9A 6.MULL_84243C5C034817F4263C5B9E2BCCAF74 44EB9"     1/A 6.ADDL_852406260744EB9A 6.MULL_84243C5C02B60A64263C551061CE1F8D 44EB9A 6.ADDL_852406260744EB9A 6.MULL_85241F261F44EB9A 6.DIVL_F27 85241F261F44EB9A 6.MULL_844EB9A 6.ADDL_855145670646B1850840001FF76 441F99000000232852430500052630500444EB9A 6.ADDL_854A997FCFF8 54E75928359182640854481408050845000F54A8066145200167E444240F82 5484048414424150446001056F1060E850800001656690D2815E3905346F97 566F272005700060C044EB9A 6.LOVR_8460B8F28 :MASM20 R3.1a 09/04/86 18:00:21 0Adpcmp:S 5 00904861800E00000003CC06.DPCM20F6A04F51 50840001F54CDF00E844E7553FE0C1525382D736553FF921FB554442D1853FF0C152FD1 5382D7365FCF :MASM20 R3.1a 09/04/86 18:00:18 0Aatof:S 5 00904861800E000000132C07.CVTAL_0000000EC05.ATOF00000000F08 54E5600005246E0008561044E5E44E75548E73300570007200:8P0000000042F03543EF0008FAB 52419261952019221944EB9900000001A854CDF000844E75C06.CMPL_0000001AFAE 548E7F00054A806A0854A826A045C540C7415B48066085B6816404544FC0019F3C 54CDF000F44E75F95 :MASM20 R3.1a 09/04/86 18:00:21 0Adpdiv:S 5 00904861800E00000014AC31574007C00F75 57E001C1A50C06002B4670A50C06002D46606508C7000041C1A50C060030F23 4653250C0600395622C0C805199999994630A508070002566E45282460E0F2C 44EB9A 7.MUL10_850206000F5D2867C004D186508070002567CA5382460C6F38 50C06002E46606508C70002567BA2F024740050C06002;906.DPDIV0000000042F03543EF0008FA5 54CD9000F56104261F44E75C06.DIVL_00000010548E73F0052A012800F14 56700011252E032C0256700011054842300252F0002845000FFFFF40286F7C 5000FFFFF508C40014508C60014576204A87566044A0656766700047200F49 4243C5004000005487A00105B8866242B4672850C06002DF27 4671E50886000550C0600454670650C060044566361C1A50C06002B4670AF3B 50C06002D46606508C7000141C1A50C0600304651250C0600394620C50206000FF4F 5C4FC000A5D48660E65080700015670244825D597534A4243C543300000F53 576000C805001000005640C808244EB9A 6.S<:065654ABA8756546424356028C340F6F 56702613C474005080100014671050801000046606508010002567045881FB9 5D182E2885E291E2885E291606E5BC84621256504BE855620CD282FF2 59A879986566044A855670AE29A56B06DA855E39460E054E754242FF1 5B88662065650CBA8756508E28C5E295E25254253UBL_856728601C40C80500200000FDD 5650C06825001000005E288E291560EC02805000FFFFF48082508070000F4A 46704508C0001F5241F2F0152F00203C540240000572004EB9A 4.LI_F96 85241F261F44EB9A 6.MULL_854CDF00CC44E75F9E :MASM20 R3.1a 09/04/86 18:00:19 0Adpadd:S 5 0090=;43EA8E588C63004FEE 5484048455380588C65300448455380588C65320448415380288C6F79 5320448445E24EB846565107C0055281D18650800001556704538149186F76 53C1F3E1F5E35EE35F508C600015020700E1504467FE0504477FE049C47FDE 569249C43506467FE04E25E50246FFF050880001454846424644861800E000000156C06.DPSUB00000000C06.DPADD00000014F07 42F03543EF000854CD9000F44EB9900000002885261F4E7542F03543EF0008F73 54CD9000F44EB9900000003285261F4E75C06.SUBL_00000028C06.ADDL_00000032FAE 54A82671450842001F560044A825670A4A805660A2203520024E7544A80><64808654CDF00FCFE0 54E754EB9A 7.LDIV0_8560F26A0844EB9A 6.LOVR_8560E8720047000F5B 460E2FA9 :MASM20 R3.1a 09/04/86 18:00:22 0Adpint:S 5 00904861800E000000044C06.DPINT0000000054E560000FC8 472FF543EE000853011E8485024007FF5044003FF46B245044000344640AF075F64 44E75548E73F0052C002E02402805000FFFFF402825000FFFFF508C00014FAF 508C200145D281E3905D683E3925D281E3905D683E39252A07484644847F0F 53A06E84E4E84F5024607FF5024707FF5380698475672C620A54444C540FEE 5C741CF464484550C4400374623450C4400085650C16025E08AE09B451?=1 4444050C40002056208E1A952019C291460125044000205E1A9C29147000F5C 5C141600457200700054E5E4E75F10 :MASM20 R3.1a 09/04/86 18:00:23 0Adpmul:S 5 00904861800E000000178C07.DPMULT0000000042F03F2F 543EF000854CD9000F56104261F44E75C06.MULL_00000010548E7FF008644F04 566F060085E28AE2935534466F85280548445BB446B565D283D182F0D 50800001756708E2885E29152465677E74005080100014671E508010000FA0 466065080100025671254814D18250800001756708E2885E291524646758F5F 5E288E2915E288E2915088000145EB4EE3555E256484654246808654CDF00@>42202FE0 54840340054841360150242000F50243000F508C20004508C300044E358FB1 4E35950240FFE156700011050241FFE1567000108504407FE0504417FE04D240F29 5690000F053F01700057200780057A007C0054AAF00064660854AAF000EF51 56768601C53C2F00085CCEF000C5424648464D28653C2F000#     A?65CCEF000EFD5 5424648464D28653C2F00045CCEF00105424648464D28653C2F00084CCC3FCB 5D286D18453C2F00065CCEF000C5D286D18453C2F00045CCEF000E4D286FAA 5D1843C025CCEF00105D286D18453C2F00064CCC353E2F000E5CEC2DC87F90 4DB8453E2F00045CEEF000C5DC87DB8454845D08552A0648IGNTFF2 850880001F57600243C54330000044EB9A 6.ADDL_8520014A5756A024480FB9 5508F241F5261F4E75FCC :MASM20 R3.1a 09/04/86 18:00:27 0Adptosp:S 5 00904861800E00000002AC07.CVTLF_00000008C07.DPTOSP00000000FA1 5202F00045222F000854A80671C5E999028150000000E5D08B@46542464245FD0 54845D2864D18553C2F000C5CCC2D08653C2F00045CCC3D0865C4C34842FC0 5D0823E1F5080000194670850647002056806602A5D281E390508010004F87 46730508010003466065080100055672406815000000104D18450800001AFBB 46716506470020568106A0844EB9A 6.LOVR_8560287200JH0E29140480F6F 57FE000004068050FE000005E588808144E75FE8 :MASM20 R3.1a 09/04/86 18:00:27 0Aexp:S 5 00904861800E000000194C04.EXP0000000054E560000FE8 5202E000852200D28140C815810C5800565124A8056B064EB9A 6.LOVR_FD0 857000720054E5E4E755222E000C548E7D70CA570006022506477FE0FB4 56FF4E25F50247FFF054847424757C04E2884E291551CEFFFA402805000FFFFFF56 58087508F54CDF00FC44E75F93 :MASM20 R3.1a 09/04/86 18:00:24 0Adpneg:S 5 00904861800E00000000EC06.DPNEG000000005202F0004FE3 5222F000850840001F44E75FF0 :MASM20 KI04243C53FF715474263C5652B82FDFAF 44EB9A 6.MULL_856B08243C53FE0000056006243C5BFE00000576004EB9F63 A 6.ADDL_852F012F0044EB9A 6.DPINT85508F2C0052E014EB9A 7.CVTLI_F2A 85CD40CF4152A06674452C002E014243C5BF2BD0104263C55C610CA844EB9F5F A 6.MULL_85CD40CF414243CDBR3.1a 09/04/86 18:00:25 0Adpsct:S 5 00904861800E000000188C04.SIN00000062C04.COS00000032FE9 C04.TAN0000000054E56000042F0352F2E000C52F2E00084612252F410004FE2 42E8052F2E000C52F2E000856142508F5241F261F44EB9A 6.DIVL_84261FF28 54E5E4E7554E560000548E71F0LJ53FE63000576004EB9A 6.MULL_8524002601FCA 5201F221F44EB9A 6.SUBL_852406260744EB9A 6.SUBL_852F012F00FA7 420175222F000452400260144EB9A 6.MULL_852C002E014243C53EF152A4F73 4263C56F58DC1C44EB9A 6.MULL_84243C53F7C70E44263C56FB3F6DE44EB9F54 A 6.ADDL_8524062607EC0578017A00543EE000852019221150880001FF72 52F012F004243C53FF921FB4263C554442D1844EB9A 6.ADDL_84602454E560000F43 548E71F00578007A00543EE000852019221152F012F0046A0A50880001FF57 42E80508C5001F4243C53FD45F304263C56DC9C88244EB9A 6.MULL_84243CFB7 53FE00000576MK44EB9A 6.MULL_84243C53FCFFFFF4263C5FFFFFFFFFE5 44EB9A 6.ADDL_85241F261F44EB9A 6.MULL_852F012F00520062207FC4 4243C53F403F994263C56FDE380844EB9A 6.MULL_84243C53FAC718E4263CF97 5714251B244EB9A 6.ADDL_852406260744EB9A 6.MULL_84243C53FE00000FC3 576004EB9A 6FD004EB9A 6.ADDL_852F012F0044EB9A 7.CVTLI_8508000000FC6 4670450845001F44EB9A 6.DPINT85508F4A445670E243C53FE0000047600F68 44EB9A 6.SUBL_852C00674052E01243C5BEE2AEEF4263C54B9EE59E44EB9F9D A 6.MULL_85CD40CF414243C540092200576004EB9A 6.MULL_8524002601FF0 520NL.ADDL_85241F261F44EB9A 6.SUBL_85C540C74150840001FFE0 44EB9A 6.DIVL_84243C53FE00000576004EB9A 6.ADDL_855245E94D44845FA9 54245D08554CDF00E854E5E4E75FB5 :MASM20 R3.1a 09/04/86 18:00:28 0Afabs:S 5 00904861800E00000000EC05.FABS00000000C06.SPABS0000000GE1F221F44EB9A 6.SUBL_852406260744EB9A 6.SUBL_856004201FFB5 5221F24005D4820C8257CA000005650E43F990000001408578064EB9FF1 A 7.POLYL_84BB8054CDF00F854E5E4E7553CE880FF56993DF945BD6AE420F5C 5DC08499C53DE6123C5686AD4305BE5AE64554B5DC0AA53EC71DE35A524F063F85 5BOM4F87 5222F00085202F000450880001F44E75F19 :MASM20 R3.1a 09/04/86 18:00:29 0Afmod:S 5 00904861800E00000003EC05.FMOD0000000054E560000F6B 42F03543EE000854CD9000F52F012F0044EB9A 6.DIVL_852F012F0044EB9F17 A 6.DPINT85508F4EB9A 6.MULL_85240026015201F221FHFF2A01A051A013E1A53F8111115111110AF5BFC5555555555555453FF00000F41 500000000F05 :MASM20 R3.1a 09/04/86 18:00:26 0Adptoil:S 5 00904861800E000000038C07.CVTLI_0000000CC06.DPTOI00000000F04 C06.DPTOL000000005202F00045222F0008561024E75548E7F00044EB9A 6.DPIPN44EB9A 6.SUBL_F6D 85261F4E5E44E75F62 :MASM20 R3.1a 09/04/86 18:00:30 0Afrexp:S 5 00904861800E00000002AC06.FREXP0000000054E560000FB1 541EE000853010E8485024007FF5044003FE5226E00104328050250800FF63 500503FE052018221054E5E4E75F00 :MASM20 R3.1a 09/04/8#     QO6 18:00:30 0Ailtodp:S 5 00904861800E000000034C07.CVTIL_0000000CC06.ITODP00000000F08 C06.LTODP000000085302F0004548C060045202F000452F032F02442A7F57 522006A0653EBC80005448176004243C543300000520024EB9A 6.SUBL_F01 85D09F241F5261F4E75F84 :MASM20 R3.1a 09YW.MULF_852F00221944EB9A 6.MULF_8522194EB9A 6.ADDF_F80 8522174EB9A 6.MULF_852E80201144EB9A 6.ADDF_852200201F44EB9F98 A 6.DIVF_85221F4EB9A 6.MULF_844EF9A 6.ADDF_8F0A :MASM20 R3.1a 09/04/86 18:00:34 0Apolyl:S 5 00904861800E000000048C07.POLYL_000000005RP/04/86 18:00:31 0Ailtosp:S 5 00904861800E00000003EC07.CVTIF_0000000CC06.ITOSP00000000FDF C06.LTOSP000000085302F0004548C060045202F000452F012F0040297F58 58000000056A02448040C805007FFFFF56308E288506570080560F0223CF3F 54B000000580814EB9A 6.SUBF_85D09F2ZX48E7C300F28 52400260144EB9A 6.MULL_852C002E0152419261944EB9A 6.MULL_8FC1 52419261944EB9A 6.ADDL_852406260744EB9A 6.MULL_8551CCFFEA42419F85 526194EB9A 6.ADDL_854CDF00CC44EF9A 6.MULL_8F70 :MASM20 R3.1a 09/04/86 18:00:35 0Apow:S 5 00904861800E00000SQ21F44E75F4D :MASM20 R3.1a 09/04/86 18:00:32 0Alog:S 5 00904861800E0000001C0C04.LOG00000000C06.LOG1000000008F2F 54E56000057200600654E56000047207543EE0008530116E0A44EB9A 6.LARG_FF4 856000019E4E8485044003FE448C0548E7F3005201922114243C53FE00000FDD 5[Y004CC04.POW0000000054E560000FCD 42F03543EE000854CD9000F56106261F54E5E4E75C04.LL_0000001644A82F6A 567284A804672C548E7F00044EB9A 4.LOG84508F54CDF000C44EB9A 6.MULL_F1D 852F012F0044EB9A 4.EXP85508F4E754203C53FF00000572004E75FBC :MASM20 R3.1a 09/04/86 18:00TR760002805000FFFFF580820C8053FE6A09E56218650840C815667F3BCCFCF 5620E539744EB9A 6.SUBL_852C002E01560102C0052E014EB9A 6.SUBL_F08 844EB9A 6.ADDL_85CD40CF414048050010000044EB9A 6.SUBL_842400F71 526012006522074EB9A 6.DIVL_852F012F0052400260144EB9A 6.MULL_F45\Z:36 0Apowl:S 5 00904861800E00000007AC05.POWL0000000054E560000F33 543EE000854CD90007561044E5E44E75C04.LI_0000001254A82675A44A80F7C 4675E548E73E00528026A02544847C0042A3C53FF000005E28C672046412FF5 5CD41CB4052606240544EB9A 6.MULL_85CD41CB405260124004US 852C002E014243C5C041D5804263C54B67CE0E44EB9A 6.ADDL_8524062607F12 44EB9A 6.MULL_84243C5407380834263C5FA15267D44EB9A 6.ADDL_842406F66 526074EB9A 6.MULL_84243C5C0880BFE4263C59C0D907744EB9A 6.ADDL_F98 852F012F005200622074243C5BFE944154263C5B356BD2844EB9A][4EB9F2E A 6.MULL_8560DC2606524054EB9A 6.MULL_854A976A0C526012400FE2 5610C4EB9A 6.DIVL_854CDF007C54E7572004203C53FF0000044E75F30 :MASM20 R3.1a 09/04/86 18:00:37 0Asinh:S 5 00904861800E0000000BEC05.SINH00000000C05.COSH00000078F8B 54E560000543EE0008VT 6.MULL_F1E 84243C54030624A4263C52016AFEC44EB9A 6.ADDL_852406260744EB9A 6.MULL_F8B 84243C5C05007FF4263C512B3B59A44EB9A 6.ADDL_852406260744EB9A 6.MULL_F73 85241F261F44EB9A 6.DIVL_85241F261F44EB9A 6.MULL_844EB9A 6.ADDL_FCE 85241F674852F012F00520024EB9A 7^\542A720194221150880001F4670453EBC8000443F9F25 A 6.SUBL_840C8053FD0A3D75626A0C8053E500000565122F045780343F9F7B 9000000048844EB9A 7.POLYL_85281F241F5B5804E5E44E7553E5AE645F5E 567F544E453EC71DE35A556C73453F2A01A051A01A01A53F811111511111110F3C 53FC55555555WU.CVTIL_852C002E014243C53FE63000F07 576004EB9A 6.MULL_85CD40CF414243C5BF2BD0104263C55C610CA844EB9FD0 A 6.MULL_85241F261F44EB9A 6.ADDL_852406260744EB9A 6.ADDL_8F31 54A9F67124243C53FDBCB7B4263C51526E50E44EB9A 6.MULL_854CDF00CCFA1 54E5E4E75FAD :MASM20 R3.1_]55555553FF0000050000000054E560000543EE0008520192211FBC 50880001F542A743F9A 6.ADDL_8548E7C04044EB9A 4.EXP85508F2400F92 52601203C53FF00000572004EB9A 6.DIVL_85C540C7415225F4E9140480F9C 50010000046082F00 :MASM20 R3.1a 09/04/86 18:00:38 0Aspadd:S 5 009XVa 09/04/86 18:00:33 0Amul10:S 5 00904861800E00000001AC07.MUL10_0000000042F02FC9 52F0124005D281E3905D281E3905D29FD1825D281E3905241F4E75F07 :MASM20 R3.1a 09/04/86 18:00:33 0Apolyf:S 5 00904861800E000000046C07.POLYF_0000000042F00F1D 522004EB9A 6`^04861800E0000000C8C06.SPSUB00000000C06.SPADD0000000AFBF 5202F00045222F00084600A5202F00045222F00084600AC06.SUBF_00000014F61 C06.ADDF_0000001E54A81671250841001F560044A81567084A8046608F57 520014E7554A804E75548E778005260028015484348445EE4BEE4C4E188F06 4E18$     a_9508C0001F508C1001F51403940456710620654402C3404C94350C020019F6D 56234E4A94B7445080400085663ED08156406E29055203674E508000007F61 4671A508000006466065080000085670E068050000008056406E29045203F94 5672EEF4B4E0885088000175484342434808354CDF001E54E759081467F6Fig R3.1a 09/04/86 18:00:41 0Aspcmp:S 5 00904861800E00000001CC06.SPCMP0000000054E560000FB4 5222E00085202E000C54A806A0654A816A025C340B28054E5E4E75F2E :MASM20 R3.1a 09/04/86 18:00:42 0Aspdiv:S 5 00904861800E0000000D6C06.DIVF_00000008C06.SPDIV00000b`C9 46406508430008544806BBE5530367045D08060F65700060E044EB9A 6.FOVR_FC2 8460D8F6C :MASM20 R3.1a 09/04/86 18:00:39 0Aspasin:S 5 00904861800E00000010EC07.SPACOS00000000C07.SPASIN00000004FCF 574046002574002F03543EF00084201150880001F40C8053F0000004633AFjh000F9A 5202F00045222F0008548E77800426005670000AA428015670000AA44841F5A 530012F00402835007FFFFF402845007FFFFF508C30017508C400175323C0100F0A 54A0467345700074195B684651054241B8835620605C0596846708F7D 553426B045D68360EE5080000014670E50800000046606508000002ca62 5760496824223C53F8000005B081630644EF9A 6.FARG_856720C34044EB9F6A A 6.SUBF_842F0050457008044EB9A 7.SPSQRT84068058080000052200201FFA9 56016700056070260240C8053980000056566220044EB9A 6.MULF_8548E7C000FD5 52200203C5C0B18D0B44EB9A 6.ADDF_844EB9A 6.MULF_8ki46702F78 55880E4885601A42425B68465065E28BE25254241E08C586C43003F30 548403602586C430035361F381F5E35BE35C508C30001502040001504437F00F92 504447F0059644692449641506437F004E25B50243FF8050880001744843F2C 54243808354CDF001E54E754EB9A 7.FDIV0_8560F26A0844EB9A db4223C540B350EFF89 44EB9A 6.ADDF_85224020174223C5BF01206544EB9A 6.MULF_84223C53F6F166BF98 44EB9A 6.ADDF_85221F4EB9A 6.MULF_8522094EB9A 6.DIVF_84221FF09 44EB9A 6.MULF_844EB9A 6.ADDF_8543EF000454A82661A54A43670C42239F9D 900000010A844EB9A 6.ADDF_854A516A22lj6.FOVR_F9A 8560E87000460E4F90 :MASM20 R3.1a 09/04/86 18:00:43 0Aspexp:S 5 00904861800E0000000FAC06.SPEXP000000005202F0004F8D 52200D28140C81585601EB85650E4A8056B064EF9A 6.FOVR_8570004E75F63 441F990000000F6852F00223C53FB8AA3B44EB9A 6.MULF_856B0A2210ec50840001F5601C4A5146B0CF28 54A80670450840001F54A43670C42239900000010A844EB9A 6.ADDF_8F44 5361F4E75540490FDA53FC90FDAF9A :MASM20 R3.1a 09/04/86 18:00:40 0Aspatan:S 5 00904861800E0000000F4C07.SPATAN0000004CC08.SPATAN200000000F95 5202F0004543EF0008566mkFC4 44EB9A 6.ADDF_856008221044EB9A 6.SUBF_852F004EB9A 6.SPINT8F1F 5588F240044EB9A 7.CVTFI_85C5404A825673022404223C5B95E8083F0B 44EB9A 6.MULF_85C189223C53F31800044EB9A 6.MULF_852200201744EB9F91 A 6.SUBF_8522094EB9A 6.SUBF_852E802017522004EB9A 6.MULF_8F5fd0C4A5156A3C203C540490FDA54E75221146608F26 4203990000000EC85601E4EB9A 6.DIVF_84612654A6F000846A10508C0001FF01 4223C540490FDA44EB9A 6.ADDF_854A6F000446A04508C0001F44E755202F0004F4C 42F0050880001F54242223C53F8000005B280640A5C3404EB9A 6.DIVF_FE5 8550420C80nl1 52240223C53B88530744EB9A 6.MULF_84223C53E7FFFFF44EB9A 6.ADDF_F97 85221F4EB9A 6.MULF_85C189223C53D4CBF5B44EB9A 6.MULF_842210F27 44EB9A 6.ADDF_8522094EB9A 6.SUBF_852200200944EB9A 6.DIVF_8F34 522104EB9A 6.ADDF_855242EF4A5484242425D0824E7553F000000FC6 :Mge53E8930A25632C22404223C53FDDB3D844EB9A 6.ADDF_84C189FF7 44EB9A 6.MULF_84223C53F80000044EB9A 6.SUBF_8522094EB9A 6.DIVF_F27 85584222005D2810C815730000005650C43F990000000DC844EB9A 7.POLYF_FEF 855942670646B1450840001F441F990000000E8852230200044EB9A 6.ADDF_omASM20 R3.1a 09/04/86 18:00:44 0Aspint:S 5 00904861800E00000002EC06.SPINT0000000054E560000F9B 543EE000853211EE4950401007F46B1250401001756410440157001E3A8F7A 54480C09156006700056002201154E5E4E75F42 :MASM20 R3.1a 09/04/86 18:00:45 0Asplog:S 5 00hfF4E 854A9F6A0450840001F44E755BD5086915BEF110F653FB4CCD353F060A91F75 53FC90FDA53F860A91F9E :MASM20 R3.1a 09/04/86 18:00:41 0Aspatof:S 5 00904861800E000000010C07.CVTAF_00000004C07.SPATOF00000000FDC 5246F000444EB9A 7.CVTAL_844EF9A 7.CVTLF_8FD8 :MASM20pn904861800E0000000F0C06.SPLOG00000008C08.SPLOG1000000000F40 4243C53EDE5BD95600274005302F000456E064EF9A 6.FARG_84EE4850400007EF5B 5488048C042F005202F00084223C53F000000402805007FFFFF580810C80F0A 53F3504F35640C539744EB9A 6.SUBF_852240600E522404EB9A 6.SUBF_$     qoF0C 844EB9A 6.ADDF_85C189048050080000044EB9A 6.SUBF_8522002009FD4 44EB9A 6.DIVF_852F00220044EB9A 6.MULF_852240223C5C0D43F3944EB9F80 A 6.ADDF_85C189223C5BF0D7E3C44EB9A 6.MULF_8522094EB9A 6.DIVF_F3D 85221F4EB9A 6.MULF_844EB9A 6.ADDF_85221F673652F00200144yw_84223C53F00000044EB9FE9 A 6.ADDF_852F004EB9A 7.CVTFI_85080000004670450843001F44EB9A 6.SPINTF5D 85588F4A425670C223C53F00000044EB9A 6.SUBF_852400672E4223CF29 53A7DAA2344EB9A 6.MULF_85C540223C54049000044EB9A 6.MULF_842200F96 5201F4EB9A 6.SUBF_8522024EB9ArpEB9F7D A 7.CVTIF_852240223C53F31800044EB9A 6.MULF_85C189223C5B95E8083F87 44EB9A 6.MULF_85221F4EB9A 6.ADDF_8522094EB9A 6.ADDF_842202F38 567064EF9A 6.MULF_844E75F11 :MASM20 R3.1a 09/04/86 18:00:46 0Aspmul:S 5 00904861800E0000000AEC06.MULF_00000008C0zx 6.SUBF_856002201F52200D281F03 40C81573000000565622240522004EB9A 6.MULF_852400223C5362E9C5AFC2 44EB9A 6.MULF_84223C5B94FB22244EB9A 6.ADDF_8522024EB9A 6.MULF_F18 84223C53C08873D44EB9A 6.ADDF_8522024EB9A 6.MULF_84223C5BE2AAAA3F36 44EB9A 6.ADDF_8522024EB9sq7.SPMULT00000000F18 5202F00045222F0008548E77C00538003A0154840484153400360150242007FFCC 50243007F508C20007508C3000750240FF804675E50241FF8056758E358F3E 4E359504407F00504417F005D240693E53002C4C35C0C5C6C45CAC4D083FEF 53A0248455D0856A085064101005680460224D0{yA 6.MULF_8522094EB9A 6.MULF_844EB9FFA A 6.ADDF_85B780361F44E75F40 :MASM20 R3.1a 09/04/86 18:00:50 0Aspsinh:S 5 00904861800E00000007EC07.SPSINH00000000C07.SPCOSH00000046FAE 543EF0004542A7201150880001F4670453EBC8000443F9A 6.SUBF_840C80F68 53F80000056tr8050800000746728508000006FB1 466065080000085671C0680500000080464145064101005680E6A0844EB9F6B A 6.FOVR_85601C700046018506417F0056FF6E25950241FF804E088508800017F83 5484142414808154CDF003E44E75FBD :MASM20 R3.1a 09/04/86 18:00:47 0Aspneg:S 5 009048618|z2360C805398000005650C43F9900000003A844EB9A 7.POLYF_F35 85221FB38044E755BE42E6C25C0E469EF5C22B4F935202F000450880001FF9C 542A743F9A 6.ADDF_852F092F0044EB9A 6.SPEXP85588F22004203CFC3 53F80000044EB9A 6.DIVF_85C340225F54E910480500800000460B6F96 :MASM20 R3.1us00E00000000AC06.SPNEG000000005202F0004FC9 50840001F44E75FC9 :MASM20 R3.1a 09/04/86 18:00:47 0Asppow:S 5 00904861800E00000003AC04.FF_00000008C06.SPPOW00000000F19 5202F00045222F000854A81672654A806728548E7C00044EB9A 6.SPLOGFDB 85588F221F44EB9A 6.MULF}{a 09/04/86 18:00:51 0Aspsqrt:S 5 00904861800E00000003CC07.SPSQRT00000000543EF0004FCB 52011673256A064EF9A 6.FARG_85E288068051FC00000542402F0447802FC0 52200201144EB9A 6.DIVF_844EB9A 6.ADDF_840480500800000551CCFFE8FD6 5281F4E75FBF :MASM20 R3.1a 09/04/vt_852F004EB9A 6.SPEXP85588F4A8044E75F2B 4203C53F80000044E75FBF :MASM20 R3.1a 09/04/86 18:00:48 0Asppowl:S 5 00904861800E000000062C04.FI_00000008C07.SPPOWL00000000F89 5202F00045222F000854A81674E548E77000524016A0254482263C53F800000FA1 5E28A67185640CC7~|86 18:00:52 0Asptanh:S 5 00904861800E000000084C07.SPTANH000000005202F0004F2B 42F0050880001F40C80541102CB456508203C53F800000560540C8053F0C9F53F40 565382F0050657008044EB9A 6.SPEXP85588F223C53F80000044EB9A 6.ADDF_F28 85C3404EB9A 6.DIVF_852200203C53F00wu40522034EB9A 6.MULF_85C740220044EB9A 6.MULF_FF8 8560E4220344EB9A 6.MULF_854A976A0E52200203C53F80000044EB9F1A A 6.DIVF_854CDF000E54A804E754203C53F80000044E75F38 :MASM20 R3.1a 09/04/86 18:00:49 0Aspsct:S 5 00904861800E000000138C06.SPSIN00000036C06.S}000044EB9A 6.SUBF_840680FA5 500800000560140C805398000005650C43F99000000078844EB9A 7.POLYF_F59 854A9F6A0450840001F44E755BB7B11B15BF52E2C65401E2A19F86 :MASM20 R3.1a 09/04/86 18:00:52 0Asptodp:S 5 00904861800E000000028C07.CVTFL_00000004C07.SPTODP00000xvPCOS00000018F90 C06.SPTAN0000000052F2F0004561122E8052F2F000856128584F4221FF2D 44EF9A 6.DIVF_853F0374014760052029000850880001F52F00223C53FC90FDAF79 44EB9A 6.ADDF_8560183F035740076005202F000852F006A0A50880001FFD2 42E80508C3001F4223C53EA2F98344EB9A 6.MULF~000FAE 5202F000452200671E5E390E3915E688048050FE000004068057FE00000F5E 5E291E290402815000000075E6994E75F02 :MASM20 R3.1a 09/04/86 18:00:53 0Asptoil:S 5 00904861800E000000036C07.CVTFI_00000004C06.SPTOI00000000FFD C06.SPTOL000000005202F000452F012F0044%     EB9A 6.SPINT85671C0280F85 5007FFFFF508C0001753217EE4950401009656B04E3A85600444414E2A8F04 54A9F6A0254480221F44E75FBF :MASM20 R3.1a 09/04/86 18:00:54 0Asqrt:S 5 00904861800E000000052C05.SQRT0000000054E560000F34 543EE000852229000452011673E56A084EB9A49 52F2EFFFC52F2EFFF852F2E000C52F2E000844EB9A 6.DPCMP84DFFC500000010FDA 56F00002A42F3C50000000042F3C53FF0000052F2EFFFC52F2EFFF844EB9F6A A 6.DPADD84DFFC50000001052D41FFFC52D40FFF85222EFFFC5202EFFF8FE8 56000000254E5E4E75210000000021000000002200000000F46  6.LARG_856034E28840680FB1 51FF8000047200548E7180057803260142400522290004520114EB9A 6.DIVL_F1B 844EB9A 6.ADDL_840480500100000551CCFFE254CDF001854E5E4E75F03 :MASM20 R3.1a 09/04/86 18:00:55 0Atanh:S 5 00904861800E000000174C05.TANH0000000054E560000F:MASM20 R3.1a 09/04/86 18:00:58 0CMETOA 5 00904861800E00000033EE100000090210000000053FE00000F93 50000000053FA9999959999999A53F747AE1547AE147B53F40624D5D2F1A9FCFD2 53F0A36E25EB1C432D53ED4F8B5588E368F253EA0C6F75A0B5ED8E53E6AD7F2F43 59ABCAF4A53E3576D 42F03543EE000852019221142F0050880001F4243C54032B7084263C5872320E2F2B 44EB9A 6.CMPL_856C0C203C53FF00000472005600001344243C53FE193EAF47 4263C57AAD030A44EB9A 6.CMPL_856C442F0142F0050657001044EB9A 4.EXPF57 85508F243C53FF00000576004EB9A 6.ADDL_85C540C74198E5E2308C3C53E012E0B5E826D69653DCB7CDF5D9D7BDBDF20 53D95FD7F5E179649653D6197995812DEA1253D2C25C256849768353CF6849BFC0 586A12B9C53CC203AF59EE7561653C8CD2B2597D889BD53C570EF554646D497F8A 2000000000C05.ETOA0000000054E560000548E7070454A6E001456E00000CFCB 44EB9A 6.DIVL_FD8 85240026014203C53FE00000572004EB9A 6.SUBL_8406805001000005600000DCFB1 4243C53E300000576004EB9A 6.CMPL_856C0000CA548E7C300524002601FB3 44EB9A 6.MULL_852C002E014243C5405C2FA94263C5E1EBF7F844EB9A 6.ADDL_F67 852406260744EB9A 6.MULL_84243C53D7C00014001456000001250C6E00104001456F00000853D7C001040014F86 52A6E0010542A742A752F2E000C52F2E000844EB9A 6.DPCMP84DFFC500000010F6C 56600003451AFC003051AFC002E56000000651AFC00305302E00145536E0014F93 54A406EF051AFC006551AFC003051AFC0030442155202E001056540A1738B4263C54D01F0F344EB9A 6.ADDL_F85 852406260744EB9A 6.MULL_84243C540B2E83C4263C5574E969244EB9A 6.ADDL_F7D 852F012F005200622074243C5BFEEDC284263C5CEFBA77D44EB9A 6.MULL_FBC 84243C5C058CE754263C5A1BA5CCB44EB9A 6.ADDL_852406260744EB9A 6.MULL_F41 842400002BAF2B 542A742A752F2E000C52F2E000844EB9A 6.DPCMP84DFFC50000001056C00001EF6C 51AFC002D52F2E000C52F2E000844EB9A 6.DPNEG84508F52D40000852D41000CF6D 4424756000002C553472F3C50000000042F3C54024000052F2E000C52F2E0008F76 44EB9A 7.DPMULT84DFFC50000001052D413C5C09935A54263C5C9BE1E1844EB9A 6.ADDL_852406260744EB9A 6.MULL_F62 85241F261F44EB9A 6.DIVL_854CDF00CC44EB9A 6.MULL_844EB9A 6.ADDL_FA3 854A9F6A0450840001F5261F4E5E44E75F86 :MASM20 R3.1a 09/04/86 18:00:56 0AFPERR:S 5 00904861800E00000003CC06.FOVR_00000C52D40000842F3C500000000F30 42F3C53FF0000052F2E000C52F2E000844EB9A 6.DPCMP84DFFC500000010F3B 46DB456000002C552472F3C50000000042F3C54024000052F2E000C52F2E0008F58 44EB9A 6.DPDIV84DFFC50000001052D41000C52D40000842F3C500000000F90 42F3C53FF0000052F2E000C000000C06.LOVR_00000002F1B C07.IDIV0_00000004C07.FDIV0_00000006C07.LDIV0_00000008C06.FARG_0000000AF88 C06.LARG_0000000C5610E610C5610A6108561066104561024E714203CF4C 900000033085909FE2484A03A5A08C00045A00C0D0A54320666C46F61F9D 574696E67520706F6956E74206552F2E000844EB9A 6.DPCMP84DFFC500000010F3B 46CB45302E00145524048C05E78020404223C9100000000852F301804FF8 52F30180052F2E000C52F2E000844EB9A 6.DPADD84DFFC50000001052D41000CF9C 52D40000842F3C50000000042F3C53FF0000052F2E000C52F2E000844EB9FFB A 6.DPCMP84DFFC5572726F72300200000003CF7B :MASM20 R3.1a 09/04/86 18:00:56 0CMCEIL 5 00904861800E000000090C05.CEIL0000000054E56FFF4FE4 52EAE000C52F2E000844EB9A 6.DPINT84588F52D40FFF852D41FFFC442A7FB6 442A752F2E000C52F2E000844EB9A 6.DPCMP84DFFC50000001056F00004AF0000001056D00002C42F3C50000000042F3C540240000FB0 52F2E000C52F2E000844EB9A 6.DPDIV84DFFC50000001052D41000C52D400008F84 55247534742F3C50000000042F3C54024000052F2E000C52F2E000844EB9F1D A 7.DPMULT84DFFC50000001052D41000C52D40000852F2E000C52F2E0008F4C 44EB9%     A 6.DPTOL85508F3C005300648C052F004EB9A 6.LTODP84588FFA7 52F012F0052F2E000C52F2E000844EB9A 6.DPSUB84DFFC50000001052D400008F7A 52D41000C43006506400030548801AC051AFC002E56000007442F3C500000000F86 42F3C54024000052F2E000C52F2E000844EB9A 7.DPMULT84DFFC5000004DFFC500000010F6D 56600003051AFC003054A6E001456700001A51AFC002E56000000651AFC0030F8A 5302E00145536E001454A4066F0442155202E00105600002604424756000002CFB2 553472F3C50000000042F3C54024000052F2E000C52F2E000844EB9A 7.DPMULTF87 84DFFC50000001052D41000C52D400010FFD 52D41000C52D40000852F2E000C52F2E000844EB9A 6.DPTOL85508F3C00F87 5300648C052F004EB9A 6.LTODP85588F2F0142F0052F2E000C52F2E0008F74 44EB9A 6.DPSUB84DFFC50000001052D40000852D41000C43006506400030FA1 548801AC05302E00145536E001454A406E8251AFC006544A475600842F3C50000000042F3C53FF00000FEE 52F2E000C52F2E000844EB9A 6.DPCMP84DFFC50000001046DB456000002CF4D 552472F3C50000000042F3C54024000052F2E000C52F2E000844EB9A 6.DPDIVFE8 84DFFC50000001052D41000C52D40000842F3C50000000042F3C53FF00000FEE 52F2E000C52F2E00084C00000CF38 53007444043E0051AFC002D50C47006456D00001A5300748C0581FC0064F50 506400030548801AC0448C758FFC0064548473007448C0581FC000A506400030F47 548801AC05300748C0581FC000A44840506400030548801AC0442155202E0010F73 56000000244A9F54CDF20C054E5E4E7521000000904EB9A 6.DPCMP84DFFC50000001046CB45302E0014F4A 5524048C05E78020404223C9100000000852F30180452F30180052F2E000CF1F 52F2E000844EB9A 6.DPADD84DFFC50000001052D41000C52D40000842F3CF73 50000000042F3C53FF0000052F2E000C52F2E000844EB9A 6.DPCMP84DFFCF3C 5000000105621000000902200000000F01 :MASM20 R3.1a 09/04/86 18:01:00 0CMFLOOR 5 00904861801E000000090C06.FLOOR0000000054E56FFF4F38 52EAE000C52F2E000844EB9A 6.DPINT84588F52D40FFF852D41FFFC442A7FB6 442A752F2E000C52F2E000844EB9A 6.DPCMP84DFFC50000001056C00004AF4D00002C42F3C50000000042F3C54024000052F2E000C52F2E0008F85 44EB9A 6.DPDIV84DFFC50000001052D41000C52D400008552474A4756E000006FAA 51AFC003056000007642F3C50000000042F3C54024000052F2E000C52F2E0008F64 44EB9A 7.DPMULT84DFFC50000001052D41000C52D40000852F2E000C5C 52F2EFFFC52F2EFFF852F2E000C52F2E000844EB9A 6.DPCMP84DFFC500000010FDA 56C00002A42F3C50000000042F3C53FF0000052F2EFFFC52F2EFFF844EB9F6D A 6.DPSUB84DFFC50000001052D41FFFC52D40FFF85222EFFFC5202EFFF8FC7 56000000254E5E4E75210000000021000000002200000000F46 :2F2E0008F24 44EB9A 6.DPTOL85508F3C005300648C052F004EB9A 6.LTODP84588FFA7 52F012F0052F2E000C52F2E000844EB9A 6.DPSUB84DFFC50000001052D400008F7A 52D41000C43006506400030548801AC0553474A4746E8854A6E00145670000A2F64 51AFC002E56000000C51AFC00305536E0014552474MASM20 R3.1a 09/04/86 18:01:01 0CMFTOA 5 00904861801E000000318E100000090210000000053FE00000FA0 50000000053FA9999959999999A53F747AE1547AE147B53F40624D5D2F1A9FCFD2 53F0A36E25EB1C432D53ED4F8B5588E368F253EA0C6F75A0B5ED8E53E6AD7F2F43 59ABCAF4A53E3579A4756C00000854A6E0014F6E 466EA56000007442F3C50000000042F3C54024000052F2E000C52F2E0008F33 44EB9A 7.DPMULT84DFFC50000001052D41000C52D40000852F2E000C52F2E0008F24 44EB9A 6.DPTOL85508F3C005300648C052F004EB9A 6.LTODP84588FFA7 52F012F0052F2E000C52F2E000844EB98E5E2308C3C53E012E0B5E826D69653DCB7CDF5D9D7BDBDF20 53D95FD7F5E179649653D6197995812DEA1253D2C25C256849768353CF6849BFC0 586A12B9C53CC203AF59EE7561653C8CD2B2597D889BD53C570EF554646D497F8A 2000000000C05.FTOA0000000054E560000548E7070454A6E001456E00000CFCA 5A 6.DPSUB84DFFC50000001052D400008F7A 52D41000C43006506400030548801AC05302E00145536E001454A406E82F86 442155202E001056000000244A9F54CDF20C054E5E4E7521000000902100000090F16 2200000000FD6 :MASM20 R3.1a 09/04/86 18:01:03 0CMLDEXP 5 00904861801E00000003D7C00014001456000001250C6E00104001456F00000853D7C001040014F86 52A6E0010542A742A752F2E000C52F2E000844EB9A 6.DPCMP84DFFC500000010F6C 56C00001E51AFC002D52F2E000C52F2E000844EB9A 6.DPNEG84508F52D400008F6C 52D41000C542A742A752F2E000C52F2E000844EB9A 6.DPCMP896C06.LDEXP0000000054E56FFFCF2D 54A6E001056600000E5222E000C5202E000856000007C54A6E001056F00003AFA5 50C6E00204001056C00003052F2E000C52F2E0008470015322E00104E3A0F41 52F004EB9A 6.LTODP85588F2F0152F004EB9A 7.DPMULT84DFFC500000010F6E 56000003C52F2E000C52F2E&     00085306E001052F082F3C50000000042F3CF58 54000000044EB9A 5.POWL84DFFC50000000C52F012F0044EB9A 7.DPMULTFE2 84DFFC50000001056000000254E5E4E75210000000021000000002200000000F11 :MASM20 R3.1a 09/04/86 18:01:04 0CMMODF 5 00904861801E00000004CC05.MODF000FD56000016647EFF56000015CF2C 43E8753F3C000844A4656700000843F0656000000653F3C006452F2E000CF1D 44EB9900000034C84508F56000013A43E8753F3C000A44A4656700000843F06F70 56000000653F3C006452F2E000C44EB9900000034C84508F56000011443E87FBE 53F3C001044A465670000084300000054E56FFFCFB4 5206E001042F0852F2E000C52F2E000844EB9A 6.DPINT85508F205F42080F59 5214100045206E0010522280004520102F0142F0052F2E000C52F2E0008F9F 44EB9A 6.DPSUB84DFFC50000001056000000254E5E4E7521000000002100000000F8A 2200000000FD6 :MASM20 R3.1a 09/04/F0656000000653F3C006452F2E000C44EB9F17 900000034C84508F5600000EE44A47567000008470FD5600000E244A46567000008FD1 43E8656000000653EBC000152F2E000C44EB9900000071C84588F5600000C2FA2 44A47567000008470FD5600000B642EBC9000000592844A4656700000843F06F93 56000000686 18:01:05 0CMSCANF 5 00904861801E00000094AE10000013CE2000000922200000000F3F 220000000420000000002200000004220000000820000000002200000008F4E 220000000C2000000000220000000C220000000E2000000000220000000EF16 220000001020000000002200000010220000001253F3C006452F2E000C44EB99000000684845C8F56000009044A46FB8 56700000843E8656000000653EBC006452F2E000C44EB990000008FA84588FF8B 56000007044A47567000008470FD56000006452EAE000844EB990000005F4F06 844A40567000008470FD56000004E42EBC90000005D2844A4656700000843F062000000000C06.SCANF00000000F83 54E56FFFC44279920000000E8541EE0008423C89200000004844EB9900000007AFFA 856000000254E5E4E75C07.FSCANF0000002254E56FFFC533FC0001920000000EF98 8523EE000892000000008541EE000C423C89200000004844EB9900000007AF18 856000000254E5E4E7F56 56000000653F3C006452F2E000C44EB99000000684845C8F560000028470FDFA5 56000002256000001A50440002A50C40004E562ECE54053040D1FC9100000000F92 8520504ED0210000000090000001A68900000031C8900000031C8900000031CF0D 8900000031C8900000031C890000001AE890000001AE8905C07.SSCANF0000004E54E56FFFC533FC0002920000000EF75 8523EE000892000000088541EE000C423C89200000004844EB9900000007AF10 856000000254E5E4E7554E56FFFC548E70F005424033C09200000010843E00F8F 420799200000004852D50FFFC458B9920000000485600000D45206EFFFC41010F35 54000001AE890000001AEF2A 890000001AE890000001AE890000001AE890000001AE890000001AE890000001AEF0A 8900000031C8900000031C8900000031C8900000031C8900000031C8900000031CF6A 8900000031C8900000031C8900000031C890000002568900000020A890000002B4F77 890000002B4890000008801C00552AEFFFC5600000B2430075600000C05206EFFFC50C100025F14 567000064420799200000004852E902F0E559974EB9900000018084588FF6F 560000030458B9920000000484524756000003C4300756000008A44A47567000008F32 43007560000004470FF560000078470FF56000007256000001A50C40F2B48900000031C8900000031C8900000031C8900000031CF68 8900000031C8900000031C8900000031C890000001E48900000031C8900000031CF67 8900000031C890000002828900000031C8900000031C8900000031C8900000031CF75 890000002308900000031C8900000031C890000002D48900000031C890000FFEF31 467DE50C40FFFF567D24A40467CA50C400001567BC60DE56000004E552AEFFFCF68 542574EB9900000048C8548801A004BC0556700002051005488043E80FDF 44EB9900000080C844A4756700000843007560000004470FE56000001E560000016F02 56000001244A4056700FF4C50C40002556700FF4A460B0031CF79 8900000031C8900000031C8900000031C8900000031C8900000031C89000000256F74 8900000020A890000002B4890000002B4890000002B4890000001D28900000031CF6B 8900000031C8900000031C890000001C08900000031C8900000031C890000001E4F6A 8900000031C8900000031C8900000031C856000FF2C44A9FFDC 54CDF00E054E5E4E7554E560000548E70F00542463E065600001B05206E0008F4B 520501010548801A005226E000845291560000182542AE000C560000192FBF 5CDFC000A5100548804DC4050646FFD056000018044A47567000008470FDFEA 56000017847E0156000016E44A4756700000847890000002828900000031C8900000031CF75 8900000031C8900000031C890000002308200000033E56000FE5044A9F54CDF00E0FD1 54E5E4E7554E56FFFC548E73F0C52A6E00085424342844424053D40FFFEF92 43A0053EBC000144EB9900000048C841E00560000022470FE56000010A53D7C0001FB4 5FFFE52455&     3EBCFFFF44EB9900000048C8548801E0056000001654A4067DCF49 50C40002B467E250C40002D467D65600000025426EFFFC53EAE000E41007FD9 548803F0044EB990000004E885548F3C005600000565526EFFFC4524554A6E0010FA0 56700001E42F045306E000E52F084EB9A 4LMUL85508F28005300648C0F1B 4000844240FDD 560000004570013A0056000000E4200D56700000451AC6424453A043E85FAA 44EB9900000048C851C003E8054E944A4056600000A53007534744A40FC4 56ED81006548803E8044EB9900000080C844A4456700001444A06567000008FC9 470FF560000004470FE5600000164200D5660000084424056D88056000000C5302E000E5C1C336005D646425744EB9900000048C844880FAD 41E0053EAE000E51007488053F004EB990000004E885548F3C0044A46F8E 56D0000085BA6E000C56DA01007548803E8044EB9900000080C854A6EFFFCF6E 566000008470FF5600000464200D5660000084424056000003A54A6EFFFEF000000A44215F4F 4700156000000244A9F54CDF30F054E5E4E7554E560000548E70F0C52A6E0008FF3 53E2E000C5284D3A0756000004C542574EB9900000048C8548801C0056E000034F10 5300552404BE4056600001844A06567000008470FF560000004470FE56000003AF55 5600000144200D566000008442405629 56700001A54A6E001056700000C52004448042800560000008530034440FD8 4360054A6E001056700000A5284D288456000000453A837001560000002FBF 44A9F54CDF30F854E5E4E7554E560000548E7030044EB990000007A2843E00F46 54A6E00085660000084300756000003656000001A50C47000D56600000000004470015600000244200D567000004FDD 51AC63005553454A40566AE200D5660000084424056000000447001560000002FB7 44A9F54CDF30E054E5E4E7554E56FFFC43039920000000E856000004644EB9F21 90000008B0856000005044A7992000000108567000014442799200000010FC5 8410399200000000A54A6E0008FCF 56D00001C44EB990000007A2843E0050C470020467E250C470009467DC50C47000DF90 567D6300756000000244A9F54CDF008054E5E4E7554E560000548E70F00F18 51E2E000953C2E000A50C07003056C000008470FF56000008450C07003756E00000EF88 51007488050640FFD056000007050C4C84488056000003442EB99200000000844EB9A 5.GETCF29 856000002444EB9900000086C856000001A56000001654A4067B850C400001F06 467BC50C400002467E256000000254E5E4E7554E56FFFC43039920000000EFB3 856000003C5102E0009548803E8044EB990000008E2856000003E5102E0009FE1 54880360008566000008470FF560000062F9B 50C07003956E00000E51007488050640FFD056000004E50C46000A56700000AFA0 50C07004156C000008470FF56000003850C07004656E00000E510074880F94 50640FFC956000002450C07006156D00000A50C07006656F000008470FF56000000EF91 51007488050640FFA9E8044EB990000008E2856000002C5102E0009548803E8044EB9900000089AFA7 856000001A56000001654A4067C250C400001467CE50C400002467DA560000002F5C 54E5E4E7554E560000548E70300420799200000008851E104A07567000008F11 452B99200000008851007488056000000244A9F54CDF008054E5E56000000244A9F54CDF00E054E5E4E7554E560000F0E 548E7030051E2E000950C07002056700001850C07000956700001050C07000DFD5 56700000844A07566000008470015600000084424056000000244A9F54CDF0080F77 54E5E4E75C29.__SPLSET000000122200000012220000009220000005D2FE2 54E56FFF4E7554E56FFFCF8A 54A2E0009567000008453B99200000008854E5E4E7554E56FFFC44A799200000010F84 856600001044EB9A 8.GETCHAR8560000018560000014442799200000010F21 841039920000000C84488056000000254E5E4E7554E56FFFC533FC00019200000010F7A 8513EE0009920000000C854E5E4EC5102E00095488048C052040223C9200000012851030180044880F09 56000000254E5E4E7554E560000548E70F0452A6E0008520551E1045295F54 50C07005E56600000E54245205551E10529556000000457A017C01560000010FE6 5300532464D3FC9200000012851280524650C46008056DEC700149045FE4 43A07554E56FF9A548E7010452A6E000842EBCF37 9000000592853F3C006452F0E06975FFFFFF9C44EB99000000684845C8FFC9 53D40FF9A52E8E06975FFFFFF9C44EB9A 5.ATOF842A8052B4100045302EFF9AF0C 56000000244A9F54CDF200054E5E4E75210000013C210000013C2200000092FED :MASM20 R3.1a 09/056000002844A07566000008470FF5600000305300512074488150241007FF86 53241D3FC9200000012851280205551E10529550C07005D466D4513FC0001F05 920000001284424056000000244A9F54CDF20E054E5E4E7554E560000548E71F0CFB7 52A6E000853E2E000C5286E000E57801B9FC90000005D285660004/86 18:01:13 0CMSPETOA 5 00904861801E0000002D4E100000024210000000053F000000F48 53D4CCCCC53BA3D70A53A03126E53851B717536A7C5AC5350637BD53356BF94FB0 531ABCC772000000000C07.SPETOA0000000054E560000548E7070454A6E0014FF9 56E00000C53D7C00014001456000001'     250C6E00084001456F00000853D7C0008F8E 4001452A6E0010542A742A752F2E000C52F2E000844EB9A 6.DPCMP84DFFCF29 50000001056C00001E51AFC002D52F2E000C52F2E000844EB9A 6.DPNEG8FA4 4508F52D40000852D41000C542A742A752F2E000C52F2E000844EB9A 6.DPCMPFB4 84DFFC5000000105660014001456000001250C6E00084001456F00000853D7C0008F8E 4001452A6E0010542A742A752F2E000C52F2E000844EB9A 6.DPCMP84DFFCF29 50000001056C00001E51AFC002D52F2E000C52F2E000844EB9A 6.DPNEG8FA4 4508F52D40000852D41000C542A742A752F2E000C52F2E000844EB9A 6.DPCMPFB4 8400003451AFC003051AFC002E56000000651AFC0030F0F 5302E00145536E001454A4066F051AFC006551AFC003051AFC003044215F38 5202E00105600002185306E00145D1C8D1C84223C9100000000852F301800F2F 44EB9A 7.SPTODP85588F2F0142F0052F2E000C52F2E000844EB9A 6.DPADDF88 84DFFC500000DFFC50000001056600003051AFC003054A6E001456700001A51AFC002EF09 56000000651AFC00305302E00145536E001454A4066F0442155202E0010F96 5600002165306E00145D1C8D1C84223C9100000000852F30180044EB9A 7.SPTODPF38 85588F2F0142F0052F2E000C52F2E000844EB9A 6.DPADD84DFFC50001052D41000C52D4000084424756000002C553472F3C500000000F4B 42F3C54024000052F2E000C52F2E000844EB9A 7.DPMULT84DFFC500000010FFD 52D40000852D41000C42F3C50000000042F3C53FF0000052F2E000C52F2E0008F40 44EB9A 6.DPCMP84DFFC50000001046DB456000002C552472F3C500000000000010F1B 52D41000C52D4000084424756000002C553472F3C50000000042F3C540240000F9F 52F2E000C52F2E000844EB9A 7.DPMULT84DFFC50000001052D40000852D41000CF24 42F3C50000000042F3C53FF0000052F2E000C52F2E000844EB9A 6.DPCMPF99 84DFFC50000001046DB456000002C552472F3C50F86 42F3C54024000052F2E000C52F2E000844EB9A 6.DPDIV84DFFC500000010F5D 52D40000852D41000C42F3C50000000042F3C53FF0000052F2E000C52F2E0008F40 44EB9A 6.DPCMP84DFFC50000001056CB4534742F3C50000000042F3C540240000F75 52F2E000C52F2E000844EB9A 7.DPMULT84DFFC500000000000042F3C540240000F06 52F2E000C52F2E000844EB9A 6.DPDIV84DFFC50000001052D40000852D41000CF84 42F3C50000000042F3C53FF0000052F2E000C52F2E000844EB9A 6.DPCMPF99 84DFFC50000001056CB44A4756E00000651AFC003056000007642F3C500000000F19 42F3C54024000052F2E000C5201052D40000852D41000CF24 52F2E000C52F2E000844EB9A 6.DPTOL85508F3C005300648C052F004EB9F63 A 6.LTODP85588F2F0142F0052F2E000C52F2E000844EB9A 6.DPSUB84DFFCF68 50000001052D40000852D41000C43006506400030548801AC051AFC002EF96 56000007442F3C50000000042F3C540240F2E000844EB9A 7.DPMULT84DFFC500000010FFD 52D40000852D41000C52F2E000C52F2E000844EB9A 6.DPTOL85508F3C00F87 5300648C052F004EB9A 6.LTODP85588F2F0142F0052F2E000C52F2E0008F74 44EB9A 6.DPSUB84DFFC50000001052D40000852D41000C43006506400030FA1 548801AC0553474A4700052F2E000C52F2E000844EB9F31 A 7.DPMULT84DFFC50000001052D40000852D41000C52F2E000C52F2E0008F4C 44EB9A 6.DPTOL85508F3C005300648C052F004EB9A 6.LTODP84588FFA7 52F012F0052F2E000C52F2E000844EB9A 6.DPSUB84DFFC50000001052D400008F7A 52D41000C43006506400030548846E8854A6E00145670000A251AFC002E56000000CF31 51AFC00305536E0014552474A4756C00000854A6E0014466EA560000074F57 42F3C50000000042F3C54024000052F2E000C52F2E000844EB9A 7.DPMULTF5B 84DFFC50000001052D40000852D41000C52F2E000C52F2E000844EB9A 6.DPTOLF78 85508F3C0001AC05302E00145536E001454A406E82F86 51AFC006544A4756C00000C53007444043E0051AFC002D5300748C0581FC000AF17 506400030548801AC05300748C0581FC000A44840506400030548801AC0F80 442155202E001056000000244A9F54CDF20C054E5E4E7521000000242100000024F1C 2200000000FD6 :5300648C052F004EB9A 6.LTODP85588F2F0142F0052F2E000CF3A 52F2E000844EB9A 6.DPSUB84DFFC50000001052D40000852D41000C43006F77 506400030548801AC05302E00145536E001454A406E82442155202E0010F97 56000000244A9F54CDF20C054E5E4E75210000002421000000242200000000F07 :MAMASM20 R3.1a 09/04/86 18:01:15 0CMSPFTOA 5 00904861801E0000002CEE100000024210000000053F000000F37 53D4CCCCC53BA3D70A53A03126E53851B717536A7C5AC5350637BD53356BF94FB0 531ABCC772000000000C07.SPFTOA0000000054E560000548E7070454A6E0014FF8 56E00000C53D7C0SM20 R3.1a 09/04/86 18:01:17 0CMUTODP 5 00904861801E000000084C07.UITODP0000000054E56FFF8FD3 442805302E000852D40FFFC52EAEFFFC44EB9A 6.LTODP856000000244E5EFEA 44E75C07.ULTODP0000002054E56FFF45082E00074000856700004642F3CF8B 50000000042F3C5C1E0000052'     02E00084068058000000052F004EB9A 6.LTODPF27 85588F2F0152F004EB9A 6.DPADD84DFFC50000001052D40FFF852D41FFFCFF3 5222EFFFC5202EFFF856000001052EAE000844EB9A 6.LTODP8560000002F62 54E5E4E75210000000021000000002200000000F03 :MASM20 R3.1a 09/04/86 18:01:18 0CMU6000001A5302EFFAC5C1FC000A41207FD9 54881D04150640FFD053D40FFAC41E1D50C07003056D00000850C070039F15 46FDA50C07002A56600000841E1D53D5CFFAC5426EFFA850C07006C566000008FBB 5526EFFA841E1D541EEFFB052D48FF9E51007488056000027254A6EFFA8F7B 56700000E42D7CA 8.__PRTTOSP 5 00904861801E00000007EC07.UITOSP0000000054E56FFF8FA5 442805302E000852D40FFFC52EAEFFFC44EB9A 6.LTOSP856000000244E5EFDB 44E75C07.ULTOSP0000002054E56FFF45082E0007400085670000405202E0008FCE 4068058000000052E804EB9A 6.LTOSP852D40FFF852D41FFFC42F3LD84FF9A56000000A42D7CA 9.__PRTSHO84FF9AF7A 4425752F2EFF9A53F3C000153F3C000A52F0E06975FFFFFFB052F0C4EB9F59 A 9.__PRTINT84DFFC5000000104548C54A6EFFA85670000044548C56000023AF2D 54A6EFFA856700000E42D7CA 8.__PRTLD84FF9A56000000A42D7CA 9.__PRTSHOFC2 85FF9A4C500000000F4F 42F3C5C1E0000052F2EFFFC52F2EFFF844EB9A 6.DPADD84DFFC500000010FD4 56000001052EAE000844EB9A 6.LTOSP856000000254E5E4E752100000000FA0 21000000002200000000FF3 :MASM20 R3.1a 09/04/86 18:01:19 0CMPRINTF 5 00904861801E00000065EE1000000D8E20025752F2EFF9A4426753F3C000A52F0E06975FFFFFFB052F0C4EB9FF8 A 9.__PRTINT84DFFC5000000104548C54A6EFFA85670000044548C5600001ECF1A 54A6EFFA456700001253EBC003053F2E000844EB9900000057284548F54A6EFFA8F51 56700000E42D7CA 8.__PRTLD84FF9A56000000A42D7CA 9.__PRTSHO00000C2200000000FE8 220000000420000000002200000004220000000820000000002200000008F4E 220000000C2000000000C08.FPRINTF0000000054E56FFFC523EE00089200000008F62 8541EE000C423C892000000048542574EB990000000CC854E5E4E7554E56FFFCFD3 42EB9920000000885102E0009548884FF9AF7A 4425752F2EFF9A4426753F3C000852F0E06975FFFFFFB052F0C4EB9A 9.__PRTINTFD9 84DFFC5000000104548C54A6EFFA85670000044548C56000018654A6EFFA4F75 56700002253EBC003053F2E000844EB9900000057284548F53EBC007853F2E0008FB2 44EB9900000057284548F54A6EFFA856700003F0044EB9A 5.PUTC85548F4E5E44E75F29 C07.PRINTF0000004054E56FFFA423F9A 7.STDOUT89200000008840CAE5FFFFFFFFFA9 40008566000032523EE000C92000000008541EE0010423C89200000004842079FB8 920000000084421053EBC000144EB990000000CC8420799200000000844210F16 56000001400E42D7CA 8.__PRTLD84FF9AFA6 56000000A42D7CA 9.__PRTSHO84FF9A50C07005856700000844257560000006F85 53EBC000152F2EFF9A4426753F3C001052F0E06975FFFFFFB052F0C4EB9F5A A 9.__PRTINT84DFFC5000000104548C54A6EFFA85670000044548C560000100F42 423CC9200000004842079920541EE0008423C892000000048542574EB990000000CC844E5EF6A 44E75C08.SPRINTF000000A054E56FFFC523EE000892000000008541EE000CFDD 423C89200000004853EBC000144EB990000000CC8420799200000000844210FF9 54E5E4E7554E56FF9A548E7071C420799200000004852A5058B99200000004F85 0000004852D50FF9E458B99200000004842879FDC 920000000485600000E053D5CFFA65302EFFA64488051D40FFB05422EFFB1F65 5600000CA53EAEFFAC52F0E06975FFFFFFB052F0C4EB990000005F284508FFEC 4508C53D7CFFFF4FFAC5600000A853EAEFFAC52F0E06975FFFFFFB042F0CFAB 44EB990000005AE884287992000000048560000478423CC9200000004850C070025567000018F98 51007488043E8053F2E000844EB9900000057284548F5600004544424053D40FFAAF92 53D40FFA45101D488041E0050C40002D56600000841E1D5526EFFAA50C070023FFD 56600000841E1D5526EFFA451D7C00204FFA250C0700305665508F508C53D7CFFFF4FFAC56000008653EAEFFAC42F0EF9F 406975FFFFFFB052F0C4EB990000005AE85508F2E8E406975FFFFFFB044EB9F7C 900000063685322EFFAC55E41B04156F00001853EAEFFAC52F0E06975FFFFFFB0F1E 52F0C4EB990000005F285508F588C53D7CFFFF4FFAC560000034510074880F53 4300000851D47FFA2FF2 41E1D53D7CFFFF4FFAE56000002654A6EFFAE56C0000065426EFFAE5302EFFAEF00 5C1FC000A5120748814D04150640FFD053D40FFAE41E1D50C07003056D000008FED 50C07003946FCE50C07002A56600000841E1D53D5CFFAE53D7CFFFF4FFACF25 50C07002E5660000085426EFFAC41E1D5E8053F2E000844EB9900000057284548F5600000F056000001A504400043FE5 50C400035562DCE54053040D1FC91000000008520504ED02100000000FFC 90000003B289000000208890000003C8890000003EA8900000040C8900000045EF8F 8900000045E8900000045E8900000045E8900000045E8900000045E890(     0000045EF40 890000002A68900000045E8900000045E8900000045E890000003928900000045EF55 890000002588900000045E8900000045E8900000030C8900000045E8900000045EF57 8900000045E8900000045E8900000045E8900000045E8900000045E8900000045EF40 8900000045E8900000045E890000002E000C52F2E000844EB9A 6.DPSUB84DFFCF38 50000001052D41000C52D40000852EAE000C52F2E000844EB9A 6.DPTOL8FB1 5588F48C04068058000000052D40FFFC5202EFFFC56000001C52EAE000CFE1 52F2E000844EB9A 6.DPTOL85588F028050000FFFF56000000254E5E4E75F65 21000000002100000000223B289000000208890000003C8890000003EAF50 8900000040C8900000045E8900000045E8900000045E8900000045E8900000045EF47 8900000045E8900000045E890000002A68900000045E8900000045E8900000045EF45 890000003928900000045E890000002588900000045E8900000045E8900000030CF67 8200000000F10 :MASM20 R3.1a 09/04/86 18:01:25 0CMSPTOU 5 00904861801E0000000BAC07.SPTOUI0000000054E56FFFAF95 52EAE000C52F2E000844EB9A 6.SPTOL84588F53D40FFFE5302EFFFE560000002FE9 54E5E4E75C07.SPTOUL0000002454E56FFF842F3C50000000042F3C5C1E00000F6E 5200000049052EAEFF9E44EB99000000636843C005BC6EFFAC56F00000E54A6EFFACF95 56D00000653C2EFFAC5302EFFAE4904653D40FFA654A6EFFAA56600005850C2E0020F96 4FFA256700002A5206EFF9E50C10002D56600001E453465206EFF9E41010FC8 548803E8053F2E000844EB9900000057284548F552AEFFF2E000C52F2E000844EB9A 6.DPCMP84DFFC50000001056D00005242F3CF49 50000000042F3C5C1E0000052F2E000C52F2E000844EB9A 6.DPSUB84DFFCF38 50000001052D41000C52D40000852EAE000C52F2E000844EB9A 6.SPTOL8FA2 5588F028050000FFFF52D40FFFC5202EFFFC4068058000000056000001CF9E5600000165102EFFA2F78 548803E8053F2E000844EB9900000057284548F5302EFFA65536EFFA644A40F38 46EE056000001C5206EFF9E51010488043E8053F2E000844EB99000000572FC0 84548F552AEFF9E53006534654A4066DE5600000165102EFFA2548803E80FB1 53F2E000844EB9900000057284548F530EE 52EAE000C52F2E000844EB9A 6.SPTOL85588F028050000FFFF560000002F5E 54E5E4E75210000000021000000002200000000F03 :MASM20 R3.1a 09/04/86 18:01:26 p2EFFA65536EFFA654A406EE041E1DF11 56600FB8644A9F54CDF38C054E5E4E7554E56FFFC54A6E0008567000016F96 4207992000000008510AE000B452B9920000000085600000105102E000B44880FC7 53E804EB9900000002285102E000B4488056000000254E5E4E7554E56FFF4FBC 54A6E001056C00000853D7CG0:.POW Hpow:O 000002C6G0:.ULTODP Hultofp:O 000003F2F26 G0:.ULTOSP Hultofp:O 000003F2G0:.ATAN2 Hatan2:O 000004BCFA9 G0:.ATOF Hatof:O 0000064DG0:.CEIL Hceil:O 00000B71F14 G0:.ETOA Hetoa:O 00000CA9G0:.FL0006400105206E000852D6800044FFFC52D50FFF8F03 53EAE001052F2E000C52F2EFFFC52F2EFFF844EB9A 5.FTOA84DFFC50000000CF0B 56000000254E5E4E7554E56FFF454A6E001056C00000853D7C000640010F34 5206E000852D6800044FFFC52D50FFF853EAE001052F2E000C52F2EFFFC52F2EFFF8F4E 44EBOOR Hfloor:O 0000153CF5B G0:.FREXP Hfrexp:O 000016ABG0:.FTOA Hftoa:O 00001975F5C G0:.LDEXP Hldexp:O 0000218DG0:.LOG Hlog:O 00002304FF4 G0:.MODF Hmodf:O 00002446G0:.FPRINTF Hprintf:O 0000254CFD4 G0:.PRI9A 5.ETOA84DFFC50000000C56000000254E5E4E7554E560000548E70304FD7 52A6E000844247560000004552474A1D566FA300756000000244A9F54CDF2080F43 54E5E4E7521000000D821000000D8220000000CFB8 :MASM20 R3.1a 09/04/86 18:01:24 0CMDPTOU 5 00904861801E0000000B6C07.DPTNTF Hprintf:O 0000254CG0:.SPRINTF Hprintf:O 0000254CF9F G0:.SCANF Hscanf:O 000038D2G0:.FSCANF Hscanf:O 000038D2F06 G0:.SSCANF Hscanf:O 000038D2G2:.__SPLSET Hscanf:O 000038D2F29 0APOW 4 151024861506E000000054C04.POW00OUI0000000054E56FFFAFBE 52EAE000C52F2E000844EB9A 6.DPTOL84588F53D40FFFE5302EFFFE560000002FF8 54E5E4E75C07.DPTOUL0000002454E56FFF842F3C50000000042F3C5C1E00000F7D 52F2E000C52F2E000844EB9A 6.DPCMP84DFFC50000001056D00004E42F3CF37 50000000042F3C5C1E0000052F00000054E56FFFCF21 5F23C50004000A5F22E5480400085F20000B85F28E000E5F22E540040010F14 5F20000124602C5F23C5000400025F20000B85F28E000E5F22E540040010F35 5F2000011460125F22E5400400105F20004945F20004235F200001044E5EF63 44E75FA1 :MASM20 R3.2 24-Oct-86 15:06:40(      0AULTOFP 4 151024861506E000000020C07.ULTODP00000000C07.ULTOSP00000000FAE 20000000005202E000446F065F200400056012028057FFFFFFF5F2004000F30 5F23C402258000000044E75FF9 :MASM20 R3.2 24-Oct-86 15:06:41 0CHATAN2 5 01024861506E000000072C06.ATAN20000000005F22E5400400085F20004225F22E7400FA1 400085F22E5400400085F200600042E005F20740005F22E74004FFF85F22E5400F05 4FFF856000000244A9F54CDF008054E5E4E75210000000021000000002200000000FE2 :MASM20 R3.2 24-Oct-86 15:07:03 0CHETOA 5 01024861507E000000200000054E56FFFCF8A 5F22E5400400085F200003A5F28E000A5F2005C0F5600000565F22E540040010F52 5F200003A5F28E00305F22E5400400085F200003A5F29500125F23C540053FF921FBF40 55452455056000002A5F23C54005BFF921FB55452455056000001A5F22E5400F79 400085F22E5420400105F22774B8E100000090210000000053FE00000F99 50000000053FA9999959999999A53F747AE1547AE147B53F40624D5D2F1A9FCFD2 53F0A36E25EB1C432D53ED4F8B5588E368F153EA0C6F75A0B5ED8D53E6AD7F2F45 59ABCAF4853E35798E5E2308C3A53E012E0B5E826D69553DCB7CDF5D9D7BDBBF2E 53D95FD7F5E17964005F21F540A56000000254E5E4E752100000000F4E 21000000002200000000FF3 :MASM20 R3.2 24-Oct-86 15:06:48 0CHATOF 5 01024861506E0000001EEC05.ATOF0000000054E56FFE8FAD 548E7070054286200653D40FFFE53D40FFFC53D40FFFA53D40FFF85F2005C0FF81 5F22E74004FFF052069553D6197995812DEA1153D2C25C256849768253CF6849BFC3 586A12B9B53CC203AF59EE7561653C8CD2B2597D889BC53C570EF554646D497F8C 2000000000C05.ETOA0000000054E56FFFC548E7010454A6E001456E00000CF7C 53D7C00014001456000001250C6E00104001456F00000853D7C001040014F86 52A6E000850C10002B56600000A552AE00085600000185206E0008F84 50C10002D56600000C552AE000853D7C00014FFFC5206E000841E10552AE0008F1E 56000005E5F22E54004FFF05F23C54235402400005000000005F22E74004FFF0F38 51007488050640FFD05F20050005F22E54224FFF05F22E74004FFF054A6EFFE00105F22E5400400085F200003A5F28E003451AFC003051AFC002E560000006F60 51AFC00305302E00145536E001454A406EF051AFC006551AFC003051AFC0030F36 442155202E00105600002425F22E5400400085F200003A5F293001251AFC002DF7C 5F22E541A400085F22E7400400085426EFFFE56000001E553FAF94 567000008452865600000165206E000850C10002E56600000A5526EFFFA552AE0008F85 5206E000841E10552AE000850C07003056D00000850C07003946F9650C070065F6E 56700000A50C07004556600007A5206E000850C10002D56700000844240560000004FF6 4700153D40FFFE5206E000850C10002D566EFFFE5F22E5400FBA 400085F23C54235402400005000000005F22E7400400085F22E540040008F85 5F23C543853FF000005000000005F294FFD056000001E5526EFFFE5F22E5400F24 400085F23C54205402400005000000005F22E7400400085F22E540040008F88 5F23C543853FF000005000000005F293FFD05F700000E5206E000850C10002B566000006F89 552AE00085206E000841E10552AE000856000002A5302EFFF85C1FC000A53D40FFF8FFD 5302EFFF85120748814D04150640FFD053D40FFF85206E000841E10552AE0008FD8 50C07003056D00000850C07003946FCA54A6EFFFE56700000C5302EFFF844440FD8 53D40F22E5400400085F23C543853FF00000F4D 5000000005F294001E5F22E5400400085F23C54205402400005000000005F22E7400FDB 400085526EFFFE5536EFFFE5F22E5400400085F23C5423540240000500000000F13 5F22E7400400085F22E5400400085F227740044EB9A 6.FLOOR84508F5F2006000F74 53D40FFFFF85302EFFF8548C0908642C0056000001C5F22E54004FFF05F23C5420FB3 5402400005000000005F22E74005FFF052865F22E54004FFF05F23C5438F31 53FF000005000000005F292FFD25F20640005F22774005F23C5400540240000FA4 5000000005F227740044EB9A 4.POW84DFFC5000000105F22E54234FFF05C54A6EFFFC56C00000A5426EFFFC56000001250C6E00094FFFC56F000008F85 53D7C00094FFFC5F22E50004FFFC5F22774005F22E5400400085F21F5428F8F 5F22E7400400085302EFFFC506400030548801AC051AFC002E56000007AF21 5F22E5400400085F23C54235402400005000000005F22E7400400085F22E5F22E7400FF7 4FFE854A6EFFFC56700000E5F22E541A4FFE85F22E74005FFE84A9F54CDF00C0F06 54E5E4E75210000000021000000002200000000F03 :MASM20 R3.2 24-Oct-86 15:06:56 0CHCEIL 5 01024861507E00000004EC05.CEIL0000000054E56FFF8FD7 548E703005F23C548053FE0000050400F94 400085F227740044EB9A 6.FLOOR84508F5F200600053D40FFFC54A6EFFFCFED 56C00000A5426EFFFC56000001250C6E00094FFFC56F00000853D7C00094FFFCFAC 5F22E50004FFFC5F22774005F22E5400400085F21F54285F22E740040008FDC 5302EFFFC506400030548801AC05302E00145536E001444A)     4056E00FF7CF12 51AFC006554A6EFFFE56C0000105302EFFFE4444053D40FFFE51AFC002D50C6E0064F74 4FFFE56D0000245302EFFFE448C0581FC0064506400030548801AC05302EFFFEF9A 448C0581FC00644484053D40FFFE5302EFFFE448C0581FC000A506400030F98 548801AC05302EFFFE448C0581FC000A4 E00105F22E5400400085F200003A5F293001251AFC002D5F22E541A40008F2F 5F22E7400400085F22E5400400085F200003A5F28E003051AFC003054A6E0014F3B 56700001A51AFC002E56000000651AFC00305302E00145536E001454A4066F0F8A 442155202E00105600001F65426EFFFE56000001E5536EFFFE5F24840506400030548801AC044215FE7 5202E001056000000244A9F54CDF200054E5E4E7521000000902100000090F29 2200000000FD6 :MASM20 R3.2 24-Oct-86 15:07:12 0CHFLOOR 5 01024861507E000000064C06.FLOOR0000000054E56FFF8F3B 548E703005F23C548053FE000005000000005F22E 2E540040008FFD 5F23C54235402400005000000005F22E7400400085F22E5400400085F23C5438F8A 53FF000005000000005F294FFD056000001E5526EFFFE5F22E5400400085F23C5420F31 5402400005000000005F22E7400400085F22E5400400085F23C543853FF00000F97 5000000005F293FFD05F22E5400405400400085F20004285F22E7400F9B 400085F22E5400400085F200600052E0020075F22774005F22E540040008F63 5F21F54385F2950004453875F20740005F22E74004FFF85F22E54004FFF8FA8 56000000244A9F54CDF008054E5E4E75210000000021000000002200000000F20 :MASM20 R3.2 24-Oct-86 15:  0085F23C543853FF000005000000005F294001EF83 5F22E5400400085F23C54205402400005000000005F22E7400400085526EFFFEF56 54A6EFFFE56E00000651AFC003056000007E5F22E5400400085F23C5423540240000F45 5000000005F22E7400400085F22E5400400085F227740044EB9A 6.FLOORFE1 8450807:19 0CHFREXP 5 01024861507E0000000F4C06.FREXP0000000054E56FFF8F25 5F22E5400400085F200003A5F293001853D7C00014FFFE5F22E541A40008FE1 5F22E7400400085600000065426EFFFE5426EFFFC5F22E5400400085F23C5438FD6 53FE000005000000005F293003C56000001E5F22E54004  F5F200600053D40FFFC54A6EFFFC56C00000A5426EFFFC560000012F71 50C6E00094FFFC56F00000853D7C00094FFFC5F22E50004FFFC5F2277400F61 5F22E5400400085F21F54285F22E7400400085302EFFFC50640003044880F01 41AC05536EFFFE54A6EFFFE56E00FF7E54A6E00145670000AE51AFC002E56000000085F23C5423540000000FCF 5000000005F22E7400400085536EFFFC5F22E5400400085F23C543853FE00000F2A 5000000005F294FFD056000004E5F22E5400400085F23C543853FF00000500000000F9E 5F295003856000001E5F22E5400400085F23C54205400000005000000005F22E7400FCF 400085526EFFFC  00EF75 51AFC00305536E00145526EFFFE54A6EFFFE56C00000854A6E0014466E656000007AFD2 5F22E5400400085F23C54235402400005000000005F22E7400400085F22E5400F94 400085F227740044EB9A 6.FLOOR84508F5F200600053D40FFFC54A6EFFFCFED 56C00000A5426EFFFC56000001250C6E00094FFF5F22E5400400085F23C543853FF000005000000005F292FFD0F01 5206E0010530AEFFFC54A6EFFFE56700000C5F22E541A400085600000085F22E5400FF8 4000856000000254E5E4E75210000000021000000002200000000F4A :MASM20 R3.2 24-Oct-86 15:07:26 0CHFTOA 5 01024861507E0000002 C56F00000853D7C00094FFFCFAC 5F22E50004FFFC5F22774005F22E5400400085F21F54285F22E740040008FDC 5302EFFFC506400030548801AC05302E00145536E001444A4056E00FF7CF12 442155202E001056000000244A9F54CDF200054E5E4E7521000000902100000090F29 2200000000FD6 :MASM20 R3.2 86E100000090210000000053FE00000FA4 50000000053FA9999959999999A53F747AE1547AE147B53F40624D5D2F1A9FCFD2 53F0A36E25EB1C432D53ED4F8B5588E368F153EA0C6F75A0B5ED8D53E6AD7F2F45 59ABCAF4853E35798E5E2308C3A53E012E0B5E826D69553DCB7CDF5D9D7BDBBF2E 53D95FD7F5E17964 24-Oct-86 15:07:35 0CHLDEXP 5 01024861507E000000066C06.LDEXP0000000054E56FFFCF38 50C6E001F4001056F00000853D7C001F4001054A6E001056D00001847001F46 5322E00104E3605F20050005F22E54234000856000002E5F22E500040010F66 5F22774005F23C54005400000005000000009553D6197995812DEA1153D2C25C256849768253CF6849BFC3 586A12B9B53CC203AF59EE7561653C8CD2B2597D889BC53C570EF554646D497F8C 2000000000C05.FTOA0000000054E56FFFC548E7010454A6E001456E00000CF7B 53D7C00014001456000001250C6E00104001456F00000853D7C001040014F86 52A65F227740044EB9A 4.POW84DFFCF3E 5000000105F22E54234000856000000254E5E4E7521000000002100000000F86 2200000000FD6 :MASM20 R3.2 24-Oct-86 15:07:42 0CHLOG 5 01024861507E000000052C04.LOG0000000054E56FFFCF35 5F22E5400400085F23C543853FE000005000000005F)     29300185F22E540040008F77 5F22774005F21F54145600000245600000205F22E5400400085F23C542853FF00000FA6 5000000005F22774005F21F540656000000254E5E4E7521000000002100000000FA1 2200000000FD6 :MASM20 R3.2 24-Oct-86 15:07:49 0CHMODF 5 01024861507E000000038C53F3C0001F9E 53F3C000A52F0E06975FFFFFFB052F0C4EB9A 9.__PRTINT84DFFC500000010FD2 4548C54A6EFFA85670000044548C56000023A54A6EFFA856700000E42D7CFA4 A 8.__PRTLD84FF9A56000000A42D7CA 9.__PRTSHO85FF9A425752F2EFF9AF78 4426753F3C000A52F0E06975FFFFFFB052F0C4EB9A05.MODF0000000054E56FFFCFC8 5F22E5400400085F227740044EB9A 6.FLOOR84508F5206E00105F2107400F86 5206E00105F21054805F22E5400400085F200042856000000254E5E4E75F7A 210000000021000000002200000000F10 :MASM20 R3.2 24-Oct-86 15:07:56 0CHPRINTF 5 01024861508E 9.__PRTINT84DFFCF81 5000000104548C54A6EFFA85670000044548C5600001EC54A6EFFA4567000012F15 53EBC003053F2E000844EB9900000055484548F54A6EFFA856700000E42D7CF41 A 8.__PRTLD84FF9A56000000A42D7CA 9.__PRTSHO85FF9A425752F2EFF9AF78 4426753F3C000852F0E06975FFFFFFB00000064CE1000000D8E20000000C2200000000FF2 220000000420000000002200000004220000000820000000002200000008F4E 220000000C2000000000C08.FPRINTF0000000054E56FFFC523EE00089200000008F62 8541EE000C423C892000000048542574EB990000000AE854E5E4E75C07.PRINTF00000022F052F0C4EB9A 9.__PRTINT84DFFCF8A 5000000104548C54A6EFFA85670000044548C56000018654A6EFFA4567000022F2E 53EBC003053F2E000844EB9900000055484548F53EBC007853F2E000844EB9F50 900000055484548F54A6EFFA856700000E42D7CA 8.__PRTLD84FF9A56000000AF02 42D7CA 9.__PRTSHOD2 54E56FFFA423F9A 7.STDOUT89200000008840CAE5FFFFFFFF40008566000032F16 523EE000C92000000008541EE0010423C892000000048420799200000000F8F 84421053EBC000144EB990000000AE8420799200000000844210560000014F41 541EE0008423C892000000048542574EB990000000AE854E5E4E84FF9A50C0700585670000084425756000000653EBC0001F5E 52F2EFF9A4426753F3C001052F0E06975FFFFFFB052F0C4EB9A 9.__PRTINTFE6 84DFFC5000000104548C54A6EFFA85670000044548C560000100423CC9200000004F9B 8420799200000004852D50FF9E458B992000000048428799200000004856000075C08.SPRINTF00000082FBB 54E56FFFC523EE000892000000008541EE000C423C89200000004853EBC0001F58 44EB990000000AE84207992000000008542104E5E44E7554E56FF9A548E7071CF03 420799200000004852A5058B9920000000484287992000000048560000478F6E 423CC9200000004850C070025560E0FF3 53D5CFFA65302EFFA64488051D40FFB05422EFFB15600000CA53EAEFFAC42F0EF19 406975FFFFFFB052F0C4EB990000005DE85508F508C53D7CFFFF4FFAC5600000A8FB4 53EAEFFAC52F0E06975FFFFFFB052F0C4EB9900000059885508F508C53D7CFFFFFB3 4FFAC56000008653EAEFFAC52F0E06975FFFFF700001851007488043E8053F2E000844EB9FD9 900000055484548F5600004544424053D40FFAA53D40FFA45101D488041E00F92 50C40002D56600000841E1D5526EFFAA50C07002356600000841E1D5526EFFA4FF7 51D7C00204FFA250C07003056600000851D47FFA241E1D53D7CFFFF4FFAEF4F 56000002654A6EFFB052F0C4EB99000000598F14 85508F2E8E406975FFFFFFB044EB9900000062485322EFFAC55E41B041FC0 56F00001853EAEFFAC52F0E06975FFFFFFB052F0C4EB990000005DE84508FFE0 4588C53D7CFFFF4FFAC56000003451007488043E8053F2E000844EB99000000554F69 84548F5600000F056000001A50440FAE56C0000065426EFFAE5302EFFAE5C1FC000A512074881FCC 4D04150640FFD053D40FFAE41E1D50C07003056D00000850C07003946FCEFB1 50C07002A56600000841E1D53D5CFFAE53D7CFFFF4FFAC50C07002E566000008F89 5426EFFAC41E1D56000001A5302EFFAC5C1FC000A5120748814D04150640FFD0FA6 004350C400035562DCE54053040D1FCF35 91000000008520504ED021000000009000000394890000001EA890000003AAF45 890000003CC890000003EE89000000440890000004408900000044089000000440F7E 890000004408900000044089000000440890000002888900000044089000000440FBA 8900000044053D40FFAC41E1D50C07003056D00000850C07003946FDA50C07002A566000008F17 41E1D53D5CFFAC5426EFFA850C07006C5660000085526EFFA841E1D541EEFFB0F3E 52D48FF9E51007488056000027254A6EFFA856700000E42D7CA 8.__PRTLDFD2 84FF9A56000000A42D7CA 9.__PRTSHO85FF9A425752F2EFF9A 89000000374890000004408900000023A8900000044089000000440FB0 890000002EE8900000044089000000440890000004408900000044089000000440FA0 890000004408900000044089000000440890000004408900000044089000000394FBC 890000001EA890000003AA890000003CC890000003EE890000004*     !4089000000440F42 890000004408900000044089000000440890000004408900000044089000000288FBA 89000000440890000004408900000044089000000374890000004408900000023AFB0 8900000044089000000440890000002EE8200000047252EAEFF9E44EB99000000624F9B 843C005BC6EFFAC56F00000)'3C89200000004844EB9900000007AF10 856000000254E5E4E7554E56FFFC548E70F005424033C09200000010843E00F8F 420799200000004852D50FFFC458B9920000000485600000D45206EFFFC41010F35 548801C00552AEFFFC5600000B2430075600000C05206EFFFC50C100025F14 5670000644207992000000" E54A6EFFAC56D00000653C2EFFAC5302EFFAEFF0 4904653D40FFA654A6EFFAA56600005850C2E00204FFA256700002A5206EFF9EF9A 50C10002D56600001E453465206EFF9E51010488043E8053F2E000844EB9FEE 900000055484548F552AEFF9E5600000165102EFFA2548803E8053F2E0008FA0 44EB9900000055*(04852E902F0E559974EB9900000018084588FF6F 560000030458B9920000000484524756000003C4300756000008A44A47567000008F32 43007560000004470FF560000078470FF56000007256000001A50C40FFFEF31 467DE50C40FFFF567D24A40467CA50C400001567BC60DE56000004E552AEFFFCF68 542574EB#!484548F5302EFFA65536EFFA654A406EE056000001C5206EFF9EF32 51010488043E8053F2E000844EB9900000055484548F552AEFF9E530065346F80 54A4066DE5600000165102EFFA2548803E8053F2E000844EB99000000554FF4 84548F5302EFFA65536EFFA654A406EE041E1D56600FB8644A9F54CDF38C0FEA 5+)9900000048C8548801A004BC0556700002051005488043E80FDF 44EB99000000838844A4756700000843007560000004470FE56000001E560000016F0A 56000001244A4056700FF4C50C40002556700FF4A460B856000FF2C44A9FFDC 54CDF00E054E5E4E7554E560000548E70F005424642475600001B05206E0008F$"4E5E4E7554E56FFFC54A6E00085670000164207992000000008510AE000BFB2 452B99200000000856000001842EB9920000000885102E000B548803F00FAB 44EB9A 6.FPUTC84548F5102E000B4488056000000254E5E4E7554E56FFF4F28 54A6E001056C00000853D7C0006400105206E00085F21054005F22E74004,*58 520501010548801A005226E000845291560000182542AE000C560000192FBF 5CDFC000A5100548804DC4050646FFD056000018044A47567000008470FDFEA 56000017847E0156000016E44A47567000008470FD56000016647EFF56000015CF2C 43E8753F3C000844A4656700000843F0656000000653F3C006452%#FFF8F3F 53EAE001052F2E000C5F22E54004FFF85F227740044EB9A 5.FTOA84DFFCF2E 50000000C56000000254E5E4E7554E56FFF454A6E001056C00000853D7C0006F61 400105206E00085F21054005F22E74004FFF853EAE001052F2E000C5F22E5400F0F 4FFF85F227740044EB9A 5.ETOA84DFFC50000000C560-+F2E000CF1D 44EB9900000034C84508F56000013A43E8753F3C000A44A4656700000843F06F70 56000000653F3C006452F2E000C44EB9900000034C84508F56000011443E87FBE 53F3C001044A4656700000843F0656000000653F3C006452F2E000C44EB9F17 900000034C84508F5600000EE44A47567000008470FD&$00000254E5E4E75F75 54E560000548E7030452A6E000844247560000004552474A1D566FA3007F6B 56000000244A9F54CDF208054E5E4E7521000000D821000000D8220000000CFD3 :MASM20 R3.2 24-Oct-86 15:08:09 0CHSCANF 5 01024861508E0000009A6E10000013CE2000000922200000000F44.,5600000E244A46567000008FD1 43E8656000000653EBC000152F2E000C44EB9900000071C84588F5600000C2FA2 44A47567000008470FD5600000B642EBC9000000592844A4656700000843F06F93 56000000653F3C006452F2E000C44EB99000000684845C8F56000009044A46FB8 56700000843E8656000000653E'% 220000000420000000002200000004220000000820000000002200000008F4E 220000000C2000000000220000000C220000000E2000000000220000000EF16 22000000102000000000220000001022000000122000000000C06.SCANF00000000F83 54E56FFFC44279920000000E8541EE0008423C89200000004844/-BC006452F2E000C44EB9900000095884588FFA4 56000007044A47567000008470FD56000006452EAE000844EB990000005F4F06 844A40567000008470FD56000004E42EBC90000005D2844A4656700000843F06F56 56000000653F3C006452F2E000C44EB99000000684845C8F560000028470FDFA5 5600000225600(&EB9900000007AFFA 856000000254E5E4E75C07.FSCANF0000002254E56FFFC533FC0001920000000EF98 8523EE000892000000008541EE000C423C89200000004844EB9900000007AF18 856000000254E5E4E75C07.SSCANF0000004E54E56FFFC533FC0002920000000EF75 8523EE000892000000088541EE000C420.0001A50440002A50C40004E562ECE54053040D1FC9100000000F92 8520504ED0210000000090000001A68900000031C8900000031C8900000031CF0D 8900000031C8900000031C890000001AE890000001AE890000001AE890000001AEF2A 890000001AE890000001AE890000001AE890000001AE890000001AE89000*     1/0001AEF0A 8900000031C8900000031C8900000031C8900000031C8900000031C8900000031CF6A 8900000031C8900000031C8900000031C890000002568900000020A890000002B4F77 890000002B4890000002B48900000031C8900000031C8900000031C8900000031CF68 8900000031C8900000031C89000000319700A56700000AFA0 50C07004156C000008470FF56000003850C07004656E00000E510074880F94 50640FFC956000002450C07006156D00000A50C07006656F000008470FF56000000EF91 51007488050640FFA956000000244A9F54CDF00E054E5E4E7554E560000F0E 548E7030051E2E000950C0700205670000185020C890000001E48900000031C8900000031CF67 8900000031C890000002828900000031C8900000031C8900000031C8900000031CF75 890000002308900000031C8900000031C890000002D48900000031C8900000031CF79 8900000031C8900000031C8900000031C8900000031C8900000031C89000000256F74 8900:8C07000956700001050C07000DFD5 56700000844A07566000008470015600000084424056000000244A9F54CDF0080F77 54E5E4E75C29.__SPLSET000000122200000012220000009220000005D2FE2 54E56FFFC5102E00095488048C052040223C9200000012851030180044880F09 56000000254E5E4E7554E5600031000020A890000002B4890000002B4890000002B4890000001D28900000031CF6B 8900000031C8900000031C890000001C08900000031C8900000031C890000001E4F6A 8900000031C8900000031C8900000031C890000002828900000031C8900000031CF75 8900000031C8900000031C890000002308200000033E56;90548E70F0452A6E0008520551E1045295F54 50C07005E56600000E54245205551E10529556000000457A017C01560000010FE6 5300532464D3FC9200000012851280524650C46008056DEC700149045FE4 43A0056000002844A07566000008470FF5600000305300512074488150241007FF86 53241D3FC92000000142000FE5044A9F54CDF00E0FD1 54E5E4E7554E56FFFC548E73F0C52A6E00085424342844424053D40FFFEF92 43A0053EBC000144EB9900000048C841E00560000022470FE56000010A53D7C0001FB4 5FFFE524553EBCFFFF44EB9900000048C8548801E0056000001654A4067DCF49 50C40002B467E250C40002D467D6<:2851280205551E10529550C07005D466D4513FC0001F05 920000001284424056000000244A9F54CDF20E054E5E4E7554E560000548E71F0CFB7 52A6E000853E2E000C5286E000E57801B9FC90000005D2856600000844240FDD 560000004570013A0056000000E4200D56700000451AC6424453A043E85FAA 44EB990535600000025426EFFFC53EAE000E41007FD9 548803F0044EB990000004E885548F3C005600000565526EFFFC4524554A6E0010FA0 56700001E42F045306E000E52F084EB9A 4LMUL85508F28005300648C0F1B 4D88056000000C5302E000E5C1C336005D646425744EB9900000048C844880FAD 41E0053EAE000E5100=;0000048C851C003E8054E944A4056600000A53007534744A40FC4 56ED81006548803E8044EB99000000838844A4456700001444A06567000008FD1 470FF560000004470FE5600000164200D5660000084424056000000A44215F4F 4700156000000244A9F54CDF30F054E5E4E7554E560000548E70F0C52A6E0008FF3647488053F004EB990000004E885548F3C0044A46F8E 56D0000085BA6E000C56DA01007548803E8044EB99000000838854A6EFFFCF76 566000008470FF5600000464200D5660000084424056000003A54A6EFFFEF29 56700001A54A6E001056700000C52004448042800560000008530034440FD8 4360054A6E0010567>< 53E2E000C5284D3A0756000004C542574EB9900000048C8548801C0056E000034F10 5300552404BE4056600001844A06567000008470FF560000004470FE56000003AF55 5600000144200D56600000844240560000004470015600000244200D567000004FDD 51AC63005553454A40566AE200D566000008442405607500000A5284D288456000000453A837001560000002FBF 44A9F54CDF30F854E5E4E7554E560000548E7030044EB990000007A2843E00F46 54A6E00085660000084300756000003656000001A50C47000D56600000A54A6E0008FCF 56D00001C44EB990000007A2843E0050C470020467E250C470009467DC50C47000DF?=00000447001560000002FB7 44A9F54CDF30E054E5E4E7554E56FFFC43039920000000E856000007244EB9F22 90000008DC856000007C44A7992000000108567000014442799200000010F9B 841039920000000C844880560000060420799200000000855368000A56D000020FAC 420799200000000852068000641018690 567D6300756000000244A9F54CDF008054E5E4E7554E560000548E70F00F18 51E2E000953C2E000A50C07003056C000008470FF56000008450C07003756E00000EF88 51007488050640FFD056000007050C460008566000008470FF560000062F9B 50C07003956E00000E51007488050640FFD056000004E50C460@>05024000FF4227992000000008552A90006FE2 56000000E42EB99200000000844EB9A 9._FILLBUF856000002444EB99000000898F2B 856000001A56000001654A40678C50C4000014679050C400002467E2560000002F83 54E5E4E7554E56FFFC43039920000000E856000003C5102E0009548803E80FB4 44EB9900+     A?0000940856000003E5102E0009548803E8044EB990000009408F7C 56000002C5102E0009548803E8044EB990000008C6856000001A560000016F32 54A4067C250C400001467CE50C400002467DA56000000254E5E4E7554E560000F3D 548E70300420799200000008851E104A07567000008452B992000000088FB6 5IGLOB:O 000056E2G0:.INDEX INDEX:O 0000588AFEA G0:.ITOA ITOA:O 00005996G0:.LSEEK LSEEK:O 00005B49FE7 G0:.LTOA LTOA:O 00005D7AG0:.MALLOC MALLOC:O 00005F82F84 G0:._MORECOR MCORE:O 00006038G0:.MEMCCPY MEMORY:B@1007488056000000244A9F54CDF008054E5E4E7554E56FFFC54A2E0009FE1 567000008453B99200000008854E5E4E7554E56FFFC44A7992000000108F36 56600004242079A 6.STDIN855368000A56D00002042079A 6.STDIN8520680006F71 410105024000FF42279A 6.STDIN8552A9000656000000E42EB9A 6.SJHO 00006229F73 G0:.MEMCHR MEMORY:O 00006229G0:.MEMCMP MEMORY:O 00006229FD7 G0:.MEMCPY MEMORY:O 00006229G0:.MEMSET MEMORY:O 00006229FBC G0:.MFREE MFREE:O 000065F3G0:.__PRTINT PRTINT:O 000066A7F84 G0:.__PRTSHO PRTINT:OCATDINF3D 844EB9A 9._FILLBUF8560000018560000014442799200000010841039920000000CF46 84488056000000254E5E4E7554E56FFFC533FC000192000000108513EE0009F8D 920000000C854E5E4E7554E56FF9A548E7010452A6E000842EBC9000000592F62 853F3C006452F0E06975FFFFFF9C44EB99000000KI 000066A7G0:.__PRTLD PRTINT:O 000066A7F9E G0:.PUTCHAR PUTCHAR:O 00006D09G0:.PUTS PUTS:O 00006DD4FCF G0:.SRAND RAND:O 00006EFEG0:.RAND RAND:O 00006EFEFD7 G0:.READ READ:O 0000706EG0:.REALLOC REALLOC:O 00B684845C8F53D40FF9A42E8EF84 406975FFFFFF9C44EB9A 5.ATOF85F21574005302EFF9A56000000244A9FF35 54CDF200054E5E4E75210000013C210000013C2200000092FD2 :MASM20 R3.2 24-Oct-86 15:08:27 LJ0072C6F6A G0:.RENAME RENAME:O 00007457G0:.RINDEX RINDEX:O 00007531FFF G0:.SBRK SBRK:O 00007637G0:.STRCAT STRCAT:O 000077DCF58 G0:.STRCHR STRCHR:O 000078D9G0:.STRCMP STRCMP:O 000079E9F72 G0:.STRCPY STRCPY:O 000EG0:.ALLOC ALLOC:O 00000D76G0:.ATOI ATOI:O 0000100EF03 G0:.ATOL ATOL:O 000011BBG0:.CALLOC CALLOC:O 000013A4FAF G0:.COPY COPY:O 00001536G1:._CTYPE CTYPE:O 0000197DF76 G0:.EXIT EXIT:O 00001C6CG0:.FCMK07AFDG0:.STREND STREND:O 00007BE0F50 G0:.STRLEN STRLEN:O 00007D33G0:.STRNCAT STRNCAT:O 00007E16F38 G0:.STRNCMP STRNCMP:O 00007F38G0:.STRNCPY STRNCPY:O 000080A4FB1 G0:.STRPBRK STRPBRK:O 000081B9G0:.STRRCHR STRRCHR:O 000082D7FFDLOSE FCLOSE:O 00001D98F6B G0:.FFLUSH FFLUSH:O 00001FA0G0:.FGETC FGETC:O 00002120F5B G0:.FGETS FGETS:O 00002233G0:.FGETSS FGETSS:O 00002403F4D G0:._FILLBUF FILLBUF:O 000025B1G0:.FOPEN FOPEN:O 0000289EFB1 G0:.FPUNLC1 G0:.STRSPN STRSPN:O 00008404G0:.STRTOK STRTOK:O 00008542F65 G0:.SYSTEM SYSTEM:O 000087BFG0:.TTYOPEN TTYOPEN:O 00008CFDFBE G0:.UNGETC UNGETC:O 00008EC6G0:.WRITE WRITE:O 0000907EFED G0:.XEQ XEQ:O 0000924CG0GETC FPUTC:O 00002C85G0:.FPUTS FPUTS:O 00002EE6F2E G0:.FPUTSS FPUTSS:O 00002FE3G0:.FREAD FREAD:O 000030DEF00 G0:.FREE FREE:O 000032C5G0:.SCANF FSCANF:O 000034EEFDC G0:.FSCANF FSCANF:O 000034EEG0:.SSCANF OM:.EXTRAP XEQ:O 0000924CF28 G0:.ERRTRAP XEQ:O 0000924CG0:.PRINTF XPRINTF:O 0000962AFBA G0:.FPRINTF XPRINTF:O 0000962AG0:.SPRINTF XPRINTF:O 0000962AFD1 G0:._ERROR XPRINTF:O 0000962AG0:.CLOSE CLOSE:O 0000A290FCC G0:HFFSCANF:O 000034EEFF7 G0:.__DEC FSCANF:O 000034EEG0:.FSEEK FSEEK:O 00004FD2F52 G0:.FTELL FTELL:O 000051B6G0:.FWRITE FWRITE:O 000052DCF0E G0:.GETCHAR GETCHAR:O 00005459G0:.GETS GETS:O 00005515F61 G0:.GLOB GPN.CREAT CREAT:O 0000A314G0:.GETC GETC:O 0000A3F3F00 G0:.LDIV LDIV:O 0000A461G0:LDIV LDIV:O 0000A461F44 G2:.LDIVR LDIVR:O 0000A5F7G0:.LDIVU LDIVU:O 0000A66BF3C G0:LDIVU LDIVU:O 0000A66BG0:LMUL +     QO LMUL:O 0000A7AFF9C G0:LMULU LMULU:O 0000A8C4G0:.LMULU LMULU:O 0000A8C4F1C G0:LREM LREM:O 0000A99DG0:.LREM LREM:O 0000A99DF0A G0:LREMU LREMU:O 0000AA28G0:.LREMU LREMU:O 0000AA28F4C G0:.OPEN YW 5 01031861040E000000070C07.CALLOC0000000054E560000F81 548E71F0C5302E00085C0EE000A4028050000FFFF52C00203C5FFFF0000FDF 4C0865670000084428056000003E520063E0053E874EB9A 7.MALLOC842840F69 4200C566000008442805600000245080700005670000045524738074E244FAF 542RP OPEN:O 0000AAB6G0:.PUTC PUTC:O 0000AB9EFD3 G0:.SETJMP SETJMP:O 0000AC0CG0:.LONGJMP SETJMP:O 0000AC0CF4C G0:.TSTFILE TSTFIL:O 0000ACC4FE6 0CALLOC 5 01031861040E0000000C2E20000000622000000002200000006FAA 2000000000CZX452A4C560000004438C5551CCFFFC4200D56000000244A9F54CDF30F0FC2 54E5E4E75210000000021000000002200000000F03 :MASM20 R3.2 31-Oct-86 10:40:38 0CCOPY 5 01031861040E00000018CC05.COPY0000000054E56FFDEFBF 548E70F004425752F2E000844EB9A 5.OPEN84588F53D40FSQ06.ALLOC0000000054E560000548E7030C53E2E000855A473007F7E 4028050000FFFF580FC000653E00524750C4700015660000084428056000008EF6D 42879A 8._ALLOCP84200C56600001C4287C920000000085200C23C0A 8._ALLOCPFB7 8423C092000000008442799200000004842A545BE6D00045620000385[YFFE56E000008F61 470015600001604425752F2E000C44EB9A 6.CREAT84588F53D40FFFC56E000008F4F 47002560000144542574EB9A 5.SBRK852D40FFF85200E06805FFFFFFF2F8C 590AEFFF8406805FFFFFF0452D40FFF447C015600000C24428756000004EF7C 52E8E06975FFFFFFEE5202EFFF85D0872F0053FTRBE6D0004F56 5660000084289556000001459F6D00045302D00045C0FC00064DBC053B470004F64 423CCA 8._ALLOCP84203C58000000058195200D45C805600000284BBF9FC7 A 8._ALLOCP856600001853E874EB9A 9._MORECOR852A40200D566000008FA6 442805600000085284D2A555609C4A9F54CDF308054E\Z2EFFFE42F3C5000000FCF14 44EB9A 5.XRBF84DFFC50000000A548C02A0044A8556600000A42D7C5000000FCF86 5FFEE4A8556700000844240560000004570013C005DEAEFFEE5BEAEFFF4F91 56C00000654A4666A84428556000005A5202EFFF85D0852E8053F2EFFFCFCE 5200506805000000FC4BE8056C00000C5US5E4E752100000000F05 21000000002200000006FED :MASM20 R3.2 31-Oct-86 10:40:23 0CATOI 5 01031861040E00000007EC05.ATOI0000000054E560000F30 548E7070452A6E00085600000044528D50C150020467F850C15000D467F2F27 50C150009567EC7C0150C15002B56700000A50C15002][2007908542F0056000000842F3CF49 5000000FC44EB9A 5.XWBF855C8F4A4056700001C53EAEFFFE44EB9A 6.CLOSEFFA 853EAEFFFC44EB9A 6.CLOSE847003560000066406855000000FC5BA876DA4FDF 44A4656600FF3C52E8E06975FFFFFFDE52F0E06975FFFFFFE252F0E0697F03 5FFFFFFE652F0E06975FFFFFVTD56600001450C1D002BF8E 56600000847001560000004570FF3C00442475600000125CFFC000A41015F62 54880DE4050647FFD04528D50C15003056D00000850C15003956FE23006F34 4C1C756000000244A9F54CDF20C054E5E4E75210000000021000000002200000000FF1 :MASM20 R3.2 31-Oct-86 10:40:2^\FEA52F2E000844EB9A 5.XRFA84DFFC500000010FD1 53EAEFFFE44EB9A 5.XCLF85302EFFE05E0403E8053F2EFFFC44EB9A 5.XCFAFD9 85548F424056000000244A9F54CDF00E054E5E4E7521000000002100000000FD9 2200000000FD6 :MASM20 R3.2 31-Oct-86 10:40:44 0CCTYPE 5 01031861040WU8 0CATOL 5 01031861040E000000098C05.ATOL0000000054E560000F35 548E7070452A6E00085600000044528D50C150020467F850C15000D467F2F27 50C150009567EC7C0150C15002B56700000A50C15002D56600001650C1D002BF8C 56600000847001560000004570FF48C052C00428756000002242_]E100000100C17._CTYPE000000002100000000F4E 520202020520202020520282828528282020520202020FE1 520202020520202020520202020548101010510101010F06 510101010510101010584848484584848484584841010FAF 510101010510818181581818101501010101501010101FED 50101010150101XVF3C50000000AFA9 52F074EB9A 4LMUL85508F2E0051015488050640FFD0548C0DE804528DFD1 50C15003056D00000850C15003956FD22F0752F064EB9A 4LMUL84508FF0D 56000000244A9F54CDF20C054E5E4E75210000000021000000002200000000F13 :MASM20 R3.2 31-Oct-86 10:40:32 0CCALLOC `^0101501010110510101010510828282F02 582828202502020202502020202502020202502020202FF1 502020210510101020500000000500000000500000000F25 500000000500000000500000000500000000500000000F31 500000000500000000500000000500000000500000000F31 500000000500000000500,     a_000000500000000500000000F31 500000000500000000500000000500000000500000000F31 500000000500000000500000000500000000500000000F31 50000000050000000050000000050000000021000001002200000000F1E :MASM20 R3.2 31-Oct-86 10:40:50 0CEXIT 5 01031861040E0000ig40566000008F36 4428056000000C442145202E000856000000244A9F54CDF30E054E5E4E75F15 210000000021000000002200000000F10 :MASM20 R3.2 31-Oct-86 10:41:16 0CFGETSS 5 01031861041E00000007CC07.FGETSS0000000054E56FFFEFDA 548E7031C52A6E00085286E000E44A5456700b`00046C05.EXIT0000000054E560000F28 548E7010442A7CA 7._STRM0856000001C52A6D000244A5556F00001242E8DF23 44EB9A 7.FFLUSH853E954EB9A 6.CLOSE854AAD0002466E053EAE000844EB9F21 A 6._EXIT844A9F54CDF200054E5E4E75210000000021000000002200000000F4D :MASM20 R3.2 31-Ojh003050C6E00844000C56D000026F48 52E8E559752F0D3F1444EB9A 5.XRLF855C8F3E0044A47567000008497CBF4E 5600000044264D56000002A42E8C53F2E000C52F0D4EB9A 6.FGETS845C8FF46 52640200B56700001252E8D4EB9A 7.STRLEN85304053485D1CD4210F66 4200B56000000244A9F54CDF388054E5cact-86 10:40:55 0CFCLOSE 5 01031861041E00000009CC07.FCLOSE0000000054E560000F4F 548E7010C52A6E00084200D56700000844A55566000008470FF560000076F3F 4200D56300001E52E8D4EB9A 7.FFLUSH853E954EB9A 6.CLOSE844A40F6B 567000008470FF56000005454255287CA 7._STRM0kiE4E75210000000021000000002200000000F0D :MASM20 R3.2 31-Oct-86 10:41:21 0CFILLBUF 5 01031861041E0000000FEC09._FILLBUF0000000054E56FFFAF1C 548E7070C52A6E000844A5556C00002A42879A 8._TCBPTR84D9FC50000044FF9C 51C143015544404880518804EB9A 5.XGCP853E001db85600000065286C0002FAE 5BBEC0002466F65296D000240002542AD000244AB9A 7._STRM1856600000CF1B 423CDA 7._STRM1856000001A42879A 7._STRM185600000065286C000254AAC0002F8C 466F65294D00024700056000000244A9F54CDF300054E5E4E752100000000FFB 21000000002200000000FF3 :Mlj8865426D000A5600000B6F49 44A555660000345A07A55C155DC2840154882804253E00BBFCA 7._STRM0F65 856600001450C47000D5660000084A08856000000653007A0865426D000AF72 56000007E5082D00004010956700000C5426D000A47EFF56000006A42E8EF21 45997541ED000C52B480006520082F0053FecASM20 R3.2 31-Oct-86 10:41:00 0CFFLUSH 5 01031861041E00000006AC07.FFLUSH0000000054E560000F3C 548E7070452A6E000852C2D00065200D068050000000C59C804A8656700002EF8B 5082D00014010956700002452E8D069750000000C53F152F0644EB9A 5.XWBFF45 855C8F3E0056700000mk152F3C5000000FC44EB9A 5.XRBFF02 84DFFC50000000A53D40FFFA56700000C5202EFFFC453805600000084203CF87 5000000FB53B40000A56D0000145206D0006410105024000FF552AD0006560000004FD0 570FF3E0054A6EFFFA56700000853B7C000150108300756000000244A9FF26 54CDF30C054E5E4E7521fdA53E874EB9A 5.EXIT853B7C00FC4000A541ED000CF5E 52B4800064424056000000244A9F54CDF20C054E5E4E7521000000002100000000F1E 2200000000FD6 :MASM20 R3.2 31-Oct-86 10:41:06 0CFGETC 5 01031861041E00000003CC06.FGETC0000000054E560000FDC 548E7010452A6E0008553nl0000000021000000002200000000FF7 :MASM20 R3.2 31-Oct-86 10:41:27 0CFOPEN 5 01031861041E000000162C06.FOPEN0000000054E560000FCB 548E7071C52A6E000C44AB9A 7._STRM1856700001442879A 7._STRM18523EC0002F47 A 7._STRM1856000001E53EBC010A44EB9A 5.SBRK85284ge6D000A56D0000145206D0006410105024000FF552AD0006F96 56000000A52E8D4EB9A 9._FILLBUF856000000244A9F54CDF200044E5EF6B 44E75210000000021000000002200000000FF7 :MASM20 R3.2 31-Oct-86 10:41:10 0CFGETS 5 01031861041E00000008AC06.FGETS0000000054E560000FBom0B9FC5FFFFFFFFF4F 5660000084428056000011650C15007256700001850C15007756700001050C150061F16 567000008442805600000F847EFF50C1500775660000184425752F2E0008F41 44EB9A 6.CREAT85588F3E0047C0156000001250C15006156600000847C02FB3 5600000044424650C2D002B4000156600hf9 548E70F0C53E2E000C52A6E000E5286E000853A0753455600000405536D000AF5B 56D0000145206D0006410105024000FF552AD000656000000A52E8D4EB9F63 A 9._FILLBUF841C0050C40FFFF567000004418C650C06000D56700000E50C06FFFFF70 567000006551CDFFC050C06FFFF5660000125300755404BApn000447C0250C47FFFF566000012F4C 43E8652F2E000844EB9A 5.OPEN85588F3E0050C47FFFF56600002E50C150061F8E 5670000084428056000008E4425752F2E000844EB9A 6.CREAT85588F3E00F98 50C47FFFF5660000084428056000007043887542AC00025426C01084267CF20 A 7._STRM085600000065266,     qoB000254AAB0002466F65274C0002510154880F9D 56000002A5320774FF4A0DC5397C00FC4000A541EC000C529480006560000028F33 5426C000A541EC010852948000656000001850C400061467D250C400072467E4F7B 50C400077467CC5600000024200C56000000244A9F54CDF38C054E5E4E75FED 21000000002yw0008E55D8D4A9556D000008F4D 442805600000804203C57FFFFFFF5C1952879A 8._ALLOCP85600000164B9D4FA0 56500000E4BBCC5620000124BBD456500000C52854BBCC563E8BBD4464E4FA4 5302D00045C0FC00065D08DB094566000014420545302800045D16D0004F7A 520542A9056000000442A945302C000rp1000000002200000000F10 :MASM20 R3.2 31-Oct-86 10:41:34 0CFPUTC 5 01031861041E0000000B6E10000000AC06.FPUTC00000000F7A 54E560000548E7070C53E2E000852A6E000A5024700FF50C47000D566000032F6F 44EB9A 5.XCBC850C40FFFD5660000164287C910000000085224CA08A53Ezx45C0FC00065D08CBBC0566000010F66 5302D00045D16C0004428955600000045288D23CCA 8._ALLOCP84200C560000002F51 44A9F54CDF300054E5E4E75210000000021000000002200000000FE2 :MASM20 R3.2 31-Oct-86 10:42:01 0CFSCANF 5 01031861042E0000008BEE10000013CE20000008E2sqBCFFFFF0E 44EB9A 5.EXIT844A5556600000A5A088300756000006244A5556600000AFEF 53007A08656000004E44A5556C00002242879A 8._TCBPTR84D9FC500000452FEE 51C1430155444048805188030075A0BA188656000002854A6D000A56E00000AFA3 52E8D4EB9A 7.FFLUSH853B7C00025010830075226D0{y200000000F2E 220000000420000000002200000004220000000820000000002200000008F4E 220000000C2000000000220000000C220000000E2000000000C06.SCANF00000000F4D 54E56FFFC533FC0001920000000C8423F9A 6.STDIN892000000008541EE0008FCB 423C89200000004844EB9900000008685600tr00641280552AD0006F6B 5536D000A4300756000000244A9F54CDF30C054E5E4E75210000000040D0AFDA 53E3E4252545414B00210000000A2200000000F17 :MASM20 R3.2 31-Oct-86 10:41:40 0CFPUTS 5 01031861041E000000034C06.FPUTS0000000054E560000F99 548E7010C52A6E00085286E|z0000254E5E4E75C07.FSCANF0000002EF3E 54E56FFFC533FC0001920000000C8523EE000892000000008541EE000C423C8F57 9200000004844EB99000000086856000000254E5E4E75C07.SSCANF0000005AF46 54E56FFFC533FC0002920000000C8523EE000892000000088541EE000C423C8F4E 9200000004844EBus000C56000001452E8C1015548803F0044EB9F39 A 6.FPUTC85548F528D54A1566EA44A9F54CDF300054E5E4E752100000000F29 21000000002200000000FF3 :MASM20 R3.2 31-Oct-86 10:41:45 0CFPUTSS 5 01031861041E000000032C07.FPUTSS0000000054E560000F14 548E7010452A6E000C42E}{99000000086856000000254E5E4E7554E56FFFC548E70F00F51 5424720799200000004852D50FFFC458B9920000000485600000D45206EFFFCF59 51010488041C00552AEFFFC5600000B2430075600000C05206EFFFC50C100025F1E 567000064420799200000004852E902F0E559974EB9900000018484588FF6B 56vt8D52F2E000844EB9A 6.FPUTS85588F2E8D53F3C000DF0D 44EB9A 6.FPUTC85548F4A9F54CDF200054E5E4E7521000000002100000000F38 2200000000FD6 :MASM20 R3.2 31-Oct-86 10:41:50 0CFREAD 5 01031861041E000000094C06.FREAD0000000054E560000FF3 548E73F0C52A6E000853E2E~|0000030458B9920000000484524756000003C4300756000008A44A47567000008F32 43007560000004470FF560000078470FF56000007256000001A50C40FFFEF31 467DE50C40FFFF567D24A40467CA50C400001567BC60DE56000004E552AEFFFCF68 542574EB990000004668548801A004BC0556700002051005488wu000C53C2E000E5286E0010542454A4756F000008F40 44A4656E0000084300556000006056000004E4380756000000451AC33004F95 553444A4056700002C5536C000A56D0000145206C0006410105024000FFF97 552AC000656000000A52E8C4EB9A 9._FILLBUF84360050C43FFFF466CAF42 50C43FFFF566000008}043E80FEE 44EB9900000081C844A4756700000843007560000004470FE56000001E560000016F01 56000001244A4056700FF4C50C40002556700FF4A460B856000FF2C44A9FFDC 54CDF00E054E5E4E7554E560000548E70F00542463E065600001965206E0008F4E 520501010548801A005226E00084529156000016xv43005560000012552453006553464A40566AC3005F75 56000000244A9F54CDF30F854E5E4E75210000000021000000002200000000F07 :MASM20 R3.2 31-Oct-86 10:41:55 0CFREE 5 01031861042E0000000AEC05.FREE0000000054E560000F3A 548E7010C52A6E00084200D566000008442805600~8542AE000C560000178FB7 5CDFC000A5100548804DC4050646FFD056000016644A47567000008470FDFE6 56000015E47E0156000015444A47567000008470FD56000014C47EFF560000142F3A 43E8753F3C000844A4656700000843F0656000000653F3C006452F2E000CF1D 44EB9900000033684508F56000012043-     E8753F3C000A44A4656700000843F06F90 56000000653F3C006452F2E000C44EB9900000033684508F5600000FA43E87FAB 53F3C001044A4656700000843F0656000000653F3C006452F2E000C44EB9F17 900000033684508F5600000D444A47567000008470FD5600000C844A46567000008FED 43E865600000065300E52F084EB9A 4LMUL85508F28005300648C04D88056000000CF1D 5302E000E5C1C336005D646425744EB990000004668548801E0053EAE000EFC3 51007488053F004EB990000004D085548F3C0056D0000085BA6E000C46DA2FBE 51007488053E804EB9900000081C854A6EFFFC566000008470FF560000046FB4 4EBC000152F2E000C44EB9900000072884588F5600000A8FA8 44A47567000008470FD56000009C42EBC900000057A844A4656700000843F06F82 56000000653F3C006452F2E000C44EB9900000068E845C8F560000076470FDF91 56000007044A47567000008470FD56000006452EAE000844EB990000005FEFF5 844A200D5660000084424056000003A54A6EFFFE56700001A54A6E001056700000CF4F 520044480428005600000085300344404360054A6E001056700000A4284DF9B 4288456000000453A83700156000000244A9F54CDF30F854E5E4E7554E560000F33 548E7030044EB990000007B0843E0050C47FFFF566000008470FF40567000008470FD56000004E42EBC90000005CC844A4656700000843F06F46 56000000653F3C006452F2E000C44EB9900000068E845C8F560000028470FDF94 56000002256000001A50440002A50C40004E562ECE54053040D1FC9100000000F92 8520504ED0210000000090000001AA890000003068900000030689560000044F8E 54A6E00085660000084300756000003656000001A50C47000D56600000A54A6E0008FCF 56D00001C44EB990000007B0843E0050C470020467E250C470009467DC50C47000DF91 567D6300756000000244A9F54CDF008054E5E4E7554E560000548E70F00F18 51E2E000953C2E000A50C07003056C000000000306F2C 8900000030689000000306890000001B2890000001B2890000001B2890000001B2F8E 890000001B2890000001B2890000001B2890000001B2890000001B2890000001B2F76 890000003068900000030689000000306890000003068900000030689000000306FBE 89000000306890000003068900000008470FF56000008450C07003756E00000EF88 51007488050640FFD056000007050C460008566000008470FF560000062F9B 50C07003956E00000E51007488050640FFD056000004E50C46000A56700000AFA0 50C07004156C000008470FF56000003850C07004656E00000E510074880F94 50640FFC95600000245003068900000025A8900000020E890000002B8F8E 890000002B88900000030689000000306890000003068900000030689000000306FAB 890000003068900000030689000000306890000001E88900000030689000000306FA9 890000003068900000028689000000306890000003068900000030689000000306FB7 8C07006156D00000A50C07006656F000008470FF56000000EF91 51007488050640FFA956000000244A9F54CDF00E054E5E4E7554E560000F0E 548E703005102E0009548801E0050C40FFFF566000008470FF56000002CF41 50C07002056700001850C07000956700001050C07000D56700000844A07566000008FFD 4790000002348900000030689000000306890000002BE8900000030689000000306F9E 89000000306890000003068900000030689000000306890000003068900000025AFAF 8900000020E890000002B8890000002B889000000306890000001D689000000306F78 8900000030689000000306890000001C489000000300015600000084424056000000244A9F54CDF008054E5E4E75220000000EF14 220000008E20000005CC54E56FFFC50C2EFFFF40009566000008470FF56000001CF8B 5102E00095488048C052040223C920000000E851030180044880560000002F68 54E5E4E7554E560000548E70F0452A6E0008520551E104529550C0689000000306890000001E8F9A 890000003068900000030689000000306890000002868900000030689000000306FB7 8900000030689000000306890000002348200000032856000FE6A44A9F54CDF00E0FE5 54E5E4E75C06.__DEC0000033654E56FFFC548E73F0C52A6E0008542434284FCA 4424053D40FFFE43A07005EF28 56600000E54245205551E10529556000000457A017C0156000001043005FD3 53246D3FC920000000E851280524650C46008056DEC7001590453A00FF9 56000002844A07566000008470FF5600000305300512074488150241007FF8E 53241D3FC920000000E851280205551E10529550C07005D466D4513F053EBC000144EB99000000466841E00560000022470FEF52 5600000FA53D7C00015FFFE524553EBCFFFF44EB990000004668548801E00F53 56000001C50C40FFFF567DA4A40467D650C40002B467DC50C40002D467D0FAD 5600000025426EFFFC560000042452455526EFFFC54A6E001056700001E42F04F13 5306E0C0001FF3 920000000E84424056000000244A9F54CDF20E054E5E4E7554E560000548E71F0CFA5 52A6E000853E2E000C5286E000E57801B9FC90000005CC856600000844240FCD 560000004570013A0056000000E4200D56700000451AC6424453A043E85FAA 44EB99000000466851C003E8054E944A4056600000A53-     007534744A40FD3 56ED81006548803E8044EB9900000081C844A4456700001650C06FFFF566000008FB0 470FE560000004470FF5600000164200D5660000084424056000000A44215F4F 4700156000000244A9F54CDF30F054E5E4E7554E560000548E70F0C52A6E0008FF3 53E2E000C5284D3A0756000004E542574000000FDD :MASM20 R3.2 31-Oct-86 10:42:26 0CFWRITE 5 01031861042E000000068C07.FWRITE0000000054E560000F32 548E71F0C52A6E000853E2E000C53C2E000E5286E0010542454A4756F000008F42 44A4656E000008430055600000345600000224380756000001252E8C101DF91 548803F00EB990000004668548801C0056E000036F1B 5300552404BE4056600001A50C06FFFF566000008470FE560000004470FFF05 56000003A5600000144200D5660000084424056000000447001560000024FDE 4200D56700000451AC63005553454A40566AC200D56600000844240560000004FA2 4700156000000244A9F544EB9A 6.FPUTC85548F3004553444A40566E8524543006F85 553464A40566D8300556000000244A9F54CDF30F054E5E4E752100000000F11 21000000002200000000FF3 :MASM20 R3.2 31-Oct-86 10:42:31 0CGETCHAR 5 01031861042E000000018C08.GETCHAR0000000054E56FFFCFA7 42EB9A 6.S4CDF30E054E5E4E7554E56FFFC43039920000000CF8F 856000004C420799200000000855368000A56D0000204207992000000008FB1 520680006410105024000FF4227992000000008552A9000656000000E42EB9F15 9200000000844EB9A 9._FILLBUF856000002044EB990000008708560000016F35 5600000125TDIN844EB9A 5.GETC856000000254E5E4E7521000000002100000000F3E 2200000000FD6 :MASM20 R3.2 31-Oct-86 10:42:36 0CGETS 5 01031861042E000000086C05.GETS0000000054E560000F30 548E7030452A6E0008442475600000065528D524742079A 6.STDIN855368000AFDA 56D000020C400001467B050C400002467E656000000254E5E4E7554E560000F8F 548E7030053E2E000843039920000000C856000002642EB99200000000843F07F95 44EB9A 7.UNGETC84548F56000002253E874EB990000008A88560000016FE0 56000001250C400001467D650C400002467E456000000244A9F54CDF0080F49042079A 6.STDIN8520680006410105024000FF42279A 6.STDINF6D 8552A9000656000000E42EB9A 6.STDIN844EB9A 9._FILLBUF841A8050C40FFFFF74 56700000850C15000D466B450C15FFFF56600000E44A4756600000844280F1D 56000000C442155202E000856000000244A9F54CDF208054E5E4E75210000 54E5E4E7554E560000548E70300420799200000008851E104A0756700000CF06 452B992000000088560000008470FF56000000A51007488056000000244A9FF0D 54CDF008054E5E4E7554E56FFFC54A2E0009567000008453B99200000008FC3 854E5E4E75210000013C210000013C220000008EF80 :MASM20 R3.20000F41 21000000002200000000FF3 :MASM20 R3.2 31-Oct-86 10:42:41 0CGLOB 5 01031861042E00000007AC05.GLOB0000000054E56FFFCFEF 548E7011C42A79A 7._EOMEM842E8D52F2E001044EB9A 5.XBFL85588F284DF83 5600000045528C1014448805122C0001548818041566F0200C5568 31-Oct-86 10:42:15 0CFSEEK 5 01031861042E000000092C06.FSEEK0000000054E56FFFCF87 548E7030452A6E000853E2E00104200D56700000844A55566000008470FFF2F 56000006850C47000156600000E52E8D4EB9A 6.FTELL852D40FFFC42E8DF6C 44EB9A 7.FFLUSH850C470001566000012400280FB3 5FFFFFFFE52D40FFFC5226E000C422805206E000854250284D5266EFFFCF62 560000012426CC5206E00084525056000000254A1C66FC54A1466EC423CBF0F A 7._EOMEM844A9F54CDF380054E5E4E75210000000021000000002200000000F0A :MASM20 R3.2 31-Oct-86 10:42:46 0CINDEX 5425752F2EFFFC53F154EB9A 6.LSEEKFB4 855C8F3E8752F2E000C53F154EB9A 6.LSEEK855C8F4A8056C000008470FFFFB 5600000185426D01085426D000A541ED010852B4800064424056000000244A9FF88 54CDF208054E5E4E75210000000021000000002200000000F03 :MASM20 R3.2 31-Oct-86 10:42:21 01031861042E00000003AC06.INDEX0000000054E560000FBF 548E7070452A6E000851E2E000D442465600000124BE1556600000843006F48 56000001055246528D54A1566EC470FF56000000244A9F54CDF20C044E5EFD3 44E75210000000021000000002200000000FF7 :MASM20 R3.2 31-Oct-86 10:42:50 0CFTELL 5 01031861042E000000046C06.FTELL0000000054E560000FCB 548E7010452A6E00084200D56700000844A55566000008470FF560000020F59 548E7101053215A0FE556C120025342D000A548C290825488148C148081F4C 54CDF080844A9F54CDF200054E5E4E75210000000021000000002200 0CITOA 5 01031861042E000000080C05.ITOA0000000054E56FFF8FF8 548E71F0453E2E000852A6E000A53C2E000E43A0756C000008530074440F3B 53E0042445300748C0581FC000A4484050640003053244D3CE51340FFF8F3B 5524448C758FFC000A56EE04A4556C00000E53044D1CE5117C002D4FFF.     8FBB 4524456000000651AFC00205534630065B8406FF456000000A53044D1CEF62 51AE8FFF8553446CF4542154A9F54CDF20F054E5E4E7521000000002100000000FBE 2200000000FD6 :MASM20 R3.2 31-Oct-86 10:42:55 0CLSEEK 5 01031861043E0000000B4C06.LSEEK0000000054E56FFF4F7E 8E7070C52A6E00085286E000C53E2E001053C2E001256000000451ADC3006F6B 553464A4056700000A5101448805BE4066EC44A4656700000841ADC560000004F5B 59BCD200D56000000244A9F54CDF30C054E5E4E75C07.MEMCHR0000004EF82 54E560000548E7070452A6E000853E2E000C53C2E000E56000000253548E70F0053E2E000852C2E000A54A6E000E56700003452E8E519742F0EF06 559972F0E406975FFFFFFF453F074EB9A 5.XRFP84DFFC50000000A43A00F03 56700001053E854EB9A 5.XLER8470FF5600000625302E000E560000020F27 5DCAEFFF856000002A5DCAEFFFC56000002256000001E470FF5600000405600065346F93 44A4056700000A5101D48805BE4066EE44A4656700000A5538D200D560000008F4D 4428056000000244A9F54CDF20C054E5E4E75C07.MEMCMP0000009654E560000FBC 548E7030C52A6E00085286E000C53E2E001056000000253007534744A40F6E 5670000065B90D67F2510254880512244881490415000014F13 54A4067EE50C400001467E050C400002567D260E452E863F0744EB9A 5.XPSFFE6 85548F3A0044A4556700001053E854EB9A 5.XLER8470FF56000000842006F92 56000000244A9F54CDF00E054E5E4E75210000000021000000002200000000F13 :MASM20 R3.2 31-Oct-86 10:43:01 0CLTOA 6000000244A9F54CDF3080F5D 54E5E4E75C07.MEMCPY000000D454E560000548E7031C52A6E00085286E000CFCD 53E2E00104264D56000000451ADC3007553474A40566F6200B560000002F7B 44A9F54CDF388054E5E4E75C07.MEMSET0000010854E560000548E7070CF80 52A6E000853E2E000C53C2E000E4284D5 5 01031861043E0000000A4C05.LTOA0000000054E56FFF0FEC 548E7070452A6E000C53E2E001052D6E00084FFFC56C00000C5202E000844480F05 52D4000085424630465D1CE2F0842F3C50000000A52F2E000844EB9A 4LREMF3E 85508F06805000000304225F51340FFF0552462F3C50000000A52F2E0008F26000000451AC73006553464A40F42 566F6200D56000000244A9F54CDF30C054E5E4E7521000000002100000000F03 2200000000FD6 :MASM20 R3.2 31-Oct-86 10:43:21 0CMFREE 5 01031861043E000000016C06.MFREE0000000054E56FFFCF88 52EAE000844EB9A 5.FREE856000000254E5E4E752C 44EB9A 4LDIV84508F52D40000846EC254AAEFFFC56C00000E53046D1CEF5D 5117C002D5FFF0524656000000651AFC00205534730075BC406FF456000000AF66 53046D1CE51AE8FFF0553466CF4542154A9F54CDF20C054E5E4E752100000000FAB 21000000002200000000FF3 :MASM20 R3.2 31-Oct-86 10:41000000002100000000FEA 2200000000FD6 :MASM20 R3.2 31-Oct-86 10:43:26 0CPRTINT 5 01031861043E000000236E100000016C09.__PRTINT00000000F30 54E56FFF0548E7030C52F0E06975FFFFFFF053F2E001253F2E001042F0EF76 4069750000000C52F2E00085206E001454E90DFFC5000003:06 0CMALLOC 5 01031861043E000000016C07.MALLOC0000000054E56FFFCF15 53EAE000844EB9A 6.ALLOC856000000254E5E4E7521000000002100000000F9F 2200000000FD6 :MASM20 R3.2 31-Oct-86 10:43:10 0CMCORE 5 01031861043E00000008CC09._MORECOR0000000054E56FF01052A40200EF62 406805FFFFFFF04BBC05660000044421D5286E000C56000002A51E254887FC2 50C47000A56C00000A50647003056000001454A6E001856700000847037560000004FF2 57057DE40518C7200E406805FFFFFFF05BBC066CC54214200C560000002FD5 44A9F54CDF308054E5E4E75C09.__PRTSHO00FCF63 548E7030453E2E00085083900009 00000003A 7._EOMEMB08567000008452B9F23 A 7._EOMEM8430075C0FC00064028050000FFFF4D0B9A 7._EOMEM840680FF5 5000003E85220E59814B08156400001E42A79A 7._EOMEM8430075C0FC0006F40 4028050000FFFF4D1B9A 7._EOMEM856000000844280560000009054E560000548E70704FC2 52A6E001453C2E0010448C65206E00085301048C042E0054A6E0012567000022F6B 44A8756C00001C52007448042E005206E000C42050510BC002D5226E000CF2F 452915600000084028750000FFFF56000001C52E862F0744EB9A 5.LDIVFFD 85588F48C052E002039A 6.LDIVR8000224203C580000000F6E 4819553B47000452E8D5C9744EB9A 5.FREE842039A 8._ALLOCP8560000002FA8 44A9F54CDF208054E5E4E75210000000021000000002200000000FDB :MASM20 R3.2 31-Oct-86 10:43:15 0CMEMORY 5 01031861043E00000013CC08.MEMCCPY0000000054E560000FE2 54548801AC054A8766E24200D560000002F7A 44A9F54CDF20C054E5E4E752100000000500080004500060003500080004F57 50007000450001000240000200000010CC08.__PRTLD0000010C54E560000FCE 548E71F0C52A6E001453A2E0010448C55206E000852E102C0750C6E0010F2B 400105660000264780856000.     001252007028050000000F548801AC04E887F92 553444A8756700000654A4466E65600000D450C6E000840010566000032F97 4780B560000012520070280500000007548801AC05E687534444A87567000006FA6 54A4466E644A445660000085022D00034FFFF56000009A54A6E001256700006CF33 44A8756C0000347AFF56000000E54A4067F050C400038567E060EE4300556000000244A9FF02 54CDF30F054E5E4E75210000000021000000002200000000FF4 :MASM20 R3.2 31-Oct-86 10:43:53 0CREALLOC 5 01031861043E000000070C08.REALLOC0000000054E560000FF5 548E7071C53E2E000C52A6E00085284D5C5206E000C42050510BC002D5226E000C552910C87580000000F61 56600001C4287C910000000085600000025301C488051AC066F85538D200DF1B 56000005E52007448042E0056000002052F052F0744EB9A 4LREM84508FF22 548801AC052F052F0744EB9A 4LDIV85508F2E0054A8766DE560000028FF5 5600000D8D53C2D0004430065C0FC0006FFB 53C00BE4056400000453C072E8C44EB9A 5.FREE853E874EB9A 6.ALLOCF77 852640200B5670000084B7CC5660000084200B56000001C52A4BE24E560000004F43 536DC53464300650C40FFFF566F4200D56000000244A9F54CDF38C044E5EF91 44E752100000000210000000022052F052F0644EB9A 5LREMU85508F488051AC02F0552F064EB9FA8 A 5LDIVU85508F2C0054A8666DE4200D56000000244A9F54CDF30F044E5EF49 44E75210000001621000000162200000000FE9 :MASM20 R3.2 31-Oct-86 10:43:33 0CPUTCHAR 5 01031861043E00000001EC08.PUTCHAR0000000054E200000000FF7 :MASM20 R3.2 31-Oct-86 10:43:58 0CRENAME 5 01031861044E000000026C07.RENAME0000000054E56FFFCF13 52EAE000C44EB9A 5.XDLF852EAE000C52F2E000844EB9A 5.XRNF84588FFF1 56000000254E5E4E75210000000021000000002200000000F46 :MASM20 R3.2 31-Oct-56FFFCF67 42EB9A 7.STDOUT85102E0009548803F0044EB9A 5.PUTC85548F4E5E44E75F73 210000000021000000002200000000F10 :MASM20 R3.2 31-Oct-86 10:43:38 0CPUTS 5 01031861043E000000046C05.PUTS0000000054E560000F01 548E7010452A6E000856000001842EB9A 7.STDOUT86 10:44:03 0CRINDEX 5 01031861044E000000038C07.RINDEX0000000054E560000F41 548E70F0452A6E000851E2E000D57CFF424556000000E4BE15566000004F22 53C05528D552454A15566F0300656000000244A9F54CDF20E054E5E4E75F08 210000000021000000002200000000F10 :MASM20 R3.851015488053F004EB9F50 A 6.FPUTC85548F528D54A1566E642EB9A 7.STDOUT853F3C000D44EB9F1E A 6.FPUTC85548F4A9F54CDF200054E5E4E75210000000021000000002200000000F7C :MASM20 R3.2 31-Oct-86 10:43:43 0CRAND 5 01031861043E00000004AE1000000022100000000400012 31-Oct-86 10:44:08 0CSBRK 5 01031861044E000000070C05.SBRK0000000054E56FFFCFE2 548E7030453E2E000842D7C5FFFFFFFF4FFFC5083900009 00000003A 7._EOMEMFDB B08567000008452B9A 7._EOMEM85300748C04D0B9A 7._EOMEM85220E5981FAA 4B08156C00001442D79A 7._EOMFC8 2000000000C06.SRAND0000000054E56FFFA43D79910000000084FFFE533EE0008F68 910000000085302EFFFE56000000254E5E4E75C05.RAND0000002054E56FFFCFFD 43039910000000085C1FC0805506403619433C091000000008430399100000000FA8 8502407FFF56000000254E5E4E7521000000022100EM85FFFC3007548C0D1B9A 7._EOMEMF3E 852A6EFFFC5600000045421DBBF9A 7._EOMEM8465F65202EFFFC560000002FAD 44A9F54CDF208054E5E4E75210000000021000000002200000000FDB :MASM20 R3.2 31-Oct-86 10:44:13 0CSTRCAT 5 01031861044E000000034C07.STRCAT0000000054E560000022200000000F06 :MASM20 R3.2 31-Oct-86 10:43:47 0CREAD 5 01031861043E0000000C2C05.READ0000000054E56FFFCF01 548E71F0C53E2E000852A6E000A53C2E000E44A4756600002044245560000004F43 55245BA4656C00000E44EB9A 5.XGCR8548801AC046CEC56000007C44A47F81 0000F37 548E7010C52A6E000C5286E00085600000045528C4A14466FA560000002F5D 518DD66FC5202E000856000000244A9F54CDF300054E5E4E752100000000FFB 21000000002200000000FF3 :MASM20 R3.2 31-Oct-86 10:44:17 0CSTRCHR 5 01031861044E00000003CC07.STRCHR0000000054E556C00003842879A 8._TCBPTR84D9FC50000044F518143007544404880FF7 51880424556000000455245BA4656C00000E44EB9A 5.XGCP8548801AC0F0D 56CEC188456000004052E8E599752F0D3F07530462F0844EB9A 5.XRBFFE8 84DFFC50000000A5600000185202EFFFC43A0056000001A43A06560000014FEB 60000F1E 548E7030452A6E000851E2E000D5600000045528D4A155670000064BE15F5A 566F4BE155660000084200D5600000084428056000000244A9F54CDF2080F35 54E5E4E75210000000021000000002200000000F03 :MASM20 R3.2 31-Oct-86 10:44:22 0CSTRCMP 5 01031861044E00000003EC0/     7.STRCMP0000000054E560000F16 548E7010C52A6E00085286E000C5600000104B90D56700000A5538D538CF43 56000000654A1566EE5101548805121448814904156000000244A9F54CDF3000F71 54E5E4E75210000000021000000002200000000F03 :MASM20 R3.2 31-Oct-86 10:44:27 0CSTRCPY 5 054E560000FA9 548E7011C52A6E00085286E000C56000001C4264C5600000105101BB015F71 5660000084200D56000001254A1366EE5528D4A15566E24280560000002F8F 44A9F54CDF380054E5E4E75210000000021000000002200000000FDA :MASM20 R3.2 31-Oct-86 10:45:00 0CSTRRCHR 5 01031 01031861044E00000002AC07.STRCPY0000000054E560000F03 548E7011C52A6E00085286E000C4264D56000000251ADC66FC4200B560000002F37 44A9F54CDF380054E5E4E75210000000021000000002200000000FDA :MASM20 R3.2 31-Oct-86 10:44:31 0CSTREND 5 01031861044E000000058C07861045E000000048C08.STRRCHR0000000054E560000FA2 548E7030C52A6E000851E2E000D4284D5600000045528C4A14466FA560000004F3A 5538CB9CD5630000065BE1466F44BE145660000084200C56000000844280F1E 56000000244A9F54CDF308054E5E4E75210000000021000000002200000000F1D :MASM2.STREND0000000054E560000F33 548E7010C52A6E00085600000045528D4A15466FA5286E000C560000004F59 5528C4A14466FA56000001C5BBEE000856500000A51015B014567000008F5A 442405600000125538D538C5B9EE000C564E0700156000000244A9F54CDF3000F3B 54E5E4E752100000000210000000020 R3.2 31-Oct-86 10:45:04 0CSTRSPN 5 01031861045E00000004EC07.STRSPN0000000054E560000FF2 548E7031C52A6E00085286E000C442475600000264264C56000000C41013F4C 4B0155670000085528B4A13566F24A135660000084300756000001045247F7A 5528D4A15566D830075600000024200000000F03 :MASM20 R3.2 31-Oct-86 10:44:36 0CSTRLEN 5 01031861044E00000002AC07.STRLEN0000000054E560000F1D 548E7030452A6E00084424756000000655247528D54A1566F843007560000002F86 44A9F54CDF208054E5E4E75210000000021000000002200000000FDB :MASM20 R3.24A9F54CDF388054E5E4E752100000000F02 21000000002200000000FF3 :MASM20 R3.2 31-Oct-86 10:45:09 0CSTRTOK 5 01031861045E0000000BAE20000000422000000002200000004F3F 2000000000C07.STRTOK0000000054E560000548E7010C54AAE000856600000CF03 4203992000000008560 31-Oct-86 10:44:41 0CSTRNCAT 5 01031861044E000000044C08.STRNCAT0000000054E560000FB9 548E7030C52A6E000C53E2E00105286E00085600000045528C4A14567000006F92 553476CF45600000024534756D000006518DD66F65202E0008560000002F85 44A9F54CDF308054E5E4E75210000000000065202E000852A404A1556600000844280560000086F83 5600000205286E000C56000000C51015B0145670000085528C4A14466F2F9C 44A145670000085528D4A15566DE23CD9200000000856000002C5286E000CFF9 56000001442079920000000085101048804B0145670000085528C4A14466EAF1A 44A14560021000000002200000000FDA :MASM20 R3.2 31-Oct-86 10:44:45 0CSTRNCMP 5 01031861044E000000062C08.STRNCMP0000000054E560000FA9 548E7030C52A6E00085286E000C53E2E001056000002244A1556700002041015F7D 4B014567000010510154880512144881490415600000265528D528C6000012452B992000000008420799200000000854A1066CC42079F83 9200000000844A1056700001042079920000000085421052B99200000000FD8 84200D56000000244A9F54CDF300054E5E4E75210000000021000000002200000004FDF :MASM20 R3.2 31-Oct-86 10:45:14 0CSYSTEM 5 010318610551CFFFDEF52 50C47FFFF5660000084424056000001051015488051214488149041560000002FAB 44A9F54CDF308054E5E4E75210000000021000000002200000000FDA :MASM20 R3.2 31-Oct-86 10:44:50 0CSTRNCPY 5 01031861044E00000003EC08.STRNCPY0000000054E560000F81 548E7031C5245E0000001AEE100000010E2000000062200000000F2C 22000000042000000000220000000422000000062000000000C07.SYSTEM00000000FFF 54E56FF7E548E7070C542574EB9A 5.SBRK852D40FFF8541EEFDEE52D48FFFCFFC 42A79A 8._TCBPTR842879A 7._SYRAM851C2D044F510064880548C0D08CFAF 420A6E00085286E000C53E2E00104264D5600000024534756D000006F5C 516DC66F65600000045421B534756CFA200D56000000244A9F54CDF3880F16 54E5E4E75210000000021000000002200000000F03 :MASM20 R3.2 31-Oct-86 10:44:55 0CSTRPBRK 5 01031861044E000000042C08.STRPBRK00000004051D6800285FFF210065488048C05D08C204054228002851D6D0436F4C 4FFF05002DFF804043653EBCFFFF44EB9A 5.XRTS8506400040433C09200000004F06 853EBC004652F2E000852F0E06975FFFFFF8A44EB9A 8.STRNCPY84508FFDF 42EBC9100000000852F0E06975FFFFFF8A44EB9A 7.STRCAT85588F3079/     F34 9200000004852E882F0E406975FFFFFF8244EB9A 5.XCBX85588F2E8042F0EFC4 406975FFFFFF8A44EB9A 7.STRCAT85588F2EBC910000000A852F0E0697F20 5FFFFFF8A44EB9A 7.STRCAT84588F523ED04469200000000842B7C9000000192F27 8504462E8E406975FFFFFFEE52F0E06975FFFFFF8A52F2EFFF855C8F3A0044A45F9B 56700000A53E854EB9A 5.EXIT84300656000000244A9F54CDF30E044E5EF8C 44E75210000000021000000002200000000FF7 :MASM20 R3.2 31-Oct-86 10:45:38 0CXEQ 5 01031861045E000000138E20000002C2200000000220000002CFCD 2000000000C04.XEQ00000000C52F2EFFF8F6D 51006488043F0053F3C004053F3CFFFF44EB9A 5.XCTB84DFFC500000012F65 53E002B79920000000084044653EAEFFEE44EB9A 5.XRTS844A4056700000EF02 43EB99200000004844EB9A 5.XSUI85302EFFEE544403E8044EB9A 5.XKTBFD4 84A00053EAEFFEE44EB9A 5.XRTS854A4066F05100654E56FFD4548E7010442A79A 8._TCBPTR8F52 542574EB9A 5.SBRK852D40FFFC541EEFE4452D48FFF842EBC9200000000F1A 844EB9A 7.SETJMP853D40FFEE54A6EFFEE56600008C52D6D041A4FFDE51D6D044AF0B 4FFD852D6D04224FFE252D6D04424FFEA52D6D04464FFE652D6D04264FFDAFC1 52B6E000840414880548C0D08C42040F02 5116EFFF24002851B6EFFF0504364A4756600000A5206EFFF853E280432FD1 4300756000000244A9F54CDF30C054E5E4E7554E56FFFC53001A03A43EB9F8B 9200000004844EB9A 5.XSEF85A00060FC54E5E4E75210000000042E55F3F 54E20302E54556200052E50428D30021000000102A51B7C00205044A2E8E550974EB9A 5.XGNP852B6EFFF8F79 504222B7C90000001008504422B7C900000011A8504462E8E406975FFFFFFF0F3C 52F0E06975FFFFFFF452F2E000852F2EFFF852F2EFFFC53F3C000144EB9F0F A 5.XLDF84DFFC50000001253D40FFEE53EAEFFEE44EB9A 5.XLER853D6D0432FD4 4FFE1000000102200000006FCD :MASM20 R3.2 31-Oct-86 10:45:22 0CTTYOPEN 5 01031861045E000000084C08.TTYOPEN0000000054E560000F8C 548E7010C44AB9A 7._STRM1856700001442A79A 7._STRM18523ED0002A 7._STRM1F9E 856000001E53EBC010A44EB9A 5.SBRK852A40BBFC5FFFFFFFF56E51B6EFFD84044A52B6EFFDE4041A52B6EFFE24042252B6EFFEA40442F9E 52B6EFFE64044652B6EFFDA404265302EFFEE56000000244A9F54CDF2000F56 54E5E4E75C07.EXTRAP0000010054E56FFFC53EBC000142F3C9200000000F52 844EB9A 8.LONGJMP85588F4E5E44E75C08.ERRTRAP0000011A54E56FFFCF5E6000008F10 4428056000003C5302E0008544403A80542AD00025426D01085426D000AF8D 541ED010852B4800064287CA 7._STRM085600000065286C000254AAC0002F7D 466F65294D00024200D56000000244A9F54CDF300054E5E4E752100000000FEC 21000000002200000000FF3 :MASM20 R3.2 31-Oct-86  52001A03A53EBC000242F3C9200000000844EB9A 8.LONGJMP85588F4E5EF53 44E7521000000002100000000220000002CFE2 :MASM20 R3.2 31-Oct-86 10:45:45 0CXPRINTF 5 01031861045E00000040EE100000058E20000000E2200000000FF9 220000000220000000002200000002220000000620010:45:27 0CUNGETC 5 01031861045E000000082C07.UNGETC0000000054E560000F49 548E7010452A6E000A44A5556E00002850C6EFFFF4000856700001E541ED0107FFD 52B48000653B7C00014000A5226D00065302E00084128056000004250C6EFFFFF4A 4000856700001C5200D068050000000C5B0AD000000002200000006F56 220000000A2000000000220000000A220000000E2000000000C07.PRINTF00000000FE8 54E56FFFC533FC000192000000008423F9A 7.STDOUT892000000028541EE000CF6F 423C8920000000A852EAE000844EB990000000CC854E5E4E75C08.FPRINTF0000002EF73 54E56FFFC533FC00000656700000C5082D0001FAC 40109567000008470FF5600000145526D000A553AD00065226D00065302E0008F8C 4128056000000244A9F54CDF200054E5E4E75210000000021000000002200000000F27 :MASM20 R3.2 31-Oct-86 10:45:33 0CWRITE 5 01031861045E000000088C06.WRITE00000000192000000008523EE000892000000028541EE0010423C8F7A 920000000A852EAE000C44EB990000000CC854E5E4E75C08.SPRINTF0000005AF70 54E56FFFC4427992000000008523EE000892000000068541EE0010423C8920000000AF55 852EAE000C44EB990000000CC84207992000000068442105202E00085600054E560000F9A 548E70F0C53E2E000852A6E000A53C2E000E44A4756600001252E8D3F06FFE 44EB9A 5.XPDC84548F56000005044A4756C00002A42879A 8._TCBPTR84D9FCF22 50000045251A143007544404880518802E8D53F064EB9A 5.XPDC84548FF08 4188556000002252E8D3F07530462F0844EB9A 5.XWBF0002F51 54E5E4E75C07._ERROR0000009454E56FFFC533FC000192000000008423F9F11 A 7.STDERR892000000028541EE000C423C8920000000A852EAE000844EB9F62 90000000CC853EBC000144EB9A 5.EXIT854E5E4E7554E56FFE2548E7071CF01 52A6E000842879920000000A856000027250C0700255670000     012510074880F5B 53E804EB99000000362856000025A50C15002D56600000E53D7C00014FFE4FD8 4528D5600000065426EFFE453D7C270F4FFEE541EEFFEC52D48FFE644240F24 53D40FFE253D40FFEA53D40FFEC5101D488041E005600001705526EFFEAF8C 460F0541EEFFEE52D48FFE6460E654A6EFFEA5670000005C087721E5E2A80680500000030548801AC04424656000001CF84 4028753FFFFFFF52007721B5E2A80680500000030548801AC05E78F5246FF0 50C46000A56DE0421549BFC50000000B5600000044528D50C150030467F8F22 4200D56000000244A9F54CDF20C054E5E4E7521000000582100000058220000000EFD0842E9C560000006F54 5305C2E8852F0E06975FFFFFFF044EB9A 5.XCHX85588F264054A6EFFEAFFA 5660000044588B54A6EFFEA56700000847001560000004570053C00560000006F86 5528B524650C46000856C00000850C130030467EE56000011C54A6EFFEAF22 56700000842E9C5600000065305C2E8852F0E0A :MASM20 R3.2 31-Oct-86 10:45:54 0ACLOSE:S 5 01031861045E000000010C06.CLOSE000000005322F0004F8B 54280A0D256704A03A570FF4E75FD8 :MASM20 R3.2 31-Oct-86 10:45:55 0ACREAT:S 5 01031861045E0000000322000000000C06.CREAT00000000F89 5226F00045A0EC676975FFFFFFF044EB9A 5.XCBXFA9 85588F26405600000F454A6EFFEA56700000842E9C56000000C5301C0280FF5 50000FFFF52E802F0E406975FFFFFFF044EB9A 5.XCBX85588F26405600000C6F3A 54A6EFFEA56700000842E9C56000000C5301C028050000FFFF52E802F0EFE0 406975FFFFFFF044EB99000000390C57000A0D45671CA03A572FF601A50800000146714F2D 5244F70015A0F066EC5A0EA66E85A0D266E45A0EC66E0530014E75FCA :MASM20 R3.2 31-Oct-86 10:45:55 0AGETC:S 5 01031861045E000000006C05.GETC0000000044EF9A 6.FGETCF89 8F82 :MASM20 R3.2 31-Oct-86 10:45:56 E00E85588F26405600000985301C488051D40FFF0F4F 5422EFFF1547EEFFF05600000844265C56000007E51D65FFF0547EEFFF0560000072FC0 53D7C00014FFE250C07003056D00003A50C07003956E000032442465CDFC000AF1D 5100748804DC4050646FFD05101D488041E0050C40003056D00000850C070039F5B 560000082C05.LDIV00000000C04LDIV000000002000000000420435222F0004F2C 56C0244815262F000856E0E6D0A4203C58000000052200605C544830C83F66 50000000156606200157200603A57000B68156D086E325700172004602CFB9 574020C8150001000056C0C82C35300142415484160185D482D6834B283FFDE538D5206EFFE64308656000FE9E51D47FFF05422EFFF1547EEFFF0F22 56000001C560000018548C0207C910000000085720AB098557C9FFFC520680028F22 44ED0210000000050000000050000002E500000030500000063500000064F00 50000006C50000006F50000007350000007550000007850000000090007D 564F860085B28365045808292835E28BE28A466F254A6F000456A044480F17 4448154A6F000856A024480423C1A 6.LDIVR8526084E75F74 :MASM20 R3.2 31-Oct-86 10:45:57 0CLDIVR:S 1 21031861045E200000004C26.LDIVR000000002200000000F60 2200000004FD2 :MASM20 R3.2 31-Oc000240F33 8900000013E8900000024C89000000226890000001A289000000138890000001F8F79 8900000023A890000001CA8900000014889000000252820000002BC44246FA0 560000008452465536EFFEC5300648C054A33080056700001054A6EFFECF15 56F0000085BC6EFFEE46DE054A6EFFE45660000245600t-86 10:45:58 E000000060C06.LDIVU00000000C05LDIVU000000002000000000520432244F8C 5222F00045262F000840C8350000000156606200157200604057000B283FD3 5653A660657001720056032740252801028450000FFFF5B284660C482C3F5E 53001424154841601A5D482E38B5650EB283564F66008000145302EFFE24E940F9A 43E8050657002044EB9900000036285302EFFEC5536EFFEC54A406EE256000000EF6A 5101B488053E804EB99000000362844A1356700000E5302EFFEE5536EFFEEF71 54A406EE250C6E00014FFE456600001C56000000C53EBC002044EB99000000362FEA 85302EFFEC5536EFFEC54A4065B2836504F4F 5808292835E293E28A566F22608528094E75FFF :MASM20 R3.2 31-Oct-86 10:45:59 0CLMUL:S 1 21031861045E000000048C04LMUL000000002000000000FFC 492C954A6F000446C06544AF00044524954A6F000846C06544AF000845349FBC 5322F00065302F000A53401C4C04204253EEA41E1D56600FD8C44A9F54CDF38C044E5EF9C 44E7554E56FFFC44A799200000000856700001C42EB9920000000285102E0009F40 548803F0044EB9A 6.FPUTC84548F5600000124207992000000068510AE0009F44 452B99200000006854E5E4E7554E560000548E7070452A6E000852E2E000CFCC 4203C5C0000042F000456702C4C05302F0008F80 56702C0C15D042484054240D088532096702544804E75F51 :MASM20 R3.2 31-Oct-86 10:46:00 0CLMULU:S 1 21031861046E000000028C05LMULU00000000C06.LMULU00000000F6E 20000000005322F00065302F000A53401C4C0420425342F000456702C4C0F76 530     02F000856702C0C15D042484054240D08844E75F1C :MASM20 R3.2 31-Oct-86 10:46:01 E000000014C04LREM00000000C05.LREM00000000200000000052F2F0008F14 52F2F000844EB9A 5.LDIV85508F200144E75F86 :MASM20 R3.2 31-Oct-86 10:46:01 E000000014C05LREMU00000000C06.LREMU0XFBF:O 00001568F13 G0:.XFFN XFFN:O 000015B9G0:.XFTD XFTD:O 00001633F2C G0:.XFUM XFUM:O 00001692G0:.XGCB XGCB:O 000016F5F2E G0:.XGCC XGCC:O 00001761G0:.XGCP XGCP:O 000017CDF3E G0:.XGCR X0000000200000000052F2F0008F68 52F2F000844EB9A 6.LDIVU85508F200144E75F30 :MASM20 R3.2 31-Oct-86 10:46:02 0AOPEN:S 5 01031861046E0000000342000000000C05.OPEN00000000FE1 42F075226F00085322F000C46D1A5B27C000356E14E34153E3B10164A030FFB 5660890405A03A3GCR:O 00001830G0:.XGLB XGLB:O 00001893F47 G0:.XGLM XGLM:O 000018FBG0:.XGLU XGLU:O 00001968FF1 G0:.XGML XGML:O 000019D5G0:.XGNP XGNP:O 00001A73F01 G0:.XGTM XGTM:O 00001AD6G0:.XGUM XGUM:O 00156004A03A570FF2E1F54E75A0E65A0ECA0E8FEA 4A0DAF90 :MASM20 R3.2 31-Oct-86 10:46:03 0APUTC:S 5 01031861046E000000006C05.PUTC0000000044EF9A 6.FPUTCF3D 8F82 :MASM20 R3.2 31-Oct-86 10:46:03 E000000028C07.SETJMP000000005206F00044D1FC50000002C42117 00001B27FE0 G0:.XKTB XKTB:O 00001BA5G0:.XKTM XKTM:O 00001BFFFC8 G0:.XLDF XLDF:O 00001C62G0:.XLER XLER:O 00001CEAF02 G0:.XLFN XLFN:O 00001D3BG0:.XLKF XLKF:O 00001DD5FF8 G0:.XLKT XLKT:O 548E01F1FFBA 542804E75C08.LONGJMP000000145302F00085660270015206F000454CD8F8F8FBF 52E904E75FC0 :MASM20 R3.2 31-Oct-86 10:46:04 0ATSTFIL 4 151031861046E000000012C08.TSTFILE000000005226F0004FD6 5A0E06608470005206F0008520814E75F10 :MASM20 R3.2 31-Oc 00001E2FG0:.XLST XLST:O 00001E85FBD G0:.XNOP XNOP:O 00001EDFG0:.XPCC XPCC:O 00001F50FE8 G0:.XPDC XPDC:O 00001FA6G0:.XPEL XPEL:O 0000200EF15 G0:.XPLC XPLC:O 00002064G0:.XPSC XPSC:O 00t-86 10:46:05 V Z0020BAF0F G0:.XPSF XPSF:O 00002114G0:.XRBF XRBF:O 00002177F2B G0:.XRCP XRCP:O 000021FFG0:.XRDE XRDE:O 00002267F0A G0:.XRDT XRDT:O 000022E1G0:.XRFA XRFA:O 0000232EF0E G0:.XRFP XRFP:O 000G0:.XAPF XAPF:O 00000D97G0:.XBCP XBCP:O 00000DF6F1E G0:.XBFL XBFL:O 00000E71G0:.XCBC XCBC:O 00000ED9F43 G0:.XCBD XCBD:O 00000F3CG0:.XCBH XCBH:O 00000F92F51 G0:.XCBP XCBP:O 00000FE8G0:.XC023BAG0:.XRLF XRLF:O 00002446FFA G0:.XRNF XRNF:O 000024C5G0:.XROO XROO:O 00002524FF3 G0:.XROP XROP:O 00002595G0:.XRPS XRPS:O 00002606FDB G0:.XRSE XRSE:O 0000266EG0:.XRSR XRSR:O 000026D6FBX XCBX:O 00001054F29 G0:.XCDB XCDB:O 000010AEG0:.XCFA XCFA:O 0000112CF66 G0:.XCHF XCHF:O 0000118BG0:.XCHX XCHX:O 000011DCF1D G0:.XCLF XCLF:O 00001236G0:.XCPY XCPY:O 00001290F30 G0:.XCTC3 G0:.XRST XRST:O 0000272CG0:.XRTE XRTE:O 0000277DFC0 G0:.XRTM XRTM:O 000027CAG0:.XRTS XRTS:O 00002817FB3 G0:.XRWF XRWF:O 0000286DG0:.XSEF XSEF:O 000028C7FE8 G0:.XSEV XSEV:O 00002926G0B XCTB:O 000012EFG0:.XDEV XDEV:O 0000136AF11 G0:.XDFL XDFL:O 000013CDG0:.XDLF XDLF:O 00001430F3F G0:.UNLINK XDLF:O 00001430G0:.XERR XERR:O 000014CEFB4 G0:.XEXZ XEXZ:O 0000151BG0:.XFBF :.XSOP XSOP:O 00002985FDF G0:.XSPF XSPF:O 000029F6G0:.XSTM XSTM:O 00002A63FCD G0:.XSTP XSTP:O 00002AC6G0:.XSUI XSUI:O 00002B4AFA5 G0:.XSZF XSZF:O 00002B9BG0:.XTAB XTAB:O 00002C27FE9 G0:1     .XTEF XTEF:O 00002C93G0:.XUDT XUDT:O 00002CF2FE4 G0:.XULF XULF:O 00002D48G0:.XUTM XUTM:O 00002DA2FC5 G0:.XWBF XWBF:O 00002DF8G0:.XWDT XWDT:O 00002E64FD9 G0:.XWFA XWFA:O 00002EBAG0:.XWFP  EC05.XCPY0000000054CEF0600FDB 50004A0AE56602700044E75FE7 : 0CXCTB 1 21024861455E00000001AC05.XCTB0000000054CAF0007F07 4000454CEF07005000AA026466085226F001653280700044E75F1F : 0CXDEV 1 21024861455E000000010C05.XDEV000000005202F0004F33 5322 XWFP:O 00002F19FD8 G0:.XWLF XWLF:O 00002F81G0:.XWSE XWSE:O 00002FE4FC8 G0:.XWTM XWTM:O 0000304CG0:.XZFL XZFL:O 000030A2FD2 G0:.XDMP XDMP:O 000030FCG0:.XFAC XFAC:O 00003152F3D G0:.XGMP  F00085A0326602570004E75F26 : 0CXDFL 1 21024861455E000000010C05.XDFL000000005226F0004F3F 5302F00085A0D46602570004E75F15 : 0CXDLF 1 21024861455E000000020C05.XDLF00000000C07.UNLINK0000000CFDB 5226F00045A0D66602570004E755226F00045A0D666065700 XGMP:O 000031ACG0:.XPAD XPAD:O 00003218F22 G0:.XPCR XPCR:O 00003277G0:.XRTP XRTP:O 000032CDFD5 G0:.XSMP XSMP:O 00003339G0:.XUAD XUAD:O 0000339CF02 0CXAPF 1 21024861454E00000000EC05.XAPF0000  0A03A46004F68 5A03A70FF44E75F94 : 0CXERR 1 21024861455E000000006C05.XERR000000005302F0004F19 4A00CFA2 : 0CXEXZ 1 21024861455E000000006C05.XEXZ000000005226F0004FF8 4A04CF9E : 0CXFBF 1 21024861455E000000008C05.XFBF000000005A0F86602F2000054CEF0600F06 50004A0AA56602700044E75FEB : 0CXBCP 1 21024861455E00000001AC05.XBCP00000000548E71C00F18 54CAF001C4001052A2F00165A07066024700054CDF003844E75FE7 : 0CXBFL 5 01024861455E000000012C05.XBFL000000004220B54CEF0E00F02 50004A0B8566  F 570004E75FD9 : 0CXFFN 1 21024861455E00000001AC05.XFFN000000005226F0004F26 5A0A0660E5246F00085024000FF53480200956002700044E75F50 : 0CXFTD 1 21024861455E00000000EC05.XFTD000000004A05854CEF0600FE5 500043280534814E75F0A : 0CXFUM 1 21027000526414E75F25 : 0CXCBC 1 30112870939E000000010C05.XCBC0000000059281A072F4C 56D046404553415541520014E75F2B : 0CXCBD 1 21024861455E00000000AC05.XCBD000000005222F0004F4D 5A050200944E75FCB : 0CXCBH 1 21024861455E00000000AC05.XCBH0  024861455E000000010C05.XFUM000000005302F0004F20 5206F00065A0406602570004E75F28 : 0CXGCB 1 21024861455E000000014C05.XGCB0000000059281A048F42 567086D04564085341553415341520014E75F52 : 0CXGCC 1 21024861455E000000014C05.XGCC0000000059281A078F00000005222F0004F45 5A052200944E75FC9 : 0CXCBP 1 30112870939E000000014C05.XCBP0000000059281A074F2C 56D066706564065341553415341520014E75F54 : 0CXCBX 1 21024861455E00000000CC05.XCBX0000000054CEF0003FFE 5000422405A06A4E75FF7 : 0CXCDB 1 3D 567086D04564085341553415341520014E75F52 : 0CXGCP 1 21024861455E000000010C05.XGCP0000000059281A09EF18 56D046406553415541520014E75F29 : 0CXGCR 1 21024861455E000000010C05.XGCR0000000059281A07AF1A 56D046406553415541520014E75F29 : 0CXGLB  21024861455E00000001CC05.XCDB000000005226F0004F46 5A0566E0656D0E20095600270005226F0008522816002570FF4E75F61 : 0CXCFA 1 21024861455E00000000EC05.XCFA0000000054CAF0006F23 50004A0D056602700044E75FF9 : 0CXCHF 1 21024861455E000000008C05.XCHF 1 21024861455E000000012C05.XGLB00000000470005226F0004F44 5A07C6D04564045340555404E75F05 : 0CXGLM 1 21024861455E000000014C05.XGLM00000000470005246F0004F2A 5A07E6D0456404534055540248944E75FF8 : 0CXGLU 1 21024861455E000000014C05.XGLU000000000005226F0004F42 5A0AC4E75FAB : 0CXCHX 1 21024861455E00000000CC05.XCHX0000000054CEF0003FF2 5000422405A0684E75F00 : 0CXCLF 1 21024861455E00000000CC05.XCLF000000005322F0004F32 5A0D26602570004E75FEF : 0CXCPY 1 21024861455E0000000000000470005246F0004F1A 5A0806D0456404534055540248944E75F0C : 0CXGML 1 21024861455E000000028C05.XGML00000000548E70006F18 5A010200852209240A54CEF07005000C208052281248254CEF030040018F77 5208D228E54CDF600044E75FB1 : 0CXGNP 1 21024861455E000001     0010C05.XGNP0000000057000A05AF17 5650270015206F0004520894E75F2C : 0CXGTM 1 21024861455E000000008C05.XGTM000000005226F0004F14 5A01E4E75FB9 : 0CXGUM 1 21024861455E00000001CC05.XGUM000000005302F0004F0B 5A03E661057000220954CEF06005000622885241 21024861456E00000001AC05.XRDE0000000054CAF0003F06 4000454CEF03005000824505A0A6660657000208A532814E75F52 : 0CXRDT 1 21024861456E000000006C05.XRDT000000005A05C2009F01 44E75FA1 : 0CXRFA 1 21024861456E000000020C05.XRFA000000005226F0004F37 816002570494E75F80 : 0CXKTB 1 21024861455E00000000CC05.XKTB000000005302F0004F1C 5A0FA6602570004E75FDE : 0CXKTM 1 21024861455E000000010C05.XKTM000000005302F0004F18 5226F00065A0286602570004E75F20 : 0CXLDF 1 21024861455E000000020C05.X5A0E0661654CEF030050008208A4328054CEF0300500102081522827000F74 44E75FA1 : 0CXRFP 1 21024861456E000000020C05.XRFP00000000548E71010F13 5322F000C5A0FE660E54CEF07005000E208B5228224834700054CDF0808F0A 44E75FA1 : 0CXRLF 1 21024861456E00000001CCLDF000000004240B5322F0004F35 54CEF0B0050006A0B04660C54CEF0C00500122488526897000526424E75F2B : 0CXLER 1 21024861456E000000008C05.XLER000000005302F0004F22 5A03A4E75FBB : 0CXLFN 1 21024861456E000000026C05.XLFN00000000548E71010F1D 5226F00085305.XRLF00000000424035322F0004F15 5246F00065A0E266045700060065246F000A53483260244E75F56 : 0CXRNF 1 21024861456E00000000EC05.XRNF0000000054CEF0600FE6 50004A0E456602700044E75FF4 : 0CXROO 1 21024861456E000000016C05.XROO000000005226F0004F04 5A02F000C5A0A266085226F000E5228B600654A436702476FFF37 4300354CDF080844E75FA1 : 0CXLKF 1 21024861456E00000000CC05.XLKF000000005322F0004F21 5A0D86602570004E75FE9 : 0CXLKT 1 21024861456E00000000AC05.XLKT0000000057000A014F0B 56702700144E75FD5 :0E6660C54CEF060050008328053481700044E75F0E : 0CXROP 1 21024861456E000000016C05.XROP000000005226F0004F02 5A0E8660C54CEF060050008328053481700044E75F0C : 0CXRPS 1 21024861456E000000012C05.XRPS000000005302F0004F03 5A09466085226F00065228170004 0CXLST 1 21024861456E00000000CC05.XLST000000005226F0004FF2 5A0A46602570004E75FF0 : 0CXNOP 1 21024861456E000000016C05.XNOP000000005226F0004F0A 5A0DA660C54CEF060050008328053481700044E75F04 : 0CXPCC 1 21024861456E00000000AC05.XPCC0004E75F16 : 0CXRSE 1 21024861456E000000012C05.XRSE0000000054CAF0003FF7 400045246F00085A0C26602570004E75F19 : 0CXRSR 1 21024861456E00000000AC05.XRSR000000005A0420280FEF 50000FFFF44E75F94 : 0CXRST 1 21024861456E000000008C05.XRST000000000000442405102F0005F36 5A0864E75FC1 : 0CXPDC 1 21024861456E000000012C05.XPDC000000004220753E2F0004F2B 5226F000652009A09652E014E75F0D : 0CXPEL 1 21024861456E00000000AC05.XPEL000000005226F0004F18 52009A06E44E75FB5 : 0CXPLC 1 2102486105322F0004FF4 5A0B44E75FB9 : 0CXRTE 1 21024861456E000000006C05.XRTE000000005205FA044FFD 44ED0F99 : 0CXRTM 1 21024861456E000000006C05.XRTM000000005A05E2009FED 44E75FA1 : 0CXRTS 1 21024861456E00000000AC05.XRTS000000005302F0004FED 5A0456E00000000AC05.XPLC000000005226F0004F1C 52009A08A44E75FB7 : 0CXPSC 1 21024861456E00000000CC05.XPSC000000005122F0005F10 5142F00075A08E4E75FD9 : 0CXPSF 1 21024861456E000000010C05.XPSF000000005322F0004F1B 5242F00065A0DC6602570004E75F05 : 012200144E75FD5 : 0CXRWF 1 21024861456E00000000CC05.XRWF000000005322F0004FFD 5A0EA6602570004E75FDF : 0CXSEF 1 21024861456E00000000EC05.XSEF000000005322F0004F1D 57000A01856702700144E75FFF : 0CXSEV 1 21024861456E00000000EC05.XSEV00000CXRBF 1 21024861456E000000020C05.XRBF00000000422435202F0004F3C 5322F00085246F000A5A0DE66045700060065246F000E52483260944E75F55 : 0CXRCP 1 21024861456E000000012C05.XRCP000000005302F0004F23 4A09254CEF0600500063281534824E75FF9 : 0CXRDE  0005322F0004FFD 57000A04656702700144E75FFE : 0CXSOP 1 21024861456E000000016C05.XSOP000000005226F0004F00 5A0EC660C54CEF060050008328053481700044E75F01 : 0CXSPF 1 21024861456E000000014C05.XSPF0000000054CAF0003FF7 50004A09A466085226F0008512812     !700044E75F10 : 0CXSTM 1 21024861456E000000010C05.XSTM000000005302F0004F07 5226F00065A0206602570004E75F28 : 0CXSTP 1 21024861456E00000001EC05.XSTP000000005302F0004FEC 57200A03C466125226F00084328154CAF000350004A03C56602700044E75F3A : 0CXSUI)'00000000EC05.XPAD000000005226F0004F29 5A00A56C054880804144E75FD6 : 0CXPCR 5 01024861457E00000000AC05.XPCR00000000442405102F0005F15 5A0BA4E75FAC : 0CXRTP 5 01024861457E000000014C05.XRTP0000000052F03A034FE8 54CEF07005000820815228224835261F4" 1 21024861456E000000008C05.XSUI000000005322F0004F04 5A01C4E75FBB : 0CXSZF 5 01024861457E000000020C05.XSZF00000000548E70700FF5 5302F00105A0B6660E54CEF07005001220855228624874700054CDF00E0F43 44E75FA1 : 0CXTAB 1 21024861457E000000014(E75F27 : 0CXSMP 5 01024861457E000000010C05.XSMP000000005302F0004F0C 5226F00065A0026602570004E75F28 : 0CXUAD 5 01024861457E00000000AC05.XUAD000000005322F0004F26 5A036200944E75FC7 : #!C05.XTAB0000000053F3A000EF19 53F2F000653F3A000854E975C8F54E75A090FDC : 0CXTEF 1 21024861457E00000000EC05.XTEF000000005322F0004F1A 57001A01A56602700044E75FF7 : 0CXUDT 1 21024861457E00000000AC05.XUDT000000005322F0004F02 5A060200944E75FCA : +/* Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)ctype.h 1.2 10/19/83 REGULUS 4.1 */ #define _UPPER 01 #define _LOWER 02 #define _DIGIT 04 #define _WHTSP 010 #define _PUNCT 020 #define _C$"0CXULF 1 21024861457E00000000CC05.XULF000000005322F0004F0C 5A0EE6602570004E75FDB : 0CXUTM 1 21024861457E00000000AC05.XUTM000000005322F0004FF0 5A062200944E75FC8 : 0CXWBF 1 21024861457E000000014C05.XWBF000000005202F0004F2D 5322F00085,*NTRL 040 #define _BSPACE 0100 #define _SPACE 0100 /* shared !!!! */ #define _HEXDEC 0200 #define _NASCII 0 extern char _ctype[]; /* Standard routines... */ #define isspace(c) (_ctype[c] & _WHTSP) #define isupper(c) (_ctype[c] & _UPPER) #define %#246F000A5A0F06602570004E75F2D : 0CXWDT 1 21024861457E00000000AC05.XWDT0000000054CAF0007FDA 50004A06444E75FCD : 0CXWFA 1 21024861457E00000000EC05.XWFA0000000054CEF0600FF5 50004A0F256602700044E75FF5 : 0CXWFP 5 10112870939E000000012C0-+islower(c) (_ctype[c] & _LOWER) #define isalpha(c) (_ctype[c] & (_UPPER | _LOWER)) #define isdigit(c) (_ctype[c] & _DIGIT) #define ishex(c) (_ctype[c] & _HEXDEC) #define isascii(c) (_ctype[c] != _NASCII) #define isalnum(c) (_ctype[c] & (_UPPER|_LOWER&$5.XWFP000000004244354CEF020FFD1 50004A0FC5660270005260A4E75F0A : 0CXWLF 1 21024861457E000000010C05.XWLF000000005322F0004F1A 5246F00065A0F46602570004E75F0E : 0CXWSE 1 21024861457E000000012C05.XWSE0000000054CAF0003FEC 400045246F00085A0C6660.,|_DIGIT)) #define iscntrl(c) (_ctype[c] & _CNTRL) #define isprint(c) (_ctype[c] & (_UPPER|_LOWER|_DIGIT|_PUNCT|_BSPACE|_SPACE)) #define ispunct(c) (_ctype[c] & _PUNCT) #define toupper(c) (islower(c) ? (c) & ~040 : (c)) #define tolower(c) (isupper(c) ? '%2570004E75F15 : 0CXWTM 1 21024861457E00000000AC05.XWTM0000000054CAF0007FC8 50004A06644E75FCB : 0CXZFL 1 21024861457E00000000CC05.XZFL000000005226F0004FFF 5A0F66602570004E75FE9 : 0CXDMP 5 01024861457E00000000AC05.XDMP000000005205F22-(c) | 040 : (c)) #define toascii(c) ((c) & 0177) (&4FFFE 5A04A2E4944ED0F9A : 0CXFAC 5 01024861457E00000000CC05.XFAC000000005226F0004F41 5A0CE55C1580014E75FCB : 0CXGMP 5 01024861457E000000014C05.XGMP000000005302F0004F20 5A00456C1580016D065206F0006520894E75F2D : 0CXPAD 5 01024861457E0/* DIRENT:H -- DEFINITION OF A PDOS DIRECTORY ENTRY BRIAN C. COOPER, EYRING RESEARCH INSTITUTE, INC. Copyright 1985-1986 */ struct DIRENT{ char _fname[8]; /* file name */ char _fext[3]; /* file extension */ unsigned char _level; /* leve2     1/l */ unsigned char _fattr[2];/* file attributes */ int _dstart; /* starting sector address */ int _dummy; /* reserved for future use */ int _sallo; /* allocated sectors */ int _seof; /* end of file sector */ int _beof; /* end97kn; /* *ram disk # */ int _rdks; /* *ram disk size */ char *_rdka; /* *ram disk disk address */ char _bflg; /* basic present flag */ char _dflg; /* directory flag 0 of file byte */ int _ctime; /* creation time */ int _cdate; /* creation date */ int _utime; /* update time */ int _udate; /* update date */ }; :8 */ int _fcnt; /* fine counter */ long _tics; /* 32 bit counter */ char _mon; /* month */ char _day; /* day */ char _yrs[63/* FILESLOT:H -- DEFINITION OF A FILESLOT BRIAN C. COOPER, EYRING RESEARCH INSTITUTE, INC. (C) 1984 */ struct FILESLOT{ char name[8]; /* FILE NAME */ char ext[3]; /* EXTENSION ;9]; /* year */ char _hrs; /* hours */ char _min; /* minutes */ char _sec[6]; /* seconds */ char _patb[16]; /* input port alloca42 */ char level; /* LEVEL 0..255 */ int status; /* SEE FS COMMAND IN CHAP 4 OF PDOS MANUAL */ int memsec; /* DISK ADDRESS OF THIS SECTOR */ long curpt<:tion table */ char _brkf[16]; /* input break flags */ char _f8bt[16]; /* port flag bits */ char _utyp[16]; /* port uart type */ char _urat[16]; /* port rate table 53r; /* PTR INTO BUFFER OF CURRENT BYTE */ int secidx; /* SECTOR IN MEMORY IS THIS SECTOR IN FILE */ int eofsec; /* INDEX OF LAST SECTOR IN FILE */ int eofbyt; /* NUMBER OF BYTES I=; */ char _evtb[10]; /* 0-79 event table */ char _evto[2]; /* 80-95 output events */ char _evti[2]; /* 96-111 input events */ char _evts[2]; /* 112-127 system events */ char64N LAST SECTOR */ int tskflg; /* LOCK TASK/OPEN TASK FLAGS */ long bufptr; /* BASE OF MEMORY BUFFER */ long lckflg; /* LOCK FLAG/# SHARED */ int>< _ev128[16]; /* task 128 events */ long _evtm[4]; /* events 112-115 timers */ long _bclk; /* clock adjust constant */ char *_tltp; /* task list pointer */ char *_utcb; /* user tc5 dsknum; /* NUMBER OF DISK */ }; ?=b ptr */ int _suim; /* supervisor interrupt mask */ int _usim; /* user interrupt mask */ char _sptn; /* spawn task no. (** must be even **) */ char _utim; /* user task time *8/* SYRAM:H -- DEFINITION OF SYRAM BLOCK OF MEMORY BRIAN C. COOPER, EYRING RESEARCH INSTITUTE, INC. (C) 1985 */ struct SYRAM{ char *_bios; /* address of bios rom */ char *_mail; /* *mail array address */ int _rd@>/ char _tpry; /* task priority (** must be even **) */ char _tskn; /* current task number */ char _l2lk; /* level 2 lock (file primitives, event 120) */ char _l3lk; /* level 3 lock (disk primitives, event 121) */ char _tlck[2]3     A?; /* task lock flag */ char _e122; /* batch task # */ char _e123; /* spooler task # */ char _e124; char _e125; long _cksm; /* system checksum */ int _pnod; I/* SYRAM:H -- DEFINITION OF SYRAM BLOCK OF MEMORY 4-SEP-86 BRIAN C. COOPER, EYRING RESEARCH INSTITUTE, INC. Copyright 1985-1986 */ struct SYRAM{ /*000*/ char *_bios; /* address of bios rom */ /*004*/ char *_mail; /* *mail array B@/* pnet node # */ char _spares[54]; /* reserved * */ char *_opip[15]; /* output port pointers (starts at 1) */ char *_uart[16]; /* uart base addresses (starts at 1) */ char _maps[0]; /* system meJHaddress */ /*008*/ int _rdkn; /* *ram disk # */ /*00A*/ int _rdks; /* *ram disk size */ /*00C*/ char *_rdka; /* *ram disk disk address */ /*010*/ char _bflg; /* basic presentAmory bit map */ }; extern struct SYRAM *_syram; /* defined in CSTART:ASM */ KI flag */ /*011*/ char _dflg; /* directory flag */ /*012*/ int _f681; /* 68000/68010 flag */ /*014*/ char *_sram; /* run module B$SRAM */ /*018*/ int spare1; /* reserved for/* Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)setjmp.h 1.4 4/17/84 REGULUS 4.2 */ #define JMPSTK 11 typedef char *sav_stk[JMPSTK]; typedef char *jmp_buf[JMPSTK]; LJ expansion */ /*01A*/ int _fcnt; /* fine counter */ /*01C*/ long _tics; /* 32 bit counter */ /*020*/ char _smon; /* month */ /*021*/ char _sday; /* day E/* stdio.h -- standard defines for C under PDOS. Eyring Research Institute, Inc. Copyright 1984-1986 */ #define NULL (0L) #define EOF (-1) #define _BSIZE 252 #define _EOFSEEN 1 #define _OUTFLAG 2 typedef struct _iobuf{ int fslot; /* compaMK */ /*022*/ char _syrs[2]; /* year */ /*024*/ char _shrs; /* hours */ /*025*/ char _smin; /* minutes */ /*026*/ char _ssec[2]; /* secondFDrable to the file descriptor */ char *nfile; /* linked list -- next file buffer */ unsigned char *_ptr;/* pointer to next char available */ int _cnt; /* number of chars available */ char _buff[_BSIZE]; /* buffer of data */ int NLs */ /*028*/ char _patb[16]; /* input port allocation table */ /*038*/ char _brkf[16]; /* input break flags */ /*048*/ char _f8bt[16]; /* port flag bits */ /*058*/ char _utypGE_iostat; /* has the eof flag been seen */ } FILE; extern FILE *stdin,*stdout,*stderr; #define rewind(S) fseek(S,0L,0) #define feof(S) ((S)->_iostat & _EOFSEEN && !(S)->_cnt) #define getc(p) (--(p)->_cnt >= 0 ? *(p)->_ptr++ : _fillbuf(p)) #define gOM[16]; /* port uart type */ /*068*/ char _urat[16]; /* port rate table */ /*078*/ char _evtb[10]; /* 0-79 event table */ /*082*/ char _evto[2]; /* 80-95 output events */ /*0Fetchar() getc(stdin) #define putc fputc #define putchar(c) putc(c,stdout) FILE *fopen(); long ftell(); char *malloc(); PN84*/ char _evti[2]; /* 96-111 input events */ /*086*/ char _evts[2]; /* 112-127 system events */ /*088*/ char _ev128[16]; /* task 128 events */ /*098*/ long _evtm[4]; /* events 112-115 timers 3     QO */ /*0A8*/ long _bclk; /* clock adjust constant */ /*0AC*/ char *_tltp; /* task list pointer */ /*0B0*/ char *_utcb; /* user tcb ptr */ /*0B4*/ int _suim; /* supervisor interrupt mask YWr command line buffer */ /*150*/ char _mwb[32]; /* 32 byte monitor parameter buffer */ /*170*/ char _mpb[60]; /* monitor parameter buffer */ /*1AC*/ char _cob[8]; /* character out buffer */ /*1B4*/ char _swb[508]; /* syRP */ /*0B6*/ int _usim; /* user interrupt mask */ /*0B8*/ char _sptn; /* spawn task no. (** must be even **) */ /*0B9*/ char _utim; /* user task time */ /*0BA*/ char _tpry; /* task priority (** must be eZXstem work buffer/task pdos stack */ /*3B0*/ char *_tsp; /* task stack pointer */ /*3B4*/ char *_kil; /* kill self pointer */ /*3B8*/ long _sfp; /* RESERVED FOR INTERNAL PDOS USE */ /*3BC*/ char _svf; /* saveSQven **) */ /*0BB*/ char _tskn; /* current task number */ /*0BC*/ char _l2lk; /* level 2 lock (file prims, evnt 120) */ /*0BD*/ char _l3lk; /* level 3 lock (disk prims, evnt 121) */ /*0BE*/ char _tlck[2]; /* task lock/reschedule fla[Y flag -- 68881 support (x881) */ /*3BD*/ char _iff; /* RESERVED FOR INTERNAL PDOS USE */ /*3BE*/ long _trp[16]; /* user TRAP vectors */ /*3FE*/ long _zdv; /* zero divide trap */ /*402*/ long _chk; /* CHCKTRgs */ /*0C0*/ char _e122; /* batch task # */ /*0C1*/ char _e123; /* spooler task # */ /*0C2*/ char _e124; /*0C3*/ char _e125; /*0C4*/ long _cksm; /* system checksum */ /*0C8*/ \Z instruction trap */ /*406*/ long _trv; /* TRAPV Instruction trap */ /*40A*/ long _trc; /* trace vector */ /*40E*/ long _fpa[2]; /* floating point accumulator */ /*416*/ long *_fpe; /* fp eUSint _pnod; /* pnet node # */ /*0CA*/ char bser[6]; /* bus error vector */ /*0D0*/ char iler[6]; /* illegal vector */ /*0D6*/ char ccnt[16]; /* control C count */ /][rror processor address */ /*41A*/ char *_clp; /* command line pointer */ /*41E*/ char *_bum; /* beginning of user memory */ /*422*/ char *_eum; /* end user memory */ /*426*/ char *_ead; /* entrVT*0E6*/ char spare2[10]; /* expansion of basic call table */ /*0F0*/ char _bclt[16]; /* basic call table */ /*100*/ int _rwcl[14]; /* port row/col */ /*11C*/ char *_opip[15]; /* output port pointers ^\y address */ /*42A*/ char *_imp; /* internal memory pointer */ /*42E*/ int _aci; /* assigned input file ID */ /*430*/ int _aci2; /* assigned input file ID's */ /*432*/ int _len; /* last eU */ /*158*/ char *_uart[15]; /* uart base addresses */ /*198*/ long _mapb; /* memory map bias */ }; extern struct SYRAM *_syram; /* defined in CSTART:ASM */ _]rror number */ /*434*/ int _sfi; /* spool file id */ /*436*/ char _flg; /* task flags (bit 8=command line echo)*/ /*437*/ char _slv; /* directory level */ /*438*/ char _fec; /* file expanX/* TCB:H -- DEFINITION OF TASK CONTROL BLOCK 4-Sep-86 BRIAN C. COOPER, EYRING RESEARCH INSTITUTE, INC. Copyright 1985-1986 */ struct TCB{ /*000*/ char _ubuf[256]; /* 256 byte user buffer */ /*100*/ char _clb[80]; /* 80 byte monito`^sion count */ /*439*/ char _spare1; /* reserved for future use */ /*43A*/ char _csc[2]; /* clear screen characters */ /*43C*/ char _psc[2]; /* position cursor characters */ /*43E*/ char _sds[3]; /* a4     a_lternate system disks */ /*441*/ char _sdk; /* system disk */ /*442*/ char *_ext; /* XEXT address */ /*446*/ char *_err; /* XERR address */ /*44A*/ char _cmd; /* comig|_DIGIT)) #define iscntrl(c) (_ctype[c] & _CNTRL) #define isprint(c) (_ctype[c] & (_UPPER|_LOWER|_DIGIT|_PUNCT|_BSPACE|_SPACE)) #define ispunct(c) (_ctype[c] & _PUNCT) #define toupper(c) (islower(c) ? (c) & ~040 : (c)) #define tolower(c) (isupper(c) ? b`mand line delimiter */ /*44B*/ char _tid; /* task id */ /*44C*/ char _ecf; /* echo flag */ /*44D*/ char _cnt; /* output column counter */ /*44E*/ char _mmf; /* memory h(c) | 040 : (c)) #define toascii(c) ((c) & 0177) camodified flag */ /*44F*/ char _prt; /* input port # */ /*450*/ char _spu; /* spooling unit mask */ /*451*/ char _unt; /* output unit mask */ /*452*/ char _u1p; /* unit 1 portk/* Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)math.h 1.5 3/19/84 REGULUS 4.2 */ /* Declarations of Math Routines */ long atol(); char *ltoa(); double atof(); char *ftoa(); /* floatdb # */ /*453*/ char _u2p; /* unit 2 port # */ /*454*/ char _u4p; /* unit 4 port # */ /*455*/ char _u8p; /* unit 8 port # */ /*456*/ char _spare2[170]; /* reservedlj to %f format */ char *etoa(); /* float to scientific notation format */ double sin(); double cos(); double tan(); double atan(); double cosh(); double sinh(); double tanh(); double fabs(); double floor(); double ceil(); double fmod(); double c for system use */ /*500*/ char _tbe[0]; /* task beginning */ }; extern struct TCB *_tcbptr; /* defined in CSTART:ASM */ mklog10(); double log(); double pow(); double sqrt(); double exp(); double modf(); double ldexp(); double frexp(); double atan2(); #ifdef FFP #define asin(x) atan2((x),sqrt(1-(x)*(x))) #define acos(x) (1.570796 - atan2((x),sqrt(1-(x)*(x)))) #else doublef/* Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)ctype.h 1.2 10/19/83 REGULUS 4.1 */ #define _UPPER 01 #define _LOWER 02 #define _DIGIT 04 #define _WHTSP 010 #define _PUNCT 020 #define _Cl asin(); double acos(); #endif geNTRL 040 #define _BSPACE 0100 #define _SPACE 0100 /* shared !!!! */ #define _HEXDEC 0200 #define _NASCII 0 extern char _ctype[]; /* Standard routines... */ #define isspace(c) (_ctype[c] & _WHTSP) #define isupper(c) (_ctype[c] & _UPPER) #define /* header file for memory operations ala SYS V */ char *memccpy(),*memchr(),*memcpy(),memset(); int memcmp(); hfislower(c) (_ctype[c] & _LOWER) #define isalpha(c) (_ctype[c] & (_UPPER | _LOWER)) #define isdigit(c) (_ctype[c] & _DIGIT) #define ishex(c) (_ctype[c] & _HEXDEC) #define isascii(c) (_ctype[c] != _NASCII) #define isalnum(c) (_ctype[c] & (_UPPER|_LOWER/* Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)setjmp.h 1.4 4/17/84 REGULUS 4.2 */ #define JMPSTK 11 typedef char *sav_stk[JMPSTK]; typedef char *jmp_buf[JMPSTK]; 4     q/* stdio.h -- standard defines for C under PDOS. Eyring Research Institute, Inc. Copyright 1984-1986 */ #define NULL (0L) #define EOF (-1) #define _BSIZE 252 #define _EOFSEEN 1 #define _OUTFLAG 2 typedef struct _iobuf{ int fslot; /* compaywon History *= 10/25/85 BCC CONVERTED FROM CC:C *= 11/27/85 BCC ADDED LINK ONLY FUNCTION *= 22-JUL-86 BCC UPDATED FOR C 4.15 *= 01-JUL-86 BCC MODIFIED PARG TO ONLY UCASE ALPHA *= 08-AUG-86 BCC TAKE OUT 'T' FLAG *= 25-AUG-86 BCC MOVE TRANS INTO C168 */ erprable to the file descriptor */ char *nfile; /* linked list -- next file buffer */ unsigned char *_ptr;/* pointer to next char available */ int _cnt; /* number of chars available */ char _buff[_BSIZE]; /* buffer of data */ int zxnum ctrlop {linkonly, compilelink, assembleonly, cmpileonly}; static enum ctrlop sflag; static int tflag; /* 0=68000, 1=68010, 2=68020 */ static int vflag; /* verbose -- display procedure to screen */ static char *maptr; /* points to the map string sq_iostat; /* has the eof flag been seen */ } FILE; extern FILE *stdin,*stdout,*stderr; #define rewind(S) fseek(S,0L,0) #define feof(S) ((S)->_iostat & _EOFSEEN && !(S)->_cnt) #define getc(p) (--(p)->_cnt >= 0 ? *(p)->_ptr++ : _fillbuf(p)) #define g{yused by linker */ static char cppopts[50]; /* one option string for each phase */ static char c068opts[10]; static char c168opts[10]; static char buffer[512]; /* temporary buffer for holding commands */ static char filename[32]; /* full name of input fretchar() getc(stdin) #define putc fputc #define putchar(c) putc(c,stdout) FILE *fopen(); long ftell(); char *malloc(); |zile (w/ disk & ext) */ static char source[10]; /* first part of input file name (no ext) */ static bname[32]; /* name of error file (default is CTEMPx:ERR */ static char tbuffer[10]; /* tname (register var) is set to point here */ static char mapbuf[u/* CC:C 4-SEP-86 Eyring Research Institute, Copyright 1985-1986 This program invokes the different phases of the C compiler to convert a C source program to an executable program. It replaces the C command file that essentially does the s}{32]; /* map options are copied here */ static int err; /* return error code */ static int oldsfi; /* initial value of tcb SFI variable */ static int oldspu; /* initial value of tcb SPU variable */ static int oldunt; /* initial value of tcb UNT vavtame thing, but with a few improvements: Since it is a program rather than a command file, the command to invoke it can be recalled with ^A from the monitor. Multiple invocations can be set up by separating them on the command line with the "."~|riable */ static char *oldimp; /* initial value of tcb IMP variable */ char *parg(); /* function that parses a parenthetical arg */ char *xffn(); /* fix file name function */ static char *flibnam[4]={"","LI FFP:LIB\n","LI IEEE:LIB\n" #ifndef NO688wu command separator. Options may be specified in any order, in upper or lower case, and error detection in the command occurs earlier. The source disk may be specified if necessary, or a different extension other than "C". Not as much distracting }81 ,"LI M68881:LIB\n" #endif }; static int fflag; /* 0=no fp, 1=ffp, 2=ieee, 3=68881 */ static int rflag; /* 0=create SYfile, 1=create OBfile for ROM */ static char *documentation[] = { "\n68K PDOS C Compiler R5.0 ",__DATE, "\nEyring Copyright 1985-xvmaterial prints on the screen when the compiler is running, allowing the error messages to come through. This functions by spawning each part of the compile by means of the XEQ subroutine, which runs another program to do the job. *= Modificati~1986", "\nUsage: CC ,,", "\n filename extension defaults to :C, but others may be specified.", "\n if extension is :O, only the link step is performed.", "\n filenames after the options are treated as l5     ibraries (extension= LIB)", "\n or as object files to be linked in with the first file", "\n options follow the filename in any order with these definitions", "\n V : display each step as it executes", "\n D(abc) : define symbol 'abcf (xffnptr[8]=='\0'){ xffnptr[8]='C'; /* default extension is 'C' */ xffnptr[9]='\0'; } sprintf(filename,"%s:%.3s%s",source,&xffnptr[8],diskstr); if (argc >= 3){ register char *argp = argv[2]; /* point to options */ while(*argp) ' for preprocessor", "\n U(abc) : undefine symbol 'abc' for preprocessor", #ifndef NO68881 "\n F,E,H : floating point. F = Fast Floating Point (single precision)", "\n E = IEEE floating point", "\n  switch(*argp++ | 0x20){ /* force lower case */ case 's' : sflag = cmpileonly; break; /* create assemb */ case 'c' : sflag = assembleonly; break; /* create object */ case 'r' : rflag = 1; break; /* ROM object module */ case 'v' :  H = 68881 floating point", #else "\n F,E : floating point. F = Fast Floating Point (single precision)", "\n E = IEEE floating point", #endif "\n B : output error messages to 'xxxxx:ERR'",vflag = 1; break; /* verbose mode */ case 'q' : argp = parg(&maptr,argp);break; /* qlink map */ case 'b' : sprintf(bname,"%s:ERR%s",source,diskstr); break; /* error listing */ case 'f' : fflag = 1; break; /* fast floating poin "\n S : don't assemble -- leave in xxxxx:SR", "\n C : don't link -- leave in xxxxx:O", "\n Q : create 'SFU' link map", "\n Q(xyz) : create 'xyz' link map (options in parentheses)", "\n R : create ROMable obt */ case 'e' : fflag = 2; break; /* ieee software fp */ #ifndef NO68881 case 'h' : fflag = 3; break; /* 68881 processor */ #endif case 'd' : case 'u' : { char c = *(argp-1) & ~0x20; /* uppercase */ char tbuff[32],*tptr; aject instead of SY file", 0}; #include "TCB:H" #include main(argc,argv) int argc; char *argv[]; { register char *tname = tbuffer; /* CTEMPx */ register char *xffnptr; /* points to xffn return val */ int diskno; /* disk returned from rgp = parg(&tptr,argp); sprintf(tbuff,"-%c%s ",c,tptr); strcat(cppopts,tbuff); break; } default : usage(); } } asm("xpcl"); /* accept command */ sprintf(tname,"CTEMP%d",xrts(-1)); /* add task name to name */ if (bname[0] ==xffn */ char diskstr[5]; /* set to "/nnn" */ { register struct TCB *t=_tcbptr; oldunt = t->_unt; /* preserve original tcb vars */ oldimp = t->_imp; oldsfi = t->_sfi; oldspu = t->_spu; } if (argc <= 1) /* must have at least '\0') sprintf(bname,"%s:ERR",tname); if (maptr == NULL) maptr = ""; else{ sprintf(mapbuf,"MA %s,#%s:MAP%s\n",maptr,source,diskstr); maptr = mapbuf; } if (sflag == linkonly) goto linkstep; { /* check whether temporary f a file name */ usage(); /* parse first argument with xffn. separate out name, extension, and disk */ /* set up 'filename', 'source', 'diskno', 'diskstr', 'sflag' */ xffnptr = xffn(argv[1],&diskno); diskno &= 0xff; /* retain only the disk iles are around */ /* define temp files if not found */ char tempname[20]; static char *tempexts[]={"O","SR1","SR","L",0L}; register char **extptr=tempexts; long dummy; for (extptr=tempexts; *extptr; extptr++){ sprintf(tempname,"%s:%s*/ sprintf(diskstr,(diskno==_tcbptr->_sdk) ? "":"/%d", diskno); strncpy(source,xffnptr,8); /* build name with implicit defaults */ source[8] = 0; /* null terminate source */ sflag = xffnptr[8]=='O' && xffnptr[9]=='\0' ? linkonly : compilelink; i",tname,*extptr); xzfl(tempname); } xzfl(bname); } if (fflag > 1) strcat(cppopts,"-DIEEE "); else if (fflag == 1){ /* ffp */ strcat(c068opts," -f"); strcat(c168opts," -f"); strcat(cppopts,"-DFFP "); } #ifndef NO68881 5     if (fflag == 3){ /* 68881 support */ strcat(cppopts,"-DM68881 "); strcat(c068opts," -H"); strcat(c168opts," -H"); } #endif run_prog("C Preprocessor","CPP %s%s %s:SR", cppopts,filename,tname); run_prog("C Parser","C068 %s:SR %s:O % sprintf(ebuff,"MA R,%s:SR\nOU %s:O\n",tname,tname); } else sprintf(ebuff,"RELINK 2,Q$H0\nBITMAP END\nOU #%s%s\n", source,diskstr); sprintf(&buffer[strlen(buffer)],"\ %s\ LI STDLIB:LIB\n\ LI XLIB:LIB\n\ IN CEND:O\n\ %s\ %s\ MA MUO,%ss:L %s:SR1%s", tname,tname,tname,tname,c068opts); run_prog("C Code Generator","C168 %s:O %s:L %s:SR %s%s", tname,tname, sflag == cmpileonly ? source : tname, source,c168opts); if (sflag == cmpileonly) exit(0); run_prog("Assembler", #ifn\n\ SY\n\ EN\n\ QU\n", flibnam[fflag], /* FFP:LIB, IEEE:LIB, or M68881:LIB if needed */ maptr, /* Output user link map if requested */ ebuff, /* Output to SY file -- temp if rom, else input name */ bname); /* put undefined/overflows to error fildef NO68881 "MASM20 %s:SR,%c%s:O%s", #else "MASM %s:SR,%c%s:O%s", #endif tname, sflag == assembleonly ? '#' : '\0', sflag == assembleonly ? source : tname, sflag == assembleonly ? diskstr : ""); if (sflag == assembleonly) exit(0); linkse */ } { register struct TCB *t=_tcbptr; if (vflag) printf("\nQLINK"); else t->_unt &= 8; oldimp = t->_imp; /* point TCB input message pointer */ t->_imp = buffer; /* the command buffer */ err = xeq("QLINK"); /*tep: /* commands for QLINK */ sprintf(buffer,"\ ZE\n\ SE 0,0\n\ GR 0,1\n\ IG 2\n\ %s\ IN CSTART:O\n\ DEFINE DOX881 $%lx\n\ DEFINE DOXGNP $%lx\n\ IN %s:O\n", rflag ? "" : "BITMAP BEGIN\n", /* don't do BITMAP if in ROM */ fflag == 3 ? 0xffffa006 : 0x and run the linker */ t->_imp = oldimp; t->_unt = oldunt; if (err) _error("QLINK",err); } /* check for errors on link */ { long size; char *dummy; #define NORMALSIZE 228L tstfile(bname,&size); if (size != NORMA4e71, /* issue X881 call if hardware fp */ rflag ? 0x6008 : 0xffffa05a, /* don't do XGNP if in ROM */ sflag == linkonly ? source : tname); /* source is CTEMP0:O or input file */ /* put in a line for every input file */ if (argc > 3){ int i; LSIZE){ dispfile(bname,5); exit(1); } } if (rflag) run_prog("ROMLINK","ROMLINK %s:O,%s:SR,%s:ROM%s", tname,tname,source,diskstr); } usage() { register char **dp; for (dp = documentation;*dp;) printf(*dp++); exit(0); } char register char **argp = &argv[2]; while (*++argp){ /* and next parameter, too */ char diskbuf[5]; xffnptr = xffn(*argp,&diskno); /* parse name */ diskno &= 0xff; /* retain only the disk */ sprintf(diskbuf,(diskno == _tc * /* parse a parenthetical argument and return */ parg(str,argp) /* the argp as the function value after setting */ register char **str; /* up a pointer to the argument string */ register char *argp; { int more; *str = ""; /* no argument bptr->_sdk) ? "" : "/%d",diskno); if (xffnptr[8]=='\0'){ xffnptr[8]='O'; xffnptr[9]='\0'; /* default extension */ } sprintf(&buffer[strlen(buffer)],"%s %.8s:%.3s%s\n", strncmp("LIB",&xffnptr[8],3) ? "IN":"LI", /* library? */ xffinitially */ if (*argp == '('){ int more = 0; *str = ++argp; /* if a parenthesized argument */ while (*argp){ /* follows the option */ if (*argp == ')'){ /* check for the end */ *argp = 0; /* null terminate it */ more = 1; } elsnptr,&xffnptr[8],diskbuf); } } { char ebuff[80]; long size; if (rflag){ sprintf(ebuff,"%s:SR",tname); /* make sure the files exist */ xzfl(ebuff); sprintf(ebuff,"%s:O",tname); if (tstfile(ebuff,&size)) xzfl(ebuff);e { if ('a' <= *argp && *argp <= 'z') *argp &= ~0x20; /* convert to upper case */ argp++; } } if (more) /* if more data after paren, */ argp++; /* continue parsing. */ } return argp; } dispfile(filename,skip) c6     har *filename; int skip; { register int fd,i; long size; fd = open(filename,0); for (i=1;i 22){ i = 0; printf("Hit any /* ROMLINK:C Brian C. Cooper, Eyring. Copyright 1985-1986 This program makes a position-dependent program into a relocatable object file suitable for input to QLINK by merging the relocation information in the link map with the bincharacter to continue:"); if (xgcp() < 0){ close(fd); return(1); } printf("\n"); } } close(fd); } run_prog(fname,fmt,arg1,arg2,arg3,arg4,arg5) char *fname,*fmt,*arg1,*arg2,*arg3,*arg4,*arg5; { register struct TCB *t = _tcbptrary image produced by the linker. The result is an object file with relocatable references to section 0 (ram) and section 1 (rom). */ #include #define REVISION 0 #define VERSION 5 #define ENDCODLOC 0x48L /* pointer to end of code sp; register int fd; sprintf(buffer,fmt,arg1,arg2,arg3,arg4,arg5); if (!vflag) t->_unt &= 8; /* turn off the console */ printf("%s\n",buffer); xzfl(bname); /* set eof mark to start */ fd = t->_sfi = open(bname,1); /* temporarily take ovace (.ENDS1)*/ #define ENDRAMLOC 0x4EL /* pointer to end of ram space (.ENDS2) */ struct LOCMAP { long addr; /* address in syfile to be relocatable */ int section; /* 0 = rom, 1= ram */ }; extern struct LOCMAP *_eomem; int mapsize; /* couner spooling */ t->_unt |= (t->_spu = 8); /* hopefully, they haven't spooled */ /* unit 8 to a port */ err = xeq(buffer); t->_unt = 1; t->_spu = t->_sfi = 0; if ((oldsfi) && (oldunt & oldspu)){ /* if other spool file open */ int e;t of elements in map */ char line[134]; /* buffer to read map into */ int mapfile,syfile,objfile; main(argc,argv) int argc; char *argv[]; { long romend,ramend; register long current; register struct LOCMAP *next; register int linelen /* copy error file to it */ long count; xrwf(fd); /* rewind the error file */ do{ e = xrbf(252L,fd,t,&count); xwbf(e ? count : 252L,oldsfi,t); } while (!e); /* copy until error or end of file */ } close(fd); if (err){ /; struct LOCMAP *mapptr; long datal; int dataw; long dummy; if (argc < 4){ printf("\n68K PDOS C Linker R%d.%d %s",VERSION,REVISION,__DATE); printf("\nERII, Copyright 1985-1986"); printf("\nUsage: %s ,,",argv[0]); printf("\n Create the mapfile with MAP R, in QLINK"); return; } if ((mapfile = open(argv[2],0)) <= 0){ printf("\n%s: can't open mapfile %s",argv[0],argv[1]); return; } while (!xr} t->_unt = oldunt; /* restore unit, spool unit, spool file id */ t->_spu = oldspu; /* to original settings */ t->_sfi = oldsfi; } exit(erno) int erno; { register struct TCB *t=_tcbptr; t->_unt = oldunt; if (t->_sfi && (t->_sfi != oldlf(mapfile,line,&dummy)){ /* read map */ if (line[0] == 'R'){ line[3] = '$'; line[12] = 0; xcdb(&line[3],&dummy); addmap(dummy,inrom()); } } close(mapfile); mapfile = 0; mapptr = _eomem; /* point to beginningsfi)){ int oldlen = t->_len; close(t->_sfi); t->_len = oldlen; } t->_sfi = oldsfi; t->_imp = oldimp; t->_spu = oldspu; _exit(erno); }  of memory for map */ _eomem += mapsize; /* allocate it as well! */ if ((syfile = open(argv[1],0)) <= 0){ printf("\n%s: can't open syfile %s",argv[0],argv[2]); } if ((objfile = creat(argv[3],1)) <= 0){ printf("\n%s:6      can't create object file %s",argv[0],argv[3]); return; } xpsf(syfile,ENDCODLOC); /* find ._ENDS1 */ xrbf(4L,syfile,&romend,&dummy); /* get rom end from code */ xpsf(syfile,ENDRAMLOC); /* find .ENDS2 */ xrbf(4L,syfile,address */ endline(); sprintf(line,":ROMLINK R%d.%d %s %s\n",VERSION,REVISION,__DATE,__TIME); xwlf(objfile,line); xcfa(objfile,0x20); /* set it to be an object file */ close(syfile); } exit(err) { if (mapfile) close(mapfile);&ramend,&dummy); /* get ram end from code */ sprintf(line,"0C%-9.9s%3.3d%3.3d",argv[1],VERSION,REVISION); { register char *c,*l; /* build the IDNT with current */ char *xrdt(),*xrtm(); /* date and time */ c = xrdt(); l = &line[17]; *l++ if (objfile) close(objfile); if (syfile) close(syfile); _exit(err); } addmap(address,type) register long address; int type; { register struct LOCMAP *mapptr = _eomem; register struct LOCMAP *endptr = _eomem + mapsize++; endptr->addr = *c++; *l++ = *c++; c++; /* have to skip over field */ *l++ = *c++; *l++ = *c++; c++; /* delimiters */ *l++ = *c++; *l++ = *c++; c = xrtm(); *l++ = *c++; *l++ = *c++; c++; *l++ = *c++; *l++ = *c++; } sprintf(&line[27],"E0%08lxE1%08lx21%0 = address; while (mapptr->addr < address) mapptr++; while (mapptr != endptr){ endptr->addr = (endptr-1)->addr; endptr->section = (endptr-1)->section; endptr--; } mapptr->addr = address; mapptr->section = type; } endline() /* print 8lx2000000000", romend,ramend,ramend); endline(); current = 0; /* point to beginning of code */ xpsf(syfile,current); /* start at beginning of code */ next = mapptr; /* point to start of map */ linelen = 0; while(currentthe line with a trailing F tag and checksum */ { register char *c; char temp[132]; register int checksum = 'F'; for (c = line; *c ;checksum += *c++); sprintf(temp,"%sF%02x\n",line,-checksum & 0xff); xwlf(objfile,temp); } inrom() /* return 0 for < romend){ register long diff; int last = 0; if (next == &mapptr[mapsize]){ last = 1; diff = romend-current; } else diff = next->addr-current; while (diff > 0 ){ /* output intervening absolute data */ if (diff >= 4){ /* output as l rom, 1 for ram */ { register char *s = &line[19]; register char *t = "2/"; /* scan link map for a "2/" */ register int i,j,k; for( i=0; s[i] != '\0'; i++ ){ for (j=i,k=0;t[k] != '\0' && s[j] == t[k]; j++, k++) ; ong words */ xrbf(4L,syfile,&datal,&dummy); sprintf(&line[linelen],"5%08lx",datal); linelen += 9; current += 4; diff -= 4; } else{ /* output as word */ xrbf(2L,syfile,&dataw,&dummy); sprintf(&line[linelen],"4%04x",dataw if (t[k] == '\0') return(1); } return(0); } ); linelen += 5; current += 2; diff -= 2; } if (linelen >= 65){ /* flush buffer periodically */ endline(); linelen = 0; } } if (!last){ xrbf(4L,syfile,&datal,&dummy); /* read relocatable ref */ sprintf(&line[linele/* TESTXLIB:C Copyright 1985-1986, Eyring Research Institute. This program tests out the PDOS functions callable from the C programming environment and serves as an example of how to call each function. *= Last Modified: 08-OCT-86 *= *= 07-JULn],"9%1d%08lx8",next->section,datal); linelen += 11; current += 4; next++; if (linelen >= 65){ /* flush buffer periodically */ endline(); linelen = 0; } } } sprintf(&line[linelen],"1000000000"); /* set starting -85 BCC First release. *= 13-SEP-85 BCC Updated for PDOS 3.0 *= 08-OCT-86 BCC Updated for PDOS 3.2 *= */ int error,filid,date,time; extern char *_eomem; /* pointer to available scratch memory */ char *freeptr; /* pointer to memory from xgum */ int fr7     eesize; /* size of free block from xgum */ int checked[100]; int debug; #include #include #include #include jmp_buf env; char *xcbd(),*xcbh(),*xcbx(),*xchx(),*xffn(),*xrdt(),*xrtm(),*xudt(),*xutm(); char *xET EVENT", doxdev, "XDFL--DEFINE FILE", doxdfl, "XDLF--DELETE FILE", doxdlf, "XDMP--DUMP MEMORY", doxdmp, "XERR--RETURN ERROR TO MONITOR", doxerr, "XEXT--EXIT TO MONITOR", doxext, "XEXZ--EXIT TO MONITOR W/COMMAND", doxexz, "XFAC--FILE ALcdb(),*xuad(); long xrtp(); int doxapf(),doxbcp(),doxbfl(),doxbug(),doxcbc(),doxcbd(),doxcbh(),doxcbp(); int doxcbx(),doxcfa(),doxcdb(),doxchf(),doxchx(),doxclf(),doxcls(),doxcpy(); int doxctb(),doxdev(),doxdfl(),doxdlf(),doxerr(),doxext(),doxfbf(),doTERED CHECK", doxfac, "XFBF--FLUSH BUFFERS", doxfbf, "XFFN--FIX FILE NAME", doxffn, "XFTD--FIX TIME AND DATE", doxftd, "XFUM--FREE USER MEMORY", doxfum, "XGCB--GET CONDITIONAL CHARACTER ", doxgcb, "XGCC--GET CHARACTER CONDITIONAL", doxgcc,xffn(); int doxftd(),doxgcc(),doxgcp(),doxgcr(),doxglb(),doxglm(),doxglu(),doxgml(); int doxgtm(),doxktb(),doxktm(),doxldf(),doxler(),doxlkf(),doxlkt(),doxlst(); int doxnop(),doxpbc(),doxpcc(),doxpcl(),doxpdc(),doxpel(),doxplc(),doxpsc(); int doxpsf(), "XGCP--GET PORT CHARACTER", doxgcp, "XGCR--GET CHARACTER", doxgcr, "XGLB--GET LINE IN BUFFER", doxglb, "XGLM--GET LINE IN MONITOR BUFFER", doxglm, "XGLU--GET LINE IN USER BUFFER", doxglu, "XGML--GET MEMORY LIMITS", doxgml, "XGMP--GET MESSAdoxrbf(),doxrcn(),doxrcp(),doxrdm(),doxrdt(),doxrfa(),doxrlf(); int doxrnf(),doxroo(),doxrop(),doxrps(),doxrse(),doxrst(),doxrtm(),doxrts(); int doxrwf(),doxsef(),doxsev(),doxsop(),doxspf(),doxstm(),doxstp(),doxsui(); int doxswp(),doxszf(),doxtab(),doxGE POINTER", doxgmp, "XGNP--GET NEXT PARAMETER", doxgnp, "XGTM--GET TASK MESSAGE", doxgtm, "XGUM--GET USER MEMORY", doxgum, "XKTB--KILL TASK", doxktb, "XKTM--KILL TASK MESSAGE", doxktm, "XLDF--LOAD FILE", doxldf, "XLER--LOAD ERROR REGIStef(),doxudt(),doxulf(),doxult(),doxutm(); int doxwbf(),doxwdt(),doxwfa(),doxwlf(),doxwse(),doxwtm(),doxzfl(); int doxgnp(),doxrde(),doxgum(),doxfum(); int doxexz(),doxgcb(),doxrfp(),doxwfp(); int doxfac(),doxpad(),doxpcr(),doxdmp(),doxuad(),doxgmp(),TER", doxler, "XLKF--LOCK FILE", doxlkf, "XLKT--LOCK TASK", doxlkt, "XLST--LIST FILE DIRECTORY", doxlst, "XNOP--OPEN SHARED RANDOM FILE", doxnop, "XPAD--PACK ASCII DATE", doxpad, "XPBC--PUT USER BUFFER TO CONSOLE", doxpbc, "XPCC--PUT CHARdoxsmp(),doxrtp(); struct { char *name; int (*funct)(); } nf[] = { "XAPF--APPEND FILE", doxapf, "XBCP--BAUD CONSOLE PORT", doxbcp, "XBFL--BUILD DIRECTORY LIST", doxbfl, "XBUG--ENTER DEBUGGER", doxbug, "XCBC--CHECK FOR BREAK CHARACTEACTER TO CONSOLE", doxpcc, "XPCL--PUT CRLF TO CONSOLE", doxpcl, "XPCR--PUT CHARACTER RAW", doxpcr, "XPDC--PUT DATA TO CONSOLE", doxpdc, "XPEL--PUT ENCODED LINE TO CONS.", doxpel, "XPLC--PUT LINE TO CONSOLE", doxplc, "XPSC--POSITION CURSOR", R", doxcbc, "XCBD--CONVERT BINARY TO DECIMAL", doxcbd, "XCBH--CONVERT BINARY TO HEX", doxcbh, "XCBP--CHECK FOR BREAK OR PAUSE", doxcbp, "XCBX--CVRT TO DECIMAL IN BUFFER", doxcbx, "XCDB--CONVERT DECIMAL TO BINARY", doxcdb, "XCFA--CLOSE FILE WITH doxpsc, "XPSF--POSITION FILE", doxpsf, "XRBF--READ BYTES FROM FILE", doxrbf, "XRCN--RESET CONSOLE INPUTS", doxrcn, "XRCP--READ CURSOR POSITION", doxrcp, "XRDE--READ NEXT DIRECTORY ENTRY", doxrde, "XRDM--DUMP REGISTERS", doxrdm, "XRDT--REAATTRIBUTES", doxcfa, "XCHF--CHAIN TO FILE", doxchf, "XCHX--CVRT BINARY TO HEX IN BUFF", doxchx, "XCLF--CLOSE FILE", doxclf, "XCLS--CLEAR SCREEN", doxcls, "XCPY--COPY FILE", doxcpy, "XCTB--CREATE TASK BLOCK", doxctb, "XDEV--DELAY SET/RESD DATE", doxrdt, "XRFA--READ FILE ATTRIBUTES", doxrfa, "XRFP--READ FILE POSITION", doxrfp, "XRLF--READ LINE FROM FILE", doxrlf, "XRNF--RENAME FILE", doxrnf, "XROO--OPEN READ-ONLY RANDOM FILE", doxroo, "XROP--OPEN RANDOM FILE", doxrop, "X7     RPS--READ PORT STATUS", doxrps, "XRSE--READ SECTOR FROM DISK", doxrse, "XRST--RESET FILES", doxrst, "XRTM--READ TIME", doxrtm, "XRTP--READ TIME PARAMETERS", doxrtp, "XRTS--READ TASK STATUS", doxrts, "XRWF--REWIND FILE", doxrwf, "XSEF--22);row++){ xpsc(row,col); printf("%2d: %4.4s %c",i,nf[i++].name, /*display options*/ checked[i] ? '*' : ' '); } } do { /* get a menu selection */ xpsc(21,0); if (setjmp(env) == 0) rval = getnum("Select an option"); SET EVENT FLAG W/SWAP", doxsef, "XSEV--SET EVENT FLAG", doxsev, "XSMP--SEND MESSAGE POINTER", doxsmp, "XSOP--OPEN SEQUENTIAL ACCESS", doxsop, "XSPF--SET PORT FLAG", doxspf, "XSTM--SEND TASK MESSAGE", doxstm, "XSTP--SET TASK PRIORITY", doelse exit(0); if (rval < 0) /* toggle the debug flag */ debug = ~debug; } while ((rval <0) || (rval >= maxopt)); } main() { int option; debug = 0; for (;;){ option = menu(); if (setjmp(env) == 0){ printf("\noption=%d, %s\n",opxstp, "XSUI--SUSPEND UNTIL INTERRUPT", doxsui, "XSWP--SWAP TO NEXT TASK", doxswp, "XSZF--GET DISK SIZE", doxszf, "XTAB--TAB TO COLUMN", doxtab, "XTEF--TEST EVENT FLAG", doxtef, "XUAD--UNPACK ASCII DATE", doxuad, "XUDT--UNPACK DATE", doxtion,nf[option].name); printf("\nStatus=%d\nPress any key:", error = (*nf[option].funct)(dbchk())); /*do funct*/ xgcp(); /* pause */ if (!error) checked[option] = 1; /*check it off*/ } } } dbchk() /* drop into debug mode if flaudt, "XULF--UNLOCK FILE", doxulf, "XULT--UNLOCK TASK", doxult, "XUTM--UNPACK TIME", doxutm, "XWBF--WRITE BYTES TO FILE", doxwbf, "XWDT--WRITE DATE", doxwdt, "XWFA--WRITE FILE ATTRIBUTES", doxwfa, "XWFP--WRITE FILE PARAMETERS", doxwfp,g set */ { if (debug){ asm("xbug"); } } int doxapf() /*xapf--append file*/ { char fname1[20],fname2[20]; getstr("Name of file to append",fname1); getstr("Name of file to append onto",fname2); error = xapf(fname1,fname2); return error; } i "XWLF--WRITE LINE TO FILE", doxwlf, "XWSE--WRITE SECTOR TO DISK", doxwse, "XWTM--WRITE TIME", doxwtm, "XZFL--ZERO FILE", doxzfl, 0,0}; long getnum(str) char *str; /* prompt for a number, get it */ { char *c; long num; print: printf("\n%nt doxbcp() /*xbcp--baud console port*/ { int port = _tcbptr->_prt; printf("\nset port %d to 300 baud",port); if (error = xbcp(port,300,0,0)) return error; printf("Nyaah, Nyaah, Nyaah, you can't read this!"); error = xbcp(port,19200,0,0); res: ",str); switch(xglu(&c)){ case -3: case -2: longjmp(env,2); case -1: xpcc('\r'); goto print; case 0: if (c[0] == 0) longjmp(env,3); /* no input -- error */ else xcdb(c,&num); } return num; } getstr(str,buf) charturn error; } int doxbfl() /*xbfl--build directory list*/ { char filespec[20]; int err; register char *bufptr = _eomem; getstr("Enter filespec",filespec); if (err = xbfl(filespec,bufptr,&filespec[0])) return err; printf("\nfiles found:");  *str,*buf; { printf("\n%s: ",str); if (xglb(buf) < 0) /* trap control c,esc */ longjmp(env,3); } int menu() /* display menu of available functions */ /* negative numbers toggle the debug flag */ { register int row,col,i; int rval; int mwhile (*bufptr){ /* loop until a double null */ asm("xpcl"); while(xpcc(*bufptr++)) /* print out a line */ ; } return 0; } int doxbug() /*xbug--enter debugger*/ { asm("xbug"); return 0; } int doxcbc() /*xcbc--check for break characteaxopt = (sizeof(nf) >> 3) - 1; /*calculate no. of options*/ int width = 80 / ((maxopt / 20)+1); /*calculate column width */ asm("xcls"); for (col = 0,i=0;(nf[i].name != 0L) && (col < 80);col += width){ for (row = 0;(nf[i].name != 0L) && (row < r*/ { int err; while(1){ switch(err = xcbc()){ case -2: xgcp(); printf("\nescape\n"); return 0; case -3: xgcp(); printf("\nctrl c\n"); return 0; case 0: xpcc('.');break; default : return err; } } } int doxcbd() /*xcbd--convert bin8     ary to decimal*/ { long num; num = getnum("Enter a number"); printf("\ndecimal is %s",xcbd(num)); return 0; } int doxcbh() /*xcbh--convert binary to hex*/ { long num; num = getnum("Enter a number"); printf("\nhex is %s",xcbh(num)); return 0; }/* execute monitor command line */ 64, /* priority 64 */ -_tcbptr->_prt, /* use my port for output */ lowmem,highmem, /* use this memory for task */ "LT.EV 65.PB", /* execute these commands */ &taskno); /* tell me what task it is */ if int doxcbp() /*xcbp--check for break or pause*/ { int err; while (1) switch(err = xcbp()){ case 0: printf("\nPaused..\n"); break; case -1: xpcc('.'); break; case -2: printf("\nSaw escape"); return 0; case -3: xgcp(); printf("\nSaw c (error) return error; xsui(65); /* wait on that event */ xktb(-taskno); /* kill the task without */ /* deallocating memory */ while (xrts(taskno)){ asm("xswp"); /* wait for task to die */ } return 0; } int doxdev() /*xdev--deontrol C");return 0; default : return err; } } int doxcbx() /*xcbx--cvrt to decimal in buffer*/ { long i; char buff[20]; i = getnum("Enter a number"); xcbx(buff,i); printf("\nxcbx produced %s",buff); return 0; } int doxcdb() /*xcdb--conlay set/reset event*/ { long i; i = getnum("how long to wait (in tics) on event 65"); if(error = xdev(i,65)) return error; return (xsui(65)); } int doxdfl() /*xdfl--define file*/ { int i; char list[80]; getstr("enter file name",list); i =vert decimal to binary*/ { char buff[80]; char *c; long i; getstr("Enter a number",buff); switch ((int)(c = xcdb(buff,&i))){ case -1: printf("no conversion possible ");break; default: printf("partial conversion -- remaining is %s\n",c);  getnum("enter size"); return (xdfl(list,i)); } int doxdlf() /*xdlf--delete file*/ { char list[80]; getstr("enter file name",list); return (xdlf(list)); } int doxdmp() /*xdmp--dump memory*/ { long ptr; int size; ptr = getnum("Enter starting ad case 0: printf("xcdb returns %ld",i); } return 0; } int doxcfa() /*xcfa--close file with attributes*/ { int i; i = getnum("enter attribute"); return (xcfa(filid,i)); } int doxchf() /*xchf--chain to file*/ { char list[80]; getstr("enter pdress"); size = getnum("Enter length"); xdmp(size,ptr); return 0; } int doxerr() /*xerr--return error to monitor*/ { int i; i = getnum("enter error number"); xerr(i); } int doxext() /*xext--exit to monitor*/ { asm("xext"); } int doxexz() /*xerogram name",list); return (xchf(list)); } int doxchx() /*xchx--cvrt binary to hex in buff*/ { long i; char list[80]; i = getnum("enter a number"); xchx(list,i); printf("\nanswer is %s",list); return 0; } int doxclf() /*xclf--close file*/ { rxz--exit to monitor w/command*/ { char list[80]; getstr("enter command",list); return (xexz(list)); } int doxfac() /*xfac--file altered check*/ { char list[80]; getstr("enter file name",list); return (xfac(list)); } int doxfbf() /*xfbf--flush beturn (xclf(filid)); } int doxcls() /*xcls--clear screen*/ { asm("xcls"); return 0; } int doxcpy() /*xcpy--copy file*/ { char list1[80]; char list[80]; getstr("source file",list); getstr("enter destination file",list1); return (xcpy(list,list1uffers*/ { return (xfbf(0)); } int doxffn() /*xffn--fix file name*/ { char *buffer; int diskno; char list[80]; getstr("enter file name",list); if ((buffer = xffn(list,&diskno)) == 0L) return 50; printf("\nDisk: %d, name: %.8s, ext: %.3s, l)); } int doxctb() /*xctb--create task block*/ { long unsigned lowmem,highmem; int taskno; /* round up to a 2K boundary */ lowmem = ((long unsigned) _eomem + 2048L) & ~2047L; highmem = lowmem + 4096; /* create a 4K task */ error = xctb( -1, evel: %d", diskno,buffer,&buffer[8],buffer[11]); return 0; } int doxftd() /*xftd--fix time and date*/ { xftd(&time,&date); printf("\ndate=0x%0x, time=0x%0x",date,time); return 0; } int doxfum() /*xfum--free user memory*/ { if (freeptr == 0L){ 8      printf("\nNo memory to free up -- try using XGUM first"); return 1; } error = xfum(freesize,freeptr); if (error == 0){ freesize = 0; freeptr = 0L; } return error; } int doxgcb() /*xgcb--get conditional character*/ { int i; di; long j; error = 73; printf("Find largest block of available memory\n"); for (i=1024;i>0 && error != 0;i -= 2){ printf("\rSearching for %4.4dK ",i); error = xgum(i,&j,&dummy); } if (i==0) return 73; freesize = i; freeptr = j; o { xpcc('.'); i = xgcb(); } while(i == -1); printf("\ni=%d",i); return 0; } int doxgcc() /*xgcc--get character conditional*/ { int i; do { xpcc('.'); i = xgcc(); } while(i == -1); printf("\ni=%d",i); return 0; } int doxgcreturn 0; } int doxktb() /*xktb--kill task*/ { int i; i = getnum("task number to kill"); return(xktb(i)); } int doxktm() /*xktm--kill task message*/ { int i; char buffer[64]; i = getnum("task number "); error = xktm(i,buffer); if (!error) p() /*xgcp--get port character*/ { int i; i = xgcp(); printf("\ni=%d",i); return 0; } int doxgcr() /*xgcr--get character*/ { int i; i = xgcr(); printf("\ni=%d",i); return 0; } int doxglb() /*xglb--get line in buffer*/ { char buffer[80]; if  printf("\nmessage=%s",buffer); return error; } errtrap() { longjmp(env,3); } extrap() { asm("MOVE D1,D0\nXLER"); /* save error */ longjmp(env,4); } int doxldf() /*xldf--load file*/ { long unsigned lowmem,highmem; long unsigned lowload,highlo(error = xglb(buffer)) return error; printf("\n->%s",buffer); return 0; } int doxglm() /*xglm--get line in monitor buffer*/ { char *c; if (error = xglm(&c)) return error; printf("\n->%s",c); return 0; } int doxglu() /*xglu--get line iad; /* round up to a 2K boundary */ char *oldext = _tcbptr->_ext; char *olderr = _tcbptr->_err; char *oldead = _tcbptr->_ead; if (!setjmp(env)){ _tcbptr->_ext = extrap; _tcbptr->_err = errtrap; lowmem = ((long unsigned) _eomem + n user buffer*/ { char *c; if (error = xglu(&c)) return error; printf("\n->%s",c); return 0; } int doxgml() /*xgml--get memory limits*/ { long endtcb,uppermem,lastload,syram,tcb; xgml(&endtcb,&uppermem,&lastload,&syram,&tcb); printf("\nend2048L) & ~2047L; highmem = lowmem + 16384; /* create a 16K task */ printf("\nLoading the 'HELLO' program..."); error = xldf(1,lowmem,highmem,"HELLO",&lowload,&highload); xler(error); } _tcbptr->_ext = oldext; _tcbptr->_err = oldetcb = %lx",endtcb); printf("\nuppermem = %lx",uppermem); printf("\nlastload = %lx",lastload); printf("\nsyram = %lx",syram); printf("\ntcb = %lx",tcb); return 0; } int doxgmp() /*xgmp--get message pointer*/ { char *c; int m; m = getnrr; _tcbptr->_ead = oldead; return _tcbptr->_len; } int doxler() /*xler--load error register*/ { int i; i = getnum("enter error number"); xler(i); return 0; } int doxlkf() /*xlkf--lock file*/ { return(xlkf(filid)); } int doxlkt() /*xlkt--lockum("\nEnter message number"); error=xgmp(m,&c); printf("\ntask = %d, message=%s",error,c); return 0; } int doxgnp() /*xgnp--get next parameter*/ { char *c; _tcbptr->_cmd = ' '; _tcbptr->_clp = "PARSE THIS ONE, RASCAL"; while (xgnp(&c)) pri task*/ { return(xlkt()); } int doxlst() /*xlst--list file directory*/ { char list[80]; getstr("Enter file spec: ",list); return(xlst(list)); } int doxnop() /*xnop--open shared random file*/ { char list[80]; int filtyp; getstr("enter file namentf("\n->%s<-",c); return 0; } int doxgtm() /*xgtm--get task message*/ { char buffer[64]; int sender; sender = xgtm(buffer); if (sender >= 0){ printf("\nmessage=%s",buffer); return 0; } return -1; } int doxgum() { char *dummy; int  ",list); error = xnop(list,&filtyp,&filid); if (!error) printf("\nfilid=%d, filtype=%x",filid,filtyp); return error; } int doxpad() /*xpad--pack ascii date*/ { int list[80]; getstr("enter date",list); if((date=xpad(list))==-1) printf("9     \nBad date"); else printf("\nPacked date = %u",date); return 0; } int doxpbc() /*xpbc--put user buffer to console*/ { asm("xpbc"); return 0; } int doxpcc() /*xpcc--put character to console*/ { char *c = "xpcc works ---"; while(*c) xpcc rr = xrde(diskno,1,&lastentry,§ornum); } if (err == 53) err = 0; return err; } int doxrdm() /*xrdm--dump registers*/ { asm("xrdm"); return 0; } int doxrdt() /*xrdt--read date*/ { printf("\ndate=%s",xrdt()); return 0; } int doxrfa() /(*c++); return 0; } int doxpcl() /*xpcl--put crlf to console*/ { xplc("\nFIRST LINE->"); asm("xpcl"); xplc("<-THIS SHOULD BE ON A NEW LINE"); return 0; } int doxpcr() /*xpcc--put character raw*/ { char *c = "This is a tab->\t<--"; while(*c)  *xrfa--read file attributes.*/ { struct DIRENT *buffer; int disk; long size,type; char list[80]; getstr("Filename: ",list); error = xrfa(list,&buffer,&disk,&size,&type); if (!error){ printf("\ndisk=%d",disk); printf("\nsize=%ld",size); xpcr(*c++); return 0; } int doxpdc() /*xpdc--put data to console*/ { static char buffer[] = "This tests xpdc"; xpdc(sizeof(buffer),buffer); return 0; } int doxpel() /*xpel--put encoded line to cons.*/ { /* \200 means carriage-return/line feed,  printf("\ntype=0x%lx",type); printf("\nname: %.8s, ext: %.3s, level: %d", buffer->_fname,buffer->_fext,buffer->_level); printf("\nend of file sector %d",buffer->_seof); printf("\nend of file byte %d",buffer->_beof); printf(" \373 means 5 spaces */ xpel("\200Testing\373Testing"); return 0; } int doxplc() /*xplc--put line to console*/ { xplc("This tests xplc"); return 0; } int doxpsc() /*xpsc--position cursor*/ { asm("xcls"); xplc("xpsc test--row 12,column 40"); xp  \ncreation time %d",buffer->_ctime); printf("\ncreation date %d",buffer->_cdate); printf("\nupdate time %d",buffer->_utime); printf("\nupdate date %d",buffer->_udate); } return error; } int doxrfp() /*xrfp--read file position*/ { sc(12,40); xpcc('*'); return 0; } int doxpsf() /*xpsf--position file*/ { long i; i = getnum("enter position "); return(xpsf(filid,i)); } int doxrbf() /*xrbf--read bytes from file*/ { int i,j; long bytesread; char buffer[256]; j = getnum("how  struct FILESLOT *fsptr; long int position; long int eof; if(error=xrfp(filid,&fsptr,&position,&eof)) return(error); else printf("the file %s:%.3s is at byte %ld", fsptr->name,fsptr->ext,position); return(0); } int doxrlf() many bytes (0-256)"); error = xrbf((long) j,filid,buffer,&bytesread); if (!error) bytesread = j; printf("\nbytesread=%ld\n",bytesread); for (i=0;iFPNEG:S FPPRINTF:C FPPWR:S FPSCANF:C FPSIN:S FPSQRT:S FPSUB:S FPTAN:S FREXP:C FTOA:C FTOL:C LDEXP:C LOG10:C LTOF:C MODF:C SINH:S TANH:S ULTOF:C /** * Copyright 1983, 1985 * Alcyon Corporation * 5010 Shoreham Place * San Diego, CA 92122-3954 *;     A? * @(#)atan2.c 3.1 1/3/86 **/ #include /* * Floating Point Atan2 : * Fast Floating Point Package * * double * atan2(x,y) * double x, y; * * Returns : arc tangent of the quantity x / y. */ double atan2(x, y) double x, y; { IG if (isign) /* negative float */ rval |= SIGNBIT; return( rval ); } static float power10(pwr) /* 10^pwr */ int pwr; { float f; if (pwr < 0L) /* negative power */ for (f = 1.0; pwr < 0; pwr++) f = f / 10.0; else /B@ if( x == 0.0 ) return(0.0); if( y == 0.0 ) { if( x > 0.0 ) return(1.570796327); return(-1.570796327); } return(atan(x/y)); } /* Copyright 1982, 1983 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 */ /*cJH* positive power */ for (f = 1.0; pwr > 0; pwr--) f = f * 10.0; return(f); } static long canon(f) /* convert current machine float to canonical rep */ float f; /* unsigned input, guaranteed positive */ { register int exp, count, signCAhar *version "@(#)atof.c 2.3 3/06/85";*/ /* * Ascii String to Floating Point Routine : * Standard Single Precision Representation Floating Point * * float * atof(buf) * char *buf; * * No more than 9 significant digits are allowed in singlKI; long l; if (f == 0.0) return(0L); if (f < 0.0) { f = -f; sign = 1; } else sign = 0; exp = 0L; for( ; f >= 1.0; f = f / 2.0) exp++; for( ; f < 0.5; f = f * 2.0) exp--; f = f * 16777216.0; /* 2 ^ 24 */ l =DBe precision. * 1.2 * 10^-38 >= num >= 3.4 * 10^33 (IEEE) * 1.2 * 10^-20 >= num >= 3.4 * 10^18 (FFP) * Relies on the fact that a long and a float are both 32 bits. */ # define SIGNBIT 0x80 #define EXPSIZ 4 #define FRACSIZ 20 float strbin(),poweLJ f; l <<= 8; exp += 0x40; l |= (exp & 0x7f); if (sign) l |= 0x80; return(l); } static float strbin(p) /* decimal string => binary long */ char *p; { float f; for (f = 0.0; *p >= '0' && *p <= '9'; p++) { f = f * 10.0;ECr10(); long canon(); long atof(buf) char *buf; { char ibuf[FRACSIZ], ebuf[EXPSIZ]; register char *ip, *ep; long rval; /* return value */ int dp, esign, isign, ebin, places; float ibin, fp; ip = ibuf; ep = ebuf; dp = 0; plaMK f = f + (*p - '0'); } return(f); } /* Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 */ /*char *version "@(#)ceil.c 1.2 10/19/83";*/ /* ceil - returns the smallest integer (as a double precFDces = 0L; while (*buf == ' ' || *buf == '\t') /* ignore white spaces */ buf++; isign = (*buf == '-'); if (*buf == '-' || *buf == '+') buf++; while (*buf && *buf != 'e' && *buf != 'E') { if (*buf == '.') dp++; else if(*buf>='0' NLision number) not greater than x. */ double ceil(x) double x; { register long i; double retval; if( x > 0 ) x += 0.999999999999; i = x; retval = i; return( retval ); } IDNT 1,1 OPT ALT,FRL,TC,NOWARN * * COPYRIGHT 1984GE&& *buf<='9') { /* digit seen */ *ip++ = *buf; if (dp) places++; } else break; buf++; } *ip = 0; if (*buf == 'e' || *buf == 'E') { /* exponent string */ buf++; esign = (*buf == '-'); if (*buf == '-' || *buf == '+') OM * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA. 92121 * * @(#)COSH.S 2.1 7/9/84 * * FLOATING POINT HYPERBOLIC COSINE: * FRONT END TO FLOATING POINT PACKAGE. * * DOUBLE * COSH(FARG) * DOUBLE FARG; * * RETURNS : NEGATED FLOAHF buf++; while (*buf) /* get exponent string */ *ep++ = *buf++; } *ep = 0; ibin = strbin(ibuf); ebin = atoi(ebuf); places = (esign) ? -ebin - places : ebin - places; fp = ibin * power10(places); rval = canon(fp); PNTING POINT NUMBER * XREF FFPCOSH XREF IEFCOSH XDEF FPCOSH XDEF .COSH SECTION 0 FPCOSH: EQU * .COSH: EQU * LINK A6,#-4 MOVE.L D7,-(SP) MOVE.L 8(A6),D7 JSR FFPCOSH MOVE.L D7,D0 MOVE.L (SP)+,D7 UNLK A6 RTS END /* Copyright 1982;     QO Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 @(#)etoa.c 2.3 3/6/85 */ /* * Floating Point to Ascii String Conversion Routine : * Standard Single Precision Representation Floating Point * * char * * etoa(fl,buYWn "@(#)fabs.c 1.4 2/2/84";*/ /* * Floating Point Absolute : * * double * fabs(farg) * double farg; * * Returns : absolute Floating point number */ long fabs(f) long f; { f = f & 0xffffff7f; /* turn off sign bit -- FFP */ retRPf,prec) * float fl; * char *buf; * int prec; * * No more than 9 significant digits are allowed in single precision. * 1.2 * 10^-38 >= num >= 3.4 * 10^33 (IEEE) * 1.2 * 10^-20 >= num >= 3.4 * 10^18 (FFP) * Relies on the fact that a long aZXurn(f); } /* Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 */ /*char *version "@(#)floor.c 1.2 10/19/83"; /* floor - returns the largest integer (as a double precision number) not greater than x.SQnd a float are both 32 bits. */ static float table[] = { /* [vlh] floating point rounding 16 march 1984 */ 0.05, 0.005, 0.0005, 0.00005, 0.000005, 0.0000005, 0.00000005, 0.000000005, 0.0000000005,0.00000000005 }; char * etoa[Y */ double floor(x) double x; { register long i; double retval; if ( x < 0 ) x -= 0.99999999999999; i = x; retval = i; return( retval ); } /* Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, TR(x,buf,prec) register union { long fl; float f; } x; char *buf; register int prec; { register char *bp; register int exp, digit; prec = (prec <= 0) ? 1 : (prec <= 9) ? prec : 9; bp = buf; if (x.f == 0.0) { *bp++ = '0'; *bp++ = '.\ZCa. 92121 */ /*char *version "@(#)fmod.c 1.2 10/19/83"; /* fmod - returns the number f such that x = iy + f, and 0 <= f <= y. */ double fmod(x,y) double x; double y; { double z; double retval; register long i; double fabs(); US'; while (prec--) *bp++ = '0'; *bp++ = 'e'; *bp++ = '0'; *bp++ = '0'; *bp = 0; return(buf); } if (x.f < 0.0) { /* negative float */ *bp++ = '-'; x.f = -x.f; /* make it positive */ } for (exp=0; x.f < 1.0; x.f *= 10.0) ][ double absx; double absy; absx = fabs(x); absy = fabs(y); for(z = absx; z - absy >= 0. ; z -= absy) ; i = z; if( x < 0.0 ) i *= -1; retval = i; return( retval ); } IDNT 1,1 OPT ALT,FRL,TC,NOWARN * * COPYRIVT /* get negative exp */ exp--; for ( ; x.f >= 1.0; x.f /= 10.0) /* 0.XXXXXXE00 * 10^exp */ exp++; x.f += table[prec]; /* rounding */ if (x.f >= 1.0){ x.f /= 10.0; exp++; } exp--; /* for one explicit digit */ x.f *= 10.^\GHT 1984 * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA. 92121 * * @(#)FPADD.S 2.1 7/9/84 * * FLOATING POINT ADDITION : * FRONT END TO FLOATING POINT PACKAGE. * * DOUBLE * FPADD(ADDEND,ADDER) * DOUBLE ADDEND, ADDER; * * RETWU0; digit = x.f; /* get one digit */ x.f -= digit; *bp++ = digit + '0'; *bp++ = '.'; while(prec-- > 0) { /* get prec. decimal places */ x.f *= 10.0; digit = x.f; x.f -= digit; *bp++ = digit + '0'; } *bp++ = 'e'; if _]URNS : SUM OF TWO FLOATING POINT NUMBERS * XREF IEFADD XREF FFPADD XDEF FPADD XDEF .FPADD SECTION 0 RL REG D3-D7 FPADD: EQU * .FPADD: EQU * LINK A6,#-4 MOVEM.L RL,-(SP) MOVE.L 8(A6),D7 MOVE.L 12(A6),D6 JSR FFPADD MOVE.L D7,D0 MOVEM.LXV(exp < 0) { exp = -exp; *bp++ = '-'; } *bp++ = (exp / 10) + '0'; *bp++ = (exp % 10) + '0'; *bp = 0; return(buf); } /* Copyright 1982 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 */ /*char *versio`^ (SP)+,RL UNLK A6 RTS END IDNT 1,1 OPT ALT,FRL,TC,NOWARN * * COPYRIGHT 1984 * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA. 92121 * * @(#)FPATAN.S 2.1 7/9/84 * * FLOATING POINT ARC TANGENT : * FRONT END TO FLOATIN<     a_G POINT PACKAGE. * * DOUBLE * ATAN(FARG) * DOUBLE FARG; * * INPUT : IN RADIANS * RETURNS : ARC TANGENT OF FLOATING POINT NUMBER * XREF IEFATAN XREF FFPATAN XDEF ATAN XDEF .ATAN SECTION 0 ATAN: EQU * .ATAN: EQU * LINK A6,#-4 MOVEM.L D3-D7,-(ig MOVEM.L (SP)+,RL UNLK A6 RTS END IDNT 1,1 OPT ALT,FRL,TC,NOWARN * * COPYRIGHT 1984 * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA. 92121 * * @(#)FPEXP.S 2.1 7/9/84 * * FLOATING POINT EXPONENT : * FRONT END TO FFP FLb`SP) MOVE.L 8(A6),D7 JSR FFPATAN MOVE.L D7,D0 MOVEM.L (SP)+,D3-D7 UNLK A6 RTS END IDNT 1,1 OPT ALT,FRL,TC,NOWARN * * COPYRIGHT 1984 * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA. 92121 * * @(#)FPCMP.S 2.1 7/9/jhOATING POINT PACKAGE. * * DOUBLE * EXP(X) * DOUBLE X; * * RETURNS : E ^ X (WHERE E = 2.718...) * XREF IEFEXP XREF FFPEXP XDEF EXP XDEF .EXP SECTION 0 EXP: EQU * .EXP: EQU * LINK A6,#-4 MOVEM.L D7,-(SP) MOVE.L 8(A6),D7 JSR FFPEXP MOVE.Lca84 * * FLOATING POINT COMPARE : * FRONT END TO FFP FLOATING POINT PACKAGE. * * INT * FPCMP(SOURCE,DEST) * DOUBLE SOURCE, DEST; * * RETURNS : CONDITION CODES BASED ON FLOATING POINT COMPARE * XREF IEFCMP XREF FFPCMP SECTION 0 RL REG D3-D7 XDEF Fki D7,D0 MOVEM.L (SP)+,D7 UNLK A6 RTS END IDNT 1,1 OPT ALT,FRL,TC,NOWARN * * COPYRIGHT 1984 * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA. 92121 * * @(#)FPLOG.S 2.1 7/9/84 * * FLOATING POINT LOGARITHM : * FRONT END dbPCMP XDEF .FPCMP FPCMP: EQU * .FPCMP: EQU * LINK A6,#-4 MOVEM.L RL,-(SP) MOVE.L 8(A6),D7 MOVE.L 12(A6),D6 JSR FFPCMP MOVEM.L (SP)+,RL UNLK A6 RTS END IDNT 1,1 OPT ALT,FRL,TC,NOWARN * * COPYRIGHT 1984 * ALCYON CORPORATION * 871ljTO FFP FLOATING POINT PACKAGE. * * DOUBLE * LOG(X) * DOUBLE X; * * RETURNS : THE FLOATING POINT LOGARITHM * XREF IEFLOG XREF FFPLOG XDEF LOG XDEF .LOG SECTION 0 LOG: EQU * .LOG: EQU * LINK A6,#-4 MOVEM.L D7,-(SP) MOVE.L 8(A6),D7 JSR FFPec6 PRODUCTION AVE. * SAN DIEGO, CA. 92121 * * @(#)FPCOS.S 2.1 7/9/84 * * FLOATING POINT COSINE : * FRONT END TO FFP FLOATING POINT PACKAGE. * * DOUBLE * COS(FARG) * DOUBLE FARG; * * INPUT : IN RADIANS * RETURNS : COSINE OF FLOATING POINT NmkLOG MOVE.L D7,D0 MOVEM.L (SP)+,D7 UNLK A6 RTS END IDNT 1,1 OPT ALT,FRL,TC,NOWARN * * COPYRIGHT 1984 * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA. 92121 * * @(#)FPMUL.S 2.1 7/9/84 * * FLOATING POINT MULTIPLICATIOfdUMBER * XREF IEFCOS XREF FFPCOS XDEF COS XDEF .COS SECTION 0 COS: EQU * .COS: EQU * LINK A6,#-4 MOVEM.L D3-D7,-(SP) MOVE.L 8(A6),D7 JSR FFPCOS MOVE.L D7,D0 MOVEM.L (SP)+,D3-D7 UNLK A6 RTS END IDNT 1,1 OPT ALT,FRL,TC,NOWARN * * nlN : * FRONT END TO FFP FLOATING POINT PACKAGE. * * DOUBLE * FPMUL(MULTIPLIER,MULTIPLICAND) * DOUBLE MULTIPLIER, MULTIPLICAND; * * RETURN : RESULT OF FLOATING POINT MULTIPLY * XREF IEFMUL XREF FFPMUL2 XDEF FPMULT XDEF .FPMULT SECTION 0 RL REG D3-ge COPYRIGHT 1984 * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA. 92121 * * @(#)FPDIV.S 2.1 7/9/84 * * FLOATING POINT DIVISION : * FRONT END TO FFP FLOATING POINT PACKAGE. * * DOUBLE * FPDIV(DIVISOR,DIVIDEND) * DOUBLE DIVISOR, omD7 FPMULT EQU * .FPMULT EQU * FPMUL EQU * .FPMUL EQU * LINK A6,#-4 MOVEM.L RL,-(SP) MOVE.L 8(A6),D7 MOVE.L 12(A6),D6 JSR FFPMUL2 MOVE.L D7,D0 MOVEM.L (SP)+,RL UNLK A6 RTS END IDNT 1,1 OPT ALT,FRL,TC,NOWARN * * COPYRIGHT 1984 * hfDIVIDEND; * * RETURN : FLOATING POINT QUOTIENT * XREF IEFDIV XREF FFPDIV XDEF FPDIV XDEF .FPDIV SECTION 0 RL REG D3-D7 FPDIV: EQU * .FPDIV: EQU * LINK A6,#-4 MOVEM.L RL,-(SP) MOVE.L 8(A6),D7 MOVE.L 12(A6),D6 JSR FFPDIV MOVE.L D7,D0 pnALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA. 92121 * * @(#)FPNEG.S 2.1 7/9/84 * * FLOATING POINT NEGATION : * FRONT END TO FFP FLOATING POINT PACKAGE. * * DOUBLE * FPNEG(FARG) * DOUBLE FARG; * * RETURNS : NEGATED FLOATING PO<     qoINT NUMBER * XREF IEFNEG XREF FFPNEG XDEF FPNEG XDEF .FPNEG SECTION 0 RL REG D3-D7 FPNEG EQU * .FPNEG EQU * LINK A6,#-4 MOVEM.L RL,-(SP) MOVE.L 8(A6),D7 JSR FFPNEG MOVE.L D7,D0 MOVEM.L (SP)+,RL UNLK A6 RTS END /* Copyright 198yw; } /* * we now have all the prelims out of the way; * let's see what we want to print */ s = buf; switch (c) { case 'd': /* decimal signed */ case 'D': if( longf ) fn = __prtld; else fn = __prtshort; __prtint(pi++, burp3 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 @(#)printf.c 2.1 7/9/84 */ #include struct { int word0; int word1; }; #define PBUFSIZ 80 static FILE *__stream; static char *__str; static zxf, 10, 1, fn, 0); if( longf ) pi++; break; case 'u': /* decimal unsigned */ case 'U': __prtint(pi++, buf, 10, 0, __prtshort, 0); break; case 'o': /* octal unsigned */ case 'O': if (prepend) /* [vlh] 26 jul 83 */ sqchar **_p; extern char *__prtshort(), *__prtld(); char *etoa(); char *ftoa(); char *petoa(); char *pftoa(); printf(arg1,arg2,arg3) char *arg1, *arg2, *arg3; { FILE *fp; __stream = stdout; _p = &arg1; __doprintf(0); } fprintf(fp, pl{y __putch(mode, '0'); if( longf ) fn = __prtld; else fn = __prtshort; __prtint(pi++, buf, 8, 0, fn, 0); if( longf ) pi++; break; case 'x': /* hexadecimal unsigned */ case 'X': if (prepend) { /* [vlh] 26 jul 83 trist) FILE *fp; char *plist; { __stream = fp; _p = &plist; __doprintf(0); } sprintf(s, plist) char *s, *plist; { __str = s; _p = &plist; __doprint(1); *__str = NULL; } __doprint(mode) int mode; { register char *fmt, c; |z*/ __putch(mode, '0'); __putch(mode, 'x'); } if( longf ) fn = __prtld; else fn = __prtshort; __prtint(pi++, buf, 16, 0, fn, c == 'X'); if( longf ) pi++; break; case 's': /* string */ case 'S': _p = pi; us register int *pi; char buf[PBUFSIZ]; int width, prec, left, longf, n, len, prepend; char padchar; char *s; auto (*fn)(); fmt = *_p++; pi = _p; while( c = *fmt++ ) { _p = pi; if( c != '%' ) { __putch(mode, c)}{ s = *_p++; pi = _p; break; case 'c': /* character */ case 'C': n = *pi++; buf[0] = n; buf[1] = '\0'; break; case 'e': /* exponential */ case 'E': petoa(pi, buf, prec); pi += 2; prec = -1; vt; continue; } prepend = left = 0; if( (c = *fmt++) == '-' ) { c = *fmt++; left++; } if (c == '#') { /* [vlh] 26 jul 83 */ c = *fmt++; prepend++; } padchar = ' '; if( c == '0' ) { padchar = c; c = *fmt++; } w~| break; case 'f': /* floating */ case 'F': pftoa(pi, buf, prec); pi += 2; prec = -1; break; case 'g': /* e or f */ case 'G': pftoa(pi, buf, prec); if (strlen(buf) > (7 + prec) ) /* smallest fp string */ wuidth = -1; while( c >= '0' && c <= '9' ) { if( width < 0 ) width = 0; width = width * 10 + (c - '0'); c = *fmt++; } if (c == '*') { /* [vlh] 26 jul 83 */ c = *fmt++; width = *pi++; } prec = -1; if( c == '.' ) { pre} petoa(pi, buf, prec); pi += 2; prec = -1; break; default: /* just print the character */ __putch(mode, c); continue; } len = strlen(s); if( prec < len && prec >= 0 ) len = prec; n = width - len; if( !left ) { xvc = 0; c = *fmt++; } while( c >= '0' && c <= '9' ) { prec = prec * 10 + (c - '0'); c = *fmt++; } if (c == '*') { /* [vlh] 26 jul 83 */ c = *fmt++; prec = *pi++; } longf = 0; if( c == 'l' ) { longf++; c = *fmt++~ if( padchar != ' ' && *s == '-' ) { len--; __putch(mode, *s++); } while( n-- > 0 ) __putch(mode, padchar); } while( len-- ) __putch(mode, *s++); while( n-- > 0 ) __putch(mode, padchar); } } __putch(mode, c) int mod=     e; char c; { if( mode ) *__str++ = c; else putc(c,__stream); return (c); } char * pftoa(addr,buf,prec) float *addr; char *buf; int prec; { float fp; if (prec<0) prec = 6; fp = *addr; return( ftoa(fp, buf, prec) ); } c int nmatch; register char ch; char *format; register char match_ch; nmatch = __hold = 0; format = *_p++; while( 1 ) { switch (ch = *format++) { case ANULL: return(nmatch); case '%': if( *format != '%' ) {har * petoa(addr,buf,prec) float *addr; char *buf; int prec; { float fp; if (prec<0) prec = 6; fp = *addr; return( etoa(fp, buf, prec) ); } IDNT 1,1 OPT ALT,FRL,TC,NOWARN * * COPYRIGHT 1984 * ALCYON CORPORATION * 8716 PRODUCT switch (__scan(&format, *_p)) { case VALID: /* good return*/ _p++; nmatch++; case NORETURN: /* no return*/ break; case NOMATCH: /* no match */ return(nmatch); case AT_EOF: /* end of file */ reION AVE. * SAN DIEGO, CA. 92121 * * @(#)FPPWR.S 2.1 7/9/84 * * FLOATING POINT POWER : * FRONT END TO FFP FLOATING POINT PACKAGE. * * DOUBLE * POW(X,Y) * DOUBLE X, Y; * * RETURNS : X ^ Y * XREF IEFPWR XREF FFPPWR XDEF POW XDEF .POW SECTturn(nmatch ? nmatch : NOMATCH); default: /* syntax error */ return(NOMATCH); } break; } format++; default: match_ch = __next(CHAR); if( ch != match_ch ) { __unget(match_ch); return(nmatch ? nmatch : ION 0 POW EQU * .POW EQU * LINK A6,#-4 MOVEM.L D3-D7,-(SP) MOVE.L 8(A6),D7 MOVE.L 12(A6),D6 JSR FFPPWR MOVE.L D7,D0 MOVEM.L (SP)+,D3-D7 UNLK A6 RTS END /* Copyright 1982, 1983 Alcyon Corporation 8716 Production Ave. SAT_EOF); } break; } } } /* * main scan routine -- look at characters in the conversion string * and do their bidding */ __scan(spec, result) char **spec; char *result; { register int longf, length; register char ch; an Diego, Ca. 92121 @(#)fscanf.c 2.1 7/9/84 */ /* ** formatted read routine ** ** functionally equivalent to scanf in portable C library */ #include #include /* Delimiters */ #define NEWLINE '\n' #define TAB '\t' #define extern int __strend(), __splend(); longf = length = 0; while( 1 ) { switch (ch = *(*spec)++) { case '*': result = 0; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': ca SPACE ' ' #define ANULL '\0' /* returns from __next() */ #define CHAR 0 #define NOT_WHT -1 #define NOT_WHT_NL 1 /* returns from __scan() */ #define NORETURN 0 #define VALID 1 #define NOMATCH -1 #define AT_EOF -2 #define ERRse '8': case '9': length = length * 10 + ch - '0'; break; case 'l': if( longf ) return(ERROR); longf = 1; break; case 'h': /* short */ if( longf ) return(ERROR); longf = NOMATCH; break; OR -3 static FILE *__stream; static char **_p, *__sstr, __holdch; static int __smode, __hold; scanf(parlist) char *parlist; { __smode = 1; __stream = stdin; _p = &parlist; return(__doscanf()); } fscanf(stream,parlist) FILE *strea case 'o': case 'O': return(__dec(result, length ? length : 100, 8, longf)); case 'd': case 'D': return(__dec(result, length ? length : 100, 10, longf)); case 'x': case 'X': return(__dec(result, length ? length : 100m; char *parlist; { __smode = 1; __stream = stream; _p = &parlist; return(__doscanf()); } sscanf(s,parlist) char *s, *parlist; { __smode = 2; __sstr = s; _p = &parlist; return(__doscanf()); } __doscanf() { register, 16, longf)); case 'c': case 'C': if( longf ) return(ERROR); return(__char(result, length ? length : 1)); case 's': case 'S': if( longf ) return(ERROR); return(__strx(result, length ? length : 100, __strend));=      case 'e': case 'E': case 'f': case 'F': case 'g': case 'G': return(__float(result, length ? length : 100)); case '[': if( longf ) return(ERROR); if( __inits(spec) ) return(ERROR); return(__strx(result, l break; ch = __getch(); } return(ch); } /* * check an input character for a valid constant digit (octal, decimal, * or hex) if found, return the proper numeric value. Negative results * indicate error. */ __digit(ch, base) register ength ? length : 100, __splend)); default: return(ERROR); } } } /* * get a constant -- octal, decimal, or hex depending on base */ __dec(result, length, base, longf) register int *result; int length; int base; int longf; { char ch; register int base; { register int n; if( ch < '0' ) return(NOMATCH); if( ch <= '7' ) return(ch - '0'); if( base == 8 ) return(NOMATCH); if( ch <= '9' ) return(ch - '0'); if( base == 10 || ch < 'A' ) return(NOMAregister char ch; register int val; register int ndigit; register long *lresult; register long lres; register int ires; register int minus, ok; ires = 0; lres = 0; ndigit = minus = 0; switch (cTCH); if( ch <= 'F' ) return(ch - 'A' + 10); if( ch < 'a' || ch > 'f' ) return(NOMATCH); return(ch - 'a' + 10); } /* * check for an end of string delimiter */ __strend(cha) char cha; { register char ch; if( (ch = cha) == EOFh = __next(NOT_WHT_NL)) { case ANULL: case EOF: return(AT_EOF); case '-': minus = 1; case '+': ndigit++; ch = __next(NOT_WHT); } ok = 0; while( (val = __digit(ch, base)) >= 0 && ndigit < length ) { ok++; ndig ) return(EOF); if( ch == SPACE || ch == TAB || ch == NEWLINE || ch == ANULL ) return(VALID); return(NORETURN); } static char __splset[128]; /* * check for the occurrance of any character in the set which * the user wants to be end-of-strit++; if( longf ) lres = lres * base + val; else ires = ires * base + val; ch = __next(CHAR); } __unget(ch); if( !ok ) return(NOMATCH); if( result == 0L ) return(NORETURN); if( minus ) if( longf ) lres = -lres; ing delimiters */ __splend(ch) char ch; { if( ch == EOF ) return(EOF); return(__splset[ch]); } /* * initialize the array which inidcates the special chars which the user * wants to be included (or not included) in strings. */ __inits(spec else ires = -ires; if( longf ) { lresult = result; *lresult = lres; } else *result = ires; return(VALID); } /* * get a floating point constant */ __float(result, length) register double *result; int length; { char buffer) register char **spec; { register char ch; register int i; register int val; ch = *(*spec)++; if( ch == '^' ) { val = 0; ch = *(*spec)++; } else val = 1; for (i = 1; i < 128; i++) __splset[i] = val; val[100]; double val; int ret, ch; ret = __strx(buffer, 100, __strend); val = atof(buffer); *result = val; return(ret); } __next(mode) int mode; { /* * mode -1: get next non-space or non-tab * mode 0: get next character *  = 1 - val; while( ch != ']' ) { if( ch == 0 ) return(NOMATCH); __splset[ch & 0177] = val; ch = *(*spec)++; } __splset[0] = 1; return(NORETURN); } /* * getting a string */ __strx(result, length, endfn) register char *result; mode 1: get next non-space, non-tab, or non-newline */ register int ch; if( (ch = __getch()) == EOF ) return(EOF); if( mode == 0 ) return(ch); while( ch == SPACE || ch == TAB || ch == NEWLINE ) { if( ch == NEWLINE && mode < 0 )register int length; register int (*endfn)(); { register char ch; extern int __splend(); register int imode, notok; notok = 1; imode = (endfn != __splend); if (imode) { ch = __next(NOT_WHT_NL); __unget(ch); /* bypass ta>     b or space... */ } while( !(*endfn)( (ch = __next(imode)) ) && length-- > 0 ) { if( result ) *result++ = ch; imode = notok = 0; } __unget(ch); if( notok ) return(ch == EOF ? AT_EOF : NOMATCH); if( result == 0L ) return(DOUBLE * SQRT(FARG) * DOUBLE FARG; * * INPUT : IN RADIANS * RETURNS : SQUARE ROOT OF FLOATING POINT NUMBER * XREF FFPSQRT XREF IEFSQRT XDEF SQRT XDEF .SQRT SECTION 0 SQRT EQU * .SQRT EQU * LINK A6,#-4 MOVEM.L D3-D7,-(SP) MOVE.L 8(A6),D7 NORETURN); *result = 0; return(VALID); } /* * getting a character constant */ __char(result, length) register char *result; register int length; { register char *r, ch; register int l; r = result; l = length; whileJSR FFPSQRT MOVE.L D7,D0 MOVEM.L (SP)+,D3-D7 UNLK A6 RTS END IDNT 1,1 OPT ALT,FRL,TC,NOWARN * * COPYRIGHT 1984 * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA. 92121 * * @(#)FPSUB.S 2.1 7/9/84 * * FLOATING POINT( l-- ) { if( (ch = __next(CHAR)) <= 0 ) { if( l + 1 == length ) return(ch == EOF ? AT_EOF : NOMATCH); else return(result != 0); } if( result ) *result++ = ch; } return(result != 0); } __getch() { switch(__smode) { c SUBTRACTION : * FRONT END TO FFP FLOATING POINT PACKAGE. * * DOUBLE * FPSUB(SUBTRAHEND,MINUEND) * DOUBLE SUBTRAHEND, MINUEND; * * RETURNS : FLOATING POINT SUBTRACTION RESULT * XREF FFPSUB XREF IEFSUB XDEF FPSUB XDEF .FPSUB RL REG D3-D7 SECTION ase 1: return(getc(__stream)); case 2: return(__gs()); } } __unget(ch) char ch; { switch(__smode) { case 1: ungetc(ch,__stream); break; case 2: __ungs(ch); break; } } /* * return the next char pointed to 0 FPSUB EQU * .FPSUB EQU * LINK A6,#-4 MOVEM.L RL,-(SP) MOVE.L 8(A6),D7 MOVE.L 12(A6),D6 IFUDF E : JSR FFPSUB IFDEF E : JSR IEFSUB MOVE.L D7,D0 MOVEM.L (SP)+,RL UNLK A6 RTS END IDNT 1,1 OPT ALT,FRL,TC,NOWARN * * COPYRIGHT 1by *s */ __gs() { register char c; c = *__sstr; if( c ) __sstr++; else return(EOF); return(c); } /* * put back a char for further scanning */ __ungs(c) char c; { if( c ) __sstr--; } IDNT 1,1 OPT ALT,FRL,TC,NOWARN *984 * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA. 92121 * * @(#)FPTAN.S 2.1 7/9/84 * * FLOATING POINT TANGENT : * FRONT END TO FLOATING POINT PACKAGE. * * DOUBLE * TAN(FARG) * DOUBLE FARG; * * INPUT : IN RADIANS * RETUR * COPYRIGHT 1984 * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA. 92121 * * @(#)FPSIN.S 2.1 7/9/84 * * FLOATING POINT SINE : * FRONT END TO FFP FLOATING POINT PACKAGE. * * DOUBLE * SIN(FARG) * DOUBLE FARG; * * INPUT : IN NS : TANGENT OF FLOATING POINT NUMBER * XREF FFPTAN XREF IEFTAN XDEF TAN XDEF .TAN SECTION 0 TAN EQU * .TAN EQU * LINK A6,#-4 MOVEM.L D3-D7,-(SP) MOVE.L 8(A6),D7 JSR FFPTAN MOVE.L D7,D0 MOVEM.L (SP)+,D3-D7 UNLK A6 RTS END /* CRADIANS * RETURNS : SINE OF FLOATING POINT NUMBER * XREF IEFSIN XREF FFPSIN XDEF SIN XDEF .SIN SECTION 0 SIN EQU * .SIN EQU * LINK A6,#-4 MOVEM.L D3-D7,-(SP) MOVE.L 8(A6),D7 JSR FFPSIN MOVE.L D7,D0 MOVEM.L (SP)+,D3-D7 UNLK A6 RTS opyright 1984 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 */ /*char *version "@(#)frexp.c 1.1 2/2/84"; #include /* * Floating Point frexp : * * double * frexp(fp,ptr) * double fp; * int *ptr; * * Ret END IDNT 1,1 OPT ALT,FRL,TC,NOWARN * * COPYRIGHT 1984 * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA. 92121 * * @(#)FPSQRT.S 2.1 7/9/84 * * FLOATING POINT SQUARE ROOT : * FRONT END TO FFP FLOATING POINT PACKAGE. * * urns : value in range 0.5 .. 1.0 which multiplied by 2^exp yields fp. */ double frexp(fp,ptr) double fp; int *ptr; { short neg, exp; if (fp < 0.0) { neg = 1; fp = -fp; } else neg = 0; exp = 0; if (fp < 0.5) while (fp < 0>     .5) { fp *= 2.0; exp--; } else if (fp > 1.0) while (fp > 1.0) { fp /= 2.0; exp++; } *ptr = exp; return(neg ? -fp : fp); } /* Copyright 1982, 1983 Alcyon Corporation 8716 Production Ave. San Diego.f -= digit; *bp++ = digit + '0'; } } *bp = 0; return(buf); } /* Copyright 1982 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 */ /* char *version "@(#)ftol.c 1.4 3/06/84"; */ /* * Floating Poi, Ca. 92121 @(#)ftoa.c 2.3 3/06/85 */ /* * Floating Point to Ascii String Conversion Routine : * Standard Single Precision Representation Floating Point * * char * * ftoa(f,buf,prec) * float f; * char *buf; * int prec; * * No mnt Float to Long Routine : * Front End to Floating Point Package. * * long * fpftol(fparg) * double fparg; * * Return : Fixed Point representation of Floating Point Number */ long fpftol(f) long f; { register long l; register int eore than 9 significant digits are allowed in single precision. * 1.2 * 10^-38 >= num >= 3.4 * 10^33 (IEEE) * 1.2 * 10^-20 >= num >= 3.4 * 10^18 (FFP) * Relies on the fact that a long and a float are both 32 bits. * 29 dec 83 - allow 0 decimal pxp, sign; exp = (f & 0x7f) - 0x40; if (f == 0L || exp < 0) /* underflow or 0 */ return(0L); sign = (f & 0x80); if (exp > 31) /* overflow */ return( (sign) ? 0x80000000 : 0x7fffffff); exp -= 24; l = (f>>8) & 0xffffff; laces !!! */ static float table[] = { /* [vlh] floating point rounding 16 march 1984 */ 0.5, 0.05, 0.005, 0.0005, 0.00005, 0.000005, 0.0000005, 0.00000005, 0.000000005, 0.0000000005 }; char * ftoa(x,buf,prec) register  for( ; exp < 0 ; exp++) l >>= 1; for( ; exp > 0; exp--) l <<= 1; if (sign) l = -l; return(l); } /* Copyright 1984 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 */ /*char *version "@(#)ldexp.c 1.3 2/3/84union { float f; long fl; } x; char *buf; register int prec; { register char *bp; register int exp, digit; prec = (prec <= 0) ? 0 : (prec <= 9) ? prec : 9; bp = buf; if (x.f == 0.0) { *bp++ = '0'; if(prec) { *bp++ = '.';";*/ #include /* * Floating Point ldexp : * * double * ldexp(fp,exp) * double fp; * int exp; * * Returns : the quantity fp * 2(raised to the)exp. */ double ldexp(fp,exp) double fp; int exp; { if(exp > 31) exp = 31; ret while (prec--) *bp++ = '0'; } *bp = 0; return(buf); } if (x.f < 0.0) { /* negative float */ *bp++ = '-'; x.f = -x.f; /* make it positive */ } for (exp=0; x.f < 1.0; x.f *= 10.0) /* get negative exp */ exp--; urn((exp >= 0) ? (fp * (1 << exp)) : (fp * pow(2.0,(double)exp))); } /* Copyright 1984 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 @(#)log10.c 1.1 3/19/84 */ /* log10 - returns the base 10 logarithm of the argumx.f += table[prec]; /* rounding */ for ( ; x.f >= 1.0; x.f /= 10.0) /* 0.XXXXXXE00 * 10^exp */ exp++; if (exp<=0) /* one significant digit */ *bp++ = '0'; for ( ; exp>0; exp--) { /* get significant digits */ x.f *= 10.0; digit = x.ent */ double log(); double log10(f) double f; { return(log(f) / 2.302585); } /* Copyright 1982 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 */ /*char *version "@(#)ltof.c 1.3 4/11/84"; */ /* * Floating Pf; /* get one digit */ x.f -= digit; *bp++ = digit + '0'; } if(prec) { *bp++ = '.'; for( ; exp<0 && prec; prec--, exp++) /* exp < 0 ? */ *bp++ = '0'; while(prec-- > 0) { x.f *= 10.0; digit = x.f; /* get one digit */ xoint Long to Float Routine : * Front End to Floating Point Package. * * double * fpltof(larg) * long larg; * * Return : Floating Point representation of Long Fixed point integer */ # define EXP 24L # define SIGNBIT 0x80 long fpltof(l) long?      l; { register long exp; register int sign; if (l < 0L) { /* signed ?? */ sign = 1; l = -l; } else sign = 0; if (l == 0L) return(0L); exp = EXP; for( ; l & 0x7f000000; exp++) /* something in upper 7 bits */ l >> UNLK A6 RTS END /* Copyright 1984 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 @(#)ultof.c 1.3 8/21/84 */ /* * Floating Point Long to Float Routine : * Front End to Floating Point Package. * * double *= 1; for( ; !(l & 0x00800000); exp--) /* get mantissa : 1.F(IEEE) or .F(FFP) */ l <<= 1; l <<= 8; /* mantissa (.F) into top 24 bits */ exp += 0x40; l |= (exp & 0x7f); if (sign) l |= SIGNBIT; return(l); } /* Copyright 198 fpultof(larg) * unsigned long larg; * * Return : Floating Point representation of Unsigned Long Integer */ #define EXP 24L long fpultof(l) unsigned long l; { register long exp; if (l == 0L) return(0L); exp = EXP; for( ; l & 0x8f4 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 */ /*char *version "@(#)modf.c 2.1 7/9/84";*/ #include /* * Floating Point Modulo : * IEEE Floating Point Package * * double * modf(fp,ptr) * double fp, *pt000000; exp++) /* something in upper 7/8 bits */ l >>= 1; for( ; !(l & 0x00800000); exp--) /* mantissa : 1.F(IEEE) .F(FFP) */ l <<= 1; l <<= 8; /* mantissa (.F) into top 24 bits */ exp += 0x40; l |= (exp & 0x7f); return(l); } P)+r; * * Returns : Stores the fixed point portion in ptr, and returns the mantissa. */ double modf(fp,ptr) double fp, *ptr; { *ptr = (long)fp; /* convert to fixed point value */ return(fp - *ptr); } IDNT 1,1 OPT ALT,FRL,TC,NOWARN * * CO* FPERR:S FLOATING POINT ERROR REPORT (IEEE:LIB) * called by various routines in IEEE:LIB on detection of an error. * To trap these errors from a user program, substitute your own version * of FPERR and link it in. * COPYRIGHT 1986, EYRING RESEARCH INSPYRIGHT 1984 * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA. 92121 * * @(#)SINH.S 2.1 7/9/84 * * FLOATING POINT HYPERBOLIC SINE: * FRONT END TO FLOATING POINT PACKAGE. * * DOUBLE * SINH(FARG) * DOUBLE FARG; * * RETURNS : NETITUTE * IDNT 5,0 OPT TA * XDEF .FOVR_,.LOVR_,.IDIV0_,.FDIV0_,.LDIV0_,.FARG_,.LARG_ * ERROR NUMBERS ARE ASSIGNED AS FOLLOWS: * 401 ARGUMENT ERROR (DOUBLE) (ASIN,LOG,SQRT) * 402 ARGUMENT ERROR (FLOAT) (SPASIN,SPLOG,SPSQRT) * 403 DIVIDE BY GATED FLOATING POINT NUMBER * XREF FFPSINH XREF IEFSINH XDEF FPSINH XDEF .SINH SECTION 0 FPSINH: EQU * .SINH: EQU * LINK A6,#-4 MOVE.L D7,-(SP) MOVE.L 8(A6),D7 JSR FFPSINH MOVE.L D7,D0 MOVE.L (SP)+,D7 UNLK A6 RTS END IDNT 1,1 ZERO (DOUBLE) (DPDIV) * 404 DIVIDE BY ZERO (FLOAT) (SPDIV) * 405 DIVIDE BY ZERO (INT) (NOT USED FROM IEEE:LIB) * 406 OVERFLOW (DOUBLE) (DPADD,DPDIV,DPMUL,EXP) * 407 OVERFLOW (FLOAT) (SPADD,SPDIV,SPEXP,SPMUL) * - overflow .FOVR_ BSR.S COMMON ;407 OPT ALT,FRL,TC,NOWARN * * COPYRIGHT 1984 * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA. 92121 * * @(#)TANH.S 2.1 7/9/84 * * FLOATING POINT HYPERBOLIC TANGENT: * FRONT END TO FLOATING POINT PACKAGE. * * DOUBLE * TANH(FARG) .LOVR_ BSR.S COMMON ;406 * - divide by zero .IDIV0_ BSR.S COMMON ;405 .FDIV0_ BSR.S COMMON ;404 .LDIV0_ BSR.S COMMON ;403 * - argument error .FARG_ BSR.S COMMON ;402 .LARG_ BSR.S COMMON ;401 ZERO NOP COMMON MOVE.L #ZERO+802,D0 SUB.L (A7)+,D0 * DOUBLE FARG; * * RETURNS : NEGATED FLOATING POINT NUMBER * XREF FFPTANH XREF IEFTANH XDEF .TANH XDEF FPTANH SECTION 0 FPTANH EQU * .TANH EQU * LINK A6,#-4 MOVE.L D7,-(SP) MOVE.L 8(A6),D7 JSR FFPTANH MOVE.L D7,D0 MOVE.L (SP)+,D7  LSR.W #1,D0 ;DIVIDE BY 2 XLER ;SET LAST ERROR NUMBER IN TCB XPMC MSG XERR ;EXIT TO MONITOR WITH ERROR NUMBER MSG DC.B 13,10,'C floating point error',0 EVEN END ?    main() { printf("\nHello, world!"); } Modified by Brian Cooper to fix error detected at Eyring */ #include static HEADER _base; /* empty list to get started */ char * alloc(nbytes) /* general-purpose storage allocator */ unsigned int nbytes; { HEADER *_morecore(); reg#define TRUE 1 #define FALSE 0 #define SIZE 8190 char flags[SIZE]; main() { register int i, prime, count, iter; register char *p, *s, *q; printf("\r\n100 iterations"); q = &flags[SIZE]; for(iter=100; --iter != -1;) { count = 0; for (p=flagsister HEADER *p,*q; register unsigned int nunits; if ((nunits = 1+((nbytes+sizeof(*p))-1)/sizeof(*p)) == 1) return (NULL); if ((q = _allocp) == NULL) { /* no free list yet */ _base.ptr = _allocp = q = &_base; _base.size = 0; } ; p < q;) *p++ = TRUE; for (p=flags, i=0; i < SIZE; i++, p++) if (*p) { prime = i+i+3; for(s=p; (s+=prime) < q;) *s = FALSE; ++count; } } printf("\r\n %d primes",count); }  = q; MKBUSY(p); /* mark this segment as busy */ return((char *) (p+1)); } if (p == _allocp) /* wrapped around free list */ if ((p = _morecore(nunits)) == NULL) return(NULL); /* none left */ q = p; } } /* ATOI:C Copyrig* STDLIB:SRC -- SOURCES TO THE MODULES IN STDLIB:LIB * 27-OCT-86 -- EYRING COPYRIGHT 1985-1987 * 12-JAN-87 -- REMOVE SYRAM:H AND TCB:H BECAUSE THEY ARE ON DISK * PORTIONS COPYRIGHT BY ALCYON 1983-1986 ALLOC:C ATOI:C ATOL:C CALLOC:C CLOSE:S COPY:C CREAT:S CTYPE:C EXIT:C FCLOSE:C FFLUSH:C FGETC:C FGETS:C FGETSS:C FILLBUF:C FOPEN:C FPUTC:C FPUTS:C FPUTSS:C FREAD:C FREE:C FSCANF:C FSEEK:C FTELL:C FWRITE:C GETC:S GETCHAR:C GETS:C GLOB:C INDEX:C ITOA:C LDIV:S LDIVR:S LDIVU:S LMUL:S LMULU:S LREM:S LREMU:S +' || *s == '-' ) sign = (*s++=='+') ? 1 : -1; for( n = 0; *s >= '0' && *s <= '9'; s++ ) n = (n * 10) + (*s - '0'); return( sign * n ); } /* ATOL:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 LSEEK:C LTOA:C MALLOC:C MCORE:C MEMORY:C MFREE:C OPEN:S PRTINT:C PUTC:S PUTCHAR:C PUTS:C RAND:C READ:C REALLOC:C RENAME:C RINDEX:C SBRK:C SETJMP:H SETJMP:S STRCAT:C STRCHR:C STRCMP:C STRCMP:SR STRCPY:C STREND:C STRLEN:C STRNCAT:C STRNCMP:C STRNCPY:C ST @(#)atol.c 2.1 7/9/84 */ long atol(s) register char *s; { register long n, sign; while( *s==' ' || *s=='\n' || *s == '\t') s++; sign = 1; if( *s == '+' || *s == '-' ) sign = (*s++=='+') ? 1 : -1; for( n = 0; *s >= '0' &&RPBRK:C STRRCHR:C STRSPN:C STRTOK:C SYSTEM:C TSTFIL:S TTYOPEN:C UNGETC:C WRITE:C XEQ:C XPRINTF:C alloc.h ctype.h /* ALLOC:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)alloc.c 5.0 13-Oct-86  *s <= '9'; s++ ) n = (n * 10) + (*s - '0'); return( sign * n ); } /* CALLOC:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 @(#)calloc.c 2.1 7/9/84 */ #include char * calloc(n@     , s) unsigned int n, s; { register unsigned int nbytes; register long l; register int c, cnt; register int *p,*q; l = n*s; if( (l&(~(0xffffL))) ) return(NULL); // too big nbytes = l; if( (q = malloc(nbytes)) == NULL int levatr[2]; xrfa(source,&dum1,&dum2,&dum3,levatr); xclf(fd1); xcfa(fd2,levatr[1] >> 8); } return(0); } * CREAT:S -- CREATE A FILE -- MODE IS IGNORED. * EYRING RESEARCH INSTITUTE Copyright 1984-1986 IDNT 5,0 * if ((fd = creat() // use malloc() for UNIX compatibility return(NULL); if( nbytes&1 ) nbytes++; cnt = nbytes/sizeof (int); c = 0; for( p = q ; --cnt != -1; ) *q++ = c; // this generates a move instead of a clr instruction return(p); } * CLOS"myfile:sr") == -1) * printf("error creating file \N"); SECTION 0 XDEF .CREAT .CREAT MOVEA.L 4(A7),A1 ;SET A1 TO POINT TO NAME XSOP ;OPEN THE FILE BEQ.S @0010 ;OPENED OKAY MOVEQ.L #0,D0 ;DIDN'T OPEN -- DEFINE IT XDFL ;AND THEN OPEE:S -- CLOSE A FILE SLOT * EYRING RESEARCH INSTITUTE Copyright 1984-1986 IDNT 5,0 * THIS ROUTINE CLOSES A FILE * RETURNS 0 IF NO ERROR, -1 OTHERWISE. * CLOSE(FILID) * INT FILID; XDEF .CLOSE .CLOSE MOVE.W 4(A7),D1 ;GET THE FILN IT. BEQ.S @0080 ;DEFINED OKAY. @0005 XLER ;SAVE ERROR CODE MOVEQ.L #-1,D1 ;RETURN -1 BRA.S @0090 ;EXIT @0010 BTST #1,D0 ;DRIVER FILE ? BEQ.S @0090 ;YES -- DON'T TRY TO RESET EOF MOVEA.L A7,A2 ;SET END OF FILE MARK TO BEGINNING E ID CLR.L D0 ;DEFAULT TO NO ERROR XCLF ;CLOSE THE FILE BEQ.S EXIT ;NO -- JUST EXIT XLER ;UPDATE LAST ERROR MOVEQ #-1,D0 ;YES -- RETURN -1 EXIT RTS END /* COPY:C copy:c copy from source file to destination Copyright 1984, EMOVEQ.L #1,D0 ;SET LENGTH OF WRITE TO 1 BYTE XWBF ;WRITE (SO EOF PTR WILL FOLLOW US) BNE.S @0005 XRWF ;REWIND FILE (POSITION TO ZERO) BNE.S @0005 XCLF ;CLOSE FILE (WRITE OUT EOF) BNE.S @0005 @0080 XSOP ;OPEN IT FOR THE FILE ID yring Research Institute, Inc. All rights reserved. */ #define RECSIZ 252L copy(source,dest) char *source,*dest; { int fd1,fd2; char *sbrk(),*buffer; long limit; register long size; register int more; register long i; int dummy; /* should b BNE.S @0005 ;ERR IF NOT EQUAL @0090 MOVE D1,D0 ;RETURN FILID OR ERROR RTS END /* CTYPE:C Copyright 1982 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 @(#)ctype.c 2.1 7/9/84 */ #include chare the last local variable */ if ((fd1 = open(source,0)) <= 0) return(1); if ((fd2 = creat(dest,0)) <= 0) return(2); buffer = sbrk(0); /* allocate memory */ limit = (long) &dummy - (long) buffer - RECSIZ; more = 1; /* when flag is set, exit * _ctype[] = { _CNTRL, _CNTRL, _CNTRL, _CNTRL, _CNTRL, _CNTRL, _CNTRL, _CNTRL, _CNTRL, _WHTSP|_CNTRL, _WHTSP|_CNTRL, _WHTSP|_CNTRL, _WHTSP|_CNTRL, _WHTSP|_CNTRL, _CNTRL, _CNTRL, _CNTRL, _CNTRL, _CNTRL, _CNTRL, _CNTRL, _CNTRL, _CNTRL, _CNTRL, _CNT/ while(more){ /* read until buffer full or end of file */ size = 0; while (size < limit && more){ long count; i = xrbf(RECSIZ,fd1,&buffer[size],&count); if (!i) count = RECSIZ; more = !i; size += count; } /* wRL, _CNTRL, _CNTRL, _CNTRL, _CNTRL, _CNTRL, _CNTRL, _CNTRL, _WHTSP|_BSPACE|_SPACE, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _DIGIT|_HEXDEC, _DIGIT|_HEXDEC, _DIGIT|_HEXDrite buffer */ { for(i=0;i size ? size-i : RECSIZ,fd2,&buffer[i])){ close(fd1); /* error on write */ close(fd2); return(3); } } } } { char *dum1; long dum2,dum3; EC, _DIGIT|_HEXDEC, _DIGIT|_HEXDEC, _DIGIT|_HEXDEC, _DIGIT|_HEXDEC, _DIGIT|_HEXDEC, _DIGIT|_HEXDEC, _DIGIT|_HEXDEC, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _UPPER|_HEXDEC, _UPPER|_HEXDEC, _UPPER|_HEXDEC, _UPPER|_HEXDEC, _UPPER|_HE@    XDEC, _UPPER|_HEXDEC, _UPPER, _UPPER, _UPPER, _UPPER, _UPPER, _UPPER, _UPPER, _UPPER, _UPPER, _UPPER, _UPPER, _UPPER, _UPPER, _UPPER, _UPPER, _UPPER, _UPPER, _UPPER, _UPPER, _UPPER, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _PUNCT, _LOWER|_HEXDEC; fp = &_strm0; while (fp->nfile != NULL){ fp = fp->nfile; if (fp->fslot > 0){ fflush(fp); close(fp->fslot); } } _exit(errno); } /* FCLOSE:C -- CLOSE A STREAM OPENED BY FOPEN EYRING RESEARCH INSTITUTE Copyright 19, _LOWER|_HEXDEC, _LOWER|_HEXDEC, _LOWER|_HEXDEC, _LOWER|_HEXDEC, _LOWER|_HEXDEC, _LOWER, _LOWER, _LOWER, _LOWER, _LOWER, _LOWER, _LOWER, _LOWER, _LOWER, _LOWER, _LOWER, _LOWER, _LOWER, _LOWER, _LOWER, _LOWER, _LOWER, _LOWER, _LOWER, _LOWER, _P84-1986 */ #include extern FILE _strm0,*_strm1; fclose(fp) register FILE *fp; { register FILE *tp; if( fp == NULL || fp->fslot == 0 ) return(EOF); if (fp > 0){ fflush(fp); if (close(fp->fslot)) return(EOF); } UNCT, _PUNCT, _PUNCT, _PUNCT, _CNTRL, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NAS{ /* make this the first unlinked file if none */ _strm1 = fp; } else{ tp = _strm1; while (tp->nfile != NULL) /* link into chain of closed files */ tp = tp->nfile; tp->nfile = fp; } return(NULL); } /* FFLUSH:C 11-AUG-86 */ /* CII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCI13-OCT-86 -- Modified code so that _cnt & _ptr always return correctly */ #include int fflush(fbuf) register FILE *fbuf; { register int err; register long int size = (fbuf->_ptr - fbuf->_buff); if (size!=0L && (fbuf->_iostat & _OUTFLAG))I, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII,{ if (err = xwbf(size,fbuf->fslot,fbuf->_buff)) exit(err); /* technically, should be return(EOF) */ } fbuf->_cnt = _BSIZE; fbuf->_ptr = fbuf->_buff; return(0); } /* FGETC:C 19-AUG-86 */ #include fgetc(p) register FILE *p; { re _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII, turn(--(p)->_cnt >= 0 ? *(p)->_ptr++ : _fillbuf(p)); } /* FGETS:C Copyright 1982 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 @(#)fgets.c 2.1 7/9/84 */ #include // fgets reads a line up to a newline_NASCII, _NASCII, _NASCII, _NASCII, _NASCII, _NASCII }; /* EXIT:C -- CLOSE OPEN FILES AND EXIT TO MONITOR EYRING RESEARCH INSTITUTE Copyright 1984-1986 */ #include extern FILE _strm0; exit(errno) int errno; { register FILE *fp or (n-1) chars from stream // if newline, it is retained char * fgets(s, n, stream) char *s; register int n; register FILE *stream; { register char *t; register char ch; register int num; t = s; for( num = n-1; --num != -1; )A      { if( (ch = getc(stream)) != EOF ) *t++ = ch; if( ch == '\n' || ch == EOF ) break; } if( ch == EOF && num == n-2 ) // return EOF only if 0 chars read return(NULL); *t = NULL; return(s); } /* FGETSS:C -- same as fgets, 0 <= ( p->_cnt = (err = xrbf((long)_BSIZE,p->fslot,(p->_ptr=p->_buff),&bytes)) /* if err, cnt = bytes-1 else cnt = BSIZE-1 */ ? bytes-1 : _BSIZE-1 /* if count >= 0, return char else return EOF */ ) ? *p->_ptr++ : EOF; if (er but does not return the trailing new line Copyright 1984, Eyring Research Institute, Inc. All rights reserved. */ #include char * fgetss(buffer, maxbytes, iop) register char *buffer; int maxbytes; register FILE *iop; { register ch r) p->_iostat = _EOFSEEN; } } return(c); } /* FOPEN:C OPEN A FILE, HOOK IT UP TO A STREAM. Eyring Research Institute Copyright 1984-1986 */ #include #define READ 0 #define WRITE 1 #define RD_WR 2 extern FILE _sar *temp; int bytesread; register int status; char *fgets(); if ((iop->fslot) && (maxbytes >= 132)){ /* use xrlf if it fits */ status = xrlf(iop->fslot,buffer,&bytesread); if (status) temp = NULL; else temp = buffer;   trm0,*_strm1; FILE * fopen(fname,mode) char *fname; register char *mode; { register int fd; register FILE *fp,*tp; register int openmode; char *sbrk(); if (_strm1 != NULL){ /* re-use old file buffers? */ fp = _strm1; _strm1 = fp } else{ /* on console or small buffer, use fgets */ temp = fgets(buffer, maxbytes, iop); if (temp != NULL) buffer[strlen(buffer) - 1] = '\0'; } return temp; } /* FILLBUF:C 3-Sep-86 */ #include #include extern FILE _  ->nfile; } else if ((fp = sbrk(sizeof (FILE))) == -1L) /* no space for it */ return(NULL); if( *mode != 'r' && *mode != 'w' && *mode != 'a' ) return(NULL); fd = -1; if( *mode == 'w' ) { fd = creat(fname,0); /* for 'w',strm0; int _fillbuf(p) register FILE *p; { register int c; if (p->fslot < 0){ /* get character from port */ register char *prt = &_tcbptr->_prt; register char oldprt = *prt; *prt = -p->fslot; /* change TCB.prt to the other port */ c = xg  always truncate*/ openmode = WRITE; } else if( *mode == 'a' ) openmode = RD_WR; else openmode = READ; if( mode[1] == '+' ) openmode = RD_WR; if( fd == -1 ) /* we started this way unless we have done a creat */ fd = open(fcp(); *prt = oldprt; /* restore value of TCB.prt */ p->_cnt = 0; } else if (p->fslot == 0){ /* xgcr on console i/o -- esc/ctlc == EOF */ asm("xgcr"); /* get character */ asm("slo d1"); /* lo = ctlc */ asm("slt d2"); /* lt = esc name, openmode); if( fd == -1 ) { if( *mode != 'a' ) return(NULL); /* couldn't access file...*/ if( (fd = creat(fname,0)) == -1 ) return(NULL); /* couldn't access file...*/ } fp->fslot = fd; /* set file slot to file id */ */ asm("or.b d1,d2"); /* combine them */ asm("ext.w d2"); /* convert to EOF */ asm("or.w d2,d0"); /* combine with input char */ asm("move.w d0,d7"); /* assign to C */ if (p == &_strm0){ /* echo data input on stdin as console */ if (c  fp->nfile = NULL; /* next file link is NULL */ fp->_iostat = 0; /* status initially zero */ tp = &_strm0; while (tp->nfile != NULL) /* link into chain of open files */ tp = tp->nfile; tp->nfile = fp; switch(*mode){ cas== '\n'){ asm("xpcl"); }else{ asm("move.w d7,d0\nxpcc"); } } p->_cnt = 0; } else{ /* file input */ if (p->_iostat & _EOFSEEN){ p->_cnt = 0; c = EOF; } else { long bytes; int err; c = e 'a' : {asm("move d7,d1\nmoveq #-1,d2\nxpsf");} /* at EOF*/ case 'w' : fp->_cnt = _BSIZE; /* file open for output */ fp->_ptr = fp->_buff; break; case 'r' : fp->_cnt = 0; /* open file for input */ fp->_ptr = &fp->_buff[_BSIZE]A    ; } return(fp); } /* FPUTC:C 27-OCT-86 */ /* 13-OCT-86: set OUTFLAG after flush, not before */ /* 27-OCT-86: mask input char to eight bits */ #include #include int fputc(c,fbuf) register int c; register FILE *fbuf; { he number of input items read MAX REGISTER USAGE: 3 address 5 data */ # include int fread(iarray,isize,icount,stream) register char *iarray; /* pointer to input array */ register int isize; /* size of an item */ register int icoun c &= 255; if (c == '\n'){ /* newline check */ if (xcbc() == -3){ /* ^C detected--break & exit */ register char *p = "\n\l>>BREAK"; asm("movea.l A4,A1\nxplc"); /* assume register var is A4 */ exit(-1); } if (fbuf->fslot == 0t; /* number of items to be read */ register FILE *stream; /* input stream */ { register int cnt; /* successful item counter */ register int s; /* temp size */ register int c; /* char returned from getc */ cnt = 0; /* set initial ite){ /* newline to console is crlf */ asm("xpcl"); return(c); } } if (fbuf->fslot == 0){ /* output to console */ asm("move.w d7,d0\nxpcc"); /* register var 'c' in D6 */ } else if (fbuf->fslot < 0){ /* output to port */ register char *u1p = &_tcbptr->_u1p; /* point to u1p */ register char oldu1p = *u1p; /* save old u1p */ *u1p = -fbuf->fslot; /* set output port in tcb */ asm("move.w d7,d0\nxpcr"); /* print char -- no interpretation */ *u1p = oldu1p; /* restore o(cnt); } cnt++; } return(cnt); } /* FREE:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)free.c 2.1 7/9/84 */ #include char * free(ap) /* put block ap in free list */ char *utput port */ } else { /* output to file */ if (fbuf->_cnt <= 0) fflush(fbuf); fbuf->_iostat = _OUTFLAG; *fbuf->_ptr++ = c; fbuf->_cnt--; } return(c); } /* FPUTS:C Copyright 1982 Alcyon Corporation 8716 Productap; { register HEADER *p, *q; if( (p = ap) == NULL ) return(NULL); p--; if( ! ISBUSY(p) ) return(NULL); /* already free */ MKFREE(p); /* mark this segment as free */ for( q = _allocp; ! (p > q && p < q->ptr); q = q->ptrion Ave. San Diego, Ca. 92121 @(#)fputs.c 2.1 7/9/84 */ #include fputs(s, stream) register char *s; register FILE *stream; { while( *s ) { putc(*s,stream); s++; } } /* FPUTSS:C Copyright 1985. All rights reserve ) if( q >= q->ptr && (p > q || p < q->ptr) ) break; /* at one end or other */ if( (p + p->size) == q->ptr ) { /* join to upper nbr */ p->size += q->ptr->size; p->ptr = q->ptr->ptr; } else p->ptr = q->ptr; if( (q + q->sid Eyring Reseearch Institute, Inc. */ #include /* write a string to the file and append a newline to end */ fputss(s, stream) char *s; register FILE *stream; { fputs(s,stream); putc('\n',stream); } /* FREAD:C - Read items into ze) == p ) { /* join to lower nbr */ q->size += p->size; q->ptr = p->ptr; } else q->ptr = p; _allocp = q; return(q); } /* FSCANF:C Copyright 1982 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 @(iarray from stream Copyright 1986, Eyring Research INPUT: iarray - a pointer to the item input array isize - the size of an input item (in bytes) icount - the number of input items to be read stream - the input stream RETURN VALUE: t #)fscanf.c 2.1 7/9/84 */ /* ** formatted read routine ** ** functionally equivalent to scanf in portable C library */ #include /* returns from __next() */ #define CHAR 0 #define NOT_WHT -1 #define NOT_WHT_NL 1 /* returns frB     !om __scan() */ #define NORETURN 0 #define VALID 1 #define NOMATCH -1 #define AT_EOF -2 #define ERROR -3 static FILE *__stream; static char **_p, *__sstr; static int __smode; scanf(parlist) char *parlist; { __smode = 1; __stream = stdin; )' case 'h': /* short */ if( longf ) return(ERROR); longf = NOMATCH; break; case 'o': case 'O': return(__dec(result, length ? length : 100, 8, longf)); case 'd': case 'D': return(__dec(result, length ? lengt" _p = &parlist; return(__doscanf()); } fscanf(stream,parlist) FILE *stream; char *parlist; { __smode = 1; __stream = stream; _p = &parlist; return(__doscanf()); } sscanf(s,parlist) char *s, *parlist; { __smode = 2; __ss*(h : 100, 10, longf)); case 'x': case 'X': return(__dec(result, length ? length : 100, 16, longf)); case 'c': case 'C': if( longf ) return(ERROR); return(__char(result, length ? length : 1)); case 's': case 'S#!tr = s; _p = &parlist; return(__doscanf()); } static __doscanf() { register int nmatch; register char ch; char *format; register char match_ch; nmatch = 0; format = *_p++; while( 1 ) { switch (ch = *format++)+)': if( longf ) return(ERROR); return(__strx(result, length ? length : 100, __strend)); case 'e': case 'E': case 'f': case 'F': return(ERROR); //not yet implemented case '[': if( longf ) return(ERROR); if( $" { case '\0': return(nmatch); case '%': if( *format != '%' ) { switch (__scan(&format, *_p)) { case VALID: /* good return*/ _p++; nmatch++; case NORETURN: /* no return*/ break; case NOMATCH: /*,*__inits(spec) ) return(ERROR); return(__strx(result, length ? length : 100, __splend)); default: return(ERROR); } } } /* * get a constant -- octal, decimal, or hex depending on base */ __dec(result, length, base, longf) %# no match */ return(nmatch); case AT_EOF: /* end of file */ return(nmatch ? nmatch : NOMATCH); default: /* syntax error */ return(NOMATCH); } break; } format++; default: match_ch = __next-+register int *result; int length; int base; int longf; { register char ch; register int val; register int ndigit; register long *lresult; register long lres; register int ires; register int minus, ok; &$(CHAR); if( ch != match_ch ) { __unget(match_ch); return(nmatch ? nmatch : AT_EOF); } break; } } } /* * main scan routine -- look at characters in the conversion string * and do their bidding */ static __scan(spec, result) ., ires = 0; lres = 0; ndigit = minus = 0; switch (ch = __next(NOT_WHT_NL)) { case '\0': case EOF: return(AT_EOF); case '-': minus = 1; case '+': ndigit++; ch = __next(NOT_WHT); } ok = 0; while( (va'%char **spec; char *result; { register int longf, length; register char ch; extern int __strend(), __splend(); longf = length = 0; while( 1 ) { switch (ch = *(*spec)++) { case '*': result = 0; break; /-l = __digit(ch, base)) >= 0 && ndigit < length ) { ndigit++; ok++; if( longf ) lres = lres * base + val; else ires = ires * base + val; ch = __next(CHAR); } __unget(ch); if( !ok ) return(NOMATCH); if( result == 0L ) ret(&case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': length = length * 10 + ch - '0'; break; case 'l': if( longf ) return(ERROR); longf = 1; break; 0.urn(NORETURN); if( minus ) if( longf ) lres = -lres; else ires = -ires; if( longf ) { lresult = result; *lresult = lres; } else *result = ires; return(VALID); } static __next(mode) int mode; { /* * mode -1: get nexB    1/t non-space or non-tab * mode 0: get next character * mode 1: get next non-space, non-tab, or non-newline */ register int ch; if( (ch = __getch()) == EOF ) return(EOF); if( mode == 0 ) return(ch); while( ch == ' ' || ch == 97RN); } /* * getting a string */ static __strx(result, length, endfn) register char *result; register int length; register int (*endfn)(); { register char ch; extern int __splend(); register int imode, notok; notok = 1;20'\t' || ch == '\n' ) { if( ch == '\n' && mode < 0 ) break; ch = __getch(); } return(ch); } /* * check an input character for a valid constant digit (octal, decimal, * or hex) if found, return the proper numeric value. Negative result:8 imode = (endfn != __splend); while( !(*endfn)( (ch = __next(imode)) ) && length-- > 0 ) { if( result ) *result++ = ch; imode = notok = 0; } __unget(ch); if( notok ) return(ch == EOF ? AT_EOF : NOMATCH); if( result == 0L31s * indicate error. */ static __digit(ch, base) register char ch; register int base; { register int n; if( ch < '0' ) return(NOMATCH); if( ch <= '7' ) return(ch - '0'); if( base == 8 ) return(NOMATCH); if( ch <= '9' ) 42 return(ch - '0'); if( base == 10 || ch < 'A' ) return(NOMATCH); if( ch <= 'F' ) return(ch - 'A' + 10); if( ch < 'a' || ch > 'f' ) return(NOMATCH); return(ch - 'a' + 10); } /* * check for an end of string delimiter */ static __str<: l = length; while( l-- ) { if( (ch = __next(CHAR)) <= 0 ) { if( l + 1 == length ) return(ch == EOF ? AT_EOF : NOMATCH); else return(result != 0); } if( result ) *result++ = ch; } return(result != 0); } static __getc53end(cha) char cha; { register char ch; if( (ch = cha) == EOF ) return(EOF); if( ch == ' ' || ch == '\t' || ch == '\n' || ch == '\0' ) return(VALID); return(NORETURN); } static char __splset[128]; /* * check for the occurrance=;h() { switch(__smode) { case 1: return(getc(__stream)); case 2: return(__gs()); } } static __unget(ch) register int ch; { switch(__smode) { case 1: ungetc(ch,__stream); break; case 2: __ungs(ch); break; 64 of any character in the set which * the user wants to be end-of-string delimiters */ static __splend(ch) char ch; { if( ch == EOF ) return(EOF); return(__splset[ch]); } /* * initialize the array which indicates the special chars which >< } } /* * return the next char pointed to by *s */ static __gs() { register char c; c = *__sstr; if( c ) __sstr++; else return(EOF); return (c); } /* * put back a char for further scanning */ static __ungs(c) char c;75the user * wants to be included (or not included) in strings. */ static __inits(spec) register char **spec; { register char ch; register int i; register int val; ch = *(*spec)++; if( ch == '^' ) { val = 0; ch = *(*spe?= { if( c ) __sstr--; } /* FSEEK:C -- POSITION A STREAM EYRING RESEARCH INSTITUTE Copyright 1984-1986 13-OCT-86 -- Fixed error introduced by file buffering */ #include int fseek(fp,offset,origin) register FILE *fp; long offset; 86c)++; } else val = 1; for (i = 1; i < 128; i++) __splset[i] = val; val = 1 - val; while( ch != ']' ) { if( ch == 0 ) return(NOMATCH); __splset[ch & 0177] = val; ch = *(*spec)++; } __splset[0] = 1; return(NORETU@>register int origin; { long lseek(),ftell(); long current; if(fp == NULL || fp->fslot == 0 ) /* make sure valid file pointer */ return(EOF); if (origin==1) current = ftell(fp); /* relative to current position? */ fflush(fp); C     A? /* empty file (if written in) */ if (origin==1) /* back to where we were */ lseek(fp->fslot,current,0); if (lseek(fp->fslot,offset,origin) < 0L) /* new position */ return(EOF); fp->_iostat = 0; /* set as if reading */ fp->_cIG/ s = isize; while (s--) { putc(*iarray++,stream); } cnt++; } return(cnt); } * GETC:S -- SIMPLY ROUTE ALL CALLS TO GETC TO FGETC IDNT 5,0 EXTN .GETC,.FGETC .GETC JMP .FGETC END /* GETCHAR:C -- FOR THOSE WHO DIDN'T INCLUDE STDIO.H */ eB@nt = 0; /* no data in buffer (force fillbuf) */ fp->_ptr = &fp->_buff[_BSIZE]; return(0); } /* FTELL:C -- RETURN CURRENT POSITION IN STREAM EYRING RESEARCH INSTITUTE Copyright 1984-1986 */ #include long ftell(fp) register FJHxtern char *stdin; getchar() { return(getc(stdin)); } /* GETS:C Copyright 1982 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 @(#)gets.c 2.1 7/9/84 */ #include // gets - read a line from stdin, rCAILE *fp; { if (fp == NULL || fp->fslot == 0) return(EOF); asm("movem.l d3/a3,-(a7)"); /* save registers */ asm("move.w (a5),d1"); /* get the file slot into d1 */ asm("xrfp"); /* read file position (overwrites A3, D3) */ asm("sne KIeplace newline with null char * gets(s) char *s; { register char *t; register int cnt; t = s; cnt = 0; while( (*t = getchar()) != EOF && *t != '\n' ) { t++; cnt++; } if( *t == EOF && cnt == 0 ) return(NULL); *t = NUDBd1"); /* if error, save it */ asm("move.l d2,d0"); /* get disk position */ asm("move.w 10(a5),d2"); /* get count of bytes in buffer */ asm("ext.l d2"); /* convert to 32 bits */ asm("sub.l d2,d0"); /* discount disk file position */ LJLL; return(s); } /* GLOB:C glob:c expand an ambiguous file specification to a list of unambiguous ones. Copyright 1984, Eyring Research Institute, Inc. All rights reserved. */ glob(rargc,rargv,filespec) int *rargc; char ***rargv; char EC asm("ext.w d1\next.l d1"); /* convert (possible) error to 32 bits */ asm("or.l d1,d0"); /* return EOF or position */ asm("movem.l (a7)+,d3/a3"); /* restore registers */ } /* FWRITE:C - Write items from iarray to stream Copyright 1986, MK*filespec; { register char *memptr; register char *i,**current; char *end; extern char *_eomem; memptr = _eomem; /* find beginning of free memory */ xbfl(filespec,memptr); /* build a file listing */ for(i=memptr;*i | *(i+1);i++); /* find end of FDEyring Research INPUT: iarray - a pointer to the item array isize - the size of an item (in bytes) icount - the number of items to be written stream - the output stream RETURN VALUE: the number of items written MAX REGISTER USAGE: 3 NLlisting */ *rargv = end = ((long) i + 3 & ~1L);/* point to end of listing */ *rargc = 0; for (i=memptr,current = end;*i;){ *current++ = i; /* save current pointer */ (*rargc)++; /* one more file name */ while(*i++); /* scan to end of string GEaddress 5 data */ # include int fwrite(iarray,isize,icount,stream) register char *iarray; /* pointer to array */ register int isize; /* size of an item */ register int icount; /* number of items to write */ register FILE *stream; OM*/ } _eomem = current; /* save new end of memory */ } /* INDEX:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)index.c 2.1 7/9/84 */ index(s,c) register char *s, c; { register int i; HF /* output stream */ { register int cnt; /* successful item counter */ register int s; /* temp size */ cnt = 0; /* set initial item count */ if (isize <= 0 || icount <= 0) { return(cnt); } while(icount--) { /* for each possible item *PN for( i=0; *s != '\0'; i++,s++ ) if (*s == c) return(i); return(-1); } /* ITOA:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)itoa.c 2.1 7/9/84 */ itoa(n, s, w) register int C    QOn, w; register char *s; { register int sign, i; char temp[8]; if( (sign=n) < 0 ) n = -n; i = 0; do { temp[i++] = n % 10 + '0'; } while( (n /= 10) > 0 ); if( sign < 0 ) temp[i++] = '-'; while( --w >= i ) //pad oYWd1 // yes, easy ! move.w d1,d0 clr.w d1 swap d1 bra L90 L50: add.l d2,d2 // asl.l power of 2 L60: add.l d3,d3 // asl.l divisor cmp.l d3,d1 // shifted RPn left with blanks *s++ = ' '; while( --i >= 0 ) //move chars reversed *s++ = temp[i]; *s = 0; } * LDIV:S * Copyright 1981, 1986 * Alcyon Corporation * 5010 Shoreham Place * San Diego, CA 92122-3954 * * @(#)ldiv.s 3.1 3/3/86 *ZXdivisor > dividend bhs L50 // no bra L80 L70: cmp.l d3,d1 // ugh! divide a bit at a time blo L80 or.l d2,d0 sub.l d3,d1 L80: lsr.l #1,d3 lsr.l #1SQ * LDIV - Long division routine. On exit, d0 = result, d1 = remainder. * The remainder is also stored in the global ldivr. * Registers modified d0-d2, a0 extn .ldivr extn .ldiv extn ldiv extn .ldivr hbit equ TR $80000000 opt alt,frs section 0 .ldiv: ldiv: move.l d3,a0 // save it move.l 4(sp),d1 // dividend bge L10 // positive neg.l d1 // negative, so need it positive L10:\Zisor negative bpl L110 // no neg.l d0 // yes, result (only) changes L110: move.l d1,.ldivr // store remainder for lrem move.l a0,d3 // restore it rts END * LDIVR:S IDUS move.l 8(sp),d3 // divisor bgt L30 // positive blt L20 // negative move.l #hbit,d0 // zero => largest result move.l d0,d1 // (and remainder) ][NT 1,2 OPT ALT,FRL,TC,NOWARN XDEF .LDIVR * * COPYRIGHT 1983 * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA 92121 * * @(#)LDIVR.S 2.1 7/9/84 * THIS SEGMENT SIMPLY DEFINES THE LDIVR DATA FOR THOSE PROGRAMS THAT DO NOT * VT bra L110 L20: neg.l d3 // make divisor positive L30: cmp.l #1,d3 bne L35 // divide by 1 move.l d1,d0 move.l #0,d1 bra L90 L35: moveq #0,d0 // initializ^\DEFINE IT IN THE MAIN * SECTION 2 .LDIVR DS.L 1 END * LDIVU:S * Copyright 1981, 1986 * Alcyon Corporation * 5010 Shoreham Place * San Diego, CA 92122-3954 * * @(#)ldivu.s 3.1 3/3/86 * * LDIVU - Long unsigned division routine. On exiWUe result register cmp.l d1,d3 // is divisor > dividend blt L40 // no bgt L90 // yes, return 0 result moveq #1,d0 // they're equal, result is 1 moveq #0,d1 _]t, d0 = result, d1 = remainder. * Registers modified d0-d2, a0, a1 OPT ALT,FRS extn .ldivu extn ldivu section 0 .ldivu: ldivu: move.l d3,a0 // save d3 move.l d4,a1 // save d4 move.l 4XV // remainder is 0 bra L90 L40: moveq #2,d2 // prepare for hard way loop cmp.l #$10000,d1 // dividend small (2**16-1 or less) ? bge L60 // no, divide the hard way divu d3,`^(sp),d1 // dividend move.l 8(sp),d3 // divisor cmp.l #1,d3 bne L20 // divide by 1 move.l d1,d0 move.l #0,d1 bra L100 L20: moveq #0,d0 // initialize result register D     a_cmp.l d3,d1 // divisor :: dividend blo L100 // return if divisor > dividend bne L40 // b arount if otherwise not equal moveq #1,d0 // they're equal, result is 1 moveq #0,d1 ig*L2.LOWORD; * T2 = L1.HIWORD*L2.LOWORD + L2.HIWORD*L1.LOWORD; * T1.HIWORD = T1.HIWORD + T2; * IF (SIGN) * T1 = -T1; //NEGATE RESULTS * RETURN(T1); *} * * XDEF LMUL SECTION 0 LMUL: EQU * .LMUL: EQU * SUBA.W A1,A1 // INITIALIZEb`// remainder is 0 bra L100 L40: moveq #2,d2 // prepare for hard way loop move.l d1,d4 and.l #$ffff,d4 cmp.l d4,d1 // dividend small (2**16-1 or less) ? bne L60 // no, divjh SIGN FLAG TST.W 4(SP) // IS FIRST ARG NEGATIVE ? BGE.S L10 // NO NEG.L 4(SP) // YES,NEGATE IT ADDQ.W #1,A1 // AND NOTE VIA SIGN FLAG L10: EQU * TST.W 8(SP) // IS SECOND ARG NEGATIVE ? BGE.S L20 // NO NEG.caide the hard way divu d3,d1 // yes, easy ! move.w d1,d0 clr.w d1 swap d1 bra L100 L50: add.l d2,d2 // asl.l power of 2 L60: lsl.l #1,d3 // asl.l divisor kiL 8(SP) // YES,MAKE IT POSITIVE SUBQ.W #1,A1 // AND NOTE VIA SIGN FLAG L20: EQU * MOVE.W 6(SP),D1 // ARG1.LOWORD MOVE.W 10(SP),D0 // ARG2.LOWORD MOVE.W D1,D2 // ARG1.LOWORD MULU D0,D2 // ARG2.LOWORD * ARG1.LOWORD MOdb bcs L90 // jmp if shifted divisor > dividend cmp.l d3,d1 // is shifted divisor > dividend bhs L50 // no bra L90 // yes L80: cmp.l d3,d1 // ugh! divide a bit at a time ljVE.L D2,A0 // SAVE RESULT MOVE.W 4(SP),D2 // ARG1.HIWORD BEQ.S L30 // NO MUL NECESSARY MULU D0,D2 // ARG1.HIWORD * ARG2.LOWORD L30: EQU * MOVE.W 8(SP),D0 // ARG2.HIWORD BEQ.S L40 // NO MUL NECESSARY MULU D1,D0 //ec blo L90 or.l d2,d0 sub.l d3,d1 L90: roxr.l #1,d3 // if necessary recover the shifted out bit lsr.l #1,d2 bne L80 L100: move.l a0,d3 // restore d3 move.l a1,d4 mk ARG2.HIWORD * ARG1.LOWORD L40: EQU * ADD.W D2,D0 // FORM THE SUM OF 2 LO-HI PRODUCTS SWAP D0 // SHIFT UP 16 BITS CLR.W D0 ADD.L A0,D0 // ADD LO-LO PRODUCT MOVE.W A1,D1 // SIGN FLAG SET ? BEQ.S L50 // NO CHANGEfd// restore d4 rts end * LMUL:S IDNT 1,2 OPT ALT,FRL,TC * * COPYRIGHT 1983, 1984 * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA 92121 * * @(#)LMUL.S 2.1 7/9/84 * * LONG MULTIPLY ROUTINE WITHOUT FLOATING POINT * nl NEG.L D0 // NEGATE RESULTS L50: EQU * RTS END * LMULU:S IDNT 1,2 OPT ALT,FRL,TC,NOWARN * * COPYRIGHT 1983, 1984 * ALCYON CORPORATION * 8716 PRODUCTION AVE. * SAN DIEGO, CA 92121 * * @(#)LMULU.S 2.1 7/9/84 * * LONG UNSIGgeCALL WITH: * TWO LONG VALUES ON STACK * RETURNS: * LONG VALUE IN R0 AND R1 * * WARNING: NO OVERFLOW CHECKING OR INDICATION!!!! * * *STRUCT {UNSIGNED HIWORD,LOWORD;}; * *LONG LMUL(L1,L2) *LONG L1,L2; *{ * * REGISTER LONG T1; // USING AomNED MULTIPLY ROUTINE WITHOUT FLOATING POINT * CALL WITH: * TWO LONG VALUES ON STACK * RETURNS: * LONG VALUE IN R0 AND R1 * * WARNING: NO OVERFLOW CHECKING OR INDICATION!!!! * XDEF LMULU,.LMULU SECTION 0 LMULU EQU * .LMULU hfDDRESS REGISTER * REGISTER INT SIGN; * REGISTER INT T2; * * SIGN = 0; * IF (L1 < 0) { * L1 = -L1; //MAKE IT POSITIVE * SIGN++; * } * IF (L2 < 0) { * L2 = -L2; //MAKE IT POSITIVE * SIGN--; * } * T1 = L1.LOWORDpnMOVE.W 6(SP),D1 // ARG1.LOWORD MOVE.W 10(SP),D0 // ARG2.LOWORD MOVE.W D1,D2 // ARG1.LOWORD MULU D0,D2 // ARG2.LOWORD * ARG1.LOWORD MOVE.L D2,A0 // SAVE RESULT MOVE.W 4(SP),D2 // ARG1.HIWORD BEQ.S L30 // NO MUL NECESSARY MULU D0,D2 // ARG1D    qo.HIWORD * ARG2.LOWORD L30 MOVE.W 8(SP),D0 // ARG2.HIWORD BEQ.S L40 // NO MUL NECESSARY MULU D1,D0 // ARG2.HIWORD * ARG1.LOWORD L40 ADD.W D2,D0 // FORM THE SUM OF 2 LO-HI PRODUCTS SWAP D0 // SHIFT UP 16 BITS CLR.W D0 ADD.L A0,D0 // ADD LO-LO Pyw = xpsf(fid,offset)) != 0){ xler(err); /* error on position */ return(-1L); } return(offset); } /* LTOA:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)ltoa.c 2rpRODUCT RTS END * LREM:S * Copyright 1983 * Alcyon Corporation * 8716 Production Ave. * San Diego, CA 92121 * * @(#)lrem.s 2.1 7/9/84 * XDEF LREM,.LREM XREF .LDIV SECTION 0 LREM EQU * .LREM MOVE.L 8(SP),-(SP) MOVE.zx.1 7/9/84 */ ltoa(n, s, w) register int w; long n; register char *s; { register int i; long sign; char temp[12]; if( (sign = n) < 0L ) n = -n; i = 0; do { temp[i++] = n % 10L + '0'; } while( (n /= 10L) > 0 ); if( sqL 4+4(SP),-(SP) JSR .LDIV ADDQ.L #8,SP MOVE.L D1,D0 RTS END * LREMU:S * Copyright 1984 * Alcyon Corporation * 8716 Production Ave. * San Diego, CA 92121 * * @(#)lremu.s 2.1 7/9/84 * XREF .LDIVU XDEF LREMU,.LREMU SECTION 0 tr .LREMU EQU * LREMU MOVE.L 8(SP),-(SP) MOVE.L 4+4(SP),-(SP) JSR .LDIVU ADDQ.L #8,SP MOVE.L D1,D0 RTS END /* LSEEK:C -- *NIX LOOK-ALIKE ROUTINE TO POSITION IN FILE. EYRING RESEARCH INSTITUTE Copyright 1984-1986. long lseek(fid,|z San Diego, CA 92121 @(#)malloc.c 2.1 7/9/84 */ char *alloc(); char * malloc(sz) unsigned int sz; { return(alloc(sz)); } /* MCORE:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)usoffset,mode) fid is the file id, offset is a long index into the file, mode =0 if offset is relative to start of file; mode =1 if offset is relative to current position; mode =2 if offset is relative to end of file; function returns -}{mcore.c 5.0 13-Oct-86 Modified 13-Oct-86 to conform to PDOS requirements by Brian Cooper, Eyring Research 1986 */ #include HEADER * _morecore(nu) /* ask system for memory */ register unsigned int nu; { register HEADER *up; unsvt1 if mode illegal or position error, new position if successful (non-negative long) */ long lseek(fid,offset,mode) int mode; register int fid; register long offset; { register int err; long current,endfile; char *dummy; ~|igned long temp; extern unsigned long _eomem; if (_eomem & 1) /* make sure it is even */ _eomem++; /* check for stack overwrite */ if ((_eomem + (nu * sizeof(*up)) + 1000) < (unsigned long) &temp){ up = _eomem; /* save thiswu extern char *_tcbptr; /* guaranteed to point to memory */ if (mode) if(err = xrfp(fid,&dummy,¤t,&endfile)){ /* read position */ xler(err); return(-1L); } switch (mode){ case 2: offset += endfile;break; /* relative} value to return */ _eomem += (nu * sizeof(*up)); } else return(NULL); /* no space left */ MKBUSY(up); up->size = nu; free((char *)(up+1)); return(_allocp); } /* MEMORY:C memory operations ala sys V Copyright 1986 Eyrixv to end of file */ case 1: offset += current;break; /* relative to current pos */ case 0: break; /* relative to start of file */ default: return(-1L); /* error */ } if ((err~ng Research Institute */ # define NULL (char *)0 char *memccpy(dst,src,bc,cnt) register char *dst,*src; register int bc,cnt; { while(cnt--&&*src != bc) { *dst++ = *src++; } if (cnt) { /* must be a break char */ *dst++ = *src++; } else { /* bE     reak char not found */ dst = NULL; } return(dst); } char *memchr(str,ch,cnt) register char *str; register int ch,cnt; { while (cnt--&&*str++ != ch) ; if (cnt) { return(--str); } return(NULL); } int memcmp(m1,m2,cnt) register char *m1,*m2;har *__prtint(pobj, buf, base, signed, f, upper) int *pobj; char *buf; int base; int signed; int upper; char *(*f)(); { char digs[15]; register char *dp; register int k; register char *p; dp = (*f)(pobj, &buf, b register int cnt; { while(cnt-- && *m1++ == *m2++) ; return(*--m1 - *--m2); } char *memcpy(dst,src,cnt) register char *dst,*src; register int cnt; { register char *rval; rval = dst; while(cnt--) { *dst++ = *src++; } return(rval); } char ase, signed, digs); if (dp == digs) *dp++ = 0; p = buf; while (dp != digs) { k = *--dp; if (k < 10) k += '0'; else k += upper ? 'A'-10 : 'a'-10; *p++ = k; } *p = 0*memset(m,ch,cnt) register char *m; register int ch,cnt; { register char*rval; rval = m; while (cnt--) { *m++ = ch; } return(m); } /* MFREE:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#; return (p); } char *__prtshort(pobj, pbuf, base, signed, digs) int *pobj; char **pbuf; int base; int signed; char *digs; { extern long ldivr; register long n; register char *p; register long b; p = digs; b = b)mfree.c 2.1 7/9/84 */ mfree(ap) /* put block ap in free list */ char *ap; { return (free(ap)); } * OPEN:S -- OPEN A FILE IN MODE 0,1,2,3 * EYRING RESEARCH INSTITUTE, Copyright 1984-1986 IDNT 5,0 * if ((fd = open("myfile:sr",1) == -1) * ase; n = *pobj; if (signed && n < 0) { n = -n; *(*pbuf)++ = '-'; } else { n &= 0xffffL; //clear upper half } while (n != 0) { n = ldiv(n,b); *p++ = ldivr; } return (p); } printf("error opening file \n"); SECTION 0 XDEF .OPEN .OPEN MOVE.L D7,-(A7) ;SAVE REGISTER MOVEA.L 8(A7),A1 ;SET A1 TO POINT TO NAME MOVE.W 12(A7),D1 ;GET MODE (0.3); BLT.S EXIT1 ;MAY NOT BE NEGATIVE CMP.W #3,D1 BGT.S EXIT1  static short __max32int[] = {8,4,6,3,8,4,7,4,1,2,0}; /* reverse order */ char *__prtld(pobj, pbuf, base, signed, digs) long *pobj; char **pbuf; int base; int signed; char *digs; { register long n; register unsigned long m; re ;NOR GREATER THAN 3 ASL #1,D1 ;CONVERT TO A WORD INDEX MOVE.W OTABL(PC,D1.W),D7 ;GET PROPER FUNCTION XEXC ;AND EXECUTE IT. BNE.S EXIT0 ;IF ERROR SAVE IT SUB.W D0,D0 ;NO ERROR -- CLEAR ERROR FLAG XLER ; MOVE.W D1,D0 ;RETURN Fgister long b; register char *p; extern long ldiv(); extern long ldivr; register short *x, i; p = digs; b = base; m = n = *pobj; if(base == 16) { //special because of negatives i = 8; while(n && i) ILEID BRA.S EXIT2 ;AND RETURN EXIT0 XLER ;ERROR ON OPEN -- SAVE IT EXIT1 MOVEQ #-1,D0 ;RETURN ERROR INDICATOR (-1) EXIT2 MOVE.L (A7)+,D7 ;RESTORE REGISTER RTS OTABL XROO ;MODE 0 = XROO -- READ ONLY XSOP ;MODE 1 = XSOP -- WRITE O{ *p++ = n & 0xf; n >>= 4; i--; } } else if(base == 8) { i = 11; while(n && i) { *p++ = n & 7; n >>= 3; i--; } if(i==0) { NLY XROP ;MODE 2 = XROP -- READ/WRITE RANDOM XNOP ;MODE 3 = XNOP -- SHARED RANDOM END /** PRTINT:C * Copyright 1981, 1986 * Alcyon Corporation * 5010 Shoreham Place * San Diego, CA 92122-3954 * * @(#)prtint.c 3.2 4/8/86 **/ c *(p-1) &= 3; //only 2 bits in upper octal digit } } else if (signed) { if (n < 0) { *(*pbuf)++ = '-'; if (n == 0x80000000) { /* special case, no >0 equiv */ x = __max32int; E     while (*p++ = *x++) ; return (--p); } n = -n; } while(n) { *p++ = n % b; n = n / b; } } else { /* unsigned decimal */ whchar * realloc(ptr,sz) char *ptr; register unsigned int sz; { register HEADER *hd; register int *p, *s; register unsigned int i; p = hd = ptr; hd--; if( (i = (hd->size*sizeof *hd)) > sz ) /* since size in in UNITS!! */ i = szile(m) { *p++ = m % b; m = m / b; } } return (p); } * PUTC:S -- SIMPLY ROUTE ALL CALLS TO PUTC TO FPUTC IDNT 5,0 EXTN .PUTC,.FPUTC .PUTC JMP .FPUTC END /* PUTCHAR:C -- FOR THOSE WHO DIDN'T INCLUDE STDIO.H */; /* space is shrinking */ free(p); // free this space up for compaction if( (s = alloc(sz)) == NULL || (char *)s == (char *)p ) return((char *)s); // sorry, no more space for( hd = (char *)s, i /= sizeof (int); --i != -1; ) *s++ =  extern char *stdout; putchar(c) char c; { putc(c,stdout); } /* PUTS:C Copyright 1982 Alcyon Corporation 8716 Production Ave. San Diego, Ca. 92121 @(#)puts.c 2.1 7/9/84 */ #include puts(s) register char *s; { while( *s ) { putchar(*s); s++; } putchar('\n'); } /* RAND:C -- RAND, SRAND - RANDOM NUMBER GENERATOR Copyright 1986 - Eyring Research */ static int rseed = 1; int srand(seed) { int old; old = rseed; rseed = seed; return(old) 8716 Production Ave. San Diego, CA 92121 @(#)rindex.c 2.1 7/9/84 */ rindex(s,c) register char *s, c; { register int i, ndx; for(i = -1, ndx = 0; *s != '\0'; s++, ndx++ ) if (*s == c) i = ndx; return(i); } /* SBRK; } int rand() { rseed = rseed * 2053 + 13849; return(rseed & 0x7fff); } /* READ:C Eyring Research Institute, Inc. Copyright 1984,1985 All rights reserved. reads from file descriptor into buffer,n bytes. returns -1 on error :C request to expand RAM space by n bytes. returns address of the block of n if mem available; returns -1 if none available (allocation would override stack). memory is allocated between the end of the bss area and the stack ptr. a curre returns number of bytes read otherwise. */ #include read(fd,buf,n) register int fd, n; register char *buf; { long bytesread; register i; if (fd == 0) for (i=0 ; (i= 0) ; i++) ; else if (fd < nt pointer to the last byte allocated is kept in the global variable eomem, which is initialized in the start.s code. Eyring Research Institute, Inc. Copyright 1984 All rights reserved. */ extern long _eomem; long sbrk(n) register int n; { 0){ register char *prt = &_tcbptr->_prt; register char oldprt = *prt; *prt = -fd; for (i=0 ; (i= 0) ; i++) ; *prt = oldprt; } else switch (xrbf((long) n,fd,buf,&bytesread)) { case 56 : i = byte long temp; register char *i; temp = -1L; /* initially invalid */ if (_eomem & 1) /* make sure it is even */ _eomem++; if ((_eomem + n) < (long) &temp){ /* check for stack overwrite */ temp = _eomem; /* save sread; break; case 0 : i = n; break; default : i = -1; } return i; } /* REALLOC:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)realloc.c 2.1 7/9/84 */ #include this value to return */ _eomem += n; /* advance pointer */ } for (i = (char *) temp;i < (char *) _eomem;) *i++ = '\0'; /* zero allocated memory */ return temp; /* pass back address */ } /* Copyright 1983F      Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)setjmp.h 1.4 4/17/84 REGULUS 4.2 */ #define JMPSTK 11 typedef char *sav_stk[JMPSTK]; typedef char *jmp_buf[JMPSTK]; * SETJMP:S * Copyright 1983 * Alcyon C return( *s - *t ); } * STRCMP:SR -- ASSEMBLY VERSION CODED FOR SPEED. * 3-SEP-86 -- EYRING RESEARCH. STRCMP IDNT 5,0 EXTN .strcmp .strcmp movea.l $4(A7),A1 ;get source, target string pointers movea.l $8(A7),A0 L5 tst.b (A1) ;end of string? orporation * 8716 Production Ave. * San Diego, CA 92121 * * @(#)setjmp.s 2.1 7/9/84 * * * This is the routine that sets up for non-local goto's. It saves all the * necessary context for future use by longjmp. * The usage is: * #include * setjmp(env) * jmp_buf env; * XDEF .SETJMP .SETJMP MOVEA.L 4(A7),A0 ADDA.L #44,A0 MOVE.L (A7),-(A0) * SAVE RETURN ADDRESS MOVEM.L D3-D7/A3-A7,-(A0) * SAVE ALL REGISTERS CLR.L D0 * RETURN 0 RTS * This is the routine that accomplishesCPY:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)strcpy.c 2.1 7/9/84 */ char *strcpy(s,t) register char *s, *t; { register char *s1; s1 = s; while(*s++ = *t++) ; return( the non-local goto. * The usage is: * #include * longjmp(env,arg) * jmp_buf env; * int arg; XDEF .LONGJMP .LONGJMP MOVE.W 8(A7),D0 * IF ARG IS NON-ZERO, RETURN ARG BNE.S @0001 * MOVEQ.L #1,D0 * ELSE RETURN ARG. * @0001 MOVEA.Ls1); } /* STREND:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)strend.c 2.1 7/9/84 */ strend(s1,t1) char *s1, *t1; { register char *s, *t; for( s = s1; *s; ) s++; for( t = t 4(A7),A0 * GET ENVIRONMENT BLOCK MOVEM.L (A0)+,D3-D7/A3-A7 * RESTORE REGISTERS MOVE.L (A0),(A7) * RESTORE RETURN ADDRESS RTS END /* STRCAT:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)1; *t; ) t++; for( ; t >= t1; s--, t-- ) if( s < s1 || *s != *t ) return(0); return(1); } /* STRLEN:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)strlen.c 2.1 7/9/84 */ strstrcat.c 2.1 7/9/84 */ char *strcat(s1,t) char *s1; register char *t; { register char *s; s = s1; while( *s ) s++; while( *s++ = *t++ ) ; return(s1); } /* STRCHR:C Copyright 1983 Alcyon Corporation 8716 Produclen(s) register char *s; { register int n; for( n = 0; *s != '\0'; s++ ) n++; return(n); } /* STRNCAT:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)strncat.c 2.1 7/9/84 */ chtion Ave. San Diego, CA 92121 @(#)strchr.c 2.1 7/9/84 */ char *strchr(s,c) register char *s, c; { while( *s != '\0' && *s != c ) s++; if( *s == c ) return(s); return(0); } /** * Copyright 1981, 1986 * Alcyon Corporatar *strncat(s1,t,n) char *s1; register char *t; register int n; { register char *s; s = s1; while( *s && --n >= 0 ) s++; while( --n >= 0 && (*s++ = *t++) ) ; return(s1); } /* STRNCMP:C Copyright 1983 Alcyon Corporation ion * 5010 Shoreham Place * San Diego, CA 92122-3954 * * @(#)strcmp.c 3.1 3/3/86 **/ strcmp(s,t) register char *s, *t; { while( *s ) { if( *s++ != *t++ ) { s--; t--; break; } }  8716 Production Ave. San Diego, Ca. 92121 @(#)strncmp.c 2.1 7/9/84 */ strncmp(s,t,n) register char *s, *t; register int n; { for( ; --n != -1; ) { if( *s == '\0' ) break; if( *s != *t ) { return( *s - *t ); } s++; F     t++; } if( n == -1 ) return(0); return( *s - *t ); } /* STRNCPY:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)strncpy.c 2.1 7/9/84 */ char *strncpy(s1,t,n) register char *s1*__sptr) { // find first non-token separator for (tptr = t; *tptr; tptr++) if (*__sptr == *tptr) break; if (*tptr) break; __sptr++; } if (*__sptr) // not at end... *__sptr++ = NULL; return(ptr); } /* SYSTEM:C -- execut, *t; register int n; { register char *s; s = s1; while( --n >= 0 && (*s++ = *t++) != '\0' ) ; while( --n >= 0 ) *s++ = '\0'; return(s1); } /* STRPBRK:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San e a system call from a program -- run another program! Rather experimental, this works, but could get you into fairly deep trouble, if abused. Accepts one parameter -- the command line. Returns the status of the call -- contents of &0, or Diego, CA 92121 @(#)strpbrk.c 2.1 7/9/84 */ char *strpbrk(s,t) register char *s, *t; { register char *p; for( ; *s != '\0'; s++ ) { for( p = t; *p != '\0'; ) if( *p++ == *s ) return(s); } return(0); } /* STRRCHR:C the last error number. Eyring Research Institute, Inc. Copyright 1984, 1985 All rights reserved. */ #include "TCB:H" #include "SYRAM:H" static char *olderr; /* save old error exit trap */ static int ertrap(); /* new error exit trap rtn */ stat Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)strrchr.c 2.1 7/9/84 */ char *strrchr(s1,c) register char *s1, c; { register char *s; for( s = s1; *s != '\0'; ) s++; while( s > s1ic int event; /* task synchronization event */ #define MEM -1 /* use command line, low, high */ #define PRIORITY 64 /* regular priority */ system(tcmd) char *tcmd; { register int err; char *high,*xcbx(); register char myport; str && *s != c ) s--; if( *s == c ) return(s); return(0); } /* STRSPN:C Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)strspn.c 2.1 7/9/84 */ strspn(s,t) register char *s, *t; { ruct TCB *low,*sbrk(); register struct TCB *A6; register struct SYRAM *syram; struct SYRAM *tsyram; char portsave,flagsave; int sontask; char cmd[100],tbuff[8]; long dummy; /* should be the LAST automatic variable */ legister char *p; register int n; for( n = 0; *s != '\0'; n++,s++ ) { for( p = t; *p != '\0'; p++ ) if( *p == *s ) break; if( *p == '\0' ) return(n); } return(n); } /* STRTOK:C Copyright 1983 Alcyon Corporation ow = sbrk(0); /* what is the start of our memory */ high = &dummy - 100; /* leave 100 bytes below stack for insurance */ A6 = _tcbptr; /* register copies of pointers */ syram = _syram; myport = A6->_prt; /* read current input port  8716 Production Ave. San Diego, CA 92121 @(#)strtok.c 2.1 7/9/84 */ #define NULL 0L static char *__sptr; char * strtok(s,t) char *s, *t; { register char *ptr, *tptr; ptr = (s == NULL) ? __sptr : s; // begin or continue from tcb */ portsave = syram->_patb[myport]; /* save old port allocation block */ syram->_patb[myport] = '\0';/* deallocate port so new task can have */ flagsave = A6->_flg; /* save old task flag */ A6->_flg |= 0x80; /* disable comm?? if (!*ptr) return(NULL); while (*ptr) { // find token starting char for (tptr = t; *tptr; tptr++) if (*ptr == *tptr) break; if (!*tptr) break; ptr++; } __sptr = ptr; // points to starting character while (and line echo */ event = xrts(-1) + 64; /* we will wait on this event */ /* copy command string and append exit stuff */ strncpy(cmd,tcmd,70); strcat(cmd,".UN 0.EV "); /* it needs to set an event for us */ strcat(cmd,xcbx(tbuff,(lonG     g) event)); strcat(cmd,".PB\r"); /* after setting event, wait for axe */ olderr = A6->_err; /* on error, exit through my task */ A6->_err = &ertrap; err = xctb(MEM,PRIORITY,myport,low,high,cmd,&sontask); A6->_err = olderr; /* resFILE *ttyopen(port); */ #include extern FILE _strm0,*_strm1; extern char *sbrk(); FILE * ttyopen(port) int port; { register FILE *fp,*tp; if (_strm1 != NULL){ /* re-use old file buffers? */ fp = _strm1; _strm1 = fp->nfile; } tore error trap for parent task */ if(xrts(sontask)) /* if task was created -- */ xsui(event); /* wait for it to finish */ xktb(-sontask); /* kill it without deallocating mem */ do{ asm("xswp"); /* twiddle fingers while it dies */  else if ((fp = sbrk(sizeof (FILE))) == -1L) /* no space for it */ return(NULL); fp->fslot = -port; fp->nfile = NULL; fp->_iostat = 0; /* status initially zero */ fp->_cnt = 0; /* open port for input */ fp->_ptr = &fp-> } while (xrts(sontask)); syram->_patb[myport] = portsave; /* re-allocate this port to us */ A6->_flg = flagsave; /* restore command line echo */ if (err==0) err = low->_len; /* get son task's status if created ok */ return (err); _buff[_BSIZE]; tp = &_strm0; while (tp->nfile != NULL) /* link into chain of open files */ tp = tp->nfile; tp->nfile = fp; return(fp); } /* UNGETC:C push a character back onto the input stream one level of pushback is guara} static int ertrap() { asm("move d1,d0\nxler"); /* set error flag (from D1) */ xsef(event); /* notify parent task of exit */ for(;;){ asm("xswp"); /* hang until task is killed */ } } *TSTFIL:S 22-JUL-86 TSTFIL IDNT 4,15 * * Thnteed. Cannot push EOF, nor can multiple characters be guaranteed to be pushed back without intervening getc calls. Returns c for success, EOF on failure. Eyring Research Institute Copyright 1984-1986 */ #include int ungetc(c,is function may be called from C programs to determine if a * file exists, and if it exists, what it's size is. The file * name is passed in as a null-terminated string, the status returned * is zero if the file exists, else it is a PDOS error number.stream) int c; register FILE *stream; { if (stream->fslot <= 0 && c != EOF){ stream->_ptr = &(stream->_buff[_BSIZE-1]); /* set pointer, if necessary */ stream->_cnt = 1; return(*stream->_ptr = c); } /* IF there is room and IF the s If * the file exists, the size of the file in bytes is returned as through * the address passed as the second parameter. * Copyright Eyring, 1986 * Brian C. Cooper * *int tstfile(fname,fsize) *char *fname; *long int *fsize; * long size; * tream is input-oriented and IF the */ /* byte is not an EOF, push back the byte for later input */ /* and return the byte as the status, else return EOF */ return ( (c==EOF || (stream->_ptr==stream->_buff) || (stream->_iostat & _OUTFLAG)) if (tstfile("MYFILE:DAT",&size)) * printf("File doesn't exist"); * else * printf("File contains %ld bytes",size); OPT TA XDEF .TSTFILE .TSTFILE MOVEA.L 4(A7),A1 ; FNAME = 8(A6) XRFA BNE.S @0099 ; DON'T SAVE LENGTH IF ERROR MOVEQ.L  ? EOF : (stream->_cnt++,*--stream->_ptr=c) ); } /* WRITE:C -- write to file slot or port Eyring Research Institute, Inc. Copyright 1984,1985 All rights reserved. writes n bytes to fd from buffer. returns number of#0,D0 ; RETURN STATUS OF ZERO MOVEA.L 8(A7),A0 ; FSIZEPTR = 12(A6) MOVE.L D1,(A0) ; RETURN FSIZE @0099 RTS ; RETURN VALUE IN D0 END /* TTYOPEN:C OPEN A PORT Eyring Research Institute, Inc. Copyright 1985 All rights reserved.  bytes written, or exits on output error. */ #include write(fd,buf,n) register int fd,n; register char *buf; { if(fd == 0 ) /* simply output if to console */ xpdc(n,buf); else if (fd < 0){ /* change u1p and output if port */ registeG     r char *u1p = &_tcbptr->_u1p; register char oldu1p = *u1p; *u1p = -fd; xpdc(n,buf); *u1p = oldu1p; } else{ /* output data to file if fileslot */ register int i = xwbf((long) n,fd,buf); if (i) exit(i); } return n; } /* XEQ:C nt ioflag; static FILE *stream; static char *buffer; static long *xxlist; printf(fmtstr,xlist) char *fmtstr; long xlist; { ioflag = 1; stream = stdout; xxlist = &xlist; xprintf(fmtstr); } fprintf(fd,fmtstr,xlist) FILE *fd; char *fmtst-- run a program and return its status. This function works by using the XLDF function of PDOS to load and run a program. It only will work with files of type SY or OB. Accepts one parameter -- the command line. Returns the status of the r; long xlist; { ioflag = 1; stream = fd; xxlist = &xlist; xprintf(fmtstr); } char *sprintf(bf,fmtstr,xlist) char *bf; char *fmtstr; long xlist; { ioflag = 0; buffer = bf; xxlist = &xlist; xprintf(fmtstr); *buffer =call -- contents of &0, or the last error number. Eyring Research Institute, Inc. Copyright 1984, 1985 All rights reserved. */ #include #include static jmp_buf env; xeq(filename) char *filename; { char *sbrk(); char *lowptr,* '\0'; return(bf); } _error(fmtstr,xlist) char *fmtstr; long xlist; { ioflag = 1; stream = stderr; xxlist = &xlist; xprintf(fmtstr); exit(1); } static xprintf(fmtstr) register char *fmtstr; { register long *list; regishiptr; char *lowload,*hiload; register struct TCB *tcbptr; int retval; int extrap(); int errtrap(); char *oldext,*olderr,*oldeum,*oldclp,*oldead,oldcmd; long dummy; tcbptr = _tcbptr; lowptr = sbrk(0); hiptr = &dummy - 100; retval = setjmp(eter char c,*tbptr; register int i; char tbuf[15],*xchx(),*xcbx(),*octstr(); int fmax,fmin,lflag,*nptr,sflag,zflag; list = xxlist; while (c = *fmtstr++){ if (c != '%') outchar(c); /* print non-format chars */ else { nv); if (retval == 0){ /* first time through */ oldclp = tcbptr->_clp; oldcmd = tcbptr->_cmd; oldeum = tcbptr->_eum; oldext = tcbptr->_ext; olderr = tcbptr->_err; oldead = tcbptr->_ead; tcbptr->_clp = filename;  if(*fmtstr == '-'){ sflag = 1; fmtstr++; } else sflag = 0; fmax = 9999; /* set default maximum field width */ nptr = &fmin; fmin = lflag = zflag = 0; again: /* come here after intermediate format chars */ switctcbptr->_cmd = ' '; xgnp(&filename); tcbptr->_eum = hiptr; tcbptr->_ext = extrap; tcbptr->_err = errtrap; retval = xldf(1,lowptr,hiptr,filename,&lowload,&hiload); xler(retval); } retval = tcbptr->_len; tcbptr->_cmd = olh (c = *fmtstr++) { /* begin format conversion */ case 'l' : lflag++; goto again; case '.' : nptr = &fmax; goto again; case 'x' : tbptr = xchx(tbuf,lflag ? NLONG : NINT); if (!lflag) tbptr += 4; for (i=(lflag?1:5);(i<8) &dcmd; tcbptr->_clp = oldclp; tcbptr->_eum = oldeum; tcbptr->_ext = oldext; tcbptr->_err = olderr; tcbptr->_ead = oldead; return (retval); } extrap() { longjmp(env,1); } errtrap() { asm("move.l d1,d0\nxler"); longjmp(env,2); } /* XPRINTF:C -& (*tbptr == '0');i++) tbptr++; break; case 'd' : tbptr = xcbx(tbuf,lflag ? NLONG : NINT);break; case 'u' : tbptr = xcbx(tbuf,lflag ? NLONG : NUNS);break; case 'o' : tbptr = octstr(tbuf,lflag ? NLONG : NUNS);break; case 'c' : tbuf[0] - streamlined. Copyright 1984-86, Eyring Research Institute */ #include #define NUNS (long) *((unsigned int *)list)++ #define NINT (long) *((int *)list)++ #define NLONG *list++ #define NULLTERM tbuf[1] =0 ; tbptr = tbuf; break; static i= *((int *)list)++; NULLTERM case 's' : tbptr = (char *) NLONG; break; case '\0': tbuf[0] = *--fmtstr;tbptr = tbuf;break; case '0' : zflag = 1; /* print with leading zero's */ default : if ((c >= '0') && (c <= '9')){ /* number */ i =H      0; do /* numeric conversion */ i = i*10 + c-'0'; while (((c = *fmtstr++) >= '0') && (c <= '9')); fmtstr--; *nptr = i; /* set min or max */ goto again; } tbuf[0] = c; NULLTERM } WHTSP 010 #define _PUNCT 020 #define _CNTRL 040 #define _BSPACE 0100 #define _SPACE 0100 /* shared !!!! */ #define _HEXDEC 0200 #define _NASCII 0 extern char _ctype[]; /* Standard routines... */ #define isspace(c) (_ctype[c] & _WHTSP) #define/* end switch */ for (i=0;(tbptr[i]) && (fmin > 0) && (i < fmax);i++,fmin--); if (sflag == 0){ while(fmin-- > 0){ outchar(32+zflag*16); /* pad with leading blanks/zeros */ } } while((*tbptr) && (fmax-- > 0)){ outchar(*tb isupper(c) (_ctype[c] & _UPPER) #define islower(c) (_ctype[c] & _LOWER) #define isalpha(c) (_ctype[c] & (_UPPER | _LOWER)) #define isdigit(c) (_ctype[c] & _DIGIT) #define ishex(c) (_ctype[c] & _HEXDEC) #define isascii(c) (_ctype[c] != _NASCII) #defiptr++); /* print the data */ } if (sflag == 1){ while(fmin-- > 0) outchar(' '); /* pad with trailing blanks */ } } /* end format conversion */ } } static outchar(c) char c; { if (ioflag) putc(c,stream); ne isalnum(c) (_ctype[c] & (_UPPER|_LOWER|_DIGIT)) #define iscntrl(c) (_ctype[c] & _CNTRL) #define isprint(c) (_ctype[c] & (_UPPER|_LOWER|_DIGIT|_PUNCT|_BSPACE|_SPACE)) #define ispunct(c) (_ctype[c] & _PUNCT) #define toupper(c) (islower(c) ? (c) & ~040 else *buffer++ = c; } static char *octstr(str,num) register unsigned long num; register char *str; { register int i; *str++ = '0' + ((num & 0xC0000000) >> 30); for (i=0;i<10;i++){ num &= 0x3fffffff; *str++ = '0' + (num >> 27); : (c)) #define tolower(c) (isupper(c) ? (c) | 040 : (c)) #define toascii(c) ((c) & 0177) CE|_SPACE)) #define ispunct(c) (_ctype[c] & _PUNCT) #define toupper(c) (islower(c) ? (c) & ~040 : (c)) #define tolower(c) (isupper(c) ? (c) | 040 : (c)) #define num <<= 3; } *str = '\0'; str -= 11; while (*str == '0') str++; return (str); } /* Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)alloc.h 1.2 10/19/83 REGULUS 4.1 */ #de* XLIB:SRC -- SOURCES TO THE MODULES IN XLIB:LIB * 4-SEP-86 -- EYRING COPYRIGHT 1985-1986 * 8-OCT-86 -- XWFP USES D3 AS INPUT * -- XSZF USES D5 AS OUTPUT * -- XFAC: NEW * -- XPAD: NEW * -- XPCR: NEW * -- XDMP: NEW * -- XUAD: NEW * fine BUSY 0x80000000 /* use the sign bit for now */ #define ISBUSY(p) ((long)p->ptr < 0) #define MKFREE(p) ((char *)(p)->ptr) &= (~BUSY) #define FREE(p) ((char *)(p) & (~BUSY)) #define MKBUSY(p) (((char *)(p)-> -- XRTP: NEW * -- XGMP: NEW * -- XSMP: NEW * 9-JAN-86 -- REV 5.0E FIX XWFP, XCBC, XCBP, ERROR RTS XAPF:S XBCP:S XBFL:S XCBC:S XCBD:S XCBH:S XCBP:S XCBX:S XCDB:S XCFA:S XCHF:S XCHX:S XCLF:S XCPY:S XCTB:S XDEV:S XDFL:S XDLF:S XDMP:S XERR:S XEXZ:S ptr) |= BUSY) #define NULL 0L #define HEADER struct header HEADER { HEADER *ptr; /* next free block */ unsigned int size; /* size of this block */ }; char *alloc(); char *realloc(); char *sbrk(); char *malloc(); extern HEADEXFAC:S XFBF:S XFFN:S XFTD:S XFUM:S XGCB:S XGCC:S XGCP:S XGCR:S XGLB:S XGLM:S XGLU:S XGML:S XGMP:S XGNP:S XGTM:S XGUM:S XKTB:S XKTM:S XLDF:S XLER:S XLFN:S XLKF:S XLKT:S XLST:S XNOP:S XPAD:S XPCC:S XPCR:S XPDC:S XPEL:S XPLC:S XPSC:S XPSF:S XRBF:S XRCP:S R *_allocp; /* last allocated block */ /* Copyright 1983 Alcyon Corporation 8716 Production Ave. San Diego, CA 92121 @(#)ctype.h 1.2 10/19/83 REGULUS 4.1 */ #define _UPPER 01 #define _LOWER 02 #define _DIGIT 04 #define _XRDE:S XRDT:S XRFA:S XRFP:S XRLF:S XRNF:S XROO:S XROP:S XRPS:S XRSE:S XRSR:S XRST:S XRTM:S XRTP:S XRTS:S XRWF:S XSEF:S XSEV:S XSMP:S XSOP:S XSPF:S XSTM:S XSTP:S XSUI:S XSZF:S XTAB:S XTEF:S XUAD:S XUDT:S XULF:S XUTM:S XWBF:S XWDT:S XWFA:S XWFP:S XWLF:S H     XWSE:S XWTM:S XZFL:S XAPF IDNT 1,2 OPT TC XDEF .XAPF .XAPF MOVEM.L 4(A7),A1/A2 ;GET STRING POINTERS XAPF ;APPEND FILE BNE.S @0099 MOVEQ #0,D0 @0099 RTS END XBCP IDNT 1,2 OPT TC XDEF .XBCP .XBCP MOVEM.L D3-D5,-(A7) ;SAVE REGISTERS MOVEVERSION BY RETURN OF 0 @0020 MOVEA.L 8(A7),A1 ;GET SECOND PARAM, THE ADDRESS OF INTEGER MOVE.L D1,(A1) ;MOVE CONVERSION INTO THE INTEGER BRA.S @0099 @0030 MOVEQ.L #-1,D0 @0099 RTS END XCFA IDNT 1,2 OPT TC XDEF .XCFA .XCFA MOVEM.W 4(A7),D1/D2 M.W 16(A7),D2-D4 ;GET PORT+256*FLAGS,BAUD RATE,PORT TYPE MOVE.L 22(A7),D5 ;MOVE PORT BASE TO D5 XBCP ;BAUD PORT BNE.S @0099 MOVEQ #0,D0 @0099 MOVEM.L (A7)+,D3-D5 ;RESTORE REGISTERS RTS END XBFL IDNT 5,0 OPT TC XDEF .XBFL .XBFL MOVE.L A3,;GET THE FILID AND ATTRIBUTES XCFA ;CLOSE WITH FILE ATTRIBUTES BNE.S @0099 MOVEQ #0,D0 @0099 RTS END XCHF IDNT 1,2 OPT TC XDEF .XCHF .XCHF MOVEA.L 4(A7),A1 ;GET THE FILE NAME XCHF ;CHAIN TO FILE RTS ;SHOULD ONLY RETURN ON ERROR END D1 ;SAVE A3 MOVEM.L 4(A7),A1-A3 ;GET STRING POINTERS XBFL ;BUILD FILE LIST BNE.S @0099 MOVEQ #0,D0 @0099 MOVEA.L D1,A3 ;RESTORE A3 RTS END XCBC IDNT 1,3 OPT TC XDEF .XCBC .XCBC SUB.L D1,D1 ;CLEAR REGISTER TO START XCBC ;CHECK FOR BR XCHX IDNT 1,2 OPT TC XDEF .XCHX .XCHX MOVEM.L 4(A7),D0-D1 ;GET THE BUFFER ADDRESS, NUMBER TO CONVERT MOVEA.L D0,A1 ;RETURN THE ADDRESS XCHX ;CONVERT TO HEX RTS END XCLF IDNT 1,2 OPT TC XDEF .XCLF .XCLF MOVE.W 4(A7),D1 ;GET THE FILE EAK CHAR BLT.S @0020 ;ESCAPE BCC.S @0099 ;NO BREAK @0010 SUBQ #1,D1 ;CONTROL C = -3 @0020 SUBQ #2,D1 ;ESCAPE = -2 @0099 MOVE.L D1,D0 ;RETURN ERROR STATUS RTS END XCBD IDNT 1,2 OPT TC XDEF .XCBD .XCBD MOVE.L 4(A7),D1 ;GET NUMBER XCBD  ;CONVERT BINARY TO DECIMAL MOVE.L A1,D0 ;RETURN POINTER TO STRING RTS END XCBH IDNT 1,2 OPT TC XDEF .XCBH .XCBH MOVE.L 4(A7),D1 ;GET THE PASSED PARAMETER XCBH ;CONVERT BINARY TO HEX MOVE.L A1,D0 ;GET THE RESULT RTS END XCBP IDNT 1,3CTB MOVEM.W 4(A7),D0-D2 ;GET TASK SIZE,PRIORITY,PORT MOVEM.L 10(A7),A0-A2 ;GET LOW MEM ADDRESS, HIGH MEM ADDR, CMD PTR XCTB ;CREATE TASK BNE.S @0099 MOVEA.L 22(A7),A1 ; NO ERROR, SO MOVE TASK NO. INTO VARIABLE MOVE.W D0,(A1) ;ALTER THE VARIAB OPT TC XDEF .XCBP .XCBP SUB.L D1,D1 ;CLEAR THE REGISTER XCBP BLT.S @0020 ;MUST HAVE A BLT AFTER THE CALL, OR ESCAPE EXITS BEQ.S @0030 ;NO CHAR -- -1 BCC.S @0099 ;PAUSED -- RETURN 0 SUBQ #1,D1 ;CONTROL C = -3 @0020 SUBQ #1,D1 ;ESCAPE = -2 @0030 SUBQ #1,D1 ;NO CHAR = -1 @0099 MOVE.L D1,D0 RTS ;RETURN END XCBX IDNT 1,2 OPT TC XDEF .XCBX .XCBX MOVEM.L 4(A7),D0-D1 ;GET THE BUFFER ADDRESS,NUMBER MOVEA.L D0,A1 ;RETURN THE ADDRESS XCBX ;CONVERT TO DECIMAL RTS END XCDB IDNT 1DFL IDNT 1,2 OPT TC XDEF .XDFL .XDFL MOVEA.L 4(A7),A1 ;GET FILE NAME MOVE.W 8(A7),D0 ;GET SIZE XDFL ;DEFINE FILE BNE.S @0099 MOVEQ #0,D0 @0099 RTS END XDLF IDNT 1,2 OPT TC XDEF .XDLF,.UNLINK .XDLF MOVEA.L 4(A7),A1 ;MOVE FIRST PARAM XD,2 OPT TC XDEF .XCDB .XCDB MOVEA.L 4(A7),A1 ;GET POINTER TO STRING XCDB ;CONVERT DECIMAL TO BINARY BGT.S @0010 BLT.S @0030 MOVE.L A1,D0 ;RETURN THE ADDRESS TO FIRST BAD CHAR BRA.S @0020 ;SAVE THE DATA @0010 MOVEQ #0,D0 ;FLAG THE GOOD CON LF ;DELETE FILE BNE.S @0099 ; IF ERROR RETURN WITH CODE IN D0 MOVEQ #0,D0 ;NO ERROR RETURN 0 @0099 RTS .UNLINK MOVEA.L 4(A7),A1 ;SAME INPUT, DIFFERENT OUTPUT XDLF BNE.S @0098 ; IF ERROR, RETURN -1 MOVEQ #0,D0 XLER ; CLEAR ERROR REGISTI      ER BRA.S @0099 @0098 XLER ; SAVE ERROR MOVEQ.L #-1,D0 ; RETURN A -1 @0099 RTS ; END XDMP IDNT 5,0 OPT TC XDEF .XDMP .XDMP MOVEA.L (A7)+,A0 ;GET RETURN ADDR MOVEA.L A7,A1 ;SAVE SP XDMP ;DUMP MEMORY MOVEA.L A1,A7 ;RESTORE SP (CALLER C UE IF CHAR SUBQ #1,D1 ;CONTROL C = -3 @0010 SUBQ #1,D1 ;ESCAPE = -2 @0020 SUBQ #1,D1 ;NO CHAR = -1 MOVE.L D1,D0 @0099 RTS ;RETURN END XGCP IDNT 1,2 OPT TC XDEF .XGCP .XGCP SUB.L D1,D1 XGCP BLT.S @0020 ;ESCAPE BCC.S @0099 ;CHARACTER S  LEANS STACK) JMP (A0) ;RETURN END XERR IDNT 1,2 OPT TC XDEF .XERR .XERR MOVE.W 4(A7),D0 ;FETCH THE PARAMETER XERR ;RETURN ERROR TO MONITOR END XEXZ IDNT 1,2 OPT TC XDEF .XEXZ .XEXZ MOVEA.L 4(A7),A1 ;GET THE PASSED PARAMETER XEXZ ;EX UBQ #1,D1 ;CONTROL C = -3 @0020 SUBQ #2,D1 ;ESCAPE = -2 MOVE.L D1,D0 @0099 RTS END XGCR IDNT 1,2 OPT TC XDEF .XGCR .XGCR SUB.L D1,D1 XGCR BLT.S @0020 ;ESCAPE BCC.S @0099 ;CHARACTER SUBQ #1,D1 ;CONTROL C = -3 @0020 SUBQ #2,D1 ;ESCAPE = -2   IT TO MONITOR W/ COMMAND END XFAC IDNT 5,0 OPT TC XDEF .XFAC .XFAC MOVEA.L 4(A7),A1 ;GET FILE NAME XFAC SCS D1 ;IF ALTERED, SET D1 TO 255 OR.B D1,D0 ;RETURN 0, ERROR, OR 255 RTS END XFBF IDNT 1,2 OPT TC XDEF .XFBF .XFBF XFBF ;FLUSH B MOVE.L D1,D0 @0099 RTS END XGLB IDNT 1,2 OPT TC XDEF .XGLB .XGLB MOVEQ #0,D0 ;DEFAULT TO RETURN MOVEA.L 4(A7),A1 ;GET THE BUFFER ADDRESS XGLB ;GET LINE IN BUFFER BLT.S @0010 ;ENDED WITH ESCAPE BCC.S @0099 ;ENDED WITH RETURN SUBQ #1,  UFFERS BNE.S @0099 MOVEQ #0,D0 @0099 RTS END XFFN IDNT 1,2 OPT TC XDEF .XFFN .XFFN MOVEA.L 4(A7),A1 ;POINT TO THE NAME XFFN ;FIX FILE NAME BNE.S @0075 ;ERROR -- RETURN 0 MOVEA.L 8(A7),A2 ;GET 2ND PARAMETER ADDRESS ANDI.W #$FF,D0 ;CLE D0 ;CONTROL C = -3 @0010 SUBQ #2,D0 ;ESCAPE = -2 @0099 RTS ;RETURN = 0 END XGLM IDNT 1,2 OPT TC XDEF .XGLM .XGLM MOVEQ #0,D0 ;DEFAULT TO RETURN MOVEA.L 4(A7),A2 ;GET THE BUFFER POINTER ADDRESS XGLM ;GET LINE IN MONITOR BUFFER BLT.S @0  AR TOP BYTE OF DISK MOVE.W D0,(A2) ;STORE THE DISK # MOVE.L A1,D0 ;RETURN THE ADDRESS BRA.S @0099 @0075 MOVEQ #0,D0 @0099 RTS END XFTD IDNT 1,2 OPT TC XDEF .XFTD .XFTD XFTD MOVEM.L 4(A7),A1/A2 ;GET THE TIME ADDRESS, DATE ADDRESS MOVE.W D0, 010 ;ENDED WITH ESCAPE BCC.S @0099 ;ENDED WITH RETURN SUBQ #1,D0 ;CONTROL C = -3 @0010 SUBQ #2,D0 ;ESCAPE = -2 @0099 MOVE.L A1,(A2) ;SET THE STRING POINTER RTS END XGLU IDNT 1,2 OPT TC XDEF .XGLU .XGLU MOVEQ #0,D0 ;DEFAULT TO RETURN M  (A1) ;STORE TIME MOVE.W D1,(A2) ;STORE DATE RTS END XFUM IDNT 1,2 OPT TC XDEF .XFUM .XFUM MOVE.W 4(A7),D0 ;GET KBYTES MOVEA.L 6(A7),A0 ;GET ADDRESS XFUM ;FREE USER MEMORY BNE.S @0099 MOVEQ #0,D0 @0099 RTS END XGCB IDNT 1,2 OPT TC X  OVEA.L 4(A7),A2 ;GET THE BUFFER POINTER ADDRESS XGLU ;GET LINE IN USER BUFFER BLT.S @0010 ;ENDED WITH ESCAPE BCC.S @0099 ;ENDED WITH RETURN SUBQ #1,D0 ;CONTROL C = -3 @0010 SUBQ #2,D0 ;ESCAPE = -2 @0099 MOVE.L A1,(A2) ;SET THE STRING POI  DEF .XGCB .XGCB SUB.L D1,D1 ;DEFAULT TO ZERO XGCB ;GET CHAR FROM PDOS BEQ.S @0020 ;NO CHAR AVAILABLE BLT.S @0010 ;ESCAPE ENTERED BCC.S @0099 ;RETURN VALUE IF CHAR SUBQ #1,D1 ;CONTROL C = -3 @0010 SUBQ #1,D1 ;ESCAPE = -2 @0020 SUBQ #1  NTER RTS END XGML IDNT 1,2 OPT TC XDEF .XGML .XGML MOVEM.L A5-A6,-(A7) ;SAVE REGISTERS XGML ;GET MEMORY LIMITS MOVE.L A0,D0 ;MOVE A REGISTERS TO D REGISTERS MOVE.L A1,D1 ;TO FREE UP THE ADDRESS REGS MOVE.L A2,D2 MOVEM.L 12(A7),A0-A2 ;GE  ,D1 ;NO CHAR = -1 MOVE.L D1,D0 @0099 RTS ;RETURN END XGCC IDNT 1,2 OPT TC XDEF .XGCC .XGCC SUB.L D1,D1 ;DEFAULT TO ZERO XGCC ;GET CHAR FROM PDOS BEQ.S @0020 ;NO CHAR AVAILABLE BLT.S @0010 ;ESCAPE ENTERED BCC.S @0099 ;RETURN VAL  T POINTERS TO FIRST 3 PARMS MOVE.L D0,(A0) ;ENDTCB (TBE$) MOVE.L D1,(A1) ;UPPER MEMORY LIMIT (EUM$-USZ) MOVE.L D2,(A2) ;LAST LOADED ADDRESS (BUM$) MOVEM.L 24(A7),A0-A1 ;GET POINTERS TO LAST 2 PARMS MOVE.L A5,(A0) ;SYSTEM RAM (SYRAM) MOVE.L A6I       ,(A1) ;TASK CONTROL BLOCK (TCB) MOVEM.L (A7)+,A5-A6 ;RESTORE REGISTERS RTS END XGMP IDNT 5,0 OPT TC XDEF .XGMP .XGMP MOVE.W 4(A7),D0 ;GET MESSAGE NUMBER XGMP ;GET MESSAGE POINTER SNE.B D1 OR.B D1,D0 BLT.S @0099 MOVEA.L 6(A7),A0 ;POINT  E.W 12(A7),D0 ;AND DISK NUMBER XLFN ;LOOK UP FILE NAME BNE.S @0010 ;SKIP IF NAME FOUND MOVEA.L 14(A7),A1 ;POINT TO FILE SLOT PTR MOVE.L A3,(A1) ;RETURN SLOT PTR BRA.S @0099 @0010 TST.W D3 ;SET TO 0(NO SLOTS)? BEQ.S @0099 ;YES -- RETURN THA   TO POINTER MOVE.L A1,(A0) ;RETURN POINTER & STATUS @0099 RTS END XGNP IDNT 1,2 OPT TC XDEF .XGNP .XGNP MOVEQ #0,D0 ;ASSUME FAILURE XGNP ;GET NEXT PARAMETER BCS.S @0010 MOVEQ.L #1,D0 ;SIGNAL MORE @0010 MOVEA.L 4(A7),A0 ;GET PARAMETER   T AS ERR MOVEQ #-1,D3 ;NO -- RETURN -1 @0099 MOVE.W D3,D0 ;RETURN FILE ID OR ERROR MOVEM.L (A7)+,D3/A3 ;RESTORE REGISTERS RTS END XLKF IDNT 1,2 OPT TC XDEF .XLKF .XLKF MOVE.W 4(A7),D1 ;GET THE FILE ID XLKF ;LOCK FILE BNE.S @0099 ;IF  MOVE.L A1,(A0) ;RETURN THE ADDRESS RTS END XGTM IDNT 1,2 OPT TC XDEF .XGTM .XGTM MOVEA.L 4(A7),A1 ;POINT TO BUFFER XGTM ;GET TASK MESSAGE RTS END XGUM IDNT 1,2 OPT TC XDEF .XGUM .XGUM MOVE.W 4(A7),D0 ;GET SIZE XGUM ;GET USER MEMORY   ERROR RETURN WITH CODE IN D0 MOVEQ #0,D0 ;NO ERROR RETURN 0 @0099 RTS END XLKT IDNT 1,2 OPT TC XDEF .XLKT .XLKT MOVEQ #0,D0 ;PREVIOUSLY UNLOCKED ? XLKT ;LOCK TASK BEQ.S @0099 ;IT WAS UNLOCKED BEFORE MOVEQ.L #1,D0 ;IT WAS LOCKED B   BNE.S @0010 ;ERROR MOVEQ #0,D0 ;NO ERROR -- RETURN 0 MOVE.L A1,D1 ;SAVE REG MOVEM.L 6(A7),A1-A2 ;POINT TO TWO PARAMETERS MOVE.L A0,(A1) ;SET BEG MEM MOVE.L D1,(A2) ;SET END MEM BRA.S @0099 @0010 MOVEQ.L #73,D0 ;NOT ENOUGH MEMORY ERROR   .L 4(A7),A1 ;GET FILE NAME XNOP ;OPEN SHARED FILE BNE.S @0099 MOVEM.L 8(A7),A1-A2 ;POINT TO RETURN PARAMS MOVE.W D0,(A1) ;RETURN FILE TYPE/ATTRIBUTES MOVE.W D1,(A2) ;RETURN FILE ID MOVEQ #0,D0 ;RETURN ZERO STATUS @0099 RTS END XPAD IDNT  7),A1 ;GET THE BUFF ADDRESS XKTM BNE.S @0099 ;NO MESSAGE HERE MOVEQ #0,D0 ;SIGNAL GOOD RETURN @0099 RTS END XLDF IDNT 1,2 OPT TC XDEF .XLDF .XLDF MOVE.L A3,D2 ;SAVE REGISTER MOVE.W 4(A7),D1 ;EXECUTION FLAG MOVEM.L 6(A7),A0-A1/A3 ;START   OF MEM, END OF MEM, FILE NAME XLDF ;LOAD FILE BNE.S @0099 ;ERROR -- EXIT MOVEM.L 18(A7),A2-A3 ;POINT TO LAST TWO PARAMETERS MOVE.L A0,(A2) ;LOWEST LOADED ADDRESS MOVE.L A1,(A3) ;LAST LOADED ADDRESS MOVEQ #0,D0 ;STATUS = SUCCESS @0099 MOVEA  GET CHAR XPCC RTS END XPCR IDNT 5,0 OPT TC XDEF .XPCR .XPCR CLR.W D0 MOVE.B $5(A7),D0 ;GET CHAR XPCR RTS END XPDC IDNT 1,2 OPT TC XDEF .XPDC .XPDC MOVE.L D7,D1 ;SAVE D7 MOVE.W 4(A7),D7 ;GET THE STRING LENGTH MOVEA.L 6(A7),A1 ;GET TH  .L D2,A3 ;RESTORE REGISTER RTS END XLER IDNT 1,2 OPT TC XDEF .XLER .XLER MOVE.W 4(A7),D0 XLER ;LOAD ERROR REGISTER RTS END XLFN IDNT 1,2 OPT TC XDEF .XLFN .XLFN MOVEM.L D3/A3,-(A7) ;SAVE REGISTERS MOVEA.L 8(A7),A1 ;GET FILE NAME MOV E STRING ADDRESS MOVE.L A1,D0 ;RETURN THE ADDRESS XPDC ;PUT DATA TO CONSOLE MOVE.L D1,D7 ;RESTORE D7 RTS END XPEL IDNT 1,2 OPT TC XDEF .XPEL .XPEL MOVEA.L 4(A7),A1 ;GET THE PASSED PARAMETER MOVE.L A1,D0 ;RETURN THE ADDRESS XPEL ;PUT J      ! ENCODED LINE TO CONSOLE RTS END XPLC IDNT 1,2 OPT TC XDEF .XPLC .XPLC MOVEA.L 4(A7),A1 ;GET THE PASSED PARAMETER MOVE.L A1,D0 ;RETURN THE ADDRESS XPLC ;PUT LINE TO CONSOLE RTS END XPSC IDNT 1,2 OPT TC XDEF .XPSC .XPSC MOVE.B 5(A7),D1 ) 'END XRFP IDNT 1,2 OPT TC XDEF .XRFP .XRFP MOVEM.L D3/A3,-(A7) ;SAVE VOLATILE REGISTERS MOVE.W 12(A7),D1 ;GET FILE ID XRFP ;READ FILE POSITION BNE.S @0099 MOVEM.L 14(A7),A0-A2 ;POINT TO NEXT THREE PARAMS MOVE.L A3,(A0) ;SAVE POINTER TO FIL " ;GET THE ROW MOVE.B 7(A7),D2 ;GET THE COL XPSC ;POSITION CURSOR RTS END XPSF IDNT 1,2 OPT TC XDEF .XPSF .XPSF MOVE.W 4(A7),D1 ;GET THE FILID MOVE.L 6(A7),D2 ;GET THE POSITION XPSF ;POSITION TO FILE BNE.S @0099 MOVEQ #0,D0 @0099 RTS  * (E SLOT MOVE.L D2,(A1) ;SAVE CURRENT POSITION MOVE.L D3,(A2) ;SAVE END OF FILE POSITION MOVEQ #0,D0 ;RETURN ZERO STATUS @0099 MOVEM.L (A7)+,D3/A3 ;RESTORE VOLATILE REGISTERS RTS END XRLF IDNT 1,2 OPT TC XDEF .XRLF .XRLF MOVE.L D3,D2 ;SAVE  # !END XRBF IDNT 1,2 OPT TC XDEF .XRBF .XRBF MOVEA.L D3,A1 ;SAVE REGISTER MOVE.L 4(A7),D0 ;GET NUMBER OF BYTES MOVE.W 8(A7),D1 ;GET FILID MOVEA.L 10(A7),A2 ;GET THE ADDRESS XRBF ;READ BYTES FROM FILE BNE.S @0010 ;IF ERROR RETURN WITH CODE  + )D3 MOMENTARILY MOVE.W 4(A7),D1 ;GET FILE ID MOVEA.L 6(A7),A2 ;GET ADDRESS OF BUFFER XRLF ;READ LINE FROM FILE BNE.S @0010 ;ERROR -- RETURN WITH CODE IN D0 MOVEQ #0,D0 ;NO ERROR -- RETURN 0 BRA.S @0099 ;RETURN @0010 MOVEA.L 10(A7),A2 ;GET  $ "IN D0 MOVEQ #0,D0 ;NO ERROR RETURN 0 BRA.S @0099 @0010 MOVEA.L 14(A7),A2 ;GET THE ADDRESS OF BYTESREAD VARIABLE MOVE.L D3,(A2) ;WRITE INTO IT @0099 MOVE.L A1,D3 ;RESTORE REGISTER RTS END XRCP IDNT 1,2 OPT TC XDEF .XRCP .XRCP MOVE.W 4(A7), , *THE ADDRESS OF BYTES READ VARIABLE MOVE.W D3,(A2) ;WRITE INTO IT @0099 MOVE.L D2,D3 ;RESTORE D3 RTS END XRNF IDNT 1,2 OPT TC XDEF .XRNF .XRNF MOVEM.L 4(A7),A1/A2 ;POINT TO THE TWO STRINGS XRNF ;RENAME FILE BNE.S @0010 ;IF ERROR RETUR % #D0 ;GET THE PORT NUMBER XRCP ;READ CURSOR POSITION MOVEM.L 6(A7),A1-A2 ;POINT TO RETURN PARAMS MOVE.W D1,(A1) ;ROW MOVE.W D2,(A2) ;COL RTS END XRDE IDNT 1,2 OPT TC XDEF .XRDE .XRDE MOVEM.W 4(A7),D0/D1 ;GET DISK NUMBER, READ FLAG (0 OR 1) - +N WITH CODE IN D0 MOVEQ #0,D0 ;NO ERROR RETURN 0 @0010 RTS END XROO IDNT 1,2 OPT TC XDEF .XROO .XROO MOVEA.L 4(A7),A1 ;GET FILE NAME XROO ;OPEN READ ONLY BNE.S @0099 MOVEM.L 8(A7),A1-A2 ;POINT TO RETURN PARAMS MOVE.W D0,(A1) ;RETURN FI & $ MOVEM.L 8(A7),A0/A1 ;GET ADDRESSES OF LASTENTRY, SECTORNUM MOVEA.L (A0),A2 ;PUT LASTENTRY IN A2 XRDE ;READ DIRECTORY ENTRY BNE.S @0099 MOVEQ #0,D0 MOVE.L A2,(A0) ;PUT LASTENTRY MOVE.W D1,(A1) ;RETURN SECTOR # @0099 RTS END XRDT IDNT 1 . ,LE TYPE/ATTRIBUTES MOVE.W D1,(A2) ;RETURN FILE ID MOVEQ #0,D0 @0099 RTS END XROP IDNT 1,2 OPT TC XDEF .XROP .XROP MOVEA.L 4(A7),A1 ;GET FILE NAME XROP ;OPEN RANDOM ACCESS FILE BNE.S @0099 MOVEM.L 8(A7),A1-A2 ;POINT TO RETURN PARAMS MOV ' %,2 OPT TC XDEF .XRDT .XRDT XRDT ;READ DATE MOVE.L A1,D0 ;RETURN DATE POINTER RTS END XRFA IDNT 1,2 OPT TC XDEF .XRFA .XRFA MOVEA.L 4(A7),A1 ;MOVE FILE NAME POINTER TO A1 XRFA ;READ FILE ATTRIBUTES BNE.S @0099 MOVEM.L 8(A7),A0/A1 ;PO / -E.W D0,(A1) ;RETURN FILE TYPE/ATTRIBUTES MOVE.W D1,(A2) ;RETURN FILE ID MOVEQ #0,D0 @0099 RTS END XRPS IDNT 1,2 OPT TC XDEF .XRPS .XRPS MOVE.W 4(A7),D0 ;GET THE PASSED PARAMETER XRPS ;READ PORT STATUS BNE.S @0099 MOVEA.L 6(A7),A1 ;GET  ( &INT TO NEXT TWO PARAMS MOVE.L A2,(A0) ;SAVE POINTER TO DIRECTORY ENTRY MOVE.W D0,(A1) ;SAVE DISK NUMBER MOVEM.L 16(A7),A0/A1 ;POINT TO LAST TWO PARAMS MOVE.L D1,(A0) ;FILE SIZE IN BYTES MOVE.L D2,(A1) ;LEVEL/ATTRIBUTES MOVEQ #0,D0 @0099 RTS  0 .THE VAR ADDRESS MOVE.L D1,(A1) ;ALTER THE CONTENTS MOVEQ #0,D0 ;SIGNAL GOOD RETURN @0099 RTS END XRSE IDNT 1,2 OPT TC XDEF .XRSE .XRSE MOVEM.W 4(A7),D0/D1 ;GET DISKNO, SECTOR NO MOVEA.L 8(A7),A2 ;GET THE ADDRESS XRSE ;READ SECTOR FROM FILJ      1 /E BNE.S @0099 MOVEQ #0,D0 @0099 RTS END XRSR IDNT 1,2 OPT TC XDEF .XRSR .XRSR XRSR ;READ STATUS REGISTER ANDI.L #$0000FFFF,D0 ;CLEAR UPPER WORD RTS END XRST IDNT 1,2 OPT TC XDEF .XRST .XRST MOVE.W 4(A7),D1 XRST ;RESET FILES RTS 9 7),A1 ;POINT TO OLD PORT FLAG MOVE.B D1,(A1) ;SAVE OLD PORT FLAG MOVEQ #0,D0 ;SIGNAL GOOD RETURN @0099 RTS END XSTM IDNT 1,2 OPT TC XDEF .XSTM .XSTM MOVE.W 4(A7),D0 ;GET TASK NUMBER MOVEA.L 6(A7),A1 ;GET MESSAGE POINTER XSTM ;SEND TASK MES 2 0 END XRTM IDNT 1,2 OPT TC XDEF .XRTM .XRTM XRTM MOVE.L A1,D0 ;STORE TIME RTS END XRTP IDNT 5,0 OPT TC XDEF .XRTP .XRTP MOVE.L D3,-(A7) ;SAVE REGISTER XRTP ;READ TIME PARAMS MOVEM.L 8(A7),A0-A2 ;GET POINTERS TO PARAMS MOVE.L D1,(A0)  : 8SAGE BNE.S @0099 ;NO MESSAGE HERE MOVEQ #0,D0 ;SIGNAL GOOD RETURN @0099 RTS END XSTP IDNT 1,2 OPT TC XDEF .XSTP .XSTP MOVE.W 4(A7),D0 ;GET THE PASSED PARAMETER MOVEQ #0,D1 ;GET THE OLD TASK PRIORITY XSTP ;READ TASK PRIORITY BNE.S @009 3 1;MONTH/DAY/YEAR/0 MOVE.L D2,(A1) ;HOURS/MINUTES/SECONDS/0 MOVE.L D3,(A2) ;B.TPS MOVE.L (A7)+,D3 ;RESTORE REGISTER RTS ;(TICS IN D0) END XRTS IDNT 1,2 OPT TC XDEF .XRTS .XRTS MOVE.W 4(A7),D0 ;GET THE TASK NUMBER XRTS ;READ TASK STATUS  ; 99 ;ON ERROR, QUIT MOVEA.L 8(A7),A1 ;GET THE VAR ADDRESS MOVE.W D1,(A1) ;ALTER THE CONTENTS MOVEM.W 4(A7),D0/D1 ;GET TASKNO, PRIORITY XSTP ;SET TASK PRIORITY BNE.S @0099 MOVEQ #0,D0 ;SIGNAL GOOD RETURN @0099 RTS END XSUI IDNT 1,2 OPT TC 4 2MOVE.L D1,D0 ;RETURN THE STATE RTS END XRWF IDNT 1,2 OPT TC XDEF .XRWF .XRWF MOVE.W 4(A7),D1 ;GET THE FILE XRWF ;REWIND FILE BNE.S @0099 MOVEQ #0,D0 @0099 RTS END XSEF IDNT 1,2 OPT TC XDEF .XSEF .XSEF MOVE.W 4(A7),D1 ;GET THE SOURC 5 3E MOVEQ #0,D0 ;ASSUME RESET XSEF ;SET EVENT AND SWAP BEQ.S @0099 ;IF NE RETURN 1 (SET) MOVEQ.L #1,D0 @0099 RTS END XSEV IDNT 1,2 OPT TC XDEF .XSEV .XSEV MOVE.W 4(A7),D1 ;GET THE SOURCE MOVEQ #0,D0 ;ASSUME EVENT WAS CLEAR XSEV  = ;0-A2 ;GET POINTERS MOVE.L D5,(A0) ;DIRECTORY SIZE/NUMBER OF FILES MOVE.L D6,(A1) ;ALLOTED/USED MOVE.L D7,(A2) ;LARGEST/FREE MOVEQ #0,D0 @0099 MOVEM.L (A7)+,D5-D7 ;RESTORE REGISTERS RTS END XTAB IDNT 1,2 OPT TC XDEF .XTAB .XTAB MOVE.W @001 6 4;SET EVENT BEQ.S @0099 ;QUIT IF EQ STATUS MOVEQ.L #1,D0 ;ELSE, SET STATUS TO 1 FOR SET @0099 RTS END XSMP IDNT 5,0 OPT TC XDEF .XSMP .XSMP MOVE.W 4(A7),D0 ;GET MESSAGE NUMBER MOVEA.L 6(A7),A1 ;GET MESSAGE POINTER XSMP ;SEND MESSAGE PO 7 5INTER BNE.S @0099 ;NO MESSAGE MOVEQ #0,D0 ;SIGNAL GOOD RETURN @0099 RTS END XSOP IDNT 1,2 OPT TC XDEF .XSOP .XSOP MOVEA.L 4(A7),A1 ;GET FILE NAME XSOP ;OPEN SEQUENTIAL FILE BNE.S @0099 MOVEM.L 8(A7),A1-A2 ;POINT TO RETURN PARAMS MOVE ? = 4(A7),D1 ;GET THE SOURCE MOVEQ.L #1,D0 ;DEFAULT IS SET(1) XTEF ;TEST EVENT FLAG BNE.S @0099 ;FLAG IS SET MOVEQ #0,D0 ;FLAG NOT SET RETURN 0 @0099 RTS END XUAD IDNT 5,0 OPT TC XDEF .XUAD .XUAD MOVE.W 4(A7),D1 ;GET THE DATE XUAD ;UN 8 6.W D0,(A1) ;RETURN FILE TYPE/ATTRIBUTES MOVE.W D1,(A2) ;RETURN FILE ID MOVEQ #0,D0 @0099 RTS END XSPF IDNT 1,2 OPT TC XDEF .XSPF .XSPF MOVEM.W 4(A7),D0/D1 ;PORT, PORT FLAGS XSPF ;SET PORT FLAG BNE.S @0099 ;BRANCH IF ERROR MOVEA.L 8(A7 @ >PACK IT MOVE.L A1,D0 ;RETURN THE RESULT RTS END XUDT IDNT 1,2 OPT TC XDEF .XUDT .XUDT MOVE.W 4(A7),D1 ;GET THE DATE XUDT ;UNPACK IT MOVE.L A1,D0 ;RETURN THE RESULT RTS END XULF IDNT 1,2 OPT TC XDEF .XULF .XULF MOVE.W 4(A7),D1 ;GET K      A ?THE FILE XULF ;UNLOCK FILE BNE.S @0099 MOVEQ #0,D0 @0099 RTS END XUTM IDNT 1,2 OPT TC XDEF .XUTM .XUTM MOVE.W 4(A7),D1 ;GET THE PASSED PARAMETER XUTM ;UNPACK TIME MOVE.L A1,D0 ;GET THE RESULT RTS END XWBF IDNT 1,2 OPT TC XDEF .X GFA05A IN CTEMP&#:O LI STDLIB:LIB LI XLIB:LIB IN CEND:O RELINK 2,Q$H0 BITMAP END OU #&1 MA MUO,CTEMP&#:ERR SY EN QU 8020 PDOS Assembler R3.1a 08/27/86 ERII, Copyright 1983-86 SRC=CTEMP0:SR OBJ=CTEMP0:O LST= ERR= XRF= END OF PASS 1 END OF PASS 2  B @WBF .XWBF MOVE.L 4(A7),D0 ;GET NUMBER OF BYTES MOVE.W 8(A7),D1 ;GET FILID MOVEA.L 10(A7),A2 ;GET THE ADDRESS XWBF ;WRITE BUFFER BNE.S @0099 MOVEQ #0,D0 ;NO ERROR RETURN 0 @0099 RTS END XWDT IDNT 1,2 OPT TC XDEF .XWDT .XWDT MOVEM.W 4(A7 J/* * diff.c -> Source file comparator * * Conforms to conventions of standard Unix library with the exception * of movmem() */ /* To paraphrase the Unix (trademark Bell Laboratories) manual: NAME diff - differential file comparator SYNOPSIS d C A),D0-D2 ;MONTH, DAY, YEAR XWDT ;WRITE DATE RTS END XWFA IDNT 1,2 OPT TC XDEF .XWFA .XWFA MOVEM.L 4(A7),A1/A2 ;GET THE FILENAME, ATTRIBUTE XWFA ;WRITE FILE ATTRIBUTES BNE.S @0099 MOVEQ #0,D0 @0099 RTS END XWFP IDNT 5,01 OPT TC XDEF K Iiff file1 file2 DESCRIPTION Diff tells which lines differ between two files. Diff outputs to the standard output all affected lines from the first file preceeded by '<', a line containing three dashes ("---"), then all affected li D B .XWFP .XWFP MOVEA.L D3,A2 ;PRESERVE D3 ACROSS CALL MOVEM.L 4(A7),D0-D3/A1 ;GET THE PARAMETERS XWFP ;WRITE FILE PARAMETERS BNE.S @0099 MOVEQ #0,D0 @0099 MOVE.L A2,D3 ;RESTORE D3 RTS END XWLF IDNT 1,2 OPT TC XDEF .XWLF .XWLF MOVE.W 4(A L Jnes from the second file preceeded by '>'. Diff maintains a "synchronization window" of 50 lines, and generates an error message if the input files differ by more than 50 lines. Error messages are written to the standard error output. E C7),D1 ;GET FILID MOVEA.L 6(A7),A2 ;GET THE ADDDRESS XWLF ;WRITE LINE TO FILE BNE.S @0099 MOVEQ #0,D0 @0099 RTS END XWSE IDNT 1,2 OPT TC XDEF .XWSE .XWSE MOVEM.W 4(A7),D0/D1 ;GET DISKNO, SECTORNO MOVEA.L 8(A7),A2 ;GET THE ADDRESS XWSE  M K Diff ignores all carriage-return characters (0x0D), so that a missing carriage-return is not considered to be a dif- ference. For backward compatability, diff does recognize control-Z (0x1A) as the end-of-file marker. DIAGNOSTICS Exi F D ;WRITE SECTOR TO DISK BNE.S @0099 ;IF ERROR RETURN WITH CODE IN D0 MOVEQ #0,D0 ;NO ERROR RETURN 0 @0099 RTS END XWTM IDNT 1,2 OPT TC XDEF .XWTM .XWTM MOVEM.W 4(A7),D0-D2 ;HOURS, MINUTES, SECONDS XWTM RTS END XZFL IDNT 1,2 OPT TC  N Lt status is 0 for no differences, 1 for some, 2 for trouble. */ #include #define EOFCHR 0x1A #define MAXLINES 200 #define BUFFSIZ (MAXLINES * 128) typedef struct { char *lptr; /* -> text line in memory */ int lhash; /* ha EXDEF .XZFL .XZFL MOVEA.L 4(A7),A1 ;FILE NAME XZFL ;ZERO FILE BNE.S @0099 MOVEQ #0,D0 @0099 RTS END  O Msh of line's contents */ } LBUF; typedef struct { int fd; /* file descriptor */ char *eptr, /* ptrs into buffer */ *mptr; char buff[BUFFSIZ]; /* the buffer */ LBUF line[MAXLINES]; /* the lines */ } FBUF; FBUF *f1, /* the inp H*CC:AC -- RUN CC COMPILER CPP &1:C CTEMP&#:SR C068 CTEMP&#:SR CTEMP&#:O CTEMP&#:L CTEMP&#:SR1 C168 CTEMP&#:O CTEMP&#:L CTEMP&#:SR &1 MASM20 CTEMP&#:SR,CTEMP&#:O QLINK ZE SE 0,0 GR 0,1 IG 2 BITMAP BEGIN IN CSTART:O DEFINE DOX881 $4E71 DEFINE DOXGNP $FFF P Nut files */ *f2; int differences = 0; /* found differences ?? */ extern char *malloc(); extern unsigned movmem(); /* * MatchLines() -> compare two lines for a match */ int MatchLines(lev1, lev2) int lev1, lev2; { return ((f1->line[lev1].lK      Q Ohash == f2->line[lev2].lhash) && !strcmp(f1->line[lev1].lptr, f2->line[lev2].lptr)); } /* * Fatal() -> fatal error */ Fatal(mesg, arg) char *mesg, *arg; { fprintf(stderr, "diff : "); fprintf(stderr, mesg, arg); fprintf(stderr, "\n"); exi Y Wown(amt1, amt2) int amt1, amt2; { movmem(&f1->line[amt1], &f1->line[0], sizeof(LBUF) * (MAXLINES - amt1)); HashMore(0, amt1); movmem(&f2->line[amt2], &f2->line[0], sizeof(LBUF) * (MAXLINES - amt2)); HashMore(1, amt2); } /* * PrintLine() R Pt(2); } /* * ReadMore() -> read in more lines, preserving lines in use */ char *ReadMore(fdesc, last) FBUF *fdesc; int last; { LBUF *slin, *elin; int size, dist, ramt; size = fdesc->mptr - fdesc->line[0].lptr; /* move text to begin Z X -> print the specified line */ PrintLine(file, lev) int file, lev; { FBUF *fdesc; fdesc = (file ? f2 : f1); printf("%c %s\n", (file ? '>' : '<'), fdesc->line[lev].lptr); } /* * AtEOF() -> check for both files at EOF */ int AtEOF() {  S Qning of buffer */ movmem(fdesc->line[0].lptr, fdesc->buff, size); slin = fdesc->line; elin = &fdesc->line[last]; dist = fdesc->line[0].lptr - fdesc->buff; /* fix up existing line pointers */ while (slin <= elin) { slin->lptr -= dist; ++sl [ Y return (!f1->line[0].lptr && !f2->line[0].lptr); } /* * CloseUp() -> close the files */ CloseUp() { close(f1->fd); free(f1); close(f2->fd); free(f2); } /* * CmpRegion() -> compare a region */ CmpRegion() { int depth, level, tmp;  T Rin; } /* read in some more */ ramt = read(fdesc->fd, fdesc->mptr - dist, size = (BUFFSIZ - size)); if (ramt < 0) Fatal("file read error"); fdesc->mptr += (ramt - dist); /* check for EOF */ if (ramt < size) *fdesc->mptr = EOFCHR; retu ] [king for a * two line match */ depth = level = 0; for (;;) { if (depth >= (MAXLINES - 1)) Fatal("files differ by more than %d lines", MAXLINES); if (MatchLines(level,depth) && MatchLines(level + 1,depth + 1)) break; if (MatchLines( V T.lptr = cptr = fdesc->eptr; /* check for EOF */ if (!cptr) fdesc->line[MAXLINES - amt].lhash = 0; else { /* calculate hash value */ thash = 0; for (;;) { /* don't use up the buffer */ if (cptr >= fdesc->mptr) c ^ \depth,level) && MatchLines(depth + 1,level + 1)) break; if (level < depth) ++level; else { ++depth; level = 0; } } /* make tmp be the length in the first file */ if (MatchLines(level, depth) && MatchLines(level + 1, depth + W Uptr = ReadMore(fdesc, MAXLINES - amt); if ((*cptr == EOFCHR) || (*cptr == '\n')) break; if (*cptr == '\r') /* ignore CRs */ ++cptr; else thash += *cptr++; } /* terminate line correctly */ if (*cptr == EOFCHR)  _ ] 1)) { tmp = level; level = depth; depth = tmp; } /* print the region of difference */ tmp = 0; printf("***********\n"); while (tmp < depth) PrintLine(0, tmp++); printf("---\n"); tmp = 0; while (tmp < level) PrintLine(1, tmp++);  X V { *cptr = 0; cptr = NULL; } else *cptr++ = 0; /* save the hash value */ fdesc->line[MAXLINES - amt].lhash = thash; } fdesc->eptr = cptr; } } /* * MoveDown() -> move down a number of lines in each file */ MoveD ` ^ MoveDown(depth, level); } /* * Init() -> initialize the input files */ Init(name1, name2) char *name1, *name2; { if (!(f1 = (FBUF *)malloc(sizeof(FBUF)))) Fatal("insufficient memory"); if (!(f2 = (FBUF *)malloc(sizeof(FBUF)))) Fatal("L      a _insufficient memory"); #define READ 0 if ((f1->fd = open(name1, READ)) < 0) Fatal("unable to open %s", name1); if ((f2->fd = open(name2, READ)) < 0) Fatal("unable to open %s", name2); f1->mptr = f1->eptr = f1->line[0].lptr = f1->buff; f2->mpt i gUpper- and", "lower-case are always ignored. Blank lines never match. The expression", "should be quoted to prevent file-name translation.", "x An ordinary character (not mentioned below) matches that character.", "'\\' The backslash quotes any cha b `r = f2->eptr = f2->line[0].lptr = f2->buff; HashMore(0, MAXLINES); HashMore(1, MAXLINES); } /* * good old main */ int main(argc, argv) int argc; char *argv[]; { if (argc != 3) Fatal("usage: %s file1 file2",argv[0]); printf("\n"); Init(a j hracter. \"\\$\" matches a dollar-sign.", "'\\b' Backslash b matches '(' (beginning parenthesis).", "'\\e' Backslash e matches ')' (ending parenthesis).", " Note: Passing spaces, periods, and commas into a program is", " accomplished by encl c argv[1], argv[2]); while (!AtEOF()) CmpRegion(); CloseUp(); return (differences); } /* * movmem.c -> copy a block of memory */ unsigned movmem(src, dst, len) register char *src, *dst; unsigned len; { register unsigned i = len; if  k iosing the argument in parenthesis. Pass", " parenthesis by using these escape codes.", "'^' A circumflex at the beginning of an expression matches the", " beginning of a line.", "'$' A dollar-sign at the end of an expression matches the e b((dst > src) && ((dst - src) < i)) /* overlap ?? */ { src += i; dst += i; while (i--) *--dst = *--src; } else while (i--) *dst++ = *src++; return (len); } har *src, *dst; unsigned len; { register unsigned i = len; if  l jnd of", " a line.", "'.' A period matches any character except \"new-line\".", "':a' A colon matches a class of characters described by the following", "':d' character. \":a\" matches any alphabetic, \":d\" matches digits,", "':n' \":n e# /* * Copyright (C) 1980, DECUS * * General permission to copy or modify, but not for profit, is * hereby granted, provided that the above copyright notice is * included and reference made to the fact that reproduction * privileges were  m k\" matches alphanumerics, \": \" matches spaces, tabs, and", "': ' other control characters, such as new-line.", "'*' An expression followed by an asterisk matches zero or more", " occurrances of that expression: \"fo*\" matches \"f\", \"fo\" f dgranted by DECUS. * */ # char *documentation[] = { "grep searches a file for a given pattern. Execute by", " grep [flags] regular_expression file_list", "", "Flags are single characters preceeded by '-':", " -c Only a count of matching li n l", " \"foo\", etc.", "'+' An expression followed by a plus sign matches one or more", " occurrances of that expression: \"fo+\" matches \"fo\", etc.", "'-' An expression followed by a minus sign optionally matches", " the expression.", " g enes is printed", " -f Print file name for matching lines switch, see below", " -n Each line is preceeded by its line number", " -v Only print non-matching lines", "", "The file_list is a list of files.", "If no files are given, inp o m'[]' A string enclosed in square brackets matches any character in", " that string, but no others. If the first character in the", " string is a circumflex, the expression matches any character", " except \"new-line\" and the characters in  h fut comes from the terminal. There is no prompting.", "The file name is normally printed if there is a file given.", "The -f flag reverses this action (print name no file, not if more).", "", "The regular_expression defines the pattern to search for.  p nthe string. For", " example, \"[xyz]\" matches \"xx\" and \"zyx\", while \"[^xyz]\"", " matches \"abc\" but not \"axb\". A range of characters may be", " specified by two characters seperated by \"-\". Note that,", " [a-z] matches alphabL      q oetics, while [z-a] never matches.", "", "The concatenation of regular expressions is a regular expression.", "", 0 }; #define error(s) _error(s) #include #define LMAX 512 #define PMAX 256 #define CHAR 1 #define BOL 2 #define  y wister char **dp; register int i; for (dp = documentation,i=0; *dp; dp++,i++){ if (i>22){ printf("\nHit any key to continue:"); getchar(); i = 0; } printf("\n%s", *dp); } } usage(s) char *s; { fprintf(stderr, "?GREP-E-%s\n" r pEOL 3 #define ANY 4 #define CLASS 5 #define NCLASS 6 #define STAR 7 #define PLUS 8 #define MINUS 9 #define ALPHA 10 #define DIGIT 11 #define NALPHA 12 #define PUNCT 13 #define RANGE 14 #define ENDPAT 15 int cflag; int fflag; int nflag; int vflag; int  z x, s); fprintf(stderr, "Usage: grep [-cfnv] pattern [file ...]. grep ? for help\n"); exit(1); } compile(source) char *source; /* Pattern to compile */ /* * Compile the pattern into global pbuf[] */ { register char *s; /* Source string point s qnfile; int debug = 0; /* Set for debug code */ char *pp; char file_name[81]; char lbuf[LMAX]; char pbuf[PMAX]; main(argc, argv) char *argv[]; { register char *p; register int c, i; int gotpattern; FILE *f,*fopen(); int gotcha; { yer */ register char *lp; /* Last pattern pointer */ register int c; /* Current character */ int o; /* Temp */ char *spp; /* Save beginning of pattern */ char *cclass(); /* Compile class routine */ s = source; if (debug) prin t r printf("\n"); if (argc <= 1) usage("No arguments"); if (argc == 2 && argv[1][0] == '?' && argv[1][1] == 0) { help(); return; } nfile = argc-1; gotpattern = 0; for (i=1; i < argc; ++i) { p = argv[i]; if (*p == '-') { ++p; while  | ztf("Pattern = \"%s\"\n", s); pp = pbuf; while (c = *s++) { /* * STAR, PLUS and MINUS are special. */ if (c == '*' || c == '+' || c == '-') { if (pp == pbuf || (o=pp[-1]) == BOL || o == EOL || o == STAR || o == PLUS || o == MINU u s(c = *p++) { switch(lower(c)) { case '?': help(); break; case 'c': ++cflag; break; case 'd': ++debug; break; case 'f': ++fflag; break; case 'n': ++nflag; break; case 'v v t': ++vflag; break; default: usage("Unknown flag"); } } argv[i] = 0; --nfile; } else if (!gotpattern) { compile(p); argv[i] = 0; ++gotpattern; --nfile; } } if (!gotpattern) usage("No pattern"); if (n ~ |? MINUS : PLUS; pp = spp; /* Restore pattern end */ continue; } /* * All the rest. */ lp = pp; /* Remember start */ switch(c) { case '^': store(BOL); break; case '$': store(EOL); break; case '.': store(ANY w ufile == 0) grep(stdin, 0); else { fflag = fflag ^ (nfile > 0); for (i=1; i < argc; ++i) { if (p = argv[i]) { int rargc; char **rargv; glob(&rargc,&rargv,argv[i]); while (rargc--){ p = *rargv++; if ((f=fopen(p, "r"  }); break; case '[': s = cclass(source, s); break; case ':': if (*s) { c = *s++; switch(lower(c)) { case 'a': store(ALPHA); break; case 'd': store(DIGIT); break; case 'n': store(NALPHA);  x v)) == NULL) cant(p); else { grep(f, p); fclose(f); } } } } } } file(s) char *s; { printf("File %s:\n", s); } cant(s) char *s; { fprintf(stderr, "%s: cannot open\n", s); } help() /* * Give good help */ { reg ~ break; case ' ': store(PUNCT); break; default: badpat("Unknown : type", source, s); } break; } else badpat("No : type", source, s); case '\\': switch(*s++){ case 'b' : c = '(';break; caseM       'e' : c = ')';break; case 0 : c = '\n';break; default : c = *(s-1); } default: store(CHAR); store(lower(c)); } } store(ENDPAT); store(0); /* Terminate string */ if (debug) { for (lp = pbuf; lp < pp;) { if  ad pattern\n"); } grep(fp, fn) FILE *fp; /* File to process */ char *fn; /* File name (for -f option) */ /* * Scan the file for the pattern in pbuf[] */ { register int lno, count, m; lno = 0; count = 0; while (fgetss(lbuf, sizeof lbuf,  ((c = (*lp++ & 0377)) < ' ') printf("\\%x ", c); else printf("%c ", c); } printf("\n"); } } char * cclass(source, src) char *source; /* Pattern start -- for error msg. */ char *src; /* Class start */ /* * Compile a class (within fp)) { ++lno; m = match(); if ((m && !vflag) || (!m && vflag)) { ++count; if (!cflag) { if (fflag && fn) { file(fn); fn = 0; } if (nflag) printf("%d\t", lno); printf("%s\n", lbuf); } } } if (cflag) {  []) */ { register char *s; /* Source pointer */ register char *cp; /* Pattern start */ register int c; /* Current character */ int o; /* Temp */ s = src; o = CLASS; if (*s == '^') { ++s; o = NCLASS; } store(o); cp = p if (fflag && fn) file(fn); printf("%d\n", count); } } match() /* * Match the current line (in lbuf[]), return 1 if it does. */ { register char *l; /* Line pointer */ char *pmatch(); for (l = lbuf; *l; l++) { if (pmatch(l, pbuf)) re p; store(0); /* Byte count */ while ((c = *s++) && c!=']') { if (c == '\\') { /* Store quoted char */ if ((c = *s++) == '\0') /* Gotta get something */ badpat("Class terminates badly", source, s); else store(lower(c)); } else if turn(1); } return(0); } char * pmatch(line, pattern) char *line; /* (partial) line to match */ char *pattern; /* (partial) pattern to match */ { register char *l; /* Current line pointer */ register char *p; /* Current pattern pointer */ (c == '-' && (pp - cp) > 1 && *s != ']' && *s != '\0') { c = pp[-1]; /* Range start */ pp[-1] = RANGE; /* Range signal */ store(c); /* Re-store start */ c = *s++; /* Get end char and */ store(lower(c)); /* Store it */ } e register char c; /* Current character */ char *e; /* End for STAR and PLUS match */ int op; /* Pattern operation */ int n; /* Class counter */ char *are; /* Start of STAR match */ l = line; if (debug > 1) printf("pma lse { store(lower(c)); /* Store normal char */ } } if (c != ']') badpat("Unterminated class", source, s); if ((c = (pp - cp)) >= 256) badpat("Class too large", source, s); if (c == 0) badpat("Empty class", source, s); *cp = c; return(s ); } store(op) { if (pp >= &pbuf[PMAX]) error("Pattern too complex\n"); *pp++ = op; } lower(c) register int c; { if (c>='A' && c<='Z') c += 'a'-'A'; return(c); } badpat(message, source, stop) char *message; /* Error message */ char *sour : if (l != lbuf) return(0); break; case EOL: if (*l != '\0') return(0); break; case ANY: if (*l++ == '\0') return(0); break; case DIGIT: if ((c = *l++) < '0' || (c > '9')) return(0); break; case ALPHA ce; /* Pattern start */ char *stop; /* Pattern end */ { register int c; fprintf(stderr, "-GREP-E-%s, pattern is\"%s\"\n", message, source); fprintf(stderr, "-GREP-E-Stopped at byte %d, '%c'\n", stop-source, stop[-1]); error("?GREP-E-B : c = lower(*l++); if (c < 'a' || c > 'z') return(0); break; case NALPHA: c = lower(*l++); if (c >= 'a' && c <= 'z') break; else if (c < '0' || c > '9') return(0); break; case PUNCT: c = *l++; if (c == 0 || M      c > ' ') return(0); break; case CLASS: case NCLASS: c = lower(*l++); n = *p++ & 0377; do { if (*p == RANGE) { p += 3; n -= 2; if (c >= p[-2] && c <= p[-1]) break; } else if (c == *p++) break;  xpsc(row,col);asm("xult");} main(argc, argv) char *argv[]; int argc; { register n; while(1){ if (argc < 2) { fprintf(stderr, "\n%s: number of rings (0-13): ",argv[0]); xglu(&argv[1]); } n = atoi(argv[1]); if (n<0 || n>13) { fprintf(s } while (--n > 1); if ((op == CLASS) == (n <= 1)) return(0); if (op == CLASS) p += n - 2; break; case MINUS: e = pmatch(l, p); /* Look for a match */ while (*p++ != ENDPAT); /* Skip over pattern */ if (e) /* Got a match tderr, "\nBad number of rings!\n"); exit(1); } setup(n); hanoi(n, 0, 2, 1); asm("xpcl"); } } hanoi(n, a, b, c) { if (n == 0) return; hanoi(n-1, a, c, b); movering(n, a, b); hanoi(n-1, c, b, a); } setup(n) { register i; asm( ? */ l = e; /* Yes, update string */ break; /* Always succeeds */ case PLUS: /* One or more ... */ if ((l = pmatch(l, p)) == 0) return(0); /* Gotta have a match */ case STAR: /* Zero or more ... */ are = l; /* Remember li "xcls"); /* clear screen code for PDOS */ top[0] = top[1] = top[2] = 22; for (i=11; i<23; ++i) { cput(15, i, '|'); cput(40, i, '|'); cput(65, i, '|'); } dca(5, 23); for (i=5; i<76; ++i) putc('-', vt_fd); for (i=n; i>0; --i) draw(i, 15 ne start */ while (*l && (e = pmatch(l, p))) l = e; /* Get longest match */ while (*p++ != ENDPAT); /* Skip over pattern */ while (l >= are) { /* Try to match rest */ if (e = pmatch(l, p)) return(e); --l; /* Nope, try earlie , top[0]--, 'x'); } cput(x, y, c) { dca(x, y); putc(c, vt_fd); } draw(ring, centre, y, ch) { register i; char tbuff[80]; dca(centre-ring, y); for (i=0; i>BREAK"); /* output message and stop */ exit(0); } } movering(ring, from, to) { int fromc, toc; int fromy, toy; fromc = 15 + from*25; toc = 15 + to*25; fromy = ++to # /* * * * The information in this document is subject to change * without notice and should not be construed as a commitment * by Digital Equipment Corporation or by DECUS. * * Neither Digital Equipment Corporation, DECUS, nor the au p[from]; toy = top[to]--; while (fromy != 10) { draw(ring, fromc, fromy, ' '); draw(ring, fromc, --fromy, 'x'); } if (fromc < toc) while (fromc != toc) { cput(fromc-ring, fromy, ' '); cput(fromc, fromy, 'x'); cput(fromc+1, fromy, ' ' thors * assume any responsibility for the use or reliability of this * document or the described software. * * Copyright (C) 1980, DECUS * * * General permission to copy or modify, but not for profit, is * hereby granted, provided that the  ); cput(fromc+ring+1, fromy, 'x'); ++fromc; } else if (fromc > toc) while (fromc != toc) { cput(fromc+ring, fromy, ' '); cput(fromc, fromy, 'x'); cput(fromc-1, fromy, ' '); cput(fromc-ring-1, fromy, 'x'); --fromc; } while ( above copyright notice is * included and reference made to the fact that reproduction * privileges were granted by DECUS. * */ /* * Hanoi. */ #include int top[3]; char iobuf[80]; #define vt_fd stdout #define dca(col,row) {xlkt(); fromy != toy) { draw(ring, fromc, fromy, ' '); draw(ring, fromc, ++fromy, 'x'); } } N      # /* * Copyright (C) 1980, DECUS * * General permission to copy or modify, but not for profit, is * hereby granted, provided that the above copyright notice is * included and reference made to the fact that reproduction * privileges were  char *h_lp; }; struct run *crp = NULL; /* current run pointer */ struct run *frp = NULL; /* first run pointer */ struct run *lrp = NULL; /* last run pointer */ char **line; FILE *ofp; FILE *tfp = NULL; FILE *ifp = NULL; char *ofn = NULL; struct granted by DECUS. * */ /* * Sort utility. * * Updated 13-Mar-80 for the new RSX library. * * sort [-nr] [-o outputfile] [file ...] * * Sort sorts all of the named files together and writes the result * to the standard output. The standard heap *heap; int nline = 0; int nruns = 0; char lbuf[133]; int nflag; int rflag; extern char *getline(); extern char *malloc(); extern char *nalloc(); extern FILE *fopen(); main(argc, argv) char *argv[]; { register struct run *rp; register cha input is sorted if no file * names are supplied; sort may be used as a filter. * * The `-o' option causes the sorted output to be written to the * named output file instead of to the standard output. The output * file may be the same as on r *cp; register nlbuf; struct heap *hp; int c, i, nf; nf = argc - 1; printf("\n"); for (i=1; i= argc) usage(); ofn = argv[i]; --nf; argv[i] = NULL; break; case 'r': case 'R': ++rflag; break; default: usage(); } }  thmetic on a * leading numeric string consisting of digits and an optional sign. * * The `-r' option reverses the sense of the comparisons. * * Error messages: * * "Cannot create temp. file" if the required temporary file cannot * be created } if (nf == 0) ifp = stdin; line = nalloc(NLINE * sizeof(char *)); crp = nalloc(sizeof(struct run)); for (;;) { if (ifp == NULL) { for (i=1; i= argc) break; argv[i] = . Get help. * "Panic: Unexpected end of file" * "Panic: empty run" * "Panic: temp. file" * * Author: * David Conroy * Very slightly modified by Martin Minow * * */ #include /* the following constant determines how many items a len(lbuf) + sizeof(char); if (nline >= NLINE || (cp = malloc(nlbuf)) == NULL) { quick(0, nline-1); if (tfp == NULL){ /* create unique file name using task number */ sprintf(tempnam,"sort%d:tmp",xrts(-1)); xdfl(tempnam,50); /*  re sorted in memory */ /* going to disk obviously slows things down, but makes possible larger */ /* runs. */ #define NLINE 1000 char tempnam[30]; struct run { struct run *r_rp; long r_seek; int r_size; }; struct heap { struct run *h_rp;  pre-allocate the file */ if ((tfp = fopen(tempnam, "w")) == NULL) { fprintf(stderr, "Can't create temp. file %s\n", tempnam); exit(1); } } saverun(); putline(tfp); crp = nalloc(sizeof(struct run)); cp = nallocN      (nlbuf); } strcpy(cp, lbuf); line[nline++] = cp; } quick(0, nline-1); if (frp == NULL) { openoutput(); putline(ofp); quit(); } saverun(); putline(tfp); fclose(tfp); mfree(line); openoutput(); if ((tfp = fopen(tempnam, "r+")) == NU } } /* * Save a run. * The run block has been preallocated * because there may not be enough space * to allocate it now. */ saverun() { long ftell(); crp->r_rp = NULL; crp->r_seek = ftell(tfp); crp->r_size = nline; if (frp == NULL) frp =  LL) panic("Temp. file %s won't open\n",tempnam); heap = nalloc(nruns * sizeof(struct heap)); rp = frp; hp = &heap[nruns]; while (rp != NULL) { --hp; hp->h_rp = rp; if ((hp->h_lp = getline(rp)) == NULL) panic("Empty run.\n"); reheap(hp, crp; else lrp->r_rp = crp; lrp = crp; ++nruns; } /* * Get a line from the specified run * on the temp. file. * Pack the line into allocated storage * and return a pointer to it. * Return NULL if there are no lines left * in the run; real en d of file is an * internal botch. */ char * getline(rp) register struct run *rp; { register char *cp; long ftell(); if (rp->r_size == 0) return (NULL); fseek(tfp, rp->r_seek, 0); if (fgetss(lbuf, sizeof lbuf, tfp) == NULL) panic("Unexpected eap[0].h_lp; fputss(cp, ofp); mfree(cp); } quit(); } /* * Open the output file and stash its file * pointer in `ofp'. If no output file is * given `ofp' is a dup. of `stdout'. */ openoutput() { if (ofn == NULL) ofp = stdout; else if ((of end of file\n"); rp->r_seek = ftell(tfp); --rp->r_size; cp = nalloc(strlen(lbuf) + sizeof(char)); strcpy(cp, lbuf); return (cp); } /* * Dump the lines in the array `line' to * the temp. file. */ putline(fp) register FILE *fp; { register i;  +i; compare(line[i], p) < 0; ++i) ; for (--j; j > i; --j) if (compare(line[j], p) <= 0) break; if (i < j) { t = line[i]; line[i] = line[j]; line[j] = t; } } t = line[i]; line[i] = line[n]; line[n] = t; quick(m, i-1); quic ) ++c; } else c = strcmp(a, b); if (rflag) c = -c; return (c); } /* * Allocate space. * If no space, abort with a nasty * little message. */ char * nalloc(n) { register char *p; if ((p = malloc(n)) == NULL) { fprintf(stderr, "Out of k(i+1, n); } /* * Rebuild a heap. * Used to build the initial heap and * to reorder the heap when a new item * is read into it. */ reheap(h, n) register struct heap *h; { register i, j; struct run *trp; char *tlp; for (i = 0; (j = 2*i+1) < n space.\n"); exit(1); } return (p); } /* * Quit. * Get rid of the temp. file. * Exit. */ quit() { if (tfp != NULL){ fclose(tfp); unlink(tempnam); } exit(0); } /* * Tell the user just what is expected * of him. */ usage() { fp ; i = j) { if (j+1 < n && compare(h[j+1].h_lp, h[j].h_lp) < 0) ++j; if (compare(h[i].h_lp, h[j].h_lp) <= 0) break; trp = h[i].h_rp; h[i].h_rp = h[j].h_rp; h[j].h_rp = trp; tlp = h[i].h_lp; h[i].h_lp = h[j].h_lp; h[j].h_lp = tlp;  rintf(stderr, "Usage: sort [-nr] [-o outputfile] [file ...]\n"); exit(1); } /* * Fatal errors. * Print a message and die. */ panic(a) char *a; { fprintf(stderr, "Panic: %s", a); exit(1); } user just what is expected * of him. */ usage() { fpO      # /* * * * The information in this document is subject to change * without notice and should not be construed as a commitment * by Digital Equipment Corporation or by DECUS. * * Neither Digital Equipment Corporation, DECUS, nor the a rd; ++w; } } tw += w; tl += l; tb += b; output(w, l, b, fn); } output(w, l, b, fn) long w; long l; long b; char *fn; { printf("%8ld word%c %8ld line%c %8ld byte%c", w, plural(w), l, plural(l), b, plural(b)); if(fn) printf(" %s uthors * assume any responsibility for the use or reliability of this * document or the described software. * * Copyright (C) 1980, DECUS * * * General permission to copy or modify, but not for profit, is * hereby granted, provided  ", fn); printf("\n"); } plural(n) long n; { return((n == 1) ? ' ' : 's'); }  that the above copyright notice is * included and reference made to the fact that reproduction * privileges were granted by DECUS. * */ /* * wc [file ...] * * Updated 28-Apr-80 for the new library, byte count added. * Updated 16-Jun-80 to  add fwild support */ #include long tw = 0; long tl = 0; long tb = 0; #ifndef vms char file_name[81]; #endif FILE *fopen(); main(argc, argv) char *argv[]; { register int i, tf; register FILE *fp; int  gotcha; tf = 0; printf("\n"); if(argc < 2) { ++tf; count(stdin, 0); } else #ifdef PDOS for (i = 1; i < argc; ++i) { if ((fp = fopen(argv[i], "r")) == NULL) { fprintf(stderr, "\"%s\": cannot open\n", argv[i]); continu e; } ++tf; count(fp, argv[i]); fclose(fp); } #else for (i = 1; i < argc; ++i) { if ((fp = fwild(argv[i], "r")) == NULL) { fprintf(stderr, "\"%s\": illegal file name\n", argv[i]); continue; } for (gotcha = 0; fnext( fp) != NULL; gotcha++) { ++tf; iovtoa(fp, file_name); count(fp, file_name); } if (gotcha == 0) fprintf(stderr, "\"%s\": cannot open\n", argv[i]); } #endif if (tf > 1) output(tw, tl, tb, "total"); } count(fp, fn) FILE *f p; char *fn; { register int c, inword; long w; long l; long b; l = 0; w = 0; b = 0; inword = 0; while((c=getc(fp)) != EOF) { ++b; if(c==' ' || c=='\t' || c=='\n') { inword = 0; if(c == '\n') ++l; } else if(!inword) { ++inwoO