џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ1 Gааа@а@а@й аай   љ № ŸŸ љ № №љ №йŸ № № й № ай аа  й №й а  а  №й   №й ай а§   №й ай ай айай а №й ай ай а@  апай а   №§ а@лапапапа№аа˜ \##B2Eдч48:29#tTdT5E2ЃCOMENT€€D„\ю.$\.(`$(<ю$JD „€ (`ФC `H" АЭГР€ф'4,`` сŽ Рf  lюА~Р48А€ ;€€Р8рР №p8Р8€w€рpЮчм8€И8p9РpррppР8;€œpрЮюч@s€œ9РИрpрр0Рp@@€` 88pр€@`€a†0РР€``€РР0`€0  0€x€€@P€@@ €ррРР0x€<<€xР№аa†рИ@:€Zˆh џрџўџрџў€€Р 8Ÿ;+oџџџџџšџџџџџџџџџџџџ§ќџџl€€ПяпїИшјјјРјј€€€€€€€€€€€€€€€€€€РРРР€рр`Ррр  рр `№`pp№pp№08888>№08>ј88РРРР>и7и880800000000ААp 0 ` p ` ` ```ррРРРР€рр`?6<48"(???џA“0a“Bм2Gџррџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ*>+‚ INCLUDE PIXMOVER.BIN FROM ISSUE #20>?Р8:• 500,&H7600>Nˆ № Ѕ 650>]ˆ я Ѕ 640>ї:ž0:у12,63:у13,36:І1000:Ѕ9>Ўт32:ž0:у13,8:‡@3,"SKIPPER CAN REALLY JUMP">Ь‡@37,"WILL SHE TIRE OUT?"?€DLГ1Ѕ60:у4,џ„(63):‹:у13,0:‡@32­15,"":€SГ1Ѕ15:€DLГ1Ѕ50:‹:‡:‹:Ѕ16?G …CKВ0Ї‡ @98,"YOUR COCO SEEMS TO HAVE 512K";:„ї:Š?q ‡@163,"IF THIS IS NOT CORRECT......";?š ‡ @163,"PRESS THE 'I' KEY.....ELSE";?Т ‡ @195,"PRESS 'ENTER' TO CONTINUE";?й I$Гџ’:… I$Г"" Ї 13?ь… I$Г"I" Ї 650@… I$ДВџ‹(13) Ї 13 :„5@Rž:‡"PLEASE WAIT FOR 8 PICTURES TO BE";:‡ @35,"LOADED.(JUST 60 SECONDS)"@x:ƒ ******************************@ƒ:ƒ * @Œ(:ƒ *@•2:ƒ *@К<:ƒ******************************@ЫdгM"PIXMOVER"@лnгM"NIBLOADRAx… џ†(&HCFC3)ДВ&H8D Ї ’ &HE76,&HCE:’ &HE77,&HE7A‚NPГ8A&Œ€ TГ1 Ѕ NPAI‘‡@32­8Ћ6," LOADING PICTURE";T;AS– F1$Ai … џ‡(F1$)Г8 Ї 190AzЊL1Г8Ќџ‡(F1$)A‘ДF1$ГF1$ЋџЁ(L1," ")AžОL2Г&HE92AДШ€ XГ0 Ѕ џ‡(F1$)Ќ1AЯв’ L2,џŠ(џ(F1$,XЋ1,1))AлмL2ГL2Ћ1Aуц‹ XAѕ№’ &HE6E4,&HE6BЂ &HF00BCKГџ†(&H2D9)B+ … CKГ0 А џ’Г"" Ї 265B< … CKГ0 Ї 300BJ’ &H1DA,1BX’ &H1DB,TBd"Ђ &H1DCBo'у13,14Bw,‹ TB†1… CKГ0 Ї ŠB”;’&HFFD8,0Bй^ž:‡@32­6,"PRESS ANY KEY WHEN YOU ARE READY TO SEE SKIPPER JUMP";Bш_…џ’Г""Ї351Bј:ƒ ANIMATE!C Є’ &H6C6,&H21:ф 2CЉ’&HFFBC,120C)ЎNPГ5584C;И€ FRГ13Ѕ6 ЉЌ1CIТ’ 65497,0CbЬADГ49152Ќ4096­(FRЌ1)CжA1Г(ADЎ256):A2ГADЌA1­256C›р’ &HFF9D,A1:’ &HFF9E,A2CЉъ’ 65496,0CВєџŸГ0CСў…џŸД10Ї510CЪ‹ FRCеЅ 440D €‡ "THERE'S AN ERROR #"џЌ" IN LINE "џ­:’65496,0:ї:ŠD)Š’ &HFFD8,0:’ &HE6E4,&HE6Dwž† SKIPPER1,SKIPPER2,SKIPPER3,SKIPPER4,SKIPPER5,SKIPPER6,SKIPPER7,SKIPPER8DŒш‚ CHECK FOR 512KDœђх &H20000,1DЌќх &H60000,2DЕCKГ0Dр… џЉ(&H20000)Г1 А џЉ(&H60000)Г2 Ї CKГ5E‚ IF BOTH PEEKS ARE CORRECT THEN 512K ELSE 128KE#’ &H2D9,CKE)$ž† SKIPPER1,SKIPPER2,SKIPPER3,SKIPPER4,SKIPPER5,SKIPPER6,SKIPPER7,SKIPPER8DŒш‚ CHECK FOR 512KDœђх &H20000,1DЌќх &H60000,2DЕCKГ0Dр… џЉ(&H20000)Г1 А џЉ(&H60000)Г2 Ї CKГ5E‚ IF BOTH PEEKS ARE CORRECџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџP G-”аааааааай аай   љ № ŸŸ љ № №љ №йŸ № № й № ай аа  й №й а  а  №й   №й ай а§   №й ай ай айай а №й ай ай  ай ай апай а   №§ ” а@д А§ №§ №§ №Й@аа@а˜##B2Eдч48:29#tTdT5E2ЃCOMENT€€€˜СЬЩ2T &€:Рx0рpш b!€\€0$€<ЦиРРxРРр0РР0рРxРr€0 €0 0Ш€ pЧ0`Р3P6€wX ?`р€`0 иРРаРР€Рр0`p``ј8€`œРР0;€Рp8чs€ €юРм8рИpp88рœРЮ8pч€€ws€р9Ррм€p8|p€р8А Š*€ИKИ@РpИP;€0РP x јИр`?c€у€э€п€нРнРдРмРœР€РœрОрОрО`П`<`џ``3v`w`wuwsc€g€ѓ€ѓ€ч€`ѓру€Чрј`СрС СрџрРр`СРїРРРРР€0Р€6Р€€6€€66676?РРРАрАр`а?6<48"(???џAЈ0aЈBј5G-џАрАрџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ & т32:ї& ‡@75,"TACOBELL"&&nР8&6ŒгM"NIBLOADR&i–… џ†(&HCFC3)ДВ&H8D Ї ’ &HE76,&HCE:’ &HE77,&HE7&| F1$Г"TACOBELL"&‰ЊL2Г&HE92&ŸД€ XГ0 Ѕ џ‡(F1$)Ќ1&КО’ L2,џŠ(џ(F1$,XЋ1,1))&ЦШL2ГL2Ћ1&Юв‹ X&р’ &HE6E4,&HE6&ь"Ђ &HF00&ѓ,ф2&њ6Р4')†XГ&HFF00:YГ&HFF7E:’XЋ1,52:’XЋ3,63:’XЋ35,60'ATX$:…TX$Г"Z12"Ї460'Rš€TГ1Ѕџ‡(TX$)'gЄ…џ†(Y)А128Г0Ї420'Ў’Y,џŠ(џ(TX$,T,1)):‹T'–И…џ†(Y)А128Г0Ї440'ІТ’Y,13:Ѕ400'ЗЬ€TIГ1ЅTM:‹TI'ЧжЂ44539:уї:Š(ъ† JEW,GOTT,TAW CO,BELL?, I,SAY,MAUHN,U,GOTT,TAW CO,BELL?,Z12HFF7E:’XЋ1,52:’XЋ3,63:’XЋ35,60'ATX$:…TX$Г"Z12"Ї460'Rš€TГ1Ѕџ‡(TX$)'gЄ…џ†(Y)А128Г0Ї420'Ў’Y,џŠ(џ(TX$,T,1)):‹T'–И…џ†(Y)А128Г0Ї440'ІТ’Y,13:Ѕ400'ЗЬ€TIГ1ЅTM:‹TI'ЧжЂ44539:уї:Š(ъ† JEW,GOTT,TAW CO,BELL?, I,SAY,MAUHN,U,GOTT,TAW CO,џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ Fмааай аай   љ № ŸŸ љ № №љ №йŸ № № й № ай аа  й №й а  а  №й   №й ай а§   №й ай ай айай а №й ай ай  ай ай апай а а а №§ аа@аалааапапа№а№па№аа˜ ##B2Eдч48:29#tTdT5E2ЃCOMENT€€ P(Р ˆ†РD`cШNhXР 0Р УA€ Э@ин`4ќ€hp8+` @w€pР€;р<рq€p8юРрœЮИppрs€р89РРрр;€pw8рРœмЮ€ч8s€pР8рР РhUDЭH€€р€@\ю`Р 0@B€\Z€€B€`(` Р€8pР <(0@Р@ hUJЊЬ€ Pp8H$@€€р!€аL @€аN€€У €€€€€C€џрџўџрџў€€Рpdь­Пџџџџўkџџџџџџџџџџџџџјќ Рђ NТлoНџ~џНРР<<<<<>>~~<~7vwwefїgчг€ѓ€ч€ѓ€У€Я€№У€С€СРџ€СЈшљїРјy€љБРљїР№љС€јС€ї€С€У€у€їUw>v6~РРРАрАр`а?6<48"(???џAp0apBЎ.FмџАрАр`а?6<48"(???џAp0apBЎ.џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџs0€€ЬpџЬџм<€c€p§јџ№`0€p~`€`€р~ўРy€ќР€ќРч€§рэРчрџРїрјРїрсРёџрёџи№оР№мјћрќРџјџџёџРп8?0оџиџ0?РќўиџР8џићРѓ˜70sћwœј8{œ>0И?џИџАxя№ќЏ№>№пјўќоќžјџџљј}џџјџљ№џї№пŸџ№џџчрўџ@ЯпїрќЧрŸїрџрџџрџџРпџР ЭћРЭїРёЧР§џРƒёџ€ё№џќџ€ѓќпьџ€яќџ€ќџ€џјџР9џ€џ0џР qџРпЛџћџџћџЯлwўџ№ЫўїсџїэџїяУ§џ‡љџ†џŸ†џџџŸ џ џџюџv|8 ~0?~0?ўp?ў`7ќ`?ќ`<р<Р|РyРy€ё€ћ€ у ћ?ўўўќќ|ќјx8ppp  pp`?6<&8"(58?%џI40i4OЖ&Tмџ`7ќ`?ќ`<р<Р|РyРy€ё€ћ€ у ћ?ўўўќќ|ќјx8ppp  pp`?6<&8"(58?%џI40i4OЖ&џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџю GЫїx№€№p№p№€№p№€№p№€№p№€p№p№€№p№€№p№p№€№p№p№€№p№p№€№p№p№€№p№p№€p€№p№p№€pp№p№p№ї‡p№pїїјp№p№p€№јp№ї€p€ј№p€ј№€‡€ppј§_аќ№ї№_РЯPќї№їP_їPZ P пpЭЮЭЫмлŒМ|\мmШEFECTS4єдTх@ €Ѓ #ˆ ЗрqЦР `€0@(Р'@qЦР8ˆ‰ €#ˆ„@нЎЃЛ\00xРDlР`('" ˆD„нЎУЛ\Аrw]Јиlж8ˆ‰A  \@\0N\і0H€P PБћw]Јдj1" @€P€  -ht\№рР@@€€ ђ@иP h˜ hL h€  hVи Р €(8 €0€ € р€(?@9/@? V{``  =АLи№@˜lŒ@P5`–@•€Р€ PЦР ˜`€(`€Р@@aАРр0д<3№f@јg€t\3бр-hŒбz  І:@X|€BњxH80=Б‹`г@ЏVˆ AˆІЏVрУŒQˆ`РИ0€`м`Р7>8И€ў|ўь ` `` `` џ€ьџ€|™€€Й€1€Ÿ€Ÿ€~€   8 м0=ќ№ppp№0р№€`рŽАŽЬ0Ь0ЬpЬpм0м№њ=ќў0ўмў8 ќ ў ќќќ ќќќќјx`ј|xx|ќ`|p|xxx8x88p8x0€ƒ€€€?6:&8"(  џBv0bvC}NGЫџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ TмЙ *В Љ  Љ  Љ  Љ  Џ Љ  Џ Љ  Џ А* №њ АЏ Љ  А* №њ АА* №њ ААЏ  њ ААЏ  њ №АЉ  А*№АААЉ  њ №АА* АЏ  №§ А* №§ №Љ  § №§ №А* №§ А* №§ №Љ  №Љ * №пањ š * №ап Љ  Ђ Џ š * №њ š * №ањ š * №апањ  Џ Ђ №а§ №њ  Џ Ђ №§ №њš №њ №§   Џ Ђ №§№п №pЏ ЂЏап  пЏ P§ №§ап  Џ Ђ №а0/  0š №њ ап/ š №/а§ њ `/ №§№љ№§№§Џ№љ  њ№Џ№п 9 *а№Љ €‰  њ Џап ˜ №* №§ №њ ˜Ш  *п ˜  * №њ ˜ (X * №Љ €š (я€‚п ˜ №‚ §Џ Љ ј Џ №˜š њ №˜Ђ€‚ Џ Џ -*  ­№па№њ€‚ак №Џ ­ š №§ №Ђ€ак № ­   § №§ №(  №Џ €‘š №§  €ак њ  а‰š №§ №Ђ€а Џ  №Ђ( /Џ аš №пањ а аš №ап Ђ š №Ђањ рай  Џ Ђ  љаš №ањ - №ђЎ Ÿ š №апања№ђ ърЎЉ №аЏ ап - ъ рай №§ №њ ав№ђр Ÿ Џа№- ђ pай №§№п №- š№§ №а№а№§№ђ ‚№ђ й@Љ №§§ №§апв * ”аЉ №п  * рйд №Ÿ   / * @й №љ №ђ№ђ tа Ÿ  / * @M №Ÿа§  / * @M №љ №пп / .Їдz ъŸŸпа№ђ№ђ@GR ŸŸ / TR Ÿ №ђ@E Љ  №п@GзЎ Љ šа№Ђ‡Tйк ‘  Џап (@GаЂ ‘  Џап Ђ€„xЎЂъ‰ šп (€( ˜š №њ (P‚‘ч€‰  Џ (P( ( a€‰п (P( (šк№њ €ƒGP )€š № Џ€‡ А`€š Џ∂ љњ №а€‚ €‰ й њ а€‚ €‰ак №Џ ­  А˜  Џ а€ А˜  №Џ €‚  Љ №­ ( А˜ №€а А‰€ай №њ Аа аАа ав ањ рав  ја- А №љЎ / А ъЎ ъ /  а Ў Ў Аай №љ р / А љ  аъ ав Ÿš /в й№љ  Ђ№ Аљ  Ў / №љ  Ў Ђ№ђ №љ  Ў АŸš №АŸš№ђ №љ ъ ъ / АŸЉ / АŸ Љ  / ž Љ  Ђ  Љ Ў Ђ Š ъ  А˜ъ š €ŠъžЎЈ А€˜ А˜˜˜˜# #%25L_bR’В2ƒ&EFECTS*94єдTх@ €€Ё€€ 3!ˆкBЊ„H€$#‹€бнШЛИш.фR€&j"PQј ќr€<:D№ˆx АР јшќ)Ё р:бХ8ˆоˆшœ#‰$pТЊМ„ˆЉŽBЊH)%8(D$h€ рм€РюpP>€?T‰T‘ ЊЈDDДˆ@мЫИ оюŽ%м ~€ј (ˆ0PH№ˆ"шD@ај  рРнб;ˆ# тшФ$ˆ„‘9 кDB ˆ 8ˆ€РpPр@€ €( `ЕДˆi 6HАмKК8 ЛЖ@`Ђ p‹ (Р РёНм‹ ;ž€TˆA €*‘ 8€€DHvјрPє @8s†І‰ˆHDЊ wрpм]нШшŽ(рЮ=Qњˆ РDђш€@Žќ;€ јш H `РмХ8шˆ)L,8РТ‰TˆBŽh ЈАCD`€Ђ  ƒ€BAРŠ€yрHрƒ€”RJp8p€A@(*Ја p №I€‚‘9РИр€9=\‡€‡Л€€мР:йўx рpрЭ€~~`Рx€Рo3 @<‡€И€ќ?BœUI*€*Њ‘аЕЬ8јXqw€Аƒ˜  €2И‰€pBP€˜ ˆU р@p€€opР+€8Р–Р@ЏраІаРЎ DРи2€@ƒD€TаtH DЮP„m!R'€яЉ„ €›™ „€Р@€!„РУ€RА# 8Фр#Pˆ,Рhp@pЃA:€jР) 88 ŠЂU"U$Dˆа iP0p€RЌ #Йwrюь№Ю )it,РюЁJ€"?~(8ш>а(!`!TЊ:<"pч LEP‚‡ x?t~юРрВЁтƒPР}@:'DwtNуРœz…€jРР`’G"!$G€Б@)И€€" јw!s P€#08Р8;€(.ŒXp€„8Q@–Q`† Š @$ё+АE@(@ -”?‰рƒ "B:ѓР аPw`o№ :9G4(@ ŽfŽ4ИDpр+LW№я€8y№tрр -Р`Р5r 2'€Р9t€uГќ:0‡у‡eм1€!UсРš8ƒЧ€'ю ЁС€‚`ђg€ оf€œ†kœФ‰ …888$€%0 j˜ppr$$ @Ат8я`фr  >4 0 @ZЯR’€џ… ep ка € „"ŠI$РЈ Х 1 ЬH$*IХРˆ0€р d@ рs@ˆ€PWp€#$O€Gˆ^4Р  J Y`‰Ф‰\‰€А)W@s  €‰8ЈšR ф ˜ЁPˆœ D@R$™ D2@ €6€$  D B8 €‡Ѕ` ("F@p8‰РFЁ]€ "0ар0€рF‚u€5€Rpp@D= в `р ЅY@@$RвшX€>нB"•€  PB ,8Рcreen or

