џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџM  "#&')*+-.012457889;;<<>>>???????>>><<;;987754210..-+*)'&$#"  """""#######""""   7J^rˆ Йгю +Lo”Лф?qЅмV˜н(vЩ!тJЙ/Ќ 0 Л P э “ C ў Ф•s_X`w к&‡ќˆ+ч О"А$Р&я)@+Д.M1ˆ†L‹†?Зџ#P0ўjŸУŸЦŸЩŸЬ0€ŸР9žРІ€—Т91џPІ€юІпЯІ€юІпбІ€юІпгІ€юІпеŸР9ŽДІŸLУЋŸLЦЉŸLЩЉŸLЬЗџ мФгЯнФмЧгбнЧмЪггнЪмЭгенЭ1Ђ& Т' ЧІ€ С9џu‘&O‹9ŽЋ №JD JDJD$JD H@ D<$@:@:@:(@: <6 :2(<6<6<6(@:D<D<@:(<6:2@:@:@:@:@:<6:2 :2@6060:2<6:2602,60€:2( :2(@:@: @:<6:2@6,@D<260:2<6:2602,0(€2,$ 2,$J@:J@: J@:H@:D<€<6H@H<6H@H<6JDH<6D<D:2@:@:2(J@:JDJ@:H@D:2@:€<660:0(<6:0(602(0(€2(" 2("@:@:@:<6:2€2("@2("џN„60:2<6:2602,0(€2,$ 2,$J@:J@: J@:H@:D<€<6H@H<6H@H<6JDH<6D<D:2@:@:2(J@:JDJ@:H@D:2@:€<660:0(<6:0(602(0(€2(" 2("@:@:@:<6:2€2("@2("џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџˆР@р€p8 8р8pр€8Р0€Ž0€ƒ``4 ƒ€РpР ј`0Аl @и2%ЕŠ€$ И@ 2 0€#…Р `h#Р„$0=` &Р€,@ˆ­@шРŠЕ@к!hраPBВњ!(€Р@ 1Р*zHŠ€Р0Љ'€€€H ˆ@ Ѕ€€`8И @@‘$Ш‰Р,DPРШaаx"Ђг˜"†"ˆ,и*рЗ€)&4sгšRцrыR›o—! ;­ьпЯДОdэ5œOy4єћш~d,?­Т‘­„сэч}GЯ7j&Вp ,rƒ0;Zф@ІjяЎЏПџіš7{ўџњкgžпџЌŸњЫяпћџmеПЗ=ћѕuязЛІюс(р€€€€>Р?јј€?№Р?№Р№?Р7№?Р?№?Рр?Р€Ч€Я€?Р?Я€?€?ЯР?€?ƒр>Р?‡Р?Р‡€?€Р?€gР?РрџŽ†рџ‡?‡`;П‡ПППџ€?y‡Р?Ÿѓ‡у‡рПc‡Р;ѓ‡р6sрѓр7s€Р0{‡`?‡р?ї‡р?џР9Ч8Рž@?џР?ќСР‡ЭРСРРРРэРРџРП8<РЮ?€ ЯџРџўџўРџџР?п§€ ћцРџ№РџyР7јРћ€У1€‡€c€€>;мѓ€ј;№Р8р8№јppsрsр€рр€€р €€``````ррррррРР €р€```pp И 8 <8 0 0 p pЯ`ЮчЮчЧчРрЦfЦРЦЦРЦчЧцЧ№ЧїpРЬРРУРУРЧ€УЧ€у€чЯ€чЯ€fЯ€яџ€юћ€џџ€џЯ€џѓ€Чї€їџ€џџ€џџ‡РяƒР ?6.<8'$(  џE™0e™J'ГNкџ№ЧїpРЬРРУРУРЧ€УЧ€у€чЯ€чЯ€fЯ€яџ€юћ€џџ€џЯ€џѓ€Чї€їџ€џџ€џџ‡РяƒР ?6.<8'$(  џE™0e™J'ГNкџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџq&6:ƒBASIC DRIVER FOR MUSIC3+ BY GEORGE QUELLHORST&? т 32&Rу12,63:у13,0:ž&u‡@100,"MAKE THE WORLD GO AWAY"&„‡@174,"BY"&‡@235,"HANK COCHRAN"&Ч#‡@323,"TRANSCRIBED BY:HAROLD MOENICH"&ѓ$‡@353,"AFTER THE SONG, SEE THE PICTURE"'(‡@422,"PRESS ANY KEY TO PLAY":Ђ44539':-гM"GO AWAY/BIN":’&HFF40,0'R2’65497,0:Ђ:’65496,0'\3у12,0'p4гM"WORLD/BIN":ЂY"&„‡@174,"BY"&‡@235,"HANK COCHRAN"&Ч#‡@323,"TRANSCRIBED BY:HAROLD MOENICH"&ѓ$‡@353,"AFTER THE SONG, SEE THE PICTURE"'(‡@422,"џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ Ї 860/KN… I$Гџ‹(8) А P1В0 Ї І 891:џ(NP$,P1,1)Г" ":І 894:P1ГP1Ќ1:Ѕ 840/nRP1ГP1Ћ1:џ(NP$,P1,1)ГI$:І 894/yWЅ 840/…\AP$ГNP$/aЅ 900/œz‚ ERASE/Т{ј 3,0:ё 22,12:‡ NP$;:ј 3,0:‡ " ";/Ш|/д}‚ WRITE/њ~ј 1,0:ё 22,12:‡ NP$;:ј 3,0:‡ " ";00„ј 3,0:ё 20,10:‡ QQ$:І 8910X‰QQ$Г"DO YOU WISH TO EDIT THE NAME OF THE ENTRY? Y/N"0pŒј 1,0:ё 20,10:‡ QQ$0ˆŽI$Гџ’:… I$Г"" Ї 9100œ… I$Г"N" Ї 10000Џ’… I$Г"Y" Ї 9200К“Ѕ 9100в˜ј 3,0:ё 20,10:‡ QQ$0џQQ$Г"TYPE IN THE NEW NAME OF THE ENTRY:"1Ђј 2,0:ё 20,10:‡ QQ$1)ЃNP$ГџЁ(32,32)12ЄP1Г01=ЇІ 8941UЌI$Гџ’:… I$Г"" Ї 9401kБ… I$Гџ‹(13) Ї 9601БЖ… I$Гџ‹(8) А P1В0 Ї І 891:џ(NP$,P1,1)Г" ":І 894:P1ГP1Ќ1:Ѕ 9401дИP1ГP1Ћ1:џ(NP$,P1,1)ГI$:І 8941пЛЅ 9401ыРAR$ГNP$2 шј 3,0:ё 20,10:‡ QQ$:І 8912:ђј 1,0:ё 20,10:‡ "THE AUTHOR'S NAME IS: "AP$2aќё 20,12:‡ "THE ENTRY NAME IS: "AR$2“ё 20,14: ‡ "(C)orrect (E)dit again (A)bort"2Ќ I$Гџ’:… I$Г"" Ї 10352П… I$Г"A" Ї 1032в… I$Г"E" Ї 7002ц$… I$Г"C" Ї 11002ђ.Ѕ 10353Lџ(A$,1,32)ГAP$:џ(A$,33,32)ГAR$37Vр 0,SS(PS,1),SS(PS,2),A$,B$3E_ZAГTP(PS)3U`€ ZZГ1 Ѕ 323oe’ ZA,џŠ(џ(AR$,ZZ,1))3{jZAГZAЋ13„t‹ ZZ3’АAMГ&H50003ЌКTГST(PT,1):SГST(PT,2)3ФФ€ ZГAM Ѕ BMЌ1 Љ 2563дЩA$Г"":B$Г""3цЮ€ XГZ Ѕ ZЋ1273њгA$ГA$Ћџ‹(џ†(X))4иB$ГB$Ћџ‹(џ†(XЋ128))4н‹ X4,тр 0,T,S,A$,B$4Lь… SД18 Ї SГSЋ1 :„ SГ1:TГTЋ14T‹ Z4_ Ѕ 1034эа† "ABOUT CFDM","ABOUT THIS ISSUE","ACTIVE COCO","ADVERTISEMENTS","ARTICLES OF THE MONTH","COCO FRIENDS ART GALLERY","FAMILY TREE","FORUM"5aк† "FROM THE EDITOR","LETTERS TO THE EDITOR","POTPOURRI","PROGRAMS OF THE MONTH","REVIEWS","QUESTIONS & ANSWERS"5Њф† 8,3,8,4,8,5,8,6,8,9,8,11,8,13,8,15,8,17,8,18,9,3,9,5,9,8,9,10,9,135А Иї5И Тт805з Ьё 30,10:‡ "END OF PROGRAM"5н жŠTREE","FORUM"5aк† "FROM THE Eџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§ NкЯ            ЯР№Р№РЯ  №ќ   №Рќ  №Р№Р№Р№ќ            №Рќ №Р№РЯ №РЯР№Р№Р№Р№Р№ќ  №РЯ  Р№Р№Р№Р№Р№Р№Рќ №Р№РЯ №ќ №ќР№ќ   Р№Р№ќ Р№РЯ №ќ№РќР№Р№Р№РЯРќ     `і№Р№Р№і  `o `Ц№Я №`o `№РіЦ№ќ №`Р№`Р№Я №lР№l №ї№Р№o №ї№Р№`№ќ №ї№Я `oРЯ №Рї№oРЯH p  №Р№  №p№Р№Я p№Я €№рР№Р№Ф №ќ  №Р№рР№ќ РЯ  Рр№Рќ Р№Р№РЯРЯРЯ Р№Р№р№Р№р№Р№р№р№р№р№Р№Р№Р№Р№Р№РЩ РЩ Щ №љ  №ŸŸ №Ÿ  №љ №љ №љ №љ №љ Ÿљљ№Ÿ №љ №№љ љŸ №љ љ №љ №љ №№№љљ №Ÿ №љљ №ŸŸŸ Ÿ Ÿ oi  `o–`№–`i `o `h№i `№i `ј`i `№`˜€`–––€€i `№`€`‰`h№€`h№ј€`h€`h€ј€№€†`h€№€№€`€`€€№ї№€@@€p4€B( %€$D@Є€H–€ 8юсю@Ф€ Ш€B‚ƒЯРe€B" €@NД'@`cЯРР(Б€4.!щР@ fе„x$DJЄ€Ш” ”0€0 X @x€0HФ( ˆ (H@$%fDITи0`Rqp0юф T €-R€а М(i €г€Ёp P8l€рЁУБ 0(P,№А;Р0Р( 80PlD ‚`p фx)n`Р%fЊITа0,`@€ 8A `0РАŠ@@ „C€ Pр00ˆ0 @ ` `*€0D„€(%Р0€<ЎюŽ@P PР&)€B‚€Рa €Рp рB" €8€@( `Р €`  8€.‰Рƒ№АРdD$€  А  U‚l0 @ MТ€,>Щp(0С€ œfp8†€Э`€`P8…Р !Р  0$"@ЄKhAРа€А`qw@A.р#ŠQ„и@€Œ Р@ €@@`@@@уxРp8 @RuH€p€р аB ˆ`(Р€ИBœ5`М @0 *8€€p€e&@р РР80Р€ #Рˆp"€0€(HЃ 3PРРPЃ€ €L€( €€€ РŒ@Р ˜@р@ €<УШ€˜рn И@A€` РxPШr р0€8РPp€0h Р  pHР&@˜00€€  QP0Рp@Yб€ р@PH€рЬ *@@†ЌЈ Рbр€v Я€sР@0œ €Ф€((3р Р@@S€0`i“P0xР/Z2x*J$ @!Р@K€P€€ ` ‰€9Р €р€€€№`0Р 0€<Р&€ € €0( €  (ˆ `@0 @(`` ,€€ €Р `L#@! ‰0шp0€$8`@ PPT € @ @` pI8ШР € €(Ё  <р€;јраp Р8 4€€ &€ UР€Ё€!1,74,90,78,86,79,85,78,84,77,85,83,79,82,80,83,81,84,80,88,75,87,760O†86,75,87,74,91,72,92,73,93,72,92,71,63,105,64,106,65,105,64,104,68,101,69,102,70,101,69,100,72,96,73,97,74,96,73,95,78,91,77,92,78,93,78,93,79,92,83,87,82,88,83,89,84,88,86,84,87,85,88,84,87,83,90,79,89,80,90,810џP†91,80,95,75,94,76,95,77,96,76,67,110,68,111,69,110,68,109,71,106,72,107,73,106,72,105,76,101,77,102,78,101,77,100,82,95,81,96,82,97,83,96,82,95,89,90,88,91,89,92,90,91,89,90,93,84,92,85,93,86,94,85,99,81,100,80,99,79,98,801Uѓ(H,V,0):‹1Vш(0,0),1,11<Zч0:ю(23,20),"4TH OF JULY!"1Q_€ XГ1Ѕ15:CГџ„(7)1cdщ(280,25),X,C1jn‹X1|x€ YГ15Ѕ1 Љ Ќ11Ž‚щ(280,25),Y,11•Œ‹Y1Њ–€ XГ1Ѕ15:CГџ„(7)1Л щ(36,25),X,C1ТЊ‹X1дД€ YГ15Ѕ1 Љ Ќ11хОщ(36,25),Y,11ьП‹Y2Ш€ XГ1Ѕ15:CГџ„(7)2вщ(40,160),X,C2з‹X2,м€ YГ15Ѕ1 Љ Ќ12>цщ(40,160),Y,12E№‹Y2OњЅ 952l,ї:ž:‡"":Š€ YГ15Ѕ1 Љ Ќ11Ž‚щ(280,25),Y,11•Œ‹Y1Њ–€ XГ1Ѕ15:CГџ„(7)1Л щ(36,25),X,C1ТЊ‹X1дД€ YГ15Ѕ1 Љ Ќ11хОщ(36,25),Y,11ьП‹Y2Ш€ XГ1Ѕ15:CГџ„(џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџо& ‚ CFDM DOCTOR&/‚ (C) 1998 RICK COOPER&M‚ FOR THE FRIENDS OF CFDM&XZ• 2000&h[ˆ № Ѕ 3000&_у 0,0:у 11,0:у 10,18:у 9,36:у 8,63&ОdŒ SN$(14),ST(15,2),SS$(20),SS(20,2),TP(20)&љe€ XГ1 Ѕ 14: SN$(X):‹X:€ XГ1 Ѕ 15: ST(X,1),ST(X,2):‹X'fт80'mgž:ј 2,0:ё 35,1:‡ "CFDM DOCTOR":ј 1,0:ё 33,22:‡ "CHOOSE A SECTION":ё 35,21:‡ "BREAK TO END":ј 3,0:‡ " ";'Мhј 1,0:ё 20,23:‡ "UP/DOWN ARROWS TO SELECT ENTER TO CHOOSE";:ј 3,0:‡ " ";'чiј 0,0:€ XГ1 Ѕ 14:ё 30,XЋ2:‡ SN$(X):‹ X'№nPTГ1(xј 1,0:ё 30,PTЋ2:‡ SN$(PT);:ј 3,0:‡ " ";(4}I$Гџ’:… I$Г"" Ї 125(J~… I$Гџ‹(3) Ї 3000(‚… I$Гџ‹(94) А PTВ1 Ї ј 0,0:ё 30,PTЋ2:‡ SN$(PT);:PTГPTЌ1:Ѕ 120(б‡… I$Гџ‹(10) А PTД14 Ї ј 0,0:ё 30,PTЋ2:‡ SN$(PT);:PTГPTЋ1:Ѕ 120)Œ… I$Гџ‹(13) Ї ё 29,20:ј 0,0:‡ "ONE MOMENT PLEASE...":Ѕ 200)–Ѕ 125)*ШBMГ&H5000)`вTГST(PT,1):SГST(PT,2):TXГST(PTЋ1,1):SXГST(PTЋ1,2))rмп 0,T,S,A$,B$)ƒцC$ГA$:І 300)”ыC$ГB$:І 300)Д№… SД18 Ї SГSЋ1 :„ SГ1:TГTЋ1)Ьѕ… TГTX А SГSX Ї 400)зњЅ 220)ъ,€ XГ1 Ѕ џ‡(C$)*6’ BM,џŠ(џ(C$,X,1))*@BMГBMЋ1*J‹X*T*(‡ џœ(BM)*Wšž:ј 2,0:ё 29,1:‡ "ENTRIES IN THIS SECTION"*„ŸL1Г40Ќџ(џ‡(SN$(PT))Ў2):ё L1,0:‡ SN$(PT)*ЄNEГ0*ЈЎ€ YГ&H5000 Ѕ BMЌ1 Љ 42*СГ… џ†(Y)Г255 Ї І 500*ЩИ‹ Y*дТЅ 600*пєET$Г""*ыљNEГNEЋ1+ўKTГџ†(YЋ1):KSГџ†(YЋ2)+TP(NE)ГYЋ10+)€ ZГYЋ10 Ѕ YЋ41+?ET$ГET$Ћџ‹(џ†(Z))+G‹ Z+W!SS$(NE)ГET$+s"SS(NE,1)ГKT:SS(NE,2)ГKS+&ј 0,0:ё 30,NEЋ3:‡ ET$+“0+œXPSГ1+Ш]ј 1,0:ё 30,PSЋ3:‡ SS$(PS);:ј 3,0:‡ " ";+рbI$Гџ’:… I$Г"" Ї 610,#g… I$Гџ‹(94) А PSВ1 Ї ј 0,0:ё 30,PSЋ3:‡ SS$(PS);:PSГPSЌ1:Ѕ 605,gl… I$Гџ‹(10) А PSДNE Ї ј 0,0:ё 30,PSЋ3:‡ SS$(PS);:PSГPSЋ1:Ѕ 605,}v… I$Гџ‹(13) Ї 700,ˆ{Ѕ 610,ЈМп 0,SS(PS,1),SS(PS,2),A$,B$,ЭСAP$Гџ(A$,1,32):AR$Гџ(A$,33,32),гЦž-Ыј 1,0:ё 30,1:‡ "EDIT AUTHOR OR ENTRY NAME:":ј 3,0:‡ " ";-Aај 1,0:ё 10,3:‡ "AUTHOR'S NAME";:ј 3,0:‡ " ";-fкј 2,0:ё 28,3:‡ AP$;:ј 3,0:‡ " ";-—јј 1,0:ё 10,7:‡ "ARTICLE NAME:";:ј 3,0:‡ " ";-Мј 2,0:ё 28,7:‡ AR$;:ј 3,0:‡ " ";-ёQQ$Г"DO YOU WISH TO EDIT THE AUTHOR'S NAME? Y/N".  ј 1,0:ё 20,10:‡ QQ$.!I$Гџ’:… I$Г"" Ї 790.4 … I$Г"N" Ї 900.G%… I$Г"Y" Ї 820.R*Ѕ 790.j4ј 3,0:ё 20,10:‡ QQ$.™9QQ$Г"TYPE IN THE NEW NAME FOR THE AUTHOR:".Б>ј 2,0:ё 20,10:‡ QQ$.У?NP$ГџЁ(32,32).Ь@P1Г0.зCІ 894.яHI$Гџ’:… I$Г"" Ї 840/M… I$Гџ‹(13)€€€€Р€Р€РРР?РЈППРРџРџРџяџџ€џ€љ€?€>>>x88>6~   €РПрџ№џ№џќџќџќџўџўџў€џў€џўџџџџџџ3џџћјџрџјџрџР< џ€р№ор№№uМ<№\ў0ўx€ўXРќ Gп мœЯм˜ЯиЬŒмРр Ю`pЮрЬР<Р<Ьр<Яр8Ч‡€8УР_С@УРsУ€СРƒ€€€€№P?6%&8"4 >џDз0dзGšKЂџўXРќ Gп мœЯм˜ЯиЬŒмРр Ю`pЮрЬџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ m&:ƒ FOURTH OF JULY&+:ƒ BY JIM DAVIS&8:ƒ 05/98&H:ƒ FOR CFDM&Vˆ№ Ѕ 300&Ђ ї:ф2:ц0:€PГ0Ѕ15:C:уP,C:‹:† 63,,7,56,24,16,18,52,54,38,36,32,44,40,41,9'‘ѕ "BM158,96S4C1BLBG14BLBH2BL4BH15BL10BG2BD5BG2BL62BH2BU2BH2BL3BU2BLBUBLBHUDF75E5H75BLG3BE5BD2BRBF2GE43R12F9E32R57D4F52G16L35G45BGH12U22G37BGGBU66BE10BU12BH2HF42G10BGBL11BHBL6BF13; BDBL2BGBD12BLBH10BL5BR5BE3BR9BE10BRBEBU2BG3BL10BH2BU17(ѕ "BR4BF2BRBF8BRBE2BL12BG39GE48BEBF6D26BDDBDF3E41R34E14BU3BE8BUBL31BG46BL8BH6BL14BH3BL19BG32BLGE47BL7BG3BL7BG21BLBG13BLBG2GE25BEE22BL18BH4BL2BH4BLBU3BE2BUBH2BU4BL12BRBF22BG35BDBGGE48BL22BH3BU8BH8BL3BGBLBD2BHUF26BFFBU4BEBU9BH11BL2BG3BL2)p(ѕ "BDBF12BGGE10BEBL16BG2GE10BL2BHBL9BGBL3BDGE9BEBDBF8BRBF7BR2BUBRBF27BRBF2BD2BF10BD5BG3BDBG2BDGE34R31BRR2E13BEEBUBL2BH10BL6BG15BL14BG23BL8BG4BL2DBDDE27R33BRE13BEEBH4BLBH4BLBG6BL9BG7BL17BG13BL12BG10BD2BF2UE25R35E14BLBH9BL2BG23BL3BH8BL2*P2ѕ "BG23BL11BD3BFBUE26R32E13BEEBLBH3BL31BG13BL2BG4BLBG12BL11BG5BFDE26R32BRE15BL2BH5BL3BH7BL4BG30BL15BG11BLBG3BDBGRE25R22BRR7E15R5BH9BD6BG6BL2BH4BU2BG4BLBG4BL20BG28BLBH2BLBD2BUBFBLRE27R33E9LUL7BL2BG3BL33BG13BLBF81BG35BL12*ќ<€XГ1Ѕ11:H,V,C1,C2:ш(H,V),C1,C2:‹:†146,132,10,1,142,103,10,1,154,101,10,1,151,72,10,1,146,52,10,1,135,31,10,1,128,91,10,1,110,73,10,1,97,57,10,1,70,95,15,1,110,160,8,1+U?ъ(101,51)Ќ(137,15),Н:ъЌ(183,15),Н:ъЌ(195,27),Н:ѕ"BM196,27C0U3L3":ѕ"BM191,24C0L7C1E4"+­@ѕ"BM195,28C0L5C1E2":ш(196,29),10,1:ѕ"BM183,24C10L9C1E8":ѓ(182,25,10):ш(178,22),10,1+тAѕ"BM110,167;C8;E5;C1;F25;L10;H25":ш(112,165),8,1+єF€XГ1Ѕ206:H,V,ЫK†51,90,52,89,51,88,50,89,56,85,57,86,58,85,57,84,61,80,60,81,61,82,62,81,65,76,64,77,65,78,66,77,68,72,67,73,67,73,68,74,69,73,71,68,72,69,73,68,72,67,75,64,76,65,77,64,76,63,80,60,79,61,80,62,81,61,51,94,52,95-ЂL†53,94,52,93,56,91,55,92,56,93,57,92,59,88,60,89,61,88,60,87,63,84,64,85,65,84,64,83,67,81,68,82,69,81,68,80,71,77,72,78,73,77,72,76,74,73,75,72,76,73,75,74,78,69,77,70,78,71,79,70,81,67,82,68,83,67,82,66,86,63.M†85,64,86,65,87,64,56,98,57,97,56,96,55,97,61,93,60,94,61,95,62,94,61,93,65,90,64,91,65,92,66,91,67,86,68,87,69,86,68,85,73,83,72,84,73,85,74,84,76,81,77,80,76,79,75,80,79,75,78,76,79,77,80,76,83,74,84,73,83,72,82,73/BN†82,73,86,70,87,69,86,68,85,69,60,100,59,101,60,102,61,101,64,97,63,98,64,99,65,98,68,94,69,95,70,94,69,93,73,89,72,90,73,9џ:> Р8>т32>ї>ž0>-(гM"NIBLOADR>`2… џ†(&HCFC3)ДВ&H8D Ї ’ &HE76,&HCE:’ &HE77,&HE7>v<‡ @43,"SS BLOCK";>ЃF‡ @97," ENTER THE NAME OF YOUR PICTURE";>аP‡ @129," NO MORE THAN EIGHT CHARACTERS";>рZ‡ @202," ";>ьdЛ ‰ F1$?n… џ‡(F1$)В8 Ї ž0:Ѕ 60?x… џ‡(F1$)Г8 Ї 150?.‚L1Г8Ќџ‡(F1$)?EŒF1$ГF1$ЋџЁ(L1," ")?R–L2Г&HE92?h € XГ0 Ѕ џ‡(F1$)Ќ1?ƒЊ’ L2,џŠ(џ(F1$,XЋ1,1))?ДL2ГL2Ћ1?—О‹ X?žШž0?Џв‡ @47,"NIB";?ям‡ @100,"PLACE DISKETTE IN DRIVE 0";:‡ @138,"PRESS ANY KEY";@цI$Гџ’:…I$Г"" Ї 230@№’ &HE6E4,&HE6@$њЂ &HF00@4’ &HE6C6,33@=KГ32@Kф 2:у 0,0@e"X2Г320ЎKЌ1:Y2Г192ЎKЌ1@И,ч0:€ XГ0 Ѕ X2:ъ(X­K,0)Ќ(X­KЋ1,191),Н,B:‹ X:€ YГ0 Ѕ Y2:ъ(0,Y­K)Ќ(319,Y­K),Н:‹ Y@Х6э 1,4000@б@XГ6:YГ6@иJ:ƒ@§Tч0:ъ(X­K,Y­K)Ќ(X­KЋK,Y­KЋK),Н,BFA^ˆ џ„ (4) І 370,440,510,580A(hЅ 350A6r:ƒMOVE UPAM|… YВ0 Ї YГYЌ1 :„ AX†І 650Ao€ YYГY­K Ѕ (YЋ1)­KAŒšь(X­K,YY)Ќ(X­KЋK,YYЋK),1A•Є‹ YYA›ЎAЋИ:ƒMOVE DOWNAУТ… YДY2 Ї YГYЋ1 :„ AЮЬІ 650Aъж€ YYГY­K Ѕ (YЌ1)­K Љ Ќ1Bрь(X­K,YY)Ќ(X­KЋK,YYЋK),1Bъ‹ YYBєB&ў:ƒMOVE LEFTB=… XВ0 Ї XГXЌ1 :„ BHІ 650Bc€ XXГX­K Ѕ (XЋ1)­K Љ 2B€&ь(XX,Y­K)Ќ(XXЋK,Y­KЋK),1B‰0‹ XXB:B D:ƒMOVE RIGHTBКN… XДX2Ќ1 Ї XГXЋ1 :„ BХXІ 650Bсb€ XXГX­K Ѕ (XЌ1)­K Љ Ќ2Bўlь(XX,Y­K)Ќ(XXЋK,Y­KЋK),1Cv‹ XXC €C.Šы(X­K,Y­K)Ќ(X­KЋK,Y­KЋK),1:C9”Ѕ 660BHІ 650Bc€ XXГX­K Ѕ (XЋ1)­K Љ 2B€&ь(XX,Y­K)Ќ(XXЋK,Y­KЋK),1B‰0‹ XXB:B D:ƒMOVE RIGHTBКN… XДX2Ќ1 Ї XГXЋ1 :„ BХXІ 650Bсb€ XXГX­K Ѕ (XЌ1)­K Љ Ќ2Bўlь(XX,Y­K)Ќ(XXЋK,Y­KЋK),1џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ Х KЂаPмаPм ам ам аPм аPм аPм аPм ам ам ам ам ам амаPp€p€p€p€p€p€‡№€‡p€p€p€p€p€p€p€p€p€p€p€p€(` €p€@`p€p€p€`p€p€p€@`PpxPp€p€@€p€p€p€Pрp€p€р€p€ўрp€p€p€p€pа€pрpўр 0рўр0 арўр0 0р р0р0.AAPP№PPP@PPярP60PP№PP8eёяP`€eP…р№рёTёPLEL@PQў№яP€P@ФPQ ёAРФPаМ@єPSPРФPЫ@PScP6€`PTРФE@0PSPФР€EPEA@P440P€5eE@Pt60P40C1РP60€P0C@C4;…cC@€54444cdє№є№є№є№€Œ0<€ƒа0€0§апу  я?ап?ап0€ƒ§0€‹=0€‹0€А0№€€ 0`p# $@!ЄP X€"ВаР€X€(`€€ XЄP$@@рР"F€€@^Шк,Нє@Чtj”sv`GX‡ 1Щб€€ƒnЁф8AЦ0(€мaЌ;mј{м 4Уг1Еš€‹тn„’x пi)}0ђиrУЌ˜фу0Шr L`и0’ЪЛьЩ1YС[€ ˆQЉ]wР,ЎуЪРЦ‡˜tГ§одЮ`ђЇрzŸ;0т.ˆ щ5€ g!PWŒ_ h–3Ž0Ѓ=лD `15Р.€ yМР-ЦЬР€Эљ™€}ќuРјœ€К№Йр•Р€`ZР р @ 00  (4–У‡€GРТP@˜\kо˜’’§y-šј§діVиpа њaа/ІќќƒG1љАmШь@н NёзЋїHћ?Љz€Т`єŽњџЎЙі GљаŽ?%4@X‰њЖ.zТpš}IMэр§+ъўй ќNўЬ€Oл0 `?HЂX–О ЕЉљА ёхo'ѓо[€7aр}x—ŸЙЄи?ЫNFлО№пи€ЏоЁhє" W1…я7лРŸ 1Ќќ# @Ј$ŸЌp ЙhяL @$єУ@ Ї9`€HJюРp€@3 €@rФ@`  €@3`D €@!%@ C"T`€B @ @Т$H 0H@ #0 А’"€X  €@€ѕР8@€ @! Ž€@Ђ@ €DР@qP €`A@ ш 0@ @а@@@!QДH Б€#n`ˆ@AбРтм€!@@РЛ !@@‚€P6` @PH(`@€PB @ Р`0  ‰Рpx У€9\$ €$ЫУ X $Ът\@h ! €@€HH  €€УџоxџњUQ%Wf А aL  P0 €Ќxоца`-Гњ}ЇF}/3џџџ§ђ„ир?Л€№?Р›ўП€›џрw№EЗрл№fеР№џзСџћУšџЁџђэУщ@`px=ррx0€xј?А€ў№Рxp€€€px xјј и и ммиијјxxp  џ§&ˆ № Ѕ 200&(гM"ICOLOR":Ђ &H0203&9 ф 2:ц0:у 0,0&R€ GГ1 Ѕ 15:у G,G:‹ G&‚X1Гџ„(319):Y1Гџ„(192):X2Гџ„(319):Y2Гџ„(192)&Ж(S1Гџ„(10)Ќ5:T1Гџ„(10)Ќ5:S2Гџ„(10)Ќ5:T2Гџ„(10)Ќ5&Э2ъ(X1,Y1)Ќ(X2,Y2),Н&к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$'џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ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 00B 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џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ00100 * Stub to assemble Assembly Language 00110 * programming stuff for part 8 00120 INCLUDE MACROS.ASM get macros 00130 ORG $7000 you can change this address 00140 START LBSR SETUP install interrupt handler 00150 LBRA BEGIN start your code 00160 * get the library code 00170 INCLUDE PART8A.ASM 00180 INCLUDE PART8B.ASM 00190 * your code here 00200 BEGIN 00210 00220 RTS 00230 END START 00240 * we start executing at "START" џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџB 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 FD00010 ************************************************* 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-SWITAITAB 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 01960 FDB NULL-SWITAB 01970 FDB NULL-SWITAB 01980 FDB NULL-SWITAB 01990 FDB NULL-SWITAB 02000 FDB NULL-SWITAB 02010 џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ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-SW00010 ************************************************* 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џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџХџЧТЧФУЦ ФТТТЦТСТТ!"#$ХТ'(Т*+,-.Ш0УФТССТ7ТУ:ФХ=>?ФџџџџDOCTOR BAS сEXPRESS NIB6эGO AWAY BAStGO AWAY BINICOLOR BIN3eISLAND NIB ЯJULY4TH BAS pMACROS ASMџ&YMACROS LSTџNIBLOADRBIN8`NIBSHOW BAS9еPART8 ASMџ%ВPART8 LSTџњPART8 TXTџ/bPART8A ASMџ†PART8A LSTџЬPART8B ASMџ ѓPART8B LSTџ)POPEYE BAS;iPOPEYE NIBREADFILEBASдSS BLOCKBAS =SS CIRCLBAS2SSS CITY BAS1#SS FRIS BASЦSS LINESBASSS PIN BAS5нSS PROP BASЙSS TUNN BASSS TWINKBAS4WORLD BIN<џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ 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 TFR B,A * get value to A 01730 PULS B,X,Y,U,PC restore regs and return 01740 ************************************************* 01750 * Read memory to A, address in B,Y 01760 * 01770 SWI0B PSHS B,X,Y temp save regs 01780 TFR B,A * get addr into useful place 01790 TFR Y,X * 01800 LBSR SWI00 convert to block/offset 01810 ORCC #$50 disable interrupts 01820 LDA $FFA0 temp store MMU 01830 STB $FFA0 set MMU to specified block 01840 LDB ,Y get value at the address 01850 STA $FFA0 restore MMU 01860 ANDCC #$AF restore interrupts 01870 TFR B,A get value into A 01880 PULS B,X,Y,PC restore regs and return 01890 ************************************************* 01900 * Read memory to A, constant block/offset 01910 * 01920 SWI0C PSHS B,Y,U temp store regs 01930 LDU 17,S * get parameters 01940 LDA ,U+ * 01950 LDY ,U++ * 01960 STU 17,S * 01970 ORCC #$50 disable interrupts 01980 LDB $FFA0 temp store MMU 01990 STA $FFA0 set MMU to current block 02000 LDA ,Y get value in offset 02010 STB $FFA0 restore MMU 02020 ANDCC #$AF restore interrupts 02030 PULS B,Y,U,PC restore regs and return 02040 ************************************************* 02050 * Read memory to A, block/offset in B,Y 02060 * 02070 SWI0D PSHS B temp store regs 02080 ORCC #$50 disable interrupts 02090 LDA $FFA0 temp store MMU 02100 STB $FFA0 set MMU to correct block 02110 LDB ,Y get value as location 02120 STA $FFA0 restore MMU 02130 TFR B,A put result into correct location 02140 ANDCC #$AF restore interrupts 02150 PULS B,PC restore regs and return 02160 ************************************************* 02170 * Write A to memory, constant address 02180 * 02190 SWI0E RTS 02200 ************************************************* 02210 * Write A to memory, address in B,Y 02220 * 02230 SWI0F RTS 02240 ************************************************* 02250 * Write A to memory, constant block/offset 02260 * 02270 SWI10 RTS 02280 ************************************************* 02290 * Write A to memory, block/offset in B,Y 02300 * 02310 SWI11 RTS 02320 ************************************************* 02330 * Convert a pair of addresses to block/offset 02340 * 02350 SWI12 PSHS A,B,X,Y make some temp storage on the stack 02360 LBSR SWI00 convert A,X 02370 STB ,S * store it back in the originals 02380 STY 2,S * 02390 LDA 1,S = convert B,Y 02400 LDX 4,S = 02410 LBSR SWI00 = 02420 STB 1,S = 02430 STY 4,S = 02440 PULS A,B,X,Y,PC restore registers and return 02450 ************************************************* 02460 * Convert a pair of block/offsets to addresses 02470 * 02480 SWI13 PSHS A,B,X,Y make some temp storage on the stack 02490 LBSR SWI01 convert B,Y 02500 STA 1,S * store it back in the originals 02510 STX 4,S * 02520 LDB ,S = convert A,X 02530 LDY 2,S = 02540 LBSR SWI01 = 02550 STA ,S = 02560 STX 2,S = 02570 PULS A,B,X,Y,PC restore registers and return 02580 ************************************************* 02590 * Set a section of memory. 02600 * Enter 0,S clear value 02610 * 1,S start address 02620 * 4,S end address 02630 * Exit 1,S to 4,S will be set to 0,S 02640 * stack will be reset 02650 ************************************************* 02660 SETMEM PSHS A,B,X,U save registers 02670 LDB 12,S * get end address 02680 LDU 13,S * 02690 STU SETMEZ,PCR = save ending address for comparison 02700 STB SETMEY,PCR = 02710 LDA 9,S * get starting address 02720 LDX 10,S * 02730 ORCC #$50 disable interrupts 02740 LDB $FFA0 save MMU 02750 STB SETMEX,PCR = 02760 LDB 8,S get set value 02770 SETME0 STA $FFA0 set MMU to currentblock 02780 SETME1 STB ,X+ set a byte 02790 CMPA SETMEY,PCR are we in final block? 02800 BEQ SETME2 brif so 02810 CMPX #$2000 are we at the end of the block? 02820 BLO SETME1 coninue if not 02830 INCA go on to next block 02840 LDX #0 set pointer back to start of it 02850 BRA SETME0 continue setting memory 02860 SETMEX FCB 0 temp storage 02870 SETMEY FCB 0 temp storage 02880 SETMEZ FDB 0 temp storage 02890 SETME2 CMPX SETMEZ,PCR are we finished the block? 02900 BLS SETME1 continue if we are not done 02910 ANDCC #$AF re-enable interrupts 02920 LDB SETMEX,PCR * restore the MMU 02930 STB $FFA0 * 02940 LDU 6,S = set up stack to get rid of parameters 02950 STU 13,S = 02960 PULS A,B,X,U restore registers 02970 LEAS 7,S clean up stack 02980 RTS return 02990 ************************************************* * restore thџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ00100 * Stub to assemble Assembly Language 00110 * programming stuff for part 8 00120 INCLUDE MACROS.ASM get macros 00130 ORG $7000 you can change this address 00140 START LBSR SETUP install interrupt handler 00150 LBRA BEGIN start your code 00160 * get the library code 00170 INCLUDE PART8A.ASM 00180 INCLUDE PART8B.ASM 00190 * your code here 00200 BEGIN 00210 00220 RTS 00230 END START 00240 * we start executing at "START" SETUP install interrupt handler 00150 LBRA BEGIN start your code 00160 * getџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ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 ITAB 00700 FDB NULL-SWITAB 00710 FDB NULL-SWITAB 00720 FDB NULL-SWITAB 00730 FDB NULL-SWITAB 00740 FDB NULL-SWITAB 00750 џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ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 TFR B,A * get value to A 01730 PULS B,X,Y,U,PC restore regs and return 01740 ************************************************* 01750 * Read memory to A, address in B,Y 01760 * 01770 SWI0B PSHS B,X,Y temp save regs 01780 TFR B,A * get addr into useful place 01790 TFR Y,X * 01800 LBSR SWI00 convert to block/offset 01810 ORCC #$50 disable interrupts 01820 LDA $FFA0 temp store MMU 01830 STB $FFA0 set MMU to specified block 01840 LDB ,Y get value at the address 01850 STA $FFA0 restore MMU 01860 ANDCC #$AF restore interrupts 01870 TFR B,A get value into A 01880 PULS B,X,Y,PC restore regs and return 01890 ************************************************* 01900 * Read memory to A, constant block/offset 01910 * 01920 SWI0C PSHS B,Y,U temp store regs 01930 LDU 17,S * get parameters 01940 LDA ,U+ * 01950 LDY ,U++ * 01960 STU 17,S * 01970 ORCC #$50 disable interrupts 01980 LDB $FFA0 temp store MMU 01990 STA $FFA0 set MMU to current block 02000 LDA ,Y get value in offset 02010 STB $FFA0 restore MMU 02020 ANDCC #$AF restore interrupts 02030 PULS B,Y,U,PC restore regs and return 02040 ************************************************* 02050 * Read memory to A, block/offset in B,Y 02060 * 02070 SWI0D PSHS B temp store regs 02080 ORCC #$50 disable interrupts 02090 LDA $FFA0 temp store MMU 02100 STB $FFA0 set MMU to correct block 02110 LDB ,Y get value as location 02120 STA $FFA0 restore MMU 02130 TFR B,A put result into correct location 02140 ANDCC #$AF restore interrupts 02150 PULS B,PC restore regs and return 02160 ************************************************* 02170 * Write A to memory, constant address 02180 * 02190 SWI0E RTS 02200 ************************************************* 02210 * Write A to memory, address in B,Y 02220 * 02230 SWI0F RTS 02240 ************************************************* 02250 * Write A to memory, constant block/offset 02260 * 02270 SWI10 RTS 02280 ************************************************* 02290 * Write A to memory, block/offset in B,Y 02300 * 02310 SWI11 RTS 02320 ************************************************* 02330 * Convert a pair of addresses to block/offset 02340 * 02350 SWI12 PSHS A,B,X,Y make some temp storage on the stack 02360 LBSR SWI00 convert A,X 02370 STB ,S * store it back in the originals 02380 STY 2,S * 02390 LDA 1,S = convert B,Y 02400 LDX 4,S = 02410 LBSR SWI00 = 02420 STB 1,S = 02430 STY 4,S = 02440 PULS A,B,X,Y,PC restore registers and return 02450 ************************************************* 02460 * Convert a pair of block/offsets to addresses 02470 * 02480 SWI13 PSHS A,B,X,Y make some temp storage on the stack 02490 LBSR SWI01 convert B,Y 02500 STA 1,S * store it back in the originals 02510 STX 4,S * 02520 LDB ,S = convert A,X 02530 LDY 2,S = 02540 LBSR SWI01 = 02550 STA ,S = 02560 STX 2,S = 02570 PULS A,B,X,Y,PC restore registers and return 02580 ************************************************* 02590 * Set a section of memory. 02600 * Enter 0,S clear value 02610 * 1,S start address 02620 * 4,S end address 02630 * Exit 1,S to 4,S will be set to 0,S 02640 * stack will be reset 02650 ************************************************* 02660 SETMEM PSHS A,B,X,U save registers 02670 LDB 12,S * get end address 02680 LDU 13,S * 02690 STU SETMEZ,PCR = save ending address for comparison 02700 STB SETMEY,PCR = 02710 LDA 9,S * get starting address 02720 LDX 10,S * 02730 ORCC #$50 disable interrupts 02740 LDB $FFA0 save MMU 02750 STB SETMEX,PCR = 02760 LDB 8,S get set value 02770 SETME0 STA $FFA0 set MMU to currentblock 02780 SETME1 STB ,X+ set a byte 02790 CMPA SETMEY,PCR are we in final block? 02800 BEQ SETME2 brif so 02810 CMPX #$2000 are we at the end of the block? 02820 BLO SETME1 coninue if not 02830 INCA go on to next block 02840 LDX #0 set pointer back to start of it 02850 BRA SETME0 continue setting memory 02860 SETMEX FCB 0 temp storage 02870 SETMEY FCB 0 temp storage 02880 SETMEZ FDB 0 temp storage 02890 SETME2 CMPX SETMEZ,PCR are we finished the block? 02900 BLS SETME1 continue if we are not done 02910 ANDCC #$AF re-enable interrupts 02920 LDB SETMEX,PCR * restore the MMU 02930 STB $FFA0 * 02940 LDU 6,S = set up stack to get rid of parameters 02950 STU 13,S = 02960 PULS A,B,X,U restore registers 02970 LEAS 7,S clean up stack 02980 RTS return 02990 ************************************************* set up stack to get rid of parameters 02950 STU 13,S = 02960 PULS A,B,X,U restore registers 02970 LEAS 7,S clean up stack 02980 RTS return 02990 *************************************************џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџASSEMBY LANGUAGE PROGRAMMING PART EIGTH: READING ARBITRARY MEMROY Last time we examined using macros to call our SWI subroutines. As I'm sure you can see, these are extremely useful. However, even with the routines we have designed and implemented, these macros are useless unless all of them are working. To that end, this time I present to you the routines for reading a byte from arbitrary memory locations. I'm sure most of you who have been following this series have figured out how to do it by now, but you might find my code interesting. I will also give you a warning. None of the code I present here has been tested. There may be bugs in it. If there are, that adds to the learning experience, as debugging someone else's code can be a bigger learning experience than just seeing working code. If you do find a bug in the code, send me an email to astlew@bigfoot.com, including the fix for the problem and I'll update my sources. This time, I also provide the short code snippet to assemble the project which due to its size is split tinto several files. You can assemble the project by assembling the file PART8.ASM. It is fairly obvious how this piece of code works. Make absouutely certain that you have the disk with the files for this installment in the default drive when you do. Basically, the memory read routines make use of our previously developed block/offset and linear address conversion routines to obtain the correct block/offset to read, after obtaining the parameters from the appropriate locations. due to the limited number of registers on the 6809 processor, however, you may note some rather interesting acrobatics with the registers and stack. It should be fairly straight forward to unravel, so I will not go further into it here. Next time, the routines to write to memory will be presented. With those routines in our cookbook, we will have all the tools we need to access the entire memory of the CoCo3. Also, the principles transfer to any system that uses memory management hardware separate to the CPU. Notable examples of this were "Expanded Memory" on 8086 and higher CPUs in the IBM PC world. On modern processors, this is no longer necessary, however, the method for calling system functions remains fairly similar, although it is helped by hardware somewhat. The reason for the discussion in the previous paragraph is to give you an appreciation for the complexity of this procedure and you will appreciate all the more the amount the modern processors do if you ever try doing assembly language on, for example, the Pentium II CPU from Intel. I'll leave off with that for this installment. Until next time, keep programming, and most of all, have fun. P.S. If any of you have code you want to submit to this project (yes, we might eventually have a working project here), feel free to email it to me at astlew@bigfoot.com. or this installment. Until next time, keep programming, and most of all, have fun. P.S. If any of you have code you want to submit to this project (yes, we џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ & ф 2:у 0,0:ц0&)у 1,0:у 2,55:у 3,0&G€ GГ4 Ѕ 15:у G,џ„(63):‹ G&O#CГ0&Y%ч 3,0&q(XГџ„(10)Ћ5:YГџ„(90)&2… CЋXВ319 Ї XГXЌ1:Ѕ 50&Ћ<ъ(C,191)Ќ(CЋX,191ЌY),Н,BF&ЕFCГCЋX&ЭP… CГВ319 Ї 85 :„ 40&зUч 1,0&эZ€ YГ190 Ѕ 96 Љ Ќ4'd€ XГ0 Ѕ 319 Љ 4')n… џЋ(X,Y)Г3 Ї ъ(X,Y)Ќ(XЋ1,YЋ1),Н,BF'1x‹ X'9‚‹ Y'QШXГџ„(319):YГџ„(192)'_ЭHГџЋ(X,Y)'‡Ю… XЎ2ДВџ(XЎ2) А YЎ2ДВџ(YЎ2) Ї 230'Ев… HГ0 А џ„(10)Г2 Ї ѓ(X,Y,џ„(12)Ћ3):Ѕ 200'бм… HВ3 Ї ѓ(X,Y,0):Ѕ 200'ыц… HГ1 Ї І 300:Ѕ 200(№… HГ2 А џ„(2)Г2 Ї І 400:Ѕ 200(њЅ 200(0,:ƒ TURN WINDOW ON(:1ч 2,0([6… XЎ2Гџ(XЎ2) Ї 320 :„ XГXЌ1(|@… YЎ2Гџ(YЎ2) Ї 330 :„ YГYЌ1(–Jъ(X,Y)Ќ(XЋ1,YЋ1),Н,BF(œT(Г:ƒ TURN WINDOW OFF(Н•ч 1,0(оš… XЎ2Гџ(XЎ2) Ї 420 :„ XГXЌ1(џЄ… YЎ2Гџ(YЎ2) Ї 430 :„ YГYЌ1)Ўъ(X,Y)Ќ(XЋ1,YЋ1),Н,BF)ИTURN WINDOW ON(:1ч 2,0([6… XЎ2Гџ(XЎ2) Ї 320 :„ XГXЌ1(|@… YЎ2Гџ(YЎ2) Ї 330 :„ YГYЌ1(–Jъ(X,Y)Ќ(XЋ1,YЋ1),Н,BF(œT(Г:ƒ TURN WINDOW OFF(Н•ч 1,0(оš… XЎ2Гџ(XЎ2) Ї 420 :„ XГXЌ1(џЄ… YЎ2Гџ(YЎ2) Ї 430 :„ YГYЌ1џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџP&ˆ № Ѕ 100&( гM"ICOLOR":Ђ &H0203&9ф 2:у 0,0:ц0&e† 1,8,9,10,11,26,27,1,8,9,10,11,26,27,1&„€ GГ1 Ѕ 15: GG:у G,GG:‹ G&­RГ0:CГџ„(15):RXГџ„(100):… RXД20 Ї 30&Ш#CDГџ„(3)Ќ2:… CDГ0 Ї 35&ж(XГџ„(319)&ф2YГџ„(191)&і<щ(X,Y),R,C,.9'FCГCЋCD:… CГ16 Ї CГ1 :„ … CГ0 Ї CГ15'4PRГRЋ1:… RВRX Ї 30'>ZЅ 60'OdЂ &H0224:ї:Š1,8,9,10,11,26,27,1&„€ GГ1 Ѕ 15: GG:у G,GG:‹ G&­RГ0:CГџ„(15):RXГџ„(100):… RXД20 Ї 30&Ш#CDГџ„(3)Ќ2:… CDГ0 Ї 35&ж(XГџ„(319)&ф2YГџ„(191)&і<щ(X,Y),R,C,.9'FCГCЋџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ[кŽџПŽџОІЄЇ„01?ŒџБ&ѓЖЗџБЖџ~иЏЖџПЗ APŽњП †7Зџя9ЖLЗ&е ЖPŽиЏП †7Зџя9џ(mДч C,0(КЙ… S1ЋS2ЋT1ЋT2Г0 Ї S1Гџ„(10)Ќ5:S2Гџ„(10)Ќ5:T1Гџ„(10)Ќ5:T2Гџ„(10)Ќ5:Ѕ 185(ЩО€ GГ1 Ѕ 15(мШIГџ†(&HFFB0ЋG)(ѕвIГIЋ1:… IГ128 Ї IГ64)м’ &HFџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџš&ˆ № Ѕ 50&' гM"ICOLOR":Ђ &H0203&6’ &H021C,5&Gф 2:у 0,0:ц0&`€ GГ1 Ѕ 15:у G,G:‹ G&~ѓ(џ„(319),џ„(191),џ„(15))&ˆ(Ѕ 30&™2Ђ &H0224:ї:ŠnЅ 30(191)&з-… XЌRД0 Б XЋRВ319 Б YЌRД0 Б YЋRВ191 Ї 40'/SSГџ„(100):… SSД25 Ї 47 :„ SSГSSЎ10џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџк&ˆ № Ѕ 120&( гM"ICOLOR":Ђ &H0203&7’ &H021C,5&Hф 2:у 0,0:ц0&}€ GГ1 Ѕ 15:у G,0:‹ G:у 1,48:у 2,49:у 3,48:у 4,49&ЂRГџ„(50):… RД10 Ї 30 :„ CГџ„(15)&Н#CDГџ„(3)Ќ2:… CDГ0 Ї 35&е(XГџ„(319):YГџ„(191)'-… XЌRД0 Б XЋRВ319 Б YЌRД0 Б YЋRВ191 Ї 40'.STГџ„(500):… STД100 Ї 46'4/SSГ2­3.141592ЎST'M2€ GГ0 Ѕ 6.28ЌSS Љ SS'^рЊ@0   € @PА рZ -X€ @Р `rрš E Аа€А|p АааД A€Ю€e€аД(I(м`Р€И€I*€P)F PрР‡:У€Ж)F€ ilш`РУО€#im@ `€`t€ У€сnk‡ Р0l H  @W`x.inT8а il)F@РИ H)DI(   I,аД€аДАаАа @ @  €€р@…„€@;Рй+{яџП:яwэоГ|лџџџўџїп№хTќјю{нjšчў?ыѕЧџo/ћнOџ'џЗыч_ўяЖЙлэППћБ§ѓЌЩ€РРР€р џџ€ўџ€юР?Ц< Р?Р~џ?€џџџР?Рџќџј`Р`Рgиџиџќ0рПРПР?Р?РрПрПр0€€€€€јјрр№јјp№pp€`x€€€0€јјќј§€§А§ААќќјјўР;ўи?ўи? и33p Ž?О?ПР8ПРл€| џ€0 ћ€spџ€pџ€№џР?№џ€ќџР?ќџРlПР`џƒ˜xп˜~п€|јпћ<~пћќ№ћќ№љМppРРРРА№?6.&8(  џD0dF=ƒJРџ33p џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЂ€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ц€шЄч  ёџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ в&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џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџf&&d:ƒ******************************&-nР8&5xт32&<‚ž0&LŒгM"NIBLOADR&–… џ†(&HCFC3)ДВ&H8D Ї ’ &HE76,&HCE:’ &HE77,&HE7& F1$Г"POPEYE"&ЊL2Г&HE92&ГД€ XГ0 Ѕ џ‡(F1$)Ќ1&ЮО’ L2,џŠ(џ(F1$,XЋ1,1))&кШL2ГL2Ћ1&тв‹ X&щмž0'њ‡ @169,џ‹(255);" ";F1$;" ";џ‹(255);'#‡ @239,"BY";'B‡@294,"HAROLD J. MOENICH";'T’ &HE6E4,&HE6'`"Ђ &HF00'g,ф2'n6Р4'{8’65497,0(39Щ"T6;O3;L4;G;B-;B-;B-;L2;A-;L4;G;L2;B-;B-;L4;B-;O4;L4;C;O3;A-;O4;L4;C;L2;E-;L4;C;O3;L2;B-;B-;L4;B-;O4;L4;B-;O4;C;O3;L4;A-;O4;C;L8;E-;L4;D;C;O3;L4;B-;O4;L4;C;O3;L4;B-;L8;G;L4;E-;C"(ь:Щ"B-;O4;C;B-;L2;A-;L4;D;L2;E-;L4;E-;B-;O4;L4;C;C;C;O3;L4;F;G;A-;B-;B-;B-;E-;F;G;A-;A-;A-;D;P8;O3;L4;D;L2;B-;B-;L4;B-;O4;L4;C;C;C;O3;L4;F;G;A-;B-;B-;B-;E-;F;G;A-;A-;A-;D;P8;O3;L4;D")Е;Щ"L2;E-;E-;O3;L4;B-;O4;L4;C;O3;L4;A-;A-;A-;B-;O4;L4;C;E-;P8;O3;L4;G;G;P8;O3;L4;G;B-;G;G;G;A-;B-;O4;L2;C;C;O3;L4;B-;O4;L4;C;C;C;O3;L4;F;G;A-;B-;B-;B-;E-;F;G;A-;A-;A-;D;P8;O3;L4;D;O3;L2;E-;O3;L4;E-")Т<’65496,0)е@… џ’Г" " Ї 320)оJї:ž0)яTF1$Г"POPEYE"*^‡ @138,џ‹(255);F1$;џ‹(255);* h‡ @206,"BY";*@r‡ @262,"HAROLD J. MOENICH";*_|‡@390,"HOPE YOU LIKED IT";*e}Š4;C;C;C;O3;L4;F;G;A-;B-;B-;B-;E-;F;G;A-;A-;A-;D;P8;O3;L4;D;O3;L2;E-;O3;L4;E-")Т<’65496,0)е@… џ’Г" " Ї 320)оJї:ž0)яTF1$Г"POPEYE"*^‡ @138,џ‹(2џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџVioqruxx }€€ ‚ ‚ „ …„…†‰ˆ†…† † ‡‡‰‰Œ ‹ ŠŒ””••“–”“‘’••˜˜™™šššœžЃ"Є$Є$Ѓ% %Ѕ)Љ)Љ)Ћ(­)Ќ)Џ+Б+Б*Г+Г*Ў&Џ#А$А$В$В(Г)Й)П+М-Н,П-С-Ф-Ф-Х-Ф.У.У.Р/И0Й/И/З0Б0Б1Ћ1Љ1Ђ2Ђ00/š13‰24Ž5‹5‰5†5‡54{3{3y3y2p2o1o/i0€п/й0Я1Ы0Ъ/Щ/Ш/Ъ.Ы.Ы.Ъ.Ъ.Ш.Ч-Ш-Ы-Ь-Э,Ь,Ш+Щ*Ы)Ь)Ь*Ь(Э(Я(Я'Ы&Щ%Ю&б(б)г*в*в)ж*и*и)л)н(п(р(у#ч#ш"ц"ч цчшщыээюююяя№№яээюяёёѓє ї њ ћ ў џ ўў§ќћљі є ю ы щ ц х у ф р п п о м м м л м мопрррртттуууфцчччщъью №!№#ђ#є#і%ћ%ќ$§ ў      џў ћ њ љњњ§џџ    "!""""$$$$))((* *+)(('&##$&&ў'§'§(ќ(ќ+џ,--//./џ.ќ1њ0ќ/ѓ/э/э/ф0п/€iаqаqаtЯ|б‰бŽв•бŸбЇбЇаЙЯГЫВЪДЩБЩБЧдФдФбХбЧиШЯЪзЩзЫсЫсЫфЫчЬєЬљЮњЭЭавдбЭЪ$Щ2Э?ЯSЯgвiа€ёя‘щ‘ш’ш˜шœъžщ шЁщЃхЉхЌыЌьЇђЄїЄє ѕЁіœїšѕ™ѕ•ђё€ƒ‰ћŠ§…ƒ€ў’ў““’€ŠћћћŠћŠћ€”—”ќ”€œџ§Ё§ЁњЄњЇњЈљЊљІ§ЁўŸўŸœџ€КшЛчКхМфНцМчКш€КфЖрИрЛфКф€ІуЇсЉтЈуІу€%:87 755+* *",,/1768%:€i/e/e/a/a._/`/]/^.[.\-Y-Z-U.Z.[.S1I/G,C+C(F(H&J'K(L)K*K+N-Q-Q,N+O)T)P(P'O(M&F&G'E'F&C%<"==899::=AAFFJIKKLGIMNPORRYWRMMGG=:985233 2 49ACEEEџGќHјGїGѓHѓIэLщKщMшQщWыWёXђWђ\є\ј[ќac_[ VWX\ ] f ifeacfggi€bї]є]№_ёaёbї€;(:';%<%:#?$@$<&='<'<(;(€9%8%8#:$:%9%€/---1+5,4-/-/-€+,--33џ21 1 0 --, ,+€ :ќ8§66§5њ5§5§444џ45 69 :€ї1щ3ц3ч2щ3э0ї1€ЄІЅЃЄ€ЃЄЃ›šЂЃ€Є%Ѕ"Є"ЄЄ$Є%€ƒ8€7†6…6‰6‰6ˆ7ˆ6ˆ7ƒ8€xxyyx€б а а б €G6H6K6H5K5L6M6M5O5J6Q6R7K7G6€i3g2g2g1d1g4i4€i4q5q5i4€T RSYZ\\Z[ WYWU T €  € €"  ""€ л кклм€d a `cbdeefeced џ€€ Œž˜›Ѓ•­ЕƒЛxОlР_ОSЛGЕ<­2Ѓ*˜$Œ! s!g$\*R2JADFIKNPSUWZ\^`bdfhjkmnpqstuvxyzz{|}}~~~~~~}}|{zzyxvutsqpnmkjhfdb`^\ZWUSPNKIFDA><9630-*'%" y%[Z*.&PџзНqЎЮmьС§qќq§nьС§n§qНnƒmB%щЮp€ŽVПqnОqьПqС€'IЛq+ь€@Зn*@ІЦЗqІХ@€€D‹ ЗnЫ@ІХіq=У€}n*@€€Зnќn§q}n'Нnќq§n Ћnџ&ЄЖqЛqЗqНqчџjџ@џРџУџХџвџаџЯџЬџЪџЩџЧ†јЗџ"ŽŸКŽ&ПqНqч9НržКЬэЁэЁэЁэЁэЁэЁэЁэЁэЁэЁэЁэЁэЁэЁэЁэЁМq%к9žКŒ'Ž&ПqŽŸКџЯџЪ9Ž>ПqŽ&ŸКџЮџЫ9џq џqџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