IMD 1.17: 22/08/2009 23:13:31 Cromemco C compiler version 02.00 preliminary 0966 ULDSSDDST C96 Malcolm  1hcromix c ,&%$#"!      <  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQc z   !"#$%&'()*+,-./01234 56789:;<=p>c (c -c  *?P  P  c J@P  P  c  mAP  P  c "BP  P  c C P  P  c  DP  P  c  fE4P  P  c  F\P  P  c 9EFGHIJKLMNOPQRSTUbG1P  P  c & !"#W%H-P  ;P  c IP  8P  8c 9JP  5P  7c 2KP  3P  5c +LP  0P  2c  MP  /P  /c NP  .P  .c OP  .P  .c PP  -P  -c 8QQ Q c {|}~RSTUVWXYZ[\]^_`abcdefghijklmnop qrstuvwxyz{|}~        !"#$ %&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_` abcdefghijklmnopqrstuvwxyz{|}~  asmb.comQcalls.cPcc.cmdOcdcalls.cNcdoscalls.hMcdosclib.relLclib.relKclist.binJclist.cIcmacroes.z80Hcp0.binGcp1.binFcp2.binEcromixcalls.hDlib.comClink.comB1:@Copyright (c) 1978, 1980 Cromemco, Inc.{!Q?/6j4͹6*WM' +"?!WL"SL"UL1SJ2CSJ( :-7>-7#{I!D(lD((ͩ:et28A7:f'Z(t2<>23!<͂7:g'Z(X(Y $t2d=!a=͂7V!>Ă7^!>Ă7u 8 Selected disk error Z80RELPRN$$$$$0(ͽ' #0DMog0Invalid option RANGŐPARITٕXREƚNOXREƟSYM¤PAGETOPWIDTHTRUNCMACRONOCONNOGENOTEXCONGETEX'LISTOFLISTOOPCODDEBU HEX5HE0DATEwTIME V2P?V2O?'V2M?!"G`i `ilS'S?!X<2?HEXxWz[6ͷͷͷODxWz&i6ͷͷͷL`i##'{x 8!'J"}J"! MON XX, 19XX---JanFebMarAprMayJunJulAugSepOctNovDecyJ"BzJ"EJ"H!BXX:XX:XXo&>0:-*mH`il'8z {Ѻ~ ȧ#>2l?QF(F.+!l?4A7Q41<1̓1@1͹6Ͷ:}?1ͅ-+^c V!>Ē.^7!>Ē. *IEy6:Q?B7j4 End of assembly Symbol Value Defn References Opcode Defn References !"?"G"I2D2D2V?2?2}?2?2?2?2U?62?22GF2(>2F2W?F!!]~ (!>2z?>!F(*?2m?"F *** x4ʶ2?2n?2?> 2~?Zy (:d? (T͑(F(~(d?!>^7ͮ ?~{v̆n̔(~2?#! 'DM*X?ͦ:}?͆*X? +(͆!"?"?>&d(:\? >&:m?*FͰ:V?>&(BK o gd?>Ok  *5͆5:O? >2W?:W?ݾͶ> d:G*!GjH (!͎'DMͦ( INCLUDE%MACLIB BRELLIB K:U?(<55> (4>&:l?\? ( +>ß2\?(!GD(͙:!GD(\?͠(z͙: #D(d? ("X?͠#~ :; "jH2lH\? ȗ W`` z :lH(  *jHB ~:lH V[Z?!>7>&>&>Sk ( >S KjH:lHN#F#:lHW(:^:l?({(zo  {!>@( z!(`{[jH+r+s##w{@wz@̓ N#Fx( `i͠ +<O ('!SJO ##N#"Z?ͽ' # yO(KULq#p! [?'0$`i6#6#w#"Z?!jH"UL+ Out of memory bkͿ%8-Ϳ%0 (0 %($(T (%(7&&$ I R SPIXIY! [SL*UL##6 B  :M?&o9$M*SL##A~ʶS 6#(##~(++'~?2n?+! (ͶA&Symbol Table Macro~M 6S6 Cx?xO"r?Sp?' "v?bk ͖ 8"t?*v?B͖ (0"v?[t?'8ͻ ͻ R[v?*r?RѧR0*p?*v?B *r?*v? *r?[p?*v?B Kx? ( ͽ' # ( #+w#  >O̓ s#r  Oɤ!(3NyOEQU pODEFL pODL pODEFV `ODV `OMACRO `{OOMACRO `nOEJECT OFORM OTITLE OTITLE2 OSUBTTL OLIST {ONAME OEXT OEXTRN OENTRY OGLOBAL OABS OREL ODATA OCOM OORG ~OMEND ROENDM ROMEXIT sOEXITM sOREM OCONMSG OMNOTE OIF OELSE EOENDIF ]OSTRUCT OREPT 00OIRP OIRPC OEND VOEXX ODAA 'OCPL /OCCF ?OSCF 7ODI OEI ONOP ORLA ORRA OHALT vORLCA ORRCA OLDI OLDD OCPI OCPD ONEG DOIM0 FOIM1 VOIM2 ^ORLD oORRD gOINI OIND OLDIR OLDDR OCPIR OCPDR ORETI MORETN EOINIR OINDR OOUTI OOUTD OOTIR OOTDR OLD OEX 9OJR ODB ODM ODW OJP OIN 1ODS 0OIM ODJNZ ORET UORST cOJSYS tOADD OCALL OOUT ODEFB ODEFM ODEFW ODEFS 0OPUSH OPOP OINC #4ODEC  +5ORLC ORL ORRC ORR OSLA  OSRA (OSRL 8OBIT @OSET ORES OADC JOSBC BOSUB OAND  OXOR (OOR 0OCP 8:\?2\?>:\? &B +zoW`iͰ(#>B z# +(>2z?,+5p5gB C?% +i+B C?% +(n+?P~' #yh&(=( %( + x  x8"́(ͩ !?xG(8(́((!?2H,+V ^^ɗ͢3O(8{I ( +(&>@>!>"͢3:l?(\? ( 0 !Ͱ%((?$͢3\? ( + ( (:FG!$F(\?ͬ'(  y(&<2F!\?:F=O&)F^#Vy)>&(B +(2m?>2z?0+ +*F"F2m?>2z?(͢3 +>*F͢3 +>*F>2V?B z1 +*F"F:m?2o?CF2m?(F2Gû5> d6 #6:l?j4(> d+6>2?>2?!D+5!P+W-*** mnote - *** >2}?~;( (B +(1~jH (!͎' "~#fo͵%( +Fw͆5p(&ON OFF GEN NOGEN COND NOCONDTEXT NOTEXT2?\(652?`($( $&2?#$($(%($&###2?d(##%($&662?h(65%( $&W % %$& "$& /%(%%& - % %65$&H)%($(>2?! -ƀ">i~'AT]#%[(%"(%((%&(2?>-DE,HLAF,AF'(SP),HL(SP),IX(SP),IY! 1 (F)%65655& 2?%-%&%(%($(652?%B X+>">-f:?:m?ݾ*F##yox( < }8}0 6-R*F#"F%&%%% x&65! -%(>"! O1 y8">2?! -%( 65B X+2?%%%(65! %'A&#- %&()(%)(%"5(%(m%(u%ʘ$ʤ %ʺ$$A,IWA,R_I,AGR,AOA,(BC) A,(DE)(BC),A(DE),ASP,HLSP,IXSP,IY2?">-%($(x8(x2?! -@">F2?d(~( >:2?B X+ %( %( 666! 2?h(p%( )xG%( 65>K2?B `+%>*(>!~(&B %'A($(! %( $&C65w6`+652#X+>"65":?(:B z# +(x*?2?+++>qp!?4>&X(&* (y(AQ͵ ' # z(I:?([X?#  .  X(6 ="X?*?+++!?4X(:? ^V~!'#(ї<{(7srnfut ' ( ' '(^V[?'(8N+F#s r ~< S?<d?͆:?(~>&+>X(!?4>&X(:?<w:U?wututsr*X?!?n= *?ut#"?F !>V !>^d?7:?:U?(!Gd^V(cw (!#+sr͆(!?52?sr<(&^VF .<= ynf>0:-kH' D(T]͵#8 ;(, +}Oy( +~ (  %nf~(+G͵+8L (() +6;sr!G! %! ay}eo|ea- Oȁ~^ !>V\?7\? (= :l?(~>&=(yK?CjHKULŗ2lH>M = >&(*?q+p+w+>2?8D((=*ULd ' !G͵ ;'#n# #+D(> 6+"?*X??dD( (;(#&D( ( ;(, ۗͬ' >?(',((,(ͽ' #( , +x~#SYM~ 7'  A>Mk ~#fo++~(ͽ4x47Z!?  5{ 4~>2?((MENDENDM%!d?(%OMACROMACRO REPT IRP IRPC STRUCT:V?(2V?*F"F:o?2m?(>&(:?(2?(:C2Cͽ4(5Z(  (t=G x(!IjH\?>Lk < L!C4!<5(B:C!G!<:C2I!"Iɇ!C'*IdMACRO library mismatch error Too many MACRO libraries MACRO library not found :l?=d?>Lk [G:CG~O2CGx( <>2(<~O#V#^!<Ͱ8!GGdͽ4Z8{n!GGd"GZ:D(-<2D͉ B +z#x!Dͮ(7!D>&(:D(& +:D2Dͮ(:D( +!D5!D>>&(͉ēͮ(<:?:D!d?(%IF ELSE ENDIF:? n VNɗ! 1 ~) #y6 z#x( < y8y> 6B :m?#>2n?[FyOxGC B z#x( &2~H2IV2?2~H2ID(ͧ!(Cʹ!(u;!(9~' " ( Ϳ%&?$2!)!D(ʹ!(H! ̈́!(8 (k!)!͊"(!̈́!(͊"8vO!(oy(j` y(2n?BKẄ́!(U(͊"8L͙!(E#T]"8;#&y #jHh&0([jH(zS_&y #:~H2<2~H!|HG's#r#q<:~H=2~H!HG'^#V#N<:I2<2I!I'p#q<:I!I'F#N<><< MOSHSHAN O XO LG ENLG(*ͽ' #N"%8O(0GO0<~ 7#" ͙!(Ox"O!(CO!(:AK|!"'~#fo>2zI":zIO2!O!( A7######-#:#D#?#K#U#_#@#o#p#z####!#j#i##2$#9$##z)#z<#xAO#R#|g}o#|g}o#|g}ol&#͓##!͓# !͓#(͓#v#͚#Rx Z~"("(ͽ' #"(.n_&T#x , (xy 2zIx(h xy x2zIxo>&#O(0+~'H(D(Q(B(#'S'#'#+'#@'#`H ($  (q< 0b!"jH"lH PYO`` y?̔$o("{?O!>[Z?V7:l?=(&>>2?:?g>2?2?*F#"F*F:?':m?O>%(%2?G%T%(%2?G2?_%+n%&}%!%%%%%%%%͎'  O(8<ɗIXIY(IX)(IY)(IX(IYBCDEHL AF0BCDEHL SP0BCDEIX SP0BCDEIY SP0ABCDEHL(HL)HL(C)%.$_?@7'A[?%&~(D(~,#D(5&   &8&n(( *F#"F6-PM 8P 0PE(PO V (NV M&jH ((% *X?C 8LT8NC0GE0Z (EQ(NZ NE ~'(9\(~ (6 ##~'X( !&͎' #DM##S'&+{#~'( 7N L F R BT 0>> > > > 62:? 2?>&&&&& *5o$}'o|'g!)T])) (8x' !))) 0?8x' !) 0?8x' !)))) g'8x' ('AG?'B ~͘'H F#N#~( ͬ'y'<ͽ' #'G~'Oxa{_R|'}O'y0:8G*5&^#V#'F*5# > bk 0:?(O(8-(=(O(#~ ( #~Ϳ%(%  +́(!?2H,+:l?͍(;)*F':m?*&!?x((~'# +y(& &!?:l?&~'#+Ͷi):l?&&?& *F':m?*&(*5':n?o 8 +)*5)*5&&&:~?G*5&*G'+:? -:V?  *5&!G5:?!)+͐)+!)+W-*** *** !)G~#0argument erromultiple definitioexpression errolabel erromissing labenesting erroopcode errophase errorange errosyntax erroundefined symbovalue errofile not foundivide by zero errono matching Ino matching MACRtoo many COMMONmultiple MACRO definitiolabel not alloweinstruction not alloweundefined symbol on pass onmnot8>!*'F*5 '"*:n?o (#*5F*5~#D(; &*F "F:m?!F's#r!F'~#fo's#rC?C? +́(:l? -!?x( O~2# ^#V:n?oIJ+:n?8G(3H,+{2z2z> 2x*F'*{?~2n?O:m?w+~rW+~s_63[F!C,zď,6363[F!S,͏,[F![,fď,[F!g,nď,Ͷ[F!t,zģ,[F!,zģ,ͭ,63Pass One ErrorsErrors Range CountParity CountProgram LengthData Length+> :-!kH(ö+-ö:F!-+!$FF/*5F*5#~ (G*5 /*5 /*5 *5 *5og-Ͷ = COMMON Lengths':-&(*5!jH~#G*5 )*5jH( 9${0| *F#"F:?G2?2?:l?.T]Dp#[Gr#s.|Ͷ+T]D !D0.~(4GͶ~!)+͐)F*5 ~#0&!)+& 0.#V#^#'&z( ~ !.+Ͷö *F| }c(8!d7ɧ:M?&o&9$MV*SL[UL'n f "GF ˸~S(M ++F ~(!>7d8f72 /!/8 !WL"`H|/z8S/###9!!9f76! /4WL!9( 70!/9d8: /G!WL [' [/͔0|/z8WL* B'8X/0ŧ>!WL r/(( r/(77ɗ2\?V0ڶ(&V(3~~~()10*5&~(!,0+#O0+&V0ڶ d&&~#G O0&?&G<xG:M?0ͶV & >G(&#*5O0V0ڶ ~#ͶÆ/Macr~?2n?U~`M`E@X  V#^': / *`H~<7! "`H0\?ͬ' :~?B~2~? yx! X/8!{I>ß2*SL[UL'~S $~ w(o G^ V yŧp2͟2F!$F _ W( >͟2F' [Fz> 2[F> 2F:l?F 2>p22͎3>2͎3!͟2:z?(:m?Gp2[F> 22z?x8 :F(x2Fo&2$$F>͟2>G~ (: _~ (# J!22F­3M2T3M3x~2#F3?3823 y?3~'2# 7T3?3M2p27T3x 3{2z2> O (T3:l? F(:323:3=23w3:3!<8>23:3G:323F(<:l?(:z?(32z?2?*F"?!?:?'w:?<2?83*?>'"?2?:?F>:d4:?GC4*?|C4}C4C4!?(~C4#{DC4> d4> d4_Z4Z4 80!<8_0 ͽ4 !U?~5!45*G'"G< (***** end of include *****) !II!<:U?~5Gd7 ( (( 8< ###f7!8= Fx*5~ #˸͆5:W?ݾԴ5x y62N?45:N?ݾ8v 'Ͷ *5*5*5!N?4x ~wݾ0y6:? &f nFv N V:?ɗ:O?  y64 ݆O y6 2W?2N?!/65:M?K0/O'6![65'6!r65*I'"I'Ͷ!F5!2G5Ͷ &CROMEMCO Z80 Macro Assembler version 03.07 MON XX, 19XX XX:XX:XX Page :? :l?:?( N 6v6~6x!a=N8x ( 6 Xx ( ( 8!74Xɗ27:7GO 6 !a=d8:l?= 78:G8:G8!!8f7N7Source file not found ͇8666#͇8666#7No directory space ~ ͇8=6~4#^#V'!I4 +4 +4<8~#^#V'w4~6͇8U8A8Write error, file - FILENAME.EXT >8~ ͇8͇8$sr! O6͇8{w{zyww#8~ ͇8͇8/* calls.c: this program will open a file and read one byte at a time using CROMIX system calls rather than the available C functions */ #control nsource /* no source in assembler file */ #include "stdio.h" /* the I/O header file */ #include "z80regs.h" /* register union declaration, with */ /* data definition of _r */ #include "cromixcalls.h" /* definitions of CROMIX calls */ #control source /* source in assembler file */ main () { static char name[] = "calls.dat"; rhl = name; /* ptr to name */ rc = OP_READ; /* read only access */ rd = 0; /* no exclusive access mask */ _ccromix(SYSOPEN, _r); /* do the call */ if (rf != 0) /* != 0 -> error on open */ syserr("could not open file"); while (rf == 0) /* read until error or EOF */ { _ccromix(SYSRDBYTE, _r); printf("char = %c\n",ra); } _ccromix(SYSCLOSE, _r); /* close the file */ } cp0 #1.c #1.p01 #2 cp1 #1.p01 #1.p12 cp2 #1.p12 #1 #2 asmb #1.@@z link #1,#1.bin/n/e del #1.p01 #1.p12 cccccc.zs* #1.z80 /* cdcalls.c: this program will open a file and read one sector at a time using CDOS system calls rather than the available C functions */ #control nsource /* no source in assembler file */ #include "stdio.h" /* the I/O header file */ #include "z80regs.h" /* register union declaration, with */ /* data definition of _r */ #include "cdoscalls.h" /* definitions of CDOS calls */ #control source /* source in assembler file */ main () { static char name[] = "cdcalls.dat"; char buf[128], fcb[33]; int i; rde = &name; /* ptr to name */ rhl = &fcb; /* ptr to fcb dest */ rc = CDOSBFN; /* format fcb */ cdos(_r); rhl = &buf; /* set disk buffer */ rc = CDOSDMA; cdos(_r); rhl = &fcb; /* now open the file */ rc = CDOSOPEN; cdos(_r); if (ra == -1) /* -1 -> open error */ syserr("could not open file"); rc = CDOSREAD; for (ra = 0; ra == 0;) /* read until error or EOF */ { cdos(_r); for (i = 0; i <= 127; ++i) /* display the characters */ printf("char = %x, ", buf[i]); } rc = CDOSCLOSE; /* close the file */ cdos(_r); } /* cdoscalls.h: Cromemco C I/O header file Copyright (c) 1980 by Cromemco, Inc., All Rights Reserved This file contains definitions for all CDOS system calls which can be made using the functions rcdos and _ccdos */ #define CDOSABORT 0 #define CDOSRDCONS 1 #define CDOSWRCONS 2 #define CDOSRDRDR 3 #define CDOSWRPUN 4 #define CDOSWRLPT 5 #define CDOSGETIOB 7 #define CDOSSETIOB 8 #define CDOSPUTL 9 #define CDOSGETL 10 #define CDOSTESTC 11 #define CDOSRELEASE 12 #define CDOSBOOT 13 #define CDOSSELECT 14 #define CDOSOPEN 15 #define CDOSCLOSE 16 #define CDOSERASE 19 #define CDOSREAD 20 #define CDOSWRITE 21 #define CDOSCREATE 22 #define CDOSRENAME 23 #define CDOSLOG 24 #define CDOSQDSK 25 #define CDOSDMA 26 #define CDOSRDNOECHO 128 #define CDOSSETCC 130 #define CDOSRDBLK 131 #define CDOSWRBLK 132 #define CDOSBFN 134 /* note: address of terminator not returned */ #define CDOSUPDATE 135 #define CDOSLINK 136 #define CDOSMUL 137 #define CDOSDIV 138 #define CDOSHOME 139 #define CDOSEJECT 140 #define CDOSCRT 142 #define CDOSSETDATE 143 #define CDOSSETTIME 145 #define CDOSRCODE 147 #define CDOSATTR 148 #define CDOSBOTTOM 151 b4t U$MEMRYQРbT!%56.FEXITb4t8...BUFbDT%(..EFCBbT.HIMEMbdUIPBk8v!U *:,dzG+u-ȌEX@@`EXv&6ݫn a 0 o@Sɨ))ђp \ɨ+ʳSe$DhAI%9QSPRINTFe$Dh7FPRINTFu5$Di<3@7 dFo>(Ӫ tAA@3 ғ `@BP }Z2ht܂nnQUr@# P3F"@ysup0E{t̃nY- $3h [aZa+t "+d "EmHf " *ހ9CÑUfhʾ PU" 0}Qϊ#;_aUrW n>3Ӏ 3unY gt̃PqUrTn>TlB@[t̃u:R@ wiId\,ͿE{W }[`0h¬.QU@0xJnfѕ_EW &9Y*1aАfmn @3F"qe|±Ufr Ͳ/ѕpCUf \g(Er& ͷ@  WT^'գ*0"« @3}_fm0x\*ԙFW #\g 26[ `0U|K`3ieT!"« @3}_aU\@a\ aUtUp31Es DWUpWUq31En  1hʳB-۠aUfѕjVEnuUp31Es  `3~B+t *@գ*@ +nVf'գ* 00(`3Uqη !VB3@E}A; !/x;JwB`3@`E}A; !/;JwB`3@ [cՅ[ @U[JL+*E|A; ø b ~|Cb+ )0aU>W B@Ȫ;Kw3|V2B@Ȫ;Kw-YVUnb+t *l3| EoV* f Uv3eGWS`« +\g(D[fh}Z20#V2í(D`[`˭su3|UɅAwdUnb+t *±rA@_gin3@Ȅ` hpbP"6EW[`E|A; * >-Vk&Zcѕ|W0V"i*@1aPQU>T Urb+ ì bEnVElWLrh ]AY@ d@a2*TVΠ dOS 3x$ `D01-XLj` VPZ#p,}t *wiIbEVElt *wiHEmVe[QU0e[QUrh iAEVV"@3 ѕwEW0#\g Lrh oAEVe_QU0e_QUrh yEV*aUnY- $@3i t܂nb+ !VB0n\ f@unY FA#t̅\a"r fAP0 n\ f@unY R#t̅\a"r fA0 n\ f@unY 2S.M]%Q "3Sc%X1F3c*`%U1R3US#9 %M5U23 Q'`0 93Z  Q#;@x1M11R2^ 8@1M%Z3D S#8x%1D2 ST(AUQpSDUHMeMIJ.MAINԀUHPSYSERRR83@"BEQ CS! eS fڐH>UXB9B"3@hʭ`H <9tURux" d<$7RfU@Hr@DR@ ˕bJFUp'+6 " e!@ͤ`Xfѕv@5 ͽ@ &vP*A(r@ +6brFU0'+6uB9D6` !; '(r@@+6U !NVhrmHUQb*+42R@'YFru 6а|,QET" ZRiYU$ AUFfգ m8z@M $3h T'in@mS>WDwEU(V"@L;j*@NVhap3 ܬp@ @6րM&N&7 *}Z29D wB9Yp@! N)ɄPu6 sr2NQd7Nl2Ae7gC!t&9@r2 '#) 9 pHC'$O'ʥ@oL&Ȁo6L& i7Dm20e)!Fo@q"Jbb,g$#Feq"Jbbg#"*"FA1qqr4d&FLqrz*tf(! e9r* gX!'Drf&#'*yqr2*JS`T5$TH=A:FOPEN`DtUD8U9QPUTCPQ Uu$DXQ2FPUTS5$TH8OPENdTFCLOSEDtUD8XUNGETCЀEUD8H READu$DX$GETLTeUE9(,3@3 b2M`Fo>(գ*7M&Er|Q'p[t̃r@ 4>UU@[HnY- $3h t܄n * B/t܂ng3@|YnLnY- $3kxt܂nnV3!\"ͪգ*7M&pETd\,ʹ r fAY !eP3 ۮHnY- $3nt܆n* 7!d(H(EBADgգ*M&fԠ 4>UUBCBTn)2\,3!]b vHDb* v8)ä -rfC\,녒4nC7Lqn2EDAET<V"3ѕy@ETD#QW LrM&f` 6V* %j[3ṫnY- $3lQpQ"`** 7!d)eX&3!\6:!\&0EDXu" )fo>,** ðAUEAO3ydgQPVn2EEXvB\,f*DT# @E *94aՠ&QPSՅf @@U>e[!nM2 <$73@hʼMr fAY nA7L7+4: 6ꀟV!Kt܂nnP*wiH"VfQpW+6TL!hʣb& pD unY @}@D P rfBTf}Z2Xt܆n*: #t̅>uB7NQU+3ohʸ`b2 nM2 *P7!d(e*6 *`ū ց+uU[JL!ۮK_녒p@ `6M&fp t܂nnVm: 6V!ۮKt܂nnV3!\7 dB9Y p[Hf63!DTnC7Lq[tn͢ gգ*7M&f`*é > U T|\Qh誈q L\iѐN\hH*hSSb4T 1=M.CGETCUr54e5D MQ.CCREATːTT`r4EE$Q1%9RCDOSb4Th.CCLOSEb4tUD8.CPUTC54e5DP.CGFSTA45$THP.CERASE4EE$GETLINEU$4D9p$ 3@maYaY 3!ߧP+n 2%uNmn2!P_A@)~ ? .@ ~[|g[|!XF^dqNG[~C f@~녒!~?ۮHnY"d_o녒!y?ۮHnY"d^/녒!x?ۮHnY  A f@~녒DBmnY 0z#t̅f~ qBQnA7L38͹- $3o67MF :_@St܆nӨ-t@ps[H f mn28d@mNf &meYppX"\3@@ $B7\,ͬ,Dͣ@L. Kh8/gu ʹ@L4ʲ rfBA@p ufj(<]/ ~/0 fcK%nA7L3݀:TX!, Oô`nM2 "\(t]KnB7LSP?ϭr fA]cH f@tFNv.(F6 "6녒 nA7L2!5nB7LW[t܆n(&7\,m1`lv.V"V@hhY,TjY8 ~YP· ߣ`pe- ͵@NVCG땚?\/ӸIn(l{?/Ѩ͂p.W . %rB!0edҐ:B-x%`͵@L@t;T6WNf; q!6`0ev B?Y`rs!jrPfې&f0pA@ûXʺ0AnoѨDP~$~Ө("O帠 ͷ L+{~[69Z|ZM>͡`{4 ?mP( ff`7 6 W"&Xv ú@%^g7 q@]`3ea$|~&Kd^Hd^/Hdߩ`Ld^Ld&*F]"2*r*e8""&$F}@yrj 2rg"!NSU`dDDĕ5HDDLIST@d2͖0{D` P*"l0% R@*Hw*g8 $f@cLXS%VKr9@MI $ Z` R@ wNOE<c @ d?Hp`1A]K#Od <;O"'ݧ1P;M`&T P``0 k~H6G0@ 0!!x%pBʼ:_@s[|f@ 5OD &T V #4  R@*HW٠PLdSѐРrdX  -.STACKrdX.BACKCb5D4pST`D4D8 M6: M6j- !t̃rI20NeXF~mXq^#`DgFrNb3d@mnM2 pMF âLe#"*"N`e5E$5 AeMQJ:c AeMQJj:- nA7L7[t܄njn¢` &2STSՑ`DdXMOVEK@ 4nM2 7!d97!d)b(;V &2STT 5ZAPK@ `4n2DnM2  И <,E'jdA9"2*r*TbD%5DX 1$BULLTS bD%TtX U11$B.LEQc MQ:Qc@ U11R:@S# U1:XSc1F:(f` 72]m+suO@0>p#p  0 =G ^g7D 8SrBDĕ$X1AI$$LIPOS rBE$XAAI$$PIPOS 1%AI:( c`1%A=N:l  A%AI: cA%A=N: 氠xF 1h~#C1"Yj+ClD&h#>-D64\,!5ISV ٴd >g$M?}π&I~P>,!4#3ܫwiHNLd&&"$FQ9"brӑbD5DX1MQ$LLDAUQ`bDD1MP!2$LST.BCSUS bDTDh01F$L.LNE QbDH0 =6$L.BAND ԠrD%(0$L.SUB  bD4X1M1$LSLGT bD54(1M5U2$LSDIVS#1MQV;JQc11V:Qc11%:: # 1MP ;SUS#81U%Z;| Tc019: Q@09=R: c0 9:b ԣ0 a=J: Q#0MU ;, #1M11;c1M1R;#81MM!J;(US#81M%Z;TS&@2 /3ou\ >g dʔR'A/EvI}lMz+2 !dWdʴV'A/EvKU`X.i)l\ B`ݤ'[$/7sؼz,,` Q|Zb]` -~,,$ó`V `DgFr0Y*9!m<Fm;6>afյ5 YWPx /+dxzYdMVfZ@ ,T ÌeG@A.7ii ,$à->H[YaVXQe#UbeYaG,* 8Rq%-86hY-~bXmeXu^= >Yg@ͯeh3k%]^amwzi` ŇcYg6i` efLS bD5DX%1$I.LEQK`bDTX%U1$ISLLET`bDTuH%U11R$ISLGTT bD4%UM!J$ISSHRUSUS bDTDh%U5=$ISMULTUbD4HM 1$ILEQ0SL bDC%1$ILGT0SL# %MQ:SQc`$1F:4Kc%U11:BUSc%M11:bTc%U1R:RUS#@%M1R:rT#$M!2;*UT %MM!J;ZUSUS#%U%Z;USS#8%M5U2:PTU`8%M5=:Sc%1D:SL#%11P:SL#`%1P:SL&2 ?KpNb3vn)2wZRCZRC7[6>`f@ՃC1n):^U<nWOQ@0%>-Y#, L, a0`3"X=cn`2ì;0{sǯXa@!5n) dM ,60OK6C,B0KEn L,(=p͹Xd }ς8= y\//H}}ς8;Vmx 6=Y4â`,՛}>yFj .mhg rE5tD4)A!2$FENTERS#@M]%Q ": #9QJ:jS&@#l\ tn&0C!)pEmӢ +nPA~[tu\.Sp#O31D&2dk@\[8SQRT4TTLSEEKK@ 4n 2%vt̃r@ +4,ʥdM&Vm,ʩ d|"g@6"g@6f @Uvdk4_PUvdlX4_p3 ܢ_p+43@ѕrt̃a pD/uam4a녒}ĉj* Hj*ip H\]ĉi Hĉi葛 HaȩʈQ\jhj3녒b4t55If.LOMEMSQSc >:QSTc1=56:SQSfȪ  GȌERb0V"@ wiIS.L[JDBinՃtl7FefA#13"F "@p9# ^s:Lfo&q p΀ j(isSe$DhMAI%9QFPRINTF$Dhh_SPRINTFe$Dipd3@7 dFo>(Ӫ tAYhʥ r fA\,(7 dRaT@p4LrhUlϫFUlnM2 *VhR`YZ@T0ElBuUuܢ1 pK#U~b+7 dunY A 先X܅Xۅ@ \P +!V,\>cu "!T1[b4e^(xr*l۲>Tp" @c4rAU 3yDguC"*P*nQꅸMѕ a U( nY- $3nPt܂nb*T*AQ8Mջ* t܂nnU* [JAn)7\,녒BXDQ 07Fp@FUO*:-0U >ѕ $&Tf}Z2Zö@"eF' 3FTH0L@ wiHEHTt0e^q2A~>2x [8*l}Z2[U Tx0UK3@in߅H}PU >UCB4 m1f$͢B<Q 0n)2V@V*1 RHU [JB*<*ոEգ*ˁ@ RU >-V jʵB<"l;d!W," Xe*a Qݕt @ㅆDW,\ >` O*6,>W wdUFX텆Czʍ `2a8Luݥ&a@6v`DX텆\6&:4H02f0A07Fp}Yϋ#;suKtl0UF!L 7l,2Q0!A<n3yDgՙ3'7['ѕ v8Xޅݥ&\p v8Xޅݥ! [B"ѕxW ,V"ab3ѕxW-͠&Q0͠!U >-W j ဘf `EGgգ* `2a`Cv&0͠&*<. Vm c,ʮ~}Z2 r`EGoP@գ* `@B~+[B[X߅ϫFUQaeFX텆M`@L:*ջ*`@B@FU w\-RYwT0/7qA@U f7Fw+6 3@}Yϋ#;@Bv}Z2P(ᅊW ,F}Z2P(Yâ@@EqBۮHf0U" fӠ!  f0&m_7\,녒UHCD " `}Qϊ#8 ahʲT10+"E c6^'գ*Ђ'ѕ funY TET1VAD4H1WEʎ3jd\,͵ElB YePpU  M@#]P'գ* YLrhUuBb+àl]P(EuB&b͠*  EW-MA'գ*ͨ +v*nQꅸMѕ  W-y@U [6OFU_б0EpBWT-#]P 2lی[аUBϩ3{ ܃ [F"nqeBٷ"a`jx3 9CU fghʼ EqBWT-#]P 2b"!b+"A+*b`jx(XìLf aU ? \бU ]U ? +*l*@ [ѕX [b~'գ*XㅰP煟fcx셈@@ ]+6W,UogU+~*gգ*@ +qV-W'գ*݃XㅰP텈[UtBη !W,B([@ E@:!/x;Jt 0B[@` E@:!/;Jt 0B[@  \PՅP ⅄@U [JL**alEݥ:ò~|Cb+)U >VP B@ȪKt1[@V-2CB@ȪKt1-YU\$Uqb+*A l[@, ErBW,-*n f U v@ce|BW-S+](D\h}Z2KW$,2èA.(D`\˭su[@UɅvv$Uqb+*!b rA@_in3@Ȅ` hpbP"6EW-[Eݥ:*n >-Vk&W [pѕqEWd,V"!ai*b1 aU >Wl$UuBb+æEqV,EoBW,Lrh Xd*@ @42)pATK OPPxp01+9L\` PWsL` 3((9AA̠ G_c8h@ [PB"ѕ~B*kwiI`…W,EoBݥ*kwiHEpV,e[U Xe[U rh hW,V"b3ѕvBWd-#] Lrh nV,e_U Xe_U rh xBW-*a aQU >TT,UlBt`,U~ۮKu ۢ 7 dꅈ@  @*HB?ۮW$EsBٷ4p[Hf 3!DWT,B[t܂nb+C?ۮW$EsBٷ4p[Hf3!DWT,B[t܂nb*HC?ۮW$EsBٷ4p[H#*A11%:2U#-ؑ U113 Tc.ؑ192LUS#5%U11R3$ T#0%M11R2UT>%M5U23 TU?@%M5=3z Q!<0 93 Q#51M11R2281M%Z2S#3%1D3d SL#0a|9QJ3j S!\a%U 23v S'X2hV#+AUQpSѓ`TdT 1=M:QS  1=Mj- nB7LSpò r fAD Wnt̃r@ +47M&@VmB+wiI[t̃r@+6WU|"9Z ;t!@VhVha۠m<0)8\I $RQ h@U[JL+!K unY  At̃r@unY l2&d2 &p2@ͨ$SWITCHrDdTDU(0CREATDT8CLOSET4TT̀EXITe54U%)SQ`T4TTLSEEK@ 4nGѕ(B?٠4>ThPm&f*R)Ұ3"XwB@fh}Z28 nY"eIXwxB@fm>V,B0p>8 @ͯգ*@@ѕ'a ۮK3n+QvB9D4J}[ $B9D4ͼAU%>T`B_Rin\,녒ĉ*H2ĉȨ0 HRĉi@HhjI3SђS`T5$TH=A:CLOSESS IR:S 1=M;SS2t̃R!3ydg>`riP TeS çZ&7\,녒nA7L1.n2`ʖ}R*Xó@df&f0 VPE0riP JT}[aېU-Ku ڐ7 *Z!Tf0 V!wnA7L6녒p@ @67M&""0!@.Vm P nʣ`"I[t̃a@녒p@ &aa6 &3sMC(nSp(j*i`H hjI1 8SёU TdtUE8AUQN:QU AUQNk- nA7L1n2V:D+4eS+t܆n Vh]p(uYeVUrb+vFruA@« :áb3BW\28nA7L7X3keY ó` r fAunY 0At̃7V쫨7 dF:D&9[#t̅r@#Ӏ7\,bDU$I.LNEbDC($FENTERDtUD8pPUTCSS`DtUDAUQ2:U#@AUQ2k- "7MfvWnB7LQnGѕQ r@ V@VbWn):ۦ#t̅ FhʮP* wiI7!d(d< 73jeYPUD_n22bn22aU- %m unY 0A#t̅_}_d`+6We^ þ r fA\,녒qĈEɈ1HhjI3SUDtUD8GETCK@ @4nGѕ@Q =r@ V@Vh*`uaӠ p[Hd#"*"FE9rzjLSTe54U%(SYSERRK@ @4*7 d Gѕ_nM2 #nPMӢ n>TUXb*+aѰT+4_`Q \rj dFA9"2*r*eX!'S e55DTa%R:<TSca%Rj- nA7L1bQ ^r@#u 7 dtnuC7Np rA"*!$fр rjS $2DST+ I=5&pSГE$TH]I%Q:PQ#]I%Qk@- nC7Lqn2Egef!@Cf*ոEգ* ua* `RaUpXuB\,녒nC7Lqn2Egef!PCfPY녒p@#-9QJ3ːԓRgSrBDĕ$X1AI$$LIPOS rBE$XAAI$$PIPOS 1%AI:( c`1%A=N:l  A%AI: cA%A=N: 氠xF 1h~#C1"Yj+ClD&h#>-D64\,!5ISV ٴd >g$M?}π&I~P>,!4#3ܫwiHNLd&&"$FQ9"brST`r45$Ԙ.CCROMIK@ 4n2'6+Ĝ##2^t̃>Y[`@FpN"3#9'1pc 9QJpT 5ZAPK@ `4n2DnM2  И <,E'jdA9"2*r*SՑ`DdXMOVEK@ 4nM2 7!d97!d)b(;V &2STӑbD5DX1MQ$LLDAUQ`bDD1MP!2$LST.BCSUS bDTDh01F$L.LNE bD40 9$L.BOR ԠbDDH0MU $L.SHL`bD4tX1M1R$LSLLTbD4T1M%Z$LSMODbD5DX$LSTAEbDDX$LLDAEbDDp$LST.HLrD5B$8h$LUMULDTDh$L.LEQbDX$L.NOTbD4$L.BANDbD$(($L.BXORbDDH $L.SUBŀbD4$LSLLEbD4tXX$LSLGTbD4H$LSSHRĀD4T$LSDIVπD4Ix pK2#3l+e}π ='A7v{l]|[+Sx!hgl̾Y'A7v{lQ]rX Ju[-W+ev.i >y//vIjY@u,dOadzl9[W%qg1idH2YT@ =T@ :[,۪@#eu@VP 6Gmdu^ @!/dݒ|ZIf¾` !4B9['jʣ,S,62íݥ,B2l6Z*HB"D neYaFXMlYU\el,([HN7iIҪ` tdOadzeaXqa{,(@= mr,A_@Y,fk` ՛H@^,;==YH@[/C6c5809pUS bDETTU%Z;,SUS#`8U%Zk8- j >-Yέs Te["6iv5h#$ڰ0;x$+ 0^7VՔ3j  !Z,d#$`8i!` "[Vi' aE/%n@mA!Z^T:eVpu@`-W*Ũ62F0e@@*!Q$A`!P@FHLD4,lh IaXl4l`CO BApV #!Xl hFXD=ؠ@lAKET#P HJW"8Ml FMa"2f4#)|9!"2r",d0#'"Fx9!"2rzlRTbDdD1V$DLDCNU`bDDDMQ%:$DSTAUSbDe5DX1F$D.LNES bDETuHU1$DULLE TbBDDAJ$$DDPO TbBDdAJ$$FDPOV RDEAUM":zS 1V:ӣ1V:SMQ%::UcMQ%::Uc81F: c@8U11R:S#8U1;Sc %AJ; T㶀AJ; 㤠8%AJ:h T 8AJ:0 a ";8I#AUM"k-rG@(?H@0+?1"s 8';`h!R@@ "SrA!hxH& a&Kuiv-+͠ SՃ%p]bK#\ `~HU|r@$*X(H d@Kp ʀ8DR@@ DI-0Ej ͪ@ ڢ,rj6m~ڤͪ ,ͮ +63j 68Xw pY!\sHF=.Vm=fmpj%ͧ ڢ͢ .iͧ ڢͽm_dYT@Y͠` FsHF="@E|@ HU@DR@@ "UK6 m@ 6 * 6 m@ m@ d@ Hk~s 2r(X@H0,ȡc'82@ P5 0H3X gS DdFILLK@ 4n27!d)47 d BL <,E'jdA9"2*r*ӠrETD$a%M 2$XLSDBL㡠a%U 2:T#a1M 2:激De` &@ә24lܭQR@wv |Gltͫm]>jeCR0iNHQ@R@@ !T(u@EdHvX@P>#s4No="s,N_C!~gQbDTx$L.NEGK@9^o=y\X0&pS bD5DX%1$I.LEQK`bDTX%U1$ISLLET`bDTuH%U11R$ISLGTT bD4%UM!J$ISSHRUSUS bDTDh%U5=$ISMULTUbD4HM 1$ILEQ0SL bDC%1$ILGT0SL# %MQ:SQc`$1F:4Kc%U11:BUSc%M11:bTc%U1R:RUS#@%M1R:rT#$M!2;*UT %MM!J;ZUSUS#%U%Z;USS#8%M5U2:PTU`8%M5=:Sc%1D:SL#%11P:SL#`%1P:SL&2 ?KpNb3vn)2wZRCZRC7[6>`f@ՃC1n):^U<nWOQ@0%>-Y#, L, a0`3"X=cn`2ì;0{sǯXa@!5n) dM ,60OK6C,B0KEn L,(=p͹Xd }ς8= y\//H}}ς8;Vmx 6=Y4â`,՛}>yFj .mhgQ bDBDHMU $$FNORM ՑTrBDeTDXH$FR1bDBDH$D.SUBBDd$$$FOVERBDeTDX@$FR0BDe# uH f@ ʳ;H{J=GTeN.m/uxͥ 8Tn`C6ⱰuNٵuN$:c|uN03k r_Smd2@`02X2@ p`: *Sd@ʝ =#R2@9smdD4#@@ XhF ڰҀ)``db< [HOad@ p$ ?-QXAd؜+=T܀S % `@7 %nG XA# V0% =@@Da`jxr@I(> 6ͬ '2@x 1АX2^" 8lv.P ?1"s +?3sAd rE5tD4)A!2$FENTERS#@M]%Q ": #9QJ:jS&@#l\ tn&0C!)pEmӢ +nPA~[tu\.Sp#O31D&2dk@\[8TbD%5DX 1$BULLTS bD%TtX U11$B.LEQc MQ:Qc@ U11R:@S# U1:XSc1F:(f` 72]m+ suO@0>p#p  0 =G ^g7D 8U11R:@S# U1:XSc1F:(f` 72]m+++ͤ*#"^VR*)nf~#fo!"" * }!"!8"* !!X}*#"8R! !-!!-! !-*)nf~#fo!! !-! !-! !-!"!$*#"!!N*  ! !-R%+ 5d *w$[+8?#"s*+"uRy[wRDMbk6 66!F91!!FABORT: program/stack too big!\nͤnf}o|gut*{}nf nfR. &*}}6nf*-"|3*"{D*#"^s*#"nfͤ!"""""!"""! "!".}2ͤ!"[.0*ʲ9**} *~*&}o|g"*#"n}2Ü*ͤnf"*#"n}nf*RRͤ!"*&}o|gP͛}T.}2[*}o}2*&}o|g}z.-|. }2*&}o|g}2&AR"*}ʫ.A}2*|ʹ!"*͛}!"*&"*<![!@R}2*}!ͮJ!ͮ!**&R<*}! ,}5*#"*#"@*R"*}! ,}a!""*|vv*"|!"**"*}ʝ*". }2*-}2,}·ã*&!0sô.}2*,}2&R^[*&!*&!.n&&}o|g0}o|gs[*&!*&!n&}o|g0}o|gs.}2[*Rw*"[*R"*|! ,}ʬ*+"#}ʬ*Ô*&*|.0&*+"#}*,}2&!n&!"..&*|@*}(!*#"+}(!}@.0&*+" *+"#}g*,}2&!n&@*}.E&*}ʈ.+Ê.-&*|ʦ*}/o|/g#" *͉0}o|g *͔0}o|g*}*+"#}*!"ͤ*ͮ!)ͤ*ͮ!*&}o|g"*}` !?*͚_ E*͛}k .}2)ͤ*ͮ!.}2)ͤ!"{!"*n}*%n *#"%n } *n&*#"W*#"n}2+*  -* }, -* "*#"n}20**A .*}\ *&"*#"n}2͐".*}oƒ *#"n}2͐"L* ˜ l* }ʱ !"*#"n}2*""""*&þ  *u ***~#fo"*"*"*~#fo"!"*| !"*}, ![*͊}7 *"**~#fo"!"*"*|c !"*}z ![*͊}ʅ *"*!"*ns!"!"*!"!"S!"S!" !"!"S!"S!" !"*| !"*R( *ͱ"S^ *~#fo|("S*}^ !*["S*͹z !*[w}ʖ *[M"S!"!"*|! *#"*[*["**[*["S*+" *͉} 7* 0*s*[|¤ v *#"*+"! *[L!0s! *[A"S*[|! *}ʐ *+"-s*#"**}ʥ *+" !"""*&*# I i D d U u O o X x C c: S: s: P: p B b F f E e G gÓ *|! ,}[*RM*"[*R"*|! ,}ʂ*+"#}ʂ*j*+"#}ʣ*#"n&Â*}*+"#}*ë**"é *{}*{*|ͤnf"!"}!" "͗ ~ͤnf"!"}nf" "͗ ~ͤnf"!"}nf" "͗ ͤnfn&Înf!r"ònf!."ònf!r"!Rdnf!."*!!ò!͛!òͫ4A4aWw R r{!*R!*ͤnfillegal mode in fopen  ͤn}2)!ͭo},ͭ5ͭM"*S,nf!ͭw}h!|(.}2(!ͭo}ʌ!Ï!}2(!ͭo}ʱ!ô!}2(!qEû!!&e*&}!!!&e*&}! **[,ͤnf"\!}o|g}2Z!!Xe*X}g!l*[&ͤnf"\nfð.}2Z.}2Z.}2Z!`͛å! !Xe*X}!*[&ͤn}2[! !Xe*X}!nfͤnf"\!!Xe*X}I!RnfRillegal access mode in open ͤnf"Vnf+utʸnfV"T!{}*V##"V[Ts#r RÌ*Vs#r!*Ttnf*Vt}!nfͤnfn}Qnf#utn&nf-$ͤnfR"Tnf"Rn}2Q!!Ne*N}! ,} *TRnf n *TRnf n }*T+"T*TRnf s*Tnfs*T!ͤnf"Rn}2Q!!Ne*N}B!Hnfͤn}2!!e*}! ,}ʊ*&Ð!ͤ!"nf".}2nf#utn}*#"+ö!!e!"!F!eͤnf"a!F!]eͤnfut!ut "c!H!]e!E!]eͤnfN#F#N#F#^#V#^#Vnf}Q8q#p#q#p#s#r#s#r ^#V#~#fo}|{z|}٥ogz{٣_W|}ٵogz{ٳ_W|}٭ogz{_W JBB}/o|/g{/_z/W|!T],}?=)= q#p#s#r`iɯgo!,͂ ͂ ͂W͂W(>(/|ȯ!DM!=BR Z7?}?=* z(M>z(M<M͚00zM:($( !~P8+~'w+~'w+~'w06+4!""   \! !DM****`iDM""""`iͮͭͮͭVͮͭͮͭV!VNwy#͙ͭͻ͙͙ͭͭͻ͙ͭ\Nwy#!A"!"""!!!~O怹(< #>0>y(|(&z2/(Mٯ!wgoW_OGz͌{͌|͌}͌CS"!J:/<G7(|'g}'oz'W{'_y'OÏ!T\:@ "GO!2)j8N)j8C)j8< J85"ٯA(g_o#o_g {O HJ8:M!~# E}8/G!|/g}/o{/_z/W,$ ~#fo s#rɷR kmRgR8]_R8YSͥNͥ(AC>R(/ɯ|(+%|$| | |( |(go!,{=){=<{=,DMR0PYDM!:0 z!BK>=( B?8 7.<|(}/o|/g#z(z/W{/_x}/o|/g#XtX.t|XO}/o|/g#PY:2͔! Dҁ:20r :W!0+6:^'w+:2 >o+ɷ'w+#ɷ'w+# ~ #5  ~Pj͎0+6{ 怳2!6 ~'w+~'w~#NFo& +t+u qpn&##9~#foDM^#V#{~#~#  n s}($}(}8{8 }8 {8go!,/* clist This program lists one or more C source files with line numbers, and page breaks at end of page and end of file. Copyright (c) 1980, by Cromemco, Inc., All Rights Reserved */ #control nlist #include "stdio.h" #control list #control source #define CR 13 #define EXPCHAR 8 /* expanded-print character for dot-matrix */ #define FF 12 #define LF 10 #define SP 32 main( argc, argv ) unsigned argc; char *argv[]; { static unsigned linenum,  linecnt, fnum = 0; static char lnbuf[ 258 ]; static int numchars, i, rdfile; while ( ++fnum < argc ) { rdfile = fopen( argv[fnum], "R" ); if ( rdfile ) { linenum = 0; linecnt = 56; while( getl( rdfile, lnbuf, 256 ) ) { if ( ++linecnt > 56 ) { putchar( FF ); putchar( EXPCHAR ); putchar( SP ); fputs( argv[fnum], STDOUT ); putchar( CR ); putchar( LF ); putchar( LF ); linecnt = 1; } printf( "%+ 5d\t", ++linenum ); fputs( lnbuf, STDOUT ); } /* end the while.getl */ fclose( rdfile ); /* only close if fopened */ } /* end the if.rdfile */ } /* end the while.fnum */ putchar( FF ); } /* end of main */  SUBTTL Macroes and External declarations ;; GLOBAL $BSTAE,$ISTAE,$LSTAU,$LSTAE GLOBAL $BLDAE,$ILDAE,$LLDAU,$LLDAE,$LLDIN GLOBAL $$LIPRE,$$LDPRE,$$LIPOST,$$LDPOST GLOBAL $$PIPRE,$$PDPRE,$$PIPOST,$$PDPOST GLOBAL $LST.HL,$LST.BC GLOBAL $SWITCH GLOBAL $BULLT,$BULGT,$BULGE,$BULLE,$B.LEQ,$B.LNE GLOBAL $I.LEQ,$I.LNE GLOBAL $IULLE,$IULGE,$ISLLE,$ISLGE GLOBAL $IULGT,$IULLT,$ISLGT,$ISLLT GLOBAL $I.SHL,$IUSHR,$ISSHR GLOBAL $IUMUL,$IUDIV,$IUMOD GLOBAL $ISMUL,$ISDIV,$ISMOD GLOBAL $SCALE,$LUMUL,$LUDIV GLOBAL $L.LEQ,$L.LNE GLOBAL $L.NEG,$L.NOT,$L.COM GLOBAL $L.BAND,$L.BOR,$L.BXOR,$L.ADD,$L.SUB,$L.SHL GLOBAL $LSLLE,$LSLGE,$LSLGT,$LSLLT GLOBAL $LSSHR,$LSMUL,$LSDIV,$LSMOD GLOBAL $ILEQ0,$ILNE0,$ILLT0,$ILGE0,$ILGT0,$ILLE0 GLOBAL $$JPHL GLOBAL $FENTER,$FCALL ;; ;; SUBTTL ASSEMBLY CONSTANTS N EQU -126 ;; OFFSET FOR AUTO PTRS N1 EQU N+1 N2 EQU N+2 N3 EQU N+3 L@STAT DL 0 ;; PRINTER LISTING STATUS! SUBTTL LISTING CONTROLS L.GEN MACRO L@STAT DL L@STAT OR 2 LIST GEN  MEND L.NOGEN MACRO L@STAT DL L@STAT AND 0FFFDH LIST NOGEN MEND L.ON MACRO L@STAT DL L@STAT OR 1 LIST ON MEND L.OFF MACRO L@STAT DL L@STAT AND 0FFFEH LIST OFF MEND L.PUSH MACRO L@STAT DL L@STAT SHL 2 MEND L.POP MACRO L@STAT DL L@STAT SHR 2 IF L@STAT AND 1 LIST ON ELSE LIST OFF ENDIF IF L@STAT AND 2 LIST GEN ELSE LIST NOGEN ENDIF MEND SUBTTL MISCELLANEOUS MACROS ;; ;; ZERO HUNKS OF MEMORY AT ASSY TIME ;; .ZERO MACRO #CNT L.PUSH LIST OFF,NOGEN REPT (#CNT/32) DW 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 MEND REPT (#CNT MOD 32)/4 DW 0,0 MEND REPT (#CNT MOD 4) DB 0 MEND L.POP MEND ;; ;; ;; convert from shorter to longer data types ;; .XBUIU MACRO LD H,0 MEND .XIULS MACRO LD DE,0 MEND .XISLS MACRO LD DE,0 BIT 7,H JR Z,$+3 DEC DE MEND ;; ;; HOUSEKEEPING -- FUNCTIONS AND ARGS ;; .FENTER MACRO #ASP LD BC,#ASP+2 CALL $FENTER MEND .FEXIT MACRO POP IX RET MEND ;; ;; execute a case switch ;; .SWITCH MACRO POP DE CALL $SWITCH MEND ;; ;; ;; MACRO: HL=IX+BC HL.IXBC MACRO PUSH IX POP HL ADD HL,BC MEND .FCALL MACRO #NB,#ASP CALL $FCALL DB #NB ;; NUMBER OF BYTES ONTO STACK BEFORE CALL POP AF ;; GET RID OF ADDR OF FUNC WE CALLED MEND .EXCALL MACRO #LB,#NB,#ASP CALL #LB DB #NB ;; NUMBER OF BYTES ONTO STACK MEND .BEXCH MACRO EX DE,HL MEND .IEXCH MACRO EX DE,HL MEND .LEXCH MACRO EXX MEND .BPUSH MACRO PUSH HL MEND .IPUSH MACRO PUSH HL MEND .LPUSH MACRO PUSH HL PUSH DE MEND .BPOP MACRO POP HL MEND .IPOP MACRO POP HL MEND .LPOP MACRO POP DE POP HL MEND SUBTTL BYTE LOAD MACROS ;; ;; BYTE-SIZED LOADS ;; .BLDCN MACRO #OP LD L,#OP MEND .BLDST MACRO #OP LD HL,(ST+#OP) MEND .BLDAU MACRO #OP LD L,(IX+N+#OP) MEND .BLDAE MACRO #OP LD BC,#OP+N CALL $BLDAE ;; +2 FOR INLINE MEND .BLDSS MACRO #OP LD HL,(SS+#OP) MEND .BLDIN MACRO #OP LD L,(HL) MEND .BLDEX MACRO #OP LD HL,(#OP) ;; "HL" BECUZ LINKER CAN'T DO ELSEWISE MEND SUBTTL INTEGER LOAD MACROS ;; ;; INTEGER LOAD MACROS ;; .ILDCN MACRO #OP LD HL,#OP MEND .ILDST MACRO #OP LD HL,(ST+#OP) MEND .ILDAU MACRO #OP LD L,(IX+N+#OP) LD H,(IX+N1+#OP) MEND .ILDAE MACRO #OP LD BC,#OP+N CALL $ILDAE ;; +5 FOR INLINE MEND .ILDSS MACRO #OP LD HL,(SS+#OP) MEND .ILDIN MACRO LD A,(HL) INC HL LD H,(HL) LD L,A MEND .ILDEX MACRO #OP LD HL,(#OP) MEND SUBTTL LONG LOAD MACROS ;; ;; MACROS FOR LOADING LONG ARGS ;; .LLDCN MACRO #OPL,#OPH LD HL,#OPL LD DE,#OPH MEND .LLDST MACRO #OP LD HL,(ST+#OP) LD DE,(ST+#OP+2) MEND .LLDAU MACRO #OP LD BC,#OP+N CALL $LLDAU ;; +6 FOR INLINE MEND .LLDAE MACRO #OP LD BC,#OP+N CALL $LLDAE ;; +9 FOR INLINE MEND .LLDSS MACRO #OP LD HL,(SS+#OP) LD DE,(SS+#OP+2) MEND .LLDIN MACRO CALL $LLDIN ;; +5 FOR INLINE MEND .LLDEX MACRO #OP LD HL,(#OP) LD DE,(#OP+2) MEND SUBTTL ADDRESS LOAD MACROS ;; ;; LOAD-ADDRESS-OF MACROS ;; .ALDST MACRO #OP LD HL,ST+#OP MEND .ALDAU MACRO #OP LD BC,#OP+N PUSH IX ;; -1 FOR NOT INLINE POP HL ADD HL,BC MEND .ALDAE MACRO #OP LD BC,#OP+N PUSH IX ;; -1 FOR NOT INLINE POP HL ADD HL,BC MEND .ALDSS MACRO #OP LD HL,SS+#OP MEND .ALDIN MACRO LD A,(HL) ;; SAME AS .ILDIN INC HL LD H,(HL) LD L,A MEND .ALDEX MACRO #OP LD HL,#OP MEND SUBTTL BYTE SECONDARY LOAD S ;; ;; BYTE-SIZED SECONDARY LOADS ;; .BL2CN MACRO #OP LD E,#OP MEND .BL2ST MACRO #OP LD DE,(ST+#OP) MEND .BL2AU MACRO #OP LD E,(IX+N+#OP) MEND .BL2AE MACRO #OP EX DE,HL LD BC,#OP+N CALL $BLDAE ;; +2 FOR INLINE EX DE,HL MEND .BL2SS MACRO #OP LD DE,(SS+#OP) MEND .BL2IN MACRO #OP LD A,(DE) LD E,A MEND .BL2EX MACRO #OP LD DE,(#OP) ;; "DE" BECUZ LINKER CAN'T DO ELSEWISE MEND SUBTTL INTEGER SECONDARY LOAD MACROS ;; ;; INTEGER LOAD MACROS ;; .IL2CN MACRO #OP LD DE,#OP MEND .IL2ST MACRO #OP LD DE,(ST+#OP) MEND .IL2AU MACRO #OP LD E,(IX+N+#OP) LD D,(IX+N1+#OP) MEND .IL2AE MACRO #OP EX DE,HL LD BC,#OP+N CALL $ILDAE ;; +5 FOR INLINE EX DE,HL MEND .IL2SS MACRO #OP LD DE,(SS+#OP) MEND .IL2IN MACRO EX DE,HL LD A,(HL) INC HL LD H,(HL) LD L,A EX DE,HL MEND .IL2EX MACRO #OP LD DE,(#OP) MEND SUBTTL SECONDARY ADDRESS LOAD MACROS ;; ;; LOAD-ADDRESS-OF MACROS ;; .AL2ST MACRO #OP LD DE,ST+#OP MEND .AL2AU MACRO #OP EX DE,HL LD BC,#OP+N PUSH IX ;; -3 FOR NOT INLINE POP HL ADD HL,BC EX DE,HL MEND .AL2AE MACRO #OP EX DE,HL LD BC,#OP+N PUSH IX ;; -3 FOR NOT INLINE POP HL ADD HL,BC EX DE,HL MEND .AL2SS MACRO #OP LD HL,SS+#OP MEND .AL2IN MACRO EX DE,HL LD A,(HL) ;; SAME AS .ILDIN INC HL LD H,(HL) LD L,A EX DE,HL MEND .AL2EX MACRO #OP LD DE,#OP MEND SUBTTL STORE MACROS ;; ;; STORE VIA BC (INDIRECT STORE) ;; .BST.BC MACRO LD A,L LD (BC),A MEND .IST.BC MACRO LD A,L LD (BC),A INC BC LD A,H LD (BC),A MEND .LST.BC MACRO CALL $LST.BC MEND ;; ;; STORE VIA HL (INDIRECT) [USED ONLY BY "="] ;; NOTE: LEAVES V1 IN HL! HL DESTROYED!!! ;; .BST.HL MACRO LD (HL),E EX DE,HL MEND .IST.HL MACRO LD (HL),E INC HL LD (HL),D EX DE,HL MEND .LST.HL MACRO CALL $LST.HL MEND SUBTTL INCREMENT/DECREMENT MACROS ;; ;; NOTE: DOES NOT INCLUDE POINTER ++ AND -- ;; ;; PREINCREMENTS FIRST ..BIPR MACRO #TYP,#OP .BLD#TYP #OP INC L .BST#TYP #OP MEND ..IIPR MACRO #TYP,#OP .ILD#TYP #OP INC HL .IST#TYP #OP MEND ;; ..LIPR MACRO #TYP,#OP .LLD#TYP #OP INC HL LD A,H OR L JR NZ,$+3 INC DE .LST#TYP #OP MEND ;; ;; POST INCREMENTS ;; ..BIPO MACRO #TYP,#OP .BLD#TYP #OP INC L .BST#TYP #OP DEC L MEND ..IIPO MACRO #TYP,#OP .ILD#TYP #OP INC HL .IST#TYP #OP DEC HL MEND ..LIPO MACRO #TYP,#OP .LLD#TYP #OP  PUSH DE PUSH HL INC HL LD A,H OR L JR NZ,$+3 INC DE .LST#TYP #OP POP HL POP DE MEND ;; ;; PREDECREMENTS FIRST ..BDPR MACRO #TYP,#OP .BLD#TYP #OP DEC L .BST#TYP #OP MEND ..IDPR MACRO #TYP,#OP .ILD#TYP #OP DEC HL .IST#TYP #OP MEND ;; ..LDPR MACRO #TYP,#OP .LLD#TYP #OP LD A,H OR L DEC HL JR NZ,$+3 DEC DE .LST#TYP #OP MEND ;; ;; POST DECREMENTS ;; ..BDPO MACRO #TYP,#OP .BLD#TYP #OP DEC L .BST#TYP #OP INC L MEND ..IDPO MACRO #TYP,#OP .ILD#TYP #OP DEC HL .IST#TYP #OP INC HL MEND ..LDPO MACRO #TYP,#OP .LLD#TYP #OP PUSH DE PUSH HL LD A,H OR L DEC HL JR NZ,$+3 DEC DE .LST#TYP #OP POP HL POP DE MEND SUBTTL INDIRECT ++ AND -- ;; ;; THE INDIRECT ++/-- ;; ;; PREINCREMENTS ;; .$BIPR MACRO INC (HL) LD L,(HL) MEND .$IIPR MACRO INC (HL) LD A,(HL) INC HL JR NZ,$+3 INC (HL) LD H,(HL) LD L,A MEND .$LIPR MACRO CALL $$LIPRE MEND ;; ;; POST INCREMENTS ;; .$BIPO      MACRO LD A,(HL) INC (HL) LD L,A MEND .$IIPO MACRO LD E,(HL) INC (HL) INC HL LD D,(HL) JR NZ,$+3 INC (HL) EX DE,HL MEND .$LIPO MACRO CALL $$LIPOST MEND ;; ;; THE INDIRECT ++/-- ;; ;; PREDECREMENTS ;; .$BDPR MACRO DEC (HL) LD L,(HL) MEND .$IDPR MACRO LD A,(HL) DEC (HL) LD E,(HL) INC HL OR A JR NZ,$+3 DEC (HL) LD D,(HL) EX DE,HL MEND .$LDPR MACRO CALL $$LDPRE MEND ;; ;; POST DECREMENTS ;; .$BDPO MACRO LD A,(HL) DEC (HL) LD L,A MEND .$IDPO MACRO LD A,(HL) DEC (HL) INC HL LD D,(HL) OR A JR NZ,$+3 DEC (HL) LD H,D LD L,A MEND .$LDPO MACRO CALL $$LDPOST MEND SUBTTL POINTER INCREMENT/DECREMENT MACROS ;; NOTE: ALL ASSUME INC/DEC SIZE IS IN DE ;; ;; PREINCREMENTS ;; ..PIPR MACRO #PSZ,#TYP,#OP .ILD#TYP #OP IF #PSZ > 3 LD DE,#PSZ ADD HL,DE ELSE REPT #PSZ INC HL MEND ENDIF .IST#TYP #OP MEND ;; ;; PREDEC ;; ..PDPR MACRO #PSZ,#TYP,#OP .ILD#TYP #OP IF #PSZ > 5 LD DE,#PSZ OR A SBC HL,DE ELSE REPT #PSZ DEC HL MEND ENDIF .IST#TYP #OP MEND ;; ;; POST INCREMENTS ;; ..PIPO MACRO #PSZ,#TYP,#OP .ILD#TYP #OP PUSH HL IF #PSZ > 3 LD DE,#PSZ ADD HL,DE ELSE REPT #PSZ INC HL MEND ENDIF .IST#TYP #OP POP HL MEND ;; POST DECR ..PDPO MACRO #PSZ,#TYP,#OP .ILD#TYP #OP PUSH HL IF #PSZ > 5 LD DE,#PSZ OR A SBC HL,DE ELSE REPT #PSZ DEC HL MEND ENDIF .IST#TYP #OP POP HL MEND ;; ;; INDIRECT VERSIONS ;; .$PIPR MACRO CALL $$PIPRE MEND .$PDPR MACRO CALL $$PDPRE MEND .$PIPO MACRO CALL $$PIPOST MEND .$PDPO MACRO CALL $$PDPOST MEND SUBTTL "STORE MACROS" ;; BYTE SIZED .BSTST MACRO #OP LD A,L LD (ST+#OP),A MEND .BSTAU MACRO #OP LD (IX+N+#OP),L MEND .BSTAE MACRO #OP LD BC,#OP+N CALL $BSTAE MEND .BSTEX MACRO #OP LD A,L LD (#OP),A MEND ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; INTEGERS ;; .ISTST MACRO #OP LD (ST+#OP),HL MEND .ISTAU MACRO #OP LD (IX+N+#OP),L LD (IX+N1+#OP),H MEND .ISTAE MACRO #OP LD BC,#OP+N CALL $ISTAE MEND .ISTEX MACRO #OP LD (#OP),HL MEND ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; LONGS ;; .LSTST MACRO #OP LD (ST+#OP),HL LD (ST+#OP+2),DE MEND .LSTAU MACRO #OP LD BC,#OP+N CALL $LSTAU ;; +6 FOR INLINE MEND .LSTAE MACRO #OP LD BC,#OP+N CALL $LSTAE MEND .LSTEX MACRO #OP LD (#OP),HL LD (#OP+2),DE MEND SUBTTL OPERATOR MACROES -- BYTE, NOSIGN .B.ADD MACRO ADD HL,DE MEND .B.SUB MACRO LD A,L SUB E LD L,A MEND .B.AND MACRO LD A,L AND E LD L,A MEND .B.OR MACRO LD A,L OR E LD L,A MEND .B.XOR MACRO LD A,L XOR E LD L,A MEND .B.COM MACRO LD A,L CPL LD L,A MEND .B.NEG MACRO LD A,L NEG LD L,A MEND .B.NOT MACRO LD A,L OR A LD HL,0 JR NZ,$+3 INC L MEND .B.LEQ MACRO CALL $B.LEQ MEND  .B.LNE MACRO CALL $B.LNE MEND SUBTTL BYTE MACROES, UNSIGNED .BULLT MACRO CALL $BULLT MEND .BULGT MACRO CALL $BULGT MEND .BULGE MACRO CALL $BULGE MEND .BULLE MACRO CALL $BULLE MEND SUBTTL BYTE OPS TREATED AS INT .B.SHL MACRO LD H,0 .I.SHL MEND .BUSHR MACRO LD H,0 .IUSHR MEND .BUMUL MACRO LD H,0 LD D,H .IUMUL MEND .BUDIV MACRO LD H,0 LD D,H .IUDIV MEND .BUMOD MACRO LD H,0 LD D,H .IUMOD MEND SUBTTL INT OP'S -- NOS IGN .I.ADD MACRO ADD HL,DE MEND .I.SUB MACRO OR A SBC HL,DE MEND .I.AND MACRO LD A,L AND E LD L,A LD A,H AND D LD H,A MEND .I.OR MACRO LD A,L OR E LD L,A LD A,H OR D LD H,A MEND .I.XOR MACRO LD A,L XOR E LD L,A LD A,H XOR D LD H,A MEND .I.COM MACRO LD A,L CPL LD L,A LD A,H CPL LD H,A MEND .I.NEG MACRO .I.COM INC HL MEND .I.NOT MACRO LD A,H ;; -5 IF NOT INLINE OR L LD HL,0 JR NZ,$+3 INC L MEND .I.LEQ MACRO CALL $I.LEQ MEND .I.LNE MACRO CALL $I.LNE MEND .I.SHL MACRO CALL $I.SHL MEND SUBTTL INT OP'S -- SIGNED .ISMUL MACRO CALL $ISMUL MEND .ISDIV MACRO CALL $ISDIV MEND .ISMOD MACRO CALL $ISMOD MEND .ISLLT MACRO CALL $ISLLT MEND .ISLLE MACRO CALL $ISLLE MEND .ISLGT MACRO CALL $ISLGT MEND .ISLGE MACRO CALL $ISLGE MEND .ISSHR MACRO CALL $ISSHR MEND SUBTTL INT OPS -- UNSIGNED .IUMUL MACRO CALL $IUMUL MEND .IUDIV MACRO CALL $IUDIV MEND .IUMOD MACRO CALL $IUMOD MEND .IULLT MACRO CALL $IULLT MEND .IULLE MACRO CALL $IULLE MEND .IULGT MACRO CALL $IULGT MEND .IULGE MACRO CALL $IULGE MEND .IUSHR MACRO CALL $IUSHR MEND SUBTTL COMPARISON WITH ZERO ; .ILEQ0 MACRO CALL $ILEQ0 MEND .ILNE0 MACRO CALL $ILNE0 MEND .ILLT0 MACRO CALL $ILLT0 MEND .ILGE0 MACRO CALL $ILGE0 MEND .ILGT0 MACRO CALL $ILGT0 MEND .ILLE0 MACRO CALL $ILLE0 MEND SUBTTL LONG MACROES, NO SIGN .L.AND MACRO CALL $L.BAND MEND .L.OR MACRO CALL $L.BOR MEND .L.XOR MACRO CALL $L.BXOR MEND .L.ADD MACRO CALL $L.ADD MEND .L.SUB MACRO CALL $L.SUB MEND .L.COM MACRO CALL $L.COM MEND .L.NEG MACRO CALL $L.NEG MEND .L.NOT MACRO CALL $L.NOT MEND .L.LEQ MACRO CALL $L.LEQ MEND .L.LNE MACRO CALL $L.LNE MEND .L.SHL MACRO CALL $L.SHL MEND SUBTTL LONG, SIGNED .LSMUL MACRO CALL $LSMUL MEND .LSDIV MACRO CALL $LSDIV MEND .LSMOD MACRO CALL $LSMOD MEND .LSLLT MACRO CALL $LSLLT MEND .LSLLE MACRO CALL $LSLLE MEND .LSLGT MACRO CALL $LSLGT MEND .LSLGE MACRO CALL $LSLGE MEND .LSSHR MACRO CALL $LSSHR MEND SUBTTL BRANCH MACROES .BLTRB MACRO #LB LD A,L OR A LD HL,1 JP NZ,#LB DEC L MEND .BLTRI MACRO #LB LD A,L OR H LD HL,1 JP NZ,#LB DEC L MEND .BLTRL MACRO #LB LD A,H OR L OR E OR D LD HL,1 JP NZ,#LB DEC L MEND .BLFLB MACRO #LB LD A,L OR A LD H,0 JP Z,#LB LD L,1 MEND .BLFLI MACRO #LB LD A,L OR H JP Z,#LB LD HL,1 MEND .BLFLL MACRO #LB LD A,H OR L OR E OR D JP Z,#LB LD HL,1 MEND .BRTRB MACRO #LB LD A,L OR A JP NZ,#LB MEND .BRTRI MACRO #LB LD A,L OR H JP NZ,#LB MEND .BRTRL MACRO #LB LD A,H OR L OR E OR D JP NZ,#LB MEND .BRFLB MACRO #LB LD A,L OR A JP Z,#LB MEND .BRFLI MACRO #LB LD A,L OR H JP Z,#LB MEND .BRFLL MACRO #LB LD A,H  OR L OR E OR D JP Z,#LB MEND ;; ;; BOOLEAN OPERATOR SIMULATORS ;; .BBOOL MACRO LD A,L OR A LD HL,0 JR Z,$+3 INC L MEND .IBOOL MACRO LD A,L OR H JR Z,$+5 LD HL,1 MEND .LBOOL MACRO LD A,L OR H OR D OR E JR Z,$+5 LD HL,1 MEND SUBTTL SCALING MACROES ;; ;; SCALE 2ND ARG FOR POINTER ADD AND SUBTRACT ;; .SCL.2 MACRO ADD HL,HL MEND .SCL.3 MACRO LD B,H LD C,L ADD HL,HL ADD HL,BC MEND .SCL.4 MACRO ADD HL,HL ADD HL,HL MEND .SCL.5 MACRO LD B,H LD C,L ADD HL,HL ADD HL,HL ADD HL,BC MEND .SCL.6 MACRO ADD HL,HL LD B,H LD C,L ADD HL,HL ADD HL,BC MEND .SCL.7 MACRO LD B,H LD C,L ADD HL,HL ADD HL,BC ADD HL,HL ADD HL,BC MEND .SCL.8 MACRO ADD HL,HL ADD HL,HL ADD HL,HL MEND .SCL.X MACRO #SCF LD BC,#SCF CALL $SCALE MEND SUBTTL POINTER SUBTRACT -- 'UNSCALE' ;; .UNS.2 MACRO SRA H RR L MEND .UNS.4 MACRO .UNS.2 .UNS.2 MEND .UNS.8 MACRO .UNS.4 .UNS.2 MEND .UNS.X MACRO #OP LD DE,#OP EX DE,HL .IUDIV MEND SUBTTL 'QUICKIE' COMPARE OPS JT.LEQ MACRO #LB,#S .#S.SUB JP Z,#LB MEND JF.LEQ MACRO #LB,#S .#S.SUB JP NZ,#LB MEND JT.LNE MACRO #LB,#S .#S.SUB JP NZ,#LB MEND JF.LNE MACRO #LB,#S .#S.SUB JP Z,#LB MEND JTULLT MACRO #LB,#S .#S.SUB JP C,#LB MEND JFULLT MACRO #LB,#S .#S.SUB JP NC,#LB MEND JTULGT MACRO #LB,#S EX DE,HL .#S.SUB JP C,#LB MEND JFULGT MACRO #LB,#S EX DE,HL .#S.SUB JP NC,#LB MEND JTULLE MACRO #LB,#S EX DE,HL .#S.SUB JP NC,#LB MEND JFULLE MACRO #LB,#S EX DE,HL .#S.SUB JP C,#LB MEND JTULGE MACRO #LB,#S .#S.SUB JP NC,#LB MEND JFULGE MACRO #LB,#S .#S.SUB JP C,#LB MEND SUBTTL 'QUICKIE' COMPARE VS ZERO AND JUMP OPS ; JT0LEQ MACRO #LB LD A,H OR L JP Z,#LB ;; JP IF ARG = 0 MEND ; JF0LEQ MACRO #LB LD A,H OR L JP NZ,#LB ;; DON'T JP IF ARG = 0 MEND ; JT0LNE MACRO #LB JF0LEQ #LB MEND ; JF0LNE MACRO #LB JT0LEQ #LB MEND ; ; CAUTION: " Jc0Lxx " MEANS " JP IF IT IS c [true/false] that 0 is xx HL" ; ; example: JT0LLT == jp if true that 0 < HL [ hl > 0 ] ; JT0LGT MACRO #LB BIT 7,H JP NZ,#LB ;; JP IF ARG < 0 MEND ; JF0LGT MACRO #LB BIT 7,H JP Z,#LB ;; DON'T JP IF ARG < 0 MEND ; JT0LGE MACRO #LB JF0LLT #LB MEND ; JF0LGE MACRO #LB JT0LLT #LB MEND ; JT0LLT MACRO #LB LD A,H OR A JP M,$+7 ;; DON'T JP IF ARG < 0 OR L JP NZ,#LB ;; JP IF ARG != 0 (and arg !< 0) MEND ; JF0LLT MACRO #LB LD A,H OR A JP M,#LB ;; JP IF ARG < 0 OR L JP Z,#LB ;; JP IF ARG = 0 MEND ; JT0LLE MACRO #LB JF0LGT #LB MEND ; JF0LLE MACRO #LB JT0LGT #LB MEND ; subttl floating point macroes and definitions ; ; GLOBAL DECLARATIONS ; GLOBAL $FLDIN,$FLDAU,$DLDCN,$DLDAU,$DLDIN,$XIUDBL,$XISDBL GLOBAL $XLSDBL,$XDBLLS,$DSTIN,$DSTAU,$FSTIN,$FSTAU GLOBAL $D.ADD,$D.SUB,$D.LEQ,$D.LNE,$DULLT,$DULGT GLOBAL $DULGE,$DULLE,$DUMUL,$DUDIV GLOBAL $$DIPR,$$DIPO,$$DDPR,$$DDPO,$$FIPR,$$FIPO,$$FDPR,$$FDPO GLOBAL $DEXCH,$DPOP,$DPUSH GLOBAL $FR0,$FR1 ; ; ; EQUATES ; $FPREC EQU 8 ; BYTES PER FLTG PT NUMBER $FBIAS EQU 040h ; EXPONENT BIAS $FMINUS EQU 080h ; MINUS SIGN, IN EXPONENT ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; LOADS ; .FLDEX MACRO #LOC LD HL,#LOC CALL $FLDIN MEND ; .FLDST MACRO #LOC LD HL,ST+#LOC CALL $FLDIN MEND ; .FLDSS MACRO #LOC LD HL,SS+#LOC CALL $FLDIN MEND ; .FLDAU MACRO #LOC LD BC,#LOC+N CALL $FLDAU MEND ; .FLDAE MACRO #LOC LD BC,#LOC+N CALL $FLDAU MEND ; .FLDIN MACRO CALL $FLDIN MEND ; .DLDCN MACRO #W1,#W2,#W3,#W4 CALL $DLDCN DW 0#W1,0#W2,0#W3,0#W4 MEND ; .DLDEX MACRO #LOC LD HL,#LOC CALL $DLDIN MEND ; .DLDST MACRO #LOC LD HL,ST+#LOC CALL $DLDIN MEND ; .DLDSS MACRO #LOC LD HL,SS+#LOC CALL $DLDIN MEND ; .DLDAU MACRO #LOC LD BC,#LOC+N CALL $DLDAU MEND ; .DLDAE MACRO #LOC LD BC,#LOC+N CALL $DLDAU MEND ; .DLDIN MACRO CALL $DLDIN MEND ; ;****************************************************************************** ; ; ; SIZE CONVERSIONS ; .XIUDBL MACRO CALL $XIUDBL MEND ; .XISDBL MACRO CALL $XISDBL MEND ; .XLSDBL MACRO CALL $XLSDBL MEND ; .XDBLLS MACRO CALL $XDBLLS MEND ; ;****************************************************************************** ; ; ; STORES ; .DST.BC MACRO LD H,B LD L,C CALL $DSTIN MEND ; .FST.BC MACRO LD H,B LD L,C CALL $FSTIN MEND ; .DST.HL MACRO   CALL $DSTIN MEND ; .FST.HL MACRO CALL $FSTIN MEND ; .DSTIN MACRO CALL $DSTIN MEND ; .FSTIN MACRO CALL $FSTIN MEND ; .FSTST MACRO #LOC LD HL,ST+#LOC CALL $FSTIN MEND ; .FSTAU MACRO #LOC LD BC,#LOC+N CALL $FSTAU MEND ; .FSTAE MACRO #LOC LD BC,#LOC+N CALL $FSTAU MEND ; .FSTEX MACRO #LOC LD HL,#LOC CALL $FSTIN MEND ; .DSTST MACRO #LOC LD HL,ST+#LOC CALL $DSTIN MEND ; .DSTAU MACRO #LOC LD BC,#LOC+N CALL $DSTAU MEND ; .DSTAE MACRO #LOC LD BC,#LOC+N CALL $DSTAU MEND ; .DSTEX MACRO #LOC LD HL,#LOC CALL $DSTIN MEND ; ; SPECIAL STORES FOR STRANGE SITUATIONS ; .IST.DBL MACRO EXX PUSH HL .XDBLLS POP BC .IST.BC MEND ; .LST.DBL MACRO .XDBLLS EXX .LST.HL MEND ; .BST.DBL MACRO EXX PUSH HL .XDBLLS POP BC .BST.BC MEND ; .DST.DBL MACRO EXX .DST.HL MEND ; ;****************************************************************************** ; ; ; OPERATORS ; .D.ADD MACRO CALL $D.ADD MEND ; .D.SUB MACRO CALL $D.SUB MEND ; .D.NEG MACRO LD A,($FR0) XOR 080H LD ($FR0),A MEND ; .D.LEQ MACRO CALL $D.LEQ MEND ; .D.LNE MACRO CALL $D.LNE MEND ; .DULLT MACRO CALL $DULLT MEND ; .DULGT MACRO CALL $DULGT MEND ; .DULGE MACRO CALL $DULGE MEND ; .DULLE MACRO CALL $DULLE MEND ; .DUMUL MACRO CALL $DUMUL MEND ; .DUDIV MACRO CALL $DUDIV MEND ; .D.NOT MACRO LD HL,($FR0) .B.NOT MEND ; ; INCREMENTS & DECREMENTS ; ..DIPR MACRO #TYP,#OP .ALD#TYP #OP .$DIPR MEND ; ..DIPO MACRO #TYP,#OP .ALD#TYP #OP .$DIPO MEND ; ..DDPR MACRO #TYP,#OP .ALD#TYP #OP .$DDPR MEND ; ..DDPO MACRO #TYP,#OP .ALD#TYP #OP .$DDPO MEND ; ; ; .$DIPR MACRO CALL $$DIPR MEND ; .$DIPO MACRO CALL $$DIPO MEND ; .$DDPR MACRO CALL $$DDPR MEND ; .$DDPO MACRO CALL $$DDPO MEND ; ..FIPR MACRO #TYP,#OP .ALD#TYP .$FIPR MEND ; ..FIPO MACRO #TYP,#OP .ALD#TYP .$FIPO MEND ; ..FDPR MACRO #TYP,#OP .ALD#TYP .$FDPR MEND ;  ..FDPO MACRO #TYP,#OP .ALD#TYP #OP .$FDPO MEND ; ; ; .$FIPR MACRO CALL $$FIPR MEND ; .$FIPO MACRO CALL $$FIPO MEND ; .$FDPR MACRO CALL $$FDPR MEND ; .$FDPO MACRO CALL $$FDPO MEND ; ;***************************************************************************** ; ; ; BRANCHES ; .BLTRD MACRO #LB LD HL,($FR0) .BLTRB #LB MEND ; .BLFLD MACRO #LB LD HL,($FR0) .BLFLB #LB MEND ; .BRTRD MACRO #LB LD HL,($FR0) .BRTRB #LB MEND ; .BRFLD MACRO #LB LD HL,($FR0) .BRFLB #LB MEND ; ;****************************************************************************** ; ; ; MISCELLANEOUS ; .DBOOL MACRO LD HL,($FR0) .BBOOL MEND ; .DEXCH MACRO CALL $DEXCH MEND ; .DPOP MACRO CALL $DPOP MEND ; .DPUSH MACRO CALL $DPUSH MEND dbdbanf^}0!!͔P!*Vnf~#fo n7benf~#fon7b}~!!͔P!*Vnf~#fo n7b³nf~#fon7b}!!͔P!*Vnf~#fo!yS"|!!+nf~#fo͔P!*V!: nf~#fo;^!: ͘%nf^}"!"*#"^V^}"*)nf~#fo-n}oʁ!!A͔PD*)nf~#fon&"*!" !" !$*#")nf~#fo;^!*#")nf~#fo;^LlIiPpSsbD* s*nf~#foͷ@s*nf~#fos#r! " . }2 *!**n&Rt* }!enf~#fonf~#fo3Pͱ$*6|!!͔P*6*Vanfn&R}* |!nfn&unf!& !&nf~#fonfn&&!!&nf!&nf!&nfn&Rnf~#fonfn&&nfn&R 'nfn&)!8^4#V 4a^V*$ R|??nfnf+^V*$ R|T#!*Rrnfs*nfsnf!Rsnf! s#r)nfnfU'"!R nfsnfsnfs#rTnf n&R#Tnfsnf[snf! s#rnfn&"**#"*+* #n}o†nf͏=* )!& ~#fo|! ,}nfsnf!Rsnf! s#rnfn&")*4#"4+nfn&R//(ox bnfn&" RKͿC* n&͝Anf#nf nf@#nfͺ#nf#nfsnf!Rsnf! s#r!")nf4#!%#k]bnf|! ,}N!nfn&͟^}^nf7-nfn&"")06?BGKNT[`hnprtvxz|~ 0 |Gltͫm]>jeCR0iNHQ@R@@ !T(u@EdHvX@P>#s4No="s,N_C!~g.QbDTx$L.  S bD5DX%1$I.LEQK`bDTX%U1$ISLLET`bDTuH%U11R$ISLGTT bD4%UM!J$ISSHRUSUS bDTD0?-E5tD4)A!2$FENTERS#@M]%Q ": #9QJ:jS&@#l\ tn&0C!)pEmӢ +nPA~[/usr/include/O31D&2dk@\[85TbD%5DX 1$BULLTS bD%TtX U11$B.LEQc MQexternstaticautoregistertypedefcharintfloatdoublelongshortunsignedstructuniongotoreturnsizeofbreakcontinueifelsefordowhileswitchcasedefaultentry.'";{}()[]:*&=+-/|<>%^!~?,->++--<<>><=>===!=&&||+=-=*=%=&=^=/=|=<<=>>=ABORT: two filenames required! illegal input fileillegal output filecannot create file %pWARNING: invalid command line parm output file = %p input file = %p CP0: NO ERRORS impossible error - compiler buga* #" nfsnfsnf!!s#rnf  ~#fo* #" nus'&R>nf~#fos\n&R[nf!~* #" 'n&Rx!"$ &a* #" nux&͟^©Xn&͟^}nfnf͵ïn&!0ͬ^7n&ͬ^}nfnfn&ïnfnf~#fonn&͟^}/! Âbn&͟^}I!Âtn&͟^}c! Âfn&͟^}}! Ânsrn&R¯nfnf~#fo sa* n&!0ͬ^* 9n&ͬ^}!-* n&!Aͬ^* Fn&ͬ^}!+-* n&!aͬ^** fn&ͬ^}nfnf~#fo* #" 9n&ͬ^}v* #" 0n&R* #" n&!aͬ^}ʧ* #" an&Rû* #" An&R&! &s!M$ &* n&!0ͬ^* 9n&ͬ^}!-* n&!Aͬ^* Fn&ͬ^}!F-* n&!aͬ^E* fn&ͬ^}nfnf~#fo.n&_}nfnf~#fo* #" 9n&ͬ^}ʶ* #" 0n&R* #" n&!aͬ^}* #" an&R* #" An&R&! &n&}anfnf~#fo0nfRs!utnf^}pnf#ut+K* n&!0ͬ^ʎ* 7n&ͬ^}nfnf~#fo.n&_}nfnf~#fo* #" 0n&Rn}_anf!"& a!ut* #" nf snfsnf!!s#rnfnf~#fo* #" nusnf&R\n&Rʭnf#ut+nfnf#ut+~n&͟^ n&͟^}!i$ &!utUnf^snfnf~#fosnfa!.utnf|bnf+ut#Cnf)!~#fo* ~But|nfsnf^snfs#rnf* " Qnf|!$ &* #" a!"#! "#S#!"#!"$S$*#[#O]!$[*$[$O]!$[nf snfsnf!$s#r* 0n&R* #" .n&Rʑ!"#S#* xn&͟^®* Xn&͟^}!"#S#* #" !}l* n}2#L&͟^l*#&͟^}!"#* #" l.*#&R!"#l*#&!0ͬ^79*#&ͬ^}!^-*#&!Aͬ^]F*#&ͬ^}!…-*#&!aͬ^ʄf*#&ͬ^|! ,}ʕl9*#&ͬ^}ʳ0*#&R*#&!aͬ^}a*#&RA*#&R&! &|("$S$*#[#*$[$X}l!$;[Z\!$;[fZZ\*$[$O]Z\`!$[*#[#*$[$ͪY*$[$zX"$S$* #" *#|! ,}*#}2$!"#*##"#ͼ^}¶!*$[${Y"$S$É*#!$[$sÞ ! *#[#X}!$ &* #" nf snf!snf!$s#r.}2$!"$* n&!0ͬ^P* 9n&ͬ^}ʛ!$;[Z\!$;[fZ[* #" n&}o|g@]Z\\`!$[*$#"$2* En&͟^¸* en&͟^}ʘ * #" * n}2#+&͟^-*#&͟^}* #" !"#S#* n&!0ͬ^ * 9n&ͬ^}` ! *#[#ͪY* #" n&}o|g|(zX"#S#-*#&R *#[#x^"#S#*#[#*$|(ͅX"$*$} *$| !$;[Z\!$;[fZ!$[*$#"$ !$;[Z\!$;[Z!$[*$+"$Ø !$!$!W$%&'()*+,-./0123456789:;<=>?@ABCDa!utnfsnfsnf* s#r* n&!Aͬ^[!* Zn&ͬ^}!„!-* n&!aͬ^ʃ!* zn&ͬ^}!›!-* _n&͟^}!!-* n&!0ͬ^!* 9n&ͬ^}!nf#ut+* #" =!nf^squotes don't balance, or constant too longnot legal hexadecimal digitmissing string delimiternot legal operatorbad digit in fltg pt numbera!8*3P!V**(***4*,*63P !**.*0*23P!*3P! +3P!utnfͼ^}-%Í%nf#ut+%!9+nf)!)~#fonf)!8~#fonf)!V~#fonf)!t~#fonf)!~#fo3P %!^+3Panf!a+CQ"|! ,}%!!c+nf͔P!*V*(#"(+anf &!!+͔P!*Va!!+* _!: ! ͔P!!+! ! * R* ͔P !!+nf͔P*6#"6!)a!"*"Rڢ&*!!V*"^·&!"*"ͭ^}&!""nf+ut#|''*"#""nf#utns!"*"R'*!!V!""&a!*"RJ'*!!*"RV*͒b a! " * s!ut*nf* ^V!RTut|7(* |«'!*R* +" )!~#fo"nf snf* _!: ͷ@snf* _!: s#r! * )DM) !N!;^h(nfRutnf|h(!!+͔P!*V^Vnfut* !+;^nfRutnf*  n}o((nf+ut#Û(ó(nf* \n7butnf}(nfut)nf}q'nfa!Rutnf^F)nf! 4n.9Cb}e)nf+ut#! 0s%)nf^ʎ)nf! ! n&͟^}ʢ)nf! 1s))))))))* ****#*)*0*ILLEGALTEOFTERRORTOPERTKEYWDTNEWLTSOURCETIDENTTCHRCONTSTRCONTNCONTFILETMDEFTMARGTCONTRILLEGAL Pre Processor Statistics Files Read %i Total Lines %i Skipped %i Preprocessor %i Errors %i Macro Definitions %i Macro References %i Macro Arguments %i Token Output Macro Macro  Macro Type Tokens Define Reference Argument %- 7.7p %5i %5i %5i %5i r could not open file: %s ***FATAL ERROR*** ***** FATAL ERROR ***** %s line %s %b%s *** %s *** length error on linget/getl anf|! ,},*$ ^,,*$ )!5~#fo n&͟^},*$ )!6~#fo"5*5~#fo"5*5~#fo"5*$ )!6s#r*$ )!6~#fo*5~#foRڥ,*$ )!6~#fos#r*$ )!6s#r*$ +"$ #)!5s#r,*$ |,nf^V*$ R)!5~#fo!W^V*$ R)!5͕Wnfn&)!t^4#V 4a!utnf 3ut|_-*0#"0+*$ #"$ )!6nfs#r*$ )!5nf~#fos#r*$ )!6*5s#r*5*5s#r*5*5s#r*$ )!)6s#rnf!+*$ | .nf!nf n&͟^3.nf~#fo^}J.nfnf͙.nf n&Rr.nf!+J.nfn&R“.nf7-a!ut!utnf*5s#rnf n&Rc1nff1*2#"2+*$ )!)6s#r!utnf!*$ ^}ʭ/*$ R)!6~#fout~#fo|ʭ/*5nf~#fos#rnf~#foutnf n&R­/nfutͱ1}/nf}0nfn&ͦ^/nfn&)!~#fo(n=b}/!=6 &!utnf!nfn&)!^4#V 4nfn&R0nfn&)!~#fonu(n}o}0*$ )!)64~# 4foÛ0)n}o›0*$ )!)6~5^# 5V*$ )!)6~#fo^0*$ )!)6~#fo^0,n7butnf|! ,}1nfͱ1nf!  nf|! ,}05nf!+nf n&͟^*$ )!)6!~#fo͟^R`1!S6 &.a*.#".+*5*5s#r*5s#rnf snfͱ1anfn&R1nfn&)!V^4#V 4*5nf!Wnfn&R^2*5*5s#r*5nf~#fonfn&Wnfn&*5"5*5"5,! ͩ_!7*5ͭ^›2,! ͩ_))!Wg*5ͭ^}ʨ2!s6%a* #" nfxDnf snfͱ1ͿC* ,n}oʱ2* #" )n}o3!6 &a*$ }3*$ )!6~#fo~#fout*$ )!6~#fo~#foutnf n&Rʓ33nfutnfutS3nfnfnn7b3nf~#fonf~#fonfn&b5}(!}3nfl3*5Rut~#foutnf!bRN4÷4nf++++ut~#fout4nfnfnn7bʦ4nf~#fonf~#fonfn&b5}(!}ʴ4nf-4!anf 3ut}5nfnf* s#rs#ra*5s#r*5 s*5"5*$ |! ,}D5*5"5!Wg*5RY5!6%!"5anf|w5‹5ý5nf+ut#h5nf#utnf#utnn}oʺ5!z5!a!6%!*VɧbbWg7macro needs argumentswrong number of macro argumentsmacro table overflowbad punctuationmacro table overflowno macdump facility in this version a* )!& ~#fo|! ,}6!u>!Z?%!a* )!& ~#fo">nfxDnfsnf~#fo_n&}o|g">!*>_nf~#fo_n&}o|g">!AE*>͟^ʮ7*>}(!}ʹ7!">*>}O8*>+8!" D8!" D8* ">!" * )!& ~#fo">* )!& s#rD8*>" * )!& [>s#r!">D8D8@88AE7AB7OS7SNbnfu>!a* )!& ~#fo|! ,}ʂ8!!w?%u>!a* )!& ~#fo|! ,}ʽ8!nfxDnf4u>!a* )!& ~#fo|! ,}9*" #"" +!nfͦ9ut* )!& ^Vs#ru>!a* )!& ~#fo|! ,}m9*" #"" +!nfͦ9|! ,ut* )!& ^Vs#ru>!anfxD[ ! ͼ^}9!?%9* #" u>nf 3a*" }:!* )!& * )!& ~#fo|! ,s#ru>!a*" }L:*" +"" #g:* }_:* +" #g:!? &u>!a!? &nf8!a* )!& ~#fo|! ,}ʼ:!ͿC* n&">"*>ͦ^:<*>ͦ^}:!?%ë<[ ! ͼ^} ;!@%ë<* )![s#rnf<*>͟^}8;!>=;!"&|Q;!-@%nf s<*>Rz;!>!;^Æ;!>!$;^!>ͷ@">*>!>nf~#fonfn&Wnfn&*>!>s!>͘%* #" * _!: nf~#fonfn&W* _!: nfn&s* )DM) !N! !;^!ut!Rnf^}‡<Ù!a* )!& ~#fo|! ,}D>nf+ut#=nf~#fonf))nf~#foͮD}A>D>=nf))nf~#fo"X?*X?nfbaͿC*  n&Rʖ>!@ &(_) a@6b@ 7g@\8l@8r@9w@3:}@t:@8@?9@:@<illegal preprocessor keywordunimplemented preprocessor function#if's nested t-o-o deep#endif without #if#if implemented as #ifdef#include filename not enclose in quotes or brackets#include nested too deep#include filename not enclose in quotes or bracketscontlineundefelseendifififdefifndefincludedefineextraneous token in #-lineanf"E*E#"En}@@nf*ERRa!utnf|A#AÔAnf+ut#Anf)!t~#fonf~#fo~Bnfn&R‘Anfsnf^snfs#r!A!a nfR¸A!^V!Aͬ^AZnfͬ^}!A-^V!aͬ^Aznfͬ^}!B-_nf͟^}B!xB^V!0ͬ^X"QSQ*P^M!*Q[QX}M*Q[Qx^"QSQ!"P!Q"P*P|lN*P#"P*Q[Q*Q[Q>X"P*P*Q[Q{Y*Q[Q>X"QSQ*P+"P *Pʹ^}NN7*PWN0*Ps*Q[Q|MN*P#"P*P+"P! *Q[QY!0zXs! *Q[Q͵Y"QSQ*Q[Q|lN*P}N*P+"P-s*P#"PuO*P}N*P+"PIM!"P"P"P*Q&  EuOnOIMIIMiIMDIMdCMUCMuMOMoLXLxLCLcLSLsLPLp(LB(Lb!LF!LfLELeLGLgbN*P|! ,}P[P*PRҘO*P"P[P*PR"P*P|! ,}O*P+"P#}O*PEõO*P+"P#}O*P#"Pn&EO*P}P*P+"P#}P*PEO*P*P"PJ*P}*P*P-P*Q|anf"P!"P!"9Q "PJ~anf"P!"Pnf"P "PJ~anf"P!"Pnf"9Q "PJanfn&Qnf!ͽS"3RQnf!yS"3RQnf!ͽS"3R!R¯Qnf!yS"3R*3R!!LRQ!5RU!*VQQQAQajQWjQwUQRUQrbQ!*3RRR!R*3Ranf8Tillegal mode in fopen  an}2tS!!XX}wR!XÀR!Xx^"uSSwSnfS!!XX}ʳR!|(.}2sS*S!!XX}R!R!}2sS*S!!XX}R!R!}2sS*S!*S#SRRRbS!!qS͵W*qS}GS!!!qS͵W*qS}dS!kS*uS[wSanf"T!}o|g}2T!!T͵W*T}ʲS!÷S*T&anf"TnfS.}2TT.}2TT.}2TT!TUT TSSSbS! !T͵W*T}-T!2T*T&an}2T! !T͵W*T}_T!eTnfanf"T!!T͵W*T}ʔT!ÝTnfÝTillegal access mode in open anfR"Unf"Un}2U!!U͵W*U}! ,}yU*URnf n7bͅXY(/Y|ȯY*3Y Z!Yѯ>!DM!=xYBRtY Z7?LY}?=*ÀYz(x^>z(x^<x^͍YYäY͍YBYäYz͍YBYx^*_|:_g2Y˼˽!_6 Z!__!Z Z~'+!Z  o+*_|ʫaZ|@@2Y `_!Z?0'+( ÉZ!_@ga:YG:_Zx«a:YÚ`!Y2_*_|:_ʚ`Z}2Y2_!__w!_"Y__!Y!Y>#+8 '+0'+7?=(  [*Yq#"Y}`([ìZ:_($( !_~P8+~'w+~'w+~'w06+4!"_"_ _ _ l[!_ !__DM*_*_*_*_`iDM"_"_"_"_`i;[ͽ\`[;[ͽ\`f\;[ͽ\`[;[ͽ\`f\!_f\_Nwy#ͩ[ͽ\`[ͩ[ͽ\`ͩ[ͽ\`[ͩ[ͽ\`l[_Nwy#!A"_!"_"_"`]] ]]] ]] ] ]]]] ]]]] ]] ]]!!!__~O怹(< #>0>y(|(&z2?](x^ٯ!__wgoW_OGz͜]{͜]|͜]}͜]C_S_"_!_J:?]gaG7(|'g}'oz'W{'_y'Oß]!T\:_@ 2^GO!_2)j8N)j8C)j8< J852^ٯA(g_o#o_g {O HJ8:_x^!anfnf~N^~# E}8/G!|/g}/o{/_z/W,$ ~#fo s#rɷR kmRgR8]_R8YS^_N^_(AC>R^(/^ɯ|(+%|$| | |_( |_(go!,{=)_{=<$_{=,0_DMR0PYDM!:0 z!H_BK>=( B?8 b_Y_<|(}/o|/g#z(z/W{/_x}/o|/g#̓_9_ß_̓_Y_ß_|̓_z_}/o|/g#PYE_:_2_Ϳ`_!_B`DҬ`:`2` a0r a :``La0+6:`<`_^'w+:`2` >o+ɷ'w+#ɷ'w+# ~ #5 ,! ͷ]!OutnfRe,nfnfnfRZut^VnfX}ʪ,^VnfZut^VnfR,-^Vnfa},nfRut,nfRutê,nf#utsÿ,nfݲ!j!Kyj!Sn&:N-!Tn&:}y-!ut!Ͳd ͕+!-!Sn&:ʧ-!Tn&:¦-!Tn&:|! ,}ʿ-!Ͳdy-!C0E0L0S0X0a0i0n0r0x00000000000000000000000000001111 1 1 1111111111!1#1%1(1+1.1114171:1=1@1C1F1I1L1O1R1U1X1[1^1b1externstaticautoregistertypedefcharintfloatdoublelongshortunsignedstructuniongotoreturnsizeofbreakcontinueifelsefordowhileswitchcasedefaultentry.'";{}()[]:*&=+-/|<>%^!~?,->++--<<>><=>===!=&&||+=-=*=%=&=^=/=|=<<=>>=CP1: NO ERRORS ݲnf"d.!"n.!"p.!"x.!"z.!"|.!"t.!"v.nfut!Sn&:1!Tn&:|! ,}ʍ2nfsnf snf s!nfutnf}E2!nfnfA}V2nfut!nfYutnf}ʂ2nfut!Ͳdü1*-0utnfutnfnfR%4nfutnf++ut~#foutnf n&R"4!ut!ut^Vnf`}(3 4nf#ut3!ut!utnf`}^3à3nf#ut:3nfnf nfD^V!.nn}oʝ3!utN3nfR4nfR3!!yj4 nfD!.utnfnf s#r!ut3nf|"4!! yjâ2!ut!ut^Vnf`}^44nf#ut74 nfD!.utnf~#fo|—4!!yj4nf~#foutnf~#foutnf^Vs#r^VnfutN4[n.nf`}4!! yj!Dd!nfZdnf n&d!dnf snf̀5!"d.!ut!' !`!Ednf ݲ*b.utnf"b.*n.ut!Ͳdnfsnf snf s!nfut}N6!nfYutnf}6nfutnfsnf snf s!Ͳd5!Sn&:k6!Tn&:|! ,}ʎ6nfͩ6!ͲdN6nf"n.nf"b.!ݲ!Sn&R6!Tn&6nf̀5!66666!Sn&R7!Tn&è7nfG@nf͇8nfGnflGnfpEnf<nfp>nfLCnfq9nf͗DnfF7777{7m7_7Q7C757'77 7!Sn&R=8]!".!Ͳd]!Sn&:8!T n&:}58nfͲA=8!Ͳdnf!!yj>!Ͳd!Odnfdnfͩ6!@dnfd!Odnfdnf"t.nf"v.!ݲ*r.#"r.ut*r.#"r.ut*r.#"r.ut*t.ut*v.utnf"t.nf"v.!Odnfd!Ͳdnfͩ6!Ͳd!Sn&: ?!Tn&:|! ,}(?! !yj0?!Ͳd!Sn&:M?!Tn&:|! ,}i?! !yjq?!Ͳd!Odnfdnf!yjÿE!Ͳdnf!yj8F!Ͳdnfͩ6!Ͳd!Sn&:hF!Tn&:}ʼF!@dnfd!Odnfd!Ͳdnfͩ6!OdnfdF!Odnfd]!ݲ!Ͳd!Sn&:G!T n&:|! ,} G!H!yj*z.|! ,}BG!H!yj!*x.*r.#"r.s#r!Od*r.d!ݲ!Ͳd!Sn&:ʗG!Tn&:|! ,}ʰG!R!yj*v.|! ,}G!R!yj!!@d*v.d!ݲ!Ͳd!Sn&:H!Tn&:|! ,}/H!\!yj*t.|IH!\!yj!!@d*t.d!ݲnf~#fo|H!!%yj!nf ~#foR¶H!!4yj!nf GMutnfXHnfW}H!!ݲ nf~#foRhInf~#foX}WInf~#foR}|hInf~#fo nf~#foR¦I nfs#rnf GMnf~#foutnf~#foutnf~#foutnf|TJTJnfn&nfRJ!QJnf!On&Եnfutnf!uts#ræJnfn&ÍJnfutæJ!OnfutæJ͢JsJsJsJ`Jnfnfs#rnfJݲnf~#foutnfn&RKnfutJnfn&:4Knfn&:}!NK-nfn&:}oK!O!nfutnf^Vs#rnfn&R¨KnfutÃKnfn&R|Lnf~#foutnfn&}o|g}|Lnf utnfn&RLnfutKnfn&R|Lnfnf#utut~#fouts#rnfnf s#rJnf GMutnf`}L nfs#rnf^Vs#rnf^Vs#r;Mnf:Mnf~#fo};Mnfnfuts#rnfs#rnf ݲnf~#fo|sMnfs#r! nf~#foR¹Mnfnf~#fos#rnf~#fo.Nnfnf :Nut nf~#foR.Nnf`}Nnfut.N!(utnfs#rnf"ݲ!Out!f.BnͰfN!g.3nͰ}qN!"k!f.BnͰʈN!g.4nͰ}ʓN!"k*kR½N!!nfnfnf~#foututnf~#foututnf~#foutut!ut!nfP3O!nfO}dO!!yjnfs#rnfs#r!nf|PPnfn&nfR.P!utnfnfn&Ե!nfutut  nf:Nutnfut(nfX}Pnfs#r"Pnf^Vs#rnfPnfnfR^VDutnfut  nf:Nnf:ʠPnf~#fo|! ,}Pnfnf~#fonfDs#r!!}iWnfn&=Wnfnfnfs#rnfn&utnf}o|g}ʾQnf utnfn&RdQnfut?Qnfututnf~#foututnf ut nf :Nnfs#rnf}o|g}Q!nf}o|g}6R nf}o|g}#Rnfs#r!6Rnfs#r!nfs#rnf}o|g}zR@nf}o|g}tR!zR! nf}o|g}Rnfs#r@nf}o|g}ʸR!þR!Rnfs#r@nf}o|g}R!R!nfutut  nf:Nutnfut(nfX}RS!utnf^Vs#rnfnfutut!ut nfnf:Nut!nfutut nfnf:Nutnfs#r!nf n&R3T^V!nfututfWÓU*knfRYTnfs#r!kT*kutnf"knf#utn&ut!Onfutnfututnfs#r!ut^Vnf`}TdUnfutT!utnf ut   :NX}7U!utnf^V~#fo}|nfututTnfnfnfs#rnf"k!nf n&RU^V!nfututfWVnf#utn&ut!Onfutnfututnfs#r!ut^Vnf`}PVVnfut&V!utnf ut   :NX}ʙV!utnf^V~#fo`}Vnf^Vs#rnfutut=Vnfnfnfs#r!!O!nfututfWnfututfWfWbW!WVUSSkSRPP ݲnf~#fo|œWnf!͖!nf~#foY*.|! ,}W!*.R".nfXWnf~#fo:}bX!utnf`})X\XnfutXnfnf)*.)))!~.nf)~#fos#rX!nf*.)))!~.͖͌!nfut!utnf`}¿XXnf#utÛXnfnfnfnfnsïX!nfnf~#fos#rnfnf~#fos#rnfs#rnf~#foRYnfnf~#fos#rnfs#r!nf s#rnfs#rnfs#r!!!yj!YYY XXX WYݲ!Sn&:,Z!Tn&:+Z!Tn&:|! ,}DZ!ͲdY!Tn&R^Z]!Ts! ݲnfnfs#rnf!~#foR>[nf~#foutnfnf++ut~#fos#rnf~#fonfG[};[nf*`.~#foRZ!nf*b.~#foR[!nf*d.~#foR5[!!Z!ݲ!utnf`}}[[nfutV[nfnfnfnfnn}oʪ[!nfnfn&R[nfj[!ݲ!utnf`}\Q\nfut[nfnfn&R,\Q\nfnfnfnfns[nf`}x\Í\nfutQ\nfnfse\!ݲnfnfn&s#rnf~#foR*]!ut nf`}\$]nf#ut\nfnfRnfnfns\!nfnfnsnfnfnsnfnfnsnfnfnsnf~#foR®]!ô]!ݲnf)!k~#fout!nfyj!tmͽ!:ݲ*.| ^!*.#".+ut*.R)^!".[.nf:A^*.͖}N^!ͷ]nfm!T!Snsnfm!T!Tns!Sn&R^!ut!Tn&nfR^^nfutâ^nfm!Tnf!Unfnsø^!".!ݲnf n&:>_nf n&:}!\_-nf n&:}ʆ_nfs#rnf s#r`nfs#rnfs#rnfnf n&s#rnf n&R_nfnfs#r`nfnf ~#fos#r nfs#rnf^Vs#rnfnf s#rnfs#rnfJ ݲ*.|ʩ`nfnfnfnfdPnfR`*.d*.d*.d!".!nf~#fo|a!danfganf~#fo|1a!d!nfutnf}Vanfga^a!d!ݲnf~#fodnf GMutnfdnfdnf~#fo?c!d_cnf~#fodnf~#foRb!nf~#foZd"bnf~#fod_c!dnf:Jbnf:}ʲbnfut%?!utnf`}•bïbnf#utqbnf n&dÅbbnfut͌"nfdnfd_c! dnfut͌  "n&d_c! dnf~#fod_c!!yj_cXcc b %baa0c!ݲnfnfsnfut*.|c!Kd! d*j.dnfdnfnfZd*j.ut^V*j."j.nf!!Ayj!ݲnu j ݲnf|(" j j!ݲ!ut^Vnf`}“dédnfutidnfnfjÀd!ݲ*.|dnf|! ,}d!ͷ]!Ss!*.|®h!S͝is!T͝is!Sn&Rqe!ut!Tn&nfRIeaenfut e!Unf͝is6e!Unfs!Sn&Ähnf|! ,}ʕe!ͷ]!".!!ͷ]!utnf`}eenfutòenf!.!Unfnse!.s*kR)f!mͽ!.ͽ!mͽ!Rif*.ut!".!Md!d!!.Zdnf".d!R²f*.ut!".!Nd!Tn&d!Tn&!UZdnf".d!Rf*.ut!".!Ld!Tn&d!Tn&!UZdnf".!ut!Tn&nfR-gMgnfutgnf!.!Unfnsgnf`}tgÆgnfutMgnf!.sag*kRªg!mͽ!.ͽ!mͽd!Qd!Tn&d!Tn&!UZd!f.!Uns!g.!Uns!f.Bn}o~h!g.n&ut1nfRh!"k2nfR1h!"k5nfRFh!"k6nfR[h!"k0nfR~h!!!!dåh͡hgf lfeeze!Sn&*.#".+ut*.Rh!".[.*.Rh!".!Snfm!Tns!Tnfm!Tns!Sn&Rڑi!ut!Tn&nfR^iÑinfut5i!Unfnfm!TnfnsKi!Sn&ݲ*Ll|! ,}i*.!k!́"Ll*Ll|i!ͷ]*Ll|i!!yj!*Ll"Nl*Ll+"Ll#*NlR!knݲ*.|pj*l#"l+!Plnfns*lRpj*.!Pl!̈́"l*l|jj!ͷ]pj!"l!ݲ*.".!.ͽ!'qͽ!.ͽ!*qͽOnfa}j!Putnf)!l~#foan}ojnf)!l~#fon&utnf)!l~#fon}+knf)!l~#foͽ!-qͽ3k!1qͽ!Sn&zk!Tn&)!.~#foͽÛk!Tn&)!-~#foͽÛk!UͽÛkÛk͗klk lk lklkTk!Ͳd!Sn&:!Tn&H}׉!!T n&G}ʏ!Tn&!!ut=!ut=!ut=!ut=!ut=6  !Ͳd!Sn&:b!Tn&:|! ,}ʄ!N !yj!Ì!Ͳd; nf8|! ,}ʵ!!Sn&:Ҋ!Tn&:|! ,}!N !yj!;!Ͳdnf|!ut;  GMX};!utã nf8|! ,}d!nf|{!utã  GMX}ʣ!utnfs#rnfs#rnfutnfnf|(͖ nfs#rnfs#rnfs#r!r!Sn&Rr!Tn&R!Ͳd!Sn&:m!T n&G}،nf\|! ,}ʐ!!Sn&:ʭ!Tn&:|! ,}̌!N !yj!!%ut]!Ss!Tsr!Tn&M!utr!utr!utr!utr!utr!utr!utrrn>2& nf|®!Ͳd nf8|! ,}ʫ!' nfͭ|! ,}ԍ!!Sn&R'!Tn& !ut!ut]!Ͳd  GMutnfnf:gnf:}x!N ! yj bH|! ,}ʗ!nf !`!ut!utGnf`} bH|! ,}!nf !`!ut!ut!ut!ut!utGnfRsnfut  GMutnf`}ʖ!N !(yj!nf !` Iutnf`܏nfX}!ut!ut!utGnf:0nfX/nf`|! ,}O!N !)yj!nf !`nfRˆnfutÑ!ut!ut!utGnfRǐ!N !*yj!nf !`!ut!utGnf nf`!GC%:ÎxJ!ut nf`}wänfutPnf)nfnf) ~#fos#rd!jݲ!ut!Sn&Anf!U gZ|! ,}ʻ !U[!Id! Zd!ut!ut!utut!ut!ut!ut!ut!Ͳd!Sn&:{!Tn&:}ʆTø]!U [!Ss!Us!X !,yjΒ nf _a!ut! ut utnf!Un&͖!ut!ut!uta!ut! ut!Tn&!Uhcut!ut!ut!ut!uta!ut!ut!ut!Tn&!U  ͖\uta!Tn&R2!Ͳd nf͵r|!!Sn&: !Tn&:|! ,},!X !yj!/a8!!aZu ' ђő8!}  GMutnfXʠnf`}ʮ!ut!Ͳd!Sn&R®!Tn&Ï%nf:&nf:|! ,} !X !/yj!! !`!ut!ut Iutnf:_nf:|! ,}~!X !.yj!!Ͳd!Sn&Rʧ!X !-yj!nfutnf n&utR!nf utnfn&Rnfutߕnf#utut~#foutnf utnfn&RVnfut1nf#utn&ut!Onfutnf#utututnf ut!ut!utnf|ZZnf!UG[}Znf ~#fonfut   :Nnfutnf ut!utnfٷRutþnf|! ,}!X !0yj!nf:œnf:|! ,} !ut!ut utnfnf|(͖!ut!ut!ut!  6!ut\nf˷RD! ut!ut\nfɷR\!utnfutnfutnfut Jënf`ʬnfA}Ø!X !1yj!nf:ݘnf͖}nfut!ut!d nfJs|!!nf|ʈ  GMutnfa}m!X !2yj!!  6Ú!X !5yj!nfܙnfRut!ut Iutę!ut!Sn&:!T n&:|! ,}6!X !Eyj!ënfɷRT!X !3yj*n.ut!utut!Sn&:ʉ!Tn&:|! ,}ʫ!Ͳd!ut nfJs|! ,}͚!nf|[ ͟|! ,}!X !%yj!!ut nf`}3anfut nf) nf) ~#fos#r   GMutnfX}ʥnfut!utnf`}ț!ut!utnfɷR!ut!ut!utnfutnfut!ut!%  `^V*n."n.^Vnfutnfut!Sn&:ʉ!Tn&:ˆ!Tn&:|! ,}ʨ!X !Nyj!lnf:Ȝnf:} !d!d!d!d!d! Zd!dnfR0! !`!Gdnfdnfdnfdnf"n.!ut!ut Iutëîëͤ9BΔÉ!ut nf`}ޝ nfut÷nf)nfnf) ~#fos#r˝!aLݲnf|! ,}F ut!utnf~#fo|e!ut~nf GMutnf~#fo|!utönf GMutnfnf lWut|! ,}!nfnf   lWut|! ,}!nfRBnf|("N͈"nfRtnf|("À͈"nf:nf:}ʱ!?͈Ͷ?nf:ݟnf:}!?͈Ͷ?nfRMnf~#fo:<nf~#fo:}M!b !Ayjnfʣ!!ͮ?#"2͈͈ͥ"2!:?2??#"önfX}ߠnfͧ!ͮ?!!{?#"2nfX nf`}@nfͧ!ͮ?!!s?#"nfX~nfX}ʡnf|(͈"2!!:?#"2͈͈͹"2͈͈R"ê͈͈S"ê͈͈'"2͈͈ͬ"2!*?}! ,"ê͈"ö͈͈"nfut¤͈͈"nfut¤!!^"ê!!j"ê!!7"ê!!@"ê͈|[!͈}(!"ê͈|!‡-͈}(!"ênfutönfut¤!b !Ayj!2+%g<ĢzhK2  ȡ zVõnfXOnfX}`!utênfX}ʧnfutnfutnfutnfut¤êö!ut¤nfutnfX}9!utnf`}6nfutܤ*.)))!~.nf)nf) ~#fos#rÌnf:Vnf:}v*.)))!~.!CÌ*.)))!~.͈͖*.".!ݲnfbH|! ,}å!nf~#fo:nf~#fo}!!$nf!`nfs#rnfs#r!ݲ!ut!utnf~#fo:{nf ~#fo:}inf~#foR£!utinf~#fo:nf~#fo:nf~#fo:}!-nf~#fo:|! ,}(!}i!utnf GMutnf`[nfa}i!utnf|! ,}ʽnfnfnf`nfs#rnfs#r!nfutnfutnf~#foRnfnf͙͌͌Snfnfnf|(͌~#fo|(}|!ݲ!Tn&!ut!ut!ut!ut!ut!ut!ut!ut!ut!ut! !yj!ut!ut  kԨ!Ͳdnfs#rnfs#r nfs#rnf^Vs#rnf^Vs#r!àݲnf"!}o|g}2!!@*}!ũ*&ݲnf"nf .}2!.}2!.}2!!֪!! !@*};!@*&ݲn}2! !@*}m!snfݲnf"!!@*}ʢ!ënfëillegal access mode in open ݲ!"8nf"6.}25nf#utn}*8#"8+!!2@!"6!F!2@ݲnf"!F!@ݲnfut!ut "!H!@!E!@ݲnf">nf"*9&R!!ݲnf">nf"ݲnfN#F#N#F#^#V#^#Vnf}Q8q#p#q#p#s#r#s#r ^#V#~#fo}|{z|}٥ogz{٣_W|}ٵogz{ٳ_W|}٭ogz{٫_W JBB}/o|/g{/_z/W|!T],}?=) q#p#s#r`iɯgo!,] ] ]2]2(>j(/h|ȯ!DM!=߭BRۭ Z7?ó}?=*筯z(v>z(v<vu ͩ zͩvá2ӡܡê*?|:Wg27˼˽!W6s!WX!zr~'+!z  o+*W|{|@@28eF!z?0'+( !X@Ϳ:8G:?2x:7!72?*W|:?{}282?!GHw!X"9?F!B!;>#+8 '+0'+7?=(  x*9q#"9}`(m:?($( !C~P8+~'w+~'w+~'w06+4!"C"E ? ? ӯ!? !??DM*?*A*C*E`iDM"E"C"A"?`i%$sC%$sͰ%${C%${Ͱ!WͰ?Nwy#$s2$s${2${ӯ?Nwy#!A"W!"Y"["]{ws{ws{ssw{ws{wws{sw!!!?W~O怹(< #>0>y(|(&z2(vٯ!?@wgoW_OGz{|}C@SA"C!@J:ͿG7(|'g}'oz'W{'_y'O!T\:?@ ҙGO!@2)j8N)j8C)j8< J85ٯA(g_o#o_g {O HJ8:?v! n s}($}(}8{8 }8 {8go!,~#NFo& +t+u qpn&##9~#foDM^#V#{~#~# :W2W@!XD:p2ob0nb :q޳ͤ0+6:o<_͔:rͼ:o_:rͿͰq:o_:rͿ:o2?!@A6@:o2?:?2r2oOG:W2q2pOx8!786!GH6!_`6^'w+:r2r >o+ɷ'w+#ɷ'w+# ~ #5 ͔ ~P0+6͔{ 怳2?@!?@6 ~'w+~'w ~#fo s#rɷR kmRgR8]_R8YSkNk(AC>Rx(/vɯ|(+%|$| | |( |(go!,{=)ö{=<ÿ{=,˵DMR0PYDM!:0 z!BK>=( B?8 <|(}/o|/g#z(z/W{/_x}/o|/g#Ե::|}/o|/g#PY|/g}/o{/_z/W,$!d,6!66{;;;;Fݲnf~( > > #F|/g}/o{/_zxLc*|! ,}F*;E!!]"*|8@!^*" *+"#* R!n&c! *=Eͳf! *=Eͳfc*C#"C!B^snfc*C}*C+"C#!Bn&c!Cͧs!Cͧs!C~#foc!Cͧs!Cͧs!Cͧs!Cͧs*C[Cc! ".}2*&RnÃ*,}2R*#"ͧsc! N`cnf#utͧsnf+ut}•cnf#utn&*=Eͳfnf+ut}cnf#utn}2}(*&*=Eͳfcͧ*=Eͳfnf+ut}1canfqevznfpe}ʊ nfRnfcnf"!C!^!Cnf*)^*!Cnf!)^!C!3Xc!nfͳfnfYnf!5Xut|5!7^nfo\"R[**=Eͳf5cnfz!ʹ\c*=E!X!QD!GDnf;X !!}!QD!GDnf;X *C#"Cc!!;X!!;X!!nf;X!!;X!ʹ\ unexpected end of filewrcould not reopen ZST or ZSS file=???: ; %s :: line %s -- ERROR : %s file %s, line %s -- ERROR : %s fatal error before start of processing: %s ::: ABORTING ::: c!"tnf#utn} *t#"t*tc!R"vnf͉e}ʪnfn}2xnfn}2ynf$snf$snf$snf[xsnf[ysnfsnf_n}onf.snf#ut*v+"v}ªnfscnfR .F&*=Eͳf% nf!Cn&*=Eͳfc!nf!Cn&*=Eͳfnfcc!nfnfnfccnfn&je nfn&je}Q *7E#"7E!nfn&ce nfn&je} .A&*=Eͳf6 nfn&nfn&nfnf. &T cnfn& *7E+"7E!& *=E!nf;Xnfnf~#fo} *=E!nf~#fo;X& *=E!nfnf~#fo;X& nf~#foR ! !*=E!nfnf~#fo;X& *=E!nfnf~#fo;X& nfn&R nfN`!Cl`*=E!!C~#fo!C~#fo!C~#fo!C~#fo;X nf Q^"CSC*=E!!C~#fo!C~#fo;X& !z&  h C   | j Hc ccnfn&je^ nfn&je}ʰ !nfn&nfn&!nfn&Å !é !nfnf~#fo} *=E!nf~#fo;Xé *=E! nf~#fo;Xé nf~#foR6 !> !*=E!nf~#fo;Xé *=E!nf~#fo;Xé !&zé ͢ \      Hcz cø !@zc!wG!Gnnb *rGn&ce}ʸ!Gn&R*=E!i;X!wGn&R=!Gn&R1*=E!r;X=*=E!{;X!wGn&R¸!Gn&Ð*=E!;Xø*=E!;Xø*=E!;Xøø!zøͱsddddUHcÅc!Gn&je!Gn&je}Y!Gs!Gs!Gs!Gn&!Gs!GsB!Gs!GsB!Gs!Gn&RG!Gs!Gs!G~#fo}o|g}z!G~#fo}o|g}|!GsB!Gs!Gs!GsB!Gs!GsB!Gs!GsB!GsB!GsB!^B;$('&%}#Hc!Gn&RY!Gc!uGn&ce!wGn&ye}$!xG!Gns*rGn&R!wG!wG!Gnnb}!wGn!Gns!Gn&ce!vGn&ye}!*rG n&ce}$!~G!G~#foQ^_^^*rGn&R„!wGn&RN!z!Gn&"z!wG!wG!Gnnb}w!wGn}!GnsÍ!wGn&"z!uGn&R!Gn&R!wG!Gnnb}!wGn!Gn&!( *7E}*7E!Dn&!( !tG!͑ !uGn&ce!wGn&ye|! ,}*rGn&RC"z!Gn&ce`!vGn&ye}z!*rG n&ce}!G~#fo!z*=E!!G~#fo;X*=E!!G~#fo;XHcë*zc!G!wGn&"|n&R*|R2*=E!';X!"|!Gn&Rw!vGn&Re*=E!0;Xq*=E!9;X!"|!Gn&R!vGn&*=E!B;X*=E!L;X*=E!V;X!`zHcÿ!"|*|c!Gn}2~!Gn&Rʘ!Gn&ce;!Gn&ye}ʉ!G!xGns*rGn&R‰!G!wGn*~b}{*~Á!wGns}2~!G!x͑ !uGn&R!Gn&R*=E!{;X*~&!Gn&!_ *~&!( !Gn&R*~&!Gn&!_ ͻ c!G!^!Gͧs!Gn&ceQ!Gn&ce}\!!Gͧs(&R{!G(s!Gs#r!Gͧs&Ok!G!͏!Gk!Gn&ce!Gn&ce}!G!G@l`Lb[^ !G!G[^al`k!"CSC!Cͧs!G*C[C[^!Gsk!Gs#rkd  Hc>! . . .INEX%c+0%xHST%c0%xHAUAE%c0%xHSS%c0%xHCN %0xH,%0xH,%0xH,%0xHCN 0%xH,0%xHundefined 'where' encountered .STINEX +0%xHST 0%xHAUAE 0%xHSS 0%xHillegal STore destinationillegal STore destination -- EOBJ / LPOP .XBUIU .XISLS .XIULS .XISDBL .XIUDBL .XLSDBL extending unknown vtypeinvalid T typefloat/double shift countEXCHPUSHLDpointer size is zero -- scaling .SCL.%x .SCL.X 0%xH .XBUIU .XISLS .XIULS .XISDBL .XIUDBL .XLSDBL extending unknown vtypeLD POP HL LDINPOPLDINcͧ"(*(|­!*(RͧͧS"(_*(R. &*=Eͳf..&*=Eͳf*(R+cd*(eͧS}o|g"(*(R"(*(!Cs#rP!Cs#rP*=E! );XP*=E!);XP*=E!);XP*=E! );XP*=E!*);XP*=E!3);XP!Cs#rP!Cs#rP*(R ͧ}o|g"(*()!Cͧ}o|gs#r*(R"(!;)zPPL2PAEABOPUP~MNoAM`LNQILDOS7SNHc*(+"(#}dͧPc*=E!Q)"CE;Xcnfg*=E![);XÌ*=E!`)*7E!Dn&!Cn&;XÌ*=E!j)*7E!Dn&!Cn&;XÌ*=E!t)*7E!Dn&!Cn&;X*7E!DsÌ*=E!~)*7E!Dn&!Cn&;X*7E!DsÌ*=E!);XÌ*=E!);XÌÌ͈U~F}SRBA@Hc*=E!);Xc!C~#fo}.;&*=Eͳfͧ+! *=Eͳfͧ"(*(+"(#}ͧc!GD! ^!GDͧ͏!C~#fo}ʉͧ"(NR{ͧ"(*(}dͧ"(#R\.;&*=Eͳf*(̈́*(+! *=EͳfÃ*(̈́!!C~#fo}!)!GD.>&*=Eͳfͧ"(NR. &*=Eͳf͠*(̈́cc!QD!^!QDͧ͏!)!QDccͧ"(ͧ"("([GE*(RJ*("GE*7E}f*7E!Dn&!)( [(*7ER"7E*=E!)*(*(;Xc!"7Ec!tGn&jeʼ!tGn&je}l1*7ER!)zc!tGn&je!tGn&je} *7ER!)z*=E!);Xc*=E!**IE#"IE+*GE;X*=E!*;Xc*7E+"7ER҆*7E!Dn&!9*( c*7E}ʨ!!uGn&je}*7E!Dn&!=*( !tG!B*͑ *7E!Dsc!uGn&R!E*z!uGn&ce!tGn&ce}ʴͧ"(G*(R¬*7E}O*7E!Dn&!f*( ͧ"(ͧ"("([GE*(Rx*("GE*(R*7ER"7E*=E!k*!G*(*(;X !ô*(̈́!uGn&R*7E}*7E!Dn&!*( !*!tG. &T *7E#"7Ec!Gn&je! !Gn&je}!8 -!Gn&je}E !*z*7E!Dn&Ra !*z!uGn&R| *=E!*;X*7E+"7E!yGn}ʒ !!tG!*͑ !wGn&!*( c!C!^!C!͏*=E!*;X!Cc!C!"(!"(*(+"(#}P!*(!C*(!(nnb@!*(!C*(!(nnb*(}o|g"( *(||!*=E!*;X*=E!+;X*=E!+;XͧR™!*=E! +!C;X*=E!,+!C;X*=E!1+*IE;X!"GEͧcnf̈́*=E!D+*EE#"EE;XͧutCR#""("(*=E!T+*(*(;X!nf̈́*=E!f+;X*=E!m+*EE;Xc*=E!+;X!C!͏!C!Ccc!C!͏!C*?E!+!C;X*?E!+!C;Xcͧ"("!"(*?E"(#!"(*AE"(#!+^## " ""Hc""(*()!KE~#foR`#*(!+*(DM) !QE*(;X*()!KE[(s#r"(*(|w#!+^*()!KE[(~#fo}|*(RҰ#*(!+*(;X#*(!,;X*(+"(}#*(! ,;Xü#*(! ,;Xc!uGn&$!"(*?E"(6$!"(*AE"(6$!,^6$/$$ ##Hc$!zG*()!KE~#fo~#foRʋ$*(!,,*(DM) !QE!zG~#fo;X*()!KE!zG~#fos#r!wGn&RU%!Gn&Rʱ$!:,z!wGn&R$!GQ^"CSC*(!Z,!C~#fo!C~#fo;XR%!GN`!Cl`!vGn&R6%*(!i,!C~#fo!C~#fo!C~#fo!C~#fouL R%*(!,!C~#fo!C~#fouL`&!wGn&Ç%*(!,;XÛ%*(!,;XÛ%!,^Û%͔%m%^%Hc|%!Gn&@&*(!,!G;X!G~#fo}%*(!,!G~#fo;X*(!,;X`&*(!,!G~#fo;X`&*(!,!G~#fo;X`&!GQ^"CSC*(!,!C~#fo;X`&!,z`&Y&&% %%%Hc5&*()!KE!wGn&~#fo}|cͧ"(ú&!"(*?E")&!"(*AE")&!,^&&& &&Hcï&")*()!KE~#foR'*)!-*(DM) !QE*);X*()!KE[)s#rͧ")*()!KE[)~#fo}|*)|M'!&-^*)!B-;X!"(!"(!"(*)+")ͧ"( *(qe~*(pe}o|g'*(je}o|g"(*(}'*(}'*)!G-*(;X*(#"('*)!J-*(;X*("(C(*(|(*)!Q-;X*(})(*)!S-*(;X*("(C(*)!W-*(;X*("(!"(*("(<*(xec(*)ͨe}ʮ(*(}|(*)!\-;X*)!^-;X!"(!"(!"(*)}ʮ(*)!`-;X*)}k'MAINmain L.ON L.OFF L.GEN L.NOGEN L.PUSH L.POP bad p2xx control parmL$%+04X: JP .BRTR%c .BRFL%c .BLTR%c .BLFL%c JP NZ, JP Z,L$%+04X rem < TITLE SOURCE FILE:: PUSH .FCALL 0%xH,0%xH stack level -- XEOE stack level -- XRTN .FEXIT SZ$%+03x EQU 0%xH SUBTTL . <> POPPUSHLDattempt to take addr of constantPUSH .EXCALL %s,0%xH,0%xH PUSH .ALDnot EOBJ/LPOP/LOGICAL as 2nd boolean argBoolean, 2nd arg wrong size POP AF LDBOOL SUBTTL Function: GLOBAL ...cgo DW ...cgo *RELLIB CLIB GLOBAL %s %s: .FENTER SZ$%+03x CALL SW$%+03X DW L$%+04x,0%xH DW 0 SW$%+03X: .SWITCH GLOBAL GLOBAL %s %s EQU ST+0%xH bad place to set zeroes ORG %s+0%xH trying to zero memory with zero length ?? .ZERO 0%xH DB 0,0 bad place to store a constant ORG %s+0%xH non-numeric float/long constant DW 0%xH,0%xH DW 0%xH,0%xH,0%xH,0%xH DW 0%xH,0%xH DB DW size not implemented -- scon%s+0%xH ST+0%xH SS+0%xH 0%xH must store a constant with sconbad place to store a string ORG %s+0%xH invalid string store length DB %c',0%xH,'%c0%xH' DB c*G&qeʆ-*G&ce}ʛ-!*uG&ce}ʰ-!*wG&je}-!*G&je}9.*G&R-*~G[G*Gͦ^"G .*G*~G[G_*Gͦ^"G!tG!G!)^.}2G!$"9E!F"rGl1@./c*uG&jed.*wG&ye}y.!*G&ye}ʓ.!*rGn&je}.!*uG&ce¶.[G*wGb}!.-*rGn&ce}.!*G&je.*uG&ce}/*uG&Rx/*G}2xG*rGn&R@/[G*wGb}9/*wG/Y>ͮ2Y>V5Y>l1Y>,4Y>77Y>*rGn&=e-#>͙#>#>[#>͉#>##>#>#>!I^#>>====)=%=(='=&=Hc=Y>! J^Y>R>======y=Hc&>*rGn&>*7E!D[G*wGb}ʆ>*wGË>*Gs>*7E!D[wGs>*7E!D[Gs>*7E!Ds>!(J^>>>>>f>Hc>*C}?*=E!>J*7E*7E!Dn&*9E;X xLcnfR4?!iJnf~#fo!!d[";E*;E|b?!Jnf~#fo!J͖"=E|‰?!J!J!J͖"?E|¥?!J!J!J͖"AE|?!K*=E!+K;X*=E!CK;X*=E!PK;X*=E!VK;X*=E!dK;X*=E!nK;X*?E!uK;X*AE!zK;X!"G*G#"G^VR@*G)nf~#fo"G*G-n}oa@!K*Gn&S"G*G@!"C@!"G@*=E!K;X@*?E!K*G#"G)nf~#fo;X@!K@@@L@G@Dy@SHcþ@'@ͧ"9EFRB*9E ͖ f!WE"rG*9Eqe A,*9Epe},A=B*9EîA*9Ë́BgB*9E!BBB͠BB͊B-BM"B͂"B́&B"BͰ B͒B!K^BBAQADAPAKAJyAIrAEkAHdAG]ANVALOAMDAC=AO2A~2A}2AB2AA2A@2AS2ARHcãA@*=E!K;X*G}1B*=E!L;X*?E!L*=E!(L;X*AE!SL*=E!^L;X!*=Eͳf*C|B!!dL;X*Cʹ\?BI?L???D??STSS*MULAND?IN?ADNEGADDSUBDIV OR  LLT LGT MOD XORNOTCOMIPRDPRIPODPOSHLSHRLLELGELEQLNE?&&ST ?||ADDMULMOD XOR!SHL"DIV#SUB$?LD%?CA&?EE'?RT(?BK)?CN*AND+SHR,OR PUSHL2EXCHpointer size of zero -- unscale .UNS.%x .UNS.X 0%xH .inconsistent unary opunary op -- V2 not EDUM or ENULL PUSHLD .XDBLLS POP HL ST.HL .XDBLLS EXCH POP HL ST.HLST.DBL EXX EXCHST.HL LD DE,0%xH .$P .$PUSH ..can't ++ or -- a constant0%xH,EXCH POP HL .ALDAE 0%xH PUSH HL LDIN .XDBLLS POP BC ST.BC POP HL ST.HLLD .XDBLLS .EXCHcomparison op followed by invalid XEOE J L$%+04x,%c .comparison op followed by invalid XEOE . J L$%+04x,%c operator table error -- NUM op not handledbad 'spcl' field in op tablebad rsize in op table;-- stklvl %i, size %i, opcode number %i two filenames needed!!can't open input file.Z80couldn't use '.Z80' program output filecccccc.ZSTcouldn't use '.ZST' program output filecccccc.ZSScouldn't use '.ZSS' program output file*INCLUDE1 CMACROES.Z80 L@STAT DL 0 REL LIST NOTEXT L.NOGEN L.ON ST: SS: invalid command parameter L.GEN *RELLIB %s invalid command parametercode not implemented yet SUBTTL << static data segment >> DATA ; rel segment done cccccc.ZST SUBTTL << special static data segment >> cccccc.ZSS END CP2: NO ERRORS ;X*L$[f#"L*+"L[LRDMbk6 66?!Ffcnf}o|gut*mX}Lnf nfRM. &ͼL*oX}(Mnf*Xͳf"X|%M*X"mX6M*X#"X^s*X#"Xnfc!"X"wX"uX"qX"sX!"X"X"yX! "}X!"{X.}2Xc!"X[X.0bʤM9*Xb}M *Xmf*X&}o|g"X*X#"Xn}2XÎM*Xcnf"X*X#"Xn}NMnf*XRRc!"qX*X&}o|gP͊e}FN.}2X[X*X}o}2X*X&}o|g}lN.-nN. }2X*X&}o|g}2X&AR"X*X}ʝN.A}2X*{X|ʫN!"{X*{X͊e}ʿN!"{X*X&"X*Xa!Xl`[{X!@R}2X*X}O!XN``!XN`ͤc!Xl`*X*X&R.O*X}! ,}'O*X#"X*X#"X@*XR"X*X}! ,}SO!"X"X*X|hOhO*X"XnO!"X*{X*X"X*X}ʏO*X"X. }2X*X-}2X,}©OúOÕO*X&!X0sæO.}2X*X,}2X&ROPPO[X*X&!X*X&!X.n&e&}o|g0}o|gs[X*X&!X*X&!Xn&}o|g0}o|gsO.}2X[X*yXRiP*X"yX[X*yXR"X*wX|! ,}ʞP*X+"X#}ʞP*}XͼLÆP*X&ͼL*X|PP.0&ͼLP*X+"X#}P*X,}2X&!Xn&ͼLP!"X..&ͼL*X|2Q*{X}Q!*X#"X+}(!}2Q.0&ͼL*{X+"{XP*{X+"{X#}YQ*X,}2X&!Xn&ͼL2Q*X}Q.E&ͼL*X͹e}zQ.+|Q.-&ͼL*X|ʘQ*X}/o|/g#"X *Xxf0}o|gͼL *X̓f0}o|gͼL*wX}Q*X+"X#}Q*}XͼLQ!"Xc*XN`!Xl`Nc*XN`!Xl`*X&}o|g"X*X}RR!?*X͉eQRE*X͊e}]R.}2XNc*XN`!Xl`.}2XNc!"mX!"X*Xn}W*X%nb¿R*X#"X%nb}R*Xn&ͼL*X#"XWIM*X#"Xn}2X+*XbS-*Xb}S-*Xb"wX*X#"Xn}2X0*Xb3S.*Xb}NS*X&"}X*X#"Xn}2X͂M"yX.*X}ouS*X#"Xn}2X͂M"{XL*XbŠSl*Xb}ʣS!"X*X#"Xn}2X*X"X"X"X"X*X&ðV RWgRWQW*X~#fo"X*X"X*X"X*X~#fo"X!"X*{X|T!"{X*{X}T![X*{Xye})T*{X"XW*X~#fo"X!"X*XM"X*{X|UT!"{X*{X}lT![X*{Xye}wT*{X"XW!X"X*Xns!"X!"XW!"X!"XSX!"XSX!"uXT!"X!"XSX!"XSX!"uXT!"uX*X|T!"X*XRU*XQ^"XSXPU*X~#fo|("XSX*uX}PU!*X[Xj^"XSX*uXͨelU!*X[X_}ʈU*X[X͟f"XSX!"sX!X"X*X|V*X#"X*X[X*X[Xj^"X*X*X[Xͧ_*X[Xj^"XSX*X+"X *Xxe}U7*XU0*Xs*X[X|–UhV*X#"X*X+"X! *X[X_!0ͦ^s! *X[X_"XSX*X[X|V*sX}ʂV*X+"X-s*X#"XW*X}ʗV*X+"XT!"X"{X"yX*X&ͼLWWTITiTDTdTUTuTOToTXTxzTCzTc,TS,Ts,TP,TpSBSbSFSfSESeSGSgHcÅV*qX|! ,}ʵW[X*yXR?W*X"yX[X*yXR"X*wX|! ,}tW*X+"X#}tW*}XͼL\W*X+"X#}ʕW*X#"Xn&ͼLtW*wX}ʵW*X+"X#}ʵW*}XͼLÝW*X*X"XÛR*mX}W*mXW*X|cnf"X!"oX!"X "X͉R~cnf"X!"oXnf"X "X͉R~cnf"X!"oXnf"X "X͉Rcnfn&ÀYnf!d["YäYnf! ["YäYnf!d["Y!RVYnf! ["Y*Y!!YäY!Y^!ʹ\äY͝Y&YA&YaYWYwXRXrHcmY!*YRºY!Y*Ycnf[illegal mode in fopen  cn}2[!M^_}ZM^'ZM^͟f"[S[nfùZ!M^_}ZZ!|(.}2[Z!M^_}~Z!ÁZ!}2[Z!M^_}ʣZ!æZ!}2[Z!ZZZcZ7ZHcíZ!![ͺ]*[}Z!!![ͺ]*[} [![*[[[cnf"N\!}o|g}2L\!!J\ͺ]*J\}Y[!^[*M\&cnf"N\nfâ[.}2L\ú[.}2L\ú[.}2L\ú[!R\^ú[ͳ[[[|[Hc×[! !J\ͺ]*J\}[![*M\&cn}2M\! !J\ͺ]*J\}\! \nfcnf"N\!!J\ͺ]*J\};\!D\nfD\illegal access mode in open cn}2\!!\ͺ]*\}! ,}ʣ\*\&é\!cnf"]!F!]ͺ]cnfut!ut "]!H!]]!E!]ͺ]cnf"]nf"]n}2]!!]ͺ]*]}! ,}^]*]{]*]&Ru]!{]!cnf"]nf"]n}2]!!]ͺ]*]cnfN#F#N#F#^#V#^#Vnf}Q8q#p#q#p#s#r#s#rcnfMDnfx( T]6 x(cnfnfDMnfx( ^#V#~#fo}|{z|}٥ogz{٣_W|}ٵogz{ٳ_W|}٭ogz{٫_W JBB}/o|/g{/_z/W|!T],}?=)^ q#p#s#r`iɯgo!, "_ "_ "_^"_^(>ͱ^/_(/-_|ȯ!DM!=ʤ_BRҠ_ Z7?x_}?=*ì_z(͟f>z(͟f<͟f͹_:__͹_n__z͹_n_͟f:hc($( !lc~P8+~'w+~'w+~'w06+4!"lc"nc hc hc _!hc !hchcDM*hc*jc*lc*nc`iDM"nc"lc"jc"hc`iN`Ma͜cl`N`Ma͜c`N`Maͤcl`N`Maͤc`!c`hcNwy#9`Ma͜c[`9`Ma͜c9`Maͤc[`9`Maͤc_hcNwy#!A"c!"c"c"cͤaʠaÜaͤa aÜaͤaaʜaàaͤaaÜaͤaaʠaÜaͤaaàa!!!hcc~O怹(< #>0>y(|(&z2a(͟fٯ!hcicwgoW_OGz,b{,b|,b},bCicSjc"lc!icJ:adG7(|'g}'oz'W{'_y'O/b!T\:hc@ bGO!ic2)j8N)j8C)j8< J85bٯA(g_o#o_g {O HJ8:hc͟f! n s}($}(}8{8 }8 {8go!,~#NFo& /c+t+u qpn&##9~#foDM^#V#{~#~# :c2c@dic!ccD1d:c2c͋d0n͋d :cdd0+6:c<d_ͽd:cd:c_:cddܚd:c_:cd:c2hc!icjc6ic:c2hc:hc2c2cOG:c2c2cOxad!`cac6!pcqc6!cc6^'w+:c2c >o+ɷ'w+#ɷ'w+# ~ #5 ͽd ~Pe:e0+6ͽd{ 怳2hcic!hcic6 ~'w+~'w ~#fo s#rɷR kmRgR8]_R8YS͔eeN͔ee(AC>Re(/eɯ|(+%|$| | |e( |e(go!,{=)e{=<e{=,eDMR0PYDM!:0 z! fBK>=( B?8 &ff<|(}/o|/g#z(z/W{/_x}/o|/g#GfecfGffcf|Gf>f}/o|/g#PY f|/g}/o{/_z/W,$~# E}8/G!z(z/W{/_x}/o|/g#GfecfGff/* cromixcalls.h: Cromemco C I/O header file Copyright (c) 1980 by Cromemco, Inc., All Rights Reserved This file contains definitions for all Cromix system calls which can be made using the function _ccromix. */ #define SYSMAKDEV 0x00 /* make a device entry */ #define SYSMAKDIR 0x01 /* make a directory */ #define SYSGETDIR 0x02 /* get current directory name */ #define SYSSETDIR 0x03 /* change current directory */ #define SYSMOUNT 0x04 /* mount a file system */ #define SYSUNMOUNT 0x05 /* unmount file system */ #define SYSDELETE 0x06 /* delete file */ #define SYSCHKDEV 0x07 /* check for device driver */ #define SYSCREATE 0x08 /* create and open file */ #define SYSOPEN 0x09 /* open file */ #define SYSCHDUP 0x0A /* duplicate channel */ #define SYSCLOSE 0x0B /* close file */ #define SYSEXCHG 0x0C /* exchange data in files */ #define SYSTRUNC 0x0D /* truncate an open file */ #define SYSPIPE 0x0E /* create a pipe */ #define SYSREADY 0x0F /* test console ready */ #define SYSGETPOS 0x10 /* get file position */ #define SYSSETPOS 0x11 /* set file position */ #define SYSGETMODE 0x12 /* get device characteristics */ #define SYSSETMODE 0x13 /* set device characteristics */ #define SYSRDSEQ 0x14 /* read n bytes */ #define SYSWRSEQ 0x15 /* write n bytes */ #define SYSRDBYTE 0x16 /* read 1 byte */ #define SYSWRBYTE 0x17 /* write 1 byte */ #define SYSRDLINE 0x18 /* read a line */ #define SYSWRLINE 0x19 /* write a line */ #define SYSPRINTF 0x1B /* print formatted string */ #define SYSERROR 0x1C /* print error message */ #define SYSFSTAT 0x20 /* get file status ( inode ) */ #define SYSCSTAT 0x21 /* get channel status ( inode ) */ #define SYSFCHSTAT 0x22 /* change file status */ #define SYSCCHSTAT 0x23 /* change channel status */ #define SYSFLINK 0x24 /* link to file */ #define SYSCLINK 0x25 /* link to open channel */ #define SYSFACCESS 0x26 /* test file access */ #define SYSCACCESS 0x27 /* test channel access */ #define SYSGETDATE 0x30 /* get date */ #define SYSSETDATE 0x31 /* set date */ #define SYSGETTIME 0x32 /* get time */ #define SYSSETTIME 0x33 /* set time */ #define SYSGETUSER 0x34 /* get user id */ #define SYSSETUSER 0x35 /* set user id */ #define SYSGETGROUP 0x36 /* get group id */ #define SYSSETGROUP 0x37 /* set group id */ #define SYSRECEIVE 0x40 /* set up to receive a signal */ #define SYSSEND 0x41 /* send a signal */ #define SYSSLEEP 0x42 /* sleep for hl seconds */ #define SYSALARM 0x43 /* set alarm clock */ #define SYSPAUSE 0x44 /* pause for alarm clock */ #define SYSWAIT 0x45 /* wait for child process */ #define SYSEXIT 0x46 /* exit process ( close files ) */ #define SYSFSHELL 0x48 /* fork a shell process */ #define SYSSHELL 0x49 /* transfer to shell process */ #define SYSFORK 0x4A /* fork a process in same bank */ #define SYSFEXEC 0x4B /* fork and execute a program */ #define SYSEXEC 0x4C /* execute a program */ #define SYSMEMORY 0x50 /* allocate user memory */ #define SYSINDIRECT 0x51 /* indirect system call in a reg */ #define SYSUPDATE 0x52 /* update disk I/O buffers */ #define SYSMULT 0x53 /* multiply */ #define SYSDIVD 0x54 /* divide */ #define SYSVERSION 0x55 /* get system version # */ /* values for modes of SYSCREATE and SYSOPEN */ #define OP_READ 0x00 /* read only */ #define OP_WRITE 0x01 /* write only */ #define OP_RDWR 0x02 /* read and write (UPDATE) */ #define OP_APPEND 0x03 /* append only */ #define OP_XREAD 0x04 /* exclusive read only */ #define OP_XWRITE 0x05 /* exclusive write only */ #define OP_XRDWR 0x06 /* exclusive read and write */ #define OP_XAPPEND 0x07 /* exclusive append only */ #define OP_TRUNCF 0x80 /* truncate on create flag */ #define OP_CONDF 0x40 /* conditional create flag */ /* modes for SYSGETPOS and SYSSETPOS */ #define POS_BEGIN 0x00 #define POS_CURRENT 0x01 #define POS_END 0x02 /* error codes returned by cromix */ #define EREOF 0x04 *""222> 2*22[~ !"w!$=]!6# p#6#> w#Q"w!2,a ° 2*"*w""2z:Gʰ !F#N#~ ´:!!y~#·!~6L#~6I#~6B: : !!"wp: ! _^#V4,:Ĕ:$E[I0IAE:I)O&*w-Z>w#p#ky+>p̈́wxʀwy:ҟ0ڟOxGÇx+N#L,>.° .° *w4 L*w44,>ð *wxxʰ y$<*w6#w#w#6#w#w# yͥ >&:7>7@*w6#6 #w#&xQ2 X h\> y6 #=qy.&xڐʝÑ"wyɯ**u ʴ~OA:++:@7lDM:^+V:+++++)#x+)y)@"{ 8+~+ng~w*+r+s w@T"++w+w+p+q+r+s+ 7*}x*"++++::͠ >@w ҢxĠ:w+ :)@l*!@"DM+:p+q+r+s+~ wF#~#f:>/O ê++++:w+:w7_ > ,:!o>g6 !~6Gʌ#~ sex+#ʄ~y2J͚>*,=> ,2v> ,:vʚ<2v> ,~,#ùG~,+è~#  ` / +!U@L CEROH° 2:2,,yjw,2**u ʚ~ċ~/_Lͥ~wÁͥ~w+++r+s,:̟~+<2͛!͹͚Unsatisfied external request(s)y͑ CBɯ xG 7xx!~w#42B!">2*!"CCy  C!͛͹͛**u 1 ~@ҕ  ͚ÚSymbol Value Defined Reference"C"C>ͦ~w++r+sCͥ~!S ͛͹*>2v ![ ͹!y~# @,>:,  ͛!@ ͹*d ͚!+ ͹*d ͛2*u |~e L:# d ͨɯ2*u ʵ~@ҘĞ Â:6 ̀ ͨɯ2*u ~@ û:G æ9~++~2+V+^+++V+^ ~+~/_~,# <2͚!X ͹͛<2͛!i ͹1 <2͛!y ͹1 Common block(s)Entry point(s)External reference(s)27` ʗ 2̀ ͨ 7`  u » ~ ~͚– Õ: ͨͨ÷  ÷ ͨͨè û +V+^:v Length of Data areaLength of ProgramModule ofr ~ 7+++~+ng~|}!~#4Š Z6+w{ xG “ ɯ2{ ڭ ͏ 7͑ ʼ  G͑   ͑  ͑ !w 4#6 _ ͏ w# ! "O:G<2͏ X͏ P:F )0,) 5 0,2 |K }GV x0:a ,PX i |g >:, '"!! !| :O ~,A> yڽ > CBy :GW> !F# W> _x GxG : "w*u ڑ "*$u *^#V+*{ʑ :<2͊ ͊ xT ~# G * "* "*^#V{ʁ r+s*u ʁ f *w#w}_|W! >?,͹͚Out of memor! Ô Command erro! Ô File read erro! Ô File not foun! Ô Can't enter fil! Ô Module name/number not found in fil!7 Ô First module in Until clause after las!e Ô Library write erro>2y/< >2y< K_ ͑ :ĵ Kɯ2: /K< 2/!"! w#6 w: <2_!Jw:ʊ: _<2!~*w#"* *~#":  !~#§ »!w#!y w#y2:͞ y  2>@ͦɯ2go":/G:d2pk^X͇p͇2G1 ͇(/:2x2#"-:<222:+<2!"*"##"͞ <<y<?**s#r2w#wol:=222>@ͦ<#~G#N#~—>@2ͦ>2+~ *~Ÿ±:+++~++ñ#N+>+~>:<2 2:G~x:y !w#7*"w#w**u ~~\w/_:J|2FORLIB REL!v!m0x7!ax!0 > >2)7( E!0:> >2)+( )!(-+(DM!B)M7!!0x7) 0*0 H " X"ReAا=(> ͓> ͓͓>(͓[`ǧR{>)Óȗ2h0̈́͝:*7!e??2~((~(>>2͞|G7#!g!g~~6 7ɧ456FNV^fnpqrstuvw~ !"#)*+9#!M!*+""b"j"`"hgo""222!#"d"\"f"^""!"~"|""2Q2/÷?No Start Address?Loading Error?Nothing Loaded?Out of memory!mä!ð!|ð!ix2*!~4!)x>2O2͡2 ڭ,ʂ ʂ/­͂IMG@RSUXYE4 ( ͸æO?2H2G:2͂:>`ʭt xʭҭ͂r͂": 2!~wʫ: ʩ ~w½: 2× 2*|pyȷ~@"j͝ *|*~ ::!ͪ G@x $óԪ  LINK version 03.37 ?Command Error~#x~# ʂ ʂ`ڜ{Ҝ +!~G#~ ·éx+#~ý:O>* > :! o>g6 7 ­2  !. ͂͞:­GOŸ:QŸm`"~""|"*\*d"\"͝*d͖*fBK*d*fͩ"2PG<2QY͖z6#z•ګ:Q«Omi}ʹ `͖!͖iy}͖yBKͩO͍}! s#r!| s#r! s#r͆ʹ I4! s#r}! Is#r\iy͍!| ~#fo!\ci}͖ѵ!dc`}͖i}_|W>2P*|*~͖*\*h:Qʹ *\*h͖W{_*\#"f"^":G͂O0 ))))o>gy +%Overlaying area<ADataProgramO!%x!8 ~#fox!2xS`ʹ ҝ͆ʹ ʝʹ ڮ}<ʨ=I yry7åyM7,`#ʹ ڝ!ió> _! >?~#!!ä Not Found> > >2Z n<>2:ZV_<2Z!~ <ʛ! w#u! w( |![ʰ͸!x*DMæ[Begin execution]:ʧ:@*b*jʹ @~`~%@w+++>GO ~+>6 =*b͖! ͇ 2ͩ *b͖~O_͖+++y9++::2ͩ *>[( ͆!" >G~#mڏ~@ʏ+^+Vs#r( *`*hʹ 2S͹:Sx/Gy/O~w#~wÛ͆:Q͆ʹ | >]>2*":/{Ë  x :$MEMRY*!w#6 T ~@T +^+V"!i xw2!z ä?Start symbol - - undefined  ~#Œ ý REL7:` p :Qp 22 *b*jʹ ʃ ~G ~`p /2:`p ~ o ~> >/+^+V+~ /~@4 : <2 >*2~ G ! xJ ( ~\ +^+V( :?2~w <</O : k :  ! xk Undefined Global(s) |}!76S#6Y#6MͶ>*b*jʹ  ~O~@ +^+Vͦ> ^+~^ > ^= >~ <</O 4:M )0) < 09 |R }[ a 0:!8 ~#fox`( ͆( RQUEST͝ × *b:R *jʹ ~_~@ +++~# ͖*j͖BKͼ"jç ͖+++ç 2P2R2U:Q̝go"V""2"<2T:Q*\*fč*^*h͍*Ep? W 3 H ͯ 3 !# ~#foBK#:T=ʌ :ƒ *\|x ҃ } }҃ #Ep#:ƒ *^|ʡ ҃ ¦ }҃ #à :S= :P vw+p+q+p+q#BW ++st :7> ͂[?@2 t x    " ͂ > 3 6 #=+ x2 y.t xN [ ͂O p !~ p 6R#6E#6Ly͂[Ғ 0ڒ AҎ :Ғ w [ʎ ]ʎ @ʎ \ʎ ^ʎ _ʎ O:P :T2SBK|/ ~_q#Vp / :S= >@w+r+s+@j:T2Sr+s/ >3/o/g b/ ~@wq+p*>2S}| "*\ʹ / !xw>// ~W+++~+~%2nd COMMON Larger /*" |2*\ʹ ͝/ > ~@w/ 7:P>:T=>G:S=>@w,BKԲ~@:Pr~@w+~_q+ :S=>Cw+p+q+r+s/ !xw/ %Mult. Def. Global ~@*+"PY>,BKů~+N+F@ :P z/ [/ C|/ :P  r#s/ :P |/  z/ #:S=4>Bw+r+s+r+s/ *#"!~#4\>6+wMxG eɯ2SMa7cʍcڦcc!w¼4#6 _aw#!"O<2SaXaPO! N#F 2:P!2/ qB! F C(#:Pj͝"*>2*^ʹ / *Ö>ڛ+^+V"/ :S=<2T=/ :P/ * / PY7͟*~͖"~!͖*"*f!"V}2<2T/ :á*b*j|G}C~O00A+++/+~7 y/O Ox_͖Ow#l2R+w+w+w+ sw+w+"j7+@t :Pȯ2P*\*f͖DM*V "V* "*^͖BK"f͞"^͆"~"*`"X͵ *h|}~_!^#V*X"h !͹q#p͹^q#Vp{1͹#~@+^+Vp{r#s^#V{_r+s1͹~O@wy@+Ns+Fr{1~2 ͹*X: w+r+s+p+q+"X~+V+^+F+N+*~@ DM>>>><2=O!f!Z ^#V ͖y-y?4}ʹ ?4Ty!\A!d Ms#rP^#VF͖ڡʡ͝!zp#l*d!lN#F#~#fo!t^#V  !h~#foʹ !f^q#Vp!^~s#_~rW͖}:U#ʹ ԩܞ{_!z6)`i{x!z# r*r*b͖"j*l*d"\!\yT!d ^#V c F#fhn͖!\^#V ^#V͖}y!\ ^#V^#V͖!l s#r Gyx£!ts#r#x|W}_͖x2U*h 2Uyoxg*V"V*"*PYʹ A":Ta=W*V!"V*V*fʹ WWEŠ*{OzG*d͖*|DM7xw# Þ +xg~+ ïxw+ ü:S7=#O:P7}͖`?Intersecting mO}`͖*\ʹ <2:S?OK:P`ʹ ͆ʹ !i>,*&M^#Vxyˆͧó!F#~#>(ͧ>)ó:S}͖( Start = External Public = #oœo2!:oʹ`͆ y§*|*~ʹ ܃*d͎i }iʹ *ʹ Ԏyi*ʹ Ԏáʹ /*ʹ (![3!U!axx!ix2O͂͡Y1belowaboveOrigin loader memory, move anyway(Y or N)?͆`ʹ ʪʹ ܾ !ʹ ܾy:Q*O`͆ʹ y*!~cʹ !9;;;;;;ʹ ?ʹ ͖zC% 7F9FCʹ }ʹ }h͖zw7*\"*^"*d*͖£CKP*͖"!͞*\͖BK*Ğ*f*͖(O*\͖*f͞"\*f*͖BK*f͞*͖"͞ÏPY*\͖"\*f͖"f*f*͖`BK*f*\Ğ"\*~*|"~"|*"f*"d !7~R#~E#~L:ʣw+£COMHEX.n.<ʈ2Z:Qo*~*|ʹ !~ ~?yO:Q?>:^Gͫ*ͦ>ͫͫ>^ ͆`͖{}i}O|G{Ozm>pywO>:^yͫͦYͫ~#ͫ ’ͫX|ͫ}ͼͼGa ^> ^> ^*|ʹ `ʹ >^*}^|^4H:Q ͆yOo 4H:Zx.<ʈ`͖سȯ^z=}i͖z~#^R!:Z_w{Cromemco C, preliminary version 02.00 11-24-80 Notes: 1. The file cdosclib.rel is identical to the clib.rel included with preliminary releases of C version 00.10; none of the bugs have yet been fixed in this file. 2. The function _ccdos is misspelled in the file cdosclib.rel; it is spelled ccdos, so call it with that name. Also, the function ccdos expects the registers in the union _regs (declared in the file z80regs.h) to be in a different order than does the function _ccromix in the file clib.rel. If you want to use ccdos, redefine the _regs union as follows: struct _rb { char _rf, _ra, _rc, _rb, _re, _rd, _rl, _rh; } ; struct _rw { unsigned _raf, _rbc, _rde, _rhl; } ; static union _regs { struct _rb _rbytes ; struct _rw _rwords ; } _r ; Neither of these glitches will be present in the official release. KNOWN C BUGS version 02.00 The following bugs are known to exist in the Cromemco C compiler or runtime library.  1. An attempt to initialize an auto array within a function (including main () )draws the error message "Bad place to store a string" from CP2. Cromemco C permits the initialization of auto aggregates, unlike the reference C. 2. C issues an incorrect syntax error for the following legal declaration: static char s1[] = "string1", char s2[] = "string2";  3. The function _ccdos in the library file cdosclib.rel is incorrectly spelled as ccdos. It can be called with the name ccdos. Also, ccdos expects a slightly different declaration of the union _regs than does _ccromix: the order of the register pairs de and hl must be switched so that the hl register pair is last in the structure. 4. There is not yet a check to prevent the cpu stack and   the auto space from crashing into each other. 5. sizeof(structuretag) hangs cp1. So does sizeof(struct structuretag). 6. Relational expressions involving floats usually don't yield correct values. 7. A float constant of the form .fractionpart will confuse the compiler. 8. The creat function does not yet use the protection mode argument. 9. One cannot execute concurrent C compiles in the same directory. 10. Currently, all I/O functions use file numbers. In the official release I/O functions defined in the reference text to expect or return a pointer to a FILE structure will do so. Until then, don't write code in which this will not be transparent; i.e., declare such arguments as FILE, not int, and use the FILE definition from stdio.h. 11. Currently, char values are not automatically promoted to int during expression evaluation. This will cause problems whenever a program performs a comparison which expects a char expression to have a sign. The official release will perform the conversion as per the reference language. /* stdio.h: Cromemco C I/O header file Copyright (c) 1980 by Cromemco, Inc., All Rights Reserved This version of stdio.h is for inclusion in programs to be run under the Cromix operating system */ /***** I/O related definitions *****/ #define EOF (-1) #define ERR (-1) #define FILE int #define NULL 0 #define PMODE 0 /* temporarily defined 0 */ #define READ 0 #define WRITE 1 #define UPDATE 2 #define STDIN 0 #define STDOUT 1 #define STDERR 2 #define stdin 0 #define stdout 1 #define stderr 2 #define backc(fn,x) ungetc(fn,x) #define getchar(x) getc(stdin) #define putchar(x) putc(x,stdout) #define ungetchar(x) ungetc(stdin,x) /* commonly used macros; caution: these macros will cause unexpected results when passed a pre- or post-decremented character expression */ #define isdigit(c) ( '0'<=(c) && (c)<='9' ) #define isupper(c) ( 'A'<=(c) && (c)<='Z' ) #define islower(c) ( 'a'<=(c) && (c)<='z' ) #define isalpha(c) ( isupper(c) || islower(c) ) #define isspace(c) ( (c) == ' ' || (c) == '\n' || \ (c) == '\r' || (c) == '\t' ) #define toupper(c) ( islower(c) ? (c) & 0x5f : (c) ) #define tolower(c) ( isupper(c) ? (c) | 0x20 : (c) ) #define min(a,b) ( (a) < (b) ? (a) : (b) ) #define max(a,b) ( (a) > (b) ? (a) : (b) ) extern FILE fopen() ; extern long lseek() ; /* z80regs.h: Cromemco C I/O header file Copyright (c) 1980 by Cromemco, Inc., All Rights Reserved This header file contains the structure and structure field definitions which permit convenient data transfer between user programs and the function _ccromix */ /***** declaration of the register structures *****/ struct _rb { char _rf, _ra, _rc, _rb, _rl, _rh, _re, _rd; } ; struct _rw { unsigned _raf, _rbc, _rhl, _rde; } ; struct _rl { long _rbcaf, _rdehl; } ; /***** now the union declaration and data definition *****/ static union _regs { struct _rb _rbytes ; struct _rw _rwords ; struct _rl _rlongs ; } _r ; #define rf _r._rbytes._rf #define ra _r._rbytes._ra #define rc _r._rbytes._rc #define rb _r._rbytes._rb #define rl _r._rbytes._rl #define rh _r._rbytes._rh #define re _r._rbytes._re #define rd _r._rbytes._rd #define raf _r._rwords._raf #define rbc _r._rwords._rbc #define rhl _r._rwords._rhl #define rde _r._rwords._rde #define rbcaf _r._rlongs._rbcaf #define rdehl _r._rlongs._rdehl  0 1 rewa re-- re-- system Aug-05 10:05 966files.txt 14,336 1 rewa re-- re-- system Jan-26 1981 asmb.com 1,002 1 rewa re-- re-- system Nov-24 1980 calls.c 127 1 rewa re-- re-- system Nov-24 1980 cc.cmd 1,236 1 rewa re-- re-- system Nov-24 1980 cdcalls.c 1,223 1 rewa re-- re-- system Nov-24 1980 cdoscalls.h 11,136 1 rewa re-- re-- system Nov-24 1980 cdosclib.rel 12,928 1 rewa re-- re-- system Nov-24 1980 clib.rel 7,737 1 rewa re-- re-- system Nov-24 1980 clist.bin 1,673 1 rewa re-- re-- system Nov-24 1980 clist.c 22,309 1 rewa re-- re-- system Nov-24 1980 cmacroes.z80 25,088 1 rewa re-- re-- system Nov-24 1980 cp0.bin 46,592 1 rewa re-- re-- system Nov-24 1980 cp1.bin 26,112 1 rewa re-- re-- system Nov-24 1980 cp2.bin 4,061 1 rewa re-- re-- system Nov-24 1980 cromixcalls.h 5,120 1 rewa re-- re-- system Nov-24 1980 lib.com 8,704 1 rewa re-- re-- system Nov-24 1980 link.com 3,437 1 rewa re-- re-- system Nov-24 1980 readme 1,354 1 rewa re-- re-- system Nov-24 1980 stdio.h 1,066 1 rewa re-- re-- system Nov-24 1980 z80regs.h   Pvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('      P~}|{zyxw     P          Pfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!       P~}|{zyxwvutsrqponmlkjihg     P    ! ! " PVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!      " # # $ $ % P~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXW% & & ' ' P( ( ) ) * PFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!      * + + , , - P~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHG- . . / / P0 0 1 1 2 P6543210/.-,+*)('&%$#"!      2 3 3 4 4 5 P~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9875 6 6 7 7 P8 8 9 9 : P&%$#"!      : ; ; < < = Pvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('= > > ? ? P~}|{zyxw@ @ A A B P     B C C D D E Pfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! E F F G G P~}|{zyxwvutsrqponmlkjihgH H I I J P      J K K L L