rinter?":Ђ44539:…џ†(135)ДВ80 А џ†(135)ДВ112 Ї DVГ0:„DVГЌ2&…DVГ0ЇTMГ0:BMГ0:PLГ20:„…DVГЌ2ЇTMГ6:BMГ6:PLГ54&Ї’150,18:ƒ2400 BAUD&С:ƒPOKE150,88'600 BAUD&м(:ƒPOKE150,41'1200 BAUD&ќ2Л‰"FILENAME>";F$:™"I",#1,F$'";F$:™"I",#1,F$'џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ0 PULS B,Y,U,PC restore regs and return 02050 ************************************************* 02060 * Read memory to A, block/offset in B,Y 02070 * 02080 SWI0D PSHS B temp store regs 02090 ORCC #$50 disable interrupts 02100 LDA $FFA0 temp store MMU 02110 STB $FFA0 set MMU to correct block 02120 LDB ,Y get value as location 02130 STA $FFA0 restore MMU 02140 TFR B,A put result into correct location 02150 ANDCC #$AF restore interrupts 02160 PULS B,PC restore regs and return 02170 ************************************************* 02180 * Write A to memory, constant address 02190 * 02200 SWI0E PSHS A,B,X,Y,U temp store regs 02210 TFR D,U temp store value to write 02220 LDY 20,S * get parameters 02230 LDA ,Y+ * 02240 LDX ,Y++ * 02250 STY 20,S * 02260 LBSR SWI00 convert addr to block/offset 02270 ORCC #$50 * do the write - disable ints 02280 LDA $FFA0 * temp store MMU 02290 STB $FFA0 * get our block into MMU 02300 EXG U,X * get value/temp store MMU block 02310 STA ,Y * write value 02320 TFR U,D * get back MMU 02330 STA $FFA0 * put MMU value back 02340 ANDCC #$AF * restore ints 02350 PULS A,B,X,Y,U,PC restore regs 02360 ************************************************* 02370 * Write A to memory, address in B,Y 02380 * 02390 SWI0F PSHS A,B,X,Y,U temp store regs 02400 TFR D,U temp store value 02410 TFR B,A * get params 02420 TFR Y,X * 02430 LBSR SWI00 convert addr to block/offset 02440 ORCC #$50 disable ints 02450 LDA $FFA0 temp store MMU 02460 STB $FFA0 get our block to MMU 02470 EXG D,U temp store MMU block/get value 02480 STA ,Y write value 02490 TFR U,D get back MMU value 02500 STA $FFA0 stick MMU value back 02510 ANDCC #$AF restore ints 02520 PULS A,B,X,Y,U,PC restore regs 02530 ************************************************* 02540 * Write A to memory, constant block/offset 02550 * 02560 SWI10 PSHS A,B,X,U temp store regs 02570 LDU 18,S * get params 02580 LDB ,U+ * 02590 LDX ,U++ * 02600 STU 18,S * 02610 TFR D,U temp store value 02620 LDA $FFA0 temp store MMU 02630 ORCC #$50 disable ints 02640 STB $FFA0 get our block to MMU 02650 EXG D,U temp store MMU block/get value 02660 STA ,X store value 02670 TFR U,D get back MMU value 02680 STA $FFA0 stick it back in MMU 02690 ANDCC #$AF restore ints 02700 PULS A,B,X,U,PC restore regs 02710 ************************************************* 02720 * Write A to memory, block/offset in B,Y 02730 * 02740 SWI11 PSHS A,B,U temp store regs 02750 TFR D,U temp store value 02760 LDA $FFA0 temp stor MMU 02770 ORCC #$50 kill interrupts 02780 STB $FFA0 get our block into MMU 02790 EXG D,U temp store MMU block/get value 02800 STA ,Y write value 02810 TFR U,D get back MMU value 02820 STA $FFA0 stick it back into value 02830 ANDCC #$AF restore ints 02840 PULS A,B,U,PC restore regs 02850 ************************************************* 02860 * Convert a pair of addresses to block/offset 02870 * 02880 SWI12 PSHS A,B,X,Y make some temp storage on the stack 02890 LBSR SWI00 convert A,X 02900 STB ,S * store it back in the originals 02910 STY 2,S * 02920 LDA 1,S = convert B,Y 02930 LDX 4,S = 02940 LBSR SWI00 = 02950 STB 1,S = 02960 STY 4,S = 02970 PULS A,B,X,Y,PC restore registers and return 02980 ************************************************* 02990 * Convert a pair of block/offsets to addresses 03000 * 03010 SWI13 PSHS A,B,X,Y make some temp storage on the stack 03020 LBSR SWI01 convert B,Y 03030 STA 1,S * store it back in the originals 03040 STX 4,S * 03050 LDB ,S = convert A,X 03060 LDY 2,S = 0307DX ,U++ * 01050 LDB ,U * 01060 LDY ,U++ * 01070 LBSR SWI12 convert the boundaries to block/offset 01080 PSHS B,Y store top address 01090 PSHS A,X store bottom address 01100 LDA ,U+ get the value to store 01110 STU 26,S update program counter on stack 01120 PSHS A put value to store on stack 01130 LBSR SETMEM set the memory block 01140 PULS A,B,X,Y,U,PC restore registers and return 01150 ************************************************* 01160 * Set memory, constant boundaries, value in B (addrs) 01170 * 01180 SWI07 PSHS A,B,X,Y,U store registers 01190 LDU 20,S * get boundaries from program 01200 LDA ,U+ * 01210 LDX ,U++ * 01220 LDB ,U+ * 01230 LDY ,U++ * 01240 STU 20,S * 01250 LBSR SWI12 convert the boundaries to block/offset 01260 PSHS B,Y store top address 01270 PSHS A,X store bottom address 01280 LDA 7,S * put the value onto the stack 01290 PSHS A * 01300 LBSR SETMEM set the memory block 01310 PULS A,B,X,Y,U,PC restore registers and return 01320 ************************************************* 01330 * Set memory, UH,X to UL,Y, constant value (addrs) 01340 * 01350 SWI08 PSHS A,B,X,Y,U store registers 01360 TFR U,D get the upper bytes of the addresses 01370 LBSR SWI12 convert addresses to block/offsets 01380 PSHS B,Y store the upper bound 01390 PSHS A,X store the lower bound 01400 LDU 26,S * get the set value 01410 LDA ,U+ * 01420 STU 26,S * 01430 PSHS A store it on the stack 01440 LBSR SETMEM set the memory block 01450 PULS A,B,X,Y,U,PC restore registers and return 01460 ************************************************* 01470 * Set memory, UH,X to UL,Y, value in B (addrs) 01480 * 01490 SWI09 PSHS A,B,X,Y,U store registers 01500 TFR U,D get the high byte of the addresses 01510 LBSR SWI12 convert the addresses to block/offsets 01520 PSHS B,Y store the upper bound 01530 PSHS A,X store lower bound 01540 LDB 7,S get value 01550 PSHS B store it on stack 01560 LBSR SETMEM set the memory block 01570 PULS A,B,X,Y,U,PC restore registers and return 01580 ************************************************* 01590 * Read memory to A, constant address 01600 * 01610 SWI0A PSHS B,X,Y,U temp store regs 01620 LDU 19,S = get args 01630 LDA ,U+ = 01640 LDX ,U++ = 01650 STU 19,S = 01660 LBSR SWI00 convert address to block/offset 01670 ORCC #$50 * disable interrupts 01680 LDA $FFA0 * temp store MMU 01690 STB $FFA0 * set MMU to correct block 01700 LDB ,Y * get value 01710 STA $FFA0 * restore MMU 01720 ANDCC #$AF * restore interrupts 01730 TFR B,A * get value to A 01740 PULS B,X,Y,U,PC restore regs and return 01750 ************************************************* 01760 * Read memory to A, address in B,Y 01770 * 01780 SWI0B PSHS B,X,Y temp save regs 01790 TFR B,A * get addr into useful place 01800 TFR Y,X * 01810 LBSR SWI00 convert to block/offset 01820 ORCC #$50 disable interrupts 01830 LDA $FFA0 temp store MMU 01840 STB $FFA0 set MMU to specified block 01850 LDB ,Y get value at the address 01860 STA $FFA0 restore MMU 01870 ANDCC #$AF restore interrupts 01880 TFR B,A get value into A 01890 PULS B,X,Y,PC restore regs and return 01900 ************************************************* 01910 * Read memory to A, constant block/offset 01920 * 01930 SWI0C PSHS B,Y,U temp store regs 01940 LDU 17,S * get parameters 01950 LDA ,U+ * 01960 LDY ,U++ * 01970 STU 17,S * 01980 ORCC #$50 disable interrupts 01990 LDB $FFA0 temp store MMU 02000 STA $FFA0 set MMU to current block 02010 LDA ,Y get value in offset 02020 STB $FFA0 restore MMU 02030 ANDCC #$AF restore interrupts 020400010 ************************************************* 00020 * Convert address in A,X to block/offset in B,Y 00030 * 00040 SWI00 PSHS A,X preserve parameter in A,X 00050 TFR X,D * figure out offset 00060 ANDA #$1F * 00070 TFR D,Y store offset in Y for return 00080 LDD ,S get first two bytes of address 00090 LSRA * figure out the block number 00100 RORB * 00110 LSRA * 00120 RORB * 00130 LSRA * 00140 RORB * 00150 LSRA * 00160 RORB * 00170 LSRA * 00180 RORB * 00190 * block is now in B where we return it 00200 PULS A,X,PC restore registers and return 00210 ************************************************* 00220 * Convert block/offset in B,Y to address in A,X 00230 * 00240 SWI01 PSHS B,Y preserve parameter in B,Y 00250 CLRA prepare to shift block to the correct position 00260 LSLB * shift block number to correct position 00270 ROLA * 00280 LSLB * 00290 ROLA * 00300 LSLB * 00310 ROLA * 00320 LSLB * 00330 ROLA * 00340 LSLB * 00350 ROLA * 00360 ADDB 1,S merge the offset with the block 00370 PSHS A temp store A (first byte of address) 00380 TFR B,A * get the lower bytes of address 00390 LDB 3,S * into the correct order 00400 TFR D,X store the low order bytes into X 00410 PULS A,B,X,PC restore registers and return 00420 ************************************************* 00430 * Clear memory, constant boundaries 00440 * 00450 SWI02 PSHS A,B,X,Y,U preserve registers 00460 LDU 20,S * get the parameters 00470 LDA ,U+ * 00480 LDX ,U++ * 00490 LDB ,U+ * 00500 LDY ,U++ * 00510 STU 20,S * 00520 LBSR SWI12 convert pair of addrs to block/offsets 00530 LBSR SWI05 clear the block of memeory 00540 PULS A,B,X,Y,U,PC restore registers and return 00550 ************************************************* 00560 * Clear memory, A,X to B,Y 00570 * 00580 SWI03 PSHS A,B,X,Y preserve registers 00590 LBSR SWI12 convert pair of addrs to block/offsets 00600 LBSR SWI05 clear block of memory 00610 PULS A,B,X,Y,PC restore registers and return 00620 ************************************************* 00630 * Clear memory, constant block/offsets 00640 * 00650 SWI04 PSHS A,B,X,Y,U prserver registers 00660 LDU 20,S * get the parameters 00670 LDA ,U+ * 00680 LDX ,U++ * 00690 LDB ,U+ * 00700 LDY ,U++ * 00710 STU 20,S * 00720 LBSR SWI05 clear block of memory 00730 PULS A,B,X,Y,U,PC restore registers and return 00740 ************************************************* 00750 * Clear memory, constant block/offset in A,X to B,Y 00760 * 00770 SWI05 PSHS A,B,X,Y save registers 00780 STB SWI05A,PCR * save top location 00790 STY SWI05B,PCR * 00800 ORCC #$50 disable interrupts 00810 LDB $FFA0 save MMU value 00820 SWI05Z STA $FFA0 set MMU to current block 00830 SWI05Y CLR ,X+ clear a byte 00840 CMPX #$2000 are we at the end of the block? 00850 BGE SWI05X brif so 00860 CMPA SWI05A,PCR are we in the last block? 00870 BNE SWI05Y continue if not 00880 CMPX SWI05B,PCR are we done? 00890 BLS SWI05Y continue if not 00900 STB $FFA0 restore MMU 00910 ANDCC #$AF re-enable interrupts 00920 PULS A,B,X,Y,PC restore registers and return 00930 SWI05A FCB 0 temp storage 00940 SWI05B FDB 0 temp storage 00950 SWI05X LDX #0 point X to start of block 00960 INCA go on to next block in memory 00970 BRA SWI05Z coninue clearing memory 00980 ************************************************* 00990 * Set memory, constant boundaries, constant value (addrs) 01000 * 01010 SWI06 PSHS A,B,X,Y,U save registers 01020 LDU 20,S * get boundaries from stack 01030 LDA ,U+ * 01040 L0098 FCB $08 00099 FCB \0 00100 ENDM 00101 00102 * set memory - linear boundaries (from UH,X to UL,Y), value in B 00103 * SMRLAR 00104 SMRLAR MACRO 00105 SWI 00106 FCB $09 00107 ENDM 00108 00109 * read memory to A, constant linear address 00110 * LDACLA ah,al 00111 LDACLA MACRO 00112 SWI 00113 FCB $0A 00114 FCB \0 00115 FDB \1 00116 ENDM 00117 00118 * read memory to A, register linear address (B,Y) 00119 * LDARLA 00120 LDARLA MACRO 00121 SWI 00122 FCB $0B 00123 ENDM 00124 00125 * read memory to A, constant block/offset 00126 * LDACBO blk,off 00127 LDACBO MACRO 00128 SWI 00129 FCB $0C 00130 FCB \0 00131 FDB \1 00132 ENDM 00133 00134 * read memory to A, register block/offset (B,Y) 00135 * LDARBO 00136 LDARBO MACRO 00137 SWI 00138 FCB $0D 00139 ENDM 00140 00141 * write A to memory, constant linear address 00142 * STACLA ah,al 00143 STACLA MACRO 00144 SWI 00145 FCB $0E 00146 FCB \0 00147 FDB \1 00148 ENDM 00149 00150 * write A to memory, register linear address (B,Y) 00151 * STARLA 00152 STARLA MACRO 00153 SWI 00154 FCB $0F 00155 ENDM 00156 00157 * write A to memory, constant block/offset 00158 * STACBO blk.off 00159 STACBO MACRO 00160 SWI 00161 FCB $10 00162 FCB \0 00163 FDB \1 00164 ENDM 00165 00166 * write A to memory, register block/offset (B,Y) 00167 * STARBO 00168 STARBO MACRO 00169 SWI 00170 FCB $11 00171 ENDM 00172 00173 * convert a pair of linear addresses to block/offsets 00174 * pair is (A,X & B,Y), leave in original locations 00175 * CPLABO 00176 CPLABO MACRO 00177 SWI 00178 FCB $12 00179 ENDM 00180 00181 * convert a pair of block/offsets to linear addresses 00182 * pair is(A,X & B,Y), leave in original locations 00183 * CPBOLA 00184 CPBOLA MACRO 00185 SWI 00186 FCB $13 00187 ENDM 00188 00189 * set memory, constant boundaries (block/offset), constant value 00190 * SMCBOC LOWah,LOWal,HIGHah,HIGHal,Value 00191 SMCBOC MACRO 00192 SWI 00193 FCB $14 00194 FCB \0 00195 FDB \1 00196 FCB \2 00197 FDB \3 00198 FCB \4 00199 ENDM 00200 00201 * set memory, constant boundaries (block/offset), value in B 00202 * SMCBOR LOWah,LOWar,HIGHah,HIGHal 00203 SMCBOR MACRO 00204 SWI 00205 FCB $15 00206 FCB \0 00207 FDB \1 00208 FCB \2 00209 FDB \3 00210 ENDM 00211 00212 * set memory, register boundaries (UH,X, UL,Y), block/offset, 00213 * constant value 00214 * SMRBOC Value 00215 SMRBOC MACRO 00216 SWI 00217 FCB $16 00218 FCB \0 00219 ENDM 00220 00221 * set memory, register boundaries (UH,X, UL,Y), block/offset, 00222 * value in B 00223 * SMRBOR 00224 SMRBOR MACRO 00225 SWI 00226 FCB $17 00227 ENDM 00228 00229 * END OF MACRO DEFINITIONS ITAB 00700 FDB NULL-SWITAB 00710 FDB NULL-SWITAB 00720 FDB NULL-SWITAB 00730 FDB NULL-SWITAB 00740 FDB NULL-SWITAB 00750 џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ 02790 FDB NULL-SWITAB 02800 FDB NULL-SWITAB 02810 FDB NULL-SWITAB 02820 FDB NULL-SWITAB 02830 FDB NULL-SWITAB 02840 FDB NULL-SWITAB 02850 FDB NULL-SWITAB 02860 FDB NULL-SWITAB 02870 FDB NULL-SWITAB 02880 FDB NULL-SWITAB 02890 FDB NULL-SWITAB 02900 FDB NULL-SWITAB 02910 FDB NULL-SWITAB 02920 FDB NULL-SWITAB 02930 * end of SWI jump table 02940 * NULL command: 02950 NULL RTS 01960 FDB NULL-SWITAB 01970 FDB NULL-SWITAB 01980 FDB NULL-SWITAB 01990 FDB NULL-SWITAB 02000 FDB NULL-SWITAB 02010 upts 02780 STB $FFA0 get our block into MMU 02790 EXG D,U temp store MMU block/get value 02800 STA ,Y write value 02810 TFR U,D get back MMU value 02820 STA $FFA0 stick it back into value 02830 ANDCC #$AF restore ints 02840 PULS A,B,U,PC restore regs 02850 ************************************************* 02860 * Convert a pair of addresses to block/offset 02870 * 02880 SWI12 PSHS A,B,X,Y make some temp storage on the stack 02890 LBSR SWI00 convert A,X 02900 STB ,S * store it back in the originals 02910 STY 2,S * 02920 LDA 1,S = convert B,Y 02930 LDX 4,S = 02940 LBSR SWI00 = 02950 STB 1,S = 02960 STY 4,S = 02970 PULS A,B,X,Y,PC restore registers and return 02980 ************************************************* 02990 * Convert a pair of block/offsets to addresses 03000 * 03010 SWI13 PSHS A,B,X,Y make some temp storage on the stack 03020 LBSR SWI01 convert B,Y 03030 STA 1,S * store it back in the originals 03040 STX 4,S * 03050 LDB ,S = convert A,X 03060 LDY 2,S = 03070 LBSR SWI01 = 03080 STA ,S = 03090 STX 2,S = 03100 PULS A,B,X,Y,PC restore registers and return 03110 ************************************************* 03120 * Set a section of memory. 03130 * Enter 0,S clear value 03140 * 1,S start address 03150 * 4,S end address 03160 * Exit 1,S to 4,S will be set to 0,S 03170 * stack will be reset 03180 ************************************************* 03190 SETMEM PSHS A,B,X,U save registers 03200 LDB 12,S * get end address 03210 LDU 13,S * 03220 STU SETMEZ,PCR = save ending address for comparison 03230 STB SETMEY,PCR = 03240 LDA 9,S * get starting address 03250 LDX 10,S * 03260 ORCC #$50 disable interrupts 03270 LDB $FFA0 save MMU 03280 STB SETMEX,PCR = 03290 LDB 8,S get set value 03300 SETME0 STA $FFA0 set M00001 ************************************************* 00002 * Macro Library for the SWI routines 00003 * Use the "INCLUDE" directive in Disk EDTASM to 00004 * use this library 00005 * 00006 * This library is only useful if the SWI routines 00007 * are installed prior to actually executing the 00008 * code generated from using these marcros 00009 ************************************************* 00010 * Constant addresses are specified as marco arguments 00011 * as follows: 00012 * The upper 3 bits followed by a comma followed by 00013 * the lower 16 bits, as follows: 00014 * $7DC13 would be $07,$DC13 00015 * and this is specified by ah,al 00016 00017 * Convert linear address in A,X to block/offset 00018 * in B,Y 00019 * CLABO 00020 CLABO MACRO 00021 SWI 00022 FCB $00 00023 ENDM 00024 00025 * Convert block/offset in B,Y to linar address 00026 * in A,X 00027 * CBOLA 00028 CBOLA MACRO 00029 SWI 00030 FCB $01 00031 ENDM 00032 00033 * clear memory - constant boundaries 00034 * CLMCLA LOWah,LOWal,HIGHah,HIGHal 00035 CLMCLA MACRO 00036 SWI 00037 FCB $02 00038 FCB \0 00039 FDB \1 00040 FCB \2 00041 FDB \3 00042 ENDM 00043 00044 * clear memory - register boundaries, linear addresses 00045 * low in A,X, high in B,Y 00046 * CLRCLA 00047 CLRCLA MACRO 00048 SWI 00049 FCB $03 00050 ENDM 00051 00052 * clear memory - constant block/offset boundaries 00053 * CLMCBO LOWblk,LOWoff,HIGHblk,HIGHoff 00054 CLMCBO MACRO 00055 SWI 00056 FCB $04 00057 FCB \0 00058 FDB \1 00059 FCB \2 00060 FDB \3 00061 ENDM 00062 00063 * clear memory - register block/offset boundaries 00064 * lowin A,X, high in B,Y 00065 * CLMRBO 00066 CLMRBO MACRO 00067 SWI 00068 FCB $05 00069 ENDM 00070 00071 * set memory - constant linear boundaries, constant value 00072 * SMCLAC LOWah,LOWal,HIGHah,HIGHal,Value 00073 SMCLAC MACRO 00074 SWI 00075 FCB $06 00076 FCB \0 00077 FDB \1 00078 FCB \2 00079 FDB \3 00080 FCB \4 00081 ENDM 00082 00083 * set memory - constant linear boundaries, value in B 00084 * SMCLAR LOWah,LOWal,HIGHah,HIGHal 00085 SMCLAR MACRO 00086 SWI 00087 FCB $07 00088 FCB \0 00089 FDB \1 00090 FCB \2 00091 FDB \3 00092 ENDM 00093 00094 * set memory - linear boundaries (from UH,X to UL,Y), constant value 00095 * SMRLAC Value 00096 SMRLAC MACRO 00097 SWI 0L-SWITAB 00790 FDB NULL-SWITAB 00800 FDB NULL-SWITAB 00810 FDB NULL-SWITAB 00820 FDB NULL-SWITAB 00830 FDB NULL-SWITAB 00840 FDB NULL-SWITAB 00850 FDB NULL-SWITAB 00860 FDB NULL-SWITAB 00870 FDB NULL-SWITAB 00880 FDB NULL-SWITAB 00890 FDB NULL-SWITAB 00900 FDB NULL-SWITAB 00910 FDB NULL-SWITAB 00920 FDB NULL-SWITAB 00930 FDB NULL-SWITAB 00940 FDB NULL-SWITAB 00950 FDB NULL-SWITAB 00960 FDB NULL-SWITAB 00970 FDB NULL-SWITAB 00980 FDB NULL-SWITAB 00990 FDB NULL-SWITAB 01000 FDB NULL-SWITAB 01010 FDB NULL-SWITAB 01020 FDB NULL-SWITAB 01030 FDB NULL-SWITAB 01040 FDB NULL-SWITAB 01050 FDB NULL-SWITAB 01060 FDB NULL-SWITAB 01070 FDB NULL-SWITAB 01080 FDB NULL-SWITAB 01090 FDB NULL-SWITAB 01100 FDB NULL-SWITAB 01110 FDB NULL-SWITAB 01120 FDB NULL-SWITAB 01130 FDB NULL-SWITAB 01140 FDB NULL-SWITAB 01150 FDB NULL-SWITAB 01160 FDB NULL-SWITAB 01170 FDB NULL-SWITAB 01180 FDB NULL-SWITAB 01190 FDB NULL-SWITAB 01200 FDB NULL-SWITAB 01210 FDB NULL-SWITAB 01220 FDB NULL-SWITAB 01230 FDB NULL-SWITAB 01240 FDB NULL-SWITAB 01250 FDB NULL-SWITAB 01260 FDB NULL-SWITAB 01270 FDB NULL-SWITAB 01280 FDB NULL-SWITAB 01290 FDB NULL-SWITAB 01300 FDB NULL-SWITAB 01310 FDB NULL-SWITAB 01320 FDB NULL-SWITAB 01330 FDB NULL-SWITAB 01340 FDB NULL-SWITAB 01350 FDB NULL-SWITAB 01360 FDB NULL-SWITAB 01370 FDB NULL-SWITAB 01380 FDB NULL-SWITAB 01390 FDB NULL-SWITAB 01400 FDB NULL-SWITAB 01410 FDB NULL-SWITAB 01420 FDB NULL-SWITAB 01430 FDB NULL-SWITAB 01440 FDB NULL-SWITAB 01450 FDB NULL-SWITAB 01460 FDB NULL-SWITAB 01470 FDB NULL-SWITAB 01480 FDB NULL-SWITAB 01490 FDB NULL-SWITAB 01500 FDB NULL-SWITAB 01510 FDB NULL-SWITAB 01520 FDB NULL-SWITAB 01530 FDB NULL-SWITAB 01540 FDB NULL-SWITAB 01550 FDB NULL-SWITAB 01560 FDB NULL-SWITAB 01570 FDB NULL-SWITAB 01580 FDB NULL-SWITAB 01590 FDB NULL-SWITAB 01600 FDB NULL-SWITAB 01610 FDB NULL-SWITAB 01620 FDB NULL-SWITAB 01630 FDB NULL-SWITAB 01640 FDB NULL-SWITAB 01650 FDB NULL-SWITAB 01660 FDB NULL-SWITAB 01670 FDB NULL-SWITAB 01680 FDB NULL-SWITAB 01690 FDB NULL-SWITAB 01700 FDB NULL-SWITAB 01710 FDB NULL-SWITAB 01720 FDB NULL-SWITAB 01730 FDB NULL-SWITAB 01740 FDB NULL-SWITAB 01750 FDB NULL-SWITAB 01760 FDB NULL-SWITAB 01770 FDB NULL-SWITAB 01780 FDB NULL-SWITAB 01790 FDB NULL-SWITAB 01800 FDB NULL-SWITAB 01810 FDB NULL-SWITAB 01820 FDB NULL-SWITAB 01830 FDB NULL-SWITAB 01840 FDB NULL-SWITAB 01850 FDB NULL-SWITAB 01860 FDB NULL-SWITAB 01870 FDB NULL-SWITAB 01880 FDB NULL-SWITAB 01890 FDB NULL-SWITAB 01900 FDB NULL-SWITAB 01910 FDB NULL-SWITAB 01920 FDB NULL-SWITAB 01930 FDB NULL-SWITAB 01940 FDB NULL-SWITAB 01950 FDB NULL-SWITAB 01960 FDB NULL-SWITAB 01970 FDB NULL-SWITAB 01980 FDB NULL-SWITAB 01990 FDB NULL-SWITAB 02000 FDB NULL-SWITAB 02010 FDB NULL-SWITAB 02020 FDB NULL-SWITAB 02030 FDB NULL-SWITAB 02040 FDB NULL-SWITAB 02050 FDB NULL-SWITAB 02060 FDB NULL-SWITAB 02070 FDB NULL-SWITAB 02080 FDB NULL-SWITAB 02090 FDB NULL-SWITAB 02100 FDB NULL-SWITAB 02110 FDB NULL-SWITAB 02120 FDB NULL-SWITAB 02130 FDB NULL-SWITAB 02140 FDB NULL-SWITAB 02150 FDB NULL-SWITAB 02160 FDB NULL-SWITAB 02170 FDB NULL-SWITAB 02180 FDB NULL-SWITAB 02190 FDB NULL-SWITAB 02200 FDB NULL-SWITAB 02210 FDB NULL-SWITAB 02220 FDB NULL-SWITAB 02230 FDB NULL-SWITAB 02240 FDB NULL-SWITAB 02250 FDB NULL-SWITAB 02260 FDB NULL-SWITAB 02270 FDB NULL-SWITAB 02280 FDB NULL-SWITAB 02290 FDB NULL-SWITAB 02300 FDB NULL-SWITAB 02310 FDB NULL-SWITAB 02320 FDB NULL-SWITAB 02330 FDB NULL-SWITAB 02340 FDB NULL-SWITAB 02350 FDB NULL-SWITAB 02360 FDB NULL-SWITAB 02370 FDB NULL-SWITAB 02380 FDB NULL-SWITAB 02390 FDB NULL-SWITAB 02400 FDB NULL-SWITAB 02410 FDB NULL-SWITAB 02420 FDB NULL-SWITAB 02430 FDB NULL-SWITAB 02440 FDB NULL-SWITAB 02450 FDB NULL-SWITAB 02460 FDB NULL-SWITAB 02470 FDB NULL-SWITAB 02480 FDB NULL-SWITAB 02490 FDB NULL-SWITAB 02500 FDB NULL-SWITAB 02510 FDB NULL-SWITAB 02520 FDB NULL-SWITAB 02530 FDB NULL-SWITAB 02540 FDB NULL-SWITAB 02550 FDB NULL-SWITAB 02560 FDB NULL-SWITAB 02570 FDB NULL-SWITAB 02580 FDB NULL-SWITAB 02590 FDB NULL-SWITAB 02600 FDB NULL-SWITAB 02610 FDB NULL-SWITAB 02620 FDB NULL-SWITAB 02630 FDB NULL-SWITAB 02640 FDB NULL-SWITAB 02650 FDB NULL-SWITAB 02660 FDB NULL-SWITAB 02670 FDB NULL-SWITAB 02680 FDB NULL-SWITAB 02690 FDB NULL-SWITAB 02700 FDB NULL-SWITAB 02710 FDB NULL-SWITAB 02720 FDB NULL-SWITAB 02730 FDB NULL-SWITAB 02740 FDB NULL-SWITAB 02750 FDB NULL-SWITAB 02760 FDB NULL-SWITAB 02770 FDB NULL-SWITAB 02780 FDB NULL-SWITAB00010 INCLUDE MACROS.ASM get macros 00020 ORG $7000 you can change this address 00030 START LBSR SETUP install the interrupt handler 00040 LBRA BEGIN start your code 00050 * get library code 00060 INCLUDE PART10A.ASM 00070 INCLUDE PART10B.ASM 00080 * the "installation" stuff 00090 BEGIN LDA #$16 opcode for LBRA 00100 STA >START,PCR change the LBSR to an LBRA 00110 LDD #PART10-START-3 get the offset for PART10 00120 STD >START+1,PCR store the offset in the new LBRA 00130 RTS we are finished the setup 00140 PART10 JSR <$A5 get current character 00150 CMPA #': is it a colon? 00160 BEQ PAR10A yup, it is 00170 SNERR JMP $B277 SN error 00180 PAR10A JSR $9F get next character 00190 JSR $B73D get start in conventional memory 00200 PSHS X temp store value 00210 JSR $B26D check for comma 00220 JSR $B73D get length of block 00230 PSHS X temp store value 00240 JSR $B26D check for comma 00250 JSR $B141 evaluate last expression 00260 JSR $E58E convert value to block/offset 00270 * now we have block/offset in B,X 00280 PULS Y,U get the length, location in Y,U 00290 EXG Y,X get block/offset into B,Y 00300 PAR10B LDA ,U+ get next byte to move 00310 STARBO store in B,Y 00320 LEAY 1,Y * increase address 00330 CMPY #$2000 * 00340 BNE PAR10C * 00350 LDY #0 * 00360 INCB * 00370 ANDB #$3F * 00380 PAR10C LEAX -1,X are we done yet? 00390 BNE PAR10B brif not 00400 RTS return to BASIC 00410 END START start executing at START START eters 00470 LDA ,U+ * 00480 LDX ,U++ * 00490 LDB ,U+ * 00500 LDY ,U++ * 00510 STU 20,S * 00520 LBSR SWI12 convert pair of addrs to block/offsets 00530 LBSR SWI05 clear the block of memeory 00540 PULS A,B,X,Y,U,PC restore registers and return 00550 ************************************************* 00560 * Clear memory, A,X to B,Y 00570 * 00580 SWI03 PSHS A,B,X,Y preserve registers 00590 LBSR SWI12 convert pair of addrs to block/offsets 00600 LBSR SWI05 clear block of memory 00610 PULS A,B,X,Y,PC restore registers and return 00620 ************************************************* 00630 * Clear memory, constant block/offsets 00640 * 00650 SWI04 PSHS A,B,X,Y,U prserver registers 00660 LDU 20,S * get the parameters 00670 LDA ,U+ * 00680 LDX ,U++ * 00690 LDB ,U+ * 00700 LDY ,U++ * 00710 STU 20,S * 00720 LBS00010 ************************************************* 00020 * Collection of useful subroutines for accessing 00030 * the "extended" memory on the CoCo3 00040 * 00050 * Note that this assumes that it is located above 00060 * $4000 and that the SWI handler is always in the 00070 * logical address space 00080 ************************************************* 00090 * Installation routine: 00100 SETUP LEAX SWI,PCR point to the SWI handler 00110 LDA #$7E JMP operation code 00120 STA $FEFA * make a JMP SWI instruction 00130 STX $FEFB * at SWI vector 00140 RTS return to calling routine 00150 00160 * the acutal SWI handler 00170 SWI ANDCC #$AF enable interrupts to be polite 00180 LDX 10,S get PC 00190 LDB ,X+ get the next byte in the program 00200 STX 10,S bump PC on the stack 00210 LEAX SWITAB,PCR point X to the jump table 00220 CLRA * calculate offset in table 00230 LSLB * 00240 ROLA * 00250 LDD D,X get offset to routine 00260 LEAX D,X get the exact address of the routine 00270 PSHS X store on the stack 00280 LDD 3,S * get back registers 00290 LDX 6,S * 00300 JSR [,S++] call the subroutine 00310 STD 1,S store D 00320 STX 4,S store X 00330 STY 6,S store Y 00340 STU 8,S store U 00350 RTI return to the calling routine 00360 * SWI jump table (must have 256 2-byte entries) 00370 SWITAB FDB SWI00-SWITAB 00380 FDB SWI01-SWITAB 00390 FDB SWI02-SWITAB 00400 FDB SWI03-SWITAB 00410 FDB SWI04-SWITAB 00420 FDB SWI05-SWITAB 00430 FDB SWI06-SWITAB 00440 FDB SWI07-SWITAB 00450 FDB SWI08-SWITAB 00460 FDB SWI09-SWITAB 00470 FDB SWI0A-SWITAB 00480 FDB SWI0B-SWITAB 00490 FDB SWI0C-SWITAB 00500 FDB SWI0D-SWITAB 00510 FDB SWI0E-SWITAB 00520 FDB SWI0F-SWITAB 00530 FDB SWI10-SWITAB 00540 FDB SWI11-SWITAB 00550 FDB SWI12-SWITAB 00560 FDB SWI13-SWITAB 00570 FDB NULL-SWITAB 00580 FDB NULL-SWITAB 00590 FDB NULL-SWITAB 00600 FDB NULL-SWITAB 00610 FDB NULL-SWITAB 00620 FDB NULL-SWITAB 00630 FDB NULL-SWITAB 00640 FDB NULL-SWITAB 00650 FDB NULL-SWITAB 00660 FDB NULL-SWITAB 00670 FDB NULL-SWITAB 00680 FDB NULL-SWITAB 00690 FDB NULL-SWITAB 00700 FDB NULL-SWITAB 00710 FDB NULL-SWITAB 00720 FDB NULL-SWITAB 00730 FDB NULL-SWITAB 00740 FDB NULL-SWITAB 00750 FDB NULL-SWITAB 00760 FDB NULL-SWITAB 00770 FDB NULL-SWITAB 00780 FDB NULџf>nР8>ŒгM"NIBLOADR>K–… џ†(&HCFC3)ДВ&H8D Ї ’ &HE76,&HCE:’ &HE77,&HE7>^ F1$Г"WTLIFTER">kЊL2Г&HE92>Д€ XГ0 Ѕ џ‡(F1$)Ќ1>œО’ L2,џŠ(џ(F1$,XЋ1,1))>ЈШL2ГL2Ћ1>Ав‹ X>Т’ &HE6E4,&HE6>Ю"Ђ &HF00>е,ф2>м6Р4>я7гM"FRED/BIN":Ђ?†XГ&HFF00:YГ&HFF7E:’XЋ1,52:’XЋ3,63:’XЋ35,60?6TX$:…TX$Г"Z12"Ї460?Gš€TГ1Ѕџ‡(TX$)?\Є…џ†(Y)А128Г0Ї420?vЎ’Y,џŠ(џ(TX$,T,1)):‹T?‹И…џ†(Y)А128Г0Ї440?›Т’Y,13:Ѕ400?ЌЬ€TIГ1ЅTM:‹TI?МжЂ44539:уї:Š@eр† DAAA,WHO,WOOD,LIKE TAA,LIFT,DAAA,WAITS,WITT,MEE,I,TINK,I,AAM,AAH,PRITTY,GOOD,I,CAAN,LIFT,AAH,HOLE,BUNCH,LIKE MAYBEE,5,HUNDRUD,POWNCCE,R,U,WITT,MEE,YOUSE,FIRST,Z12(TX$,T,1)):‹T?‹И…џ†(Y)А128Г0Ї440?›Т’Y,13:Ѕ400?ЌЬ€TIГ1ЅTM:‹TI?МжЂ44539:уї:Š@eр† DAAA,WHO,WOOD,LIKE TAA,LIFT,DAAA,WAITS,WITT,MEE,I,TINK,I,AAMџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЂ€PН\ЏŽџџŒ'0 їџйННчBНсО@ŽŸгь„§@ЏЮ;ƒZ$ ь„эСЏ ёОTŸгОVŸеН5ОRŸзОTŸгН5ОNŸгОPŸеН5Н5aН5}L'Н5шННрџН€џи9€Ž/ŽџЉІ€Ї ŒџЏ&і9Ž5 ьŽ;ŽџАьэЁŒџР%іЖKЗџš990123>0123=>ŽџЁЦ0ŒџЄ$ч€\ іžІ40ŸІНЯУ5ŸІŽџЁЦ"€9ŒџЄ$ч€\ іЬмн9"SCREEN /NIB" !р€5žгŽœе%9ц„o€ч  ђŽПџžг1?Œ@% цЄoЄч„1?0 ю0ŸЯЮ@ކ€—Ы“з%пг9ІЄ”Ы'І€—ЬжЬчРЫ Ы&ф†€—Ы1! мŽПџžг1?Œ@$0П 9цЄч„oЄ1?0 ~5€шŽŽ@ў †€—йЫŒР%9ІЄ”й'Н5У–ЭЇ„йІЄ”й'Н5У–ЬЊ„Ї€й й&憈—й1! Ю Ы'цРФЫзЬXXXXзЭ  ЫцФФ№зЭTTTTзЬ 9Ž@Ž@ ŒР%9ц€шЄч  ёџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќM  "#&')*+-.012457889;;<<>>>???????>>><<;;987754210..-+*)'&$#"  """""#######""""   o”Лф?qЅмV˜н(vЩ!тJЙ/Ќ 0 Л P э “ C ў Ф•s_X`w к&‡ќˆ+г О"А$Р&я)@+Д.M13љ7:W=ЯA|E`IMпRWi\›bˆ†L‹†?Зџ#P0ўjŸУŸЦŸЩŸЬ0€ŸР9žРІ€—Т91џPІ€юІпЯІ€юІпбІ€юІпгІ€юІпеŸР9ŽzІŸLУЋŸLЦЉŸLЩЉŸLЬЗџ мФгЯнФмЧгбнЧмЪггнЪмЭгенЭ1Ђ& Т' ЧІ€ С9џu‘&O‹9ŽЋ №D4:>2D4B4D:>2 D D4:>224":"4,00 4":0&,4"4"::0&,&4":>2DL:L0L@HD>H>8,:*">*":*"6*"40D4:>2D4B4D:>2 D D4:>224":"4,00 4":0&,4"4"::0&,&4":>2DL:L:0LHD>H>8,:*">*":*"6*"40D4D4D4D4@4"@4@4>6>6$6& 6&D4D4$@4" @4>66&D&F&H>8H>8$D>8$ D>8B":":(:*:*H:4,H:4,H>8,H>8,H>8,:6,:6,:6,:6,:6*":6*"D4:>2D4B4D:>2DDD4:>224":"4,004":0&,4"4"::0&,4":>2DL:0LH`LLN>LHB" D H L> D> H< B<D4&H>6:6,0:H*"D4џN„DDD4:>224":"4,004":0&,4"4"::0&,4":>2DL:0LH`LLN>LHB" D H L> D> H< B<D4&H>6:6,0:H*"D4џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџІ WƒГ €ИАŠ€Г  €‹ Ђ Ђ * ‚Ј  * €А8 * 0А8  €ИЈ €0АИ € АИ €А €0А  И  €;Ђ   (  0А0‚  ЈЂ Ј АŠ‚  Ј А0 *Š Š Š € €;Š И  €8 €А0   0А€*€Ђ€А*Š‚ А * ЂЈ  А Š А0 ЈЂ € А АŠ 0 А‹ €Ај  €Г№x Џјїј№ 0А №x№јГА pxїnї№‹€Г pї№xpvчhї№€АИјА*їxpx†ршў№ p€А€Ї№€xрop~ 0; 0А0 *ј№pї`gц№~‹№јА€*ї†gрn‹0№ГŠЈїр`црГ ‡  Ј№pxp`р`hА‹ 0€№px`n xpр‹€pxp‡€рАp‡`рчГ ‡№рш0АИp€`† €p€h`рnp€h`р`0А8px†€А8јїј№‡€n`0А€x€`цŽ €ї№€р€ng€ƒ p№pрцА€ї№p€р†€†рА€‡€pш`n x№p€h`ш 0А8€hрn0А8`nƒ pрцƒ јx№€рш`hА8ј№€‡`nŽ€А€№‡†Ž`n 0А0‡†шр`ш0€xцц0ј№€№‡€†€чƒї№x№‡ш`цря`€p№p‡Ž`р№їч ї№pn‡ршpч`рГ їp€шр‡јїv~€А€№p№€h`шјїч`€А0€ї‡їŠ№їрnш№ї`np€0А€ Ј№€ц€р№€nр№€јpїряp€А€‡№€№ *€јh`€`р№p€ршўx№А0€xpx `†№‡р€рo€0А‡ј Ž`~`ш№‡ршјря€№p€h`hpnxшјў€ї№`n€xрш№Ž€`n€їŽx€№‡`hŽ`nx№0p€p шxцр€Ž€ј €№€pv€p`n€ј €†€xцр€`n №€hршр`шј p€p‡р€`hŽpї№0А€‡†`шhцр€ршј рn€† ‡ц№Ž€А€рч€ц рnp№€А€јxnpр`р€А0№p€‡€Ž€рј№А€€їpцp№‹ x№*А€pŽ€p 0А€x№ №0Иpn ј€(А‡€ц№€ƒ јї €p0И№€0Ајї А ї ƒ € €0;    *€0Иp€p€А8А8 ppp№€Аї€‡ € №ј№€ї €p€Ај№ƒ     p€p€ p€ €p€ €А€€ј     € €А€ €А€p 0А€А€€0€x‘€ 0€ 8p€ А€Ј  €0ј їЈ €‚ €x €А0€p‚ №p€Š€№0А€‡ №€€Гpx    №Г А€€А‡№€‹И€И€Г ш№А‹шp€‡€Žр€p€8€‡рp€0р`€ш€x€`npp€p€0`†€‡€p0€`€p€pИ`€`рhї€И`€рn‡p€А`hp€pИ†€p0`р`h`р№€8р`†`h`h№€Ž€`€h`n№€p€И††шp€рh`n`ш €`nŽ`h†р`h`€`h`рц`n€h`р€цр†`€`р`шцŽ`np‡Ž€рnр€p€`рhцшцрh`рnршр`n€Oqїqїїot€€|ф@4єF (fiŸЙк$DЖ‘* §П€8.ю;€ џ07Р А№ `№аxЛ ою7ЛК и`ЊDЉР(P XH0шP` р `Њ€@ ЂJ€Р()d@Ї[$"@({Иhр­›tGР А№ € €DРXˆ€tl №ў0{ˆю€t€Ш0ЊЉЄ Ѕ! N<сl      0кDЄ"M’[UАˆ з€юЎ‚эЙАНмNџ€і (?PТ$ќ"DФ-џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџШШШШШШУШФШ ЩТТТЦУУЧ"#Ц%Ф'()*+ФШ./01С34Ц6У89:;<=ЦЧШСџџџFRED BIN HOMER NIB7ЛMACROS ASMџYMACROS LSTџ2NIBLOADRBIN`NIBSHOW BAS$еPART10 ASMџЗPART10 LSTџ,wPART10 TXTџ5ћPART10A ASMџ†PART10A LSTџ-ЬPART10B ASMџ&OPART10B LSTџPIXMOVERBIN@бREADFILEBASдSAM NIB SKIPPER BAS-SKIPPER1NIB SKIPPER2NIBBSKIPPER3NIBZSKIPPER4NIBZSKIPPER5NIB†SKIPPER6NIB>КSKIPPER7NIB?$SKIPPER8NIB;TACOBELLBAS TACOBELLNIB јWTLIFTERBASiWTLIFTERNIB!АџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџИ€? CР0от€ЇР№Ф€ DЈъЂ’@”PД‰A€ @04E0<€y{ќ €  d9џпь6Ј@ D€dњПp6ЂсрŽ7€#…Р`еѓћ€ќРˆ"›P~kїџ Жш: ˜PoЗџшўР  €›WїоОрш:ˆЯяћ и€ Њ  BЖ€•@:€ЗЖџпС№МіzаїџНа?xмW#@ь~л€ЯД}Р( P Ь~чpеmЕP"@пУxИ•mАGw@<€˜РxўРŒиѓ` @@цЭА f˜И<є@Gw@џмаp’…Tpr"o€ј|e0€  З@ <§И  (ћLа`\€јо0јрРpЯ€UP`Мl`Р"B:ирРр8А ƒр9Glи8 јАDl р|€>иt fјlчац€€>9tx ‚ƒpjРр€€!UU(У‚р№рQњР‡@ИИ<{ рађР№ ќl3ќА„ѕ€PvŸ@№ ёg` |Чїмx   |vY{Лп€>к$D@JЈD„€4АМ1оћ№>.юррюEР `„ш^}wxЯ€Р< Ир"И„рc>ђ,ї€ ј7э1 )0kЯЏџљ€`Р0 ,+х7ŸTЮу лїРою ю€@x с€Ÿ§†џ)еŒyрЊDЄ@D*Є•@g€Уѓs ]І~ lf1ўСЯ џп|p.X0їє~џ2ОАм83ї8Р?Яv(cРџмиWX)Њ€ c0wчa[()DЊ$D:nјняXтѓL<({ИоŽ.ю>x‡ОpРїO№ ˆ(n<У‘Иьˆш"o86r‡њ`uи№ш žp8gjц {ˆшˆ.тl{o уР0ЊЉкBŽ„DРP™ЬЧ Rы0D0Яƒ€`ъ ``p№\Р~ЬР€ИP?Ц`Р№|Џ&0ш8@x<П‰€c`Р 9р<Дќщг№h `  Мџ5jшxSР№щкНxи@Xƒ?§z<8€qРx€Ъ[6œh€џls€Рі§џ€@ §o№ррј‡Яа~§п?іў к№МР:}џў№?ї€ўчў;ўўџ§знџ№џџРЧџ>џћПї7ћўУџp;~§зэџ‡н@ўОGўњћнџрџјПРv|їп№џ№ўџџM§я?пљћЖpџяѕџџћ7џџџђџџНыџїђ№7ћПяРПчНџ˜џџџПџўџпЯХ_џЫўРqŽ~эџу}№ќРџФ!гїїџџпџŸП џчРћ@яcџђџџŸЮ-ќџљџ–љНРПо§ў?ЮУиhџџžРьNЕš/`ќч`рјgnoИїрп~роџџЏ§їџџџяяўю§Яџ—џџxџя9џўѕЇѓПџџЯѓПбўиџы[ПOНяwј?љaИПлїџяПРРр№№Ь(№џјјюјјрјрииџљиџљиииИИџїИџџ№џџјй№>xpx~яxџяxјјИИ<уИџџ№~џјf№fp~pџџxџџ8?ў?}ќ}`}ќрАрА§рџр}Знряџпррр№№xg№џf№џf№`№аn№џn№џo№п№№Ч№Ч№ЧјяЧјџИsџС˜0я˜`ЧиqџЧмўџЧмУќЧќУќЧќ~oУќџџУќџџќџўџў яўџџяўџїчўЧўЧўУўўсžќџоўџмўvоў6оюsЦўwЦўџоЯіЧўЯў>ў>ЮќЭО?ќџўјџў?ј№ў?ј0?шPјwа?јџа№8?А>№ў№8№ŸŽpџџў`ўџўџЦрЮрЮО`ьџрРмьмќsмџ№ўчљьщьјюРyьџёюџ№lРрРЬ ььььџќјџќсўјџСј~пќј№9пінуўюпяьь ьь ќќ ќјј иј`ј=ј/№?јј№ј№ј№јр№И€џџ№џРџ№џјџРџ№џ№џјџјџ№џјћ№РћјР@;?8;<џKш0kшR}Wƒџиј`ј=ј/№?јј№ј№ј№јр№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ в&b•700,30720:Р8:ŒF$(20):т80:SLГ1:HNГ2:EГ424064:’282,255:’59078,33:хE,0:І63:І52:ˆ№ Ѕ2:ˆя Ѕ2&ыSSГ0:ф0:ј0,0:у0,0:у8,63:у1,11:у11,11:ž1:ё33,0:ј3,0:‡"NIBSHOW 3.0";:ј0,0:ё60,1:‡"Border: ";:ё60,0:‡"Hscreen:";:ё0,0:‡"Drive:"DR;:І61'˜ё0,22:‡"Arrows"Є14)"D:directory C:change drive S:slide show X:exit";:ё0,23:‡"Space/Enter:load B:border swap H:HSCREEN swap T:comments P:palette";'Б… KГ0Ї9:„ј0,0:€AГ1ЅK'ыHSГ(AЌ1)Ќ(џ((AЌ1)Ў4)­4):VSГџ((AЌ1)Ў4):ёHS­20Ћ3,VSЋ4(‡џŽ(F$(A),8)Ћ"."Ћџ(F$(A),3);:‹A(SOLГSL:HSГ(SLЌ1)Ќ(џ((SLЌ1)Ў4)­4):VSГџ((SLЌ1)Ў4):ёHS­20Ћ3,VSЋ4(ˆј0,1:‡џŽ(F$(SL),8)Ћ"."Ћџ(F$(SL),3);:ј0,0:’135,0(­ A$Гџ’:…A$Г""Ї9:„…A$Г"D"ЇІ56:Ѕ2(Т …A$Г"C"ЇІ28:Ѕ2(ш …A$Гџ‹(10)ЇSLГSLЋ4:…SLВK ЇSLГSLЌ4) …A$Г"^"ЇSLГSLЌ4:…SLД1ЇSLГSLЋ4). …A$Гџ‹(8)ЇSLГSLЌ1:…SLД1ЇSLГSLЋ1)S…A$Гџ‹(9)ЇSLГSLЋ1:…SLВK ЇSLГSLЌ1)……A$Г"X"Їј0,0:ž1:…џ†(&HCFC3)ДВ141Ї’282,0:Š :„Š)Б…KВ0Ї…A$Г" "Б A$Гџ‹(13)Ї NLГSL:І30:Ѕ2)г…A$Г"B"А BCГ0Ї BCГ63:І61:Ѕ9)ѕ…A$Г"B"А BCГ63Ї BCГ0:І61:Ѕ9*…A$Г"H"А HNГ4Ї HNГ2:І61:Ѕ9*7…A$Г"H"А HNГ2Ї HNГ4:І61:Ѕ9*v…A$Г"T"АџЉ(E)Г67Їё0,17:€ COГEЋ7ЅEЋ246:‡џ‹(џЉ(CO));:‹CO:Ѕ9*…KГ0Ї4*—…A$Г"S"ЇSSГ1:Ѕ68*д…A$Г"P"Ї€AГ0Ѕ15:ёA­4Ћ6,17:‡A;:ёA­4Ћ6,18:‡џ†(61465ЋA);:‹A*т…SLГOL Ї9+HSГ(OLЌ1)Ќ(џ((OLЌ1)Ў4)­4):VSГџ((OLЌ1)Ў4):ёHS­20Ћ3,VSЋ4+Lј0,0:‡џŽ(F$(OL),8)Ћ"."Ћџ(F$(OL),3);:Ѕ7+`ё7,0:ј0,0:‡"?";+ЂA$Гџ’:…A$Г""Ї29:„ AГџ‰(A$):… AД0Б AВ3Ї:„ DRГA:ё6,0:‡DR;:Ѕ56+гF$ГџŽ(F$(NL),8):…џ(F$(NL),1)Г"B"Ї IГ1:„ IГ2+ћ… IГ1Ї…џ†(&HE10)Г246Ї33 :„І52:Ѕ33, …џ†(&HE3C)ДВ189ЇІ54,4!… IГ1Ї FSГ&HE92 :„ FSГ&HEAE,b"€XГ0Ѕ7:’ FSЋX,џŠ(џ(F$,XЋ1,1)):‹X:фHN:ЯDR,ƒ#’65496,0:… IГ1ЇЂ3840 :„Ђ3644,Ј$’65497,0:Я0:’135,0:…џЉ(E)ДВ67Ї38,И%фџЉ(424311),Ц&’65434,BC-#'€CMГ0Ѕ3:CM(CM)Гџ†(65467ЋCM)Ќ64:‹CM:AГ0:€CMГ61465Ѕ61480:’CM,џ†(65456ЋA)Ќ64:AГAЋ1:‹CM:џŸГ0->(A$Гџ’:…A$ДВ""Ї’135,0:-R)…SSВ0Ї…џŸВTD Ї-g*…џЉ(423943)Г0Ї51-}+…џЉ(423943)Г42Ї49-”,…џЉ(423943)ДВ45Ї51-Й-TTГџЉ(423944)Ќ48:… TTД1Б TTВ9Ї47-м.€TГ1Ѕ2Џ(TT)Ў2:‹T:TГџƒ0(0):Ѕ51.#/IГџЉ(423944):…IГ83ЇІ64:„… IГ82ЇІ65:„… IГ71ЇІ66:„… IГ66ЇІ67:„51.Z0€TГ0Ѕ15:у T,џ‰(џ(A$,1Ћ(T­2),2)):‹T:х423943,0:Ѕ51.’1DГCM(3):CM(3)ГCM(2):CM(2)ГCM(1):CM(1)ГCM(0):CM(0)ГD.А2€CMГ0Ѕ3:у11ЋCM,CM(CM):‹CM.Й3Ѕ40/4’65496,0:гM"NIBLOADR":’65497,0:…џ†(&HCFC3)ДВ&H8D Ї’&HE76,&HCE:’&HE77,&HE7/ 5/06’65496,0:гM"SQZLOADR":’65497,0/67/ˆ8’65496,0:хE,0:ё35,15:ј0,0:‡"Reading";:JГ1:€SГ3Ѕ11:п DR,17,S,A$,B$:€AГ1Ѕ128Љ3209…џ(A$,AЋ8,3)Г"NIB"АџŠ(џ(A$,A,1))ДВ0Ї F$(J)Гџ(A$,A,11):JГJЋ1 :„… џ(A$,AЋ8,3)Г"SQZ"А џŠ(џ(A$,A,1))ДВ0Ї F$(J)Гџ(A$,A,11):JГJЋ10!:‹A:€AГ1Ѕ128Љ320Ї;…џ(B$,AЋ8,3)Г"NIB"АџŠ(џ(B$,A,1))ДВ0Ї F$(J)Гџ(B$,A,11):JГJЋ1 :„… џ(B$,AЋ8,3)Г"SQZ"А џŠ(џ(B$,A,1))ДВ0Ї F$(J)Гџ(B$,A,11):JГJЋ10к<‹A:‹S:KГJЌ1:ё26,10:‡џЁ(40,32);:SLГ1:’65497,0:1=ј0,0:ё68,1:… BCГ0Ї‡"Black";:„‡"White";1>ё68,0:‡HN;:1•?A$Гџ‹(&H7C)Ћџ‹(&HFF):€PPГ1Ѕ15:B$ГB$ЋA$Ћџ‹((&HB0)ЋPP)Ћџ‹(&H12):‹PP:€AГ1Ѕ60:’1024ЋA,џŠ(џ(B$,A,1)):‹A:’1024ЋA,57:Йџƒ0Г1025:1С@A$Г"00010203040506070809101112131415":1эAA$Г"00043236374433383552535455603534":2BA$Г"00022016182219232630585150172106":2ECA$Г"00010809111025312724141513292812":2“Dё32,15:Л‰"Delay (3-30): ";A$:TDГџ‚(џ(џ‰(A$))):… TDД3Б TDВ30Ї2:„ TDГTD­602бE€AГ0Ѕ15:уA,0:‹A:NLГSS:І30:SSГSSЋ1:…SSГKЋ1 ЇSSГ1:Ѕ69:„694433383552535455603534":2BA$Г"000220161џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ00010 ************************************************* 00020 * Convert address in A,X to block/offset in B,Y 00030 * 00040 SWI00 PSHS A,X preserve parameter in A,X 00050 TFR X,D * figure out offset 00060 ANDA #$1F * 00070 TFR D,Y store offset in Y for return 00080 LDD ,S get first two bytes of address 00090 LSRA * figure out the block number 00100 RORB * 00110 LSRA * 00120 RORB * 00130 LSRA * 00140 RORB * 00150 LSRA * 00160 RORB * 00170 LSRA * 00180 RORB * 00190 * block is now in B where we return it 00200 PULS A,X,PC restore registers and return 00210 ************************************************* 00220 * Convert block/offset in B,Y to address in A,X 00230 * 00240 SWI01 PSHS B,Y preserve parameter in B,Y 00250 CLRA prepare to shift block to the correct position 00260 LSLB * shift block number to correct position 00270 ROLA * 00280 LSLB * 00290 ROLA * 00300 LSLB * 00310 ROLA * 00320 LSLB * 00330 ROLA * 00340 LSLB * 00350 ROLA * 00360 ADDB 1,S merge the offset with the block 00370 PSHS A temp store A (first byte of address) 00380 TFR B,A * get the lower bytes of address 00390 LDB 3,S * into the correct order 00400 TFR D,X store the low order bytes into X 00410 PULS A,B,X,PC restore registers and return 00420 ************************************************* 00430 * Clear memory, constant boundaries 00440 * 00450 SWI02 PSHS A,B,X,Y,U preserve registers 00460 LDU 20,S * get the parameters 00470 LDA ,U+ * 00480 LDX ,U++ * 00490 LDB ,U+ * 00500 LDY ,U++ * 00510 STU 20,S * 00520 LBSR SWI12 convert pair of addrs to block/offsets 00530 LBSR SWI05 clear the block of memeory 00540 PULS A,B,X,Y,U,PC restore registers and return 00550 ************************************************* 00560 * Clear memory, A,X to B,Y 00570 * 00580 SWI03 PSHS A,B,X,Y preserve registers 00590 LBSR SWI12 convert pair of addrs to block/offsets 00600 LBSR SWI05 clear block of memory 00610 PULS A,B,X,Y,PC restore registers and return 00620 ************************************************* 00630 * Clear memory, constant block/offsets 00640 * 00650 SWI04 PSHS A,B,X,Y,U prserver registers 00660 LDU 20,S * get the parameters 00670 LDA ,U+ * 00680 LDX ,U++ * 00690 LDB ,U+ * 00700 LDY ,U++ * 00710 STU 20,S * 00720 LBSR SWI05 clear block of memory 00730 PULS A,B,X,Y,U,PC restore registers and return 00740 ************************************************* 00750 * Clear memory, constant block/offset in A,X to B,Y 00760 * 00770 SWI05 PSHS A,B,X,Y save registers 00780 STB SWI05A,PCR * save top location 00790 STY SWI05B,PCR * 00800 ORCC #$50 disable interrupts 00810 LDB $FFA0 save MMU value 00820 SWI05Z STA $FFA0 set MMU to current block 00830 SWI05Y CLR ,X+ clear a byte 00840 CMPX #$2000 are we at the end of the block? 00850 BGE SWI05X brif so 00860 CMPA SWI05A,PCR are we in the last block? 00870 BNE SWI05Y continue if not 00880 CMPX SWI05B,PCR are we done? 00890 BLS SWI05Y continue if not 00900 STB $FFA0 restore MMU 00910 ANDCC #$AF re-enable interrupts 00920 PULS A,B,X,Y,PC restore registers and return 00930 SWI05A FCB 0 temp storage 00940 SWI05B FDB 0 temp storage 00950 SWI05X LDX #0 point X to start of block 00960 INCA go on to next block in memory 00970 BRA SWI05Z coninue clearing memory 00980 ************************************************* 00990 * Set memory, constant boundaries, constant value (addrs) 01000 * 01010 SWI06 PSHS A,B,X,Y,U save registers 01020 LDU 20,S * get boundaries from stack 01030 LDA ,U+ * 01040 LDX ,U++ * 01050 LDB ,U * 01060 LDY ,U++ * 01070 LBSR SWI12 convert the boundaries to block/offset 01080 PSHS B,Y store top address 01090 PSHS A,X store bottom address 01100 LDA ,U+ get the value to store 01110 STU 26,S update program counter on stack 01120 PSHS A put value to store on stack 01130 LBSR SETMEM set the memory block 01140 PULS A,B,X,Y,U,PC restore registers and return 01150 ************************************************* 01160 * Set memory, constant boundaries, value in B (addrs) 01170 * 01180 SWI07 PSHS A,B,X,Y,U store registers 01190 LDU 20,S * get boundaries from program 01200 LDA ,U+ * 01210 LDX ,U++ * 01220 LDB ,U+ * 01230 LDY ,U++ * 01240 STU 20,S * 01250 LBSR SWI12 convert the boundaries to block/offset 01260 PSHS B,Y store top address 01270 PSHS A,X store bottom address 01280 LDA 7,S * put the value onto the stack 01290 PSHS A * 01300 LBSR SETMEM set the memory block 01310 PULS A,B,X,Y,U,PC restore registers and return 01320 ************************************************* 01330 * Set memory, UH,X to UL,Y, constant value (addrs) 01340 * 01350 SWI08 PSHS A,B,X,Y,U store registers 01360 TFR U,D get the upper bytes of the addresses 01370 LBSR SWI12 convert addresses to block/offsets 01380 PSHS B,Y store the upper bound 01390 PSHS A,X store the lower bound 01400 LDU 26,S * get the set value 01410 LDA ,U+ * 01420 STU 26,S * 01430 PSHS A store it on the stack 01440 LBSR SETMEM set the memory block 01450 PULS A,B,X,Y,U,PC restore registers and return 01460 ************************************************* 01470 * Set memory, UH,X to UL,Y, value in B (addrs) 01480 * 01490 SWI09 PSHS A,B,X,Y,U store registers 01500 TFR U,D get the high byte of the addresses 01510 LBSR SWI12 convert the addresses to block/offsets 01520 PSHS B,Y store the upper bound 01530 PSHS A,X store lower bound 01540 LDB 7,S get value 01550 PSHS B store it on stack 01560 LBSR SETMEM set the memory block 01570 PULS A,B,X,Y,U,PC restore registers and return 01580 ************************************************* 01590 * Read memory to A, constant address 01600 * 01610 SWI0A PSHS B,X,Y,U temp store regs 01620 LDU 19,S = get args 01630 LDA ,U+ = 01640 LDX ,U++ = 01650 STU 19,S = 01660 LBSR SWI00 convert address to block/offset 01670 ORCC #$50 * disable interrupts 01680 LDA $FFA0 * temp store MMU 01690 STB $FFA0 * set MMU to correct block 01700 LDB ,Y * get value 01710 STA $FFA0 * restore MMU 01720 ANDCC #$AF * restore interrupts 01730 TFR B,A * get value to A 01740 PULS B,X,Y,U,PC restore regs and return 01750 ************************************************* 01760 * Read memory to A, address in B,Y 01770 * 01780 SWI0B PSHS B,X,Y temp save regs 01790 TFR B,A * get addr into useful place 01800 TFR Y,X * 01810 LBSR SWI00 convert to block/offset 01820 ORCC #$50 disable interrupts 01830 LDA $FFA0 temp store MMU 01840 STB $FFA0 set MMU to specified block 01850 LDB ,Y get value at the address 01860 STA $FFA0 restore MMU 01870 ANDCC #$AF restore interrupts 01880 TFR B,A get value into A 01890 PULS B,X,Y,PC restore regs and return 01900 ************************************************* 01910 * Read memory to A, constant block/offset 01920 * 01930 SWI0C PSHS B,Y,U temp store regs 01940 LDU 17,S * get parameters 01950 LDA ,U+ * 01960 LDY ,U++ * 01970 STU 17,S * 01980 ORCC #$50 disable interrupts 01990 LDB $FFA0 temp store MMU 02000 STA $FFA0 set MMU to current block 02010 LDA ,Y get value in offset 02020 STB $FFA0 restore MMU 02030 ANDCC #$AF restore interrupts 02040 PULS B,Y,U,PC restore regs and return 02050 ************************************************* 02060 * Read memory to A, block/offset in B,Y 02070 * 02080 SWI0D PSHS B temp store regs 02090 ORCC #$50 disable interrupts 02100 LDA $FFA0 temp store MMU 02110 STB $FFA0 set MMU to correct block 02120 LDB ,Y get value as location 02130 STA $FFA0 restore MMU 02140 TFR B,A put result into correct location 02150 ANDCC #$AF restore interrupts 02160 PULS B,PC restore regs and return 02170 ************************************************* 02180 * Write A to memory, constant address 02190 * 02200 SWI0E PSHS A,B,X,Y,U temp store regs 02210 TFR D,U temp store value to write 02220 LDY 20,S * get parameters 02230 LDA ,Y+ * 02240 LDX ,Y++ * 02250 STY 20,S * 02260 LBSR SWI00 convert addr to block/offset 02270 ORCC #$50 * do the write - disable ints 02280 LDA $FFA0 * temp store MMU 02290 STB $FFA0 * get our block into MMU 02300 EXG U,X * get value/temp store MMU block 02310 STA ,Y * write value 02320 TFR U,D * get back MMU 02330 STA $FFA0 * put MMU value back 02340 ANDCC #$AF * restore ints 02350 PULS A,B,X,Y,U,PC restore regs 02360 ************************************************* 02370 * Write A to memory, address in B,Y 02380 * 02390 SWI0F PSHS A,B,X,Y,U temp store regs 02400 TFR D,U temp store value 02410 TFR B,A * get params 02420 TFR Y,X * 02430 LBSR SWI00 convert addr to block/offset 02440 ORCC #$50 disable ints 02450 LDA $FFA0 temp store MMU 02460 STB $FFA0 get our block to MMU 02470 EXG D,U temp store MMU block/get value 02480 STA ,Y write value 02490 TFR U,D get back MMU value 02500 STA $FFA0 stick MMU value back 02510 ANDCC #$AF restore ints 02520 PULS A,B,X,Y,U,PC restore regs 02530 ************************************************* 02540 * Write A to memory, constant block/offset 02550 * 02560 SWI10 PSHS A,B,X,U temp store regs 02570 LDU 18,S * get params 02580 LDB ,U+ * 02590 LDX ,U++ * 02600 STU 18,S * 02610 TFR D,U temp store value 02620 LDA $FFA0 temp store MMU 02630 ORCC #$50 disable ints 02640 STB $FFA0 get our block to MMU 02650 EXG D,U temp store MMU block/get value 02660 STA ,X store value 02670 TFR U,D get back MMU value 02680 STA $FFA0 stick it back in MMU 02690 ANDCC #$AF restore ints 02700 PULS A,B,X,U,PC restore regs 02710 ************************************************* 02720 * Write A to memory, block/offset in B,Y 02730 * 02740 SWI11 PSHS A,B,U temp store regs 02750 TFR D,U temp store value 02760 LDA $FFA0 temp stor MMU 02770 ORCC #$50 kill interrupts 02780 STB $FFA0 get our block into MMU 02790 EXG D,U temp store MMU block/get value 02800 STA ,Y write value 02810 TFR U,D get back MMU value 02820 STA $FFA0 stick it back into value 02830 ANDCC #$AF restore ints 02840 PULS A,B,U,PC restore regs 02850 ************************************************* 02860 * Convert a pair of addresses to block/offset 02870 * 02880 SWI12 PSHS A,B,X,Y make some temp storage on the stack 02890 LBSR SWI00 convert A,X 02900 STB ,S * store it back in the originals 02910 STY 2,S * 02920 LDA 1,S = convert B,Y 02930 LDX 4,S = 02940 LBSR SWI00 = 02950 STB 1,S = 02960 STY 4,S = 02970 PULS A,B,X,Y,PC restore registers and return 02980 ************************************************* 02990 * Convert a pair of block/offsets to addresses 03000 * 03010 SWI13 PSHS A,B,X,Y make some temp storage on the stack 03020 LBSR SWI01 convert B,Y 03030 STA 1,S * store it back in the originals 03040 STX 4,S * 03050 LDB ,S = convert A,X 03060 LDY 2,S = 03070 LBSR SWI01 = 03080 STA ,S = 03090 STX 2,S = 03100 PULS A,B,X,Y,PC restore registers and return 03110 ************************************************* 03120 * Set a section of memory. 03130 * Enter 0,S clear value 03140 * 1,S start address 03150 * 4,S end address 03160 * Exit 1,S to 4,S will be set to 0,S 03170 * stack will be reset 03180 ************************************************* 03190 SETMEM PSHS A,B,X,U save registers 03200 LDB 12,S * get end address 03210 LDU 13,S * 03220 STU SETMEZ,PCR = save ending address for comparison 03230 STB SETMEY,PCR = 03240 LDA 9,S * get starting address 03250 LDX 10,S * 03260 ORCC #$50 disable interrupts 03270 LDB $FFA0 save MMU 03280 STB SETMEX,PCR = 03290 LDB 8,S get set value 03300 SETME0 STA $FFA0 set MMU to currentblock 03310 SETME1 STB ,X+ set a byte 03320 CMPA SETMEY,PCR are we in final block? 03330 BEQ SETME2 brif so 03340 CMPX #$2000 are we at the end of the block? 03350 BLO SETME1 coninue if not 03360 INCA go on to next block 03370 LDX #0 set pointer back to start of it 03380 BRA SETME0 continue setting memory 03390 SETMEX FCB 0 temp storage 03400 SETMEY FCB 0 temp storage 03410 SETMEZ FDB 0 temp storage 03420 SETME2 CMPX SETMEZ,PCR are we finished the block? 03430 BLS SETME1 continue if we are not done 03440 ANDCC #$AF re-enable interrupts 03450 LDB SETMEX,PCR * restore the MMU 03460 STB $FFA0 * 03470 LDU 6,S = set up stack to get rid of parameters 03480 STU 13,S = 03490 PULS A,B,X,U restore registers 03500 LEAS 7,S clean up stack 03510 RTS return 03520 ************************************************* 940 SWI05B FDB 0 temp storage 00950 SWI05X LDX #0 point X to start of block 00960 INCA go on to next block in memory 00970 BRA SWI05Z coninue clearing memory 00980 *******џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ00010 INCLUDE MACROS.ASM get macros 00020 ORG $7000 you can change this address 00030 START LBSR SETUP install the interrupt handler 00040 LBRA BEGIN start your code 00050 * get library code 00060 INCLUDE PART10A.ASM 00070 INCLUDE PART10B.ASM 00080 * the "installation" stuff 00090 BEGIN LDA #$16 opcode for LBRA 00100 STA >START,PCR change the LBSR to an LBRA 00110 LDD #PART10-START-3 get the offset for PART10 00120 STD >START+1,PCR store the offset in the new LBRA 00130 RTS we are finished the setup 00140 PART10 JSR <$A5 get current character 00150 CMPA #': is it a colon? 00160 BEQ PAR10A yup, it is 00170 SNERR JMP $B277 SN error 00180 PAR10A JSR $9F get next character 00190 JSR $B73D get start in conventional memory 00200 PSHS X temp store value 00210 JSR $B26D check for comma 00220 JSR $B73D get length of block 00230 PSHS X temp store value 00240 JSR $B26D check for comma 00250 JSR $B141 evaluate last expression 00260 JSR $E58E convert value to block/offset 00270 * now we have block/offset in B,X 00280 PULS Y,U get the length, location in Y,U 00290 EXG Y,X get block/offset into B,Y 00300 PAR10B LDA ,U+ get next byte to move 00310 STARBO store in B,Y 00320 LEAY 1,Y * increase address 00330 CMPY #$2000 * 00340 BNE PAR10C * 00350 LDY #0 * 00360 INCB * 00370 ANDB #$3F * 00380 PAR10C LEAX -1,X are we done yet? 00390 BNE PAR10B brif not 00400 RTS return to BASIC 00410 END START start executing at START * 00360 INCB * 00370 ANDB #$3F * 00380 PAR10C LEAX -1,X are we done yet? 00390 BNE PARџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ00010 ************************************************* 00020 * Collection of useful subroutines for accessing 00030 * the "extended" memory on the CoCo3 00040 * 00050 * Note that this assumes that it is located above 00060 * $4000 and that the SWI handler is always in the 00070 * logical address space 00080 ************************************************* 00090 * Installation routine: 00100 SETUP LEAX SWI,PCR point to the SWI handler 00110 LDA #$7E JMP operation code 00120 STA $FEFA * make a JMP SWI instruction 00130 STX $FEFB * at SWI vector 00140 RTS return to calling routine 00150 00160 * the acutal SWI handler 00170 SWI ANDCC #$AF enable interrupts to be polite 00180 LDX 10,S get PC 00190 LDB ,X+ get the next byte in the program 00200 STX 10,S bump PC on the stack 00210 LEAX SWITAB,PCR point X to the jump table 00220 CLRA * calculate offset in table 00230 LSLB * 00240 ROLA * 00250 LDD D,X get offset to routine 00260 LEAX D,X get the exact address of the routine 00270 PSHS X store on the stack 00280 LDD 3,S * get back registers 00290 LDX 6,S * 00300 JSR [,S++] call the subroutine 00310 STD 1,S store D 00320 STX 4,S store X 00330 STY 6,S store Y 00340 STU 8,S store U 00350 RTI return to the calling routine 00360 * SWI jump table (must have 256 2-byte entries) 00370 SWITAB FDB SWI00-SWITAB 00380 FDB SWI01-SWITAB 00390 FDB SWI02-SWITAB 00400 FDB SWI03-SWITAB 00410 FDB SWI04-SWITAB 00420 FDB SWI05-SWITAB 00430 FDB SWI06-SWITAB 00440 FDB SWI07-SWITAB 00450 FDB SWI08-SWITAB 00460 FDB SWI09-SWITAB 00470 FDB SWI0A-SWITAB 00480 FDB SWI0B-SWITAB 00490 FDB SWI0C-SWITAB 00500 FDB SWI0D-SWITAB 00510 FDB SWI0E-SWITAB 00520 FDB SWI0F-SWITAB 00530 FDB SWI10-SWITAB 00540 FDB SWI11-SWITAB 00550 FDB SWI12-SWITAB 00560 FDB SWI13-SWITAB 00570 FDB NULL-SWITAB 00580 FDB NULL-SWITAB 00590 FDB NULL-SWITAB 00600 FDB NULL-SWITAB 00610 FDB NULL-SWITAB 00620 FDB NULL-SWITAB 00630 FDB NULL-SWITAB 00640 FDB NULL-SWITAB 00650 FDB NULL-SWITAB 00660 FDB NULL-SWITAB 00670 FDB NULL-SWITAB 00680 FDB NULL-SWITAB 00690 FDB NULL-SWITAB 00700 FDB NULL-SWITAB 00710 FDB NULL-SWITAB 00720 FDB NULL-SWITAB 00730 FDB NULL-SWITAB 00740 FDB NULL-SWITAB 00750 FDB NULL-SWITAB 00760 FDB NULL-SWITAB 00770 FDB NULL-SWITAB 00780 FDB NULL-SWITAB 00790 FDB NULL-SWITAB 00800 FDB NULL-SWITAB 00810 FDB NULL-SWITAB 00820 FDB NULL-SWITAB 00830 FDB NULL-SWITAB 00840 FDB NULL-SWITAB 00850 FDB NULL-SWITAB 00860 FDB NULL-SWITAB 00870 FDB NULL-SWITAB 00880 FDB NULL-SWITAB 00890 FDB NULL-SWITAB 00900 FDB NULL-SWITAB 00910 FDB NULL-SWITAB 00920 FDB NULL-SWITAB 00930 FDB NULL-SWITAB 00940 FDB NULL-SWITAB 00950 FDB NULL-SWITAB 00960 FDB NULL-SWITAB 00970 FDB NULL-SWITAB 00980 FDB NULL-SWITAB 00990 FDB NULL-SWITAB 01000 FDB NULL-SWITAB 01010 FDB NULL-SWITAB 01020 FDB NULL-SWITAB 01030 FDB NULL-SWITAB 01040 FDB NULL-SWITAB 01050 FDB NULL-SWITAB 01060 FDB NULL-SWITAB 01070 FDB NULL-SWITAB 01080 FDB NULL-SWITAB 01090 FDB NULL-SWITAB 01100 FDB NULL-SWITAB 01110 FDB NULL-SWITAB 01120 FDB NULL-SWITAB 01130 FDB NULL-SWITAB 01140 FDB NULL-SWITAB 01150 FDB NULL-SWITAB 01160 FDB NULL-SWITAB 01170 FDB NULL-SWITAB 01180 FDB NULL-SWITAB 01190 FDB NULL-SWITAB 01200 FDB NULL-SWITAB 01210 FDB NULL-SWITAB 01220 FDB NULL-SWITAB 01230 FDB NULL-SWITAB 01240 FDB NULL-SWITAB 01250 FDB NULL-SWITAB 01260 FDB NULL-SWITAB 01270 FDB NULL-SWITAB 01280 FDB NULL-SWITAB 01290 FDB NULL-SWITAB 01300 FDB NULL-SWITAB 01310 FDB NULL-SWITAB 01320 FDB NULL-SWITAB 01330 FDB NULL-SWITAB 01340 FDB NULL-SWITAB 01350 FDB NULL-SWITAB 01360 FDB NULL-SWITAB 01370 FDB NULL-SWITAB 01380 FDB NULL-SWITAB 01390 FDB NULL-SWITAB 01400 FDB NULL-SWITAB 01410 FDB NULL-SWITAB 01420 FDB NULL-SWITAB 01430 FDB NULL-SWITAB 01440 FDB NULL-SWITAB 01450 FDB NULL-SWITAB 01460 FDB NULL-SWITAB 01470 FDB NULL-SWITAB 01480 FDB NULL-SWITAB 01490 FDB NULL-SWITAB 01500 FDB NULL-SWITAB 01510 FDB NULL-SWITAB 01520 FDB NULL-SWITAB 01530 FDB NULL-SWITAB 01540 FDB NULL-SWITAB 01550 FDB NULL-SWITAB 01560 FDB NULL-SWITAB 01570 FDB NULL-SWITAB 01580 FDB NULL-SWITAB 01590 FDB NULL-SWITAB 01600 FDB NULL-SWITAB 01610 FDB NULL-SWITAB 01620 FDB NULL-SWITAB 01630 FDB NULL-SWITAB 01640 FDB NULL-SWITAB 01650 FDB NULL-SWITAB 01660 FDB NULL-SWITAB 01670 FDB NULL-SWITAB 01680 FDB NULL-SWITAB 01690 FDB NULL-SWITAB 01700 FDB NULL-SWITAB 01710 FDB NULL-SWITAB 01720 FDB NULL-SWITAB 01730 FDB NULL-SWITAB 01740 FDB NULL-SWITAB 01750 FDB NULL-SWITAB 01760 FDB NULL-SWITAB 01770 FDB NULL-SWITAB 01780 FDB NULL-SWITAB 01790 FDB NULL-SWITAB 01800 FDB NULL-SWITAB 01810 FDB NULL-SWITAB 01820 FDB NULL-SWITAB 01830 FDB NULL-SWITAB 01840 FDB NULL-SWITAB 01850 FDB NULL-SWITAB 01860 FDB NULL-SWITAB 01870 FDB NULL-SWITAB 01880 FDB NULL-SWITAB 01890 FDB NULL-SWITAB 01900 FDB NULL-SWITAB 01910 FDB NULL-SWITAB 01920 FDB NULL-SWITAB 01930 FDB NULL-SWITAB 01940 FDB NULL-SWITAB 01950 FDB NULL-SWITAB 01960 FDB NULL-SWITAB 01970 FDB NULL-SWITAB 01980 FDB NULL-SWITAB 01990 FDB NULL-SWITAB 02000 FDB NULL-SWITAB 02010 FDB NULL-SWITAB 02020 FDB NULL-SWITAB 02030 FDB NULL-SWITAB 02040 FDB NULL-SWITAB 02050 FDB NULL-SWITAB 02060 FDB NULL-SWITAB 02070 FDB NULL-SWITAB 02080 FDB NULL-SWITAB 02090 FDB NULL-SWITAB 02100 FDB NULL-SWITAB 02110 FDB NULL-SWITAB 02120 FDB NULL-SWITAB 02130 FDB NULL-SWITAB 02140 FDB NULL-SWITAB 02150 FDB NULL-SWITAB 02160 FDB NULL-SWITAB 02170 FDB NULL-SWITAB 02180 FDB NULL-SWITAB 02190 FDB NULL-SWITAB 02200 FDB NULL-SWITAB 02210 FDB NULL-SWITAB 02220 FDB NULL-SWITAB 02230 FDB NULL-SWITAB 02240 FDB NULL-SWITAB 02250 FDB NULL-SWITAB 02260 FDB NULL-SWITAB 02270 FDB NULL-SWITAB 02280 FDB NULL-SWITAB 02290 FDB NULL-SWITAB 02300 FDB NULL-SWITAB 02310 FDB NULL-SWITAB 02320 FDB NULL-SWITAB 02330 FDB NULL-SWITAB 02340 FDB NULL-SWITAB 02350 FDB NULL-SWITAB 02360 FDB NULL-SWITAB 02370 FDB NULL-SWITAB 02380 FDB NULL-SWITAB 02390 FDB NULL-SWITAB 02400 FDB NULL-SWITAB 02410 FDB NULL-SWITAB 02420 FDB NULL-SWITAB 02430 FDB NULL-SWITAB 02440 FDB NULL-SWITAB 02450 FDB NULL-SWITAB 02460 FDB NULL-SWITAB 02470 FDB NULL-SWITAB 02480 FDB NULL-SWITAB 02490 FDB NULL-SWITAB 02500 FDB NULL-SWITAB 02510 FDB NULL-SWITAB 02520 FDB NULL-SWITAB 02530 FDB NULL-SWITAB 02540 FDB NULL-SWITAB 02550 FDB NULL-SWITAB 02560 FDB NULL-SWITAB 02570 FDB NULL-SWITAB 02580 FDB NULL-SWITAB 02590 FDB NULL-SWITAB 02600 FDB NULL-SWITAB 02610 FDB NULL-SWITAB 02620 FDB NULL-SWITAB 02630 FDB NULL-SWITAB 02640 FDB NULL-SWITAB 02650 FDB NULL-SWITAB 02660 FDB NULL-SWITAB 02670 FDB NULL-SWITAB 02680 FDB NULL-SWITAB 02690 FDB NULL-SWITAB 02700 FDB NULL-SWITAB 02710 FDB NULL-SWITAB 02720 FDB NULL-SWITAB 02730 FDB NULL-SWITAB 02740 FDB NULL-SWITAB 02750 FDB NULL-SWITAB 02760 FDB NULL-SWITAB 02770 FDB NULL-SWITAB 02780 FDB NULL-SWITAB 02790 FDB NULL-SWITAB 02800 FDB NULL-SWITAB 02810 FDB NULL-SWITAB 02820 FDB NULL-SWITAB 02830 FDB NULL-SWITAB 02840 FDB NULL-SWITAB 02850 FDB NULL-SWITAB 02860 FDB NULL-SWITAB 02870 FDB NULL-SWITAB 02880 FDB NULL-SWITAB 02890 FDB NULL-SWITAB 02900 FDB NULL-SWITAB 02910 FDB NULL-SWITAB 02920 FDB NULL-SWITAB 02930 * end of SWI jump table 02940 * NULL command: 02950 NULL RTS WITAB 02870 FDB NULL-SWITAB 02880 FDџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ00001 ************************************************* 00002 * Macro Library for the SWI routines 00003 * Use the "INCLUDE" directive in Disk EDTASM to 00004 * use this library 00005 * 00006 * This library is only useful if the SWI routines 00007 * are installed prior to actually executing the 00008 * code generated from using these marcros 00009 ************************************************* 00010 * Constant addresses are specified as marco arguments 00011 * as follows: 00012 * The upper 3 bits followed by a comma followed by 00013 * the lower 16 bits, as follows: 00014 * $7DC13 would be $07,$DC13 00015 * and this is specified by ah,al 00016 00017 * Convert linear address in A,X to block/offset 00018 * in B,Y 00019 * CLABO 00020 CLABO MACRO 00021 SWI 00022 FCB $00 00023 ENDM 00024 00025 * Convert block/offset in B,Y to linar address 00026 * in A,X 00027 * CBOLA 00028 CBOLA MACRO 00029 SWI 00030 FCB $01 00031 ENDM 00032 00033 * clear memory - constant boundaries 00034 * CLMCLA LOWah,LOWal,HIGHah,HIGHal 00035 CLMCLA MACRO 00036 SWI 00037 FCB $02 00038 FCB \0 00039 FDB \1 00040 FCB \2 00041 FDB \3 00042 ENDM 00043 00044 * clear memory - register boundaries, linear addresses 00045 * low in A,X, high in B,Y 00046 * CLRCLA 00047 CLRCLA MACRO 00048 SWI 00049 FCB $03 00050 ENDM 00051 00052 * clear memory - constant block/offset boundaries 00053 * CLMCBO LOWblk,LOWoff,HIGHblk,HIGHoff 00054 CLMCBO MACRO 00055 SWI 00056 FCB $04 00057 FCB \0 00058 FDB \1 00059 FCB \2 00060 FDB \3 00061 ENDM 00062 00063 * clear memory - register block/offset boundaries 00064 * lowin A,X, high in B,Y 00065 * CLMRBO 00066 CLMRBO MACRO 00067 SWI 00068 FCB $05 00069 ENDM 00070 00071 * set memory - constant linear boundaries, constant value 00072 * SMCLAC LOWah,LOWal,HIGHah,HIGHal,Value 00073 SMCLAC MACRO 00074 SWI 00075 FCB $06 00076 FCB \0 00077 FDB \1 00078 FCB \2 00079 FDB \3 00080 FCB \4 00081 ENDM 00082 00083 * set memory - constant linear boundaries, value in B 00084 * SMCLAR LOWah,LOWal,HIGHah,HIGHal 00085 SMCLAR MACRO 00086 SWI 00087 FCB $07 00088 FCB \0 00089 FDB \1 00090 FCB \2 00091 FDB \3 00092 ENDM 00093 00094 * set memory - linear boundaries (from UH,X to UL,Y), constant value 00095 * SMRLAC Value 00096 SMRLAC MACRO 00097 SWI 00098 FCB $08 00099 FCB \0 00100 ENDM 00101 00102 * set memory - linear boundaries (from UH,X to UL,Y), value in B 00103 * SMRLAR 00104 SMRLAR MACRO 00105 SWI 00106 FCB $09 00107 ENDM 00108 00109 * read memory to A, constant linear address 00110 * LDACLA ah,al 00111 LDACLA MACRO 00112 SWI 00113 FCB $0A 00114 FCB \0 00115 FDB \1 00116 ENDM 00117 00118 * read memory to A, register linear address (B,Y) 00119 * LDARLA 00120 LDARLA MACRO 00121 SWI 00122 FCB $0B 00123 ENDM 00124 00125 * read memory to A, constant block/offset 00126 * LDACBO blk,off 00127 LDACBO MACRO 00128 SWI 00129 FCB $0C 00130 FCB \0 00131 FDB \1 00132 ENDM 00133 00134 * read memory to A, register block/offset (B,Y) 00135 * LDARBO 00136 LDARBO MACRO 00137 SWI 00138 FCB $0D 00139 ENDM 00140 00141 * write A to memory, constant linear address 00142 * STACLA ah,al 00143 STACLA MACRO 00144 SWI 00145 FCB $0E 00146 FCB \0 00147 FDB \1 00148 ENDM 00149 00150 * write A to memory, register linear address (B,Y) 00151 * STARLA 00152 STARLA MACRO 00153 SWI 00154 FCB $0F 00155 ENDM 00156 00157 * write A to memory, constant block/offset 00158 * STACBO blk.off 00159 STACBO MACRO 00160 SWI 00161 FCB $10 00162 FCB \0 00163 FDB \1 00164 ENDM 00165 00166 * write A to memory, register block/offset (B,Y) 00167 * STARBO 00168 STARBO MACRO 00169 SWI 00170 FCB $11 00171 ENDM 00172 00173 * convert a pair of linear addresses to block/offsets 00174 * pair is (A,X & B,Y), leave in original locations 00175 * CPLABO 00176 CPLABO MACRO 00177 SWI 00178 FCB $12 00179 ENDM 00180 00181 * convert a pair of block/offsets to linear addresses 00182 * pair is(A,X & B,Y), leave in original locations 00183 * CPBOLA 00184 CPBOLA MACRO 00185 SWI 00186 FCB $13 00187 ENDM 00188 00189 * set memory, constant boundaries (block/offset), constant value 00190 * SMCBOC LOWah,LOWal,HIGHah,HIGHal,Value 00191 SMCBOC MACRO 00192 SWI 00193 FCB $14 00194 FCB \0 00195 FDB \1 00196 FCB \2 00197 FDB \3 00198 FCB \4 00199 ENDM 00200 00201 * set memory, constant boundaries (block/offset), value in B 00202 * SMCBOR LOWah,LOWar,HIGHah,HIGHal 00203 SMCBOR MACRO 00204 SWI 00205 FCB $15 00206 FCB \0 00207 FDB \1 00208 FCB \2 00209 FDB \3 00210 ENDM 00211 00212 * set memory, register boundaries (UH,X, UL,Y), block/offset, 00213 * constant value 00214 * SMRBOC Value 00215 SMRBOC MACRO 00216 SWI 00217 FCB $16 00218 FCB \0 00219 ENDM 00220 00221 * set memory, register boundaries (UH,X, UL,Y), block/offset, 00222 * value in B 00223 * SMRBOR 00224 SMRBOR MACRO 00225 SWI 00226 FCB $17 00227 ENDM 00228 00229 * END OF MACRO DEFINITIONS \0 00219 ENDM 00220 00221 * set memory, register boundaries (UH,X, UL,Y), block/offset, 00222 * value in B 00223 * SMRBOR 00224 SMRBOR MACRO 00225 SWI 00226 FCB $17 00227 ENDM 00228 00229 * END OF MACRO DEFINITIONSџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџASSEMBLY LANGUAGE PROGRAMMING PART 10: DOING SOMETHING WITH THE CODE LIBRARY Last time, I presented the final code for the arbitrary memory locations on the CoCo. Now I will actually present some code which may prove marginally useful. One might do any number of things from using the extra memory as a temporary location to store data to using it as a main storage for something like a word processor. Now, the word processor idea is rather complex, so we will not be doing anything quite like that in this series, at least not for some time. What we will do, however, is create a program that will take an arbitrary memory block in the BASIC 64K memory map and store it into the "extended" memory. This might give you some interesting ideas on how to interface with other assembly routines. The method I'm going to use here is actually a bit of a hack, but it is rather easy to use. Essentially it will work by doing an EXEC command in BASIC. That leaves the question of how to get the parameters into it. The most common method of so doing would involve using POKE to put the parameters into a known memory location. I don't like this method for two reasons. One is that it is ugly and values that need more than 8 bits are more complex to put into the parameter block. The other reason is that it requires several commands to do one essentially atomic task. So how are we going to get the parameters then? My method involves using some rather interesting features in the BASIC interpreter that comes with the CoCo. We will pass the parameters after the EXEC command. Essentially, our syntax will look as follows: EXEC

