@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( 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`  `1  ɐ     `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.SYSӠ$(%)%%))`SAVLEJ y08 B|DEHI$} V0 0`B;DEL`?0LV`ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DEꌝ v`E:D1:DUP.SYS8$ 8$**%) $(x &}X`DOS` `Β : < Lu  9 V⪍ ઍ  -Q} 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 !BD.}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0./}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC0}COPY--FROM, TO?OPTION NOT ALLOWED132 FREE SECTORS COPYING---D1:RAMDISK.COMl# 0|D .L/%#1}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY2}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 3}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A4}LLOWED IN DESTINATION 0 <.|K}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2?} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,@}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0A}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhB}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNC}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.D},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  E}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PF},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭG}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOH}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξI}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE J}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!K}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥL}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEM} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LN}!ERROR- 128ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAO}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8 uP} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8 uLLu ÝDEHILV 9 .l 9 .l  ``LG$B BHR}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu }u L <.`Lu 4U (c)1983 Action Computer Services  B JKIHT}iDiELV`L94 94 BLV`"L44l L4 &` Fj`8冨U}凪` 4EӅӥ 4`ʆǪƩ Ɛee` 4ƦʆǢ &Ɛeǐ 5 V}5L4 4'&&&8儨児祂*L4&&*ń8&&L4 W5`hihiHHȱȱW}L4c !#3`L4JJJJ`H 4h`Hȩh n4L5 w4L5 !4LX}5 )4L5 /4H8`HhHh [6L5 BHI V䅠L5 L6 94L5ԆY} ؠPIPP` 6P )4L5 6L6 6L6 7L6H- 68塪墨hL7 7L6 "Z}7L6 6ȹP`텠8堨塪 6芨Oȩ-`PP 6P棩 Ѥģ0[}-ģ6000:,80H & &ehe&eģ0ʥ 8堅塅`$ 6&*i0:0i 6Ʀ`\}¢ 护°ڱ%ȱ%E 6L\8担CS N6L\8I 7L\8H 8L\8 6L\8 ]} &B V 5NLMȑ` MLN%B VL5S:8E:9[\ZUVT`Ѣ =9`ȱѢĦ^}`膡``ťƤe8夰LS9 Ƥ8`ŦeѠ_}e桊LW9)")T1RINTE(" but DO use the pD1:AUTORUN.SYSD1:D1:DOS.SYS,DOS.SYSRUN"D: .SAV, @7K8`}P?@     Y`  Y0 l `7L 䙣ލa}Ȏ!"` !"H h`lDD L;;;L9; 6L2; to continue, push b}Ԣ; N6)ILL;L9;)L];LL;`Lb; 6^;^;`our BL; 5w;{; _;z;z;IL;{;iw;ec}x;iw;x;{;{;`z;)z;z;I}L<{;L<z;{;< 5==8= > >=h}LD>o=m==i 6=L>`TLI>Lj>} 堢>L ;6L> This program will work with and>t i};6L>" affect the diskette inserted in> ;6L> drive number %C.%E9> ?8L?"To specify another drive, simplyj}> ;6LD?# enter just the drive's number at? ;6Lq?" the prompt (any key but a valid?N ;6L?& drive number requestsk} 'no change').?{ ;6L?Which drive to use ? ? N6 _;E>E>1L:@4E>L:@E> 6E>9E>9E>9E>:L)@ %E%E l}Drive %C now selected.%E9@ ?8Lu@Lg@)%E%ENo change--drive %C still selected.%E9@= ?8`'Lz@L@ Current System}m Configuration:@} ;6L@Active Drives: @ N6v@v@L@ v@=%:L@v@i0 6 6v@L@ 6 )L-ALn}&A (RamDisk)A ;6 )v@v@ILALdA!κ IF a RAMDISK is added toAB ;6LA# this configuration, tho}e DOS menuAn ;6LA will NOT work properly!A ;6v@ILOBLA!Һ do NOT return to DOS withA ;6LB" this confip}guration active. theA ;6LHB# DOS menu will NOT work properly!B$ ;6L|B)%EUp to %B files open simultaneously.%E%E q}BR ?8LBDisk writes occur B N6yIPLBLB verify.B ;6LBLB with verify.B ;6` CloLBLC&} r}B ;6 w@LIC"Do you want to change any part ofC& ;6LrC that configuration (Y/N) ? CS N6 `=s}LC 6 69` B ByBLC#}Specify active drives by simplyC ;6LC" typing their drive numbers, oneCt} ;6L!D! after another. Any key exceptC ;6LOD# a valid drive number (1 to 4) isD+ ;6L}D# assumed to be end of youru} entry.DY ;6LDActive drive numbers ? D N6 )   _;BB1LD4BLDB 6 6B) %: LDLv}DLD 6L!E#How many files do you need to haveD ;6LKE open simultaneously (1-7) ? E+ N6 _;BB1L|E7BL|Ew}B 6B)  6LE!Do you want disk writes to occurE ;6LE verify (Y/N) ?E N6 `=ILEPyLEWyLFx}!} E ;6 w@L@F#Are you this configurationF ;6LgF is what you want (Y/N) ? Fy}J N6 `=LFByB B LG  6LF!Current system configuration hasF ;6LF been changed. Do you want toFz} ;6LG! make these changes to the diskF ;6L;G! currently in drive %C (Y/N) ? 9G ?8 `=ILG H69{}:  69LG 6 6LG!Unable to change DOS on that diskG ;6LG! because error # %U occurred.%E9|}G ?8 6LGLB`,LGL!H&}Please enter the name of the BASICG ;6LLH program that you wish to haveH+ ;6LzH# auto}}matically RUN when this diskHV ;6LH is next Booted.H ;6LH!Do NOT enter the drive specifierH ;6LH# (i.e., do ~}not use D:, D1:, etc.)H ;6LI" but DO use the proper extensionH ;6LKI" (e.g., .BAS, .SAV, etc.) if youI( ;6LtI } SAVEd it with an extension.IU ;6LI"REMEMBER: The BASIC program thatI~ ;6LI wish to 'AUTORUN' in this wayI ;6L}I! MUST be SAVEd on the same diskI ;6L%J" which receives this AUTORUN.SYSJ ;6L@J program file!J/ ;6LpJ%Now e}nter your BASIC program's nameJJ ;6LJ here >> Jz N6 9 |;LJ`G9 <`ILJLJ&} }ήӠ堢J ;6LK"When the disk currently in driveJ ;6L=K# number %C is next booted, what%E9K ?8L}hK do you want to happen?KN ;6LK"1. The RS232 (R:) drivers for theKr ;6LK! ATARI 850 Interface Module areK ;6L}K loaded and made active.K ;6LL&2. A BASIC program will automaticallyK ;6L2L load and RUN.L! ;6L_L"3. Both }actions (1. and 2. above)L< ;6LxL will occur.Li ;6LL0. None--quit to main menu.L ;6LL! Your choice (0,1,2},or 3) ? L N6 _;JJ0LL3ʹJLLJ)` = ;LJRINTELM JMMLM9`M)LwO GILMLUM}}Oops! That was not aM; ;6LsM valid file name!M_ ;6LM%Read the instructions again, please.M} ;6 ;9`99}Т9 < H699 69LeO9ILN9LN}Be careful!M ;6L9NThe BASIC program name you used}N ;6L`N has not yet been SAVEd onNC ;6LxN this disk!Nj ;6LNDo you want to do this AUTORUNN ;6LN setup a}nyway (Y/N) ? N N6 `=ILN9`LeO 6L O#Oops! Error # %U while trying to%E9N ?8L=O check that BASIC prog}ram file.O ;6L]O%EUnable to continue.OG ?8`:9Т: L}U9SI2LU BLU9SI3LU MLU =9LU 6 6 ;LS`:S,or 3) ? U8 N6 _;9S99SI0L~U RLU9SI1LU F>LA8<<  B JKIHiDiELV`L8 8 BLV`Lx }8t8l Lu8hihiHHȱȱL8c !#3`Lu8JJJJ`H 8h`H }ȩh Q8L8 Z8L8 8L8 8L8 8L8S:@9E:E9H '9 H9I9 8 '9h)0IC }9D9L8 L :::: :Lr:::IEL[::i:iIIL[:`:i::i }::L:`L{:w:w: C`L:L: D8:MEM.SAV: 8| 9 '9`L:L: D:DUP.SYS:̩ 8 } x:ɀL: '9`88 |9Y:X: '9L); D8:DUP.SYS; 8::88 9 '98? :`;WL`; 9 }Ln; ` :Y;Y;L;L;)} Setting Up ATARI 130XE Ram Disk; 9L; ; -9   } L;D8:; :9 :Y;L9>F⅑ /ƑƑ / / / ,8 $,=. H},% . -,L0. H, -, ,#/ H,8倅偅iԥi .a/ -, ,傅ԭ僅 ../ -,@ -1L}22LN33L64L15L36l 7L818оL4** RUN BINARY FILE **Not a runable file - .  $,1 -, ,  }- ,  ,%1 -, ,L-L20** DISK INDEX **Enter drive 1 to 8 .  $,w1 -, , -1 -,D ȩ: ȩ* ȩ. }* ȩ  -191  ,  -DEHIB VLt- - ,L- ݀ ,DE}HI B n-报) ,L2** LOAD FILE **Memory full .  $,r2 -, , -  -DE8倝H偝I}B V Lt- ,2 -, `-HeIe8L20** SAVE FILE **Press to use input filename.} . -  $,3 -,%L6 ,-3 -, , -,L3  -8倝H偝IHIDE B n- -L20** C}REATE NEW FILE ** .  $,Ơ3 -, ,L20 `-L6}}Utilities1 Delete file2 Rename file3 Format di}sk4 Disk index5 Lock file6 Unlock fileX Return to main menuWhich ?4 H, -1L42LM53L54}L15LP66L~6XL20** DELETE FILE ** .  $,ܠ4 -, , ,!H -hB DE n-L4** RENAME FILE **Enter old,new} filenames. .  $,"5 -, ,45 -, , L5** FORMAT DISK **Enter drive 1 to 4Type "Y" to format .  $,p5 -, },5 -, ,D ȩ: ȩ  -1#5 5 H,  -,@ -YL4L5 ,5 -, ,D ȩ: ȩ  -15} ** LOCK FILE ** .  $,@6 -, , ,#L5** UNLOCK FILE ** .  $,l6 -, , ,$L5pp0 .% $,}. -, ,L-68喅揩66@2>3>080116!0ȭ1/  , <7 }= ~=LZ=XY `I`РPРP`ńŅ`Ņń`8叅ɛ}L78劅`e`8劅Ɖ`e`8劅ƅ`e`Cursor meets extreme of fileMemory fullNo search mod}el definedNo matching stringError No mark set`86 , e7`87L88L8T8L8"8L8:8L8M8} , - = \7Э \7 - 'GL8)?< \7)I@2 - =L8' \7IL8) \7 -Э}Lg:)_L20LLt;RL;TL5DIL=V ~=FLDC iL8BN L8M 6I6 =L8 \7 -} CLl?PL?DL>?I ƟL8U Ɵ =L8~LAɝLCɜLAL}D#%; , - X@ = =L8 }X@ =L8escUse  keys to set left margin.Use  keys to set right margin.8喅` ,); , C -+ * =L8ƖƋ} 7 j; ?L;斥ŗƖL;择 7 j; <7 ?L; ,I; , C -* + =L8' j; ?L;ƗŖL; j; <7 ?L;8喍}< oC 7La8 7 7 7 ( 7L= ,= , o,`Marked ,+> ,2>3> - =L82> 3>La882>儭3>兰 2>6>3>7>82>4>}3>5>L>6>7>82>儍4>3>免5>4>5>2>3>`Exceeds buffer size. Cont Y/N W>84>5>' , e7> , -)_Y 6} =L8L?4>5>8>9>6>7>$ %C` 7 6= >6>7>4>5> B @ =L8Copied > ,e? , - =L8}8> :>L88>9> @$8>9> %C ?L88喅8内8内ɛUďei}i(i憥`8吥呰Ġ ď憥`(eiL!@ ?ď?L?6 7` @ ?ɛ`} @W@ = W@W@ş ?` 78@XeYi8@ ?@ 7@ 7m@`@@m@m}@吭呰La8m@m@8儅充敦ee褔 ƑƓm@m@`ɛ)}0:A[a{8`` 6= 7La8 B ?L8 7L80:A[a{Ș B ?L8A oC 7A }]CɛďA B ?L8Delete to start of file y/n ,B , -)_Y =L88H偨h B =LZ=Delete to en}d of file y/n ,dB , -)_Y =L8ɛ = ? =L8BB8BB8倥偰8倍B偍B}mBmB8儅充 %C8BB`IȄ8唅Ƒ8唅Ɠ褔`擱`8喨 7 7}` 7 7ɛėL{C 7 7` ]C @ ?L8 @ ?L8 ,D , D - LVEI/O error . Press any key.Output filename- W> ,.E , D -JK} DEB VLyF6>D7>E4>H5>I B VLyF - =L8Input filename- ,E , D - DEB}JK VLyF傍4>働5>4>5> @DE4>H5>IB VH -ԥHH}H}I84>HH5>Ih }Bhh ?h0La8LyF =L8xF - , e7E ,xF o,E , - =L8 FFL'G =L8 ,i/ , FF`}Э -` -~בLFʩ ƛLFFLa8ii [GYGZG @ =L}8La8F`łŃ`̀(ɛLvGeił٥Ń`ei̫F ـLvGYGZG}8`Working FF =L8Э ,/ , Fم ,/ , -)_AG ,ҠG ,L9HVGii [G @} =L8YGZGG @ \7 ,/ , -)_RL9HF B @ĜL9H mA =LH mA =LHL8 6= mA 6= mA =L8}A{[aI ? =L8;/RL9HF B @ĜL9H mA =LH mA =LHL8 6= mA 6= mA =L8+%n%*ʝ  ` ``  } }  `8     `8   `    }^ ~  e  e &` > &&8  > > ƀ` %  ` =   =  ` }     ` ]   ]  ` I  I `    U  M  E  `  2  ( } ׽ ͽ     `   } }  `  ` > } } } ȱ ` > } } Ƚ `} } ` 腋`8HH``}膇`H8     h}  }  `8           Ā фIJ)e}e慠ф$%Ɓ   ``` 'Ji  ` 'J 'i  ` ' 'J}J 'JJ8   i L<'8    8  8 ȱ 8 ȱ  }  }  }  )`   ȱ 8  8 ȱ L<' }  } 8ȱ僰 }<'8  ȱ   } Ƚ }  }  }  )`8  8 ȱ  <' ȱ  Ƚ} 8倥偐^~%+6)+6JJJJ8L88+6)L8,6+6L}9,6I+6əLk9 Llm46ȱm56Lu9ݯ8Lu9m06Lu9,6Lu9+6)m36m,6}iL8*m46ȱm56ii+ݥN%m46%%m56%%m46%%m56%46563606`Enter ORG ad }dress (hex)- ,9 <, 88*46*560C&)m46ȱm56ieiL(: 8`Enter new STACK address (hex) }- ,X: <, 8Z 4LK4C8/606/6 8L7Enter zero page start (hex)- ,: <, 8/L<4-6m268-6[L<426 }-681636 Cm36 C,Cm36,C-616 8L7Enter zero page length (hex)- ,; <, 8/L<4-6m16\L<4-626L7 }"Mȩȩ;`;;;;;;L;%`…ƥÅǠ``8ƥǰL;Hh`(L<4ʝ }$$`$$)L<4膔` ()+-*/,[];><=&#!:"$?^@\%.'AND OR NOT XOR MOD CHAR SHR SHL DO THEN TO DOWNTO STEP ELSE ENDIF WHIL}E IF ENDWHILE REPEAT UNTIL FOREVER FOR NOTRAP | TRAP NEXT | | RETURN CODE GOTO | | ON END CASE ENDCASE OF ENDOF CALL | DATA B}ASED FORWARD BEGIN INT BYTE CONST STRING PROC FUNC MAIN INTERRUPT LINK INCLUDE ENDFILE POINTER BODY INX DEX INY DEY ASLA ROL}A LSRA RORA TAX TXA TAY TYA TSX TXS CLV CLD SED CLI SEI CLC SEC RTS BRK RTI PHP PLP PHA PLA NOP BPL BMI BVC BVS BCC BCS BNE B}EQ LDA STA AND CMP ADC SBC ORA EOR INC DEC ASL ROL LSR ROR BIT LDX STX LDY STY CPX CPY JMP JSR  LA>ɛ} %L<4L5 ~3LA> <ɛLq>I ='池` =L>>L>汘`! H?LA>8岅}$<挠ɛ`L=L> Ļ8eiL>ѕ Ļ`8eiL>G?G?}G?8岅G?ɛ膱` A> ? dCL? C 4` A> L6^L6^A L6^{L6^Ļ0L?` %@} %@ AL? %@8$$$$$$L?  %@$$$$$$L? ;` j@ A> j@ @AL(@ j@ xAL(@ j@}$=$$$=$$L(@` A> ? ; 4` A>L@ A>L@L;汽 ; A>N 4` ? C}L; 4L@ CL; @ ;` ;800( 8ŗ ; A沥ű ; @ALA ;L6^ ;`$$}$$^$~$$e$$e$&2$>$&&8$$>$>$Ƣ`$}$$$}$$LA}AA ;AȭA`A 1E`8A 5ȱ*ȱ*88`*ȱ*ALBi}i`$ ;`$)iF 4 A>L9^FŌ`L6^ mE ;yBzB{B|B$4"ɛ DLB A>+} A>$4L6^ ?/L6^ D溥խyBzB ; A{B|B 2IL2ISTACK XSAVEERRNUMPUSH%PULL}%ERROR7'MOVE)FILLb*CLC`C C`CcCLCż }Ž`)ȱ)ȱeHȱehLC  LDCieiLC릲ȱĻȱ}H)h)Cȱȱȱȱȥ`8廅 ȽĻŴ ų} L<4`)ȥȑȑȑȑ`L7EL7EHhL7E LDLLDLDLDLDLDLDLD }LDHeiheiŴ ų L<4`** E`q E8Hh ;` E=L6^ E E E+ + ELE !} E E + + ELE"` E E + + ELE fF  fF E++ ELE  fF E++ ELE  fF E++ ELE fF E"}++ ELE fF E++ ELE` fF E++ ELE F# F E A A**LF** ELiF` F E** ELiF #}F A> F E++ ELF F E++ ELF#` F E++ ELF A>'L6^LF ELqB! F E++$} E`% F E^/6 D~/6 D`& F E/6 D>/6 D`  A> @L2ILpG F++ E` A> CL.I%}L6^ ? C牢L2I ILDI汽H A>N qBhL2IL6^ C LuGLfHLHLHLIL.I H T&}h` 1E DLH$ 1E DH D Dh DLHL6^ D D**LE ELtH! D D D'} D**LE E扦 ELH A> qBHHH Ehh +Eh 1E  qB ++ E`++ E` A> qBHH Eh +Eh (}1E +!+ E LqB +E 1ELHLtH .+/+LI 0+1+LI 2+3+LI 4+5+LI 6+7+LIߥ`8+9+H)}H A> I9L6^hh E`$ }B8`` C I8`H Th A>8`{B|B A>L6^ A>7{B|B 2I8{B*}{B|B|B{B|B E{B|B{B|B ELHH E' E D/6 DР D D/6 DL{J J{B|B{B +E|B 1E,+-+ E +} qB A>h`JJ A>L6^ A>*@+A+8JHJh 2I<+H=+HL KLK E  qB A>>+?+LK E  qB A>,}:+;+HH  qB A> I;L6^JJ 2Ihh EL4]L6^DKXEK r?EKFKGK `D A-}>EK EK D A> A>DK qB A>LKLEK AL6^ PP& ? CCL6^FKeFKGK `D A>L.}K qBDK)ȭEKȭGK FKP& 4 A>JL`8ȑȩ8峑/}崑)ȭDK @ȥȥ aq E PaL`0BL6^)ȌL,LLȱ aLL E PaL0}L aLBKȥCKȱFKDKL1]FKL!N@L6^A)ȱ:Yȱ;YȱR ? CL6^C)@?L6^ieLN3}iMN8LN婍MN媍8NNON8NN厭ON台 L<4 ,ONNON8LN峍MN崍 ,Oi4}i CEK)ȱ) DK)L`ee褂 Ɓƅ`Unresolved reference to 5} ;UO)iP 4 ;UO P\ PaCş ŠLP)ȱ  (VO <, <, ,4 <, <, ,毠)6}ieLOCEKL_L` ?C dC1  FLP 4LNP ȱHȱh ; ALP `DCL1] 7}H, 4h, 4LP ȱȱȥLPLLPMLPWLSO`LqRP r?P8}PPP `D A>2FKGKILQ ? C+L6^e D A>LcR ?PPmFKFKmGKGKiP9}PP D  qB A>  ?PPP DLcRHLGRɀ!L6^ aP P2 4P) ? DL R A> ? DL R:}P P2L6^ɛ" D8PPλPLQ A>L1R8PPPPLQ  qB A> PaP)P.PmPmP;}LPLP r? `DFKiFKGKiGK A>L6^ A>L6^ a ?PP DХѢ DPP D <} qB A>HLwSɀ!L6^P P2L6^ A> ? D8PPλP SLdSP P2L6^ɛ!" D8PPλP SL=}*S A>LR  qB A> PamPmPLqRLPiȱi`T+81626PL6^ r?T+ `DT+T+FK>}GK A>LP r? `D A> L6^ ? D` ; ; E** EР D ; ; mE ;( qBL1] LBq ?}E A tE ;L1] LB AL1] ; ; ; E** EР D ; ; mE ;' qBL1] LBiHih A ; E@}L1]HHT A> qB A>T A>THH qB A>% Eh8HL/Uh8H qBhThT 4LWUA} 4hh E`ii EaUbU DcUdU D A> CfUgU ;aUbU ; ; ; ;L6^ =Y)B}LU*LUL6^eUaU;YbUL9^DK ? dC$ -L6^ +E 1E*H}+++ EXL1] `Dq +ELX(+)+ EL1] ? DLY DL&]L D ? dC `DL2Y -L6^ DI}` A>;Y  qB E;Y +K}EWZ ?UZVZ`/L6^\ ?UZVZVZWZ`WZ`汽X YƱL}1L6^VZ WZ A>`LZVZLZLZ ?UZVZ/ 4汽Xд A>ЭLZФ汽,Й汽YЏ LZ ;M} ; E ; ; ; ;D8 qB EF+G+ E D mE ;' qBL1] LBq E A tE ; A>DLP[ DCN} ,6L6^L1] ; AL[ H ;hiFL6^ ;L1] E A cE=7 qB[A D DL D[[ Dɬ[ DРO} D Y[ A>A[[ ; AL4]DK0EK ELs\ A> I L6^ A>2 C L6^ =YL4] TL1]LJ0L6^ɀL^L^BL$[CL[DLP[ELw[R}@L[/LT,LLT-LkT.LzT0LT1LX2L)X3LxX4LhU8L(V; P\L1]<LX= YL1]F YL1]7LX5S}LXLPALoO L1]3 4LO K+Y'L`L4] L1]LP,GL4] A>L9^ɥW8逪\ DɝL1]T} ? C `D DL1] -L6^H,L6^h DL1]ɺLc_8饅 \\ XZWZ &.L6^8 WZFU}WZWZL_\ WZʽ\LE_WZʽ\e DUZ DVZWZ DL4]ɻ ? EL4]ɺ L6^ A> ? EL4]l V}D ? D. qBL1]End of compilation.errors.FORWARD routine "" has no BODYR+HH煐 ahh D PaS+W} aBKCK D Pa Ly`)_ȱ)@ _ <, <,Ԡ_ , ,毭_ieiL&`_ , , f+X} +_ ,LK4  qB A>  PN SL`K qBLL PN SL`PEKLHKQEKLHKS EKLHKTL5UY}L5REKLHKLVL5XLPN A>  qB ?L` 4 A>L9^O+3DE8ȥ8HI B Z}64ȥii`ׄؠܤܱɛ La`' ݈`..`P`rMicro editor1 Load file2[} Save file3 Edit file4 Disk index5 Create new fileX Return to main menuWhich ?File in memory No file in memory. F\}ile size bytes free.bytes.Search string ? `…ƅĩnÅŅXiݥYiީԩ'թ̅ͅ٩کⅣ ѩ ]}bƣƣ b b b` e-g+ +a <, f+% kb ,LcZb <,. , ,~b <,8…̥Åi^}Hih +b , ,HŨh +b ,@ V-1Lc2Ld3Le4L15LVeXL.** LOAD FILE ** e-  +_}ݠc , ,. , $-. --DÝE8HÝIB V ̅L<4 ff , a aHe…ĽIeÅ8`}ŠĢ $-Lc** SAVE FILE **Press to use input filename e-  +d , ,%Led , , $-. ,a} ,, <,. ,.Le. <-8HÝIHIDÝE B 64 $-Lc** CREATE FILE ** e-  +De , ,.b} ,Lc a…ĥÅũ©̅Le e-% +kb , ,LK4e8ԅΩee  a e $jLjXY c}`I`РPРP```Є8΅ХѤΈɛL8f8劅`eȅȐ`d}8劅Ȱ`eƅƐ`8劅ư`e`Cursor meets extreme of fileMemory fullNo search model definedNo matching e}stringError fe a fffL4gfL4gfL4g٠fL4gf a a Ej eЭ e V- mLf}=g)?< e)I@2 V-L=g' eIL~g)3 e V-۩ЭL\h)_LcIL5jV $jL=g e V-g} WiL=g hL=g iL=g iL=gLkLnLnLnL9m (m lL=g lL=g lL=g LlLmL=gq}hB%DOS SYSB*'DUP SYSBFSSETUP SYSB RAMD COMB<KED COMBPL65 COMBTERMINALLIBBSTRING LIBBGRAPHICSLIBBPEEKPOKELIBBUDG LIBB SOUND LIBBPMG LIBBDEBUG LIBBPADDLE LIBBPSAMPLE PRGB/AUTORUN SYSBNREAD ME CaDUP PRGBkPARTS LST)_BLjTLjSLlmL=g~LkɝLlɜLkLKm V- j iL=g8ԅ`8ԍh l fLf vf hf r}^fԅʥ ( ^fL4iXi(ХYiѢБ(i(ii(Хiة  Ejhɛ̶h vf ^feԅ`s}8ԍVi l )fLf8 4f f EjLi˩( hfViɛVi ^f vfeԅ` fLfɛ l h` ^t}f vf` )fLf  hf f` Wi l`…ƥÅ jL=gąƥŅ jL=gؽj `ة L=g8ԅ8u}8嘅Хѥ˅ɛUΐeii(Хi春`8墥声Ġ ΐ春`(eЅХiLj v}DjΐDjLyj 6kۑ Ej`Ƥ 4f8jXeԅȥYi8jƥǥԅʩ Ejj ^fj vfmj`4k5km4km5w}k墭声Lfƅm4kХDžm5k8ƅҥDžӦӊeeх ƣѱЈm4kĥm5k` i fx}Lf l EjL=gk l fk lɛk l EjL=gll8ll8¥ð8lÍlƅmly}Džml8ƅҥDž rl8lĥl`IȄ8҅ƣ8҅аѦ`ѱ`8Ԩ hf fԅ` hfz} fʱɛLlʘ ^f vf` l jL=g WiLl l` l L=g WiLl hLl lL=g hLm8.˅ hƙL=ge{} WiƙL=gڍJm 6k Ej iJmL=g |mLm EjL=g ab a m`e݅ޅЄѭЭ V|}-` V-~בБLmʩ БLmLfii nnƭn jL=gLf``̀(ɛ}}L-nei٥`ei ـL-nnn8`ɛ)0:A[a{8`` n i~}Ln n iLnL=g i n i n iL=gA{[aI Ej iL=g;/.)0:A[a{8`` n iU!=================================!TERMINAL.LIB!ATARI operating system interface!Copyright (C) 1987 Noahsoft!============}=====================INCLUDE D:STRING.LIBCONST ICCOM=$342,ICSTA=$343CONST ICBAL=$344,ICBAH=$345CONST ICBLL=$348,ICBLH=$}349POINTER TERMPTBYTE POKVAL BASED TERMPTINT DOKVAL BASED TERMPTBYTE OCHARPROC WRTSTR(INT ADDR,LEN) FORWARDPROC WRI}TE*(INT NUM) FORWARDPROC CIO*(BYTE IOCB BYTE COM INT ADDR,LEN)BEGIN LDA STACK+6,X ASLA ASLA ASLA ASLA TAY LDA STACK+4},X STA ICCOM,Y LDA STACK+2,X STA ICBAL,Y LDA STACK+3,X STA ICBAH,Y LDA STACK,X STA ICBLL,Y LDA STACK+1,X STA ICBLH,Y T}XA CLC ADC #8 STA XSAVE TYA TAX LDA OCHAR JSR $E456 BMI ioerr LDX XSAVE RETURN:ioerr LDX XSAVE DEX DEX TYA STA STACK},X LDA #0 STA STACK+1,X ERROR*() WRTSTR("Error ") WRITE(ERRNUM)ENDFUNC GET*(BYTE IOCB)BEGIN CIO*(7,0,0) DEX DEX ST}A STACK,X LDA #0 STA STACK+1,XENDPROC PUT(BYTE IOCB,byte=OCHAR)BEGIN CIO(IOCB,$0B,0,0)ENDPROC CLOSE*(BYTE IOCB)BEGI}N CIO*($0C,0,0)ENDPROC OPEN(BYTE IOCB,AUX1,AUX2 INT ADDR,COUNT)BEGIN TERMPT=$34A+16*IOCB POKVAL=AUX1 TERMPT=}$34B+16*IOCB POKVAL=AUX2 CIO(IOCB,3,ADDR,COUNT)ENDPROC GCHAR(BYTE IOCB INT ADDR,LEN)BEGIN IF LEN>0 THEN CIO(IOCB,7,AD}DR,LEN) ENDIFENDPROC PCHAR(BYTE IOCB INT ADDR,LEN)BEGIN CIO(IOCB,$0B,ADDR,LEN)ENDFUNC GREC(BYTE IOCB INT ADDR,LEN)B}EGIN CIO(IOCB,5,ADDR,LEN) TERMPT=IOCB*16+ICBLLEND DOKVALFUNC INPUT$()STRING BUFF$[128]INT ABEGIN A=GREC(0,.BUFF,128)} TERMPT=.BUFF-2 DOKVAL=AEND BUFF$PROC PREC(BYTE IOCB INT ADDR,LEN)BEGIN CIO(IOCB,9,ADDR,LEN)END FUNC STATUS(BYTE IO}CB)BEGIN TERMPT=IOCB*16+ICSTAEND POKVALBODY WRTSTRBEGIN PCHAR(0,ADDR,LEN)ENDPROC CR()BEGIN PUT(0,$9B)ENDPROC W}RTLN(PROC WRTSTR)BEGIN CR()ENDBODY WRITEBEGIN WRTSTR(STR$*())ENDENDFILENDPROC CR()BEGIN PUT(0,$9B)ENDPROC WR!===========================!STRING.LIB!String utility routines!Copyright (C) 1987 Noahsoft!===========================}POINTER strptrBYTE strval BASED strptrBYTE BASE DATA 10;FUNC STR$(INT NUM)STRING SBUFF$[16]BYTE A,BBEGIN SBUFF$[15]="}0";A=16 REPEAT DEC A B=NUM MOD BASE+48 IF B>=58 THEN B=B+7 ENDIF NUM=NUM/BASE strptr=.SBUFF+A strval=B UNT}IL NUM=0END SBUFF$[A]FUNC VAL(INT addr=strptr BYTE len)INT numb BYTE tempBEGIN numb=0;temp=0 WHILE len>0 DO numb=nu}mb*BASE LDY temp;LDA (strptr),Y SEC;SBC #48;BPL L1:error ERROR(3) RETURN 0:L1 CMP #10;BCC L2 SBC #7:L2 CMP BASE;BCS }error ADC numb;STA numb INC temp;DEC len ENDWHILEEND numbFUNC LEN(INT addr,len)BEGINEND lenFUNC CHR$(BYTE char)S}TRING A$[1]BEGIN A$=" " strptr=.A strval=charEND A$FUNC ASC(INT addr,len)BEGIN strptr=addrEND strvalENDFILEar)Sx!===========================!GRAPHICS.LIB!ATARI graphics handler!Copyright (C) 1987 Noahsoft!===========================!}INCLUDE D:TERMINAL.LIBBYTE COLORPROC POS(INT COL=$55 BYTE ROW=$54)BEGIN ENDPROC GRAPHICS(BYTE MODE)BEGIN CLOSE(6) !}OPEN(6,12,MODE,"S:")ENDPROC SETCOLOR(BYTE REG,COL,LUM)BYTE RCOL[5]=$2C4BEGIN RCOL[REG]=COL*16+LUM;ENDPROC PLOT(PROC !}POS)BEGIN PUT(6,COLOR)ENDFUNC LOCATE(PROC POS)BEGINEND GET(6)PROC DRAW(PROC POS)BYTE ATACHR=$2FBBEGIN ATACHR=COLO!}R CIO(6,$11,0,0)ENDPROC GFILL(PROC POS)BYTE ATACHR=$2FBBEGIN ATACHR=COLOR CIO(6,$12,0,0)ENDENDFILEIN ATACHR=COLO n!==========================!PEEKPOKE.LIB!Memory access routines!Copyright (C) 1987 Noahsoft!==========================!%}Declare a general purpose pointerPOINTER gppointerPROC POKE*(INT addr BYTE byte)BEGIN LDA STACK+2,X;STA gppointer LDA %}STACK+3,X;STA gppointer+1 LDY #0 LDA STACK,X;STA (gppointer),Y INX INX INX INXENDFUNC PEEK*(INT addr)BEGIN LDA STACK,%}X;STA gppointer LDA STACK+1,X;STA gppointer+1 LDY #0 LDA (gppointer),Y STA STACK,X TYA STA STACK+1,XENDPROC DOKE*(IN%}T addr,word)BEGIN LDA STACK+2,X;STA gppointer LDA STACK+3,X;STA gppointer+1 LDY #0 LDA STACK,X;STA (gppointer),Y INY L%}DA STACK+1,X;STA (gppointer),Y INX INX INX INXENDFUNC DEEK*(INT addr)BEGIN LDA STACK,X;STA gppointer LDA STACK+1,X;STA%} gppointer+1 LDY #0 LDA (gppointer),Y;STA STACK,X INY LDA (gppointer),Y;STA STACK+1,XENDENDFILEter LDA STACK+1,X;STA$g!===============================!UDG.LIB!User defined graphics routines!Copyright (C) 1987 Noahsoft!=====================)}==========!Dummy array, moves PC to 1K boundaryBYTE UDCDUM[$400-@AND$3FF]!Array holds new char set dataBYTE NCSMEM[$400)}]BYTE CHBAS=$2F4 !OS database pointerPROC ATARI() !switch to ATASCIIBEGIN CHBAS=$E0;ENDPROC CUSTOM() !switch to cust)}om setBEGIN CHBAS=.NCSMEM/256ENDPROC UDG() !Enable user graphicsBEGIN MOVE($E000,$400,.NCSMEM) CUSTOM()END!Define )}a new char.PROC DEFCHAR(BYTE char,data[8])INT ABEGIN FOR A=0 TO 7 DO NCSMEM[char*8+A]=data[A] NEXTEND!Define an AS)}CII characterPROC DEFASC*(PROC DEFCHAR)BYTE TABLE[8] DATA $40,$E0,$E0,0,$40,$E0,$E0,0;BEGIN LDA STACK+16,X;AND #$E0;LSRA)} LSRA;LSRA;LSRA;LSRA TAY;LDA TABLE,Y;CLC ADC STACK+16,X;STA STACK+16,X DEFCHAR*()ENDENDFILEA STACK+16,X;AND #$E0;LSRA(b!===========================!SOUND.LIB!Sound control routines!Copyright (C) 1987 Noahsoft!===========================BYT-}E delt[4],DFLG[4]PROC SOUND*(BYTE chan,pitch,dist,vol)BYTE SKCTL=$D20F,AUDCTL=$D208BYTE AUDF1=$D200,AUDC1=$D201BEGIN LD-}A #3;STA SKCTL LDA #0;STA AUDCTL LDA STACK+6,X;AND #3;ASLA;TAY LDA STACK,X;AND #$F;STA STACK,X LDA STACK+2,X;ASLA ASLA AS-}LA ASLA ORA STACK,X;STA AUDC1,Y LDA STACK+4,X;STA AUDF1,Y TXA;CLC;ADC #8;TAX !remove paramsENDPROC VBLANK*() !vertical -}blank interrupt routineBYTE AUDC1=$D201BEGIN LDX #3 !No need to worry in Vblanks :VLOOP LDA DFLG,X;BEQ NOACT DEC delt,X-};BNE NOACT TXA ASLA TAY LDA #0;STA AUDC1,Y;STA DFLG,X :NOACT DEX;BPL VLOOP JMP $E462 !vblank exit vectorENDPROC PLAY*-}(PROC SOUND BYTE TIME)BEGIN LDA STACK+8,X;AND #3;TAY LDA STACK,X;STA delt,Y LDA #1;STA DFLG,Y STX XSAVE LDX #VBLANK/256-};LDY #VBLANK AND $FF LDA #7;JSR $E45C !enable interrupt LDX XSAVE;INX INX SOUND*()ENDPROC NOTE*(BYTE chan,pitch)BYTE A-}UDF1=$D200BEGIN LDA STACK+2,X;AND #3;ASLA;TAY LDA STACK,X;STA AUDF1,Y INX INX INX INX !remove paramsENDENDFILEBYTE A,v!================================!PMG.LIB !player missile graphics routines!Copyright (C) 1987 Noahsoft!=================1}===============CONST HEIGHT=8,SHAPES=16BYTE PMDUM[$800-(@ AND $7FF)]BYTE PMRAM[2048]BYTE PSHAPE[4*HEIGHT],MSHAPE[HEIGHT]1}BYTE SSHAPE[SHAPES*HEIGHT]BYTE PXPOS[4],PYPOS[4],MXPOS[4],MYPOS[4],RESINT PBASE[4],MBASEPOINTER pmptr1,pmptr2,pmptr3BYTE1} XOFS[8] DATA 0,1,1,1,0,$FF,$FF,$FF;BYTE YOFS[8] DATA $FF,$FF,0,1,1,1,0,$FF;FUNC RMULT*(INT numb)BEGIN LDA RES;BPL skip1} ASL STACK,X;ROL STACK+1,X :skipENDPROC ERASE*(INT addr,len)BEGIN LDA #0;LDY #0;JSR PUSH;JMP FILLENDPROC CPMR()BEGI1}N ERASE(MBASE,RMULT($280))ENDPROC CLRP(BYTE PLAYER)BEGIN ERASE(PBASE[PLAYER],RMULT(128))ENDPROC CLRM(BYTE missile)B1}YTE MASKBEGIN LDA #3;LDY missile;BEQ skip :loop ASLA ASLA DEY;BNE loop :skip EOR #$FF STA MASK LDY #0 :loop2 LDA MBAS1}E,Y AND MASK STA MBASE,Y INY CPY RES BNE loop2ENDPROC PMGRAPHICS(BYTE MODE)BYTE GPRIOR=$26F,PMBASE=$D407BYTE SDMACTL=$21}2F,GRACTL=$D01DINT ABEGIN IF MODE=1 THEN RES=$FF ELSE RES=$7F ENDIF MBASE=.PMRAM+RMULT($180) CPMR() FOR A=0 TO 3 1}DO PBASE[A]=.PMRAM+RMULT($200)+A*RMULT(128) NEXT ERASE(.PSHAPE,?PSHAPE) ERASE(.MSHAPE,?MSHAPE) ERASE(.SSHAPE,?SSHAPE) 1}SDMACTL=SDMACTL AND $23 GPRIOR=1 GRACTL=3 SDMACTL=SHR SHR SHR(RES AND $80) OR SDMACTL OR $C PMBASE=.PMRAM/256ENDPROC DE1}FSHAPE(BYTE SNUMB,data[HEIGHT])INT IBEGIN ERASE(.SSHAPE+SNUMB*HEIGHT,HEIGHT) FOR I=0 TO HEIGHT-1 DO SSHAPE[SNUMB*HEIGHT1}+I]=data[I] NEXTENDPROC LOADSHAPE(BYTE P,S)BEGIN MOVE(.SSHAPE+S*HEIGHT,HEIGHT,.PSHAPE+P*HEIGHT)ENDPROC PCOLOR(BYTE p1}layer,col,lum)BYTE PCOL[4]=$2C0BEGIN PCOL[player]=col*16+(lum AND $F)ENDPROC PPLOT(BYTE P,X,Y)BYTE HPOSP0=$D000BEGIN1} LDA Y;AND RES;STA Y LDA P;AND #3;STA P pmptr3=PBASE[P]+PYPOS[P] pmptr1=.PSHAPE+P*HEIGHT pmptr2=PBASE[P]+Y LDY #HEIGHT-11};LDA #0:LOOP1 STA (pmptr3),Y DEY;BPL LOOP1 LDY #HEIGHT-1:LOOP2 LDA (pmptr1),Y;STA (pmptr2),Y DEY;BPL LOOP2 LDY P;LDA Y;1}STA PYPOS,Y LDA X;STA PXPOS,Y;STA HPOSP0,YENDPROC PMOVE(BYTE P,DIR)BEGIN LDA P;AND#3;STA P LDA DIR;AND #7;STA DIR PPL1}OT(P,PXPOS[P]+XOFS[DIR],PYPOS[P]+YOFS[DIR])ENDPROC PSIZE(BYTE P,SIZE)BYTE PSIZ[4]=$D008BEGIN LDA P;AND #3;STA P PSIZ[P1}]=SIZEENDPROC MSIZE(BYTE M,SIZE)BYTE SIZEM=$D00C,HOLD DATA 0;BEGIN LDA M;AND #3;STA M LDA SIZE;AND #3 LDY M;BEQ skip1}:LOOP ASLA ASLA DEY BNE LOOP:skip ORA HOLD;STA HOLD;STA SIZEMENDPROC MLOAD(BYTE M,data[HEIGHT])BEGIN LDA M;AND #3;ST1}A M STX XSAVE LDY #HEIGHT-1:LOOP1 LDA data,Y;AND #3 LDX M BEQ SKIP:LOOP2 ASLA ASLA DEX BNE LOOP2:SKIP ORA MSHAPE,Y;S1}TA MSHAPE,Y DEY;BPL LOOP1 LDX XSAVEENDPROC MPLOT(BYTE M,X,Y)BYTE HPM0=$D004BYTE TABLE[4] DATA 3,$C,$30,$C0;BEGIN LDA1} Y;AND RES;STA Y LDA M;AND #3;STA M pmptr1=MBASE+MYPOS[M] pmptr2=MBASE+Y STX XSAVE;LDX M LDY #HEIGHT-1:LOOP1 LDA TABLE,1}X;EOR #$FF; AND (pmptr1),Y;STA (pmptr1),Y DEY;BPL LOOP1 LDY #HEIGHT-1:LOOP2 LDA MSHAPE,Y;AND TABLE,X ORA (pmptr2),Y;STA1} (pmptr2),Y DEY BPL LOOP2 LDA X;STA MXPOS,X;STA HPM0,X LDA Y;STA MYPOS,X LDX XSAVEENDPROC MMOVE(BYTE M,DIR)BEGIN LDA1} DIR;AND #7;STA DIR MPLOT(M,MXPOS[M]+XOFS[DIR],MYPOS[M]+YOFS[DIR])ENDPROC HITCLR()BEGIN STA $D01EENDFUNC MPFCOLL*(BY1}TE M)BYTE M0PF[4]=$D000BEGIN LDA STACK,X;AND #3;TAY LDA M0PF,Y;STA STACK,XENDFUNC PPFCOLL*(BYTE P)BYTE P0PF[4]=$D0041}BEGIN LDA STACK,X;AND #3;TAY LDA P0PF,Y;STA STACK,XENDFUNC MPLCOLL*(BYTE M)BYTE M0PL[4]=$D008BEGIN LDA STACK,X;AND #31};TAY LDA M0PL,Y;STA STACK,XENDFUNC PPLCOLL*(BYTE P)BYTE P0PL[4]=$D00CBEGIN LDA STACK,X;AND #3;TAY LDA P0PL,Y;STA STAC1}K,XENDENDFILESTA STACK,XENDFUNC PPLCOLL*(BYTE P)BYTE P0PL[4]=$D00CBEGIN LDA STACK,X;AND #3;TAY LDA P0PL,Y;STA STAC0!===========================!DEBUG.LIB!Copyright (c) 1987 Noahsoft!===========================INCLUDE D:TERMINAL.LIBPO5}INTER bugptrBYTE bugbyte BASED bugptrSTRING COM$[50]BYTE in,bugflgINT prgst=$2E0FUNC read()BYTE i,i2BEGIN LDY in;STY5} i LDA COM,Y;CMP #$9B;BNE loop bugflg=0;RETURN 0:loop STY i2;LDA COM,Y CMP #$9B;BEQ L2 CMP #44;BEQ L1 INY;BNE loop:L1 5}INY:L2 STY inbugflg=1END VAL(COM$[i,i2-1])PROC display()BEGINbugptr=read()WRITE(bugptr) WRTSTR("")FOR bugptr=bugptr5} TO bugptr+7 DO WRITE(bugbyte) WRTSTR(" ")NEXT CR()ENDPROC change()INT aBEGINbugptr=read()bugbyte=read()ENDPROC G5}O(INT runaddr)BEGIN SEC;LDA runaddr;SBC #1;TAY; LDA runaddr+1;SBC #0;PHA TYA;PHA;RTSENDPROC testproc()INT procaddr,I,5}PARAMS[16]BEGIN procaddr=read() FOR I=0 TO 15 DO PARAMS[I]=read() IF bugflg=0 THEN GOTO skip ENDIF NEXT:skip L5}DX #$FF;LDY #0 LDA I;BEQ dunprm:loop DEX DEX LDA PARAMS,Y;STA STACK,X;INY LDA PARAMS,Y;STA STACK+1,X;INY DEC I;BNE loop5}:dunprm GO(procaddr) WRTSTR("Routine leaves ") TXA;EOR#$FF;LSRA;STA I WRITE(I) WRTLN(" values") WHILE I>0 DO WRITE*()5} WRTSTR(" ") I=I-1 ENDWHILE CR()ENDPROC DEBUG()BEGIN LDX #$FF;TXS TRAP error WRTLN("Debug") BASE=16:command in=1 CR5}() WRTSTR(">") COM$=INPUT$() CASE ASC(COM$[0,0]) OF 'D' DO display() ENDOF OF 'G' DO GO(read()) ENDOF OF 'C' DO change5}() ENDOF OF 'R' DO GO(prgst) ENDOF OF 'T' DO testproc() ENDOF ELSE WRTLN("Invalid command") ENDCASE GOTO command:err5}or WRTSTR("Error ") WRITE(5) CR() GOTO commandENDPROC breakdetect*()BYTE BRKKEY=$11CONST PSTCK=$100BEGIN LDA BRKKEY5} BNE nobrk LDA #$80;STA BRKKEY;TSX LDA #DEBUG AND $FF;STA PSTCK+5,X; LDA #DEBUG/256;STA PSTCK+6,X;:nobrk JMP $E45FEND5}PROC buginit*()INT VVBLKI=$222,VBREAK=$206BEGIN VVBLKI=.breakdetect VBREAK=.DEBUGENDENDFILEX;:nobrk JMP $E45FEND4d!============================!PADDLE.LIB!Controller sensing variables!============================BYTE STICK[2]=$278,STR9}IG[2]=$284BYTE PADDLE[4]=$270,PTRIG[4]=$27CENDFILEsensing variables!============================BYTE STICK[2]=$278,STR86!================================!PANIC!COPYRIGHT (C) 1987 Noahsoft!================================!Climb the ladders, d=}ig holes!When the monsters fall into the!holes, hit them over the head!================================INCLUDE D:DEBUG.L=}IBINCLUDE D:GRAPHICS.LIBINCLUDE D:SOUND.LIBINCLUDE D:UDG.LIBINCLUDE D:PMG.LIBCONST START=6,SELECT=5,OPTION=3CONST scre=}en_right=200CONST screen_left=48POINTER SCRADRBYTE SCRVAL BASED SCRADRBYTE dir[3],dead[3],trap[3],monstersBYTE mdir,df=}lg,level,lives,qx,qyBYTE manx=PXPOS+3,many=PYPOS+3INT score,hiscore,SAVMSC=$58FUNC RND*()!returns a random 16 bit numbe=}rBYTE RANDOM=$D20ABEGIN LDA RANDOM;LDY RANDOM JSR PUSHENDFUNC RAND(BYTE range)!returns a random number!in the range =}0 to range-1BEGINEND RND()/(65535/range)PROC initialise()BEGIN lives=3;level=1;monsters=1;score=0ENDPROC initplayers=}()INT IBEGIN FOR I=0 TO 2 DO trap[I]=0 dead[I]=0 NEXT FOR I=0 TO monsters-1 DO dead[I]=level/4+1 LOADSHAPE(I,15) P=}COLOR(I,5,6) PPLOT(I,screen_left+I*2,I*32+48) dir[I]=2 NEXT LOADSHAPE(3,0) PCOLOR(3,7,14) PPLOT(3,screen_left,208)END=}FUNC alldead()!tests to see if all monsters are deadINT ABEGINEND (dead[0] OR dead[1] OR dead[2])=0PROC initdma()!init=} dma to stop moving bands of color after a GRAPHICS commandBYTE SDMCTL=$22FBEGIN SDMCTL=62 CPMR()END PROC WAIT(BYTE TI=}ME)!delays by 20mS intervalsBYTE JIF=$14BEGIN LDY TIME:WT1 LDA JIF:WT2 CMP JIF;BEQ WT2DEY;BNE WT1ENDFUNC CONSOL()!=}reads consol switchesBYTE CSWITCH=$D01FBEGIN CSWITCH=8END CSWITCHPROC DC(PROC DEFCHAR)BEGIN ENDPROC definechar()BEG=}IN UDG() DC(1,0,0,0,0,0,129,195,0) DC(2,0,0,0,0,129,195,231,0) DC(3,66,102,126,0,231,231,231,0) DC(4,126,126,126,0,231,2=}31,231,0) DC(5,255,129,255,129,255,129,255,129) DC(6,255,129,255,129,255,129,255,129) DC(7,255,129,255,129,255,129,255,129=}) DC(8,0,0,0,129,255,129,255,129) DC(9,0,0,0,0,255,255,255,255) DC(10,0,255,165,165,165,126,24,36) DC(11,255,255,0,255,0,=}0,0,0) DC(12,24,60,90,60,24,60,36,36)ENDPROC definepmg()!sets up pm graphics and defines shapesINT IBEGINPMGRAPHICS(=}1) initdma()DEFSHAPE(0,24,60,90,60,24,60,36,36)DEFSHAPE(1,25,25,255,184,60,36,32,32)DEFSHAPE(2,12,12,9,255,144,62,226,2)D=}EFSHAPE(3,0,48,48,30,62,78,68,204)DEFSHAPE(8,204,92,72,60,28,28,20,20)DEFSHAPE(5,152,152,255,29,60,36,4,4)DEFSHAPE(6,48,48=},144,255,9,124,71,64)DEFSHAPE(7,0,12,12,120,124,114,34,51)DEFSHAPE(4,51,58,18,60,56,56,40,40)DEFSHAPE(9,12,12,8,56,60,48,8=}0,80)DEFSHAPE(10,48,48,16,28,60,12,10,10)DEFSHAPE(11,56,186,146,124,56,56,68,130)DEFSHAPE(12,134,72,59,63,59,72,134,0)DEF=}SHAPE(13,65,34,28,28,62,73,93,28)DEFSHAPE(14,0,97,18,220,252,220,18,97)DEFSHAPE(15,0,36,24,126,165,165,255,90)ENDFUNC FL=}OC(BYTE X,Y)!fast dedicated screen locateBEGIN SCRADR=Y*20+X+SAVMSCEND SCRVAL AND 15PROC FPLOT(BYTE X,Y)!fast plotBEG=}IN SCRADR=Y*20+X+SAVMSC SCRVAL=COLORENDPROC drawscreen()INT A,B,C,D,E,F,G,I,G1BEGIN GRAPHICS(17) CUSTOM() initdma()=} POS(0,0) PCHAR(6,"LEV") POS(4,0) PCHAR(6,STR$(level)) POS(7,0) PCHAR(6,"SCORE") POS(13,0) PCHAR(6,STR$(score)) SETCOLOR(=}0,12,4) SETCOLOR(1,4,8) SETCOLOR(2,3,4) SETCOLOR(3,7,7) SETCOLOR(4,16,0) COLOR=4 FOR I=3 TO 19 STEP 4 DO PLOT(0,I) DRAW=}(19,I) NEXT COLOR=11 PLOT(0,23) DRAW(19,23)A=2;C=0;D=RAND(3)+4:L1 REPEAT B=RAND(18)+1 UNTIL B<>C COLOR=136 FPLOT(B,A=}) C=B COLOR=133 FPLOT(B,A+1) IF D>0 THEN D=D-1 ENDIF:L2 F=FLOC(B,A+1) IF F=11 THEN COLOR=135 FPLOT(B,A) GOTO L3 ENDIF=} IF F=4 AND RND()<30000 THEN COLOR=135 FPLOT(B,A) GOTO L1 ENDIF IF F=4 THEN COLOR=134 FPLOT(B,A) COLOR=133 ENDIF A=A+=}1 FPLOT(B,A) GOTO L2:L3 FOR E=0 TO D DO:L4 B=RAND(18)+1 C=RAND(5)+1 G=C*4-2 FOR G1=0 TO 2 DO IF FLOC(B+G1-1,G)<>0=} THEN GOTO L4 ENDIF NEXT COLOR=136 FPLOT(B,G) COLOR=133 FPLOT(B,G+1):L5 F=FLOC(B,G+1) IF F=11 OR (F=4 AND RND()<=}30000) THEN COLOR=135 FPLOT(B,G) COLOR=133 GOTO L26 ENDIF IF F=4 THEN COLOR=134 FPLOT(B,G) COLOR=133 ENDIF IF F=8 T>}HEN COLOR=134 FPLOT(B,G+1) GOTO L26 ENDIF G=G+1 FPLOT(B,G) GOTO L5:L26NEXTENDPROC titlescreen()BEGIN GRAPHICS(17) >}initdma() POS(8,2) PCHAR(6,"panic") POS(1,4) PCHAR(6,"a demonstration of") POS(8,6) PCHAR(6,"PL65") POS(9,8) PCHAR(6,"B>}Y") POS(6,10) PCHAR(6,"NOAHSOFT") POS(4,12) PCHAR(6,"PRESS START") POS(4,14) PCHAR(6,"HI-SCORE ") PCHAR(6,STR$(hiscore))>} REPEAT UNTIL CONSOL()=STARTENDFUNC overchar(BYTE player)!tests to see if a player is over a characterBEGINEND (PXPOS[p>}layer] OR PYPOS[player] AND 7)=0FUNC overhole(BYTE player)!tests to see if a player is over a hole in the wallBEGINEND F>}LOC((PXPOS[player]-screen_left)/8,(PYPOS[player]-24)/8)=0PROC movemons()INT IBYTE newdir,charBEGIN FOR I=0 TO monsters->}1 DO IF dead[I] THEN IF overchar(I) THEN IF overhole(I) THEN IF trap[I] THEN trap[I]=trap[I]-1 IF trap[I]>}=0 THEN dir[I]=0 COLOR=68 FPLOT((PXPOS[I]-screen_left)/8,(PYPOS[I]-32)/8) ENDIF ELSE dir[I]=4 PMOVE>}(I,4) trap[I]=40-level ENDIF ELSE char=FLOC((PXPOS[I]-screen_left)/8,(PYPOS[I]-32)/8) REPEAT CASE ch> }ar OF 0 DO newdir=RND() AND 4 OR 2 ENDOF OF 6 DO newdir=RND() AND 6 ENDOF OF 8 DO newdir=RAND(5)+2 AND 6 EN> }DOF OF 7 DO newdir=RAND(6)-2 AND 6 ENDOF ELSE newdir=dir[I] ENDCASE UNTIL (dir[I]+4 AND 7)<>newdir d> }ir[I]=newdir ENDIF IF trap[I]=0 THEN IF dir[I]=2 THEN IF PXPOS[I]=screen_right THEN dir[I]=6 ENDIF> } ELSE IF dir[I]=6 THEN IF PXPOS[I]=screen_left THEN dir[I]=2 ENDIF ENDIF ENDIF PMOVE(> }I,dir[I]) ENDIF ELSE PMOVE(I,dir[I]) ENDIF ENDIFNEXTENDFUNC readstick()BYTE stval=$278!reads stick 1 and con>}verts to player movement compatible directionsBEGIN CASE stval OF 14 DO RETURN 0 ENDOF OF 13 DO RETURN 4 ENDOF OF 11 >}DO RETURN 6 ENDOF OF 7 DO RETURN 2 ENDOF ENDCASEEND 255PROC showscore()BEGIN POS(13,0) PCHAR(6,STR$(score))ENDPR>}OC KILL(BYTE monst)!displays a monster being knocked through a holeINT ABEGINREPEAT FOR A=0 TO 23 DO WAIT(1) PMOVE(mon>}st,4) PLAY(1,A+20,10,6,2) NEXT dead[monst]=dead[monst]-1 IF dead[monst]=0 THEN CLRP(monst) PPLOT(monst,1,1) score=sc>}ore+10 showscore() PLAY(1,20,2,6,15) RETURN ENDIFUNTIL overhole(monst)=0trap[monst]=0 dir[monst]=2ENDPROC checktrap>}(BYTE X,Y)!tests to see if a monster is in the hole which has just been hammeredINT BBEGIN FOR B=0 TO 2 DO IF(PXPOS[B]->}screen_left)/8=X THEN IF (PYPOS[B]-32)/8=Y THEN KILL(B) ENDIF ENDIF NEXTENDPROC dighole()BYTE R,R2,FBYTE st>}rig=$284BEGIN IF manx=screen_left OR manx=screen_right THEN RETURN ENDIF IF strig THEN CASE dflg OF 0 DO LOADSHAPE>}(3,0) dflg=4 ENDOF OF 1 DO LOADSHAPE(3,(mdir AND 4)+4) dflg=2 ENDOF ELSE RETURN ENDCASE PPLOT(3,manx,many) ELSE >}IF (dflg AND 1)=0 THEN IF mdir AND 2 THEN R=(many-32)/8+1 R2=(manx-screen_left)/8 IF mdir=2 THEN R2=R2+1 >}ELSE R2=R2-1 ENDIF F=FLOC(R2,R) IF F<5 THEN IF mdir=6 THEN LOADSHAPE(3,3) ELSE LOADSHA>}PE(3,7) ENDIF PPLOT(3,manx,many) PLAY(1,90,0,6,4) checktrap(R2,R) IF F>0 THEN F=F-1 ENDIF>} COLOR=F+64 FPLOT(R2,R) dflg=1 ENDIF ENDIF ENDIF ENDIFENDPROC moveman()BYTE S,FBEGIN IF overchar(3) THEN>} IF overhole(3) THEN mdir=12 ELSE S=readstick() F=FLOC((manx-screen_left)/8,(many-32)/8) CASE S OF 255 DO>} dighole() RETURN ENDOF OF 6 DO IF manx=screen_left OR F=5 THEN RETURN ENDIF ENDOF OF 2 DO >} IF manx=screen_right OR F=5 THEN RETURN ENDIF ENDOF OF 0 DO IF F<5 OR F=8 THEN RETURN E>}NDIF ENDOF OF 4 DO IF F=0 OR F=7 THEN RETURN ENDIF ENDOF ENDCASE mdir=S dflg=0 ENDIF ENDIF>} IF mdir<8 THEN IF many AND 7 THEN LOADSHAPE(3,(many AND 4)+1) ELSE IF manx AND 4 THEN LOADSHAPE(3,mdir) ELS> }E IF mdir=2 THEN LOADSHAPE(3,9) ELSE LOADSHAPE(3,10) ENDIF ENDIF ENDIF ELSE LOADSHAPE(3,0) END>!}IF PMOVE(3,mdir)ENDPROC QMARK()!displays a random target on the screenBYTE qflg DATA 0;BEGIN IF qflg=0 THEN IF RND(>"})>65400 THEN REPEAT qx=RAND(17)+1 qy=RAND(4)*4+2 UNTIL FLOC(qx,qy)=0 COLOR=159 PLOT(qx,qy) qflg=200 ENDIF >#}ELSE qflg=qflg-1 IF qflg=0 THEN COLOR=0 FPLOT(qx,qy) ENDIF ENDIFENDPROC MYSTERY()!give a mystery bonus for eati>$}ng a targetBYTE bonus,holdINT A,BBEGIN IF PPFCOLL(3) AND 8 THEN CLRP(3) bonus=(RAND(9)+1)*10 score=score+bonus showsc>%}ore() hold=LOCATE(qx+1,qy) POS(qx,qy) PCHAR(6,STR$(bonus)) FOR A=0 TO 4 DO FOR B=200 DOWNTO 0 DO SOUND(2,B,10,6)>&} SOUND(3,B+20,10,6) NEXT NEXT SOUND(2,0,0,0) SOUND(3,0,0,0) COLOR=0 FPLOT(qx,qy) COLOR=hold PLOT(qx+1,qy) FPLOT(>'}manx,many) HITCLR() ENDIFENDPROC DEATH()!tumble man off screenINT IBEGIN FOR I=many TO 255 DO LOADSHAPE(3,(many AND>(} 7)/2+11) SOUND(1,I,10,6) WAIT(1) PMOVE(3,4) NEXT SOUND(1,0,0,0)ENDPROC variable_delay()INT A,B,CBEGIN FOR A=0 TO>)} 2 DO IF dead[A]=0 THEN IF level>10 THEN C=10 ELSE C=level ENDIF FOR B=0 TO C*30 DO NEXT ENDIF NE>*}XTENDMAIN()BEGIN buginit() TRAP error hiscore=0 definechar() definepmg() REPEAT:restart titlescreen() initialise(>+}):newscreen drawscreen() initplayers():gameloop HITCLR() REPEAT movemons() moveman() QMARK() MYSTERY() varia>,}ble_delay() UNTIL alldead() OR PPLCOLL(3) WAIT(10) IF PPLCOLL(3) THEN lives=lives-1 DEATH() IF lives=0 THEN G>-}OTO endgame ENDIF initplayers() GOTO gameloop ENDIF level=level+1 monsters=monsters+1 IF monsters>3 THEN mon>.}sters=1 ENDIF GOTO newscreen:endgame IF score>hiscore THEN hiscore=score ENDIF FOREVER:error TRAP errorIF ERRNUM>\}!&ʝ  ` ``  } }  `8     `8   `    ^ ~ B0} e  e &` > &&8  > > ƀ` !  ` =   =  `   B1}   ` ]   ]  ` I  I `    U  M  E  `  2  (  ׽B2} ͽ     `   } }  `  ` > } } B3}ȱ ` > } } Ƚ `} } ` 腋`8HH``膇`B4}H8     h}  }  `8           Ā фIJ)eeB5}慠ф$%Ɓ   ``` #Ji  ` #J #i  ` # #JJ B6}#JJ8   i L6#8    8  8 ȱ 8 ȱ   B7} }  }  %`   ȱ 8  8 ȱ L6# }  } 8ȱ僰 6#8B8}  ȱ   } Ƚ }  }  }  %`8  8 ȱ  6# ȱ  Ƚ B9} 8倥偐}m''''L('' !`s(( !q(r( !o(p(q(r( !`(((( !(L( ( ! !( ! %((( !B?}(( !`(( !(( !(((( !`))Lq))Lq)q)  B D E H Ii( V0`B@}ʘ  1#LZ)Error T) ! ! ) ! )`r)) ! ! ! )ʝ  `)) !( !)) ! ! ! ! )`)BA}) ! ! ! )`)_* !)) !)) !) !) !)J ! !) ! ]! ! !)K ! !) ! ]! ! !BB})) ! !)) !)) ! )`e** !c*d* !a*b* !`*c*d* ! ! R" !L*`* ! !a*b* !c*d* BC}! )`** !** !** !** ! !** !** ! )`*[+ !** !** !** ! !** !** ! BD})* ! ! ]!H &! !Hȱh !`\+_++6, !`+ ! ! * !++`+ ! ! 5! !++ȥ`BE}+ !^+_+ !`<,t, !:,;, !8,9, !7,7, ! !8,9, !:,;, ! )`v,, !u,u, ! ! ]!C &! ! !`)BF})L,,, !)) !(( !(( !)) ! *`,, ! ! )`,, , ,`))L,,, ' ,`,,, - !T !UV`BG} -0/ [# ! ! !L.-K:,- ! ! ) !} ! ) ! ! ,Li-WELCOME TO PL65Z- ! ! , ! ! ,BH}L-Copyright (C) 1987 Noahsoft- ! ! ,R ,L-For the latest information- ! ! ,L. see the file 'READ.ME'BI}- ! ! , R ,L'.Select program. ! ! , ,LG. 1 PL65.COM<. ! ! ,Lc. 2 KED.COMY. ! ! ,L{. 3 DOSu.BJ} ! ! ,R ! r)1 ! &L.L.D:PL65.COM. ! !, ! %L/2 ! &L.L.D:KED.COM٠. ! !, ! %L/BK}3 ! &L/l L/L., ! ! (, ! $ !} ! ) ,LG/Loading ?/ ! ! ,, !,, ! , ! ) BL}! ! !, !,, ! )L/ [#L/I/O error / ! ! , ! ,L/ occured.ɠ/ ! ! , ,L/Press any key.BM}/ ! ! , ! r) !,,L=- V#`0 -ror / ! ! , ! ,L/ occured.ɠ/ ! ! , ,L/Press any key.@2**************************************READ.ME Rev 2 **ISSUE 1 MANUAL AND SOFTWARE ** FO} **************************************This file is intended to convey up to the minute informatioFP}n on ommisions, changes and errors in the PL65 manual and software.四A few users have reported what they thoughtFQ} to be bugs in the compiler. These have been investigated and so far all have proved to have been bugs in the users own progrFR}ams.We do not expect a program as complex as a compiler to be completely bug free in every respect but PL65 has been very hFS}eavily tested. If you do come across problems which you suspect are caused by the compiler, please check your own program thoFT}roughly. If all else fails then write to us with details of the problem.̠ӛIS THE MANUAL GOOD ENOUGH ?The FU}problem with writing a manual for something you know all about is that you invariably miss out things that you deem to be obvFV}ious (but only to yourself), or simply overlook certain aspects.Let us know in writing if there is something missing or insFW}ufficient in the manual and we will attempt to help you and get the next issue right.Please note, we can not accept technicFX}al queries over the telephone.ǠǠӛOne user has had problems because he miss-understood the string handliFY}ng facilities in PL65. There is no way to temporarily concatenate strings as in BASIC eg PRINT A$;" more text";B$. In PL65 eaFZ}ch string must have its own assignment, thus the above example should be written WRTSTR(A$) WRTSTR(" more text") WRTLN(B$). TF[}o have temporary storage would invalidate one of the critera of the language (the program will use a fixed area of memory).F]}=128 THEN DEBUG() ENDIFGRAPHICS(0) WRTSTR("Error ") WRITE(ERRNUM) CR()REPEAT UNTIL CONSOL()=STARTGOTO restartENDF ERRNUM<uŠΠŠĠӛThe PL65 compiler requires that the DOS under which it runs allows at least six disk files to be opF^}en concurrently. Ordinary DOS 2 (and even the factory set DOS 2.5) only allows 3 files to be open concurrently. For this reasF_}on we supply a doctored DOS 2.5 to allow 7 open files. Please be sure that you use this DOS (you can copy it onto another disF`}k using option H from the DUP menu) else you might find error 161's appearing.use this DOS (you can copy it onto another disDOE B ?(CɈK(٢A ~= =( BL>(B^>((ڤ ܝHݝI VL_>L?(" B !B J) b} B(L& R XY( ?&:0H&((& ( .( & ( .(ʩ(c}`ލD&ߍEBIʎH( V0`ԩ ؠ@ȱ@ȱ@ BError -- 120&`$8f 3AԄձG/ d}$<68i/(Ԧ`H&եԦ&&eԅheԅԊe(iL*@&&&&ԅL*@B ? 3A?*(ɛ:e}./2SX(0ȱ/.ɛ(ލ9'ި0#:Ȱ :ފ :ȱ: : CAD CAޥf}`(eޅީe߅`(` @L\A @TUȪ: BFile name not allowed!: )  i( =0+L g}TUD BNot a disk file!(0` =Insert SOURCE disk, press =,(pӮ(A(O  1B AB1Bh} `FMYDOS45SARC % 1(L/ b(de BJKO L?O` B((*((i}(`ȱޙ((:>Ȍ(`D:`OS.SYS,DOS.SYShh =L*,  VLJ C C,pLiLF#Խ٩Յ׆ j} LB`((:>Ȍ(`D:`OS.SYS,DOS.SYShh =L*,  VLJ C C,pLiLF#Խ٩Յ׆  ELECTRONIC PROJECT PARTS LISTS------------------------------TREBLE BOOSTER--------------56k Resistor470ohms ResistorNl}4.7k Resistor3.9k Resistor1.5M Resistor1uF 10V Capacitor47nF plastic foil capacitor2.2nF plastic foil capacitor10uF 10Nm}V capacitor100uF 10V capacitorBC109 Transistors (2 of)DPST switchSPST switchCase, PP3 battery, battery connector, strNn}ipboard.100uF 10V capacitorBC109 Transistors (2 of)DPST switchSPST switchCase, PP3 battery, battery connector, strL LLu ÝDEHILV 9 .l 9 .l  ``LG$B BHp}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu }(( !`(( !(( !(((( !`))Lq))Lq)q)  B D E H Ii( V0`Jr}ʘ  1#LZ)Error T) ! ! ) ! )`r)) ! ! ! )ʝ  `)) !( !)) ! ! ! ! )`)Js}) ! ! ! )`)_* !)) !)) !) !) !)J ! !) ! ]! ! !)K ! !) ! ]! ! !Jt})) ! !)) !)) ! )`e** !c*d* !a*b* !`*c*d* ! ! R" !L*`* ! !a*b* !c*d* Ju}! )`** !** !** !** ! !** !** ! )`*[+ !** !** !** ! !** !** ! Jv})* ! ! ]!H &! !Hȱh !`\+_++6, !`+ ! ! * !++`+ ! ! 5! !++ȥ`Jw}+ !^+_+ !`<,t, !:,;, !8,9, !7,7, ! !8,9, !:,;, ! )`v,, !u,u, ! ! ]!C &! ! !`)Jx})L,,, !)) !(( !(( !)) ! *`,, ! ! )`,, , ,`))L,,, ' ,`,,2#-{--!-,ɛ Jy} - !`"-,ɛ,Ȍ- -!- !"- ! ! 5!  , k# '`|-. #- ! ! ,L-- ! ! ,L-Jz} ! &! !-- ! ,L- ֠- ! ! ,8--L- ,`.. #- ! #- !`.8. !J{}..8..HH``]./ #- !9.:.Lp.pp;.<.l.m.;.<. ! #-=. " - ! ! %" !L.L.;.<.8l.J|};.m.<.L.;.ʹ=. ȹ=. ;.9.:. ! .L/Routine leaves . ! ! ,IJ;.;.<. ! ,L4/ values-/ !J}} ! ,;.<. ! ! R" !L/ ,Lc/ b/ ! ! ,;.<. ! ! 5! !;.<.LC/ ,`/00 [#L/Debug/ ! ! ,J~}&- ,L/>Ġ/ ! ! , +, ! % ! !  , k# (D ! &L0 |-L0G ! &L&0 #- .L0C ! &L9J}0 .L0R ! &LU0 ! .L0T ! &Lh0 ].L0L|0Invalid commandm0 ! ! ,L/L0Error 0 ! ! , ! , J},L/ V#`00/L_`000"#/`00 !T !UV`0%1 !0 ! ) ! !0 !L1S:1 !J} ! )`)1^1 !(1 !'1 !&1&1 !'1 ! ! ]!(1 &!Ġ #`_1p1 0 !0 ! )`q1|1 0 ! r)`}11 00 ! J}! ! ! )`11 00 ! ! ! ! )`11ҩҽ ) )   ҽ Ҋi`121޿1 J}ҝ1Lb`2:2 ) 111 \䦆 1`;2L2 ) `88`884 ! ! ! !`898 J}! !4 ! % 8`E88 !;8 & !:8L^8^^C8D8Z8[8:8 ! ! ]!C8D8 &!C8D8 !;8 "4 #C8DJ}88Z8C8[8D8Lr8`88@@88 )JJJJJ8}  E8`HHHHHHH > `HH !L\&`HIHJ}H ! ! H H`I I !II !H " ! H H`#IKI !!I!I I"IH-"IH̸H` `HH !L\&`HIHHd@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'0 '4 '8'<'@'D ''@'''' '$'(',W