@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$%0} DD˙`  }J)Lr J  ((  p L ()   J0}L= ( L 0q A    IB JC;? D W 0} LL  ` W )LA!  ߰")-݆ p" 0} $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ`0 }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H 0 }p h  hyhy D L> L JJ    ! LA*` BF0 }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L0 }EE !E^ ^ E E7EȩEdE/EȩE  D0 } .L }  ;F d  ;?F7F? ( .   Z D LL d 0} . D  L    p  E` , d)  D L) 0BM݊L݉0} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G0} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G0} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK0}.COMLu L1 L ;LHL  T`  `8  ɐ     `TU 0 } L ? .  t`GBJ ~DEHI B V0dV0!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh0"}DEL8HI4 0 HI,0 0  9 .G VLO0#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D8:MEM.SAV J y08 B|DEHI0$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI0%} VY8 B V  @  /DE `E:D8:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO 0&}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -0'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH0(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu 0}L 䙣ލȎ!"` !"H h`lDD 4*}SAB.EUNEM:D"NUR䙣ލȎ!"` !"H h`lDD 4`pq0CTEXTFILEKE@@hd;@1,;@,i1 +A8,}1AR@n##(x##(| ֱ |##(| 8-}砠 |##(| Ӡ |##((6@6@@8.} D:NDOS.DAT.@.@@K: A!@""-@ &B:,'@@8/} ( (-@@@@(>:@d%,)  (( Deine Wahl?)80}@@ A++@@ D:NDOS.DAT@-@&@d81}@@" %((  Ich lade 'E7B:,&@,4TURB(" Bitte mit Turbo-BASIC laden!82}E)##7B:,&@,4COMA,%@ @@ 6-?:C:L,, D:M83}ENUE.BASSpinning, Twirling and RotatinD:SPINNING.COMR@@84}85}8oFile-Loader V1.0D:MENUE.BASDACV-Editor III V4.2D:DACVEDIT.COMAssembler Kurs Teil 5D:KURS5.COMS<7}pinning, Twirling and RotatingD:SPINNING.COMNUE.BASDACV-Editor III V4.2D:DACVEDIT.COMAssembler Kurs Teil 5D:KURS5.COMS<.} }  Lll L"! L"! VL"! l Lq!! "!LD:*.*S:P:E:l"!q"H) L9}h(`ӅԄՠ`ӅԄՠԨ`L)ӑ) `Ӣhh@,lHH!HwHHHHHӍl"H!HL:}yHl !`GHFHJ*K+\`* `Ӧee褌%ƉƋL"!L;}Ӡȱȱȱ㦌L"! ` ` `2a$%Ȏ!!xө~!!L<} ` `@X ` ~  } Ӣ ʎDy` SLD1:MUSIC??.COMՠԢӱԙӹL=}`֝DEIHB V0Z3ڝDa۝E8օܥׅݥܝHݝI V04Ӡڑڑ0L>} BLVl `˩`80 ` .JJJJ)iFiFi1FicFi'ȐȦoFiUȐFiiL?}Fi#iFiGi Fii@F iiFiiciՊFigi'iՊօשBL`I))83L@}Ԥԥդե֤֥פץؤإ٤LK6"ХLaLaLaLA}E0:e٥eإeץe֥eՐ؅٥ׅإօץՅ֩L8٥إץ֥հ'I8م٘؅ؘׅטLB}օ֘ՅLؤm\G0Q@Ն֩م؅2եمֆשم"ե؅֥م׆ةեׅ֥؅ץم؆لԘ)qLC} ` ? 7i ? %!Ls`ԅՅօׅ؅م`ԍՍ֍LD}׍؍ٍ`ԍՍ֍׍؍ٍ``, Խսֽ׽ؽ` ,LE}`+ĕ ԅ)@ޥ)JJJe)e e Je0F gLF} Lm8`@ԠՈքׄ؄`==W3>Tvb>2b'?h`06?2'A?%C4Vu?f'70P@U??CBH ? & ? QLLG}m8`0 I@ԥ) oǢҠ 1  ؠ e Q ?P ¥Ii )ԅ +ĕLH}Lm`@"wf?IWQpIG?9 Wa9cU? 0d? 9`?BXGB?7?()q?D>DIh8E?hyx? )D?@ (1V?LI}wD3331??xS48`$)Ԧƅƅƅƅƅƅ mť)8@0$Յ)e)e FLJ} 䰃 e Q F I`U9>`D'RFuCU?b9dYdg@W2@?tS)%)@0)%ԅLK}P 1 ;  e°0 Q (Vŕ ԅԥ  ƕ m`8``0?i? Q LL}ԍՍ֍׍؍ٍ * m N ǥ N 0 -åJeF g`L ) e٥eإeLM}ץe֥eՊi؊؅٥ׅإօץՅֆե1ԥ'JffffJffffJffffJffffم`ԩ&&&&*&&&&*&LN}&&&*&&&&*``ۄܱ T **m ȰҠݤܱEۅڦڱ= bܥeƥLO}iեL@ ` **)]P` 00`` ( ((((((((8`W)ߥ & &eLP} &߽aȅŊِ׼Ȅ⹕ȍqȅJJJJ&eXޥeYߥ䥈 9ȅFfЎᰈ Tȍ`Ȅ佘ȅ LQ}M 8*` Ȱi祍La L< ʘ0  L LR} ȑ  L ʘ# ` |ʠ)ȱ Lt nʤ n |ʠ)ȱ)LS} `ʠ)ȱ ʆ8ƍ0eސ`Ɗ8ް`)ȱJJJ```=LT}`]``` H} h`Pi`)JJJeԅԘ)Peԅ`եԆ8@EB)JJJeԅԥ)PeLU}ԅԘ)eԅԽeՅ՘)JJJ}˅ԥ}˅`)JJJeԅԥ)PeԅԹeԅԹeՅդЧ` 0@P`'Nu pX@(#LV}d,X L `8` ¥E)))8@8e0 څۅ܅݅ޅ߄ԠF0y ޥy ݥy ܥy ۥyLW} ڥy و0ǠF0y ݥy ܥy ۥy ڥy ٥y ؈0ǠF0y ܥy ۥy ڥy ٥y إyLX} ׈0ǠF0y ۥy ڥy ٥y إy ץy ֈ0ǠF0y ڥy ٥y إy ץy ֥y ՈLY}0L`8`E)))8i@0 ڄԠ ( !   L* LZ} &О ( !   L* L[} &О ( !   L* &О L\}( !   L* &О ( !  L]} L* &Оd ( !   L*L^} &ОL6 e e e e e i L_} } } } } } } ǭ m m m m m m  } }L`} } } } } ǥՅօׅ؅مԅՅօׅ؅`hh !LHH`ؠLa}ɀhhHH֥ץ?ȱȱӰ8ְױօօ0LB Fehler - à  in ZeLb}ile  ($8H h ) Turbo-Basic Compiled... @ !D L RL L FilenLc}ame D: Jȱɛ):ȱɛ.ȩCȩTȩBȥ SLȹD:LKHJJJJ h) 0:iLp 8Ld}` B 0`L<馒撥ԝޥ՝*ޥ֝Tޥם~ޥ؝ޥٝ` ƒޅԽ*ޅսTޅֽ~ޅ׽ޅؽޅ`ƒޅ*ޅTޅ~ޅ㽨ޅLe}`撝ޘ*` ӥԝإ՝٥֝ڥםۥ؝ܥٝݥ`LT؅Խمսڅֽۅ׽܅ؽ݅`؅مڅۅ܅݅`Lf}ȱȱȱȱȱ`ȱȱȱȱȱ`٩@ةڝ۝ܝ`թ@ԩօׅ؅`  Lg}LQȱȱȱȱȱ`ȥȥȥȥȥ` wLH wh LQԄՠԅք` L Lh} !ԝD՝E֝HeםI L`Laee 8厅叅eeL!)Li}L)`x,Ң⅌Ҙ襉ҥ `8$ L8$ ȍ` JKiLH h)Lj}I ! SLJUVT`T L) ʥԤհ` L ` !L8, !L8 ` iLJ놈 LJ놈 ,LQLk} HԝDEILꆓBJKԝD՝E CL8醈 B LJ놈& LM J릓NLl}LJL)NLM%L L j L `L=! Sp D o 8Lm} LpL ,#,$,!pLL ,HBDEhHIL oL8馓HIBL !L8ɅĈeɐ ňLn}`֥ԅԅՅ,`$8n!?! D i\ iU?! iD iE=D iH ih8DHEILo}HI C ,!L `L= JhhlԄե֥נȱհ  ȱօȱօ` L=Ԅ՘0)Lp}ȱհ ȱe懰楆ƇƆ`L)L=醈ɛi懠,ɛ󥆦 Seօ` Lt ԤբLq}H e" hLQL=醈 *? , DEHI ` DLr 4 e"ɛ ,ЬLQ DLLr} 4eɛ SLtI L L L L L@ ; ` ; ` ; Ls} ` ; m` L=@@ȅ@`I`)` ; USN ; FG ; ?: ; Lt}201 ; &' ;  ;% ;L Lå ` : : :ڰ :ΰ :ǰ :оE%Lu} jE `0``֪ (ϰ`(8`8` Lv}ԤՅ` e"4 L= Ԅձ80  &ԅ L  eԪp`L) HJJJJ Lw}h) 0:i`Ԅ 0 ["ȱ)ȥ,  ՅԄ֩`?Ԣ )ɠڭ ) ڕLLx} ^ L)8@L` )8@D:)8@-٩֔$ሄL` Ly} ^Ű$` hŰ` &ư` Rİ` Vİ ` rð` ƐL=0L L ;&)ԥ)8@עJjH@MLz}C)JJJe)e F ¥P & F Q LL)HHHHHH Vİhhhhhh ðhL{}ԅ` L %ઘ%ᨊ` ઘᨊ` EઘEᨊ`<|'gԥ0L=`  *  &L_,L|}ڄ  eڅԥeۅհ"8څ֥ۅא8ܥݰ`۠Q%0ԅإՅ٥ަ0%Q% LL}}ե0Lڤ`օנ6&֐ eו`L)ԘբՅ Ԣ Յ֠&&֐eܥeL~}ېڈ $0!ee80å/8ܥ۰uڕ0eUiV`TL}UV`8UV`eTi`8TȢ` !L8醊 æ f Ŋ :ƒޑȽ*ޑL}ȽTޑȽ~ޑȽޑȽޑȥԑȥՑȥ֑ȥבȥؑȥّȥȩhihHiH&HHH wh Lhh`hh`8L}` L=醊 f ŊHȱȱȱȱȱ妊 w Qh LhhHHe`*ȱȱL}ȱȱȱjEE `EjI ` p D il ie o"p"q" i i i i i io"8L}o" K膖  Lo"L=؝ٝڝ۝ܝ륄Lei  L}`L=饏őŐ%Ƒ8 Ƒ` f,L= fhhHH`, :hihHiL}H`` J :hihil  ¥Ӡ L  @Մ$ Q` Q` QLQH L} h @Յ՘JJJJ y) 0:i`AVC2 5 - <) - < L}L L e e`e`&&&&&&eee` &&eee&*` uL}8)Ӱ% hhȱԅȱԅl ʰԤզ`hhheӨhiHH` u u88Ӱڪ :(jheӑhi LhL}פօۄڠ܄ݠFfؐeڅܥeۅ0&ۈ`L >ӆiHi0Hƒiֹ*i0Ѕ &ݤݥ &e܅ܘe݅L}hhLlӅ؄م܄0օצӽАԥեܤ Q `ƒ*ޅޅ wإL}ٰ5֥װ+ eܥe*ݨ &eܪeeըeԐ`L L L ӆ 4Ԥզ L_ ӆ Ԥզ LL}_ L LL=ӦԆՆֆ׆Lw Y٤ ۘ` Y  L~ Y ې Hh`פōČԅeL}Յe &"8ӥب`ƒޅ*ޅ L=؅مƒ8*ޥ֥אeԥe`L} w㰶H wֆ׆h8Lԩ!HHֆ׊HHʽ޼*ԆեHL!àLLeԐ `8԰L)L} w㰶H wֆ׆h8Lԩ!HHֆ׊HHʽ޼*ԆեHL!àLLeԐ `8԰L)Lw#$&$z# ԤՅQ ""HHI? "" ̠# J Q K  P}ؠ# J  K  # J  K  # J P} K # Qp`B@BB8B`BBBؠBB(BPBxBBȡBBB@BhBBBBB0BXBBA D:SETUP.DAT D:SMDP}1.FNT D:RAC2.FNT D:AMC.FNT D:EDIT3.*o" o" """( #29#<i#s#B@BhBBBBB0BXBBA D:SETUP.DAT D:SMDPHT^g6  U U( U U  UB UF UV B tj ŠU W!ƠT}T W!ȠV W!01 JT   QXYE JR JS J  T T R'S T} ʩT L0XY k!V F tՠ 0 k!T   Q  W!R T} V V V R  V W 9W VW sW T}W W ̠W W R  w  ))   ) )   Q wT T}  wU }  wU  w U L$ wd  %R:8|9f:>f:>FBOP)NY1StT T}wU Lk% LNS w U L# 01R'S ʩE k! X wL% I T}Q J$  wU L& "X  wU L'& &X  wU LG& *X T}T  w 4 W! .X  w w@ 4  Q 1! J ))L& 셈 wT}$U  W!L& 셈 w$U W! *U L'L& 0U }Lk0 РG J ))! J T} w! " Q" w6U " wE k!" wlU w LN) w 텈 T}W! w Q" wrU Lh)  +L-" wU L) w Q  +  +" wHU LE* w w T}@ 4 텈 w w@ 4 텊xU @ 4 "" w~U 텈 W! w~U 텈 w멄U T} 텊' """ wNU L+ w w@ 4 텈 w w @ 4 텊xU @ 4 ! w T} w@ 4 텈 W! w w@ 4 텈 w w@ 4 텊' """ w`U Lj+ w QT} ws 4 2  w " wlU L, wL, w w@ 4 텈T} w w@ 4 텊@   "" w w @ 4  텈 W!L, w w@ 4 T} 텈 w w@ 4 텊xU @ 4  "" w멊U 텈 W!" wrU T}L- wLG- w w@ 4 텈 w w@ 4 텊9   ! w wT}@ 4 텈 W!L- w w@ 4 텈 w w@ 4 텊xU T}@ 4  ! w w@ 4 텈 W!L.T# G ))  Lj./  / (Lj." wT} / F U  Le./ w F UԢ" J fLj./ " w  wؠU L<3 (  wޠU LV3 )  wU Lp3 1  wU T}L3 0  wU w w ( >멮Y     w J Ly>  w w@ 4 텈 T}V w@ 4 K Y ̠Y  Z   w Z LO: Z T} t > w ( >Z  ˠ   w J LQ  셈+ w @ 4 H LQ T}   ʩ Z  w&V L: Z L: Z !Z -Z jZ   T}w vZ L>wZ  t > w zZ  Ly> w ꩄZ L;*  T} w J  w w@ 4 텈 K w&V L;   , L= w - Q Z   wT} ꩏Z L;- w. QL; w . Q. w - w xU  F L[<- w xU T}  F . Q- w/ Q. w/ (L= w t/ w멢U }L< w֤ע >멐Z   w֤ע >/ w T}!    w J  wԤՅ( K  w / w- ,V w@ 4 텈  KT}  wԤՅ( K  wԤՅ( K  wԤՅ( K w&V L=   ,  / T}R W!S W!Q, w2V L=Q, w8V L>R  셈 W! 셈 w T} 텊? ""T  w QT T L0  w w@ 4 텈 W! w w@ 4 텈T} w w@ 4 텊U w@ 4 ""  Z  w>V L,? Z L6? Z T} Z Z ֠Z ޠZ   w Z LBZ  t > w Z  T} w Z Lm@   w J  셈 H w>V Le@   QT} J wU L[@  Le@  LB w - Q LQ- w + w F . QZ  t- wT}/ Q. w/ (LB w t/ w멢U }L@ w֤ע >"[   w֤ע >/ w ! / w F  T} Q/ w F T  Q > > J % >% > J  > > J & >& >T} J ՠ   w J $[ ԤՅ( H  w / w- ,V 텈  H MT}[ ԤՅ( H  wԤՅ( H v[ ԤՅ( H w>V LB  Q J T}wU LB LB  /  [ [ [   w [ T}LE[  t > w   w J LQT/ + w/ (LgE& >[   w / w@ T}4 텈 wԤՅ& "" w [ LC  LbE > > \ LD T} L(D 09 0 w 0 Q0 wU 0 >0  > \ L/D >0  > tT}0  w֤ 0 (LUE0  UԢ" J" ))! J" w! " Q" wT }LE"2 +L(E" wDV }T}L(E" wd " Q0 >0 >" w! J 0   w /     2 w멖U }T}LF 8  (LPF  UԢ" J" ))! J" w! " Q" w >" w! J   wԤՅ w 2 w@ 4 텊& ""\ T} t2 +  B\ T\ u\ }\   w ꩁ\ LH Ly>\  T}t > w w2 Q멅\  t >멇\   > w 3   w J\  tJV4 T}T5   wԤ 5 텈4 K w ꩰ\ r5 J5 w  1! HU s T}L H LH w ꩲ\ rLG  w ꩴ\ r5 J5 w4 Q5 wLH5 >5 >멶\ T} 5 wLH w ꩛ J 5 r5 J5 wLH5 >5 >멸\  LH LH T8  w ꩛ J 8 T} r9 J9 wLI8 w >9  > t w ꩛ J LVI\  tLuI > w֤ע  > t9T} w8 Q LJ9 w  1! HU LH8 w4 vLJ U ꩛ J LcJ8 w  U T}t > >멻\   > w  > w֤ > w  w֤ע5 JJV 5 4 QLJ > >T}\   > w JV4 T5  w֤ PV }LK w ꩿ\  w \ T}LJLK > >  \ L|K8   w֤   F / Q3 w/ >3 w7 >T} U LK3 >3 w7 > w LEL&NT0 0 w9  w֤   1! HU s T}LM0 w9 >0 w9  > Ġ\ 0 w8 >0 w8  > Ơ\ T}LL3 >3 w7 >0 w >0 w8  > 08 +0 w >0 w  > Ƞ\ LLT}0 +LM0 w8 ; Q0 w VV ; 2LM; >;  > t w ʠ\  w ̠\ T} w Π\  w Р\ LM3 >3 w7 >0 w >;  > ; w0T} Q fLM; LELK3 >3 w7 >0 w  U LE  Ҡ\ ޠ\  w\V T} wbV wU LEN wU sL w   w J wI hV nV 텈 K W  4 QT} W! W! W! ] ]   w ] LP ]  t > wT}   w J   wtV LP Ly> 4  B wԤՅ K4 w,V 4 Q4 w T}w@ 4 V LP V w@ 4 4 Q  w w@ 4 텈4 K #] 5] T}  w A] LQB]  t > w LQ+ w F 4 Q E] B w P] B T}\]  t >B w֤ >B w  wB t   w J 4  B wԤՅ H T} 셈4 w,V H ( >d]  T+ 멖U/ VV / 2LR w / w@ 4 텈T} wԤՅ( "" w f] LR/ w+ Q fLR/ ՠ f $U LR 0 k! ʩT}  ] 쩛]  쩟] $U L S ] ƠT W!ŠU W!T}ȠV W!L#R'S à] Р] ] ^ 3^ O^ e^ T}x^  ^  w ) )  ))  Q wfU wzV T}LS wfU LqT ^ N ^ ^ ^   w ^ T}LT^  t > w  w 9 BhdAr@d@@'@@@@A(AUT}A@&@2A$@(@)@0@1A%@tA&A'AAy`AyaAy@A@#@AT}A6A1AAAA A@E@a@B@C@@@A@9@@@A@iT}AAA$@p@A@8@I@PA$BPVAS@x--/----AOUaous[\]{|}~%֭T}Ҡɠִ" entwickelt von Florian Baumann (pd) 1990/91 CDI EDIT ɠ LOAD ASCII  DIREU}CTORY ʠ SAVE ASCIIà LOAD BLOCK ˠ LOAD SMDĠ SAVE BLOCK ̠ SAVE SMDŠ LOAD DACV ͠ LOAD FONTƠ SAVE DACV U} Π SETUPSǠ LOAD AMC Ϡ FORMAT DISKȠ SAVE AMC Р DEL FILE => INFO ڠ QUIT 00 000 ֭ҠU}ɠ -1--2-@MC Lschen (J/N) SETUP-EDITOR FONT -1--2-@MCLINKER RAND RECHTER RAND HINTERGRUNU}D TEXT RAHMEN FALSE SPACES -J--N- SAVE SETUPSQUIT MIT   ANW{HLEN MIT U}  {NDERN  -J--N- D:SETUP.DAT D:SETUP.DAT@MCLOAD IM DACV-BLOCK FORMAT:BITTE FILENAMEN (OHNE 'D:') ODER U} ZUM ABBRUCH.>D: SAVE IM DACV-BLOCK FORMAT:BITTE FILENAMEN (OHNE 'D:') ODER ZUM ABBRUCH.>D: U}LOAD DACVAMC -SCREENPAGE<BITTE DEN FILENAMEN EINGEBEN ODER FR ABBRUCH... FILENAME>D: START > ENDE U}>0SAVE DACVAMC-SCREENPAGE FORMAT BITTE DEN FILENAMEN ( FRABBRUCH FILENAME>D: START >(  U}  0(((U } SAVE ASCII:BITTE DEN FILENAMEN EINGEBEN ODER FR ABBRUCH.>D: &U }& ASCII-TEXT LADEN BITTE FILENAMEN ODER FRABBRUCH>U }D:&    -  - }LOAD FONTFONT 1 ODER 2? > FILENAME: U }D:}LOAD SMD-Format Filename> D:}SAVE SMD-FORMAT Filename> D: Ausgabe > --/---- (U } FEHLER -  ($) IST AUFGETRETENTASTE DRUECKEN! } INFO DACV-Editor III V4.1# programmierU}t von Florian Baumann# (pd) 1990/91 CARILLON DI Eschborn Spenden an CARILLON DI Schne Aussicht 56 6236 EschbornU} 2 Tel.: 06173/62106}Disk formatieren (J/N)>D:*.*}File(s) loeschen"Bitte geben Sie den Filename ein:>D:o"t"U} {"2"7"<"=$#>8#Fd#Ks#P#d#e#i#n#o#p#s $x$}%$2$?$L$Y$f$s$$$$#%R%k%~%U}%%%%%&'& G&l&y&y&y&$&)&.&3&8&=&B&G'L&'Q5'VY'['`'e'j'o(t3(yU(~o(U}((((((N)h)k))))E*E*X**++j+}++,,,,,, ,D-G--U}-#-(---2-7.<.Ae.Fj.Kj.P}.U.Z._.d.i.n.s.x.}....$/P/u////0]0k0U}k0000000000111B1V1 Y1Y1h1u11"1'1,11162; 2@2E42JM2Of2Tp2YU}2^2c2h2m2r2w2|333"3<3V3p33334<4d44444'5J5u55555U}676f666 672727!V7&7+7085P8:P8?x8D8I8N8S8X8]8b8g8l8q9v09{69t9y9y9|U}9|9|999999::#:D:J:O:O:R:R:c:f:f:f:q:::: :;;; 8;%T;*|;U}/;4;9;>;C;H;M[>>>K>v>y>>U}>>?C?]?l?????? @ .@ e@ e@ j@ m@ @$ @) @. @3 @8 A= HAB ~AG AL AQ AV B[ 8B` QBe U}lBj Bo Bt By B~ B B B B B B B B B C %C BC WC ]C uC C C C C C (D D D D D E U}E (E (E PE UE bE bE# gE( |E- E2 E7 E< EA EF EK EP EU EZ F_ #Fd #Fi KFn PFs Fx F} F F F F F F FU} F F F G ZG oG {G G G G H H H ,H ,H 1H OH H H H H H H H I I" -I' uI, I1 I6 I;U} I@ IE !JJ >JO `JT cJY J^ Jc Jh Jm Jr Jw J| J !K yK K K K K hL L *M M M M M M &N &N )N U})N .N ;N EN N N N N N N O 7O SC SH SM SR CTW qT\ tTa tTf Tk Tp Tu TTR R R R R S S S KS NSTX& S uS S% S* S/ S4 S9 S> SC SH SM SR CTW qT\ tTa tTf Tk Tp Tu TTR R R R R S S S KS NSXfffffff>`<|fl0fF68of;p88pf< 80 0 ~~`0 0`<]$}f ``nf>ff~fff~~f<flxxlf`````~cwkccfv~~nf]%}0 0x0pX0 0x0pX8pp8?]'}wwf>``|ff|<```<>ff>>ff>|``|fff8<<``lxlf8<f])}kc|ffffff>|f```>`<|~ffff>fff<ck>6f< x~ 0~f<>f>fff>|f```>`<|~ffff>fff<ck>6f< x~ 0~f<>f>f`<|fl0fF68of;880  00l88l~0~ 0a,}`@ 80 0 ~~`0 0`f``f<ffffbx`bbx``||f~ff~ZZ~ xlxxl```bv~nfa.}b<F|<fffff<fff<<f<8pp8?f?ff?`|ff>f`f< |v00|000`~`|ff8<f<`lxl8<a2}fff`<|~fff;fff<|lf<|~L2~f`<|~fff;fff<|lf<|~L2~f`<|fl0fF68of;888p88pf< 886ll6~~l66lff~fff<<ff<flxxlf`````~cwkccfv~nffe7}6>ff;ff;``|ff|<``<>ff>60|000>f>|``|fff8<f<``lx|f8<e;}6kcl666f>|f``ff<ck6f< x~8~f>|f``ff<ck6f< x~8~}h)@h(@=@LR@hhh=@0<@ <@-@<@0=@<@0-@<@` H@-@<@AA A`(@Ii(@)@Ii)@*@Ii*@+@Ii+y?}@ H@-,@,@<@ȌAA A`(@)@*@+@@@L@ɀLA(@)@*@+@@@L@(@)@*@+@B@L@L@A(@)@*@+@B@L@(y@}@)@*@+@E@L@LoA(@)@*@+@E@L@G@L@G@,+@0L@L@AH B VB۝DAEhJK V`?:H`EhDAHyA}AI B V`P!DBEHIB V!B`"B ei"B&L/B`E#BII $ByB},#BII`"B&eeii"B &&&LB`E#BIIIIyC} B,#B&IIII `"B&&%eeeiii"ByD}&&&&&L3C`E#BIIIIII C,#B:IIIIIIyE} ` "B&&&1eeeeiiii"B&&&&&&yF}&LD`E#B$IIII $IIII  C,#BNIIIIyG}IIII `E` A{G A >G|G A PG $B @A bG}G %A >G~G %A PG MByH} TA bGG஀G @A >GG䮂G @A PG B(@)@*@+@ A bGG஄G TA >GG䮆G TA PG B(@)@*@+yI}@ A bGGஈGᬉG oA >GG䮋G嬌G oA PG C(@)@*@+@ A bGGஎGᬏG A >GG䮑G嬒G A PG uCyJ}(@)@*@+@ A bGG(@G)@G*@G+@ A >GG(@G)@G*@G+@ A PG C(@)@*@+@ yK}A bGG(@G)@G*@G+@ A >GG(@G)@G*@G+@ A PG fD(@)@*@+@ A bG`AAtG yL}A`AAwG A`AAzG A` * = 4V4Vx#Eg2T""""E@*@+@ A bG`AAtG x\ER} .LIOFF-6.IN"D:PRTNUM.INC"DieRoutinenzurZahlenausgabe,(.IN"D:CIO.INC"DieTextausgaberoutinen12}N}.IN"D:MULT.INC"DieMultiplikationsroutinen<- FSTART%PLDA#'EE-Handlerinitialisieren ZLDY#8 dLDX#$60nJ}O}SRCIOINITx;';zwei8-BitZahlenohneVorzeichen;"LDAZAHL8_1DieersteZahl...5STAOPERATOR1...alsersten}P}Operandverwenden...3JSRPRTNUM8...undaufdenBildschirmausgeben5JSRPRT_MALdazunochdasMultiplikationszeichen}Q};LDAZAHL8_2analogwirdmitderzweitenZahlverfahrenSTAOPERATOR2JSRPRTNUM8-JSRPRT_GLEICHundnochein}R}"="ausgeben'JSRMULT8Jetztwirdmultipliziert#LDARESULTunddasErgebnis...LDXRESULT+14JSRPRTNUM16...}S}wiegehabtausgegeben(16Bit!)4JSRPRT_EOLzumSchlusseinEnd-Of-LineZeichen;&";zwei8-BitZahlenmitVorzeiche}T}n,;6LDAZAHL8S_1@STAOPERATOR1JJSRPRTNUM8STJSRPRT_MAL^LDAZAHL8S_2hSTAOPERATOR2rJSRPRTNUM8}U}S|JSRPRT_GLEICH6JSRMULT8SmitVorzeichenbeachtungmultiplizierenLDARESULTLDXRESULT+1JSRPRTNUM16S}V}JSRPRT_EOL;(;zwei16-BitZahlenohneVorzeichen;LDAZAHL16_1STAOPERATOR16LDXZAHL16_1+1dasH}W}i-BytemussinsX-Register...STXOPERATOR1+1:JSRPRTNUM16...damitdieZahlausgegebenwerdenkannJSRPRT_MAL}X}LDAZAHL16_2STAOPERATOR2&LDXZAHL16_2+10STXOPERATOR2+1;:JSRPRTNUM16diesmalwirddie16-BitRoutinever}Y}wendetDJSRPRT_GLEICHNJSRMULT16XLDARESULTbSTAPRTNUMlLDARESULT+1vSTAPRTNUM+1LDARESULT+2}Z}STAPRTNUM+2LDARESULT+3STAPRTNUM+31JSRPRTNUM32dasErgebniskann32Bithaben!JSRPRT_EOL;;16}[}BitmitVorzeichen:;LDAZAHL16S_1STAOPERATOR1LDXZAHL16S_1+1STXOPERATOR1+1JSRPRTNUM16S J}\}SRPRT_MALLDAZAHL16S_2 STAOPERATOR2*LDXZAHL16S_2+14STXOPERATOR2+1>JSRPRTNUM16SHJSRPRT_GLEICH}]}RJSRMULT16S\LDARESULTfSTAPRTNUMpLDARESULT+1zSTAPRTNUM+1LDARESULT+2STAPRTNUM+2LDARESU}^}LT+3STAPRTNUM+3JSRPRTNUM32SJSRPRT_EOL;;24BitohneVorzeichen:;LDAZAHL24_1STAOPERA}_}TOR1LDXZAHL24_1+1STXOPERATOR1+1LDYZAHL24_1+2STYOPERATOR1+2JSRPRTNUM24$JSRPRT_MAL.LDAZ}`}AHL24_28STAOPERATOR2BLDXZAHL24_2+1LSTXOPERATOR2+1VLDYZAHL24_2+2`STYOPERATOR2+2jJSRPRTNUM24t}a}JSRPRT_GLEICH~JSRMULT24LDARESULTSTAPRTNUMLDARESULT+1STAPRTNUM+1LDARESULT+2STAPRTNUM}b}+2LDARESULT+3STAPRTNUM+32JSRPRTNUM32wirkoennennur32Bitausgeben!JSRPRT_EOL;;24BitmitV}c}orzeichen:; LDAZAHL24S_1STAOPERATOR1LDXZAHL24S_1+1(STXOPERATOR1+12LDYZAHL24S_1+2<STYOPERA}d}TOR1+2FJSRPRTNUM24SPJSRPRT_MALZLDAZAHL24S_2dSTAOPERATOR2nLDXZAHL24S_2+1xSTXOPERATOR2+1LDY}e}ZAHL24S_2+2STYOPERATOR2+2JSRPRTNUM24SJSRPRT_GLEICHJSRMULT24SLDARESULTSTAPRTNUMLDARE}f}SULT+1STAPRTNUM+1LDARESULT+2STAPRTNUM+2LDARESULT+3STAPRTNUM+3JSRPRTNUM32SJSRPRT_EOL}g};";32BitohneVorzeichen,;6LDAZAHL32_1@STAOPERATOR1JSTAPRTNUMTLDAZAHL32_1+1^STAOPERATOR1}q}`-----------``堠````ש```場``-----------b%DOS SYSb)AUTORUN SYSb +MENUE BASB6NDOS DAT`-----------`֭`-----------bX8DACVEDITCOMbMUSIC COMbEDIT3 COMB!SETUP DATb "SMD1 FNTb +RAC2 FNTb 4AMC FNT`-----------``젵`-----------=KURS5 COMb0MKURS5 ASMb"PRTNUM INCb CIO INCb8MULT INCbIKURS5 LSTb66PRTNUM LSTblCIO LST#]MULT LST`-----------`ӭ`-----------#"SPINNINGCOM`-----------+1hSTAPRTNUM+1rLDAZAHL32_1+2|STAOPERATOR1+2STAPRTNUM+2LDAZAHL32_1+3STAOPERATOR1+3STAPR}r}TNUM+3JSRPRTNUM32JSRPRT_MALLDAZAHL32_2STAOPERATOR2STAPRTNUMLDAZAHL32_2+1STAOPERATOR}s}2+1STAPRTNUM+1LDAZAHL32_2+2STAOPERATOR2+2STAPRTNUM+2LDAZAHL32_2+3&STAOPERATOR2+30STAP}t}RTNUM+3:JSRPRTNUM32DJSRPRT_GLEICHNJSRMULT32XLDARESULTbSTAPRTNUMlLDARESULT+1vSTAPRTNUM+1}u}LDARESULT+2STAPRTNUM+2LDARESULT+3STAPRTNUM+37JSRPRTNUM32Leiderhabenwirkeine64BitAusgabe}v}JSRPRT_EOL;;32BitmitVorzeichen:;LDAZAHL32S_1STAOPERATOR1STAPRTNUMLDAZAHL32S_1+1}w}STAOPERATOR1+1 STAPRTNUM+1LDAZAHL32S_1+2 STAOPERATOR1+2*STAPRTNUM+24LDAZAHL32S_1+3>STAOPERATO}x}R1+3HSTAPRTNUM+3RJSRPRTNUM32S\JSRPRT_MALfLDAZAHL32S_2pSTAOPERATOR2zSTAPRTNUMLDAZAHL32S_2+}y}1STAOPERATOR2+1STAPRTNUM+1LDAZAHL32S_2+2STAOPERATOR2+2STAPRTNUM+2LDAZAHL32S_2+3STAO}z}PERATOR2+3STAPRTNUM+3JSRPRTNUM32SJSRPRT_GLEICHJSRMULT32SLDARESULT STAPRTNUM LDARESULT}{}+1 STAPRTNUM+1$ LDARESULT+2. STAPRTNUM+28 LDARESULT+3B STAPRTNUM+3L JSRPRTNUM32SV JSRPRT_EOL` }|};j RTSundtschuesst -+~ ;HierwirdderString" * "ausgegeben PRT_MAL LDA#33Zeichen STAPRINT_LENGTH }}} LDA#0 STAPRINT_LENGTH+1- LDA#MAL_ZEICHENdieAdressedesStrings LDX/MAL_ZEICHEN+ JSRPRINTundaufden}~}Bildschirmdamit RTS - ;dasselbefuer" = " PRT_GLEICH LDA#3 STAPRINT_LENGTH  LDA#0 STAPRINT}}_LENGTH+1( LDA#GLEICH_ZEICHEN2 LDX/GLEICH_ZEICHEN< JSRPRINTF RTSP -Z ;EinEnd-Of-Lineausgeben: d PRT_EO}}L#n LDA#1DiesmalnureinZeichenx STAPRINT_LENGTH LDA#0 STAPRINT_LENGTH+1 LDA#EOL_ZEICHEN LDX/EOL}}_ZEICHEN JSRPRINT RTS -- ;DieStringsfuerdiedreiHilfsroutinen MAL_ZEICHEN.AS" * " GLEICH_ZEICHEN.}}AS" = " EOL_ZEICHEN.HX9B -+ ;HierkommendieauszugebendenZahlen: ZAHL8_1.HX12 ZAHL8_2.HX34 ZAHL8S_}}1.HXFE" ZAHL8S_2.HX56, ;6 ZAHL16_1.HX1234@ ZAHL16_2.HX5678J ZAHL16S_1.HX2345T ZAHL16S_2.HX6789^ ;}}h ZAHL24_1.HX89AB01r ZAHL24_2.HX321000| ZAHL24S_1.HX999999 ZAHL24S_2.HXFFFFFF ; ZAHL32_1.HX54000000}} ZAHL32_2.HX11111100 ZAHL32S_1.HX22222222 ZAHL32S_2.HX03000000 -2.HXFFFFFF ; ZAHL32_1.HX54000000|PERNm} BASE10_TABLE.HX010000001.HX0A00000010(.HX640000001002.HXE80300001000<.HX102700001000}0F.HXA0860100100000P.HX40420F001000000Z.HX8096980010000000d.HX00E1F505100000000n.HX00CA9A3B1000}000000x--PRTNUM.HX00000000DieauszugebendeZahl!.HX00evtl.einMinuszeichen-PRTNUM_ASCII.BL15ZahlalsASC}II-String+PRTNUM_LENGTH.HX00LaengedesStrings3PRTNUM_DIGIT.HX00EineZiffer(Hilfsvariable)-+;Tabelleder}EintraegeinBASE10_TABLE TABLE_ENTRIES.HX0004080C10.HX14181C2024-PRTNUM_MAINLDA#0Voreinstellungen}STAPRTNUM_LENGTH LDA#'0STAPRTNUM_DIGIT.10:";Zahlvon10erPotenzabziehenundaufStacksichern:,}SEC6LDAPRTNUM@SBCBASE10_TABLE,YJPHATLDAPRTNUM+1^SBCBASE10_TABLE+1,YhPHArLDAPRTNUM+2|SBC}BASE10_TABLE+2,YPHALDAPRTNUM+3SBCBASE10_TABLE+3,Y+BCC.2->Zahlkleinerals10erPotenz(STAPRTNUM+}3sonstZahluebernehmenPLASTAPRTNUM+2PLASTAPRTNUM+1PLASTAPRTNUM.INCPRTNUM_DIGITundZi}fferum1erhoehen JMP.10.2PLAZahlvomStackholenPLA&PLA0LDAPRTNUM_DIGIT&:CMP#'0istdieZi}ffereineNull?DBNE.5->NeinNLDXPRTNUM_LENGTH#XBEQ.6->einefuehrendeNull!b.54lLDXPRTNUM_LENGTHsonst}ZifferanZahlanfuegenvSTAPRTNUM_ASCII,XINCPRTNUM_LENGTH.6&LDA#'0ZifferneuinitialisierenSTAPRT}NUM_DIGIT$DEYnaechstkleinere10erPotenzDEYDEYDEY&BPL.10sindallePotenzendurch?+LDAPRTNUM_LE}NGTHistdieZahleine0?BNE.3->Nein&LDA#'0sonst'0'alsASCIIstringSTAPRTNUM_ASCIIINCPRTNUM_LENGTH} .3RTS -"*;einepositiveZahlausgeben:4PRTNUM_POSITIV!>JSRPRTNUM_MAINZahlwandeln$HLDA#PRTNUM_ASCI}IZahlausgebenRLDX/PRTNUM_ASCII\LDYPRTNUM_LENGTHfSTYPRINT_LENGTH pLDY#0zSTYPRINT_LENGTH+1JSRPR}INTRTS-";einenegativeZahlausgeben:PRTNUM_NEGATIV'CLC2erKomplementderZahlbildenLDAPRTNUM ʁ}EOR#$FF ADC#1STAPRTNUMLDAPRTNUM+1 EOR#$FF ADC#0STAPRTNUM+1LDAPRTNUM+2 EOR#$FF} $ADC#0.STAPRTNUM+28LDAPRTNUM+3 BEOR#$FF LADC#0VSTAPRTNUM+3!`JSRPRTNUM_MAINZahlwandelnjLD}A#'-MinuszeichendavortSTAPRTNUM_ASCII-18~LDA#PRTNUM_ASCII-1ZahlsamtMinuszeichenausgebenLDX/PRTNUM_ASCII}-1LDYPRTNUM_LENGTHINYSTYPRINT_LENGTH LDY#0STYPRINT_LENGTH+1JSRPRINTRTS- PRTNUM8}STAPRTNUM1Bytegilt$LDA#0alleanderensindNullenSTAPRTNUM+1 STAPRTNUM+2STAPRTNUM+3$LDYTA}BLE_ENTRIES+2ab10^2=1008(JMPPRTNUM_POSITIVZahlistnachDefinitionpositiv2- <PRTNUM8SFCMP#$80IstZahlnega}tiv?PBCS.1->Ja!4ZJMPPRTNUM8SonstdienormaleRoutineverwendend.1nSTAPRTNUM0xLDA#$FFDie3anderenBy}tesauf$FFsetzenSTAPRTNUM+1STAPRTNUM+2STAPRTNUM+3LDYTABLE_ENTRIES+2JMPPRTNUM_NEGATIV- }PRTNUM16'STAPRTNUMDasselbe(fast)nochmal/STXPRTNUM+1aberdiesmal2geltendeBytes LDA#0STAPRTNUM+2}STAPRTNUM+3(LDYTABLE_ENTRIES+4ab10^4=10000JMPPRTNUM_POSITIV- PRTNUM16S%"CPX#$80allesnochmalvo}nvorne ,BCS.16JMPPRTNUM16@.1JSTAPRTNUMTSTXPRTNUM+1 ^LDA#$FFhSTAPRTNUM+2rSTAPRTNUM+3|}LDYTABLE_ENTRIES+4JMPPRTNUM_NEGATIV- PRTNUM24 STAPRTNUM3geltendeBytesSTXPRTNUM+1STYPRTNUM+2} LDA#0STAPRTNUM+3+LDYTABLE_ENTRIES+7ab10^7=10000000JMPPRTNUM_POSITIV- PRTNUM24S CPY#$80} BCS.1JMPPRTNUM24.1&STAPRTNUM0STXPRTNUM+1:STYPRTNUM+2 DLDA#$FFNSTAPRTNUM+3XLDYTAB}LE_ENTRIES+7bJMPPRTNUM_NEGATIVl-.v;alle4BytesliegenschoninPRTNUMvor: PRTNUM32-LDYTABLE_ENTRIES+9ab}10^9=1000000000JMPPRTNUM_POSITIV- PRTNUM32SLDYTABLE_ENTRIES+9BITPRTNUM+3 BMI.1JMPPRTNU}M_POSITIV.1JMPPRTNUM_NEGATIV-- PRTNUM32SLDYTABLE_ENTRIES+9BITPRTNUM+3 BMI.1JMPPRTNU,ER ;WichtigeCIO-Variablen:;IOCOM=$342(IOBUFF=$3442IOLEN=$348<IOAUX1=$34AFIOAUX2=$34BP};Z;CIO-Einsprungsadresse:d;nCIO=$E456x;;CIO-Kommandos:;CLOSEF=12 OPENF=3 GETB=7 P}UTB=11- CIOINIT STAHANDLERHandlerablegenTYAPHA*LDA#CLOSEFKommandoKanalschliessen4STAIO}COM,XindieentsprechendeSpeicherstelleJSRCIOundabindieCIO$;(derWertinXbleibterhalten)&LDA#OPENFKo}mmandoKanaloeffnen"STAIOCOM,X3,LDA#HANDLERAdressefuerdie"Handlerkennung"36STAIOBUFF,XindenVektorfuerd}enI/O-Buffer@LDA/HANDLERJSTAIOBUFF+1,XTPLA^STAIOAUX1,X hLDA#0rSTAIOAUX2,X"|JSRCIOundwieder}indieCIORTS-HANDLER.AS"?:"- PRINTPHALo-Bytesichern%TXAPlatzimX-RegisterschaffenL}DX#$60Kanal61STAIOBUFF+1,XTextalsI/O-BuffereintragenPLASTAIOBUFF,X4LDAPRINT_LENGTHLaengedesBuf}fersuebertragenSTAIOLEN,X!LDAPRINT_LENGTH+1(Hi-Byte)STAIOLEN+1,X&LDA#PUTBKommandoDaten'senden'&}STAIOCOM,X0JSRCIOundtschuess...:RTSD-NPRINT_LENGTH.HX0000X- bGETKEY lLDX#$50)vLDA#KEYBUFFER}inden"Keybuffer"...STAIOBUFF,XLDA/KEYBUFFERSTAIOBUFF+1,X#LDA#1...soll1Byte(Zeichen)STAIOLE}N,X LDA#0STAIOLEN+1,X;'LDA#GETBKommandoDatenempfangenSTAIOCOM,X JSRCIO1LDAKEYBUFFERge}lesenesZeichenzurueckgebenRTS- KEYBUFFER.HX00-empfangenSTAIOCOM,X JSRCIO1LDAKEYBUFFERgeCERy OPERATOR1.EQ$E0Faktor1OPERATOR2.EQ$E4Faktor2RESULT.EQ$E8Ergebnis3(BIT_COUNTER.HX00Zahlderz}uschiebendenBits#2SIGN_FLAG.HX00Vorzeichenflag<-F;8BitohneVorzeichen PMULT8!ZLDA#0Ergebnisauf0setz}endSTARESULTnSTARESULT+1#xLDA#88BitssindzuschiebenSTABIT_COUNTER.13ASLOPERATOR1Faktor1sc}hieben(MSB->Carry)"BCC.2keineAdditionnoetig?0LDAOPERATOR2AddiereFaktor2zumErgebnisCLCADCRESUL}TSTARESULTLDARESULT+1 ADC#0STARESULT+1.2(DECBIT_COUNTERZaehlerdekremierenBEQ.3fertig}?-ASLRESULTsonstErgebnis=Ergebnis*2ROLRESULT+1"JMP.1weitergeht's,.36RTSfertig!@-J;8Bi}tmitVorzeichen TMULT8S4^LDAOPERATOR1VorzeichendesErgebnissesmerkenhEOROPERATOR2rSTASIGN_FLAG|;L}DAOPERATOR1BPL.1Faktor1positiv?)EOR#$FFsonst2erKomplementbildenSTAOPERATOR1INCOPERATOR1.1}(LDAOPERATOR2DasselbemitFaktor2 BPL.2 EOR#$FFSTAOPERATOR2INCOPERATOR2.2$JSRMULT8Norma}lmultiplizieren;BITSIGN_FLAGevtl.2erKomplementvomErgebnisbilden BPL.3LDARESULT &EOR#$FF0STARE}SULT:LDARESULT+1 DEOR#$FFNSTARESULT+1XINCRESULT bBNE.3lINCRESULT+1v.3RTS-;16Bit}ohneVorzeichen MULT16 LDA#07STARESULTDiesmalkanndasErgebnis32Bithaben!STARESULT+1STARESULT+}2STARESULT+3'LDA#16Essind16BitzuschiebenSTABIT_COUNTER.1$ASLOPERATOR1alleswiegehabt,+R}OLOPERATOR1+1nurdiesmalmit16Bit BCC.2LDARESULT CLC*ADCOPERATOR24STARESULT>LDARESULT+1H}ADCOPERATOR2+1RSTARESULT+1\LDARESULT+2 fADC#0pSTARESULT+2zLDARESULT+3 ADC#0STARESULT+3}.2DECBIT_COUNTER BEQ.3ASLRESULTROLRESULT+1ROLRESULT+2ROLRESULT+3 JMP.1.3RT}S-;16BitmitVorzeichen MULT16SLDAOPERATOR1+1$EOROPERATOR2+1.STASIGN_FLAG8LDAOPERATOR1+1 B}BPL.1 LEOR#$FFVSTAOPERATOR1+1`LDAOPERATOR1 jEOR#$FFtSTAOPERATOR1~INCOPERATOR1 BNE.1I}NCOPERATOR1+1.1LDAOPERATOR2+1 BPL.2 EOR#$FFSTAOPERATOR2+1LDAOPERATOR2 EOR#$FFSTAO}PERATOR2INCOPERATOR2 BNE.2INCOPERATOR2+1 .2JSRMULT16BITSIGN_FLAG (BPL.32LDARESULT <}EOR#$FFFSTARESULTPLDARESULT+1 ZEOR#$FFdSTARESULT+1nLDARESULT+2 xEOR#$FFSTARESULT+2L}DARESULT+3 EOR#$FFSTARESULT+3INCRESULT BNE.3INCRESULT+1 BNE.3INCRESULT+2 BNE.3}INCRESULT+3.3RTS-;24BitohneVorzeichen MULT24 "LDA#0,STARESULT6STARESULT+1@STAR}ESULT+2JSTARESULT+3TSTARESULT+4^STARESULT+5 hLDA#24rSTABIT_COUNTER|.1ASLOPERATOR1ROLOP}ERATOR1+1ROLOPERATOR1+2 BCC.2LDARESULTCLCADCOPERATOR2STARESULTLDARESULT+1ADCOPE}RATOR2+1STARESULT+1LDARESULT+2ADCOPERATOR2+2STARESULT+2LDARESULT+3 ADC#0&STARESULT+3}0LDARESULT+4 :ADC#0DSTARESULT+4NLDARESULT+5 XADC#0bSTARESULT+5l.2vDECBIT_COUNTER BEQ.}3ASLRESULTROLRESULT+1ROLRESULT+2ROLRESULT+3ROLRESULT+4ROLRESULT+5 JMP.1.3RT}S-;24BitmitVorzeichen MULT24SLDAOPERATOR1+2 EOROPERATOR2+2STASIGN_FLAG LDAOPERATOR1+2 *}BPL.1 4EOR#$FF>STAOPERATOR1+2HLDAOPERATOR1+1 REOR#$FF\STAOPERATOR1+1fLDAOPERATOR1 pEOR#$FF}zSTAOPERATOR1INCOPERATOR1 BNE.1INCOPERATOR1+1 BNE.1INCOPERATOR1+2.1LDAOPERATOR2+2} BPL.2 EOR#$FFSTAOPERATOR2+2LDAOPERATOR2+1 EOR#$FFSTAOPERATOR2+1 LDAOPERATOR2  EOR#$}FF STAOPERATOR2$ INCOPERATOR2 . BNE.28 INCOPERATOR2+1 B BNE.2L INCOPERATOR2+2V .2` JSRMULT24j }BITSIGN_FLAG t BPL.3~ LDARESULT EOR#$FF STARESULT LDARESULT+1 EOR#$FF STARESULT+1 LDAR}ESULT+2 EOR#$FF STARESULT+2 LDARESULT+3 EOR#$FF STARESULT+3 LDARESULT+4 EOR#$FF STARE}SULT+4 LDARESULT+5  EOR#$FF( STARESULT+52 INCRESULT < BNE.3F INCRESULT+1 P BNE.3Z INCRESULT+2} d BNE.3n INCRESULT+3 x BNE.3 INCRESULT+4 BNE.3 INCRESULT+5 .3 RTS - ;32BitohneVorze}ichen MULT32 LDA#0 STARESULT STARESULT+1 STARESULT+2 STARESULT+3 STARESULT+4 STARESULT+}5 STARESULT+6" STARESULT+7 , LDA#326 STABIT_COUNTER@ .1J ASLOPERATOR1T ROLOPERATOR1+1^ ROLOPERA}TOR1+2h ROLOPERATOR1+3 r BCC.2| LDARESULT CLC ADCOPERATOR2 STARESULT LDARESULT+1 ADCOPERAT}OR2+1 STARESULT+1 LDARESULT+2 ADCOPERATOR2+2 STARESULT+2 LDARESULT+3 ADCOPERATOR2+3 STARES}ULT+3 LDARESULT+4  ADC#0 STARESULT+4 LDARESULT+5 & ADC#00 STARESULT+5: LDARESULT+6 D ADC#0}N STARESULT+6X LDARESULT+7 b ADC#0l STARESULT+7v .2 DECBIT_COUNTER BEQ.3 ASLRESULT ROLRESU}LT+1 ROLRESULT+2 ROLRESULT+3 ROLRESULT+4 ROLRESULT+5 ROLRESULT+6 ROLRESULT+7 JMP.1 .3} RTS - ;32BitmitVorzeichen  MULT32S LDAOPERATOR1+3* EOROPERATOR2+34 STASIGN_FLAG> LDAOPERATOR1}+3 H BPL.1 R EOR#$FF\ STAOPERATOR1+3f LDAOPERATOR1+2 p EOR#$FFz STAOPERATOR1+2 LDAOPERATOR1+1 E}OR#$FF STAOPERATOR1+1 LDAOPERATOR1 EOR#$FF STAOPERATOR1 INCOPERATOR1 BNE.1 INCOPERATOR1+1} BNE.1 INCOPERATOR1+2 BNE.1 INCOPERATOR1+3.1LDAOPERATOR2+3 BPL.2 $EOR#$FF.STAOPER}ATOR2+38LDAOPERATOR2+2 BEOR#$FFLSTAOPERATOR2+2VLDAOPERATOR2+1 `EOR#$FFjSTAOPERATOR2+1tLDAOPE}RATOR2 ~EOR#$FFSTAOPERATOR2INCOPERATOR2 BNE.2INCOPERATOR2+1 BNE.2INCOPERATOR2+2 BNE}.2INCOPERATOR2+3.2JSRMULT32BITSIGN_FLAG BPL.3LDARESULT EOR#$FFSTARESULTLDA}RESULT+1 (EOR#$FF2STARESULT+1<LDARESULT+2 FEOR#$FFPSTARESULT+2ZLDARESULT+3 dEOR#$FFnSTAR}ESULT+3xLDARESULT+4 EOR#$FFSTARESULT+4LDARESULT+5 EOR#$FFSTARESULT+5LDARESULT+6 EO}R#$FFSTARESULT+6LDARESULT+7 EOR#$FFSTARESULT+7INCRESULT BNE.3INCRESULT+1 BNE.3}INCRESULT+2 "BNE.3,INCRESULT+3 6BNE.3@INCRESULT+4 JBNE.3TINCRESULT+5 ^BNE.3hINCRESUL}T+6 rBNE.3|INCRESULT+7.3RTS-E.3@INCRESULT+4 JBNE.3TINCRESULT+5 ^BNE.3hINCRESUL300010 .LI OFF00020 ------------------------------00030 .IN "D:PRTNUM.INC" Die Routinen zur Zahlenausgabe}00040 .IN "D:CIO.INC" Die Textausgaberoutinen00050 .IN "D:MULT.INC" Die Multiplikationsroutinen0006}0 ------------------------------00070 START00080 LDA #'E E-Handler initialisieren00090 LDY #800100} LDX #$6000110 JSR CIOINIT00120 ;00130 ; zwei 8-Bit Zahlen ohne Vorzeichen00140 ;00150 LDA ZA}HL8_1 Die erste Zahl...00160 STA OPERATOR1 ...als ersten Operand verwenden...00170 JSR PRTNUM8 ...}und auf den Bildschirm ausgeben00180 JSR PRT_MAL dazu noch das Multiplikationszeichen00190 LDA ZAHL8_2} analog wird mit der zweiten Zahl verfahren00200 STA OPERATOR200210 JSR PRTNUM800220 JSR PRT}_GLEICH und noch ein "=" ausgeben00230 JSR MULT8 Jetzt wird multipliziert00240 LDA RESULT und da}s Ergebnis...00250 LDX RESULT+100260 JSR PRTNUM16 ...wie gehabt ausgegeben (16 Bit!)00270 JSR} PRT_EOL zum Schluss ein End-Of-Line Zeichen00280 ;00290 ; zwei 8-Bit Zahlen mit Vorzeichen00300 ;00310 LDA Z}AHL8S_100320 STA OPERATOR100330 JSR PRTNUM8S00340 JSR PRT_MAL00350 LDA ZAHL8S_200360} STA OPERATOR200370 JSR PRTNUM8S00380 JSR PRT_GLEICH00390 JSR MULT8S mit Vorzeiche}nbeachtung multiplizieren00400 LDA RESULT00410 LDX RESULT+100420 JSR PRTNUM16S00430 J}SR PRT_EOL00440 ;00450 ; zwei 16-Bit Zahlen ohne Vorzeichen00460 ;00470 LDA ZAHL16_100480 STA OPERATOR}100490 LDX ZAHL16_1+1 das Hi-Byte muss ins X-Register...00500 STX OPERATOR1+100510 JSR PRTNUM1}6 ...damit die Zahl ausgegeben werden kann00520 JSR PRT_MAL00530 LDA ZAHL16_200540 STA OPERA}TOR200550 LDX ZAHL16_2+100560 STX OPERATOR2+100570 JSR PRTNUM16 diesmal wird die 16-Bit Rout}ine verwendet00580 JSR PRT_GLEICH00590 JSR MULT1600600 LDA RESULT00610 STA PRTNUM006}20 LDA RESULT+100630 STA PRTNUM+100640 LDA RESULT+200650 STA PRTNUM+200660 L}DA RESULT+300670 STA PRTNUM+300680 JSR PRTNUM32 das Ergebnis kann 32 Bit haben!00690 JSR PRT}_EOL00700 ;00710 ; 16 Bit mit Vorzeichen:00720 ;00730 LDA ZAHL16S_100740 STA OPERATOR100750 }LDX ZAHL16S_1+100760 STX OPERATOR1+100770 JSR PRTNUM16S00780 JSR PRT_MAL00790 LDA ZAH}L16S_200800 STA OPERATOR200810 LDX ZAHL16S_2+100820 STX OPERATOR2+100830 JSR PRTNUM16}S00840 JSR PRT_GLEICH00850 JSR MULT16S00860 LDA RESULT00870 STA PRTNUM00880 } LDA RESULT+100890 STA PRTNUM+100900 LDA RESULT+200910 STA PRTNUM+200920 LDA RESULT+3}00930 STA PRTNUM+300940 JSR PRTNUM32S00950 JSR PRT_EOL00960 ;00970 ; 24 Bit ohne Vorzeichen:}00980 ;00990 LDA ZAHL24_101000 STA OPERATOR101010 LDX ZAHL24_1+101020 STX OPERATOR1+1}01030 LDY ZAHL24_1+201040 STY OPERATOR1+201050 JSR PRTNUM2401060 JSR PRT_MAL01070 } LDA ZAHL24_201080 STA OPERATOR201090 LDX ZAHL24_2+101100 STX OPERATOR2+101110 }LDY ZAHL24_2+201120 STY OPERATOR2+201130 JSR PRTNUM2401140 JSR PRT_GLEICH01150 JSR MU }LT2401160 LDA RESULT01170 STA PRTNUM01180 LDA RESULT+101190 STA PRTNUM+101200 } LDA RESULT+201210 STA PRTNUM+201220 LDA RESULT+301230 STA PRTNUM+301240 JSR PRTNUM }32 wir koennen nur 32 Bit ausgeben!01250 JSR PRT_EOL01260 ;01270 ; 24 Byt mit Vorzeichen:01280 ;01290 } LDA ZAHL24S_101300 STA OPERATOR101310 LDX ZAHL24S_1+101320 STX OPERATOR1+101330 LDY} ZAHL24S_1+201340 STY OPERATOR1+201350 JSR PRTNUM24S01360 JSR PRT_MAL01370 LDA ZAHL24}S_201380 STA OPERATOR201390 LDX ZAHL24S_2+101400 STX OPERATOR2+101410 LDY ZAHL24S_2+2}01420 STY OPERATOR2+201430 JSR PRTNUM24S01440 JSR PRT_GLEICH01450 JSR MULT24S01460 } LDA RESULT01470 STA PRTNUM01480 LDA RESULT+101490 STA PRTNUM+101500 LDA RESUL}T+201510 STA PRTNUM+201520 LDA RESULT+301530 STA PRTNUM+301540 JSR PRTNUM32S01550 } JSR PRT_EOL01560 ;01570 ; 32 Bit ohne Vorzeichen01580 ;01590 LDA ZAHL32_101600 STA OPERATOR101}610 STA PRTNUM01620 LDA ZAHL32_1+101630 STA OPERATOR1+101640 STA PRTNUM+101650 } LDA ZAHL32_1+201660 STA OPERATOR1+201670 STA PRTNUM+201680 LDA ZAHL32_1+301690 STA} OPERATOR1+301700 STA PRTNUM+301710 JSR PRTNUM3201720 JSR PRT_MAL01730 LDA ZAHL32_20}1740 STA OPERATOR201750 STA PRTNUM01760 LDA ZAHL32_2+101770 STA OPERATOR2+101780 } STA PRTNUM+101790 LDA ZAHL32_2+201800 STA OPERATOR2+201810 STA PRTNUM+201820 LDA} ZAHL32_2+301830 STA OPERATOR2+301840 STA PRTNUM+301850 JSR PRTNUM3201860 JSR PRT_GLE}ICH01870 JSR MULT3201880 LDA RESULT01890 STA PRTNUM01900 LDA RESULT+101910 }STA PRTNUM+101920 LDA RESULT+201930 STA PRTNUM+201940 LDA RESULT+301950 STA PRTNUM+3}01960 JSR PRTNUM32 Leider haben wir keine 64 Bit Ausgabe01970 JSR PRT_EOL01980 ;01990 ; 32 Bit mit Vorz}eichen:02000 ;02010 LDA ZAHL32S_102020 STA OPERATOR102030 STA PRTNUM02040 LDA ZAHL32}S_1+102050 STA OPERATOR1+102060 STA PRTNUM+102070 LDA ZAHL32S_1+202080 STA OPERATOR1+ }202090 STA PRTNUM+202100 LDA ZAHL32S_1+302110 STA OPERATOR1+302120 STA PRTNUM+302130!} JSR PRTNUM32S02140 JSR PRT_MAL02150 LDA ZAHL32S_202160 STA OPERATOR202170 S"}TA PRTNUM02180 LDA ZAHL32S_2+102190 STA OPERATOR2+102200 STA PRTNUM+102210 LDA ZAHL32#}S_2+202220 STA OPERATOR2+202230 STA PRTNUM+202240 LDA ZAHL32S_2+302250 STA OPERATOR2+$}302260 STA PRTNUM+302270 JSR PRTNUM32S02280 JSR PRT_GLEICH02290 JSR MULT32S02300 %} LDA RESULT02310 STA PRTNUM02320 LDA RESULT+102330 STA PRTNUM+102340 LDA RESULT+&}202350 STA PRTNUM+202360 LDA RESULT+302370 STA PRTNUM+302380 JSR PRTNUM32S02390 '} JSR PRT_EOL02400 ;02410 RTS und tschuess02420 ------------------------------02430 ; Hier wird der(} String " * " ausgegeben02440 PRT_MAL02450 LDA #3 3 Zeichen02460 STA PRINT_LENGTH02470 )} LDA #002480 STA PRINT_LENGTH+102490 LDA #MAL_ZEICHEN die Adresse des Strings02500 LDX /M*}AL_ZEICHEN02510 JSR PRINT und auf den Bildschirm damit02520 RTS02530 --------------------------+}----02540 ; dasselbe fuer " = "02550 PRT_GLEICH02560 LDA #302570 STA PRINT_LENGTH02580 LDA #0,}02590 STA PRINT_LENGTH+102600 LDA #GLEICH_ZEICHEN02610 LDX /GLEICH_ZEICHEN02620 JSR P-}RINT02630 RTS02640 ------------------------------02650 ; Ein End-Of-Line ausgeben:02660 PRT_EOL02670 L.}DA #1 Diesmal nur ein Zeichen02680 STA PRINT_LENGTH02690 LDA #002700 STA PRINT_LENG/}TH+102710 LDA #EOL_ZEICHEN02720 LDX /EOL_ZEICHEN02730 JSR PRINT02740 RTS02750 ------0}------------------------02760 ; Die Strings fuer die drei Hilfsroutinen02770 MAL_ZEICHEN .AS " * "02780 GLEICH_ZEICHEN 1}.AS " = "02790 EOL_ZEICHEN .HX 9B02800 ------------------------------02810 ; Hier kommen die auszugebenden Zahlen:02822}0 ZAHL8_1 .HX 1202830 ZAHL8_2 .HX 3402840 ZAHL8S_1 .HX FE02850 ZAHL8S_2 .HX 5602860 ;02870 ZAHL16_1 .HX 123402883}0 ZAHL16_2 .HX 567802890 ZAHL16S_1 .HX 234502900 ZAHL16S_2 .HX 678902910 ;02920 ZAHL24_1 .HX 89AB0102930 ZAHL24_2 .HX4} 32100002940 ZAHL24S_1 .HX 99999902950 ZAHL24S_2 .HX FFFFFF02960 ;02970 ZAHL32_1 .HX 5400000002980 ZAHL32_2 .HX 1111115}0002990 ZAHL32S_1 .HX 2222222203000 ZAHL32S_2 .HX 0300000003010 ------------------------------02980 ZAHL32_2 .HX 111111b00010 BASE10_TABLE00020 .HX 01000000 100030 .HX 0A000000 1000040 .HX 64000000 10000050 7} .HX E8030000 100000060 .HX 10270000 1000000070 .HX A0860100 10000000080 .HX 40420F00 10000008}00090 .HX 80969800 1000000000100 .HX 00E1F505 10000000000110 .HX 00CA9A3B 100000000000120 ----9}--------------------------00130 PRTNUM .HX 00000000 Die auszugebende Zahl00140 .HX 00 evtl.ein M:}inuszeichen00150 PRTNUM_ASCII .BL 15 Zahl als ASCII-String00160 PRTNUM_LENGTH .HX 00 Laenge des Strings00170 ;}PRTNUM_DIGIT .HX 00 Eine Ziffer (Hilfsvariable)00180 ------------------------------00190 ; Tabelle der Eintraege in <}BASE10_TABLE00200 TABLE_ENTRIES .HX 0004080C1000210 .HX 14181C202400220 ------------------------------00230=} PRTNUM_MAIN00240 LDA #0 Voreinstellungen00250 STA PRTNUM_LENGTH00260 LDA #'000270 >} STA PRTNUM_DIGIT00280 .1000290 ; Zahl von 10er Potenz abziehen und auf Stack sichern:00300 SEC00310 ?} LDA PRTNUM00320 SBC BASE10_TABLE,Y00330 PHA00340 LDA PRTNUM+100350 SBC BASE10_T@}ABLE+1,Y00360 PHA00370 LDA PRTNUM+200380 SBC BASE10_TABLE+2,Y00390 PHA00400 A} LDA PRTNUM+300410 SBC BASE10_TABLE+3,Y00420 BCC .2 -> Zahl kleiner als 10er Potenz00430 B} STA PRTNUM+3 sonst Zahl uebernehmen00440 PLA00450 STA PRTNUM+200460 PLA00470 C} STA PRTNUM+100480 PLA00490 STA PRTNUM00500 INC PRTNUM_DIGIT und Ziffer um 1 erhoehen00510 D} JMP .1000520 .200530 PLA Zahl vom Stack holen00540 PLA00550 PLA00560 E} LDA PRTNUM_DIGIT00570 CMP #'0 ist die Ziffer eine Null?00580 BNE .5 -> Nein00590 F} LDX PRTNUM_LENGTH00600 BEQ .6 -> eine fuehrende Null!00610 .500620 LDX PRTNUM_LENGTH soG}nst Ziffer an Zahl anfuegen00630 STA PRTNUM_ASCII,X00640 INC PRTNUM_LENGTH00650 .600660 LDA #'H}0 Ziffer neu initialisieren00670 STA PRTNUM_DIGIT00680 DEY naechstkleinere 10erI} Potenz00690 DEY00700 DEY00710 DEY00720 BPL .10 sind alle Potenzen durch?J}00730 LDA PRTNUM_LENGTH ist die Zahl eine 0?00740 BNE .3 -> Nein00750 LDA #'0 K} sonst '0' als ASCIIstring00760 STA PRTNUM_ASCII00770 INC PRTNUM_LENGTH00780 .300790 RTSL}00800 ------------------------------00810 ; eine positive Zahl ausgeben:00820 PRTNUM_POSITIV00830 JSR PRTNUM_MAINM} Zahl wandeln00840 LDA #PRTNUM_ASCII Zahl ausgeben00850 LDX /PRTNUM_ASCII00860 LDY PRTNUM_LN}ENGTH00870 STY PRINT_LENGTH00880 LDY #000890 STY PRINT_LENGTH+100900 JSR PRINT00910 O} RTS00920 ------------------------------00930 ; eine negative Zahl ausgeben:00940 PRTNUM_NEGATIV00950 CLP}C 2er Komplement der Zahl bilden00960 LDA PRTNUM00970 EOR #$FF00980 ADC #100990Q} STA PRTNUM01000 LDA PRTNUM+101010 EOR #$FF01020 ADC #001030 STA PRTNUM+101R}040 LDA PRTNUM+201050 EOR #$FF01060 ADC #001070 STA PRTNUM+201080 LDA PRTNUMS}+301090 EOR #$FF01100 ADC #001110 STA PRTNUM+301120 JSR PRTNUM_MAIN Zahl wandelnT}01130 LDA #'- Minuszeichen davor01140 STA PRTNUM_ASCII-101150 LDA #PRTNUM_ASCII-1 ZaU}hl samt Minuszeichen ausgeben01160 LDX /PRTNUM_ASCII-101170 LDY PRTNUM_LENGTH01180 INY01190 V} STY PRINT_LENGTH01200 LDY #001210 STY PRINT_LENGTH+101220 JSR PRINT01230 RTS0W}1240 ------------------------------01250 PRTNUM801260 STA PRTNUM 1 Byte gilt01270 LDA #0 X} alle anderen sind Nullen01280 STA PRTNUM+101290 STA PRTNUM+201300 STA PRTNUM+301310 Y} LDY TABLE_ENTRIES+2 ab 10^2=10001320 JMP PRTNUM_POSITIV Zahl ist nach Definition positiv01330 -------------Z}-----------------01340 PRTNUM8S01350 CMP #$80 Ist Zahl negativ?01360 BCS .1 -> J[}a!01370 JMP PRTNUM8 Sonst die normale Routine verwenden01380 .101390 STA PRTNUM01400 L\}DA #$FF Die 3 anderen Bytes auf $FF setzen01410 STA PRTNUM+101420 STA PRTNUM+201430 ]}STA PRTNUM+301440 LDY TABLE_ENTRIES+201450 JMP PRTNUM_NEGATIV01460 ------------------------------01470 ^}PRTNUM1601480 STA PRTNUM Dasselbe (fast) nochmal01490 STX PRTNUM+1 aber diesmal 2 geltende Byte_}s01500 LDA #001510 STA PRTNUM+201520 STA PRTNUM+301530 LDY TABLE_ENTRIES+4 ab 10^4 = `}1000001540 JMP PRTNUM_POSITIV01550 ------------------------------01560 PRTNUM16S01570 CPX #$80 a}alles nochmal von vorne01580 BCS .101590 JMP PRTNUM1601600 .101610 STA PRTNUM01620 Sb}TX PRTNUM+101630 LDA #$FF01640 STA PRTNUM+201650 STA PRTNUM+301660 LDY TABLE_ENTRIES+c}401670 JMP PRTNUM_NEGATIV01680 ------------------------------01690 PRTNUM2401700 STA PRTNUM 3 geld}tende Bytes01710 STX PRTNUM+101720 STY PRTNUM+201730 LDA #001740 STA PRTNUM+301750 e} LDY TABLE_ENTRIES+7 ab 10^7 = 1000000001760 JMP PRTNUM_POSITIV01770 ------------------------------01780 Pf}RTNUM24S01790 CPY #$8001800 BCS .101810 JMP PRTNUM2401820 .101830 STA PRTNUM01840 g} STX PRTNUM+101850 STY PRTNUM+201860 LDA #$FF01870 STA PRTNUM+301880 LDY TABLEh}_ENTRIES+701890 JMP PRTNUM_NEGATIV01900 ------------------------------01910 ; alle 4 Bytes liegen schon in PRTNUMi} vor:01920 PRTNUM3201930 LDY TABLE_ENTRIES+9 ab 10^9 = 100000000001940 JMP PRTNUM_POSITIV01950 --------j}----------------------01960 PRTNUM32S01970 LDY TABLE_ENTRIES+901980 BIT PRTNUM+301990 BMI .10k}2000 JMP PRTNUM_POSITIV02010 .102020 JMP PRTNUM_NEGATIV02030 ------------------------------ BMI .10q00010 ; Wichtige CIO-Variablen:00020 ;00030 IOCOM = $34200040 IOBUFF = $34400050 IOLEN = $34800060 IOAUX1m} = $34A00070 IOAUX2 = $34B00080 ;00090 ; CIO-Einsprungsadresse:00100 ;00110 CIO = $E45600120 ;00130 ; Cn}IO-Kommandos:00140 ;00150 CLOSEF = 1200160 OPENF = 300170 GETB = 700180 PUTB = 1100190 -----------o}-------------------00200 CIOINIT00210 STA HANDLER Handler ablegen00220 TYA00230 PHA00240 p} LDA #CLOSEF Kommando Kanal schliessen00250 STA IOCOM,X in die entsprechende Speicherstelle00260 q} JSR CIO und ab in die CIO00270 ;(der Wert in X bleibt erhalten)00280 LDA #OPENF Kommando Kanal oeffnenr}00290 STA IOCOM,X00300 LDA #HANDLER Adresse fuer die "Handlerkennung"00310 STA IOBUFF,X in dens} Vektor fuer den I/O-Buffer00320 LDA /HANDLER00330 STA IOBUFF+1,X00340 PLA00350 STA It}OAUX1,X00360 LDA #000370 STA IOAUX2,X00380 JSR CIO und wieder in die CIO00390 Ru}TS00400 ------------------------------00410 HANDLER .AS "?:"00420 ------------------------------00430 PRINT00440 v} PHA Lo-Byte sichern00450 TXA Platz im X-Register schaffen00460 LDX #$60 Kanal 60w}0470 STA IOBUFF+1,X Text als I/O-Buffer eintragen00480 PLA00490 STA IOBUFF,X00500 LDA x}PRINT_LENGTH Laenge des Buffers uebertragen00510 STA IOLEN,X00520 LDA PRINT_LENGTH+1 (Hi-Byte)00530 y} STA IOLEN+1,X00540 LDA #PUTB Kommando Daten 'senden'00550 STA IOCOM,X00560 JSR CIO z}und tschuess...00570 RTS00580 ------------------------------00590 PRINT_LENGTH .HX 000000600 -------------------{}-----------00610 GETKEY00620 LDX #$5000630 LDA #KEYBUFFER in den "Keybuffer"...00640 STA IOBUF|}F,X00650 LDA /KEYBUFFER00660 STA IOBUFF+1,X00670 LDA #1 ...soll 1 Byte(Zeichen)00680 }} STA IOLEN,X00690 LDA #000700 STA IOLEN+1,X00710 ;00720 LDA #GETB Kommando Daten empf~}angen00730 STA IOCOM,X00740 JSR CIO00750 LDA KEYBUFFER gelesenes Zeichen zurueckgeben00760 } RTS00770 ------------------------------00780 KEYBUFFER .HX 0000790 ------------------------------eckgeben00760 k00010 OPERATOR1 .EQ $E0 Faktor 100020 OPERATOR2 .EQ $E4 Faktor 200030 RESULT .EQ $E8 Ergebnis00040 BIT_COUNTER .}HX 00 Zahl der zu schiebenden Bits00050 SIGN_FLAG .HX 00 Vorzeichenflag00060 ------------------------------00070 ; 8 B}it ohne Vorzeichen00080 MULT800090 LDA #0 Ergebnis auf 0 setzen00100 STA RESULT00110 }STA RESULT+100120 LDA #8 8 Bits sind zu schieben00130 STA BIT_COUNTER00140 .100150 AS}L OPERATOR1 Faktor 1 schieben (MSB -> Carry)00160 BCC .2 keine Addition noetig?00170 LDA OPERA}TOR2 Addiere Faktor 2 zum Ergebnis00180 CLC00190 ADC RESULT00200 STA RESULT00210 LD}A RESULT+100220 ADC #000230 STA RESULT+100240 .200250 DEC BIT_COUNTER Zaehler dekremieren002}60 BEQ .3 fertig?00270 ASL RESULT sonst Ergebnis = Ergebnis * 200280 ROL RESULT+}100290 JMP .1 weiter geht's00300 .300310 RTS fertig!00320 ----------------------}--------00330 ; 8 Bit mit Vorzeichen00340 MULT8S00350 LDA OPERATOR1 Vorzeichen des Ergebnisses merken00360 } EOR OPERATOR200370 STA SIGN_FLAG00380 ;00390 LDA OPERATOR100400 BPL .1 Faktor 1 pos}itiv?00410 EOR #$FF sonst 2er Komplement bilden00420 STA OPERATOR100430 INC OPERATOR10044}0 .100450 LDA OPERATOR2 Dasselbe mit Faktor 200460 BPL .200470 EOR #$FF00480 STA OPER}ATOR200490 INC OPERATOR200500 .200510 JSR MULT8 Normal multiplizieren00520 BIT SIGN_FLAG e}vtl. 2er Komplement vom Ergebnis bilden00530 BPL .300540 LDA RESULT00550 EOR #$FF00560 } STA RESULT00570 LDA RESULT+100580 EOR #$FF00590 STA RESULT+100600 INC RESULT00610 } BNE .300620 INC RESULT+100630 .300640 RTS00650 ------------------------------00660 ; 16 Bit o}hne Vorzeichen00670 MULT1600680 LDA #000690 STA RESULT Diesmal kann das Ergebnis 32 Bit haben!00700 } STA RESULT+100710 STA RESULT+200720 STA RESULT+300730 LDA #16 Es sind 16 Bit zu} schieben00740 STA BIT_COUNTER00750 .100760 ASL OPERATOR1 alles wie gehabt,00770 ROL OPERATO}R1+1 nur diesmal mit 16 Bit00780 BCC .200790 LDA RESULT00800 CLC00810 ADC OPERATOR20}0820 STA RESULT00830 LDA RESULT+100840 ADC OPERATOR2+100850 STA RESULT+100860 } LDA RESULT+200870 ADC #000880 STA RESULT+200890 LDA RESULT+300900 ADC #000910 } STA RESULT+300920 .200930 DEC BIT_COUNTER00940 BEQ .300950 ASL RESULT00960 ROL }RESULT+100970 ROL RESULT+200980 ROL RESULT+300990 JMP .101000 .301010 RTS01020 ----}--------------------------01030 ; 16 Bit mit Vorzeichen01040 MULT16S01050 LDA OPERATOR1+101060 EOR OPER}ATOR2+101070 STA SIGN_FLAG01080 LDA OPERATOR1+101090 BPL .101100 EOR #$FF01110 } STA OPERATOR1+101120 LDA OPERATOR101130 EOR #$FF01140 STA OPERATOR101150 INC OPER}ATOR101160 BNE .101170 INC OPERATOR1+101180 .101190 LDA OPERATOR2+101200 BPL .20121}0 EOR #$FF01220 STA OPERATOR2+101230 LDA OPERATOR201240 EOR #$FF01250 STA OP}ERATOR201260 INC OPERATOR201270 BNE .201280 INC OPERATOR2+101290 .201300 JSR MULT16}01310 BIT SIGN_FLAG01320 BPL .301330 LDA RESULT01340 EOR #$FF01350 STA RESUL}T01360 LDA RESULT+101370 EOR #$FF01380 STA RESULT+101390 LDA RESULT+201400 }EOR #$FF01410 STA RESULT+201420 LDA RESULT+301430 EOR #$FF01440 STA RESULT+301450 } INC RESULT01460 BNE .301470 INC RESULT+101480 BNE .301490 INC RESULT+201500 } BNE .301510 INC RESULT+301520 .301530 RTS01540 ------------------------------01550 ; 24 Bit oh}ne Vorzeichen01560 MULT2401570 LDA #001580 STA RESULT01590 STA RESULT+101600 STA RES}ULT+201610 STA RESULT+301620 STA RESULT+401630 STA RESULT+501640 LDA #2401650 } STA BIT_COUNTER01660 .101670 ASL OPERATOR101680 ROL OPERATOR1+101690 ROL OPERATOR1+201700 } BCC .201710 LDA RESULT01720 CLC01730 ADC OPERATOR201740 STA RESULT01750 } LDA RESULT+101760 ADC OPERATOR2+101770 STA RESULT+101780 LDA RESULT+201790 ADC }OPERATOR2+201800 STA RESULT+201810 LDA RESULT+301820 ADC #001830 STA RESULT+301840 } LDA RESULT+401850 ADC #001860 STA RESULT+401870 LDA RESULT+501880 ADC #00189}0 STA RESULT+501900 .201910 DEC BIT_COUNTER01920 BEQ .301930 ASL RESULT01940 } ROL RESULT+101950 ROL RESULT+201960 ROL RESULT+301970 ROL RESULT+401980 ROL RESULT+}501990 JMP .102000 .302010 RTS02020 ------------------------------02030 ; 24 Bit mit Vorzeichen02040 }MULT24S02050 LDA OPERATOR1+202060 EOR OPERATOR2+202070 STA SIGN_FLAG02080 LDA OPERATO}R1+202090 BPL .102100 EOR #$FF02110 STA OPERATOR1+202120 LDA OPERATOR1+102130 } EOR #$FF02140 STA OPERATOR1+102150 LDA OPERATOR102160 EOR #$FF02170 STA OPERATOR1}02180 INC OPERATOR102190 BNE .102200 INC OPERATOR1+102210 BNE .102220 INC OP}ERATOR1+202230 .102240 LDA OPERATOR2+202250 BPL .202260 EOR #$FF02270 STA OPERATOR2+}202280 LDA OPERATOR2+102290 EOR #$FF02300 STA OPERATOR2+102310 LDA OPERATOR202320 } EOR #$FF02330 STA OPERATOR202340 INC OPERATOR202350 BNE .202360 INC OPERATOR2+}102370 BNE .202380 INC OPERATOR2+202390 .202400 JSR MULT2402410 BIT SIGN_FLAG02420 } BPL .302430 LDA RESULT02440 EOR #$FF02450 STA RESULT02460 LDA RESULT+102470} EOR #$FF02480 STA RESULT+102490 LDA RESULT+202500 EOR #$FF02510 STA RESULT+}202520 LDA RESULT+302530 EOR #$FF02540 STA RESULT+302550 LDA RESULT+402560 }EOR #$FF02570 STA RESULT+402580 LDA RESULT+502590 EOR #$FF02600 STA RESULT+502610 } INC RESULT02620 BNE .302630 INC RESULT+102640 BNE .302650 INC RESULT+202660 } BNE .302670 INC RESULT+302680 BNE .302690 INC RESULT+402700 BNE .302710 } INC RESULT+502720 .302730 RTS02740 ------------------------------02750 ; 32 Bit ohne Vorzeichen02760 MULT3}202770 LDA #002780 STA RESULT02790 STA RESULT+102800 STA RESULT+202810 STA }RESULT+302820 STA RESULT+402830 STA RESULT+502840 STA RESULT+602850 STA RESULT+70286}0 LDA #3202870 STA BIT_COUNTER02880 .102890 ASL OPERATOR102900 ROL OPERATOR1+102910 } ROL OPERATOR1+202920 ROL OPERATOR1+302930 BCC .202940 LDA RESULT02950 CLC02}960 ADC OPERATOR202970 STA RESULT02980 LDA RESULT+102990 ADC OPERATOR2+103000 } STA RESULT+103010 LDA RESULT+203020 ADC OPERATOR2+203030 STA RESULT+203040 LDA RESU}LT+303050 ADC OPERATOR2+303060 STA RESULT+303070 LDA RESULT+403080 ADC #003090 } STA RESULT+403100 LDA RESULT+503110 ADC #003120 STA RESULT+503130 LDA RESULT+603}140 ADC #003150 STA RESULT+603160 LDA RESULT+703170 ADC #003180 STA RESULT+7}03190 .203200 DEC BIT_COUNTER03210 BEQ .303220 ASL RESULT03230 ROL RESULT+103240 } ROL RESULT+203250 ROL RESULT+303260 ROL RESULT+403270 ROL RESULT+503280 ROL RE}SULT+603290 ROL RESULT+703300 JMP .103310 .303320 RTS03330 ------------------------------033}40 ; 32 Bit mit Vorzeichen03350 MULT32S03360 LDA OPERATOR1+303370 EOR OPERATOR2+303380 STA SIG}N_FLAG03390 LDA OPERATOR1+303400 BPL .103410 EOR #$FF03420 STA OPERATOR1+303430 } LDA OPERATOR1+203440 EOR #$FF03450 STA OPERATOR1+203460 LDA OPERATOR1+103470 EOR} #$FF03480 STA OPERATOR1+103490 LDA OPERATOR103500 EOR #$FF03510 STA OPERATOR103520 } INC OPERATOR103530 BNE .103540 INC OPERATOR1+103550 BNE .103560 INC OPERATOR}1+203570 BNE .103580 INC OPERATOR1+303590 .103600 LDA OPERATOR2+303610 BPL .203620 } EOR #$FF03630 STA OPERATOR2+303640 LDA OPERATOR2+203650 EOR #$FF03660 STA OP}ERATOR2+203670 LDA OPERATOR2+103680 EOR #$FF03690 STA OPERATOR2+103700 LDA OPERATOR2}03710 EOR #$FF03720 STA OPERATOR203730 INC OPERATOR203740 BNE .203750 INC OP}ERATOR2+103760 BNE .203770 INC OPERATOR2+203780 BNE .203790 INC OPERATOR2+303800 .2}03810 JSR MULT3203820 BIT SIGN_FLAG03830 BPL .303840 LDA RESULT03850 EOR #$F}F03860 STA RESULT03870 LDA RESULT+103880 EOR #$FF03890 STA RESULT+103900 LD}A RESULT+203910 EOR #$FF03920 STA RESULT+203930 LDA RESULT+303940 EOR #$FF03950 } STA RESULT+303960 LDA RESULT+403970 EOR #$FF03980 STA RESULT+403990 LDA RESULT+5}04000 EOR #$FF04010 STA RESULT+504020 LDA RESULT+604030 EOR #$FF04040 STA R}ESULT+604050 LDA RESULT+704060 EOR #$FF04070 STA RESULT+704080 INC RESULT04090 } BNE .304100 INC RESULT+104110 BNE .304120 INC RESULT+204130 BNE .304140 } INC RESULT+304150 BNE .304160 INC RESULT+404170 BNE .304180 INC RESULT+504190 } BNE .304200 INC RESULT+604210 BNE .304220 INC RESULT+704230 .304240 RTS04250 --}---------------------------- RESULT+604210 BNE .304220 INC RESULT+704230 .304240 RTS04250 -- a.$(,8,<5P@uYm$V 0}  @ n @@} &(,,<  & ,<< & ,<< +,&(,, &(,, }&,<< &(,,<< &(,,<<PPy@h uQE XTT} &,<SL@Ph(  &(,,<<&(,,<< &(,, &(,,<< &(,, &(,}, &(,, $(,,8,<<&̀& ,<<$(,,8,<<$(,YfcϏ&(,},<< &(,,<<&(,,<< &(,,<<&(,,<< &(,, &̀$(,,8,<<$}(,,8,<<P`` $+,8,$(,,8,<<& , &(,$,<< &(,$,<<$(,$,8,<<}  `K 2@8,8($$UQRPU@@TЀ@PU$uYm}U0 VTT ` @ 00 @@ @;/}@  ;/?<8. 8($`.:d /<<8.:$d 08. 8($`;/ࠐ`;08. }8($`;/<<8. 8($`@ <<8. 8($`;08. 8($` @UU@yPPT}Ym WTT@@AFc(* c<;/<<8,88($$;/<<8.:8($`8,<<8. $`8,<<8.:8,8($`;/<}<8. $`;/<<8,88,<<8. 0,8($`;/<<8,88($$3.:d08. 8,8($`;/<<8,88($$8,<<8.:$d}ΊɆE8,<<8,88,8($$8,<<8. 8,8($`;/<<8,88,<<8. 8,8$;/<<8,88($$;08. 8($`}@8,<<8. 8,8($`8,< 8,8ࠀ@:ΊɆd>8,8$$ @8.:$d;/<<8,88($$8,<<8. 8,}8($`8,<<8. 8,8($`ࠐ`̌:2 d i(Ʌ1 )@ԥԅҩ O- 0ԩԩt)[.} - *LR(1d(0󢚠"ȊlȑȊȑȊi id(`ԊHH ԩpЩ@Ѝ Ԫ}ڍн؍Ю ۼٍЌнݍн܍ԩЍЍЍЍ*ЩЩ *hhh@1a(b(A_(`(Q](^(Ѝ Ѝ }Ѝ Щ ЍЍЍЩЩo`Hɀ 2L(L;,HHԭe(Эf(Эg( _* :*))_i}ٝI8 ؙ8 :*))_iۙI8 ڙ8 :***_iݙI8 ܙ8 hhh@}[*N[*N[*) [*8[*i`)r)r)r)r)r)`**0I+*J+iJK+iJ} +i i1 L+ 2+)𶭍***CЧ*L*Ό*М΍*L*F,LH,L,1+Iy0I6L+i`Ъ}) 1+`1+`)L:,\(\(L:,H+mG+G+?G+H+ +*++.++.++.++.++.++++}+i+H+ FG+h(h(Z([( -Z([(I+J+K+U(e(V(f(W(g(L0,I+J+K+U(8e(V(8f(W(8g}(H+\(` ԩ$ h@E,'211ލ11F,L,ޝL,ޝL,8 8* mE,ԮE,ʎE,`E},'211ލ11F,L-ޝL-ޝL-7IɅ18  /mE,ԮE,ʎE,`}``` %- %-P %- %-@ %- %- %- 6- 6-} 6-`[.[.[. \.\.ѩҩө5X(өY("i"Ң(Бi(i(ХiY(ȩ"Ҫ}X(Ь[. m[.R.U(S.V(T.W(`$& >Vo0H7pppPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN}NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN}NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN}NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN}NNNNNNNNNNNNNppTA0 DIE ARGS-DEMO-WORKINGGROUP HAT ZUGESCHLAGEN. WIE DIE DEMO JETZT GENAU HEISST, WEISS ICH EHRLICH GES}AGT NICHT MEHR SO GENAU, ABER AUF IRGENDEINEM BILD STEHT EBBES DRAUF... ES IST SCHON FAST ZWEI JAHRE HER, SEIT MIR DIE IDEE M}IT DEM HINTERGRUNDEFFEKT GEKOMMEN IST, ABER ES DAUERT EBEN IMMER EIN WENIG L[NGER WENN MAN (WINFRIED PIEGSD}A) EIN PAAR BILDER ABKN\PFEN WILL. DEN SOUND HAT (MARTIN KUGLER) GESTIFTET, UND ER H\HRTE SICH ERST RICHTIG SCH}R[G AN, NACHDEM ICH IHN EIN WENIG NACHBEARBEITET HATTE (ICH MAG HALT KEINE HALBEN SACHEN). DER SOUND KOMMT ]BRIGENS AUS BENJY}S SOUND-MONITOR, DIE BILDER WURDEN (NAT]RLICH) MIT ERSTELLT UND DER CODE WURDE DEM BIBO-ASSEMBLER ABGERUNGEN - WOMIT DER} WERBEBLOCK ABGEHAKT W[RE @ GR]SSE SCHREIBE ICH HIER NICHT REIN, DA DIESEM ZWECK EIN GANZES BILD GEWIDMET WURDE. WER NICHTS L}ESEN KANN, SOLL MAL DIE FUNKTIONSTASTEN AUSPROBIEREN @ DER HINTERGRUND IST EIGENTLICH GAR NICHT M\GLICH, ABER WAS JUCKT MICH }DAS... DER TRICK BESTEHT EINFACH DARIN, DEN AUFBAU DER GTIA UND DES ANTIC SOFTWAREM[SSIG EIN WENIG ZU [NDERN - DIES F]HRT ZWA}R ZU IRREPERABLEN SCH[DEN IM ATARI, ABER NIEMAND ZWINGT EUCH DIESE DEMO LAUFEN ZU LASSEN. NAJA, VIELLEICHT WERDEN SO MEHR ATA }RIS VERKAUFT @@@ OK, JETZT F[LLT MIR NIX MEHR EIN, ABER DAMIT IN 16 STUNDEN AUF KES MESSE AUCH EIN PAAR LEMMINGE ]BER DEN SCH }IRM SCHLURFEN MUSS ICH NOCH EIN WENIG SCHAFFEN @@@@@@@@@  !"#$%&'()*+,-./012345 }  !"#$%&'()*+-./012345  !#$%&'()*,-./01245 }  !"#%&'()+,-./12345  "#$&'()+,-.01245 }  !#$%'()+,-/0134 !"#%&()+,./1235}  !#$&()+,./124  "$&')+,.0135} !#%')*,.0235  "$&(*,.024} !#%'*,.024 "$')+.025}  #%(+-025 !$'),/25} !%(+.25 "&)-14} "'+/3 #',1} #(.4")0} !)1 (2} &3!2}-} 2}}}5454}5454}5454}5454$}54(54+!  }54,$ 54.'  !}54/)# 540+&! "}540,($ 541-)&" #}541.+'$! 542/,)&#  $}542/-*'%" 5420-+)&$! %}5420.,*(%#! 5431/-+)'%#! &}5431/-+*(&$"  5431/.,*)'%$"  '}54310.-+*(&%#"  54320/-,*)'&$#"  (}54320/.,+*('&$#!  54321/.-,*)(&%$#!  )} 543210.-,+*('&%$"!  543210/.-+*)('&%#"! *} 543210/.-,+*)('%$#"!  543210/.-,+*)('&%$#"! +} ,}-}.}/}0}  1}  2}  3} |yvtqoljhfdb`_][ZXWVUTSRQPPOOONNNNNNOOOPPQRSTUVWXZ[]_`4}bdfhjloqtvy|5}LLLVyspfaZURKHC?<9730-*(%$!6}yrlf`[UQLHD@<952/-*(%#!S7}8}9}"#"#"#"#:}srsrsrsrsBCBCCsCC"#"#"#;}""#rsrssBCBCBCr<}rBC"""#"##""=}rrrsrssrrBBBCCCBB"#"#">}#"#rsrsrsrsBCBCBC?}sC#QQQQQQ&'@}&&F&&&&&FFF&&A}&'&&'vvvvFFB}&&&&'&&FFvvFC}F&"""BBB"@p@D}p@p@p@p@p@p@p@p@p@p@p@p@pE}@p@p@p@p@p@p@p@p@p@p@p@p@F}p@p@p@p@p@p@p@p@p@p@p@p@pG}@p@p@pH}I}J}9c K}89c89c 89cY89cL}9c 89c89c 4[89cYM} [89c89cY 4[89N}c   *K{*K{*K{*O}K{*K{*K{#DV}*K{P}*K{*K{#DV}*K{@Q}3qER}S}T}U}V} W} X} Y} ?@$ҩip>q??r@ Z}`  d >,@T = @5 Цŭԥhl`  [}! dБihlHȱLȱPȱXȱdHLt  b\} >(@K 9 @1 إ­ ! Кi ]}GȱCDDȱAȢ `ԩ"#`` L_ԩ_"#Ԣ^}$`ҭGҥxyDDClDhlPȱXȱdHL0ȱ,ȱt,(_}480\Н9+)' , 480\[ ) T ) T )8`}H) i hJJJJ}ЩupptpHiHLBBAEB>>?La}@>p`hlHȱL0S^``d`hihlhlHȫb}LPEi GȱCȱAȢ $` Z,\(c},,(,}X klAб\ ( 480 \ {гd}g GVɀgԽiVɀ}ЦT }PQߠTe}B;Cɀ1T&iCɀ}mЫiHJJJJ<<88<h"h)<80f} 4m<44}48<4Т xy`>jUUQPEUYUQETEEQUg}𩪪iUUUUUPADEEUfTPTDEEUiUUTEEQEDQETiUh}EEQYfjUDTTDETDDy|???w濿W|7Tkuts5ww7{wUwwtwsM0D{뫹|}w}|i}\ww7wu<\}uu7tswMw{kuu3w71wS]tPu?}wwwwG=?]?TeDDEETUQVjj}TUQUAEUTQEUUUDTATDUQETjUTUUQUTUZfUUUAUTUTUEDQUUk}UDTDUUQDDUTUw}?}}w~WwGEw]s33ws]{w{{뻫uS3U7w7wt3ww7}wwl}ڻ}Uw}U?w]wwsww]{w뻫黵S7UwwEqwtUww=wY}}uWsWw7u5stUUEefYYQm}UUUUETUUQQiUffUUTUUEUTUYUUUUYYUUUUUTTQUTUUUUUUVYUfUUUUUn}UT[uWU?wwwu[WWW{Wy뫪뻫gwwUw4w7Tww[뮿ww}wswo}wwew[{{gv꺺뫫gw{Uww77D{{WwwsjYVDVjVffieUYYUEQTUZp}UZVZUUfUUTQDUZUUjUYeUfUQEUjVZUZjjfffUUUTQPw~uq}w꿿{뺫eyWw{uw{Wwww뻻wzUwwtw{yvw{W{]Uw𻺪w{zwwzr}Ww뻻{WCsT~[w궿W{jWDUjjUYfjUUTDUTjUjjUUZs}iYQTDTUjjUYUUZfffjUQEUZUVfiUVeTU{wwt}?wtu{{w{z{uwv{뻻{]s7w4{}wڿ{뿻}qĺW{zwvWww뻻u}ww7pwwz]s3wtUZUZeYUUTUZUVUjjUTv}DUUVUUUeUUUTUZUVTDEQDWwW𺻫w}Ww]w{뫻wWG7ԺW뫻]7}뺿}WwzWwMwv뫻wE77EĿWwx}]?zkw{wWTԪUUUUUeZUTEDEjjUUjTEjUYZUUTUTDUUjy}UTUeUjUDAPADUTUjUUEwjwWuw𻮻Ww^wwz}z{wUtww~ww~wswлuWwnwwzy뫻wQ73sw}?Zw]{}UM7TeUUUjUUjiUUTQQDUUUTUjiUjfUUUUTUUUEjUjj|}UUEUUTYUUUUjjUjUTUQdu}{Xwuw껻kWz뻪}}wuw{WT}u}z꾿꺺}wwhuw귫{z뻪뻷uwwWdu~꾿zw~}wjVfjUZUjUZejeUUUhjUVUh}jjUUh}Ww뫻뻫g{뻫wWwhk뫀}׻껾뻿wUר{뻻[뻫{뫫wWw{wWwj}UVjjUUVjUeUVjjje}UZ{w{uww뾺}w{kW{{{}jjjj}jۧ뺫{뻪m뫻뻻뫻껾]k뻻}뻸뻪v{]k껫뺻kw]keUUZj}ieUUUjUUUUVUYUUUY~}UWu{]wwuWw{뫮뫫꿺]~}}uW軻{u}w]wwuWw껮뫻v^wUwwWwUUUUUUUUUZeUUUUUU}UZeUUeUeUUUUjeeUUUUUUUZWUuwW뫻}wYWww]uwwW{뫻뻻뺻n~UwwwW{uweWww]wwwWw뫻}뻻{꺺{UwwU]wk{VeUUeUUUUUUUejUUUUUUUUUUUUUUZZ}YfYYYUUUUUUUUUUUUUUUjjeUUUUUUUUUUUUUUUUUUjjj}U|ww}wuwW[wwwwuww]www{绺뫻}gWwwwwwww븺wuWwWwwuww]ww{{뻺뫻}wWwWwuwUw{~feUVYVYUUUUUUUUEjifjUUeUUUUUUUUUUUTUUiZUUU}UUUUUUUUQEEYffjZUYUUUUUUUUUUTEViU}wuuWwQSwVvww]yuwwuu}wTWwsWwm{w뻻}~]uwwwzwww]WuwwwuwAwsGw]w{{뻻}{]w]WwGw}w3Uw{UUUUUUUUUEQQAAUUVeZUUUUUUUUUTTUUAUUjjUjYUUUUUUUQQDDT@TQUV}UjeUUUUUUUQUQUDQUjUj{WwWwwuWwwuwwGSwswwS7v}w뻻}}WwwuwsW7s~www뾾wwuWwwuw7SSwsww3zwz뻻wWwww3Ww7w}eUUUUUEDTTQDQEEZUZUUUUUTUUTADEEETEVjUUjYUUUUEUQTQQDAEAZjUUf}UUUUQTUETEEUTTRjUUiuw7Sw?uwwuwM3wTssqS3sGwww{뻪뻺ꪨu}}}7wS뫿}wguwWtwMwsTwwuGs1wW[]ww{뫪뻺뻨7?w37sstW74GGUw~뻺UUQQUU}UDDUQDQDDYQEUUUUDDDUQDEDTQUViUUUUfUUUUDQTQQEQDEUDDEQUUQUZ}UEQETPQPQAEDUQQEUUUQUVDDEUUUUUUUUUUUUUUUUeUY껻DDDDDTTUUUQUUUUUU}UUUUUUUUVUUUUUUU]UUUWDDDQUUUUZVUZZZZZZZZZDDDDQDUUVoWUoooooooooVQUUUGyWWUyy}yWyyyUuyy[yVDD[TDDUUWUuWeuwUuWWuWuUuWWuUuuWUuwWu_UUUuVuuwUuWWuWyUyWWuUuyWUuw[u[ETDDEUT^Uyu}WuUyDDEUQDUUTG_UuooWuoUFUAUQ[uVuyUuuWUUWuUuUUyUu[UQDUUUWuWeuwUuwWuWUuUwWuUu}UwUuwUu_DDEUUEUTWuWWUuwyWyWyyuUuyuwUyWDUUEUUUVuWWUuvoWooouUuouwUoDAUUDAUEQUeVVUeeZVZZZeUeZef}UZQUTEQUUUUUUUUUUUUUUUUUVUUUVZV]UUUYUWQDUUDUUUQUUQUUUUUUVfUZ^^FEEQDEUUQUYQUUUUUYTffUVYEZjQ~BDE}QUUTUUTUUUUUUUUViUfeVUZjyDUUAQEUQUUUUUUUfUYUYUZeZjZyQUUDEUUUVUQUUUUTVUeYUUZZDAU}UUUTUUQUUUUVYUEeBDDEUUTUUUQUUUUUUUUUUUUYUUUEYUVUiUYUUVDDAUUAUUZZZZjVjeeZjTVEUUTF}ooWooWuVVoDDAUUDDUEQy[yUUWyWyUwWuuWWyWWETQUWUuwWuVUWuuWuuUwWuwUuWUWUuwUW{DDT@QDEQQUUuwWuW}UWuuWuuUwWuwUuWUWuwUWoDDDEUUWUuwWUWuuWuuUwWuw^uWWuwW{DEDEUUUuwWUWuuWuuUwWuw_uWVuwWoDDDDPEEUUUuwWuWUWuuW}uuUwWuw[uWUU[uwUWDEEQ[UuwWuVUWuuWuuUwWuwWuWUUWuwUW{DEUUUy[yUWyyyuwyWWyUWoEUooVooo}uvoVoUWzDADDUQU_ZZZZZeeZUZUVnTD@QUUUWUUUUYUUVUUUUUiUU{{DD@DETEVVVUeff}AD_UUVUYUjjDDATAUeeUVffDQUUUefeUfY}DDPDAUVUUDR￿UUiYVfjjjDDQeYUVefiUUeUUU}DAUUVeYfZVjDQDKڥeUfoW_AUo諸fUfYjjyWu[WADT}YeYUuwWuwWgWVfUfeYfuwWuwWwPQoUYiguwWuwWVAꫩ}j՚UVVeuwWuwWWQD[꾡UUYie[uwWuwWwFVVeiWuwWuwWgTQꪮZ}UYVjyuw[VYUZffouw[U[EFeUjZefj[kY}VUfeiUYUVUUn뻮ꪪEPDjZffjEiVVVeUVjTYff}fjjjfKꪪUPVYYGjeZffjZjeJEVfjj}j껻뺪ePUfYfUUjYUVV@VjjiYffffjjUZef@ZUifjiUo櫮}uvTZADZeUjuUyuv꺪d@TUYfjfuwUuwUuꪩUDTAQEjEYfejfuUuwUv檺}諸ThjVZZiUyUTJEUVefjfuUU껪EQUZUYfYjfuwUyUv檪}뺪UUEVՖVjiuwUuwUuꪪQUiZfjjuuwuvꪫjUEoVffZjfuvuv}UPUUifijeeefꪺUjifeUYUVUUVVꪪUUUViZjjUF}eꪚEVYjjjZAYijVEj}Ve⪚jjjUZ꯺eoi[ꪦEꪯYoUYUUUUWUUUZjfiYUjU}^VjjeejUV뺫FUuv暪ꪪYEEjꪮD U[juuuuwujUefZAVuwW}uuuuwUuvUZQUVVUuWuuuuwUuYUTDUVꪪUiuuu檪TUj몮Uzuuu}z֪ꪩjQUeejVUjuWuuuuwUuje뺪fEuWWuuuuwUuvjZjꪪVVZuWWuuuuwuvj}YUjjUuWWuuuuvuvjDnꪮUjefffefeefffjjVꪺUUUeVVUVUUWVjY}jjUjnVeejjU껻EZfjfUYVBjjfjjiUei}AꫯFVjjQfjifVejEjjUZjUZQdfUiJfTUUUjV}꺮UUUeUejjffUYfUUUUUiUeU檯ꪥdiYAYeVZUUjUUUUUYfjeffeUjUUYUUVZ}jeYUVjUTEUQViիZifYUfVEUiZYfUffeVYUTPDfj}ffjjZfYUUUQAAQTDUYjUffYVeUTTUYU@jfjꪪefiUUUUUET@Y}UYfUUUUQAEVVVfjfZjefejeUUeUTED@UiUijUYUfYUjUQQPAVUjef}eeeUUUijiUQDYV@UYfeUUVUUVUUT@PeifVjjVYUUUVUUUUUUUZjiYfjf}eUUYVUUUUUUUAEJjYVYUUVUUeUUUDPfVjjjUUUUUUUUUUi@AQAjfUjjjYYUUY}eVVYPEDEVefZjjVUUUUUeUUUUiUUQAVYVjjUeQUVVeUUYUDDUPUeYfjfETUYYUUU}eUUD@@FVTDYYVUUUUeUUUUUUeUYffUUUfUUVUeiUUDD@EUUPUYYQEDVUEeUVUUQ}@UeVUVfijUUUUYUUUUUDUYQYiffjYUUUUUUUUUQ@UUUfYQVeVjeUUUYQUVUVEDD@UUYU}UYjUeTUUUEUUUUUDDUUYeEUffYjYEUVUUVeTQUUfUeZieYUFUUUU@DUUUfUfUUe}UTEUZUZTUDAUVYUUUUfifeEUeUUYUUQUUUUfUUfjYUU[UUYUUP@UUeUeUfjj}VYTYe^UUUTU@UUVeeYUUYjVUQDVUUUUU@AYYUYYVZjiUT@UUUUUUUUEAUUUYUUeY}VUEYUEVUUUTUVUUYUiiUYTEUUVUUUUUT@@UeUeUUYijYUUUeEUUUUQVU@UUeffVUYYjUe}UAUUTEeUUEUD@UUUUVeZiYUQUeQUUUUUVUVVUYZUUUUUUUUUUTTAUYUeUfejUUEDUUU}UUUTeUUUeUYYUYjjeUUDUUUUUVTUTT@@YUYfVfZiUUEUUUUUYPYUQUVYeUUfjjUU@UeUUUUT}UTT@UUYUVfUUjjUUTTDUUUUUPfUQUfeUZfejZfjUTUUUUUUPEUQYUUUUUjꪪUUQEUUUTU@VUU}UfUUjjUUUPDUUUEUPUUUUUUffVfjUUAUUUAUFYDAAZeeUUijjjTUEDUUD@AUUUE}VffVe_jjQUTQUUPQEeTT@E}VUYUYjef[jTUDPUDQEUQQQEe~Tjjj[ZUUQTUDUAUTT@@UQUUY}VUZoZDUQDQDUUUUUYYUjfgZ*} +++kUU|%]W+e\+Ue\+U+[++}+ZjWfifiV>>>ZiUe~f>if>i>j>>>2 PiYfZf` if` i P *}**Zivv\*iv\*i*ZV***"Zjivviviij??jh?i?vvivi????Z}PiFj_FpiFpi+++i+Y&Zfj\ifj\i֛++++Zie֥fZifZiښ>>>ZiUV}5Zfifi>U>>>2 jJ jffi i ***&iT**Zvjvji&*i***"i֫}vZvZji???_i?65v?֩v?֩jUi???YOi jFFVO+++i+&+Zf+}if+i%jk++_U]Ve_Ue_UUUժ>>>>>>>>>>>>>>>>>>2 }  *******************"??UUUT5??5YUU?W5YW?}=T???񪪪UF_O++UZUTi+|+fU&|+kZ+++jY_Yfe_jW}>>>h>~i>i=>h>>>2 ` Ji i `ZP ***|*Ze*e)*|}i|***"}UWj_}???5Y}6_6Zu????O eEZO֥F+++}k)gV&k&Zf+k++jj_Zjej>>>h>j=~5=>>Zih>>2 ` j}P jJ e aiP` ***|*Z|*ij*iiUv*|ZZ|**"YZYvj?????6}iv?ZZ??OQWUUEQWOUO++++++'++'+++++++++}>>>>>>>>>>>>>>>>>>>2  *******V*j)TUUV}******"fZj_??????=e??iUZ??????Oiե}++++++&Vkki+i++++++vZZii>>>>>>>Yu>=i>j~>>>>}>2 i V i jJ ******)e)e*eii*jj*****"iijYiij}??????UihhZi?i??????֪Ppi++++++UUV|%i+՗++++++}YjjiZZ>>>>>>i>~ZiUh>>>>>>2 e eJjV ******}V*Vj%jj******"jjWU_???????????????????}+++++++++++++++++++ߪ>>U^>UX=UUUVVU}UUUe^>U>5X>>2  V fjf i V **UY|)iUiiUZUVeUVUv*i*j**"_VZv}i֥_??_6?6V6?v_iZT???OOOv_Fiip++k[Yk)+kYu&+fi}+++jjijifi>>iUi>h=e=e>fj^i>>>2 ei ` i fZi } **}fi*|%Uijvi*U**"eiZvi??YY6?UUV6?v=ji??}O_OPOYOFZpi++kWY|+ii+)&+f+֩jUi++jUieefV>>h}==ZT>hV>Vf=i>j>>2 ` P U` ` JZeZ U UU ****|***************"}??????????????????? ++++)UU\+U}U++)+UU++++++jڪjjZ>>>>>UjXUU6X>~V>>>>>2 V`  }ZYPe *****%|**Ze*i*****"jYj????=??Zj5?}h????? UTiYp++++)+ڪ+eud&+|+++++UWgvZe}>>>>>5h>Uhi>~>>>>2 ` Yf YJ *****V\|*eu*i****}*"if}e????=V?X?T?]e՗????? PUUpZUZ_}++++)U+ڪ|++[ժk+++++UjUUUW>>>>>>>>>>>>>>>>>>>2 } *******************"jUUh5?_?}?h?UUT??75UWUU]UU?jTPW_ PjqPUiU+֗+%+iUT+kY&Z}UYU+թieZZ}iZji]eYUieiih>6>i>jX=j~]>ie2ifYae  i j JI iiVU*jZi*j}%Zi*e"iUZZVjeiiUZgVUU}Vjh?h??vYgY?j=eu6骪}X=_iUTipYOiUPYM}UqUMZp Zi)e+i++i)U[ki+&U)&])|+թiiiejjZi_e_irii>i>>Yh6i>~i>}>jrie i i JiY e iBif*i**%i*YjZYvi*i|)e"iUViiUVijvUiU]Z]}Ujh?i?5X??WjU??vW骪?}_UWUPOUUTUOUU]T U++++++++++++++++++\+}>>>>>>>>>>>>>>>>>>>2  ***}U\*UUT**V*%UV**V***"VjfզU??iUihiUW?=e??V_?Z????VPi}OTYU++[&i++&Vk++֕+e+++jivZZZ>>Yh>i>>>Y}u>6=>ih>6>>>2 i iUP i P  **i*j*)e)e*&U|**)Z**"iiU_i}iZ??i?=i??Uih?Y?6????ii֪POO iO++Yk&i++UUV+[)}+k+jk++j_iYjiZjij>>T=Y~i>>i>6=>ZZh>e>>2 U i e eF iEPeY}UJ **)ZT*i**V*Vf*e&)ZvZj*"UUje_W_UuYUj??????????????_??}? *}( *,