:,, Note the ":" after the address. This is necessary so the address is interpreted correctly. The address will, of course, be the location of our subroutine. There will need to be two subroutines to be useful; one to store, one to load. Note that this method of parameter passing requires neither pokes nor modification of the BASIC interpreter. We will also be able to use variables with the correct coding of the subroutine. This gives us much versatility with relative ease of use. It should be noted at this point that the only reason using SWI subroutine calling will work here is that BASIC does not use the SWI instruction at all. Initially, I will present the code to copy TO extended memory. It should be relatively obvious how to reverse the process after you look at this installment's code. As noted last time, this is NOT the most efficient method of so doing. It should, however, work. You can, if you wish, use the priciples presented so far to build a far more efficient bit of code for doing this. As a side note - the block size is limited to 65535 bytes due to the 16 bit size of the counter we will use. Note that unlike previously, this code is known to assemble. It also appears to work on very unimaginative tests. I did find one typo in the library code when I assebled this, however. It was in line 2500 of PART10B.TXT (PART9B.TXT last time). Until next time, keep hacking. ouslџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ;Б {ŽэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫўмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫяэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмОмОмОмПм§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмОмОмОпОмПмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫяЫэЫямОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫ§ЫяэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫямОмОмОмОмОмОмОмОмОмОмОмОмўп?ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫямОмОмОмОмОмОмОмОмОмОмОмП?эЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫўмОмОмОмОмОмОмОмОмОмОмОпэѓўмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫ§Ыя?мОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэћэЯ?ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмОќОп?ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмОмПмОѓќОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫўмѓћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫямОмОмОмОмОмОмОмОмОмОмћэѓћэЫэЫэЫэЫэЫэЫэЫэЫэЫэўмОмОмОмОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэћя?ОмОмОмОмОмОмОмОмО№ўмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќП?ОмОмОмОмОмОмОмОпЫэЫэЫэЫэЫэЫўмОмОмОмОмОмОмОмОмОмОќѓћэЫэЫэЫэЫэЫэЫэЫ№ћэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмО§ѓћэЫэЫэЫэЫэЫэЫэ№ўмОмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫѓћэЫэЫэЫэЫэЫэЫ№§ЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмОмП?ОмОмОмОмОмОпЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмОмѓћэЫэЫэЫэЫэЫ№ћэЫэЫэЫямОмОмОмОмОмОмОмОмОмОмѓћэЫэЫэЫэЫэЯОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓћэЫэЫэЫэЫяэЫэЫэЫўмОмОмОмОмОмОмОмОмОмОп?ОмОмОмОмПэЫэЫэЫўмОмОмОмОмОмОмОмОмОмОѓћэЫэЫэЫэЯэЫэЫэЯОмОмОмОмОмОмОмОмОмОмП?ОмОмОмО№ўмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?ОмОмОмПэЫэЫэќОмОмОмОмОмОмОмОмОмОмѓќОмОмОм№€ўмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓќОмОмОм№€ўмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ЫэЫэЫэ№€ўмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ЫэЫэЫяэЫэЫўмОмОмОмОмОмОмОмОмОмП?мОмОмПэЫэЫўмОмОмОмОмОмОмОмОмОмП?мОмОмПОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?мОмОм№€ћэЫэЯОмОмОмОмОмОмОмОмОмОмѓўмОмОпОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓўмОмОпЫэЫэќОмОмОмОмОмОмОмОмОмОп?эЫэЫяЫэЫямОмОмОмОмОмОмОмОмОмОѓћэЫэЫямОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ОмОмПмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫѓћэЫэЫ№ўмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫѓќОмОм№ўмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?ЫэЫэЯОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?мОмОпОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓ§ЫэЫэ№€ќОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓўмОмОпмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?эЫэЫяэЫэЫямОмОмОмОмОмОмОмОмОмОѓћэЫэЫяэЫэЫўмОмОмОмОмОмОмОмОмОмОѓћэЫэЫяОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫѓўмОмО№€ќОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫѓўмОмПЫэЫэЯОмОмОмОмОмОмОмОмОмОмѓўмОмПмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?эЫэЫ№€ўмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?ОмОмПОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓћэЫэЫ№ќОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓќОмОм№ќОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓ№ќОмОм№§ЫэЫэЫўмОмОмОмОмОмОмОмОмОмОѓ№ќОмОм№ўмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ЫэЫэЯОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя??ЫэЫэЯЫэЫэЫэќОмОмОмОмОмОмОмОмОмОмП?ЫэЫэЯмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫѓ№ќОмОм№ўмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫѓ№ќОмОм№ћэЫэЫэЫямОмОмОмОмОмОмОмОмОмОмП?мОмОм№ќОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?мОмОм№§ЫэЫэЫэЫўмОмОмОмОмОмОмОмОмОмОмѓ№ўмОмОм№ўмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?эЫэЫэЯОмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?ОмОмОм№ќОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓ№ћэЫэЫэЫ№ўмОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓ№ќОмОмОмПОмОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓ№§ЫэЫэЫэЫ№ќОмОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓ№§ЫэЫэЫэЫяэЫэЫэЫэЫэЫўмОмОмОмОмОмОмОмОмОмОмОѓ№ўмОмОмОмОмО№ћэЫэЫэЫэЫэЫўмОмОмОмОмОмОмОмОмОмОмПп?ЫэЫэЫэЫэЫямОмОмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫўп??ОмОмОмОмПОмОмОмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОѓ№ѓћэЫэЫэЫэЫ№§ЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмОмОпОѓ№ѓћэЫэЫэЫэЯОмОмОмОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОѓ№ѓћэЫэЫэЫэЯэЫэЫэЫэЫэЫэЫэЫямОмОмОмОмОмОмОмОмОмОмОмП??ЫэЫэЫэЫэ№§ЯмОмОмОмОмОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫѓ№ѓќОмОмОмОпмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ??мОмОмОмО№ўмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓ№ѓ§ЫэЫэЫэЫ№ўмОмОмОмОмОмОмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓўмОмОмОмПОмОмОмОмОмОмОмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ОмОмОмОм№ќОмОмОмОмОмОмОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ЫэЫэЫэЫэЯЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмОмОмОѓўмОмОмОмОпмОмОмОмОмОмОмОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ОмОмОмОмО№ўмОмОмОмОмОмОмОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ŸЫэЫэЫэЫэЫяОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓљќОмОмОмОмПЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫўмОмОмОмОмОмОмОмОмОмОмОмОмѓљќОмОмОмОм№ќОмОмОмОмОмОмОмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?ŸОмОмОмОпмОмОмОмОмОмОмОмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓљћэЫэЫэЫэ№ўмОмОмОмОмОмОмОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓљћэЫэЫэЫяОмОмОмОмОмОмОмОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ŸэЫэЫэЫ№§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫямОмОмОмОмОмОмОмОмОмОмОмОмОѓљўмОмОм№ўмОмОмОмОмОмОмОмОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ŸэЫэЫэ№ћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫўмОмОмОмОмОмОмОмОмОмОмОмОмП?ŸэЫэЫяЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫўмОмОмОмОмОмОмОмОмОмОмОмОмП?ŸэЫэЫ№ўмОмОмОмОмОмОмОмОмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫѓљўмОм№ћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмОмОмОмѓљћэЫэ№§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмОмОмОмОмѓљћэЯОмОмОмОмОмОмОмОмОмОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?ŸŸЫэЫўмОмОмОмОмОмОмОмОмОмОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓљ№љ§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫямОмОмОмОмОмОмОмОмОмОмОмОмОп?ŸŸэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫўмОмОмОмОмОмОмОмОмОмОмОмОмОп?ŸŸОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ŸЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмОмОмОмОѓљ№ќОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫѓљ№ќОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫѓљ№§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмОмОмОмОмП?ŸмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?ŸэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫямОмОмОмОмОмОмОмОмОмОмОмОмОмѓљ№ўмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?ŸОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэѓљ№ћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмОмОмОмОп?ŸЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмОмОмОмОп?ŸЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмОмОмОмОмОѓљ№§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмОмОмОмОмОѓљ№§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫямОмОмОмОмОмОмОмОмОмОмОмОмОмП?ŸЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫямОмОмОмОмОмОмОмОмОмОмОмОмОмП?ŸŸОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?ŸŸОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?ŸŸЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмОмОмОмОп?ŸŸЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмОмОмОмОп?ŸŸмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ŸэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмОмОмОмОмП?ŸОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?ŸмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэёѓљўмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ŸОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫёѓљ§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмОмОмОмёѓљўмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэёѓљќОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?эЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫямОмОмОмОмОмОмОмОмОмОмОмОп?ОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫёѓќОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмОмОмёѓ§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмОмОмёѓ§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмОмОмОмёѓ§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмОмОмОп?ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫямОмОмОмОмОмОмОмОмОмОмОмОёѓёћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫямОмОмОмОмОмОмОмОмОмОмОмП?эЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫўмОмОмОмОмОмОмОмОмОмОмОмП?мОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?мОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэёѓё§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмОмОёѓё§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмОмОмОёѓё§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмОмОмП?мОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?эЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫямОмОмОмОмОмОмОмОмОмОмОп?эЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫўмОмОмОмОмОмОмОмОмОмОмОёѓёўмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯ?эЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмОп?эЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмОёѓёўмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫёѓёћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмОмёѓёћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫямОмОмОмОмОмОмОмОмОмОп?ОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ОёћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫўмОмОмОмОмОмОмОмОмОмОёѓёћэЯОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫёѓёћэЫяЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОмёѓёќОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫэёѓёќОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЫя?ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмОёѓёќОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫёѓё§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫямОмОмОмОмОмОмОмОмОмёѓё§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫўмОмОмОмОмОмОмОмОмОп?мОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэё§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмОё§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмёўмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЯэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫямОмОмОмОмОмОмОмОмОпОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫяОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмПэЫэЫэЫэЫэЫэЫэЫэЫэЫяОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫё№ёћэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЯОмОмОмОмОмОмОмОмОмПОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОпЫэЫэЫэЫэЫэЫэЫэЫэЫэЯЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмёќОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмО‹ямОмОмОмОмОмОмОмОмОпё_ёЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫŽШО§ЫэЫэЫэЫэЫэЫэЫэЫэЫэёOёїёЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫŽŒПэЫэЫэЫэЫэЫэЫэЫэЫэЫяё_ё§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэŒ‹ŽиЫўмОмОмОмОмОмОмОмОмОёOёїёмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОиЫЯОмОмОмОмОмОмОмОмОмПё_ёмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмћэЫэЫэЫэЫэЫэЫэЫэЫэЫё§ЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэЫэќОмОмОмОмОмОмОмОмОмёўмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОмОп€UjЊЋUPUjЊЦŠЊЋU5SUjЊЎЊЋUVUjЊЁЊЋU!UjЊАБjЊЋUdUjЊjЊЋUV UjЊ­ jЊЋU[RР•UjЊЎЈР&ЊРЊЋUPР U@ UjЊЖ РЊЈ  ЊЋU@РеU„еUjЊЖ€jЊЌ@ЊЋUQЕUb#UjЊВZЊЋjЊЋUJ-UT€•UjЊВЊВ&ЊЋU] UH UjЊК€Њ ЊЋUhUV@5UjЊАЊЉZЊЋUPUR-UjЊръЊЄ @€ЊЋU ЕUh    UjЊ jЊа"Ђ@ Ј"! ЊЋU UP#E IU&–€UjЊ :Њ #J J U*ЈЊЋU -U T ЊЅR‘еUjЊ ЊЋ T (ДЊR‚€jЋUРU@R•@(Д*UеUjЊРЊЋ@Rˆ€QT*U"[@ъЋUР U@@€еUjЊРЊЋ@ъЋUР U@еUjЊРЊЋ@ъЋUРU@еUjЊ ЊЋ@ъЋU U@P@UjЊ ЊЋ@ @P€jЋU U  @ €‚еUjЊ Њ "Ђ@H„ Ё ‘’ƒЊЋUPUP#E )UJЄ"ЊЌjЉj…UjЊа!ЊА#J  ЉTЊЅ-T­*…ЊЋUPUpT * ЉTЊUЌUjЊаЊЈT RЈ)UJUU- ЊЋUPUXR•@U*ЊUJ•UP UjЊА*ЊДRˆ€UH„%Ђ"%ЊЋUhUZ-UjЊЈЊЎ:ЊЋUX€]UUjЊД ŠЊЋjЊЋUT€UV€ЕUjЊ ЊЋ@jЊЋUZD”еU еUjЊ€ jЊаЊЋU €(еUh UjЊ­PЊДЊЋUV€( uUZ-UjЊŒ jЊЌ€šЊЋUIuUV@UjЊж†€(‘jЊ ЊЋUиІ@0‘uUH UjЊИV 0@ŠjЊДЊЋUH"`0 €ЕUYMUjЊЈ 00 €ъЊЌ *ЊЋUh0 €еU€ UjЊЄ0@€jЊА"ЊЋUZ0 UpUjЊн(  ЊАЊЋUtЁ€5UpCUjЊZЊА*ЊЋUе@ 5UpˆUjЊ‰:ЊА№ЊЋUW€(5UpеUjЊ­ :ЊАъЊЋUVD@UPеUjЊЎ ЊрjЊЋU@U`еUjЊ€ЊрЊЋU@U UjЊ @ ЊРЊЋUD€ 5UР UjЊЈ€@ЊЋ@ЊЋUU€UjЊЋ€Њ€*ЊЋU€HЕUWUjЊЋ€ :Њ­*ЊЋU€UVеUjЊРЊЊЋUР(еUTUjЊРPъЊЈJЊЋUР ЕUP5UjЊрРjЊ ЊЋU`РuV@CUjЊр@jЁ*ЊЋUp€†ЕXUjЊА€$‚jЊЋUp€\Ф@еUjЊИЌС ЊЋUXЬРUjЊИЬР ЊЋUXЬР UjЊЌЬР ЊЋU\ЬР UjЊЌЌР ЊЋUVlР UjЊЎ\Р ЊЋUV€$Р UjЊЋ€Р ЊЋUW@Р UjЊЋР Р ЊЋUW FР UjЊЋ`&Р ЊЋUWPŽР ЅUjЊЋ("Р $ ЊЋUW€Р PUjЊЋ Р@ЊЋUWР UjЊ­€&ЊЋU_ РUjЊК€HЊЋUq@UjЊр`€ЊЋUР0 MUjЊЋ€D*ЊЋUW  !UjЊЎ@ЊЋUT€ UjЊЈ ЊЋUt0 UjЊЊЋUе UjЊЋ–€ЊЋUЋ € UjЊеPР ЊЋUйh` 5UjЊЪВ( &ЊЋUƒ5 UjЊЋV@ *ЊЋUWj € -UjЊЋ*аР ЊЋUV d` UjЊЎj0 6ЊЋU\­cUjЊЌж@УЊЋU`V еUjЊШШ€€ъЊЋU € TРеUjЊ@@Z `jЊЋU Ќ€00 5UjЊP­@P0:ЊЋUT(5 Р 0$UjЊЈЪ€0p@ЊЋUP в0гB UjЊр\€1žЊЊЋU €h€cUSUjЊЋ@€`РfЊЋU€@`f еUjЊ€Р0l ЊЋUW x еUjЊ­` P ъЊЋUVP uUjЊ0РjЊЋU\(@5UjЊЌРЊЋUTUjЊИ ЊЋUX  UjЊИ #ЊЋUh 'UjЊА#ЊЋUp UjЊА#ЊЋUp#еUjЊА ъЊЋUp €uUW•jЊАujЊЋћUpw€ €5UWнjЊАw€ €:ЊЛћUpw€ €U[•jЊАu €ЊЋUp Р UjЊА РЊЋ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§џџџџџџџџїџџџџџџџџПџџџџџџћџџџџџџћџџџџџџПџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџјџџџџёџџџџРџџџј?џџџ№џџџџРџџџџџџџј?џџџрџџџџџџџџџџџџџџџџџџџџџџџџџџџџПџџџрџџџРџџџџ€џџџџ€џџџџџџџќџџџџ€џџџ№џџџрџџџџџџџџџџџџџџџџџџџџџџџпџџџўџџџџ§џџџђџџџџђџџџџљџџџќOџџџџ‰џџџџќ'џџџџ№ŸџџџџТ?џџџџфџџџџџЩџџџџџчџџџџџЯџџџџџћџџџџџџџџџџџџџџџџџџџџџџџџпџџџџяџџџџџџпџџџџџџїџџџџџџћџџџџџџќџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџїџџџџџџџПџџџџџџўџџџџџџџџџџџџџџџуџџџџџџџќ?џџџџџџџ‡џџџџџџџќ?џџџџџџџсџџџџџџџџ‡џџџџџџџќ?џџџџџџџсџџџџџџџџ‡џџџџџџџќџџџџџџџуџџџџџџџџџџџџџџџёџџџџџџџџџџџџџџџќџџџџџџџЧџџџџџџџќџџџџџџџџŸџџџџџџџѓџџџџџџџўџџџџџџџџџџџџџџџПџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџпџџџџџџџїџџџџџџџўџџџџџџџЯџџџџџџџќџџџџџџџџЯџџџџџџџќџџџџџџџЧџџџџџџџќџџџџџџџџџџџџџџуџџџџџџџёџџџџџџџјпџџџџџџў7џџџџџџџџџџџџџџЦџџџџџџџуџџџџџџсПџџџџџџ№oџџџџџџј7џџџџџџј7џџџџџџј7џџџџџџј7џџџџџџј3џџџџџџјoџџџџџџјgџџџџџџў3џџџџџџџ3џџџџџџџgџџџџџџўЯџџџџџџћ?џџџџџџэџџџџџџџoџџџџџџћџџџџџџџџџџџџёџџџџџџўџџџџџџџџџџџџуџџџџџџ§ПџџџџџџЛџџџџџџћџџџџџџџџџџџџЗџџџџџџіџџџџџў?џџџџџџџџџџџџџŸџџџџџџпЧџџџџџџџуџџџџџџ§ќџџџџџџќџџџџџџјџџџџџџјџџџџј0Рр0р`0№ј0иœ0ŒŒ0ŒŽ0††˜0†œ†0‡0 А˜А˜А8и0№0иПј№ПРиПќ№?ўиПќ№Лќјћў№ПєxџџpБРx№pАx№pАx№pА>иџП№ППјПџ№ПџиПџ№ЗџиЗџ№Пљиџџ№№и№№а˜№№јиј№јипјАпx˜лXАлx˜лќА[ќћь0ћьџь0џьџю0чу0cу 0›ѓ ›30›3x›3p0Ÿ3`Ÿ3`0#`Ž#р0Рcр€cР0€cРуР0ƒуРЧgР0ЮcРЬcР0Ь6€м7Р0и7Ри3€0и?€и€0и€и0иџ0ўžџИ0џјџ№0џ№џр0џрџр0џрџр0џрџр0џрџр0џрпр0прп№0п№п№0п№п№0л№п№0н№ь`0ь`ю`0ю`цр0чРуР0ё€Б€0Б€Б€0Б€ё€0љ€й€0йРйР0йРљр0§рэр0эрэр0эр}р0§№џ№0џ№џ№0џ№џ№0џ№џ№0џ№џ№0џ№ћР0урcР0 cр cр0 cрcр0 cр aр0 `р |р0 tр |р0 |р | 0 |  } 0 № c№0 c№x _№p №x №p №x _№0 cp cp0§Ы?/'4%6">>:jЋ0ŠЋr9U{Žџ№џ№0џ№ћР0урcР0 cр cр0 cрcр0 cр aр0 `р |р0 џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџА Fааай аай   љ № ŸŸ љ № №љ №йŸ № №А АДй M@АM ай @K I а§айадаI  @” №й ай а§ ап @” ”й ап  ай @ №й й й ай й §  ап   й @  №§ @   №§   лапапапа№аа@а˜##B2Eдч48:29#tTdT5E2ЃCOMENT€€РШ 0b!€0$ЦиРРРРr€$@ Ўр0 0ШрpЧ„@`3P6wX ?р€ иРаР€Рр@€ph`Žќ ИєМ ю?€оz8і€яuРюрм8ш€№И|p8><~рŸ€=РЯјpчРc€€€їsрр9РРм€p0И`p€р8 @Рp8p€ @0У€0У0УТ €€€џрџўџрџў€€РpdьXmџџџџџѕ§џяџя~§џїћўћџѓПџнџџџћї§ћўї0pppxpppxx0x<p<pPppp<јјјќ№ќќќјќмммЮŽžЮŽЮžЯŽчџпУииимиќppppЂЈ`а?6<48"(???џAN0aNBd)Fџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ Fїаааааай аай   љ № ŸŸ љ № №љ №йŸ № № й № ай а А§ ай а@й @й ай ай § а й № а  №@ а§  а №й а ай а§  а № ай ай а ай а №§  а  а” №§  А§ №§ №§ №§  ”да”д Œ€2124#$]NsCƒЃ#’7EFECTS*94єдTх@ €€ЕBИшPP X €рPИ ЕP(`ФC `H" 0Б€€€€ф'4,`` сŽ Рf  lюА~Р48А€ ;€€Р8рР №p8Р8№w€ц0ЮЇм8s€И880Рp р рppР8;€œрЮwючs€м9Р8р№рр€РpР€€ Р8`Р`8€Рp€€Рр €`@№€a†<``<№р €@Ра.Иt:p@  а,€А€4!с†a†€a†€@€џрџўџрџў€€Р‚„82vVпџџџџџ5џџљџџџўџџџџџџџŸЎї‡ƒЦlgшїўћџ{€€88888888||8888(888|||ќxўўfьююъЮюЦЯцЧчЯчЧрƒ€ƒ€я€ƒ€я€€€a€m€€€o€€o€ƒяƒяџƒƒƒ‡ЧЦЦЦЮюю||x€8€8€`С`Р`?6<48"(???џA‡0a‡BЧ0Fїџ`С`Р`?6џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€кілС #9]&9Жк'Жк'W9ŽџАіл†=†@§˜Р§šОšН}ілZXXїџЂ†0ЗџЁЦ]& †9ЗџЁ†:ЗџЂ9Z эŽ Ž@Œ@%|џЁ|џЂ9І€Ї  юŽџРП˜Ž@іBZлZ†=:ŽџАПšН}ілZXXїџЁ†0ЗџЂЦ Є†7ЗџЂОšМ˜%†:ЗџЂ9І€Ї  юџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