@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `8  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D8:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D8:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED697 FREE SECTORS COPYING---D8:COPY32.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 162ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u8<<  B JKIHiDiELV`L8 8 BLV`LxT}8t8l Lu8hihiHHȱȱL8c !#3`Lu8JJJJ`H 8h`HU}ȩh Q8L8 Z8L8 8L8 8L8 8L8S:@9E:E9H '9 H9I9 8 '9h)0ICV}9D9L8 L :::: :Lr:::IEL[::i:iIIL[:`:i::iX}::L:`L{:w:w: C`L:L: D8:MEM.SAV: 8| 9 '9`L:L: D:DUP.SYS:̩ 8Y} x:ɀL: '9`88 |9Y:X: '9L); D8:DUP.SYS; 8::88 9 '98? :`;WL`; 9Z}Ln; ` :Y;Y;L;L;)} Setting Up ATARI 130XE Ram Disk; 9L; ; -9  [} L;D8:; :9 :Y;L } The stack layout when running the body of this function will be as follows: Each line is a byte. ^ +}-------+ | | ... | higher | i^ | high byte of 'i' | i\ | low byte of 'i' | j^ | high byte of 'j' | j\ | lo}w byte of 'j' | argc^ | arg count for | argc\ | this function (typically 2, in this example) | k^ | high byte of }'k' | k\ | low byte of 'k' | ch | ch | vec[9]| last byte of 'vec' lower .... | | vec[0]| first (zeroth) byte }of 'vec' v +-------+ The virtual stack pointer SP (#x80) will be pointing at the 'top' (lowest address) of the stack, }ie at vec[0] in this example. Locals are allocated on the stack in order of appearance; most recently mentioned ones are }nearest the top of stack. Note that args are always passed as 16 bits; if i and j in that example were chars, the stack w}ould look the same. The arg count is used by the runtime code that maintains stack frames, to know how much stuff to pop }when exiting a function. DON'T BASH IT, or all kinds of hell will break loose. You can, however, use it to compute where }args are on the stack, in the case of functions with variable numbers of args. For instance: this is the source to the li}brary routine fprintf. fprintf(argc) int argc; { int dummy[1]; int * nxtarg; nxtarg = &argc + dummy[1] - 1; } return(_pfguts(*nxtarg, --nxtarg)); } The trick there is the reference to dummy[1]. Since dummy's only one long, tha}t picks the word after dummy, ie the real arg count. nxtarg then becomes the address of the real first arg. Arg counts a}re expected to show up in the Y register at function entry. Routines that are hand-coded in assembly language can just use } that directly, rather than go thru the C function entry protocol. Storage layout: Nothing suprising here. Ints and }pointers are 16 bits, chars are 8. The standard 6502 low/high order is used for everything. Data declarations are mixed w}ith the code, as there's no reason to put it in any particular place on a 6502. [What else?] The most effective wa}y to get familiar with how this all works is probably to just dive in and start compiling things, and see what gets generat}ed. amiliar with how this all works is probably to just dive in and start compiling things, and see what gets generat -*- Text -*- Getting started using CC65. CC65, RA65, LINK65, and LIBR65, along with the assorted runtime libraries }and things, comprise everything you should need to compile and run C programs on your Atari 8-bit computer. Basically, th}e sequence of things you do to compile a and run a C program is as follows: 1: Use CC65 to compile your C source into as}sembler language 2: Use RA65 assemble the results into an object file 3: Use LINK65 to link your object file with the C r}untime stuff, to produce an executable. In the CC65 distribution, you should find the canonical test program, hello.}c. You should also find the C runtime stuff, runtime.obj and c.olb. Here's what you do to compile up hello.c and run it. } Put hello.c, runtime.obj, and c.olb on drive 1 of your system, or, if you're using something like Spartados that supports }default devices, put those files on whatever device you're using as a default. Run CC65.COM. When it starts, it will pro}mpt with CC65>. Type the line -V HELLO.C at the prompt and hit return. CC65 will compile hello.c, producing hello.m}65. Run RA65.COM. When it starts, it will prompt with RA65>. Type the line HELLO.M65 at the prompt and hit return.} RA65 will assemble hello.m65, producing hello.obj. At this point you can delete hello.m65 if you want. Run LINK65.CO}M. When it starts, it will prompt with LINK65>. Type the line -O HELLO.COM RUNTIME.OBJ HELLO.OBJ C.OLB at the prompt }and hit return. Link65 will link hello.obj with the C runtime stuff, and produce an executable program called hello.com. } You're done! You can now run hello.com, to see the canonical message. The procedures for building bigger programs are }much the same. If you've got multiple source files, you'll compile and assemble each of them separately, then feed all of }them to LINK65, where you typed HELLO.OBJ in the example above. See the link65.doc for more details. ly, then feed all of h-*- Text -*- Libr-65 preliminary doc Libr65 is the object library maintenance utility part of the CC65 package.} Its mission in life is to build, maintain, list etc libraries of object modules. Object libraries are useful when bui}lding things like C programs, as there are all kinds of functions that want to be optionally linked in, and keeping track o}f them all by hand is too big a pain to be worthwhile. See the LINK65 doc for a [brief] explanation of how the linker uses} object files and libraries. Libr65 expects a command line containing a command, the name of a library file, and sometim}es names of object files. Libr65 commands: A Add file(s) to library, replacing any old members with the same nam}e. D Delete member(s) from library L List library contents V Print Libr65 version. As with all the other progr}ams in the CC65 family, case doesn't matter; 'a' is treated the same as 'A'. Example command lines: Libr65 a c.olb fo}o.obj ... adds or replaces FOO.OBJ in C.OLB Libr65 l c.olb ... lists what's in c.olb On DOS's that don't hack c}ommand lines, just start it up and it will prompt, as LIBR65> then just type in the rest of the command. hack cw-*- Text -*- Link-65 preliminary doc. Link-65 is a linker for relocatable object modules. It inputs object fil }es and outputs an executable image. Link-65 accepts as input a series of names and switches. Valid switches: -O S }pecify output file, as "-O FOO.COM". -B Specify exec base address, as -B2800. Number is a hex constant. Default valu }e is #x2000. -M Write a map file. A bunch of information gets dumped to the map, like how big each oject module } ended up in the executable, and what addresses of global symbols etc. The name of the map file is the name of the ou }tput file, with the extension .MAP, ie "-M -O FOO.COM" will output the executable in FOO.COM, and the map in FOO.MAP. } -V Verbose. Turns on printing of various debug info while the link proceeds. Anything that's not a switch is expect }ed to be a file name. All files are linked together to produce the executable. Ex: You could say something like: LINK }65 -m -o foo.com start.obj foo.obj to link START.OBJ and FOO.OBJ together to form FOO.COM, and write the linker map to FO }O.MAP. Link-65 knows how to search object libraries (.OLB files) to resolve references to undefined symbols. This is esp }ecially useful when linking C programs, as they'll typically reference all kinds of canned library routines. Libraries are } specified as files like anything else. Ex: LINK65 -o hello.com runtime.obj hello.obj c.olb Runtime.obj is the C star }tup/runtime module, hello.obj is the main program, and c.olb is the C library. If a filespec contains a leading at-sign ( }'@') it is interpreted as an indirect command file. That means it's expected to contain a list of names of the files that }are really supposed to be linked. Using this scheme, the above example would look like this: LINK65 -o hello.com @hello. }lnk where hello.lnk contains the following 3 lines: runtime.obj hello.obj c.olb Case does not matter in command }line args; ie -v is equivalent to -V. As usual, Link-65 will prompt for a command line if there isn't one, either because y }ou didn't type it, or 'cause you're running on some system that doesn't do command lines, like DOS 2.5. ither because y n-*- Text -*- Relocatable object file format: Header: #xFDFD identifies this as a relocatable obj file. Nbytes $}symbol: word. Nbytes of symbol table. Includes 'nsymbols'. Nbytes segment: word. N bytes this segment uses. Nb$}ytes data: word. N bytes in segment data this object file. Nsymbols: word. N symbol structs following. Symtab: $} some number of symbol structs. Each one looks like: namelen: byte length of namestring value: word symbol value$} flags: word flag bits this sym, one of: abs: value absolute rel: value relative to start of module Data: $}a bunch of op bytes, followed by data per op. ops: lit |0.0.0.n.n.n.n.n| n literal bytes follow. rel |0.0.1.0$}.0.0.0.0| generate the following word offset by the start address of this segment rel-hi |0.0.1.0.0.0.0.1| gener$}ate a byte, the high half of the following word, offset by segment base rel-lo |0.0.1.0.0.0.1.0| generate a byte, t$}he low half of the following word, offset by segment base sym |0.1.s.n.n.n.n.n| if s is clear, sym number is nnnnn,$} if set, nnnnn is top 5 bits, next byte is bottom 8. followed by a word. Generate the following word offset by the $}value of symbol n. sym-hi |1.0.s.n.n.n.n.n| Same as above, but generate hi byte of resultant value sym-lo |1.1.s.n$}.n.n.n.n| Same, but generate lo byte n| Same as above, but generate hi byte of resultant value sym-lo |1.1.s.n$--*- Text -*- A65 preliminary doc [If anyone can come up with a better name than RA65, please let me know...] (} RA65 is the assembler that goes with CC65, although it can just as well be used by itself. RA65 eats 6502 assembly-languag)}e source files, and produces relocatable object files, suitable for linking into executables with LINK65. When you start)} up RA65, it wants an optional name for the output file, optional debugging switches, and any number of input file names. T)}he input files are read in order, and an output file is written. If no output file is specified, the output file name will)} be the first input file name, with .OBJ substituted for whatever extension was there. Ex: RA65 foo.m65 assembles f)}oo.m65, producing foo.obj. RA65 -o foo.obj foo.m65 does the same thing. RA65 -o foo.obj defs.m65 moredefs.m65 foo.m6)}5 This form is useful when you've got some files of equates or something that you want to assemble your code with. Swi)}tches: -O output file name, as described above. -V verbose. If verbose is turned on, the assembler will print li)}nes to the screen as it assembles them. Differences between RA65 and other assemblers for the Atari: RA65 is NOT the sa)}me sort of beast as most other assemblers for Atari 8-bitters, at least all the ones I've ever seen. The output of this as) }sembler is not an executable image, but a relocatable object module. [The format of .OBJ files is described in more detail) } elsewhere] These files are essentially instructions to the linker about how to construct the real executable. A .OBJ fi) }le contains instructions, raw data, specialized reference codes (things like "generate a byte that's the hi byte of the add) }ress of symbol foo") and symbol tables. The symbol table contains both definitions of symbols that are defined in this mod) }ule, as "symbol _BAZ is defined as 27 bytes in from the beginning of this module" and references to symbols not defined in )}this module, as "value of symbol _QUUX + 20". There are some differences in how you use this assembler, compared to tradi)}tional ones. o No ORG or *= directive. It's meaningless in this kind of assembler; as the starting address, like all )}other addresses, is determined at link time, not assemble time. o Undefined symbols. These are errors in an ordinary )}assembler, but are not necessarily errors here. Undefined symbols are assumed to be references to something to be define)}d elsewhere. Note! Since the default way to reference a symbol as a 16-bit quantity, addresses on page 0 must be defined)} properly before you reference them, otherwise they'll error, or at least generate incorrect code. o No symbol for t)}he current PC. This is really a bug, as it's possible to make it work, I've just never gotten around to it. This means y)}ou can't say things like sym = * when defining symbols; you should use the sym: form instead. Special)} ops: RA65 understands a couple of other things that aren't usually done in traditional assemblers. The following pseudo)}-ops are used by CC65, in particular: ldax #foo This loads the AX pair with the constant value foo, by generating )} an lda and an ldx. It will not work with non-constants. lbne labl This is a long-branch pseudo-op. It ge)}nerates a bne if the label can be reached that way, otherwise it generates a beq *+5 followed by a jmp to the )}label. There are similar ones for lbeq, lbcc etc. Other stuff: RA65 understands the following pseudo-ops: .g)}lobl Define or reference a global symbol. used as: .globl foo .word Generate one or mor)}e 16-bit values. Values can be constants, expressions, symbol references etc. Values are separated by commas.)} .byte Generate one or more 8-bit values. Similar to above. .blkb n Generate n bytes of empty space. )} = Set the value of a symbol. Used as: foo = 3 [There's more; finish later] Command lines: Like all t)}he members of the CC65 family, RA65 can either grok command lines as used by Spartados and DOS XL, or prompt for its command) } line. If no command line is given, or you're running something that doesn't do command lines, RA65 will prompt, as RA65)!}> You're then expected to type in the rest of the command line. Ex: under Spartados, if you typed RA65 -v foo.m65 )"}you get the same effect under DOS 2.5 by starting up RA65, then at the RA65> prompt, typing -v foo.m65 -v foo.m65 (n-*- Text -*-This is the second betatest distribution of CC65 and associated stuff.Please see INTRO.DOC for instructions on-$} getting started.Since the last go-round, the following bugs have been fixed:o The low-level file-open code now upcases -%}the filename before attempting to open it. This should fix the lossage observed on systems like DOS 2.5 that treat low-&}ercase characters as illegal.o The command-line parser should now be able to recognize DOS XL command lines, as well-'} as SpartaDos.As before, all executables have their base address set to #x2000, withthe exeception of CC65.COM, which star-(}ts at #x2600. Please let meknow if you run into memory problems; I suspect I can get another halfK out of CC65 before runn-)}ing into stack problems. All text files are in ATASCII except the ones in DOC.ARC, which are inmushy-dos format, ie CRLF a-*}s line delimiters. Since I've been remiss in writing the doc for the library routinesetc, I've included the library source-+}. You shouldn't have to rebuildit, but it may be useful for reference. If anyone feels inclined towrite part of the doc f-,}or me, don't let me stop you! BTW when I builtLIBSRC.ARC I wasn't very selective, I just grabbed eveything out ofmy curren--}t development directory that looked relevant. There areprobably some duplicates and extra files in there, esp since many of-.}the routines were originally in C, then later hand-coded in assembler.Caveat emptor.Please let me know how this stuff wor-/}ks for you. I'd like to declareit done and post it for real.,@@;K`hhhh8/01"/ԩ`0ԩ1ԭ = =11} = = = = =ЭЭ/ԭ0ԭ1ԭHHH12}<@H)PhJJJJP`!"#$%&pppppB~PB B A`뀰㉑13}뀀@㉑0Y-*- Mode: Text -*- This is the readme file forCC65.ARC. This arc contains the executablesand runtime code for the CC655}5 system. Please see the introduction inDOC.ARC for a description of how toget started, and other doc.4m/* This is a trivial example program for use with CC65. */main()$( printf("Hello world!\n"); printf("press any key97}"); kbdchar();$)8(LN-HehL)`ܠؠԠРH8咅h`H8h`֠ҠΠʠƠ±=9}HȱhL)`e` (L(L)L)L)L)L)L) (ȘL) (L) M(Hȑh`HȱhL(Hȱ=:}hL(Hȱh (` (` %)HȥhL) %)L) (`HȑhL)L)HH (hhL)HH (hh=;}L) H*h`L)`L)HIhIi```IHIh`e` )L(`` )L{) )L) )=<} {)L( ) )L( ( &L)L) (󨥂fjL) (eHehL) (8H哪hL) (==}HhL) (EHEhL) (%H%hL)`\_ (łXTM (łFBE (0>7ł86/ (䃐-&ł'% (0ł (=>}䃐 ł`` (0ł (䃐ł۰ (0łʰ (䃐ł𹰼 L(H hL=?}(lHh` {)L( )L(hh捠ilŕŔ liL=@}+`L) ( ) Ɣ )$ D,& $ D,& 򦓥 )`Heeh`` (=A} ) ) ) )Ńł &&L,FfFf3ōŌ8包卅=B}FfFfͥ )ĕ )` \,L) ( ( ` (`=C}S L L L i?H ihL- ( ml A+ )- )- ( m ( 3L-LY+ A+ ڱ OLY+ =D}E+ - 5LY+lda#ldx# =+- (- ( -LY+ =+- (- ( -LY+ A+ 㰍--- (- * .q. ( ԱL=E}n.- ) . -Ln. - .LY+tax A+ l. ( -LY+ldy#enterfun A+ 7ܢ. ( 2MkNk (0 A*.L..=F}. ( ڱLY+FIXARGC I+ + *U/ ( Ա]/ ( - 7LR/c/ ( - 7 ) i/ ( -LB/o/ ( - 6u/ =G}( ԱLY+ldx#0ldaldaoraldx+1 A+ + *LY+ A+ P* ( v.LY+ A+ // ( ڱLY+locysp E+ / =H} x//L// ( ڱLY+ldayspldaxysp E+ / x/0L00 ( ڱLY+stayspstaxysp E+a0 ( - 7 x/ )g=I}0 ( - 6m0 ( ԱLY+stastx+1 A+ + * 㰠 ) *, 㰠 ) v. 㰠 ) x/0L00 ( ڱL=J}0 㰠 ) x/0L01 ( ڱ OLY+staspidxstaxspidxstasppstaxspp A+ + * 㰠 ) *, 㰠 ) v. =K} ) x/1LW11 ( ڱL~1 㰠 ) x/1Lx11 ( ڱLY+ldaidxldaxidxldaildaxi =+1 ( -LY+ldax# =+Ƣ1 ( =L}ڱ ]LY+pushax =+ 1LY+ E+2 ( 2 )  * ( v.&2 ( - 7 ( A* lLY+NOARGCjsr =+<2 ( ԱLY=M}+jmpexitfun A+2 ( 2 )  * ( v.2 ( ڱ ( A* lLY+NOARGCcallax A+2 ( - 5LY+jmp E=N}+ ) ( 2L22 ( - 5LY+lbne E+ ) ( 2L33 ( - 5LY+lbeq A+83 ( - ->3 ( -=O}LY+jsrsp I+  * 3 0 A* ( mLu3 v. 3 ɱLY+ A+ M( P* ) ( * y3 (4 ( A3L3 =P}y * ٰ ) (4 ( 4 ( A3 (LY+ A+ 4L34 ( -LY+incaddydecsubytosultaxtosltax A+ ;4L24=Q}D4 ( -LY+tosuleaxtosleax A+ h4L_4q4 ( -LY+tosugtaxtosgtax A+ 4L44 ( -LY+tosugeaxtosgeax A+ =R}7( ( * u( ) 9)- ( m ( `) ) ( *@L4L4 ( A* ( ( - `) ( \, 9) =S}ٰ ( )L4 y * ) y *$ ( ( 3 A* +0 A* ( mLG5 (LY+ A+ 4 ɱLY+ A+ 4LY+ A+L ( =T}m 4LY+ A+ 5 ɱLY+ A+ 5բ5 ( ԱLY+: A+5 ( ԱLY+;;; outdat A+9e:e ( 5+ ( m 4 ɱLY+ A+36 ( =U}- 4 ɱ lLY+.blkb E+ M( )n l  *Le6 3 P* = 6Lw6 M( + ( G + + 4 ٰ ( ) ), =V}( m (Lt6 ( mLA6 (LY+ =+͢6 ( -LY+.word =+6 ( -LY+.byte A+_ ( m -LY+ A+ 6 ɱLY+ A+ 6(=W}7 ( ԱLY+: I+C7 ( - 7 lLY+.globl A+_7 ( a8LY+ =+p7 ( L7LY+syntax error A+7 ( a8LY+illegal =X}A+7 ( a8LY+missing A+Ȣ7 ( a8LY+multiply defined A+7 ( a8LY+need =+8 ( 7LY+lvalue =+?e @e )=Y} E8 ( 7AeBe ( * U8 ( صLY+closing bracketNo errors. E+8 (aebe (_e`e ( ( (ee ( =Z}AeBe (AeBe ( * ۢ8 ( 8LY+%s: line %d:%s%sline:%stoo many errors A+9 ( ee ( ص ( =[}-LY+fatal error: %sline: %s A+D9 (  صLY+Warning: %s E+ ( * nLY+Lr9 7LY+ =+^ (9 ( Q9LY+co=\}lon E+ n 1 + + f+ ( TLY+ I+ + * + * O 㰅LY+L9LY+LY+ A+ + *=]} 㰠 ) *LY+ =+ i(: ( ( K: ( ( T +(LY+ E+ i( ) 3 l u( + ( + f+ = 㰅 +(LY+=^} A+ M( : ) (> * n : )L: ٰ (LY+ A+ a( = )L; ٰ #(LY+ i( n * 7 (LY+ u( =_}+ * 1 ( : ( ( T ( uT ( `) u( ( ) ( ) * f* ) (LY+Q 3L<_ 3L ) (L * ٰ (LY+L> 7( u( ) * ( * ) ( ( T Y 9) Y=e} 9) ( ( 2 (L *L> n ( > ( ( T y ( ) * ( * f* ) (L * ( u( )=f} * ( 2L> ٰ ) ( u( ) * ( 2L> ( 5 ٰ )  ( '. ( 5 ( `) (LY+ (LY+ A+ M( =g}|A ) (G * ٰ (LY+L? q( ( ( T Y G ( ( 2 (G *" n ( |A ( ( T ( 2L-? ( '. =q}h ?B%DOS SYSB*)DUP SYSB SRAMDISK COMB)\CC65 DOCB COPYLEFTJRDB6INTERNALDOCBINTRO DOCB LIBR65 DOCBLINK65 DOCB OBJ DOCB%RA65 DOCB #README TXTB0UNBUG65 COM4README2 TXTB6HELLO C B"8CC65 COM 5 ( `) (LY+ (LY+ I+ ( ( u(N f*LY+O *LY+Z t*LY+I *LY+X *LY+R )LY+D +L=r}Y+F \,LY+\ -LY+ (LY+ E+ {) + * ) ( 3L@ 㰠 )LY+ I+ M( + + f+ ) ( ( @ =s}) ٰ (LY+LnA 7( = ( ( T ) ( ( @ 3LBA ( ( 9 ( ( ( 9F (  u( ) (=t} ) ? ) ( U u( ( ) * )L?A + + f+ ( `) u( ( ) f* )LfA u( + * =u} (LY+L@ ( (LY+N A+tA ( A ( <@LY+Z A+A ( A ( <@LY+I A+A ( A ( <@LY+O=v}"J@ A+ڢA ( GB ( <@LY+ I+ n 1 ]C ( T +   ) + * ( + f+LY+ A+ M( ]C )=w} (S * (V * ٰ (LY+LKC q( ( ( T u( ) + * ) ( )L-C y (4 ( BLEC y=x} (y4 ( BLEC y (3 ( BLEC y (L4 ( BLEC ( `) (LY+LEC +BSBUBTBVLCLB 3( (LY+R=y}βX A+QC ( wC ( <@LY+ A+ M( {F ) (= * (B * ٰ (LY+LeF 7( = ( ( =z}T (= *LD{F ( ( 9 u( ) 3 ( ) ) +@ * ٰ + * ( i ( SLD +={} * ٰ +@ *# % y i ( ZS ( ( ) ) ( ( ( 9( u( ( ) ( ) A* ) ( ULD =|}Q ( `)L]F (B *L*F{F ( ( 9 u( ) 3 ( ) ) +@ * ٰ + * ( i =}}( S _ + ) * (@ * C ( *E i 9) ( * 1 ( '. { ( `) (yez=~}e ) u( + * */  u( ( ) ( ) P* ) ( UL'F ( `)L]F u( + * =}LQF ( `) (LY+LC ( (LY+DmF{\ A+kF ( uH ( <@LY+ I+ M( n ( uH ) ( * 7 =}(LY+ u( + * 1 y ( T u( ) +I *) + u( ) A* ( ( + f+L,G + + f+ ( uT (=} `) (LY+ M+ n * 7LY+ u( + * 1 ( ( T  u( ) +I *) + u( ) A* =}( ( + f+LG + + f+ ( uT  ( `)LY+ E+ M( n uH ) + *9  (B *  ) )L8H  =}) ) ) (LY+ y T B * ܲLeH  `) (LY+ A+ q( (2 *LKLK (-T ( ( F 3=}(LY+ (ޢS ( ( F 3(LY+ ( ( G 3(LY+ n ( uH G ( T 鲠 ( `) 3(LY+ n ( uH (=} ( T u( ) = +@ * ( * {L ( }7LI +J *  A* =LI ( = (  ) ( `)=} 3(LY+ n ( uH G *L ( }7 3(LY+ u( ) 5- ( A* ( 9 = I `)  A* ( u( ) - (=}  ) 3(LY+ n (5 *$ ( + ( *Z 7( n (" (  9) ( ($ =}( ~_ ( \W( ( (  ) (LJ ( uH ( u( )  ) ( `) (yeze ) 3(LY+ (5 *$=} ( + ( *LK 7( n (" (  9) ( ($ ( ~_ ( \W( ( uH$ 9)( (=} ( 5- ( A* ( 9 ) ( ( -$ u(& (LY+LK +H;H?HBH:HK IDII:JdLK ( L GLeL ( (-=}T ( ( FG 3(LY+ ( (ޢS ( ( FG 3(LY+ 3(LY+LuL +L;4L?LYL 3(LY+indirectionaddress A+ M( =}uO ) (4 * (7 * ٰ (LY+LPO 7( (4 *LvN n ( ( T = 1 ( : ( ( T9 (=} \W u( ) 3 +@ *LM +J * u( ( ) A* ) ( u( ( ) ( ) ( ( S * =}( ) * O  (LINLCN ( ) ) +@ *c ٰ +J * ( ( ) A* ) % ( ( ) =}( ) ( ( ZS ( ( ) )LCNVO ( L7 QLNN 7( ( `) u( ) +J * 9)LHO (5 *k n u=}( ) + * gO ( }7 ( ( wW ( ) ( `) u( ( ) ( ) 9)LHO (6 * ( =}( %X 9)LHO (7 * ( ( X 9)LHO u( (LY+LL ( (LY+cannot subscriptfunction call A+ q( ( =}) (2 *LQ = n  ) *LEP (  ) = )  ) * (C `)LO ( `) ( =} ) ) + * +J * 3(LY+ 3(LY+  ) *LP  ) ) ( *S ( L7 3(=}LY+ (  ) = ) ( ) ) ( `) + * +J * 3(LY+ 3(LY+ (5 *=}h {e|e ( (  ( ( 9 ) u( ){e|e ( - ( `) ( ) ) 3(LY+ yeze ( ( =}( ( (C `) (yeze ) ( )S ( L7 3(LY+ (a * (b *7 ( `) (ye=}ze ) ( ) n 3(LY+ (5 *! n ( : G_ ( \W 3(LY+ (` *L*S i( (" `) (J=} `) ( A* (Ih ( A* ( 5- ( A* ( ) ( A* ( `) ( A* ( `) ( ( 5- ( A* =}( 9 ) u( ) ( - ( ) n (LY+S ( L7 ( `) (yeze ) 3(LY+ A+  * DLS=}  * 1 1 5 mLY+struct tag/fld cannot be primaryundefined symbolinvalid expression E+ ZSLY+ A+  *=}  *TLT&T ( ڱLT 1 1 5 _LY+decax1decax2 A+  *bT ( - 5L_T v.mT ( ڱLY+jsrin=}caxindexax A+ M( ) ) y *  )  ) &0LT y@ *  )  ) /LT y * p0LTT ( =}8 (LY+err 1 E+ M( ) ) )L}U y *  )  ) u( ) .LzU y@ *  )  ) /LzU y =}* ޢU ( 8LzU 1LU y * 1 1  ) 5 QLU y * y * (  ) U  ) *  (LY+er=}r 2 A+ 1 5LY+ E+  * =  * /L'V 1 ( *VLY+ I+  *LeV 5LY+ 6 ɱLY+ 5LY+|V =}( 8LyV +:VCVOVLXVLY+err 3 A+ q(5 ( \W: ( ( K: G *5 ( ) * ( 2KW ( /9_ =}( \W 3(LY+ ( ) * ) ( ( ) f* )  ( T_ ( \W ( ( ) * ( 2 3(LY+unreachable =}code A+ oW ( Q9LY+bracket E+ 7( ) u( + * (_ *< ( : ( ( T 1 y A* ) (=}> *LW nLW_ ( \W u( + * y I2LX u( ) 1 (LY+ E+ 㰠 ) + * ) Y ( 7 +=} * ) + * (  ) U XLY+ E+ M(  ) ) ٰ +I * y A* + * ) Y ( 7 =} T X (LY+ A+ M( n (2 * `7 yeze ) (LY+ ) n ٰ ) * ( *"Y ( 7 yeze=} ) (LY+ 㰠 ) ) 㰠 ) 5- ( A* ( 9 )  ) 㰠 ) -  `) ٰ ) +J * (LY+=} (LY+ =+=e>e (=e>eLY+structstruct pointerstruct field =+MkNk (_ * nLY+ ( * Z ( 8=} (2 *, ( ( ( ( (MkNk (MkNk nLZ `7 (> * nLZ (_ * nLZLZ `7LEZLY+err 4=} =+, 7( (8 *L[ ( ( G (& ( ) ( ( ( ~& 9) ( *L[& u( ) *$=}\ ( L7& ( ( ( ( (L[ ( 5- ( A* ( 9 3  ( - +J *  A* 3 (I `)& (  )=} (> *L[ nL[ (3 * nLZ ( `) ( A* ( `)" 9) ( P** 9)* ( +L=}\LM\* u( (* 9)L)\Ij (, u( t) A* {)& 9)& u( ) 3 *% ( 9 3  ( -& (  )& ($ u( )"=} ( ( ( A* ( * A*" 9)L=\, (LY+declaration of parameter not in argument list A+Lk )] (  A=}* ( / ( ) f* )  A* ( . Z (8 * `7 ) ,2 nMkNkLY+%s =+. 7(, =}9) ( ( G 9) ($ ( ) ( *L^ ( & ( ~$ 9) M(  * ( )L&^ )& (=} (& (4 ( u( P* ( ( (  *k ( *, ( ( P*, 9)L^ ( *7 Y* 9) ( 2$ ( Y ) ( =}5 ( ( 6* ( 5 (> *L^ nL] (3 * nL], ( {3. (LY+ A+ 7( u( )La ( a u( =}+ * 6L:_ 6 ) ( ) u( + * ( *VLa ( A* ( ) ( A* + * (` *J=}Ih ( A* 3 5- ( A* 9)  ( ;6 ( u( P* nLS`8 ( \W 9) (A *8 ( A* ( =}_ u( ( 9) (> *LI` nL`A ( \W y * ( A* ( ( )L` ( *, y u( P* ( ( =}A* ( + ( aL` ( * bLa u( + *La8 ( \W ( =  ) G (A *F * b =}(LY+  ) _  ) G (> *LOa nL`A ( \W *  ) ( a  ) GLYaLa +___Ia_=}JL` (LY+ A+a ( - 4 ɱLY+.blkb A+: ( K: + * ( * a ( 7LY+constant expression =+=}"b ( L7LY+too many initializers=}=}=}=}=}=}QkSkUk=}}e=}e=}=}=}=}=}=}=}=}=}=}=}ȱ````ee` =+ i( k[e\e ( *CeDe +(LY+ee (d ([e\e =}( =ee ( 5- 3_e`e (_e`e *Llee ( A* ( `)[e\e ( LYeZe ( *NGe (YeZe (=}YeZe ( + A* ) {)[e\e ٰ )_e`e ٰ )aebeLl[e\eLlee (  P* A* ( `) )ee=} +(LY+Lk +(LY+ =+ ( `)@c ( -@cLY+ (` A+ ]e^e ( u ( * jm (=} ( / a ( -LY+IO error #x%x (ĆŠ ( mLm`xxxxxxxxxxxxxxxxxxxxxxxxx=}xxxxxxxxrvxp7t r.v5_qp>?q6quuuuuuuuuu^3srs]xEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEp=}EpEpEp4x9tEpxpppppppppppppppppppppppppp8^rA:xo =+OkPk ( *?OkPk (OkPk (=} *nn  kLnnnLY+LY+ =+ M( @ n3 (LY+ + *W k ( *=} (LY+ Ɍ (o ( …!OkPknnnnLoL%o + * (LoLoL%om ( ) t)=} A* {) ( * + + f+Lo ( (LY+;;#asm =+ 7( ( t ( . (LY+L=p ( 2=} (LY+ =+ 7( ( t ( 2 (LY+ A+ 㰅 (LY+ =+ M( ( ) )Lp8 ( qpLpA ( qpL=}p: ( qpLp xLp +p(p)p-Lp (LY+ =+ M( ( ) )L)q; ( qpL9q< ( qpL9q=L9q +q+q=L=}q (LY+ =+ M( ( ) )Lq? ( qpLq@ ( qpLq7 ( qpLqBLq +Yq-fq=sq>Lq (LY+ =+ ( =}+= * C ( qpLqDLY+ =+ ( += * E ( qpLrFLY+ =+ M( ( ) )LHrG ( qpLXrH=} ( qpLXrILXr +#r&0r=L=r (LY+ =+ M( ( ) )LrL ( qpLrM ( qpLrNLr +xr|r=Lr =}(LY+ =+ ( += * J ( qpLrKLY+ =+ ( += * O ( qpLsPLY+ =+ M( ( ) =})LxsS ( qpLs ( += * Q ( qpLjsRLsTLs +1s=>s<Lms (LY+ =+ M( ( ) )Ls=}U ( qpLs ( += * W ( qpLsXLsVLs +s=s>Ls (LY+ =+ ( += * Y (=} qpL4tZLY+ =+ ( += * [ ( qpLft\LY+ A+ +  tLY+LtLY+LY+ A+ M( ) y=} *5 ٰ ( ) + ( = + ( + ( + ) `)Lt ( +  + Lt `) (LY+ =+ =}e( ) 8 +0 *? ( ) [ (X * 8 (Lu 8 + [ (  y +=} ( 0 P* A* )L v  *I A + F * 7 P* [LuLv y + (  A* )L vLv (Lu =}ٰa '(LY+ =+ a( 3 ( dk ) (' * y *& * ( ) ( w A* 3LFv 㰅=}b #(LY+ =+ (` +" *d + * bw ( L7L7w ( + ~w ( 8Ih (=} + ( + A* ( vk ( w `)Lv dkIh ( + ( + A* ( `)LY+new-line in string constantstring space exhaus=}ted A+ i( (\ *  u( +(LY+ ) =Lx~ =Lx} =Lx =Lx =Lx =Lx 0 + 7 *=}Lx 0 P* ) vk 3  *T ) = (0 * 7 *Lx y ) ( A* (0 P* ) vk ( 3L+x=} ٰ +(LY+Lx +wbwfwgwnwtLw dk +(LY+ =+Ϣx ( 8LY+unknown character I+* 7(0 (: ( ̶ ) ({ =}( - (2 ( +L)y (2 ( -. u( )+ (. ( ̶ ) y `) (0 ( +, ( ( -, u(* (LY+=} E+ a( {)8b9b(:b;b ( *4{ (xy =}( ( t) A* ( ( A* 9)aebe 3 u( *L<{L_z + ( 3 +L:z t) A* {)yy +- *=}^yy ( A* + LzKkLzLk (LkLzâ{ (yy ( صLz +zOzVLzL9{yy (yy (. ( ̶=}L {֢{ (y ( xaebeaebe (٢{ ( [e\eLMzaebe ) ) [e\eۢ{aebeaebe ({ (y (=} x ) y{ ( ]e^eLk ) { ( ص { ڄ #(LY+D:CC65>Invalid option %s.crstdin.c.m65wCC65 v 1.0=} =+ I(_e`eYeZe?e@eCeDeAeBeGe ([e\e I)8b9b@bIg@cb?b=e>e9e:e ( ( 㯩If ( ( 㯩 ( ( 㯠 k | n 8 (LY+ =+* 7(=} n n ( *L~ ( ( G" 9) (& ( ) (3 * nL|( 9) ( ( ( =}~& 9) ( * nLq~  *)" (@ *" ( * )" ( f* ( f* 3L}" u( 3& ( =}(    *M& u( ) 7 (P * n& u( ) _LM~& u( ) ( 6 (> *Lq~ n=}( 9)LT} ( *L~L~ (3 * nL~( u( ) `7  * ~ ( }7& ( * & ( ] L=}|* (LY+function I+ M( (  ) *7 (  ) u( ( + u( f* `) ( A* 9)Lk u( + ( 9) + =}( u( `) ( `) ٰ (LY+ A+ 7( (D *A n (  3 u( ( {) + ( I) + (I `) 㰠 (LY+LM =}(5 *! n (  3_ ( \WLM ) 3LM (2 * n 3LM `7 (LY+ (4 *=} (5 *L< (5 *. n Z u( ( {) + ( I) + ( `)L9 n ) (9 * ( =}a ( ) )9 ( \W u( ( {) + ( I) + (J `) u( +  ) u( ( + A* I)LM 㰠 (LY+ E+L =}nLY+L nLY+L n @ f*LY+L +Q ` o LtLY+ E+ q(L킠 n 3(LY+ ( /9 ( *=} n n 3(LY+ n ( * n 3(LY+ ( * n 3(LY+ ( *LE = n=} (2 * ( I) nL ( ( I) u( + ( 㯠 u( +  * 3 u( +  { 3(LY+ (=} * % ( 7 u( 3(LY+L +Á؁**Lł 3(LY+long == shorttype E+( 7( (8 * ( =}(LY+ n 9) (A *L\ ($ ( ) ( & ( ~$ 9), (& u( )$ u(, 9)* ( =}* u(LՃ& 9)$ ( (* (  ( & 9)* ( * (( u( A* 9)L9& (" u( * & u( 9) (>=} *LT nL ўL\ n u(( (LY+ =+ M( ( * (LY+9e:e ( 5Ih ( ( ;6;e}ldaidxpushwidxpushbidxplocidxpushwaxipushbaxiplocysp  $-5-=5D=M-V^g>}p ( (ю`` E+ Ѣ ( … )LY+  A* ( …LY+ (ɛ`ȱ>}e捦` E+ M(  ( 5- P* = ) ))LhLZ  u( ) `) ( = ( GLe ٰ (LY+ M+ M( (  ) ( * >}u( (LY+ ( (  y ( )ע ( ( ̶ ( @ ( @ (LY+ (LY+ A+ a(x ) ٰ {)PL< y >}t) A* )L +  t) A* +  t) A* + 3 GL) #(LY+ A+ a(  3 ( * #(LY+ ݢ ( >}… 梈 (  ( ( ̶ ( @ #(LY+ #(LY+ A+ M( ) y * )  =  =L (LY>}+ A+Kk )LȈ ), )Lň, ( * 3 ),, ( * ), ( m ( 3Lh,>} ), ( m ( 3L=LΈ ymLY+jsrjsrldax#0pushaxjsrpush0 ( `` ("'`` =+ i(>}YeZe ( +~ ( L7 +(LrGfHf  ( dk t ( ̶ ) ( 7 +(Lr < *> jGe (YeZe (> } + A* (_e`e )aebe ( 5- ( A* ( 3 (aebe ( -Ge (YeZe ( + A* (  )Ge (YeZe ( > }+ A* ([e\e I)YeZe (YeZece 3aebe ) e $ * )  `) ( 3 (LK * > }( 7 `)ce ( (ce ( xaebeLk ) (aebe ( /aebe ( ( [e\e ( *^Ge (YeZe (Y> }eZe ( + A* {)[e\eGe (YeZe ( + A* )aebe ( L7Lo_e`eLu i( k +(LY+too many open files"<q> }uote or <quote or >including %sropen failure on include file (` ( ۋ`` =+ kOkPk >}k ( * ( 7LZ ( ( …LZLW ( Ա kL kLY+#endasm\ckqw~ >} E+ {) + C ) ( 3L 㰠 )LY+ =+ 7(ee 9) ) 9) ( * (# * >}u(L- (# *L (  ( it ) ( 7 kL (h ( Lˎ ( * 攩L (>} * L ( * ]L ( ( 9)L ( ( 9)L ( 9)L>b?b ( +14e (>b?b + >}(>b?b + A* + * 9)L1 ( L7L4e (>b?b A* + *L4e (>b?b A* + * u( ) 9)4e (>b>}?b A* ( + t* `)L ( L7Lee (LY+ڢ ( }7 kL +hԍ4 L k (>} *$>b?b ( + ( 7 (LY+L Lk ( * (ee ( / (LY+defineincludeundefifdefifndef>}ifendifelseasmcompiler directive#endif without matching #if#else without matching #ifcompiler directive#endifline: %>}s =+ i( ( *ee ( ͐ ( * +(LY+ee (GfHf (  3 =ee )GfHfee ٰGfHf >} )Lee (GfHf (2 ( ( * 3 ( ؋ ( = )LWee +(LY+ (' / ȱ* >}'"ة`` E+ 7( u( u( 9) ) 9) )L (  ( ؋ L (  )1>} ( tIf ( A* ) ) 9) ( L ( ( L (/ * Xk (* * ( ؋ ^L >}+ ( + ( + ( + ) `)L) ( ؋ u( (LY+ M+ 7( u( u( 9) ) 9) )L ( L>} ( t u( + ( + f+ 9) u( + ( + f+ 9)L ( L ( ( L + ( + ( + >}( + ) `)LM u( (LY+ A+ 5- ( A* A* 3 + *"  A* ( 4 ( * kLZ LY+ =+ 7( >} (  ( 2 9) ( `) (LY+ A+ 7( 3 )ee (k ( + n n ( a 㰅 ٰ >}( ( ( ) * ( n (LY+ E+ 7(  ( ( * (LY+Lc ( ( ( 2 ( * ( n (>}LY+ (LY+;; I+ M( u( )04e (>b?b (>b?b A* ( `) (LY+L4e (>b?b (>b?b A* ( `) t* (> }LY+ (LY+ =+ 7(  ( ( * (LY+ ( ݬ 9)d ( ) y ) A* ( ( - y A* ( ( 5- A* (>!} A* 9)If (  A* ( `) +( *L u( + ( 9) + ( `) u( + ( 9) + 9) ( `) vk >"} +) *L] ( ( * (LY+ ( ( - u( ( ) ( `) ( ( 5- ( A* A* 9)  +, *>#}L] vkLҕ +) *# ( }7 k (LY+ vk y ( u( t) A* {) I) ( u( t) A* ( I)  9) ( ͐>$} ( ( L ( ( - u( ( ( 5- A* ( A* (LY+macro function A+ a( ݬ 3 ( t)>%} A* {) ) y *DLr ٰ {) )LW  ) A* ( C ( * y A* #(LY+Lf #(LY+ A+ a( 3 ) >&} *YL ( 3Lŗ C ( * ( t) A* {) #(LY+ y 5- ( A* A* )Lԗ #(LY+ A+ 7( +( >'}*Ң ( }7 (LY+ vkd ( 9) 9) 9) 9) 9) ) 9) (( *, u( + ( 9) + ( vk `)>(} u( ( 9)L' ( / 9) u( (  9) u(L' (, * () *L㙠 ( *i v>)}k u( + ( 9) + ( `) ( u( + ( 9) + t) A* ( u( I) u( 9) () *L*L u( + ( 9) + (>*} vk `) () *  u( ( 9)L' ( * k ( * (LY+L' u( + ( 9) + ( vk `)L ( u( + (>+} 9) + ) *Lƚ ( * ( *  {) )Eݢ ( L7 ( *- ( u( + ( 9) + t) A*>,} ( I)L u( 9) ( *4L u( ( 9)Lؚ u( + ( 9) + ) )LL隥 9) ( ( (>-}梋 ( * u( u( (LY+ =+ vk vk +* * Xk (/ *= + * k ( * ( >.}L7LY+Lƛ (Lg vk vkLY+macro callwrong number of argumentsEOF in comment =+ +  vkL LY+ A+ I( vk ( ؋>/} ) Q ( * *! \ * vk ( ؋ dk ( ؋L.  ) vk ( ؋ (LY+ A+ it ( }7 k>0}LY+symbol nameA!DI R Y-^c h)mdt"{  +#ĝ,͝$ӝ֝*ޝ>1} A+ ( LY+iflongregisterstaticelsechargotocasesizeofreturnexterndoublefloatvoidintshortforunsig>2}nedautobreakswitchstructcontinuewhiledodefaultunion =+ ⯥ (2 *# (^ * L %: ўLY+L>3} Lʞ Lʞw ( Lʞd ( Lʞ ELʞ ўLY+ ўLY+  ўLY+ +Lʞ ;LY+ nLʞ %: ўLʞ +$8*!>4}0$=J#P"]+j,w} 3LLY+ =+3 (袞 ( Q9LY+semicolon =+ i( n ) 3 ] =?e@e (?>5}e@e (A * ( *LQLN =L" (A * n?e@e (?e@e 㰅 ) ٰL y {3 +>6}(LY+ =+ a( n Y 3 V 䝥 (- * 5 #(LY+ n Y ) ( 2 5 y 5 #(LY+ A+ a( n Y 3 Y ) ( >7} ( ( 5 w * y V Ll 䝥 ($ * nLc ( L7 y V ў 2 y 5 Ѣ #(LY+do with no while =+>8} n (3 * %: ( {3 ,2LY+ =+ M( n ) ( * (LY+ y t) A* + {3 y t) A* + 2 (LY+ =+ M( n )>9} ( * (LY+ yIg ,++ y t) A* {) )L\ y t) P* )L% yIg *Ϣ ( L7 (LY+ y t) A* + {3 y>:} t) A* {) ) y t) A* + 2Lɡ y t) A* + 2 (LY+no active whiles Q+ (Ig ( t) A* ( t) P* *>;} ( L7LY+ ( t) A* ( u( I) ( t) A* ( u( I) ( t) A* ( u( I) ( t) A* ( I)><} ( t) A* ( I) ( t) A*LY+too many active whiles =+ ( t) P*LY+ =+ (Ig ** (>=} L7LY+L' ( t) P*LY+LY+no active whiles =+ M( n (2 * ( 7 (LY+ ) ) * yyeze >>}( ( Y ( ( ( {3 ٰ ) 2 n (LY+goto label =+ M( ) * (yeze ( ( Y ( ( ) Y )>?} ( 2 ) 5 ) ( + ( {3 y 5 ɱ n n (LY+ =+ 7( n 9) Y 9) ( 9) ( ( ( (>@} ( ࡩ5 ( \W %:_ ( \W8 ( \W Y 9) ( 2 (A *L () * (* *L Y 9)>A} () *< n ( a ( ( ) I) ( u( ) u( ( 9)LO n u( 9) u9 () * (* *>B}L ( 5 (A * L n ( 2 ( 5 4 ( 9) ( u( *5 6 u( ) 5, ( m u( + 5 u( >C}( 9)L 6 ( 5 u( ) ( 2 ( 5 Ѣ (LY+ =+ q( n Y G Y = Y 3 Y ) ( ( ( ( ( ࡩ5 (>D} \W (3 * %: ў 5 (3 * %: ( 2 ў y 2 5 (_ * %:_ ( \W 2 y 5 2 >E} 5 Ѣ 3(LY+ I+ M( u( ) * q ( 7 5- ( A* ( ) y ( - ( ) ( 㰠 ) ( )>F} (LY+component E+  ) *L  ) * ( *# * ) * ( 7 >G}* )LY+  ) )LY+ A+ a( ) ٰ #(LY+ ) ( ( 5- A* ) ( ) y ( y A>H}* ( ( - ( t) A* 3 y {) I) I) #(LY+ A+ M( | ݬ ( t) A* {) ) y *3L ٰ {) )>I}Lʨ y A* ( C ) ٰ (LY+L٨ (LY+ I+ a( u( ) *L u( ) * ( 7 #(LY+ u( +J >J}*N u( ) A* ( ) ( * ( A* ( ( *L3 u( ) A* ( ( A* ( C>K} ( * ( 7 #(LY+ y *, u( ) A* ( ( A* ( ( )La u( ) ( C ( * ( >L}7 #(LY+ u( ( ) u( f* ) #(LY+ ( 5- ( A* ( 3 ( - ( u( ) (  ) ( ( A* >M} ) (N} H * ( * ^ ( /9 G  * ( ( (  (LY+ u( ) *v ( 7 (LY+ ( *)>O} ( 5- ( A* ( 9 ) y ( -L ) ( ( f* ) ( 㰠 ) ( )Ij ( + ( + t) A*>P} ( u( I) (LY+function must be externlocal symbol =+ M( ) y *+Ij ( + ( 3 + t) A* + )L>Q}@b (LY+ (q)` A+ M( ) ( A* (:b;b + . ( 8 ٰ (LY+ A+ M( )>R} ( A* (@b P* ( + C ( 8 ٰ (LY+ A+ M( )L  (LY+ (LY+  A* ( (  A* ( >S} + (LY+ + * ) ٰ ) (LY+W ( 8 (LY+L( +IJLϭ (LY+out of global memor>T}yout of local memoryunknown type code A+ +J *  A* 3 ( 3 ( LY+ =+ e(U}L 㰠 ) ) ( *L y *8 y * eL e )  A* ( *7L '(LY+ E+  A* ( >V} f* `)  A* (  * ( f* `)  * ( f* `)LY+ A+  A* + * (  A* + * (>W} ) f* ( + * ( ) f*LY+` ( ( Ɠ裸 Ē` (_A[a{`` E+ >X}  صLY+ =+ ( * ar ( ( / ( -LY+Aborted! =+ M( ( P* ( * ( ( a8Ϣ >Y}( 8 (LY+!!Stack overflowGiving upLu(Lu(Lu(Lu(Lu(Lu(Lu(Lu(L(L(L(L(L(L(L(L(L9)>Z}L9)L9)L9)L9)L9)L9)L9)LD)LD)LD)LD)LD)LD)LD)LD)L(L(L(L(L(L(L(L(L)L)>[}L)L)L)L)L)L) ( m` -Lɱ碱 ( -LԱjsr (Lڱ ( ڱLOLsaveaxLrestaxLtstax,>\}Lswapstk;LcasejumpKLaslaxXLaddtosfLsubtostLmultosLdivtosLmodtosLortos>]}LxortosLandtosǢLasrtosբLasltosLnegaxLlnegaxLcomplax Lincax1Ldecax1>^})Ltoseqax8LaxzeropGLtosneaxi`8` S+ (kl ( ѷ (kl ( yLY+ I+ a(>_} 9) u( ( 9) ( *mLųL ( J 9) ( *L, u( ) ) u( 9) u( + ( 9) + ( u( `) (>`} *L,L³ ( `) u( #(LY+ E+ u( + u( ) *5 u( + *LY+ u( ( 9) u( ( 9)LF u( +>a} u( ) P*LY+ E+ M( ( u( + % 9) ( * u( (LY+ u( (LY+ I+ ( (  (P ( >b}(  ( ( ѷLY+ E+ ( ( 5- A* ( ( -LY+ ( B V0`` B Vi` ( (HHIDE Bh>c} VL`HDEHI Bh V```8` ei µL% sdax&oV>d} L µ L! µJJJJ) ƒ&&&&L>LL µԆ )Ԇթ- ؠ>e}0 L) L L(0123456789ABCDEF (0:`` ( (`Œ eL)Lڶ (a{8 `>f}@ iɀ` ( ( 0krwa dKJKHI)a0{8 驛>g}DEB VL``` E+ ( ( ( 5- ( tLY+ ( (NHɛD >>h}ȥi揠 >Hhɛ`!8`` (HIDEB VL`` B V>i}LHHIh` u( u(HI u(DE +((`(<C/