p$C Compile (p$p.CMD LIDEFSOURCE&p$@p . cc8c.preYc.passc.passc.opec.asc.linmak p$p.clib.cstart.p$p.ctype.^direct.cerrno.gmodes.smodule.wos9.setjmp.sgstat.signal.stdio.time.p$p'.&SY/line.prof.rdump.%p$p0.&/abort.@access.Dcfinish.Jchange.Mcstart.Udir.oid.qintercept.uio.{mem.misc.mod.process.profdummy.signal.stat.syscall.syscommon.tidyup.time./p#Rp9 R e acc0&94 4@O_Z&3041y'b3-'O' b'0'02d510䦀'T 'P ',& "''&l4 '&5o '" 00l ' ',' o 0441č oo0ᯩ  0묩 $  % 9**** STACK OVERFLOW **** 04d?oY 9  940040b&2d94@2q0 4_4042fO_h0-42b0 y40A4L2d+&~0 d4 N2bp0l-& Ogl'G-l0lDl''XI0C-l0ll#}ume] U M0!j0o 0j 2 O_ l'-l0ll l0l=&l40742d7'x074 2bnc'nr' nC'nR&Nn40 J4 2d 2b0432b0:4(2b'!0-42b042b042bhhh%-] &] &W&O_4074h2d042b042b0ll42b042b%&*R'"r'042b04t2b 4O_ #04c2bhXI004P2bhhh%-O_0z432b074(2bO_ #0e42bfXI0042bfff-0;42bl42b0,42b#4 2b!42b42b042b'042b42b042b+4 O2b&g040 4I2d0n4040A42f~&0A4042dO_4440 40 4 04u2l2o54@`2~O_4404q2f&{ "4@I404 2d4@q2b0554@d'd42b0842b54@f4f404l2f04 4 P2d4V54@d&].'5g&O_] g^54@d2}O_ /'aa&a.a/ ].&^@ O_2c54@Ld4+42d5CC1 VERSION %s COPYRIGHT 1983 MICROWARE REPRODUCED UNDER LICENSE TO TANDY RS 01.00.00wcan't open shell command fileSuffix '.%c' not allowed for outputToo many librariesunknown flag : -%c %s : no recognized suffixno files! incompatible flags%s : output name not applicableoutput.m.recho '' -x echo c.prep: C.PREP -l > x echo c.pass1: C.PASS1 -e -s -p -o= del echo c.pass2: C.PASS2 -s -p -o= del echo c.opt: C.OPT del echo c.asm: C.ASM -o= del echo c.link: C.LINK /dd/lib/cstart.r -o= -l=/lib/clib.l del -t -p rcan't reopen '%s'shellccdevice 4@2yO_4 40P4 2f';e3 de0ed.dOO_4 2b0 O_2g5Init4@3nFO'h3M4@0>" V54@h&~'FdHf+'f+&F F4r'd& FBKD05O_54@d2|O_j j+&   0dh~' x'ٌ+' \ <44@ p2db'4O_44h4 &2h E44@ f ʁ44@ 82db '2 O_ r'a'w'Œd' b2d54@O_4h4h4K4@f4f42d&O_ 5O_ $4@h4T2bf4f42d~,O_ h4h44@2f54Ff 3A'X&' 40 44@72ff5%d4@0{0f4f 4@d0h4h404(2f54@d0h4h404 2fO_d54@f2u h';h42bh%&hO_bfh-& h O_h0&0   f4 4jfhh0?0O&h.&3d b4 4jbhh0?0O& O_dh&f404t f404 f4j0?0O404>f40404cd&bf404f4n4F2fx0}0id'8id 'iibb&f4kf4h442h /f4k h 2f404l42d44G2f9h42b,d'ӌo'x'X'u' f'e'g'E' G'c's'%l'n 2k54F0ǯf,(f@Pf,0F404C2d5-0f4b4 2d054vjO_bO_ lall-0ad 6ll,ll'bb'0O_dddi&l0O_j2f54F0ǯ3fO0fDVDVDVf& Į03_4@0Ѭ#O_054V0ǯb3hO4b /l'A a 0hDVDVDVDVh& Įb0b3_4@0Ѭ#O_04@fjhj&% 42bjj. 42bhh&' 42bjj.54@fh44@v2b@Ph&% 42bhh. 42b&' 42bhh.54@4f42d54@d05-327684@fF"'FO"&4@2bFO'540g4H4FO@'0 02f&JF FF_~&4@2bădD$FO@'d & 4@&d54@df44@!4F2df44@;G4F3nO_ 03M42b-54@d2~'F&5FO'4@2b O_H4X2bO_F54@d' FO"'5F_~&4@2b4@54@d2|F_~&#D'O_44@2b44H42hģBb'nF_~'cFO@'3B 'b44H4t2f&0d *bbb& )b4B4H4,2fb' 2F FD FFBKDO_2d54@54@dFO&-204H4O_42fF4b&@ F2 FFO '5K&FO@' KB&K42bB'FF FF0JBKBKD54@e 0' el0k5d'ތo'׌x' 54@054@d&0d54@f2~f0&f54@f2~f0&0&f54@d f0f&O_53A4'45M&mb&c=b5444ei=beh=aa$ldi=aa$ldh=fhb2h9]'gbfcZ& ]'dbfcZ&b4bd2d9]'hcibZ& ec'-'+''' '4@?$5@h5@O_9f?צec' ' f?4@hj?5@be?%?be?%O9c?be?be ?%O9&de&\b?%Q4B3?5B$4?57b?8c?%&O94 feh4 ?$ &O_550 54 efh4 ? 4 h'ef?$5  54 h'ef? 4@j& 4'%'O 05e?% e?%0hgf+e?%054`fiHHHHk?05`%J94`fiHHHHk? 4@d?5@54d%%4 ? 5 $2b9ߣ2b4d4O䧀%5b %! $4 O$  5 99ce?O_?%b'oO9ce? 32BDIHHHHKMF??4`fhjmo?5`%IO94 ? 5 $%8O94 ? $5 ( 54 ~' d?$ & K)O_5O 9%O_9b?9ctmp.XXXXXXc.com 'd ilxB0 HHHHHHHHHH BBBBBB DDDDDD _icc1!$/p#'pZ('  c.pre0&94 4@O_Z&3041%'b3'O' b'0'02d5~10䦀'T 'P ',& "''&l4 '&5o '" 00l ' ',' o 0~441č oo%-00묩$ %9**** STACK OVERFLOW **** 04d?o$9ʣ940040b&2d94@4$54@y2|4;2b04$Lj0j+' j-& 3A3A=&0A|3A00O&_&Ub bb00O&_'O_=& bb 0.bb44@2d 414p2d0 l'YE'Ze'SD'_04 42d '2~ 404p2d04 04Z2d0404742f404P42f 5 ' 4542d040b42d& " 4142d0:4s2b4"2bhh&;2d5010 0 bad define r%s 0 0 can't open file 4@a0ΟO_ 54@F20404O2d 2 ~'O_4 2b ' '00O'<04 C2b040452d~& 4>04042d~&04042d~& 4 j040l42d~& O_4 K040T42d~& 040?42d~& 040)42d~&O_N0404k2d~&'W N040 4G2d~& '3O_ 040 4(2d~& 0 20 42b r~&eO_4 2b#'j'G'042482d /00Ο4.2b042b0404a2d 0 2 54@r'2!<4 2b,''"&"04 2b04 f2b00O&_&04 2b042b'V2 & O_  (&  'O_"4 2b2|&XI0304O_jbgb&4 2b b'b 0H}bbZ\&O_4 2bjjO_4 v2bjj'+& !,')'('''"'jj4 /2b&Y 2&XI00j&&2d')& 4 2b0hbb@&mbd-Pd",GdXI00fdXI0/0  0 0ff&f@0 Gb''b"&72cc 0 cc'c&c 0 2a b0b' b&'O_3hC4@F2bC' 02 v3 0&`0&F042bx'X&:042b00O@& 04e2b&O_!2854@2~f4 2bXI00 4h42d~' 05&O_54@2w'U!42b00O&_&'042bm&O_40b4:2d 04 0 J4 a2b2i54@ O_Fd4=2b~&54@24 O2b%+4 2b#XI00#XI00%%+4 2b%-'-4 q2b O_(&%42b3 'q)'iXI0b000O&_&;042b00&h,&4u 0"4 &2b4]2b=''"& ʀ00O&_&042bO_ :#XI0b04042d~&@#0O_ ###-0 !4 C2b0!& u`0&F4 2b42bx'X&:4 2b4m2b00O@& 4 2b4G2b&O_4 2b2'54@d O_&54@2'O-3d42b"' <&O_42b<&K>&"0404K2d0y404T2d044@2d O_42b'&O_0A40f4 O2d"'452bb b b042bb04d42d0d4042d0d4042d040474,2fbO_4542dO_ " 0 0412b2&54@&2u'{42b04f2b042bi'i 4l2b04?2b'$04042d04'042d040474l2f2k54@d2| /&b&300O'_ 00O&_b0b'040/O_02d54@2w4 &0~ +4~2b00O&_'0h42b\04)2b4XI060JJ44XI0 0~'04& O_mn2i54@jJ& 0454XI0 0' & O_O_ @4@)4& 04X544XI0 04XI060J54@2\& O_4K2bO_4>2b' 4b&2a54@d2~ 42b ,00O&_'O_ 42b00O&_'54@*o~''04642d5 4 2b'\  4042d4042d040474{2f 454m2duO_554@ 4 2b '54@v&5d' ~'  54@J2}O_b^  ߞ*&? b& S~& ' b*&/&  ' ' '/' 2c54@2|b0Ο3 4 w2b&, O ' 0N4z2bO_ J  4 E2b '' bb.b, 0"472bO_  2d5defineincludeifdefifndefendifelseundefasmendasmlineillegal '#'illegal macro namemacro definition error/dd/defs/rcan't openbad include file'#if' nesting too deepillegal '#if' macro nameno '#if' for '#else'too many #endifssource file read errorsource file line too long4@14 4h4044F2h454@04 4h404 4@04 4h40442h54@h &3  h&3 34@l4?2dh404'2df4f4042f54@df0f&4@54@d Kh4h4h4#4042j @f4f4#40~ f4f4#40t42h 7'P'5' 54@d2|O_ bb&bO2d54@% 42b54@d2~#/04}2b "42b& 04`2b44@ "4054@d42bd54@d2~0&N54@e0;54FO_44042f&v "4@I40L4 2d4@2b0L55%d %d %s %c%c %s %s %c%c %d %c%c %s grab overlapout of memoryccdevice4@2yO_4 40P4g2f';e3` de0ed.dOO_4U2b0` O_2g5Init4@3-FO'h3M4@0"V54@h&~'FdHf+'f+&F F4r'd& FBKD05O_54@d2|O_j j+&   0dh~' x'ٌ+' \ <44@ 2db'4O_44h4 2h E44@ ʁ44@ 2db '2O_ r'a'w'Œd' b2d54@O_4h4h4K4@f4f42d&O_ 5O_ $4@h4 2bf4f42d~,O_ h4h44@2f54@0:l0f4f 4@dl0h4h404(2f54@dl0h4h404 2fO_ld54@f2u h';h42bh%&hO_bfh-& h O_h0&0   f4  4jfhh00O&h.&3d b4  [4jbhh00O& O_dh&f404t f404 f4j00O404>f4040n4cd&bf404f4n42fx0}0id'8id 'iibb&f4kf4h442h /f4k h 2f404l42d44G2f9h42b,d'ӌo'x'X'u' f'e'g'E' G'c's'%l'n 2k54F0nf,(f@Pf,0F40n42d5-0f4b4 2d0n54vjO_bO_ l ll-0 d 6ll,ll'bb'0O_ddd(&l0O_j2f54F0n3xfO0fDVDVDVf& Į03_4@0x#O_0n54V0nb3xhO4b /l'A a 0hDVDVDVDVh& Įb0b3_4@0x#O_0n4@fjhj&% 42bjj. 42bhh&' 42bjj.54@fh44@2b@Ph&% 42bhh. 42b&' 42bhh.54@l4f42d54@dl0l5-327684@fF"'FO"&4@J2bFO'540g4H4FO@'0 02f&JF FF_~&4@2bădD$FO@'d & 4@&d54@df44@4F2df44@;G4F3-O_ 03M42b-54@d2~'F&5FO'4@2b O_H4 2bO_F54@d' FO"'5F_~&4@2b4@54@d2|F_~&#D'O_44@2b44H4}2hģBb'nF_~'cFO@'3B 'b44H4<2f&0d *bbb& )b4B4H42fb' 2F FD FFBKDO_2d54@54@d'FF_~&=D$ăO 4@o2b54@f'FO'd'B"5dd54@d2|4@2bb'4@2b& b4 2d54@d2~F1'FO1'54@2b0-4&FO@' 0:432bFO'%K4B4H4FO@'0 0 40JB4H4r2f.F4b' F5BBDO54@dFO&-204H4O_482fF4b&@ F2 FFO '5K&FO@' KB&K4$2bB'FF FF0JBKBKD54@e 0' e+0*5d'ތo'׌x' 54@054@d&0d54@f2~f0&f54@f2~f0&0&f54@d f0f&O_53A4'454@d2{O_a ' '-& O_c-'+& a4 24ba00O&c'a@P a2e5M&mb&c=b5444ei=beh=aa$ldi=aa$ldh=fhb2h9]'gbfcZ& ]'dbfcZ&b4bd2d9]'hcibZ& ec'-'+''' 'h4@?$5@\h5@O_9f?Qec' ' 9f?:4@hj?5@,be?%?be?% O9c?be?be ?%O9&ަe&քb?%4B3?5B$4?5b?c?%O94 feh4 ?$ &O_550 54 efh4 ? 4 h'ef?$5 V 54 h'ef? 4@j& 4'%'O05e?% e?%0hgf+e?%054`fiHHHHk?05`%94`fiHHHHk? 4@d?5@4d%%4 ? 5 $2b92b4d4O䧀%5b%!$4O$ 5994@#d0? 5@2O42b;O9%O_9pb?9bw'd (lxB0 HHHHHHHHHH BBBBBB DDDDDD (c.prepKp/p#{vp|{v %c.pass0&94 4@O_Z&3041y'b3v'O' b'0'02d510䦀'T 'P ',& "''&l4 '&5o '" 00l ' ',' o 0441č i|ooxE00묩$ %9**** STACK OVERFLOW **** 04d?ow£9У940040b&2d94@d2zCb' bC 4Z2bb4d4h4@I2f O_&bd4@d2~N44@d42fCC4@d f0fhh&54@0404%g4@d42b04m4@04e4@?4f40 4c I4@2040b4p2d840b4p2d04842d2254@dN4h40 44%4@d\h4042df404v2dh'&0 42b0 'h&-0 4f2b 2 4p2b3_.0I4D2b))/04l2b0)4"2bey54@h4h4h404M2h54@04f4j2d 4 14@04g4kr2d54@d~'J42bL42b4@2b54@d~'-J-54@4h4h4 2f54@_3&Da' '' '''''܌'_4&a 44@_3&a' ''''!'Q4@dGVGV 4@dXIXI4fO54@dL-#c. 4@d~'B 4@_d&PcO_5 000d'3A-0v0v4S2b54@ P%_('_*'_&5%s : multiple definitioncompiler error - line %d **** %s **** ^too many errors - ABORT4@2rl&O__jah?dcbO{j j-j/h d'x' 42b~'jd&Y/4&Bcb?d4p2bf'!b4f44l44@/42l 0\4 2b4@L2b0n ?b4f4l44@44k2ll 0>42b~'a/ 2l2n54@t2t_Vc4?4a4O_4O_4_42lNcN] ~'$o.42bJ&r4@2beO_42b~&' 2c4?4O_4O_4O_4642l.4_h?fcdMHj'%d4h44O_444e2l0H4w?fcdM_-&/M@~'j O_42bj&0lS.42b jjd4h40d4NO_4O_4642l42b b7'4'J'K'6'-'@' C'D'B'='<'A';'#&O__!cd?fLd4h44k44@e4>2l.vL42bj&#bc4?4O_4O_4O_4642ljc4?4 444@P42lc4?44O_44@B42l,42bJ_h?fcdAAKAA_4'9ac4?4a4O_4O_4_4n2ljd4h4444@4N2lKڌ-'،+'E'{F't_ 5>_0l ?_ 2c4?44O_44@_42lKI <'ƌ='02l54@2~ _.'@4m2b'%4b4O_44@h4 42l_0&J 0 H4@2~f4 2b~'F6&H O_0O42b~'4@2b2b54@m_ MW_ R_ Q_ a5_G-__/_-_.A'B'C'0'x'd'/'r 54@defh5fh5f4ji5h'f4jj h' f4jj?5&fhi5fhi5fhi5f4jj5f4jj5fh&fh'fh/fh,fh-fh.f@P5f&fCS5f'~h'xtf&h'hd2|lbjh 6b") &b$ b% b# O_2d5`'Ōa'̌b' 2d0\42bO_5P'Q'R'S'T'W'X'Y'V'U'Z'['_'nj]'ό^'׌\'ߌC'@'D'G'H'`'a'b'c'?54@2r?dcb040l404.2fh40l40j422fh0G44}2bf' 0e42bb4f4O_4O_4O_4 4 2lfhl4l4j4352ff2n54@5-'-J- 4N82bdFfJhLjHlNnO_054@04%O4@F D4@2b0 4@2bH 2D4B443!2f54@ 42b54'nj 'ԌE'F'5third expression missingoperand expectedprimary expectedconstant requiredconstant operatorname in a castexpression missing4@d2t~'J42bJL42bL4@>2b4@'0l4@2bJjLhFdd&Cj6&9j' h bh h bh 42bh42bj42b4@ @dB& jA'dA&1jB&'j bBb4@2bj42bb 202l54@d2r~&O_JlLjFf4p&fG' fH&l6& O_b4l6& O_b~'0nb''(='!?'G'cH'\S'R'W'qX'jY'cT'\V'qU'j]'_'\'^'Z'Ό['njP'Q'Wx'/'d'ljhf254@zdF6&H'044@2d6FO_H54@Ld2~4@2b ( 44@@2d 40i44@2d 'ӌ'ӌ'' '' 2b54@d2|O_j 2 44@2d44@2dj44@2d'Ɍ'Œ'Œ'Ќ'qO0&djF6&34;s2bbHb, O_bH 2JFB$ Nj44@12d 5F6&*4;2bbb4HIH 2bHKF ̌'f'''j & 44@2d j'Ռ'Ռ''pjsjO0&^FJ&HbbH 26FB; 944@P2d (FJ&4:92bbb4HHAH0d'''''kj "44@2dj44@2d'ٌ'Ҍ'ˌ'Č'j >FK& HFH0d, !FK&H4HFR-0d%  L''''Ì' -'_''g''4'u'4O_4O_4O_4O_4O_4O_42lb44@2dFbJO_Ljy4@d2|4@k2bbj4`2bb& & b& 4l4 &44@2d b'&  2d54@Dh4f4j42fd&j5j4l4h4O_4O_4642lĮj4l4O_44@4R42l42bF6&O_ B054@ܥd2~Fv'5o'.B''4&*4@=2bh&O0 & O_& &044@2d4@2b4@5dF4&&044@ݛ2d4@4@d2~FA&& JD4@b4ސ2d4w2b O_ 4@2bF4&1H'0b 6FHO_Į / 2044@2d4@N2b6FO_HO_2b54@Sd'&044@ܹ2d4@2b54@"d44@042fJ4݄2bL4{2bO_LJ4F0H54@ۮd 5''''O_54@ڬ0W4f4"2d5divide by zerotypedef - not a variablecannot castcan't take addresspointer requiredpointer or integer requirednot a functionboth must be integralpointer mismatchtype mismatchpointer mismatchtype checkshould be NULLtype errorlvalue requiredundeclared variablestruct member requiredstructure or union inappropriatemust be integral4@8_('O_O 2_a R#55 55L?5;5t0 942b,Y0]'''''''''''' ,55:e:&R0J0 (2ۗ~&.~'04ْ2b,m_(& C2O_4&604m2b5 $('3')''4'(4۩2b54@2z,++++d_(&#+O_4f44@f42hd4!d2bb "4f44@f42h4@!E2bLdb_3&=a&5+_('*b'"O_4++d4|4!2fd4 2bb4 2b2f54@.2vShUfdb+0++S/++U_(&U %O_4U4|4!&2f++4@ |2bU4 p2bO_4S44@f42hS4 T2bhSfUdb2j54@~2r*WW[YjO_YSlhb++S/O_-42bO_4ڠ32b~'Q4@2b 44@%2d (4@Q2b4@2b '݌'֌'' 4@ 2b4@Y2b .4s2bO_4++h4|42fiO&O_4S4|42ff4@2bY dB4D4}42fEEd~&'O_44|42fS42bjYhWW[lSb4@2~)-O_4J2b/4ث2bW'>E'E 4/2bY'[ Y[O_B++D4s2b S@ O4@ԯ(W&-' 0*4 ++492b/4' 4@q0 4գ2b54@\2vShUfb/++U++S(B++d42b_3&a' 0462b(U42bO_4S4h44 2hS42bhSfUb2j54@Ӯ2rO_bO_SUlfd/++j++S'-42bO_42b(42b_('IbO_4++j4|42f(42bO_4׏"2b'42b++ jU.4֢2bj42b'U42b4o2bb' h4{2bO_4S4n4h42h O_4l4|42fS4I2bSlUfd2n54@u&_('XO_42b~'I4@\2b4@2b4@2bMO0& M44@@2dM44@4q2f4@ԕ2bO_4)2bO_4O_44E2f4@%S& 042b 42bO_4S4|42f4@Ѩ%U& 0l42b 42bO_4U4|42f G4@j%_4' 094ґ2b $j~'O_4F442fJJ%IO54@8~'*H&: HO_4F4 4C2fJJ%%54@a ''L'042bO_54@"2b H++FO_JQLII4@Іd42b~'4@x2b4@]d4@2bF < =F >'?'4@t2b4@үS4@!2~-42b.4ӵ2bX4@O_4c2b~'4@ 042b054@d~'j4j4j44@2h4@-2b5no 'if' for 'else'illegal declarationsyntax errormultiple defaultsno switch statementwhile expectedbreak errorcontinue errorlabel requiredalready a local variablecondition needed4@2 042b"_*'_)&%042bO_42b0I42b"Z lj 042b j ' '~'040f404 2fh&hdlh40n40f4 2ffb&f' f'0fO00&_0'_(&  jn'F4h44@P2f~&n'H'H"'nHlDJ0 fO_LnHJ 24n44@ y2ffO00'_x&f444@2fj&n' Wn ;n#& O_444@3 n!& O_444@2#''!'ь 'n& n#&!HfO00&of4+2bfO0 'fO00'f'f&042b1fn& 0G4 j2b fMj44@Y2d " 2_0& l(4'.254@22 0Q4W2b  ~'' 040l40l42fn&njln40n40f4 T2fdbdO00'd'd & 0 42b 1dO0 &d42b d&d&  J0]d442dfH 6dfHJh4n44@ 82f~&- (h #0 4j2b  'Ō '' 2_x&w_0&(4Π'TN4@2 0 /42b  !'~'0b40l40l42fn&n2z40b40n4 2fj&'|'q 3kO00' &7&!HO_LhJn4b44@  h444@2f 442dd'LQ& $054@X2bdHhJQLKKn4b44@ 2fb& _x' td 1b11 ++F  '#''_x&d'd#&4f44@ 2ftO0 'Z'O4ͨ2bl'A ' f O_ 4$,2bflff'f ff 9[ 4d d#& O_4d4F4.zh'܌#' 2_0'2f 2f(4H2b254@ȍdf&f&Jh'0 4ɧ2b5O_54@Yd&A,4f "fO0&%&o v5'' 5d54@2vQO_/;13 _)&nb7'++4d4.S2d4' O_4f4-2fGht2~jF   FF ''܌'܌' Hh j4j42d  H o'v'ތ 'jj2b~&GdO_GS0d42b0I42bO'O_4O_4492fO_O-O_Q_& 0 U42b2j54@Ƽ2zKbO_KQQ1 ~&_~&;1/1;142b/pdd4N4h4O_4O_4442l4N4O_4j44@x42l4@-_Ȟ2bd  d& _*'_&0K42bbKQQ1O' 42b /2f54@Ů2~O__.'d_4&OaH & 04ƺ '4@2b HLB' O_` _0'.42b K4@"2~I~'8a-_3&%a!& # " '' O_2b54@2O_bO_"_3&abb_3&a& 8 1_3&a'a&b qO_bO_AAO_QAA_4&ra&  ' 0422b _)'+& "@ 4&_)'0U42bAAAO_AA_*'M0d40n4042f 2|b_('QQ40d40d42fQQ& 0'1LQ&#&H&F'04. 4@Y2b & 042bHFhJ4d44@2fn'#f& n nd/n dd JQLKKf&*42bll&'l l&lj 2_0'2d X2d_('AA'" *4ű2b j 'K'I'[''R'o'r'}'vl_4& aH&BD J" O_ b254@~2tO_j j42bj_B'_4& ah :_-&2[QQ4442fQQ.4Ŀ2b_-&/jXIXI0jQ& 0G4; 0422b042bO_fdbAhO_ATjXIXI j42bd& _,&O_ O_42bf'f bf,4(2bdd_+'hAb' Bbj442d2l54@>2~f 45yh45hO0&fh4@d2|bO     l O_ 3'݌'݌'֌'֌'ό'ό'ό'Ȍ '' lBjD4b4f42f2d54@~h2~fO0' fO00&>fO0 &B43tBf4¡2bfO0 '4hO0& j3Ch4@t2D< &2JO&+44@4040f402d412f42bH  o'v'N>f#>h$ 4@J2b 5>&> > >>>&><~&NO_D2@54@70- 4@)044[2b5too many bracketsfunction header missingstorage errorfunction type errorargument storageargument errornot an argumentstorage errordeclaration mismatchfunction unfinishednamed twicename clashstruct syntaxstruct member mismatchundefined structurelabel undefined : cannot evaluate sizeidentifier missing4@d2|j 8$ O_4#2b !''ތ"'׌!'،#' Q&.0bj' j#'  HO_4d4y2d >F4L2bl"&L a_7&5Db& - 4J 04N2b)0d\  l&O_4J44@4A2h 2lO0 &O_4D 4D44@42h~&3 2"O_ 2d54@f2t& )432b _)& j O_jO0 &b&b42bh&J dO_f 64f44@n4{2h~'Kffb$_0&  _*&b&f /fb$(4B4l4D2f4dh.42b 2'j'_0&_*&0C42b&&G024&J D44@42h~'q'6_0&.C _*& D4B442f4A2b&0l>4O'j' *42b 042bLO_2l54@042bd4F2b54@2x4Ǐ2b~&O_yO_dblO0&'  GO0'E '''9'4 O0&l4F&0h 8l& l44@"2dFP'FQ&ILf6' 2O_b0hFQ& f@P fdf4B2bfJf4V2bFA&OJf O_b d4h42dO_ r''ی 'Ԍ!'͌"' F 0l& H4H !0l4H4:2d )H42b K'ˌ6'ڌJ'ӌ7'p24@2bb2h54@d2~h &4@2bD G  0h44@ .'Ռ'ߌ'،'،'ڌ'44@g2d2b54@042b54@t_ 5 0'('' 5too longtoo many elementsunions not allowedconstant expression requiredrzb cannot initialize4@d42bf':4D4@%4 4$2dd4;4@d44@%4 4@%4f4$i&4@md4%454@Wd40K4@Dl42b%4f4$2dO_O54@ O_Od42bu54@_4t2bd4E4@d404@2~f/'M4;2b%4b4$O2df4@%dXJ42b4@j #rtG )j $D42b4@++4$2d Y U42b4@h4#2d5}'''|' 'v'Čo'54@*4c4@ d404%44@d4 24@j4j4j4j442j 4@d442dd54@%4@T4"2d4@f4#2d4@+4#2d4@/4# 2dd 44@j4"2d4@l4"2d4@n4"? 4@ 4@j4"2d 'nj''+4f& O_4j4 2d+f-4@d2z~'F[l' d 5d -l'O_ dO_ dbO_dO_lbO_lbd sG'H'@'Z'['\']'^'_'`'|a'ub'nc'gd'qK'{J'tb4J42dd4b4L42d O_2f54@d~';4@2bJ42bL4!4@d2~J' L'B J'L L'R N%4b4 2d%44!2d%4B4!2d%4F4!2d%4N4 2d%40 44 ;2d%44 -2d%44 2dF4&aH%44 2d%4H42dH %4@42b%4O_4%4F'֌ 'ό!'Ȍ"' FJ&42|045%k%444H'0 0f402h NFK&;2x045W%444H'0 0f42h2h%4H42d4@*d2~h& 4@2b`&+ 042bh-04W O_ "4v2bh' ,462bh-2b54@df4 2b%4h4!2d%4444@2h54@jdf4@42d5%d%.8sF%s 0,4@00f4f 4@d0h4h4#2d54@d0h4h4 2dO_54@d2u h'hh4?2bh%&hO_bfh-& h O_h0&0   f4 #4jfhh00k'h.&2d b4 #4jbhh00k' O_dhf404 f404UX0V0id'3id 'iibb&f4kf4h42f f4k4T2dh42bd'_x'mc'~s' 2k54F0گf,)f@Pf,0404 W2d-0f4b4 2d04vjO_bO_ lll-0d 6ll,ll'bb'0O_ddd&l0O_j2f54V0گb3hO4b /W 0hDVDVDVDVh& Įb0b3_4@0#O_04@f2~f4>2b@P3& 42b03_~. 42bf0f&'m 4h2b03_~.W4@d2~jh&! 4C2b. 4,2bhh&' 42b.2b54@& d0 4f4p2d5-32768b2xXIeYIcYIaIhiiiiii%Vhiiiiii%Fedcba%(mO%2hO_92h94@2e& _25jc'? 0 42b jce00_'e0 0a_0j4-2b0j42b_3&Ha;&;_a4_a0442d 20h U F422b04jaJ /42b04jaK 0 42ba6_U''' 6 7_1 _e00k&0442d0Ke G_  J_L&'='e=&Z_ ,e H_ | _ oa|'ތ='e=&[_ J e=&t e=&g_Pe +V_ a e=&C_\_ <'Ќ=' e +U_ a e=&_c^_ X>'Ќ='e <_ :_ 0+'='e $=_ _ F_a Z-'׌='܌>'|E'LA'mx'X'@'ȌB'֌S'܌T'ՌY'Ό]'׌_'P'GC'h j'k'Hh'ƌi'254@40 g4.2d40 ^42d40 T42d40 L42d;40 C42d40 :42dA40 )42d40 42dO_A40 42d 40 42d 4042d404u2d!404e2d404U2d404E2d40452d404%2d4042d4042d4042d4042d4042d4042d40{42d40n42d40f42d40Z42d40Q4u2d40G4e2d40@4U2d0:42bHB0$42b8 HB54@d2~ ee40'/&_O_ ]e4&I4@d00j'd00k& O_54vA'0 0 bj42bXIbd -4 &44@4n4E2f~'J~&' 42b4l44@42fO_O_HdN02f54@2w4o40d42fO_h04=2b3oH2i54@d2|O_ bb&bO2d54Ff42b& 042bf&ffh2b54@f2pO_b0h45 0h&0;e0&2ze.& 00b45ex'eX&v2~ 50d40f444fA-7 04hq]e42b&2b 40b40d444e7#e4i&0beL'el&0 &d  2040d\25 e40j42d~&Ge00k'e.'ee'eE&e.&: &2 "e40j42d~'~xbbe00k'eE'ee&ndLe+&C e-&8O_dO_f f4 4efe00k'f(,Fb4f'h@P hbb@PO040j pf& &'O_Qel'eL&2~ 2b04b !&'0 2~b25254@Ve\&Ha eaAe''04 2b4@ .l& 04042dl& 042bl % ~'Ό'nj'O_ '"4l4u2d4++a42d4s4P2d 60 4j& 0P42b #e\& 4/2b e4$2bpe"&4O_42dS54@d'd\&4\42d4f42d54@d40442f54Fe0 * 8 2, &   n'l'̌t'͌b'Όv'όr'Όf'ό 'x&T2~O_b '0XIXIXIXI4bA,b bge42b'bb-2bd&BO_ 4@ 4ee00k&V- D4@E';3O_ 0XIXIXI4ee4'-02b54@e7.4e0-. +4@e00k'eO_eA- eF.e O_5bad characterconstant overflowdoublefloattypedefstaticsizeofintintfloatcharshortautoexterndirectregistergotoreturnifwhileelseswitchcasebreakcontinuedodefaultforstructunionunsignedlongerrnolseekout of memoryunterminated character constantw+can't open strings fileunterminated string rzb %d 4@0 jO_ &4@ e 'e '54@j0je&e54@2x&0jO_0 40 4y2dj'j#&jd~'di0 42b' ,0 40Qr0 4042d042b~&0 4042d~'~0 4;0404%42h0404%42f60 4042d+~'(0 42bf~'0 42bb~&f'f40404 2f 042b0 4042d'404 O2b 04 4 2dbb&0i4 &2bd1&uo5'6'2'7'P'0'1';'' 2h54@d2|O_ 4 4db00k'2d54F3 #4 l2b&P#O '04042dO_ P O_0  @#4 $2b  'ތ' &''?0 c0|42b2b5%s psect %s,0,0,%d,0,0 nam %s %s : line %d argument : **** %s **** ^INPUT FILE ERROR : TEMPORARY FILE input line too long4@V4@h4J2b d4.2bf40=4%4 *4@h4 2b: 4@h42b 4h4h42f 54@f4k4h404%42j54@%4S42d%4h42d5&%4++462dO_4f404%4\2h7'S%4j4 D4@p42b%4h42dO_4f40x4%42h54@5&%4E4!2d54@0S 4@0M4G4@0A44@d'd v 4@e4Z4@d42bdd ddO_4O_44j4{2h54@l'l42b %44@y2dl42b&lO ' 0O l4>2b04 U4F' 04O2bl'l42b04|2b'#42b4f2b422b2b5 rmb %d %.8s%c rmb %d %.8s%c%.8s%cfcb fdb * dumpstrings4@3BDF15䦄994ҍ 0* 9-*404 a4O4 =j*2aj,2c54R34@$0'04_hYhYhYhY % lJ&0b%5lb&2c54@dBDF5@590~*@PO_9O 4@3O_B4CEoG*EEDCC154@0K42b042b044z2d0#0%f0f-&q!599z3A=&)0143A4@2d%&4@04042f0 O7 >40 4042f #e's'n'o'p' 3A&\ 92 5r&1rr0404 42f#& 042bdd.} t_&%O ' 04X2b04Q2b)')404042f54@' 4 j2b4 /2b5_dummy_wcan't open %s unknown flag : -%c rcan't open input fileerror writing assembly code fileerrors in compilation : %d 4@3FO'h3M4@0"V54@h&~'FdHf+'f+&F F4r'd& FBKD05O_54@d2|O_j j+&   0dh~' x'ٌ+' \ <44@ 2db'4O_44h4 S2h E44@ ʁ44@ a2db '2O_ r'a'w'Œd' b2d54@O_4h4h4K4@f4f42d&O_ 5O_ $4@h42bf4f42d~,O_ h4h44@2f54@04f42d04 42d54@d2 g4b42d&2a54Ff 3A'X&' ,4044@P2ff2b5%d4@d2|O_ 1O_ n44.2dnO &j-bbbl-b2d54@fF"'FO"&4@M2bFO'540g4H4FO@'0 0m2f&JF FF_~&4@2bădD$FO@'d & 4@&d54@df44@4F2df44@;K4F3O_ 03M42b-d4@d2~'F&NFO'4@2b O_H42bO_F *4@d' FO"'5F_~&4@ 2b4@2b54@d2|F_~&#D'O_44@2b44H4V2hģBb'nF_~'cFO@'3B 'b44H42f&0d *bbb& )b4B4H42fb' 2F FD FFBKDO_2d54@54@d'FF_~&=D$ăO*4@n 4@f'FO'd'B"5dd54@d2|4@2bb'4@2b& b42d54@d2~F1'FO1&4@2b04&FO@' 0442bFO'%K4B4H4FO@'0 0h 40JB4H4N2f.F4b' F BBDO2b54@dFO&-204H4O_42fF4b&@ F2 FFO '5K&FO@' KB&K42bB'FF FF0JBKBKD54@d&0d54@f2~f0& '4@f2~f0&0&f2b54@d f0f&O_53A4'454@f2~fjj/0& O_0jj.4@d f0f&O_53Ahh/4'h,O_ 454@f2~f0&jj/ 0&j,O_f2b54@df0f._O_O_d5dbdb9CSCS09090oo94 d"5!59b4@5]' hiiiZ&59b4$5]' gfffZ&595b2b0909M&mb&c=b5444ei=beh=aa$ldi=aa$ldh=fhb2h9o 0@ 0O o mb*l &5nb4 bm '@P9' 42~ooa .5-'42~ooaM*@Plabf*@PcafLhcib*fofogb$b igifdbfcj&bma'f@Pfdfdfbd2f9]'gbfcZ& ]'dbfcZ&b4bd2d9]'hcibZ& 4$? 5$?9ec'-'+''' '|4@?$5@ph5@O_9f?eec' ' Mf?N4@hj?5@@be?%?1be?%O9c?be?be$ ?%O9&e&b?%4B3?5B$4?5b?¦c?%O94 feh4 ?$ &O_550 54 efh4 ? 4 h'ef?$5 f 54 h'ef? 4@j& 4'%'O05e?% e?%0hgf+Ʀe?%054d%%4 ? 5 $2b92b4dģ4O䧀%5b%!$4O$ 5994 ? 5 $%ZO94 ? $5 J 54 ~' d?$ & K)O_54@#d0? 5@2O42b;O9%O_9b?9x expected'd m@iTAh-.BP0CESkkkkkkkkkk/(]x_djjjjjjjjjjjjjjjjjjjjjjjjjj+f,Yjjjjjjjjjjjjjjjjjjjjjjjjjjj)X*D       cstr.XXXXXBc.pass1a/p#dDpedD  gc.pass0&94 4@O_Z&3041a'b3''O' b'0'02d5RN10䦀O'T 'P ',& "''&lO4 '&5o '" 00lO ' ',' o 04N41č ooa.0篩\P^0묩^$ \%^9**** STACK OVERFLOW **** 04d?o`P^9^\940040b&2d94@2*0*-&l0 K42bm3A=&3A4@ 2b0$3_4@0 ,404+g2f 740 404+G2f s'n'o'p' 3A&h T' '0404+2d 0044@L2d&4@0404*2fZ 2((&&0Ο&0&0 4P2b'44Nz2d &|4P2b044Pl2bOZ4["[ 04444P2bZZ_Z0444EK2f4P2b"4Pt2b 4Pi2b  / " A4PN2b4PB2b 4O2b *4P(2b# 4P2b ''ی'"4"4"442h44 2d~42bl42b^GVO_44w4<2f?O_# >"40404(2fw #'n'''' 4Ew4O7?ohd& O_4G QG'-\& 4N2b4G2b4N2b&O_4G 4N2bYO_4O_4Z4N2b44N} >O_44N ,O_44N{| 4Nm2b44N_ 4-2f4NIv 4N;o4,2d4M2b& 4N2b 3 4M2b&O_' 4M2b4 440f4E2hcF ]2v4M2b4440h4I%2h0b4 2b&40d47~ 2|040hPW40b47b2d2d2j2jE3b '"04'4L2b &O_40404&2f*'O'T'hl'v'd'e's'M'r'J'G'j'#D'.Y'KU'RS'aE'f'p'F' 'I4L2b&>2$54@2v4K2bf4)k2b~&@4L!2b4L2bB4L 2bF4L2bN4K2bO4K2b4K2bF 4)2bhHh&@4KT2bh4KG2b 2hd4K/2bd0d&O_4Kv2bh'Ɍ 'Œ!'"' 4(2bb&?444h4F2hb >4(U2b&?q444f4F2h4{2b 4J2bH 4' J'K' O_Jf /sJn iJO_L 0f40c404$2f B'̌R'̌L'̌N' 02j54@d2xffbfOĀ' O044@L2bSb, b@PbO_ d04f4f40SK2lS' 040LS2h54@-'504f4E2d&d40404#E2f54@df4@2b0 4@2b 2F'{4o44(;2fo4z4(,2df &f444(2f ?44(2d .'Ռ' 4@2b 'u'y'r 54@Fd4044"y2f54@)' 4U2b4W)2b5/dev/nullbad argument: %s bad option flag: +%c too many filesrcan't open %s bad action code: %d bad code in intermediate file: %02x bad node type: %02x wcan't open %s leas %d,s 4@Ed4@[2bFp'O4@w4p4u4&2hp 24@d4@2bFq'4@w4q4u4&n2hqF54@d 4@ 4@ 4@2b4@2b 'ތ'' 54@dFd4@w4q4u4&2hqFO_HdJ4w4q44%2hO_Hq 4@w4p4u4%2h 2pF "7'A'q'p' o'v' 54@d2~F0&32~LJ4=>2b4@b4=2d4=K2b4@2b2b& 4@2b'& 4@2b~4=w'4@b4p2de4@J4^~J4p2bJ4w44$2f GJ4.2b44$ -4@ o A4@a :J42b4$2b 044@2dpFp44@ z 74@=2b- 44@ 044@:2d4042d7'4'v'o'}A'x6'sx' ' '''B'8@'8G'1H'*D'*C'#d'0<'>>'7='0?')e'.502b54@ 2zl l d&&j N L Mj ES'T'U' 4j $FA&(d6'l4 2bO_ P'׌Q'Юjd4K&'d42bd4z4"2dnd4@ 4@2bd4L2bd4w4p4Q4@' d4'F6& 2~ff2bF4' F4z4"2dd42bnd 14@2bd4&p d42bjP' d42bd4w4p44"*2hl4ٮd6&Xd 2"F4@)2b 'j   4! V'U'M'&0f80f JF6& 2~ff2bd6&.d42b'djR&V Mj0fb24@2bF4z4!T2dd4|2bj4!B2b0 4n462dQ' W'YX'RY'KP'DZ'܌['Ռ_'Ό]'nj\'^'c'a'`'b'M'U'V'R'N'S'1L'*T'#J2O_ 2plA4@ 03AXI0'0d&05-4@d2|4  b4  f44@ 2hb412b464p4u42h4  d4|42f41W2bO_464p4u42hb4162bpF4@ d2z4  b4  h4J4 2hLd402bJ42bO_4  d4|4O2f402bL42bb402b2f54@2| hbb &#FJ& 4@2bj4@i2bn4 R'&4@?2bn4 14@62bF 4@2b p'q' o'v' F4z42db b&nh 42bh 4w4e4i2f40 2b phV4@d2~F 5J  ;492b 16'4'v'ތo' ڌ4'Ό6'njB'O_2b54@jdF J4 'nL6&b A]P'یQ' O4@.d,< 94@dF JA&5 P'Q'7'A'O_54@dF_~'%FF4@w4q4u482hFO_H54@2|h h F4 1'u4' 4 4a2b F 4w4F4 (4w4p4u42h4w4F4u42hA'' 4@>'/''4& 4'4@2b4v4u'4@2b&Z4i O4@y'4W2b4@ 64@2b4&F 4@p2b '' 42b4@w4d4y42h4@=2|h bh 4@ 2bjj&$j N M Lj S'U'T'F4'Ůjb6&-jP&b b@P464d4t402h .b4V2bjQ& C42bp4b4t42fFhO_h0d FF4z42db42bj42bP'^Q'WW'ƌX'Y' 24@w4p4u42h& 4}2bjb4'Fb42bj b42b W'X'Y'b4w4p44*2hw''4@2bp4z42db4)2bjQ&Ojn4p4n42f &W'WX'PY'IP'BQ';4@w4p4y42hph4@dF4&54@2bH'H464q4t4W2hq4z4H2d̀nF54@d2|Jb42bb䄀_~'^ ,b4b4q4u42h -0M4d4.2d 4'ό'Ȍ'' ̀O_Hw  䊀0d ̀4b 2b b4w4q4u4p2hO_H cO_Hb4 044@.2d ?o'v'q'~'|'u'n4'qp'6' F2d54@n2xl 4@W2blbF4'8b &np&4@w44u42h En ?>'Ռ?' nq&4'pn4@w44u4m2hnlfb ;f@Pfp&f464d4P f464d4t4&2h ='?' 4@w4d4y42hb 2O_ (p&f464p4Q42h f@Pl >'͌?' nlO_4@$d4@+2bFq&H'4@w4q4u4~2hqF54@2xl l fqlbl4 q4n4C2dS4@w4q44"2hO_l4EFA' f&F4&FA&Tf6&4@i2bFfef42b4@N2bbQ& C42bF4p4{42f+bP&f, 2~hh2bf4!&f4&0h 4@2bFUbP&f6'f42bO_H0h4@w4q4u42hO_H PF J0x44@*2d ;p'4'Ì7''''q'v'o' f6&f Af42bbQ&O_4O_4C42f 24p4{4u2fqO_dbP&d d@PHl g2l42b `B'4'Tv'Oo'J6'E7'@>'Ռ<'Ό='nj?'A'ʌ'ތQ'P' l2h54@Udo'dv& O_5translation%x binary op.indirectionindirectionx translate4@d2|FbG4n4  d4J42h0d O_4  b4n4J42h 24$`n4l44J[n4n4n44@j4Q2jHH' n&O_4l n'2H&,O_4n4|J422bn4n4n4L4,2h&4@ 2b442d A'&&F&J4@ 2b444T2f 4@2b 2n' l4Z j4[44'2f zG'H'ˌ@'Z'['\']'^'_'ٌ`'Ҍa'ˌb'Čc'6'ЌK'ɌJ'Œ0'2d54@2zl l ' nb' j4K2b jj& l4 '&l42b0f`4&,4f' 4@]'F4;' 4.&ddj42bjd4 'r4@R2bF @4@p2b0f 4@w4p4u42hpF 2F4z42dnFA''q'یv'Ԍo'͌p'|4@'j`, 42bx42bd4@&dp&4@i' 4@2b -d4z42dn4@2bFdj42bj4@w4h442h 2b4l442f2f54@>d 5d42b54'6'B'4@ d4&d &4@d2|O_F QLb6&;b# -J4W'L4a& J49'~vW'x'>'ڌ?'ӌ='̌<'Ō'''''v'o'X'Y'D'C'e'O_4@2bF 4&'MO_464F4 J4@w4p4u4U2h !q'njp'v'o'' 2d54@ܢd [5Z5d_/ d5Z'݌[' 54@jd d5d5d5Z'['\']'ڌ`'ӌa' 54@"dF6& H& O_54@d4 2bd42b54@d2zFb4@2b4@2bF H'4@w4{4 62fu''ڌ'J4E2bJ4o2bJ444 2fJ42b44 2d 2F.H4J44 2f4H4  "044@ J42bb44 2d0fO_44q44 i2hq4z4 Z2dJ42bb44 C2d44 42db>&?>4@2bJJ&2~JLJL2bLJ&ULd&Jd4g2b';4f4 92dLdd6dbR&V Ub0f :JddJ& d4=2b d42bn44 j2dL4 !2J42bq4z4 G2dL4o2bb44 02d0fVJ42bq4z4 2dL4}2b0f 32Jd4l2bq4z4 2dbFd4@c2b 244 2d 2FO_Hb-0f044@ Q2d''''܌4'ՌB' 'G'O'gJ'd'<'='D'C'>'?'e'R'S'nZ'g['`^'Y\'R_'K]'DP'=Q'6T'/W'(X'!Y'V'OU'Hx'u2f54@ d /d4w4q44 s2h &d4w4{4 ^2f 4'̌''54@׽d2~H䦄'C464p4u4 2hp4z4 2d464p4u42h 'O_464p4u42hp4z42dp4z42d4b42dO_H2b5longs4@ d4 2bd42b54@d2xbFf/4@2bJ42b 2f44?2d 2FJ4 J42b0h H4K44 2fF4H4h2d0X44@=2d J4F2bb4h442f0he4q442fq4z42dJ42bb4h442fb444t2fb4h>&? >44T2f 84@2b /J42bn4412dL42bf442d0hJ4v2bq4z42dL4^2b0hx2Jdb&$d 4@2bq4z42d4 d42bq4z42dfFd4@2bb&44y2d 2b444b2f 2FO_Hf-0hV044@2dՌ'Ό'nj''4'B''''Ì'Ō'K'Čd'<'='C'>'?'e'^Z'`['Y^'R\'K_'D]'=P'6Q'/R'(S'!x'N2h5floats4@0Ο!0f4f 4@d!0h4h4#2d54@d!0h4h4 2dO_54@d2u h'jh4A2bh%&hO_bfh-& h O_h0&0   f4 04jfhh00O&h.&3d b4 0q4jbhh00O& O_dhf404 f404UX0V0id'3id 'iibb&f4kf4h42f f4k4T2dh42bd'_x'mc'~s' 2k54F0f,)f@Pf,0404&2d-0f4b4 2d04vjO_bO_ lCll-0Cd 6ll,ll'bb'0O_ddd&l0O_j2f54V0b3hO4b /W 0hDVDVDVDVh& Įb0b3_4@0#O_04@f2~f4%2b@P3& 42b03_~. 42bf0f&'m 4h2b03_~.W4@d2~jh&! 4C2b. 4,2bhh&' 42b.2b54@!& d0 4f4 Z2d5-327684Vh42b'Kb&0bKO_B%BB& BBXIXI3BbKb b0bO_hh&0 K&4$2b~&O_ b2d54@dDVDV54Ff4-4-4,4/2b&O_44@ 2dK4Ff'h42bhK % "%#$4@jXIXI&h4h ĮXIXI4&h hBK2b54@j2xl&44,Ol&447l{n4044q2f  , 464q442hnZn042bn40f4@44 Z2f0 (0 "0 0 0 0 0 04 00042b @P4^2bO4B2b#S42bn @S42b492bn402b0z42b 42b0l42b4u4&%d'Q42bO_4f4/0%4j2bO_444 o2fr0 504C2b444d4 G0 0 0404 2b0h 042b 2n4<2bO4 2b042bn Nf&y f&u xf44044-4U0zmw'p'z'~}'''ЌW'ЌX'ɌY'ŒR'όN'ΌS'͌V'̌U'ˌM'ʌL'ɌT'ȌC'͌D'͌'͌|' 'e'5'''''v'o'{'n4m2bfw&xF&SJ4w4p44K2hl 0g 0e 0g4 o2b u'O'P'܌Q'pFQ&l' fx'bflw&HFbnp'f4 2bb4b40d4d42d'464p4P4np'f4dH4h4 q6 $q'vv'oo'hp'7'Ɍ6'np&6&&0S4 L2bK0P}6&&f409442f034 2bfb&Ldf Ew&+Fb4'bn'b4h42d0 0 4 2b0h C4q2b0 x2zw&db Hf4 D2b>4 2bb#& H4 H4 2b422bM4 n!'"'#'0 Z4 2bO_44@4l4 4h40 144|2hf4 2b A0 4 2b0h 4@ 2b,4 2b 2f4 2b 0 42bp'6' W42bu'Y'=y'uQ'O'P''s'?t'X 4@d d5x5y5u5 5p'q'v'o' 54@f4f40 K442h54@d44p4u42hp4z42dO_44p4u4t2hp4z4e0 4 0  :0  G0  A0  ;0  50  /0  )0  #0  0  0 42b 0 450 0 0 0 0 0 42b 4h40 4 F2bW4 2bd4 2bnjn'')'.P'-Q',R'+S'*T')W'(X''Y'&V'%U'$Z'0[')^'"\'_']' C'D'''<'>'='?'J' 54@fd 44@2d50 42b &3 740 44K2f5&0 0 4i>0 0 0 0 0 4E2b 70 P&0 0 &0 0 4 *0 "0 0 0 0 0 0 40 4 j2bW422bd4:2b K'n'''P'/Q'.R'-S',Z'+['$^'\'_']'C'<'>' ='?''''''''"54F0 42b  4i2bh4h42d4_2b0 42b4@d2~ h& 4@!2b`&+ 0 n42bh-04 O_ "42bh' ,42bh-{4@Q4\2bd4l2b  4@Q4?2bd4O2b  54@Q4 2bd40(4@d2zO_blw&& O_bnlnn0 0 0 0d W'X'Y'l[b'W& U42bd42bO_ -d42bO_444a4D2hd4n2b444b4"2h9n4 ;O IW&NU4 W'@Y& 0452b -d42bO_4b464a42h ~'' nO MW&0 W'Y&042bd42bO_4b464b4g2h~~'' d4f40M442h  R0G4Ҍ4''''6'n' 4@d4Y2b 4O2bj4j4j4(2f/54@d~'/ +4"2b4@;2b54vj_~' [42bjlFA&#42bn4J4w n4H4F42f|#42bl30s42bn4i2bM4l' bͮ nl42bO#&j_~'> <4P2b4}2b0f *#&j_~'> <4%2b4d2b 2n42bj_~&$#&.b!'$b"'b#'O00&04 M40 ',#'='R!'Z"'S'h 'a n4olnl42b,4c2bj x y u4G2bu''' dO472b04,2b  E04E2b 8w'6'5'=4'V'j'c'\n' j_~'|]42bo4@d I042b0 40 .0 (0 "0 0 0 0 0 05Z'['\']'^'_'Œ`'Ìa'Čb'Ōc'54@4 4 2dd4(4@d44@4 4@4f4 j 4@d44Q2d54@d404@d4h4@_42bd4 ;4@d40Y4Ff '"04f2b42bO42bqf2b54@d42bf' :4`2bP54@d40y442f54@d42bf4_40]442h5,y,slbsr lbra clraunknown operator : pshs %c lbpuls u,pc ccmultccudivccdivccaslccasrcclsrccumodccmodnega negb sbca #0coma combleax leas ,x jsr sexldaslb rolaasra rorblsra rorbldy ldu leax %d,%c d,%c sexadca #0sbca #0%d,%c clra clrbld st%c -2,s cmpstsubaddlea exg %c,%c d,LEA arg tfr %c,%c lda 0,x ora 1,x ora 2,x ora 3,x_lmove_ladd_lsub_lmul_ldiv_lmod_land_lor_lxor_lshl_lshr_lcmpr_lneg_lcompl_litol_lutol_linc_ldeccodgen - longs_dstack lda %c,x _fmove_dmove_dadd_dsub_dmul_ddiv_dcmpr_dneg_finc_dinc_fdec_ddec_dtof_ftod_ltod_itod_utod_dtol_dtoicodgen - floatsbsr puls x0,andoreorcomaclrbcomb %sa ,s+ %sb ,s+ compiler trouble_flacc,pcrstorage error++dereferencerel opeq ne le lt ge gt ls lo hs hi %d%.8sleas lea%c %c%d,pcr 4@d444@044;2d–54@2040b4 2d840b4 2d04842d2254@dN4h44H4@4 I&4 /4003d0B40h=54F )4003f&0B , &̍53T4@N4@2{0b4042di4o4042fk4042d&0442d'%0a4o4Q2b445&0ezO_40c4442h044 2bb4v2d & 04 4^2dii.04^4B2d04 422d 2  /&04A2b0!4042d42b2e54@d~'J42bL42b4@2b54@d~'9F   4H4W2d 4'K'J'44@:2d54@4h4h422f54@dGVGV4fO54@dL- c. O_54@d f0fhh&5out of memorycompiler error - %s: line %d **** %s **** rtoo many errors - ABORT 4@0x4%4@d4@0k442ff44@2dO_ 0T4 2b&h%40F44t2f'0L42bj4%2b0>42b4@&2b0@4t4@&4%40E442h54@d'0; 0>4 4@084r -4F4m 42b42b&O_42b2b54@&0442dd -d"&d40442f 04f42dK-044X2dO_5fdb ttl %.8s pshs u ldd #_%d lbsr _stkcheck leax ,pcr pshs x leax ,pcr pshs x lbsr _prof leas 4,s _%d equ %d vsect dpvsectendsect fcc "" fcb $%x " 4@3FO'h3M4@0"`V54@h&~'FdHf+'f+&F F4r'd& FBKD05O_54@d2|O_j j+&   0dh~' x'ٌ+' \ <44@2db'4O_44h42h E44@ ʁ44@2db '2`O_ r'a'w'Œd' b2d54@O_4h4h4K4@f4f42d&O_ 5O_ $4@h4!2bf4f42d~,O_ h4h44@2f54@d2zO_ -ld 42b'dd.bbbn-b2f54@d2z'FO&#F_~& 4@2bF_~'4@2bFFBKDD$0b40n(l0b4444@2b  K 440f445 ,0f 0f u-.dB%#D$FFm ~''&0l444D t  DFF40n44H4t2h445 & O_2f54@O_4O_44j42h54@d'FO&53T4@ 5F_~&4@2b4O_44H42h44F_~'B D4ģ  954@fF"'FO"&4@I2bFO'540g4H4FO@'0 0`2f&JF FF_~&4@2bădD$FO@'d & 4@&d54@df44@ 4F2df44@;K4F3O_ 03M42b-d4@d2~'F&NFO'4@2b O_H4 2bO_F *4@d' FO"'5F_~&4@2b4@2b54@d2|F_~&#D'O_44@2b44H4I2hģBb'nF_~'cFO@'3B 'b44H42f&0d *bbb& )b4B4H4 2fb' 2F FD FFBKDO_2d54@d'FF_~&=D$ăO*4@n 4@f'FO'd'B"5dd54@d2|4@2bb'4@2b& b4 2d54@d2~F1'FO1&4@2b04&FO@' 0482bFO'%K4B4H4FO@'0 0 _ 40JB4H4 E2f.F4b' F BBDO2b54@dFO&-204H4O_4 2fF4b&@ F2 FFO '5K&FO@' KB&K4 2bB'FF FF0JBKBKD54@l'6n'0dXIXIXI0Y0/ 0dXIXIXI0Y0 0d3T4@54@l /&0d444  40j2ln4n4  40hjo2l54@d&0d54@f2~f0& '4@f2~f0&0&f2b54@d f0f&O_53A4'45b׍94@2Cooj섈uT|l!sc k[ c9T0T~0Tn0TooaT0T9T0Toooo90T"$&(25@5f2f9b+ib+8i'-'a&0b&)d&"f&h4& <&CO 5i"+%8b&d&f&4h& *4ai52h9O 'Ȁ)&"R"L'')',%.)"DVf$f%f&f'f(j&"+w &l DVfffffl&+R''%%$$""$l)f"f#f$f%f&f'f( WICG''%%##""$c"c#c$c%c&c'c('OoĦ"+<#$%&'('<"j)&jhi(i'i&i%i$YI*#)'Ā4"m&9)9)'+(w( '$'O))p*O) `&);M'O))FCGf"f#f$f%f&f'f(f"*0b4"$B&D(F5"#$%&'(9O8HFD$*''%%##""f"f#f$f%f&f'f(ffAfBfCfDfEfFjH&9Op9H%0EMCKBJ%ĦJBKCMEi(i'i&i%i$i#i"iFiEiDiCiBiAijH"'%EECCAAĢO fc"c#c$c%c&c'c(954@2C4o""")90"ooo'6M*4O_a2b) jhiYI*m*90"oooooooo9*,0"'%wP+&&&94+DVffj&5oDVfffff$lja&&'%O_9*i9l(&1l'&,l&&'l%&"l$&l#&"L*l)Ā4"904"$&(54"$&(5TVX0T94045*2*54a04 480q4*"턦$)2*540G4 2xhO_egbdi92xhbdfh94@dB 4@dBDF5@59dVbTdVbTb&d' % O4ae52d99CSTCS0T90T90Too94 d"5!59b4@5]' hiiiZ&59b4$5]' gfffZ&595b2b0T9T0T9M&mb&c=b5444ei=beh=aa$ldi=aa$ldh=fhb2h9o0@ 0Oomb*l&5nb4bm'@P9' 42~ooa .5-'42~ooaM*@Plabf*@PcafLhcib*fofogb$b igifdbfcj&bma'f@Pfdfdfbd2f9]'gbfcZ& ]'dbfcZ&b4bd2d9]'hcibZ& `4$? 5$?9ec'-'+''' '4@?$5@ h5@O_9f?ec' ' f?4@hj?5@ٮbe?%?ʮbe?%O9c?be?be$ ?%O9&e&b?%t4B3?5B$4?5Zb?[c?%IO94 feh4 ?$ &O_550( 54 efh4 ? 4 h'ef?$5  54 h'ef? 4@j& 4'%'O`0T5e?% e?%0hVgf+Te?%0T5R4d%%R4 ? 5 $2b9R2b4dR4O䧀R%5b\%!^$4\O$ \5\99O`9%O_9b?9K @ @'d DDDDDD Hz@CPt$> nk(-xŬbIgOB0 HHHHHHHHHH BBBBBB DDDDDD WUSQOMc.pass2m#/p#.,pf/., *c.op0&94 4@O_Z&3041''b3#'O' b'0'02d5UQ10䦀R'T 'P ',& "''&lR4 '&5o '" 00lR ' ',' o 04Q41č oo&0_Sa0묩a$ _%a9**** STACK OVERFLOW **** 04d?o&Sa9a_940040b&2d94@2x0Ee0RgO_bd-&~d0daO_%d0d='"dd %4 "4h%d0df& Cdd4042d -~'i' b&de&d 0x42bnnll&Cb'*0E40`4f42fe&b40I42d'$0H4b4F2dg&4014k2dgii&'2|040_42d 4040_42f442d444040_42j 4!42d4!4040_42hXI4!4;2b 4/2bb4b4A2d4b4f4040_4D2j2d2h54@dd4f4 4!N54@f'd4h24d!! O_54@2O_lO_ O_ N3 3A &O_  0f'(*'04h40x442hf40k442f ff ' 'i040k42d~&040k42d~'040k42d~& 20404g42fc040k4}2d~&]040k4a2d~'Iw040k4J2d~&ad& fp& b b& 'O_::b 0be' i'#n'5p'dt'yv' '0404i2t'@0t42bj& 0t42bj'j  j hhh&lhjli'Uf40442f0l4040m4042h~'4 2b4 2b  %-e4d404,2f~&l'0l40U40K40442h &254@'& ' O_ &04g4'2dO_5unknown option '%s' too many filesrcan't open %swcan't open %sstatistics: total instructions : %d long branches : %5d, %5d, %3d%% removed : %5d, %3d%% total bytes : %5d, %5d, %3d%% endsectinfonam%s psectttlvsect%s nop endsect 4@f2~f& '/ '&j0j' 00O& jj 00O& :& O_ 'jj jj ' ' j0j' 00O& jj 00O&eZ jj ' ' j0j'/ & (f40*4:2d 'ӌ'@' O_j2b5parse called with bad type : %d4F0k 3A-4Ff4x2bXIXI0k03f4b 42dBBb4Vh4<2bXIXI0k0 b 4j42d~&b bb&O_2d54@d2~O_ 4&O2b54@'O_JHFD 4 2b054@dD&F&B54@##40 4h42f5_$%d4@f 4f42d~'^3Bh%O_54@0O_54@2v' O_D' hhhh&O_44@442dd' d0d&dnĮnBnn0Hf;f0fb&E0K40'4j42fb''F40'4f4`F44@42d04444"2h42bh0'b&Gh'h' h44@42dD&&0B'B_~'4@V2b!!O_FFh& 4K2bhFFh44@2d V0o4h4+2d~&C0a4b 0U4h42d~& FF l'b'Ōp'r'FO &4b4o2b42d02j54@&.4%, 04 `2b4 52b O_F054@dBfĮf54Ffh'f'hDH&hfhO_fc4F4@0& 0{4 2bFO``& 44@2dD'U44@ G 40_4g4 F2f O'g4:4!2d'g4 4 2d&g4 42dFO 'GF_~' 44@4FO@'0 0404g4 2j 54@404g4 2f'404g4 ~2fg4 4b2d4@2b'4vjl&_F_~' 42bb'bd'$ d&FʀFjĿW'l4@0&]$ DFO``&4F_~' 42bb'jb&FĿF '4@0&2f54@d2~FO ' 44@G2d 42bD O_42b&B2b54Vj'2j #bh&j4k2bb402b bb&2d54@' 42bO_B =4@d54@d,'  ' [42bO_054@d'& 3A&0d, d d5rasreqneltgelegtlohslshiplmicccsvcvspuls,pcrtsrun out of instructionsremoving too many instructions%s%sb%s %sl%s %s4F3F B42bXI0k0N3&2b54@d2tB 204'j40'j'FO 'FO?!'j&"j44@2d4@2bj!!0lF_~'eD&_B4@0'QFO?!/Dj&84@72b.4@42bXI0k0hO_dvh44@4f2d~'Vh44P2d~'Bh4l4:2d~',h& h4l42d~'d hhh&d'h j h 44@42d '' ޮh O_ )j h 44Q2d ~'܌'' j4X2b!! B '')2l54@dFO?4FOXI0'044@42d44@P2d44@2d42b!!54@df&{5s<&W00O'h2~O_4 400O&#O_2b52bff 4h0h&&& O_54@d2v0B'O_D Gf 7dhh'(h_~'hOĀ&bbhdd&îfff&r4@bj4~2dhh40'BhO '9h_~' 4 "hO?!/hh& h472bb42bb&B_~&HD 3f #dh_~'h4h4X2ddd&׮fff&4@D4:2dF_~'FO '5h'h4B42d~&4@j 4@42diBXh_~'IhOĠ&@h44@42d~&'h442d~&B4j42d~&hh0h&2j54@d2O_f4@f&a B04'0'd'f'FO?4O?&nFOĀ&eFO '('&A > .44@4 2d~&44 2d~'O_&B'dDb&Mb&D0h4Sa2bbbb $44@2dB42b!!,O_4d 4044@S2h4@2bd4f42d O_254F ;f )F_~'FOĀ&h4B4Q2d~&&Ѯfff&2b5,x+,y+,u+,-x,-y,-u,x++,y++,u++,--x,--y,--u,s++-4,s-6,slbra4Ff4B2b& 0T42b F4@0T40_42dj4j4j4j40_4~2j0_4 4b2d4v2b5memory overflowC optimiser error: 4@3EFO'h3M4@0"cV54@h&~'FdHf+'f+&F F4r'd& FBKD05O_54@d2|O_j j+&   0dj~' x'ٌ+' ^ >44@ 2db'4O_4O_4h4 ]2h E44@ ʁ44@ k2db '2cO_ r'a'w'Œd' b2d54@O_4h4h4K4@f4f42d&O_ 5O_ $4@h42bf4f42d~,O_ h4h44@2f54Ff0E42b '' &O_5O_f54@f2|h03_~/l4K2bb'b0 &O_b&O_ h2d54@0Rk0f4f 4@dk0h4h404(2f54@dk0h4h404 2fO_kd54@f2uh%'h'3h42b hO_bfh-& h O_h0&0  h00O'f4  4jfh h.&1dhh00O'b4 4jb O_dh&f404t f404"f4j00O404@f4040m4cd&bf404f4n42fx0}0id'8idbb' ' ii f4kf4h442h /f4k h 2f404l42d44I2f)h42bd'ӌo'x'X'u' f'e'g'E' G'c's'%l'n 2k54F0mf,(f@Pf,0H40m42d5-0f4b4 2d0m54vjO_bO_l,l8l 08dd@':ll-  ll'bb'0O_dd l0O_j2f54F0m3wfO0fDVDVDVf&3_4@0w" Į0 O_0m54V0mb3whO4b /l'A a 0hDVDVDVDVh&3_4@0w" Įb0b O_0m4@fjhj&jj/ 42b hh' 42b 'jj/ 42b 54@fh44@2b@Ph&hh/ 42b ' 42b 'hh/ 42b 54@k4f42d54@dk0k5-327684@fF"'FO"&4@J2bFO'540g4H4FO@'0 02f&JF FF_~&4@2bădD$FO@'d & 4@&d54@df44@4F2df44@;G4F3EO_, 03M42b 54@d2~'F&5FO'4@2b O_H4?2bO_F54@d' FO"'5F_~&4@2b4@54@d2|F_~&#D'O_44@2b44H42hģBb'nF_~'cFO@'3Bb'Rb44H4Y2f&0d $bb b4B4H42fb' 2F FD FFBKDO_2d54@54@d'FF_~&=D$ăO 4@o2b54@f'FO'd'B"5dd54@d2|4@2bb'4@2b& b42d54@d2~F1'FO1'54@2b0E4&FO@' 0R432bFO'%K4B4H4FO@'0 0 40JB4H42f.F4b' F5BBDO54@dFO&-204H4O_4W2fF4b&@ F2 FFO '5K&FO@' KB&K42bB'FF FF0JBKBKD54@e 0' eC0B5d'ތo'׌x' 54@054@d&0d54@f2~f0&f54@f2~f0&0&f54@d4&f0f&O_53A 45M&mb&c=b5444ei=beh=aa$ldi=aa$ldh=fhb2h9' 42~ooa .5-'42~ooaM*@Plabf*@PcafLhcib*fofogb$b igifdbfcj&bma'f@Pfdfdfbd2f9]'gbfcZ& ]'dbfcZ&b4bd2d9]'hcibZ& c4$? 5$?9ec'-'+''' '4@?$5@ h5@O_9f?ec' ' f?4@hj?5@ٮbe?%?ʮbe?%O9c?be?be$ ?%O9&e&b?%t4B3?5B$4?5Zb?[c?%IO94 feh4 ?$ &O_550( 54 efh4 ? 4 h'ef?$5  54 h'ef? 4@j& 4'%'Oc0W5e?% e?%0hYgf+We?%0W5U4d%%U4 ? 5 $2b9U2b4dU4O䧀U%5b_%!a$4_O$ _5_99Oc9%O_9b?9,RUX[^adgjmpsvy|dxyud,xd,yd,ud,x,ud,x,y,ux,u,pcy,dy,uu,du,pcclracmpbcmpdcmpxcmpycmpuldblddldxldyldustbstdstxstystupshspulsleaxleayleauleassextfr#02,x1,x0,x-1,x-2,x2,y1,y0,y-1,y-2,y2,u1,u0,u-1,u-2,u2,s0,s-2,s#<tKO|KQMKSQK[OKWQOx$,,(  11(CC6>6K:Q>[Q_Qe88((((((((""""""'d @lxB!2"-+)'b;97531/IGECA?=XLH@|xlh\ .,(XNLH><8~zxlh\ ><8.*(ZXPNLH@pnljh^\~|zxrc.opt/p#P_pQP_ 'Fc.as0&94 4@O_Z&30 41I管'b3计'O' b'0'02d5Y1[0䦀'T 'P ',& "''&l4 '&5o '" 00l ' ',' o 0Y441č ooI0 Ư0묩$ %9**** STACK OVERFLOW **** 04d?oH9940040b&2d94Fh4h4' 2d'|אפץב}'044'2d0e044'|2dO_?O_ݬݘ݄O_[\4>E2b[L+-)4?' 04.2b/)%4#' O_4G2b54@2O_%#0şvO_O_-/'+)[' ' / O_=& ~'bl''~&2a54@2}O_ݽ97!3KO' 0QOKO_ljfd\]^_`a0ǯ[' ' / O_=O_'/+'ֿ.O_=bb'b*'b 'Gbd&%+&!&8~&0sh b 'bbbb&b & O_b0bb')04~'0f&!04/o2b'&4/2bc404042fp'pO'&p &'"&2&m.O_+'1'&p+++'cp'[++Qp׹bjXI0&0~''O_=''.+';='b' bj b ' b0b&b'O_b0b0r&)b'B&40404x2fpp&t4r404_2fpp'pO0ʞpO0׸'ָO' ׸0ʞp׹O_ݻ׺bjXIn0~&O_ E44(2djb&O_j j'b' O_b0b| bl042b2c54@=',#O_=&/4044 2dd& f&/2~O'O4043 04043k2d04ܽ'=  4:2d~'=O_ -,O4043 04043"2d- 040e432d2bd&f'^d&0Udf&0Lfj&0Cjf4d4' &+  40$432hj4'0 0432dl'l40 422d04 492d54@0454@0454@0454@[',=' ,""d40422d##O_54@d404042n2f4Be5wrfile close errorbad labelbad mnemonic%05d %04x %02x %c%-8s %-5s %s%-10s %sbad register listbad register namenested MACRO definitions*** error - %s *** asm: %s 4F3 (00O'  3Aff&O_h 00h 4h0h&3A&&5j%O_5psectcsectvsectendlbralbsrorccandcccwaiadddsubdlddldxlducmpxjsrstdstxstucmpucmpscmpdcmpyldyldsstystsaddcmpsubsbcandbitldsteoradcorgornegcomlsrrorasrlslaslroldecinctstjmpclrrtsmulnopsyncdaasexabxrtiswi2swi3swileaxleayleasleautfrexgpshspulspshupululbfccfdbfcsfcbrzbvsectcsectendssetdpos9rmbendsrmbfccfdbfcsfcbrzbendsrmbendsnamoptttlpagspcusefailreptendrifeqifneifltifleifgeifgtifp1endcelseequsetmacroendmbsrbrabrnbhiblsbhsbccblobcsbnebeqbvcbvsbplbmibgebltbgtble4@4@~'aao1׺4@~'C91ݺ .4@h -ֹ@׹t~'aa%1׺m5]5b'Όa' 4@ֹ''h'!h ֹP (L5a'b' ~'ֹO'ֹ@׹4@ 4@~' 54VO_462bb'Ib,&AbbO_42b'-baO&bXIXIXIXIa׺ 042b 2d54F ֺa׺b,'5bb42b&^54@404042fp' p׹?504J54F~'O['F1MaʈaZ0Ǭ&".,0V42b ׺5O_54@O_ֹXI0 4@O_ֹXI0054@O_))ֹXI0040'r~'*0Ǭ&,ֹXI00~&++=4ֿ/J G4@04X54@O_)'9ֹ&))+'+ +&++=4ֿ/ O_=04 54@uO_AECGM4@O_0r t0:n0|z\^ `0MKO_S4@O_0Vr t0VnO_z\^Oʀ^O_`O_K0ISOO_IP~'HF~&O_50Ǭ'51I (4@O_0zrt0^nO_\ ~'\54@SO^O'"  354@'5d& 0454>2b[&"}54@045register size mismatchbad mnemonicbranch out of rangeillegal external referenceconditional nesting errorlabel missingENDM without MACRO4@#&/bb4@O@'54@aʀat~&O_51Mݺܺ.ܺ, O_9Q4@2}O_a450b04bO&ea450b0'bO4b&>bbbbg&a,a 1a (a45t0b0 aaa -gO_2c54@2 [& O_5' b0b4~2b,&b,&-O   ׺~A'B'D'13b,& 5&7-7.345n'&{L4@e>& e<& O_77' b0b e554@bb~'o4@5' ׺3ݻ`3ݺֹ0 (4@aa?3׺ֹO'kֹ׹a4@bbO_3b-&4bbb-& bb Z׺j~' 5Y~&5b+&+bbb+&bbֺʁ ֺʀ׺554@5'4@04K54@2bO O_ @ ` X'Y'U'S''bbֺ4b׺ O_2a54@0y454@ֹ ׹!!5'#ֺ׺b]' 0[42b bbb ƍ5/5 '~' 54V['0Ǭ$K&aO' 4Kb`04a4AOB&ݽH&WWb4b44@ YYb4b4z4 2f0Ǭ%4F['W0Ǭ$M3 @4@G&8A4'+ ĮA% 3C%O_54@d2|4a4bab4a4a@&> CDA3C4@b% ĮbA3Cbb% bb%O_2d54@dO&aOİ& O_54@bbV~&554@7-7.3,3ݻֺʉ7& 3&ֺʄ7.5&3.3,3׻aaֺʈֺ43O54@bOP& bOC' 5bbbOR&bbaʀa34M@P37/3׻aaֺʌ 33ݻֺʍ׺55illegal addressing modeillegal index registerbracket missing4@^~& O_42b11&W4@9~'0QO4Vd']4 H2bQ4 ~2bQ14C2b4FO_x ~'0Ǭ& T1x54@S&O_ S54@S'dSd54@4 54@454@d& 04j5d42bx 2~&O_5x142b01Ox4@4 54@454Vba'}bb 4c' b0b&'Tbbb%< b0b42bbb%b0bh&ʀ4r2bbb Abb 94@0454@0240 4@0140 42d54@ ;bbfb,'y4@-e54@442d='0y['' / / O_=O_ljfdK'KQO_54@ K׹?׺1׻4@b,&b K0454@K'1K54@54@0454@d[&&b0b&bb4@0?454@ 4@~' 011&O_=54@ ~' 04 2b54@2}-' O_a&ab0b 3 4& a 3C04%04%1 u~'1 h~'1 , &d'݌w' b0b,& b0bY2c54@04F54@ ~'o0ǯ'1'01O\4@2004b42d  'b0b&4@1&kg4@1']Y4@1,OK4@1.A=4@1-3/4@1/%!4@[&4@0^r t0Zn0z\O_`0EK0AS)~'0z\`0GK0CSKQd4@2bO'8D&2bOP&%b'b & bb 0r42b2a54@O_0rt02nO_z\^O_`O_SK4@j'j 05454@0' 04y5L~&O_50Ǭ'51'04' 4#J2bt 4@'O_e0445(& 045/'O_4044' 4!2hO_= 045(5label missingconstant definitioncomma expectedbad numberbad optionrDP section ???failnested REPTENDR without REPT4Fb00O'Z b0bf0f/b00O&O_ bbb00O&5O_54FO_x04}&O_5b:&bb__0x4042dx[&y'40x404t2f0xAOĀ&*4]A4_AK'KB O'A@AAO&^UUT&AOĀ& 0472bAAO@' 042b %K'!O4\&BK' lKB54V0x404"2dx'*[&40x4042fx 042bAȀOĠ'}?['PAOĀ'IO' O&3H 'b4X2bbbb& 5[&AAO_宩 [' AO'4@ 2bB1t4@d7&O& 754@xO@&2e'xO& x@ x4gx54Vx0Ǭ&@O'AO ' AA[/hB'AO@&O'[&DO&A A !宩444@2f0Ǭ%|O&lHb bbb&'0Ǭb%&0Ǭb&Bh'2 (AO'!H OB&& hB2d54@04I54@4+2bfhAdCd5b '0b94@ddO' DD&054F'ŮO_BAO_HD 42b'#j, F F O_Ff44@ 4"N2d054F2~hO_43A&O?XIv2b~'04@ 4h4">2d,D /AO'F ~&54Ff4&)2b' 0K4/2b5symbol lost!?redefined namenew symbol in pass twophasing errorsymbol table overflow4@Nc~' a K4@2H~&O_5aa0Ǭ$ 1,1, 0$465awa54@0ǯ54@1?54@ܸ2yO_?~'&\b0b1ce?aO_?~&O_{?ab?+&c11 c11 e0e@e%b+'b-'b 0g4f2b  '~',' )']' 2g54@2}i~' Lb0b1aQ~'?' -*& a41! 1& 042b a41!1b*'b/'4@ۃ2}R~' 5b0b1a:~'i?' &&a12 a121b&'b!'v4@$2}b+'-'^&Ybba~&O_ D-&"1@P1 a0a@a% ^&?' 1CS1 2c54@ڣ2~b?bb~'b)&?a P042bO_5K&S&042b15S1 7K1]z? b0b1&O_5bb >A~&804'| &0d4&2b15 ('@*'j'' 54@ټ2zO_dO_bab Ab0bd b0bd a #00O' d %'$' d&O_qO_1 414f4bA,b b1bbb0b00O'O 004c~&b2f5value out of rangebad operatorzero divisionparenthesis missingundefined orgbad operand4@2O_0vg-&Jb']bO'RO&Lb=&D' 04ޤ2b 1bb $0U$ 04ހ2b0ggee&x0& 04J2b&0ǯ2a54Fh4h42d& f404042f042b54@['=''6')4 42d "4 42d-04 2b444440X40'42n--440C42f0?4040?42f .4@[',='(,(4 4R2d54@2} ~&7'0& 04[2b0Wba ! &O_// &a0a42b&͍ ~&O_2c54@0&O_54' 0~4:2b054@0o42b0#42b/ 0[42b0R454@d/ 0?42bB4AO4O44@ 40!4c2j.'04D2bO_54@2pb'2~3b b0b'b'b,&O_~'l14y~'Qn41O[~'3P1OG~'<14~' )12b 0O40b42d04h2b404042f#ACEGM[''044r2bJ44404 2h40b4 2d4O_42d4440U4 |2hU' 042b0404040442b44M*44G254@['!ܽ'0*4ٞ 4F00@P0'l/fO_4044fC4442h4#42d04044f 445r54@K'f'KfK['^O''/]O'0 ]O'0 004401'O_40444J2h44j4j4 2h040444n6IF54FO_ 1XI00~' DD&4@2b4@2b~&@-54@'O_404442h4440W4 E2hW' 04v2b4440Y4 2hY''܄' ܄42bܘ' ܘ42bܬ' ܬ42b54@d2}AO&>44@ 4 2d4O_42dBa4440f4 2h2c54@d2~AOB&cH']O'N'F44@ 4 ?2d4O_4b2d4@%2b4440f4 32hH432b54VO_hO_hCbhChb&2d54@d4444@2hC~&5too many object filestoo many input filesno input fileoutput.r"%s" - can't open fileMicroware OS-9 %s %d/%02d/%02d %02d:%02dRMA - V1.0 %-20s Page %5d %s - %s Asm:file close error Symbol Table | %-9s %02x %02x %04x programno external allowed4F['5&)0%4042d& 04s2b 42bxBD4O_444 2hx 4b0b4X2d&4O_4G2dO '0F44 2b54@[&m 4d42d 4f42d 4b4 D4@d 44 2d&4h4 2dO '54@[& 4O_4 2d54@ *4B &B 4f42d~&05~&O_54@4 0 W03/ 042b0B44 2bFHdO_4f0444 J2h&54@4 0 W03, 0`4Ӑ2bO_40B444 2hF4t2bH54Fe0Wb ? &O_'//5\&4l22b 04S2b.&O_ @&O_54@d00O'4f42d5dsd04d4044B2f 7d#& O_44 2d40W44 2f (d0 @'L'l'#' 54vO_b;' =42bbj03Adb'2~bwO_ddbb0hb0ba \& b0bb0b' 4c&&C0u4J2b 6bbb0b #,' '''"'\' bbb'b' &Add2b 2O_& 042bb / 042bbd2f54@d54FO_f0f/Gf-23A &ff. h' Ğ03A& 04V2b54@4 2b0454@04l5w+can't open macro work filemacro nesting too deepasm err: macro nest%03d%02dunmatched quotesmacro arg too longtoo many argsno param for argmacro file error4@3FO'h3M4@0Y"V54@h&~'FdHf+'f+&F F4r'd& FBKD05O_54@d2|O_j j+&   0dh~' x'ٌ+' \ <44@2db'4O_44h4I2h E44@ ʁ44@[2db '2O_ r'a'w'Œd' b2d54@O_4h4h4K4@f4f42d&O_ 5O_ $4@h4l2bf4f42d~,O_ h4h44@2f54@04f42d04 442d54@d2 g4b42d&2a54@d2|O_ 1O_ n442dnO &j-bbbl-b2d54@0 0f4f 4@d 0h4h404(2f54@d 0h4h404 2fO_ d54@f2u h';h42bh%&hO_bfh-&  h O_ h0&0  f4  4jfhh00O&h.&3d b4  4jbhh00O& O_dh&f404t f404 f4j00O404>f4040 4cd&bf404f4n4 W2fx0}0id'8id 'iibb&f4kf4h442h /f4k h 2f404l42d44G2f9h42b,d'ӌo'x'X'u' f'e'g'E' G'c's'%l'n 2k54F0 f,(f@Pf,0F40 4T2d5-0f4b4 2d0 54vjO_bO_ l|ll-0|d 6ll,ll'bb'0O_ddd&l0O_j2f54F0 3 fO0fDVDVDVf& Į03_4@0 #O_0 54V0 b3 hO4b /l'A a 0hDVDVDVDVh& Įb0b3_4@0 #O_0 4@fjhj &% 42bjj. 42bhh& ' 42bjj.54@fh44@2b@Ph &% 42bhh. 42b& ' 42bhh.54@ 4f42d54@d 0 5-327684@d2z'FO&#F_~& 4@2bF_~'4@2bFFBKDD$0b40n׮l0b4444@2bBK440f4452,0fO 0f$-.dB%#D$FFm ~''&0l444D#6DFF40n44H42h445& O_2f54@O_4O_44j42h54@d'FO&534@5F_~&4@2b4O_44H4l2h44F_~'B D4ģ`54@fF"'FO"&4@F2bFO'540g4H4FO@'0 02f&JF FF_~&4@2bădD$FO@'d & 4@&d54@df44@4F2df44@;G4F3O_ 03M42b-54@d2~'F&5FO'4@2b O_H4c2bO_F54@d' FO"'5F_~&4@2b4@54@d2|F_~&#D'O_44@#2b44H42hģBb'nF_~'cFO@'3B 'b44H42f&0d *bbb& )b4B4H472fb' 2F FD FFBKDO_2d54@d'FF_~&=D$ăO 4@o2b54@f'FO'd'B"5dd54@d2|4@2bb'4@2b& b4A2d54@d2~F1'FO1'54@2b04&FO@' 0472bFO'%K4B4H4FO@'0 0 40JB4H42f.F4b' F5BBDO54@dFO&-204H4O_42fF4b&@ F2 FFO '5K&FO@' KB&K462bB'FF FF0JBKBKD54@e 0' e05d'ތo'׌x' 54@054@d&0d54@f2~f0&f54@f2~f0&0&f54@d f0f&O_53A4'454@d f0fhh.5dbdbzb&d' % O4ae52d9b9CSCS09090oo94 d"5!595b2b0909M&mb&c=b5444ei=beh=aa$ldi=aa$ldh=fhb2h9o 0@ 0O o mb*l &5nb4 bm '@P9' 42~ooa .5-'42~ooaM*@Plabf*@PcafLhcib*fofogb$b igifdbfcj&bma'f@Pfdfdfbd2f9]'gbfcZ& ]'dbfcZ&b4bd2d9]'hcibZ& 4$? 5$?9ec'-'+''' '!4@?$5@h5@O_9f? ec' ' f?4@hj?5@be?%?֮be?%O9c?be?be ?%O9&e&b?%4B3?5B$4?5jb?kc?%YO94 feh4 ?$ &O_5508 54 efh4 ? 4 h'ef?$5  54 h'ef? 4@j& 4'%'O05e?% e?%0hgf+e?%054d %%4 ? 5 $2b9 ģ 2b 4d 4O䧀%5b%!$4O$ 599b?b? O9%O_9tb?9BPV^z&qrma.tmp      <  # ( , 0 4 9B =B AB EB I" N" S X ] a eR iR m q u y }   C                D  9 =     : ; ? ?% ? 0 1 2 3   4 5 #6 (7 - 0 4 8 < @ D J P U [ _ c h l p t x |                     ! " # $ $ % % & ' !( %) )* -+ 1, 5- 9. =/ x gAsF x A K l   ,  g x g* g\ grABCCDPDXY U@S@PClocfgesx4rH/ kyb#88((((((((""""""'d lxB.,*(&<:86420JHFDB@>XVTRPNL `^\Z*&"FB>:62.b^ZVRNJ~zvrnjf &"B>:62.*^ZVRNJFzvrnjfb~"  c.asmu/p#7!p87! >c.lin0&94 4@O_Z&30415A'b3`'O' b'0'02d510䦀'T 'P ',& "''&l4 '&5o '" 00l ' ',' o 0441č oo4q0$&0묩&$ $%&9**** STACK OVERFLOW **** 04d?o4!&9&$940040b&2d94@2z0u432bl0l-&n]3A=&3A0sq&4@ 2bq3A=&( ,  XI0f044@4@0 42d3A=&q0Aqh3A=&^4@4-2bp J3A=&4@42b%,2 &4@0 40 w4*2f3A=&0Au0fi X40 o42d Fo'l' m'Bs'Cn'DE'Pe'IM'`b't' 3A& .2 * & 0 42b  XI0*0 jj.M3~' 0 4[2bq4+_2b'5&&*' 0 4 a2b"' 0 4 R2b&' 0 4 ?2b"*#"*40 42dD' 0 42bs& 0 42b'Zu& 0 4 B2~u4u4 2d' O& 0 u40 42d2b! 2f54@2 'O_4XI0*0B840 4B492f8&8 84440h42h~&0b44b#5,&'z Hh' ?' f'7? 2' f'*{ %f&B40 42d fp&npO_40d4D2d&l2~>4p4d4P2f4x4d4<2f4r4d4(2f4t4d42f4v4d42f2b -O_XI0f0B84%2b0 c4B42d8&XZ S0b44b#5*'Q (h'Z f'' Z 40d4H2d0``&0 /84440h42h~& -O 2254@2<&142b' <'' '@@'0)484!2b)'42b84$2bn0a4v2b0a40c42d%' %  &2~0c4A2b0c4b4&,2d)2b''0'484$22b&84$2b8O ' ''0'44k2b&2)54@2~O_4>-J_~'4b"4b"&4b&*4b*24b!2.4b.64b'64#4 N~&k&Vp4p4$2d~'.Lr4r42d~'&Lt4t42d~'Lv4v42d~'"L54@2{>c_~'c-]JO 8L L$ L L( L,L 2c/4e4042f ~'Č'Ō'ƌ'nj' N~&4e$4e$ 4e (4e(,4e,ccc&9x4x42d~'O_L_4@O_((* "$$&,54@|2~5f-f- 4j4d4#2fj 42b54@;&4?2b N054@4fff 4@4f4%Z%44842h54@2t84 2b 0b42b84 2b&2l54@d2{O_ .84440f42h~&O0 'cc03_~&c2e54@@d2~ N~&54@"f4f4042f04 4u2d0P4 54@0N454@B40LT4@B40I B4@B40X 04@B4>/40]4 52f54@B40e4 2d54@jd2~ /&0A3A&5etextedataenddpsizbtexterror specifying library: -l%s error specifying %s -M%s memory size:unknown option -%ctoo many source filesunresolved referencesno init data allowedno dp data allowedno static datadirect page allocation is %u bytesname clashno output fileno entry point nameentry point '%s' not foundr'%s' contains no mainlinersymbol already defined: %-8s in %s unknown entry type in %s:%sBASIC09 conflictno mainline allowedcan't open '%s''%s' is not a relocatable module'%s' contains assembly errorsmainline found in both %s and %serror reading input file %s4@2q4F4 2bHO_Ḟb6XI .&* d f4"EhOi40d4\2dj'0 >#,k*"&2m04s42d:& 204 2b: d4:4g2d~'0o 04 40f4#2f:44 40h4|2h q0&ʀ044q4#d2fq4:42d0440p4#<2f:4p42dO642b0w4:42b040w44.0{4044544*p445b040{44&@E> P_~'DPPP&O_4044:42h0440*4"=2f:4*42d04*40w4"2f:4*440w42ht0440&4!2f:4&4t2d&' &42bO_4044:42h0440N4!2f:4N4+2dR4 2b0440L4!u2f:4L42dT4 _2b044q4!G2fq4:4v2d:4O_42d 0004000CS3A-:444042h]:42b'''404042f2o54@2,2~O_4:4(2b44:42h //04b40f4 g2f/:4440h42h&254@2yJP/'.8404P/J412f8&P/4042dO_4P0)4484 2h844PPP4H4S2h~& P/4 2b842b8O 'P/42b2v042b842b8O ' P/42b040b42do&I040D4V 8844404 2h8O ' P/4i2bo40n42d03_~&2j&^84>2b8O 'GP/4$2b 984440h4 C2h8O ' P/42bO_40d42d&04P4H4c2fZ&O_40w44:4x2h:44P4H4 2h0w444P>Z}O_HP z0zP%P'_O_40{44:42h:44P4HPP4 x2h0{444P-2O_Z4P 4P $4P$(4P(,4P,PP PP$PP(PP,PP#4@g2ykHe bm'm cm abOĀ'Pc,c HbaO # $ ( ,c '042b ~'ٌ'،'׌'֌' bO@'c@PcbO0 '!e4PeO& e4PebO' c c 'HO'( $kaO&4@0R4i2dNN 4@0T4S2dLL2g54@@d2~ 4hh&54@d40 4@:O 's4042d54Vij?5V(wx+can't create output fileBASIC09 static data size is %d bytes rcan't reopen input file %ssymbol %s not found in codgenref type errorerror reading file %serror writing file %s4@d2~O_ 4&4s54@dXI00 "4&4@h42d~'~&O_54Ff4h42bb42d~&x_~'e/4b4d4f4h4j4l4042''- L4J4,4@04~2hN~&&042b"4*44&4.404A2l54@0``'N040442d` 'N/4N44@40404 2j0`4&5O_554@d2~ 842b&O_54F(:':4 a2bs42b(4C2b5linker fatal: need %d bytes for linkbuf out of memorycodeudatidatudpdidpd???Linkage map for %s File - %s Section Code IDat UDat IDpD UDpD File %-16s %04x %04x %04x %02x %02x %s %-9s %s %04x ---- ---- ---- -- %04x %04x %04x %02x %02x Unresolved references: %-16s %-16s in %-16s 4@\ ddd/~&d'# 4o2b\\ddd.54@d ff.54@d2~O_ ,053B-O_54F&'\f\O_f442d42b&?\& 04Z ,2~\\4 d4D2d2bh54@d2| 3O_b0B '042b bbb-~&ɍ!2d54@d0^^-54@04^40w42f:44^40w4S2h0wO_^5out of dref nodes4@3FO'h3M4@0Y"(V54@h&~'FdHf+'f+&F F4r'd& FBKD05O_54@d2|O_j j+&   0dh~' x'ٌ+' \ <44@-2db'4O_44h42h E 44@# ʁ44@2db '2(O_ r'a'w'Œd' b2d54@O_4h4h4K4@f4f42d&O_ 5O_ $4@h42bf4f42d~,O_ h4h44@2f54@04f42d04 4z2d54@d2 g4b4b2d&2a54@d2zO_ -ld 4 Q2b'dd.bbbn-b2f54@d2|O_ 1O_ n442dnO &j-bbbl-b2d54@0m0f4f 4@dm0h4h404(2f54@dm0h4h404 2fO_md54@f2u h';h42bh%&hO_bfh-& h O_h0&0   f4  4jfhh0Z0O&h.&3d b4  4jbhh0Z0O& O_dh&f404t f404 f4j0Z0O404>f4040o4cd&bf404f4n4 W2fx0}0id'8id 'iibb&f4kf4h442h /f4k h 2f404l42d44G2f9h42b,d'ӌo'x'X'u' f'e'g'E' G'c's'%l'n 2k54F0of,(f@Pf,0F40o4T2d5-0f4b4 2d0o54vjO_bO_ l|ll-0|d 6ll,ll'bb'0O_ddd&l0O_j2f54F0o3yfO0fDVDVDVf& Į03_4@0y#O_0o54V0ob3yhO4b /l'A a 0hDVDVDVDVh& Įb0b3_4@0y#O_0o4@fjhj&% 42bjj. 42bhh&' 42bjj.54@fh44@2b@Ph&% 42bhh. 42b&' 42bhh.54@m4f42d54@dm0m5-327684@d2z'FO&#F_~& 4@2bF_~'4@2bFFBKDD$0b40n+l0b4444@2b K440f445,0f 0fx-.dB%#D$FFm ~''&0l444DwDFF40n44H4 =2h445& O_2f54@O_4O_44j42h54@d'FO&534@5F_~&4@2b4O_44H4 2h44F_~'B D4ģ<54@fF"'FO"&4@F2bFO'540g4H4FO@'0 H 0 )2f&JF FF_~&4@2bădD$FO@'d & 4@&d54@df44@q4F2df44@;G4F3O_ 03M42b-54@d2~'F&5FO'4@2b O_H42bO_F54@d' FO"'5F_~&4@2b4@54@d2|F_~&#D'O_44@#2b44H42hģBb'nF_~'cFO@'3B 'b44H42f&0d *bbb& )b4B4H42fb' 2F FD FFBKDO_2d54@d'FF_~&=D$ăO 4@o2b54@f'FO'd'B"5dd54@d2|4@2bb'4@2b& b42d54@d2~F1'FO1'54@2b04&FO@' 0472bFO'%K4B4H4FO@'0P 0) 40JB4H42f.F4b' F5BBDO54@dFO&-204H4O_42fF4b&@ F2 FFO '5K&FO@' KB&K42bB'FF FF0JBKBKD54@e 0' e05d'ތo'׌x' 54@054@d&0d54@f2~f0&f54@f2~f0&0&f54@d f0f&O_53A4'454@f2~fjj/0& O_0jj.f54@d f0f&O_53Ahh/4'h,O_ 454@f2~f0&jj/ 0&j,O_f54@df0f._O_O_d54@d2{O_a ' '-& O_c-'+& a4 4ba0Z0O&c'a@P a2e54@d f0fhh.5dbdbzb&d' % O4ae52d9b9CSCS09090oo94 d"5!595b2b0909M&mb&c=b5444ei=beh=aa$ldi=aa$ldh=fhb2h9o0@ 0Oomb*l&5nb4bm'@P9' 42~ooa .5-'42~ooaM*@Plabf*@PcafLhcib*fofogb$b igifdbfcj&bma'f@Pfdfdfbd2f9]'gbfcZ& ]'dbfcZ&b4bd2d9]'hcibZ& (4$? 5$?9ec'-'+''' 'g4@?$5@[h5@O_9f?Pec' ' 8f?94@hj?5@+be?%?be?%O9c?be?be?%O9&ۦe&ӄb?%4B3?5B$4?5b?c?%O94 feh4 ?$ &O_550| 54 efh4 ? 4 h'ef?$5 S 54 h'ef? 4@j& 4'%'O(05e?% e?%0hgf+e?%059_? 94`fhj?5ce?%9b? %94d%%4 ? 5 $2b92b4d4O䧀%5b$%!&$4$O$ $5$994@#d0? 5@2O42b;O(9%O_9b?9 wz`` w'd lxB0 HHHHHHHHHH BBBBBB DDDDDD xvtrpb`zc.link\/p# ','"'''041!' ' ',' 41! '&5o & 04XI14@ 1>4 %5 5O_8c00묩$ %9**** STACK OVERFLOW **** 04d?O589940040b&2d94Fh4@y2xO_bl 0_rl0ld-&ddO_ Hdf ,f0f=& f4f 2bbbO_ &b'O_b 3_~.&0&\0 RdO_6& 06' [/&d40b&r2bO_/~d&2h54@c0M 0H0C 54@?2~O_.=&3A0 !!=&xA'r0Aq ipO_5Ѝi5 Wb'Fd'Mf'T 'C '>i'Rn'Ys'`t'gx'nu'uz'|?' &2b54@3+ 04$ 2b%54@1'&01v' 0 ' 5!'[&'  04P40#2d~'& '0/D00O_05O_54@O2O_(  &B3A0 h'&h&0}4,2b4I'n0n&O_0O_f0l @ )4@hM2b +j40A42d3 ='Ҍ:' ~' &' O_E3A ' '~'0.640c2b O_O_bljO_d  b "ddll:' ' ' d'O_dl0lj'2 &b''&   b''&  ή&!&401-r2b/'O_&\ ll ' 'ljb'0f& )254@ &0  -&0   54F2~04d 2b&b4)42d22d54@2~0,}4h,t/ 0K4I04h0h&44@g2xO_d0ӯf3&O_b ' &53A ' '0~&;d'' f0f&)d "0~&-&&4@bb&A d'ff3A*'@'?'0+|40]2bf\& O_' fzd'Df ;A0k0O&2f0f ' 'ffd' f0fO_ +3Aff $'E '{#' &$ 440Y2d~&  d' ' &b &O_d )&b''`'0~42b/b&0 O_2h54@| 5#'*' '~'O_54FK0>4bl2b/2b5can't open "%s". ..%s up to date ccccrmaSyntax: make {[<-opts>] [< target file >] [< macros >]} Function: keep track of modules for a file Options: -b don't use built-in rules -d debug mode, print out the file dates in makefile -f= use as the makefile (default: makefile) -i ignore errors on commands and keep going -n don't execute commands, just print them out -s silent mode, execute commands without echoing them -t update the dates without executing the commands -u do the make whether it needs it or not -z[=] get list of files to make from stdin or path no dependency list for command line syntax error "%s"makefilerbuffer overflow -- line too long unfinished continuation line make terminated 4@2t0bO_hj 3A ' 'f'c 1 O_jj 3Ahh  ' 'ܯ~' j'4j@Pf6dd.vb2l54@K4@C4@4O_DBdF054@2~0%4@b%2bD4@O_!000zO_40"2b0FgO_402b!'54@2xO_blXIXIf4b0C0402df~'tf4n40 2dD'l40J4D2dbb&@0f%&d/@04h4h$2b%2bd402bd' O_b D'l4D92bl'B&E2h54@2|O_bhXIXI4b0C040E2d~'0D'h40R4D?2dbb&0k0j O_b D'h4D2bh'pB&g4F?~'4j4052ddB&֮&O_S4F0B!!-4@204k2b&4)42d(O_4@4O_4f^2f&(4042d( b' 0bH~'4 440h2f~&!'404_2d(|2"54@2O_ "4@0b$!2b"$$&" &&/&&4 & &04(_'B ' "  "$40b40'2d04&J2b!! " ""&]!2(54@N2~fDh &D 4@(2~f DD\4F2~bbO_2d54F'D'B02b5checking for implicit relocatable files checking for implicit source files %sfile: %s found object file(level %d): %s no explicit ".r" file .r%sfile: %s no explicit source file listed found dependent (level %d): %s dcan't read "%s". can't find source file to make "%s"found "%s" to make "%s" 4@s2tDj hfO_b0b'j' 4h&'#dd O_dj' ##j{ h'4jR' hjjj&{'h4&&'b40j2b##2l54@L2蔮jO_dbj 0/& dd &O_fj K~'6bbd&''40h2b0 40h2bajA~'&bbd&L%'F40h2b0 R j ~' d&##'40h2b0 +bbj40h2b&b40h402d'40h2b2l54Foh2O_4!)2b,;4!2b,)~&' 4)4 G2d#d&?40d4#02d&40a4 2d#20e4b 2b 254@2~4@0 /'p.'L4#W4@2~')'>O_ 04'4.O_ 3Aff-2b54F.2tO_f '40 2b 0 / d&ld 'd'-&%d0d bjd0dO_fj Cbh0 (f&0hjff #b4jjbjhj .'ӌ/' hhh.j4d44@2dj 'w44@2b3ed404 92d!V K*'[@'?' 4@O_l4bB2b& 3A $' ' 00& l4f2b4@2rO_lj ll jj3A @'-''040a2b' p0bO_d&l& 040*2bO_4444@04j2jf'f*~'"&j&0 042b 2n54F2|0bb'+b&4fC2b' d&'  O_2f54@t40Q 0X40\2b402bdd&054@62O_(&$,~'s4D2b*&' ,3~'r ,40Z42d0, **"*0 J(( \&& Q$$ F042b,40Z42d c'a'r'f'Ìp' ('k0X4 4 2b32b' 4$2b''$0D42bN0  0%42b*4(D&'+&' 04 0X4 42b2b '0X42b2b04'&044g2bb2b04,4P2bK2b'' &y$'0X442b2b'0X42b2b&''0/442b2b04,42b2b &'042b2b,42b042b2.54@L{2O_f 0/& ff &f&b''0>~'4@40 8%'0W~'4@40h #'-0~'$4@40Q40h 2f 4@0d2b40d2bh,0b4)42d&0b4040 2dht2j54@2thfdb#XIXIj4d4h4l444@0x040 &2n2l54@"2vbbdor& d~& d~'d &Ԯbb&B&O_2j54@ /&5&O_54@402b08402b5///getstat error - "%s". command: %s no explicit command "%s" - unknown macro on command line shellaborted due to errors aborted due to errors don't know about 'f' or 'p' compilers. -r= -r r68./ -o=/ -f=/ %s/%s%s/%s%s/%supdated: "%s" %s%-32s date: %02d/%02d/%02d %02d:%02d /4@^2~0+Q4@bb2b  24@/2~%'4@bJ' &&0 <4@2~0&& 4@O_DK0MBd4B2b54F2~%b'b4b&  &b4042d2d5can't find target file: %s. 4FX'j4j4j4f32f4@02~00.&Lc'<a'7f'2p'- 14@2~00.&0r&6O_14@2~O_ f0f-4@ߕ 4f0f&3A &&n.&edr&['#T4@N 5.&/ d&45c'a'p'f' 4f0f'O_54@2~0&H0J42b$ 54F040L2bh4h2b04072b2b5 - system memory request denied. make: 4@c2xd'10C *d0d O_d # ' '=' & ll ' 'lblb0 &bblO_0bf4@h2bl4hb2b040&&V##6040&&*'' 0t40~&&%%0M40R&&03401& & 040&&{040&)&o )) P040&+&F ++ '040&-&--f2h54F<2pfbj0(&jj 3A0)& 3A4@hl2b'4@l4n,flhd0h0h& ?jj' 44@jld h0hd0dh$h h0hf0f& f404p2db254@.2~''1 +f44@d2d~& f& &O_2b5SDIRRDIRODIRCFLAGSRFLAGSLFLAGSCCRCLC"%s" - unknown macro4@3FO&053M4@0j"O_554Fh&~'AHf+'+&F F4r'd& FBKD0O_4@2|O_h h+&   0df~' x'ٌ+' Z :402bb'4O_44h_2f E40 ʁ40o2bb '2O_ r'a'w'Œd' b2d54FO_4h4d C4Ff4b#2b&O_ /O_ 4Fhf4b2b~,O_ h4h402d2b54F04b2b04 n2b2b54@2 e4bV2b&2a54F2~b 0 l '&&O_ O_b2d54Ff2|d b0 '03_~/ l b&O_b&O_ d2f54@I2zl )j n'ddd&d& bbb&lb2f54F00f4b 4F0h4h40*2d "4F0h4h40u2dO_2b54Ff2u h'! h%&hO_bfh-& h O_h0&0   f4 {4jfhh0k0O&h.&3d b4 D4jbhh0k0O& O_dhf40bf40 f4j0k0O40/f4040Rd&bf404f4n =2dY0v0id'6id 'iibb&f4kf4h42f *f4k4 h 2f404lo82dIh @d'o'x'X'u'f',e'%g'E'G'c'*s'0l'y 2m54F2~0ׯb,)@Pb~,0(40E2b-0b4b2b4F2zfO_b lll-0d 4ll,l'bb'0O_ddd&l0O_f2h54F2~0ׯ3bO0bDVDVDVb& Į03_4@0#O_02d54F2|0ׯb3dO4b /l'A a 0dDVDVDVDVd& Įb0b3_4@0#O_02f54Ffjhj& jj. hh&' jj.w4Ffh40@Ph& hh. &'7 hh. !4F4b2b 4F䮩02b5-327684@2z'FO&F_~&0F_~'0FFBKDD$0b40l ˮnf0b4440 9 K 440f445 ),0f F 0f -*dB%D$FFi ~''n&0j444D   2DFFn40l44H2f445 & O_2f54FO_4O_44f2f2b54@'FO&534@ 5F_~&04O_44HU2f44F_~'B D4ģ _ 54FfF"'FO"&0dFO'540c4FO@'0 0H2d&F FF_~&0ăD$FO@' &0~&Xt4@d44@ RI2bd40>U4F3O_ 03M- 14@2~'F& FO'0 O_HSO_F2b54@' FO"'5F_~&0@054@2|F_~&D'O_40,44H2fģBb'jF_~'_FO@'1B %b44Hn2d&0d (bbb& 'b4B4H12db' 2F FD FFBKDO_2d54F0k0O'O 4F0k0O' 2b54@' F_~'5D$ăO 0k54Ff'FO''B#4@2|0b' 0& b4N2d54@2~F1'FO1&x004&FO@' 0 FO'#K4B4FO@'0 0H 40JB4H2d.F4b' F BBDO2b54@FO&'204H2bF4b&@ F2"FFO '5K&FO@' KB& KB'FF FF0JBKBKD54Fa 0) a0 d'ތo'׌x' 2b54@054F&02b54Ff2~b0& '4Ff2~b0&0&b2d54@ d0d&O_53A4'454Ff2~bjj/0& O_0jj.4@ d0d&O_53Aff/4'f,O_ 454Ff2~b0&jj/ 0&j,O_b2d54Ff0f._O_O_2b54F2|d4.4=XIXI&O_ bb2f54F2zfDVDVd&0dO_B%)& BXIXI3Bd4@ &K~&O_ d 2h54F2~b % 4"%#$4@BXIXI&B4B ĮXIXI4& B  $4F2~b4j~' 402b02d54@ O_dd&5c?$ c?%XO9?cc? 4e$ ?%2bO9&&e& ?%4B3?5B$4?52b ce?%O9? ?%O94 df? 4 df?$(&(O_54 f'd? 4 f' d?% 55 4Fj& 6'''O02b5a?% a?%0hgf+a?%02b54&#.b? b$2d94'oZ1'O_1>&5%!$4O %599c?O_?%~'oO9c? }3b2ĦEHHHHGIB??4`fhkmo?5`%?O94@#0? 5@02O;b?b4 f?5  O9%O_945?9dbdbzb&d' % O4ae52d9b9CSCS09090oo94 d"5!595b2b0909M&mb&c=b5444ei=beh=aa$ldi=aa$ldh=fhb2h9]'gbfcZ& ]'dbfcZ&b4bd2d9]'hcibZ& C%' , X b  @ { 2 don't know how to make "%s". 'd lxB0 HHHHHHHHHH BBBBBB DDDDDD  31/-+)A?=;975makeA p'p_extern char _chcodes[]; /* in chcodes.r */ #define _CONTROL 0x01 #define _UPPER 0x02 #define _LOWER 0x04 #define _DIGIT 0x08 #define _WHITE 0x10 #define _PUNCT 0x20 #define _HEXDIG 0x40 #define isascii(c) ((unsigned)(c)<=0x7f) #define isalpha(c) (_chcodes[c]&(_UPPER|_LOWER)) #define isupper(c) (_chcodes[c]&_UPPER) #define islower(c) (_chcodes[c]&_LOWER) #define isdigit(c) (_chcodes[c]&_DIGIT) #define isxdigit(c) (_chcodes[c]&_HEXDIG) #define isspace(c) (_chcodes[c]&_WHITE) #define ispunct(c) (_chcodes[c]&_PUNCT) #define isalnum(c) (_chcodes[c]&(_UPPER|_LOWER|_DIGIT)) #define isprint(c) (_chcodes[c]&(_PUNCT|_UPPER|_LOWER|_DIGIT)) #define iscntrl(c) (_chcodes[c]&_CONTROL) #define _toupper(c) ((c)&0xdf) #define _tolower(c) ((c)|0x20) #define toascii(c) ((c)&0x7f) p'pdstruct dirent { char dir_name[29]; char dir_addr[3]; }; struct fildes { char fd_att; unsigned fd_own; char fd_date[5]; char fd_link; long fd_fsize; char fd_dcr[3]; struct { char addr[3]; unsigned size; } fdseg[48]; }; struct ddsect { char dd_tot[3]; char dd_tsk; unsigned dd_map; unsigned dd_bit; char dd_dir[3]; unsigned dd_own; char dd_att; unsigned dd_dsk; char dd_fmt; unsigned dd_spt; unsigned dd_res; char dd_bt[3]; unsigned dd_bsz; char dd_date[5]; char dd_name[32]; }; p' ph /* System call error numbers. * May be found in 'errno' after an error has occurred. * */ #define E_PTHFUL 0xc8 /* Path Table full */ #define E_BPNUM 0xc9 /* Bad Path Number */ #define E_POLL 0xca /* Polling Table Full */ #define E_BMODE 0xcb /* Bad Mode */ #define E_DEVOVF 0xcc /* Device Table Overflow */ #define E_BMID 0xcd /* Bad Module ID */ #define E_DIRFUL 0xce /* Module Directory Full */ #define E_MEMFUL 0xcf /* Process Memory Full */ #define E_UNKSVC 0xd0 /* Unknown Service Code */ #define E_MODBSY 0xd1 /* Module Busy */ #define E_BPADDR 0xd2 /* Bad Page Address */ #define E_EOF 0xd3 /* End of File */ #define E_NES 0xd5 /* Non-Existing Segment */ #define E_FNA 0xd6 /* File Not Accesible */ #define E_BPNAM 0xd7 /* Bad Path Name */ #define E_PNNF 0xd8 /* Path Name Not Found */ #define E_SLF 0xd9 /* Segment List Full */ #define E_CEF 0xda /* Creating Existing File */ #define E_IBA 0xdb /* Illegal Block Address */ #define E_MNF 0xdd /* Module Not Found */ #define E_DELSP 0xdf /* Deleting Stack Pointer memory */ #define E_IPRCID 0xe0 /* Illegal Process ID */ #define E_NOCHLD 0xe2 /* No Children */ #define E_ISWI 0xe3 /* Illegal SWI code */ #define E_PRCABT 0xe4 /* Process Aborted */ #define E_PRCFUL 0xe5 /* Process Table Full */ #define E_IFORKP 0xe6 /* Illegal Fork Parameter */ #define E_KWNMOD 0xe7 /* Known Module */ #define E_BMCRC 0xe8 /* Bad Module CRC */ #define E_USIGP 0xe9 /* Unprocessed Signal Pending */ #define E_NEMOD 0xea /* Non Existing Module */ #define E_BNAM 0xeb /* Bad Name */ #define E_NORAM 0xed /* No Ram Available */ #define E_BPRCID 0xee /* Bad Process ID */ #define E_NOTASK 0xef /* No available Task number */ #define E_UNIT 0xf0 /* Illegal Unit (drive) */ #define E_SECT 0xf1 /* Bad SECTor number */ #define E_WP 0xf2 /* Write Protect */ #define E_CRC 0xf3 /* Bad Check Sum */ #define E_READ 0xf4 /* Read Error */ #define E_WRITE 0xf5 /* Write Error */ #define E_NOTRDY 0xf6 /* Device Not Ready */ #define E_SEEK 0xf7 /* Seek Error */ #define E_FULL 0xf8 /* Media Full */ #define E_BTYP 0xf9 /* Bad Type (incompatable) media */ #define E_DEVBSY 0xfa /* Device Busy */ #define E_DIDC 0xfb /* Disk ID Change */ #define E_LOCK 0xfc /* Record is busy (locked out) */ #define E_SHARE 0xfd /* Non-sharable file busy */ #define E_DEADLK 0xfe /* I/O Deadlock error */ /* errors from arithmetic routines */ #define EFPOVR 40 /* floating point overflow or underflow */ #define EDIVERR 41 /* division by zero */ #define EINTERR 42 /* overflow on conversion of floating point to long integer */ p'Gpt/* file modes and permissions expressed in 8 bits */ /* file modes */ #define S_IFMT 0xff /* mask for type of file */ #define S_IFDIR 0x80 /* directory */ /* permissions */ #define S_IPRM 0xff /* mask for permission bits */ #define S_IREAD 0x01 /* owner read */ #define S_IWRITE 0x02 /* owner write */ #define S_IEXEC 0x04 /* owner execute */ #define S_IOREAD 0x08 /* public read */ #define S_IOWRITE 0x10 /* public write */ #define S_IOEXEC 0x20 /* public execute */ #define S_ISHARE 0x40 /* sharable */ p' px /* OS-9 module header definitions */ /* Executable memory module */ typedef struct { unsigned m_sync, /* sync bytes ($87cd) */ m_size, /* module size */ m_name; /* offset to module name */ char m_tylan, /* type & language */ m_attrev, /* attributes & revision */ m_parity; /* header parity */ unsigned m_exec, /* offset to execution start */ m_store; /* initial storage size */ } mod_exec; /* Device descriptor module */ typedef struct { unsigned m_sync, /* sync bytes ($87cd) */ m_size, /* module size */ m_name; /* offset to module name */ char m_tylan, /* type & language */ m_attrev, /* attributes & revision */ m_parity; /* header parity */ unsigned m_fmname, /* offset to file manager name */ m_ddname; /* offset to device driver name */ char m_mode; /* mode byte */ char m_control[3]; /* device controller address (24 bit)*/ char m_tabsize; /* option table size */ } mod_dev; /* Configuration module */ typedef struct { unsigned m_sync, /* sync bytes ($87cd) */ m_size, /* module size */ m_name; /* offset to module name */ char m_tylan, /* type & language */ m_attrev, /* attributes & revision */ m_parity; /* header parity */ char m_ramtop[3]; /* top limit of free ram */ char m_irqno, /* IRQ polling entries */ m_devno; /* device entries */ unsigned m_startup, /* offset to startup mod. name */ m_sysdrive, /* offset to default drive name */ m_boot; /* offset to bootstrap module name */ } mod_config; /* C data module */ typedef struct { unsigned m_sync, /* sync bytes ($87cd) */ m_size, /* module size */ m_name; /* offset to module name */ char m_tylan, /* type & language */ m_attrev, /* attributes & revision */ m_parity; /* header parity */ unsigned m_data, /* offset to data */ m_dsize; /* size of data */ } mod_data; p'epstruct registers { char rg_cc,rg_a,rg_b,rg_dp; unsigned rg_x,rg_y,rg_u; } ; #define F_LINK 0x00 /* Link to Module */ #define F_LOAD 0x01 /* Load Module from File */ #define F_UNLINK 0x02 /* Unlink Module */ #define F_FORK 0x03 /* Start New Process */ #define F_WAIT 0x04 /* Wait for Child Process to Die */ #define F_CHAIN 0x05 /* Chain Process to New Module */ #define F_EXIT 0x06 /* Terminate Process */ #define F_MEM 0x07 /* Set Memory Size */ #define F_SEND 0x08 /* Send Signal to Process */ #define F_ICPT 0x09 /* Set Signal Intercept */ #define F_SLEEP 0x0a /* Suspend Process */ #define F_SSPD 0x0b /* Suspend Process */ #define F_ID 0x0c /* Return Process ID */ #define F_SPRIOR 0x0d /* Set Process Priority */ #define F_SSWI 0x0e /* Set Software Interrupt */ #define F_PERR 0x0f /* Print Error */ #define F_PRSNAM 0x10 /* Parse Pathlist Name */ #define F_CMPNAM 0x11 /* Compare Two Names */ #define F_SCHBIT 0x12 /* Search Bit Map */ #define F_ALLBIT 0x13 /* Allocate in Bit Map */ #define F_DELBIT 0x14 /* Deallocate in Bit Map */ #define F_TIME 0x15 /* Get Current Time */ #define F_STIME 0x16 /* Set Current Time */ #define F_CRC 0x17 /* Generate CRC */ #define F_GPRDSC 0x18 /* get Process Descriptor copy */ #define F_GBLKMP 0x19 /* get System Block Map copy */ #define F_GMODDR 0x1a /* get Module Directory copy */ #define F_CPYMEM 0x1b /* Copy External Memory */ #define F_SUSER 0x1c /* Set User ID number */ #define F_UNLOAD 0x1d /* Unlink Module by name */ #define F_SRQMEM 0x28 /* System Memory Request */ #define F_SRTMEM 0x29 /* System Memory Return */ #define F_IRQ 0x2a /* Enter IRQ Polling Table */ #define F_IOQU 0x2b /* Enter I/O Queue */ #define F_APROC 0x2c /* Enter Active Process Queue */ #define F_NPROC 0x2d /* Start Next Process */ #define F_VMODUL 0x2e /* Validate Module */ #define F_FIND64 0x2f /* Find Process/Path Descriptor */ #define F_ALL64 0x30 /* Allocate Process/Path Descriptor */ #define F_RET64 0x31 /* Return Process/Path Descriptor */ #define F_SSVC 0x32 /* Service Request Table Initialization */ #define F_IODEL 0x33 /* Delete I/O Module */ #define F_SLINK 0x34 /* System Link */ #define F_BOOT 0x35 /* Bootstrap System */ #define F_BTMEM 0x36 /* Bootstrap Memory Request */ #define F_GPROCP 0x37 /* Get Process ptr */ #define F_MOVE 0x38 /* Move Data (low bound first) */ #define F_ALLRAM 0x39 /* Allocate RAM blocks */ #define F_ALLIMG 0x3a /* Allocate Image RAM blocks */ #define F_DELIMG 0x3b /* Deallocate Image RAM blocks */ #define F_SETIMG 0x3c /* Set Process DAT Image */ #define F_FREELB 0x3d /* Get Free Low Block */ #define F_FREEHB 0x3e /* Get Free High Block */ #define F_ALLTSK 0x3f /* Allocate Process Task number */ #define F_DELTSK 0x40 /* Deallocate Process Task number */ #define F_SETTSK 0x41 /* Set Process Task DAT registers */ #define F_RESTSK 0x42 /* Reserve Task number */ #define F_RELTSK 0x43 /* Release Task number */ #define F_DATLOG 0x44 /* Convert DAT Block/Offset to Logical */ #define F_DATTMP 0x45 /* Make temporary DAT image */ #define F_LDAXY 0x46 /* Load A [X,[Y]] */ #define F_LDAXYP 0x47 /* Load A [X+,[Y]] */ #define F_LDDDXY 0x48 /* Load D [D+X,[Y]] */ #define F_LDABX 0x49 /* Load A from 0,X in task B */ #define F_STABX 0x4a /* Store A at 0,X in task B */ #define F_ALLPRC 0x4b /* Allocate Process Descriptor */ #define F_DELPRC 0x4c /* Deallocate Process Descriptor */ #define F_ELINK 0x4d /* Link using Module Directory Entry */ #define F_FMODUL 0x4e /* Find Module Directory Entry */ #define F_MAPBLK 0x4f /* Map Specific Block */ #define F_CLRBLK 0x50 /* Clear Specific Block */ #define F_DELRAM 0x51 /* Deallocate RAM blocks */ #define I_ATTACH 0x80 /* Attach I/O Device */ #define I_DETACH 0x81 /* Detach I/O Device */ #define I_DUP 0x82 /* Duplicate Path */ #define I_CREATE 0x83 /* Create New File */ #define I_OPEN 0x84 /* Open Existing File */ #define I_MAKDIR 0x85 /* Make Directory File */ #define I_CHGDIR 0x86 /* Change Default Directory */ #define I_DELETE 0x87 /* Delete File */ #define I_SEEK 0x88 /* Change Current Position */ #define I_READ 0x89 /* Read Data */ #define I_WRITE 0x8a /* Write Data */ #define I_READLN 0x8b /* Read Line of ASCII Data */ #define I_WRITLN 0x8c /* Write Line of ASCII Data */ #define I_GETSTT 0x8d /* Get Path Status */ #define I_SETSTT 0x8e /* Set Path Status */ #define I_CLOSE 0x8f /* Close Path */ #define I_DELETX 0x90 /* Delete from current exec dir */ #define SS_OPT 0x00 /* Read/Write PD Options */ #define SS_READY 0x01 /* Check for Device Ready */ #define SS_SIZE 0x02 /* Read/Write File Size */ #define SS_RESET 0x03 /* Device Restore */ #define SS_WTRK 0x04 /* Device Write Track */ #define SS_POS 0x05 /* Get File Current Position */ #define SS_EOF 0x06 /* Test for End of File */ #define SS_LINK 0x07 /* Link to Status routines */ #define SS_ULINK 0x08 /* Unlink Status routines */ #define SS_FEED 0x09 /* issue form feed */ #define SS_FRZ 0x0a /* Freeze DD_ information */ #define SS_SPT 0x0b /* Set DD_TKS to given value */ #define SS_SQD 0x0c /* Sequence down hard disk */ #define SS_DCMD 0x0d /* Send direct command to disk */ #define SS_DEVNM 0x0e /* Return Device name (32-bytes at [X]) */ #define SS_FD 0x0f /* Return File Descriptor (Y-bytes at [X]) */ #define SS_TICKS 0x10 /* Set Lockout honor duration */ #define SS_LOCK 0x11 /* Lock/Release record */ #define SS_DSTAT 0x12 /* Return Display Status (CoCo) */ #define SS_JOY 0x13 /* Return Joystick Value (CoCo) */ #define SS_BLKRD 0x14 /* Block Read */ #define SS_BLKWR 0x15 /* Block Write */ #define SS_RETEN 0x16 /* Retension cycle */ #define SS_WFM 0x17 /* Write File Mark */ #define SS_RFM 0x18 /* Read past File Mark */ #define SS_ELOG 0x19 /* Read Error Log */ #define SS_SSIG 0x1a /* Send signal on data ready */ #define SS_RELEA 0x1b /* Release device */ p'ptypedef int jmp_buf[4]; p' Mp struct sgbuf { /* structure for 'getstat()' and 'setstat()' */ char sg_class, /* device class */ /* The following are for an SCF type device. See below for * structure member definitions for an RBF device. */ sg_case, /* 0 = upper and lower cases, 1 = upper case only */ sg_backsp, /* 0 = BSE, 1 = BSE-SP-BSE */ sg_delete, /* delete sequence */ sg_echo, /* 0 = no echo */ sg_alf, /* 0 = no auto line feed */ sg_nulls, /* end of line null count */ sg_pause, /* 0 = no end of page pause */ sg_page, /* lines per page */ sg_bspch, /* backspace character */ sg_dlnch, /* delete line character */ sg_eorch, /* end of record character */ sg_eofch, /* end of file character */ sg_rlnch, /* reprint line character */ sg_dulnch, /* duplicate last line character */ sg_psch, /* pause character */ sg_kbich, /* keyboard interrupt character */ sg_kbach, /* keyboard abort character */ sg_bsech, /* backspace echo character */ sg_bellch, /* line overflow character (bell) */ sg_parity, /* device initialisation (parity) */ sg_baud; /* baud rate */ int sg_d2p, /* offset to second device name string */ sg_stn; /* offset to status routine name */ char sg_err; /* most recent error status */ char sg_spare[5]; /* spare bytes - necessary for correct sizing */ }; /* the following is a structure definition to set the names, types * and offsets of structure members which are applicable to an RBF * type device file. */ struct { char sg_class, /* device class - repeated from above */ sg_drive, /* drive number */ sg_step, /* step rate */ sg_dtype, /* device type */ sg_dense; /* density capability */ int sg_cyls; /* number of cylinders (tracks) */ char sg_sides, /* number of sides */ sg_verify; /* 0 = verify on writes */ int sg_spt, /* default sectors per track */ sg_spt0; /* ditto track 0 */ char sg_intlv, /* sector interleave factor */ sg_salloc, /* segment allocation size */ sg_att, /* file attributes */ sg_fdpsn[3], /* file descriptor PSN */ sg_dipsn[3]; /* file's directory PSN */ long sg_dirptr; /* directory entry pointer */ int sg_dvt; /* address of device table entry */ }; p'=p/* OS-9 signals */ #define SIGKILL 0 /* sytem abort (cannot be caught or ignored)*/ #define SIGWAKE 1 /* wake up */ #define SIGQUIT 2 /* keyboard abort */ #define SIGINT 3 /* keyboard interrupt */ /* special addresses */ #define SIG_DFL 0 #define SIG_IGN 1 p'p#define BUFSIZ 256 #define _NFILE 16 typedef struct _iobuf { char *_ptr, /* buffer pointer */ *_base, /* buffer base address */ *_end; /* buffer end address */ int _flag; /* file status */ int _fd; /* file path number */ char _save; /* for 'ungetc' when unbuffered */ int _bufsiz; /* size of data buffer */ } FILE; extern FILE _iob[_NFILE]; #define _READ 1 #define _WRITE 2 #define _UNBUF 4 #define _BIGBUF 8 #define _EOF 0x10 #define _ERR 0x20 #define _SCF 0x40 #define _RBF 0x80 #define _DEVMASK 0xc0 #define _WRITTEN 0x0100 /* buffer written in update mode */ #define _INIT 0x8000 /* _iob initialized */ #define EOF (-1) #define EOL 13 #define NULL 0 #define stdin _iob #define stdout (&_iob[1]) #define stderr (&_iob[2]) #define PMODE 0xb /* r/w for owner, r for others */ #define fgetc getc #define putchar(c) putc(c,stdout) #define getchar() getc(stdin) #define ferror(p) ((p)->_flag&_ERR) #define feof(p) ((p)->_flag&_EOF) #define clearerr(p) ((p)->_flag&=~_ERR) #define fileno(p) ((p)->_fd) long ftell(); p'wp/* structure for the 'setime()' and 'getime()' calls */ struct sgtbuf { char t_year, t_month, t_day, t_hour, t_minute, t_second; }; /* system dependent value */ #ifdef LEVEL2 #define tps 100 /* ticks per second */ #else #define tps 10 /* ticks per second */ #endif p'\[p]b#S %prof_c_prof_dumprofy4@3 d&0D53H%# B'0~ fB0D 'fBd0D4554@|0 4s2b3 !0D44B40!404N2j3H%5???????? %8s() %ld _lmoveu_lincLfflush_iob _stkcheckpflinitfprintf ! !Y!R!2!,!'!! b#S  fdefdrive_cdefdrive4@2yO_4 40P42f';e3 de0ed.dOO_42b0 O_2g5InitmodlinkmunlinkO U +b#S &pffinit_cpffloatpffinit4@54Ff   O_ f'e'E'g'G'f00O4b4l442h2b54@2h04&3G&O_0 GO,@P O_4NG4?' @P , O O_04440f2l "04 50̍5- "04 50 5, 2000' -0&/ &,O_&O_j(&j.w0 3(,1 2l05&M E2O_l,%l&- &l& %&@PlO_&O_h l&/0 0n042bl,300. 00ll& Sl&0 0n40b42d0ll&&'. 0n40b42d0&&.h'v2|"4040h42db  -0 .'-'b9/ O_b' 2d'p*'E e0,@P- +04 5004 00 0j','# 0'  &O_0"04042d42b0&0 02 54@d%(ʀo'dfffffffL&J+'O_5bOTTTT04F焍,+&&J*+2xJ*_J*2h5Ɩ+ h iJ*9pffinit buffer overflow L}# =pznOwQXes'ŬGGp7ljmVzCi+waf p_A6c[ν_/ $\ oPYa.BKU4$5 \R|:OfMK8w26H_ddiv[ccmodccmultscaleccdivccasr_dmul!_dstack2Ll_iob 8_dcmprA{_chcodes ;fprintf=_dmovev $^exitG ***** [ U M )!Z b#S (&pflinit_cpflongpflinit4@54@eo0044~ 0044U2dZe00O400442f 1leO_ d'o'x'X' 054F00f445B,@0f40h74445!,04042d-00f44d42f4vjO_b0dMO_ 0l444j0l44h,'bb'0ddd$&n0O_j2f54F03hO00f40h4M445:7& Į03_4@0#O_2b54V0b3jO4b /n'A a 00h40j4445& Įb0b3_4@0#O_2d5-2147483648;B@'d $_lmoveʠEǠJ_lneg_lsubB_lshr4strcpy_chcodes D_lcmprݠT_landĠG j     !x! y s m$b#S ,fopen_cfopenVfreopenufdopenE4@3FO'h3M4@0Ь"V54@h&~'FdHf+'f+&F F4r'd& FBKD05O_54@d2|O_j j+&   0dh~' x'ٌ+' \ <44@&2db'4O_44h4 2h E44@ ʁ44@2db '2O_ r'a'w'Œd' b2d54@O_4h4h4K4@f4f42d&O_ 5O_ $4@h42bf4f42d~,O_ h4h44@2f5creatlseek_iob  errno openؠfclose|b#S Bputs_cputsfputs"4@0 4f42d0 4 42d54@d2 g4b42d&2a5_iob  putc4b#S  gets_cfgets;gets4Ff 042b '&&O_ O_f2b54@f2|h b0 '03_~/l42bb&O_b&O_ h2d5_iob getcbb#S  6mktemp_cmktemp4Ff 3A'X&'4044@2ff2b5%dsprintf)getpidb#S  Ffread_cfread4@d2zO_ -ld 42b'dd.bbbn-b2f5getcb#S  Jfwrite_cfwrite4@d2|O_ 1O_ n442dnO &j-bbbl-b2d5putcb#S ' printf_csprintf.printffprintf4@0 0f4f 4@d0h4h404(2f54@d0h4h404 2fO_d54@f2u h';h42bh%&hO_bfh-& h O_h0&0   f4 M4jfhh00O&h.&3d b4 4jbhh00O& O_dh&f404t f404f4j00O404<f40404_d&bf404f4n4[2fx0}0id'8id 'iibb&f4kf4h442h /f4k h 2f404l42d44E2f9h42b,d'ӌo'x'X'u' f'e'g'E' G'c's'%l'n 2k54F0f,)f@Pf,0D404<2d-0f4b42d4vjO_bO_ lll-0d 6ll,ll'bb'0O_ddd&l0O_j2f54F03 fO0fDVDVDVf& Į03_4@0 #O_02b54V0b3 hO4b /l'A a 0hDVDVDVDVh& Įb0b3_4@0 #O_04@fjhj&% 42bjj. 42bhh&' 42bjj.54@fh44@2b@Ph&% 42bhh. 42b&' 42bhh.54@4f42d54@d05-32768'd pflongccmultstrlen|_iob strcpypffloat_chcodes Nputc!        Z R #        f `!G!!   } L 4  b#S +scanf_cscanffscanfsscanf:4@00f4f 4@d0h4h40k40P 4@d0h4h4040\42h54@h2r O_jO_bll%&0nl*& O_dl dO_h h4 +lhll00O&h&hll  /d'o'x'e'f'_l O_ &d'o'x':l42bl0n  20b4b4l44l44462n 24@K2b0b4j44j' O_444.2l~'xd'tjj kl'h'ED'cO'\X'UE'NF'Gd'To'Mx'Fe'?f'8['`s'bc'[ Gb'j'? K0f00O&f' f42b 2fl'f& 2f42bj %~'%' ' ' ' 2n54@d.2O_jO_hO_f045Z   O_  l o'x'e'f' Tn00O&l&3O_d\?/?\n-&n n+&\\|n00O' dd_n.& f&f Lne' nE&j&d'jnTn-'n-'n00O&TnTn\\,r;n-&h n+&Tn3ln00O'n8,040b4n00O@'044044400O' 4\2bTQ Nn00O'n040b44 5%444405 ''C ' Tn\\,h' 040bn' n4X2bO_ `X' 04&O_l&KO_Į^ 0X404u2bpmXX404[2bV B~'̌'Ō' 0^ X4d X40b$ ~''ڌ'2P54@h2zO_bc&&O_s& d' d00a~& O_   $c'[' ~'d/ dd'd00a~'d'/ d42bO_ ~'b'c'O_ O_2f54@d2|O_^&3AO_ ''b00 b00bbb- :'bb00 bb00b&3_ bO]&0 *4@p4g2b54@[4f4N2d54@B'0 54@ d05_lmovev>_litol_lneg;ungetcccmult_dtoftolower_toupper_lshlSs_lsub_iob _lmulgetcatof_stkcheck @hР_ladd_chcodes \ ) x  0 \  _dmove_fmove        c L    D { w s F $ b#S *Isetbuf_csetbuf4@dF_~'4@2bFFf'K&KFFfBKD FF0KD5fflushb#S )fseek_crewind@fseekftellW4@d2z'FO&#F_~& 4@2bF_~'4@2bFFBKDD$0b40nl0b4444@2bK440f445b,0f[ 0fT-.dB%#D$FFm ~''&0l444DDFF40n44H42h445& O_2f54@O_4O_44j42h54@d'FO&534@5F_~&4@{2b4O_44H4g2h44F_~'B D4ģEB5 _lmove[zs_litol_lneg_setbase%fflush8lseek_lsubw_flacc n_ladd_lcmpr1b#S ,putc_cfflush+putwfcloseputc_tidyup4@fF"'FO"&4@2bFO'540g4H4FO@'0 02f&JF FF_~&4@2bădD$FO@'d & 4@&d54@df44@K4F2df44@;K4F3O_ 03M42b-d4@d2~'F&NFO'4@2b O_H42bO_F *4@d' FO"'5F_~&4@2b4@2b54@d2|F_~&#D'O_44@2b44H4w2hģBb'nF_~'cFO@'3B 'b44H4F2f&0d *bbb& )b4B4H42fb' 2F FD FFBKDO_2d5writelnA_setbase Mlseekclosecclsrftellv_iob writeGb#S $ftelldummy_cftell4@5b#S (3case_ctolowertoupper4@d00O'dO 4@d00O'd d5_chcodes  b#S (Tgetc_cungetc0getcgetwb4@d'FF_~&=D$ăO*4@n 4@f'FO'd'B"5dd54@d2|4@2bb'4@2b& b4k2d54@d2~F1'FO1&4@A2b04&FO@' 0 4$2bFO'%K4B4H4FO@'0 0 40JB4H42f.F4b' F BBDO2b5_setbaseccaslfflush_iob readreadlnb#S $flshdummy_cfflush4@5b#S (setbase_c_setbase4@dFO&-204H4O_42fF4b&@ F2 FFO '5K&FO@' KB&K42bB'FF FF0JBKBKD5ibrkcgetstatb#S !findstr_cfindnstr7findstr4@df44@f h4hh4J2d~&73A&S4@df44@f h4hh42d~'053Aj/ 4@d 4h0h'O_5&5b#S ">pfldummy_cpflong4@e 0' e05d'ތo'׌x' 5lx! !b#S ! pffdummy_cpffloat4@05b#S # atof_catof4@d2 3A ' '-& O_g-'+&3A0k45 b40m4!2d3Ab00O&O_c.&-3A b40m42d3Accb00O&0k0k40m4F2bAbe'bE&_e3A+&3A -&3AO_eO_ i4 4dib00O&c4g'k@P kcc, c@Pc O_e0k4g4g402lg'0k 0k34@25b2xXIeYIcYIaIhiiiiii%Xhiiiiii%Fedcba%(mO%2hO_92h9ccmultscaleV_flacc l_dstackS_chcodes b  _dmoveG[q_dnegd_dnormb#S !hscale_cscaleIatoftbl4@l'6n'0dXIXIXI00 0dXIXIXI00 0d34@54@l /&0d444  40j2ln4n4 y40hro2l5 Hz@CPt$> nk(-xŬbIgO_ddiv8ccmodccdive_dmul_flacc @_dstack &o_dmoveEw!3!b#S %vsystem_csystem4@Z2O4\40d42f0L40b42dO_4440f40h40$42lT0P42bT&P2V5 shellos9forkOstrcat)strncpystrlenD_stkcheckwait\b#S !strings_cstrcat)strlenstrcmpVstrcpy4@d&0d54@f2~f0& '4@f2~f0&0&f2b54@d f0f&O_53A4'45b#S *stringsn_cstrncmp=strhcpystrncpystrncat4@f2~fjj/0& O_0jj.4@d f0f&O_53Ahh/4'h,O_ 454@f2~f0&jj/ 0&j,O_f2b54@df0f._O_O_d5b#S $Bindex_crindexindex4@d f'#3A& (4@d 3A& 4i&0503_d&O_5b#S $atol_catol4@d2y0a45 ' '-& O_e-'8+&6 00a40c44 544f00O&e'0aq 0a34@d2g5_lmovep_litolj_lneg_flacc _lmulY_laddm_chcodes {b#S satoi_catoi4@d2{O_a ' '-& O_c-'+& a4 4ba00O&c'a@P a2e5ccmult?_chcodes Vb#S )iob_data_c_iobBb#S chcodes_c_chcodes0 HHHHHHHHHH BBBBBB DDDDDD b#S "1l3tol_cl3tol4@df O_ĮfAB3Dffhh.5b#S "+ltol3_cltol34@d3A f_fff3Chh.5b#S "sleep_csleep4@d' d4  42b5ccmulttsleepb#S Eqsort_cqsort4@hjf4d4f44@2|hjbjh4XI4h 344@2d~- bbb4b42d~-b"2b$b44@i2d&b b&3bbb#bh44@n,j44@E2dbj b4j422dhhj%22d54@d2}a  i0iaa&2c5ccmult XccdivO_stkcheck5  | n b U J   b#S &setjmp_asetjmplongjmpbO_9bd&2bnb#S "strass_c_strass4@d f0fhh.5b#S  abs_aabsb*@P9b#S #memory_cfreecallocUmallocL4Vh44XIXI42b&O_ bbb42b2d54vjDVDVd&0dO_B%-B& BBXIXI3Bd4@ !&4A2b~&O_ d2f54Ff % "%#$4@BXIXI&B4B ĮXIXI4&B  &4Ff4j42b~' 44@2d02b54@d O_ff&5ccaslccmult^cclsr sbrk !Q!!! x r!n f!^!Fb#S  cfloats_a_ddiv<_dtof}_ftod_dsub+_dtoiJ_itod`_dmul4_dtolD_ltodO_dstack_fstack_utodp_dadd"_xtofla>_ddecw_fdec_dcmpr_dmove_fmove_dincY_dneg_dnorm_fincb׍94@2Cooj섈uT|l!sc k[ c90~0n0ooa090oooo90"$&(25@5f2f9b+ib+8i'-'a&0b&)d&"f&h4& <&CO 5i"+%8b&d&f&4h& *4ai52h9O 'Ȁ)&"R"L'')',%.)"DVf$f%f&f'f(j&"+w &l DVfffffl&+R''%%$$""$l)f"f#f$f%f&f'f( WICG''%%##""$c"c#c$c%c&c'c('OoĦ"+<#$%&'('<"j)&jhi(i'i&i%i$YI*#)'Ā4"m&9)9)'+(( '$'O))p*O) `&)M'O))FCGf"f#f$f%f&f'f(f"*0b4"$B&D(F5"#$%&'(9O8HFD$*''%%##""f"f#f$f%f&f'f(ffAfBfCfDfEfFjH&9Op9H%0EMCKBJ%ĦJBKCMEi(i'i&i%i$i#i"iFiEiDiCiBiAijH"'%EECCAAĢO fc"c#c$c%c&c'c(954@2C4o""")90"ooo'6M*4O_a2b) jhiYI*m*90"oooooooo9*0"'%wP+&&&94+DVffj&5oDVfffff$lja&&'%O_9*i9l(&1l'&,l&&'l%&"l$&l#&"L*l)Ā4"904"$&(54"$&(5094045*2*54a04 480q4*"턦$)2*540G4 2xhO_egbdi92xhbdfh94@dB 4@dBDF5@59_flacc S Y b r B H N T_rpterr*9b#S uclmul_a_lmul440ooic=ib=$lhc=$lia=턦hb=턦gc=턦i=焦ha=焦gb=焦fc=2d_flacc _lbexitsb#S cldiv_a_lmod_ldivFa'2h򦄪&0צb-j0lm+2h& bf2f-섮44mb*0blamj*0j{ca0Lheidicib*ldljcbj$ldljcbj iiiidbfcfdfej&n_flacc  " 5 k o _lbexit 'F_lnegxx_rpterr\ ? -b#S *claddsub_a_lsub_ladddbdb_flacc    %_lbexit(b#S $clcompare_a_lcmprb&d' % O4ae52d9b#S Vclbits_a_lnotE_lxor._lor_landbdbdbd'_O99_flacc    ) 6 @_lbexit,Cb#S 'clnegcompl_a_lneg_lcompl_lnegx9CSCS09_ltoacc_flacc  "b#S clconvert_a_litol_lutol090oo9_flacc  b#S clmove_a_lmove4 d"5!59b#S  clincdec_a_linc_ldec99b#S 8clshifts_a_lshl_lshrb45]' hiiiZ&59b45]' gfffZ&59_ltoacc!b#S clcommon_a_ltoacc_lbexit5b2b0909_flacc  b#S Sccmult_accmultM&mb&c=b5444ei=beh=aa$ldi=aa$ldh=fhb2h9b#S Hccmod_accmodccumodo0 0omb*l&5nb4bm'@P9ccdivccudiv 3  =  b#S ccdiv_accdivccudiv' 42~ooa .5-'42~ooaM*@Plabf*@PcafLhcib*fofogb$b igifdbfcj&bma'f@Pfdfdfbd2f9_rpterrb#S /cshifts_accasl#ccasrcclsr ]'gbfcZ& ]'dbfcZ&b4bd2d9]'hcibZ& b#S rpterr_a_rpterr4$? 5$?9errno b#S vabortabort4v0BO44&?2d40a&0_@P ?core 4f0b?0f?5 5'b?9createrrno etext -_cstart* 0memend ;b#S =signal_sigintsignalb]'M&2&94f&o5em<&#0<? #5%l<9oo0<40'&2d9bc&b0 b2d91č'4& ?&2b;O45O_; H B 9 $b#S xchangechmodIchown4`2p? %!&%45?%?25`Ά?$90b?94`2p%4"? ' &5"?%? _sysret0b#S !`stat_asetstat;getstatec'-'+''' '4@?$5@ٯh5@O_9f?Ŧec' ' f?4@hj?5@_os9err%H_sysret9P^b#S access_adup~creat0unlinkvclosemknod&accessopenbe?%?be?%O9c?ڮbe?Юbe$ ?%O9&e&b?%4B3?5B$4?5b?c?%yO9_os9errGOZt_sysret $.|b#S !io_awritelnJlseekZreadwrite1readln!4 feh4 ?$ &O_550 54 efh4 ? 4 h'ef?$5  54 h'ef? 4@j& 4'%'O05e?% e?%0hgf+e?%05_os9errD_flacc errno yb#S 2misc_atsleep&pauselockprerrcrc sync 9_? 94`fhj?5ce?%9b? %9_os9err #-b#S 5mod_amodloadmodlinkmunlink)4`fiHHHHk?05`%94`fiHHHHk? 4@d?5@_os9err_sysret3b#S dir_achxdir chdirb? _sysretb#Smem_aibrkWsbrk4d%%4 ? 5 $2b92b4d4O䧀%5b%!$4O$ 599_stbot b_mtop [ j w }memend   ( D Q @ 8 2 , b#S time_asetimegetimeb?b?_sysretb#S cprocess_achain)os9forkFkillsetprwait ce?O_?%b'oO9ce? 32BDIHHHHKMF??4`fhjmo?5`%O9_os9err]_sysret'b#SEid_agetuidsetuid!getpid4 ? 5 $%O94 ? $5  54 ~' d?$ & K)O_5_os9err b#S "intercept_ainterceptintercep_sigint4@#d0? 5@2O42b;_sysret  b#S 7syscall_a_os94`g94?4lADFH4Ao3H6>5¯H2d5`'9O_9b#S syscommon_a_os9err_sysret O9%O_9errno b#S  cfinish_a_exitexitb?_dumprof_tidyupb#S profdummy_a_dumprof9b#S tidyup_a_tidyup9 p'pb#S Ph cstart_a _stkchec_stbotL_flaccB_mtopJfreememEerrnoNstacksiz<_stkcheck_cstart memend@0&94 4@O_Z&3041ޮ'b3'O' b'0'02d5@<10䦀='T 'P ',& "''&l=4 '&5o '" 00l= ' ',' o 04<41č !oo0J>L0묩L$ J%L9**** STACK OVERFLOW **** 04d?o>L9LJ940040b&2d9_exit:mainbtextFdpsiz ,etext end  exit G B  > r f K  j _ Z p'p/* line: list lines of file with numbers */ #include main(argc,argv) char **argv; { char line[256]; register int count = 0; if(--argc) if(freopen(*++argv,"r",stdin) == NULL) { fprintf(stderr,"can't open file: %s\n",*argv); exit(errno); } while(gets(line)) printf("%5d %s\n",++count,line); } p'p/* C program profiler The -P option of the compiler generates code at the beginning of each function that calls _prof with the function's absolute address and a pointer to the name of the function. This version of _prof just tallies the number of times a function is called. It could possibly be modified to trace the execution of functions. */ #include #define MAXFUNC 63 /* maximum number of unique functions */ typedef struct profstr { int (*func)(); char *fname; long count; } prof; static prof pfs[MAXFUNC]; static prof *pfree=pfs; static prof *pmax=&pfs[MAXFUNC]; _prof(afunc,name) int (*afunc)(); char *name; { register prof *p; /* linear search for the function addr (not quick, but easy) */ for(p=pfs; pfunc == afunc) { /* function found, bump count */ ++p->count; return; } if(pfree > pmax) { /* no more room? */ p=pfree-1; p->fname = p->fname ? "????????" : name; /* put it here */ ++p->count; } else { /* enter the function in table */ p=pfree++; p->fname=name; /* pointer to function */ p->func = afunc; /* pointer to function name */ p->count = 1; } } /* _dumprof() is called by exit() at program end. It may be called at any time to get a count */ _dumprof() { register prof *p; pflinit(); fflush(stdout); /* flush stdout first */ for(p=pfs; pfname,p->count); } p'p&#include /* rdump: prints formatted dump of .r and .l files rdump [opts] [ ] [opts] options: -g - add global definition info -r - add reference info -o - add reference and local offset info -a - all of the above */ /* symbol table types */ /* symbol definition/reference type/location */ /* type flags */ #define CODENT 0x04 /* data/code flag */ /* data type flags */ #define DIRENT 0x02 /* global/direct flag */ #define INIENT 0x01 /* clear/init. data flag */ /* location flags */ #define CODLOC 0x20 /* data/code flag */ #define DIRLOC 0x10 /* global/direct flag */ #define LOC1BYT 0x08 /* two/one byte size flag */ #define LOCMASK (CODLOC|DIRLOC) #define NEGMASK 0x40 /* negate on resolution */ #define RELATIVE 0x80 /* relative reference */ /* misc. constants */ #define ROFSYNC 0x62CD2387 #define SYMLEN 9 /* Length of symbols */ #define MAXNAME 16 /* length of module name */ /* definition/reference */ typedef struct { char r_flag; /* type/location */ unsigned r_offset; } def_ref; /* rof header structure */ typedef struct { long h_sync; unsigned h_tylan; char h_valid; char h_date[5]; char h_edit; char h_spare; unsigned h_glbl; unsigned h_dglbl; unsigned h_data; unsigned h_ddata; unsigned h_ocode; unsigned h_stack; unsigned h_entry; } binhead; #define MAXSOURCE 20 #define puts(s) fputs(s,stdout) #define mc(c) ((c)&0xff) #define DEF 1 #define REF 2 direct char *snames[MAXSOURCE],*fname; direct int scount; direct int gflag,rflag,oflag; binhead hd; FILE *in; main(argc,argv) int argc; char **argv; { register char *p; while (--argc>0) { if(*(p=*++argv)=='-') { while(*++p) switch(*p) { case 'g': gflag=1; break; case 'r': rflag=1; break; case 'o': oflag=1; break; case 'a': gflag=rflag=oflag=1; break; default: error("unknown option -%c",*p); } done: ; } else { if(scount==MAXSOURCE) error(0,"too many source files"); snames[scount++]=*argv; } } pass1(); } pass1() { int count; if(scount == 0) return; for(count=0; count>8),mc(hd.h_tylan)); printf("Asm valid: %s\n",hd.h_valid ? "No" : "Yes"); printf("Create date: %.3s %2d, %4d %02d:%02d\n", &("JanFebMarAprMayJunJulAugSepOctNovDec"[(mc(hd.h_date[1])-1)*3]), mc(hd.h_date[2]),1900+mc(hd.h_date[0]), mc(hd.h_date[3]),mc(hd.h_date[4])); printf("Edition: %2d\n",hd.h_edit); puts(" Section Init Uninit\n"); printf(" Code: %04x\n",hd.h_ocode); printf(" DP: %02x %02x\n",hd.h_ddata,hd.h_dglbl); printf(" Data: %04x %04x\n",hd.h_data,hd.h_glbl); printf(" Stack: %04x\n",hd.h_stack); printf("Entry point: %04x\n",hd.h_entry); } showglobs() { register unsigned count,offset; char sym[SYMLEN+1],flag; count=getw(in); /* global def count */ if(gflag) printf("\n%u global symbols defined:\n",count); while(count--) { getname(sym); flag=getc(in); offset=getw(in); if(gflag) { printf(" %9s %04x ",sym,offset); ftext(flag,DEF); } } } getname(s) register char *s; { while(*s++ = getc(in)); *s = '\0'; if(ferror(in)) ferr(fname); } ftext(c,ref) char c; int ref; { printf("(%02x) ",mc(c)); if(ref & REF) { if(c & CODLOC) puts("in code"); else puts(c & DIRLOC ? "in dp data" : "in non-dp data"); puts(c & LOC1BYT ? "/byte" : "/word"); if(c & NEGMASK) puts("/neg"); if(c & RELATIVE) puts("/pcr"); } if(ref & DEF) { if(ref & REF) puts(" - "); if(c & CODENT) puts("to code"); else { puts(c & DIRENT ? "to dp" : "to non-dp"); puts(c & INIENT ? " data" : " bss"); } } putchar('\n'); } showrefs() { register unsigned count,rcount; def_ref ref; char sym[SYMLEN+1]; int fflag; count=getw(in); if(rflag) printf("\n%u external references:\n",count); while(count--) { getname(sym); rcount=getw(in); if(rflag) printf(" %9s ",sym); fflag=0; while(rcount--) { fread(&ref,sizeof(ref),1,in); if(ferror(in)) ferr(fname); if(rflag && oflag) { if(fflag) puts(" "); else fflag=1; printf("%04x ",ref.r_offset); ftext(ref.r_flag,REF); } } if(rflag && !oflag) putchar('\n'); } } showlcls() { register unsigned count; def_ref ref; count=getw(in); if(oflag) printf("\n%u local references\n",count); while(count--) { fread(&ref,sizeof(ref),1,in); if(ferror(in)) ferr(fname); if(oflag) { printf(" %04x ",ref.r_offset); ftext(ref.r_flag,DEF | REF); } } } error(s1,s2,s3,s4) { fprintf(stderr,"rdump: "); fprintf(stderr,s1,s2,s3,s4); putc('\n',stderr); exit(1); } ferr(s) { error("error reading '%s'",s); } p'WpA use ..../defs/os9defs.a psect abort,0,0,1,0,0 abort: pshs d,x,y,u leax core,pcr ldb #3 clra pshs d pshs x lbsr creat cmpd #-1 bne abort10 ldd errno,y os9 F$EXIT abort10 leas 4,s pshs b leax 1,s ldd #16 bsr doabort leax _cstart,pcr ldd #etext subd #_cstart bsr doabort tfr dp,a clrb tfr d,x subd memend,x nega negb sbca #0 bsr doabort ldb #255 os9 F$EXIT core fcc "core " fcb $0d doabort pshs d,x lda 6,s leax 2,s ldy #2 os9 I$WRITE leax 0,s lda 6,s ldy #2 os9 I$WRITE puls y puls x cmpy #0 beq abort20 lda 2,s os9 I$WRITE abort20 rts endsect p'pE* * File access system calls * pmode equ $0b r/w for owner, r for others ifp1 use ..../defs/os9defs.a endc psect access_a,0,0,2,0,0 * access(name,mode) access: ldx 2,s lda 5,s os9 I$OPEN bcs access10 os9 I$CLOSE access10 lbra _sysret * open(name,mode) open: ldx 2,s lda 5,s os9 I$OPEN lbcs _os9err tfr a,b clra rts * close(fd) close: lda 3,s os9 I$CLOSE lbra _sysret * mknod(name,mode) mknod: ldx 2,s ldb 5,s os9 I$MAKDIR lbra _sysret * creat(fname,mode) creat: ldx 2,s lda 5,s tfr a,b proto attr andb #%00100100 save exec bits orb #pmode default modes os9 I$CREATE bcs creat10 crret tfr a,b clra rts creat10 cmpb #E$CEF already there? lbne _os9err no - can't cope lda 5,s get the mode bita #$80 trying to create a directory? lbne _os9err yes, forget it anda #7 access mode bits ldx 2,s get the name again os9 I$OPEN try to open it lbcs _os9err pshs a,u ldx #0 leau ,x ldb #2 os9 I$SETSTT set the file size to zero puls a,u bcc crret pshs b os9 I$CLOSE puls b lbra _os9err * unlink(fname) unlink: ldx 2,s os9 I$DELETE lbra _sysret * dup(fildes) dup: lda 3,s os9 I$DUP lbcs _os9err tfr a,b clra rts endsect p'WpK use ...../defs/os9defs.a psect cfinish_a,0,0,1,0,0 * normal exit - buffers flushed if there are any exit: lbsr _dumprof profile dump (if necessary) lbsr _tidyup * abnormal exit - no buffer flushing * the argument to either exit entry is taken to be the * F$EXIT status _exit: ldd 2,s get the exit status os9 F$EXIT and bye-bye! endsect p'pN ifp1 use ..../defs/os9defs.a endc Carry equ %00000001 Write. equ 2 write access FD.Att equ 0 FD offset to attr FD.Own equ 1 FD offset to owner Bufsize equ 16 FD info bytes psect change,0,0,2,0,0 * chown(fname,owner) chown: pshs y,u save registers leas -Bufsize,s reserve buffer space os9 F$ID get user ID bcs chexit bra if error ldb #E$FNA prime for error cmpy #0 superuser? orcc #Carry prime the carry bne chexit bra if not bsr openfile open file and read FD bcs chexit bra if error pshs a save path number ldd Bufsize+9,s get the new owner id std FD.Own,x modify the FD puls a restore path number ldb #SS.FD write FD code os9 I$SETSTT write the FD bcs chexit bra if error os9 I$CLOSE close the file * carry set is error exit, clear for normal chexit leas Bufsize,s return scratch puls y,u restore regs lbra _sysret return to caller * * open file and fetch file FD * Bufsize buffer is at 2,s * openfile lda #Write. access mode ldx Bufsize+8,s address of name os9 I$OPEN open the file bcc openf10 exit if error rts openf10 leax 2,s get buffer address ldy #Bufsize and size ldb #SS.FD read FD code os9 I$GETSTT read the FD rts * chmod(fname,perm) chmod: pshs y,u save registers leas -Bufsize,s reserve buffer space bsr openfile open file and read FD bcs chexit bra if error pshs a,y save regs os9 F$ID get user id cmpy #0 super-user? beq chmod10 yes, he can do it ldb #E$FNA prime for error cmpy FD.Own,x user's own file? orcc #Carry prime the carry bne chexit no, return error chmod10 ldb Bufsize+12,s get the new attributes stb FD.Att,x update FD puls a,y restore path number ldb #SS.FD write FD code os9 I$SETSTT write the FD bcs chexit bra if error os9 I$CLOSE close the file bra chexit and exit endsect p'2pV ifp1 use ..../defs/os9defs.a endc pushzero macro clr ,-s clear a byte on stack endm nfiles equ 2 stdin and stdout at least Typ equ 1 Edit equ 1 Stk equ nfiles*256+128+256 stdin,stdout,stderr and fudge psect cstart_a,$11,$81,Edit,Stk,_cstart cr equ $0d sp equ $20 comma equ ', dquote equ '" squote equ '' MAXARGS equ 30 allow for 30 arguments * * rob the first dp byte so nothing gets assigned * here. No valid pointer can point to byte zero. * vsect dp __$$ fcb 0 endsect vsect argv rmb 2*MAXARGS pointers to args argc rmb 2 argument counter _sttop rmb 2 stack top endsect * the following are globally known vsect memend: rmb 2 _flacc: rmb 8 floating point & longs accumulator _mtop: rmb 2 current non-stack memory top _stbot: rmb 2 current stack bottom limit errno: rmb 2 global error holder endsect * * move bytes (Y=From addr, U=To addr, X=Count) * movbytes lda ,y+ get a byte sta ,u+ put a byte leax -1,x dec the count bne movbytes and round again rts _cstart: pshs y save the top of mem pshs u save the data beginning address clra setup to clear clrb 256 bytes csta05 sta ,u+ clear dp bytes decb bne csta05 csta10 ldx 0,s get the beginning of data address leau 0,x (tfr x,u) leax end,x get the end of bss address pshs x save it leay etext,pcr point to dp-data count word ldx ,y++ get count of dp-data to be moved beq csta15 bra if none bsr movbytes move dp data into position ldu 2,s get beginning address again csta15 leau dpsiz,u point to where non-dp should start ldx ,y++ get count of non-dp data to be moved beq clrbss bsr movbytes move non-dp data into position * clear the bss area - starts where * the transferred data finished clra clrbss cmpu 0,s reached the end? beq reldt bra if so sta ,u+ clear it bra clrbss * now relocate the data-text references reldt ldu 2,s restore to data bottom ldd ,y++ get dat-text ref. count beq reldd leax btext,pcr point to text lbsr patch patch them * and the data-data refs. reldd ldd ,y++ get the count of data refs. beq restack bra if none leax 0,u u was already pointing there lbsr patch restack leas 4,s reset stack puls x restore 'memend' stx memend,u * process the params * the stack pointer is back where it started so is * pointing at the params * * the objective is to insert null chars at the end of each argument * and fill in the argv vector with pointers to them * first store the program name address * (an extra name inserted here for just this purpose * - undocumented as yet) sty argv,u ldd #1 at least one arg std argc,u leay argv+2,u point y at second slot leax 0,s point x at params lda ,x+ initialize aloop ldb argc+1,u cmpb #MAXARGS-1 about to overflow? beq final aloop10 cmpa #cr is it EOL? beq final yes - reached the end of the list cmpa #sp is it a space? beq aloop20 yes - try another cmpa #comma is it a comma? bne aloop30 no - a word has started aloop20 lda ,x+ yes - bump bra aloop10 and round again aloop30 cmpa #dquote quoted string? beq aloop40 yes cmpa #squote the other one? bne aloop60 no - ordinary aloop40 stx ,y++ save address in vector inc argc+1,u bump the arg count pshs a save delimiter qloop lda ,x+ get another cmpa #cr eol? beq aloop50 cmpa 0,s delimiter? bne qloop aloop50 puls b clean stack clr -1,x cmpa #cr beq final lda ,x+ bra aloop aloop60 leax -1,x point at first char stx ,y++ put address in vector leax 1,x bump it back inc argc+1,u bump the arg count * at least one non-space char has been seen aloop70 cmpa #cr have beq loopend we cmpa #sp reached beq loopend the end? cmpa #comma comma? beq loopend lda ,x+ no - look further bra aloop70 loopend clr -1,x yes - put in the null byte bra aloop and look for the next word * now put the pointers on the stack final leax argv,u get the address of the arg vector pshs x goes on the stack first ldd argc,u get the arg count pshs d stack it leay 0,u C progs. assume data & bss offset from y bsr _fixtop set various variables lbsr main call the program pushzero put a zero pushzero on the stack lbsr exit and a dummy 'return address' * no return here _fixtop leax end,y get the initial memory end address stx _mtop,y it's the current memory top sts _sttop,y this is really two bytes short! sts _stbot,y ldd #-126 give ourselves some breathing space * on entry here, d holds the negative of a stack reservation request _stkchec: _stkcheck: leax d,s calculate the requested size cmpx _stbot,y is it lower than already reserved? bhs stk10 no - return cmpx _mtop,y yes - is it lower than possible? blo fsterr yes - can't cope stx _stbot,y no - reserve it stk10 rts and return fixserr fcc /**** STACK OVERFLOW ****/ fcb 13 fsterr leax list of offsets in the data area to be patched * u -> base of data * x -> base of either text or data area as appropriate * d = count of offsets in the list * * exit: * u - unchanged * y - past the last entry in the list * x and d mangled patch pshs x save the base leax d,y half way up the list leax d,x top of list pshs x save it as place to stop * we do not come to this routine with * a zero count (check!) so a test at the loop top * is unnecessary patch10 ldd ,y++ get the offset leax d,u point to location ldd 0,x get the relative reference addd 2,s add in the base std 0,x store the absolute reference cmpy 0,s reached the top? bne patch10 no - round again leas 4,s reset the stack rts and return endsect p'pp* * Directory change system calls * use ..../defs/os9defs.a psect dir_a,0,0,1,0,0 * chdir(dirname) chdir: lda #1 read permission chgdir10 ldx 2,s os9 I$CHGDIR lbra _sysret * chxdir(dirname) chxdir: lda #4 execute bra chgdir10 endsect p'pr* * Identity system calls * use ..../defs/os9defs.a * * Equates for level one pointers (sorry!) * D.Proc equ $4b P$User equ $9 psect id_a,0,0,1,0,0 * getpid() getpid: pshs y save data pointer os9 F$ID puls y bcc getp10 lbcs _os9err getp10 tfr a,b clra rts * getuid() getuid: pshs y os9 F$ID bcc getu10 errexit puls y lbra _os9err getu10 tfr y,d puls y,pc * setuid() setuid: pshs y bsr getuid get user id std -2,s superuser? beq setu10 bra if so ldb #E$FNA not allowed bra errexit setu10 ldy 4,s get new user id os9 F$SUSER set user id bcc setu20 bra if ok cmpb #E$UNKSVC illegal code? bne errexit bra if not ** Illegal code (sorry) *** tfr y,d ldy >D.Proc std P$User,y setu20 clra clrb puls y,pc endsect p'.pv* 'Signal' and 'intercept' are definitely incompatible and * use of both in a program will have undefined results. * In order to protect the programmer from this a dummy global * label is declared in both relocatable modules which will produce * an 'entry name clash' error in the loader if an attempt is made * to use both. use ..../defs/os9defs.a psect intercept_a,0,0,1,0,0 vsect intsave rmb 2 place for C routine address endsect _sigint: * intercept(func) intercep: intercept: pshs u save register variable tfr y,u set data are pointer ldx 4,s get C function address stx intsave,y save it for the receiver leax receiver,pcr get the address for OS-9 os9 F$ICPT call os9 puls u restore register variable lbra _sysret * This is where OS-9 will pass control when the process has been * sent a signal. All that is needed is to run the intercept routine * and execute 'rti'. receiver tfr u,y set the data pointer clra clear the MSB pshs d stack the signal number jsr [intsave,y] go run the routine leas 2,s reset the stack rti and return endsect p'p|* * File i/o system calls * use ..../defs/os9defs.a psect io_a,0,0,2,0,0 * read(fd,buf,count) read: pshs y ldx 6,s lda 5,s ldy 8,s pshs y save the count for later os9 I$READ read1 bcc rdexit no problem if carry clear cmpb #E$EOF is the error EOF? bne read10 bra if not clra return zero bytes on EOF clrb puls x,y,pc read10 puls x,y reset stack and data pointer lbra _os9err report error rdexit tfr y,d return read/write count in d puls x,y,pc reset stack & data pointer and return * readln(fildes,buffer,count) readln: pshs y save data pointer lda 5,s get path number ldx 6,s get buffer address ldy 8,s get byte count pshs y save request for later os9 I$READLN call os9 bra read1 * write(fd,buf,count) write: pshs y save data pointer ldy 8,s get count beq write10 lda 5,s get file number ldx 6,s get buffer address os9 I$WRITE write1 bcc write10 puls y lbra _os9err write10 tfr y,d puls y,pc * writeln(fildes,buffer,count) writeln: pshs y save data pointer ldy 8,s get count beq write10 lda 5,s get path number ldx 6,s get buffer address os9 I$WRITLN call os9 bra write1 * lseek(fd,offset,type) lseek: pshs u save the register variable ldd 10,s get type bne lseek10 ldu #0 ldx #0 bra doseek lseek10 cmpd #1 from here? beq here cmpd #2 from the end? beq end * bad type ldb #E$SEEK lserr clra std errno,y ldd #-1 leax _flacc,y std 0,x std 2,x puls u,pc * from the end end lda 5,s get path number ldb #2 get file size code os9 I$GETSTT bcs lserr bra doseek here lda 5,s ldb #5 os9 I$GETSTT bcs lserr doseek tfr u,d work on the LSW first addd 8,s std _flacc+2,y tfr d,u tfr x,d adcb 7,s adca 6,s bmi lserr seek is before beginning of file tfr d,x std _flacc,y lda 5,s path number os9 I$SEEK bcs lserr leax _flacc,y puls u,pc endsect p'p* * Memory request system calls * use ..../defs/os9defs.a psect mem_a,0,0,3,0,0 vsect spare rmb 2 endsect * sbrk(size) get memory from system sbrk: ldd memend,y get hi bound pshs d save it ldd 4,s get the size required cmpd spare,y any spare left? blo sbrk20 * have to get some from the system addd memend,y add current size pshs y save data pointer subd 0,s adjust for base os9 F$MEM re-size memory tfr y,d save high bound puls y restore data ptr bcc sbrk10 bra if no error ldd #-1 return error code leas 2,s junk scratch rts sbrk10 std memend,y save new memory address addd spare,y add in spare bytes subd 0,s less old base std spare,y is new spare value * now spare is big enough sbrk20 leas 2,s junk scratch ldd spare,y get spare count pshs d subd 4,s less size std spare,y updated value ldd memend,y get hi bound subd ,s++ base of free memory pshs d save clra ldx 0,s sbrk30 sta ,x+ clear out the new memory cmpx memend,y blo sbrk30 puls d,pc * ibrk(size) get memory within data allocation ibrk: ldd 2,s get the size required addd _mtop,y add in the current top bcs ibrk20 if it wraps round - error cmpd _stbot,y overlap stack? bhs ibrk20 yes - error pshs d no - save top ldx _mtop,y reset to bottom clra sbloop cmpx 0,s reached the end? bhs ibrk10 yes - done sta ,x+ no - clear and bump bra sbloop ibrk10 ldd _mtop,y return value puls x restore new top stx _mtop,y and save for next time rts ibrk20 ldd #-1 return memory full rts endsect p'p* * Miscellaneous system calls * use ..../defs/os9defs.a psect misc_a,0,0,1,0,0 * lock(flag) lock: rts * pause() pause: ldx #0 clrb os9 F$SLEEP lbra _os9err * sync() sync: rts * crc(start,count,accum) crc: pshs y,u save reg. variable and data pointer ldx 6,s get start pointer ldy 8,s get byte count ldu 10,s get address of accumulator os9 F$CRC call os9 puls y,u,pc no error output * prerr(fildes,error) prerr: lda 3,s get path number ldb 5,s get error code os9 F$PERR call os9 lbcs _os9err rts * tsleep(ticks) tsleep: ldx 2,s get sleep time os9 F$SLEEP call os9 lbcs _os9err tfr x,d return ticks remaining in d reg rts endsect p'~p* * Module access system calls * shiftla macro rept \1 lsla endr endm use ..../defs/os9defs.a psect mod_a,0,0,1,0,0 * modlink(modname,type,language) modlink: pshs y,u save environment ldx 6,s get module name pointer lda 9,s get type shiftla 4 shift to m.s nibble ora 11,s and language os9 F$LINK call os9 * the only value returned is a pointer to the module * other values can be found in the module itself modcom tfr u,d C return value always in d reg. puls y,u restore environment lbcs _os9err rts * modload(modname,type,language) modload: pshs y,u save environment ldx 6,s get module name pointer lda 9,s get type shiftla 4 ora 11,s and type os9 F$LOAD call os9 bra modcom common code * munlink(mod) munlink: pshs u save register variable ldu 4,s get module pointer os9 F$UNLINK call os9 puls u restore register variable lbra _sysret usual return endsect p'p* * Process system calls * use ..../defs/os9defs.a psect process_a,0,0,2,0,0 * kill(pid,signal) kill: lda 3,s get process id ldb 5,s get signal number os9 F$SEND lbra _sysret * wait(status) wait: clra clear these so clrb signal can be detected os9 F$WAIT lbcs _os9err ldx 2,s beq wait10 stb 1,x clr ,x wait10 tfr a,b clra rts * setpr(pid,priority) setpr: lda 3,s get process id ldb 5,s get priority os9 F$SPRIOR call os9 lbra _sysret * chain(modname,paramsize,paramp,type,language,datasize) * * This call can never return to the caller. The stack pointer * must be adjusted to point into the direct page which, in general, * contains global variables belonging to the program. OS-9 will * therefore overwrite these values making the state of the program * undefined after the call. * In addition, we cannot report the error here because the module * name string could easily be in the direct page. chain: leau 0,s save the sp leas $ff,y set the stack into the direct page ldx 2,u get the module name pointer ldy 4,u get the parameter area size lda 9,u get the type lsla lsla lsla lsla ora 11,u and the language ldb 13,u get the data size ldu 6,u get the parameter area beginning address os9 F$CHAIN go do it * return here indicates an error os9 F$EXIT error code already in b reg. * os9fork(modname,paramsize,paramp,language,type,datasize) os9fork: pshs y,u save environment ldx 6,s get module name ldy 8,s get parameter area size ldu 10,s get parameter area pointer lda 13,s get language ora 15,s and type ldb 17,s get data size os9 F$FORK call os9 * return here indicates either error or parent puls y,u restore environment lbcs _os9err tfr a,b make an integer out of it clra * NOTE: the x register return value (points past name) is ignored rts endsect p'Mp* dummy profile dump psect profdummy_a,0,0,0,0,0,0 _dumprof: rts endsect p'p use ..../defs/os9defs.a * signal system call * * The main objective here is to maintain a table of * signals and the user functions to be executed * when the respective signals are received. * * Because OS-9 signals can range from 0 to 255 * the table will have to be dynamic to conserve space. * psect signal,0,0,2,0,0 * 'Signal' and 'intercept' are definitely incompatible and * use of both in a program will have undefined results. * In order to protect the programmer from this a dummy global * label is declared in both relocatable modules which will produce * an 'entry name clash' error in the loader if an attempt is made * to use both. MAXENTS equ 20 maximum number of simultaneous signal traps Zero equ %00000100 * table entry structure * csect 0 *sig rmb 1 signal number to be trapped *func rmb 2 address of trap function *entsiz equ * * endsect sig equ 0 func equ 1 entsiz equ 3 vsect table rmb entsiz*MAXENTS etable rmb 0 end of table flag rmb 1 indicates 'intercept' already done endsect * signal(sig,func) _sigint: signal: ldd 2,s get the signal number tstb lsb 0? beq sigerr signal 0 can't be caught or ignored tsta greater than 255? bne sigerr bsr lookup find a suitable entry bne signal10 branch if entry found sigerr ldd #-1 error indication rts signal10 ldd func,x get the old entry function pshs d save it ldd 6,s get the new function std func,x store in the structure bne signal20 if not 0 branch * the new 'function' is reset (0) clr sig,x reset the signal byte sigexit puls d,pc return the old entry * value for 'func' is 1 or a real address - set it signal20 ldb 5,s get the signal stb sig,x store it tst flag,y have we intercepted before? bne sigexit yes - no more to do exg y,u set the local storage into u leax intrupt,pcr get the address of the interrupt routine os9 F$ICPT exg y,u reset local storage into y puls d get the old value into d bcs sigerr error? inc flag,y indicate that we've done it rts all done * Table lookup function: * * find an entry in the table whose 'sig' matches the b reg. * failing that, the first empty entry * failing that, zero * return result in x reg. and set the z bit accordingly * lookup clr ,-s set up a null clr ,-s 'empty' pointer leax etable,y get table end address pshs x save it leax table,y start at the beginning loop cmpx 0,s end yet? beq eloop yes - exit loop cmpb sig,x match? bne signal30 no - continue leas 4,s clean up stack andcc #^Zero indicate success rts and return signal30 lda sig,x if the entry is not empty ora 2,s or the 'empty' pointer ora 3,s is not null bne signal40 then continue stx 2,s else save address of empty entry signal40 leax entsiz,x bump to next bra loop and round again eloop * we have traversed the table without finding a match ldx 2,s get the empty entry pointer leas 4,s clean the stack rts and return * This is the entry point for all received signals. * If an entry is found matching the signal then * if the function address is not 1 then * the function is executed * an 'rti' is executed * else * the program exits with the signal as status * intrupt leay 0,u point to the data bsr lookup beq intr10 any entry returned? pshs x save the entry pointer ldx func,x get the function address bne intr30 empty entry? * no matching entry - simulate condition of no 'intercept' intr10 os9 F$EXIT status still in B reg. intr20 cmpx #1 is it 'ignore'? bne intr30 no - execute leas 2,s reset stack rti and resume intr30 clra clear the MSB of the signal arg pshs d put it on the stack for the function jsr 0,x go run the function puls d,x get the entry pointer back clra clrb sta sig,x clear the entry std func,x and its func. address rti and that's it! endsect p'.p* * Status system calls * ifp1 use ..../defs/os9defs.a endc psect stat_a,0,0,1,0,0 * getstat(code,path,buffer) getstat: lda 5,s get the path number ldb 3,s get the code beq getst30 code 0? cmpb #1 code 1? beq getst40 cmpb #6 code 6? beq getst40 cmpb #2 beq getst10 cmpb #5 beq getst10 * can't do other codes ldb #208 illegal service request lbra _os9err * codes 2 or 5 getst10 pshs u os9 I$GETSTT bcc getst20 puls u restore register variable lbra _os9err getst20 stx [8,s] store MSW ldx 8,s get address of destination stu 2,x store LSW puls u restore register variable clra clrb rts * code 0 - 32 bytes into buffer getst30 ldx 6,s getst40 os9 I$GETSTT lbra _sysret * setstat(code,path,buffer) * OR setstat(code,path,offset) setstat: lda 5,s get path number ldb 3,s get code beq setst10 cmpb #2 beq setst20 ldb #208 illegal code lbra _os9err setst10 ldx 6,s get buffer address os9 I$SETSTT lbra _sysret setst20 pshs u save register variable ldx 8,s get MSW ldu 10,s get LSW os9 I$SETSTT puls u lbra _sysret endsect p'p* * Universal OS-9 system call * * * calling syntax: os9(code,registers) * char code; * struct registers *reg; * * regs structure: * * struct registers { * char rg_cc, rg_a, rg_b, rg_dp; * unsigned rg_x, rg_y, rg_u; * }; m$rts equ $39 rts instruction m$os9 equ $103f os9 call instruction carry equ %00000001 carry bit csect R$CC rmb 1 R$D rmb 0 R$A rmb 1 R$B rmb 1 R$DP rmb 1 R$X rmb 2 R$Y rmb 2 R$U rmb 2 R$PC rmb 2 R$Size rmb 0 endsect psect syscall_a,0,0,1,0,0 _os9: pshs u,y save register variable & data ptr lda 7,s get function code ldb #m$rts and rts instruction pshs d ldd #m$os9 os9 call code pshs d ldu 12,s get user register ptr ldd R$D,u init regs for system call ldx R$X,u ldy R$Y,u ldu R$U,u jsr 0,s execute system call pshs cc,u save regs ldu 15,s get user register ptr leau R$U,u copy regs to user struct pshu a,b,dp,x,y puls a,x sta ,-u stx R$U,u leas 4,s junk the system call code puls u,y restore regs bita #carry carry on? beq os9.a bra if not ldd #-1 return error rts os9.a clra return no error clrb rts endsect p'p psect syscommon_a,0,0,1,0,0 _os9err: clra std errno,y indicate in system error indicator ldd #-1 return error status rts _sysret: * normal return sequence bcs _os9err clra return clrb zero rts p'2p psect tidyup_a,0,0,1,0,0 _tidyup: rts endsect p'p* * Time system calls * use ..../defs/os9defs.a psect time_a,0,0,1,0,0 * setime(buffer) setime: ldx 2,s os9 F$STIME call os9 lbra _sysret usual return * getime(buffer) getime: ldx 2,s os9 F$TIME call os9 lbra _sysret endsect