DOSЎбpCњNЎџ J€g @ hpNupџ`њdos.libraryР„XPРtpРtl Р„X Р0? Р„€Р•№80-/ HчB A"B ,xNЎ§LпB‘ШNжœœМ0ё03yџџџ§0('GШvcho "Initializing Janus ...*N" Wait 25 Echo "Mounting Ja0їNљРЅžNљРЅNљРЅ‚NљРЅtNљРЅNљРЅfNљРЅTNљРЅHNљРЅ:NљРЅ,NљРЅNљРЅNљРЄіNљРЄшNљРЄŒNљРЄHNљРЄ2NљРЄ$РєРO РЃfl.!РЃs5вРvРJј0(бœLяМ0ёџџџ§0ЁЏG ­install•Iњџю(lџќ/ /йЬйЬ g ,х€ВДl"4(T`ф,2‘Ш(jа#@М0 З0ёџџџ§0&зGŽ™deleteШp N•Jg^(jp N•х&A/ g Iъp(лQШџќIњD%L(jp rN•p Р†p0§^LР„pР„lР‡80Hч<*/(/$/// /NЙРДH&Pg&зsшyс‡Рџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџзtшџџј;џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџзuшџџј9џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџзvшр†bџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџџџџџѓџџџџџџџџџџџџџџџџџџџџџџџџџџџќ?џџџџУџџџџџџџџџџџџџџџџџџџџџџџџџџџќџџџџƒџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџ!џџџјџџџџџџџџџџџџџџџџџџџџџџџџзwшЁцЉШџџџџ0џџрЯџџџџџџџџџџџџџџџџџџџџџџџџџџџџ?џџСџџџџџџџџџџџџџџџџџџџџџџџџџџџџžџџ‡ŸџџџџџџџџџџџџџџџџџџџџџџџџџџџџŸџўŸџџџџџџџџџџџџџџџџџџџџџџџџџџџџƒџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџсџјџџџџџџџџџџџџџџџџџџџџџџџџџџџџЯ№рџ?џџџџџџџџџџџџџџџџџџџџџџџџџџџџЧќ?Уў?џџџџџџџџџџџџџџџџџџџџџџџџџџџџЧўў?џџџџџџџџџџџџџџџџџџџџџџџџџџџџчџ†ўџџџџџџџџџџџџџџџџџџџџџџџџџџџџуџР?ќџџџџџџџџџџџџџџџџџџџџџџџџџџџџуџрќџџџџџџџџџџџџџџџџџџџџџџџџџџџџѓџрќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџёџ€јџџџџџџџџџџџџџџџџџџџџџџџџџџџџџёџјџџџзxшJФџџџџџџџџџџџџџџџџџџџџџџџџџџљў‡љџџџџџџџџџџџџџџџџџџџџџџџџџџџџџјј?Сёџџџџџџџџџџџџџџџџџџџџџџџџџџџџџј№џ№ёџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќсџјsџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџџƒџџџџџџџџџџџџџџџџџџџџџџџџџџџџџј?џџСџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ№?џџРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџТ?џџФ?џџџџџџџџџџџџџџџџџџџџџџџџџџџџ‡џџŽџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќ?џџУџџџџџџџџџџџџџџџџџџџџџџџџџџџјџџсџџџџџџџџџџџџџџзyш WХk*џџџџџџџџџџџџџсџџџјџџџџџџџџџџџџџџџџџџџџџџџџџџУџџџќ?џџџџџџџџџџџџџџџџџџџџџџџџџџџЯџџ?џџџџџџџџџџџџџџџџџџџџџџџџџџўџЧџў?џ‡џџџџџџџџџџџџџџџџџџџџџџџџџќ?џЧџў?џУџџџџџџџџџџџџџџџџџџџџџџџџџ№џџчџўџ№џџџџџџџџџџџџџџџџџџџџџџџџџсџџуџќџјџџџџџџџџџџџџџџџџџџџџџџџџЧџџуџќџў?џџџџџџџџџџџџџџџџџџџџџџџџџџѓџќџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџёџјџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџјџёџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџјџёџџџџџџџџџџџџџџџџџџџџџџџџџџџџзzш Я†лџџџјџёџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќуџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќуџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќуџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџў?Чџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџў?Чџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџў?ЧџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџџрџџџџџџџџџџџџџџџџџџџџџџџџџџјџџРџџџџџџџџџџџџџџџџџџџџџџџџџџёџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџуџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџуџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџрџЦ?џџџџџџџџџџџџџџџџџџџџџџџџџџџџрџЦ?џџџџз{шеeУбkџџџџџџџџџџџџџџџџџџџџџџџуЧџЦ?џ?џџџџџџџџџџџџџџџџџџџџџџџџџџуЧџР?џ?џџџџџџџџџџџџџџџџџџџџџџџџџџуЧџрџ?џџџџџџџџџџџџџџџџџџџџџџџџџџуЧџрџ?џџџџџџџџџџџџџџџџџџџџџџџџџџ№џрџ€џџџџџџџџџџџџџџџџџџџџџџџџџџјџ№џџРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџзhш OCОпџџџџџџџџџџџў`3џџџџџџџџџџџџџџџџџџџџџџџџOџџџџџџџџџџџџџџџџџџџџџџџџШŸџџџџџџџџџџџџџџџџџџџџџџџџц?џџџџџџџџџџџџџџџџџџџџџџџџљ€ џџџџџџџџџџџџџџџџџџџџџџџџџќ@џџџџџџџџџџџџџџџџџџџџџџџџџџ0gџџџџџџџџџџџџџџџџџџџџџџџџџџЦџџџџџџџџџџџџџџџџџџџџџџџџџџё€џџџџџџџџџџџџџџџџџџџџџџџџџџќ`aџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџср8?џџџџџџџџџџџџџџџџџџџџџџџџџџџџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџџџџџџџџџџзiш џїј=џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџзjшџџИZџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџр?џџџџџџџџџџџџџџџџџзkшыЄЏ'џџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџр?џџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџќџџџџџџџџџџџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџјџџџџџџџџџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџџџџџџџр?џџџџџџџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџќзlшСюзђџџџџџџџџџџџџџџџџџџџџџџџјџџџџџџџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџџџџџр?џџџџџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџќџџџџџџџџџџџџџџџџџџџџџќџџџџџџџџџџџџџџџџџџџџџјџџџџџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџџџр?џџџџџџџџџџџџџџџџџџџџр?џџџџџџџџџџџџџџџџџџџџРџџзmшЗќџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџќџџџџџџџџџџџџџџџџџџџќџџџџџџџџџџџџџџџџџџџќџџџџџџџџџџџџџџџџџџџјџџџџџџџџџџџџџџџџџџџјџџџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџзnшŽЙyџџџџџ№џџџџџџџџџџџџџџџџџџр?џџџџџџџџџџџџџџџџџџр?џџџџџџџџџџџџџџџџџџр?џџџџџџџџџџџџџџџџџџр?џџџџџџџџџџџџџџџџџџР?џџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРзoшсžљЗџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџР?џџџџџџџџџџџџџџџџџџр?џџџзpшРEИZџџџџџџџџџџџџџџџр?џџџџџџџџџџџџџџџџџџр?џџџџџџџџџџџџџџџџџџрџџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџџјџџџџџџџџџџџџџџџџџџџјџџџџџџџџџџџџџџџџџџџќџџџџџџџџџџџџџџџџџџџќџџџџџџџџџџџџџџџџџџџќџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџзqшсЩW™џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџџџр?џџџџџџџџџџџџџџџџџџџџр?џџџџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџџџјџџџџџџџџџџџџџџџџџџџџџќџџџџџџџџџџџџџџџџџџџџџќџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџџџџџРзrшЭОЯ†џџџџџџџџџџџџџџџџџџџџџџр?џџџџџџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџџџџџјџџџџџџџџџџџџџџџџџџџџџџџќџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџџџџџџџр?џџџџџџџџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџџџџџџџјџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџџџџџџџџџјџџџџџџџџџџз]ш5МHџџџџџџ§ џџџџџџџџџџџџџџџџџџџџџў џџџџџџџџџџџџџџџџџџџџџџH—џџџџџџџџџџџџџџџџџџџџџџЄ/џџџџџџџџџџџџџџџџџџџџџџв_џџџџџџџџџџџџџџџџџџџџџџщПџџџџџџџџџџџџџџџџџџџџџџє€џџџџџџџџџџџџџџџџџџџџџџњ@џџџџџџџџџџџџџџџџџџџџџџџ§PUџџџџџџџџџџџџџџџџџџџџџџџўˆџџџџџџџџџџџџџџџџџџџџџџџџ$/џџџџџџџџџџџџџџџџџџџџџџџџе_џџџџџџџџџџџџџџџџџџџџџџџџс@?џџџџџџџџџџџџџџџџџџџџџџџџњ $џџџџџџџџџџџџџџџџџџџџџџџџџќЌз^шˆоЈHЋџџџџџџџџџџџџџџџџџџџџџџџџџџ%€ 'џџџџџџџџџџџџџџџџџџџџџџџџџџЩ@(ŸџџџџџџџџџџџџџџџџџџџџџџџџџџѓXІџџџџџџџџџџџџџџџџџџџџџџџџџџќЩ€“џџџџџџџџџџџџџџџџџџџџџџџџџџџџ‘žиЯџџџџџџџџџџџџџџџџџџџџџџџџџџџџѓŽџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ<чџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџз_шџџј;џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџз`шšъnџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќСџџџџџџџџџџџџџџџџџџџџџџџџџџџџџсР?џџџџџџџџџџџџџџџџџџџџџџџџџџџџЧџџџџџџџџџџџџџџџџџџџџџџџџџџџќ`1џџџџџџџџџџџџџџџџџџџџџџџџџџџу€џџџџџџџџџџџџџџџџџџџџџџџџџџŒŸџџџџџџџџџџџџџџџџџџџџџџџџџџ0gџџџџџџџџџџџџџџџџџџџџџџџџџќ@зaш‹OЪгџџџџџџџџџџџџџџџџџџџџџџџџџё€ џџџџџџџџџџџџџџџџџџџџџџџџџц?џџџџџџџџџџџџџџџџџџџџџџџџШŸџџџџџџџџџџџџџџџџџџџџџџџџGџџџџџџџџџџџџџџџџџџџџџџџў`3џџџџџџџџџџџџџџџџџџџџџџџќ€ џџџџџџџџџџџџџџџџџџџџџџџљџџџџџџџџџџџџџџџџџџџџџџџђџџџџџџџџџџџџџџџџџџџџџџф?џџџџџџџџџџџџџџџџџџџџџџШŸџџџџџџџџџџџџџџџџџџџџџџOџџџџџџџџџџџџџџџџџџџџџџ 'џџџџџџџџџџџџџџџџџџџџџў@џџџџџџџџџџџџџџџџџџџџџќ€ џџџџџџџзbшэ Kџџџџџџџџџџџџџџљџџџџџџџџџџџџџџџџџџџџџњџџџџџџџџџџџџџџџџџџџџџђџџџџџџџџџџџџџџџџџџџџф?џџџџџџџџџџџџџџџџџџџџШПџџџџџџџџџџџџџџџџџџџџа_џџџџџџџџџџџџџџџџџџџџOџџџџџџџџџџџџџџџџџџџџ /џџџџџџџџџџџџџџџџџџџџ 'џџџџџџџџџџџџџџџџџџџў@џџџџџџџџџџџџџџџџџџџў€ џџџџџџџџџџџџџџџџџџџќ€ џџџџџџџџџџџџџџџџџџџ§џџџџџџџџџџџџџџџџџџџ§џџџџџџџџџџџџџџџџџџзcшёЈѓџњџџџџџџџџџџџџџџџџџџџњџџџџџџџџџџџџџџџџџџџђџџџџџџџџџџџџџџџџџџєџџџџџџџџџџџџџџџџџџєџџџџџџџџџџџџџџџџџџш?џџџџџџџџџџџџџџџџџџшПџџџџџџџџџџџџџџџџџџшПџџџџџџџџџџџџџџџџџџРŸџџџџџџџџџџџџџџџџџџа_џџџџџџџџџџџџџџџџџџа_џџџџџџџџџџџџџџџџџџа_џџџџџџџџџџџџџџџџџџ€Oџџџџџџџџџџџџџџџџџџ џџџџџџџџџџџџџџџџџџ зdшЖ^еИ/џџџџџџџџџџџџџџџџџџ /џџџџџџџџџџџџџџџџџџ /џџџџџџџџџџџџџџџџџџ /џџџџџџџџџџџџџџџџџџ'џџџџџџџџџџџџџџџџџџ'џџџџџџџџџџџџџџџџџџ'џџџџџџџџџџџџџџџџџџ'џџџџџџџџџџџџџџџџџџ'џџџџџџџџџџџџџџџџџџ'џџџџџџџџџџџџџџџџџџ'џџџџџџџџџџџџџџџџџџ'џџџџџџџџџџџџџџџџџџ'џџџџџџџџџџџџџџџџџџ'џџџџџџџџџџџџџџџџџџ'џџџџџџџзeшjЦ"Іџџџџџџџџџџџ'џџџџџџџџџџџџџџџџџџ'џџџџџџџџџџџџџџџџџџ /џџџџџџџџџџџџџџџџџџ /џџџџџџџџџџџџџџџџџџ /џџџџџџџџџџџџџџџџџџ /џџџџџџџџџџџџџџџџџџ џџџџџџџџџџџџџџџџџџ€Oџџџџџџџџџџџџџџџџџџа_џџџџџџџџџџџџџџџџџџа_џџџџџџџџџџџџџџџџџџаџџџџџџџџџџџџџџџџџџРŸџџџџџџџџџџџџџџџџџџшПџџџџџџџџџџџџџџџџџџшПџџџџџџџџџџџџџџџџџџшзfш OУs?џџџџџџџџџџџџџџџџџџєџџџџџџџџџџџџџџџџџџєџџџџџџџџџџџџџџџџџџђџџџџџџџџџџџџџџџџџџџњџџџџџџџџџџџџџџџџџџџњџџџџџџџџџџџџџџџџџџџ§џџџџџџџџџџџџџџџџџџџ§џџџџџџџџџџџџџџџџџџџў€ џџџџџџџџџџџџџџџџџџџў€ џџџџџџџџџџџџџџџџџџџџ@џџџџџџџџџџџџџџџџџџџџ 'џџџџџџџџџџџџџџџџџџџџ /џџџџџџџџџџџџџџџџџџџџ_џџџџџџџџџџџџџџџџџџџџазgш ањ_џџџџџџџџџџџџџџџџџџџџшПџџџџџџџџџџџџџџџџџџџџф?џџџџџџџџџџџџџџџџџџџџђџџџџџџџџџџџџџџџџџџџџњџџџџџџџџџџџџџџџџџџџџџљџџџџџџџџџџџџџџџџџџџџџќ€ џџџџџџџџџџџџџџџџџџџџџў@џџџџџџџџџџџџџџџџџџџџџџ 'џџџџџџџџџџџџџџџџџџџџџџOџџџџџџџџџџџџџџџџџџџџџџШŸџџџџџџџџџџџџџџџџџџџџџџф?џџџџџџџџџџџџџџџџџџџџџџђџџџџџџџџџџџџџџџџџџџџџџљџџџџџџџџџџџџџџџџџџџџџџџќ€ џџџџџџџџџџџџзRш"ќxџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџзSш#ќјџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€зTш$%ЛЄLџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ–/_ Ÿ П пџнЛ™fD"џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџзUш%Щј:џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ<чџџџзVш&яІ”УџџџџџџџџџџџџџџџџџџџџџџџџџџѓџћЦџџџџџџџџџџџџџџџџџџџџџџџџџџџџ‘ОьOџџџџџџџџџџџџџџџџџџџџџџџџџџџќ›€ЩџџџџџџџџџџџџџџџџџџџџџџџџџџџђXвџџџџџџџџџџџџџџџџџџџџџџџџџџг@џџџџџџџџџџџџџџџџџџџџџџџџџџK‡џџџџџџџџџџџџџџџџџџџџџџџџџќЈЉџџџџџџџџџџџџџџџџџџџџџџџџџњ "џџџџџџџџџџџџџџџџџџџџџџџџџщ@?џџџџџџџџџџџџџџџџџџџџџџџџе_џџџџџџџџџџџџџџџџџџџџџџџџ$'џџџџџџџџџџџџџџџџџџџџџџџў€‹џџџџџџџџџџџџџџџџџџџџџџџ§PUџџџџџџџџџџџџџџџџџџџџџџџњ@џџџџџџџџџџџџзWш'Rш:-%0џџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџз?ш;YaRDџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўз@ш<ђщ џџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџзAш=ђъ џџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџзBш>ёъџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўзCш?ёъџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџзDш@ђщџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџзEшAђъџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўзFш,ђщџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџўџџџџџџџџџз1шCtIъљџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџз2шD„Hfї№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№з3шE/9|6џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџз4шFђє{F?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№з5шGV›я~џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџз6шH4%)џџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџз7шI&%(џџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџз8шJ.%%%џџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџз9шK-4џџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџз:шL-4#џџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџз;ш7-4%&џџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџўџџџџџџџџз&шNџџј?џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџз'шOџџј=џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџз(шPџџј;џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџз)шQџџј9џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџз*шRЌAшџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ–/_ Ÿ П пџнЛ™fD"з+шSs6k0џ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№з,шT„9цёџўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?з-шU3I{)џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№з.шVnєl<џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўз/шWюј|8џ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№з0шBƒ4'?џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џџ?џ№џўџ№џџ?џ№џџ?џ№џv*шY—шxфff,$22,$ff,$22,$ff,$22,$ff,$33,$ee,$33,$ee,$44,$dd,$44,$dd dc.w $55,$cc,$55,$cc,$66,$bb,$66,$bb,$77,$aa,$88,$99,$99,$88,$99,$88 dc.w $aa,$77,$aa,$77,$bb,$66,$bb,$66,$cc,$55,$cc,$55,$cc,$55,$cc,$55 dc.w $dd,$44,$dd,$44,$dd,$44,$dd,$44,$dd,$44,$dd,$44,$dd,$44,$dd,$44 dc.w $dd,$44,$dd,$44,$dd,$44,$cc,$55,$cc,$55,$bb,$66,$bb,$66,$bb,$66 dc.w $aa,$77,$aa,$77,$99,$88,$99,$88,$88,$99,$77,$aa,$77,$aa,$77,$aa dc.w $66,$bb,$55,$cc,$44,$dd,$44,$dd,$33,$ee,$33,$ee,$22,$ff,$22,$ff dc.w $22,$ff,$2v+шZЏє г2,$ff,$ff,$ff,$ff,$ff,$ff dc.w $00,$00,$11,$11,$11,$22,$22,$22,$22,$33,$33,$33,$33,$33,$44,$44 dc.w $44,$44,$44,$44,$55,$55,$55,$55,$55,$55,$55,$66,$66,$66,$66,$66 dc.w $66,$66,$66,$77,$77,$77,$77,$77,$77,$77,$77,$77,$88,$88,$88,$88 dc.w $88,$88,$88,$88,$77,$77,$77,$77,$77,$77,$77,$77,$77,$66,$66,$66 dc.w $66,$66,$66,$66,$66,$55,$55,$55,$55,$55,$55,$55,$44,$44,$44,$44 dc.w $44,$44,$33,$33,$33,$33,$33,$22,$22,$22,$22,$11,$11,$11,$00,$00 colortab: dc.w $000,$000 dc.w $000,$100,$200,$3v,зќ3мл00,$400,$500,$600,$700,$800,$900,$a00,$b00 dc.w $c00,$d00,$e00,$f00,$f00,$e00,$d00,$c00,$b00,$a00,$900,$800 dc.w $700,$600,$500,$400,$300,$200,$100 wabzwischen: dc.w 0 colcol: add.w #1,coloc colocc: cmp.w #300,coloc bne colocd colocd: cmp.w #600,coloc bne coloce move.w #0,coloc coloce: rts coloc: dc.w 0 stopptab: dc.w $00,$00,$00,$00,$00,$00,$00,$00,$11,$22,$33,$44,$55,$66,$77,$88 dc.w $99,$aa,$bb,$cc,$dd,$ee,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff dc.w $ff,$ff,$ff f dc.w $22,$ff,$2зш\€ x?џџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџз ш]џ§wёџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€€€€€€€€з!ш_ѕwВ€€€€€€€€€€€€€€ш d '€џрюНюёюў„Ф|Ф;€€€?џџџќџџџќР@€0џџџџџџ  РАпџџџџџџррŸџџџџџџPр€џ€€џџ€№ш€џ?nЗрРрџрјРР€>nрррџ4шРB§<@0Р€?, №Рџ}ƒ|@;€№ррў|‚}€€јрр€|€€ррƒ|€€шрќ€€јрќ€€јрќ€ €@јр€ќ€nДрЧрјјрџ~nрчрјќр€џ€з"ш`ѕwА€€€€€€€€€€€€€€з#шaџѕw­€€€€€€€€€€€€€€€з$шbѕwЌ€€€€€€€€€€€€€€з%шMљx€€€€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџvшdНїЦ0300,lineccc move.w #$0400,linecccc move.w #$0500,lineccccc move.w #$0600,linecccccc move.w #$0700,lineccccccc move.w #$0800,linecccccccc move.w #$0900,lineccccccccc move.w #$0a00,linecccccccccc move.w #$0b00,lineccccccccccc move.w #$0c00,linecccccccccccc move.w #$0d00,lineccccccccccccc move.w #$0e00,linecccccccccccccc move.w #$0f00,lineccccccccccccccc move.w #$0f00,line1c move.w #$0e00,line11c move.w #$0d00,line111c move.w #$0c00,line1111c move.w #$0b00,line11111c move.w #$0a00,linev шeSfqŠ111111c move.w #$0900,line1111111c move.w #$0800,line11111111c move.w #$0700,line111111111c move.w #$0600,line1111111111c move.w #$0500,line11111111111c move.w #$0400,line111111111111c move.w #$0300,line1111111111111c move.w #$0200,line11111111111111c move.w #$0100,line111111111111111c rts equalizer4: move.w $6f660,d0 and #8,d0 bne nextd tst.w lineddddddddddddddd beq endd cmp.w #$000,lined beq next422 sub.w #$111,lined sub.w #$111,line111111111111111d next422: cmp.w #$000,linedd beqv!шf_Nˆ next43 sub.w #$111,linedd sub.w #$111,line11111111111111d next43: cmp.w #$000,lineddd beq next44 sub.w #$111,lineddd sub.w #$111,line1111111111111d next44: cmp.w #$000,linedddd beq next45 sub.w #$111,linedddd sub.w #$111,line111111111111d next45: cmp.w #$000,lineddddd beq next46 sub.w #$111,lineddddd sub.w #$111,line11111111111d next46: cmp.w #$000,linedddddd beq next47 sub.w #$111,linedddddd sub.w #$111,line1111111111d next47: cmp.w #$000,lineddddddd beq next48 sub.w #$111,lineddddv"шgz „tddd sub.w #$111,line111111111d next48: cmp.w #$000,linedddddddd beq next49 sub.w #$111,linedddddddd sub.w #$111,line11111111d next49: cmp.w #$000,lineddddddddd beq next50 sub.w #$111,lineddddddddd sub.w #$111,line1111111d next50: cmp.w #$000,linedddddddddd beq next51 sub.w #$111,linedddddddddd sub.w #$111,line111111d next51: cmp.w #$000,lineddddddddddd beq next52 sub.w #$111,lineddddddddddd sub.w #$111,line11111d next52: cmp.w #$000,linedddddddddddd beq next53 sub.w #$111,linedddddddv#шhрсНddddd sub.w #$111,line1111d next53: cmp.w #$000,lineddddddddddddd beq next54 sub.w #$111,lineddddddddddddd sub.w #$111,line111d next54: cmp.w #$000,linedddddddddddddd beq next55 sub.w #$111,linedddddddddddddd sub.w #$111,line11d next55: sub.w #$111,lineddddddddddddddd sub.w #$111,line1d endd: rts nextd: move.w #$0111,lined move.w #$0222,linedd move.w #$0333,lineddd move.w #$0444,linedddd move.w #$0555,lineddddd move.w #$0666,linedddddd move.w #$0777,lineddddddd move.w #$0888,linedddv$шiЄ+*Hddddd move.w #$0999,lineddddddddd move.w #$0aaa,linedddddddddd move.w #$0bbb,lineddddddddddd move.w #$0ccc,linedddddddddddd move.w #$0ddd,lineddddddddddddd move.w #$0eee,linedddddddddddddd move.w #$0fff,lineddddddddddddddd move.w #$0fff,line1d move.w #$0eee,line11d move.w #$0ddd,line111d move.w #$0ccc,line1111d move.w #$0bbb,line11111d move.w #$0aaa,line111111d move.w #$0999,line1111111d move.w #$0888,line11111111d move.w #$0777,line111111111d move.w #$0666,line1111111111d move.w #$0v%шj|†Ж555,line11111111111d move.w #$0444,line111111111111d move.w #$0333,line1111111111111d move.w #$0222,line11111111111111d move.w #$0111,line111111111111111d rts bbusy: btst #14,$dff002 bne bbusy rts blitter2: bsr bbusy move.l #$e9f00000,$dff040 move.l #$ffffffff,$dff044 move.l #$0005c002,$dff050 move.l #$0005c000,$dff054 move.l #$00000000,$dff064 move.w #$122c,$dff058 rts keytab: dc.b "abcdefghi" dc.b "jklmnopqr" dc.b "stuvwxyz-" dc.b "012345678" dc.b "9,:.!()?/" even mesv&шk8'г_s_ptr2: dc.l 0 even writespace: lea $5e02a,a1 move.l #135,d0 wloop3: move.l #0,(a1) add.l #23,a1 dbra d0,wloop3 rts writespace2: lea $5c02a,a1 move.l #135,d0 wloop4: move.l #0,(a1) add.l #46,a1 dbra d0,wloop4 rts newchar2: move.l #message2-1,mess_ptr2 getchar2: add.l #1,mess_ptr2 move.l mess_ptr2,a0 move.b (a0),d0 cmp.b #32,d0 beq writespace2 zero2: cmp.b #0,d0 beq newchar2 clr.l d1 lea keytab,a0 move.l #44,d2 cmploop2: cmp.b (a0)+,d0 beq gotit2 v'шlЃX‰ add.l #1,d1 dbra d2,cmploop2 gotit2: mulu #544,d1 add.l #$60000,d1 move.l d1,a0 lea $5c02a,a1 move.l #135,d0 wloop2: move.l (a0)+,(a1) add.l #46,a1 dbra d0,wloop2 rts message2: dc.b " hermanns und kommelter sagen recht herzlichen guten tag !!!" dc.b " wir, die spezialisten in sachen pd-software presentieren eine" dc.b "n vollstaendigen pd katalog auf diskette !!! fuer spezielle f" dc.b "ragen stehen wir gerne rede und antwort !!! erreichbar sind w" dc.b "ir untv(шmЦЁ$џer der adresse : public-domain-software - vom-bruc" dc.b "k platz 45 - 4150 krefeld oder aber unter der telefon-" dc.b "nummer 0 21 51 - 39 98 33 ..... ich wiederhole 0 21 51 " dc.b "- 39 98 33 !!! unser angebot reicht von fred fisk ueber kl" dc.b "einserien bis hin zur kompletten atari und ibm public domain s" dc.b "oftware !!!! wir wuenschen ihnen gute unterhaltung beim" dc.b " lesen dieser diskette !!! dieses demo wurde von d.d. g" dc.b "eschv)шX3}Іrieben !!! text startet von vorne !!!! ......... " dc.b 0 even sctest2: dc.w 0 even scroll2: add.w #1,sctest2 cmp.w #16,sctest2 bne runover2 clr.w sctest2 bsr getchar2 runover2: bsr blitter2 rts wabbler: lea wabtab,a0 move.w (a0),d0 move.w #114,d1 waveit: move.w 2(a0),(a0)+ dbra d1,waveit move.w d0,(a0)+ ;lea wab,a0 lea wabtab,a1 move.w #94,d0 schleifewab: add.w #6,a0 move.w (a1)+,(a0)+ btst #6,$bfe001 bne gowab2 jmp stop gowab2: dbra d0,schleifewab rts wabtab: dc.w $22,$vшoS9ћ beq next8 sub.w #$111,lineaaaaaaaa sub.w #$111,line11111111 next8: cmp.w #$000,lineaaaaaaaaa beq next9 sub.w #$111,lineaaaaaaaaa sub.w #$111,line1111111 next9: cmp.w #$000,lineaaaaaaaaaa beq next10 sub.w #$111,lineaaaaaaaaaa sub.w #$111,line111111 next10: cmp.w #$000,lineaaaaaaaaaaa beq next12 sub.w #$111,lineaaaaaaaaaaa sub.w #$111,line11111 next12: cmp.w #$000,lineaaaaaaaaaaaa beq next13 sub.w #$111,lineaaaaaaaaaaaa sub.w #$111,line1111 next13: cmp.w #$000,lineaaaaaaaaaaaaa beq nevшp%“Х_xt14 sub.w #$111,lineaaaaaaaaaaaaa sub.w #$111,line111 next14: cmp.w #$000,lineaaaaaaaaaaaaaa beq next15 sub.w #$111,lineaaaaaaaaaaaaaa sub.w #$111,line11 next15: sub.w #$111,lineaaaaaaaaaaaaaaa sub.w #$111,line1 enda: rts nexta: move.w #$0111,linea move.w #$0222,lineaa move.w #$0333,lineaaa move.w #$0444,lineaaaa move.w #$0555,lineaaaaa move.w #$0666,lineaaaaaa move.w #$0777,lineaaaaaaa move.w #$0888,lineaaaaaaaa move.w #$0999,lineaaaaaaaaa move.w #$0aaa,lineaaaaaaaaaa move.w #$0bbvшq ШЂb,lineaaaaaaaaaaa move.w #$0ccc,lineaaaaaaaaaaaa move.w #$0ddd,lineaaaaaaaaaaaaa move.w #$0eee,lineaaaaaaaaaaaaaa move.w #$0fff,lineaaaaaaaaaaaaaaa move.w #$0fff,line1 move.w #$0eee,line11 move.w #$0ddd,line111 move.w #$0ccc,line1111 move.w #$0bbb,line11111 move.w #$0aaa,line111111 move.w #$0999,line1111111 move.w #$0888,line11111111 move.w #$0777,line111111111 move.w #$0666,line1111111111 move.w #$0555,line11111111111 move.w #$0444,line111111111111 move.w #$0333,line1111111111111 movшr1Хnэve.w #$0222,line11111111111111 move.w #$0111,line111111111111111 rts equalizer2: move.w $6f660,d0 and #2,d0 bne nextb tst.w linebbbbbbbbbbbbbbb beq endb cmp.w #$000,lineb beq next155 sub.w #$100,lineb sub.w #$100,line111111111111111b next155: cmp.w #$000,linebb beq next16 sub.w #$100,linebb sub.w #$100,line11111111111111b next16: cmp.w #$000,linebbb beq next17 sub.w #$100,linebbb sub.w #$100,line1111111111111b next17: cmp.w #$000,linebbbb beq next18 sub.w #$100,linebbbb sub.w #$100,vшsl7Б™line111111111111b next18: cmp.w #$000,linebbbbb beq next19 sub.w #$100,linebbbbb sub.w #$100,line11111111111b next19: cmp.w #$000,linebbbbbb beq next20 sub.w #$100,linebbbbbb sub.w #$100,line1111111111b next20: cmp.w #$000,linebbbbbbb beq next21 sub.w #$100,linebbbbbbb sub.w #$100,line111111111b next21: cmp.w #$000,linebbbbbbbb beq next22 sub.w #$100,linebbbbbbbb sub.w #$100,line11111111b next22: cmp.w #$000,linebbbbbbbbb beq next23 sub.w #$100,linebbbbbbbbb sub.w #$100,line1111111b vшtИо†Сnext23: cmp.w #$000,linebbbbbbbbbb beq next24 sub.w #$100,linebbbbbbbbbb sub.w #$100,line111111b next24: cmp.w #$000,linebbbbbbbbbbb beq next25 sub.w #$100,linebbbbbbbbbbb sub.w #$100,line11111b next25: cmp.w #$000,linebbbbbbbbbbbb beq next26 sub.w #$100,linebbbbbbbbbbbb sub.w #$100,line1111b next26: cmp.w #$000,linebbbbbbbbbbbbb beq next27 sub.w #$100,linebbbbbbbbbbbbb sub.w #$100,line111b next27: cmp.w #$000,linebbbbbbbbbbbbbb beq next28 sub.w #$100,linebbbbbbbbbbbbbb sub.w #$100,lvшulєА\ine11b next28: sub.w #$100,linebbbbbbbbbbbbbbb sub.w #$100,line1b endb: rts nextb: move.w #$0100,lineb move.w #$0200,linebb move.w #$0300,linebbb move.w #$0400,linebbbb move.w #$0500,linebbbbb move.w #$0600,linebbbbbb move.w #$0700,linebbbbbbb move.w #$0800,linebbbbbbbb move.w #$0900,linebbbbbbbbb move.w #$0a00,linebbbbbbbbbb move.w #$0b00,linebbbbbbbbbbb move.w #$0c00,linebbbbbbbbbbbb move.w #$0d00,linebbbbbbbbbbbbb move.w #$0e00,linebbbbbbbbbbbbbb move.w #$0f00,linebbbbbbbbbbbbbbbvшvUХ,I move.w #$0f00,line1b move.w #$0e00,line11b move.w #$0d00,line111b move.w #$0c00,line1111b move.w #$0b00,line11111b move.w #$0a00,line111111b move.w #$0900,line1111111b move.w #$0800,line11111111b move.w #$0700,line111111111b move.w #$0600,line1111111111b move.w #$0500,line11111111111b move.w #$0400,line111111111111b move.w #$0300,line1111111111111b move.w #$0200,line11111111111111b move.w #$0100,line111111111111111b rts equalizer3: move.w $6f660,d0 and #4,d0 bne nextc tst.w linecccvшw†йF›cccccccccccc beq endc cmp.w #$000,linec beq next29 sub.w #$100,linec sub.w #$100,line111111111111111c next29: cmp.w #$000,linecc beq next30 sub.w #$100,linecc sub.w #$100,line11111111111111c next30: cmp.w #$000,lineccc beq next31 sub.w #$100,lineccc sub.w #$100,line1111111111111c next31: cmp.w #$000,linecccc beq next32 sub.w #$100,linecccc sub.w #$100,line111111111111c next32: cmp.w #$000,lineccccc beq next33 sub.w #$100,lineccccc sub.w #$100,line11111111111c next33: cmp.w #$000,linevшxˆ’cccccc beq next34 sub.w #$100,linecccccc sub.w #$100,line1111111111c next34: cmp.w #$000,lineccccccc beq next35 sub.w #$100,lineccccccc sub.w #$100,line111111111c next35: cmp.w #$000,linecccccccc beq next36 sub.w #$100,linecccccccc sub.w #$100,line11111111c next36: cmp.w #$000,lineccccccccc beq next37 sub.w #$100,lineccccccccc sub.w #$100,line1111111c next37: cmp.w #$000,linecccccccccc beq next38 sub.w #$100,linecccccccccc sub.w #$100,line111111c next38: cmp.w #$000,lineccccccccccc bvшc7Тœ2eq next39 sub.w #$100,lineccccccccccc sub.w #$100,line11111c next39: cmp.w #$000,linecccccccccccc beq next40 sub.w #$100,linecccccccccccc sub.w #$100,line1111c next40: cmp.w #$000,lineccccccccccccc beq next41 sub.w #$100,lineccccccccccccc sub.w #$100,line111c next41: cmp.w #$000,linecccccccccccccc beq next42 sub.w #$100,linecccccccccccccc sub.w #$100,line11c next42: sub.w #$100,lineccccccccccccccc sub.w #$100,line1c endc: rts nextc: move.w #$0100,linec move.w #$0200,linecc move.w #$Ч"шzД›ЩЇ " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " Ч#ш{ЖгїŽ " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " OTTO3: DC.B $01 Ч$К›Ь " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " v ш}Ы$0198,$0000,$019a,$0000,$019c,$0000,$019e,$0000 dc.l $de09fffe,$01000200 labelone: dc.w $df09 dc.w $fffe,$0100,$4200 ; SCROLLPLANES ON ;dc.w $f409,$fffe,$0100,$0000 ; **************************************************** dc.w $f611,$fffe,$0180 linec: dc.w $0000 dc.w $f711,$fffe,$0180 linecc: dc.w $0000 dc.w $f811,$fffe,$0180 lineccc: dc.w $0000 dc.w $f911,$fffe,$0180 linecccc: dc.w $0000 dc.w $fa11,$fffe,$0180 lineccccc: dc.w $0000 dc.w $fb11,$fffe,$0180 linecccccc: dc.w $0000 dc.w $v ш~ЅDЫћfc11,$fffe,$0180 lineccccccc: dc.w $0000 dc.w $fd11,$fffe,$0180 linecccccccc: dc.w $0000 dc.w $fe11,$fffe,$0180 lineccccccccc: dc.w $0000 dc.w $ff11,$fffe,$0180 linecccccccccc: dc.w $0000 dc.l $ffdffffe dc.w $0011,$fffe,$0180 lineccccccccccc: dc.w $0000 dc.w $0111,$fffe,$0180 linecccccccccccc: dc.w $0000 dc.w $0211,$fffe,$0180 lineccccccccccccc: dc.w $0000 dc.w $0311,$fffe,$0180 linecccccccccccccc: dc.w $0000 dc.w $0411,$fffe,$0180 lineccccccccccccccc: dc.w $0000 dc.w $0511,$fffe,$01vшцЬkœ80 line1c: dc.w $0000 dc.w $0611,$fffe,$0180 line11c: dc.w $0000 dc.w $0611,$fffe,$0180 line111c: dc.w $0000 dc.w $0711,$fffe,$0180 line1111c: dc.w $0000 dc.w $0811,$fffe,$0180 line11111c: dc.w $0000 dc.w $0911,$fffe,$0180 line111111c: dc.w $0000 dc.w $0a11,$fffe,$0180 line1111111c: dc.w $0000 dc.w $0b11,$fffe,$0180 line11111111c: dc.w $0000 dc.w $0c11,$fffe,$0180 line111111111c: dc.w $0000 dc.w $0d11,$fffe,$0180 line1111111111c: dc.w $0000 dc.w $0e11,$fffe,$0180 line11111111111c: dcvш€ ‡p§.w $0000 dc.w $0f11,$fffe,$0180 line111111111111c: dc.w $0000 dc.w $1011,$fffe,$0180 line1111111111111c: dc.w $0000 dc.w $1111,$fffe,$0180 line11111111111111c: dc.w $0000 dc.w $1211,$fffe,$0180 line111111111111111c: dc.w $0000 dc.w $0100,$0000 dc.w $1311,$fffe,$0180 lined: dc.w $0000 dc.w $1411,$fffe,$0180 linedd: dc.w $0000 dc.w $1511,$fffe,$0180 lineddd: dc.w $0000 dc.w $1611,$fffe,$0180 linedddd: dc.w $0000 dc.w $1711,$fffe,$0180 lineddddd: dc.w $0000 dc.w $1811,$fffe,$0180 linedvшЭ›6фddddd: dc.w $0000 dc.w $1911,$fffe,$0180 lineddddddd: dc.w $0000 dc.w $1a11,$fffe,$0180 linedddddddd: dc.w $0000 dc.w $1b11,$fffe,$0180 lineddddddddd: dc.w $0000 dc.w $1c11,$fffe,$0180 linedddddddddd: dc.w $0000 dc.w $1d11,$fffe,$0180 lineddddddddddd: dc.w $0000 dc.w $1e11,$fffe,$0180 linedddddddddddd: dc.w $0000 dc.w $1f11,$fffe,$0180 lineddddddddddddd: dc.w $0000 dc.w $2011,$fffe,$0180 linedddddddddddddd: dc.w $0000 dc.w $2111,$fffe,$0180 lineddddddddddddddd: dc.w $0000 dc.w $2211,vш‚ЈМŽт$fffe,$0180 line1d: dc.w $0000 dc.w $2311,$fffe,$0180 line11d: dc.w $0000 dc.w $2411,$fffe,$0180 line111d: dc.w $0000 dc.w $2511,$fffe,$0180 line1111d: dc.w $0000 dc.w $2611,$fffe,$0180 line11111d: dc.w $0000 dc.w $2711,$fffe,$0180 line111111d: dc.w $0000 dc.w $2811,$fffe,$0180 line1111111d: dc.w $0000 dc.w $2911,$fffe,$0180 line11111111d: dc.w $0000 dc.w $2a11,$fffe,$0180 line111111111d: dc.w $0000 dc.w $2b11,$fffe,$0180 line1111111111d: dc.w $0000 dc.w $2c11,$fffe,$0180 line1111111vшƒЏjE€1111d: dc.w $0000 dc.w $2d11,$fffe,$0180 line111111111111d: dc.w $0000 dc.w $2e11,$fffe,$0180 line1111111111111d: dc.w $0000 dc.w $2f11,$fffe,$0180 line11111111111111d: dc.w $0000 dc.w $3011,$fffe,$0180 line111111111111111d: dc.w $0000 dc.l $fffffffe equalizer1: move.w $6f660,d0 and #1,d0 bne nexta tst.w lineaaaaaaaaaaaaaaa beq enda cmp.w #$000,linea beq next1 sub.w #$111,linea sub.w #$111,line111111111111111 next1: cmp.w #$000,lineaa beq next2 sub.w #$111,lineaa sub.w #$111,line111vшnћJ11111111111 next2: cmp.w #$000,lineaaa beq next3 sub.w #$111,lineaaa sub.w #$111,line1111111111111 next3: cmp.w #$000,lineaaaa beq next4 sub.w #$111,lineaaaa sub.w #$111,line111111111111 next4: cmp.w #$000,lineaaaaa beq next5 sub.w #$111,lineaaaaa sub.w #$111,line11111111111 next5: cmp.w #$000,lineaaaaaa beq next6 sub.w #$111,lineaaaaaa sub.w #$111,line1111111111 next6: cmp.w #$000,lineaaaaaaa beq next7 sub.w #$111,lineaaaaaaa sub.w #$111,line111111111 next7: cmp.w #$000,lineaaaaaaaaЧш…+RˆА09, $fffe dc.w $0180, $0000, $8c09, $fffe, $0180, $0000, $8d09, $fffe dc.w $0180, $0000, $8e09, $fffe, $0180, $0000, $8f09, $fffe dc.w $0180, $0000, $9009, $fffe, $0180 OTTO4: dc.w $0000,$9109,$fffe dc.l $0180000e, $9209fffe, $0180000e, $9309fffe dc.l $01800009, $9409fffe, $01800009, $9509fffe dc.l $01800009, $9609fffe ,$01800009, $9709fffe dc.l $01800009, $9809fffe ,$01800009, $9909fffe dc.l $01800009, $9a09fffe, $01800009, $9b09fffe dc.l $01800005, $9c09fffe, $01800005, Чш†cwш$9d09fffe dc.l $01800000, $9e09fffe, $01800000, $9f09fffe dc.l $01800000, $a009fffe, $01800000, $a109fffe dc.l $01800000, $a209fffe, $01800000, $a309fffe dc.l $01800000, $a409fffe, $01800000, $a509fffe dc.l $01800000, $a609fffe, $01800000, $a709fffe dc.l $01800000, $a809fffe, $01800000, $a909fffe dc.l $01800000, $aa09fffe, $01800000, $ab09fffe dc.l $01800000, $ac09fffe, $01800000, $ad09fffe dc.l $01800000, $ae09fffe, $01800000, $af09fffe dc.l $01800000, $b009fffe ,$01800000Чш‡^:С, $b109fffe dc.l $01800000, $b209fffe, $01800000, $b309fffe dc.l $01800000, $b409fffe, $01800000, $b509fffe dc.l $01800000, $b609fffe, $01800000, $b709fffe dc.l $01800000, $b809fffe, $01800000, $b909fffe dc.l $01800000, $ba09fffe, $01800000, $bb09fffe dc.l $01800000, $bc09fffe, $01800000 ,$bd09fffe dc.l $01800000, $be09fffe, $01800000, $bf09fffe dc.l $01800000, $c009fffe, $01800000, $c109fffe dc.l $01800000, $c209fffe, $01800000, $c309fffe dc.l $01800000, $c409fffe, $018000Чшˆ:№‡ 00, $c509fffe dc.l $01800000, $c609fffe, $01800000, $c709fffe dc.l $01800000, $c809fffe, $01800000 ,$c909fffe dc.l $01800000, $ca09fffe, $01800000, $cb09fffe dc.l $01800000, $cc09fffe, $01800000, $cd09fffe dc.l $01800000, $ce09fffe, $01800000, $cf09fffe dc.l $01800000, $d009fffe, $01800000, $d109fffe dc.l $01800000, $d209fffe ,$01800000, $d309fffe dc.l $01800000, $d409fffe, $01800000, $d509fffe dc.l $01800000, $d609fffe, $01800000, $d709fffe dc.l $01800000, $d809fffe, $0180Чш‰`%"€0000, $d909fffe dc.l $01800000, $da09fffe, $01800000, $db09fffe dc.l $01800000, $dc09fffe, $01800000, $dd09fffe dc.l $01800000, $de09fffe ,$01800000, $df09fffe dc.l $01800000, $e009fffe ,$01800000, $e109fffe dc.l $01800000, $e209fffe ,$01800000, $e309fffe dc.l $01800000, $e409fffe, $01800000, $e509fffe dc.l $01800000, $e609fffe, $01800000, $e709fffe dc.l $01800000, $e809fffe, $01800000, $e909fffe dc.l $01800000, $ea09fffe, $01800000, $eb09fffe dc.l $01800000, $ec09fffe, $01ЧшŠхўNм800000, $ed09fffe dc.l $01800000, $ee09fffe, $01800000, $ef09fffe dc.l $01800000, $f009fffe, $01800000, $f109fffe dc.l $01800000, $f209fffe, $01800000, $f309fffe dc.l $01800000, $f409fffe, $01800000, $f509fffe dc.l $01800000, $f609fffe, $01800000, $f709fffe dc.l $01800000, $f809fffe, $01800000, $f909fffe dc.l $01800000, $fa09fffe, $01800000, $fb09fffe dc.l $01800000, $fc09fffe, $01800000, $fd09fffe dc.l $01800000, $fe09fffe, $01800000, $ffe1fffe dc.l $01800000, $0109fffe, $Чш‹a $01800000 ,$0209fffe dc.l $01800000, $0309fffe, $01800000, $0409fffe dc.l $01800000, $0509fffe, $01800000, $0609fffe dc.l $01800000, $0709fffe, $01800000, $0809fffe dc.l $01800000, $0909fffe, $01800000, $0a09fffe dc.l $01800000, $0b09fffe, $01800000, $0c09fffe dc.l $01800000, $0d09fffe, $01800000, $0e09fffe dc.l $01800000, $0f09fffe, $01800000, $1009fffe dc.l $01800000, $1109fffe, $01800000, $1209fffe dc.l $01800000, $1309fffe, $01800000, $1409fffe dc.l $01800000, $1509fffe,ЧшŒ09fў $01800000, $1609fffe dc.l $01800000, $1709fffe, $01800000, $1809fffe dc.l $01800000, $1909fffe, $01800000, $1a09fffe dc.l $01800000, $1b09fffe, $01800000, $1c09fffe dc.l $01800000, $1d09fffe, $01800000, $1e09fffe dc.l $01800000, $1f09fffe, $01800000, $2009fffe dc.l $01800000, $2109fffe, $01800000, $2209fffe dc.l $01800000, $2309fffe, $01800000 ,$2409fffe dc.l $01800000, $2509fffe, $01800000 ,$2609fffe dc.l $01800000, $2709fffe, $01800000 ,$2809fffe dc.l $01800000, $2909fffЧшЈ”te, $01800000 ,$2a09fffe dc.l $01800000, $2b09fffe, $01800000, $2c09fffe dc.l $01800000, $2d09fffe, $01800000, $2e09fffe dc.l $01800000, $2f09fffe, $01800000, $3009fffe dc.l $f2d4b698, $3109fffe, $01800000, $3209fffe dc.l $01800000, $3309fffe, $01800000, $fffffffe OTTO1: DC.L $00000676 DAT1: dc.l $0000221e GFXNAME: dc.b "graphics.library",0 even DAT2: dc.w $0050,$0140,$0001,$0000 DAT3: dc.w $0007,$0000 DAT4: dc.l $00000000 DAT5: dc.w $0006, $103a, $0000 dc.w $0000, $000Ч шŽ#’dI0, $0000, $0000, $0000, $0000, $0000, $ffff dc.w $00ff, $0100 ,$000f, $0001, $ffff, $0280, $0100, $caca dc.w $caca, $caca, $caca, $0000, $0000, $0000, $2378, $0000 dc.w $0009, $000a, $0006, $0000, $0000, $0000, $0000, $0000 dc.w $0000, $0000, $0000, $0000, $0000 COP3: dc.w $001b COP2: dc.w $0006,$15d8,$3c09,$fffe dc.w $3d09,$fffe,$4809,$fffe,$4909,$fffe TEXT1: dc.b " Alpha Flight " dc.b " proudly present Ч!шy їЩ " dc.b " Compacted Disk #181" dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " " dc.b " Ч шхМŒZ, $c431c500, $00010000 dc.l $c6b5c700, $00010000, $c853c900, $00010000 dc.l $ca78cb00, $00010000, $cc11cd00 ,$00010000 dc.l $cedccf00, $00010000, $d077d100 ,$00010000 dc.l $d2cbd300 ,$00010000, $d4ddd500, $00010000 dc.l $d6f4d700 ,$00010000, $d84fd900, $00010000 dc.l $da07db00 ,$00010000, $dc39dd00, $00010000 dc.l $de5ddf00, $00010000, $e049e100, $00010000 dc.l $e2bae300, $00010000, $e473e500, $00010000 dc.l $e61ee700, $00010000, $e873e900, $00010000 dc.l $eabeeb00, $000100Ч ш‘&Rя00, $ec94ed00, $00010000 dc.l $ee49ef00, $00010000, $f099f100, $00010000 dc.l $f231f300, $00010000, $f43bf500, $00010000 dc.l $f616f700, $00010000, $f8ccf900, $00010000 dc.l $fa61fb00, $00010000, $fcd6fd00, $00010000 dc.l $feaeff00, $00010000 SPIEL1: dc.w $0088, $0107, $0001, $0000 dc.w $021e, $0307, $0001, $0000, $04e0, $0507, $0001, $0000 dc.w $06d1, $0707, $0001, $0000, $082f, $0907, $0001, $0000 dc.w $0aab, $0b07, $0001, $0000, $0c0d, $0d07, $0001, $0000 dc.w $0e1a, $0fЧш’:п{Ш07, $0001, $0000, $1003, $1107, $0001, $0000 dc.w $12db, $1307, $0001, $0000, $1420, $1507, $0001, $0000 dc.w $166a, $1707, $0001, $0000, $1845, $1907, $0001, $0000 dc.w $1aef, $1b07, $0001, $0000, $1cb7, $1d07, $0001, $0000 dc.w $1ea6, $1f07, $0001, $0000, $2094, $2107, $0001, $0000 dc.w $2297, $2307, $0001, $0000, $24bc, $2507, $0001, $0000 dc.w $26df, $2707, $0001, $0000, $281f, $2907, $0001, $0000 dc.w $2a6a, $2b00, $0001, $0000, $2cc1, $2d00, $0001, $0000 dc.w $2ed0, $2fЧш“F2Ђь00, $0001, $0000, $30fc, $3100, $0001, $0000 dc.w $329a, $3300, $0001, $0000, $3413, $3500, $0001, $0000 dc.w $3671 ,$3700, $0001, $0000, $3861, $3900, $0001, $0000 dc.w $3a6a ,$3b00, $0001, $0000, $3c6c, $3d00, $0001, $0000 dc.w $3ed1, $3f00, $0001, $0000, $40e4, $4100, $0001, $0000 dc.w $426d, $4300, $0001, $0000, $44bb, $4500, $0001, $0000 dc.w $4633, $4700, $0001, $0000 Cop8: dc.w $0024, $0021, $0015, $0038 dc.w $0064, $0079, $0042, $004f, $0038, $0077, $0055, $006d dc.wЧш”| О& $0013, $0056, $0085, $0074, $0062, $00cc, $008a, $007b dc.w $00ed, $00e5, $0076, $00ac, $00be, $0078, $0071, $0027 dc.w $0090, $0056, $0049, $00a8, $002b, $0083, $00c7, $008d dc.w $0076, $00e8 ,$0073, $00f6, $0034, $0056, $0078, $0012 dc.w $0090, $00cd, $00ea, $0056, $0014, $0078, $0078, $0045 dc.w $0067, $0012, $0090, $00eb, $00a3, $003c, $00c4, $004c dc.w $0088 ,$0076, $0053, $0076, $005a, $0097, $004c, $0035 dc.w $0098, $00d7, $00e4, $0068, $0096, $0072, $004a, $003d dc.wЧш•™РІ) $0058, $006c, $002d, $006e, $0082, $007e, $0064, $00c4 dc.w $0056, $0053, $0087, $0063, $00a9, $00c8, $00c4, $00ed dc.w $004d, $006c, $008a, $007c, $006d, $0028, $0037, $0063 dc.w $0068, $007a, $00a6, $00c8, $0006, $00d3, $00d4, $00e7 dc.w $0070, $00f0 COP7: dc.w $0001, $0003, $0002, $0004, $0003, $0005 dc.w $0001, $0004, $0002, $0003, $0001, $0003, $0002, $0004 dc.w $0003, $0004, $0001, $0002, $0001, $0002, $0001, $0002 dc.w $0001, $0003, $0001, $0004, $0001, $0005, $0002,Чш–тжлЋ $0001 dc.w $0002, $0002, $0002, $0003, $0002, $0004, $0002, $0005 dc.w $0003, $0001, $0003, $0002, $0003, $0003, $0003, $0004 dc.w $0003, $0005, $0004, $0001 ,$0004, $0002, $0004, $0003 dc.w $0004, $0004, $0004 ,$0005, $0001, $0005, $0002, $0005 dc.w $0003 ,$0005, $0004 ,$0005, $0005, $0004, $0001, $0004 dc.w $0002 ,$0004, $0003, $0004 ,$0004, $0004, $0005, $0003 dc.w $0001, $0003, $0002, $0003, $0003, $0003, $0004, $0003 dc.w $0005, $0002, $0001, $0002, $0002, $0002, $0003,Чш—є9#4 $0002 dc.w $0004, $0002, $0005, $0001, $0001, $0001, $0002, $0001 dc.w $0003, $0001, $0004, $0001, $0005, $0005, $0005, $0003 dc.w $0002, $0003, $0001, $0002, $0003, $0004, $0003, $0002 dc.w $0001, $0003 OTTO2: dc.w $008e, $2981, $0090, $30c1, $0092, $0038, $0094, $00d0 dc.w $0096, $83a0, $0108, $0000, $010a, $0000, $0102, $0000 dc.w $0104, $0000, $0100, $a200, $00e0, $0007, $00e2, $0000 dc.w $00e4, $0007, $00e6, $0050, $0120, $0000, $0122, $0000, $0120 OTTO7: dc.l $000601Чш˜hъDё22 OTTO6: dc.w $03e0, $0180, $0000 dc.w $0182, $0750, $0184, $0fe0, $0186, $0fe0, $01a2, $0fff dc.w $3609, $fffe, $0180, $00c0, $3809, $fffe, $0180, $0070 dc.w $6609, $fffe, $0180, $0050, $6809, $fffe, $0180, $0000 dc.w $0182, $0666, $0184, $0eee, $0186, $0eee COP1: dc.w $6509, $fffe dc.w $0180, $0000, $6609, $fffe, $0180, $0000, $6709, $fffe dc.w $0180, $0000, $6809, $fffe, $0180, $0000, $6909, $fffe dc.w $0180, $0000, $6a09, $fffe, $0180, $0000, $6b09, $fffe dc.w $0180, Чш™vЉФf$0000, $6c09, $fffe, $0180, $0000, $6d09, $fffe dc.w $0180, $0000, $6e09, $fffe, $0180, $0000, $6f09, $fffe dc.w $0180 COP4: dc.w $0000, $7009, $fffe, $0180, $0000, $7109, $fffe dc.w $0180, $0000, $7209, $fffe, $0180, $0000, $7309, $fffe dc.w $0180, $0000, $7409, $fffe, $0180, $0000, $7509, $fffe dc.w $0180, $0000, $7609, $fffe, $0180, $0000, $7709, $fffe dc.w $0180, $0000, $7809, $fffe, $0180, $0000, $7909, $fffe dc.w $0180, $0000, $7a09, $fffe, $0180, $0000, $7b09, $fffe dЧш„эмќc.w $0180 COP5: dc.w $0000, $7c09, $fffe, $0180, $0000, $7d09, $fffe dc.w $0180, $0000, $7e09, $fffe, $0180, $0000, $7f09, $fffe dc.w $0180, $0000, $8009 ,$fffe, $0180, $0000, $8109, $fffe dc.w $0180, $0000, $8209, $fffe, $0180, $0000, $8309, $fffe dc.w $0180, $0000, $8409, $fffe, $0180, $0000 ,$8509, $fffe dc.w $0180, $0000, $8609, $fffe, $0180, $0000 ,$8709, $fffe dc.w $0180, $0000, $8809, $fffe, $0180, $0000, $8909, $fffe dc.w $0180, $0000 ,$8a09, $fffe, $0180, $0000, $8bУ ш›шЖ)э$908c, $8985, $817d, $7975, $716c, $6863, $5f5b, $5651 dc.w $4d49, $4440, $3b37, $332f, $2b27, $2320, $1c19, $1613 dc.w $100e, $0c09, $0706, $0403, $0201, $0000, $ff00, $0000 dc.w $0102, $0304, $0607, $090c, $0e10, $1316, $1900 COP1: dc.w $00e0 dc.w $0004, $00e2, $0000, $00e4, $0004, $00e6, $0000, $008e dc.w $2741, $0090, $38e1, $0100, $2200, $0102, $0001, $0180 dc.w $0000, $0182, $0531, $0184, $0863, $01a2, $0aab, $0120 dc.w $0006, $0122, $2000, $0000, $0000, $0000, $0000, У ѕ №б$0000 $0205, $080c, $0f0c, $0805 COP2: dc.w $0200, $0000, $0110, $0210, $0320, $0420, $0530, $0630 dc.w $0740, $0840, $0950, $0a50, $0b60, $0c60, $0d70, $0e70 dc.w $0f80, $fffe COP4: dc.w $0000, $0001, $0203, $0406, $0709, $0c0e dc.w $1013, $1619, $1c20, $2327, $2b2f, $3337, $3b40, $4449 dc.w $4d51, $565b, $5f63, $686c, $7175, $797d, $8185, $898c dc.w $9093, $9699, $9c9e, $a0a3, $a5a6, $a8a9, $aaab, $acac dc.w $acac, $acab, $aaa9, $a8a6, $a5a3, $a09e, $9c99, $9693 dc.w Хшpp|A5 moveq #$04,D5 PRINT: moveq #$00,D0 moveq #$00,D1 move.b (A5),D0 move.b 1(A5),D1 lea $041100,A1 jsr -240(A6) move.b 2(A5),D0 lea $041100,A1 move.l A5,A0 addq.l #3,A0 jsr -60(A6) moveq #$00,D0 moveq #$00,D1 move.b (A5)+,D0 move.b (A5)+,D1 addi.w #$0140,D0 lea $041100,A1 jsr -240(A6) moveq #$00,D0 move.b (A5)+,D0 move.l A5,A0 adda.l D0,A5 lea $041100,A1 jsr -60(A6) dbf D5,PRINT move.l 50(A6),$051000ХшžOд К move.l #$00052000,50(A6) move.w #$8380,$dff096 lea BLUFF(PC),A0 move.l A0,$006c FRAGEN: move.b $bfec01,D7 not.b D7 lsr.b #1,D7 clr.b $bfec01 cmpi.b #$53,D7 bne.s ABFRAGE1 clr.w $0000 bra.s FRAGE2 ABFRAGE1: cmpi.b #$50,D7 bne.s ABFRAGE2 clr.b $0001 bra.s FRAGE2 ABFRAGE2: cmpi.b #$51,D7 bne.s ABFRAGE3 clr.b $0000 bra.s FRAGE2 ABFRAGE3: cmpi.b #$52,D7 bne.s FRAGEN FRAGE2: move.l $051000,50(A6) move.l #$00fc0cd8,$006c move.ХшŸ†ЅЫщl $0004,A6 jsr -138(A6) bsr.s LOST ;movem.l (A7)+,A6-A0/D7-D0 ; lea DOSNAME(PC),A1 ;jsr -96(A6) ;move.l D0,A0 ; move.l 22(A0),A0 ;moveq #$00,D0 rts LOST: tst.b $0000 beq.s DOOF lea DISKY(PC),A1 jsr -498(A6) tst.l D0 beq.s DOOF move.l D0,A0 lea 52(A0),A0 moveq #-1,D0 move.l D0,(A0)+ move.l D0,(A0)+ move.l D0,(A0) DOOF: tst.b $0001 beq.s AUS move.l #$00020004,D1 HUPF: jsr -216(A6) jsr -198(A6) tst.l D0 bnХш З>Je.s HUPF AUS: rts BLUFF: btst #5,$dff01f beq.s ROT bsr.s PORTO ROT: jmp $fc0cd8 PORTO: lea $044000,A4 moveq #$46,D3 lea $043000,A5 GURU: move.w (A4)+,D4 move.w (A4)+,D5 move.w (A4),D6 subq.w #3,(A4)+ tst.w D6 ble.s MIST ext.l D4 ext.l D5 divs D6,D4 divs D6,D5 addi.w #$00a0,D4 addi.w #$0080,D5 tst.w D4 blt.s MIST tst.w D5 blt.s MIST cmpi.w #$013f,D4 bgt.s MIST cmpi.w #$00ff,D5 bgt.s MIST move.w (A5),D0 move.w D4,(A5)+ move.wХшЁT‹еД (A5),D1 move.w D5,(A5)+ bsr.s ROBI move.w D4,D0 move.w D5,D1 mulu #$0028,D1 move.w D0,D2 asr.w #3,D2 add.w D2,D1 asl.w #3,D2 sub.w D0,D2 subq.b #1,D2 cmpi.w #$0190,D6 bgt.s STEFAN cmpi.w #$012c,D6 bgt.s KLOSS lea $035000,A1 bset D2,0(A1,D1.L) addi.l #$00003000,D1 bset D2,0(A1,D1.L) BLOED: dbf D3,GURU rts LUFT: move.w $dff006,D0 lea COPPER(PC),A3 muls (A3),D0 addi.w #$1249,D0 move.w D0,(A3) rts MIST: subq.l #6,A4 bsr.s LUХшЂе˜‡bFT move.w D0,(A4)+ bsr.s LUFT move.w D0,(A4)+ move.w #$0258,(A4)+ bra.s BLOED STEFAN: lea $035000,A1 bra.s POLT KLOSS: lea $038000,A1 POLT: bset D2,0(A1,D1.L) bra.s BLOED ROBI: mulu #$0028,D1 move.w D0,D2 asr.w #3,D2 add.w D2,D1 asl.w #3,D2 sub.w D0,D2 subq.b #1,D2 lea $035000,A1 bclr D2,0(A1,D1.L) addi.l #$00003000,D1 bclr D2,0(A1,D1.L) rts COP1: DC.W $0100, $5200, $00e0, $0003, $00e2, $5000 DC.W $00e4, $0003, $00Х шЃj$De6, $b000, $00e8, $0007, $00ea, $0000 DC.W $00ec, $0007, $00ee, $0028, $00f0, $0003, $00f2, $8000 DC.W $0108, $0000, $010a, $0000, $0102, $0001, $008e, $2c81 DC.W $0090, $2cc1, $0092, $0038, $0094, $00d0 COPPER: DC.W $0000, $2b0f DC.W $fffe, $0180, $0fff, $2c0f, $fffe, $0180, $0000, $ffdf DC.W $fffe, $2c0f, $fffe, $0180, $0fff, $2d0f, $fffe, $0180 DC.W $0000, $ffff, $fffe SOFT: DC.W $0000, $0444, $0000, $0000, $0800 DC.W $0800, $0800, $0800, $0f00, $0f00, $0f00, $0f00, $0fХ жУ­00 DC.W $0f00, $0f00, $0f00, $0888, $0ccc, $0800, $0800, $0800 DC.W $0800, $0800, $0800, $0f00, $0f00, $0f00, $0f00, $0f00 DC.W $0f00, $0f00, $0f00 TEXT: dc.b $38,$7c,$18,$a9 dc.b " 1989 Unknown of D.O.C." dc.b $4b,$32,$10 dc.b "F1 - Kill drives" dc.b $4b,$3c,$11 dc.b "F2 - Kill Fastmem" dc.b $4b,$46,$0e dc.b "F3 - Kill both" dc.b $4b,$50,$09 dc.b "F4 - EXIT",00 GFXNAME: dc.b "graphics.library",0 DOSNAME: dc.b "dos.library",0 DISKY: dc.b "disk.resource",0  $00e4, $0003, $00ХшœсCУ[.s BRANCH lea SOFT(PC),A2 moveq #$1f,D0 move.w #$0180,D1 SOWAS: move.w D1,(A1)+ move.w (A2)+,(A1)+ addq.w #2,D1 dbf D0,SOWAS addq.l #2,A0 KACKE: move.l (A0)+,(A1)+ tst.w (A0) bne.s KACKE lea $041000,A0 moveq #$01,D0 move.l #$00000280,D1 move.l #$00000100,D2 jsr -390(A6) move.l #$00070000,$041008 lea $041100,A1 jsr -198(A6) move.l #$00041000,$041104 lea $041100,A1 moveq #$01,D0 jsr -342(A6) lea TEXT(PC),СшІРŽИieq #$1f,D4 bsr.l FRISCHLING bra.s IST ERN: clr.l 254(A5) subq.w #1,D7 bne.s TROTTEL move.b (A2),D0 bne.s ERN DOLP: lea SCROLLTEXT(PC),A2 ARSCHLOCH: move.w #$0176,D2 moveq #$77,D3 moveq #$01,D4 bsr.s FRISCHLING moveq #$03,D7 TROTTEL: move.l A3,A1 moveq #$03,D0 moveq #$00,D1 moveq #$00,D2 moveq #$70,D3 move.w #$0300,D4 moveq #$78,D5 jsr -396(A6) JUMO: cmpi.b #$ff,(A5) bne.s JUMO lea 14593(A3),A1 moveq #$2a,D0 HOСшЇЧ\šRN: move.b 4(A1),D1 add.b D1,(A1) addq.l #8,A1 addq.b #2,D0 bne.s HORN move.b $bfec01,D2 not.b D2 lsr.w #1,D2 subi.b #$50,D2 bcs.s ERN cmpi.b #$03,D2 bcc.s ERN move.w D2,$0000 move.l (A7)+,50(A6) movem.l (A7)+,A0-A6/D0-D7 rts FRISCHLING: move.l A3,A1 move.l D2,D0 move.l D3,D1 jsr -240(A6) move.l A2,A0 move.l D4,D0 jsr -60(A6) move.l A3,A1 move.l D2,D0 move.l D3,D1 addi.w #$0180,D0 jsr -240(A6) move.l A2,A0 move.l D4,DСшЈgŽz0 jsr -60(A6) adda.l D4,A2 rts LOPP: dc.w $0100, $2200 dc.w $0102, $0010, $0092, $0020, $0094, $00d8, $008e, $2c01 dc.w $0090, $00ff, $00e0, $0007, $00e2, $0600, $00e4, $0007 dc.w $00e6, $05d0, $0120, $0007, $0122, $3800, $0180, $0000 dc.w $0184, $8000, $3401, $00f9, $0021, $0ca8, $4c01, $00d7 dc.w $0021, $0b97, $8601, $0c60, $0210 ,$0b97, $9c01, $0d70 dc.w $0210, $0ca8, $b201, $0c60, $0210, $0b97, $ec01, $057a dc.w $0012, $0a86 TEXT: DC.B $1b dc.b "DEFJAM & C.C.S. anСх@^d Spreadpoint'Present: --" dc.b "- MILLENNIUM 2.2 ---D[F1] Normal game " dc.b "O[F2] Normal game Z[F3] Normal" dc.b " game ",00 SCROLLTEXT: dc.b "Yeah another hot game from us! Credits to:",00 ovem.l (A7)+,A0-A6/D0-D7 rts FRISCHLING: move.l A3,A1 move.l D2,D0 move.l D3,D1 jsr -240(A6) move.l A2,A0 move.l D4,D0 jsr -60(A6) move.l A3,A1 move.l D2,D0 move.l D3,D1 addi.w #$0180,D0 jsr -240(A6) move.l A2,A0 move.l D4,DУшЊйhЈ/D0-D7 ; lea DOSNAME(PC),A1 ; move.l $0004,A6 ; jsr -96(A6) ; tst.l D0 ; beq.s QUEEN ; move.l D0,A0 ; move.l 22(A0),A0 ; moveq #$00,D0 rts ;QUEEN: ; moveq #$ff,D0 ; rts BRANCH5: lea COP3(PC),A0 moveq #$00,D1 move.b (A2)+,D1 cmpi.b #$ffff,D1 bne.s MULTI lea COP4(PC),A2 MULTI: mulu #$0014,D1 lea 775(A4),A1 adda.l D1,A1 move.l A2,A3 moveq #$04,D3 SCHROTT: moveq #$08,D0 KOTZ: move.b (A0)+,(A1) adda.l #$00000014,A1 dbf D0УшЋы{г‰,KOTZ addq.l #4,A3 moveq #$00,D1 move.b (A3),D1 cmpi.b #$ffff,D1 bne.s MULTI2 clr.b D1 MULTI2: mulu #$0014,D1 lea 775(A4),A1 adda.l D1,A1 dbf D3,SCHROTT ENDE: rts BRANCH3: lea $062001,A5 TEST: tst.w -1(A5) beq.s ENDE subq.b #1,(A5) addq.l #8,A5 subq.b #2,(A5) addq.l #8,A5 subq.b #3,(A5) addq.l #8,A5 subq.b #4,(A5) addq.l #8,A5 bra.s TEST TEXT: DC.B $08,$1F,"Horizon Presents: RACK-PACK 17!" DC.B $00,$00 DC.B $00,$19,"F1 - УшЌйк”:Dark Side/Paranoimia" DC.B $00,$1C,"F2 - Genesis of Alpha Flight" DC.B $00,$0f,"F3 - Gate intro" dc.b $00,$13,"F4 - The Band intro" dc.b $00,$15,"F5 - Go-Go inc. intro" dc.b $00,$10,"F6 - Maffia demo" dc.b $00,$14,"F7 - Sunriders intro" dc.b $00,$14,"F8 - Election demo" dc.b $00,$15,"F9 - First wave intro",00,00 DOSNAME: dc.b "dos.library",0 COP3: DC.W $0001, $0305, $0805, $0301, $0001, $0204 DC.W $070a, $0704, $0201, $0103, $0508, $0b08, $0503, $0101 DC.W $0406, $0a0d, $0a06, УшšѓўфX$0401, $0205, $080c, $0f0c, $0805 COP2: dc.w $0200, $0000, $0110, $0210, $0320, $0420, $0530, $0630 dc.w $0740, $0840, $0950, $0a50, $0b60, $0c60, $0d70, $0e70 dc.w $0f80, $fffe COP4: dc.w $0000, $0001, $0203, $0406, $0709, $0c0e dc.w $1013, $1619, $1c20, $2327, $2b2f, $3337, $3b40, $4449 dc.w $4d51, $565b, $5f63, $686c, $7175, $797d, $8185, $898c dc.w $9093, $9699, $9c9e, $a0a3, $a5a6, $a8a9, $aaab, $acac dc.w $acac, $acab, $aaa9, $a8a6, $a5a3, $a09e, $9c99, $9693 dc.w УшЎБЮДa.w D1,(A0)+ move.w #$0108,(A0)+ eori.w #$ffd8,D1 move.w D1,(A0)+ move.w #$0186,(A0)+ move.w (A1)+,(A0) bpl.s TONI lea COP2(PC),A1 addi.w #$0001,D3 TONI: add.w D3,(A0)+ move.w #$0180,(A0)+ clr.w (A0)+ addq.b #1,D0 bne.s KACKE sf (A0) move.l #$00040000,$0108 move.l #$00000100,A0 moveq #$01,D0 move.w #$0140,D1 move.w #$00c8,D2 jsr -390(A6) move.w #$010c,A1 jsr -198(A6) move.w #$0100,$000112 moveq #$01,D0 jsr -342(AУшЏЅТшШ6) lea TEXT(PC),A2 moveq #$00,D0 moveq #$07,D2 SANCHEZ: move.l A2,A0 move.w #$010c,A1 move.b (A0)+,D0 bmi.s WERT move.w D2,D1 jsr -240(A6) addi.l #$00000009,D2 move.b (A0)+,D0 adda.l D0,A2 addq.l #2,A2 jsr -60(A6) bra.s SANCHEZ WERT: lea COP4(PC),A2 moveq #$28,D0 lea $062000,A0 lea START(PC),A1 moveq #$00,D5 BRANCH1: add.b (A1)+,D1 move.b D0,(A0)+ move.b D1,(A0)+ addq.b #1,D0 move.b D0,(A0)+ move.b D5,(A0)+ УшЉ§9љ move.l #$80000000,(A0)+ addq.b #1,D0 bne.s BRANCH1 clr.b $bfec01 BRANCH2: cmpi.b #$c0,$dff006 bcs.s BRANCH2 bsr.l BRANCH3 lea 340(A4),A0 move.w #$00c8,D1 BRANCH4: cmpi.w #$0180,(A0)+ bne.s BRANCH4 clr.w (A0)+ dbf D1,BRANCH4 bsr.s BRANCH5 move.b $bfec01,D0 beq.s BRANCH2 not.b D0 ror.b #1,D0 subi.b #$20,D0 cmpi.b #$30,D0 blt.s BRANCH2 cmpi.b #$38,D0 bgt.s BRANCH2 move.b D0,$0000 move.l $0084,50(A6) movem.l (A7)+,A0-A6ПшБЫ—WqINTTEXT1: bsr loadfont bsr initfont lea rastport,a1 move.l #$01,d0 jsr setapen(a6) move.l #$04,d7 lea texttab,a5 textloop1: lea rastport,a1 move.l (a5)+,d0 move.l (a5)+,d1 jsr move(a6) lea rastport,a1 move.l (a5)+,d0 move.l (a5)+,a0 jsr text(a6) dbra d7,textloop1 rts PRINTTEXT2: move.l #$04,d7 lea texttab,a5 textloop2: lea rastport,a1 move.l (a5)+,d0 add.l #5,d0 move.l (aПшВkсЉФ5)+,d1 add.l #9,d1 jsr move(a6) move.l (a5)+,d0 move.l (a5)+,a0 jsr text(a6) dbra d7,textloop2 rts ;-----Library Routines----- KILLGFX: move.l exec,a6 jsr permit(a6) move.l gfxbase,a1 jsr closelib(a6) rts INITGFX: move.l exec,a6 jsr forbid(a6) lea.l gfxname,a1 jsr openlib(a6) move.l d0,gfxbase rts ;------------------------------------------------ GFXNAME: DC.B 'graphics.library',0,0 OLDCOP: DC.L П шГUD0 GFXBASE: DC.L 0 RASTPORT: BLK.B 100 BM1: DC.W 52,200,3,0; WORTBREITE,Y POS,BITPLANES DC.L $70000,$72C00,$75800; ADR BITPLANES lrind: dc.l 2 ypos: dc.l 191 str1: DC.B "THE WARP OF SAVAGE IN 1989 " str2: DC.B "PRESENTS A NEW TRILOGY PACKDISK !! " str3: DC.B "F 1 ..... CHUCKIE EGG TRAINER (TRILOGY) " str4: DC.B "F 2 ..... ESPIONNAGE (TRILOGY) " str5: DC.B "F 3 ..... BARBARIANS TRAINER (TRILOGY " str6: DC.B "F 4 ..... KILLOGY MEGADEMO V0.0П шДђœїІ07 " even texttab: dc.l 94,8,28,str1,67,40,34,str2,34,71,41,str3 dc.l 34,91,41,str4,34,110,41,str5,34,130,41,str6 NEWCOPPER: DC.W $0120,$0000 DC.W $0122,$0000,$008E,$2F20 DC.W $0090,$F7F0,$0092,$0020 DC.W $0094,$00E0,$0102,$0000; DC.W $0108,$0004,$010A,$0004 DC.W $0104,$0000,$00E0,$0007 DC.W $00E2,$0000,$00E4,$0007 DC.W $00E6,$2C00,$00E8,$0007 DC.W $00EA,$5800,$0100,$3200 DC.W $0180,$0000,$0182,$0FFF dc.w $2d09,$fffe,$0180,$0006 dc.w $2f09,$fffe,$0180,$000a dc.w П шЕqV4 $3a09,$fffe,$0182,$0001 dc.w $4609,$fffe,$0180,$000e dc.w $4809,$fffe,$0180,$0000 dc.w $4909,$fffe,$0182,$0eee dc.w $4c09,$fffe,$0180,$0006 dc.w $4e09,$fffe,$0180,$000a dc.w $5a09,$fffe,$0182,$0001 dc.w $6509,$fffe,$0180,$000e dc.w $6709,$fffe,$0180,$0000 dc.w $6809,$fffe,$0182,$0eee dc.w $6a09,$fffe,$0180,$0600 dc.w $6c09,$fffe,$0180,$0a00 dc.w $7909,$fffe,$0182,$0200 dc.w $8309,$fffe,$0182,$0eee dc.w $8d09,$fffe,$0182,$0200 dc.w $9509П шЖ 0П,$fffe,$0182,$0eee dc.w $9f09,$fffe,$0182,$0200 dc.w $a909,$fffe,$0182,$0eee dc.w $b309,$fffe,$0182,$0200 dc.w $c909,$fffe,$0180,$0e00 dc.w $cb09,$fffe,$0180,$0000 dc.w $e309,$fffe,$0180,$0eee dc.w $e509,$fffe,$0180,$0800 waitab: blk.w 56,0 dc.w $fd09,$fffe,$0180,$0eee dc.w $ff09,$fffe,$0180,$0000 dc.w $ffff,$fffe initstuff: lea waitab,a0 ; CopperListe um WAIT erganzen move.l #$e209,d1 ; ab Zeile $df spalte $09 move.l #13,d0 ; 14 WAIT's coloop2:П шЗ!p л move.w d1,(a0)+ ; WAIT in Copperliste schreibe move.w #$fffe,(a0)+ ; Alle Bits Von WAIT Beachten move.w #$0182,(a0)+ ; Vordergrundfarbe move.w #$0fff,(a0)+ ; Default-Wert add.w #$0100,d1 ; WAIT-Wert um eine Zeile erhoehen dbra d0,coloop2 ; schon 14 mal durchlaufen ??? rts cycle: lea coltab,a0 ; Farbtabelle Verschieben lea coltab+2,a1 move.w #28,d0 move.w coltab,d1 verloop1: move.w (a1)+,(a0)+ dbra d0,verloop1 move.w d1,coltab+56 ; -----------------------------ПшИ>кЮЅ--------- move.l #13,d0 ; 14 Farben in Copperliste lea coltab,a0 ; schreiben lea waitab+6,a1 coloop1: move.w (a0)+,(a1) add.l #$08,a1 ; Abstand zu naechstem WAIT dbra d0,coloop1 rts coltab: ; Farben fuer Laufschrift dc.w $0fff,$0eee,$0ddd,$0ccc,$0bbb,$0aaa,$0999,$0888,$0777 dc.w $0666,$0555,$0444,$0333,$0222,$0111,$0000 dc.w $0111,$0222,$0333,$0444,$0555,$0666,$0777 dc.w $0888,$0999,$0aaa,$0bbb,$0ccc,$0ddd,$0eee loadfont: move.l gfxbase,a6 lea textattr,a0 jsr -72(aПшРœƒ”6) ;open font move.l d0,fontbeg rts initfont: lea rastport,a1 move.l gfxbase,a6 move.l fontbeg,a0 ;set font jsr -66(a6) rts fontbeg: dc.l 0 fontname: dc.b "topaz.font",0 even textattr: dc.l fontname dc.w 7 dc.w 0 n dbra d0,coloop2 ; schon 14 mal durchlaufen ??? rts cycle: lea coltab,a0 ; Farbtabelle Verschieben lea coltab+2,a1 move.w #28,d0 move.w coltab,d1 verloop1: move.w (a1)+,(a0)+ dbra d0,verloop1 move.w d1,coltab+56 ; -----------------------------СшКFQf lea $dff006,A5 move.w #$83a0,144(A5) move.l 50(A6),-(A7) move.l A2,50(A6) KACKE: move.w (A1)+,(A2)+ bpl.s KACKE KOLD: movem.w (A1)+,D0-D3 move.l #$01a20ccc,(A2)+ bsr.s IOP move.w #$01a2,(A2)+ move.w D1,(A2)+ bsr.s JOP sub.w D2,D1 moveq #$04,D4 LOFT: bsr.s BIGGI dbf D4,LOFT bsr.s JOP bsr.s JOP clr.w D1 bsr.s IOP bcc.s KOLD bcs.s MOST JOP: sub.w D2,D1 IOP: move.w D0,(A2)+ move.l #$fffe0180,(A2)+ move.w D1,(A2)+ addi.w СшЅtќ‡R #$0100,D0 rts BIGGI: bsr.s IOP move.w #$0182,(A2)+ move.w D3,(A2)+ move.w #$0186,(A2)+ move.w D3,(A2)+ subi.w #$0111,D3 addi.w #$0200,D0 rts MOST: lea -512(A4),A0 move.l A0,A2 moveq #$01,D0 move.w #$0300,D1 move.w #$0100,D2 jsr -390(A6) move.l A4,8(A2) lea -256(A4),A1 move.l A1,A3 jsr -198(A6) move.l A2,4(A3) moveq #$01,D0 jsr -342(A6) lea TEXT(PC),A2 clr.w D3 IST: moveq #$34,D2 move.b (A2)+,D3 beq.s DOLP movЛ Н…m#юПОаЯЮќћў§Нœ R“avis1.SКџџџ§М…lEЃ RJavis2.SКџџџ§Лш§‘V9™; AVISBOOT #0002 ; CODED BY RANGER OF AMIGAVISION !!! ; NOTE TO ALL AVIS MEMBERS : PLEASE DON'T SPREAD THIS SOURCE AND OTHER ; SOURCES TO OTHER PEOPLE , 'CAUSE YOU WON'T GET NO SOURCES ANYMORE ; IF THIS SOURCES WERE SPREADED !!! ; ; SIGNED : RANGER execbase = 4 findresident = -96 openlibrary = -552 closelibrary = -414 initrastport = -198 moverp = -240 setapen = -342 text = -60 vhposr = $dff006 dos: blk.w 18,0 lea dosname(pc),a1 jsr findresideЛ шП‡ЖR: dc.b 045,060,12,'VON UND MIT:' dc.b 045,067,11,'-----------' dc.b 150,060,14,'MURAD M BARKI' dc.b 150,080,19,'ELMAR SEIDENSTICKER' dc.b 150,100,18,'THORSTEN UNDERBERG' dc.b 089,000,07,'AUSTRIA' dc.b 239,000,11,'AMIGAVISION' dc.b 243,000,10,'P.O.BOX 57' dc.b 239,000,11,'8510 STAINZ' dc.b 255,000,07,'AUSTRIA' even clist: dc.w $0100,$4600,$0092,$0020,$0094,$00d8,$008e,$1a6b dc.w $0090,$38db,$00e0,$0006,$00e2,$0000,$00e4,$0006 Л tэЃ9dc.w $00e6,$3e80,$00e8,$0006,$00ea,$bb80,$00ec,$0006 dc.w $00ee,$7d00,$0184,$00f0,$0180,$0000,$0192,$0446 dc.w $0194,$0668,$0196,$0aac colors: dc.w $0fff,$0eef,$0ddf,$0ccf,$0bbf,$0aaf,$099f,$088f dc.w $077f,$066f,$055f,$044f,$033f,$022f,$011f,$000f dc.w $000f,$011f,$022f,$033f,$044f,$055f,$066f,$077f dc.w $088f,$099f,$0aaf,$0bbf,$0ccf,$0ddf,$0eef,$0fff endall: hics.library',0 even graphbase: dc.l 0 bitmap: dc.w 96 dc.w 200 dc.w 1 counter:dc.w 0 dc.l $60000 messagesзш[€ xAџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџПшТed‹ЬFX-Library rts ; Fuck off and Die MLOOP: cmp.b #$ff,$dff006 bne mloop bsr cycle bsr smallscroll bsr jumping bra checkkeys goon: bra MLoop end: rts Checkkeys: move.b $bfec01,d0 not d0 ror.b #1,d0 cmp.b #$50,d0 beq end1 cmp.b #$51,d0 beq end2 cmp.b #$52,d0 beq end3 bra goon end1: move.l #1,$80.w bra end end2: move.l #2,$80.w bra end end3: move.l #3,$80.w bra end SMALLSCROLL: move.l gfxbase,a6 leПшУШ“Р+a rastport,a1 move.l #$01,d0 jsr setapen(a6) lea rastport,a1 move.l #$03,d0 move.l #0,d1 move.l #30,d2 move.l #184,d3 move.l #371,d4 move.l #200,d5 jsr scrollrast(a6) add #1,scroll cmp #5,scroll bne continue clr.w scroll lea rastport,a1 move.l #364,d0 move.l ypos,d1 jsr move(a6) lea scrollmsg,a0 add.l scrollindex,a0 tst.b (a0) beq resetscroll cnt: addq #1,scrollindex+2 move.l #1,d0 jsr text(a6) continue: rts resetscroll: move.lПшФіДLІ #0,scrollindex lea scrollmsg,a0 bra cnt scrollmsg: DC.B " THE WARP SENDS GREETS TO :" DC.B " ALI , THE REST OF SAVAGE , SHURIKEN , " DC.B "MAC '89 , MEDDED , MASTER J. , HSSI , BGI , " DC.B "SECTION ONE , JACK THE RAPPER , " DC.B "MADSS , NIGHT RIDER (?!) AND ALL I FORGOT !!" DC.B "THOSE WHO KNOW ME AND WHO WERE NOT GREETED " DC.B " KNOW THAT THEY ARE LAME !! ",0 even scroll: dc.l 0 scrollindex: dc.l 0 JUMPING: cmp.l #2,lrind beq scrollR cПшХr@mp.l #4,lrind beq scrollL scrollR: move.l #$01,d1 sub.l #1,ypos cmp.l #190,ypos beq inlr4 bra reallr scrollL: move.l #$-01,d1 add.l #1,ypos cmp.l #198,ypos beq inlr2 bra reallr inlr2: move.l #2,lrind bra reallr inlr4: move.l #4,lrind bra reallr reallr: move.l gfxbase,a6 lea rastport,a1 move.l #0,d0 move.l #30,d2 move.l #184,d3 move.l #380,d4 move.l #200,d5 jsr scrollrast(a6) rts INITRP: move.l gfxbase,a6 move.l #0,scrollindexПшАHМЅ bsr.L initstuff move.l gfxbase,a0 add.l #$32,a0 move.w #$0080,$dff096 move.l (a0),oldcop move.l #newcopper,(a0) move.w #$8080,$dff096 LEA rastport,a1 JSR -198(A6) LEA BM1(PC),A0 LEA rastport,A1 MOVE.L A0,4(A1) LEA rastport,a1; LOESCHE SCREEN CLR.L D0 JSR clearscreen(a6) RTS ;-----Copper-Routines----- SETOLDCOP: move.l gfxbase,a0 ; alte copperliste einschalten add.l #$32,a0 move.w #$0080,$dff096 move.l oldcop,(a0) move.w #$8080,$dff096 rts ; ----Routine for printing Stuff---- PRЛшЧ€Цщб.b 7 dc.b 0 dc.b $E6 dc.b $CA dc.b ',',0 dc.b $E8 dc.b 0 dc.b 7 dc.b 0 dc.b $EA dc.b $CA dc.b ',',0 dc.b $EC dc.b 0 dc.b 7 dc.b 0 dc.b $EE dc.b $CA dc.b 'X' dc.b 1 dc.b $80 dc.b 0 dc.b 0 dc.b 1 dc.b $82 dc.b 15 dc.b $FF dc.b 1 dc.b $84 dc.b 15 dc.b $FF dc.b 1 dc.b $92 dc.b 0 dc.b 0 dc.b 1 dc.b $94 dc.b 0 dc.b 0 dc.b ')' dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b $80 dc.b 14 dc.b 0 dc.b ',' dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b $80 dc.b 11ЛшШяaљЩ dc.b 0 dc.b '2' dc.b 9 dc.b $FF dc.b $FE lbA0005AA: dc.b 1 dc.b 2 dc.b 0 dc.b 2 dc.b 'F' dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b 2 dc.b 0 dc.b 2 dc.b 'Z' dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b 2 dc.b 0 dc.b 2 dc.b 'p' dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b 2 dc.b 0 dc.b 2 dc.b 1 dc.b $80 dc.b 8 dc.b 0 dc.b 's' dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b $80 dc.b 0 dc.b 0 dc.b 'z' dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b $80 dc.b 0 dc.b 14 dc.b '}' ЛшЩ6 K\ dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b $80 dc.b 0 dc.b 11 lbB0005E2: dc.b $81 dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b $82 dc.b 15 dc.b $FF dc.b 1 dc.b $84 dc.b 15 dc.b $FF dc.b 1 dc.b 2 dc.b 0 dc.b 2 dc.b $95 dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b $82 dc.b 15 dc.b $FF dc.b 1 dc.b $84 dc.b 15 dc.b $FF dc.b 1 dc.b 2 dc.b 0 dc.b 2 dc.b $A9 dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b $82 dc.b 15 dc.b $FF dc.b 1 dc.b $84 dc.b 15 dc.b $FF dc.b 1 dc.b 2ЛшЪј­?@ dc.b 0 dc.b 2 dc.b $BF dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b $82 dc.b 15 dc.b $FF dc.b 1 dc.b $84 dc.b 15 dc.b $FF dc.b 1 dc.b 2 dc.b 0 dc.b 2 dc.b $D3 dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b $82 dc.b 15 dc.b $FF dc.b 1 dc.b $84 dc.b 15 dc.b $FF dc.b 1 dc.b 2 dc.b 0 dc.b 2 dc.b $E7 dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b $82 dc.b 15 dc.b $FF dc.b 1 dc.b $84 dc.b 15 dc.b $FF dc.b 1 dc.b 2 dc.b 0 dc.b 2 dc.b $FC dc.b 9 dc.b $FF dc.b $FE ЛшЫNЪZ˜dc.b 1 dc.b $82 dc.b 15 dc.b $FF dc.b 1 dc.b $84 dc.b 15 dc.b $FF dc.b 1 dc.b $80 dc.b 0 dc.b 8 dc.b $FF dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b $80 dc.b 0 dc.b 0 dc.b $FF dc.b $DF dc.b $FF dc.b $FE dc.b 6 dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b $80 dc.b 14 dc.b 0 dc.b 9 dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b $80 dc.b 11 dc.b 0 dc.b 0 dc.b $92 dc.b 0 dc.b '0' dc.b 1 dc.b 8 dc.b 0 dc.b 2 dc.b 1 dc.b 10 dc.b 0 dc.b 2 dc.b '%' dc.b 9 dc.b $FЛшЬк  7F dc.b $FE dc.b 1 dc.b $80 dc.b 8 dc.b 0 dc.b '(' dc.b 9 dc.b $FF dc.b $FE dc.b 1 dc.b $80 dc.b 0 dc.b 0 dc.b $FF dc.b $FF dc.b $FF dc.b $FE dc.b 0 dc.b 8 dc.b 0 dc.b 5 dc.b 0 dc.b 8 lbB000694: dc.b $13 dc.b 'SUBWAY & DREAM TEAM' dc.b 7 dc.b 'present' dc.b $19 dc.b 'SUPER HANG ON MEGATRAINER',0 dc.b 0 dc.b $1A dc.b 'Unlimited Time NO' lbB0006E7: dc.b $1A dc.b 'Turbo at Anytime NO' lbB000702: dc.b $1A dc.b 'I' dc.b $27 dc.b 'm invisibЛшЭКŽЁўle NO' lbB00071D: dc.b $1A dc.b '------- Start Game -------',0 WesayhitoMegafMSG: dc.b ' We say hi to: Megaforce,' dc.b ' World of Wonders, Vision Factory & Beyonders, ' dc.b 'Eclipse, Kefrens, Red Sector & ' dc.b 'Defjam, Jungle Command, Trilogy, Bamiga Sector 1, ' dc.b 'The Band, Invisible Crime, Traitors, Avirex, Warfalcons,' dc.b ' Alpha Flight, Cosmos, JOY-MGF-CPU, Northstar &' dc.b ' Fairlight, Ipec Elite & Vortex 42, Powerslaves, Lightforce,' dc.b ' Plasma ForЛСЪЌіce, Zigag, Escape, Iron Eagle Crew, Beastie' dc.b ' Boys, Supply Team, Mad Monks, Quicksilver, Cascade, ' dc.b 'Accession, Deathstar, Silents, Whizzard, Deltaforce,' dc.b ' Dual Crew, Artox, Stack & X-Men, ASK, Dream Warriors,' dc.b ' Crush, IBB & Digitech & KH, Crusaders, Ikari, Spreadpoint,' dc.b ' TSK & Accumulators, DDC & TSV, D.O.C, Free Access,' dc.b ' Team-X, Axenon, Top Swap, Rawhead, IT, INXS and ' dc.b 'to Kirsti. ' dc.b $FF END 1A dc.b 'I' dc.b $27 dc.b 'm invisibЛшЯњHШ&1 asl.w #3,d2 sub.w d0,d2 subq.b #1,d2 cmp.w #400,d6 bgt unit_a cmp.w #300,d6 bgt bfbs bra wonders unit_a: move.l #$63e80,a1 add.l d1,a1 bset d2,(a1) bra crazy bfbs: move.l #$67d00,a1 add.l d1,a1 bset d2,(a1) bra crazy wonders:move.l #$63e80,a1 add.l d1,a1 bset d2,(a1) move.l #$67d00,a1 add.l d1,a1 bset d2,(a1) crazy: dbf d3,band move.w counter,d6 addq #1,d6 cmp.w #2,d6 bne wait clr.w d6 bsr cycle wait: move.w d6,counter btst #6,$bfe001 ;wait for the ЛшабЯC left one bne stars end: move.l graphbase,a5 move.l 38(a5),$dff080 ;enable system copperlist clr.w $dff088 movem.l (sp)+,d0-d7/a0-a6 ;get values from stack rts ;run cli & workbench conan: move.w vhposr,d0 move.l $70004,a3 muls (a3),d0 add.w #4681,d0 ext.l d0 move.l $70004,a3 move.w d0,(a3) rts tristar:sub.l #6,a4 bsr conan move.w d0,(a4)+ bsr conan move.w d0,(a4)+ move.w #600,(a4)+ bra crazy setstar:mulu #48,d1 move.w d0,d2 asr.w #3,d2 add.w d2,d1 asl.w ЛшОRєХ#3,d2 sub.w d0,d2 subq #1,d2 move.l #$63e80,a1 ;plane2 add.l d1,a1 bclr d2,(a1) move.l #$67d00,a1 ;plane4 add.l d1,a1 bclr d2,(a1) rts cycle: move.l #$5004e,a0 move.w #158,d7 move.w (a0),d0 ;store first color copcyl: add.w #8,a0 move.w (a0),-8(a0) dbf d7,copcyl move.w d0,(a0) ;set last color rts dosname:dc.b 'dos.library',0 even graphname: dc.b 'graphics.library',0 even graphbase: dc.l 0 bitmap: dc.w 96 dc.w 200 dc.w 1 counter:dc.w 0 dc.l $60000 messagesЛшвЋЉжC0060,$00072012 MOVE.L #$00000A24,$00072016 lbC00015C: TST.W $019C(A5) BEQ.S papillon MOVE.L #$42790000,$0007201A MOVE.L #$11204279,$0007201E MOVE.L #$00001FA8,$00072022 MOVE.L #$42790000,$00072026 MOVE.W #$4FCE,$0007202A Papillon: MOVEM.L (SP)+,D0-D7/A0-A6 RTS dc.l 0 dc.l 0 lbC0001A0: LEA lbC0001F2(PC),A0 LEA lbC000222(PC),A1 MOVE.L A1,(A0)+ LEA lbC00023E(PC),A1 MOVE.L A1,(A0)+ LEA lbC00025A(PC),A1 MOVE.L A1,(A0)+ LEA lbC000276(PC),A1 MOVE.L A1,(A0)+ LEA NuNuMSЛшгКѓIkG(PC),A1 MOVE.L A1,(A0)+ LEA NuMSG(PC),A1 MOVE.L A1,(A0)+ LEA lbL00020A(PC),A0 LEA lbC000282(PC),A1 MOVE.L A1,(A0)+ LEA lbC0002A0(PC),A1 MOVE.L A1,(A0)+ LEA lbC0002BE(PC),A1 MOVE.L A1,(A0)+ LEA lbC0002DC(PC),A1 MOVE.L A1,(A0)+ LEA NuNuMSG0(PC),A1 MOVE.L A1,(A0)+ LEA NuMSG0(PC),A1 MOVE.L A1,(A0)+ RTS lbC0001F2: OR.B #0,D0 dc.l 0 dc.l 0 dc.l 0 dc.l 0 dc.l 0 lbL00020A: dc.l 0 dc.l 0 dc.l 0 dc.l 0 dc.l 0 dc.l 0 lbC000222: CLR.W $0198(A5) LEA lbB0006E7(PC),AЛшд›ƒЮ0 MOVE.B #$20,-3(A0) MOVE.B #$4E,-2(A0) MOVE.B #$4F,-1(A0) RTS lbC00023E: CLR.W $019C(A5) LEA lbB000702(PC),A0 MOVE.B #$20,-3(A0) MOVE.B #$4E,-2(A0) MOVE.B #$4F,-1(A0) RTS lbC00025A: CLR.W $019A(A5) LEA lbB00071D(PC),A0 MOVE.B #$20,-3(A0) MOVE.B #$4E,-2(A0) MOVE.B #$4F,-1(A0) RTS lbC000276: MOVE.W #1,$019E(A5) RTS NuNuMSG: dc.b 'Nu' NuMSG: dc.b 'Nu' lbC000282: MOVE.W #1,$0198(A5) LEA lbB0006E7(PC),A0 MOVE.B #$59,-3(A0) MOVE.B #$45,-2(A0) MOVE.B #$53,-1Лше,Л•О(A0) RTS lbC0002A0: MOVE.W #1,$019C(A5) LEA lbB000702(PC),A0 MOVE.B #$59,-3(A0) MOVE.B #$45,-2(A0) MOVE.B #$53,-1(A0) RTS lbC0002BE: MOVE.W #1,$019A(A5) LEA lbB00071D(PC),A0 MOVE.B #$59,-3(A0) MOVE.B #$45,-2(A0) MOVE.B #$53,-1(A0) RTS lbC0002DC: MOVE.W #1,$019E(A5) RTS NuNuMSG0: dc.b 'Nu' NuMSG0: dc.b 'Nu' lbC0002E8: TST.W $0342(A5) BEQ.S lbC0002F4 SUBQ.W #1,$0342(A5) RTS lbC0002F4: BTST #6,$00BFE001 BNE.S lbC00031A MOVE.W #3,$0342(A5) MOVE.W $068E(AЛшж@РL‡5),D0 MOVE.W $0690(A5),D1 SUB.W D1,D0 LSL.W #2,D0 LEA lbC0001F2(PC),A0 MOVE.L 0(A0,D0.W),A1 JMP (A1) lbC00031A: BTST #2,$00DFF016 BNE.S lbC000340 MOVE.W #3,$0342(A5) MOVE.W $068E(A5),D0 MOVE.W $0690(A5),D1 SUB.W D1,D0 LSL.W #2,D0 LEA lbL00020A(PC),A0 MOVE.L 0(A0,D0.W),A1 JMP (A1) lbC000340: RTS dc.w 0 lbC000344: MOVE.B $00DFF00A,D0 MOVE.B $038C(A5),D1 MOVE.B D0,$038C(A5) SUB.B D0,D1 EXT.W D1 SUB.W D1,$038A(A5) BPL lbC000362 CLR.W $038A(A5) lbC000362: MOVЛ шз+ТШ…E.W $038E(A5),D0 CMP.W $038A(A5),D0 BGE lbC000374 MOVE.W $038E(A5),$038A(A5) lbC000374: MOVE.W $038A(A5),D0 EXT.L D0 DIVU #$28,D0 MOVE.W $0690(A5),D1 ADD.W D1,D0 MOVE.W D0,$068E(A5) RTS dc.l 0 OR.B #$EE,D0 dc.l $FFEF0000 lbC000396: LEA $0390(A5),A2 CLR.W $0394(A5) LEA lbB0005E2(PC),A0 MOVE.W $068E(A5),D0 LEA lbB0003F0(PC),A1 MOVE.W #4,D2 lbC0003AE: MOVE.W (A1)+,D3 MOVE.W #$0FFF,0(A0,D3.W) MOVE.W #$0FFF,4(A0,D3.W) CMP.W D0,D2 BNE.S lbC0003C8 MOVE.W (A2),0(A0,DЛ шиоФ,L3.W) MOVE.W (A2),4(A0,D3.W) lbC0003C8: ADDQ.W #1,D2 CMP.W #10,D2 BLT.S lbC0003AE MOVE.W $0392(A5),D0 ADD.W D0,(A2) CMP.W #$0E00,(A2) BNE lbC0003E2 NEG.W $0392(A5) lbC0003E2: CMP.W #$0EEE,(A2) BNE lbC0003EE NEG.W $0392(A5) lbC0003EE: RTS lbB0003F0: dc.b 0 dc.b 6 dc.b 0 dc.b $16 dc.b 0 dc.b '&',0 dc.b '6',0 dc.b 'F',0 dc.b 'V' lbC0003FC: MOVE.L $00DFF004,D0 AND.L #$0001FF00,D0 CMP.L #$00000A00,D0 BNE lbC0003FC RTS lbC000414: BTST #6,$00DFF002 BNE lbC000414 Л шйЉл§ RTS lbC000422: MOVE.L A4,-(SP) LEA lbB000694(PC),A1 MOVE.L #4,D7 MOVE.L #9,D6 LEA lbB000464(PC),A0 LEA lbA0005AA(PC),A4 lbC000434: MOVE.L #0,D5 MOVE.B (A1)+,D5 MOVE.L A1,A3 ADD.L D5,A1 MOVE.L #$28,D4 SUB.W D5,D4 MOVE.L A3,A2 MOVE.W (A0)+,D0 MOVE.W #2,0(A4,D0.W) LSR.W #1,D4 BCC.S lbC000454 MOVE.W #$0046,0(A4,D0.W) lbC000454: BSR lbC0004F2 ADD.W #10,D7 DBRA D6,lbC000434 MOVE.L (SP)+,A4 RTS lbB000464: dc.b 0 dc.b 2 dc.b 0 dc.b 10 dc.b 0 dc.b $12 dc.b 0 Л шкЁщ~Эdc.b $1A dc.b 0 dc.b 'F',0 dc.b 'V',0 dc.b 'f',0 dc.b 'v',0 dc.b $86 dc.b 0 dc.b $96 lbC000478: BSR lbC000414 MOVE.L #$0007F3EE,$00DFF050 MOVE.L #$0007F3EE,$00DFF054 CLR.W $00DFF064 CLR.W $00DFF066 MOVE.W #$FFFE,$00DFF044 MOVE.W #$FFFF,$00DFF046 MOVE.W #$19F0,$00DFF040 MOVE.W #2,$00DFF042 MOVE.W #$022C,$00DFF058 BSR lbC000414 ADDQ.W #1,$04F0(A5) MOVE.W $04F0(A5),D0 AND.W #7,D0 BNE.S lbC0004EE TST.B (A4) BPL.S lbC0004DE LEA WesayhitoMegafMSG(PC),A4 lbC0004DE: Л шл•ƒ\MOVE.L A4,A2 MOVE.L #$2A,D4 MOVE.W #$0072,D7 MOVE.L #1,D5 BSR lbC0004F2 ADDQ.L #1,A4 lbC0004EE: RTS dc.w 0 lbC0004F2: MOVEM.L D0-D7/A0-A4,-(SP) LEA $0007CA00,A3 MULU #$58,D7 ADD.L D7,A3 BRA lbC00052C lbC000506: MOVE.L #0,D1 MOVE.B (A2)+,D1 SUB.W #$0020,D1 MOVE.L A6,A1 MOVE.L A3,A0 MOVE.L #7,D0 lbC000514: MOVE.B 0(A1,D1.W),0(A0,D4.W) ADD.L #$000000C0,A1 ADD.L #$00000058,A0 DBRA D0,lbC000514 ADDQ.L #1,D4 lbC00052C: DBRA D5,lbC000506 MOVEM.L (SP)+,D0-D7/A0-A4 RЛшЦlѓ( TS lbA000536: dc.b 1 dc.b 0 dc.b 'D',0 dc.b 1 dc.b 2 dc.b 0 dc.b 2 dc.b 1 dc.b 4 dc.b 0 dc.b 0 dc.b 1 dc.b 8 dc.b 0 dc.b 4 dc.b 1 dc.b 10 dc.b 0 dc.b 4 dc.b 0 dc.b $8E dc.b ',' dc.b $81 dc.b 0 dc.b $90 dc.b ',' dc.b $C1 dc.b 0 dc.b $92 dc.b 0 dc.b '8',0 dc.b $94 dc.b 0 dc.b $D0 dc.b 0 dc.b $96 dc.b $81 dc.b 0 dc.b 0 dc.b $9C dc.b $80 dc.b $10 dc.b 0 dc.b $E0 dc.b 0 dc.b 7 dc.b 0 dc.b $E2 dc.b $CA dc.b 0 dc.b 0 dc.b $E4 dc.b 0 dcмнTі>њљјїіѕєѓђџн#ЯG–w 3DStars.Spџџџ§мшџ~К,; ------------------------------------ ; ---------- 3D Starfield ------------ ; -- written by Marvin of Sunriders -- ; ------------------------------------ ; ---- Re-assembled and optimized ---- ; ------- by Unknown of D.O.C! ------- ; ------------------------------------ field: move.l $80,out+2 move.l #begin,$80 trap #0 begin: move.w #$2700,sr clr.l $0 move.l #copper,$dff080 clr.w $dff088 lea $60000,a0 move.w #$23ff,d0 loop: clr.l (a0)+ dbf d0,loop jsr dostars move.lН К Т6,$00e2,$0000,$00e4,$0006 dc.w $00e6,$3e80,$00e8,$0006,$00ea,$bb80,$00ec,$0006 dc.w $00ee,$7d00,$0184,$00f0,$0180,$0000,$0192,$0446 dc.w $0194,$0668,$0196,$0aac colors: dc.w $0fff,$0eef,$0ddf,$0ccf,$0bbf,$0aaf,$099f,$088f dc.w $077f,$066f,$055f,$044f,$033f,$022f,$011f,$000f dc.w $000f,$011f,$022f,$033f,$044f,$055f,$066f,$077f dc.w $088f,$099f,$0aaf,$0bbf,$0ccf,$0ddf,$0eef,$0fff endall: ase: dc.l 0 bitmap: dc.w 96 dc.w 200 dc.w 1 counter:dc.w 0 dc.l $60000 messagesгшраФkр8€Рј€€Р№р|€№р№Р€Р№€№?јxў№№№№?ќ№№№№ўў№x?ќxx|>№№№№№ўјxxxxxxўр|№>?ќрррРР>?ќ€?ќ?ўxў?ќќ?ќ?ќРР?ќ?ќќ?ќќ?ў?ў?ќx?ќx>x~~ќ?ќќ?ќќ?ўјxxxxxxўр|€гшсc.<Я?ј>><<рррРР<<€<<xx<<ќ<<<<ррџў<xxр<@?ј>|xрР№рРўx€xxxxўxxррџx>xxxxxxxxРxјx{оxxxxxx€xxx<xxррџ<xxxxxxxxРy№xyžxxxxxx€xxx>|xxр 0№?№№|>€Р№?ўџџјx€<xx||><>РРџ|xx>xxxxxxР{рxxxxx№||||ќ|ќ?№€||>yž№?№ќрDјР?ќР№јџРџр~€?№ўўќќ>?ќўРРџрўќ~~рр~~ўР~№~~~~№~јќ€~>|{ој?№?№?ўИœxР№јџрР~€>?~|x<~xррџР~~~~~~~~Рx~~ј~~~~~~~<<€~ђдƘ?ќр>Р?ј>xР№ќРрР?€~>€|?~>x>~xx>ррџ~~~>~>~~~>~Р~~~ј~~~~>~~>~>€~>јў?ќ€|р?ј>>ўрр<РгшуљЊррўјў?џ~ўў~ўўррџ€~ўўўў~ў~?ќў~|ў~~ў~ў~ў€ў№ў~~€ўр№|>?џрр8Ррр>?ќјў?ў~ќ?ќ~?ќ?ќРрР~ќ?ќќ?ў~?ќ~?ќ?ќ~|?ў~~?ќ~?ј~ќ€?ќрў~~€ўр€8?ў№Р РРр?ќјў?ў~ќ?ќ~?ќ?ќРР~ќ?ќќ?ў~?ќ~?ќ?ќ~>?ў~~?ќ~?ў~ќ€?ќР~~|>€ўР€єј€Р€Р№јў?ј~№№~№№€€~№№№ў~№~?ќ№~>ў~~№~ц~№€№€|>|>€ўг`з]‚‹€xxx|>xxр<@?ј>|xрР№рРўx€xxxxўxxррџx>xxxxxxxxРxјx{оxxxxxx€xxx<xxррџ<xxxxxxxxРy№xyžxxxxxx€xxx>|xxр 0№?№№|>€Р№?ўџџјx€<xx||><>РРџ|xx>xxxxxxР{рxxxxx<ў |B˜QЯџќ"|@NЎџ:#|Ъ"|@pNЎўЊ>< *|ж"|@B€BNЎџ"|@B€ MлРNЎџФQЯџк><#"|Aњ2иQЯџќ0<` <<>< |2Р2ќџў2ќ‚2и@QЯџюQЮџр"Мџџџў3ќ п№–#ќп№€Byп№ˆ3ќ…Рп№–6<Y |a0Рa0Рa@џ0РQЫџш(|6<Y*|€8:<\JFoіHФ‰ЦDвHХ‹ЦExJDmрJEmк Dnв EnЪ0:Ф2:Хaи02Тќ04цBвBчB”@S Fn F,n`"|>€гСб`фшщW$"|}гСб`"|>€гСб"|}гСбQЫџ^<9аRF FfBFaŒ3Ца9Прfџ&*yЦ#э&п№€Byп№ˆLпџNu09п№&yСг@IHР&y6€Nu™ќaџк8Рaџд8Р8ќX`џ„Тќ04цBвBчB”@SB"|>€гС‘"|}гС‘Nu |N><ž0аќ1PџјQЯџі0€Nudos.librarygraphics.library`ШF Marler KulturbetriebiInterview im Buchhandeln'(Modernes Antiquariat)Œ2(Marler Stern)(F Von und mit:–F Murad M Barki–PElmar Seidensticker–ZThorsten Underberg(n&Interview Partner (Geschaeftsfuehrer):–xф№ясяVJosef Schomodji(PЉ 1990 Abakus inc.F’ ”иŽk8лртфц>€шъЛ€ью}„№€’F”h– Ќџя п Я П Џ Ÿo_O?//?O_o Ÿ Џ П Я пяџDDDDDDьJl„вюђыђ R­ќ BOOTMENUESpНшыЗgѕ“nt(a6) ;init system move.l d0,a0 move.l 22(a0),a0 moveq #$00,d0 begin: movem.l d0-d7/a0-a6,-(sp) move.l execbase,a6 lea graphname(pc),a1 moveq #$00,d0 jsr openlibrary(a6) move.l d0,graphbase move.l d0,a6 move.w #$7ffe,d7 move.l #$60000,a0 cloop: clr.l (a0)+ dbf d7,cloop move.l #$54000,a1 jsr initrastport(a6) move.l #bitmap,4(a1) move.l #$54000,a1 moveq #$01,d0 jsr setapen(a6) move.w #9,d7 ;print addresses usw. move.l #messages,a5 textlo: move.l #$54000,Ншь*|hXa1 clr.l d0 clr.l d1 move.b (a5)+,d0 move.b (a5)+,d1 jsr moverp(a6) move.l #$54000,a1 ;rastport clr.l d0 move.b (a5)+,d0 move.l a5,a0 add.l d0,a5 jsr text(a6) dbf d7,textlo move.w #35,d7 ;copy bootcopperlist to $50000 move.l #$50000,a1 lea clist(pc),a0 coplo: move.w (a0)+,(a1)+ dbf d7,coplo move.w #$6009,d0 move.w #4,d6 main: move.w #31,d7 move.l #colors,a0 world: move.w d0,(a1)+ move.w #$fffe,(a1)+ move.w #$0182,(a1)+ move.w (a0)+,(a1)+ add.w #$0100,d0 dbНшэњц;zf d7,world dbf d6,main move.l #$fffffffe,(a1) move.w #$00a0,$dff096 ;disable copper , blitter move.l #$50000,$dff080 ;set pointer for clist clr.w $dff088 ;start copper madness move.w #$85c0,$dff096 ;enable copper , blitter st_init:move.w #89,d3 move.l #$79000,a0 st_loop:bsr conan move.w d0,(a0)+ bsr conan move.w d0,(a0)+ bsr conan and.w #511,d0 move.w d0,(a0)+ dbf d3,st_loop stars: move.l #$79000,a4 move.w #89,d3 move.l #$78000,a5 band: move.w (a4)+,d4 moveНшюŘЮ,.w (a4)+,d5 move.w (a4),d6 sub.w #2,(a4)+ tst.w d6 ble tristar ext.l d4 divs d6,d4 add.w #210,d4 ;x_pos of starcreate ext.l d5 divs d6,d5 add.w #120,d5 ;y_pos of starcreate tst.w d4 blt tristar tst.w d5 blt tristar cmp.w #383,d4 ;horizontal frontier bgt tristar cmp.w #280,d5 ;vertikal frontier bgt tristar move.w (a5),d0 move.w d4,(a5)+ move.w (a5),d1 move.w d5,(a5)+ bsr setstar move.w d4,d0 move.w d5,d1 mulu #48,d1 move.w d0,d2 asr.w #3,d2 add.w d2,dНшяњHХ1 asl.w #3,d2 sub.w d0,d2 subq.b #1,d2 cmp.w #400,d6 bgt unit_a cmp.w #300,d6 bgt bfbs bra wonders unit_a: move.l #$63e80,a1 add.l d1,a1 bset d2,(a1) bra crazy bfbs: move.l #$67d00,a1 add.l d1,a1 bset d2,(a1) bra crazy wonders:move.l #$63e80,a1 add.l d1,a1 bset d2,(a1) move.l #$67d00,a1 add.l d1,a1 bset d2,(a1) crazy: dbf d3,band move.w counter,d6 addq #1,d6 cmp.w #2,d6 bne wait clr.w d6 bsr cycle wait: move.w d6,counter btst #6,$bfe001 ;wait for the Нш№бЯ?ъleft one bne stars end: move.l graphbase,a5 move.l 38(a5),$dff080 ;enable system copperlist clr.w $dff088 movem.l (sp)+,d0-d7/a0-a6 ;get values from stack rts ;run cli & workbench conan: move.w vhposr,d0 move.l $70004,a3 muls (a3),d0 add.w #4681,d0 ext.l d0 move.l $70004,a3 move.w d0,(a3) rts tristar:sub.l #6,a4 bsr conan move.w d0,(a4)+ bsr conan move.w d0,(a4)+ move.w #600,(a4)+ bra crazy setstar:mulu #48,d1 move.w d0,d2 asr.w #3,d2 add.w d2,d1 asl.w НшёRё#3,d2 sub.w d0,d2 subq #1,d2 move.l #$63e80,a1 ;plane2 add.l d1,a1 bclr d2,(a1) move.l #$67d00,a1 ;plane4 add.l d1,a1 bclr d2,(a1) rts cycle: move.l #$5004e,a0 move.w #158,d7 move.w (a0),d0 ;store first color copcyl: add.w #8,a0 move.w (a0),-8(a0) dbf d7,copcyl move.w d0,(a0) ;set last color rts dosname:dc.b 'dos.library',0 even graphname: dc.b 'graphics.library',0 even graphbase: dc.l 0 bitmap: dc.w 96 dc.w 200 dc.w 1 counter:dc.w 0 dc.l $60000 messagesН шофKЦ: dc.b 133,035,18,'MARLER KULTUR FILM' dc.b 133,043,18,'------------------' dc.b 112,070,23,'INTERVIEW IM BUCHHANDEL' dc.b 045,090,38,'(MODERNES ANTIQUARIAT IM MARLER STERN)' dc.b 073,000,11,'8510 STAINZ' dc.b 089,000,07,'AUSTRIA' dc.b 239,000,11,'AMIGAVISION' dc.b 243,000,10,'P.O.BOX 57' dc.b 239,000,11,'8510 STAINZ' dc.b 255,000,07,'AUSTRIA' even clist: dc.w $0100,$4600,$0092,$0020,$0094,$00d8,$008e,$1a6b dc.w $0090,$38db,$00e0,$000м шѓы`\.w $64 dc.w $0 dc.w $0 dc.w $0 dc.w $fe70 dc.w $63 dc.w $0 dc.w $0 dc.w $ffac dc.w $fe78 dc.w $62 dc.w $0 dc.w $0 dc.w $ff5d dc.w $fe92 dc.w $61 dc.w $0 dc.w $0 dc.w $ff14 dc.w $febc dc.w $60 dc.w $0 dc.w $0 dc.w $fed6 dc.w $fef4 dc.w $5f dc.w $0 dc.w $0 dc.w $fea5 dc.w $ff37 dc.w $5e dc.w $0 dc.w $0 dc.w $fe83 dc.w $ff84 dc.w $5d dc.w $0 dc.w $0 dc.w $fe72 dc.w $ffd6 dc.w $5c dc.w $0 dc.w $0 dc.w $fe72 dc.w $29 dc.w $5b dc.w $0 dc.w $0 м шєЯфпУ dc.w $fe83 dc.w $7b dc.w $5a dc.w $0 dc.w $0 dc.w $fea5 dc.w $c7 dc.w $59 dc.w $0 dc.w $0 dc.w $fed6 dc.w $10b dc.w $58 dc.w $0 dc.w $0 dc.w $ff14 dc.w $143 dc.w $57 dc.w $0 dc.w $0 dc.w $ff5d dc.w $16d dc.w $56 dc.w $0 dc.w $0 dc.w $ffac dc.w $187 dc.w $55 dc.w $0 dc.w $0 dc.w $ffff dc.w $18f dc.w $54 dc.w $0 dc.w $0 dc.w $53 dc.w $187 dc.w $53 dc.w $0 dc.w $0 dc.w $a2 dc.w $16d dc.w $52 dc.w $0 dc.w $0 dc.w $eb dc.w $143 dc.w $51 dc.м шѕЗэЄєw $0 dc.w $0 dc.w $129 dc.w $10b dc.w $50 dc.w $0 dc.w $0 dc.w $15a dc.w $c8 dc.w $4f dc.w $0 dc.w $0 dc.w $17c dc.w $7b dc.w $4e dc.w $0 dc.w $0 dc.w $18d dc.w $29 dc.w $4d dc.w $0 dc.w $0 dc.w $18d dc.w $ffd6 dc.w $4c dc.w $0 dc.w $0 dc.w $17c dc.w $ff84 dc.w $4b dc.w $0 dc.w $0 dc.w $15a dc.w $ff38 dc.w $4a dc.w $0 dc.w $0 dc.w $129 dc.w $fef4 dc.w $49 dc.w $0 dc.w $0 dc.w $eb dc.w $febc dc.w $48 dc.w $0 dc.w $0 dc.w $a2 dc.w $fe92 мшіЋ—‚dc.w $47 dc.w $0 dc.w $0 dc.w $53 dc.w $fe78 dc.w $46 dc.w $0 dc.w $0 dc.w $0 dc.w $fe70 dc.w $45 dc.w $0 dc.w $0 dc.w $ffac dc.w $fe78 dc.w $44 dc.w $0 dc.w $0 dc.w $ff5d dc.w $fe92 dc.w $43 dc.w $0 dc.w $0 dc.w $ff14 dc.w $febc dc.w $42 dc.w $0 dc.w $0 dc.w $fed6 dc.w $fef4 dc.w $41 dc.w $0 dc.w $0 dc.w $fea5 dc.w $ff37 dc.w $40 dc.w $0 dc.w $0 dc.w $fe83 dc.w $ff84 dc.w $3f dc.w $0 dc.w $0 dc.w $fe72 dc.w $ffd6 dc.w $3e dc.w $0 dc.w $мшї/фИЖ0 dc.w $fe72 dc.w $29 dc.w $3d dc.w $0 dc.w $0 dc.w $fe83 dc.w $7b dc.w $3c dc.w $0 dc.w $0 dc.w $fea5 dc.w $c7 dc.w $3b dc.w $0 dc.w $0 dc.w $fed6 dc.w $10b dc.w $3a dc.w $0 dc.w $0 dc.w $ff14 dc.w $143 dc.w $39 dc.w $0 dc.w $0 dc.w $ff5d dc.w $16d dc.w $38 dc.w $0 dc.w $0 dc.w $ffac dc.w $187 dc.w $37 dc.w $0 dc.w $0 dc.w $ffff dc.w $190 dc.w $36 dc.w $0 dc.w $0 dc.w $53 dc.w $187 dc.w $35 dc.w $0 dc.w $0 dc.w $a2 dc.w $16d dc.w $34 мшјНЖDmf d7,world dbf d6,main move.l #$fffffffe,(a1) move.w #$00a0,$dff096 ;disable copper , blitter move.l #$50000,$dff080 ;set pointer for clist clr.w $dff088 ;start copper madness move.w #$85c0,$dff096 ;enable copper , blitter st_init:move.w #89,d3 move.l #$79000,a0 st_loop:bsr conan move.w d0,(a0)+ bsr conan move.w d0,(a0)+ bsr conan and.w #511,d0 move.w d0,(a0)+ dbf d3,st_loop stars: move.l #$79000,a4 move.w #89,d3 move.l #$78000,a5 band: move.w (a4)+,d4 moveЛшЮŘбN.w (a4)+,d5 move.w (a4),d6 sub.w #2,(a4)+ tst.w d6 ble tristar ext.l d4 divs d6,d4 add.w #210,d4 ;x_pos of starcreate ext.l d5 divs d6,d5 add.w #120,d5 ;y_pos of starcreate tst.w d4 blt tristar tst.w d5 blt tristar cmp.w #383,d4 ;horizontal frontier bgt tristar cmp.w #280,d5 ;vertikal frontier bgt tristar move.w (a5),d0 move.w d4,(a5)+ move.w (a5),d1 move.w d5,(a5)+ bsr setstar move.w d4,d0 move.w d5,d1 mulu #48,d1 move.w d0,d2 asr.w #3,d2 add.w d2,dЛшўЗgј‚nt(a6) ;init system move.l d0,a0 move.l 22(a0),a0 moveq #$00,d0 begin: movem.l d0-d7/a0-a6,-(sp) move.l execbase,a6 lea graphname(pc),a1 moveq #$00,d0 jsr openlibrary(a6) move.l d0,graphbase move.l d0,a6 move.w #$7ffe,d7 move.l #$60000,a0 cloop: clr.l (a0)+ dbf d7,cloop move.l #$54000,a1 jsr initrastport(a6) move.l #bitmap,4(a1) move.l #$54000,a1 moveq #$01,d0 jsr setapen(a6) move.w #9,d7 ;print addresses usw. move.l #messages,a5 textlo: move.l #$54000,Лшћ*|kKa1 clr.l d0 clr.l d1 move.b (a5)+,d0 move.b (a5)+,d1 jsr moverp(a6) move.l #$54000,a1 ;rastport clr.l d0 move.b (a5)+,d0 move.l a5,a0 add.l d0,a5 jsr text(a6) dbf d7,textlo move.w #35,d7 ;copy bootcopperlist to $50000 move.l #$50000,a1 lea clist(pc),a0 coplo: move.w (a0)+,(a1)+ dbf d7,coplo move.w #$6009,d0 move.w #4,d6 main: move.w #31,d7 move.l #colors,a0 world: move.w d0,(a1)+ move.w #$fffe,(a1)+ move.w #$0182,(a1)+ move.w (a0)+,(a1)+ add.w #$0100,d0 dbмш:.*^ #$22f8,$dff080 clr.w $dff088 out: move.l #$00,$80 move.w #$00,sr rts dostars:lea stcd,a4 move.b #1,waiter lea bppt,a0 lea stars,a2 moven: move.l #59*10,d4 bsr gett loop4: clr.l d3 clr.l d0 move.w 6(a2,d4.w),d0 move.w 8(a2,d4.w),d1 bsr socp subq.w #1,4(a2,d4.w) beq kanung loop3: move.w (a2,d4.w),d6 move.w 2(a2,d4.w),d7 move.w (a3),d0 move.w 2(a3),d1 move.w d6,d2 move.w d7,d3 muls d0,d2 muls d1,d3 moveq #$0e,d5 asr.l d5,d2 asr.l d5,d3 sub.w d2,d3 muls d1,d6 мш8р] muls d0,d7 asr.l d5,d6 asr.l d5,d7 add.w d7,d6 move.w d6,(a2,d4.w) move.w d3,2(a2,d4.w) muls #3,d6 muls #3,d3 divs 4(a2,d4.w),d6 divs 4(a2,d4.w),d3 add.w #$b0,d6 add.w #$8c,d3 move.w d6,6(a2,d4.w) move.w d3,8(a2,d4.w) clr.l d0 clr.l d1 move.w d6,d0 move.w d3,d1 clr.l d3 move.w 4(a2,d4.w),d3 divu #$000f,d3 addq.w #1,d3 cmp.l #$0160,d0 bpl.s kanung cmp.l #$0117,d1 bpl.s kanung bsr socp sub.l #$0a,d4 bpl loop4 btst #$06,$bfe001 bne moven rts gett: subq.bмшё"^œ #1,waiter bne.s warnix cmp.l #stcde,a4 bne.s getn lea stcd,a4 getn: clr.l d6 move.b (a4)+,d6 move.b (a4)+,waiter lea ttab,a3 add.l d6,a3 warnix: rts kanung: move.w wert,d0 muls d0,d0 lsr.l #8,d0 eor.w #$c489,d0 move.w d0,wert asr.w #4,d0 move.w d0,(a2,d4.w) move.w wert,d0 muls d0,d0 lsr.l #8,d0 eor.w #$8c95,d0 move.w d0,wert asr.w #4,d0 move.w d0,2(a2,d4.w) move.w #$64,4(a2,d4.w) bra loop3 socp: divu #8,d0 mulu #$2c,d1 add.w d0,d1 swap d0 eor.w #7,d0 cмшjЂуMlr.l d2 moveq #2,d5 set3l: move.l (a0,d2.w),a1 lsr.b #1,d3 bcs.s setpo bclr d0,(a1,d1.w) ploop: addq.w #4,d2 dbf d5,set3l rts setpo: bset d0,(a1,d1.w) bra.s ploop copper: dc.w $0180,$0000 dc.w $0182,$0fff dc.w $0184,$0dde dc.w $0186,$0bcc dc.w $0188,$0aaa dc.w $018a,$0889 dc.w $018c,$0677 dc.w $018e,$0555 dc.w $0104,$0004 dc.w $0102,$0000 dc.w $00e0,$0006 dc.w $00e2,$0000 dc.w $00e4,$0006 dc.w $00e6,$3000 dc.w $00e8,$0006 dc.w $00ea,$6000 dc.w $0108,$0000 dмшёіХ›c.w $010a,$0000 dc.w $008e,$2071 dc.w $0090,$37d1 dc.w $0092,$0030 dc.w $0094,$00d8 dc.w $0100,$3200 dc.w $0120,$0000 dc.w $0122,$0000 dc.w $0124,$0000 dc.w $0126,$0000 dc.w $0128,$0000 dc.w $012a,$0000 dc.w $012c,$0000 dc.w $012e,$0000 dc.w $0130,$0000 dc.w $0132,$0000 dc.w $0134,$0000 dc.w $0136,$0000 dc.w $0138,$0000 dc.w $013a,$0000 dc.w $013c,$0000 dc.w $013e,$0000 dc.w $ffff,$fffe bppt: dc.l $60000 dc.l $63000 dc.l $66000 wert: dc.w $0 waiter: dc.b $0 мшй‡'even ; Starfield turning control ; ; Direction,waiter ; ---------------- stcd: dc.w $2038 dc.w $1c03 dc.w $1803 dc.w $1403 dc.w $1003 dc.w $0c03 dc.w $0803 dc.w $0403 dc.w $000f dc.w $0403 dc.w $0803 dc.w $0c03 dc.w $1003 dc.w $1403 dc.w $1803 dc.w $1c03 dc.w $2003 dc.w $2403 dc.w $2803 dc.w $2c03 dc.w $3003 dc.w $3403 dc.w $3803 dc.w $3c03 dc.w $400f dc.w $3c05 dc.w $3805 dc.w $3405 dc.w $3005 dc.w $2c05 dc.w $2805 dc.w $2405 dc.w $2050 dмшc&јc.w $24c8 dc.w $2464 dc.w $1cc8 dc.w $201e dc.w $1c01 dc.w $1801 dc.w $1401 dc.w $1001 dc.w $0c01 dc.w $1001 dc.w $1401 dc.w $1801 dc.w $1c01 dc.w $2001 dc.w $2401 dc.w $2801 dc.w $2c01 dc.w $3001 dc.w $3401 dc.w $3001 dc.w $2c01 dc.w $2801 dc.w $2401 dc.w $2001 dc.w $1c01 dc.w $1801 dc.w $1401 dc.w $1001 dc.w $0c01 dc.w $1001 dc.w $1401 dc.w $1801 dc.w $1c01 dc.w $2001 dc.w $2401 dc.w $2801 dc.w $2c01 dc.w $3001 dc.w $3401 dc.w $3001 dc.w $2c0м шRgм1 dc.w $2801 dc.w $2401 dc.w $2001 dc.w $1c01 dc.w $1801 dc.w $1401 dc.w $1001 dc.w $0c01 dc.w $1001 dc.w $1401 dc.w $1801 dc.w $1c01 dc.w $2001 dc.w $2401 dc.w $2801 dc.w $2c01 dc.w $3001 dc.w $3401 dc.w $3001 dc.w $2c01 dc.w $2801 dc.w $2401 dc.w $2001 stcde: dc.w $0000 stars: dc.w $53 dc.w $187 dc.w $71 dc.w $0 dc.w $0 dc.w $a2 dc.w $16d dc.w $70 dc.w $0 dc.w $0 dc.w $eb dc.w $143 dc.w $6f dc.w $0 dc.w $0 dc.w $129 dc.w $10b dc.w $6e dc.w м шђЇї\$0 dc.w $0 dc.w $15a dc.w $c8 dc.w $6d dc.w $0 dc.w $0 dc.w $17c dc.w $7b dc.w $6c dc.w $0 dc.w $0 dc.w $18d dc.w $29 dc.w $6b dc.w $0 dc.w $0 dc.w $18d dc.w $ffd6 dc.w $6a dc.w $0 dc.w $0 dc.w $17c dc.w $ff84 dc.w $69 dc.w $0 dc.w $0 dc.w $15a dc.w $ff38 dc.w $68 dc.w $0 dc.w $0 dc.w $129 dc.w $fef4 dc.w $67 dc.w $0 dc.w $0 dc.w $eb dc.w $febc dc.w $66 dc.w $0 dc.w $0 dc.w $a2 dc.w $fe92 dc.w $65 dc.w $0 dc.w $0 dc.w $53 dc.w $fe78 dcш ]K ŸŽŸЏКРРЛЛУдршэяёѓѕјћџ"%$%&*7IYcefhnsvy|xrib`_biptvpcSJFEFEB><:€:Чј €џњќ џџџСђќџџџрфј џџџ0ФШ№#џџџРШа ?џџќ ар8_№?їј€`€o‚ƒ/ќР@€ЯњO§0€€<Рџ0џ Р$`џ@?€^ Рџ џРўП@џРџ€ў№џ€ќ@џ€ќ??џ@ќ€џќџџў€јјџџџљ№ј џџрј џџзшџџї зшРїyџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџqш*Naccumulators.Ses">AXNintro3.SzerСЂaxxess_boot.Sybeasty-boys.SS7ђddc(scroll).S‚Disk.infors^EQU1.SMђHEADMUSIC.S(TOENE AUS LAUFWERKДINTRO.St`Irq.Slators.SоJHPD(equalizer).SSЯMAD-COPPER.SSСResetfest.SqІ~о-Бsilicon(SCROLL).Ssinusscroll.S& trash(bigscroll).S gvision.S-intro.SK.rcect_sourcesSD3_SOURCEROLL).SMEGAMINDStrike_Forcetrossuper 3d scrolling,vektor.fastdir-intro.S~3DStars.S.S#Яaccu.font‡шЈжU % ыщ+ шњ!"їъїў§§№ її ё тїхђџўштџ§мёдђяњ ћд№ узѕ ещїю я§ѕт јі №яї3д § іъіј сћ  ю ыцј%й ю&№ўќ ё ъь"ђюћи§ §ћщъ шјљяпњх§ѓўэшђъљєяюћ ььїњ №ѕэ ѓіє ќ §ї#ќ/ љ .ј&ц§ћ яєќјњњџ №ъсѓ шярјы§ ћююэшо§єєфњёњњўцщг њ§ыњ§юя-ю ѓћћ їќ§! њєіє ќуцчя" ј љч§ђ№і№§ёј ј §є ьќќџ ђьн ц§џ ыћќѓєя §ѕојшщќђл чіяј ѓхњ ђђ ћ ќ њ3я§ ў ћˆшu R љ№ілрѕщя ў ћц§ќњќр№ ъёшхїќъ§јлїцњ§щщ шѓџ/ ј э ѓќ§ ќя їюў юэіёѕџъ№ўџў§ њ ѓ ѕ ќјт §њѕыќїріџіюѕцфџџщђђќўџює## § ў ућ §џэь ѕхїљтњсљёрћ щніь§ ыїчњяяєўії ћўє,  і њѕ1х §ћ њ йтјцќэ ѓќэџьє џјѓїїєљєєѕђ§ їўїэя§ѓђјёўњђњђщ  ќў    єя њћѕ§ѓщѓіяќћшъяѓјќђђыншљёњтѕќђшѕћч§ќёѓ№ќјћ ъ ќњ ї љ  њv ш|KZGї adr4: dc.w $c180 dc.l $01004200 ;wab: ;blk.w 380,0 dc.l $de09fffe,$01800000,$01000200 dc.l $01000000,$01080090,$010a0090; DRUEBER SCHWARZ, UND MODULO dc.l $00e00005,$00e2c002,$00e40005,$00e6c030 ; ADRESSE 1 UND 2 PLANE dc.l $00e80005,$00eac05e,$00ec0005,$00eec08c ; ADRESSE 3 UND 4 PLANE ; Farbpalette fuer ersten Scroller dc.w $0180,$0000,$0182,$0060,$0184,$0070,$0186,$0080,$0188,$0090 dc.w $018a,$00a0 dc.w $018c,$00b0,$018e,$00c0,$0190,$00d0,$0192,$00d0,$0194,$00e0 dc.w $0196,$00f0,‰шŽBOжќ 'ї! ї ўёђ§єѕѕѓќўэљёљђїѓћцє№ўыыѓчіюѓцфѓпьћёјѕѓєў ѕљџ ќўљ љџюѕў "ўџ # ќѕ №ћђјљііљѕыјїњ№ічр ђўьѓ їьѕѕяїљћъё§ќ ѕєёёўцўё є§ѓ є ќї ј ћ љ§і шќћя юђњціљђпјќ№ыф§ќєі№ћѓњъѓрќсфџ§џэ џѕї  ієј§   ћ ј љ§ §ўјїї§ёўыєѕяўљы§ѕќђј§ѓёёќіћљіѓњћ§іќ ѕіўјўўќђ џћќљ §і   јѕ ўўћ  єќ§ §џљ єя і§ѕєџэјєљ §јўџљ§ьїћўŠш[я{§§ќѓћџћџ љ§ў љѕўџ § ёќ §џћіљњњє јљ ќё њ ѕ џёџњќќєћњѕ§њїџќї ы§ўёћ ўџњ§эљ ў§ўњ њџі џљѕ ќ їєіћїќ ёњђ§ѕэђ ћўљї їў ј ѓњђў ьќіљєќћјћџћџћѕў§  јќћі іњў і ўѕњ џё ј§ќїџњѓїя§ њѕњюѓєќљ ћ№ћ њіџ ъџїўћњ №ў §ў ў ў џїэ џџ ћ ђўћјє§џњ §шѓє ьљїџћўђћѕўє§№ѓўџђћ§љ§ќќќјёќ§ўљўњшћ§ў ї ї  ў ј§ѕїї џџџњ ў‹шЙШAі§§ћіњ №љіўћѕіљњяљ§§јџїћїћљџ ііљјћ ѕ §ўќ §ћџљ  ћїё њє њљџў§ўў і љѓ њјџђѕћћћїљў ј ќјљ ўњіџ §љџњј§џћџѓєјјџїќј њњќўџ§ўё§є єњ ђњџќ ўё§јљљ џўњџ  љўђ ўњњџўќњ ђўџљ§ №љ їєќэ №§ ћљіјэ іїљњєѕ №љњњјџњ§ќџџѕј њ  ў ўѕ  ћѕ і§њџ§ўіњї ѕќџёіяўќџјєєћџё§ћѓѕјљщўџћўљq[f1ŒшФЧJВ€ƒРшЛ И€€‚–ПЩ2)2Qzk0^nDьо0тгњшŸ›ЌБЋЦ№ьЂ€ Б‡€€…–—’ЉХкђ )?94Ccskw|h>(+7@?6453+#$,)ќ№љљєђчлеезймонждзвПЅ”’ŸІЋДКПТЛА­ЋЁ‚‚‚ƒзшџџwџџџџџџџџџџџџџџџџџџџџџџџџџџџџџзш w‰џџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџзш!ї/џџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўзш"ї'џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџзш# wwџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўзш$џџіџзш%џџі§зш&їbџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџзш'€ wzџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџзш(€ wwџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўзшџџї П ш*ƒѕљў #(,04688751,% џєщпжЭЧТППРСХЪаипчяїџ "&)+-.///..--,+)('%#!  ўћљіѓёяьъшцфтронмлййиииииийклмнпсуцшыэёєјћџ  %)-134542/)$ їьтиаЩФРОНОСХЪбйрщ№јџ!%'*+------,+*)(&$#! ўќљієђяэыщчхусрпонммллллммнопстфцшъьяђѕјќ !&)-/2221.*& ўєысиаЩХРОНОРФЩЯжмфьѓћ!$'()**+++*))('%$"! џ§њјѕѓёяэыщчцхутсррппппппррсуфцчщыэ№ђѕљќ "%(+.///-*&! њёшоеЯЩФРООПСХЪЯжмуъёљџ !$&'()***))(('%$"!  §ћљїєђ№юэыъъшчххфуП ш+ИЋ›ђууттттууфхчшъьяёєіљќ  #&)+---+)%! ќєътйвЫЦТПООПСХЪЯжмфыёљў  "$%&'((('''&%#"! џ§ћљіѕѓђяюьыщшчцххфффхххцччщъыэю№ѓѕїњ§  #&(***)(%!ј№чпзбЫХТПППРТЦЫажмтъёї§ "$$%%&&&&%$$##"! џ§ћјієѓё№яюьыъщщшшшшшшшшщъыьэяёѓѕїњќџ "$%&''&$! ўіюцпзбЪЦТРООРТХЩЮдкрчэѓјџ  "#$$%%%$$#"!  ўќњјїѕєѓё№яюэьыыъъщъъъыыьэю№ёѓѕїљќџ "$%&&&%#  џјёщскгЭШХТРРРТХЩЭвзмушюєњџ  !!""""""!!  П ш,’‡wгџўћњјїієѓђё№яюэээььээююя№ёђѓѕіјњќџ !"####!њєьхозвЬШФТСРСТХШЫбелсчэђј§  !!!"""!!  џ§ќњљїіѕєѓђђё№№№№№№№№ёёђѓєіїљћќў !"#$##! ўї№ътмжаЫЧФСРРСТХШЬбелрхы№іњџ  !!  џў§ќњљјііѕєєѓђђђђђђђѓѓєѕіїјљћ§џ  ! §ї№ъунзбЬШЦФТСТТХЧЫЯгинтшэђїќ  џў§ќћњљљљјїїіііѕѕѕѕііїїјњћќўџ  ўјѓьцркдаЫШХУТТТУХШЬадйоушэђјќ П ш-/CKВ џў§ќћњљјјјїїїїїїїјјљњњћќ§џ  ћі№ъфпйдаЬЩЦХФУФХЧЪЭаейнтчьёѕњџ  џџў§ќћћњњњњњњљњњћћќ§ўџ  ќјђэчтнигаЬЩЧХФФФХЧШЫЮвейнтцъюђіњ§    ќјђющфрмидаЭЫЪШЧЦЧЧШЩЫЮагжймручыяђіљќџ    ўњіђюъцтнкжгаЭЬЪШП ш.QE%^ШШШШЩЪЬЭЯгеилосфшыяђѕјњ§  ќјѕёэщхтолиеваЮЬЫЪЪЩЩЩЪЫЭЯбгеилосуцщьяђѕїњќў  §њїѓ№эъцурнкздваЯЭЭЫЫЫЬЬЭЮЯбдеикнптхшыэяђєїљћ§џ  §њїєёэычфсомйждваЯЮЮЭЬЬЭЭЮЯбвдеикмосуцшъэяђєіјњќў  ПљˆўћјѕђяьщцуромйзедвбааЯЯЯаабвгджзйлнпсуцшъьяёѓіјњ§џ  џ§њїєђяьщцфспнлйзедгввбабббввгежзйкмосухчщыэяёѓѕїљћќў     ќјђющфрмидаЭЫЪШЧЦЧЧШЩЫЮагжймручыяђіљќџ    ўњіђюъцтнкжгаЭЬЪШз ш0€wPџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџз ш1€ w\џџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўзш2џџіљзш3weџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџзшwQџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўН ш5ЦЗ—тPЌЊ`ж@ж`тPтP}—`}pж0ОтPтP}О`ж@Оў`тPтP}ж0ОтPтP}}pж@SpОт`}pтPSpтP€ж`@pж0@тPтP€ў`ж@@@`тPтP€ж0Н ш6Т&w@ў`тPтP€ж`ж@@Њ`тPтP:О`pж0тPтP:т`ж@`тPтP:ж0тPтP:ж@ж@ж@ќў`ж ж0ў ўS тPў тPќж ж@ў ўS тPў тPќН ш7ЖИ—ж ж0ў ўS тPў тPќж ж@ў ўЊ тPў тP€  ж0ж @ў тPж тP€  ж@ж @ў тPж тP:т`О ж0т  тPт тP:`О ж@т  тPО тPЌS`Њ ж0ж ж тPж тPЌЊ ж@ж ж тPНЛе8ж тPЌЊ ж0ж ж тPж тPЌЊ ж@ж жЊ тP тP}}`— ж0О Оў тPО тP}S`— ж@О Оў тPО тP}.`— ж0О Оў тPО тP}}`— ж@О О тP— тPў тPќж ж@ў ўS тPў тPќПш9ћљхJрыњ.Jh|rO*нЫЦаш'EZjqrmd[OE:2+$!#&)+.0234444431.+($ ћѕ№ъхпидЮЩХРМИДА­ЊЇЅЄЃЃЂЃЃЅЈЊ­АЕИНСЦЫаейотцшыьээьъчфснмлоую§-GcwsW6ыгЧЪиђ-EZhookd[RH?7/)$ !#'),-./0100/.,*(%" §јѓэчслжвЬЧТОЙЕВЎЌЊЇІЄЄЄЄЅІЈЊЌЏГЗЛПФШЬбжкорухццчцфтроннрхюќ #;Sjz~pT3яжЩШгъ8N^inmiaZQI@<50*'$"!!!!"$%&()++,,,,,+)'%#  ќїёыцркдЮЪХТОЙЕБЎЋЉЇЅЄЃЃЃЄІЈЊ­АГЗЛРФШЬагжйморсссрпонмнпуьї2H`rzgL+ыдШЧгхџ0FUagjgc]UME?83.*'%##""#$%&'()*+,,++*)(%# ќїђэцркеЯЪХСМИДБЎЋЈЇЅЅЄЄЅІЉЋ­ЏВЖЙПш:2'%}НСФШЬавеикммнооопппрушёћ /DYky~{mU;§саЧЩдш§-BP\dfeb]WQIC<73/+)&%$%%%&&'(()))))('&#! §јѓюштмивЭЧУПКЗГА­ЋЉЇІІІІЇЈЊЌЎБДЗКОСХШЫЯбджзйкккллмнсхьє2DXiv{ymX@"ъеЩЧЮм№3DR\bdc_ZUOJC>941-*)'&&%&&&'(((((''&$"! џњѕящфпйгЮЪХРМИЕВЎ­ЌЋЉЈЈЈЉЊЋ­АВДЗКОРФЧЪЭЯбгежзийклнрфъђћ(;M_luwrdQ7чеШЦЬзъ§%8FRZ^_^[WRLGB=841.,*('''&&&&&&&&%%#"  §љєящуойдЮЩХСНЙЕВАЎЋЊЉЈЈЉЉЊЌЏБГЖЙМПТФЧЪЭЮбгджзиклотцьє§ '7GXfosqhWB)ѕсаШЦЬиъћ#4CMUZ\][WSNIE@<842/-+*)((''&&&&%$$$"  ћіёьцслжбЬШФППш;А”‚ОЛИДВЏ­ЋЊЉЉЉЊЋЌ­АВДЗКМПТХЧЪЫЮавдезйлосцьєќ %6DT`kppi]K4эйЬХЦЬйщћ0?IQWYZXVRNJFB=:730.-+*)((''&%%$"!  џњі№ыцрлжбЭЩФСМКЗДВЏЎ­ЌЌЌЌ­ЎАБГЖИКНРТХШЪЬЮавдзйлпучэє§ -;8530/-+*('&$#"! ўњіёэщфрлидаЬШХТПНЛЙЗЖЖЖЖЖЗЗИКЛОПСТФЦШЪЭЯвдзкнсхъ№і§ #-9BLTZ]]YRF8&япгШТСУЪгоьљ +4<97420.-+)'&$"!  §љѕёьшхснйжвЯЫЩЦУСПОНЛЛКККЛМНОПСТФЦШЪЬЮбгжкнсхщюѓљ"*4DJNPQNH@5' ћьогЩУРРУШблхђ§ %-38<:87420.,+)&%#!  ўћїѓяьщхтолидвЯЭЫШЧЦФУТТТТТТУФХЦЧЩЫЭЯбгжймптцъяєњџ $,4;BGKMLJE>3( §юсдЫФПОРУЪгмшђў %+058;=>>>=<;985420.,+)'%$"  џќјѕёюышфсолиеваЮЬЪЩЧЦХФФФФХХЦЧШЪЫЭЮбгжйлосхшэёї§ &-4;AEHJIFA:0& ќясжЫФРОПСЦЭжрыєџ "(.3689:;;:9875420.-+)(%$!  §њїѓ№ьщцурнкиегаЮЭЫЪЩШШЩЩШЩЩЪЫЬЮЯбгджйлосфшы№єљџ  &.4:?CEFD@;4*Пш)FQSЛјьпдЬФРООСЦЬдочёњ$*.25799998765310.-+)'&$"  ўћїєёюъчфспнлйзегваЯЮЭЬЬЬЫЬЬЬЭЮабгезймосфшьяєљў $+17;?AA@>93*! ќ№цйаШТПОПТЧЭжошђњ !'+/235566654310.-+)(&$#! џќњіѓ№эъчхтролйзегвбаЯЯЯЯЯЯЯабвгджйлнртхшь№ѓјќ $*/48<>>=:60( §ђцлвЪУРООСФЪбйсыѓќ !&*-0234443320/.--,)'%$"  ўћјєёяьщцфтролкижеддгввввввгдежзйкнптфчъюёѕњџ%+/479;;:71+#љютйЯЩУОННПУЩЯзпшёњ #'+.00111110/.-+*)'&$"  џќјіѓ№эыщцфтромлйизжеееееежжзййлнпсухшыяђПш8-YnvvodUH:.% %)-0468::;;;98530,($  ќіёыцслеаЫЦУОКЗДА­ЊЉЇЇІЅЄЄЅІЈЊ­АДИНТЦЭдйпхъяєїњћќћљіђьхпйжзмчњ1Soz_3 уЪФЮш-Jbotrj`TG<1)" #&),/1356676532/-*&" ћѕёъхрйдаЫЦСОКЖВЏЌЊЈІЄЃЃЂЃЄЅЇЊ­БЕЙОУЩЭгйосхщью№ёё№эъцтолклЋш@SMдkAIRLIGHT," dc.b "SHUT BERLIN,THE FASTTEAM,AND,AND,AND............ " dc.b " " dc.b " " ende1: even texte1: dc.l 0 even texte2: dc.l 0 even texte3: dc.l 0 even file: dc.l 0 even bitmap: blk.w 4,0 even plane1: blk.l 11,0 even rastport: blk.l 1,0 even bitmapzw: blk.l 26,0 even oldcopper: dc.l 0 even dosname: dc.b "dos.library",0 even dosbase: dc.l 0 even za1: dc.b 0 even za2: dc.w 0 even bz1: dc.w 0 ЋдUзeven za4: dc.b 0 even lza: dc.b 0 even sza: dc.l 0 even sza1: dc.b 0 even lza1: dc.b 0 even lza3: dc.b 0 even w1: dc.b 0 even za10: dc.b 0 even lauf1zw: dc.w 0 even za23: dc.l 0 even lauf2zw: dc.w 0 even lauf3zw: dc.w 0 even senk1: dc.w 0 even za25: dc.l 0 even za26: dc.l 0 even senk2: dc.w 0 even wage1: dc.w 0 even wage2: dc.w 0 even za30: dc.b 0 even za32: dc.b 0 even za40: dc.b 0 even YDir: dc.w 0 even Y: dc.w 0 even scroll2z1: dc.l 1 even scroll2z2: dc.b 10 DEVIL,NORTH STAR & FНшBЛbїќў ж ў ж ќ ў О ў О ќў ж ў ж ќ ў т ў т ќў ж ў ж ќ ў О ў О ќў ж ў ж ќ ў т ў т €ў ж ў ж € ў О ў О €ў ж ў ж € ў т ў НшCŸї т €ў ж ў ж € ў О ў О €ў ж ў ж € ў т ў т њў ж ў ж њ ў О ў О њў ж ў ж њ ў т ў т њў ж ў ж њ ў О ў О њў ж ў ж њ ў т ў т : т  т :  ж  ж : т  т НшD“ъЇ :  ў  ў : т  т :  ж  ж : т ж@ т ж@Х  ў ж@ ў ж@ќў ж ж0ў О ќ ў ж тPў т тPќў ж ж@ў О ќ ў ж тPў т тPќў ж ж0ў О ќ ў ж тPў т тPќў ж ж@ў О ќ ў ж тPў т тP€ў ж ж0ў О € ў ж тPў т тP€ў НшE‹ow ж ж@ў О € ў ж тPў т тP€ў ж ж0ў О € ў ж тPў т тP€ў ж ж@ў О € ў ж тPў т тPњў ж ж0ў О њ ў ж тPў т тPњў ж ж@ў О њ ў ж тPў т тPњў ж ж0ў О њ ў ж тPў т тPњў ж ж@ў О њ ў ж тPў т тP: т ж0 ж :  т тPНшFЂ/— ў тP: т ж@ ж :  т тP ў тP: т ж0 ж :  т тP ў тP: ж ж@ т ж@Х  О тP  ж@ќж`ж ж0т ўў тPт тPќт`ж ж@т ўў`ў тPт тPќж ж0т ўў тPт тPќт`ж ж@т ўж`ў тPт тP€ `  ж0НшGЎHїж @ў тPж тP€Њ`  ж@ж @ў тPж тP€О`  ж0ж ж@@ў тPж тP€ж`  ж@ж @ў тPж тP:О`О ж0т  тPт тP:т`О ж@т ` тPт тP:О ж0т ` тPт тP:ў`О ж@т т` тPт тPНшHЉЛ7ќж`Њ ж0ж ўў тPж тPќт`Њ ж@ж ўў тPж тP€ў`  ж0ж @ў тPж тP:т` ж@О ж@ ж@О ж@Іт`т ж0 SS тP тPІ `т ж@ SS`S тP тPІт ж0 S `S тP тPІт`т ж@ SО`Н шIЈYЇS тP тP€ж`ж ж0ў @@ тPў тP€ў`ж ж@ў @@`@ тPў тP€ж ж0ў @@ тPў тP€ў`ж ж@ў @ж`@ тPў тP:О`О ж0т  тPт тP:т`О ж@т ` тPт тP:О ж0т т` тPт тP:О`О ж@Н ш4Нт  ` тPт тPЌЊ`Њ ж0ж ж тPж тPЌж`Њ ж@ж жО` тPж тP:О ж0т ` тPт тP:`О ж@т ` ж@т ж@ЌЊ`жpж0жтPтPЌж`ж@ж`тPтPЌж0жж`тPЋшKпЌGMOVE.W #$0600,34(A1,D0.W) MOVE.W #$0800,42(A1,D0.W) MOVE.W #$0800,46(A1,D0.W) MOVE.W #$0A00,54(A1,D0.W) MOVE.W #$0A00,58(A1,D0.W) MOVE.W #$0700,66(A1,D0.W) MOVE.W #$0700,70(A1,D0.W) MOVE.W #$0400,78(A1,D0.W) MOVE.W #$0400,82(A1,D0.W) MOVE.W #$0100,90(A1,D0.W) MOVE.W #$0100,94(A1,D0.W) MOVEQ #0,D0 MOVE.B (A0,D1.W),D0 MULU #12,D0 SUBQ #8,D1 MOVE.W #$0200,06(A1,D0.W) MOVE.W #$0200,10(A1,D0.W) MOVE.W #$0500,18(A1,D0.W) MOVE.W #$0500,22(A1,D0.W) MOVE.W Ћ шLљо#$0700,30(A1,D0.W) MOVE.W #$0700,34(A1,D0.W) MOVE.W #$0900,42(A1,D0.W) MOVE.W #$0900,46(A1,D0.W) MOVE.W #$0B00,54(A1,D0.W) MOVE.W #$0B00,58(A1,D0.W) MOVE.W #$0800,66(A1,D0.W) MOVE.W #$0800,70(A1,D0.W) MOVE.W #$0500,78(A1,D0.W) MOVE.W #$0500,82(A1,D0.W) MOVE.W #$0100,90(A1,D0.W) MOVE.W #$0100,94(A1,D0.W) MOVEQ #0,D0 MOVE.B (A0,D1.W),D0 MULU #12,D0 SUBQ #8,D1 MOVE.W #$0200,06(A1,D0.W) MOVE.W #$0200,10(A1,D0.W) MOVE.W #$0600,18(A1,D0.W) MOVE.W #$0600,Ћ шMЬкс22(A1,D0.W) MOVE.W #$0800,30(A1,D0.W) MOVE.W #$0800,34(A1,D0.W) MOVE.W #$0A00,42(A1,D0.W) MOVE.W #$0A00,46(A1,D0.W) MOVE.W #$0C00,54(A1,D0.W) MOVE.W #$0C00,58(A1,D0.W) MOVE.W #$0900,66(A1,D0.W) MOVE.W #$0900,70(A1,D0.W) MOVE.W #$0600,78(A1,D0.W) MOVE.W #$0600,82(A1,D0.W) MOVE.W #$0100,90(A1,D0.W) MOVE.W #$0100,94(A1,D0.W) MOVEQ #0,D0 MOVE.B (A0,D1.W),D0 MULU #12,D0 SUBQ #8,D1 MOVE.W #$0200,06(A1,D0.W) MOVE.W #$0200,10(A1,D0.W) MOVE.W #$0700,18(A1,DЋ шNЛюЦ 0.W) MOVE.W #$0700,22(A1,D0.W) MOVE.W #$0900,30(A1,D0.W) MOVE.W #$0900,34(A1,D0.W) MOVE.W #$0B00,42(A1,D0.W) MOVE.W #$0B00,46(A1,D0.W) MOVE.W #$0D00,54(A1,D0.W) MOVE.W #$0D00,58(A1,D0.W) MOVE.W #$0A00,66(A1,D0.W) MOVE.W #$0A00,70(A1,D0.W) MOVE.W #$0700,78(A1,D0.W) MOVE.W #$0700,82(A1,D0.W) MOVE.W #$0100,90(A1,D0.W) MOVE.W #$0100,94(A1,D0.W) MOVEQ #0,D0 MOVE.B (A0,D1.W),D0 MULU #12,D0 SUBQ #8,D1 MOVE.W #$0200,06(A1,D0.W) MOVE.W #$0200,10(A1,D0.W) Ћ шOЙaЌОMOVE.W #$0800,18(A1,D0.W) MOVE.W #$0800,22(A1,D0.W) MOVE.W #$0A00,30(A1,D0.W) MOVE.W #$0A00,34(A1,D0.W) MOVE.W #$0C00,42(A1,D0.W) MOVE.W #$0C00,46(A1,D0.W) MOVE.W #$0E00,54(A1,D0.W) MOVE.W #$0E00,58(A1,D0.W) MOVE.W #$0B00,66(A1,D0.W) MOVE.W #$0B00,70(A1,D0.W) MOVE.W #$0800,78(A1,D0.W) MOVE.W #$0800,82(A1,D0.W) MOVE.W #$0100,90(A1,D0.W) MOVE.W #$0100,94(A1,D0.W) MOVEQ #0,D0 MOVE.B (A0,D1.W),D0 MULU #12,D0 SUBQ #8,D1 MOVE.W #$0200,06(A1,D0.W) MOVE.W Ћ шPГГ7 #$0200,10(A1,D0.W) MOVE.W #$0900,18(A1,D0.W) MOVE.W #$0900,22(A1,D0.W) MOVE.W #$0B00,30(A1,D0.W) MOVE.W #$0B00,34(A1,D0.W) MOVE.W #$0D00,42(A1,D0.W) MOVE.W #$0D00,46(A1,D0.W) MOVE.W #$0F00,54(A1,D0.W) MOVE.W #$0F00,58(A1,D0.W) MOVE.W #$0C00,66(A1,D0.W) MOVE.W #$0C00,70(A1,D0.W) MOVE.W #$0900,78(A1,D0.W) MOVE.W #$0900,82(A1,D0.W) MOVE.W #$0100,90(A1,D0.W) MOVE.W #$0100,94(A1,D0.W) MOVE.W BEAMCOUNT2,BEAMCOUNT RTS ; -----------------------------------ЋшQ‹Bы§------------------------- EVEN BEAMCOUNT2: DC.W 0 EVEN BEAMPOS: DC.B 039,038,038,038,038,038,038,038,038,038 DC.B 039,039,039,040,040,041,042,042,043,044 DC.B 045,046,047,048,049,050,051,052,053,055 DC.B 056,057,059,060,062,063,065,066,068,069 DC.B 071,073,074,076,078,079,081,083,085,086 DC.B 088,090,091,093,095,097,098,100,102,103 DC.B 105,107,108,110,111,113,114,116,117,119 DC.B 120,121,123,124,125,126,127,128,129,130 DC.B 131,132,133,134,134,135,136,136,137,137 DC.B 137,138,138ЋшRbўб,138,138,138,138,138,138,138 DC.B 137,137,137,136,136,135,134,134,133,132 DC.B 131,130,129,128,127,126,125,124,123,121 DC.B 120,119,117,116,114,113,111,110,108,107 DC.B 105,103,102,100,098,097,095,093,091,090 DC.B 088,086,085,083,081,079,078,076,074,073 DC.B 071,069,068,066,065,063,062,060,059,057 DC.B 056,055,053,052,051,050,049,048,047,046 DC.B 045,044,043,042,042,041,040,040,039,039 DC.B 039,038,038,038,038,038,038,038,038,038 DC.B 039,039,039,040,040,041,042,042,043,044 DC.B 045,ЋшSЛ№zk046,047,048,049,050,051,052,053,055 DC.B 056,057,059,060,062,063,065,066,068,069 DC.B 071,073,074,076,078,079,081,083,085,086 BEAMCOUNT: DC.W 229 BEAMPOSEND: EVEN ; ------------------------------------------------------------ ; ------------------------------------------------------------ COPPERLIST: dc.w $01be,$0fa0 dc.w $0092,$0030,$0094,$00d8 dc.w $0108,$0000,$010a,$0000 dc.w $0102,$0000,$0104,$0000 dc.w $008e,$2973 dc.w $0090,$29e1 dc.w $0100,$5200 dc.w $00e0,$0004ЋшT.LХ,$00e2,$d000 dc.w $00e4,$0004,$00e6,$d000 dc.w $00e8,$0004,$00ea,$d000 dc.w $00ec,$0004,$00ee,$d000 dc.w $00f0,$0004,$00f2,$d000 dc.w $0180,$0000,$000f,$fffe dc.w $0180,$000f,$300f,$fffe dc.w $0180,$000d,$340f,$fffe dc.w $0180,$000b,$370f,$fffe dc.w $0180,$0009,$390f,$fffe dc.w $0180,$0007,$3b0f,$fffe dc.w $0180,$0005,$3d0f,$fffe dc.w $0180,$0003,$3e0f,$fffe dc.w $0180,$0001,$3f0f,$fffe dc.w $0180,$0000,$400f,$fffe BEAMCOPADR: BLK.L 576,0 SINCOPADRЋш?ИУx5: BLK.L 300,$01800000 DC.L $009C8010 DC.L $FFFFFFFE COPPERLISTEND: PICADR: DC.L $76000 PLANEADR: DC.L $70000 GFXBASE: DC.L 0 SINCOP: DC.L 0 POINTER: DC.L 0 TEXTPOS: DC.L 0 SCROLLSTEP: DC.L 0 SCSTEP: DC.W 0 STOPLABEL: DC.W 0 MEM: DC.W 0 MEM1: DC.W 0 STOPCOUNT: DC.L 2 STOPBIT: DC.B 0 SWAP: DC.B 0 SCLABEL: DC.B 0 EVEN GFXNAME: DC.B "graphics.library",0,0 even text1: dc.b " THE REAL DJ SEND GREETINGS TO: " dc.b "ANDY,ABAKUS,ANGLE & DEVIL,NORTH STAR & FЛшV…П Ф> ˆў@?м€ї <‚ 0ќ ? Cќ€€џ ќ`#џ ќ€МGџ ?§€ŸрЯџ`ў€ЯџŸџ  џў€OёР?џ џЧ€Oј ёрљџ€Oџўр?џ€OџШСџр>€gџШƒпр|УР'џф0№|Р&4@px"`&4€qЄ $iїh$=кїx$д=ою№'џє;Мю№'џд;Мю№?џМ;Мя№;џ|;ќу№;џј8ќќј;ў№?>џј0?ўј?ў є@=цў§ђ >џќ€hљ@?џќŸў@PќТ@?џўпџ07ў~€?џџmџŸ 7џœ€?џџ-џч ќ€?џџ&Р  €7џџІ@ Р€'џџЃ0 G”€'№Ё‘х є€' ƒ§ є€$ ЛшWW 8@§ Ž€$ # Cџ€$ў џр;џ€#џў џрџ€aџ§ џрџ€Cџљ`џрџРBР?№?РAџР№рOџ€јјNџ~>Пџќ€|р€>€ј~№ќ?рјџР?№џˆџрџ†џр?чƒљр€Срќр?рј€ќ~рр€џрјрР€џџ№р€€џРрр?€џрРр€x№Ÿр<љџ€xј>р=їџ€x8}џр{яУР8<ћ№№{џР=џмџРpwў`=џмџ€ќ ?џќџџИ?џќ?юяјЛшX8eИ5?џќ;ўџp?џќ?мџ№?џќ?ќџ№?џќ?ќџ№?џќ?ќџp?џј?муx?џ№8о№80?џј< p<`?џўpр=џ€xxР<žРpxУР<о№№<џ€<яџр<џ€<ярў€<чПŸрџї€<чџ§рПџ€<уяџрџџ€<€сџџрџџ€<џџрџџрџџ€?џџрџр§џ€?џџр?рџ€?џџрџр?џ€?џџрџрџ€џџрџрџ€џџрџрџРџћР?№?Р~џџР№рџџ€јјџџ~>џџќ€ќр€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЛшYC аЖџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџчџџџџџџљџџџџџџџџџџСџџџќџџџџџџџџџјџџџџџўџџџрџџџџџјџџџРџџџџџ№џџџ€џџџџџрџџџџџџџџРџџўџјџџ€џџќџџјџџџџќџџј?џџџџјџџј?ўџџџјџџќўџџџ№?џџќќџџџ№?џџќќџџџ№?џџќќџџџрџџќјџџџрџџќјџџџрџџџќј?џџџрџџџќ?ј?џџџрџџџќј?џџџрџџќџјџџџрџџќџјџџџ№?џџќџќџџџ№?џџќџќџџџ№џџќќџџџјџџќўџџџјџџќўџџџќџџќџџџџќџџќџџџўџќџ€џџџџќџРџџџ€џќџрџџџРџќџ№џџџрџќџјџџџ№џќџќџџџќџќџџџџџџџџќџЛИ Œ#џџџџџџџџќџџџџџџџџџќџџџџџџџџџјџџџџџџџџџјџџџџџџџџџјџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§рПџ€<уяџрџџ€<€сџџрџџ€<џџрџџрџџ€?џџрџр§џ€?џџр?рџ€?џџрџр?џ€?џџрџрџ€џџрџрџ€џџрџрџРџћР?№?Р~џџР№рџџ€јјџџ~>џџќ€ќр€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЋшJZ?90.W) MOVE.W #$0700,42(A1,D0.W) MOVE.W #$0700,46(A1,D0.W) MOVE.W #$0900,54(A1,D0.W) MOVE.W #$0900,58(A1,D0.W) MOVE.W #$0600,66(A1,D0.W) MOVE.W #$0600,70(A1,D0.W) MOVE.W #$0300,78(A1,D0.W) MOVE.W #$0300,82(A1,D0.W) MOVE.W #$0000,90(A1,D0.W) MOVE.W #$0000,94(A1,D0.W) MOVEQ #0,D0 MOVE.B (A0,D1.W),D0 MULU #12,D0 SUBQ #8,D1 MOVE.W #$0200,06(A1,D0.W) MOVE.W #$0200,10(A1,D0.W) MOVE.W #$0400,18(A1,D0.W) MOVE.W #$0400,22(A1,D0.W) MOVE.W #$0600,30(A1,D0.W) Ћш\їъО352,d1 move.l #280,d2 jsr initbitmap(a6) move.l #$4d000,plane1 lea rastport,a1 jsr initrastport(a6) move.l #bitmap,bitmapzw lea rastport,a1 jsr clearscreen(a6) move.l #text1,texte1 move.l #$0000,d6 move.w #32,$dff096 bchg #1,$bfe001 loop: BSR BEAMSUB MAINALL: MOVE.L 4,A6 JSR -132(A6) MOVE.W #$03A0,$DFF096 MOVE.L #COPPERLIST,$DFF080 CLR.B $DFF088 MOVE.W #$8380,$DFF096 MOVEQ #0,D0 MOVEQ #0,D1 MOVEQ #0,D2 CLR.L SCROLLSTEP WAITЋш] г*: BSR BEAM scrolling: move.l gfxbase,a6 lea rastport,a1 move.l #0,d2 move.l #0,d3 move.l #352,d4 move.l #280,d5 move.l #xspeed,d0 move.w #0,d1 jsr scrollraster(a6) add.b #1,lza cmp.b #3,lza bne raus move.b #0,lza move.l gfxbase,a6 lea rastport,a1 move.l #344,d0 move.w Y,d1 jsr move(a6) lea rastport,a1 move.l texte1,a0 move.l #1,d0 jsr text(a6) add.l #1,texte1 cmp.l #ende1,texte1 bne raus move.l #text1,texte1 raus: cmp.b #$ff,$dff006 Ћш^1цГ bne raus WAIT2: BTST #6,$BFE001 Beq end jmp wait END: MOVE.L 4,A6 MOVE.L GFXBASE,A4 MOVE.L 38(A4),$DFF080 CLR.B $DFF088 MOVE.W #$83E0,$DFF096 JSR -138(A6) MOVE.L 4,A6 MOVE.L A4,A1 JSR -414(A6) MOVE.W #$C000,$DFF09A RTS ; ---------------------------------------- ; - E N D - ; ---------------------------------------- ; ------------------------------------------------------------ EVEN ; -------------Ћш_М^Bf------------------------------------------- BEAMSUB: LEA BEAMCOPADR,A0 MOVEQ #$2F,D0 MOVEQ #0,D1 LOOPBEAM: MOVE.B D0,D1 LSL.L #8,D1 ORI.B #$07,D1 MOVE.W D1,(A0)+ MOVE.L #$FFFE0180,(A0)+ MOVE.L #$00000182,(A0)+ MOVE.W #$0327,(A0)+ MOVEQ #0,D1 ADDQ #1,D0 CMP.B #$EF,D0 BNE.S LOOPBEAM RTS ; ------------------------------------------------------------ BEAM: LEA BEAMCOPADR,A1 LEA BEAMPOS(PC),A0 MOVEQ #0,D0 MOVEQ #0,D2 MOVE.W #190,D3 CLEARBEAM: MOVE.W #ЋшZTН3š$0000,06(A1,D2.W) MOVE.W #$0327,10(A1,D2.W) ADD.W #12,D2 DBF D3,CLEARBEAM MAINBEAM: MOVE.W BEAMCOUNT,D1 MOVE.B (A0,D1.W),D0 move.w d0,d5 divu #2,d5 move.w d5,Y add.w #160,Y MULU #12,D0 SUBQ #1,D1 CMP.W #50,D1 BGE.S OKBEAM MOVE.W #229,D1 OKBEAM: MOVE.W D1,BEAMCOUNT2 MOVE.W #$0000,06(A1,D0.W) MOVE.W #$0000,10(A1,D0.W) MOVE.W #$0300,18(A1,D0.W) MOVE.W #$0300,22(A1,D0.W) MOVE.W #$0500,30(A1,D0.W) MOVE.W #$0500,34(A1,DKшaї œ_p rts rs_effect: lea p(pc),a1 lea rs_pattline,a2 lea rs_pbuffs,a3 lea $dff0a0,a4 lea rs_periods,a6 moveq #1,d5 moveq #3,d7 rs_eloop: bsr rs_doeff addq.w #4,a2 lea $10(a3),a3 lea $10(a4),a4 add.w d5,d5 dbf d7,rs_eloop rts rs_doeff: moveq #0,d0 move.b 2(a2),d0 add.w d0,d0 moveq #0,d1 move.b 3(a2),d1 move.w rs_effecttab(pc,d0.w),d0 beq.s rs_noeff bmi.s rs_1eff jsr (a1,d0.w) bra.s rs_noeff rs_1eff: tst.w rs_actcyc bne.s rs_noeff neg.w Kшbo>‚œd0 jsr (a1,d0.w) rs_noeff: rts rs_effecttab: dc.w 0,rs_portd-p,rs_portu-p,0,0,0 dc.w 0,0,0,0,rs_arp-p,rs_arp2-p dc.w 0,rs_slided-p,0,p-rs_filt,0,p-rs_slideu dc.w 0,0,0,p-rs_slided,0,0 dc.w 0,p-rs_posjmp,0,p-rs_release,p-rs_cspeed,0 dc.w rs_slideu-p,rs_volume-p,0,0,0,0 rs_portd: sub.w d1,14(a3) bpl.s rs_pdok move.w #113,14(a3) rs_pdok: move.w 14(a3),6(a4) rts rs_portu: add.w d1,14(a3) bpl.s rs_puok move.w #113,14(a3) rs_puok: move.w 14(a3),6(a4) rts rs_arp:KшcŠ­Ј8 move.w 12(a3),d2 move.w rs_actcyc,d0 move.b rs_divtab(pc,d0.w),d0 bne.s rs_val1 and.w #$f0,d1 ;runter lsr.w #4,d1 sub.w d1,d2 bra.s rs_setarp rs_val1: subq.b #1,d0 bne.s rs_val2 move.w d2,8(a4) bra.s rs_setarp rs_val2: and.w #$0f,d1 add.w d1,d2 bra.s rs_setarp rs_divtab: dc.b 0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2 rs_arp2: move.w 12(a3),d2 move.w rs_actcyc,d0 and.w #3,d0 bne.s rs_val3 bra.s rs_setarp rs_val3: subq.b #1,d0 bne.s rs_val4 and.w #Kшd{g/е$f,d1 add.w d1,d2 bra.s rs_setarp rs_val4: subq.b #1,d0 beq.s rs_setarp and.w #$f0,d1 lsr.w #4,d1 sub.w d1,d2 rs_setarp: tst.w d2 bpl.s rs_arpok1 moveq #0,d2 rs_arpok1: cmp.w #35,d2 ble.s rs_arpok2 moveq #35,d2 rs_arpok2: add.w d2,d2 move.w (a6,d2.w),d0 move.w d0,6(a4) move.w d0,14(a3) rts rs_slided: move.w 12(a3),d2 sub.w d1,d2 move.w d2,12(a3) bra.s rs_setarp rs_slideu: move.w 12(a3),d2 add.w d1,d2 move.w d2,12(a3) bra.s rs_setarp rs_cspKшeЦС3@eed: tst.b d1 beq.s rs_nochange and.w #$f,D1 move.w d1,rs_actspeed rs_nochange: rts rs_filt: tst.b d1 sne rs_filter rts rs_volume: move.l a0,-(sp) lea rs_vol,a0 moveq #0,d0 move.b volum2(pc,d7.w),d0 add.w d0,a0 cmp.w #$40,d1 bgt.s rs_4567 move.b d1,(a0) rs_vex: move.l (sp)+,a0 rts volum2: dc.b 3,2,1,0 rs_4567: sub.b #$40,d1 cmp.b #$10,d1 blt.s rs_4 sub.b #$10,d1 cmp.b #$10,d1 blt.s rs_5 sub.b #$10,d1 cmp.b #$10,d1 blt.s rs_6 sub.b #$1KшfИЫ\:0,d1 cmp.b #$10,d1 blt.s rs_7 bra.s rs_vex rs_6: tst.w rs_actcyc bne.s rs_vex rs_4: sub.b d1,(a0) bpl.s rs_vex clr.b (a0) bra.s rs_vex rs_7: tst.w rs_actcyc bne.s rs_vex rs_5: add.b d1,(a0) cmp.b #$40,(a0) ble.s rs_vex move.b #$40,(a0) bra.s rs_vex rs_release: tst.l 6(a3) beq.s rs_rex tst.w 10(a3) beq.s rs_rex move.w d5,d0 lsl.w #7,d0 move.w d0,$dff09a move.l 6(a3),(a4) move.w 10(a3),4(a4) clr.l 6(a3) clr.w 10(a3) move.w d0,$dff0Kшg–Хџ 9c or.w #$8000,d0 move.w d0,$dff09a rs_rex: rts rs_posjmp: move.w d1,d0 and.w #$f,d0 lsr.w #4,d1 mulu #10,d1 add.w d1,d0 cmp.w rs_len,d0 bge.s rs_nojmp move.w d0,rs_nextpt rs_nojmp: rts rs_audint: movem.l d0-d1/a0,-(sp) lea $dff000,a0 move.w $1e(a0),d0 and.w $1c(a0),d0 moveq #0,d1 btst #7,d0 beq.s rs_let1 move.l d1,$a0(a0) move.w #1,$a4(a0) move.w #$80,$9a(a0) rs_let1: btst #8,d0 beq.s rs_let2 move.l d1,$b0(a0) move.w #1,$b4(a0) move.w #KшhКW>|$100,$9a(a0) rs_let2: btst #9,d0 beq.s rs_let3 move.l d1,$c0(a0) move.w #1,$c4(a0) move.w #$200,$9a(a0) rs_let3: btst #10,d0 beq.s rs_let4 move.l d1,$d0(a0) move.w #1,$d4(a0) move.w #$400,$9a(a0) rs_let4: movem.l (sp)+,d0-d1/a0 rte rs_gettrkpos: lea rs_patterns,a0 add.w rs_pointer,a0 moveq #0,d0 move.b (a0),d0 bsr.s rs_getpattern move.l a0,rs_trkpos clr.w rs_patty rts rs_getppatt: lea rs_patterns,a0 add.w rs_pointer,a0 moveq #0,d0 move.b (a0),dKшiŠ'г0 rs_getpattern: lea rs_pattpts,a0 add.w d0,d0 add.w d0,d0 move.l (a0,d0.w),a0 move.w (a0)+,d0 rts rs_dma: movem.w d0-d1,-(sp) move.w #4,d1 rs_nextline: move.b $dff006,d0 rs_waitline: cmp.b $dff006,d0 beq.s rs_waitline dbf d1,rs_nextline movem.w (sp)+,d0-d1 rts rs_cmformat: dc.l 'CMOD',8,rs_channelmodes rs_extformat: dc.l 'SAMP',36*32,rs_samples dc.l 'SPEE',2,rs_speed dc.l 'PLEN',2,rs_len dc.l 'PATT',128,rs_patterns,0 rs_channelmodes:ds.w 4 rs_samples: dsЛшjп>ŒF`А€7€ l >€$џџ † 'џ€#џџ` џр'ј€€` ў $†€<` !  ;€_џў Žрй€4 Ж`И@џѕ@. @qўР 6T„€и9VЧv>[џќ€<р€ 2 €HR0Œ0 Ф@1*Ъ€ кі€/`€ и q€@ Ф 1рˆ€bр@€Яр ƒљ€œ?`ў` љ€РЧў`џР€GчрП№ љ„€@~a #€`СР "П€Kџ`‚/рDУР џЬ№№EУР*$pРpKж`:$ѕ€F ЛшUцДфœ8ф‡Ши;џь26ј;€,>уа8 8єѓp8Ь<мѓ№ D<ќ№а%џŒ<4Ќа'ў+4МШ'џP/2(03џx$ P,@;л~ P ?Уё€hHA=B’@KљBР$RўPА/ќ<$Ћџ)ўd€$ъ™ Œ€$ў%@c  €,џј%€` _№€?џџ"зќ ˜b€;№!& ` €; ир‘ы€8 dzрвѓ€8ў 4Мр||€;€  4|€  €Fр €kџќ С ЧРiџ§@1№?Рmp@№р@Œy€јјŽ;~>џќ€`€& €ˆb—2шl4Nyи,480,453 dc.w 428,404,381,360,339,320,302,285,269,254,240,226 dc.w 214,202,190,180,170,160,151,143,135,127,120,113,000 o: snd1: blk.b 3000,0 snd2: blk.b 4000,0 snd3: blk.b 2,0 snd4: blk.b 9400,0 snd5: blk.b 2,0 snd6: blk.b 2,0 snd7: blk.b 6500,0 snd8: blk.b 2,0 snd9: blk.b 9700,0 snda: blk.b 4000,0 sndb: blk.b 2,0 sndc: blk.b 1400,0 sndd: blk.b 1200,0 snde: blk.b 2,0 sndf: blk.b 2,0 muzakdata: blk.b 5720,0 htlfront: blk.b 5020,0 htlback: blk.b 4062,0 htlsinus: blk.b 124*2,0 htl—3АЂ/ chars: blk.b 8482,0 Zuff: blk.b 600,0 oe: ************************************************* * end of muzak replay module ************************************************* ----------- datach0: blk.l 5,0 dc.w 1 datach1: blk.l 5,0 dc.w 2 datach2: blk.l 5,0 dc.w 4 datach3: blk.l 5,0 dc.w 8 sounds: blk.l 15,0 patpos: dc.l 0 trapos: dc.l 0 timpos: dc.w 0 enabit: dc.w 0 numpat: dc.w 0 plamod: dc.w 0 notetable: dc.w 856,808,762,720,678,640,604,570,538,508™шn­Gоіruptvektor setzen move.w #$c000,$dff09a ;Interrupts zulassen rts ;Rќckkehr IRQRout:movem.l d0-d2/a0-a1,-(a7) ;Register sichern move SR,-(sp) ;Statusregister sichern ;******************************* ;An dieser Stelle kann nun Ihr Programm stehen, das bei jedem ;Interrupt ausgefќhrt werden soll. ;******************************* EndIRQ: move (sp)+,SR ;Statusregister zurќck movem.l (sp)+,d0-d2/a0-a1 ;Register zurќckspeichern dc.w $4ef9 ;Interr™&И%Рўupt beenden OldVector: dc.l $0000 lten Interruptvektor sichern move.l #IRQRout,$6c ;Neuen Vektor setzen move.w #$c000,$dff09a ;Interrupts einschalten ;******************************* ;An dieser Stelle kann Ihr Programm stehen, das wie ein normales ;Programm ausgefќhrt wird. ;******************************* wait: btst #6,$bfe001 ;Warten, bis Maustaste bne wait ;gedrќckt move.w #$4000,$dff09a ;Interrupts abschalten move.l OldVector,$6c ;Alten InterЗшpС ЋR-%B<ћЫЯЭвпъъ#0%?; ѓЧжЯзхщы 16&=4щШнблъфэ79&8%оЫрдряр№ >;$4згфзцёкэF=#. Ьнцмщ№йшL<  ћЦсщсюьнц Q? їФфьчёшпч&T?§ №Чхёюєтн№*U?ђрЫчѕєѕпй§.V>якбшњћёой1T;џё бжьўюнр 6P5љё Юз№цйъ 9J0іяЯмѓ тзђеsOffset2: dc.w 0 * Alles ausschalten ******************* AllOut: move.w $dff01c,Interrupts move.w #$7fff,$dff09a move.w #$01df,$dff096 clr.w $dff180 rts * Alles anschalten ******************** AllOn: move.w Interrupts,d0 bset #15,d0 move.w d0,$dff09a move.w #$81f0,$dff096 rts Interrupts: dc.w 0 * Speicher reservieren **************** AllocateMemory: move.l 4.w,a6 move.l #HOTLINEPICLEN+HOTLINEPICLEN+COPPERLEN+CHARLEN+SHIFTPLANELEN+SCROLLPLANELEN,d0 move.l #$10002,d—ш“+‘lЅ1 jsr -198(a6) move.l d0,HotLinePic add.l #HOTLINEPICLEN*2,d0 move.l d0,CopperList add.l #COPPERLEN,d0 move.l d0,CharPlane add.l #CHARLEN,d0 move.l d0,ShiftPlane add.l #SHIFTPLANELEN,d0 move.l d0,ScrollPlane rts * Speicher freigeben ****************** FreeMemory: move.l 4.w,a6 move.l HotLinePic,a1 move.l #HOTLINEPICLEN+HOTLINEPICLEN+COPPERLEN+CHARLEN+SHIFTPLANELEN+SCROLLPLANELEN,d0 jsr -210(a6) rts HotLinePic: dc.l 0 CopperList: dc.l 0 CharPlane: dc.l 0 ShiftPlane:—ш”0D#‚ dc.l 0 ScrollPlane: dc.l 0 * Bilder recompactieren *************** ReCompactieren: lea HTLFront,a0 move.l HotLinePic,a1 moveq #40,d0 moveq #32,d1 moveq #5,d2 bsr.L RCP11 lea HTLBack,a0 move.l HotLinePic,a1 add.l #HOTLINEPICLEN,a1 moveq #40,d0 moveq #32,d1 moveq #5,d2 bsr.L RCP11 lea HtlChars,a0 move.l CharPlane,a1 moveq #32,d0 move.w #256,d1 moveq #2,d2 bsr.l RCP11 rts * CopperListe aufbauen **************** MakeCopper: move.l CopperList,a1 lea CopperPa—ш•ЕOrt1,a0 move.w #CopperPart1End-CopperPart1,d0 bsr.L CopyMem lea ColorsHell,a0 bsr.L Make32Colors move.l a1,d0 addq.l #4,d0 move.l d0,TopPicCopAd moveq #$40,d7 MC_1: move.b d7,d0 bsr.s WaitCopper bsr.L Set5BitPlanes move.l #$01980ccc,(a1)+ move.l #$01005000,(a1)+ addq.b #1,d7 cmp.b #$40+128,d7 bne.s MC_1 move.l #$01000000,(a0)+ lea ColorsDunkel,a0 bsr.s Make32Colors move.l a1,d0 addq.l #4,d0 move.l d0,SpiegelCopAd move.w #$40+128,d7 MC_2: move.b d7,d0 bs—ш–жm^Џr.s WaitCopper bsr.s Set5Bitplanes move.l #$01980888,(a1)+ move.l #$01005000,(a1)+ addq.b #1,d7 cmp.b #$40+128+64,d7 bne.s MC_2 move.l #$01000000,(a1)+ lea CopperPart2,a0 move.l #CopperPart2End-CopperPart2,d0 bsr.s CopyMem move.l #$fffffffe,(a1)+ rts TopPicCopAd: dc.l 0 SpiegelCopAd: dc.l 0 * Speicher von a0 in a1 mit d0 Bytes kopieren CopyMem: subq.w #1,d0 CM: move.b (a0)+,(a1)+ dbf d0,CM rts * Wait in a1 mit Line d0 aufbauen ***** WaitCopper: move.b d0,(a1—шіxД3)+ move.b #$df,(a1)+ move.w #$fffe,(a1)+ rts * 5 Bitplanes an a1 setzen ************ Set5Bitplanes: move.w #$00e0,d1 moveq #4,d0 SB_Loop: move.w d1,(a1)+ addq.w #2,d1 move.w #7,(a1)+ move.w d1,(a1)+ addq.w #2,d1 move.w #$fc00,(a1)+ dbf d0,SB_Loop rts * 32 Farben a0 in Copperliste a1 aufbauen Make32Colors: move.l #$01800000,(a1)+ move.w #$0182,d1 moveq #30,d0 SC_Loop: move.w d1,(a1)+ addq.w #2,d1 move.w (a0)+,(a1)+ dbf d0,SC_Loop rts ColorsHell:dc.w $eca,$222—ш˜~ђnd0 and.w #$00ff,d0 moveq #16,d1 bsr.L MakePic addq.w #2,SinusOffset cmp.w #124,SinusOffset bne.s TS_NormEnd subq.w #2,SinusOffset ;Fuer From Screen addq.w #1,AnimationsNumber rts TS_NormEnd: rts FromScreen: lea HTLSinus,a0 move.w SinusOffset,d0 clr.l d1 move.b (a0,d0.w),d1 move.l d1,d0 moveq #16,d1 bsr.L MakePic subq.w #2,SinusOffset cmp.w #28,SinusOffset bne.s FS_NormEnd addq.w #2,SinusOffset ;Fuer To Screen addq.w #1,AnimationsNumber ;Animation fertig—ш™mbž­ rts FS_NormEnd: rts SinusOffset: dc.w 30 JumpUp: lea HTLSinus,a0 move.w SinusOffset,d0 clr.l d1 move.b (a0,d0.w),d1 move.l d1,d0 bsr.L MakePic addq.w #1,SinusOffset cmp.w #124,SinusOffset bne.s JU_End subq.w #1,SinusOffset addq.w #1,AnimationsNumber JU_End: rts JumpDown: lea HTLSinus,a0 move.w SinusOffset,d0 clr.l d1 move.b (a0,d0.w),d1 move.l d1,d0 bsr.L MakePic subq.w #1,SinusOffset cmp.w #29,SinusOffset bne.s JD_End addq.w #1,SinusOffset addq.w #1,An—шš3ЂƒimationsNumber JD_End: rts WellUp: lea HTLSinus,a0 clr.l d0 move.w SinusOffset,d0 clr.l d1 move.b -10(a0,d0.w),d1 move.b (a0,d0.w),d0 bsr.s MakePic addq.w #1,SinusOffset cmp.w #124,SinusOffset bne.s WU_End subq.w #1,SinusOffset addq.w #1,AnimationsNumber WU_End: rts WellDown: lea HTLSinus,a0 clr.l d0 move.w SinusOffset,d0 clr.l d1 move.b -10(a0,d0.w),d1 move.b (a0,d0.w),d0 bsr.s MakePic subq.w #1,SinusOffset cmp.w #29,SinusOffset bne.s WD_End addq.w #1,Si— ш›™Ќ•tnusOffset addq.w #1,AnimationsNumber WD_End: rts * 2 Sekunden warten ******************* * ScrollPlane loeschen **************** WaitAnim: bsr.L ClearScrollPlane addq.w #1,Timer cmp.w #100,Timer bne.s WA_End clr.w Timer addq.w #1,AnimationsNumber WA_End: rts Timer: dc.w 0 * Picture aufbauen d0:Qutschfaktor d1:LineOffset von oben * Scrollplane loeschen !!!!! MakePic: movem.l d0-d1,-(sp) bsr.L ClearPic bsr.L ClearScrollPlane movem.l (sp)+,d0-d1 move.l HotLinePic,a0 — шœС"Д cmp.b #16,d0 ;wenn d0>16 dann 2. Bild nehmen beq.L MP_End blt.s MP_Ok add.l #HOTLINEPICLEN,a0 moveq #32,d3 sub.b d0,d3 move.b d3,d0 MP_Ok: moveq #32,d5 ;Anzahl der DispLines sub.b d0,d5 sub.b d0,d5 move.l TopPicCopAd,a1 mulu #COPLINE,d0 ;Leer mulu #COPLINE,d1 ;Offset add.l d0,a1 add.l d1,a1 move.w d5,d7 subq.w #1,d7 ;Fuer loop move.l #32*256,d4 divu d5,d4 and.l #$ffff,d4 move.l d4,d5 clr.l d3 ;Line offset move.l #HOTLINEPICLEN/5,d1 ;Laenge einer — шГ0ˆBPL MP_Loop: move.l d3,d2 lsr.l #8,d2 ;Ausgleich move.l d2,d6 lsl.l #3,d6 ;*8 lsl.l #5,d2 ;*32=*40 add.l d6,d2 move.l a0,d0 ;1. Graphicsadresse add.l d2,d0 move.w d0,6(a1) ;5 BPLS reinbappeln swap d0 move.w d0,2(a1) swap d0 add.l d1,d0 move.w d0,14(a1) swap d0 move.w d0,10(a1) swap d0 add.l d1,d0 move.w d0,22(a1) swap d0 move.w d0,18(a1) swap d0 add.l d1,d0 move.w d0,30(a1) swap d0 move.w d0,26(a1) swap d0 add.l d1,d0 move.w d0,38(a1) swap — шž™D;d0 move.w d0,34(a1) add.l #COPLINE,a1 add.l d5,d3 dbf d7,MP_Loop MP_End: rts * Bild oben loeschen ****************** ClearPic: bsr.L WaitBlitter move.l #$ffffffff,BLTFWM ;Blitter vorbereiten move.l #$09f00000,BLTCON0 move.l #$00000002,BLTAMOD move.w #%0000001010000001,d0 lea BLTAPT,a2 lea BLTDPT,a3 lea BLTSIZE,a4 move.l #COPLINE,d1 lea ClearSource(pc),a0 ;Source move.l TopPicCopAd,a1 ;Dest addq.l #2,a1 moveq #63,d7 CP_Loop: move.l a0,(a2) move.l a1,(a3) — шŸл+:move.w d0,(a4) add.l d1,a1 dbf d7,CP_Loop bsr.L WaitBlitter rts ClearSource: dc.l $7fc00,$7fc00,$7fc00,$7fc00,$7fc00 * Spiegelflaeche machen *************** MakeSpiegel: bsr.L WaitBlitter move.l #$ffffffff,BLTFWM move.l #$09f00000,BLTCON0 move.l #$00020002,BLTAMOD move.w #%0000001011000001,d0 move.w #%0000001010000001,d3 lea BLTAPT,a2 lea BLTDPT,a3 lea BLTSIZE,a4 move.l #COPLINE*2,d1 move.l #COPLINE,d2 move.l TopPicCopAd,a0 add.l #COPLINE*127+2,a0 move.l Spi—ш 1YMКegelCopAd,a1 addq.l #2,a1 moveq #31,d7 MS_Loop: move.l a0,(a2) move.l a1,(a3) move.w d0,(a4) sub.l d1,a0 add.l d2,a1 dbf d7,MS_Loop moveq #31,d7 MS1_Loop: move.l a0,(a2) move.l a1,(a3) move.w d3,(a4) sub.l d1,a0 add.l d2,a1 dbf d7,MS1_Loop bsr.L WaitBlitter rts * ScrollPlane loeschen ************************************ ClearScrollPlane: bsr.L WaitBlitter move.l #$01000000,BLTCON0 clr.w BLTDMOD move.l ScrollPlane,BLTDPT move.w #%0010000000010100,BLTSIZE —шЁєIb rts * Shiftplane um 4 nach links scrollen ********************* ScrollShiftPlane: bsr.L WaitBlitter move.l ShiftPlane,a0 add.l #SHIFTPLANELEN-2,a0 move.l #$49f00002,BLTCON0 move.l a0,BLTAPT move.l a0,BLTDPT move.l #$ffffffff,BLTFWM clr.l BLTAMOD move.w #%0001000000010110,BLTSIZE bsr.L WaitBlitter * Nun grafik reinkopieren ************* cmp.w #32,ScrollPixels ;32 Pixels gescrollt ? bne.s SSP_1 bsr.L NewLetter ;ja: neues Letterchen setzen clr.w ScrollPixels addq—шŒЕШ.w #1,TextOffset SSP_1: addq.w #4,ScrollPixels rts * Pointer des neuen Buchstaben berechnen **************************** NewLetter: lea ScrollText(pc),a0 move.w TextOffset,d0 move.b (a0,d0.w),d0 bne.s NL_1 clr.w TextOffset move.b (a0),d0 NL_1: cmp.b #'_',d0 ;Kleinbuchstaben anpassen ble.s NL_2 sub.b #32,d0 NL_2: sub.b #32,d0 ;0=@ and.w #$00ff,d0 ;Oberer Speichermuell ausmaskieren lsl.w #1,d0 ;*2 lea ScrollOffsets(pc),a0 move.w (a0,d0.w),d0 ;ScrollOffset holen b“$шЃЉ.ea $dff0a0,a5 ;chanel 0 lea datach0(pc),a6 bsr.L chanelhandler lea $dff0b0,a5 ;chanel 1 lea datach1(pc),a6 bsr.L chanelhandler lea $dff0c0,a5 ;chanel 2 lea datach2(pc),a6 bsr.L chanelhandler lea $dff0d0,a5 ;chanel 3 lea datach3(pc),a6 bsr.L chanelhandler move.w #400,d0 ;** wait a while and set len rep1: dbf d0,rep1 ; of oneshot to 1 word move.w #$8000,d0 or.w enbits,d0 move.w d0,$dff096 cmp.w #1,datach0+14 bne.s rep2 clr.w datach0+14 move.w #1,$dff0a4 rep“%шЄJ }ъ2: cmp.w #1,datach1+14 bne.s rep3 clr.w datach1+14 move.w #1,$dff0b4 rep3: cmp.w #1,datach2+14 bne.s rep4 clr.w datach2+14 move.w #1,$dff0c4 rep4: cmp.w #1,datach3+14 bne.s rep5 clr.w datach3+14 move.w #1,$dff0d4 rep5: add.l #16,patpos ;next step cmp.l #64*16,patpos ;pattern finished ? bne.s rep6 clr.l patpos addq.l #1,trkpos ;next pattern in table clr.l d0 move.w numpat,d0 cmp.l trkpos,d0 ;song finished ? bne.s rep6 clr.l trkpos rep6: movem.l (a7)+,d0-d7/a0-a6“&шЅщƒr rts chanelhandler: move.l (a0,d1.l),(a6) ;get period & action-word addq.l #4,d1 ;point to next chanel clr.l d2 move.b 2(a6),d2 ;get nibble for soundnumber lsr.b #4,d2 beq.s chan2 ;no soundchange ! move.l d2,d4 ;** calc ptr to sample lsl.l #2,d2 mulu #30,d4 lea pointers-4(pc),a1 move.l (a1,d2.l),4(a6) ;store sample-address move.w (a3,d4.l),8(a6) ;store sample-len in words move.w 2(a3,d4.l),18(a6) ;store sample-volume move.l d0,-(a7) move.b 2(a6),d0 and.b “'шІЌŠф_#$f,d0 cmp.b #$c,d0 bne.s ok3 move.b 3(a6),8(a5) bra.s ok4 ok3: move.w 2(a3,d4.l),8(a5) ;change chanel-volume ok4: move.l (a7)+,d0 clr.l d3 move.w 4(a3,d4),d3 ;** calc repeatstart add.l 4(a6),d3 move.l d3,10(a6) ;store repeatstart move.w 6(a3,d4),14(a6) ;store repeatlength cmp.w #1,14(a6) beq.s chan2 ;no sustainsound ! move.l 10(a6),4(a6) ;repstart = sndstart move.w 6(a3,d4),8(a6) ;replength = sndlength chan2: tst.w (a6) beq.s chan4 ;no new note set ! move.w“(шЇ™2ёr 22(a6),$dff096 ;clear dma tst.w 14(a6) bne.s chan3 ;no oneshot-sample move.w #1,14(a6) ;allow resume (later) chan3: bsr.L newrou move.w (a6),(a4) move.w (a6),16(a6) ;save note for effect move.l 4(a6),0(a5) ;set samplestart move.w 8(a6),4(a5) ;set samplelength move.w (a6),6(a5) ;set period move.w 22(a6),d0 or.w d0,enbits ;store dma-bit move.w 18(a6),20(a6) ;volume trigger chan4: rts datach0: blk.w 11,0 dc.w 1 datach1: blk.w 11,0 dc.w 2 datach2: blk.w 11,0 “)Вф(Ÿdc.w 4 datach3: blk.w 11,0 dc.w 8 voi1: dc.w 0 voi2: dc.w 0 voi3: dc.w 0 voi4: dc.w 0 pointers: blk.l 15,0 notetable: dc.w 856,808,762,720,678,640,604,570 dc.w 538,508,480,453,428,404,381,360 dc.w 339,320,302,285,269,254,240,226 dc.w 214,202,190,180,170,160,151,143 dc.w 135,127,120,113,000 muzakoffset: dc.l 0 trkpos: dc.l 0 patpos: dc.l 0 numpat: dc.w 0 enbits: dc.w 0 timpos: dc.w 0 data: blk.b 0,0 dataend: : tst.w (a6) beq.s chan4 ;no new note set ! move.wЗшoђ^P2<9+оПЫЖСбё85=<*мМФЖУгі 68>@)дЛКЛЦзљ 17A?(ЬЙ­ОЪл§&%'6D=) ЦЕЉСЭнџ(/9H>(УЌЉХас*0>I<&ќНЂАЪву '0BL8&№И˜ГЮеф%0FN7$хЏ—Ибиъ*2HM6с›šНдйэ, 9KL3бЁУийѓ#*#>NJ3Ч‰ЃЧллљ+$$ANI1ВЇЭнр§/ ,ENH0Ÿ”Ўанх30GLG/э“˜Джоы 1 6JJF*р™Жкрё, :KID)С”ŸМкфљ$ "?KGCЌ—ІОлшў *AIFA Ѕ˜ЌФнь0DGD?їІžЎШпђ 3GDC9лЃЅДЫрљ:GAA0ЩЂЋИЫуџ ">F@?ШЁАОЮч&BD=:РЄЖТаъ *EA;2ќНЊКФвю /G@9!іИЏРХзё 6H<4№ЗЗФЧлє  9F:,ъЕНЩЫпј!=C8 пЗТЫатњ$#AB3 зНЦЬецѕ )%A>)гЦЪЮлшя—ш— Al‹************ * Hauptunterprogramme ***************** AnimationHandler: lea AnimSubPrgs,a0 move.w AnimationsNumber,d0 lsl.w #2,d0 tst.l (a0,d0.w) beq.s AH_New move.l (a0,d0.w),a0 jmp (a0) AH_New: clr.w AnimationsNumber bra.s AnimationHandler AnimationsNumber: dc.w 0 AnimSubPrgs: dc.l ToScreen,WaitAnim,FromScreen,WaitAnim dc.l JumpUp,WaitAnim,JumpDown,WaitAnim dc.l WellUp,WaitAnim,WellDown,WaitAnim,0 ToScreen: lea HTLSinus,a0 move.w SinusOffset,d0 move.b (a0,d0.w),—шЋ#TЗД6*256/8*2 SHIFTPLANELEN = 352*32/8*2 SCROLLPLANELEN = 320*64/8*2 * Co-Chips **************************** CO=$dff000 DMACONR = CO+2 VPOSR = CO+4 VHPOSR = CO+6 JOY0DAT = CO+$a DSKPT = CO+$20 INTENAR = CO+$1c INTREQR = CO+$1e DSKLEN = CO+$24 JOYTEST = CO+$36 BLTCON0 = CO+$40 BLTCON1 = CO+$42 BLTFWM = CO+$44 BLTLWM = CO+$46 BLTBPT = CO+$4c BLTAPT = CO+$50 BLTDPT = CO+$54 BLTSIZE = CO+$58 BLTBMOD = CO+$62 BLTAMOD = CO+$64 BLTDMOD = CO+$66 BLTCDAT = CO+$70 DSKSYNC = CO+$7e COP1—шЌыШ CLC = CO+$80 COPJMP1 = CO+$88 DMACON = CO+$96 INTENA = CO+$9a INTREQ = CO+$9c ADKCON = CO+$9e COLOR00 = CO+$180 pstart: lea $7fc00,a0 move.w #$400-1,d0 p1: clr.b (a0)+ dbf d0,p1 bsr.L AllOut bsr.L AllocateMemory bsr.L ReCompactieren lea SPR(pc),a0 bsr.L STARS_INIT bsr.L MakeCopper bsr.L MakeScrollPlane ;Copperdaten fuer Scrollplane bsr.L MakeScrollColors bsr.L REPLAY_INIT bsr.L REPLAY_ENABLE bsr.L IntroOn bsr.s RasterLoop bsr.L IntroOff bsr.L REPLAY_DISAB—шЉtkМмLE bsr.L STARS_OFF bsr.L FreeMemory bsr.L AllOn clr.l d0 rts RasterLoop: move.w #$40+64+64+8,d0 bsr.s WaitPos bsr.L REPLAY_SONG ;Inclusive Spiegel bsr.s AnimationHandler ;Inclusive Scrollplaneloeschen !!! bsr.L STARS_CONTROL bsr.L VerbiegScroll bsr.L ScrollShiftPlane btst #6,$bfe001 bne.s RasterLoop rts * Auf Rasterpos in d0 warten ********** WaitPos: WP: move.l $dff004,d1 lsr.l #8,d1 and.l #$1ff,d1 cmp.w d0,d1 bne.s WP rts ***************************“шЎ&x0C0 dc.l %00000000001001000100010000000000 dc.l %00000000011110000011100000000000 even text1: dc.b " THE REAL DJ PRESENTS A LITTLE SCROLLY " dc.b " " dc.b " HELLOS,HANDSHAKES AND GREETINGS TO: " dc.b "ANDY,ABAKUS,GERMAN DYNAMITE,NORTHSTAR & FAIRLIGHT," dc.b "BEASTY BOYS," dc.b "SHUT BERLIN,THE FASTTEAM," dc.b "AND,AND,AND............ " dc.b " " dc.b “шЏVzеj " SPECIAL GREETINGS TO ABAKUS,WHO WRITE THE BEST INTROS" dc.b "IN BERLIN!!!" dc.b "..........AND THANKS TO BAD BOY,WHO HELPS ME A LOT" dc.b "... " dc.b "PRESS RIGHT MOUSEBUTTON TO STOP SCROLL " dc.b " " dc.b " END OF LINE " dc.b " " ende1: even texte1: dc.l 0 even te“шАеZ•Pxt2: dc.b " " dc.b " " dc.b "IF YOU WANT TO SWAP SOURCE-CODES THEN CALL: " dc.b "030/3725575 (ONLY FROM 8.00 TO 12.00 AM !!!)" dc.b " " dc.b " " dc.b " " dc.b " " ende2: even texte2: dc.l 0 statictext: dc.b "WRITTEN 03/89 BY THE REAL DJ",0 even gfxbase: dc.l 0 bitmap: blk.w 4,0 even plane1: blk.l 11,0 even rastport: blk.l 1,0 even bitmapzw: blk.l 26,0 even oldcopper: dc.l 0 gfxname: dc.b "graphics.library"“шБ~јВ,0 even dosname: dc.b "dos.library",0 even dosbase: dc.l 0 even za1: dc.b 0 even za2: dc.w 0 even bewegung1: dc.l 0 y2: dc.w 0 x1: dc.w 0 x2: dc.w 0 even lza: dc.b 0 even sza: dc.l 0 even sza1: dc.b 0 even lza1: dc.b 0 even lza3: dc.b 0 even za10: dc.b 0 even lauf1zw: dc.w 0 even za23: dc.l 0 even lauf2zw: dc.w 0 even lauf3zw: dc.w 0 even senk1: dc.w 0 even za25: dc.l 0 even za30: dc.b 0 even za32: dc.b 0 even za40: dc.b 0 even scroll2z1: dc.l 1 even ydir: dc.w 10 even y: “шВ,”ч•dc.w 0 even start_muzak: move.l #data,muzakoffset ;** get offset init0: move.l muzakoffset,a0 ;** get highest used pattern add.l #472,a0 move.l #$80,d0 clr.l d1 init1: move.l d1,d2 subq.w #1,d0 init2: move.b (a0)+,d1 cmp.b d2,d1 bgt.s init1 dbf d0,init2 addq.b #1,d2 init3: move.l muzakoffset,a0 ;** calc samplepointers lea pointers(pc),a1 lsl.l #8,d2 lsl.l #2,d2 add.l #600,d2 add.l a0,d2 moveq #14,d0 init4: move.l d2,(a1)+ clr.l d1 move.w 42(a0),d1 lsl.l #1,d1 “шГžOadd.l d1,d2 add.l #30,a0 dbf d0,init4 init5: clr.w $dff0a8 ;** clear used values clr.w $dff0b8 clr.w $dff0c8 clr.w $dff0d8 clr.w timpos clr.l trkpos clr.l patpos init6: move.l muzakoffset,a0 ;** initialize timer irq move.b 470(a0),numpat+1 ;number of patterns move.l $6c.w,lev3save+2 move.l #lev3interrupt,$6c.w rts stop_muzak: move.l lev3save+2,$6c.w clr.w $dff0a8 clr.w $dff0b8 clr.w $dff0c8 clr.w $dff0d8 move.w #$f,$dff096 rts lev3interrupt: bsr.s replay_mu“шДМ bљzak lev3save: jmp $0 replay_muzak: movem.l d0-d7/a0-a6,-(a7) addq.w #1,timpos speed: cmp.w #6,timpos beq.L replaystep chaneleffects: ;** seek effects lea datach0(pc),a6 tst.b 3(a6) beq.s ceff1 lea $dff0a0,a5 bsr.s ceff5 ceff1: lea datach1(pc),a6 tst.b 3(a6) beq.s ceff2 lea $dff0b0,a5 bsr.s ceff5 ceff2: lea datach2(pc),a6 tst.b 3(a6) beq.s ceff3 lea $dff0c0,a5 bsr.s ceff5 ceff3: lea datach3(pc),a6 tst.b 3(a6) beq.s ceff4 lea $dff0d0,a5 bsr.s ceff5 ceff4: move“ шЕŠ;…m.l (a7)+,d0-d7/a0-a6 rts ceff5: move.b 2(a6),d0 ;room for some more and.b #$f,d0 ;implementations below tst.b d0 beq.s arpreggiato cmp.b #1,d0 beq.L pitchup cmp.b #2,d0 beq.L pitchdown cmp.b #12,d0 beq.L setvol cmp.b #14,d0 beq.L setfilt cmp.b #15,d0 beq.L setspeed rts arpreggiato: ;** spread by time cmp.w #1,timpos beq.s arp1 cmp.w #2,timpos beq.s arp2 cmp.w #3,timpos beq.s arp3 cmp.w #4,timpos beq.s arp1 cmp.w #5,timpos beq.s arp2 rts arp1: clr.l“!шЖLи‘o d0 ;** get higher note-values move.b 3(a6),d0 ; or play original lsr.b #4,d0 bra.s arp4 arp2: clr.l d0 move.b 3(a6),d0 and.b #$f,d0 bra.s arp4 arp3: move.w 16(a6),d2 bra.s arp6 arp4: lsl.w #1,d0 clr.l d1 move.w 16(a6),d1 lea notetable,a0 arp5: move.w (a0,d0.w),d2 cmp.w (a0),d1 beq.s arp6 addq.l #2,a0 bra.s arp5 arp6: move.w d2,6(a5) rts pitchdown: bsr.s newrou clr.l d0 move.b 3(a6),d0 and.b #$f,d0 add.w d0,(a4) cmp.w #$358,(a4) bmi.s ok1 move.w #$358,(a4“"шЗфњП) ok1: move.w (a4),6(a5) rts pitchup:bsr.s newrou clr.l d0 move.b 3(a6),d0 and.b #$f,d0 sub.w d0,(a4) cmp.w #$71,(a4) bpl.s ok2 move.w #$71,(a4) ok2: move.w (a4),6(a5) rts setvol: move.b 3(a6),8(a5) rts setfilt:move.b 3(a6),d0 and.b #1,d0 lsl.b #1,d0 and.b #$fd,$bfe001 or.b d0,$bfe001 rts setspeed: clr.l d0 move.b 3(a6),d0 and.b #$f,d0 move.w d0,speed+2 rts newrou: cmp.l #datach0,a6 bne.s next1 lea voi1(pc),a4 rts next1: cmp.l #datach1,a6 bne.s next2 lea“#шЂ‹ s voi2(pc),a4 rts next2: cmp.l #datach2,a6 bne.s next3 lea voi3(pc),a4 rts next3: lea voi4(pc),a4 rts replaystep: ;** work next pattern-step clr.w timpos move.l muzakoffset,a0 move.l a0,a3 add.l #12,a3 ;ptr to soundprefs move.l a0,a2 add.l #472,a2 ;ptr to pattern-table add.l #600,a0 ;ptr to first pattern clr.l d1 move.l trkpos,d0 ;get ptr to current pattern move.b (a2,d0),d1 lsl.l #8,d1 lsl.l #2,d1 add.l patpos,d1 ;get ptr to current step clr.w enbits l“шЙяйR?C.W 118 even BLINK2: LEA BLINKCOLOR2(PC),A0 MOVE.W BLINKCOUNT2,D0 MOVE.W (A0,D0.W),D1 ror.w #8,d1 MOVE.w D1,ocolor+2 MOVE.w D1,ocolor2+2 SUBQ.W #2,BLINKCOUNT2 BCC.S BLINKEND2 MOVE.W #106,BLINKCOUNT2 BLINKEND2: RTS EVEN BLINKCOLOR2: DC.W $0D00,$0D00,$0C00,$0C00,$0B00,$0B00,$0A00,$0A00 DC.W $0900,$0900,$0800,$0800 DC.W $0700,$0700,$0600,$0600,$0500,$0500,$0400,$0400 DC.W $0300,$0300,$0200,$0200 DC.W $0100,$0100,$0000,$0000 DC.W $0100,$01“шКрс00,$0200,$0200,$0300,$0300,$0400,$0400 DC.W $0500,$0500,$0600,$0600 DC.W $0700,$0700,$0800,$0800,$0900,$0900,$0A00,$0A00 DC.W $0B00,$0B00,$0C00,$0C00 DC.W $0D00,$0D00 BLINCOLOREND2: BLINKCOUNT2: DC.W 106 even PutBob: movem.l d0-d7/a0-a6,-(a7) bsr WaitBlit addq.w #1,d0 swap d4 move.w #0,d4 ; Used as long later swap d4 move.w d3,d5 asr.w #4,d5 ; Divide by 16 to get word offset. asl.w #1,d5 ; Multiply with 2 to get byte offset mulu d2,d4 ; To get byte offset =vertwidth*ypos“шЛf”А˜ add.w d5,d4 ; Total offset and.w #15,d3 ; Shift value = low 4 bits add.l d4,a1 ; Calc BitMap pointer move.l a0,$dff050 ; BLTAPT move.l a1,$dff054 ; BLTDPT move.l a1,$dff04c ; BLTBPT move.l #$ffff0000,$dff044 ; First and LastWord masks ror.w #4,d3 ; No.Of shifts ori.w #$0dfc,d3 ; D=A+B move.w d3,$dff040 ; BLTCON0 clr.w $dff042 ; BLTCON1 move.w d2,d3 ; BitMapWidth in bytes asr.w #1,d3 ; Divide by two. sub.w d0,d3 ; Calculate modulo asl.w #1,d3 ; Must be even mo“шМ.–яve.w d3,$dff062 ; BLTBMOD move.w d3,$dff066 ; BLTDMOD move.w #-2,$dff064 ; BLTAMOD lsl.w #6,d1 ; Height is mapped to bits 6-15 ori.w d0,d1 ; Width is mapped to bits 0-5 move.w d1,$dff058 ; BLTSIZE and trigger movem.l (a7)+,d0-d7/a0-a6 rts ********************************************************* * Erase a bob without restoring the background * *-------------------------------------------------------* * D0=BOBWidth in words, D1=Height in pixels * * D2=BitMapWidth in by“шН{4RЄtes. * * D3=Horiz.Position, D4=Vertical Position * * A1=BitMap Pointer * ********************************************************* EraseBob: movem.l d0-d7/a0-a6,-(a7) bsr WaitBlit ext.l d4 addq.w #1,d0 asr.w #4,d3 ; Divide by 16 to get word offset. asl.w #1,d3 ; Multiply with 2 to get byte offset mulu d2,d4 ; To get byte offset =vertwidth*ypos add.w d3,d4 ; Total offset add.l d4,a1 ; Calc BitMap pointer move.l a1,$dff054 ; BLTDPT move.w #$0100,$dff040 ; D=0 clr.w“шОЄчVL $dff042 ; BLTCON1 move.w d2,d3 ; BitMapWidth in bytes asr.w #1,d3 ; Divide by two. sub.w d0,d3 ; Calculate modulo asl.w #1,d3 ; Must be even move.w d3,$dff066 ; BLTDMOD lsl.w #6,d1 ; Height is mapped to bits 6-15 ori.w d0,d1 ; Width is mapped to bits 0-5 move.w d1,$dff058 ; BLTSIZE and trigger movem.l (a7)+,d0-d7/a0-a6 rts WaitBlit: btst #14,$dff002 bne WaitBlit rts newcopper: dc.w $0092,$0030,$0094,$00d8 dc.w $0108,$0000,$010a,$0000 dc.w $“шПa;GЫ0102,$0000,$0104,$0000 dc.w $008e,$2973 dc.w $0090,$29e1 dc.w $0100,$5200 dc.w $00e0,$0004,$00e2,$d000 dc.w $00e4,$0004,$00e6,$d000 dc.w $00e8,$0004,$00ea,$d000 dc.w $00ec,$0004,$00ee,$d000 dc.w $00f0,$0004,$00f2,$d000 acolor: dc.w $0180,$0000,$2a09,$fffe dc.w $0180,$0000,$2b09,$fffe dc.w $0180,$0000,$2c09,$fffe ; dc.w $0180,$0000,$2f09,$fffe dc.w $0180,$0000,$3009,$fffe ; dc.w $0180,$0000,$3309,$fffe dc.w $0180,$0000,$3409,$fffe ; dc.w $0180,$0000,$3“шР*ЋМ709,$fffe dc.w $0180,$0000,$3809,$fffe ; dc.w $0180,$0000,$3909,$fffe dc.w $0180,$0000,$3f0f,$fffe ocolor: dc.w $0180,$0000,$410f,$fffe dc.w $0180,$0000,$420f,$fffe dc.w $01be,$0fff,$440f,$fffe dc.w $01be,$0fcc,$450f,$fffe dc.w $01be,$0f99,$460f,$fffe dc.w $01be,$0f66,$470f,$fffe dc.w $01be,$0f44,$480f,$fffe dc.w $01be,$0f33,$490f,$fffe dc.w $01be,$0f22,$4a0“шС=DКЅf,$fffe dc.w $01be,$0f11,$4b0f,$fffe dc.w $0180,$0000,$01be,$0fff,$4c0f,$fffe ocolor2: dc.w $0180,$0000,$4e0f,$fffe dc.w $0180,$0000,$4f0f,$fffe dc.w $01be,$0fff,$db0f,$fffe dc.w $0180,$0000,$dc0f,$fffe dc.w $0180,$0fff,$dd0f,$fffe dc.w $0180,$0000,$de0f,$fffe dc.w $0180,$0000,$ff0f,$fffe dc.w $01be,$0f00,$ffdf,$fffe EQU: dc.l $0b11fffe,$01800000,$0bFFfffe,$01800000 dc.l $0c11fffe,$01800200,$0cFFfffe,$018000“шТŽ~Ѕє00 dc.l $0d11fffe,$01800700,$0dFFfffe,$01800000 dc.l $0e11fffe,$01800B00,$0eFFfffe,$01800000 dc.l $0f11fffe,$01800F00,$0fFFfffe,$01800000 dc.l $1011fffe,$01800B00,$10FFfffe,$01800000 dc.l $1111fffe,$01800700,$11FFfffe,$01800000 dc.l $1211fffe,$01800200,$12FFfffe,$01800000 dc.l $1311fffe,$01800000,$13FFfffe,$01800000 dc.l $fffffffe ; Ende Copperlist even BOB1: dc.l %00000011111001000100111110000000 dc.l %00000000100001000100100000000000 dc.l %00000000100001111100111110000000 dc“ш­5_6.l %00000000100001000100100000000000 dc.l %00000000100001000100111110000000 dc.l %00000000000000000000000000000000 dc.l %00001111001111101111101000000000 dc.l %00001000101000001000101000000000 dc.l %00001111001111101011101000000000 dc.l %00001000101000001000101000000000 dc.l %00001000101111101000101111100000 dc.l %00000000000000000000000000000000 dc.l %00000000011110000111110000000000 dc.l %00000000001001000000010000000000 dc.l %0000000000100100000001000000000“шФІ9 dc.w 23760,23464 dc.w 23052,22530 dc.w 21904,21178 dc.w 20360,19459 dc.w 18483,17443 dc.w 16384,15209 dc.w 14039,12848 dc.w 11649,10453 dc.w 9273,8120 dc.w 7006,5941 dc.w 4937,4004 dc.w 3151,2386 dc.w 1717,1151 dc.w 693,348 dc.w 120,10 dc.w 20,150 dc.w 398,762, dc.w 1238,1822 “шХїOn• dc.w 2508,3288 dc.w 4156,5102 dc.w 6116,7190 dc.w 8311,9470 dc.w 10654,11851 dc.w 13049,14238 dc.w 15403,16535 dc.w 17622,18652 dc.w 19616,20504 dc.w 21306,22016 dc.w 22626,23129 dc.w 23522,23799 dc.w 23958,23998 time: dc.l $50bff start: move.l execbase,a6 jsr forbid(a6) jsr start_muzak move.l execbase,a“шЦЉЮж6 lea gfxname,a1 jsr openlibrary(a6) beq.l error move.l d0,gfxbase move.l gfxbase,a0 add.l #$32,a0 move.w #$0080,$dff096 move.l (a0),oldcopper move.l #newcopper,(a0) move.w #$8080,$dff096 move.l gfxbase,a6 lea bitmap,a0 move.l #1,d0 move.l #352,d1 move.l #280,d2 jsr initbitmap(a6) move.l #$4d000,plane1 lea rastport,a1 jsr initrastport(a6) move.l #bitmap,bitmapzw lea rastport,a1 jsr clearscreen(a6) move.l #text1,texte1 move.l #text2,texte2 move.w “шЧуW' #32,$dff096 move.w #62,x1 move.w #218,x2 move.w #1,ydir scrolling: bsr BLINK bsr BLINK2 moveq #2,d0 moveq #17,d1 moveq #44,d2 move.w x1,d3 add.w #20,d3 move.w y,d4 add.w #166,d4 lea BOB1,a0 lea $4d000,a1 bsr putbob cmp.w #1,ydir beq weiter sub.w #3,x1 cmp.w #-16,x1 bne weite“шШ/їпкr2 neg ydir weiter: add.w #3,x1 cmp.w #296,x1 bne weiter2 neg ydir weiter2: test: btst #10,$dff016 beq raus move.l gfxbase,a6 ;eigentliche scrollroutine lea rastport,a1 move.l #0,d2 move.l #0,d3 move.l #352,d4 move.l #60,d5 move.l #2,d0 move.w #0,d1 jsr scrollraster(a6) add.b #1,lza ; verzoegerung - vier punkte warten cmp.b #4,lza ; dann neues zeichen bne raus move.b #0,l“шЩ_`[йza move.l gfxbase,a6 lea rastport,a1 move.l #344,d0 move.w #32,d1 jsr move(a6) lea rastport,a1 move.l texte1,a0 move.l #1,d0 jsr text(a6) add.l #1,texte1 cmp.l #ende1,texte1 bne raus move.l #text1,texte1 raus: cmp.w #$0,datach0 bne v1 cmp.w #$0000,acolor+18 bne w1 v1: cmp.w #$0,datach0 beq col1 move.w #$0ff0,acolor+18 MOVE.B #$0f,EQU+2 w1: cmp.w #$0000,acolor+18“ шЪђ.Sя beq col1 sub.w #$0110,acolor+18 ADD.B #$01,EQU+2 col1: cmp.w #$0,datach1 bne v2 cmp.w #$0000,acolor+34 bne w2 v2: cmp.w #$0,datach1 beq col2 move.w #$0ff0,acolor+34 w2: cmp.w #$0000,acolor+34 beq col2 sub.w #$0110,acolor+34 col2: cmp.w #$0,datach2 bne v3 cmp.w #$0000,acolor+50 bne w3 v3: cmp.w “ шЫ3,…Л #$0,datach2 beq col3 move.w #$0ff0,acolor+50 w3: cmp.w #$0000,acolor+50 beq col3 sub.w #$0110,acolor+50 col3: cmp.w #$0,datach3 bne v4 cmp.w #$0000,acolor+66 bne w4 v4: cmp.w #$0,datach3 beq col4 move.w #$0ff0,acolor+66 w4: cmp.w #$0000,acolor+66 beq col4 sub.w #$0110,acolor+66 col4: wait: wait0: cmp.b #$f0,$dff0“ шЬIЋz06 ; auf zeile 255 warten bne wait0 moveq #2,d0 moveq #17,d1 moveq #44,d2 move.w x1,d3 add.w #20,d3 move.w y,d4 add.w #166,d4 lea BOB1,a0 lea $4d000,a1 bsr Erasebob weg: btst #6,$bfe001 bne scrolling ende: jsr stop_muzak move.w #32800,$dff096 move.l execbase,a6 move.l gfxbase,a1 jsr closelibrary(a6) move.l gfxbase,a0 add.l #$32,a0 move.w #$0080,$“ шݘфgdff096 move.l oldcopper,(a0) move.w #$8080,$dff096 jsr permit(a6) movem.l (a7)+,d0-d7/a0-a6 error: fehler: clr.l d0 rts BLINK: LEA BLINKCOLOR(PC),A0 MOVE.W BLINKCOUNT,D0 MOVE.W (A0,D0.W),D1 neg d1 MOVE.w D1,y SUBQ.W #4,BLINKCOUNT BCC.S BLINKEND MOVE.W #118,BLINKCOUNT BLINKEND: RTS EVEN BLINKCOLOR: dc.w 0, 4, 7, 11, 15, 18, 22, 25, 28, 32, 35, 38 dc.w 41, 44, 47, 49, 52, 54, 57, 59, 61, 62, 64, 65 dc.w 67, 68, 68, 69,“ шИt3tД 70, 70, 70, 70, 70, 69, 68, 68 dc.w 67, 65, 64, 62, 61, 59, 57, 54, 52, 49, 47, 44 dc.w 41, 38, 35, 32, 28, 25, 22, 18, 15, 11, 7, 4 dc.w 0, -3, -7,-10,-14,-18,-21,-25,-28,-31,-34,-38 dc.w -41,-44,-46,-49,-52,-54,-56,-58,-60,-62,-63,-65 dc.w -66,-67,-68,-69,-69,-69,-70,-69,-69,-69,-68,-67 dc.w -66,-65,-63,-62,-60,-58,-56,-54,-52,-49,-46,-44 dc.w -41,-38,-35,-31,-28,-25,-21,-18,-14,-10, -7, -3 dc.w 0 BLINCOLOREND: BLINKCOUNT: DЗшЯОV-ћзХквії/&џлХйањљ ." ћкШдгќџ§ - љдЬам§ќ") ћаЬЩфџњ $ $ §ўЯЭУцќ %!!љ§бЭСыџ§џ$'!"ћћаЩУю§§ќ %'$§їаХЫяќќћ '(% љЯНдѓќњћ*(&џњЮЖйѓ§јј,( "%§јЮЕнѕќљљ/( %! ўїФИтѓќљћ1# $ єПСцђ§јџ1# єДЪшёўѕ2 №­Эы№ѓ"1фЌгы№є &.  еВйщєі )* ЬЛоцњњ (&  НРрцќў(#  ЖХсщ& ! ѕИЪпю$ #ъЛЮнђ# #мОврі" " жРдцљ  #зСдшџ  "єкФжь   язХмё    ъвЦтѕ   яаЩчћ  "џѕЫЭъў Зша!?ˆ—  !љїЪеэ  њѕЧмє   ёЧсї   щЪшќ  цЯь њќ §рдђ іћ ёнлї љћ§ ъ ис§ љџѕџ§юзъ№№ыєџкђю§эп§ўнњ ёіьољфџї№э§х №ъіјщяэъ яђ єіхюъъьњ ї№уёѕюээњщуёчѓѓё ћљфтэуѓііњїстуыєј& §  ўярржђѕћ)џцроЮѕї* %њтожвїѕ)*њќпкШкљѕ&- ўєпиМрџі& !.эпЯЛфї$&.ќ§щлХТщњ!-+ћјщйЖЫэџ§!2)ўюъвЏЬѓў$ !3( џшщЦАбјќ '!(3*њшцЖЗзјћ)$,0,ўєъсЎМкќ§*'2..ЗшбlŒ ˆџщъмЊНр§)+4//ўцщЯЎСцћ)044/ љшцТВХщљ$)517/эъуЗДЩьї ()81;+щщмЕДЮ№ї-)94='ћъцЮЙЖб№љ2*78@іьцРПЛз№ћ6*6>AёытЗСПля§!9)8BBђъйЕСРрюў(<%=F<љђщбЙУФую0=!AK0їёчТСХЩую4; GO%њ№уЗУШЬфэ88#KQ§№пВХЫаую@/$RN ћ№гДХЭбфёD(*XHљюЩИЧЯвуєF+,[= јыЙМЫбдсј*D'2[/ ѕцЕПЭджпў+A+:V+ѓпГРЯеип/B,@O+ѓвЖСажйр 2D-?L&ёЦКФбззх0F1JU:керсцэ§чрЯњ%AIK4Юйуфщ№џчубџ)BIB&Чкццыёўчфз,CG8Ъмщъюѕўчфн /DC2ёЬтыю№љўщЗ шгЈ?ўтш 3D;+фЯфюёёњџьсь6C1"йЯшђѕѓ§џяфђ7@'ебыѕјѕў§№шј:< џджюљњіќё№њ;6ёЯмёќ§їў№і":*яЫнѕўї ќ№љ"9ыЫфљљ §є§ '7їчЭх§§ќћџ &0єоЮы ћ'%їїжая  њ(эњвжђ  њ $ыїЭйј ўіяёЫпћ ыїюЪт  цњхЫш  ьъќнЮэ п№згя   кѓбйє щсіўамњ вчћїЭт§# ћЩэѕЮх &  ыЭёыбъ$&бйїфгя)&ўМућриє- №Лхџ коі0вФьиуљ"1 Йбѓицљ (1­кљиыј ,(ьЎпў љйэј0"иНхѓмяї2%ЙШьёпяќЗ шдžм.и1 'ЊЫѕэсь!) &ђЌгќ ьфы&&&оВнџщчы(($ФЙушцэ%+# ГМь чфђ,"єАТє шує ,фБЪљ чтњ#,ЫВзџ$ уу§&, ПДр'сц)*§ЛИф)пш!+)ъЗОэ *ќоьќ "-"оДУі#*їояє#"-бГЭћ')яоюю &#-ЫГд!+%ьсщю($,ўУЕо&/#чутђ)$)юРЙч*1утнє)&!шЛПы,4умм§!*'пЙУє05рен%)' иКЫ§"25 нас()&§бКж(53жац(("ѕаЛо-63Юаь*'юЬОх162ѕЩаё,( щШУъ552юЩгѕ-%фЧЩя84-тЩлљ/$ѕсШЯї:4+иЦсў/№лЪзњ#;5жЧу/юеЫн(:5еЭч0югЭу):3Ъвь!/§ыдащ ,;- Хйё#-ѓтжжя.<# Чмѓ $'№нзнђ,<З шеўКZ#Ыпі #ёжитї-7њЯуј % ѓдйшњ// ёбшљ%ёеля0)"ѓгыћ эжоѓ0'ѕжэќхетј+*ѓйэ§пзщќ$.ял№ў озь/янђџ  миє .ёпђў лкї$+юпєўќмлў &)эрѓќќпн )(эрєћњтт ))ясђќю фу  (*ытю§ш ўхш § %,чтэљх §щю њ%-уп№єъ ъя ћ".умђшѕ эђ ".омёнљ яѓ"/княйѓѓ%0впшніѓ $1 Яспцљіџ #1асвэњјћ!0џбпЭё ћњі  -њбиЭіњѓ 'євЭгћ јѓ"ювУо§ єіюаНуџѓјшЪПцў !№јуРУъњ$"ђњоЙЮэј'$є§ жГжёњ)'З шж]:­ј ЬЕйёџ,(§  їСНою0(   цЕЩфы 6)  нЏЯъъ";$  ШДды№%@   ўЏИмщљ)Dћ ёЁУуц.Fј ш˜Хщх4Dі ж™Ььщ 9D!ќѕЛŸЭъя";>"!њєџЉŸечћ%A8!'"јѓќяЂЃйц+E5#+јђљоЄЌжъ 3E3%-њђѓЪЁБгє '7D3'.јђчП ИЯњ,<@7*.їёбМЁМЭ2A=7-)єэСЗЇОб7E<6/$іцК­ЋКм$;E>7.єеНЄБЕх+ACC6-ёРОЁЕЕщ3EAH8*ъИИ ЕПь:G?K8&оЛАŸБШё#?GAM5# ЭОЋ Џаї*DDEN4 ТПЂЁЏжњ2I@LP/јФОšŸЙк;K=QQ*хЧН–™Фн BK?SO&оШИ’™ЩхFFAWI# мШЕšЭьLAG[HљрЬЌ†Ђвё!P>K^?ътЯЄ‚Џдњ)N>M_9чсЮ Бн+З шзОp$KAR]6ўысЮ—ƒЕф4FCV[-ђэуЩ‹‰Къ7DFYW(ьэцЩ„‘Л№6EG[R №ышУ—Ці4HK[J§їьщИ€œЬ!1JO[@ђњэыБ€ г"4JQX:ёњюь  м !;KSV-іћ№ы”ƒЉцQSKєѕо‰‹Жђ#AQR@їџјк‡Нћ+BRO9§џљЫ‡•Шћ-ERL-ј њХˆžЫў/HOG#ѓ јМ‡Ідћ3HM?і їГˆЋзњ 6IH9 ўюБŒЏлћ#7JD3ј чЊ“Жк&:I;)ђ  хЄ™Ли (=E5!ѓн ŸНо*>A0љнœІКч.>:.џ" кœЈИы1;2+ђ%#њзŸЋИѓ27,"№!*"ёйЁЈТњ"41(ђ$- ьдЂЄЫў#4+'џљ&2эЮЃЇд'2$$іџ*5яаАз '-ю/8ђЧ—Зо *&э!5:ѕЦ—Лш)№ %99їКПэ%љѕ&>6ћјЖЂЦю!эї+B3ўіБЗшЈб|ПVЉЬѓщћ1E)ыВ­аљш8HфЖГжџќы=IрЗЕй №э$@FоЗКп цю+EBтЙСс у№1I;ішНЦхјфѓ5K9яъПШщў№чј;K1ёыУЬыќущљ>K* єьУаъў§мъ§%CJ&јяХбюљ§њлщџ)DIћєЦвяѓќярш/FGўѓШбё№ќуущ 1HD іЦвёяљйшъ5J> ѕТжюёѕвщя7M6 іРоъђюбчђ:N% ђРпшёцецљ!>N хТрх№зйчћ&BK цЦрцэЯнщ(DE!нЧочщШмэ*I=!оЩмшсЩн№ ,L/'# йЬйшдЫуѓ2L",'еЮичЬЭъі4J/( аЭйфТЬ№њ:B1'ЮЭккСЭђќ=9'3&ЮЫнвУбіўB*,7&ЫЪоУФзњџ!D#4:$ќШЩмМФмў&B7;&іЦЩзЛЦр/<"88*эФЫЩНЪх 2.':7+щСЬНРЮь6$“шУЄ63!їуфцяшшіљњэёўђаХЯблў )<;:@C2"ыгШЭбньњ ўєэсЭалпѕ->DC;2/! яЦЙТефѕќ ўђнЩЮрфј.;==98/фСЙЦЮъњќ  јкбзмсѕ469.,:1мГЛЬлэяјѓпммруђ7<3!-8'ћШГУЩтђѓі ђпзсщлћ).1,)/0&цЧСУгфьѕџ ћ№ыйнфо '2)"(/1% иМЩдкмщі%ї§јыочтм,/$.'$'ЧЧжзду№№ ќљїьчшмь&%&"#% ѓЪгуййсьќшлЮ§яд їћўьыъмѓ"#$ щгншлзх№і§ыюфтў#"!#щйфтйнує  ћќэцтщў ' #цусмосујїяьсюќ *  ўђэмдпщы ѓьцчј*§їёнйсщя  ўіэрцї "-   єэйзъёљ  џ юышцџ§ +(їязЯцќ  эсиёџ'"  їєяййщє  њ юпеіџј3!  їъцййё  ўћщеоћј0$ ћ№плиш   ќфРрћ)! јђштуощ ўџ§оХсљќ )% їямнхрѕ  §љёаЮьѕ§ (#љънпттќ  јхЭахј " ! эщсофьџ џњнвЯсї  " №слнхјџ њьигицєџшм+€a"(#"ьфнмщћ  їсебиэј +'ћщчммѓњ іфдЩрђь" -#шпмсі  ыиЯЯшєѓ-$њђщлтє  їиТЩшњљ  */"іцффэђ џ џэзЬЬпєћ "/ ынотљчЫУгцјў&+*ќъэтиђ   ьЩЛУт ќ12 ёхэхч њыЯУХк  '%%ючьлт    ђрЩУЧр# ѕячнц    єсТЛЩт $#&ђёшуѓ ў ћяфХЗЩф !% ёчсэњ!њ ёшлШСЭсљ!унђџ(&ћћ№ъгНШмм§  ъыіў) њѓќщюдОЮлй! ќуѓ+ ўјћъщцЩЪззк!шнN‹%Cўці ')ћџёнчуУЬсоз !  љђњ1.ѕѓщзпйЩЭфун#$! ј-3! ѕшнЮилЯзшцр%#ќџ+2їрбЬЭлйоэуп#$+$ѕњў 42ђнаЦЧелхщфу #21юџ§72юкЫМХодрчнш&&32юљ;. ьаЦЗТймупеь)/<1њёј§ §%82 ђбНГФвжшуйщ,,?2щя +;1 ўтЬРБУежтмщє'2:&ђы  3:ќрСЙМЪжзнифћ/,0+№§ '/)! њфУИЗСррЭйюы;1-)ѓў  '64џфСХЛГзжЬрэѓ4-83 ѓ љ%4:љгЩРКОЭЩШфѓ-6(,5 ѕ +;* юбРЛДПвЬЬсє 5/&3$џ  !1:&ъЮЧЕБНбШеюѓ2-$0%  9;шоЉvкнўцЮХНЗЛЧЪзюќ.#%,'  $5.љпеТНОСФШля*#'& "6( ѕфвСУПНЦЭн№'(" &- ќэсеЦНПХХацѕќ((#-єчибЩОФЩЧиэѕ %% #џясдгЩОЬаЩкьє# !# %&њымгЯЧПЬжепяя &!.-$№пидвШЦйдЮщєь#""4. ѓкЫавФбужжч№ђ  "((@'(%їюбЬвЧУоскхщьѕ  $" 7D& "ўљрЩЧбЬШфокщяэџџ % =B,'ўјпФТЪЩдшйсъчї  ");=0*ћ№еШНФЪлфйюыщћ §-C=1) 'њцШРППШхкођёђ ћ5F;9*&јйЧЛЙРводц№ѕјўџџ6D?<,)% ѕаУЗЙПдлнщђјшп#5B џі8=5>4-"§шЯПЛКЛбЭлєљљњ <88<12% уУЗМСПТЬпюћ ѓ  $51:B<) љлШИККЗУЬуіџѕ ',/C:-ўхзУООБЊНЫу %і 5DJ=.ямлЧФЗЃЇЖЯэ§#  #7BA93юсвХСГЄЈЙЯх !"  "@QF1$ытпЫЗ™ŸЎТйё   !%>OD=&ѓртлЮД—ЁТућ% /$  7FB=6џчнгПІŸЏСмљ#* $џBWE<- єячзВ–˜Мжчџ 3" BPAA* ђтудІžŽ–Йдѕ ,%%ў1OE85 іфиДЃ—•ЊФгѕ+ " ;WI4&юч衘ŽŸЙЫф  *)!  $EO<7#њютТЋ–”Лаэ  (-&"ўшрXр•4KL<( яиМ‹”­Рдљ $-+* >LE<,њ№вБŸ“ЋФу,5/§ќ1GD@5% §хСЉ™Ž—БЪяў  05% њџ%(HE?:3ќюЭІœ™”Нюј16#џ7IEB<( єрОЁ—“”Ћбёў'.0"ћ#9DG<8)цбВЁ™˜œАжї )41 ўљ$@JB96' ћшОІЄ“•ЂМоѓ%-5/ќ#+:H?83ѕйЋЌЅ“БЧк§!&-4'§)*=LA4-њюСЈЊŸЛЮщ &%#42&).BDB;#ђгЌІЈЁ”ŸРеі&%"8+ "2>AEF4њёОЄœ š›ЗЦм§,,!$)" +C:-ўхзУООБЊНЫу %і 5DJ=.ямлЧФЗЃЇЖЯэ§#  #7BA93юсвХСГЄЈЙЯх !"  "@QF1$ытпЫЗ™ŸЎТйё   !%>OD=&ѓртлЮД—ЁТућ% /$  7FB=6џчнгПІŸЏСмљ#* $џBWE<- єячзВ–˜Мжчџ 3" BPAA* ђтудІžŽ–Йдѕ ,%%ў1OE85 іфиДЃ—•ЊФгѕ+ " ;WI4&юч衘ŽŸЙЫф  *)!  $EO<7#њютТЋ–”Лаэ  (-&"ўЗшт Ц•љ"ыОМЬујё(-!"щБПЮшїѕ *-"нЋРвыіљ #,+ !аЋТжэєќ !&.( Т­Хйяєџ$(0"!ДЏШнђѕ'+2!ј­БЫрёі*,0!щЈЕатђі-/, лЃЙецѓї $01*жЄОзшєњ'22&ЦЇПмчђџ*41#ћИЊХпш№-6.$юГЌЫтъю "17,#ч­Ўацыё%48)# иЏАдцщє*85*!ЯЏЕзччќ-:2*ћФЎЗлчх0=1+ѕПЌМсчц %5>.+ шРЌСтцш +8<.)мР­Тухю.;90(љвРЏШуці3>81( ѓЮРБЭсц§ 8>81%чЯНДЯсч&;=91!џквКЙбущ-?:;0ігбЗЛвфё 1A9=/ ыбаЗРвфњ7B:=.себЕФвхў+ўвзЯГФгц @??>(ёЮиЮГЦвэ $D>A>'уЯйЫДШЯї*E@BбЯйцОЎГт5:HRH=№двмчГЉПы:LRF'мазтсЉгћ(>ANQEпбифзЄЁй.?DOQ?одлцЮ›Ќр4BHPQ5їнипшЦ“Жъ6EJPNњкйсчИŒСђ7GLOI ћккуфЏХћ;JMOBњлоцрЂ–в">MMN/јнсщк‘Ѓж $BPMK єофъеˆЈт'FRLC ѕрчъЧ†Въ.GSJ7 ѓущъВ‰Кя4KSI$ ѓцьшЇ‘Пї7MRB ѕщюч–™Ы?96'!і ѓўїцсѓўЮКСРФй№ ;G=;џ№ щхэёЫКХПФкуџ5=@=)!ќўчщїэРЖТПФмщћ )9;@:'! ќцышчЦNLєуСОЙВФоь'>C@9' § ќ ќяьщмУКВГЧлх.@=CA%  ћььэеИЛВЈУощ-EGE9"ќ џ ѕщрЮЙЛЎЋШещ#5B@J? ћћ  ўєэпХЏАЏБЭмь$B@AG-$џ љётрПЏБІЏЯоє(BJGD( љ   ћёпЩЖЏЏЅЗЭлј'!.ADCB,і ўёчТЊЅЉЊХЯмџ/;CEE7&љїєрОЋЇЄЉФбт/@KIH4$ќ ќяиГЈЅЃГУЫу&:CIFK6#њ ћявЏŸЁЋЛФЪщ-@IBJE3!ќ ќэШЋœ—ЉСФгэ !2DOKD>/ §   іпЧ­•–БТУбє$7ESHL?+   ѓйСЃ—БМЩзю/9FORK9/џ   №лЛЃ–ŸЕТЩзі59HTUI6,  ћэзНž›ЂЕСШлќшшˆ Ћљ!4@IU_E5'ўёыжБŸ™ЉЖКЪп "7DH[]G/&њ ў№эЮЌЁЏЕУФх(3GOc[:8+џџїћъщЭЊŸŸЛОКЩѓ7OUcSB3( §љ яї ъьцСЏЅЎЛЙЙЮј$2JabS?9( њэѕћчжРЏЉЗШОГЭ ?P_WQF8(їцщћќћѓэеМЏИНПРФлї,:Ug[J=;-ын№јєљімСУТПСЦМЧп&;[WXOC8- хбшэѓїьмХЗСеЬУХЭтљ7BSPVJAA> ўзжшъчыхгЦТдгЭЩЭжхќ)NUPNNFA="ъбдошыхжЪЪбжкжЧЪи№4OIJSQDF=# пЮбйцстдЧЪвроввбкч&MMN?0ќэлМ•” ЊРзхчюљ! "#/7@?FN>(ћхШЎžžЂЋФгсѕєћ # "+49:=KA,-ѓлМЈЅЌЏРду№љ"")//6:ED7*"ёжБІЂЊЎЌХлрш§#2.-245=B9& щПЋЏЏЈЌИЪищєќ#.49535<9* њжКЎАЛАЎЕФуыё !;9,7863/+ёЧАЏИМАБМЯођ$-<8535642"кДВЗМДГЛИеєљ  4E?:7;:#($фШГ­КЧПМЗшъИУєРтћ§+DC<<<8/#$ілНВАСЪНРПФц !5GCBB91&$ эЪКЊКЯЦХУОШї )DDFEC4.&§оЪГЎСаЩЯЧКмїў .NIHJ=4%ьЯШБЎЩиЯЪЩЩт =LCKM<(#ћтЧТВБЭзгаЩз№џARDMM: њьаФСЊДппдгйлі ћ1GJGQH1"їяфЫСУЊМппнсрфѕ є1QOHQ@.ѓщдЛПНЎЬфукыёшї џј :RKKW:!ьрвОЖЙМйчщыюэшќ іј (@LKIH7#ѓтрЪЛНПЧкъђїіычј ї /NMHD@,џэоиТЖЛЧлсуњјъъќ џљ 6OMFF;! єупЮМГИвьфяєцё њњAOCHA2црйЪСБНнѓэєэхієќ %GO>@5(јфнбХТЙРщёёцыђўџј 3IJ@<*ѕфмЬПРЛЩјяў ѕ№яўѕѕ 4 шы:уZоJI<=! §шсжФСФНЯ љ №эђўџюїBJ@:2ўулбЛЧЪХу ѕшщњьљ $EKF6 јјчзЮЖРааі"јцъ№єёў +BDA3џыюсеЧОХЭк!%# ёыъя№щї 5EB8'ћыэнЭПНЬды -* яхщёѓыѓ4DI4 №щщрЫЙЙЩк§ 1+ єхсэщшљ /AB1юонрЮНПЪхџ24/%їыхэцтљ%6=4"ќъфббгТНиј3:8-ўёхщѕтпћ 9E*ѓфпЮедЙШх§*53=2 ћђтфѓрчџ%86%# утзТднРШ№џ 7<58, ўыхёёиы "9,сйаУжмЭзђї>;;9*ѓшюіюнъџ+0"ѓскЬУгзжуѓ"?OJ7+§ѕђфэє ѕшхкбжеЬЭцђћ,9OF;( ѕђьхї  ёкзйзйжЩдхѕ34IA8,! їїќёь№ ёзвгбжжажчѕ%<>H70*$ љіјїїњ щйгЭЯбЬецєњ #6AG90& ў§ћќќћ љздаЬжЯТзъљ!-:A56- іђ§ђиЯФФееЧйяї $)/0822. љљїщі№саХМУЪбчяї #'5863-"ќљў!ѕѕѕњфпзЪЛЙМШыѕ %,1F<+§#ђєќрдвЧМИМвн№!)*#!B@3(§яњ2ьѓјѕэлЧТДЋОуфъ"*,&,<7*0ѕђџ;ѓѓщэщлвУЋЁКлц "'(-?94  шющАŸљркфлЩУЛВ­Упц")$'1RJ@>$  §њцбмтЮОДЕДРпў+&";YM=*  џјокреЪТИБЗЪуј&&'GRK?( ѕљінкокЦЗЗКМгыџ*!0OTH/!џќ§юмнкйЪКГВОня $DWQG* љљћісвлиНЙМЙХлі&*FQT? ўіњљчтилЬРИЕРгчѕ 8ULF5ћіјїякалаЛЖЙЧлч >[NA' ћђ§џюфмжЭШХИЕгчщ! MZD3#єѓњёождвХПЙЧкпє+GXK$ ѕюџѕсмолТШЭАЧчщє"4WQ9 ѕєљіслгйЯЫТНвнч  BOQ>! ыюў№нлоеЬбУЧгнч !)IMG/ ! џљѓєіщнилегЭОЯмйї =KF9.њђѕљѓчжзкгнЭЦжбс CI@8+ њѓшѕќчрмлиливвв шйš!Erещ +JI:..$џѕќшьњїфрллохеЭлба§=NC2/)їљѓфщћђутззьтбмлЬп#CJ=1/%яџютэѓыындтяизсквы 0CJ7-+эїїхуэяъшойч№перзмї!8DG61#ѕђэшцтфёшлкэьмтмсфі.;8?;*!іє№щюрзсшсфьщшттръіџ 5;A>3!њјсфъоиущрущюыухшѓі%43B<1#њёхххЯбшчфячшшчьієљ1.5C6(љіъчщлЮдуфэяццфщєњ'5*7B3 њэъшуаЯклчєычцфђџ*.-8@. љщъълЭЭихьъщщушџ!*+)75) №яяскЫТкђэухшть   *%-//,  јъїърйЪЦрєцтссуї(0*'01# ўьэїчлкЯЮщяткссшџ  -+,)/1ћ§ ўя№ѓцмежтђшидирє /31,'&%є,ш№hWЬUccc dc.w $019a,$ddd ; ombre sur le vide du damier dc.w $019c,$eee ; couleur damier dc.w $019e,$fff ; ombre sur le damier dc.w $01a0,$000 dc.w $01a2,$fca dc.w $01a4,$0dda dc.w $01a6,$aa6 dc.w $01a8,$f00 dc.w $01aa,$0f dc.w $01ac,$e44 dc.w $01ae,$08 dc.w $01b0,$ec0 dc.w $01b2,$da0 dc.w $01b4,$b80 dc.w $01b6,$a70 dc.w $01b8,$960 dc.w $01ba,$850 ; ombre sur le vide du damier dc.w $01bc,$740 ; couleur damier dc.w $01be,$620 ; ombre sur le damier dc.w $1d03,$fffe dc.w-шёI/š $01a0 ciel: dc.w $100 dc.w $3003,$fffe dc.w $01a0,$200 dc.w $4003,$fffe dc.w $01a0,$300 dc.w $4d03,$fffe dc.w $01a0,$400 dc.w $5903,$fffe dc.w $01a0,$500 dc.w $6203,$fffe dc.w $01a0,$600 dc.w $6a03,$fffe dc.w $01a0,$700 dc.w $7103,$fffe dc.w $01a0,$800 dc.w $7703,$fffe dc.w $01a0,$900 dc.w $7d03,$fffe dc.w $01a0,$a00 dc.w $8203,$fffe dc.w $01a0,$b00 dc.w $8603,$fffe dc.w $01a0,$c00 dc.w $8a03,$fffe dc.w $01a0,$d20 dc.w $8e03,$fffe dc.w $01a0,$e30 dc.w $910.шђBРт3,$fffe dc.w $01a0,$f40 dc.w $9403,$fffe dc.w $01a0,$f50 dc.w $9703,$fffe dc.w $01a0,$f60 dc.w $9a03,$fffe dc.w $01a0,$f70 dc.w $9c03,$fffe dc.w $01a0,$f80 dc.w $9e03,$fffe dc.w $01a0,$f90 dc.w $a003,$fffe dc.w $01a0,$fa0 dc.w $a203,$fffe dc.w $01a0,$eb0 dc.w $a403,$fffe dc.w $01a0,$dc0 dc.w $a603,$fffe dc.w $01a0,$dd0 dc.w $a803,$fffe dc.w $01a0,$ee0 dc.w $a903,$fffe dc.w $01a0,$ff0 dc.w $0100,%0110011000000000 dc.w $00f0,$0006 dc.w $00f2,$9338 dc.w $00f4/шѓћЄіЃ,$0007 dc.w $00f6,$5338 dc.w $0190,$0 dc.w $0192,$0 dc.w $0194,$0 dc.w $0196,$0 dc.w $0198,$0 dc.w $0180,$000 dc.w $0182,$0ffd dc.w $0184,$0dda dc.w $0186,$aa6 dc.w $0188,$f00 dc.w $018a,$0f dc.w $018c,$e44 dc.w $018e,$08 dc.w $019a,$222 ; ombre sur le vide du damier dc.w $019c,$e0e ; couleur damier dc.w $019e,$505 ; ombre sur le damier dc.w $aa01,$ff00 dc.w $0108,$0010 dc.w $0188,$0662 dc.w $018c,$0c dc.w $0198 foc1: dc.w $0000 dc.w $019c foc2: dc.w $0000 dc0шєgЂ\‰.w $010a,$0010 licop: dc.w $ab01,$fffe dc.w $019c,$00f dc.w $0198,$0000 dc.w $ac01,$fffe dc.w $0198,$00e dc.w $019c,$0000 dc.w $ad01,$fffe dc.w $019c,$00f dc.w $0198,$0000 dc.w $ae01,$fffe dc.w $0198,$00e dc.w $019c,$0000 dc.w $b001,$fffe dc.w $019c,$00f dc.w $0198,$0000 dc.w $b101,$fffe dc.w $0198,$00e dc.w $019c,$0000 dc.w $b301,$fffe dc.w $019c,$00f dc.w $0198,$0000 dc.w $b501,$fffe dc.w $0198,$00e dc.w $019c,$0000 dc.w $b701,$fffe dc.w $019c,$00f dc.w $1шѕpeЯэ0198,$0000 dc.w $b901,$fffe dc.w $0198,$00e dc.w $019c,$0000 dc.w $bb01,$fffe dc.w $019c,$00f dc.w $0198,$0000 dc.w $be01,$fffe dc.w $0198,$00e dc.w $019c,$0000 dc.w $c101,$fffe dc.w $019c,$00f dc.w $0198,$0000 dc.w $c401,$fffe dc.w $0198,$00e dc.w $019c,$0000 dc.w $c801,$fffe dc.w $019c,$00d dc.w $0198,$0000 dc.w $cb01,$fffe dc.w $0198,$00c dc.w $019c,$0000 dc.w $d001,$fffe dc.w $019c,$00b dc.w $0198,$0000 dc.w $d501,$fffe dc.w $0198,$00a dc.w $019c,$0000 2ші[ћKu dc.w $db01,$fffe dc.w $019c,$009 dc.w $0198,$0000 dc.w $e101,$fffe dc.w $0198,$008 dc.w $019c,$0000 dc.w $e901,$fffe dc.w $019c,$007 dc.w $0198,$0000 dc.w $f201,$fffe dc.w $0198,$006 dc.w $019a,$003 dc.w $019e,$000 dc.w $019c,$0000 dc.w $fd01,$fffe dc.w $019c,$005 dc.w $019e,$003 dc.w $019a,$000 dc.w $0198,$0000 dc.w $ffdf,$fffe dc.w $a01,$fffe dc.w $019a,$005 dc.w $0198,$003 dc.w $019c,$000 dc.w $019e,$0000 dc.w $1b01,$fffe dc.w $019a,$000 dc.w $0198,3шїКT$000 dc.w $019c,$000 dc.w $019e,$0000 dc.w $0108,$000 dc.w $0180,$0000 dc.w $010a,$000 dc.w $fffe,$ffff blk.l 112 ncoci: dc.l dtabci dtabci: dc.w $100,$200,$300,$400,$500,$600,$700,$800 dc.w $900,$a00 tabcoci: dc.w $b00,$c00,$d00,$d10,$e10,$e20,$f20,$f30,$f40 dc.w $f50,$f60,$f70,$f80,$f90,$fa0,$fb0,$fc0,$fd0,$fe0,$ff0 dc.w $ff1,$ff2,$ff3,$ff4,$ff5,$ff6,$ff7,$ff8,$ff9,$ffa,$ffb dc.w $ffc,$ffd,$ffe,$fff,$ffd,$ffc,$ffa,$ff8,$ff6,$ff4,$ff2 dc.w $ff0,$fd0,$fc0,$fa0,$f80,$f64шј)ї <0,$f40,$f20,$e20,$e00,$c00 dc.w $c01,$b02,$802,$803,$804,$804,$805 dc.w $905,$906,$a06,$a07,$b07,$b08,$c08,$c09,$d09,$d0a,$e0a dc.w $e0b,$f0b,$f0c,$f0d,$f0e,$f0f,$f1f,$f2f,$f3f,$f4f,$f5f dc.w $f6f,$f7f,$f8f,$f9f,$faf,$fbf,$fcf,$fdf,$fef,$fff,$fff dc.w $efe,$dfd,$cfc,$bfb,$afa,$9f9,$8f8,$7f7,$6f6,$5f5,$4f4 dc.w $3f3,$2f2,$1f1,$0f0,$e1,$d2,$c3,$b4,$a5,$96,$87,$78,$69 dc.w $5a,$4b,$3c,$2d,$1e,$f,$11f,$22f,$33f,$44f,$55f,$66f dc.w $77f,$88f,$99f,$aaf,$bbf,$ccf,$ddf,$eef,$fff dc.5sŒЖšjw $ddd,$bbb,$aaa,$888,$766,$655,$744,$833 dc.w $922,$a11 endcoci: dmon1: blk.w 6*60*5 mt_sampleinfo: blk.b 6744,0 s1: blk.b $19c8,0 s2: blk.b $1194,0 s3: blk.b $bb8,0 s4: blk.b $fa0,0 s5: blk.b $7d0,0 s6: blk.b $26ac,0 s7: blk.b $2134,0 s8: blk.b 0,0 s9: blk.b 0,0 sa: blk.b 0,0 sb: blk.b 0,0 sc: blk.b 0,0 sd: blk.b 0,0 se: blk.b 0,0 sf: blk.b 0,0 7,$ff8,$ff9,$ffa,$ffb dc.w $ffc,$ffd,$ffe,$fff,$ffd,$ffc,$ffa,$ff8,$ff6,$ff4,$ff2 dc.w $ff0,$fd0,$fc0,$fa0,$f80,$f6шфНїАЬЪфјљ§ §'&!)&#!ћђ№мХжскжбйёїё '+"%#$іъоШЬтнсгЦнњџњіќ$ .&*/яэлУФмхузетёѕќі+ ,!!(-)юхаЩглййзжщїј џ#% 2,'&$чнЩПЫтчвЬояћ§їљ '* *))()# јђоРФЩгизйхьњџ ў. *--)&єржЫУЦивЫжєјў  ( '(())(їмвФЛШзбЯтєє џ)! *.+, ымдУИЪЯЯзэўђ  % #'.,(щзвУЛЦШалѕћў  )6/!унгЛОЧОЮућњ #(2-џшнЪОРННзсіџў !0=$ ѓяфРЗСЕОию /<(юэйТРЙВФоь§ #69ѕыђжКРОДФля !шћы)IXa1)+ move (a0)+,d1 or d1,(a1)+ move (a0)+,d1 or d1,(a2)+ move (a0)+,d1 or d1,(a2)+ move (a0)+,d1 or d1,(a2)+ move (a0)+,d1 or d1,(a3)+ move (a0)+,d1 or d1,(a3)+ move (a0)+,d1 or d1,(a3)+ adda.l #50,a1 adda.l #50,a2 adda.l #50,a3 cmpi #22,d0 bne noad1 adda.l #2,a1 adda.l #2,a2 adda.l #2,a3 noad1: cmpi #15,d0 bne noad2 adda.l #2,a1 adda.l #2,a2 adda.l #2,a3 noad2: cmpi #8,d0 bne noad3 adda.l #2,a1 adda.l #2,a2 adda.l #2,a3 noad3: cmpi #2,d0 bne noad4 add"шќП!‘a.l #2,a1 adda.l #2,a2 adda.l #2,a3 noad4: dbf d0,baffl rts scrolombre: lea poso,a0 lea vscrol2,a1 move.l #$6e0b6,a2 move #35,d0 an1: move.l #0,d1 move (a1)+,d1 add.l d1,(a0) add.l d1,(a0) add.l d1,(a0) move.l (a0),d1 clr (a0) adda.l #4,a0 clr d1 asr.l #4,d1 tst d1 beq passco move.l a2,a3 adda.l #2,a3 eor #$f000,d1 add #$1000,d1 or #$9f0,d1 move.l a2,a4 move.l a4,$dff054 move.l a3,$dff050 move d1,$dff040 move #$5b,$dff058 passco: adda.l #56,a2 dbf d0,an#ш§БA+l1 rts scroltext: lea post,a0 lea vscrol1,a1 move.l #$61c1e,a2 move #28,d0 an0: move.l #0,d1 move (a1)+,d1 add.l d1,(a0) add.l d1,(a0) add.l d1,(a0) move.l (a0),d1 clr (a0) adda.l #4,a0 clr d1 asr.l #4,d1 tst d1 beq passc move.l a2,a3 adda.l #2,a3 eor #$f000,d1 add #$1000,d1 or #$9f0,d1 move.l a2,a4 move.l a4,$dff054 move.l a3,$dff050 move d1,$dff040 move #$5b,$dff058 adda.l #$4000,a4 adda.l #$4000,a3 move.l a4,$dff054 move.l a3,$dff050 move d1,$dff04$шўk–Є|0 move #$5b,$dff058 adda.l #$4000,a4 adda.l #$4000,a3 move.l a4,$dff054 move.l a3,$dff050 move d1,$dff040 move #$5b,$dff058 passc: adda.l #56,a2 dbf d0,an0 rts defilciel: addi.l #2,ncoci cmpi.l #endcoci,ncoci bne nfici move.l #tabcoci,ncoci nfici: move.l ncoci,a0 lea ciel,a1 move #25,d0 bociel: move (a0)+,(a1) adda.l #8,a1 cmpi.l #endcoci,a0 bne nfic move.l #tabcoci,a0 nfic: dbf d0,bociel rts vscrol1: ; vitesse de chaque ligne du texte (29 l.) dc.w $b851,$bae1%шџлœFГ,$bd70,$c000,$c28f,$c51e,$c7ae,$ca3d dc.w $cccc,$cf5c,$d1eb,$d47a,$d70a,$d999,$dc28,$deb8 dc.w $e147,$e3d7,$e666,$e8f5,$eb85,$ee14,$f0a3,$f333 dc.w $f5c2,$f851,$fae1,$fd70,$ffff vscrol2: ; vitesse de chaque ligne de l'ombre (36 l.) dc.w $b851,$ba5e,$bc6a,$be76,$c083,$c28f,$c49b,$c6a7 dc.w $c8b4,$cac0,$cccc,$ced9,$d0e5,$d2f1,$d4fd,$d70a dc.w $d916,$db22,$dd2f,$df3b,$e147,$e353,$e560,$e76c dc.w $e978,$eb85,$ed91,$ef9d,$f1a9,$f3b6,$f5c2,$f7ce dc.w $f9db,$fbe7,$fdf3,$ffff scrol&ш=Љk/t: dc.w $0000,$1000,$4000,$6000,$9000,$b000,$d000,$0000 dc.w $2000,$5000,$7000,$a000,$c000,$e000,$1000,$3000 dc.w $6000,$8000,$a000,$d000,$f000,$2000,$4000,$6000 dc.w $9000,$b000,$e000,$0000,$3000 scrolo: dc.w $0000,$2000,$4000,$6000,$8000,$a000,$c000,$e000 dc.w $0000,$2000,$4000,$6000,$8000,$a000,$c000,$e000,$0000 dc.w $2000,$3000,$5000,$7000,$9000,$b000,$d000,$f000 dc.w $1000,$3000,$5000,$7000,$9000,$b000,$d000,$f000 dc.w $1000,$3000,$5000,$6000,$8000 text: dc.b ' 'шp6"SALUT VINCENT , BONJOUR A TOUS LES MEMBRES DE' dc.b ' C.B.C . ',$fe dc.b 'AUSSITOT DIT ........ AUSSITOT FAIT : VOICI LE NOUVEAU ' dc.b 'LOGO !' dc.b ' BRAVO IL EST SUPERBE !!. POUVEZ VOUS ' dc.b 'LAISSEZ LE TEXTE QUI NaAPPAIRAITRA PAS A LaECRAN S.V.P.' dc.b ' ET POUVEZ VOUS MENTIONNER MON PSEUDO : FREDDY . ',$FE dc.b 'TOUTES LES INDICATIONS SONT SUR LA LETTRE . ' dc.b 'VOICI MON NUMERO DE TELEPHONE: 30.64.69.10 ',$FE dc.b ' ENCORE MERCI ET A BIENTOT CAR JaAI UN TAS(шМm@б DaIDEES !!' DC.B ' FREDDY ....... ',$ff even codelettre: dc.l 0,0,0,0,0,0,0,0 dc.b 0,38 dc.b 0,0,0,0,0,0,44,45,0,0,43,0,37,39,36 dc.b 27,28,29,30,31,32,33,34,35,41,0,0,0,0,40,0 dc.b 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 dc.b 17,18,19,20,21,22,23,24,25,26,0,0,0,0,0,0,42 even datalettre: blk.w 3*3*29*50,$5500 dataombre: blk.w 3*36*50,$5500 dtail:dc.l 0 dproch:dc.l 0 dcarre:dc.w 0 dabsc:dc.w 0 dessine: lea 233*40+$70778,a0 move.l #$450000,dtail move #96+16,)ш†ФЏЏd0 dbfr: move.l #$a00000,dproch move #0,dcarre move.l dtail,d1 drec: bchg #0,dcarre sub.l d1,dproch bpl drec move dproch,dabsc add.l d1,dproch dbou1: tst dcarre bne dnon tst dabsc bmi dnon jsr dpoint dnon: addq #1,dabsc cmpi #320,dabsc bge dsu1 move dproch,d2 cmp dabsc,d2 bgt dbou1 bchg #0,dcarre add.l d1,dproch jmp dbou1 dsu1: subi.l #56,a0 subi.l #$8000,dtail dbf d0,dbfr rts dpoint: clr.l d3 move dabsc,d3 move.l a0,a1 asr.l #3,d3 andi.l #$fffffffe,d3 add*шЃЦœ”a.l d3,a1 move dabsc,d3 andi #$f,d3 move.l #$8000,d4 asr.l d3,d4 or (a1),d4 move d4,(a1) rts execbase=4 openlib=-408 cop: move.l execbase,a6 lea grname,a1 jsr openlib(a6) move.l d0,a5 adda.l #50,a5 move.l a5,adadcop move.l (a5),adcop move.l #moncop,(a5) move #$20,$dff096 rts fincop: move.l adadcop,a5 move.l adcop,(a5) move #$8020,$dff096 rts grname: dc.b 'graphics.library' even adadcop:dc.l 0 adcop: dc.l 0 moncop: dc.w $008e,$2e81 dc.w $0090,$33c1 dc.w $0092,$0+шя›ˆЁ034 dc.w $0094,$00cc dc.w $0100,%0101001000000000 dc.w $00e0,$0006 dc.w $00e2,$0000 dc.w $00e4,$0006 dc.w $00e6,$c000 dc.w $00e8,$0006 dc.w $00ea,$4000 dc.w $00ec,$0007 dc.w $00ee,$0000 dc.w $00f0,$0007 dc.w $00f2,$4000 dc.w $0102,$0000 dc.w $0104,$0000 dc.w $0180,$000 dc.w $0182,$0ffd dc.w $0184,$0dda dc.w $0186,$aa6 dc.w $0188,$222 dc.w $018a,$444 dc.w $018c,$555 dc.w $018e,$666 dc.w $0190,$777 dc.w $0192,$888 dc.w $0194,$999 dc.w $0196,$aaa dc.w $0198,$ш›Шlciel pasciel: ;move #$8,$dff180 jsr scroldam ;move #$80,$dff180 tst wlet beq cxv subq #1,wlet bra cxw cxv: jsr scroltext ;move #$800,$dff180 jsr scrolombre ;move #$088,$dff180 jsr affichelettre ;move #$808,$dff180 jsr afficheombre ;move #$0,$dff180 cxw: paslet: clr $61c1e clr $65c1e clr $69c1e addq.l #1,compt tstbsouris: btst #6,$bfe001 beq stbs jmp boucle0 stbs: jmp fincop wlet: dc.w 0 postext:dc.l 0 post: blk.l 29,0 poso: blk.l 36,0 comptscroll:dc.w 0 setom:dc.w 0 ш(kљrposdam:dc.l 0 vdam:dc.l 0 accdam:dc.l $2000 fc:dc.w 0 compt:dc.l 0 caldamsi: move #12*64,d4 lea $78000,a0 move #63,d3 wn1: move #25,d2 move d4,d0 wn2: move d0,d1 asr #1,d1 addi #128,d1 move.l #$4b00,d5 divu d1,d5 addi #$aa-37,d5 move.b d5,(a0)+ subi #32,d0 dbf d2,wn2 subi #$1,d4 dbf d3,wn1 rts scroldam: move posdam,d0 andi #$3f,d0 mulu #26,d0 lea $78000,a0 adda.l d0,a0 move posdam,d0 andi.l #$1fc0,d0 asr.l #3,d0 lea fcodam,a1 suba.l d0,a1 tst d0 bne wse шzзД„lea codam,a1 wse: lea licop,a2 move (a1)+,foc1 move (a1)+,foc2 adda.l #4,a1 cmpi.l #fcodam,a1 bne qzd lea codam,a1 qzd: move #11,d0 clr d1 clr fc boscda: clr d1 move.b (a0)+,d1 move.b (a0)+,d7 cmpi #$90,d1 bgt phb tst fc bne phb move #$ff,fc move.l #$ffdffffe,(a2)+ phb: move.b d1,(a2)+ move.b #$01,(a2)+ move #$ff00,(a2)+ move #$198,(a2)+ move (a1)+,(a2)+ move #$19c,(a2)+ move (a1)+,(a2)+ move #$19a,(a2)+ move (a1)+,(a2)+ move #$19e,(a2)+ move (a1)+,(a2)+ cmш hњ€0pi.l #fcodam,a1 blt wxv lea codam,a1 wxv: dbf d0,boscda move.l vdam,d0 add.l d0,posdam cmpi.l #50*4,compt blt azy move.l accdam,d0 add.l d0,vdam cmpi #8,vdam bne aze cmpi.l #50*12,compt bgt azt neg.l accdam aze: cmpi #-8,vdam bne azr neg.l accdam azr: bra azy azt: clr.l accdam azy: tst fc bne aqw move.l #$ffdffffe,(a2)+ aqw: move.l #$1b01ff00,(a2)+ move.l #$1900000,(a2)+ move.l #$1920000,(a2)+ move.l #$1940000,(a2)+ move.l #$1980000,(a2)+ move.l #$19a0000,(a2)+ш ИЙЁ move.l #$19b0000,(a2)+ move.l #$19c0000,(a2)+ move.l #$19e0000,(a2)+ move.l #$1080000,(a2)+ move.l #$1800000,(a2)+ move.l #$10a0000,(a2)+ move.l #$fffffffe,(a2)+ rts codam: dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $01f,0,$018,0,0,$02f,0,$018 dc.w $03f,0,$028,0,0,$04f,0,$028ш ъŒb dc.w $05f,0,$038,0,0,$06f,0,$038 dc.w $07f,0,$048,0,0,$08f,0,$048 dc.w $09f,0,$058,0,0,$0af,0,$058 dc.w $0bf,0,$068,0,0,$0cf,0,$068 dc.w $0df,0,$078,0,0,$0ef,0,$078 dc.w $0ff,0,$088,0,0,$0ff,0,$088 dc.w $0ef,0,$078,0,0,$0df,0,$078 dc.w $0cf,0,$068,0,0,$0bf,0,$068 dc.w $0af,0,$058,0,0,$09f,0,$058 dc.w $08f,0,$048,0,0,$07f,0,$048 dc.w $06f,0,$038,0,0,$05f,0,$038 dc.w $04f,0,$028,0,0,$03f,0,$028 dc.w $02f,0,$018,0,0,$01f,0,$018 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $10f,ш Я$дЋ0,$108,0,0,$20f,0,$108 dc.w $30f,0,$208,0,0,$40f,0,$208 dc.w $50f,0,$308,0,0,$60f,0,$308 dc.w $70f,0,$408,0,0,$80f,0,$408 dc.w $90f,0,$508,0,0,$a0f,0,$508 dc.w $b0f,0,$608,0,0,$c0f,0,$608 dc.w $d0f,0,$708,0,0,$e0f,0,$708 dc.w $f0f,0,$808,0,0,$f0f,0,$808 dc.w $e0f,0,$708,0,0,$d0f,0,$708 dc.w $c0f,0,$608,0,0,$c0f,0,$608 dc.w $a0f,0,$508,0,0,$90f,0,$508 dc.w $80f,0,$408,0,0,$70f,0,$408 dc.w $60f,0,$308,0,0,$50f,0,$308 dc.w $40f,0,$208,0,0,$30f,0,$208 dc.w $20f,0,$108,0,0,$ш ‡ †Љ10f,0,$108 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $11e,0,$008,0,0,$22d,0,$117 dc.w $33c,0,$117,0,0,$44b,0,$226 dc.w $55a,0,$226,0,0,$669,0,$335 dc.w $778,0,$335,0,0,$887,0,$444 dc.w $996,0,$444,0,0,$aa5,0,$553 dc.w $bb4,0,$553,0,0,$cc3,0,$662 dc.w $dd2,0,$662,0,0,$ee1,0,$771 dc.w $ff0,0,$771,0,0,$ff0,0,$880 dc.w $ee1,0,$771,0,0,$dd2,0,$771 dc.w $cc3,0,$662,0,0,$bb4,0,$662 dc.w $aa5,0,$553,0,0,$996,0,$553 dc.w $887,0,$444,0,0,$778,0,$444 dc.w $669,0,$335,0,0,$55a,0,$335 ш0 dc.w $44b,0,$226,0,0,$33c,0,$226 dc.w $22d,0,$117,0,0,$11e,0,$117 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $00f,0,$008,0,0,$00f,0,$008 dc.w $00f,0,$008,0,0,$00f,0,$008 fcodam: afficheombre: move setom,d0 bne afomb rts afomb: clr setom lea codelшmX ettre,a0 adda.l d3,a0 clr.l d2 move.b (a0),d2 mulu #36*6,d2 lea dataombre,a0 adda.l d2,a0 move #35,d0 move.l #$6e0e0,a1 bafl: move (a0)+,d1 or d1,(a1)+ move (a0)+,d1 or d1,(a1)+ move (a0)+,d1 or d1,(a1)+ adda.l #50,a1 cmpi #28,d0 bne nad1 adda.l #2,a1 nad1: cmpi #20,d0 bne nad2 adda.l #2,a1 nad2: cmpi #11,d0 bne nad3 adda.l #2,a1 nad3: cmpi #3,d0 bne nad4 adda.l #2,a1 nad4: dbf d0,bafl rts affichelettre: addq #1,comptscroll cmpi #11,comptscroll beq afll r шњŒ!Aфts afll: move #$ff,setom clr comptscroll let: lea text,a0 clr.l d0 adda.l postext,a0 addq.l #1,postext move.b (a0),d0 cmpi.b #$ff,d0 bne nonre clr.l postext jmp let nonre: cmpi.b #$fe,d0 bne nonrf move #4*50,wlet jmp let nonrf: lea codelettre,a0 move.l d0,d3 adda.l d3,a0 clr d2 move.b (a0),d2 mulu #29*18,d2 lea datalettre,a0 adda.l d2,a0 move #28,d0 move.l #$61c48,a1 move.l #$65c48,a2 move.l #$69c48,a3 baffl: move (a0)+,d1 or d1,(a1)+ move (a0)+,d1 or d1,( шУ7… mt_voice0: lea mt_modulate,a0 move.l mt_partnote,d0 lsl.b #7,d0 add.l #$10,d0 move.l d0,mt_partnote cmp.l #$400,d0 bne.s mt_stop clr.l mt_partnote addq.l #1,mt_partnrplay clr.l d0 move.w mt_maxpart,d0 move.l mt_partnrplay,d1 cmp.l d0,d1 bne.s mt_stop clr.l mt_partnrplay mt_stop: rts mt_playit: move.l (a0,d1),(a6) addq.l #4,d1 clr.l d2 move.b 2(a6),d2 and.b #$f0,d2 lsr.b #4,d2 tst.b d2 beq.s mt_nosamplechange clr.l d3 lea mt_samples,a1 move.l d2,d4 mulu  шщМc #4,d2 mulu #$1e,d4 move.l (a1,d2),4(a6) move.w (a3,d4),8(a6) move.w 2(a3,d4),18(a6) move.w 4(a3,d4),d3 tst.w d3 beq.s mt_displace move.l 4(a6),d2 add.l d3,d2 move.l d2,4(a6) move.l d2,10(a6) move.w 6(a3,d4),8(a6) move.w 6(a3,d4),14(a6) move.w 18(a6),8(a5) bra.s mt_nosamplechange mt_displace: move.l 4(a6),d2 add.l d3,d2 move.l d2,10(a6) move.w 6(a3,d4),14(a6) move.w 18(a6),8(a5) mt_nosamplechange: tst.w (a6) beq.s mt_retrout move.w (a6),16(a6) move.w 20(a6),$d шuitff096 move.l 4(a6),(a5) move.w 8(a6),4(a5) move.w (a6),6(a5) move.w 20(a6),d0 or.w d0,mt_dmacon mt_retrout: move.w 20(a6),d0 lsl.w #4,d0 add.w 20(a6),d0 move.w d0,$dff09e tst.w (a6) beq.s mt_nonewper move.w (a6),22(a6) mt_nonewper: move.b 2(a6),d0 and.b #$0f,d0 cmp.b #14,d0 beq.s mt_zx1 cmp.b #15,d0 bne.s mt_noset move.w 2(a6),d0 and.l #$f,d0 move.l d0,mt_tempo rts mt_zx1: move.w 2(a6),24(a6) rts mt_noset: tst.b 3(a6) bne.s mt_noclr clr.w 24(a6) mt_noclr: cmp.b #3,d0 beq.s шŒљЎzmt_modvol cmp.b #6,d0 beq.s mt_modvol cmp.b #9,d0 beq.s mt_modvol cmp.b #4,d0 beq.s mt_modper cmp.b #7,d0 beq.s mt_modper cmp.b #10,d0 beq.s mt_modper cmp.b #5,d0 beq.s mt_modvolper cmp.b #8,d0 beq.s mt_modvolper cmp.b #11,d0 beq.s mt_modvolper cmp.b #12,d0 bne.s mt_nochnge move.b 3(a6),8(a5) mt_nochnge: rts mt_modvol: move.w 20(a6),d0 bra.s mt_push mt_modper: move.w 20(a6),d0 lsl.w #4,d0 bra.s mt_push mt_modvolper: move.w 20(a6),d0 lsl.w #4,d0 add.w 20(a6),d0 mt_push: add.w #$80ш# T˜00,d0 move.w d0,$dff09e rts mt_aud1temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0001,$0000,$0000 mt_aud2temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0002,$0000,$0000 mt_aud3temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0004,$0000,$0000 mt_aud4temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0008,$0000,$0000 mt_partnote: dc.l 0 mt_partnrplay: dc.l 0 mt_counter: ш щ•Vdc.l 0 mt_tempo: dc.l 6 mt_partpoint: dc.l 0 mt_samples: dc.w $0000,$0000 mt_sample1: dc.l 0 mt_sample2: dc.l 0 mt_sample3: dc.l 0 mt_sample4: dc.l 0 mt_sample5: dc.l 0 mt_sample6: dc.l 0 mt_sample7: dc.l 0 mt_sample8: dc.l 0 mt_sample9: dc.l 0 mt_sample10: dc.l 0 mt_sample11: dc.l 0 mt_sample12: dc.l 0 mt_sample13: dc.l 0 mt_sample14: dc.l 0 mt_sample15: dc.l 0 mt_maxpart: dc.w $0000 mt_kn1: dc.w $0000 mt_dmacon: dc.w $0000 mt_modulate: dc.w $0c39,$0039,$00bf,$ec01,$6630,$0839,$000ш^–Їi7,$00bf dc.w $e001,$6626,$2c79,$0000,$0004,$43fa,$0020,$4eae dc.w $fe68,$2c40,$4280,$41fa,$0026,$223c,$0000,$0032 dc.w $4eae,$ffa6,$60ee,$0000,$0000,$4e75,$696e,$7475 dc.w $6974,$696f,$6e2e,$6c69,$6272,$6172,$7900,$0104 dc.w $1753,$6f75,$6e64,$5472,$6163,$6b65,$7220,$5632 dc.w $0063,$00f0,$20a9,$2054,$6865,$204a,$756e,$676c dc.w $6520,$436f,$6d6d,$616e,$6400,$0000 mt_arpeggio: dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c dc.w $023a,$021a,$01fc,$01e0,$01c5,$01ac,$0194,$017d dc.w $0шv,ТХ168,$0153,$0140,$012e,$011d,$010d,$00fe,$00f0 dc.w $00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097 dc.w $008f,$0087,$007f,$0078,$0071,$0000,$0000,$0000 ; ************** ; * 50 lettres * ; ************** ; 3 mots bitplan 0 \ ; 3 mots bitplan 1 |=> ligne 0 ; 3 mots bitplan 2 / run: move.l $4,a6 jsr -132(a6) move #$ffff,d0 ; $16c lignes lea $60000,a0 aa: move.b #0,(a0)+ dbf d0,aa move #$3fff,d0 ; $16c lignes lea $70000,a0 ac: move.b #0,(a0)+ dbf d0,ac move #$3fff,d0 ; $16c lшыd§ignes lea $74000,a0 ae: move.b #$ff,(a0)+ dbf d0,ae jsr dessine move #$8400,$dff096 move.l #$ffffffff,$dff044 move #0,$dff042 move #28,d0 lea datalettre,a0 lea scrolt,a1 decat: move.l a0,$dff050 move.l a0,$dff054 move.w (a1)+,d1 ori #$9f0,d1 move d1,$dff040 move #28*18,$dff064 move #28*18,$dff066 move #50*$40+9,$dff058 adda.l #18,a0 dbf d0,decat move #35,d0 lea dataombre,a0 lea scrolo,a1 decao: move.l a0,$dff050 move.l a0,$dff054 move (a1)+,d1 ori #$9f0,d1 mшx О^ove d1,$dff040 move #35*6,$dff064 move #35*6,$dff066 move #50*$40+3,$dff058 adda.l #6,a0 dbf d0,decao move.l #0,$dff064 move.l #$7fffffff,$dff044 jsr caldamsi jsr defilciel lea dmon1,a0 move.l #40*30+$6000e,a1 move #59,d0 bb01: move #5,d1 bb02: move (a0)+,(a1)+ dbf d1,bb02 adda.l #40-12,a1 dbf d0,bb01 move.l #40*30+$6c00e,a1 move #59,d0 bb11: move #5,d1 bb12: move (a0)+,(a1)+ dbf d1,bb12 adda.l #40-12,a1 dbf d0,bb11 move.l #40*30+$6400e,a1 move #59,d0 bb21: movш$v_#e #5,d1 bb22: move (a0)+,(a1)+ dbf d1,bb22 adda.l #40-12,a1 dbf d0,bb21 move.l #40*30+$7000e,a1 move #59,d0 bb31: move #5,d1 bb32: move (a0)+,(a1)+ dbf d1,bb32 adda.l #40-12,a1 dbf d0,bb31 move.l #40*30+$7400e,a1 move #59,d0 bb41: move #5,d1 bb42: move (a0)+,(a1)+ dbf d1,bb42 adda.l #40-12,a1 dbf d0,bb41 jmp music suite: jsr cop boucle0:move.l $dff004,d0 andi.l #$1ff00,d0 cmpi.l #$2000,d0 bne boucle0 ;move #$444,$dff180 cmpi.l #50*30,compt blt pasciel jsr defi‹шqЁf.љўџќќўўћ§їљ љџўџўџџћџќћў§ љ§ћџї њ љїѕ ќ§ќ ј њќ љ њ ј і љ њџќ љ іі §џџ§џџњќџ§ќќ§џ§ј ѕ§ўњ ќќўџўї їњ љњ і љ§њ ќџљ§ўўџќј§§џїђ љ јќўџџџ§ќјќї ї ћўј јџћљњќ§§§ўџќ њ ї§џў§џџџљ їўџџќћќљџџќўћ§џџ§§ўћћ§§ћќ§її љ§џ§§ўџ§љќћћќўџ§ўџ§ўџљџќџ§ќџ§§§ћћћљџќўњ§‹0›‰Іџўџџўџ§ќўќџќіыјљ іќњ§ўќќ ёђёіј§ј ќјјќ ёыѓљщэјќџј љџїіџўў§џљёђъээ і яѓяњќј ћђя љѓђ џј љџ ѕ ёьќѕ јџџ§яѓќџњі љџћњќ§ ћћњѕяяюѕ §ќ ёюёё ѕ ыр№њ ії ј§ќќќўџќѕѓ ћќљ§§ њќў§ ѕџ§ўј ћќђ јяяюяј іњё ўї љџџ ѓѕ їќњ ј§ ѕ їљќјїъьѕ§§џћ іј њ§ѕ і јї њџћїћ§§ћџљ ћљљћњџџџїія№ љ§ўњё љшЖXEymt_music movem.l (a7)+,d0-d7/a0-a6 dc.w $4ef9 mt_oldirq: dc.l 0 mt_music: addq.l #1,mt_counter move.l mt_tempo,d0 cmp.l mt_counter,d0 bne.s mt_notsix clr.l mt_counter bra.L mt_rout2 mt_notsix: lea mt_aud1temp,a6 tst.b 3(a6) beq.s mt_arp1 move.l #$dff0a0,a5 bsr.s mt_arprout mt_arp1: lea mt_aud2temp,a6 tst.b 3(a6) beq.s mt_arp2 move.l #$dff0b0,a5 bsr.s mt_arprout mt_arp2: lea mt_aud3temp,a6 tst.b 3(a6) beq.s mt_arp3 move.l #$dff0c0,a5 bsr.s mt_arprout mш!Йяt_arp3: lea mt_aud4temp,a6 tst.b 3(a6) beq.s mt_arp4 move.l #$dff0d0,a5 bsr.s mt_arprout mt_arp4: bra.L mt_stop mt_arprout: tst.w 24(a6) beq.s mt_noslide clr.w d0 move.b 25(a6),d0 lsr.b #4,d0 tst.b d0 beq.s mt_voldwn2 bsr.L mt_pushvol1 bra.s mt_noslide mt_voldwn2: clr.w d0 move.b 25(a6),d0 bsr.L mt_pushvol2 mt_noslide: move.b 2(a6),d0 and.b #$0f,d0 tst.b d0 beq.L mt_arpegrt cmp.b #3,d0 beq.L mt_arpegrt cmp.b #4,d0 beq.L mt_arpegrt cmp.b #5,d0 beq.L mt_arpegrt cmp.b #1,d0 bш QЉзЅeq.s mt_portup cmp.b #6,d0 beq.s mt_portup cmp.b #7,d0 beq.s mt_portup cmp.b #8,d0 beq.s mt_portup cmp.b #2,d0 beq.s mt_portdwn cmp.b #9,d0 beq.s mt_portdwn cmp.b #10,d0 beq.s mt_portdwn cmp.b #11,d0 beq.s mt_portdwn cmp.b #13,d0 beq.s mt_volup rts mt_portup: clr.w d0 move.b 3(a6),d0 sub.w d0,22(a6) cmp.w #$71,22(a6) bpl.s mt_ok1 move.w #$71,22(a6) mt_ok1: move.w 22(a6),6(a5) rts mt_portdwn: clr.w d0 move.b 3(a6),d0 add.w d0,22(a6) cmp.w #$358,22(a6) bmi.s mt_ok2 move.w #$358,22(a6ш!7Ѓhч) mt_ok2: move.w 22(a6),6(a5) rts mt_volup: clr.w d0 move.b 3(a6),d0 lsr.b #4,d0 tst.b d0 beq.s mt_voldwn mt_pushvol1: add.w d0,$12(a6) cmp.w #$40,$12(a6) bmi.s mt_ok3 move.w #$40,$12(a6) mt_ok3: move.w $12(a6),8(a5) rts mt_voldwn: clr.w d0 move.b 3(a6),d0 mt_pushvol2: and.b #$0f,d0 sub.w d0,$12(a6) bpl.s mt_ok4 clr.w $12(a6) mt_ok4: move.w $12(a6),8(a5) rts mt_arpegrt: cmp.l #1,mt_counter beq.s mt_loop2 cmp.l #2,mt_counter beq.s mt_loop3 cmp.l #3,mt_counter beq.s mt_loop4 cш"oˆ>mp.l #4,mt_counter beq.s mt_loop2 cmp.l #5,mt_counter beq.s mt_loop3 rts mt_loop2: clr.l d0 move.b 3(a6),d0 lsr.b #4,d0 bra.s mt_cont mt_loop3: clr.l d0 move.b 3(a6),d0 and.b #$0f,d0 bra.s mt_cont mt_loop4: move.w 16(a6),d2 bra.s mt_endpart mt_cont: lsl.w #1,d0 clr.l d1 move.w 16(a6),d1 lea mt_arpeggio,a0 mt_loop5: move.w (a0,d0),d2 cmp.w (a0),d1 beq.s mt_endpart addq.l #2,a0 bra.s mt_loop5 mt_endpart: move.w d2,6(a5) rts mt_rout2: lea mt_sampleinfo,a0  ш#jЁ%)move.l a0,a3 add.l #$0c,a3 move.l a0,a2 add.l #$1d8,a2 add.l #$258,a0 move.l mt_partnrplay,d0 clr.l d1 move.b (a2,d0),d1 mulu #$0400,d1 add.l mt_partnote,d1 move.l d1,mt_partpoint clr.w mt_dmacon move.l #$dff0a0,a5 lea mt_aud1temp,a6 bsr.L mt_playit move.l #$dff0b0,a5 lea mt_aud2temp,a6 bsr.L mt_playit move.l #$dff0c0,a5 lea mt_aud3temp,a6 bsr.L mt_playit move.l #$dff0d0,a5 lea mt_aud4temp,a6 bsr.L mt_playit move.l #mt_speed,d0 mt_rls: dbf d0,mt_rls mo ш”аоKve.l #$8000,d0 add.w mt_dmacon,d0 move.w d0,$dff096 move.l #mt_aud4temp,a6 cmp.w #1,14(a6) bne.s mt_voice3 move.l 10(a6),$dff0d0 move.w #1,$dff0d4 mt_voice3: move.l #mt_aud3temp,a6 cmp.w #1,14(a6) bne.s mt_voice2 move.l 10(a6),$dff0c0 move.w #1,$dff0c4 mt_voice2: move.l #mt_aud2temp,a6 cmp.w #1,14(a6) bne.s mt_voice1 move.l 10(a6),$dff0b0 move.w #1,$dff0b4 mt_voice1: move.l #mt_aud1temp,a6 cmp.w #1,14(a6) bne.s mt_voice0 move.l 10(a6),$dff0a0 move.w #1,$dff0a4ш%еB[ move.l $00006c,mt_oldirq move.l #mt_newirq,$00006c move.w #$c000,$dff09a mt_wait: jsr suite move.w #$000f,$dff096 move.w #$4000,$dff09a move.l mt_oldirq,$00006c move.w #$c000,$dff09a clr.l d0 rts mt_init: move.l #s1,mt_sample1 move.l #s2,mt_sample2 move.l #s3,mt_sample3 move.l #s4,mt_sample4 move.l #s5,mt_sample5 move.l #s6,mt_sample6 move.l #s7,mt_sample7 move.l #s8,mt_sample8 move.l #s9,mt_sample9 move.l #sa,mt_sample10 move.l #sb,mt_sample11 move.l #sc,mt_sшkБ'нample12 move.l #sd,mt_sample13 move.l #se,mt_sample14 move.l #sf,mt_sample15 move.l #mt_sample1,a0 clr.l d0 mt_clear: move.l (a0,d0),a1 clr.l (a1) addq #4,d0 cmp.l #$3c,d0 bne.s mt_clear move.w #0,$dff0a8 move.w #0,$dff0b8 move.w #0,$dff0c8 move.w #0,$dff0d8 eor.w #$c000,mt_voice0+12 clr.l mt_partnrplay clr.l mt_partnote clr.l mt_partpoint move.b mt_sampleinfo+$1d6,mt_maxpart+1 move.b mt_sampleinfo+$1d7,mt_kn1+1 rts mt_newirq: movem.l d0-d7/a0-a6,-(a7) bsr ‰ш'iцƒџџ№џџ№џџ№?џџ№?џџ№?џџ№?џџ№?џџј?џџјџџ№џџ№?џџ№џџРџџ€џџ€џџРџџРџџРџџРџџ€џџјјџџџџРџџрџџрџџрџџрџџрџџрџџрќрј?№ј?№ј?№ј№џџ№?џџ№?џџ№?џџ№?џџ№?џџ№?џџј?џџјџџ№џџ№?џџ№џџРџџ€џџ€џџРџџРџџРџџРџџРџџРџ€џРџ€џ€џўџўўќќјјј?ј?ј№№џрџрџрџРџРџ€‰ш(ŒУЩџ€џ€џќџўџўџџџџџџџџџџўџ€ќ€ќ€ўџ€џџ€џџ€џџРџџРџџРџџрџџрџџрќрј?№ј?№ј?№ј№џџ№?џџ№?џџ№?џџ№?џџ№?џџ№?џџј?џџјџџ№џџ№?џџ№џџРџџ€џџ€џџРџџРџџРџџРџџРќРј?Рј?РќРџџрџџрџџрџџрџџрџџрџџрџџрџџр?№?№?№џџ№џџ№џџ№?џџ№?џџ№?џџ№?џџ№?џџј?џџјџџ№џџ№?џџ№џџРџџ€џџ€џџРџџРџџРџ‰ш) PЫџРџџРџџРќРј?Рј?Рј?рј?рј?рј?рј?рј?рј?рј?рј?рј?№ј?№ј№џџ№џџ№?џџ№?џџ№?џџ№?џџ№?џџ№?џџј?џџјџџ№џџ№?џџ№џџРр№јјјјјј?ј?ј№№рр№№№№№№№№№№№№№№‰ш*M6д№№№Рр№јјјјј?ј?ј?ј?ј№р€€Р?Р?р?рџРџ€џ€џџўўќј?ј№№џ№џрџРџРџ€џџўќќќј№рррРџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџўџј№№№№№№рр‰ш+}З†№јјјјјј?ј?ј№№рРр№№№№№№рр№јјјјјјјј№№рРррр№№№№№ррР€‰ш,FPŒујјќќќќўўўўўўўќќј№№р€ќќ?ў?ў?ќќџ№џРџРџ€џџџўўўџџџџџ€џ€џРџРџјџўџџџџџџџ€џ€?џ€?џ?џџќРрџјџјќќў‰ш-с&pўўџџџџ€џ€џ€џ€џРџРџ€џ€џ€џ€џџ?џџџџџџўџўџќџќџјџ№џ№џрџ€€‰ш.џќјA€€€€‰@яІ€џРџ€џ€џ€џ€џџ?џџџџџџўџўџќџќџјџ№џ№џрџ€€‹ш0ЯmWа+о§ћѓѕћщ и4г*м)цњї г6б§ёФKТCЏZН у#цњќіјж8Я§а@Ь!ѓџ№ш!ы р)г%хћщ'внѕћьњц § ёї юёѕ у!шъ № љ ц,з я ѓќд;Ш № ё"мўё'Ъ>а%т'м!що+у ђ№й-у§ љп,рќ ёѕіќё!уљ §џ эшф!сўёц%ъ ќђюш'оям)р§њяяяй0мы+ЧCвюхщ№ѓј ээ х'пћїхёњю§ѓ п$п эќюфф!щўњщј § ээс(н%е1мьщыњѕщ№ћн+г(уљќљяђ§ќ яф!х№щѕ яї х$й §іњюъшф"н+Я7Ы,фћѕб0м'н"щцшђўќ џїъё §ё"з0з"№іэѓљс'п"уўїяэёў ‹шˆЉtcјўђј ю№ љљіѓ ў§ющъё јђќќџќіыјљ іќњ§ўќќ ёђёіј§ј ќјјќ ёыѓљщэјќџј љџїіџўў§џљёђъээ і яѓяњќј ћђя љѓђ џј љџ ѕ ёьќѕ јџџ§яѓќџњі љџћњќ§ ћћњѕяяюѕ §ќ ёюёё ѕ ыр№њ ії ј§ќќќўџќѕѓ ћќљ§§ њќў§ ѕџ§ўј ћќђ јяяюяј іњё ўї љџџ ѓѕ їќњ ј§ ѕ їљќјїъьѕ§§џћ іј њ§ѕ і јї њџћїћ§§ћџљ ћљљћњџџџїія№ љ§ўњё љ‰ш2~ m№рррррџрџрќўџџџ€џџРџџРџџрџџ№џџ№ў?№ў№ќрј№џ№ѓџјѓџјћџјџџјџџјџџјџџјџџјџџќџџќџџјџџјџџ№џџ№џџ№џџрџџРџџ€џџџџў№Рр?р€р€рРрРрРрРрР?рР?рР?џџР?џџР?џџр?џџр?џџр?џџр?џџрџџрџџрџџрџџ№р?№р?№р?№р?№џр?№џр?№џр?јџР?јџР?јџР?јџ€јџ€№џ€№рџўџ‰ш3сЈSцџџџџџџџџџџџџќррр?р?р?р?р?р?№?№?№?№?№?№?№џўџџ€џџРџџРџџРџџрџџрџџрџџрџџрџџрџџРџџџџџџ€џџ€џџ€џџ€џџ€џџ€ўўўўџџџџџyџ§џџџџџџџџџџџџџџџџџџџ€џџџџџџџўџўџќџќџ№?рР<Р~рўсќуќчјя№џр?џр?џр?џ№‰ш4ІзСЁ?џ№?џј?џј?џќ?џќџўчўчўчџуџуџуџ€уџ€сџ€џсџРџсџРџРџрџРџрџРџрџРџ№џР№џ€№џ€№€?№>ррр№№№№№№№№№№№№№№?№?№?№?№?№?№?№?џџ€?џџрџџрџџ№џџ№џџ№џџ№џџјџџјџџ№џџ№џџџ№џџџР№€№€№?Рј?Рј?рќрўџрџџрџџрџџрџџрџџрџџрџџ№џџ№џџ№џџ№їп№?ѓŸ№?ѓ№‰ш5-8d?№№?№ј?№ј?№ј?№ј?№ј№ј№ј№јрјрќрќ?Рј?РјРјр№€№?€№?Р№?Рј?рќ?рў?рџ?рџПрџџрџџрџџрџџрџџ№џџ№џџ№џџ№џџ№?џџ№?џџ№?џџ№?џџј?їџј?ѓџј?ёџј?№џј№ј№?ј№?јрјрќрќ?Рј?РјРјр№?ќџўџџџџ€џџРџџрџџрќ?рј?№№№№№№№№№№ј№ј№ј№ј?№ј?№ј?јј?јјј?јџџјџџјџџ№џџ№џџрџџрџ‰ш6ьл‡УџрџџРџџ€џџџџ?ќрџўџџ€џџРџџРџџрџџрџџ№џџ№№№№№№№џџ№џџ№џџ№џџ№џџ№џџрџџР?џџР?џџ€?џў?џў?№?№?№?№№№№ррр?Р?РР€?рџќџќџўџџџџ€џџРџџРјР?№р?р?р?р?р?р?р?р?№?р?№?рџ№?сџ№уџ№уџ№уџ№ѓџ№?ѓџ№?џџ№?џџ№?џџр?џџ№џџ№џџ№џџјџџќџџќџџќџџќџјСрџќџџџџ€‰ ш7В$нџџРџџрџџрџџрџџрџџрџџрџџр?џџр?џџр?џџр?џџр?џџР?џџ€?џџ€?џџџџчџчџуџуџсџ€сџ€сџ€џрџРџрџрџрџрџРџрџР№џР№џ€№€№>?рќџўџџџџРџџРџџРџџрџџРџџ€џџ€џџџќџўџџ€џџРџџрџџрџџ№џџ№џџ№џџ№џџ№џџјџџјџџјџџј?џџ№џџ№џџ№џџ№џџ№џџрџџРџџ€џўјџџ€џџ€џџРџџРџџрџџрџџ€џџ€№№№№‰ ш8 Эя№№№№№№№№јјјјјјјјјј?ј?ј№№№Рр€№€№?Р№?Р№?р№?р№?р№?р№?р№?р№?р№р№р№№№№№№№№№№№№ј?№?ј?№?ј?№?џџ№?џџ№?џџ№?џџ№џџрџџрџџрџџрџџрџџРџџџџџў?№№€јРјрјрјрќ?Рќ?РўРўРўРўРўџ€џџ€џџ€џџ€џџ€џџџџџџџўџўџ‰ ш9Т ўџўџўўўў?ќ?ќ?ќ?ј?ј№№р€№€№Р№р№р№р№рј?рј?рј?рј?рќ?рќ?рќПр§ПрџџРџџРџџРџџРџџРџџРџџРџџРџџРџџРџџРџџРџџРџџ€џџ€џџ€џџ€џџ€ўџ€ўџ€ќpр€№€№Рј?Рќ?рќ?рўџРўџ€џџ€џџџџџўў?ќ?ј?јќќџўџџџџџџџџ€џџРџџрўџрќрќрј?рј?№№№‰ ш:ц4FѓрррРрРР€рР№р№р№?рј?рќрўџРџџ€џџ€џџ€џџџўџўџќќј№№џ№џрџрџрџРџ€џ€џўќќ?ќ?ј№№№рРџџџџџџ€?џџ€?џџ€?џџџўџўўќ?ќј№џ№џрџрџрџРџ€џ€џџџ?џџ€?џџрџџрџџ№џџ№џџџ№џџџјџџџјџџџјџџџ№џџ№џџрџџРррџ№џ№‰ ш;ŠХŒuџ№џ№џ№џ№џ№џ№№№№№№№№№№№јјјќџџџџ€џџ€џџ€џџРџџРџџРџџРџџРџџРџџ€џўџџ€џџ€џџРџџРџџРџџРџџРџџР?Р?РџџРџџрџџрџџрџџрџџрџџрџџРџџРџџ€јјјџџ€џџр?џџр?џџ№?џџ№?џџ№?џџ№?џџј?џџјџџ№џџ№?џџ№џџРџџџџџџ€џџ€џџРџџРџџРџџРРРџџРџџРџџРџ‰ш&Pш Аџрџџрџџрџџрџџрџџрџџр?р?№?№џџ№џџ№џџ№?џџ№?џџ№?џџ№?џџ№?џџј?џџјџџ№џџ№?џџ№џџР№№јјјјјјјјјљјћќћўћўћўџўџўџџ€џџрџџрџџрџџ№џџ№џџ№?џџ№џџрџџрџџрџџРџџџџўќџџ€џџ€џџРџџРџџРџџРџџ€џџјјџџџџРџџрџџрџџрџџрџџрџџрџџрџџр?№?№?№„Еш=Ъt6@     KLNOPRSTUWXY[\]^`abcefghiklmnoprstuvwxyz{|}~€‚ƒƒ„…†‡ˆˆ‰ŠŠ‹ŒŒŽŽ‘‘’’“““”””•••••–––––––––––––•••••””””““’’’‘‘ŽŒŒ‹Š‰‰ˆ‡††…„„Жш>ътƒ‚€~}|{zyxvutsrqponlkjihfedcb`_^][ZYWVUTRQPNMLJIHGEDCA@?=<;:87653210.-,+*)'&%$#"!    !"#$%'()*+,./01345689:;=>?@BCDFGHJџџPPPPPPPPPPOOOO„Зш?ђKщџOONNNNNMMMMLLLKKKJJJIIHHHGGFFEEDDCCBBAA@@?>>==<<;::988766554332100/..-,,+**)(''&%%$##"!!   „Иш@LQ O !!"##$%%&''()**+,,-../001223445667889::;;<==>>?@@AABBCCDDEEFFGGHHHIIJJJKKKLLLMMMMNNNNNOOOOOOOPPPPPPPPџџ…а …а …а …аР…PР…PР…PР„ЙшAj(„œ…PР…PР…PР…PРџџРа@а@а@џќџџќџќџџ№џџўџџўџќџўџџўџџўџўџџўџџўџџўџџўџџќџџўџџўџџўџўџџўџџўџўџџƒўџўџўџўџўџџџџўўўџќџџЧўџџўџџќџџўџџџџџўџџўўўџџјџџяўџџўџџўџ„КшB‘лn_ўџўџџџџџўџџўўџўџџќџўџџўџўџўџўџўџџџўџўўџўџўџўџ}ўџўџџўџџўџџќџџўџџџўџўџџўџџўџўџџўџ9ўџўџџќџќџџ№џџўџџќџўџџўџќџўџџўџўџСўџќџџќџќџџќџўџџўџўџўџўџўџўџџўџсўџџўџџўџџўџџўџџўџџўџўџўџ9ўƒќџўџџјџёўџўџўџўџўџўџўџўџ}ў?Чјџџў?Рџyўџўџџўџўџџќџџќўџўџўџџўџ№џќџџ=ўџўџџќџўџџ№џўўџў?ƒјџяў?џјўќџўџўџџџјўўџўЧрџЧўЧќў№џўџџўџџћўџќџџўџџџўџ€џƒўџўў?џўџўџќџљўџўџ„ЛшCЊЪѕєџќџџќўџўўўџџџўџќўџџќџџќџўџџўџќџџўџќџќ<џџўўџџўџџўџўџџўџџўџџјџџўџџў<џўўўўџџўџџрџўџўxџ=ўўџўџќџџўџџќџџќ?€џќџџўџyўўџџќџўўџџўџџўџџўџўџёўўџўўўџўўџўў<8џџўџ€џџўџџўўџџўџџўџџџўџџў<|џќџ€џџўџџќўџџќџќџџќџќx8џџќўџўџџўўўџџ„МшDыDќ…ўўўќџќўќџРќўќџРўќќўўџџќўџўџ@@@@„НŸв"?@@@@@@@@@@@џџџўўўџќџџЧўџџўџџќџџўџџџџџўџџўўўџџјџџяўџџўџџўџ‰шFTэEТўџќџќџрџјџќџџџџ€џџ€?џџР?їџр?ѓџ№?ѓџ№?№џј?џџј?џџј?џџјџџјџџјџџјџџ№џџ№џџрџџРџџРџџџ€џџўј?ќџўџџџџ€џџ€џџРџџРўРќ?РјР№Р№№№№?№?№Р?№Р?јрјрј№ў?№џџ№џџ№џџ№џџрџџрџџрџџрџџРџџ€џџџџўјџ€џРџ№џјџќџўџџџџ€џџ€ёџРёџР№џр№?р№?№№№№№№№№№?№?№‰ш1AУЭЧ?№№?ёџ№?ёџј?їџ№?џџ№?џџ№?џџрџџРџџ€џџРџџ€џџџќџјџјџџРџўџџ€џџ€џџРџџРџџрџџРџџ€џџ€№№џРџ№џјџќџќџќџјџј?џ№?џр?№?№?№?џџ€?џџр?џџ№џџ№џџјџџјџџјџџќџџјџџјџџјџџџ№џџџРџџ€џџ€џџРџџРџџрџџРџџ€џџ€№№џРџ№џјџќџќџќџјџј?џ№?џр?№?№?№?№?№?№№№„ЊшHŸŸš„ЋшIvџ7˜          „ЌшJnп7–            „­шKnп7”            „ЎшLbЧ'’             „ЏшMnп7            „АшNnп7Ž            „БшO†їŒ            „ВшPЯ>wŠ            „ГшQЫ.Wˆ             „Дш<Я>wœ            ~шS ШЩ!a9a9, $a9a9, $aaaa, $aaaa, $aaaa, $aaaa, $aaaa dc.w $aaaa, $aaa9, $a9a9, $a9a8, $a8a8, $a7a7, $a7a6, $a6a5 dc.w $a5a4, $a4a3, $a3a2, $a1a1, $a09f, $9f9e, $9d9c, $9b9b dc.w $9a99, $9897, $9695, $9493, $9291, $908f, $8e8d, $8c8a dc.w $8988, $8786, $8583, $8281, $807e, $7d7c, $7a79, $7876 dc.w $7573, $7271, $6f6e, $6c6b, $6a68, $6765, $6462, $615f dc.w $5e5c, $5b59, $5856, $5554, $5251, $4f4e, $4c4b, $4948 dc.w $4645, $4342, $403f, $3e3c, $3b39, $3837, $3534, $3231 dc.w $302e, $~шT2п=№2d2c, $2b29, $2827, $2524, $2322, $2120, $1e1d dc.w $1c1b, $1a19, $1817, $1615, $1413, $1211, $100f, $0f0e dc.w $0d0c, $0b0b, $0a09, $0908, $0707, $0606, $0505, $0404 dc.w $0303, $0302, $0202, $0101, $0101, $0000, $0000, $0000 dc.w $0000, $0000, $0000, $0001, $0101, $0102, $0202, $0303 dc.w $0304, $0405, $0506, $0607, $0708, $0909, $0a0b, $0b0c dc.w $0d0e, $0f0f, $1011, $1213, $1415, $1617, $1819, $1a1b dc.w $1c1d, $1e20, $2122, $2324, $2527, $2829, $2a2c, $2d2e dc.w $3031, $~шUђRIТ3234, $3537, $3839, $3b3c, $3e3f, $4042, $4345 dc.w $4648, $494b, $4c4e, $4f51, $5254 DAT4: DC.L $0006c04e MIST6: DC.L $0006c026 COP3: dc.w $0a00, $0c00, $0d00, $0e00, $0f00, $0f10, $0f20 dc.w $0f30, $0f40, $0f50, $0f60, $0f70, $0f80, $0f90, $0fa0 dc.w $0fb0, $0fc0, $0fd0, $0fe0, $0ff0, $0ef0, $0df0, $0cf0 dc.w $0bf0, $0af0, $09f0, $08f0, $07f0, $06f0, $05f0, $04f0 dc.w $03f0, $02f0, $01f0, $00f0, $00f1, $00f2, $00f3, $00f4 dc.w $00f5, $00f6, $00f7, $00f8, $00f9, $00fa, ~шVkmѕX$00fb, $00fc dc.w $00fd, $00fe, $00ff, $00ef, $00df, $00cf, $00bf, $00af dc.w $009f, $008f, $007f, $006f, $005f, $004f, $003f, $002f dc.w $001f, $000f, $010f, $020f, $030f, $040f, $050f, $060f dc.w $070f, $080f, $090f, $0a0f, $0b0f, $0c0f, $0d0f, $0e0f dc.w $0f0f, $0f0e, $0f0d, $0f0c, $0f0b, $0f0a, $0f09, $0f08 dc.w $0f07, $0f06, $0f05, $0f04, $0f03 DAT5: dc.w $0000, $0000, $0000 dc.w $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000 dc.w $0000, $0000, $0000, $0000, $0~жЗNЬ000, $0000, $0000, $0000 dc.w $0000, $0000, $0000, $0000, $0000, $0000, $0000 ,$0000 dc.w $0000, $0000, $0000, $0000, $0000, $0000, $0001, $0002 dc.w $0003, $0004, $0005, $0006, $0007, $0008, $0009, $000a dc.w $000b, $000c, $000c, $000c, $000c, $000c, $000c, $000c dc.w $000c, $000c, $000c, $000c, $000c, $000c, $000c, $000b dc.w $000a, $0009, $0008, $0007, $0006, $0005, $0004, $0003 dc.w $0002, $0001 COP1: BLK.b $800 COP1END: SCHROTT: dc.l $00000000 f8, $00f9, $00fa, „ЄшX——ї„ЅшYŸŸїŽ„ІшZŸŸїŒ„Їш[ŸŸЯŠ„Јш\ŸŸ—ˆ„ЉшG——œ~ш^iZИ) clr.w 138(A6) MAUSL: btst #6,$bfe001 beq.s BRANCH1 btst #2,22(A6) bne.s MAUSL move.w #$6030,$05f094 BRANCH1: bsr.l BRANCH2 move.l DAT7,$006c move.w #$e03c,154(A6) move.w #$83f0,150(A6) LAB2: lea SCHROTT(PC),A0 BRANCH3: clr.l (A0)+ cmpa.l #$00079000,A0 blt.s BRANCH3 moveq #$00,D0 rts DAT8: btst #4,31(A0) bne.s BRANCH14 movem.l A0-A6/D0-D7,-(A7) btst #10,22(A6) beq.s LEV4 addq.w #1,MIST2 cmpi.w #$00c8,MIST2 bne.s LEV4~ш_ёDД bsr.s BRANCH8 subq.w #1,MIST2 LEV4: bsr.l LEV5 bchg #2,MIST3 bne.s BRANCH10 bchg #3,MIST3 bne.s BRANCH10 addq.l #2,DAT6 cmpi.l #COP1,DAT6 bne.s BRANCH10 move.l #DAT5,DAT6 BRANCH10: move.l DAT6,A0 move.l MIST6,A1 move.w (A0),D0 move.w D0,(A1) movem.l (A7)+,A0-A6/D0-D7 BRANCH14: move.w #$0010,156(A6) rte BRANCH8: bsr.l BRANCH2 move.l #$00071002,80(A6) move.l #$00071000,84(A6) move.l #$e9f00000,64(A6) move.l #$ffffffff,68(A6) clr.l~ш`јIѓk 100(A6) move.w #$03d6,88(A6) LEV3: addq.b #1,DAT9 cmpi.b #$02,DAT9 beq.s BRANCH9 cmpi.b #$03,DAT9 beq.l LEV1 cmpi.b #$09,DAT9 beq.s LEV2 rts LEV2: clr.b DAT9 bsr.s BRANCH7 bra.s LEV3 BRANCH7: bsr.l BRANCH2 move.l MIST1,80(A6) move.l #$0007102a,84(A6) move.w #$09f0,64(A6) move.l #$00760028,100(A6) move.w #$03c1,88(A6) rts BRANCH9: moveq #$00,D7 move.l #MIST7,A5 adda.w DAT2,A5 addq.w #1,DAT2 move.b (A5),DAT10 beq.s LEV6 cmpi.~шaхйb #$61,DAT10 beq.s LEV7 move.b DAT10,D7 move.l D7,DAT10 rts LEV6: clr.w DAT2 bra.s BRANCH9 LEV7: clr.w MIST2 bra.s BRANCH9 LEV1: subi.l #$00000020,DAT10 move.l DAT10,D6 rol.w #1,D6 move.l #$00070078,MIST1 add.l D6,MIST1 rts BRANCH2: btst #14,2(A6) bne.s BRANCH2 rts LEV5: move.l DAT4,A0 bchg #1,MIST3 bne.s LEV8 move.l #$00074000,MIST4 move.w #$2002,(A0) bra.s ZWEIG2 LEV8: move.l #$00072000,MIST4 move.w #$4002,(A0) ZWEIG2: ~шbъЇmќbsr.s BRANCH2 move.l MIST4,84(A6) move.w #$0100,64(A6) clr.w 102(A6) move.w #$30d4,88(A6) move.l DAT3,D1 move.l #$00000014,D3 move.l #$00071000,MIST5 move.l MIST4,A1 move.l DAT3,A2 bsr.s BRANCH2 move.w #$0dfc,64(A6) move.w #$0028,102(A6) move.l #$00280028,98(A6) move.w #$8400,150(A6) LEV10: move.w #$8000,D0 moveq #$0f,D5 LEV9: addq.l #1,A2 moveq #$00,D4 move.b (A2),D4 lea $06fe00,A0 adda.w D4,A0 adda.w D4,A0 move.w (A0),D4 adda.~шcЌ^М–l D4,A1 move.l MIST5,80(A6) move.l A1,76(A6) move.l A1,84(A6) suba.l D4,A1 move.w D0,70(A6) move.w #$03c1,88(A6) ror.w #1,D0 dbf D5,LEV9 addq.l #2,MIST5 addq.l #2,A1 dbf D3,LEV10 move.w #$0400,150(A6) cmpi.l #$0006b000,D1 beq.s ZWEIG1 subq.l #1,D1 move.l D1,DAT3 rts ZWEIG1: addi.l #$00000167,D1 move.l D1,DAT3 rts LAB7: move.l #MIST8,A0 move.l #$000769ae,D1 moveq #$00,D0 moveq #$00,D2 BRANCH6: addq.w #1,D2 move.b (A0),D0 su~ шdL=bi.l #$00000020,D0 mulu #$0002,D0 addi.l #$00070078,D0 bsr.s BRANCH4 addq.l #2,D1 addq.l #1,A0 cmpi.l #$00000014,D2 beq.s BRANCH5 cmpi.l #$00000028,D2 beq.s BRANCH5 cmpi.l #$0000003c,D2 bne.s BRANCH6 rts BRANCH5: addi.l #$000003f2,D1 bra.s BRANCH6 BRANCH4: btst #14,2(A6) bne.l BRANCH7 move.l D0,80(A6) move.l D1,84(A6) move.w #$09f0,64(A6) move.l #$ffffffff,68(A6) move.l #$00760028,100(A6) move.w #$03c1,88(A6) rts LAB8: lea $~ шeьВО306c000,A0 move.l #$01800000,(A0)+ move.l #$009c8010,(A0)+ move.l #$008e2c71,(A0)+ move.l #$0090ffe0,(A0)+ move.l #$00920038,(A0)+ move.l #$009400d0,(A0)+ move.l #$00960020,(A0)+ move.l #$01000000,(A0)+ move.l #$01020000,(A0)+ move.w #$0192,(A0)+ move.l A0,MIST6 clr.w (A0)+ move.l #$4309fffe,(A0)+ move.l #$0180044f,(A0)+ move.l #$4409fffe,(A0)+ move.l #$01800000,(A0)+ move.l #$4609fffe,(A0)+ move.l #$01002600,(A0)+ move.l #$01080002,(A0)+ move.l~ шfПhй§ #$010a0002,(A0)+ move.l #$00e00007,(A0)+ move.w #$00e2,(A0)+ move.l A0,DAT4 move.w #$0002,(A0)+ move.l #$00e40007,(A0)+ move.l #$00e66000,(A0)+ move.l #$4609fffe,A1 lea COP3(PC),A2 ZWEIG3: move.l A1,(A0)+ move.w #$0182,(A0)+ move.w (A2)+,(A0)+ adda.l #$02000000,A1 cmpa.l #$fe09fffe,A1 bne.s ZWEIG3 move.l #$ff09fffe,(A0)+ move.l #$01000000,(A0)+ move.l #$ffe1fffe,(A0)+ move.l #$0209fffe,(A0)+ move.l #$0180044f,(A0)+ move.l #$0309fffe,(A0)+~ шg[%„ы move.l #$01800000,(A0)+ move.l #$fffffffe,(A0)+ rts MIST8: DC.B " THE ACCUMULATORS " DC.B " PRESENT " DC.B "NEW ZEALAND STORY+ ",00 MIST7: DC.B "* THE PANTIES * " DC.B $61 DC.B " ARE BACK WITH A NEW RELEASE CALLED " DC.B " NEW STUFF CONTACT THE PANTIES " DC.B " FOR HOTTEST SOURCES ...... PLK 056071 B " DC.B " D-8100 GARMISCH-PART. ",00 DAT3: DC.L $0006b043 DAT6: DC.L $00060aac MIST2: dc.w $00c7 MIST5: DC.L $00071006 MIST3: DC.W $0c~ шRMœАЁ00 MIST4: DC.L $00072000 MIST1: DC.L $000700de DAT2: dc.l $021d0600 DAT9: dc.b $06 GFXNAME: dc.b "graphics.library",0 DAT10: DC.L $00000033 DAT7: DC.L $00fc0cd8 COP2: dc.w $5556, $5859, $5b5c, $5e5f, $6162, $6465, $6768 dc.w $6a6b, $6c6e, $6f71, $7273, $7576, $7879, $7a7c, $7d7e dc.w $8081, $8283, $8586, $8788, $898a, $8c8d, $8e8f, $9091 dc.w $9293, $9495, $9697, $9899, $9a9b, $9b9c, $9d9e, $9f9f dc.w $a0a1, $a1a2, $a3a3, $a4a4, $a5a5, $a6a6, $a7a7, $a7a8 dc.w $a8a8, $GШрб_40,$012e,$011d,$010d,$00fe dc.w $00f0,$00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097,$008f,$0087 dc.w $007f,$0078,$0071,$0000,$0000 mt_speed: dc.b $6 mt_songpos: dc.b $0 mt_pattpos: dc.w $0 mt_counter: dc.b $0 mt_break: dc.b $0 mt_dmacon: dc.w $0 mt_samplestarts:blk.l $1f,0 mt_voice1: blk.w 10,0 dc.w $1 blk.w 3,0 mt_voice2: blk.w 10,0 dc.w $2 blk.w 3,0 mt_voice3: blk.w 10,0 dc.w $4 blk.w 3,0 mt_voice4: blk.w 10,0 dc.w $8 blk.w 3,0 d0,mt_songpos not.b mt_break rKшjд‹эŸl #'PBOD',d0 rs_loop2: cmp.l #rs_songend,a0 beq.s rs_ready movem.l (a0)+,d1-d2 cmp.l d0,d1 beq.s rs_got add.l d2,a0 bra.s rs_loop2 rs_got: move.l a0,(a1)+ add.l d2,a0 bra.s rs_loop2 rs_ready: rts * sample descriptor ******************* rs_getsamples: lea rs_samplepts(pc),a1 lea rs_samples,a2 move.l #'SBOD',d0 rs_loop2a: cmp.l #rs_songend,a0 beq.s rs_sready movem.l (a0)+,d1-d2 cmp.l d0,d1 beq.s rs_gots add.l d2,a0 bra.s rs_loop2a rs_gots: tst.l 20(a2Kшkq"WA) bne.s rs_setsample lea 32(a2),a2 clr.l (a1)+ bra.s rs_gots rs_setsample: move.l a0,(a1)+ lea 32(a2),a2 add.l d2,a0 bra.s rs_loop2a rs_sready: rts * exit ******************************** rs_exit: move.w #$4000,$dff09a move.l rs_oldint+2,$6c.w move.l rs_oldaud,$70.w move.w #$c000,$dff09a lea $dff000,a6 moveq #0,d0 move.w #$f,$96(a6) move.w d0,$a8(a6) move.w d0,$b8(a6) move.w d0,$c8(a6) move.w d0,$d8(a6) rts rs_int: btst #5,$dff01f beq.s rs_olKшlЋЛ@юdint movem.l d0-d7/a0-a6,-(sp) bsr rs_rh movem.l (sp)+,d0-d7/a0-a6 rs_oldint: jmp 0 rs_rh: bsr rs_p4 addq.w #1,rs_actcyc move.w rs_actspeed,d0 cmp.w rs_actcyc,d0 ble.s rs_addcyc rts rs_addcyc: clr.w rs_actcyc moveq #16,d0 add.l d0,rs_trkpos addq.w #1,rs_patty bsr rs_getppatt tst.w rs_nextpt bpl.s rs_pattend cmp.w rs_patty,d0 bgt.s rs_nonew rs_pattend: clr.w rs_patty tst.w rs_nextpt bmi rs_nonextpt move.w rs_nextpt,rs_pointer bra.s rs_newpos Kшm?)rs_nonextpt: addq.w #1,rs_pointer rs_newpos: move.w rs_pointer,d0 cmp.w rs_len,d0 bne.s rs_nonewinit clr.w rs_pointer move.w rs_speed,rs_actspeed rs_nonewinit: bsr rs_gettrkpos rs_nonew: move.l rs_trkpos,a0 lea rs_pattline,a1 move.l (a0)+,(a1)+ move.l (a0)+,(a1)+ move.l (a0)+,(a1)+ move.l (a0)+,(a1)+ move.w #-1,rs_nextpt rts rs_p4: tst.w rs_actcyc bne.s rs_effects bsr rs_set tst.w d4 beq.s rs_effects bsr rs_dma bsr rs_setperiods or.w #$8000,d4 K шn v$a move.w d4,$dff096 bsr rs_dma bsr rs_action rs_effects: bsr rs_effect lea rs_vol,a0 lea $dff0a9,a1 move.b (a0)+,(a1) move.b (a0)+,$10(a1) move.b (a0)+,$20(a1) move.b (a0)+,$30(a1) tst.b rs_filter beq.s rs_blink bclr #1,$bfe001 rts rs_blink: bset #1,$bfe001 rts rs_set: lea rs_samplepts,a0 lea rs_pattline,a2 lea rs_pbuffs,a3 lea $dff0a0,a4 lea rs_periods,a6 moveq #0,d4 moveq #1,d5 moveq #3,d7 rs_ploop: bsr.s rs_set4 addq.w #4,a2 lea 16(aK шrЭ$˜z3),a3 lea $10(a4),a4 add.w d5,d5 dbf d7,rs_ploop rts rs_set4: moveq #0,d3 move.b (a2),d3 beq rs_noset subq.w #1,d3 moveq #0,d0 move.b 1(a2),d0 add.w d0,d0 add.w d0,d0 move.l (a0,d0.w),d2 beq rs_noset lsl.w #3,d0 lea rs_samples,a1 add.w d0,a1 tst.w 30(a1) beq rs_noset move.l 20(a1),d1 lsr.l #1,d1 tst.w d1 beq rs_noset move.w #124,6(a4) lsl.w #7,d5 move.w d5,$dff09a lsr.w #7,d5 move.w d5,$dff096 or.w d5,d4 move.l d2,(a4) moveKшpЃ,+s_error2 cmp.l #'SONG',(a5)+ bne rs_error2 move.l a5,a0 lea rs_cmformat(pc),a1 bsr rs_search lea rs_channelmodes(pc),a0 tst.l (a0)+ bne rs_error2 tst.l (a0)+ bne rs_error2 move.l a5,a0 lea rs_extformat(pc),a1 bsr rs_search move.l a5,a0 bsr rs_getpatts move.l a5,a0 bsr rs_getsamples clr.w rs_pointer bsr rs_gettrkpos sub.l #16,rs_trkpos subq.w #1,rs_patty move.l #$40404040,rs_vol clr.w rs_filter clr.l 0.w move.w rs_speed,rs_actspeed KшqKЏ8 clr.w rs_actcyc move.w #-1,rs_nextpt lea rs_pbuffs,a0 moveq #15,d0 rs_loop4: clr.l (a0)+ dbf d0,rs_loop4 lea rs_pattline,a0 moveq #3,d0 rs_loop5: clr.l (a0)+ dbf d0,rs_loop5 move.w #$ff,$dff09e move.w #$4000,$dff09a move.l $6c.w,rs_oldint+2 move.l $70.w,rs_oldaud move.l #rs_int,$6c.w move.l #rs_audint,$70.w move.w #$780,$dff09c move.w #$780,$dff09a move.w #$c000,$dff09a moveq #0,d0 rts rs_error2: moveq #-1,d0 rts * format search *************KшiSЏа********** ;a0:fpt ;a1:format list rs_search: move.l a0,a2 move.l (a1)+,d0 beq.s rs_ex rs_loop: cmp.l #rs_songend,a2 beq.s rs_ex cmp.l (a2)+,d0 bne.s rs_next move.l (a1)+,d0 cmp.l (a2)+,d0 ble.s rs_nocorrect move.l -4(a2),d0 rs_nocorrect: move.l (a1)+,a3 rs_copy: subq.l #1,d0 bmi.s rs_search move.b (a2)+,(a3)+ bra.s rs_copy rs_next: add.l (a2)+,a2 bra.s rs_loop rs_ex: rts * pattern descriptor ****************** rs_getpatts: lea rs_pattpts(pc),a1 move.~ш]ЏХЋЃmpa.l #DAT4,A0 bne.s LAB5 lea $071000,A2 lea $076000,A3 LAB6: clr.l (A2)+ clr.l (A3)+ cmpa.l #$00074000,A2 bne.s LAB6 move.l #LAB5,LAB6 lea $dff000,A6 clr.w 66(A6) bsr.l LAB7 bsr.l LAB8 LAB9: tst.b 6(A6) bne.s LAB9 btst #0,5(A6) bne.s LAB9 move.w #$7fff,D0 move.w D0,150(A6) move.w D0,154(A6) move.w D0,156(A6) move.w #$83c0,150(A6) move.w #$c010,154(A6) move.l $006c,DAT7 move.l #DAT8,$006c move.l #$0006c000,132(A6Gшtœч€t move.b (a2,d0.w),d1 asl.l #8,d1 asl.l #2,d1 add.w mt_pattpos,d1 clr.w mt_dmacon lea $dff0a0,a5 lea mt_voice1(pc),a6 bsr.s mt_playvoice lea $dff0b0,a5 lea mt_voice2(pc),a6 bsr.s mt_playvoice lea $dff0c0,a5 lea mt_voice3(pc),a6 bsr.s mt_playvoice lea $dff0d0,a5 lea mt_voice4(pc),a6 bsr.s mt_playvoice bra mt_setdma mt_playvoice: move.l (a0,d1.l),(a6) addq.l #4,d1 moveq #0,d2 move.b $2(a6),d2 and.b #$f0,d2 lsr.b #4,d2 move.b (a6),d0 and.b #$f0,d0 or.b d0,d2 Gшu„Гˆяtst.b d2 beq.s mt_setregs moveq #0,d3 lea mt_samplestarts(pc),a1 move.l d2,d4 subq.l #$1,d2 asl.l #2,d2 mulu #$1e,d4 move.l (a1,d2.l),$4(a6) move.w (a3,d4.l),$8(a6) move.w $2(a3,d4.l),$12(a6) move.w $4(a3,d4.l),d3 tst.w d3 beq.s mt_noloop move.l $4(a6),d2 asl.w #1,d3 add.l d3,d2 move.l d2,$a(a6) move.w $4(a3,d4.l),d0 add.w $6(a3,d4.l),d0 move.w d0,8(a6) move.w $6(a3,d4.l),$e(a6) move.w $12(a6),$8(a5) bra.s mt_setregs mt_noloop: move.l $4(a6),d2 add.l d3,d2 mGшv\@х ove.l d2,$a(a6) move.w $6(a3,d4.l),$e(a6) move.w $12(a6),$8(a5) mt_setregs: move.w (a6),d0 and.w #$fff,d0 beq mt_checkcom2 move.b $2(a6),d0 and.b #$F,d0 cmp.b #$3,d0 bne.s mt_setperiod bsr mt_setmyport bra mt_checkcom2 mt_setperiod: move.w (a6),$10(a6) and.w #$fff,$10(a6) move.w $14(a6),d0 move.w d0,$dff096 clr.b $1b(a6) move.l $4(a6),(a5) move.w $8(a6),$4(a5) move.w $10(a6),d0 and.w #$fff,d0 move.w d0,$6(a5) move.w $14(a6),d0 or.w d0,mt_dmacon bra mt_checkcoGшwФR(Tm2 mt_setdma: move.w #$12c,d0 mt_wait:dbf d0,mt_wait move.w mt_dmacon,d0 or.w #$8000,d0 move.w d0,$dff096 move.w #$12c,d0 mt_wai2:dbf d0,mt_wai2 lea $dff000,a5 lea mt_voice4(pc),a6 move.l $a(a6),$d0(a5) move.w $e(a6),$d4(a5) lea mt_voice3(pc),a6 move.l $a(a6),$c0(a5) move.w $e(a6),$c4(a5) lea mt_voice2(pc),a6 move.l $a(a6),$b0(a5) move.w $e(a6),$b4(a5) lea mt_voice1(pc),a6 move.l $a(a6),$a0(a5) move.w $e(a6),$a4(a5) add.w #$10,mt_pattpos cmp.w #$400,mt_pattpos G шxŠЃЊjbne.s mt_endr mt_nex: clr.w mt_pattpos clr.b mt_break addq.b #1,mt_songpos and.b #$7f,mt_songpos move.b mt_songpos,d1 cmp.b mt_data+$3b6,d1 bne.s mt_endr clr.b mt_songpos mt_endr:tst.b mt_break bne.s mt_nex movem.l (a7)+,d0-d4/a0-a3/a5-a6 rts mt_setmyport: move.w (a6),d2 and.w #$fff,d2 move.w d2,$18(a6) move.w $10(a6),d0 clr.b $16(a6) cmp.w d0,d2 beq.s mt_clrport bge.s mt_rt move.b #$1,$16(a6) rts mt_clrport: clr.w $18(a6) mt_rt: rts mt_myport: move.b $3(a6),dG шyЭXТЮ0 beq.s mt_myslide move.b d0,$17(a6) clr.b $3(a6) mt_myslide: tst.w $18(a6) beq.s mt_rt moveq #0,d0 move.b $17(a6),d0 tst.b $16(a6) bne.s mt_mysub add.w d0,$10(a6) move.w $18(a6),d0 cmp.w $10(a6),d0 bgt.s mt_myok move.w $18(a6),$10(a6) clr.w $18(a6) mt_myok:move.w $10(a6),$6(a5) rts mt_mysub: sub.w d0,$10(a6) move.w $18(a6),d0 cmp.w $10(a6),d0 blt.s mt_myok move.w $18(a6),$10(a6) clr.w $18(a6) move.w $10(a6),$6(a5) rts mt_vib: move.b $3(a6),d0 beq.s mt_vi mG шzќ‡sЉove.b d0,$1a(a6) mt_vi: move.b $1b(a6),d0 lea mt_sin(pc),a4 lsr.w #$2,d0 and.w #$1f,d0 moveq #0,d2 move.b (a4,d0.w),d2 move.b $1a(a6),d0 and.w #$f,d0 mulu d0,d2 lsr.w #$6,d2 move.w $10(a6),d0 tst.b $1b(a6) bmi.s mt_vibmin add.w d2,d0 bra.s mt_vib2 mt_vibmin: sub.w d2,d0 mt_vib2:move.w d0,$6(a5) move.b $1a(a6),d0 lsr.w #$2,d0 and.w #$3c,d0 add.b d0,$1b(a6) rts mt_nop: move.w $10(a6),$6(a5) rts mt_checkcom: move.w $2(a6),d0 and.w #$fff,d0 beq.s mt_nop move.bG ш{У $2(a6),d0 and.b #$f,d0 tst.b d0 beq mt_arpeggio cmp.b #$1,d0 beq.s mt_portup cmp.b #$2,d0 beq mt_portdown cmp.b #$3,d0 beq mt_myport cmp.b #$4,d0 beq mt_vib move.w $10(a6),$6(a5) cmp.b #$a,d0 beq.s mt_volslide rts mt_volslide: moveq #0,d0 move.b $3(a6),d0 lsr.b #4,d0 tst.b d0 beq.s mt_voldown add.w d0,$12(a6) cmp.w #$40,$12(a6) bmi.s mt_vol2 move.w #$40,$12(a6) mt_vol2:move.w $12(a6),$8(a5) rts mt_voldown: moveq #0,d0 move.b $3(a6),d0 and.b #$f,d0 sub.G ш|~оEјw d0,$12(a6) bpl.s mt_vol3 clr.w $12(a6) mt_vol3:move.w $12(a6),$8(a5) rts mt_portup: moveq #0,d0 move.b $3(a6),d0 sub.w d0,$10(a6) move.w $10(a6),d0 and.w #$fff,d0 cmp.w #$71,d0 bpl.s mt_por2 and.w #$f000,$10(a6) or.w #$71,$10(a6) mt_por2:move.w $10(a6),d0 and.w #$fff,d0 move.w d0,$6(a5) rts mt_portdown: clr.w d0 move.b $3(a6),d0 add.w d0,$10(a6) move.w $10(a6),d0 and.w #$fff,d0 cmp.w #$358,d0 bmi.s mt_por3 and.w #$f000,$10(a6) or.w #$358,$10(a6) mt_por3:moGш}РЩхtve.w $10(a6),d0 and.w #$fff,d0 move.w d0,$6(a5) rts mt_checkcom2: move.b $2(a6),d0 and.b #$f,d0 cmp.b #$e,d0 beq.s mt_setfilt cmp.b #$d,d0 beq.s mt_pattbreak cmp.b #$b,d0 beq.s mt_posjmp cmp.b #$c,d0 beq.s mt_setvol cmp.b #$f,d0 beq.s mt_setspeed rts mt_setfilt: move.b $3(a6),d0 and.b #$1,d0 asl.b #$1,d0 and.b #$fd,$bfe001 or.b d0,$bfe001 rts mt_pattbreak: not.b mt_break rts mt_posjmp: move.b $3(a6),d0 subq.b #$1,d0 move.b d0,mt_songpos not.b mt_break rGшhl?Њиts mt_setvol: cmp.b #$40,$3(a6) ble.s mt_vol4 move.b #$40,$3(a6) mt_vol4:move.b $3(a6),$8(a5) rts mt_setspeed: move.b $3(a6),d0 and.w #$1f,d0 beq.s mt_rts2 clr.b mt_counter move.b d0,mt_speed mt_rts2:rts mt_sin: dc.b $00,$18,$31,$4a,$61,$78,$8d,$a1,$b4,$c5,$d4,$e0,$eb,$f4,$fa,$fd dc.b $ff,$fd,$fa,$f4,$eb,$e0,$d4,$c5,$b4,$a1,$8d,$78,$61,$4a,$31,$18 mt_periods: dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c,$023a,$021a,$01fc,$01e0 dc.w $01c5,$01ac,$0194,$017d,$0168,$0153,$01€шгЯдвubq.l #1,d0 bne.s CNS_Loop2 CNS_Noo: clr.w ES_NewVol rts PES_SampleName: dc.b 1,7,'Actual Sample:',0 PES_UnnamedTxt: dc.b 16,7,'Unnamed',0 ES_InitText: dc.b 1,5,'Sample Editor V1.0',-1 dc.b 1,23,'Exit Volume:064 DELTA-Filter',0,0 ES_ExTable: dc.l 0 dc.w 0 dc.l ES_Quit,0 dc.w 1,23,4,23 dc.l VolumeUp,VolumeDown dc.w 6,23,15,23 dc.l DeltaFilter,0 dc.w 17,23,28,23 dc.l 0 ES_Quit: st ES_QuitFlag rts ES_QuitFlag: dc.w 0 VolumeUp: cmp.w #128,ES_Volume beq.s VU_Exш€ƒ„– addq.w #1,ES_Volume st ES_NewVol st ES_NewDraw bsr.s PrintES VU_Ex: rts VolumeDown: tst.w ES_Volume beq.s VD_Ex subq.w #1,ES_Volume st ES_NewVol st ES_NewDraw bsr.s PrintES VD_Ex: rts ES_Volume: dc.w 0 DeltaFilter: move.l ActCSPT(pc),d0 beq.s DF_Ex move.l d0,a0 move.l ActCSLen(pc),d0 subq.l #4,d0 ble.s DF_Ex move.w #$4040,(a0) addq.w #1,a0 moveq #0,d1 moveq #0,d2 moveq #0,d3 move.b (a0)+,d1 DF_Loop: move.b (a0),d2 move.b 1(a0),d3 add.w d‚шИGѕ21,d3 lsr.w #1,d3 add.w d2,d3 lsr.w #1,d3 and.b #$7f,d3 move.b (a0),d1 move.b d3,(a0)+ subq.l #1,d0 bne.s DF_Loop DF_Filtered: st ES_NewDraw bsr.L CopyUp DF_Ex: rts * Alles im ES-Window ausgeben ********* PrintES: moveq #13,d0 moveq #23,d1 move.w ES_Volume(pc),d2 bra.L PrintDez3 *************************************** * DATEN ******************************* *************************************** CopperList: dc.l $1200000,$1220000,$1240000,$1260000 dc.l ƒш‚Bmъr$1280000,$12a0000,$12c0000,$12e0000 dc.l $1300000,$1320000,$1340000,$1360000 dc.l $1380000,$13a0000,$13c0000,$13e0000 dc.l $8e0581,$9040c1,$92003c,$9400d0 dc.l $1800000,$182048f dc.l $1a20c06,$1a40904,$1a60603 dc.l $1020000,$104003f dc.l $1080000 dc.l $2b07fffe CopMenuPlane: dc.l $e00000,$e20000 dc.l $1009200 dc.l $4307fffe dc.l $1800022,$18200aa CopPlane: dc.l $e00000,$e20000 dc.w $100 BplCon: dc.w $9200 dc.l $ffdffffe dc.l $2d07fffe dc.l $1000000 dc„шƒ6ЕUЋ.l -2 FullPeriodTab: dc.w 0,$358,$328,$2FA,$2D0,$2A6,$280,$25C,$23A,$21A dc.w $1FC,$1E0,$1C5,$1AC,$194,$17D,$168,$153,$140 dc.w $12E,$11D,$10D,$FE,$F0,$E2,$D6,$CA,$BE dc.w $B4,$AA,$A0,$97,$8F,$87,$7F,$78,$71 FullNoteTab: dc.b '--- c-1 c#1 d-1 d#1 e-1 f-1 f#1 g-1 g#1 a-1 a#1 b-1 ' dc.b 'c-2 c#2 d-2 d#2 e-2 f-2 f#2 g-2 g#2 a-2 a#2 b-2 ' dc.b 'c-3 c#3 d-3 d#3 e-3 f-3 f#3 g-3 g#3 a-3 a#3 b-3 ' NoteKeyTab: dc.b 'zsxdcvgbhnjm' dc.b ',l.;/' dc.b 'q2w3er5t6y7u' dc.b 'i9o0p[=…ш„kцq<]\' dc.b 6,0 PeriodTab1: dc.b 1,2,3,4,5,6,7,8,9,10,11,12 dc.b 13,14,15,16,17 dc.b 13,14,15,16,17,18,19,20,21,22,23,24 dc.b 25,26,27,28,29,30,31,32,33 dc.b 0 even NoteTab1: dc.b 'c-1 c#1 d-1 d#1 e-1 f-1 f#1 g-1 g#1 a-1 a#1 b-1 ' dc.b 'c-2 c#2 d-2 d#2 e-2 ' dc.b 'c-2 c#2 d-2 d#2 e-2 f-2 f#2 g-2 g#2 a-2 a#2 b-2 ' dc.b 'c-3 c#3 d-3 d#3 e-3 f-3 f#3 g-3 g#3 ' dc.b '--- ' PeriodTab2: dc.b 13,14,15,16,17,18,19,20,21,22,23,24 dc.b 25,26,27,28,29 dc.b 25,26,27,28,29,30,31†ш…^œЛО,32,33,34,35,36 dc.b -1,-1,-1,-1,-1,-1,-1,-1,-1 dc.b 0 even NoteTab2: dc.b 'c-2 c#2 d-2 d#2 e-2 f-2 f#2 g-2 g#2 a-2 a#2 b-2 ' dc.b 'c-3 c#3 d-3 d#3 e-3 ' dc.b 'c-3 c#3 d-3 d#3 e-3 f-3 f#3 g-3 g#3 a-3 a#3 b-3 ' dc.b ' ' dc.b '--- ' CursorTab: dc.b 9 ,13,14,15,16 dc.b 18,22,23,24,25 dc.b 27,31,32,33,34 dc.b 36,40,41,42,43 dc.b 45,49,50,51,52 dc.b 54,58,59,60,61 dc.b 63,67,68,69,70 dc.b 72,76,77,78,79 Z0Tab: dc.b '0123456789a‡яСЌQbcdefghijklmnopqrstuvwxyz' SongHeader: SH_Samples: blk.b [32*36],0 ;Name(20), Len(4), RepSt(4), RepLen(4) SH_Speed: dc.b 6 SH_Len: dc.b 1 SH_Patterns: blk.b 128,0 SongHeaderEnd: org $7f000-320 load $7f000-320 o: Chars: org *+320 oe: 4003f dc.l $1080000 dc.l $2b07fffe CopMenuPlane: dc.l $e00000,$e20000 dc.l $1009200 dc.l $4307fffe dc.l $1800022,$18200aa CopPlane: dc.l $e00000,$e20000 dc.w $100 BplCon: dc.w $9200 dc.l $ffdffffe dc.l $2d07fffe dc.l $1000000 dcGш‡X0l mt_lop3:clr.l (a2) move.l a2,(a1)+ moveq #0,d1 move.w 42(a0),d1 asl.l #1,d1 add.l d1,a2 add.l #$1e,a0 dbf d0,mt_lop3 or.b #$2,$bfe001 move.b #$6,mt_speed clr.w $dff0a8 clr.w $dff0b8 clr.w $dff0c8 clr.w $dff0d8 clr.b mt_songpos clr.b mt_counter clr.w mt_pattpos rts mt_end: clr.w $dff0a8 clr.w $dff0b8 clr.w $dff0c8 clr.w $dff0d8 move.w #$f,$dff096 rts mt_music: movem.l d0-d4/a0-a3/a5-a6,-(a7) lea mt_data,a0 addq.b #$1,mt_counter move.b mt_counter,D0 cmp.bGшˆUМя mt_speed,D0 blt.s mt_nonew clr.b mt_counter bra mt_getnew mt_nonew: lea mt_voice1(pc),a6 lea $dff0a0,a5 bsr mt_checkcom lea mt_voice2(pc),a6 lea $dff0b0,a5 bsr mt_checkcom lea mt_voice3(pc),a6 lea $dff0c0,a5 bsr mt_checkcom lea mt_voice4(pc),a6 lea $dff0d0,a5 bsr mt_checkcom bra mt_endr mt_arpeggio: moveq #0,d0 move.b mt_counter,d0 divs #$3,d0 swap d0 cmp.w #$0,d0 beq.s mt_arp2 cmp.w #$2,d0 beq.s mt_arp1 moveq #0,d0 move.b $3(a6),d0 lsr.b #4,d0 bra.s mGшsБћt_arp3 mt_arp1:moveq #0,d0 move.b $3(a6),d0 and.b #$f,d0 bra.s mt_arp3 mt_arp2:move.w $10(a6),d2 bra.s mt_arp4 mt_arp3:asl.w #1,d0 moveq #0,d1 move.w $10(a6),d1 lea mt_periods(pc),a0 moveq #$24,d7 mt_arploop: move.w (a0,d0.w),d2 cmp.w (a0),d1 bge.s mt_arp4 addq.l #2,a0 dbf d7,mt_arploop rts mt_arp4:move.w d2,$6(a5) rts mt_getnew: lea mt_data,a0 move.l a0,a3 move.l a0,a2 add.l #$c,a3 add.l #$3b8,a2 add.l #$43c,a0 moveq #0,d0 move.l d0,d1 move.b mt_songpos,d0 uшŠHuЧ add.w d6,d0 lea GT_DelText(pc),a0 bra.L PrintXY GT_DelText: dc.b ' ',0,0 GT_DLast: clr.b (a0,d6.w) movem.w GT_PPos(pc),d0-d1 add.w d6,d0 lea GT_DelText+1(pc),a0 bra.L PrintXY SetTextCursor: movem.w GT_PPos(pc),d0-d1 add.w d6,d0 movem.w d0-d1,STC_Old bra.L InvertCursor ClrTextCursor: movem.w STC_Old(pc),d0-d1 bra.L InvertCursor GI_ClearPart: move.l MenuPlane(pc),a0 add.w d0,a0 mulu #6*80,d1 add.l d1,a0 moveq #4,d1 CP_2: moveq #69,d0 CP_1: clr.b (a0)+ vш‹_~hкdbf d0,CP_1 lea 10(a0),a0 dbf d1,CP_2 rts GT_Exec: move.l FSInitStack(pc),a7 bsr.s ClrTextCursor bra FSExIn STC_Old: dc.l 0 GT_PPos: dc.l 0 GT_EndFlag: dc.w 0 FSIRenders: dc.w 1,12,38,42 dc.w 41,12,78,42 dc.w -1 FSIText: dc.b 1,7,'drawer:',-1 dc.b 1,8,'file..:',-1 dc.b 1,9,'cancel ram: df0: df1: df2: df3: dh0: dh1:' dc.b ' --------1-------- --------2--------',-1 dc.b 1,11,'directories:',-1 dc.b 41,11,'files:',0,0 *************************************** * SwшŒуаAMPLER ***************************** *************************************** EditSample: bsr.L ClearCursor bsr.L ClearPlane bsr.L AllocES moveq #0,d0 bsr.L SetPlanePT lea ES_ExTable(pc),a0 clr.l (a0)+ clr.w (a0) clr.w ES_QuitFlag move.w #64,ES_Volume lea ES_InitText(pc),a0 bsr.L PrintText bsr.L PrintEditedSample ES_Raster: bsr.L WaitTOP lea ES_ExTable(pc),a0 bsr.L Executer bsr.s ES_KeyHandler tst.w ES_NewDraw beq.s ES_NoNew btst #6,$bfe001 beq.sxш1q3Ь ES_NoNew btst #2,$dff016 beq.s ES_NoNew tst.w ES_NewVol beq.s ES_NoNewVol bsr.L CompNewSample ES_NoNewVol: bsr.L PlotSample ES_NoNew: tst.w ES_QuitFlag beq.s ES_Raster tst.w ES_NewDraw beq.s ES_NoNew2 ES_NoNew2: bsr.L CopyUp bsr.L FreeES move.w CursorY(pc),d0 bsr.L SetPlanePT bra.L PrintPattern ES_NewDraw: dc.w 0 ES_NewVol: dc.w 0 * Note spielen ************************ ES_KeyHandler: move.b ActKey(pc),d0 beq.s ESKH_Ex clr.b ActKey bsr.L TestNoteKey yшŽo f bmi.s ESKH_Ex move.l ActPeriodTab(pc),a1 move.b (a1,d0.w),d1 bmi.s ESKH_Ex lea ES_ActChannel(pc),a0 move.w (a0),d0 addq.w #1,(a0) and.w #$3,(a0) bsr.L PlayNote ESKH_Ex: rts ES_ActChannel: dc.w 0 * Sample-Speicher reservieren ********* AllocES: move.l 4.w,a6 move.l #$40*4,d0 moveq #0,d1 jsr -198(a6) move.l d0,PS_YTab move.l d0,a0 move.l MenuPlane(pc),a1 lea 80*6*10(a1),a1 moveq #$3f,d0 AES_Loop: move.l a1,(a0)+ lea 80(a1),a1 dbf d0,AES_Loop movzшЃ6Џe.l #$80,d0 moveq #0,d1 jsr -198(a6) move.l d0,VolTable rts FreeES: move.l 4.w,a6 move.l PS_YTab(pc),a1 move.l #$40*4,d0 jsr -210(a6) move.l VolTable(pc),a1 move.l #$80,d0 jmp -210(a6) PS_YTab: dc.l 0 VolTable: dc.l 0 * Sample hochkopieren ********************* CopyUp: lea SampleTab(pc),a0 move.w ActSample(pc),d0 lsl.w #3,d0 move.l (a0,d0.w),d1 beq.s CU_Not move.l d1,a1 move.l 4(a0,d0.w),d0 beq.s CU_Not cmp.l ActCSLen(pc),d0 bne.s CU_Not m{ш4яo_ove.l ActCSPT(pc),d0 beq.s CU_Not move.l d0,a0 move.l ActCSLen(pc),d0 beq.s CU_Not CU_Loop: move.b (a0)+,(a1)+ subq.l #1,d0 bne.s CU_Loop CU_Not: rts * Sample ausgeben ************************* PrintEditedSample:lea PES_SampleName(pc),a0 bsr.L PrintText lea SH_Samples(pc),a0 move.w ActSample(pc),d0 lsl.w #5,d0 add.w d0,a0 tst.b (a0) bne.s PES_NotUnnamed lea PES_UnnamedTxt(pc),a0 bsr.L PrintText bra.s PES_Ready PES_NotUnnamed: moveq #16,d0 moveq #7|ш‘{Seо,d1 bsr.L PrintXY PES_Ready: bra.s PlotSample * Sample plotten ********************** PlotSample: sf ES_NewDraw bsr.L ClearPlotPart move.l ActCSPT(pc),d0 beq.s PS_Ex move.l d0,a0 move.l ActCSLen(pc),d1 beq.s PS_Ex move.l PS_YTab(pc),a2 moveq #$7e,d3 move.l #640*$1000,d2 lsr.l #4,d1 beq.s PS_OrigPlot divu d1,d2 and.l #$ffff,d2 beq.s PS_OrigPlot moveq #0,d7 PS_Loop: move.b (a0)+,d0 and.w d3,d0 add.w d0,d0 move.l (a2,d0.w),a1 move.w d7,d1 lsr.}ш’йœ’кw #3,d1 moveq #7,d0 sub.w d7,d0 bset d0,(a1,d1.w) swap d7 add.l d2,d7 swap d7 cmp.w #640,d7 blt.s PS_Loop PS_Ex: rts PS_OrigPlot: move.l ActCSPT(pc),a0 move.l ActCSLen(pc),d6 subq.w #1,d6 move.l PS_YTab(pc),a2 moveq #$7e,d3 moveq #0,d7 PSOP_Loop: move.b (a0)+,d0 and.w d3,d0 add.w d0,d0 move.l (a2,d0.w),a1 move.w d7,d1 lsr.w #3,d1 moveq #7,d0 sub.w d7,d0 bset d0,(a1,d1.w) addq.w #1,d7 dbf d6,PSOP_Loop rts * Plot-Part loeschen *********~ш“Oв/P********* ClearPlotPart: move.l MenuPlane(pc),a0 lea 80*10*6(a0),a0 moveq #0,d1 move.w #20*64-1,d0 CPP_Loop: move.l d1,(a0)+ dbf d0,CPP_Loop rts * Sample neu kopieren+berechnen ******* CompNewSample: move.l VolTable(pc),a0 move.w ES_Volume(pc),d0 moveq #64,d3 sub.w d0,d3 moveq #0,d1 CNS_Loop: moveq #0,d2 tst.w d0 beq.s CNS_Clr move.w d1,d2 mulu d0,d2 lsr.w #6,d2 CNS_Clr: add.w d3,d2 cmp.w #$7f,d2 blt.s CNS_Ok1 move.w #$7f,d2 CNS_Ok1: tst.w d2 bш~Ёogt.s CNS_Ok2 moveq #0,d2 CNS_Ok2: move.b d2,(a0)+ addq.w #1,d1 cmp.w #$80,d1 bne.s CNS_Loop lea SampleTab(pc),a0 move.w ActSample(pc),d0 lsl.w #3,d0 move.l (a0,d0.w),d0 beq.s CNS_Noo move.l d0,a0 move.l ActCSPT(pc),d0 beq.s CNS_Noo move.l d0,a1 move.l VolTable(pc),a2 move.l ActCSLen(pc),d0 subq.l #2,d0 ble.s CNS_Noo move.w #$4040,(a1)+ moveq #0,d1 moveq #$7f,d2 CNS_Loop2: move.b (a0)+,d1 and.b d2,d1 move.b (a2,d1.w),d1 move.b d1,(a1)+ sjш•aЅFч,PE_Loop2 moveq #13,d6 cmp.w #29,d7 blt.s PE_In moveq #29,d7 bra.s PE_In PE_Loop: move.w d5,d0 move.w d6,d1 bsr.s ClearLine move.l (a5),a5 lea 8(a5),a0 move.w d5,d0 move.w d6,d1 bsr.L PrintXY addq.w #1,d6 PE_In: dbf d7,PE_Loop rts RefreshDirs: dc.b 0 RefreshFiles: dc.b 0 TopFile: dc.w 0 TopDir: dc.w 0 * Entry-Line loeschen ***************** * > File selektiert ***** FileSelected: lea FirstFile(pc),a5 lea FileText(pc),a0 move.w SelectedFile(pc),d0 bra.s FS_In FS_Loop1: move.l (a5),d1 beq.s FS_Ex move.l d1,a5 FS_In: dbf d0,FS_Loop1 move.l a0,a4 addq.w #8,a5 move.l a5,a1 moveq #19,d0 FS_Loop3: cmpm.b (a0)+,(a1)+ bne.s FS_New dbf d0,FS_Loop3 move.l FSInitStack(pc),a7 bra.L FSnш™ЧкŸМOk FS_New: move.l a4,a0 move.l a5,a1 moveq #19,d0 FS_Loop2: move.b (a5)+,(a0)+ dbf d0,FS_Loop2 bsr.L PrintFile FS_Ex: rts SelectedFile: dc.w 0 * Funktion 101 >> Directory selektiert* DirSelected: lea FirstDir(pc),a5 move.w SelectedDir(pc),d0 bra.s DS_In DS_Loop1: move.l (a5),d1 beq.s DS_Ex move.l d1,a5 DS_In: dbf d0,DS_Loop1 addq.w #8,a5 lea DrawerText(pc),a1 moveq #-1,d0 DS_CheckEnd: addq.w #1,d0 tst.b (a1,d0.w) bne.s DS_CheckEnd move.w d0,d2 beq.oшš„ДŸRs DS_Ini move.b -1(a1,d0.w),d1 cmp.b #'/',d1 beq.s DS_Ini cmp.b #':',d1 beq.s DS_Ini move.b #'/',(a1,d0.w) addq.w #1,d0 DS_Ini: cmp.w #70,d0 bge.s DS_Old move.b (a5)+,d1 beq.s DS_CopyReady move.b d1,(a1,d0.w) addq.w #1,d0 bra.s DS_Ini DS_CopyReady: cmp.w #70,d0 bge.s DS_Old clr.b (a1,d0.w) bsr.L PrintDrawer move.l FSInitStack(pc),a7 bra.L NewDir DS_Old: clr.b (a1,d2.w) DS_Ex: bra.L PrintDrawer SelectedDir: dc.w 0 GetDrawer: lea DrawerText(pc),pш›yБa0 moveq #8,d0 moveq #7,d1 moveq #69,d2 bsr.L GetText bra.L NewDir GetFile: lea FileText(pc),a0 moveq #8,d0 moveq #8,d1 moveq #69,d2 bsr.L GetText bra.L FSOk SetRam: move.l #'ram:',d0 bra.s NewDrawer SetDf0: move.l #'df0:',d0 bra.s NewDrawer SetDf1: move.l #'df1:',d0 bra.s NewDrawer SetDf2: move.l #'df2:',d0 bra.s NewDrawer SetDf3: move.l #'df3:',d0 bra.s NewDrawer SetDh0: move.l #'dh0:',d0 bra.s NewDrawer SetDh1: move.l #'dh1:',d0 bra.s NewDqшœю[кrawer NewDrawer: lea DrawerText(pc),a0 move.l d0,(a0)+ clr.b (a0) bsr.s PrintDrawer bra.L NewDir * Parent Dir ************************** ParentDir: lea DrawerText(pc),a0 moveq #-1,d0 PD_SearchEnd: addq.w #1,d0 tst.b (a0,d0.w) bne.s PD_SearchEnd tst.w d0 beq.s PD_NoParent subq.w #1,d0 move.b (a0,d0.w),d1 cmp.b #':',d1 beq.s PD_Sub cmp.b #'/',d1 bne.s PD_NoSub PD_Sub: subq.w #1,d0 bmi.s PD_DirFound PD_NoSub: subq.w #1,d0 bmi.s PD_DirFound move.b (rш#ЮUщa0,d0.w),d1 cmp.b #':',d1 beq.s PD_DirFound cmp.b #'/',d1 bne.s PD_NoSub subq.w #1,d0 PD_DirFound: clr.b 1(a0,d0.w) bsr.s PrintDrawer PD_NoParent: bra.L NewDir * Drawer ausgeben ********************* PrintDrawer: moveq #8,d0 moveq #7,d1 bsr.L GI_ClearPart lea DrawerText(pc),a0 moveq #8,d0 moveq #7,d1 bra.L PrintXY * File ausgeben *********************** PrintFile: moveq #8,d0 moveq #8,d1 bsr.L GI_ClearPart lea FileText(pc),a0 moveq #8,d0 moveq #8sшžC›Ax,d1 bra.L PrintXY * Text an a0 d0 Bytes holen *********** GetText: movem.w d0-d1,GT_PPos move.l a0,a5 move.w d2,d7 bsr.L GI_ClearPart move.l a5,a0 moveq #69,d0 GT_Clear: clr.b (a0)+ dbf d0,GT_Clear clr.b ActKey moveq #0,d6 clr.w GT_EndFlag bsr.L SetTextCursor GT_Loop: bsr.s GT_GetIt move.l a5,a0 movem.w GT_PPos(pc),d0-d1 bsr.L PrintXY bsr.L SetTextCursor tst.w GT_EndFlag beq.s GT_Loop cmp.w d6,d7 bne.s GT_Not bsr.L ClrTextCursor GT_Not: rts tш‰ƒрvGT_GetIt: tst.w ExJmp bne.L GT_Exec move.b ActKey(pc),d0 beq.s GT_GetIt clr.b ActKey move.l a5,a0 cmp.b #32,d0 blt.s GT_Extra move.b d0,(a0,d6.w) cmp.w d7,d6 beq.s GT_LastChar addq.w #1,d6 GT_LastChar: rts GT_Extra: cmp.b #4,d0 beq.s GT_End cmp.b #1,d0 beq.s GT_Delete bra.s SetTextCursor GT_End: st GT_EndFlag rts GT_Delete: tst.w d6 beq.s GT_DEnd tst.b (a0,d7.w) bne.s GT_DLast subq.w #1,d6 clr.b (a0,d6.w) GT_DEnd: movem.w GT_PPos(pc),d0-d1 _ш Я™™“s: move.l (a5),a3 move.l a4,(a5) move.l a3,(a4)+ bra.s AFI_SetData AFI_Last: move.l a4,(a5) clr.l (a4)+ AFI_SetData: move.l FileInfoBlock(pc),a0 move.l 124(a0),(a4)+ addq.w #8,a0 moveq #30,d0 AF_CopyName: move.b (a0)+,(a4)+ dbf d0,AF_CopyName clr.b (a4) rts * File-Laenge ermitteln *************** GetFileLen: lea DrawerText(pc),a0 lea FullFileText(pc),a1 moveq #0,d1 GFL_Loop1: move.b (a0)+,d0 beq.s GFL_Next move.b d0,(a1,d1.w) addq.w #1,d1 bra.s GFL_L`шЁйр<oop1 GFL_Next: tst.w d1 beq.s GFL_NoDir cmp.b #':',-1(a1,d1.w) beq.s GFL_NoDir move.b #'/',(a1,d1.w) addq.w #1,d1 GFL_NoDir: lea FileText(pc),a0 GFL_Loop2: move.b (a0)+,d0 beq.s GFL_NameReady move.b d0,(a1,d1.w) addq.w #1,d1 bra.s GFL_Loop2 GFL_NameReady: clr.b (a1,d1.w) move.l DosBase(pc),a6 move.l a1,d1 moveq #-2,d2 jsr Lock(a6) move.l d0,d7 beq.s GFL_Error move.l d7,d1 move.l FileInfoBlock(pc),d2 jsr Examine(a6) tst.l d0 beq.s GFL_UnlockErroaшЂіИwWr move.l d7,d1 jsr UnLock(a6) move.l FileInfoBlock(pc),a0 move.l 124(a0),d0 rts GFL_UnLockError:move.l d7,d1 jsr UnLock(a6) GFL_Error: moveq #0,d0 rts FullFileText: blk.w 72,0 * Entry reservieren ******************* AllocFile: moveq #40,d0 moveq #0,d1 move.l 4.w,a6 jsr -198(a6) move.l d0,a4 rts AFI_Compare: move.l FileInfoBlock(pc),a0 addq.w #8,a0 addq.w #8,a1 moveq #96,d2 moveq #32,d3 AFI_CharLoop: move.b (a0)+,d0 beq.s AFI_Not move.b (a1)+,d1bшЃЫЛU beq.s AFI_Ok cmp.b d2,d0 blt.s AFI_FOk sub.b d3,d0 AFI_FOk: cmp.b d2,d1 blt.s AFI_SOk sub.b d3,d1 AFI_SOk: cmp.b d0,d1 beq.s AFI_CharLoop sgt d0 tst.b d0 rts AFI_Ok: moveq #0,d0 rts AFI_Not: moveq #-1,d0 rts Dirs: dc.w 0 Files: dc.w 0 FirstDir: dc.l 0 FirstFile: dc.l 0 DrawerText: blk.b 70,0 FileText: blk.b 70,0 * Parts loeschen ********************** ClearParts: move.l Plane(pc),a0 lea 80*6*9+2(a0),a0 move.w #29*6-1,d1 CP_LLoop: moveq #8,d0 CP_LoopcшЄх{іп1: clr.l (a0)+ dbf d0,CP_Loop1 addq.w #4,a0 moveq #8,d0 CP_Loop2: clr.l (a0)+ dbf d0,CP_Loop2 addq.w #4,a0 dbf d1,CP_LLoop rts * File System-Interrupt *************** FSInterrupt: btst #5,$dff01f beq.s FSOldJmp movem.l d0-d7/a0-a6,-(sp) bsr.L KeyRepHandler bsr.L ControlMouse tst.w ExJmp bne.s FSNotExecuted lea FSExTable(pc),a0 bsr.L Executer bsr.s CheckRequester FSNotExecuted: tst.b RefreshDirs beq.s FSNoDirs bsr.L PrintDirs FSNoDirs: tst.b RefredшЅ%ЮЫshFiles beq.s FSNoFiles bsr.L PrintFiles FSNoFiles: movem.l (sp)+,d0-d7/a0-a6 FSOldJmp: jmp 0 * Check ob Maus ueber File oder Dir *** CheckRequester: btst #6,$bfe001 bne.s CR_NotSelected tst.b MouseFlag bne.s CR_Selected movem.w OldReqPos(pc),d0-d1 tst.w d0 bmi.s CR_NotSelected sub.w #12,d1 cmp.w #2,d0 beq.s CR_DirSelected add.w TopFile(pc),d1 move.w d1,SelectedFile move.w #100,ExJmp st MouseFlag bra.s CR_Selected CR_DirSelected: add.w TopDir(pc),d1 eшІD)d move.w d1,SelectedDir move.w #101,ExJmp st MouseFlag bra.s CR_Selected CR_NotSelected: sf MouseFlag CR_Selected: movem.w MousePos(pc),d0-d1 cmp.w #2*8,d0 blt.s CR_Noo cmp.w #78*8,d0 bge.s CR_Noo cmp.w #42*8,d0 bge.s CR_Files cmp.w #38*8,d0 blt.s CR_Dirs CR_Noo: bra.L ClearOldReq CR_Files: cmp.w #42*12,d1 bge.s CRF_Add cmp.w #13*12,d1 blt.s CRF_Sub moveq #42,d0 sub.w #13*12,d1 divu #12,d1 add.w #13,d1 move.l d0,d2 swap d2 move.w d1,d2 cmfшЇИТ†p.l OldReqPos(pc),d2 beq.s CRF_Ex tst.w OldReqPos bmi.s CRF_Inv sf MouseFlag CRF_Inv: bsr.L ClearOldReq bsr.L InvertReq CRF_Ex: rts CRF_Add: move.w Files(pc),d0 sub.w #30,d0 cmp.w TopFile(pc),d0 blt.L ClearOldReq addq.w #1,TopFile st RefreshFiles bra.L ClearOldReq CRF_Sub: tst.w TopFile beq.s ClearOldReq subq.w #1,TopFile st RefreshFiles bra.s ClearOldReq * Maus ueber Directory **************** CR_Dirs: cmp.w #42*12,d1 bge.s CRD_Add cmp.w #13*12,dgшЈщЗ’…1 blt.s CRD_Sub moveq #2,d0 sub.w #13*12,d1 divu #12,d1 add.w #13,d1 move.l d0,d2 swap d2 move.w d1,d2 cmp.l OldReqPos(pc),d2 beq.s CRD_Ex tst.w OldReqPos bmi.s CRD_Inv sf MouseFlag CRD_Inv: bsr.s ClearOldReq bsr.s InvertReq CRD_Ex: rts CRD_Add: move.w Dirs(pc),d0 sub.w #30,d0 cmp.w TopDir(pc),d0 blt.s ClearOldReq addq.w #1,TopDir st RefreshDirs bra.s ClearOldReq CRD_Sub: tst.w TopDir beq.s ClearOldReq subq.w #1,TopDir st RefreshDirs bhшЉAqаћra.s ClearOldReq MouseFlag: dc.w 0 ClearOldReq: movem.w d0-d1,-(sp) movem.w OldReqPos(pc),d0-d1 tst.w d0 bmi.s COR_Ex bsr.s InvertReq moveq #-1,d0 move.l d0,OldReqPos COR_Ex: movem.w (sp)+,d0-d1 rts InvertReq: movem.w d0-d1,OldReqPos move.l MenuPlane(pc),a0 add.w d0,a0 mulu #6*80,d1 add.l d1,a0 moveq #4,d1 IR_Loop1: moveq #8,d0 IR_Loop2: not.l (a0)+ dbf d0,IR_Loop2 lea 44(a0),a0 dbf d1,IR_Loop1 rts OldReqPos: dc.l 0 * Directories oder Files ausgebeniш”CћГ ***** PrintDirs: cmp.w #42,OldReqPos beq.s PD_NoClear bsr.s ClearOldReq PD_NoClear: clr.b RefreshDirs lea FirstDir(pc),a5 move.w Dirs(pc),d7 move.w TopDir(pc),d6 sub.w d6,d7 moveq #2,d5 bra.s PrintEntries PrintFiles: cmp.w #2,OldReqPos beq.s PF_NoClear bsr.s ClearOldReq PF_NoClear: clr.b RefreshFiles lea FirstFile(pc),a5 move.w Files(pc),d7 move.w TopFile(pc),d6 sub.w d6,d7 moveq #42,d5 bra.s PrintEntries PE_Loop2: move.l (a5),a5 PrintEntries: dbf d6TшЋЖЌ~ў,ActSpeed move.b d1,ActCyc+1 RH_SEx: rts ActSpeed: dc.w 0 * Filter an/aus *********************** RH_Filter: tst.b d1 beq.s RH_FOff bclr #1,$bfe001 rts RH_FOff: bset #1,$bfe001 rts * (R)everse abspielen ***************** * (00):NormRev (01):Norm+Rev ********** * (02)Rev+Norm ************************ RH_Reverse: tst.b d1 bne.s RH_R01 neg.l 8(a3) move.l 4(a3),d0 subq.l #1,d0 add.l d0,(a3) neg.l 4(a3) rts RH_R01: cmp.b #1,d1 bne.s RH_R02 movem.l (a3),d0UшЌ‡Gz;-d2 neg.l d2 subq.l #1,d1 add.l d1,d0 neg.l d1 movem.l d0-d2,12(a3) rts RH_R02: cmp.b #2,d1 bne.s RH_RNot movem.l (a3),d0-d2 movem.l d0-d2,12(a3) neg.l d2 subq.l #1,d1 add.l d1,d0 neg.l d1 movem.l d0-d2,(a3) RH_RNot: rts * C+PBuffs loeschen ******************* ClearBuffs: lea CBuff0(pc),a0 moveq #0,d1 move.w #312,d0 CB_Loop: move.l d1,(a0)+ move.l d1,(a0)+ dbf d0,CB_Loop lea PBuff0(pc),a0 moveq #7*8-1,d0 CB_Loop2: clr.l (a0)+ dbf d0,CB_LooVш­ИVП0p2 lea PBuffs(pc),a1 lea PBuff0(pc),a0 moveq #7,d0 CB_Loop3: move.l a0,(a1)+ lea 28(a0),a0 dbf d0,CB_Loop3 rts * Line invertieren ******************** InvertLine: tst.w SongMode bne.s IL_Ex tst.w PattY bmi.s IL_Ex move.l #$090f0000,$dff040 moveq #-1,d0 move.l d0,$dff044 clr.l $dff064 move.l Plane(pc),a0 move.w PattY(pc),d0 mulu #6*80,d0 add.w d0,a0 move.l a0,$dff050 move.l a0,$dff054 move.w #5*64+40,$dff058 move.w PattY(pc),d0 bsr.L SetPlWшЎ э§ˆanePT bra.L WB IL_Ex: rts ActCyc: dc.w 0 TrkPos: dc.l 0 PattY: dc.w 0 CBuff0: blk.w 313,0 CBuff1: blk.w 313,0 CBuff2: blk.w 313,0 CBuff3: blk.w 313,0 PBuffs: dc.l 0,0,0,0,0,0,0,0 PBuff0: dc.l 0,0,0,0,0,0,0 ;PT,Len,Per,PT2,Len2,Per2 PBuff1: dc.l 0,0,0,0,0,0,0 PBuff2: dc.l 0,0,0,0,0,0,0 PBuff3: dc.l 0,0,0,0,0,0,0 PBuff4: dc.l 0,0,0,0,0,0,0 PBuff5: dc.l 0,0,0,0,0,0,0 PBuff6: dc.l 0,0,0,0,0,0,0 PBuff7: dc.l 0,0,0,0,0,0,0 *************************************** * FXшЏx_'ile-System ************************* *************************************** * a0: Loadname ************************ FileSystem: move.l a0,-(sp) bsr.L ClearCursor bsr.L ClearPlane moveq #0,d0 bsr.L SetPlanePT move.l (sp)+,a0 move.l a7,FSInitStack moveq #1,d0 moveq #5,d1 bsr.L PrintXY lea FSIText(pc),a0 bsr.L PrintText lea FSIRenders(pc),a0 bsr.L InvRenders bsr.L AllocFS lea FSExTable(pc),a0 clr.l (a0)+ clr.w (a0) moveq #-1,d0 move.l d0,OldReqPoYшА5љšs move.l OldVBIInt+2(pc),FSOldJmp+2 move.l #FSInterrupt,$6c.w bsr.L PrintDrawer bsr.L PrintFile NewDir: bsr.L ReadDir FSExIn: move.w ExJmp(pc),d0 beq.s FSExIn clr.w ExJmp cmp.w #100,d0 bge.s FSEx2 subq.w #1,d0 lea ExJmpTable(pc),a0 add.w d0,d0 add.w d0,d0 move.l (a0,d0.w),a0 jmp (a0) FSEx2: cmp.w #100,d0 bne.s FSE2_NoFile bsr.L FileSelected FSE2_NoFile: cmp.w #101,d0 bne.s FSE2_NoDir bsr.L DirSelected FSE2_NoDir: bra.s FSExIn Cancel: move.l #ZшБfd#NewVBIInt,$6c.w bsr.L RD_UnLock bsr.s FreeFS move.w CursorY(pc),d0 bsr.L SetPlanePT bsr.L PrintPattern moveq #-1,d0 rts FSInitStack: dc.l 0 FSOk: move.l #NewVBIInt,$6c.w bsr.L RD_UnLock bsr.L GetFileLen move.l d0,-(sp) bsr.s FreeFS move.w CursorY(pc),d0 bsr.L SetPlanePT bsr.L PrintPattern move.l (sp)+,d0 rts * Info Buffer reservieren ************* AllocFS: move.l #260,d0 moveq #0,d1 move.l 4.w,a6 jsr -198(a6) move.l d0,FileInfoBlock rts [шВšфMDFreeFS: move.l FileInfoBlock(pc),a1 move.l #260,d0 move.l 4.w,a6 jsr -210(a6) bra.s FreeBuffers FileInfoBLock: dc.l 0 * Buffers freigeben ******************* FreeBuffers: clr.b RefreshDirs clr.b RefreshFiles move.l FirstDir(pc),a5 clr.l FirstDir move.w Dirs(pc),d7 clr.w Dirs clr.w TopDir bsr.s ListFree move.l FirstFile(pc),a5 clr.l FirstFile move.w Files(pc),d7 clr.w Files clr.w TopFile bra.s ListFree LF_Loop: move.l a5,a1 move.l (a5),a5 move\шГ'L"q #40,d0 move.l 4.w,a6 jsr -210(a6) ListFree: dbf d7,LF_Loop rts * Directory lesen ********************* ReadDir: bsr.s FreeBuffers moveq #-1,d0 move.w d0,ExJmp move.l d0,OldReqPos bsr.L ClearParts st RefreshDirs st RefreshFiles clr.w ExJmp bsr.s RD_UnLock move.l #DrawerText,d1 moveq #-2,d2 move.l DosBase(pc),a6 jsr Lock(a6) move.l d0,ActLock beq.s RD_Ex move.l ActLock(pc),d1 move.l FileInfoBlock(pc),d2 move.l DosBase(pc),a6 jsr Examine(a6)]шДЙИШ tst.l d0 beq.s RD_UnLock RD_Loop: move.w ExJmp(pc),d0 beq.s RD_Cont cmp.w #100,d0 bne.s RD_Ex clr.w ExJmp bsr.L FileSelected RD_Cont: move.l ActLock(pc),d1 move.l FileInfoBlock(pc),d2 move.l DosBase(pc),a6 jsr ExNext(a6) tst.l d0 beq.s RD_UnLock move.l FileInfoBlock(pc),a0 tst.l 4(a0) bmi.s RD_NoDir bsr.s AddDir bra.s RD_Loop RD_NoDir: bsr.s AddFile bra.s RD_Loop RD_Ex: rts RD_UnLock: move.l ActLock(pc),d1 beq.s RDUL_Ex clr.l ActLock move.l^шŸŽЕ DosBase(pc),a6 jsr UnLock(a6) RDUL_Ex: rts ActLock: dc.l 0 * File oder Dir in Liste einfuegen **** AddFile: clr.b RefreshFiles lea FirstFile(pc),a5 bsr.s AddFileIn addq.w #1,Files st RefreshFiles rts AddDir: clr.b RefreshDirs lea FirstDir(pc),a5 bsr.s AddFileIn addq.w #1,Dirs st RefreshDirs rts AddFileIn: bsr.L AllocFile ;a4:PT AFI_Next: tst.l (a5) beq.s AFI_Last move.l (a5),a1 bsr.L AFI_Compare bmi.s AFI_Ins move.l (a5),a5 bra.s AFI_Next AFI_InIшЖ5KЎšve.b ActPosition(pc),ActPointer+1 bra.s PlayIt PlayPattern: clr.w SongMode move.w ActPattern(pc),ActPointer PlayIt: bsr.l WaitDrives move.w #$4000,$dff09a bsr.L WaitLifted bsr.L ClearBuffs move.b #$40,0.w bsr.L GetTrkPos subq.w #1,PattY sub.l #32,TrkPos move.b SH_Speed(pc),ActSpeed clr.w ActCyC move.w #$f,$dff096 move.l #CBuff0,$dff0a0 move.l #CBuff1,$dff0b0 move.l #CBuff2,$dff0c0 move.l #CBuff3,$dff0d0 move.w #313,d0 move.w d0,$dff0a4 move.w d0JшЗs5>о,$dff0b4 move.w d0,$dff0c4 move.w d0,$dff0d4 move.w #227,d0 move.w d0,$dff0a6 move.w d0,$dff0b6 move.w d0,$dff0c6 move.w d0,$dff0d6 moveq #64,d0 move.w d0,$dff0a8 move.w d0,$dff0b8 move.w d0,$dff0c8 move.w d0,$dff0d8 bsr.L WaitTOP moveq #9,d0 PP_Wait2: dbf d0,PP_Wait2 move.w #$800f,$dff096 PP_Loop: bsr.L ReplayHandler lea PBuffs(pc),a2 movem.l (a2),a3-a4 lea CBuff0+313(pc),a5 bsr.L BuildBuff addq.w #8,a2 movem.l (a2),a3-a4 lea CBuff1+313(pcKшИйЉ!),a5 bsr.L BuildBuff addq.w #8,a2 movem.l (a2),a3-a4 lea CBuff2+313(pc),a5 bsr.L BuildBuff addq.w #8,a2 movem.l (a2),a3-a4 lea CBuff3+313(pc),a5 bsr.L BuildBuff bsr.L ReplayHandler lea PBuffs(pc),a2 movem.l (a2),a3-a4 lea CBuff0(pc),a5 bsr.s BuildBuff addq.w #8,a2 movem.l (a2),a3-a4 lea CBuff1(pc),a5 bsr.s BuildBuff addq.w #8,a2 movem.l (a2),a3-a4 lea CBuff2(pc),a5 bsr.s BuildBuff addq.w #8,a2 movem.l (a2),a3-a4 lea CBuff3(pc),a5 bsLшЙФ‰šхr.s BuildBuff btst #6,$bfe001 bne.L PP_Loop move.w #$f,$dff096 clr.w $dff0a8 clr.w $dff0b8 clr.w $dff0c8 clr.w $dff0d8 bsr.L InvertLine move.w CursorY(pc),d0 bsr.L SetPlanePT bsr.L PrintAll bsr.L WaitLifted bsr.L ClearMouseMove move.w #$c000,$dff09a rts * Buffer aufbauen ********************* GetSample: macro move.b (a0,d0.w),d4 add.b (a1,d1.w),d4 eor.b d5,d4 move.b d4,(a5)+ swap d0 swap d1 add.l d2,d0 add.l d3,d1 swap d0 swap d1 MшКмЪ endm BuildBuff: move.l 8(a3),d0 move.l 8(a4),d1 asr.l #3,d0 asr.l #3,d1 muls #313,d0 muls #313,d1 lsl.l #3,d0 lsl.l #3,d1 swap d0 swap d1 ext.l d0 ext.l d1 move.l 4(a3),d2 move.l 4(a4),d3 tst.l 8(a3) bpl.s BB_Ch1NRev exg d0,d2 BB_Ch1NRev: tst.l 8(a4) bpl.s BB_Ch2NRev exg d1,d3 BB_Ch2NRev: cmp.l d2,d0 blt.s BB_CH1Ok clr.l (a3) clr.l 4(a3) clr.l 8(a3) tst.l 12(a3) beq.s BB_Ch1Ok lea 12(a3),a3 add.l #12,(a2) BB_CH1Ok: cmp.l d3,d1 NшЛШЕаblt.s BB_CH2Ok clr.l (a4) clr.l 4(a4) clr.l 8(a4) tst.l 12(a4) beq.s BB_Ch2Ok lea 12(a4),a4 add.l #12,4(a2) BB_CH2Ok: move.l (a3),a0 move.l 8(a3),d2 move.l (a4),a1 move.l 8(a4),d3 moveq #0,d0 moveq #0,d1 moveq #9,d7 moveq #-128,d5 move.w #$f0f,$dff180 BB_Loop: GetSample GetSample GetSample GetSample GetSample GetSample GetSample GetSample GetSample GetSample GetSample GetSample GetSample GetSample GetSample GetSample GetSaOшМa§иxmple GetSample GetSample GetSample GetSample GetSample GetSample GetSample GetSample GetSample GetSample GetSample GetSample GetSample dbf d7,BB_Loop moveq #1,d7 BB_Loop2: GetSample GetSample GetSample GetSample GetSample GetSample dbf d7,BB_Loop2 GetSample clr.w $dff180 ext.l d0 ext.l d1 add.l d0,a0 add.l d1,a1 move.l a0,(a3) move.l a1,(a4) sub.l d0,4(a3) sub.l d1,4(a4) rts * ReplayHandler *********************** ReplPшНEœayHandler: bsr.L WaitTOP tst.w ActCyc bne.s RH_Effects bsr.s RH RH_Effects: subq.w #1,ActCyc move.l TrkPos(pc),a2 lea PBuffs(pc),a5 moveq #7,d7 RH_EffLoop: move.l (a5)+,a0 move.b 2(a2),d0 moveq #0,d1 move.b 3(a2),d1 cmp.b #30,d0 bne.s RH_NoSlideUp bsr.s RH_SlideUp RH_NoSlideUp: cmp.b #13,d0 bne.s RH_NoSlideDown bsr.s RH_SlideDown RH_NoSlideDown: addq.w #4,a2 dbf d7,RH_EffLoop rts RH_SlideUp: tst.l 8(a0) bmi.s RH_SlideDownD RH_SlideUpD: lsl.w #4,d1 QшОйR add.l d1,8(a0) rts RH_SlideDown: tst.l 8(a0) bmi.s RH_SlideUpD RH_SlideDownD: lsl.w #4,d1 sub.l d1,8(a0) rts RH: move.b ActSpeed(pc),ActCyc+1 add.l #32,TrkPos bsr.L InvertLine addq.w #1,PattY cmp.w #64,PattY bne.s RH_NoNewS clr.w PattY sub.l #64*32,TrkPos tst.w SongMode beq.s RH_NoNewS addq.w #1,ActPointer move.w ActPointer(pc),d0 cmp.b SH_Len(pc),d0 bne.s RH_NextPos clr.w ActPointer move.b SH_Speed(pc),ActSpeed RH_NextPos: bsr.L GetTrkPos RH_NRшПЩыoNewS: bsr.L InvertLine lea SampleTab(pc),a0 lea SH_Samples(pc),a1 move.l TrkPos(pc),a2 lea PBuff0(pc),a3 lea HBuff(pc),a4 lea PBuffs(pc),a5 move.b PlayChannels(pc),d6 moveq #7,d7 RH_Loop: btst d7,d6 beq.s RH_NoAction moveq #0,d0 move.b (a2),d0 beq.s RH_Cont move.l a3,(a5) subq.w #1,d0 add.w d0,d0 add.w d0,d0 move.l (a4,d0.w),8(a3) moveq #0,d0 move.b 1(a2),d0 lsl.w #3,d0 move.l (a0,d0.w),(a3) add.w d0,d0 add.w d0,d0 move.l 20(a1,d0.w),4SшЊЋбšЇ(a3) clr.l 12(a3) clr.l 16(a3) clr.l 20(a3) move.b 2(a2),d0 move.b 3(a2),d1 cmp.b #27,d0 bne.s RH_Cont bsr.s RH_Reverse RH_Cont: move.b 2(a2),d0 move.b 3(a2),d1 cmp.b #28,d0 bne.s RH_NoSpeed bsr.s RH_Speed RH_NoSpeed: cmp.b #15,d0 bne.s RH_NoFilter bsr.s RH_Filter RH_NoFilter: RH_NoAction: addq.w #4,a2 lea 28(a3),a3 addq.w #4,a5 dbf d7,RH_Loop rts * Speed aendern *********************** RH_Speed: tst.b d1 beq.s RH_SEx and.b #$F,D1 move.b d1>шСжboop addq.w #1,d0 rts * File zum schreiben oeffnen ********** OpenSFile: move.l FileName(pc),d1 move.l #1006,d2 move.l DosBase(pc),a6 jsr -30(a6) move.l d0,FileHandle rts * Teil eines Files speichern ********** SaveFilePart: move.l FileHandle(pc),d1 move.l FileBuffer(pc),d2 move.l FileLen(pc),d3 move.l DosBase(pc),a6 jmp -48(a6) * File schliessen ********************* CloseFile: move.l FileHandle(pc),d1 move.l DosBase(pc),a6 jmp -36(a6) FileHandle: dc.?шТkыŠУl 0 *************************************** * SAMPLES ***************************** *************************************** * Act Sample laden ******************** LoadSample: lea LoadSampleText(pc),a0 bsr.L FileSystem tst.l d0 ble.L LSa_Ex bsr.L AllocSample beq.L LSa_Ex move.l d0,FileBuffer move.l d1,FileLen move.l #FullFileText,FileName lea FileText(pc),a0 lea SH_Samples(pc),a1 move.w ActSample(pc),d0 lsl.w #5,d0 add.w d0,a1 moveq #19,d0 LS_NewName: m@шУ1a@эove.b (a0)+,(a1)+ dbf d0,LS_NewName move.l d1,(a1)+ clr.l (a1)+ clr.l (a1)+ bsr.L LoadFile move.l FileBuffer(pc),a0 move.l FileLen(pc),d0 move.b #$80,d2 LS_7Bit: move.b (a0),d1 eor.b d2,d1 lsr.b #1,d1 move.b d1,(a0)+ subq.l #1,d0 bne.s LS_7Bit LSa_Ex: move.w #-1,ActChipSample bra.L PrintAll LoadSampleText: dc.b 'Load Sample',0 * Sample loeschen ********************* ClearSample: bsr.s FreeSample lea SH_Samples(pc),a0 move.w ActSample(pc),d0 lsl.w AшФВpGи#5,d0 add.w d0,a0 moveq #7,d0 CS_Loop: clr.l (a0)+ dbf d0,CS_Loop bra.L PrintAll * ActSample+1 ************************* AddSample: cmp.w #35,ActSample beq.s AS_Ex addq.w #1,ActSample AS_Ex: bra.L PrintAll * Act Sample-1 ************************ SubSample: tst.w ActSample beq.L SSa_Ex subq.w #1,ActSample SSa_Ex: bra.L PrintAll * Act Sample freigeben **************** FreeSample: lea SampleTab(pc),a0 move.w ActSample(pc),d0 lsl.w #3,d0 add.w d0,a0 tst.BшХЛцˆl (a0) beq.s FS_Ready move.l (a0),a1 clr.l (a0)+ move.l (a0),d0 clr.l (a0)+ move.l 4.w,a6 jsr -210(a6) FS_Ready: rts * Act Sample reservieren ************** AllocSample: move.l d0,-(sp) bsr.s FreeSample move.l (sp),d0 move.l #$10000,d1 move.l 4.w,a6 jsr -198(a6) tst.l d0 beq.s AS_End lea SampleTab(pc),a0 move.w ActSample(pc),d1 lsl.w #3,d1 add.w d1,a0 move.l d0,(a0)+ move.l (sp),d1 move.l d1,(a0)+ AS_End: move.l (sp)+,d1 tst.l d0 rts CшЦъЈмWActSample: dc.w 0 SampleTab: blk.l [36*2],0 * File laden ************************** LoadFile: move.l FileName(pc),d1 move.l #1005,d2 move.l DosBase(pc),a6 jsr -30(a6) move.l d0,d7 beq.s LF_Ex move.l d7,d1 move.l FileBuffer(pc),d2 move.l FileLen(pc),d3 jsr -42(a6) move.l d7,d1 jsr -36(a6) LF_Ex: rts FileName: dc.l 0 FileBuffer: dc.l 0 FileLen: dc.l 0 * Speed + 1 *************************** AddSpeed: cmp.b #$f,SH_Speed beq.s AS_NoAdd addq.b #1,SH_Speed ADшЧ ИёќS_NoAdd: bra.L PrintAll * Speed - 1 *************************** SubSpeed: cmp.b #1,SH_Speed beq.s SS_NoSub subq.b #1,SH_Speed SS_NoSub: bra.L PrintAll * Pos +1 ****************************** AddPos: move.b SH_Len(pc),d0 subq.b #1,d0 cmp.b ActPosition(pc),d0 beq.s AP_Ex cmp.b #127,ActPosition beq.s AP_Ex addq.b #1,ActPosition bra.L PrintAll AP_Ex: rts * Pos -1 ****************************** SubPos: tst.b ActPosition beq.s SP_Ex subq.b #1,ActPosition brEшШvQ­4a.L PrintAll SP_Ex: rts * Add Position +1 ********************** AddActPos: lea SH_Patterns(pc),a0 moveq #0,d0 move.b ActPosition(pc),d0 cmp.b #31,(a0,d0.w) beq.s AAP_Ex addq.b #1,(a0,d0.w) bra.L PrintAll AAP_Ex: rts * Sub Position -1 ********************** SubActPos: lea SH_Patterns(pc),a0 moveq #0,d0 move.b ActPosition(pc),d0 tst.b (a0,d0.w) beq.s SAP_Ex subq.b #1,(a0,d0.w) bra.L PrintAll SAP_Ex: rts ActPosition: dc.w 0 * Len -1 *********************FшЩ7ОJ‘********* SubLen: cmp.b #1,SH_Len beq.s SL_Ex subq.b #1,SH_Len move.b ActPosition(pc),d0 cmp.b SH_Len(pc),d0 bne.L PrintAll subq.b #1,ActPosition bra.L PrintAll SL_Ex: rts * Len +1 ****************************** AddLen: cmp.b #128,SH_Len beq.s AL_Ex addq.b #1,SH_Len bra.L PrintAll AL_Ex: rts * Kanaele - ein - ausschalten ********* SwAllOn: st PlayChannels bra.L PrintAll SwAllOff: sf PlayChannels bra.L PrintAll SwChannel1: moveq #7,d0 bra.s SwChannelGшЪbE€ SwChannel2: moveq #6,d0 bra.s SwChannel SwChannel3: moveq #5,d0 bra.s SwChannel SwChannel4: moveq #4,d0 bra.s SwChannel SwChannel5: moveq #3,d0 bra.s SwChannel SwChannel6: moveq #2,d0 bra.s SwChannel SwChannel7: moveq #1,d0 bra.s SwChannel SwChannel8: moveq #0,d0 SwChannel: bchg d0,PlayChannels bra.L PrintAll PlayChannels: dc.w -1 *************************************** * Play-Routinen *********************** *************************************** GetTrkPos: tst.w SHшЕЛ'Ё№ongMode beq.s GTP_Patt move.w ActPointer(pc),-(sp) move.w (sp),d2 moveq #46,d0 moveq #0,d1 bsr.L PrintDez3 lea SH_Patterns(pc),a0 move.w (sp)+,d2 move.b (a0,d2.w),d2 move.w d2,-(sp) moveq #47,d0 moveq #1,d1 bsr.L PrintDez2 move.w (sp)+,d0 bra.s GTP_Ok GTP_Patt: move.w ActPointer(pc),d0 GTP_Ok: move.l SongPT(pc),a0 mulu #PattLen,d0 add.l d0,a0 move.l a0,TrkPos clr.w PattY rts SongMode: dc.w 0 ActPointer: dc.w 0 PlaySong: move.w #1,SongMode mo3шЬ–]ž%bsr.L InvRender move.l (a5),a0 move.l -(a0),d0 beq.s E_MLeft move.l d0,a1 tst.w E_RightFlag bne.s E_MRight E_MLeft: move.l -(a0),a1 E_MRight: move.l a5,-(sp) jsr (a1) move.l (sp)+,a5 move.l (a5),a0 bra.L InvRender EM_DecRep: subq.w #1,4(a5) EM_Ex: rts E_RightFlag: dc.w 0 E_NotPushed: clr.w 4(a5) E_RenderTest: lsr.w #3,d0 divu #12,d1 bsr.s E_TestIn bne.s E_NotIn cmp.l (a5),a0 beq.s ERT_Ex move.l (a5),a1 move.l a0,(a5) move.l a1,a0 move.l a0,d0 4шЭэГї3beq.s E_NoOldRender bsr.L InvRender E_NoOldRender: move.l (a5),a0 bra.L InvRender E_NotIn: move.l (a5),d0 beq.s ERT_Ex clr.l (a5) move.l d0,a0 bra.s InvRender ERT_Ex: rts E_TestIn: lea 6(a5),a0 E_TILoop: move.l (a0)+,a1 move.l a1,d2 beq.s E_Neg addq.w #4,a0 cmp.w (a0),d0 blt.s E_Next cmp.w 2(a0),d1 blt.s E_Next cmp.w 4(a0),d0 bgt.s E_Next cmp.w 6(a0),d1 bgt.s E_Next moveq #0,d0 rts E_Next: addq.w #8,a0 bra.s E_TILoop E_Neg: moveq #-1,d0 rt5шЮDŸ–”s * Rand a0 invertieren ***************** InvRenders: tst.w (a0) bmi.s IR_Ex bsr.s InvRender addq.w #8,a0 bra.s InvRenders IR_Ex: rts InvRender: move.l a0,d0 beq.L MR_Ready movem.w (a0),d0-d3 move.l MenuPlane(pc),a3 mulu #6*80,d1 add.w d0,d1 move.w d1,d5 lea -80(a3,d5.w),a1 tst.w 2(a0) beq.s MR_NoTOP MR_TOP: not.b (a1)+ cmp.w d0,d2 beq.s MR_NoTOP addq.w #1,d0 bra.s MR_TOP MR_NoTOP: movem.w (a0),d0-d3 tst.w d0 beq.s MR_LeftReady lea -1(a3,d56шЯDŽё.w),a1 moveq #1,d4 tst.w d1 beq.s MR_Left eor.b d4,-80(a1) MR_Left: eor.b d4,(a1) eor.b d4,80(a1) eor.b d4,80*2(a1) eor.b d4,80*3(a1) eor.b d4,80*4(a1) eor.b d4,80*5(a1) cmp.w d1,d3 beq.s MR_LeftReady lea 80*6(a1),a1 addq.w #1,d1 bra.s MR_Left MR_LeftReady: movem.w (a0),d0-d3 lea (a3,d5.w),a1 sub.w d0,d2 add.w d2,a1 moveq #-128,d4 cmp.w #79,4(a0) beq.s MR_RightReady tst.w d1 beq.s MR_Right eor.b d4,-79(a1) MR_Right: eor.b d4,1(a1) eor.b7шаЗPў d4,80+1(a1) eor.b d4,80*2+1(a1) eor.b d4,80*3+1(a1) eor.b d4,80*4+1(a1) eor.b d4,80*5+1(a1) cmp.w d1,d3 beq.s MR_RightReady lea 80*6(a1),a1 addq.w #1,d1 bra.s MR_Right MR_RightReady: movem.w (a0),d0-d3 mulu #6*80,d3 lea (a3,d3.w),a1 lea 5*80(a1),a1 add.w d0,a1 MR_Down: not.b (a1)+ cmp.w d0,d2 beq.s MR_Ready addq.w #1,d0 bra.s MR_Down MR_Ready: rts MenuExTable: dc.l 0 dc.w 0 dc.l LoadSample,0 dc.w 16,0,27,0 dc.l ClearSample,0 dc.w 16,1,27,8шбп‹аи1 dc.l EditSample,0 dc.w 16,2,27,2 dc.l LoadSong,0 dc.w 30,0,38,0 dc.l SaveSong,0 dc.w 30,1,38,1 dc.l PlaySong,0 dc.w 30,2,38,2 dc.l PlayPattern,0 dc.w 30,3,38,3 dc.l AddSample,SubSample dc.w 0,3,27,3 dc.l AddPos,SubPos dc.w 41,0,48,0 dc.l AddActPos,SubActPos dc.w 41,1,48,1 dc.l AddLen,SubLen dc.w 41,2,48,2 dc.l AddSpeed,SubSpeed dc.w 41,3,48,3 dc.l SwAllOn,SwAllOff dc.w 71,2,71,3 dc.l SwChannel1,0 dc.w 72,2,72,3 dc.l SwChannel2,0 9швдЊ=Adc.w 73,2,73,3 dc.l SwChannel3,0 dc.w 74,2,74,3 dc.l SwChannel4,0 dc.w 75,2,75,3 dc.l SwChannel5,0 dc.w 76,2,76,3 dc.l SwChannel6,0 dc.w 77,2,77,3 dc.l SwChannel7,0 dc.w 78,2,78,3 dc.l SwChannel8,0 dc.w 79,2,79,3 dc.l 0 *************************************** * SONGS ******************************* *************************************** * Song laden ************************** LoadSong: lea LoadSongText(pc),a0 bsr.L FileSystem tst.l d0 ble.s LS_Ex :шгІќя) move.l #FullFileText,FileName bsr.L OpenFile beq.s LS_Ex move.l #SongHeader,FileBuffer move.l #SongHeaderEnd-SongHeader,FileLen bsr.L LoadFilePart bsr.L GetHighestP mulu #PattLen,d0 move.l d0,FileLen move.l SongPT(pc),FileBuffer bsr.s LoadFilePart lea SongHeader(pc),a5 moveq #0,d7 LS_LoadSamples: move.l 20(a5),d0 move.l d0,FileLen move.w d7,ActSample bsr.L AllocSample beq.s LS_Next move.l d0,FileBuffer bsr.s LoadFilePart LS_Next: lea 32(a5),a5 a;шд•ЈРddq.w #1,d7 cmp.w #36,d7 bne.s LS_LoadSamples clr.w ActSample bsr.L CloseFile bsr.L PrintPattern LS_Ex: move.w #-1,ActChipSample bra.L PrintAll LoadSongText: dc.b 'Load Song',0 * File zum lesen oeffnen ************** OpenFile: move.l FileName(pc),d1 move.l #1005,d2 move.l DosBase(pc),a6 jsr -30(a6) move.l d0,FileHandle rts * Fileteil laden ********************** LoadFilePart: move.l FileHandle(pc),d1 move.l FileBuffer(pc),d2 move.l FileLen(pc),d3 mov<ше,ЙЦe.l DosBase(pc),a6 jmp -42(a6) * Song speichern ********************** SaveSong: lea SaveSongText(pc),a0 bsr.L FileSystem tst.l d0 bmi.s SS_Ex move.l #FullFileText,FileName bsr.L OpenSFile beq.s SS_Ex move.l #SongHeader,FileBuffer move.l #SongHeaderEnd-SongHeader,FileLen bsr.L SaveFilePart bsr.s GetHighestP mulu #PattLen,d0 move.l d0,FileLen move.l SongPT(pc),FileBuffer bsr.s SaveFilePart moveq #35,d7 lea SH_Samples(pc),a4 lea SampleTab(pc),a5 S=шРМU3S_SaveSamples: move.l (a5),d0 beq.s SS_Next move.l 20(a4),d1 beq.s SS_Next move.l d0,FileBuffer move.l d1,FileLen bsr.s SaveFilePart SS_Next: lea 32(a4),a4 lea 8(a5),a5 dbf d7,SS_SaveSamples bsr.s CloseFile SS_Ex: rts SaveSongText: dc.b 'Save Song',0 * Hoechste PatternNummer + 1 ermitteln* GetHighestP: lea SH_Patterns(pc),a0 moveq #0,d1 moveq #0,d0 moveq #127,d2 GHP_Loop: move.b (a0)+,d1 cmp.w d1,d0 bgt.s GHP_Cont move.w d1,d0 GHP_Cont: dbf d2,GHP_LѓшзAєQ1LC(a5) ; Adresse der Copperliste nach COP1LC CLR.W COPJMP1(a5) ; In Programmzфhler des Coppers laden ;Copper-DMA einschalten MOVE.W #$8280,DMACON(a5) ; Auf linke Maustaste warten Wait: BTST #6,CIAapra ; Bit testen BNE.S Wait ; Gesetzt? Dann warten. ; *** Nachprogramm *** ; Alte CopperList wieder aktivieren MOVE.L #GRname,a1 ; Parameter fќr OpenLibrary setzen CLR.L d0 JSR OpenLibrary(a6) ; Graphics іffnen MOVE.L d0,a4 ѓши:0ч8 ; Adresse von GraphicsBase nach A4 MOVE.L StartList(a4),COP1LC(a5) ; Adresse der StartList laden CLR.W COPJMP1(a5) MOVE.W #$83e0,DMACON(a5) ; Alle nіtigen DMA Kanфle ein JSR Permit(a6) ; Task Switching ein ;Speicher fќr CopperList wieder freigeben MOVE.L CLadr,a1 ; Parameter fќr FreeMem MOVEQ #CLsize,d0 JSR FreeMem(a6) ; Speicher freigeben Ende: CLR.L d0 ; FehlerFlag lіschen RTS ѓвG Љ† ; Ende des Programms ; Variablen CLadr: dc.l 0 ; Konstanten GRname: dc.b "graphics.library",0 EVEN ; CopperList CLstart: dc.w COLOR00,$0000 ; Hintergrund schwarz dc.w $780F,$FFFE ; Auf Zeile 120 warten dc.w COLOR00,$0F00 ; Auf Rot umschalten dc.w $D70F,$FFFE ; Zeile 215 dc.w COLOR00,$0FB0 ; Gold dc.w $FFFF,$FFFE ; unmіgliche Adresse -> Abbruch CLend: CLsize = CLend - CLstart ; Ende des Programms OVE.L d0,a4 +шкђЕš:sp) bsr.L KeyRepHandler bsr.L ControlMouse movem.l (sp)+,d0-d7/a0-a6 OldVBIInt: jmp 0 * neuer IO Interrupt ****************** NewIOInt: movem.l d0-d2/a0,-(sp) move.b $bfed01,d0 bclr #7,d0 bclr #3,d0 beq.L NII_Ex moveq #0,d2 move.b $bfec01,d2 bset #6,$bfee01 not.b d2 ror.b #1,d2 moveq #60,d1 NII_Wait: dbf d1,NII_Wait bclr #6,$bfee01 tst.b d2 bmi.s NII_ExtraKeys cmp.b #$40,d2 blt.s NII_NormKeys bgt.s NII_ExtraKeys move.b #' ',ActKey ;Leerzeich,шлЏыЗлen =$40 bra.s NII_NewKey NII_ExtraKeys: cmp.b #$65,d2 beq.L NII_AltOn1 cmp.b #$e5,d2 beq.L NII_AltOff1 cmp.b #$64,d2 beq.L NII_AltOn2 cmp.b #$e4,d2 beq.L NII_AltOff2 cmp.b #$61,d2 beq.L NII_ShiftOn1 cmp.b #$e1,d2 beq.L NII_ShiftOff1 cmp.b #$60,d2 beq.L NII_ShiftOn2 cmp.b #$e0,d2 beq.L NII_ShiftOff2 btst #7,d2 bne.s NII_StopRep sub.b #$40,d2 ;Extra-Zeichen >$40 cmp.b #$20,d2 bge.s NII_StopRep move.b d2,ActKey bra.s NII_NewKey NII_NormKey-шмGJ>s: lea RawNormTab(pc),a0 ;Normal-Zeichen <$40 tst.w ShiftMode beq.s NII_NoShift lea RawShiftTab(pc),a0 NII_NoShift: move.b (a0,d2.w),ActKey NII_NewKey: move.w #10,RepCounter move.b ActKey(pc),OldKey bra.s NII_Ex NII_StopRep: clr.w RepCounter NII_Ex: move.l 4.w,a0 move.l 120(a0),a0 move.l (a0),a0 move.l 14(a0),a0 or.b d0,41(a0) movem.l (sp)+,d0-d2/a0 OldIOInt: jmp 0 KeyRepHandler: tst.w RepCounter beq.s KRH_Noo subq.w #1,RepCounter bne.s KRH_Noo move.w #2,.шн”П$RepCounter move.b OldKey(pc),ActKey KRH_Noo: rts NII_AltOn1: bset #0,AltMode bra.s NII_Ex NII_AltOff1: bclr #0,AltMode bra.s NII_Ex NII_AltOn2: bset #1,AltMode bra.s NII_Ex NII_AltOff2: bclr #1,AltMode bra.s NII_Ex NII_ShiftOn1: bset #0,ShiftMode bra.s NII_Ex NII_ShiftOff1: bclr #0,ShiftMode bra.s NII_Ex NII_ShiftOn2: bset #1,ShiftMode bra.L NII_Ex NII_ShiftOff2: bclr #1,ShiftMode bra.L NII_Ex RawNormTab: dc.b '`1234567890-=\ 0' dc.b 'qwertyuiop[] 123' dc.b "asd/шоqЖЙfghjkl;' 456" dc.b 'zxcvbnm<>? .789' ActKey: dc.w 0 OldKey: dc.w 0 AltMode: dc.w 0 ShiftMode: dc.w 0 RepCounter: dc.w 0 * Mauspositionen ermitteln+setzen ***** ControlMouse: movem.w MousePos(pc),d0-d1 move.w $dff00a,d2 clr.w $dff036 move.w d2,d3 sub.w OldLoPos(pc),d2 and.w #$303,d3 move.w d3,OldLoPos move.w d2,d3 lsr.w #8,d3 ext.w d2 ext.w d3 0шпЧ№M add.w d2,d0 add.w d3,d1 CM_NoChange: tst.w d0 bpl.s CM_X1 moveq #0,d0 CM_X1: tst.w d1 bpl.s CM_Y1 moveq #0,d1 CM_Y1: cmp.w #639,d0 blt.s CM_x2 move.w #639,d0 CM_x2: cmp.w #514,d1 blt.s CM_y2 move.w #514,d1 CM_y2: movem.w d0-d1,MousePos lsr.w #1,d0 lsr.w #1,d1 lea Sprite1,a0 moveq #5,d3 SetSprite: add.w #128,d0 add.w #$2b,d1 move.w d1,d2 add.w d3,d2 moveq #0,d3 move.b d0,d3 ;Horiz Lo ror.l #1,d3 ;Vert End Hi ror.w #8,d2 move.b d2,d3 1шрИ2ror.l #1,d3 ;Vert Start Hi ror.w #8,d1 move.b d1,d3 and.b #1,d3 ror.l #6,d3 ;Vert End Lo rol.w #8,d2 move.b d2,d3 ror.l #8,d3 ;Horiz Start Hi lsr.w #1,d0 move.b d0,d3 ror.l #8,d3 ;Vert Start Lo rol.w #8,d1 move.b d1,d3 ror.l #8,d3 move.l d3,(a0) rts * MausMove auf 0 ********************** ClearMouseMove: clr.w $dff036 move.w $dff00a,OldLoPos rts MousePos: dc.l 0 OldLoPos: dc.w 0 Sprite1: dc.l 0 dc.l $0000F000,$6000A000,$7000D000,$3800A800,$12шЫІ%rТ0001000 dc.l 0 *************************************** * MENUES ****************************** *************************************** * AusfuehrungsPRG Ende ; CopperListe nach CLadr kopieren LEA CLstart,a0 MOVE.L CLadr,a1 MOVEQ #CLsize-1,d0 ; Schleifenzaфhler setzen CLcopy: MOVE.B (a0)+,(a1)+ ; CopperList ByteWeise kopieren DBF d0,CLcopy ; **** Hauptprogramm JSR ForBid(a6) ; Task-Switching aus LEA $DFF000,a5 ; BasisAdresse der Register nach A5 MOVE.W #$03a0,DMACON(a5) ; DMA sperren MOVE.L CLadr,COPёшэƒџZ =-138 ;(-) allocmem =-198 ;(d0-bytesize/d1-requirements) allocabs =-204 ;(d0-bytesize/a1-location) freemem =-210 ;(d0-bytesize/a1-location) oldopenlib =-408 ;(a1-libname) closelib =-414 ;(a1-libbase) ;--------------------------------------------------------------- ;dos offsets: ;--------------------------------------------------------------- open =-30 ;(d1-name/d2-accessmode) close =-36 ;(d1-filehandle) read =-42 ёшюзоsЛ ;(d1-filehandle/d2-buffer/d3-length) ;--------------------------------------------------------------- ;graphix offsets: ;--------------------------------------------------------------- clearscreen =-48 ;(a1-rastport) gtext =-60 ;(a1-rastport/a0-string/d0-count) setfont =-66 ;(a1-rastport/a0-textfont) loadrgb4 =-192 ;(a0-viewport/a1-colors/d0-count) initrastport =-198 ;(a1-rastport) gmove =-240 ;(a1-rastport/d0-x/d1-y) draw =-240 ёшяvЈ ;(a1-rastport/d0-x/d1-y) rectfill =-306 ;(a1-rastport/d0-xl/d1-yl/d2-xu/d3-yl) setapen =-342 ;(a1-rastport/d0-pen) setdrmd =-354 ;(a1-rastport/d0-drawmode) initbitmap =-390 ;(a0-bitmap/d0-depth/d1-width/d2-height) scrollraster =-396 ;(a1-rastport/d0-dx/d1-dy/d2-minx/d3-miny/ ; d4-maxx/d5-maxy) allocraster =-492 ;(d0-width/d1-height) ;--------------------------------------------------------------- ;diskfont offsets: ;-----ёш№†zZ---------------------------------------------------------- opendiskfont =-30 ;(a0-textattr) ;--------------------------------------------------------------- ;werte ;--------------------------------------------------------------- tiefe =2 hoehe =256 breite =320 con0 =%0010001000000000 con1 =0 con2 =0 dwstart =$3081 dwstop =$30c1 dfstart =$0038 dfstop =$00d0 mod1 =0 mod2 =0 ;-------------------------ё шё@(є-------------------------------------- ;mainprogram ;--------------------------------------------------------------- main: move.l 4,a6 JSR forbid(a6) lea $dff000,a5 move.w #$01f0,dmacon(a5) move.w #$4000,intena(a5) bsr openlibs bsr initscreen bsr initcopperlist move.l copperlistmemory,a0 move.l a0,cop1lc(a5) clr.w copjmp1(a5) bsr initregs move.l $6c,oldserver move.l #server,$6c move.w #$c000,intena(a5) move.w #$83c0,dmacon(a5) ;----------------------------------------ё шђ vжЦ----------------------- move.l bplmemory,a0 move.l #255,d0 ; Lфnge Balken1 loop1: move.l #$ffffffff,(a0) move.l #$ffffffff,4(a0) add.l #40,a0 dbra d0,loop1 move.l bplmemory,a0 add.l #breite*hoehe/8,a0 add.l #8,a0 ; Breitenposition move.l #255,d0 ; Lфnge des Balkens loop2: move.l #$ffffffff,(a0) move.l #$ffffffff,4(a0) add.l #40,a0 dbra d0,loop2 move.l bplmemory,a0 add.l #breite*hoehe/8,a0 add.l #16,a0 move.l #255,d0 loop3: move.l #$ffffffff,(a0) move.l #$ffffё шѓ]lк@ffff,4(a0) add.l #40,a0 dbra d0,loop3 move.l bplmemory,a0 add.l #16,a0 move.l #255,d0 loop4: move.l #$ffffffff,(a0) move.l #$ffffffff,4(a0) add.l #40,a0 dbra d0,loop4 wait: btst #6,$bfe001 bne wait ;--------------------------------------------------------------- bsr closelibs move.w #$0080,dmacon(a5) move.w #$4000,intena(a5) move.l oldcopperlist,cop1lc(a5) clr.w copjmp1(a5) move.l oldserver,$6c move.w #$81f0,dmacon(a5) move.w #$c000,intena(a5) move.l 4,a6 JSR peё шє‹/ЏФrmit(a6) clr.l d0 rts mainend: ;--------------------------------------------------------------- ;errors ;--------------------------------------------------------------- openliberror: move.l #10,d0 rts allocmemerror: move.l #20,d0 rts ;--------------------------------------------------------------- ;subroutines ;--------------------------------------------------------------- server: move sr,-(sp) btst #5,$dff01f bne vblank bra endserver vblank: movem.l d0-d7/a0-a6,-(sp) leё шѕšДКкa $dff000,a5 bsr makecopperlist move.l #30,d0 lea color1defs,a0 bsr scrollcup move.l #30,d0 lea color2defs,a0 bsr scrollcdown move.l #30,d0 lea color3defs,a0 bsr scrollcup move.l #30,d0 lea color4defs,a0 bsr scrollcdown movem.l (sp)+,d0-d7/a0-a6 endserver: move (sp)+,sr dc.w $4ef9 oldserver: dc.l 0 ;--------------------------------------------------------------- initregs: lea $dff000,a5 move.w #con0,bplcon0(a5) move.w #con1,bplcon1(a5) move.w #con2,bplcon2(a5) mёші Vrove.w #dwstart,diwstrt(a5) move.w #dwstop,diwstop(a5) move.w #dfstart,ddfstrt(a5) move.w #dfstop,ddfstop(a5) move.w #mod1,bpl1mod(a5) move.w #mod2,bpl2mod(a5) rts ;--------------------------------------------------------------- initscreen: move.l 4,a6 move.l #breite*hoehe*tiefe/8,d0 move.l #$10003,d1 JSR allocmem(a6) move.l d0,bplmemory beq allocmemerror move.l gfxbase,a6 lea bitmap,a0 move.l #tiefe,d0 move.l #breite,d1 move.l #hoehe,d2 JSR initbitmap(a6) move.l bpёшсПzT lmemory,planes lea rastport,a1 JSR initrastport(a6) move.l #bitmap,rbitmap move.l bplmemory,d1 lea planepointer,a1 move.l #hoehe*breite/8,d0 move.l #tiefe-1,d2 planeloop: swap d1 move.w d1,2(a1) swap d1 move.w d1,6(a1) add.l d0,d1 addq.l #8,a1 dbra d2,planeloop rts ;--------------------------------------------------------------- scrollcup: subq #2,d0 move.w (a0),d1 scrollcupon: move.w 2(a0),(a0)+ dbra d0,scrollcupon move.w d1,(a0) rts ;---------------------------шјГ'<ц and.w d0,d5 lsr.w #3,d5 add.w d5,d4 add.l a0,d4 clr.l d5 sub.w d1,d3 roxl.b #1,d5 tst.w d3 bge.s y2gy1 neg.w d3 y2gy1: sub.w d0,d2 roxl.b #1,d5 tst.w d2 bge.s x2gx1 neg.w d2 x2gx1: move.w d3,d1 sub.w d2,d1 bge.s dygdx exg d2,d3 dygdx: move.b okttabelle(pc,d5),d5 add.w d2,d2 wblit: btst #14,dmaconr(a5) bne.s wblit move.w d2,bltbmod(a5) sub.w d3,d2 bge.s signnl or.b #$40,d5 signnl: move.w d2,bltaptl(a5) sub.w d3,d2 move.w d2,bltamod(a5) move.w #$8000,bltшљ]щбѕadat(a5) move.w a2,bltbdat(a5) move.w #$ffff,bltafwm(a5) and.w #$000f,d0 ror.w #4,d0 or.w #$0bca,d0 move.w d0,bltcon0(a5) move.w d5,bltcon1(a5) move.l d4,bltcpth(a5) move.l d4,bltdpth(a5) move.w a1,bltcmod(a5) move.w a1,bltdmod(a5) lsl.w #6,d3 addq.w #2,d3 move.w d3,bltsize(a5) rts ;--------------------------------------------------------------- ;--------------------------------------------------------------- ;data: ;---------------------------------------------------шњ"›%­------------ okttabelle: dc.b 0 *4+1 dc.b 4 *4+1 dc.b 2 *4+1 dc.b 5 *4+1 dc.b 1 *4+1 dc.b 6 *4+1 dc.b 3 *4+1 dc.b 7 *4+1 dosname: dc.b "dos.library",0 dskfname: dc.b "diskfont.library",0 gfxname: dc.b "graphics.library",0 testtext: dc.b "testtext !",0 EVEN dosbase: dc.l 0 dskfbase: dc.l 0 gfxbase: dc.l 0 oldcopperlist: dc.l 0 copperlistmemory: dc.l 0 coppercolorlist: dc.l 0 bplmemory: dc.l 0 even color1deшћ4жjGfs: dc.w $000,$001,$002,$003,$004,$005,$006,$007,$008,$009,$00a dc.w $00b,$00c,$00d,$00e,$00f,$00e,$00d,$00c,$00b,$00a,$009 dc.w $008,$007,$006,$005,$004,$003,$002,$001 dc.w $000,$011,$022,$033,$044,$055,$066,$077,$088,$099,$0aa dc.w $0bb,$0cc,$0dd,$0ee,$0ff,$0ee,$0dd,$0cc,$0bb,$0aa dc.w $099,$088,$077,$066,$055,$044,$033,$022,$011 dc.w $ffff color2defs: dc.w $000,$110,$220,$330,$440,$550,$660,$770,$880,$990,$aa0 dc.w $bb0,$cc0,$dd0,$ee0,$ff0,$ee0,$dd0,$cc0,$bb0,$aa0,$990 dшќдН/c.w $880,$770,$660,$550,$440,$330,$220,$110 dc.w $000,$010,$020,$030,$040,$050,$060,$070,$080,$090 dc.w $0a0,$0b0,$0c0,$0d0,$0e0,$0f0,$0e0,$0d0,$0c0,$0b0,$0a0 dc.w $090,$080,$070,$060,$050,$040,$030,$020,$010 dc.w $ffff color3defs: dc.w $000,$111,$222,$333,$444,$555,$666,$777,$888,$999,$aaa dc.w $bbb,$ccc,$ddd,$eee,$fff,$eee,$ddd,$ccc,$bbb,$aaa,$999 dc.w $888,$777,$666,$555,$444,$333,$222,$111 dc.w $000,$111,$222,$333,$444,$555,$666,$777,$888,$999 dc.w $aaa,$bbb,$ccc,$ddd,$eш§#s‡ee,$fff,$eee,$ddd,$ccc,$bbb,$aaa dc.w $999,$888,$777,$666,$555,$444,$333,$222,$111 dc.w $ffff color4defs: dc.w $000,$100,$200,$300,$400,$500,$600,$700,$800,$900,$a00 dc.w $b00,$c00,$d00,$e00,$f00,$e00,$d00,$c00,$b00,$a00,$900 dc.w $800,$700,$600,$500,$400,$300,$200,$100 dc.w $000,$101,$202,$303,$404,$505,$606,$707,$808,$909,$a0a dc.w $b0b,$c0c,$d0d,$e0e,$f0f,$e0e,$d0d,$c0c,$b0b,$a0a dc.w $909,$808,$707,$606,$505,$404,$303,$202,$101 dc.w $ffff EVEN bitmap: blk.w 4,0 planeшў^жпs: blk.l 10,0 rastport: blk.l 1,0 rbitmap: blk.l 26,0 EVEN copperlistmain: planepointer: dc.w $0e0,0 dc.w $0e2,0 dc.w $0e4,0 dc.w $0e6,0 dc.w $0e8,0 dc.w $0ea,0 dc.w $0ec,0 dc.w $0ee,0 dc.w $0f0,0 dc.w $0f2,0 dc.w $0f4,0 dc.w $0f6,0 spritepointer: dc.w $120,0 dc.w $122,0 dc.w $124,0 dc.w $126,0 dc.w $128,0 dc.w $12a,0 dc.w $12c,0 dc.w $12e,0 dc.w $130,0 dc.w $132,0 dc.w $134,0 dc.w $136,0 dc.w $138,0 dc.w $13a,0 dc.w $13c,0 dc.w $13e,0 colors: copp6Xђ)erlistmainend: end $bbb,$aaa dc.w $999,$888,$777,$666,$555,$444,$333,$222,$111 dc.w $ffff color4defs: dc.w $000,$100,$200,$300,$400,$500,$600,$700,$800,$900,$a00 dc.w $b00,$c00,$d00,$e00,$f00,$e00,$d00,$c00,$b00,$a00,$900 dc.w $800,$700,$600,$500,$400,$300,$200,$100 dc.w $000,$101,$202,$303,$404,$505,$606,$707,$808,$909,$a0a dc.w $b0b,$c0c,$d0d,$e0e,$f0f,$e0e,$d0d,$c0c,$b0b,$a0a dc.w $909,$808,$707,$606,$505,$404,$303,$202,$101 dc.w $ffff EVEN bitmap: blk.w 4,0 planeёшПž›Кskpt = $020 dsklen = $024 dskdat = $026 refptr = $028 vposw = $02A vhposw = $02C copcon = $02E serdat = $030 serper = $032 potgo = $034 joytest = $036 strequ = $038 strvbl = $03A strhor = $03C strlong = $03E bltcon0 = $040 bltcon1 = $042 bltafwm = $044 bltalwm = $046 bltcpt = $048 bltbpt = $04C bltapt = $050 bltdpt = $054 bltsizёшj|e = $058 bltcmod = $060 bltbmod = $062 bltamod = $064 bltdmod = $066 bltcdat = $070 bltbdat = $072 bltadat = $074 dsksync = $07E cop1lc = $080 cop2lc = $084 copjmp1 = $088 copjmp2 = $08A copins = $08C diwstrt = $08E diwstop = $090 ddfstrt = $092 ddfstop = $094 dmacon = $096 clxcon = $098 intena = $09A intreq = $09C adkcon = $09E aud ёшьуЫЊ = $0A0 aud0 = $0A0 aud1 = $0B0 aud2 = $0C0 aud3 = $0D0 bplpt = $0E0 bplcon0 = $100 bplcon1 = $102 bplcon2 = $104 bpl1mod = $108 bpl2mod = $10A bpldat = $110 sprpt = $120 spr = $140 color = $180 ;--------------------------------------------------------------- ;exec offsets: ;--------------------------------------------------------------- forbid =-132 ;(-) permit шБffє1920/8,a0 add.l #8,a0 move.l #255,d0 loop2: move.l #$ffffffff,(a0) move.l #$ffffffff,4(a0) add.l #40,a0 dbra d0,loop2 move.l bplmemory,a0 add.l #Breite*Hoehe/8,a0 ;Breite * Hіhe add.l #16,a0 move.l #255,d0 loop3: move.l #$ffffffff,(a0) move.l #$ffffffff,4(a0) add.l #40,a0 dbra d0,loop3 move.l bplmemory,a0 add.l #16,a0 move.l #255,d0 loop4: move.l #$ffffffff,(a0) move.l #$ffffffff,4(a0) add.l #40,a0 dbra d0,loop4 clr.l d0 clr.l d1 clr.l d2 clr.l d3 move.ш#Міl bplmemory,a0 move.w #40,a1 move.w #$ffff,a2 move.w #200,d0 move.w #0,d1 move.w #319,d2 move.w #255,d3 bsr drawline move.l bplmemory,a0 add.l #$2800,a0 move.w #40,a1 move.w #$ffff,a2 move.w #200,d0 move.w #0,d1 move.w #319,d2 move.w #255,d3 ; bsr drawline wait: btst #6,$bfe001 bne wait ;--------------------------------------------------------------- wait2: btst #14,dmaconr(a5) bne wait2 move.l gfxbase,a6 JSR disownblitter(a6) bsr closelibs move.w #$0080,dmacш$:#on(a5) move.w #$4000,intena(a5) move.l oldcopperlist,cop1lc(a5) clr.w copjmp1(a5) move.l oldserver,$6c move.w #$81f0,dmacon(a5) move.w #$c000,intena(a5) move.l 4,a6 JSR permit(a6) clr.l d0 rts mainend: ;--------------------------------------------------------------- ;errors ;--------------------------------------------------------------- openliberror: move.l #10,d0 rts allocmemerror: move.l #20,d0 rts ;--------------------------------------------------------------- ;subшЂЩdroutines ;--------------------------------------------------------------- server: move sr,-(sp) btst #5,$dff01f bne vblank bra endserver vblank: movem.l d0-d7/a0-a6,-(sp) lea $dff000,a5 bsr makecopperlist move.l #60,d0 lea color1defs,a0 bsr scrollcup move.l #60,d0 lea color2defs,a0 bsr scrollcdown move.l #60,d0 lea color3defs,a0 bsr scrollcup move.l #60,d0 lea color4defs,a0 bsr scrollcdown movem.l (sp)+,d0-d7/a0-a6 endserver: move (sp)+,sr dc.w $4ef9 oldserver:  шїT‚N dc.l 0 ;--------------------------------------------------------------- initregs: lea $dff000,a5 move.w #con0,bplcon0(a5) move.w #con1,bplcon1(a5) move.w #con2,bplcon2(a5) move.w #dwstart,diwstrt(a5) move.w #dwstop,diwstop(a5) move.w #dfstart,ddfstrt(a5) move.w #dfstop,ddfstop(a5) move.w #mod1,bpl1mod(a5) move.w #mod2,bpl2mod(a5) rts ;--------------------------------------------------------------- initscreen: move.l 4,a6 move.l #81920*2/8,d0 ;Breite*Hіhe*Tiefe move.l # ш0w"$10003,d1 JSR allocmem(a6) move.l d0,bplmemory beq allocmemerror move.l gfxbase,a6 lea bitmap,a0 move.l #tiefe,d0 move.l #breite,d1 move.l #hoehe,d2 JSR initbitmap(a6) move.l bplmemory,planes lea rastport,a1 JSR initrastport(a6) move.l #bitmap,rbitmap move.l bplmemory,d1 lea planepointer,a1 move.l #81920/8,d0 move.l #tiefe-1,d2 planeloop: swap d1 move.w d1,2(a1) swap d1 move.w d1,6(a1) add.l d0,d1 addq.l #8,a1 dbra d2,planeloop rts ;-------------------------- ш 63нЩ------------------------------------- scrollcup: subq #2,d0 move.w (a0),d1 scrollcupon: move.w 2(a0),(a0)+ dbra d0,scrollcupon move.w d1,(a0) rts ;--------------------------------------------------------------- scrollcdown: move.l a0,a1 move.l d0,d2 mulu #2,d2 subq #2,d2 add.l d2,a0 move.w (a0),d1 subq #1,d0 scrollcdownon: subq #2,a0 move.w (a0),2(a0) dbra d0,scrollcdownon move.w d1,(a1) rts ;--------------------------------------------------------------- initcopper ш зЖМЪlist: move.l 4,a6 move.l gfxbase,a4 move.l 38(a4),oldcopperlist MOVE.L #copperlistmainend-copperlistmain+10000,d0 move.l #$10003,d1 JSR allocmem(a6) move.l d0,copperlistmemory beq allocmemerror move.l copperlistmemory,a1 lea copperlistmain,a0 move.l #copperlistmainend-copperlistmain,d0 copyloop: move.b (a0)+,(a1)+ dbra d0,copyloop move.l a1,a0 subq.l #1,a0 move.l a0,coppercolorlist ;--------------------------------------------------------------- makecopperlist: clr.l ш X—Л d0 clr.l d1 lea color1defs,a1 lea color2defs,a2 lea color3defs,a3 lea color4defs,a4 move.l coppercolorlist,a0 copperloop1: move.w #$180,(a0)+ move.w (a1)+,d1 cmp.w #$ffff,d1 bne no1 lea color1defs,a1 move.w (a1)+,d1 no1: move.w d1,(a0)+ move.w #$182,(a0)+ move.w (a2)+,d1 cmp.w #$ffff,d1 bne no2 lea color2defs,a2 move.w (a2)+,d1 no2: move.w d1,(a0)+ move.w #$184,(a0)+ move.w (a3)+,d1 cmp.w #$ffff,d1 bne no3 lea color3defs,a3 move.w (a3)+,d1 no3: move.w d1,(ш ŸйжЗa0)+ move.w #$186,(a0)+ move.w (a4)+,d1 cmp.w #$ffff,d1 bne no4 lea color4defs,a4 move.w (a4)+,d1 no4: move.w d1,(a0)+ addq.l #1,d0 move.b d0,(a0)+ move.b #$0f,(a0)+ move.w #$fffe,(a0)+ cmp.w #313,d0 beq copperloop1end cmp.w #256,d0 bne copperloop1 move.l #$ffdffffe,(a0)+ bra copperloop1 copperloop1end: move.l #$fffffffe,(a0)+ rts ;--------------------------------------------------------------- openlibs: move.l 4,a6 lea gfxname,a1 JSR oldopenlib(a6) move.l d0,gшїrsGfxbase beq openliberror ;lea dosname,a1 ;call oldopenlib ;move.l d0,dosbase ;beq openliberror ;lea dskfname,a1 ;call oldopenlib ;move.l d0,dskfbase ;beq openliberror rts ;--------------------------------------------------------------- closelibs: move.l 4,a6 move.l gfxbase,a1 JSR closelib(a6) ;move.l dosbase,a1 ;call closelib ;move.l dskfbase,a1 ;call closelib rts ;--------------------------------------------------------------- drawline: move.l a1,d4 mulu d1,d4 moveq #-$10,d5ш%ŒоФ #copperlistmainend-copperlistmain+10000,d0 move.l #$10003,d1 JSR allocmem(a6) move.l d0,copperlistmemory beq allocmemerror move.l copperlistmemory,a1 lea copperlistmain,a0 move.l #copperlistmainend-copperlistmain,d0 copyloop: move.b (a0)+,(a1)+ dbra d0,copyloop move.l a1,a0 subq.l #1,a0 move.l a0,coppercolorlist ;--------------------------------------------------------------- makecopperlist: clr.l d0 clr.l d1 lea color1defs,a1 lea color2defs,a2 lea color3defs,a3 leшъBkВa color4defs,a4 move.l coppercolorlist,a0 copperloop1: move.w #$180,(a0)+ move.w (a1)+,d1 cmp.w #$ffff,d1 bne no1 lea color1defs,a1 move.w (a1)+,d1 no1: move.w d1,(a0)+ move.w #$182,(a0)+ move.w (a2)+,d1 cmp.w #$ffff,d1 bne no2 lea color2defs,a2 move.w (a2)+,d1 no2: move.w d1,(a0)+ move.w #$184,(a0)+ move.w (a3)+,d1 cmp.w #$ffff,d1 bne no3 lea color3defs,a3 move.w (a3)+,d1 no3: move.w d1,(a0)+ move.w #$186,(a0)+ move.w (a4)+,d1 cmp.w #$ffff,d1 bne no4 lea cш­œГmolor4defs,a4 move.w (a4)+,d1 no4: move.w d1,(a0)+ addq.l #1,d0 move.b d0,(a0)+ move.b #$0f,(a0)+ move.w #$fffe,(a0)+ cmp.w #313,d0 beq copperloop1end cmp.w #256,d0 bne copperloop1 move.l #$ffdffffe,(a0)+ bra copperloop1 copperloop1end: move.l #$fffffffe,(a0)+ rts ;--------------------------------------------------------------- openlibs: move.l 4,a6 lea gfxname,a1 JSR oldopenlib(a6) move.l d0,gfxbase beq openliberror ;lea dosname,a1 ;call oldopenlib ;move.l d0,dosbaшЕЇв#se ;beq openliberror ;lea dskfname,a1 ;call oldopenlib ;move.l d0,dskfbase ;beq openliberror rts ;--------------------------------------------------------------- closelibs: move.l 4,a6 move.l gfxbase,a1 JSR closelib(a6) ;move.l dosbase,a1 ;call closelib ;move.l dskfbase,a1 ;call closelib rts ;--------------------------------------------------------------- drawline: move.l a1,d4 mulu d1,d4 moveq #-$10,d5 and.w d0,d5 lsr.w #3,d5 add.w d5,d4 add.l a0,d4 clr.l d5 sub.w d1,dш"ќ†№3 roxl.b #1,d5 tst.w d3 bge.s y2gy1 neg.w d3 y2gy1: sub.w d0,d2 roxl.b #1,d5 tst.w d2 bge.s x2gx1 neg.w d2 x2gx1: move.w d3,d1 sub.w d2,d1 bge.s dygdx exg d2,d3 dygdx: roxl.b #1,d5 move.b okttabelle(pc,d5),d5 add.w d2,d2 wblit: btst #14,dmaconr(a5) bne.s wblit move.w d2,bltbmod(a5) sub.w d3,d2 bge.s signnl or.b #$40,d5 signnl: move.w d2,bltaptl(a5) sub.w d3,d2 move.w d2,bltamod(a5) move.w #$8000,bltadat(a5) move.w a2,bltbdat(a5) move.w #$ffff,bltafwm(a5) ш•9мЄand.w #$000f,d0 ror.w #4,d0 or.w #$0bca,d0 move.w d0,bltcon0(a5) move.w d5,bltcon1(a5) move.l d4,bltcpth(a5) move.l d4,bltdpth(a5) move.w a1,bltcmod(a5) move.w a1,bltdmod(a5) lsl.w #6,d3 addq.w #2,d3 move.w d3,bltsize(a5) rts ;--------------------------------------------------------------- ;--------------------------------------------------------------- ;data: ;--------------------------------------------------------------- okttabelle: dc.b 0 *4+1 dc.b 4 *4+1 dc.b 2 *шј'§Ћ4+1 dc.b 5 *4+1 dc.b 1 *4+1 dc.b 6 *4+1 dc.b 3 *4+1 dc.b 7 *4+1 dosname: dc.b "dos.library",0 dskfname: dc.b "diskfont.library",0 gfxname: dc.b "graphics.library",0 testtext: dc.b "testtext !",0 EVEN dosbase: dc.l 0 dskfbase: dc.l 0 gfxbase: dc.l 0 oldcopperlist: dc.l 0 copperlistmemory: dc.l 0 coppercolorlist: dc.l 0 bplmemory: dc.l 0 even color1defs: dc.w $000,$001,$002,$003,$004,$005,$006,$007,$008,$009шEшд,$00a dc.w $00b,$00c,$00d,$00e,$00f,$00e,$00d,$00c,$00b,$00a,$009 dc.w $008,$007,$006,$005,$004,$003,$002,$001 dc.w $ffff color2defs: dc.w $000,$110,$220,$330,$440,$550,$660,$770,$880,$990,$aa0 dc.w $bb0,$cc0,$dd0,$ee0,$ff0,$ee0,$dd0,$cc0,$bb0,$aa0,$990 dc.w $880,$770,$660,$550,$440,$330,$220,$110 dc.w $ffff color3defs: dc.w $000,$111,$222,$333,$444,$555,$666,$777,$888,$999,$aaa dc.w $bbb,$ccc,$ddd,$eee,$fff,$eee,$ddd,$ccc,$bbb,$aaa,$999 dc.w $888,$777,$666,$555,$444,$333,$шb ё7222,$111 dc.w $000,$111,$222,$333,$444,$555,$666,$777,$888,$999 dc.w $aaa,$bbb,$ccc,$ddd,$eee,$fff,$eee,$ddd,$ccc,$bbb,$aaa dc.w $999,$888,$777,$666,$555,$444,$333,$222,$111 dc.w $ffff color4defs: dc.w $000,$100,$200,$300,$400,$500,$600,$700,$800,$900,$a00 dc.w $b00,$c00,$d00,$e00,$f00,$e00,$d00,$c00,$b00,$a00,$900 dc.w $800,$700,$600,$500,$400,$300,$200,$100 dc.w $000,$101,$202,$303,$404,$505,$606,$707,$808,$909,$a0a dc.w $b0b,$c0c,$d0d,$e0e,$f0f,$e0e,$d0d,$c0c,$b0b,$a0a dш™jаc.w $909,$808,$707,$606,$505,$404,$303,$202,$101 dc.w $ffff EVEN bitmap: blk.w 4,0 planes: blk.l 10,0 rastport: blk.l 1,0 rbitmap: blk.l 26,0 EVEN copperlistmain: planepointer: dc.w $0e0,0 dc.w $0e2,0 dc.w $0e4,0 dc.w $0e6,0 dc.w $0e8,0 dc.w $0ea,0 dc.w $0ec,0 dc.w $0ee,0 dc.w $0f0,0 dc.w $0f2,0 dc.w $0f4,0 dc.w $0f6,0 spritepointer: dc.w $120,0 dc.w $122,0 dc.w $124,0 dc.w $126,0 dc.w $128,0 dc.w $12a,0 dc.w $12c,0 dc.w $12e,0 dc.w $130,0 dc.w $132u<жо,0 dc.w $134,0 dc.w $136,0 dc.w $138,0 dc.w $13a,0 dc.w $13c,0 dc.w $13e,0 colors: copperlistmainend: end bbb,$aaa dc.w $999,$888,$777,$666,$555,$444,$333,$222,$111 dc.w $ffff color4defs: dc.w $000,$100,$200,$300,$400,$500,$600,$700,$800,$900,$a00 dc.w $b00,$c00,$d00,$e00,$f00,$e00,$d00,$c00,$b00,$a00,$900 dc.w $800,$700,$600,$500,$400,$300,$200,$100 dc.w $000,$101,$202,$303,$404,$505,$606,$707,$808,$909,$a0a dc.w $b0b,$c0c,$d0d,$e0e,$f0f,$e0e,$d0d,$c0c,$b0b,$a0a dш|лР414 ;(a1-libbase) ;--------------------------------------------------------------- ;dos offsets: ;--------------------------------------------------------------- open =-30 ;(d1-name/d2-accessmode) close =-36 ;(d1-filehandle) read =-42 ;(d1-filehandle/d2-buffer/d3-length) ;--------------------------------------------------------------- ;graphix offsets: ;--------------------------------------------------------------- clearscreen =-48 ;(a1-rasш­а!бtport) gtext =-60 ;(a1-rastport/a0-string/d0-count) setfont =-66 ;(a1-rastport/a0-textfont) loadrgb4 =-192 ;(a0-viewport/a1-colors/d0-count) initrastport =-198 ;(a1-rastport) gmove =-240 ;(a1-rastport/d0-x/d1-y) draw =-240 ;(a1-rastport/d0-x/d1-y) rectfill =-306 ;(a1-rastport/d0-xl/d1-yl/d2-xu/d3-yl) setapen =-342 ;(a1-rastport/d0-pen) setdrmd =-354 ;(a1-rastport/d0-drawmode) initbitmap =-390 ;(a0-bitmap/dшл6n0-depth/d1-width/d2-height) scrollraster =-396 ;(a1-rastport/d0-dx/d1-dy/d2-minx/d3-miny/ ; d4-maxx/d5-maxy) ownblitter =-456 ;(-) disownblitter=-462 ;(-) allocraster =-492 ;(d0-width/d1-height) ;--------------------------------------------------------------- ;diskfont offsets: ;--------------------------------------------------------------- opendiskfont =-30 ;(a0-textattr) ;--------------------------------------------------------------- ;w шфуRвerte ;--------------------------------------------------------------- tiefe =2 hoehe =256 breite =320 con0 =%1001001000000000 con1 =0 con2 =0 dwstart =$3081 dwstop =$30c1 dfstart =$003c dfstop =$00d4 mod1 =0 mod2 =0 ;--------------------------------------------------------------- ;mainprogram ;--------------------------------------------------------------- main: move.l 4,a6 JSR forbid(a6) lea $dff00 шзЦЊ0,a5 move.w #$01f0,dmacon(a5) move.w #$4000,intena(a5) bsr openlibs move.l gfxbase,a6 JSR ownblitter(a6) bsr initscreen bsr initcopperlist move.l copperlistmemory,a0 move.l a0,cop1lc(a5) clr.w copjmp1(a5) bsr initregs move.l $6c,oldserver move.l #server,$6c move.w #$c000,intena(a5) move.w #$83c0,dmacon(a5) ;--------------------------------------------------------------- move.l bplmemory,a0 move.w #80,a1 move.w #255,a3 move.w #639,a4 move.w #$3333,d7 Loop: rol.w # ш[ё з2,d7 move.w d7,a2 clr.w d6 SchleifeX: clr.w d1 move.w a3,d3 move.w d6,d0 move.w a4,d2 sub.w d6,d2 bsr drawline addq.w #4,d6 cmp.w a4,d6 ble.s schleifex clr.w d6 schleifey: move.w a4,d0 clr.w d2 move.w d6,d1 move.w a3,d3 sub.w d6,d3 bsr drawline addq.w #2,d6 cmp.w a3,d6 ble.s schleifey btst #6,$bfe001 bne loop ;--------------------------------------------------------------- wait2: btst #14,dmaconr(a5) bne wait2 move.l gfxbase,a6 JSR disownblitter(a6) bsr cl шыŸл•oselibs move.w #$0080,dmacon(a5) move.w #$4000,intena(a5) move.l oldcopperlist,cop1lc(a5) clr.w copjmp1(a5) move.l oldserver,$6c move.w #$81f0,dmacon(a5) move.w #$c000,intena(a5) move.l 4,a6 JSR permit(a6) clr.l d0 rts mainend: ;--------------------------------------------------------------- ;errors ;--------------------------------------------------------------- openliberror: move.l #10,d0 rts allocmemerror: move.l #20,d0 rts ;----------------------------------------- ш АУo---------------------- ;subroutines ;--------------------------------------------------------------- server: move sr,-(sp) btst #5,$dff01f bne vblank bra endserver vblank: movem.l d0-d7/a0-a6,-(sp) lea $dff000,a5 bsr makecopperlist move.l #30,d0 lea color1defs,a0 bsr scrollcup move.l #30,d0 lea color2defs,a0 bsr scrollcdown movem.l (sp)+,d0-d7/a0-a6 endserver: move (sp)+,sr dc.w $4ef9 oldserver: dc.l 0 ;--------------------------------------------------------------- ш!!yрinitregs: lea $dff000,a5 move.w #con0,bplcon0(a5) move.w #con1,bplcon1(a5) move.w #con2,bplcon2(a5) move.w #dwstart,diwstrt(a5) move.w #dwstop,diwstop(a5) move.w #dfstart,ddfstrt(a5) move.w #dfstop,ddfstop(a5) move.w #mod1,bpl1mod(a5) move.w #mod2,bpl2mod(a5) rts ;--------------------------------------------------------------- initscreen: move.l 4,a6 move.l #breite*hoehe*tiefe/8,d0 move.l #$10003,d1 JSR allocmem(a6) move.l d0,bplmemory beq allocmemerror move.l gfxbaш"NEsЕse,a6 lea bitmap,a0 move.l #tiefe,d0 move.l #breite,d1 move.l #hoehe,d2 JSR initbitmap(a6) move.l bplmemory,planes lea rastport,a1 JSR initrastport(a6) move.l #bitmap,rbitmap move.l bplmemory,d1 lea planepointer,a1 move.l #hoehe*breite/8,d0 move.l #tiefe-1,d2 planeloop: swap d1 move.w d1,2(a1) swap d1 move.w d1,6(a1) add.l d0,d1 addq.l #8,a1 dbra d2,planeloop rts ;--------------------------------------------------------------- scrollcup: subq #2,d0 move.w (a0),ш Ў“™Жd1 scrollcupon: move.w 2(a0),(a0)+ dbra d0,scrollcupon move.w d1,(a0) rts ;--------------------------------------------------------------- scrollcdown: move.l a0,a1 move.l d0,d2 mulu #2,d2 subq #2,d2 add.l d2,a0 move.w (a0),d1 subq #1,d0 scrollcdownon: subq #2,a0 move.w (a0),2(a0) dbra d0,scrollcdownon move.w d1,(a1) rts ;--------------------------------------------------------------- initcopperlist: move.l 4,a6 move.l gfxbase,a4 move.l 38(a4),oldcopperlist move.lш$VњAM ADD.L #Planesize,d1 ; Adresse der nфchsten Plane DBF d4,MakeCL MOVE.L #$FFFFFFFE,(a0) ; Ende der CopperList ; **** Hauptprogramm ***** JSR Forbid(a6) ; TaskSwitching aus LEA $DFF000,a5 ; DMA-BasisAdresse MOVE.W #$03e0,DMACON(a5) ; DMA aus ; Copper initialisieren MOVE.L CLadr,COP1LC(a5) ; Adresse der Copperliste nach COP1LC CLR.W COPJMP1(a5) ; In Programmzфhler des Coppers laden ; FarbTabelle mit unterschiedlichen Farben fќllen MOVEш%њТQ #31,d0 ; Zфhler fќr FarbRegister LEA COLOR00(a5),a1 MOVEQ #1,d1 ; erste Farbe SetTab: MOVE.W d1,(a1)+ ; Farbe in Farbregister MULU #3,d1 ; Nфchste Farbe berechnen DBF d0,SetTab ; Playfiel initialisieren MOVE.W #$3081,DIWSTRT(a5) ; StandardWerte fќr MOVE.W #$30c1,DIWSTOP(a5) ; BildschirmFenster MOVE.W #$0038,DDFSTRT(a5) ; und BitPlane-DMA MOVE.W #$00d0,DDFSTOP(a5) ; MOVE.W #%0110001000000000,BPLCON0(a5) ; 6 BitPlanes Cш&%l LR.W BPLCON1(a5) ; kein Scrolling CLR.W BPLCON2(a5) ; Prioritфt ist egal CLR.W BPL1MOD(a5) ; MODULO fќr alle Planes =0 CLR.W BPL2MOD(a5) MOVE.W #$8380,DMACON(a5) ; DMA ein ; BitPlane modifizieren MOVEQ #40,d5 ; Bytes pro Zeile = 40 CLR.L d2 ; Mit Farbe0 beginnen loop: CLR.L d0 MOVE.W VHPOSR(a5),d0 ; Zufallswert nach d0 AND.W #$3ffe,d0 ; ќberflќssige Bits ausmarkieren CMP.W #$2580,d0 ; Grіпer als Plane ? BCS Wei ш'€“чСter ; Wenn nein,dann weiter AND.W #$1ffe,d0 ; Sonst oberes Bit lіschen Weiter: MOVE.L Planeadr,a4 ; Adresse der 1. Biplane nach a4 ADD.L d0,a4 ; Adresse des Blocks berechnen MOVEQ #5,d4 ; Zфhler fќr BitPlanes MOVE.L d2,d3 ; Farbe in Arbeitsregister Block: CLR.L d1 LSR #1,d3 ; ein Bit aus Farbnummer in X-Flag NEGX.W d1 ; d1 an X-Flag angleichen MOVEQ #15,d0 ; 16 Zeilen pro Block MOVE.L a4,a3 ; Bloc ш(Y”УkAdresse in ArbeitsRegister Fill: MOVE.W d1,(a3) ; Wort in Bitplane ADD.L d5,a3 ; Nфchste Zeile errechnen DBF d0,Fill ADD.L #Planesize,a4 ; Nфchste BitPlane DBF d4,Block ADDQ.B #1,d2 ; Nфchste Farbe BTST #6,CIAapra ; MausTaste gedrќckt ? BNE Loop ; Nein -> weitermachen ; *** Nachprogramm *** ; Alte CopperList wieder aktivieren MOVE.L #GRname,a1 ; Parameter fќr OpenLibrary setzen CLR.L d0 JSR OpenLibrary(a6)  ш)3>. ; Graphics іffnen MOVE.L d0,a4 ; Adresse von GraphicsBase nach A4 MOVE.L StartList(a4),COP1LC(a5) ; Adresse der StartList laden CLR.W COPJMP1(a5) MOVE.W #$83e0,DMACON(a5) ; Alle nіtigen DMA Kanфle ein JSR Permit(a6) ; Task Switching ein ;Speicher fќr CopperList wieder freigeben MOVE.L CLadr,a1 ; Parameter fќr FreeMem MOVEQ #CLsize,d0 JSR FreeMem(a6) ; Speicher freigeben ; Speicher fќr Bitplanes freigeb HЩWнen FreePlane: MOVE.L Planeadr,a1 MOVE.L #Planesize*6,d0 JSR FreeMem(a6) Ende: CLR.L d0 ; FehlerFlag lіschen RTS ; Ende des Programms ; Variablen CLadr: dc.l 0 Planeadr: dc.l 0 test: dc.l 0 ; Konstanten GRname: dc.b "graphics.library",0 ; Ende des Programms  Nachprogramm *** ; Alte CopperList wieder aktivieren MOVE.L #GRname,a1 ; Parameter fќr OpenLibrary setzen CLR.L d0 JSR OpenLibrary(a6) ш+КФY = $03E bltcon0 = $040 bltcon1 = $042 bltafwm = $044 bltalwm = $046 bltcpth = $048 bltcptl = $04a bltbpth = $04c bltbptl = $04e bltapth = $050 bltaptl = $052 bltdpth = $054 bltdptl = $056 bltsize = $058 bltcmod = $060 bltbmod = $062 bltamod = $064 bltdmod = $066 bltcdat = $070 bltbdat = $072 bltadat = $074 dsksync = $07E cop1lc = $080 cop2lc =ш,Е‰Z $084 copjmp1 = $088 copjmp2 = $08A copins = $08C diwstrt = $08E diwstop = $090 ddfstrt = $092 ddfstop = $094 dmacon = $096 clxcon = $098 intena = $09A intreq = $09C adkcon = $09E aud = $0A0 aud0 = $0A0 aud1 = $0B0 aud2 = $0C0 aud3 = $0D0 bplpt = $0E0 bplcon0 = $100 bplcon1 = $102 bplcon2 = $104 bpl1mod = $108 bpl2mod = $1шож70A bpldat = $110 sprpt = $120 spr = $140 color = $180 ;--------------------------------------------------------------- ;exec offsets: ;--------------------------------------------------------------- forbid =-132 ;(-) permit =-138 ;(-) allocmem =-198 ;(d0-bytesize/d1-requirements) allocabs =-204 ;(d0-bytesize/a1-location) freemem =-210 ;(d0-bytesize/a1-location) oldopenlib =-408 ;(a1-libname) closelib =-ш*ъбSєdat = $00E adkconr = $010 pot0dat = $012 pot1dat = $014 potinp = $016 serdatr = $018 dskbytr = $01A intenar = $01C intreqr = $01E dskpt = $020 dsklen = $024 dskdat = $026 refptr = $028 vposw = $02A vhposw = $02C copcon = $02E serdat = $030 serper = $032 potgo = $034 joytest = $036 strequ = $038 strvbl = $03A strhor = $03C strlong Їш/. P0,DMACON(a5) ; DMA ein ; Bitplanes mit Schachbrettmuster fќllen MOVE.L Planeadr,a0 MOVE.W #Planesize/2-1,d0 ; Schleifenzфhler MOVE.W #13*16,d1 ; Hіhe = 16 Zeilen MOVE.L #$FFFF0000,d2 ; Schachbrettmuster MOVE.W d1,d3 fill: MOVE.L d2,(a0)+ SUBQ.W #1,d3 BNE.S weiter SWAP d2 ; Muster wechseln MOVE.W d1,d3 weiter: DBF d0,fill ; Playfields scrollen CLR.L d0 ; Vertikale Scroll-Position CLR.L Ї ш0жУюd1 ; Horizontale Scroll-Position MOVE.L CLadr,a1 ; Adresse der CopperList MOVE.L Planeadr,a0 ; Adresse der ersten Bitplane ; Auf Rasterzeile 16 warten (nach den Exec-Interrupts) wait: MOVE.L VPOSr(a5),d2 ; Position lesen AND.L #$0001FF00,d2 ; Horizontale Bits ausmarkieren CMP.L #$00001000,d2 ; Auf Zeile 16 warten BNE.S wait ; Playfield 1 vertikal scrollen ADDQ.B #2,d0 ; Vertikalen Scroll-Zфhler erhіhen CMP.W #$80,d0 ; Schon auf 12Ї ш1ЅЂ9ѓ8 (4*32) ? BNE.S novover CLR.L d0 ; Dann zurќck auf 0 novover: MOVE.L d0,d2 ; Scroll-Zфhler kopieren LSR.W #2,d2 ; Kopie durch 4 dividieren MULU #52,d2 ; Anzahl Bytes/Zeile * Scroll Position ADD.L a0,d2 ; Plus Adresse erster Plane ADD.L #Planesize,d2 ; Plus Plane-Grіпe MOVE.W d2,14(a1) ; Ergibt Endadresse fќr CopperList SWAP d2 MOVE.W d2,10(a1) ; ; Playfield 2 horizontal Scrollen ADDQ.B #1,d1 ; HorizontaleЇ ш25 tn Scroll-Zфhler erhіhen CMP.W #$80,d1 ; Schon auf 128 ? BNE.S nohover CLR.L d1 ; Dann auf 0 nohover: MOVE.L d1,d2 ; Scroll Zфhler kopieren LSR.W #2,d2 ; Kopie durch 4 dividieren MOVE.L d2,d3 ; Scroll Position kopieren AND.W #$FFF0,d2 ; Untere 4 Bit ausmaskieren SUB.W d2,d3 ; Untere 4 Bit in d3 isolieren MOVE.W d4,BPLCON1(a5) ; Letzeren Wert in BPLCON1 MOVE.W d3,d4 ; Neuen Scroll-Wert nach d4 LSR.W #3,d2 Ї ш3ЄЦтѓ ; Neue Adresse fќr CopperList ADD.L a0,d2 ; ausrechnen MOVE.W d2,6(a1) ; und in Copper-List schreiben SWAP d2 MOVE.W d2,2(a1) ; Auf linke Maustaste warten BTST #6,CIAapra ; Bit testen BNE.S Wait ; Nein -> weitermachen ; *** Nachprogramm *** ; Alte CopperList wieder aktivieren end: MOVE.L #GRname,a1 ; Parameter fќr OpenLibrary setzen CLR.L d0 JSR OpenLibrary(a6) ; Graphics іffnen MOVE.L d0,a4 Ї ш4І)N† ; Adresse von GraphicsBase nach A4 MOVE.L StartList(a4),COP1LC(a5) ; Adresse der StartList laden CLR.W COPJMP1(a5) MOVE.W #$83e0,DMACON(a5) ; Alle nіtigen DMA Kanфle ein JSR Permit(a6) ; Task Switching ein ;Speicher fќr CopperList wieder freigeben MOVE.L CLadr,a1 ; Parameter fќr FreeMem MOVEQ #CLsize,d0 JSR FreeMem(a6) ; Speicher freigeben ; Speicher fќr Bitplanes freigeben FreePlane: MOVE.L Planeadr,a1 MOVE.L #PlaneЇ&1œђsize*2,d0 JSR FreeMem(a6) Ende: CLR.L d0 ; FehlerFlag lіschen RTS ; Ende des Programms ; Variablen CLadr: dc.l 0 Planeadr: dc.l 0 test: dc.l 0 ; Konstanten GRname: dc.b "graphics.library",0 ; CopperList ; Ende des Programms  Alte CopperList wieder aktivieren end: MOVE.L #GRname,a1 ; Parameter fќr OpenLibrary setzen CLR.L d0 JSR OpenLibrary(a6) ; Graphics іffnen MOVE.L d0,a4 ш#Шпђ` Fehler -> Speicher freigeben ; CopperList erstellen MOVEQ #5,d4 ; 6 Bitplanes MOVE.L d0,a0 ; Adresse der CopperList nach a0 MOVE.L Planeadr,d1 MOVE.W #BPL1PTH,d3 ; erstes Register nach d3 MakeCL: MOVE.W d3,(a0)+ ADDQ.W #2,d3 SWAP d1 MOVE.W d1,(a0)+ ; HI-Wort der PlaneAdresse ins RAM MOVE.W d3,(a0)+ ; BPLxPTL ins RAM ADDQ.W #2,d3 ; Nфchstes Register SWAP d1 MOVE.W d1,(a0)+ ; LO-Wort der PlaneAdresse ins Rш7Ш•Ÿ BPLCON1 = $102 ; 1 (ScrollWerte) BPLCON2 = $104 ; 2 (Sprite<>Playfield Prioritфt) BPL1PTH = $0E0 ; Zeiger auf 1. Bitplane BPL1PTL = $0E2 ; BPL1MOD = $108 ; Modulo Wert fќr ungerade BitPlanes BPL2MOD = $10A ; Modulo Wert fќr gerade BitPlanes DIWSTRT = $08E ; Start des Bildschirmfensters DIWSTOP = $090 ; Ende des Bildschirmfensters DDFSTRT = $092 ; BitPlane-DMA Start DDFSTOP = $094 ; BitPlane-DMA Stop ; CIA-A PortRegister A (MausTaste) CIAapra = $BFE00ш8Ри2Y1 ; EXEC Library Base OffSets OpenLibrary = -30-522 ; LibName,Version/a1,d0 ForBid = -30-102 PerMit = -30-108 AllocMem = -30-168 ; ByteSize,Requirements/d0,d1 FreeMem = -30-180 ; MemoryBlock,ByteSize /a1,d0 ; GRAPHICS Base StartList = 38 ; Sonstige Label Execbase = 4 Planesize = 40*256 ; Grіпe der Bitplanes CLsize = 13*4 ; Die CopperListe enthфlt 13 Befehle Chip = 2 ; CHIP Ram anfordern Clear = Chip+$10ш5м‹Ю000 ; ChipRam vorher lіschen ; Speicher fќr Bitplanes anfordern Start: MOVE.L Execbase,a6 MOVE.L #Planesize*6,d0 ; Speicherbedarf der Planes MOVE.L #clear,d1 ; lіschen JSR AllocMem(a6) ; Speicher anfordern MOVE.L d0,Planeadr ; Adresse des RAM-Bereiches retten BEQ Ende ; Falls Fehler -> Ende ; Speicher fќr Copperlist anfordern MOVEQ #CLsize,d0 MOVEQ #chip,d1 JSR AllocMem(a6) MOVE.L d0,CLadr ; Adresse retten BEQ FreePlane ;zш:у‚--------------- ;data: ;--------------------------------------------------------------- okttabelle: dc.b 0 *4+1 dc.b 4 *4+1 dc.b 2 *4+1 dc.b 5 *4+1 dc.b 1 *4+1 dc.b 6 *4+1 dc.b 3 *4+1 dc.b 7 *4+1 dosname: dc.b "dos.library",0 dskfname: dc.b "diskfont.library",0 gfxname: dc.b "graphics.library",0 testtext: dc.b "testtext !",0 EVEN dosbase: dc.l 0 dskfbase: dc.l 0 gfxbase: dc.l 0 oldcopperlist: dc.l 0 copperlistmemzш;лнѓНory: dc.l 0 coppercolorlist: dc.l 0 bplmemory: dc.l 0 even color1defs: dc.w $000,$001,$002,$003,$004,$005,$006,$007,$008,$009,$00a dc.w $00b,$00c,$00d,$00e,$00f,$00e,$00d,$00c,$00b,$00a,$009 dc.w $008,$007,$006,$005,$004,$003,$002,$001 dc.w $ffff color2defs: dc.w $000,$110,$220,$330,$440,$550,$660,$770,$880,$990,$aa0 dc.w $bb0,$cc0,$dd0,$ee0,$ff0,$ee0,$dd0,$cc0,$bb0,$aa0,$990 dc.w $880,$770,$660,$550,$440,$330,$220,$110 dc.w $ffff color3defs: dc.w $000,$111,$222,$33zшPlayfield Prioritфt) BPL1PTH = $0E0 ; Zeiger auf 1. Bitplane BPL1PTL = $0E2 ; BPL1MOD = $108 ; Modulo Wert fќr ungerade BitPlanes BPL2MOD = $10A ; Modulo Wert fќr gerade BitPlanes DIWSTRT = $08E ; Start des Bildschirmfensters DIWSTOP = $090 ; Ende des Bildschirmfensters DDFSTRT = $092 ; BitPlane-DMA Start DDFSTOP = $094 ; BitPlane-DMA StoЇш@Є№e(p ; CIA-A PortRegister A (MausTaste) CIAapra = $BFE001 ; EXEC Library Base OffSets OpenLibrary = -30-522 ; LibName,Version/a1,d0 ForBid = -30-102 PerMit = -30-108 AllocMem = -30-168 ; ByteSize,Requirements/d0,d1 FreeMem = -30-180 ; MemoryBlock,ByteSize /a1,d0 ; GRAPHICS Base StartList = 38 ; Sonstige Label Execbase = 4 Planesize = 52*345 ; Grіпe der Bitplanes Planewidth = 52 ; CLsize = 5*4 ; Die CopperListe enthфltЇшAшбАм 5 Befehle Chip = 2 ; CHIP Ram anfordern Clear = Chip+$10000 ; ChipRam vorher lіschen ; Speicher fќr Bitplanes anfordern Start: MOVE.L Execbase,a6 MOVE.L #Planesize*2,d0 ; Speicherbedarf der Planes MOVE.L #clear,d1 ; lіschen JSR AllocMem(a6) ; Speicher anfordern MOVE.L d0,Planeadr ; Adresse des RAM-Bereiches retten BEQ.L Ende ; Falls Fehler -> Ende ; Speicher fќr Copperlist anfordern MOVEQ #CLsize,d0 MOVEQ #chip,d1 JSR ЇшBЏч AllocMem(a6) MOVE.L d0,CLadr ; Adresse retten BEQ.L FreePlane ; Fehler -> Speicher freigeben ; CopperList erstellen MOVEQ #1,d4 ; 2 Bitplanes MOVE.L d0,a0 MOVE.L Planeadr,d1 MOVE.W #BPL1PTH,d3 MakeCL: MOVE.W d3,(a0)+ ADDQ.W #2,d3 SWAP d1 MOVE.W d1,(a0)+ MOVE.W d3,(a0)+ ADDQ.W #2,d3 SWAP d1 MOVE.W d1,(a0)+ ADD.L #Planesize,d1 ; Adresse der nфchsten Plane DBF d4,MakeCL MOVE.L #$FFFFFFFE,(a0) ; Ende der CopperList ; **** ЇшC˜}ЩHauptprogramm ***** JSR Forbid(a6) ; TaskSwitching aus LEA $DFF000,a5 ; DMA-BasisAdresse MOVE.W #$01E0,DMACON(a5) ; DMA aus ; Copper initialisieren MOVE.L CLadr,COP1LC(a5) ; Adresse der Copperliste nach COP1LC CLR.W COPJMP1(a5) ; In Programmzфhler des Coppers laden ;Playfield initialisieren MOVE.W #0,COLOR00(a5) ; Hintergrund schwarz MOVE.W #$0F00,COLOR00+2(a5) ; Farbe2 -> Rot MOVE.W #$00F0,COLOR00+18(a5) ; Farbe18 Їш.юН$t-> Grќn MOVE.W #$1A64,DIWSTRT(a5) ; 26,100 MOVE.W #$39d1,DIWSTOP(a5) ; 313,465 MOVE.W #$0020,DDFSTRT(a5) ; ein zusфtzliches Word MOVE.W #$00d8,DDFSTOP(a5) ; MOVE.W #%0010011000000000,BPLCON0(a5) ; Dual Plafield an CLR.W BPLCON1(a5) ; Scrollwert am Anfang auf 0 CLR.W BPLCON2(a5) ; Playfield 1 vor Pfield 2 MOVE.W #4,BPL1MOD(a5) ; Modulo auf 2 Worte MOVE.W #4,BPL2MOD(a5) MOVE.W #$818z шEyžbsr closelibs move.w #$0080,dmacon(a5) move.w #$4000,intena(a5) move.l oldcopperlist,cop1lc(a5) clr.w copjmp1(a5) move.l oldserver,$6c move.w #$81f0,dmacon(a5) move.w #$c000,intena(a5) move.l 4,a6 JSR permit(a6) clr.l d0 rts mainend: ;--------------------------------------------------------------- ;errors ;--------------------------------------------------------------- openliberror: move.l #10,d0 rts allocmemerror: move.l #20,d0 rts ;-----------------------------------z шFxЈ'---------------------------- ;subroutines ;--------------------------------------------------------------- server: move sr,-(sp) btst #5,$dff01f bne vblank bra endserver vblank: movem.l d0-d7/a0-a6,-(sp) lea $dff000,a5 bsr makecopperlist move.l #30,d0 lea color1defs,a0 bsr scrollcup move.l #30,d0 lea color2defs,a0 bsr scrollcdown movem.l (sp)+,d0-d7/a0-a6 endserver: move (sp)+,sr dc.w $4ef9 oldserver: dc.l 0 ;----------------------------------------------------------zшGз~8ч----- initregs: lea $dff000,a5 move.w #con0,bplcon0(a5) move.w #con1,bplcon1(a5) move.w #con2,bplcon2(a5) move.w #dwstart,diwstrt(a5) move.w #dwstop,diwstop(a5) move.w #dfstart,ddfstrt(a5) move.w #dfstop,ddfstop(a5) move.w #mod1,bpl1mod(a5) move.w #mod2,bpl2mod(a5) rts ;--------------------------------------------------------------- initscreen: move.l 4,a6 move.l #breite*hoehe*tiefe/8,d0 move.l #$10003,d1 JSR allocmem(a6) ;Speicher fќr Bildschirm reservieren move.l dzшH^ГЖ0,bplmemory ;und sichern beq allocmemerror ;wenn nicht -> verzweigen move.l gfxbase,a6 lea bitmap,a0 move.l #tiefe,d0 move.l #breite,d1 move.l #hoehe,d2 JSR initbitmap(a6) ;Bitmap initialisieren move.l bplmemory,planes lea rastport,a1 JSR initrastport(a6) ;RastPort initialisieren move.l #bitmap,rbitmap move.l bplmemory,d1 lea planepointer,a1 move.l #hoehe*breite/8,d0 move.l #tiefe-1,d2 planeloop: swap d1 move.w d1,2(a1) swap d1 move.w d1,6(a1) add.l d0,d1 addzшI>;W˜q.l #8,a1 dbra d2,planeloop rts ;--------------------------------------------------------------- scrollcup: subq #2,d0 move.w (a0),d1 scrollcupon: move.w 2(a0),(a0)+ dbra d0,scrollcupon move.w d1,(a0) rts ;--------------------------------------------------------------- scrollcdown: move.l a0,a1 move.l d0,d2 mulu #2,d2 subq #2,d2 add.l d2,a0 move.w (a0),d1 subq #1,d0 scrollcdownon: subq #2,a0 move.w (a0),2(a0) dbra d0,scrollcdownon move.w d1,(a1) rts ;-------------zшJLDНF-------------------------------------------------- initcopperlist: move.l 4,a6 move.l gfxbase,a4 move.l 38(a4),oldcopperlist move.l #copperlistmainend-copperlistmain+10000,d0 move.l #$10003,d1 JSR allocmem(a6) move.l d0,copperlistmemory beq allocmemerror move.l copperlistmemory,a1 lea copperlistmain,a0 move.l #copperlistmainend-copperlistmain,d0 copyloop: move.b (a0)+,(a1)+ dbra d0,copyloop move.l a1,a0 subq.l #1,a0 move.l a0,coppercolorlist ;-------------------------zшKэ'-------------------------------------- makecopperlist: clr.l d0 clr.l d1 lea color1defs,a1 lea color2defs,a2 lea color3defs,a3 lea color4defs,a4 move.l coppercolorlist,a0 copperloop1: move.w #$180,(a0)+ move.w (a1)+,d1 cmp.w #$ffff,d1 bne no1 lea color1defs,a1 move.w (a1)+,d1 no1: move.w d1,(a0)+ move.w #$182,(a0)+ move.w (a2)+,d1 cmp.w #$ffff,d1 bne no2 lea color2defs,a2 move.w (a2)+,d1 no2: move.w d1,(a0)+ move.w #$184,(a0)+ move.w (a3)+,d1 cmp.w #$ffff,d1 zшLm+mbne no3 lea color3defs,a3 move.w (a3)+,d1 no3: move.w d1,(a0)+ move.w #$186,(a0)+ move.w (a4)+,d1 cmp.w #$ffff,d1 bne no4 lea color4defs,a4 move.w (a4)+,d1 no4: move.w d1,(a0)+ addq.l #1,d0 move.b d0,(a0)+ move.b #$0f,(a0)+ move.w #$fffe,(a0)+ cmp.w #313,d0 beq copperloop1end cmp.w #256,d0 bne copperloop1 move.l #$ffdffffe,(a0)+ bra copperloop1 copperloop1end: move.l #$fffffffe,(a0)+ rts ;--------------------------------------------------------------- openlibs: zшM ёM move.l 4,a6 lea gfxname,a1 JSR oldopenlib(a6) move.l d0,gfxbase beq openliberror ;lea dosname,a1 ;call oldopenlib ;move.l d0,dosbase ;beq openliberror ;lea dskfname,a1 ;call oldopenlib ;move.l d0,dskfbase ;beq openliberror rts ;--------------------------------------------------------------- closelibs: move.l 4,a6 move.l gfxbase,a1 JSR closelib(a6) ;move.l dosbase,a1 ;call closelib ;move.l dskfbase,a1 ;call closelib rts ;------------------------------------------------------zшN?s Ш--------- drawline: move.l a1,d4 mulu d1,d4 moveq #-$10,d5 and.w d0,d5 lsr.w #3,d5 add.w d5,d4 add.l a0,d4 clr.l d5 sub.w d1,d3 roxl.b #1,d5 tst.w d3 bge.s y2gy1 neg.w d3 y2gy1: sub.w d0,d2 roxl.b #1,d5 tst.w d2 bge.s x2gx1 neg.w d2 x2gx1: move.w d3,d1 sub.w d2,d1 bge.s dygdx exg d2,d3 dygdx: roxl.b #1,d5 move.b okttabelle(pc,d5),d5 add.w d2,d2 wblit: btst #14,dmaconr(a5) bne.s wblit move.w d2,bltbmod(a5) sub.w d3,d2 bge.s signnl or.b #$40,d5 signnl: mzш9ёІove.w d2,bltaptl(a5) sub.w d3,d2 move.w d2,bltamod(a5) move.w #$8000,bltadat(a5) move.w a2,bltbdat(a5) move.w #$ffff,bltafwm(a5) and.w #$000f,d0 ror.w #4,d0 or.w #$0bca,d0 move.w d0,bltcon0(a5) move.w d5,bltcon1(a5) move.l d4,bltcpth(a5) move.l d4,bltdpth(a5) move.w a1,bltcmod(a5) move.w a1,bltdmod(a5) lsl.w #6,d3 addq.w #2,d3 move.w d3,bltsize(a5) rts ;--------------------------------------------------------------- ;------------------------------------------------xшP~Єєќ dc.b "graphics.library",0 testtext: dc.b "testtext !",0 EVEN dosbase: dc.l 0 dskfbase: dc.l 0 gfxbase: dc.l 0 oldcopperlist: dc.l 0 copperlistmemory: dc.l 0 coppercolorlist: dc.l 0 bplmemory: dc.l 0 even color1defs: dc.w $000,$001,$002,$003,$004,$005,$006,$007,$008,$009,$00a dc.w $00b,$00c,$00d,$00e,$00f,$00e,$00d,$00c,$00b,$00a,$009 dc.w $008,$007,$006,$005,$004,$003,$002,$001 dc.w $ffff color2defs: dc.w $000,$110,$220,$330xшQм­ьC,$440,$550,$660,$770,$880,$990,$aa0 dc.w $bb0,$cc0,$dd0,$ee0,$ff0,$ee0,$dd0,$cc0,$bb0,$aa0,$990 dc.w $880,$770,$660,$550,$440,$330,$220,$110 dc.w $ffff color3defs: dc.w $000,$111,$222,$333,$444,$555,$666,$777,$888,$999,$aaa dc.w $bbb,$ccc,$ddd,$eee,$fff,$eee,$ddd,$ccc,$bbb,$aaa,$999 dc.w $888,$777,$666,$555,$444,$333,$222,$111 dc.w $000,$111,$222,$333,$444,$555,$666,$777,$888,$999 dc.w $aaa,$bbb,$ccc,$ddd,$eee,$fff,$eee,$ddd,$ccc,$bbb,$aaa dc.w $999,$888,$777,$666,$555,$444,xшRЎT.$333,$222,$111 dc.w $ffff color4defs: dc.w $000,$100,$200,$300,$400,$500,$600,$700,$800,$900,$a00 dc.w $b00,$c00,$d00,$e00,$f00,$e00,$d00,$c00,$b00,$a00,$900 dc.w $800,$700,$600,$500,$400,$300,$200,$100 dc.w $000,$101,$202,$303,$404,$505,$606,$707,$808,$909,$a0a dc.w $b0b,$c0c,$d0d,$e0e,$f0f,$e0e,$d0d,$c0c,$b0b,$a0a dc.w $909,$808,$707,$606,$505,$404,$303,$202,$101 dc.w $ffff EVEN bitmap: blk.w 4,0 planes: blk.l 10,0 rastport: blk.l 1,0 rbitmap: blk.l 26,0 EVEN copxЛ §П{perlistmain: planepointer: dc.w $0e0,0 dc.w $0e2,0 dc.w $0e4,0 dc.w $0e6,0 dc.w $0e8,0 dc.w $0ea,0 dc.w $0ec,0 dc.w $0ee,0 dc.w $0f0,0 dc.w $0f2,0 dc.w $0f4,0 dc.w $0f6,0 spritepointer: dc.w $120,0 dc.w $122,0 dc.w $124,0 dc.w $126,0 dc.w $128,0 dc.w $12a,0 dc.w $12c,0 dc.w $12e,0 dc.w $130,0 dc.w $132,0 dc.w $134,0 dc.w $136,0 dc.w $138,0 dc.w $13a,0 dc.w $13c,0 dc.w $13e,0 colors: copperlistmainend: end bbb,$aaa dc.w $999,$888,$777,$666,$555,$444,zшTож“0A bpldat = $110 sprpt = $120 spr = $140 color = $180 ;--------------------------------------------------------------- ;exec offsets: ;--------------------------------------------------------------- forbid =-132 ;(-) permit =-138 ;(-) allocmem =-198 ;(d0-bytesize/d1-requirements) allocabs =-204 ;(d0-bytesize/a1-location) freemem =-210 ;(d0-bytesize/a1-location) oldopenlib =-408 ;(a1-libname) closelib =-zшU|м414 ;(a1-libbase) ;--------------------------------------------------------------- ;dos offsets: ;--------------------------------------------------------------- open =-30 ;(d1-name/d2-accessmode) close =-36 ;(d1-filehandle) read =-42 ;(d1-filehandle/d2-buffer/d3-length) ;--------------------------------------------------------------- ;graphix offsets: ;--------------------------------------------------------------- clearscreen =-48 ;(a1-raszшV­а"-tport) gtext =-60 ;(a1-rastport/a0-string/d0-count) setfont =-66 ;(a1-rastport/a0-textfont) loadrgb4 =-192 ;(a0-viewport/a1-colors/d0-count) initrastport =-198 ;(a1-rastport) gmove =-240 ;(a1-rastport/d0-x/d1-y) draw =-240 ;(a1-rastport/d0-x/d1-y) rectfill =-306 ;(a1-rastport/d0-xl/d1-yl/d2-xu/d3-yl) setapen =-342 ;(a1-rastport/d0-pen) setdrmd =-354 ;(a1-rastport/d0-drawmode) initbitmap =-390 ;(a0-bitmap/dzшWл6Ъ0-depth/d1-width/d2-height) scrollraster =-396 ;(a1-rastport/d0-dx/d1-dy/d2-minx/d3-miny/ ; d4-maxx/d5-maxy) ownblitter =-456 ;(-) disownblitter=-462 ;(-) allocraster =-492 ;(d0-width/d1-height) ;--------------------------------------------------------------- ;diskfont offsets: ;--------------------------------------------------------------- opendiskfont =-30 ;(a0-textattr) ;--------------------------------------------------------------- ;wz шXфуS.erte ;--------------------------------------------------------------- tiefe =2 hoehe =256 breite =320 con0 =%1001001000000000 con1 =0 con2 =0 dwstart =$3081 dwstop =$30c1 dfstart =$003c dfstop =$00d4 mod1 =0 mod2 =0 ;--------------------------------------------------------------- ;mainprogram ;--------------------------------------------------------------- main: move.l 4,a6 JSR forbid(a6) lea $dff00z шYчЄ“г0,a5 move.w #$01f0,dmacon(a5) move.w #$4000,intena(a5) bsr openlibs move.l gfxbase,a6 JSR ownblitter(a6) bsr initscreen bsr initcopperlist move.l copperlistmemory,a0 move.l a0,cop1lc(a5) clr.w copjmp1(a5) bsr initregs move.l $6c,oldserver move.l #server,$6c move.w #$c000,intena(a5) move.w #$83c0,dmacon(a5) ;--------------------------------------------------------------- move.l bplmemory,a0 move.w #80,a1 move.w #255,a3 move.w #639,a4 move.w #$ffff,d7 Loop: rol.w #z шDi+_я2,d7 move.w d7,a2 clr.w d6 SchleifeX: clr.w d1 move.w a3,d3 move.w d6,d0 move.w a4,d2 sub.w d6,d2 bsr drawline addq.w #4,d6 cmp.w a4,d6 ble.s schleifex clr.w d6 schleifey: move.w a4,d0 clr.w d2 move.w d6,d1 move.w a3,d3 sub.w d6,d3 bsr drawline addq.w #4,d6 cmp.w a3,d6 ble.s schleifey wait: btst #6,$bfe001 bne wait ;--------------------------------------------------------------- wait2: btst #14,dmaconr(a5) bne wait2 move.l gfxbase,a6 JSR disownblitter(a6) x ш[GvІЙove.w #$c000,intena(a5) move.l 4,a6 JSR permit(a6) clr.l d0 rts mainend: ;--------------------------------------------------------------- ;errors ;--------------------------------------------------------------- openliberror: move.l #10,d0 rts allocmemerror: move.l #20,d0 rts ;--------------------------------------------------------------- ;subroutines ;--------------------------------------------------------------- server: move sr,-(sp) btst #5,$dff01f bne vblank bra endsx ш\Ћ=оŠerver vblank: movem.l d0-d7/a0-a6,-(sp) lea $dff000,a5 bsr makecopperlist move.l #30,d0 lea color1defs,a0 bsr scrollcup move.l #30,d0 lea color2defs,a0 bsr scrollcdown movem.l (sp)+,d0-d7/a0-a6 endserver: move (sp)+,sr dc.w $4ef9 oldserver: dc.l 0 ;--------------------------------------------------------------- initregs: lea $dff000,a5 move.w #con0,bplcon0(a5) move.w #con1,bplcon1(a5) move.w #con2,bplcon2(a5) move.w #dwstart,diwstrt(a5) move.w #dwstop,diwstop(a5) xш]ћђ,Љmove.w #dfstart,ddfstrt(a5) move.w #dfstop,ddfstop(a5) move.w #mod1,bpl1mod(a5) move.w #mod2,bpl2mod(a5) rts ;--------------------------------------------------------------- initscreen: move.l 4,a6 move.l #breite*hoehe*tiefe/8,d0 move.l #$10003,d1 JSR allocmem(a6) move.l d0,bplmemory beq allocmemerror move.l gfxbase,a6 lea bitmap,a0 move.l #tiefe,d0 move.l #breite,d1 move.l #hoehe,d2 JSR initbitmap(a6) move.l bplmemory,planes lea rastport,a1 JSR initrastport(a6) mxш^•3Шove.l #bitmap,rbitmap move.l bplmemory,d1 lea planepointer,a1 move.l #hoehe*breite/8,d0 move.l #tiefe-1,d2 planeloop: swap d1 move.w d1,2(a1) swap d1 move.w d1,6(a1) add.l d0,d1 addq.l #8,a1 dbra d2,planeloop rts ;--------------------------------------------------------------- scrollcup: subq #2,d0 move.w (a0),d1 scrollcupon: move.w 2(a0),(a0)+ dbra d0,scrollcupon move.w d1,(a0) rts ;--------------------------------------------------------------- scrollcdown: move.xш_ rхЪl a0,a1 move.l d0,d2 mulu #2,d2 subq #2,d2 add.l d2,a0 move.w (a0),d1 subq #1,d0 scrollcdownon: subq #2,a0 move.w (a0),2(a0) dbra d0,scrollcdownon move.w d1,(a1) rts ;--------------------------------------------------------------- initcopperlist: move.l 4,a6 move.l gfxbase,a4 move.l 38(a4),oldcopperlist move.l #copperlistmainend-copperlistmain+10000,d0 move.l #$10003,d1 JSR allocmem(a6) move.l d0,copperlistmemory beq allocmemerror move.l copperlistmemory,a1 lea cxш`лчњМopperlistmain,a0 move.l #copperlistmainend-copperlistmain,d0 copyloop: move.b (a0)+,(a1)+ dbra d0,copyloop move.l a1,a0 subq.l #1,a0 move.l a0,coppercolorlist ;--------------------------------------------------------------- makecopperlist: clr.l d0 clr.l d1 lea color1defs,a1 lea color2defs,a2 lea color3defs,a3 lea color4defs,a4 move.l coppercolorlist,a0 copperloop1: move.w #$180,(a0)+ move.w (a1)+,d1 cmp.w #$ffff,d1 bne no1 lea color1defs,a1 move.w (a1)+,d1 no1: mxшa˜Ж'Лove.w d1,(a0)+ move.w #$182,(a0)+ move.w (a2)+,d1 cmp.w #$ffff,d1 bne no2 lea color2defs,a2 move.w (a2)+,d1 no2: move.w d1,(a0)+ move.w #$184,(a0)+ move.w (a3)+,d1 cmp.w #$ffff,d1 bne no3 lea color3defs,a3 move.w (a3)+,d1 no3: move.w d1,(a0)+ move.w #$186,(a0)+ move.w (a4)+,d1 cmp.w #$ffff,d1 bne no4 lea color4defs,a4 move.w (a4)+,d1 no4: move.w d1,(a0)+ addq.l #1,d0 move.b d0,(a0)+ move.b #$0f,(a0)+ move.w #$fffe,(a0)+ cmp.w #313,d0 beq copperloop1end cmpxшbзщ.w #256,d0 bne copperloop1 move.l #$ffdffffe,(a0)+ bra copperloop1 copperloop1end: move.l #$fffffffe,(a0)+ rts ;--------------------------------------------------------------- openlibs: move.l 4,a6 lea gfxname,a1 JSR oldopenlib(a6) move.l d0,gfxbase beq openliberror ;lea dosname,a1 ;call oldopenlib ;move.l d0,dosbase ;beq openliberror ;lea dskfname,a1 ;call oldopenlib ;move.l d0,dskfbase ;beq openliberror rts ;---------------------------------------------------------------xшcэoц closelibs: move.l 4,a6 move.l gfxbase,a1 JSR closelib(a6) ;move.l dosbase,a1 ;call closelib ;move.l dskfbase,a1 ;call closelib rts ;--------------------------------------------------------------- drawline: move.l a1,d4 mulu d1,d4 moveq #-$10,d5 and.w d0,d5 lsr.w #3,d5 add.w d5,d4 add.l a0,d4 clr.l d5 sub.w d1,d3 roxl.b #1,d5 tst.w d3 bge.s y2gy1 neg.w d3 y2gy1: sub.w d0,d2 roxl.b #1,d5 tst.w d2 bge.s x2gx1 neg.w d2 x2gx1: move.w d3,d1 sub.w d2,d1 bge.s dygdxxшdvi  exg d2,d3 dygdx: roxl.b #1,d5 move.b okttabelle(pc,d5),d5 add.w d2,d2 wblit: btst #14,dmaconr(a5) bne.s wblit move.w d2,bltbmod(a5) sub.w d3,d2 bge.s signnl or.b #$40,d5 signnl: move.w d2,bltaptl(a5) sub.w d3,d2 move.w d2,bltamod(a5) move.w #$8000,bltadat(a5) move.w a2,bltbdat(a5) move.w #$ffff,bltafwm(a5) and.w #$000f,d0 ror.w #4,d0 or.w #$0bca,d0 move.w d0,bltcon0(a5) move.w d5,bltcon1(a5) move.l d4,bltcpth(a5) move.l d4,bltdpth(a5) move.w a1,bltcmod(a5) mxшOЦ%jxove.w a1,bltdmod(a5) lsl.w #6,d3 addq.w #2,d3 move.w d3,bltsize(a5) rts ;--------------------------------------------------------------- ;--------------------------------------------------------------- ;data: ;--------------------------------------------------------------- okttabelle: dc.b 0 *4+1 dc.b 4 *4+1 dc.b 2 *4+1 dc.b 5 *4+1 dc.b 1 *4+1 dc.b 6 *4+1 dc.b 3 *4+1 dc.b 7 *4+1 dosname: dc.b "dos.library",0 dskfname: dc.b "diskfont.library",0 gfxname: rv›ЈКЮчрќЬ`ќŸрќ?рџЯр§чМїрќѓљчрќyѓЧрџџџџрџџџџрџќрџ§ррџ§рр§ррќРSYS:System/DiskCopyrqGœЪBlank #GœЩGœіxшgъбTQdat = $00E adkconr = $010 pot0dat = $012 pot1dat = $014 potinp = $016 serdatr = $018 dskbytr = $01A intenar = $01C intreqr = $01E dskpt = $020 dsklen = $024 dskdat = $026 refptr = $028 vposw = $02A vhposw = $02C copcon = $02E serdat = $030 serper = $032 potgo = $034 joytest = $036 strequ = $038 strvbl = $03A strhor = $03C strlong xшhКФYt = $03E bltcon0 = $040 bltcon1 = $042 bltafwm = $044 bltalwm = $046 bltcpth = $048 bltcptl = $04a bltbpth = $04c bltbptl = $04e bltapth = $050 bltaptl = $052 bltdpth = $054 bltdptl = $056 bltsize = $058 bltcmod = $060 bltbmod = $062 bltamod = $064 bltdmod = $066 bltcdat = $070 bltbdat = $072 bltadat = $074 dsksync = $07E cop1lc = $080 cop2lc =xшiЕ‰З $084 copjmp1 = $088 copjmp2 = $08A copins = $08C diwstrt = $08E diwstop = $090 ddfstrt = $092 ddfstop = $094 dmacon = $096 clxcon = $098 intena = $09A intreq = $09C adkcon = $09E aud = $0A0 aud0 = $0A0 aud1 = $0B0 aud2 = $0C0 aud3 = $0D0 bplpt = $0E0 bplcon0 = $100 bplcon1 = $102 bplcon2 = $104 bpl1mod = $108 bpl2mod = $1xшjож0A bpldat = $110 sprpt = $120 spr = $140 color = $180 ;--------------------------------------------------------------- ;exec offsets: ;--------------------------------------------------------------- forbid =-132 ;(-) permit =-138 ;(-) allocmem =-198 ;(d0-bytesize/d1-requirements) allocabs =-204 ;(d0-bytesize/a1-location) freemem =-210 ;(d0-bytesize/a1-location) oldopenlib =-408 ;(a1-libname) closelib =-xшk|м414 ;(a1-libbase) ;--------------------------------------------------------------- ;dos offsets: ;--------------------------------------------------------------- open =-30 ;(d1-name/d2-accessmode) close =-36 ;(d1-filehandle) read =-42 ;(d1-filehandle/d2-buffer/d3-length) ;--------------------------------------------------------------- ;graphix offsets: ;--------------------------------------------------------------- clearscreen =-48 ;(a1-rasxшl­а"tport) gtext =-60 ;(a1-rastport/a0-string/d0-count) setfont =-66 ;(a1-rastport/a0-textfont) loadrgb4 =-192 ;(a0-viewport/a1-colors/d0-count) initrastport =-198 ;(a1-rastport) gmove =-240 ;(a1-rastport/d0-x/d1-y) draw =-240 ;(a1-rastport/d0-x/d1-y) rectfill =-306 ;(a1-rastport/d0-xl/d1-yl/d2-xu/d3-yl) setapen =-342 ;(a1-rastport/d0-pen) setdrmd =-354 ;(a1-rastport/d0-drawmode) initbitmap =-390 ;(a0-bitmap/dxшmл6Ж0-depth/d1-width/d2-height) scrollraster =-396 ;(a1-rastport/d0-dx/d1-dy/d2-minx/d3-miny/ ; d4-maxx/d5-maxy) ownblitter =-456 ;(-) disownblitter=-462 ;(-) allocraster =-492 ;(d0-width/d1-height) ;--------------------------------------------------------------- ;diskfont offsets: ;--------------------------------------------------------------- opendiskfont =-30 ;(a0-textattr) ;--------------------------------------------------------------- ;wx шnфуSerte ;--------------------------------------------------------------- tiefe =2 hoehe =256 breite =320 con0 =%1001001000000000 con1 =0 con2 =0 dwstart =$3081 dwstop =$30c1 dfstart =$003c dfstop =$00d4 mod1 =0 mod2 =0 ;--------------------------------------------------------------- ;mainprogram ;--------------------------------------------------------------- main: move.l 4,a6 JSR forbid(a6) lea $dff00x шoЭŽщK0,a5 move.w #$01f0,dmacon(a5) move.w #$4000,intena(a5) bsr openlibs move.l gfxbase,a6 JSR ownblitter(a6) bsr initscreen bsr initcopperlist move.l copperlistmemory,a0 move.l a0,cop1lc(a5) clr.w copjmp1(a5) bsr initregs move.l $6c,oldserver move.l #server,$6c move.w #$c000,intena(a5) move.w #$83c0,dmacon(a5) ;--------------------------------------------------------------- move.l bplmemory,a0 move.w #80,a1 move.l #$ffff,a2 clr.l d0 clr.l d1 clr.l d2 clr.l d3 clr.lx шZH™- d6 clr.l d7 move.w #319,d6 lineloop: clr.l d1 move.w d7,d0 move.w d7,d2 move.w #255,d3 bsr drawline addq #2,d7 dbra d6,lineloop wait: btst #6,$bfe001 bne wait ;--------------------------------------------------------------- wait2: btst #14,dmaconr(a5) bne wait2 move.l gfxbase,a6 JSR disownblitter(a6) bsr closelibs move.w #$0080,dmacon(a5) move.w #$4000,intena(a5) move.l oldcopperlist,cop1lc(a5) clr.w copjmp1(a5) move.l oldserver,$6c move.w #$81f0,dmacon(a5) mHВ+9EQRђqџџџџO4НЏС Love Dungeon4НЏ PGœіqHt›pЫ]ЛКЙИЗЖЕДГВБАЏЎ­ЌЋЊЉЈЇІЅЄЃЂЁ Ÿžœ›š™˜—–•”“’‘ŽŒ‹Š‰ˆ‡†…„ƒ‚€~}|{zyxwvutьЄ4НЏFLoveDungeonV1.0.exerpМџџџ§rs%џсes^GœЯ Disk.infopџџџ§rшe}{­у#ЊмЊ№Тn|€€Њ ,dџџџ#І џџxџў№џ§шџћиџїИюяpї^ш{НиН{И?џР!џР!џР!џР?џР|їРќчрќЬ`ќŸрќ?рџЯр§чМїрќѓљчрќyѓЧрџџџџрџџџџрџР?рџо?рџо?ро?р?Р?Р#Іиџџxџў№џ§шџћиџїИюяpї^ш{НиН{Иџќпќпќпќџќ|їРќqшuъœЇѓ@­@*@@2 щ­Hчџў,xKњ`Cњ\pNЎ§и+@gz,@+n"“Щaц+n&+n2aт+@, @Mљп№;n&;n(;n*0<џ?><caиQЯџњ>=@š=@–=@œ+hl"Cњ6!Il=|Р š=|‡р–a KњвMљп№B­00<€m(m*m&S@a„=@š=@–=@œ zЮ!zРl-zВ€-zА„=@ˆ=zАš=zЌ–=zЂž,zˆ"zˆa"N,xNЎўbLпџpNuNЎџ"NЎўђNюўђ/ p,x.)gKњ NЎџт*_NuNzNs/ 9п№РМџАМЪfь 9п№РМџАМЫfь Nugraphics.libraryMљп№ќ5=a.†aкNuHчџўaqшvсэђ1RyI :џдg @NAљп№œp 0€0€LпџNsHчџўMљп№AњŒ~ќQЯџњEљПрp=@š=@œ| |A|| zџt#шhtCњR!Ih=|Рš|ˆ LпџNuHчџўMљп№p=@š=@œ zџ:!zhAљПрpџ@@| LпџNuHчРРAљПрRyI 3љI пё€pР( gB( ((@FтeА<Gb;4gCњВ2€RAТ|2rТ( gј(П3ќп№œLпNqNs1234567890-=\0qwertyuiop[]123asdfghjkl;'456<žz%ZчOо|2 .РМџАМєfю .РМџАМѕfюQЯџкa,Є3ќI0<6a.nNЙ+тNЙ,ЂIњЭ2<4<Ga^Iњ™2<4< aNIњ%P2<4< a0<;z%(2<4< a@0<;z%2<4< a,0<;z$ќ2<$4< aIњI2<4< aђIњ$ј2<4< aІ0<;z$д2<4< aф0<;z$О2<4< aа0<;z$Ј2<$4< aМIњљ2<4< a–Iњ$ 2<4< aJ0<;z$€2<4< aˆ0<;z$j2<qшxТc'4< at0<;z$T2<$4< a`Jy)ЂgIњ H2<4<Oa2` IњЈ2<4<a IњŸ2<4<QaIњ#Š0:#Аа@а@(t2<4<QaєJy)šgaP`a84<Iњ§aТ3ќ2ф3ќINp3РI$3ќ)№3ќџџ)Ъ3ќ)цNЙ#ЂNЙœ3ќџџ)ž3ќШ)œ:М;|Ж3ќQ†3ќ)и3ќ1)д .РМџАМєfю .РМџАМѕfюa(№a zJ9IRg:3ќ)иJ9IXf*0<5a,Sy)жlJy)Ђg 3ќ)ж`3ќ)жJ9ISgD3ќ)иJ9IYf40<5a+ЮRy)жJy)Ђg y)жf` y)жf3ќ)ж3ќ )ш0<X2:"‚щIаA3Р)ъNЙ#Ђa)Єa^ yqшyЎQ6г)иfZRy)  y) f3ќ) 0:"D2:"HЇР3ќ)š0:!њ3Р)ж3ќ/Ta#"a%šLŸ3Р)ж3С)š`ќ–J9ITgўВJ9IZfўЈa*aі y)жfNu y)жg:9Прf y)Ђ3ќ$Q†a&NЙоaЦa’NЙ+тAљAŽNЙ,ІNЙ,J0:!’2< 4< aА0<$a*†4<IњАa6Jy)šg,4< y)šfIњ—` y)šfIњЂ`IњХaRy)Њ0:!А| fp3Р)ЊхHIњ ю(t4<Ta4<EIњŽa4<HIњˆaќ4<JIњ…a№4<IњŸaфp3Р)ь3Р)ю3ќ )ш3ќ()ъ y)ц3ќ)№3ќџџ)ЪNЙ#Ђaфp3Р)ь3Р)ю3ќ )ш0: ‚а@Aњ JqшzT(XЉ3№)ъ y)ц3ќ)ђ3ќџџ)Ъ3ќ)№NЙ#ЂNЙ+тNЙ,&app3РI3ќ)и3ќ1)дJy)šgNЙў3ќI(3ќI* .РМџАМєfю .РМџАМѕfюa%ЌNЙœNЙ#ЂNЙ/ќa'Jy)šg0 y)šfNЙNЙNЙт y)šf NЙ/кa\0<;zŒ2<&4<aњanJyI(ga'„09I,3РR"NЙ)і`љ y;)иgђJy)–gJ9IUgJ9I[g"` y I&g0:(АyIfџ09I,3РR"a'NЙо y)šgNЙ+тa и0:ъ4:ш3Т)а2:р3С)вВ@m‚3Р)мa іAљAŽNЙ,І0<+a'Р4<JIњeaЌ2< 4<Iњoaœqш{zвЬСa p3Р)ь3Р)ю3ќI$3ќ )ш3ќH)ъ y)ц3ќ)№a žaц`јД@m~3Р)кa rAљAŽNЙ,І0<,a'<4<JIњa(4<Iњaa œp3Р)ь3Р)ю3ќI$3ќ )ш3ќH)ъ y)ц3ќ)№NЙ#Ђa `їa њAљAŽNЙ,І4<JIњaИ4<IњaЌ0<2a&Ќa $p3Р)ь3Р)ю3ќ )ш3ќH)ъ y)ц3ќ)№NЙ#Ђa Ј`ї NЙоa%h09I,3РR"4:F3Т)а2:>3С)вa `0:2?0< a&0 y)šgNЙ+т0< a&3ќIAљAŽNЙ,І3ќIJy)šgJ4<Iњ.aЄ4<Iњ'a˜IљSbp9@ 9@"8М 9|  lqш|еЭУ9|9|џџ NЙт0< a%Ђa zp3Р)ь3Р)ю3ќ )ш3ќH)ъ y)ц3ќ )№NЙ#Ђ0< a%b4<JIњsaN4<Iњ|aB0yI2<4< a X0< a%.a Іa ^`ѕжa$$09I,3РR"3ќ)’`ѕК3ќ)№3ќџџ)ЪNЙ#Ђ0<a$ш><? .РМџАМєfю .РМџАМѕfюaa"мa!n>QЯџЪNu3ќ)˜NЙ,Ђ3ќ)№Iњ[2<4<aTaPapažIњ\ y)gIњ*2<4<a fIњb2<4<Qa V .РМџАМєfю .РМџАМѕfюa оah09I2<!4<a x y)˜fJ y)g@J9IPgJ9IVfJyIg(SyI` J9q ш}Xш­;IQgJ9IWf y7IgRyIJ9IRgNJ9IXfF0<5a# Sy)˜l3ќ)˜ y)f3ќ)˜ y)˜f y)o3ќ)˜J9ISgPJ9IYfH0<5a#JRy)˜0< y)gR@Аzтf3ќ)˜ y)˜f y)o3ќ)˜3ќ )ш0<X2:ЌщIаA3Р)ъ3ќ)ц y)˜fy)ъyц)шNЙ#Ђa ъJ9ITgўrJ9IZfўh y)˜f09Ia"œ`ўPa§3ќ)№0::J@f y)”aH`ў,А|fF y)n4aф y)f y)š`Ry)š y)šf3ќ)šaкa `§рА|f y)–a<`§ЪА|fŠp;3Р)и3Р)р3Р)ш3Р)№3Рq ш~g’’)к3Р)т3Р)ъ3Р)ђAњЂ"ВКрf("ВКмf "ВКиf3Р)м3Р)ф3Р)ь3Р)є :n#Р)ј :h#Р)ќ :b#Р*`ѓ`ђўHчџўAњP0:&а@а@ pCњX~+йQЯџќLпџNuHчџўAњ*0:а@а@ pCњ2~+иQЯџќLпџNu4< ahIњ§Jy)”gIњ 2<4< ` 4< aDIњ y)n0:Ја@а@Aњf(p2<4< ` ш4< aIњSJy)–gIњi2<4< ` Ф0:lбy)œ yє)œf3ќџџ)ž yџо)œf3ќ)žNЙNљт3ќ2фAљENNЙ,І4< Iњ~a 4< Iњїa JAњ80::а@Jpf(1МJy)gSy)4<MIњsa 0< a p3Р)ь3Р)ю3ќ )шq шъ{Й3ќx)ъ y)ц3ќ)№NЙ#ЂќA*ж3ќ*и .РМџАМєfю .РМџАМѕfю@:œ2:šвAAњb204<afaNJ9IPg> yВgRyВJ9IVf.3ќВ0<ab:NSА|@f<]Р*ж3ќВJ9IQg> yДgRyДJ9IWf.3ќД0<a:RА|^f<AР*ж3ќДJ9ITg|J9IZft0<!aо y)ц 9\*жf@Jy*иgR@<[2:ЌвAAњt204<axSy*иAњВ0:ŒхHаzˆ№*ж`Aњš0:tхHаzpКjRy*и2:`вAAњ.20в| 3С)шNЙ#Ђav y*иfўpNu0€аCљ6сBэCдCдAвТ6Aњq ш€PgK€ `А| f0<[|AчHK№~2f2<[azRI2f2<[ajRI2f2<[aZRI2f2<[aJRI2f2<[a:RI2f2<[a*RI2f2<[aRI2f2<[a Cщ9QЯџzNuВ|[gЦEљ €’j(jPjxj j Шj №jj(j((j(Pj(xj( j(Шj(№j)j Pj"P(j$PPj&Pxj(P j*PШj,P№j.Qj0xj2x(j4xPj6xxj8x j:xШjyNuМ|(|P|x| |Ш|№||(|((|(P|(x|( |(Ш|(№|)|P|P(|PP|Px|q ш˜Ё‡$P |PШ|P№|Q|x|x(|xP|xx|x |xШ|x№|x№NuJyI$g^RyI"09I"4д|@2<gRA3С)ц2в|@Р|џТ|џAљMА00а|nв|(3Р)ш yI$f3С)ъNu4<RIњ Mar4<Iњ `af4<Iњ kaZ0<;zL2<4<ap0<;z02< 4<a\0<;z2< 4<`H3ќџџ)Ъ3ќ)№p3Р)ш3Р)ъ3Р)ь3Р)юNљ#ЂAњь0:оч@аРCњи"и"иNuAњж0:Шч@аРCњТ й йNu .РМџАМєfю .РМџАМѕfюa^aўВJ9ITfЬ><?|1? .РМџАМєfю .РМџАМѕfюNЙ#ЂNЙтa~aўha <J9qш‚7Ю|эITf$QЮџЖAљ€|O ((ББЈPXˆQЮџђ>QЯџ”`> .РМџАМєfю .РМџАМѕfюaў aNЙ#ЂaІJ9ITfТNu0<;zЪ2<&4<aю2<4<XIњTaШ y)šf"ah2<4<Iњ дaЌ2<4<Iњ Ы`œ0<;z~2<4<až2<4<Iњax0<;zX2<4<az2<4<Iњ№`T09I*2<4<aЂ09IyI*2<4<`ŠSy)дf 3ќ1)дRy)и y5)иo3ќ IN yџџINg&9IgAљI,09INа@3№R"SyINNuCљ(6сBэCдCвТp~"Р"Р"Р"Р"Р"Р"Р"Р"Р"РQЯџъNua.Гќ o$0< R@=@€9Прf№9Прgі=|€NuCљqшƒяЌ}т6сBэCдCдAвТAљT&Gњ,’A34шIa2Т|чIE№€@P@(@P(@P@PP@x@Px@ @P @Ш@PШ@№@P№@@QRINua.Гќ o$0< R@=@€9Прf№9Прgі=|€NuCљ6сBэCдCдAвТAљT&Gњv’A34шIa2Т|чIE№)P)()P()P)PP)x)Px) )P )Ш)PШ)№)P№))QRINuкZ'ZOZwZŸZЧZяZNu L6<џџRCJfјr(’CтICљ6сBэCдCдAвТAњ&Jg В< ga2RI`юГќ o$0<о­R@=@€9Прf№9Прgі=|€Nu’|AчIE№)()()(()P)qш„!ЈШ(P)x)(x) )( )Ш)(Ш)№)(№)))Nu L6<џџRCJfјr(’CтICљ6сBэCдCдAвТAњbJg В< ga2RI`юГќ o$0<оЏR@=@€9Прf№9Прgі=|€Nu’|AчIE№)()P)x)()(()P()x()P)(P)PP)xP)x)(x)Px)xx) )( )P )x )Ш)(Ш)PШ)xШ)№)(№)P№)x№))))Q)yNu-|NА€ <3РNоH@3РNк <(3РNцH@3РNт <P3РNюH@3РNъ <x3РNіH@3РNђaHAљCљпё€~a№CљNјAљI\p"HA3AHA3AP‰AшˆQШџъ@3РI3РINuAљ РCљпё qш…:‡;~`ЈAљDCљпё ~`–J9IPgJ9IVfJyIg(SyI` J9IQgJ9IWf y7IgRyIJ9ITgJ9IZf 09I`"Nu  !"#$%&'()0123456789@ABCDEFGHIPQRSTUVWXY`abcdefghipqrstuvwxy€‚ƒ„…†‡ˆ‰‘’“”•–—˜™8|ццўццќvv|vvќ|црррц|јtrrrtјўrpxprўўrpxppј|црюцц|цццўццц|88888|Ю|ццьјьцц№рррртўЦюўжЦЦЦціўюццц|ццццц|ќvvv|pј|ццццъtќrrr|vі|юр|ю|ўўК888|цццццц|ццццf<ЦЦЦжўюЦццц||ццюцц~ц<ўќ0`ўў(N‚N(lўў|8VERSION ONE INITIAL RELEASETEMPLE GATEqш†юШ#MARKET TOWNFACTORY TWO WORLD PERSONAL LASTOPTIONEXITTIME LEFTWORLDPERSONALCONGRATULATION SUCH AMAZEITS A NEW WORLD RECORDYOU LIKE TO BEAT ITNEW PERSONAL BEST TRY FOR WORLD RECORDYOU MISSED HEARTSYOU RAN OUT OF TIMEYAMOWINSPRACTICE LIKE MEYOU ARE TOO SLOW FOR RECORDSBRUCEYOU MUSTCOLLECT HEARTS IN UNDER ONE MINUTEPRESS FIRE TO ENTER THE DUNGEONYOUR GAME TIME SECONDS LEFTPREVIOUS PERSONAL BESTPREVIOUS WORLD RECORDPLEASE ENTER INITIALSHINTLOOK OUqш‡KОYT MONSTERS DETECTEDHEART ATTACK COLLECT MORE HEARTS VS YAMOHIDE AND SEEK DONT LET YAMO CATCH YOUYOU ARE KING OF DUNGEONPUNCH AND KICK TO FIGHT MONSTERSSOMETIMES KICKS ARE FASTER THAN JUMPSGRAB LADDERS IN THE AIR ITS FASTERSTART WITH LMB HELD TOGGLES PARTY MODESOME GAME OPTIONS CAN BE PRESSED TWICEUNLOCK SECRETS BY BREAKING WORLD RECORDSCROUCH TO HIDE FROM MONSTERS USE RAGE QUIT KEY WHEN PRACTISING]]] CHECK OPTIONS FOR SECRETS ]]]SOUND TEST UNLOCKEDMONSTER MODE qшˆдo№ UNLOCKEDEXTRA GAME MODES UNLOCKED]SECRET UNLOCKED]RAGE QUIT DETECTEDTHREE SECRETS ARE LOCKEDTWO SECRETS ARE LOCKEDONE SECRET LEFTALL SECRETS ARE UNLOCKEDOPTION MENUSOUND EFFECTS ENABLEDSOUND EFFECTS DISABLED]] MONSTER MODES LOCKED ]]CLASSIC MODE ENABLEDMONSTER MODE ENABLEDHIDE AND SEEK ENABLEDHEART ATTACK ENABLEDRAGE QUIT GAME KEYBOARD DISABLEDRAGE QUIT GAME JOY BUTTON TWORESET RECORDS SOUND TESTRESET RECORDS ] LOCKED ]EXqш‰эЭш=IT MENU]]] PARTY MODE ACTIVE ]]]YAMO ]BRUCE ]CLASSIC MODEMONSTER MODEHIDE AND SEEKHEART ATTACKWHY ARE YOU EVEN LOOKING HERE? THERE IS NOTHING TO SEE GUV.. MOVE ALONG.. YEAH YOU, MOVE IT MISTER! OK,OK WELL THINGS ARENT GOING TO GREAT FOR ME ITS DECEMBER 17TH 2014, MY MRS HAS TURNED OUT TO BE A DRUG ADDICT AND ITS SOMETHING I CANT LIVE WITH IM IN A NEW HOUSE, IN BLACKPOOL, SHE HAS LEFT, I CANT AFFORD THE RENT, I REALLY DONT KNOW WHAT I CAN DO THIS GAME IS ALL I HADqшŠЊD7 TO KEEP MY SANITY, A FOCUS, SOMETHING I CAN LOSE MYSELF IN... BUT REALITY BITES AND I GUESS I WILL SELL MY STUFF AND MOVE TO A SHARED HOUSE OR SOMESHIT, I FUCKING HATE MY LIFE RIGHT NOW BUT IM HOPEFUL THAT THINGS WILL IMPROVE AND I CAN BE HAPPY AGAIN IVE GOT A LOVELY BENGAL CAT THAT IS GOING TO BE DIFFICULT TO TAKE WITH ME, ITS HEARTBREAKING... MERRY CHRISTMAS AMIGANS!!! JAY% %!%9%Q&%&3&A&O$˜$ˆ$q$Xџџˆ(0џџ"Ÿ"Р"ц# #0#Wqш‹Ћ$2q#€#ž#Р;;;;;+;;";;(MERRYXMAS;;;;;+;;";;(MERRYXMAS;;;;;;;;;;;;MONSTERSM;;;;;;;;;;;;HIDENSEEK;;;;;;;;;;;;]]]ATTACKEYE]]]CBM**0*\*ˆAa3ќ$Q†aѓ`NЙоaэaьЬNЙ+т0<$aтp3Р)ь3Р)ю3ќ )ш0:ўИа@Aњў€3№)ъ y)ц3ќ)ђ3ќџџ)Ъ3ќ)№NЙ,&4<IњќaёDp3РI3ќ)и3ќ1)дNЙў .РМџАМєfю .РМџАМѕfю0:ў4KљSbqшŒ>6А|n ќIS`о y)ђf ќIR`ША|nќIPќIT`ЎА| nќIPќIRќIT`ŒА|nќIQќIRќIT`jА|n`bА|nќIQќIRќIT`BА|n ќIP`2А|n ќIQ`"А|nќIQќIRќIT`axNЙœNЙ#ЂNЙ/ќa^NЙNЙтaэ y)иg(aRJ9/TfAљIP ќ ќ ќ`ўŽ09I,3РR"aьNЙоNЙ+т`ъВ m(:n m <С? .РМџАМєfю .РМџАМѕfюaNЙ#ЂNЙтaJ9/Tf>QЯџМNu>Nua‚9IR€9IS€9IP€9IQ€9IU€9IT9/TNuUNLOCK SECRETS BY BREAKING WORLD RECORqшŽzкfHDSWORLD RECORD FORWITH REMAINING 9IP#РIV09IT3РIZ0. 2вAБA4<РBТBAљIP0Р0@9Прf€|.f€|3РIT=|Р4Nu0Р|Т|№Ф|‚сH€AГќпёŠf 3РR"3РI,2РQЯџаNuAљ!Cљ ~aQЯџќAљ4CљГ~aQЯџќNu|0rgСgСgС gС gС gС gС gСgС gС gС gС gС gСgСgС2СQЮџXNu9IgrAљR,JyIgAљRЈ09IS@l0<3РIа@20=AœAљS$00=@˜AљRjJyIgqшlн{3AљRц09IS@l0<3РIа@00=@žJy2фgZAљPЖ yџџ2оg 2:@0:81€2:24чI003Р2о3С2т6€|Ц|№€C1€RBД|%f”B3Т2ф3Т2рNu yџџ2оgAљPЖ2:ф0:м1€0<3Р2ф3Р2р3Р2т3ќџџ2оNupr9IRтI€A9ISтIвA€A9IPтIхA€A9IQтIчA€A9ITтIщA€A9IUтIыA€ANu#ќIP#ќIRgќIRgќISgќIPgќIQgќITgќIUNuџџJy)”gNu3ќп№и3ќп№–#ќ5,ќ513ќ543ќ52AњхHаР#а5,3ќ523ќ549п№R`<qш}œМ :оfNu @:йfІња510 @f3и5:3њФ580`ш @f 3и540`и @f 3и520`Ш @faЖ0`К @fRHи50њr510`  @ gЪ @f3и56`$ @f3и563њN58` @f3њ>58S951#Ш5,2:"вz" Axl2<x3С563њп№ж2:вz A@m2<@JAn2<3С584:ьТТьI3Сп№иNu3ќп№–2хICњвС"Q3йп№д#Щп№а9п№RВ9п№fј3ќ‚п№–Nu3ќп№и3ќп№–#ќ5,ќ513ќ543ќ52NuvCљEњR"$HAAф™в‚в‚в‚?џџџ$"СQЫџтNuvCљEњ$"$HAAф™в‚в‚в‚?џџџ$"СQЫџтNu‡eC!qш‘в9бј@66>6X6д6д6ј7"7^7”7М8 8l8Д8Д99:9z9 9К9є:(:R:v:Ў:v;.;.;.;.;.;.<<<<<Ў<Ў<Ў===Ц>">H>~>Р?&?Ж?Ж?Ж?Ж?Ж?ЖAdAdAdAОAмBV@№џўџњ @џЮџћш @І:\ќХр”  єАА(џчXР јРјР @њџ§ЪД qш’ТОТ  S џі@@@  @џњ}@№О @№О   џќ@ЌSж   }@}р}№ж№жџј№ж№ж  @}ттОтОџќ   џў@2t  џќєєєєєє  @€рХр”Хh”@h.@ џі. qш“ЦƒЧ˜@џј”h@. №ж Ъ 0џў  џі џіџўА @єА2џџ ˜  @2џј:  @џќўЊ\ќ\ўЊ\ќ\  џ№@рЌ}h@ў№  *џў№@}жS  *џўh жД  @џўХ”hтЪДХ”h  @џќ}@ќ }@} ќ@.q ш”ŽЏŽ} }@т .@ў т џќ@   @ЌџћџёЌ @џўР џњ @џюt @ џ§џЕЄџ§Є @ џўА @џћєttttttttџўtttttttt @џўџЮXАXАXАXАXАXАXАXА Xџќ @џўџœ ž q!ш•d"Ѓ6@џј2xx џрЄ   4џіа 4џіа 4џіа 4џіа @џўџœtvxz|~€‚„†ˆŠŒŽ  @џќXИ4РXXИ4РX(И4РњР4И  @њжжж   @џњ€:ќрЌ}S@ @Р€џќр@Р€р@Р€рq"ш–Ж/Хб@  @џња:р}€Ќh:р}@Ќhр}@№  @џњќ ќ@€ ќ@Ќ €@ќ Ќ@@ ќ@Ќ @@ў Ќ@@ ў џў@4 4аXа @@}@}@}џќ@}SSSSSSSSSSSSSq#ш—Ч<Ы}SSS џќ@њ}}О џћ Ќџќџі @џўdXŠРј4tИ џчЌџј @џ§Хрќ  Ќ”Ќ @d  ўЌS@ (ќ$ў S@ќўS @ ќўS@ќў   ќўS@ ‚ФHRq$ш˜џњлЗ”Тдцј ,>ьЈ(nжь,Ќ"^f€ˆФктьі",8Brz‚Œ ЊВФЪђўp~ŽЄЖ І Ў Д   6 „ Ž м і  ˜ Ђ М ю кBxръJT\fnx‚ ЌОЦак<h~Œ–žІАЪтшюєњ .4:@JT^Фъ6>Hq%ш™џь…PZnЎЖbjz˜ АИШцю@Vrœ0Ьжмф)`)d)h)l)p)t)x)|)€)„)ˆ)Œ)Ќ)А)Д)И)М)Р)Ф)Ш)Ь*Р*Ф*Ш*Ь+l+t,Ф,а-\-h-Œ-œ-Д-Ш-т-ш/ /H1Š1š1К1Р1р1ц1№2222"2ш33333,343<3b3p3x3ˆ3˜3И3Р3и3ц3ю3ў44 4"4J4Ў4Ж4О4Ц5>5B5F5J5N5R5V5Z5^5b5f5j5n5r5v5z5~q&шšџѕ У5‚5†5Š5Ž5’5–5š5ž5Ђ5І5Њ5Ў5В5Ж5К5О5Т5Ц5Ъ5Ю5в5ж5к5о5т5ц5ъ5ю5ђ5і5њ5ў666 6666[РŒ’œІn|‚*2:BJPVxКЪќ J\bдо&4:@F     & . 4 @ F N ` h p x € † Œ ’ ž М Ф Ь њ  " ( . > ` l r x – ž Ќ К Ф Ъ д ф   L R Z b j rq'ш›џї†С z š   Ь в к т ъ ђ њ   D J R Z b j p ~ ˆ Ž Ф д к р ш  : N T \ d l t z Ђ Ь в ц ю єHPЬђњ $,2:ˆтєќ&0DX`ftzвирш№јўXpІОєќŠќ "6LT\ЦЮжмтшюL‚ˆœіЂДКюі–LЈq(шœџыYЖОЪвоцђњ<Bnv~†Ž– ЈЎЖО*т*ь*њ+ +++*+2+:+B+J+P+d+z+Ј+Ж+Т+Ь+о+ц+ј,,,,",*,B,J,R,b,r,‚,Š,’,œ,Ђ,Ј,В,И,и,є,њ-- -.-F-P-n-t.d.j.r.z.‚.Š.’.˜.ž.Ъ.ў//$/*/0/6/</B/Є/Њ/А/Ж/Ю/є0"0(1111&1,1:1J1X1^1f1l1z1’1ј2.282D2P2\2h2z2„2’2 q)шхw€џ2Ў2М2Ъ2и4а4ўBtBxB|B€B„BˆBŒBB”B˜BœB BЄBЈBЌBАЌxJ\060JИЈ&V„ :єИрАФиь0<0Pђщ*@ €€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€  (08@HPX`hpx€xph`XPH@80( ј№шриаШРИАЈ ˜ˆˆ˜ ЈАИРШаирш№ј „ˆŒ”˜œq*шžн[n ЄЈЌАДИМРФШЬадимрфшь№єјќ  $(,048<@FJNRVZ^bfjnrvz~€€€€ @@А€АР@'% деифѓ<400удоун'4)ѕЪаив*+$,ЮуЯлъ!30'илпэЯ8%/#Ювгй§*%$вйжфё80,)ёируч(-(Эдйи#)"#уувоь0-&"нмрэй6-!нежоѓ&#"#врзуї0.>BB:*упкпуыжяч їџ чОв ћџ !*..G6GWK[& чж،„ЕЪя 6S_:6&!ѓуТЮвяуып џ ћкЪуыыв& *.6!..62B>B&џыЙ­ˆ˜Б­п№ 0@P`pp`P@0 №раРА €p`P@0  @``@ №а € а№??а€€€€€а€ (@P_p4P\o`D АРар№ 0@Rbrq+шŸWџНџ8€0а2vS(шТ€0FYiu}~wl]J5ьдОЊ™Œ„€†ŸБХн0Yuw]5дЊŒ€†ŸХј&S}~lJœЎyБнІ МЊ ( šД2> 6 Ъ & p КNKњOФ M><aќQЯџњ;|;|;|F.;|;|;|џџ :М ;|ИNuKњO‚p:€;@;@ ;@";@;@.`цaœ;|F.;|;|џџ ;|NuJm6gSm6JmHgSmHJm€gSm€JmXgSmXKњOa<0-хHAњџ/0Nu y)šf;|.Nu y)šf;|x.Nu;|(.Nu02-AљУцHТ|јаAхIв@@0;@$pџEpўOp§QpGpSpUpз'pй)Aшџ`pА]q,ш 1Џ`3pи_paAш pˆ+pАKpиMp(-a mgj m gb mgZ m f0-*€mJ€mL€m$€m,g`60-$f,f&f ;| ;|;|џџ ;| ;|"Nu mg;|BNu;|BNu;|BNu y)šf:0-\€m^€m`g(;mZ;|;| ;| .;| ;|џџ"` тSm.fFJm6fF mU:n> m(:m6 m m(:m6 m m(:m6 m m(:m6 m GlRBD@;@:;B8t>-ž|’GlRBDA;A<;B>аA;@4NuJmHfn0-4А|ld y)№g y )№fP0<NЙ2ц3ќ )ђ3ќ)є;|;|џџ ;|(.;|><џўJy)цgDG;G ;|";|HNu y )ђgx0-4А| ln0< NЙ2цp3Р)ь3Р)ю3ќ)№3ќџџ)Ъ3ќ )ђ3ќ)єp2’zШmR@3Р)ц;|;|P.q3шЇLљp“;|;|џџ ;| ;|"Nu y )ђgl0-4А|lb0< NЙ2цp3Р)ь3Р)ю3ќ)№3ќџџ)Ъ3ќ )ђ3ќ)єp2’zDmR@3Р)ц;|;| .;|џџ ;|"Nu0- 2-"бUгm0<Jm gmR@;@ U8o:М8 mПo;|П Ul:М ml;|NuKњ@Dp;@ ;@"29)œВUoR@;@02-AљУцHТ|јаAхIв@@0;@$0з@&0й@(0ˆ@*0(@,0y)œlD@;@:А|-чG0аpp2тHа|<РK}РLТ|СK‚<€СL0-аppа| РK|РLа| РK~РLJmg”0-R@2-4-gSB26жpp4тKж|<УLУMФ|ТL„<€ТM6-жppж| УLŒУMж| УLŽУMAљ4Cњ7"EљГАmfВmg ;@;A`–#ќPp€LŒ#ќPp€MNuџјџјџќџјq5шЉћrУ? џјџќџј џјџјџјџјџјџјџј џјџќџј џјџќџјџјџјџјџј222 2 2   2 2ФЬрќ 08HJy)жgSy)жJy)иgSy)иJy)кgSy)кJy)мgSy)мp3Р)ь3Р)ю0:хHAњЌ/0q6шЊ­й8XNu3ќ)ђ3ќ)№0:ф2:тAљУцHТ|јаAхIв@@0ffg(0<J9IRgašg`J9IXg|pJ9ISg<0:‚2:€AљУцHТ|јаAхIв@@0ffОJy)мf`ТpJ9IPgD3ќ)ц0:6S@2:2QAAљУцHТ|јаAхIв@@0f3ќџџ)ь0<`Np`JJ9IQgB3ќ)ц0:ъR@2:цQAAљУцHТ|јаAхIв@@0f3ќ)ь0<`pJ9ITg&J9IZfJy)ьg Jy)иf`Jy)жgи3Р)№0:|2:zAљУцHТ|јаAхIв@@0g y )№g.:/ug&Ry)ь`g y )№g:/UgSy)ь0:"бy)ш2:гyq7шЋ`ПQЙ)ъNu0:аz82:вz:QAlrAљУцHТ|јаAхIв@@0402’|lrAљУцHТ|јаAхIв@@0€BNu3ќ)№3ќ)ђ3ќ )єSy)єfџ3ќ)ж`§ŒSy)єfўњ`§~3ќ )№3ќ)ђ3ќ")є3ќ)ьJy)цf3ќџџ)ь0:@аz@2::QAAљУцHТ|јаAхIв@@0f Sy)єfў3ќ )и3ќ)ь`§0:і2:єAљУцHТ|јаAхIв@@0”Bf8f20(f(f"0Pff0xffSBRB3ТZNu3ќ)ђ3ќ)єa‚Jy)кfJJ9ITgB0:hаzh2:bвzb’|lrAљУцHТ|јаAхIв@@0g y)ъ`q8шЌ‚Пѓ.Jy)єg„Sy)єfaџ3ќ)№3ќ)ьJ9IPg3ќ)ц3ќџџ)ь`J9IQg3ќ)ь3ќ)ц0: Юаz Ю2: ШAљУцHТ|јаAхIв@@0gp3Р)ь`:JyZf 3ќ)№`(J9IPg3ќ)цJ9IQg3ќ)ц3ќ)№3ќ)ю0: X2: VAљУцHТ|јаAхIв@@0g 0иf` f˜f`ќ˜3ќ)№3ќ)ђ3ќ)єJy)кfJJ9ITgB0: ъаz ъ2: фвz ф’|lrAљУцHТ|јаAхIв@@0g y)ъ`3ќ)ьJ9IRgˆJ9IPg3ќ)ц3ќџџ)ь`J9IQg3ќ)ь3ќ)ц0: pа@Aњ t003Р)ю0: Pаz P2: Jвz JAљq9ш­[#1УцHТ|јаAхIв@@0g3ќ)ьSy)єfћ–3ќ)ђ3ќ)є3ќZ`§~3ќ)ђ3ќ)№3ќ")єJy)кfJJ9ITgB0: Ьаz Ь2: Цвz Ц’|lrAљУцHТ|јаAхIв@@0g y)ъ`є3ќ)ьJ9IPg3ќ)ц3ќџџ)ь`J9IQg3ќ)ь3ќ)ц0: Pаz P2: JAљУцHТ|јаAхIв@@0gp3Р)ь2: *0<Aа@Aњ (00D@3Р)ю3ќ)ю0: њаz њ2: євz єAљУцHТ|јаAхIв@@0fg 0иf`gp3Р)ь3Р)ю`Sy)єfњ p3Р)ь3Р)ю`ќ3ќ )№3ќ)ђ0: x2: vAљУцHТ|јаAхIв@@0q:шЎЅІ&1fDff f`ћДJ9IPg3ќ)цJ9IQg3ќ)цJ9ISfљ˜`ј3ќ )ђ3ќ)№3ќ )єp3Р)ь3Р)ю0< NЙ2ц:)g"Sy)єo,Aњ)ТCњ*F~ Јџќ"ЉџќYHYIQЯџђp3Р)ь3Р)ю`љ(3ќI(Nu3ќ)№3ќ)ђJ9IRgX3ќ)№3ќџџ)ю0: p2: n’|l’AAљУцHТ|јаAхIв@@0f’fg„3ќ)ю`xJ9ISgp3ќ)№3ќ)ю0: 2: вz AљУцHТ|јаAхIв@@0fg0Ry)ъ3ќ)кp3Р)ю3Р)ьyј)ъ3ќ )м`іОJ9IPg†3ќ )№Sy)шaјŽ40:’2:вzAљУцHТ|јаAхIв@@0q;шЏФˆ(x€BRy)шJ@g$gРfИfА3ќџџ)ь`їФp3ќ)к3ќџќ)ь3Р)ю`љšJ9IQg~3ќ )№Ry)шaј40:2:вzAљУцHТ|јаAхIв@@0€BSy)шJ@gg4f.f(3ќ)ь`ї>p3ќ)к3ќ)ь3Р)ю`љ0:œ2:šвzšAљУцHТ|јаAхIв@@0fііaїffіъ3ќ)кp3Р)ю3Р)ьyј)ъ3ќ )м`ѕH0:FфHJy)цgD@3Р)ь0:$аz$2:QAAљУцHТ|јаAхIв@@0g,p3Р)ь3Р)ю3ќ )№3ќ )ђy)є`:`іRSy)єfіHp3Р)ь3Р)ю3ќ )ђ3ќ )№3ќ)є``іSy)єfі`є–3ќq<шАЬ0 )мp3Р)ю3Р)ь3ќ)ђ3ќ)№:%Ъ€:%Чg3ќ)№yј)ъ`ѕЪ0:L2:"В@g3Р)Ъt3Т)Ь3Т)ЮAњ’х@ p02( y)№g y )№f 4:„zJBg(Ry)ЬАzвf3ќ)ЬRy)ЮВzРf3ќ)Ю0:Вх@ 03Р)вH@3Р)аAњќа@003Р)д0:Œ2:ž4:†gSB2Aљ!Cњ%Eљ АzxfВztg8А|m"R@=@€9Прf№9Прgі=|€p3Р)о3С)рa|AњHJAgAњи>:чG0:,аpp2тHа|<РI]РIхТ|СI_‚<€СIч0:ўаppа| РI\РIфа| РI^РIцJy)дgТ0:ВR@2:Т4:ЊgSB26:Жжpp4тKж|<УJmУq=шБ pJѕФ|ТJo„<€ТJї6:ˆжppж| УJlУJєж| УJnУJіAљ!Cњ$рEљ АzHfВzDgLА|m"R@=@€9Прf№9Прgі=|€p3Р)т3С)ф`H#ќPp€Jl#ќPp€JєNuџјџјџќџј џјџјџјџј џјџќџјџјJAg Jс@аРJ.q>шВО1Ф.fј-| №@-|џџџџD=|d=|f-HP-IT=|XCщˆAш€J..fј-| №@-|џџџџD=|d=|f-HP-IT=|XNu2 2    2 2 2 2 22     џџџџџџq?шГЊƒŒ#џџџџџџџџџџџџџџџџџџџџџўџ§'Ђ'Њ'Ю'ж((.(6(N(V(^(f((F(n(І(вRŽn№ь n ^"Ќ#P hџџџџџџџџ((aйцNЙТaIњž4<NЙЂIњИ4<FNЙоIњО4<NЙоIњв4< NЙоIњч4< NЙоIњѕ4<NNЙоIњэ4<NЙоIњ4<NЙоIњ4<NЙоIњ"4<NЙоIњ*4<XNЙоNљWELL DONE YOU HAVE FOUND THE EASTER EGGGREETINGS GO OUT TOEVERYONE OVER AT EAB GREAT FORUq@шДЄ9=ыMESPECIALLY PHX LONEWOLF STINGRAYTHANKS FOR THE SUPPORT GUYSFU TOMY CRAZY SOON TO BE EX GIRLFRIENDZERO HOUR CONTRACTSPRIMETIME RECRUITMENT BUNCH OF COWBOYSMCVITIES STOCKPORT UKLOOK OUT FOR BRUCE LEE COMING SOONISHAљ><O!|(!|P!|x ќQЯџрNuAљ><'џ ќQЯџјNuJy)жfAњ `r y)жfAњ Ю`bAњˆ`\Jy)жfAњ њ` y)жfAњ Њ`Aњda"CљЦР”B><ПА<fRBQЯџє3Т)оNuCљЦР><ПиQЯџќNuAњъaшaФAљЦРCљKљУ~&I|'IњШEљ@@єА<f$Iљ @JyIqAшЕlAœJgIљ €2Р|шIяIаAдРР,€€*Р,€,@(* Р,€,@P*0Р,€,@x*@Р, €,@ *PР, €, @Ш*`Р, €, @№*pР,€,@*Р,€,@(*Р,€,@((* Р,€,@(P*0Р,€,@(x*@Р, €,@( *PР, €,@(Ш*`Р, €,@(№*pР,€,@)*Р,€, @P*Р,€,"@P(* Р,€,$@PP*0Р,€,&@Px*@Р, €,(@P *PР, €,*@PШ*`Р, €,,@P№*pР,€,.@Q*Р,€,0@x*Р,€,2@x(* Р,€,4@xP*0Р,€,6@xx*@Р, €,8@x *PР,qBшЖсМ5 €,:@xШ*`Р, €,<@x№*pР,€,>@y`Ь2Р|шIяIаAдР’j(j Pj0xj@ jPШj`№jpj(j((j (Pj0(xj@( jP(Шj`(№jp)jPjP(j PPj0Pxj@P jPPШj`P№jpQjxjx(j xPj0xxj@x jPxШj`x№jpyRIQЮќі"KCщ@QЯќшNuKњ#†02-4:2?a02:(’@гyI*Nu0:љъ2:љш’|lrцHцI4ыJ6чKжBж@4сAэBвBаA2a(S@SAa"T@TAaа|?в|'aа|@в|(aа|@в|(AљУ 0 f*RyIRy2фМEљ@CљвРAљЦРt06Ф|шKяKдCдТ’j(j Pj0xj@ jqCшЗ _˜§PШj`№jpj(j((j (Pj0(xj@( jP(Шj`(№jp)jPjP(j PPj0Pxj@P jPPШj`P№jpQjxjx(j xPj0xxj@x jPxШj`x№jpyHЇРJyIg y2Œ0:NЙ2цLŸNu0<5NЙ2цLŸNuB  ЙЙЙЙЙЙЙqDшИчс 1ЙЙЙЙЙЙ L ЙЙЙЙЙЙЙЙЙЙЙЙ L LЛЙЛЙЙЙЛЙЙЙЛЙЙL ЙЛЙЛЙЙЙЛЙЙЙЛабвгдежзиЙЛЙЙЙЛЙЙЛЙЙЛЙЙрстуфхцчшЪЫЬЭЪЫЬЭЪЫЬЭЪЫЬЭЪЫЬЭЪЫЬЭЪЫЬЭЪЫЬЭЪЫЬЭЪЫЬЭqEшЙSkј—˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜™йклмноп№ёђѓєѕMЇЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЉЮщъыьэюяš›œžŸЮ ЇЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЉ,љњћќ§ўџЊЋЌ­ЎЏ=TЇЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЈЉ@J*J* stst][Y\stst][Y\stst][Y\stst][Y\stst][Y\>Luvuv qFшКк‚>E  EH  H> L>E^````````EHŽ**abcddefdddb*ŽHE*ghijjkjjjjhEQ,l,l,Q>,m,m,>E,m,mP EH,ППn@П€ППnRT HE,((Ž(Ž(((EQ, ,{M%%%Ю%%%Ю{ Q>,qGшЛпХ”h‘,)), )),‘,>E,‘, 333,"333,‘,EH,, !)),)),"!,HE,‘,ПП222@П€222@П‘,EQ,‘,Ž(  ‘,Q>,‘,{M{%%%ЮM{{%%%ЮM{‘,>E,‘,-./01)),)),-./01‘,EHP ”,45678333,333,45678”,HEP ”,9:;<=)),)),9:;<=”,EQRTT’@ABBПП222@П€222@ПABB’@QXDZ[XYZ[XYZ[XYZ[XYZ[XYZ[YYZ[XY[[XYZ[XYZ[>L L uvuv>EL qHшНВjт’  EH ГДЕ  LЦLH>УФФХРВШР>EВААЧСБЧС^_``````EH**‡‰*Ž *abcddefddHE###,,{MM{,ghijkjjjEQ&$$=$$J&$=$$ &$= l, !"Q>*N**!l,!!">EP o, "”,l, !EHRSTU€W@П ’@l,HEŽ (‡‰(((l, EQЮ,######,, l,-./0Q>P$$$ &$$=" $М5џџ-ё№яюэьыъщшчцхфутсрпонмлкйизжедгвбаЯЮЭЬЫЪЩШЧЦХФУТСРПОНqџџџ§qIшОсм§ &$ $=$J&=lP4567>E,*  "**N*mP9:;ЮMЮ{M{############>E$$$J&=$ &$$$ &=$ &$$$$$$$EH*N****HEP o,”,”,”, " EQRSTUWP П ’@’@ "€’@ QXY[ZXYZ[XYZ[YYZ[XY[Z[YZ[XY[ZXYX[XYZX[XX[>stјОї јОї јОїLјОї st>Eƒ„LјОїјОїјОqJшПМgї јОїƒ„EHјОї јОїLјОїјОї HK јОїLјОїјОїјОїK>L јОї јОї јОї LјОї >EјОїјОїјОїјОїEH*‡ˆ‰Ž‰*‡ˆ‰*‡ˆˆ‰*‡ˆ‰*‡Ž‡ˆ‰*HK,wx *!wx *wx!K>,wx,  !,wx >E, !yz, @yzEH‡‰( ‡ˆˆ‰Ž‰,‡‰(‡‰(‡Ž‡ˆˆ‰( ‡‰HK* ! * ,  * K>,,,  !,,>E, ,@@,qKшРЗЃЊ#EH‡‰(‡‰(,‡ˆˆ‰Ž‰(‡Ž‡ˆˆ‰(,‡‰(‡‰HK* !,,K>,, ,>E,@ !  ! , !EH‡‰(‡‰(‡‰, ‡ˆˆŽˆˆ‰( ‡‰@ ‡‰(‡‰HK* , *K>ЬЭЪЫЬЭЪЫЬ, !ЭЪЫЬЭЪЫЬЭ>E*,*EH@yz@yzyz@yzHst}~~stst}~~stst}~~stst}~~stst}~~stqLшСџ,qMшТЦ•fuŠООООŠŠŠООООŠŠООООŠŠОООŠŠООООŠŠОООŠŠŠООŠŠООŠООŠООŠŠŠŠООŠŠŠŠООŠООŠООŠООŠООŠОŠŠООŠŠООŠООŠООŠŠŠŠООŠŠŠqNшУ‚‡№чŠООŠООŠООŠООŠООŠООŠООŠŠООООŠŠООООŠŠООŠŠŠŠООŠООŠООООŠŠООŠООŠООŠŠООŠООŠООŠŠŠŠООŠŠŠŠООŠООŠООŠООŠООŠООŠŠŠŠŠООŠООŠŠООООŠŠООООŠŠОООŠŠООŠООŠООООŠŠООŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqp*{{M{{MM{{M,,    P!  P  ! ! !  TPT  TSRSTU € !qOшФыK a UTSSpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠpqŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠpqŠŠŠpqpqŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠpqpqŠpqpqpqŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠpqpqpqŠpqpqŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠpqpqŠŠŠpqŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠpqŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠ І •…tdTD3"џџџџџPpqPшХ.ЅŠPp€P pP p€qQшЦфЎ]ˆ<а\<а\€PиpPиp€qRшЧМЎЯЇ* +€@ 20/.-+*)('%$#"!   !"$%&'(*+,-.012356789;<=>?ABCDEFHIJKLMNOPQRSTUUVWXYYZ[\\]]^__```aabbbbccccccccccccccccbbbaaa``__^^]\\[ZZYXWWVUTSRQPONMLKJIHGFEDBA@?><;:9865432ќB$ Ž,ќС’8”артфцшъью "$&(*,.02468:<>qSшШ9d%—*џўš+џўš,џўš(-џўš(.џўš(/џўš(0џўš(1џўš)2џўš)3џўš94џўš95џўš96џўš97џўš:8џўš:9џўš::џўš:;џўšJ<џўšJ=џўšK>џўšK?џўšK@џўšKAџўšKBџўš[Cџўš\Dџўš\Eџўš\Fџўš\Gџўš\HџўšlIџўšmJџўšmKџўšmLџўšmMџўš}Nџўš}Oџўš ~Pџўš ~Qџўš ŽRџўš ŽSџўš ŽTџўš Uџўš Vџўš ŸWџўš ŸXџўš Џ\џўšB`џўšRdџўšbhџўš rlџўš ‚pџўš ’tџўš Ђxџўš В|џўšТ€џўš В„џўš Ђˆџўš ’Œџўš ‚џўš rqTшЩnmj”џўšb˜џўšRœџўšB џўšRЄџўšbЈџўš rЌџўš ‚Аџўš ’Дџўš ЂИџўš ВМџўšТРџўš ВФџўš ЂШџўš ’Ьџўš ‚аџўš rдџўšbиџўšRмџўšBрџўšRфџўšbшџўš rщџўšьџўŠРэџўŠрюџўŠряџўŠ№№џўŠрёџўŠрђџўŠРѓџўŠРєџўŠрџџџўџџџўџю н Ь Л Њ ™ˆwfUD3""3DUfwˆ ™ Њ Л Ь нюџDDDDDTTdd t t „ „ ””Є” ” „ „ t tddTTDDDDD   qUшЪТz џџџџџџџџџю н Ь Л Њ ™ˆ ™ Њ Л Ь нюџџџџџџџџџ|ююююю|<|<<<<<|Ю8~ў|ЮЮ|FNT`jz‚Š’˜ЂдршT`hpxИТЬктшђњ FNX`jpz‚Šиршюі6BHR\dlv~’ШЮктъіў T`fpx€Š’Фрш4:DPVbjЌЖМЦЬмфьєњ  6 < H R Z ` j r И Р Ъ в!!!!!&!.!8!D!J!|! !Ў!Ж!МqXшЭџюъЃ!Ц!а!ж""&"4"<"B"†"Ž"”"œ"Є"Д"О"ђ"ј#####(#.#6#>#F#R#b#j#p#x#€#’#š#А#И#О#ж#р#є$$$$&$.$>$š$ $Ь$в$м$ц$ј$ў%%%%B%H%R%\%n%t%~%„%Ю%д%т%ь)V)Z)^)b)f)j)n)r)v)z)~)‚)†)Š)Ž)’)–)š)ž)Ђ)І)Њ)Ў)В)Ж)К)О)Т)Ц,ф/і0d1^1hfh$V%Š,Ш0v,о,ь(ŒB nО tqYшЮВЊPЉњ Жњ˜&˜Ј4Єўx ˆ ф!b!ю"X"в,И0Tpr$`%”+ф,,В0|,p,’,Ќ0„ђъUЊџџULЊЊiџџЙЊUUUџЊUЊЊџUUџџџAџџ‚џџУџџџpџУџ№/џџUЛџџў№pџџё‚џџџЛПџџ№€ўрјрїяџЛПџџррќ0?јџЧЛџџ=ррјќ ?џяЛюcџџ{рјРў џџЛЛ1џџ‹xр№џџџџЛЊ?џџpр№џУџџџЛЏўѕј‚) "Uџ~пO§ђћ|ь"Uˆќ)//§єєU˜мЊ"џ"‹пўћбР0"рл?Цќл"Dˆ~aŒ†р"ˆyœ0ќ џџџџ"Њˆ?рРјџџџџ"ˆАD ˆџџе`Р€  ˆqZшЯ_ОЪЬУ lџШ|РР@ˆЬУ `РџтўР €VџџˆџЯ?LРџР~РP ЊџЯ?ŒРѓРxР, џЯPРѓР|Р€ј ЊџЯП`РџРўР"Ž(}ЊџjpРџР~Р§џџ ?сРG]мРџџ?х?ѓ€˜ўyмР€Фџџ"—П™ {йР~Ь ѓё?ЬؘѓбР~ї"ѓс ^‡0€ 0ч#РОчТ€ѓуц;ь€Р@€^я,РѓчˆУMмРрѓ`їаРџџІCMмР@'fЂРгnE@xџ@џџџРŒ$$n€€јџ‚џџџРHHMц"xџџџџР„@џџџџР­РСeX џ^џџџР€$$рb‚џ~џџџРџџџўb&џ,§џџ€ќxfџџџџН~"ВkW"џ’€ЄЃр~wЗџџР~П)џMEQET€р~7_їџŠЊ€Ј*И?О@Ё­?eXБ~Д>оХn3ћ{ѓџў~~>бџЪn7ћћ‡їџќ|w<q[шаЕ…L|<ёƒџџџџ№џџџ№џџџ;?џРџџџ#џРœџџџ#<џР<џџР<џџРРџ€џ;rё=џn4№џр№VЂрџля?јџЏк№= PџЧНо№џ˜№ŸVЂшџЇ- рџПд№= 1ДџчџљрџЯг№VЂїњџs%Ъ№џoж№= cЗџgSБpџoг№VЂoџџХJАџџoлџџџџчџџџoлџџUUУќ(џџЯлџџлBџџ џџ?џќ0 л€~џџПћџџУ~<џџ џџ0 лyœ<џџЏкџџџџџУ@ џџXџџџџџЊЊчџПџџџџџџџџџџџџџџџџџџџџџџџпџїџџџџџџџџџџџџџ{џоŒЧћўЯџџџџџџџЗџэї{[ћўЗџџ?џџџџџџџ‘˜[рў‡џџџџџџџџџџзы[ћўЗџџџџq\шбŠихПџџџџџџ[ћљЗџџџџџџџјџџџџџџџ‡у‡уџџxџџџџџџџ‡у‡уџџxоchўџГџ‡у‡уџџx]­[ўџ­џ€€џџxм#8ј?ЁџŸуŸуџџx]­[ўџ­џ€#€#џџxХ­hўўmџ€#€#џџxџџџџџџџ‡у‡уџџxџџџџџџџџџџџџѕџЧЧџЧџ8џџџќяюЧЛƒџЛЧ|џџџ№„ПЫѕƒ]п]ƒўџџџрJЧъƒ}џ}ƒўџџџРРŸЩнƒ}џ}ƒўџџџСъЧЛƒџЛЧ|џџџŠ +ѕџЧЧџЧџ8џџџ…џъџџџџџџWў џ§езџ§ПџџПЏПјˆ"џњњњРџџџ_Wуœч§ѕ§ЖЙo€џПЋПџ†Уюўњџџ€џ_W_џЯџХ§ѕџvк[nРџЏЋЏџџџ‚юџњўџўРџ_UWџџџГ§§§џИ§РџЏЋЊџџџ=ўўўџџРџч™ч‡€xyчџџџџџџџ€ћшу{€wИуџџџџџџџ€{шb§€oиcџџџџџџџŒ;шcџџшcџ9Œfп›Ž;ш#Пћш#ўжЕq]швtШЉџZпkŽ;ш#Пћш#ўіДC Ž;шЁћшўжЕџ[пkŽ;шОћшџ9Œ|к?hŽ;шƒОћшƒџџџџџџџŒ;hƒЖћhƒџџџџџџџ€|јУЮ€|јУјŽck8ћg€џјУў€јУїЕ­jзњкџљчџ€љчєŒ# љљТџџџџџџџџџіЕЏjоњкџџџџџџџџџјЕЏk1ћ[џџџџџџџџџџџџџџџџџџџџџџ џўџџџџџџџџџџџџџ ќЦmќMhќџџџџџџ /шН­k}Е[ћŒb?Ы ŸђЭ­k}Е8ћЕЎпыk /шѕ­k}Е[ћДbп›h ŸђŽqh§ЕhќЕЎп{o oьџџџџџџџЂ? я џўџџџџџџџ‡<џаџUџ}№ЊU€рUUрЯРџрUРћрѓРU€€?рп€UЊРƒўpџU‡џ№<UЊџ}жєџwЊЊ.uџ РЊwЊwџРР @џwUн€џq^шгU ~.(wџџџwDUџ‹~џј wЊUџР@џрШwUџСџwЊUџџOџЛїѕUќџџ*€?џпћџђU€џƒ7€??џŸџїїUƒ€??Ÿџ?ЉU€??€?ў<џпп??€?Уј|џпџ" ??€?рџџп?С??їСpџз‚ЊUС€?џ?€?№рџџƒчюіР?@И ?џџРРg?џџƒШˆ@`џ0?€qџР0рџ7"?€@џп Р€F?н€Я0€?™w<0?сРџ€!?СчYМ0?ќЁаџˆE?џџџя€ЊП€ч€ч~~?я€wя€ZF~? ““ЊХџ€ї~€ЕB~? €яџ€ч~€нB~?Š€їџ€џ~€ћB~?€чџџ~€џB~?€яџРџ~аџb~€їџ€џ~џ~~€@”Ј~яџћяќџ€€ћћў@~япћяq_шдh +zќџ?€вћџ€~ЊšЊЊЈъ€ џў€ UQ@TеџPЧŠ€ЈЌџ7€ƒТ§B<Z\Рџ2€€§<Р5€x<€€Р|р<рсНџџџ<<<~№<рёНџџџ<<<~№<`№М<РFџџћш§ъ8|8D|8ћџџuідџѕ888йџџўџzћъ&@Pџѕ§ез P'€Ј€wоњњњ@P@o§§ѕ§ œ9А= Ј ћў<юўњ?PT@?џџ:§ѕџ-М=Д? Њ oџ}юџњ?PTTџџ~§§§œqaшж‘Е‰”9? ЊЊџџџљўўў?~fx‡†gќЧc˜gЮ`чa˜g™€`g˜a˜g™€`g˜a˜fй€~fиa˜fйž~fиa˜fyž`fxa˜fy†`fxcœц9Ю`ц8Ц8ўЦ8~†v‡†$$$$$$$$џџџџџџџџџџџUџџџџџџџџџџЊUПџџџџџџџџџџUUПџџџџџџџџџџџUџџџџџџџџџџџUуџѓqbшзџk”џџџџџџџџџUЊёџџџџџџџџџџUЊ?џџџџџџџџџџUЊЏўѕјџџџџЊDџџ.ѕџџo§іџЧ|ьDџ€џ?я§їќлuимDUџќџ›пўћйР0Dџўџл?ЧќлDfџ‹ўџџс‡џDfџРџј№ќџџџџDЊfџџ?џрРјџџџџDЊfџџ?џџџџfўџџџрџџџџџџџfЬ ьџƒџќџџџпџџџfЬƒ рџНџўџПџПџџџfџ?ЬџНџўџпџ?џџџDџ?ŒџНџјџяў~џџџˆџ№џНџќџѓ€ќџџџЊџП№џСџўџџуўџџџЊџС№џџџўџўџџџџƒчџџџуџнџ}мџџџН™џџџѓџџўyмџ€ФџџНПъŸџљџ<{йџўЬ}џН~џќљџџИѓбџўїbџН~џў‡№џŒpч#џОчоџН§џў;ьџпР@џоя<џН™џџ}мџўрѓџрїёџСчџџ}мџјСчџючџџџџџюяџјїРџ~~џŒ$$яюїџјя€†џF~џЁллEцчџјџ~†џZ~џŒ šяџРї~žqcши(д5цџZ~џ­УУхиџџ џ~оџћZ~џ€$$ртїџ‚џ~ўџџZ~џџџџџтяџцџ~ќџџb~џџјџџцџ~џџ~~Пў"ђџџ"~}__џ_џџџџўwџџџї~япћяџџџўПћџџџ~EUQETеџў7џџџї€ ŠЊ€Јъ€?О@Ё§ЧхPЋ~ЈўРїю7ћћџї<џ~~ўРџю7ћћџї<џ|ї<ќќрџјРр@РРР~џРџџћЯ№@РРР~џРџџњO№@РРFџРџџћOџРџџџРФРZџРџџњЯџРџџџРФZЯРџџћЧџРџџџРмbР@@џРџџџРР~р@@џРџџџРР~ЖšћOФџџїЕо€IФњOŠ ћџщЪd№ЇŠћЯФюWч?ШрŸ№њЯŠ пЋџ˜в№РŸФћOФŽ•џ(Р_РњOŠ џыџ€  `џРћЯФ\•џЃ€ ПТјŠ ЊџС€чПСџџџч.ѕУПТ§U@ЊЊУ€_qdшйщxфРњЊ€лУ3ЬлЏ0™™л ўз@3Ьл@ЯЁBџџџУУ€џџџUUчџ?~~~~0 џџџџџџF~~~xџџџџџџZ~~FxŒЧћўЯZ~€ZД-ї{[ћўЗZ~ЧZX‘˜[рў‡Z~<b( зы[ћўЗb~<~џц[ћљЗ~~<~8џџџџџџЇѓ 0˜џџџџџџ€Їѓ 0ИоchўџГ~Їѓ 0˜]­[ўџ­~Пѓ?№Им#8ј?Ё~Пѓ?№˜]­[ўџ­~ 3 0ИХ­hўўm~ 3 0˜џџџџџџ~Їѓ 0ИџџџџџџџџџџџџџѕЧЧЧџЧџ8џџџџџџџџюƒƒƒЧƒџ|џџџџџџџџѕ!!!Ѓ!џўџџџџџџџџъƒџўџџџџџџџџнƒџўџџџџџџџџъƒƒƒЧƒџ|уџџџџџџџѕЧЧЧџЧџ8џџџџџџџъџџџџџџWџџџџ§езqeшкЖъ;MџПЏПџџўџњњњџ_Wџџ§џ§ѕ§џПЋПџџўџюўњПџ_W_џџџџ§ѕџџџЏЋЏџџџџюџњџџ_UWџџџџ§§§џџЏЋЊџџџ§ўўўџџч™ч‡€xyчўћюћ{џїОћџџџџџџџ{яz§џяп{џџџџџџяЛя{џяџя{9Œfп›яЛяЛПяћяЛўжЕџZпkяЛяЛПсћяЛўіДC яЛюлЁџћюлўжЕџ[пkяЛюлОџћюлџ9Œ|к?hяЛюћОяћюћџџџџџџџэЛnћЖяћnћџџџџџџџуќўћЮр|ўћјŽck8ћgџџўћўџџўћїЕ­jзњкџџџџџџџџџєŒ# љљТџџџџџџџџџіЕЏjоњкџџџџџџџџџјЕЏk1ћ[џџџџџџџџџџџџџџџџ$їоџџџџџџџџџџџџј$gЬЦmќMhќџџџџџў$РН­k}Е[ћŒb?џџў$РЭ­k}Е8ћЕЎпџџџ$Рѕ­k}Е[ћДbпџџџ$РŽqh§ЕhќЕЎпџџџ$gЬџџџџџџџЂ?џqfшлRWј џџ$їоџџџџџџџџрџУџ№џџ"џџџџ№џџ"џўјїџЊ"џќ?јџџ"џјќ?џџ"Dџјўџџ"џ№џџџџ"U?џ№џУџџџ"ŸпџћљUЛб Ÿўљ№8ƒсџЛўјр$џЛЊЧ?ўќуE Лчџјџчџч§џЛюt№ј€џџџџЛЛќ№рЛU8ўЛџџ3<ѓ 3<ѓ@@2Р2 Р2Рr2€  U2@>>€‚#€џ †#~;€BУ„&3‚€G .xsŽм@!Ф >Пqgшм№oџ”ќ Уf‚#ј >‚# "Уџџ€€sлл‘8џџ€€^$$К€xџ~„€sчч…d6€`џb„€R<<&^€ џ„€лл]€џ„€€џœ€џџџ€€џ€€@н 툂   ˆ€ €@€КЊЎКЊ*Ш…uU_VРР@џП^џ8ОЎЊ>Р ШРAPVрШР€€рШР‚Bрџџ№€€€8„Р„Рœ Р€€!№ џJ!€№5џ5˜№ № ЈРr0р№5 g-Р@qhшн"dv № qJдР $№5h `!№ Ѓ@PˆD @$№5€2‘F@$чб <@$ЊЊУ~ $лќ<oр3Ьл P€џџџ™™лє(џџџ3Ьл€0 Уў? UUчўўўў0 џџџџџџЦўўўxџџџџџџЦўўЦxŒЧћўЯЦўЦ0 ї{[ћўЗЦў?Ц  ‘˜[рў‡Цўќўxзы[ћўЗўўќўwџќ[ћљЗўўќўpџџџџџџPPpџџџџџџPPpоchўџГўPPp]­[ўџ­ў@@pм#8ј?Ёў@@p]­[ўџ­ў_Ш_ШpХ­hўўmўPPpџџџџџџўPPpџџџџџџрќџ‡џр ЧЧџЧџЧ8рјќрƒƒџЛџƒ|Рј№?Р п]qiшоmU0пўР№р?Рџ}џўР№РР"џ}џў№РƒƒџЛџƒ|№€ ЧЧџЧџЧ8~№џџџџџџџПЏџўџ*(џџW№џїџПЏПру BBbџ_W_рС@џЏЋПРС €џ_U_€€џЏЋЋ€€BBџ_UUџч™ч‡€xyчўћюћ{џїОћџџџџџџџ{яz§џяп{џџџџџџяЛя{џяџя{9Œfп›яЛяЛПяћяЛўжЕџZпkяЛяЛПсћяЛўіДC яЛюлЁџћюлўжЕџ[пkяЛюлОџћюлџ9Œ|к?hяЛюћОяћюћџџџџџџџэЛnћЖяћnћџџџџџџџуќўћЮр|ўћјŽck8ћgџџўћўџџўћїЕ­jзњкџџџџџџџџџєŒ# љљТџџџџџџџџџіЕЏjоњкџџџџџџџџџјЕЏk1ћ[џџџџџџџџџџџџџџџџ$їоџџџџџџџџџџџqjшпЩьOФџј$gЬЦmќMhќџџџџџў$РН­k}Е[ћŒb?џџў$РЭ­k}Е8ћЕЎпџџџ$Рѕ­k}Е[ћДbпџџџ$РŽqh§ЕhќЕЎпџџџ$gЬџџџџџџџЂ?џџџ$їоџџџџџџџџ™B$УУ$™џBf<<fBf<<fBf<<f“l||8ƒЧяџlўўў|8lўўў|8lўўў|8vŠŠRRURURЙЌUЌURџџџЌУџЊЌЊЌџЊЌџџЌџџџџјќ (єpl ,BL’]ЊР1Рќшшр`0  ?јєРм дqkшр)‡Е­ш„№шр@ј№sм1}ю D1ў>ˆpˆppp8 3?€€ }€[€@1р €x8@ @ ИРИ@А@ А@ `€ќ№ ŠР`p№?~€07€H5€z!€>=€€€Р €Р€Р @€ `€`Рќќp№~џћ8З€№sp€јX€ \-€|€GИ`@я РРп@€`€€~z8јqlшс˜Tіˆ~§`okєCx€€=€3 Рс €РР РР Рў|8ј?€€ }€[€@0РИ˜а0@ ˆ ШXИpp €` €№ № †€C@ pР№?~€07€H5€z!€>=р ј`8˜иИ`0Р Р РŒŒ†У`p0~џћ8З€ Аq€ hР0H Œ<|˜7ИР@& СРйРрјx8рјqmштHЛ~§`okєC}№z@№`јœ8РР РР Р@€8?€€ }€[€@8РР@@€аˆ 8@ №0 Рр Рр` 0?~€07€H5€z!€>=Рр ``0 јpР€р Р0 c№! wј@рј ј ј#№ H U 4@њіьќ€€qnшуЌХ”и€€€p№pи07јј:@АрРЗВѕ єРтЄРќј€€€№ јРјGј@ё ф 8"BŒ Dа№ў ђ ш №и8p7ј0'і†bќФМ 0єА№р№ рь "Ь    @Чу@Џѕ€№@№Hр CТ-Дp(   ррР Р qoшфЇЋ9ћ@ @ @ @ @ @ p`pр'фрMВ`nv /є 'фp3Ьx№ P№р№`р@Р Р@ @ `````@ p~џ §›€D0ƒ…„X„ …Yљъ€јРј````€$€3 ~§pwHЕњa|z8џ|џz{# {q{"f€T\Р€```р Р€€€?РР>Р-Р €Ррqpшхц8Р*@ P<€<@ˆ№? Р `€/рр `8ˆ†€†€?@Р$Р=Р€р№ p`И0јр?р?р@7€ ?w#Рџ№Рџpqqшцп№Ю€€?РР€?@&Рр€й$ƒC€…qЦ8љ ќ@ @яР€?@Р-@>€@€&€<ћ€ €9€€РФРРу€Р~џћ8З€€Ÿ№ `    ~§`okєC|l~`@  qrшч&сбь€€РрР0 №а а h0€РРр@ррр`p8   >?Сgџјџрр?@ #?мŸўрљOqsшш)К4M~џћ8З€d Фрф(ё1џР€~§`okєC|z˜ў№ю*ц;П€€ќў *ѕpn у˜XќqtшщицшњРо!ды…љѕ'ўЃмd7јqцN`€аЏТм№а€Žx ў ~ |000 |Ю †>>>ў Ђ?  њўМ/№7№р€quшъиыh*0 z њђ7Т'ф№ќ м  ќќј ```@0Р #€žо &> pyќ<8>~ў>& є'ќ7x _рoрР/8 |l>9кoђf<;иа €0Xa†A‚їяџџџџяїёŸљЭГ`BB@0 ˜№@ ˜јH Px88a†ЖmџџџџqvшыќШЃГяїoіgц3Ь`=М@№№`№@рр€ 0p` ‚ПРŸ Ю Œ  xwјC`јќ`ћјx~ <јФФT&< €]РОє t№р†pwЗлєŸwјЬјјИ(p?>€p0@јрчШ u„ Ц g†GЬG№Oј Р1Ср€qwшь$іŽ‡§ џ ој€ј№РЗј0 Jx38 ј>№<Р3€p8Рh№рp  ќќј ```@0Р#€ € Р€ш€ј ј0xјp0р` є'ќ7x _рoрР/` №x јph иаА @€Р€Рўb_ Я  gŒaєœ`ћИ|x`Kќ`kј8~ <јФФT&< qxшэтЃ&Р`НПі єg№др—Fsї4лŸјЬјјИ(p`A€§€Рљ€s0Р0а100№8а P  РфЮр< ~< ё<џ~шp`€К@Рў`}рР/ .Рр€3` |РРїьрч:рџю7Ь2рР€Рфјa€A€їрџ№џ№я№№Ÿ№Уц ‚E€0 >ќ€žє ŒŽqyшюБ#Т­?€a€Ж`џ№џ№я№o№gр=† €:u€їхШ№€р`ˆ00€€€€р№і?џ џџ}Й`RK@Pp9˜ј@˜9œ?ќ0|88p€`№і?§_џwяsЧ`mД@/№№`ј@рр€ рРіуqzшяЗKеГуРС@`8@џљќнџўp@юћљ€€ј^ Џ€3€Ф(€hƒј€€€@Р8И Pјь;а|q{ш№mЛ№&|h@д$c>3џ?a s@w?+ќнТ§П€€€ @ pРр€р€рќ€€€~€€џ€яќ@ќјр€8м~~рq|шёMdш 811@@ <Р |сЧ8?6''8On@Пп??_^|880-9?< 0јј№РР€€€ €Рˆј˜ $ƒ0шј№РР€` pАј˜`№№ и< vŠŠRUЊq}De7LЮRURЙЌUЌURџџџУГџЊЌЊЌџЊЌџџЌџџџџђы2 ђ'8On@Пп??_^|880-9?< 0јј№РР€€€ €Рˆј˜ $ƒ0шј№РР€` pАј˜`№№ и< vŠŠRUЊђ ѓѕ”Јmў§ќћњљјїіѕєѓz4НЏсLoveDungeon.txtpџџџ§ђшє<€џжXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXз LOVE DUNGEON FOR THE COMMODORE AMIGA COMPUTER XзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXз Programmed between 23rd Nov 2014 and Dec 19th 2014 Love Dungeon is in the Public Domain, do with it what you want, but please keep this file with the executable. XзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXз Phew, its done and its less than 64K ;) ђшѕU•PŒ Writing games is exhausting, maybe im getting old, maybe im a little rusty, but boy does it take a long time! I wrote my first piece of 68k assembler, in over 20 years, on the 23rd November 2014 and the game is released less than a month later, coded in 100% ASM, I've learned a lot ion the last 4 weeks.. I hope you like it, please tell me about how you feel about the game on EAB forums, search for LOVE DUNGEON. XзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXђшіcЉœзXзXзXзXзXзXзXзXз CREDITS Designed and Coded by Jay Aldred aka Jimmy2x2x Contact me via EAB or email: jay.aldred@gmail.com Original Tile and Sprite Graphics by Kagesan with additions by Jay Aldred Sound Effects and Driver by Mike Clarke with additions by Jay Aldred XзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXз THANKS TO Many thanks for all members of the English Amiga Board (EAB) For ongoing encouragement, help, advice and supportђшї БД. Without you guys I would have never even thought about programming on the Amiga again! In particular: Technical Support: PHX, STINGRAY, CHAOS Playtesting: Lonewolf10, PHX Making Videos: S2325 I hope I haven't forgotten anyone! XзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXз ABOUT LOVE DUNGEON is a spin off mini game project from my main project Bruce Lee - a reimaging of the 1984 C64 (and other platforms) game I wanted a smђшјќ;;ъaller project to start with, the monster (YAMO) was a late addition he wasnt going to be in this game at all! XзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXз SECRETS Beat world records in any order to unlock the following: 1st record - unlocks sound test 2nd record - unlocks Monster Mode 3rd record - unlocks Hide and Seek + Heart Attack game modes Reset all World Records to 0, select reset records TWICE! (Shhhh, dont tell anyone!) TogђшљљIЪнgle PARTY MODE (removes options and exit selections from main menu) Hold down Left Mouse Button when starting a game, once to enable, once more to disable. XзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXз TECHNICAL The game runs in 320x200 16 color mode (4 bitplanes) with some copper effects It only uses a single copper list and a single frame buffer no double buffering or back buffer of any kind is used. This gives the game an old school arђшњЃQ Єcade feel which is what I was aiming for. Bruce and Yamo are hardware sprites The game maps and title screens/high score screens etc are all made from 8x8 pixel tiles There are a selection of 256 tiles map is 1 byte per character. The hearts are stored as tiles in the map and are masked onto the screen I mask with the tile to the right of the heart, this is why you wont see hearts next to each other horizontally in game ;) I was originally going to mirror the hardwarђшћаƒчˆe sprites in realtime but thats quite of a lot of processing, so I just mirror them all when the game loads. A side effect of this is that I dont have the sprites stored in the best possible way and use the blitter to copy the sprite data to where I want it. This is the only time the blitter is used in the game. The font is from the C64 version of Bombjack XзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXз MISSED FEATURES I wanted to include tђ шќn™Дзhe following but didnt have the time Load and Save progress Record the input of a game in progress and play this back in the attract mode for High Scores per level Add more maps - Very time consuming to design decent levels Write a little Cracktro for a laugh Add proper music to various parts of the game Make an Icon and allow the program to run from workbench properly, I just ran out of time! (its almost Xmas you know ;) ** REMOVED ** Keyboard handler - could ђ ш§2(Эnot get it stable on higher end Amigas I will get it working, its just that im really pushed for time and wanted V1.0 out before Xmas 2014, its only used for quiting the game, which you can do with a second fire button on a joystick. XзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXз TOOLS USED WINDOWS WINUAE Amazing amiga emulator, maintained by Toni Willen I dont own an amiga and rely totally on WINUAE DEMO TOOL CHAIN with updated versioђ шўЊ5Юn of VASM for all assembling assemble, link and run in about a second. NOTEPAD++ editing the source code GRAFX2 editing bitmaps MAPPYWIN32 creating the tile maps STRIPPER Stripping Mappy Maps made by Chaos from EAB, thanks man! PIXELFONTEDITOR designing extra characters like the love heart and delete character AMIGA PicCon v2.50 I use this for ripping all sprites and bitmaps used in the game XзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзђ ‚ї§‡XзXзXзXзXзXзXзXзXз I have tried my best to make sure this game will run on all Amigas real or emulated, Pal or NTSC If you have any problems, let me know, I will see if I can fix it. I have made an awful lot of changes in the last couple of days, but I dont *THINK* I broke anything! The official home is on the EAB forums, search for Love Dungeon Cheers, Jay all sprites and bitmaps used in the game XзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзXзџuHяh4НЏ Startup-Sequence6Qџџџ§џ€ldf0:LoveDungeonv1.0.exe [`4Л„ ЗStartup-Sequence.infoQџџџ§qшE­б~§`okєC}№z@№`јœ8РР РР Р@€8?€€ }€[€@8РР@@€аˆ 8@ №0 Рр Рр` 0?~€07€H5€z!€>=Рр ``0 јpР€р Р0 c№! wј@рј ј ј#№ H U 4@њіьќ€€€€€qŽшЂХzhp№pи07јј:@АрРЗВѕ єРтЄРќј€€€№ јРјGј@ё ф 8"BŒ Dа№ў ђ ш №и8p7ј0'і†bќФМ 0єА№р№ рь "Ь    @Чу@Џѕ€№@№Hр CТ-Дp(   ррР Р @ @ @ @ @ @ pqшЦЋ)Ћ`pр'фрMВ`nv /є 'фp3Ьx№ P№р№`р@Р Р@ @ `````@ p~џ §›€D0ƒ…„X„ …Yљъ€јРј````€$€3 ~§pwHЕњa|z8џ|џz{# {q{"f€T\Р€```р Р€€€?РР>Р-Р €Рр@ P<€<@ˆ№? Р `€qшдИї)/рр `8ˆ†€†€?@Р$Р=Р€р№ p`И0јр?р?р@7€ ?w#Рџ№Рџp џџУд     qџџџ§q‘шп№ЭЯ€€?РР€?@&Рр€й$ƒC€…qЦ8љ ќ@ @яР€?@Р-@>€@€&€<ћ€ €9€€РФРРу€Р~џћ8З€€Ÿ№ `    ~§`okєC|l~`@  q’ш&сбЋ€€РрР0 №а а h0€РРр@ррр`p8   >?Сgџјџрр?@ #?мŸўрљOq“ш $Z.П~џћ8З€d Фрф(ё1џР€~§`okєC|z˜ў№ю*ц;П€€ќў *ѕpn у˜XќњРо!ды…љѕ'q”ш о&5ЧўЃмd7јqцN`€аЏТм№а€Žx ў ~ |000 |Ю †>>>ў Ђ?  њўМ/№7№р€0 z њђ7Т'фq•ш аiХј№ќ м  ќќј ```@0Р #€žо &> pyќ<8>~ў>& є'ќ7x _рoрР/8 |l>9кoђf<;иа €0Xa†A‚їяџџџџяїёŸљЭГ`BB@0 ˜№@ ˜јH Px88a†Жmџџџџяїoіgц3Ь`=М@№№q–ш ћjпЭ`№@рр€ 0p` ‚ПРŸ Ю Œ  xwјC`јќ`ћјx~ <јФФT&< €]РОє t№р†pwЗлєŸwјЬјјИ(p?>€p0@јрчШ u„ Ц g†GЬG№Oј Р1Ср€§ џ оq—ш .іЋ&ј€ј№РЗј0 Jx38 ј>№<Р3€p8Рh№рp  ќќј ```@0Р#€ € Р€ш€ј ј0xјp0р` є'ќ7x _рoрР/` №x јph иаА @€Р€Рўb_ Я  gŒaєœ`ћИ|x`Kќ`kј8~ <јФФT&< q˜штz&Р`НПі єg№др—Fsї4лŸјЬјјИ(p`A€§€Рљ€s0Р0а100№8а P  РфЮр< ~< ё<џ~шp`€К@Рў`}рР/ .Рр€3` |РРїьрч:рџю7Ь2рР€Рфјa€A€їрџ№џ№я№№Ÿ№Уц ‚E€0 >ќ€žє ŒŽ?€q™шБфрa€Ж`џ№џ№я№o№gр=† €:u€їхШ№€р`ˆ00€€€€р№і?џ џџ}Й`RK@Pp9˜ј@˜9œ?ќ0|88p€`№і?§_џwяsЧ`mД@/№№`ј@рр€ рРіууРС@`8qšшЗKлА@џљќнџўp@юћљ€€ј^ Џ€3€Ф(€hƒј€€€@Р8И Pјь;а|q›шm3я5|h@д$c>3џ?a s@w?+ќнТ§П€€€ @ pРр€р€рќ€€€~€€џ€яќ@ќјр€8м~~р811@@qœшIj  <Р |сЧ8?6''8On@Пп??_^|880-9?< 0јј№РР€€€ €Рˆј˜ $ƒ0шј№РР€` pАј˜`№№ и< vŠŠRUЊRURЙЌUЌURџџџУГџЊq(e7LЪЌЊЌџЊЌџџЌџџџџђы2 ђ'8On@Пп??_^|880-9?< 0јј№РР€€€ €Рˆј˜ $ƒ0шј№РР€` pАј˜`№№ и< vŠŠRUЊRURЙЌUЌURџџџУГџЊ ѕ”Њ—m4Лˆ?LoveDungeon.txtpџџџ§шEw: LOVE DUNGEON FOR THE COMMODORE AMIGA COMPUTER Programmed between 23rd Nov 2014 and Dec 18th 2014 Love Dungeon is in the Public Domain, do with it what you want! Phew, its done! Writing games is exhausting, maybe im getting old, maybe im a little rusty, but boy does it take a long time. I wrote my first piece of 68k assembler, in over 20 years, on the 23rd November 2014 and the game is released less than a month later, coded in 100% ASM. I hope you like it, pleш­&4ase tell me about how you feel about the game on EAB forums, search for LOVE DUNGEON. CREDITS Coded by Jay Aldred aka Jimmy2x2x - Contact me via EAB or email: jay.aldred@gmail.com Original Tile and Sprite Graphics by Kagesan with additions by Jay Aldred Sound Effects and Driver by Mike Clarke with additions by Jay Aldred Designed By Jay Aldred THANKS TO Many thanks for all members of the English Amiga Board (EAB) For ongoing encouragement, help, advice and support.ш3=Ь‰ Without you guys I would have never even thought about programming on the Amiga again! In particular: Technical Support: PHX, STINGRAY Playtesting: LONEWOLF10, PHX Making Videos: S2325 I hope I haven't forgotten anyone! ABOUT LOVE DUNGEON is a spin off mini game project from my main project Bruce Lee - a reimaging of the 1984 C64 (and other platforms) game I wanted a smaller project to start with, the monster (YAMO) was a late addition he wasnt going toш;Y; be in this game at all! SECRETS Beat world records in any order to unlock the following: 1st record - unlocks sound test 2nd record - unlocks Monster Mode 3rd record - unlocks Hide and Seek + Heart Attack game modes Reset all World Records to 0, select reset records TWICE! Toggle PARTY MODE (removes options and exit selections from main menu) Hold down Left Mouse Button when starting a game There is an Easter Egg Hidden in the game, you pull down on a specialш%Тё… floor tile, somewhere... TECHNICAL The game runs in 320x200 16 color mode (4 bitplanes) with some copper effects It only uses a single copper list and a single frame buffer no double buffering or back buffer of any kind is used. This gives the game an old school arcade feel, which is what I was aiming for. Bruce and Yamo are hardware sprites The game maps and title screens/high score screens etc are all made from 8x8 pixel tiles There are a selection of 256 tilesшCЉзN, map is 1 byte per character. The hearts are stored as tiles in the map and are masked onto the screen, I mask with the tile to the right of the heart, this is why you wont see hearts next to each other horizontally ;) I was originally going to mirror the hardware sprites in realtime, but thats quite of a lot of processing, so I just mirror them all when the game loads. A side effect of this is that I dont have the sprites stored in the best possible way and use the blitteш,ypлr to copy the sprite data to where I want it. This is the only time the blitter is used in the game. The maps are stored in a really inefficient way, the only need to be 960 bytes each and they are 3848 bytes at the moment, there are 6 maps used - thats 17328 bytes just wasted right there, I could also shave quite a bit off the sprites too. I reckon about 30k in total before looking at compression, maybe taking 40k off the EXE size. I dont need to and I dont really have theшс„ time, but I thought I would wirte about it for full disclosure. The reason I dont write a util to strip the maps is that I dont have any internet at the moment, except for my mobile phone. The font is from the C64 version of Bombjack MISSED FEATURES I wanted to include the following but didnt have the time ;( But I also included a lot that wasnt supposed to be in this game ;) Load and Save progress Record the input of a game in progress and play this back in the  шЕЊ5Кattract mode for High Scores per level Add more maps - Very time consuming to design decent levels Write a little Cracktro for a laugh Add proper music to various parts of the game ** REMOVED ** Keyboard handler - could not get it stable on higher end Amigas, I have never been much of a system programmer, I just like writing the game logic, not faffing around with CIA timers etc.. TOOLS USED WINDOWS WINUAE - Amazing amiga emulator, maintained by Toni Willen - I do шЪЊ%Гnt own an amiga and rely totally on WINUAE DEMO TOOL CHAIN with updated version of VASM for all assembling - assemble link and run in about a second. NOTEPAD++ for editing the source code GRAFX2 - for editing bitmaps MAPPYWIN32 - for creating the tile maps AMIGA PicCon v2.50 - I use this for ripping all sprites and bitmaps used in the game I have tried my best to make sure this game will run on all Amigas, real or emulated, Pal or NTSC If you have any problems, let me ]HzЏ… know, I will see if I can fix it. The official home for Love Dungeon is the EAB forums! all assembling - assemble link and run in about a second. NOTEPAD++ for editing the source code GRAFX2 - for editing bitmaps MAPPYWIN32 - for creating the tile maps AMIGA PicCon v2.50 - I use this for ripping all sprites and bitmaps used in the game I have tried my best to make sure this game will run on all Amigas, real or emulated, Pal or NTSC If you have any problems, let me ^ˆžXk    ^0G• ­acesџџџ§|ш!Љіw^<%' ёќѕырлœŸлџ 'IqYA%ђРЇв§)+4фЦњИ•чSNEB аУПШ€Зњ+>8+ јћ%?mZ№мРЎч№ћ-8шЗаЧ9, №бщцрЦъэ .їњјЭУз/_R ЦХїWU М›Еу­Ю ђњќ *љдрнъы#ќ-I ѓљ ёФХЫмЫФы--4#ју туєнХнѓњл7dH:2 њечљ8иОЎБгѓ$ќыфг/*/<*ЌПЧж-3љ6+ јћ§мѓдЙзз§B4мапхђў §ѓшњ*++ ьтюјьиЭкэ-3ьтаЯѕ)@-єђщџьѕђ 0 їшсљџшзшчјђ;6ързтпџ,њ№№уэипщўїў"рОУЯя   щјэсяѕџ/10 ішоырљ ѕяќьћэиГлњBRH0ѕюэчџ#§шаТђ7,птырф& ќрпјњє !', ыэцехъџ є ' §шцёя пяљ}ш"$хИ^+)№тЭлцькцѕ-.. хшїќєрщщыэё ќьжѕ " љшкжяєѓѓ  ѕрх§ ђюьъстуAG$рцѓуѓ §ќсниъў  ёі )єђјіїћэч  ѕ  іѕсксяё  њхээѓєъџњћіѓњ"шлйпыє #, љщмяєйхђњ&§чї №цљ  ќў №рищі  )0№зяњ§ї§ј№щюћ*03ёыффъщвчђљ ўшъщяћђхёћ! іѕює  ђцяќ ћѓюохј§ јєѓњ" ђтлъ§њюіћ  №зц ѓѕёљ  ћіђчёћ ћшлжлпіљўћ№џ§їќ§ їў$ щяћ чххэѓў #'%§цтэћјюџ шщ§ѕџ §єѕє љючсо~ш#,‘–_чў џњ№ђїќџјњєњ љхфѓ §џ ћ№ыў§ј  ќєџ ќюяўќћ ѕ№цыѕ єёѓёќџ  ќїтыџёё њьрЫлюћ јщљљєёё ђѓјљіѓіќ ќћќќћџ§њ№юѕќќѓяэяў  §јю№ћєђѓљ ќ №№њњњѓі  §ќэтмс№ѕџ!' ќјіѓѓљќђџ§ќњыня'!ѕцсшѓџќћќў§ љ ћј №йкчё§ ќѕё§ ќўёёёџќєђєѓяћћєэўў џў  љљџќў §ѕєѓ  љюхиыљ   єыуёіђ§ћўўє№эћўѓљэі џјщшєў §њќ њѕђфыћјппљ& ыѕџљых№§  ќёюѕ ш$ы јшёіъщь§џ  ќљ§јёѓћ  єѕюђїћ  ђшьѓѓ  §єэј% іэюсчљ § ќї№ђѓѕёьј  ѕњ§ќіѕѓё  џўљєљ§њьшчћќѓьъѓ јѓїџњєїќєёџі№ыэџќџ   ћїэштшѕ  ј№љїѓѕљњ јѕ§§ѕєљ№№ јѕџ § іхэѓіїѕ њёђёє ћ ў ќє№њџќь+гйUЕўOпХxО(ц.М]бщ'л.а.РW—3аїЭ:Ь<l–`ЃcЇJон%ьЉhІ;Ф^^И‡gйі8ЄSОdAщф-ЬYЊVрљл1Ш<Ћ^œOа3дM aН-м4Рх8е§г*У7ЬIА(ђх4Ш>лѓ 0В@й ўўп­>Ф §7Г^­MЪ8Ы<п јнBе/ЫGВ]œHЩ ћх€ш%1Ÿћo)а6г0АIЧ(а#е"№ы)ин,Ь9г+йAЂdЋ,ћи#рѕ с,с §яЖDуї и ьп%Ы8О@Е=ХRУ)ж/ТCвђ№ №џ#ШEНBз*бAо іјы%н#я с"м0Э1їѕлѕѓё§ь4Я*ф/Я.ђџјћ%и%шњ ц%а<Ф.рь љз §м5пх,О<пю§ё ђи,ѓѕп(щ§ъћт и6оё ўќщю ш!р)ђ#й,ЬFР5ш ы*хђ§"у цџќ жFШ рFШ"тї*и/н'э$Щ;пі%ушщѓ§№д(ххј№-РDФ5м*д6а+о§ћѓѕћщ и4г*м)цњї г6б§ёФKТCЏZН у#цњќіјж8Я§а@Ь!ѓџ№ш!ы р)г%хћщ'внѕћьњц § ёї юёѕ у!шъ № љ ц,з я ѓќд;Ш № ё"мўё'Ъ>а%т'м!що+у ђ№й-у§ љп,рш&Ќ5<жќ ёѕіќё!уљ §џ эшф!сўёц%ъ ќђюш'оям)р§њяяяй0мы+ЧCвюхщ№ѓј ээ х'пћїхёњю§ѓ п$п эќюфф!щўњщј § ээс(н%е1мьщыњѕщ№ћн+г(уљќљяђ§ќ яф!х№щѕ яї х$й §іњюъшф"н+Я7Ы,фћѕб0м'н"щцшђўќ џїъё §ё"з0з"№іэѓљс'п"уўїяэёў јўђј ю№ љљіѓ ў§ющъё јђќќџќіыјљ іќњ§ўќќ ёђёіј§ј ќјјќ ёыѓљщэјќџј љџїіџўў§џљёђъээ і яѓяњќј ћђя љѓ‚ш'pmЉєђ џј љџ ѕ ёьќѕ јџџ§яѓќџњі љџћњќ§ ћћњѕяяюѕ §ќ ёюёё ѕ ыр№њ ії ј§ќќќўџќѕѓ ћќљ§§ њќў§ ѕџ§ўј ћќђ јяяюяј іњё ўї љџџ ѓѕ їќњ ј§ ѕ їљќјїъьѕ§§џћ іј њ§ѕ і јї њџћїћ§§ћџљ ћљљћњџџџїія№ љ§ўњё љљўџќќўўћ§їљ љџўџўџџћџќћў§ љ§ћџї њ љїѕ ќ§ќ ј њќ љ њ ј і љ њџќ љ іі §џџ§џџњќџ§ќќ§џ§ј ѕ§ўњ ќќўџўї ƒш(ЙЯТIїњ љњ і љ§њ ќџљ§ўўџќј§§џїђ љ јќўџџџ§ќјќї ї ћўј јџћљњќ§§§ўџќ њ ї§џў§џџџљ їўџџќћќљџџќўћ§џџ§§ўћћ§§ћќ§її љ§џ§§ўџ§љќћћќўџ§ўџ§ўџљџќџ§ќџ§§§ћћћљџќўњ§џўџџўџ§ќўќ'ќфБъ€ѕ ›€@ж0WђXс3›|A”:Њ Њч‚вхАРнЦёщуђxlЎ~HbDї€,d:4g Jг,ю<ќБѓп№нНмЯеЬжУЇьы™ЅтуЙšгц”у%ЗК1Ей!п PъZ(SQ!I'eU?c&8C?8,'„ш)';mї "6G"#љ HЭ§%ъ ј!к(ѕДу ѕрєі№ЌиъфЯепЙгЩХРФМ™ИЇЃДЕПД™ХГФЮЫпвктмру№'њ1љ1J--T8Jd;NcbQwIWy`[n^qvBh}b8S;LJэњc/џпмъфѓСЁюТжЮЮуйНђСданЕППзЊЦУИВМЕВЉЂУПЌ ТПдЭ‰ЦйЈТшп­ЯяцЫўзэсџў)*&+B4DFVCkqUo_jn?^^YfndY8!9QcIVU==(і"1ќ+эп"ѓмѓэќ ќСљ ЪШЙЙнщП–йрТТЊЬЈІШИŠЎ­˜Ќ‰бЅЊЗаеЊЇГ ваилѓпвьы"=@2Y@8<1NAae_OEP_lm€O@lWQbP=E2GL.ѓ>ъ§ъяфЮќЩпИКНвзГУ‹НЦ˜в—хšЙЁ•чЏ‘ГЬЫ ЮкТЗвѕешшрѓЭ§в"C,4*7&M0.-=S0n,J[:tNEeE6)яяєьїьуцшъњбЭГ љЊЈЬжбвЂВОсШœИМЬЅŽзоЧЫНъпЯјТОђыўЩмвѕЮ(ш№$ў, 22#%<)*GHFA2"; *PD`W*/8,#"D№ J ю*Aсх.іміяоштњХпѕШЦў­дщ™ юО№ІѕМмЙдњЩквЈа№цжрнЪЦљХгшйлЯьёѕр'8е9*. !@ *Y†ши~=РG;F8_2<2.1H1D >ч=љќюєњ ычащєхлњЪруМдШПиЦщПцЩйъЛШябљкгщЛйћЮпэщмўїўяф е№ћуіњ ' 5 )#*4! ;MOI0/6/ 3 I,ђ(ўыянњзќ оуљёЫо ќкњбч Ръžџхэ§гяюњ№хшюњцыгьѕмјщхыёшэФђтыў , &<оўћ<щ  #щќљё&!уу§цёѕ чыёф  №ћћю ёщіѕћёчAшхз сцюякќюыђјм$ѓїчєјэћѕэ эпсџ эўіс$ч%юя'§іыў4 ћ8§§"и  ц ц№юфќрчї л љьћоЭыъффќ§ьд ђеёухяјнї §ю џѓь № ѕћэ ћ .ђ$ўјqш,Ющ&&2*'94 љркфлЩУЛВ­Упц")$'1RJ@>$  §њцбмтЮОДЕДРпў+&";YM=*  џјокреЪТИБЗЪуј&&'GRK?( ѕљінкокЦЗЗКМгыџ*!0OTH/!џќ§юмнкйЪКГВОня $DWQG* љљћісвлиНЙМЙХлі&*FQT?rш-iŽ| ўіњљчтилЬРИЕРгчѕ 8ULF5ћіјїякалаЛЖЙЧлч >[NA' ћђ§џюфмжЭШХИЕгчщ! MZD3#єѓњёождвХПЙЧкпє+GXK$ ѕюџѕсмолТШЭАЧчщє"4WQ9 ѕєљіслгйЯЫТНвнч  BOQ>! ыюў№нлоеЬбУЧгнч !)IMG/ ! џљѓєіщнилегЭОЯмйї =KF9.њђѕљѓчжзкгнЭЦжбс CI@8+ њѓшѕќчрмлиливввещ +JI:..$џѕќшьњїфрллохеЭлба§=NC2/)їљѓфщћђутззьтбмлЬп#CJ=1/%яџютэѓыындтяизсквы 0CJ7-+эїїхуэяъшойч№перзмї!8DG61#ѕђэшцтфёшлкэьмтмсфі.;8?;*!іє№щюрзсшсфsш.%|Pfьщшттръіџ 5;A>3!њјсфъоиущрущюыухшѓі%43B<1#њёхххЯбшчфячшшчьієљ1.5C6(љіъчщлЮдуфэяццфщєњ'5*7B3 њэъшуаЯклчєычцфђџ*.-8@. љщъълЭЭихьъщщушџ!*+)75) №яяскЫТкђэухшть   *%-//,  јъїърйЪЦрєцтссуї(0*'01# ўьэїчлкЯЮщяткссшџ  -+,)/1ћ§ ўя№ѓцмежтђшидирє /31,'&%єћѓыѓ№юхвляѕужЮвт№ $$(/385($јяљёьчьяътчіюнЯЪксю )144714-єсэєєёщьяьэѕњёдРШруљ#58A>63!їуфцяшшіљњэёўђаХЯблў )<;:@C2"ыгШЭбньњ ўєэсЭалпѕ->DC;2/! яЦЙТефѕќ ўђнЩЮрфј.;==98/фСЙЦЮъњќ  јкбзмсѕ469.,:1мГЛЬлэяјѓпммруђ7<3!-8'ћШГУЩтђѓі ђпзсщлћ).1,)/0&цЧСУгфьѕџ ћ№ыйнфо '2)"(/1% иМЩдкмщі%ї§јыочтм,/$.'$'ЧЧжзду№№ ќљїьчшмь&%&"#% ѓЪгуййсьќ їћўьыъмѓ"#$ щгншлзх№і§ыюфтў#"!#щйфтйнує  ћќэцтщў ' #цусмосујїяьсюќ *  ўђэмдпщы ѓьцчј*§їёнйсщя  ўіэрцї "-   єэйзъuш0W ‚ёљ  џ юышцџ§ +(їязЯцќ  эсиёџ'"  їєяййщє  њ юпеіџј3!  їъцййё  ўћщеоћј0$ ћ№плиш   ќфРрћ)! јђштуощ ўџ§оХсљќ )% їямнхрѕ  §љёаЮьѕ§ (#љънпттќ  јхЭахј " ! эщсофьџ џњнвЯсї  " №слнхјџ њьигицєџ"(#"ьфнмщћ  їсебиэј +'ћщчммѓњ іфдЩрђь" -#шпмсі  ыиЯЯшєѓ-$њђщлтє  їиТЩшњљ  */"іцффэђ џ џэзЬЬпєћ "/ ынотљvш1QЫ$gчЫУгцјў&+*ќъэтиђ   ьЩЛУт ќ12 ёхэхч њыЯУХк  '%%ючьлт    ђрЩУЧр# ѕячнц    єсТЛЩт $#&ђёшуѓ ў ћяфХЗЩф !% ёчсэњ!њ ёшлШСЭсљ!унђџ(&ћћ№ъгНШмм§  ъыіў) њѓќщюдОЮлй! ќуѓ+ ўјћъщцЩЪззк!ўці ')ћџёнчуУЬсоз !  љђњ1.ѕѓщзпйЩЭфун#$! ј-3! ѕшнЮилЯзшцр%#ќџ+2їрбЬЭлйоэуп#$+$ѕњў 42ђнаЦЧелхщфу #21юџ§72юкЫМХодрчнш&&wш2"[:E32юљ;. ьаЦЗТймупеь)/<1њёј§ §%82 ђбНГФвжшуйщ,,?2щя +;1 ўтЬРБУежтмщє'2:&ђы  3:ќрСЙМЪжзнифћ/,0+№§ '/)! њфУИЗСррЭйюы;1-)ѓў  '64џфСХЛГзжЬрэѓ4-83 ѓ љ%4:љгЩРКОЭЩШфѓ-6(,5 ѕ +;* юбРЛДПвЬЬсє 5/&3$џ  !1:&ъЮЧЕБНбШеюѓ2-$0%  9;ўцЮХНЗЛЧЪзюќ.#%,'  $5.љпеТНОСФШля*#'& "6( ѕфвСУПНЦЭн№'(" &- ќэсеЦНПХХацѕќ((#-єчибЩОФЩЧиэѕ %% #џясдгЩОЬаЩкьє# !# %xш3A G_&њымгЯЧПЬжепяя &!.-$№пидвШЦйдЮщєь#""4. ѓкЫавФбужжч№ђ  "((@'(%їюбЬвЧУоскхщьѕ  $" 7D& "ўљрЩЧбЬШфокщяэџџ % =B,'ўјпФТЪЩдшйсъчї  ");=0*ћ№еШНФЪлфйюыщћ §-C=1) 'њцШРППШхкођёђ ћ5F;9*&јйЧЛЙРводц№ѕјўџџ6D?<,)% ѕаУЗЙПдлнщђј џі8=5>4-"§шЯПЛКЛбЭлєљљњ <88<12% уУЗМСПТЬпюћ ѓ  $51:B<) љлШИККЗУЬуіџѕ ',/C:-ўхзУООБЊНЫу %і 5DJ=.ямлЧФЗyш4sјУІЃЇЖЯэ§#  #7BA93юсвХСГЄЈЙЯх !"  "@QF1$ытпЫЗ™ŸЎТйё   !%>OD=&ѓртлЮД—ЁТућ% /$  7FB=6џчнгПІŸЏСмљ#* $џBWE<- єячзВ–˜Мжчџ 3" BPAA* ђтудІžŽ–Йдѕ ,%%ў1OE85 іфиДЃ—•ЊФгѕ+ " ;WI4&юч衘ŽŸЙЫф  *)!  $EO<7#њютТЋ–”Лаэ  (-&"ў4KL<( яиМ‹”­Рдљ $-+* >LE<,њ№вБŸ“ЋФу,5/§ќ1GD@5% §хСЉ™Ž—БЪяў  05% њџ%(HE?:3ќюЭІœ™”Нюј16#џ7IEB<( єрОЁ—“”Ћбёў'.zш5= Z0"ћ#9DG<8)цбВЁ™˜œАжї )41 ўљ$@JB96' ћшОІЄ“•ЂМоѓ%-5/ќ#+:H?83ѕйЋЌЅ“БЧк§!&-4'§)*=LA4-њюСЈЊŸЛЮщ &%#42&).BDB;#ђгЌІЈЁ”ŸРеі&%"8+ "2>AEF4њёОЄœ š›ЗЦм§,,!$)" +8тгЪы,?9,яљђя Днфю Лџ!%%/69."јеиаЈЭУы%1--ЮРДЏйѓ§%?H7AJD*" мвЪЯѓ'B2јрЩДЯазйчјёѕ+**1-($! иДŒЋЭњћfш7r"Рœџџўў§ќ§џџџџџ§ќќџџџўўџў§§џџџ§ўў§§ўџўўўџўўџўџџџџџўџџўўўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџіюсшћ №хт№§јхлйхѓє ,5+(ј№ыюљј№хчёюіщфру№ёќ #+*)(!эъѓјўў№ршёљєѕннхєїїќ',&%($%ћююѕїўџяллюєљїщпощї %)10%љјўћє№ђфнтѓє№ыэцщєќћ&1/, њљўљѕяылбтєјёђютчјgш8ооО"/23*ћцчфзжшєьыїяъё§),9)џћчфпЭЯчѓъ№§цъї џ +-0-! юймрвЮьфмќўёю§ &/36 ёйвдЮкырсѓъљ  &02(!цзенЭлчеьљъѓ 0.1  ёхйЭвнчдЪњџъђ $20,џ§њрЫйойлЬл§яѓќњ "1'%!# эвдрбопЦжћїёњ &#!) 'њє№ЯбсйкШЧыјёі.*$&#ћінТецойЬЪфјљ§ §'&!)&#!ћђ№мХжскжбйёїё '+"%#$іъоШЬтнсгЦнњџњіќ$ .&*/яэлУФмхузетёѕќі+ ,!!(-)юхаЩглййзжщїј џ#% 2,'&$чнЩПЫтчвЬояћ§їљ '* *))()# јђhш9ž; ЩоРФЩгизйхьњџ ў. *--)&єржЫУЦивЫжєјў  ( '(())(їмвФЛШзбЯтєє џ)! *.+, ымдУИЪЯЯзэўђ  % #'.,(щзвУЛЦШалѕћў  )6/!унгЛОЧОЮућњ #(2-џшнЪОРННзсіџў !0=$ ѓяфРЗСЕОию /<(юэйТРЙВФоь§ #69ѕыђжКРОДФля  #96єѓѓдРКЗЕЬню  83ъьњеНРМДФпј  +0єящжТРРЙФлљ ў)2%ўђѓяЫДСТКЪфљ $ў"#11ўјѓьыдЙММНвщј !/)њыхшЯКЦРЛЫчўiш::CЕ/ ћ&'"** ўўђхуХЖЧРЪйсі! %ћ "'0# ќњьццЫЕРПЯмцў#'њ#"-#љіътнЯЛМУвкчў  (џ!'+!ќєцнкбЗИЫйищ$ $,# јѓтйкЪИНвозщ  "! *+'ѕ№хлйЪВЛжроэї $ &*(&$ ђщнкфЬВУбйняћ$ #/ !"!іфнжнЭНвбзйш'0(#юхлзмаФееллп  !./$"!экимлавлжмйф *21#"$§шмлпмкбийлнцћџ *56+телсхчйкбЮоюѓїѓ/.3/ ёплкфятубЧЯфяљѓџ09,1&"єєштхфчмщйЮиксњњў )?;;(ёшчуюїцсргампкыэќ&6jш;#;FgAA. љєрняїяысЩЪвспфёћџ &)6;8.% јьчьяэђшжФШлйујљ(-A@0(#ћѓєїяычяэйЦХдбзќ џ 0GB3' ѕ№њќђ№шъьгЦШеЫвљ  3@<9+џћь§яёяьябЙЩиЦејњ$8:<6,!ї њі §щѓщяћЯВРЭЫмя§ )>?96'!і ѓўїцсѓўЮКСРФй№ ;G=;џ№ щхэёЫКХПФкуџ5=@=)!ќўчщїэРЖТПФмщћ )9;@:'! ќцыєуСОЙВФоь'>C@9' § ќ ќяьщмУКВГЧлх.@=CA%  ћььэеИЛВЈУощ-EGE9"ќ џ ѕщрЮЙЛЎЋШещ#5B@J? ћћ  ўєэпХЏАЏБЭмь$B@AG-$џ љётрПЏБІЏЯоє(BJGD( љ  kш/ §   іпЧ­•–БТУбє$7ESHL?+   ѓйСЃ—БМЩзю/9FORK9/џ   №лЛЃ–ŸЕТЩзі59HTUI6,  ћэзНž›ЂЕСШлќ!4@IU_E5'ўёыжБŸ™ЉЖКЪп "7DH[]G/&њ ў№эЮЌЁЏЕУФх(3GOc[:8+џџїћъщЭЊŸŸЛОКЩѓ7OUcSB3( §љ яї ъьцСЏЅЎЛЙЙЮј$2JabS?9( њэѕћчжРЏЉЗШОГЭ ?P_WQF8(їцщћќћѓэеМЏlш=кИНПРФлї,:Ug[J=;-ын№јєљімСУТПСЦМЧп&;[WXOC8- хбшэѓїьмХЗСеЬУХЭтљ7BSPVJAA> ўзжшъчыхгЦТдгЭЩЭжхќ)NUPNNFA="ъбдошыхжЪЪбжкжЧЪи№4OIJSQDF=# пЮбйцстдЧЪвроввбкч&y-ЖR9LGIRE2# эрНЃ““ГМЮпъєђ  +3>MMN?0ќэлМ•” ЊРзхчюљ! "#/7@?FN>(ћхШЎžžЂЋФгсѕєћ # "+49:=KA,-ѓлМЈЅЌЏРду№љ"")//6:ED7*"ёжБІЂЊЎЌХлрш§#2.-245=B9& щПЋЏЏЈЌИЪищєќ#.49535<9* њжКЎАЛАЎЕФуыё !;9,7863/+ёЧАЏИМАБМЯођ$-<8535642"кДВЗМДГЛИеєљ  4E?:7;:#($фШГ­КЧПМЗРтћ§+DC<<<8/#$ілНВАСЪНРПФц !5GCBB91&$ эЪКЊКЯЦХУОШї )DDFEC4.&§оЪГЎСаЩЯЧКмїў .NIHJ=4%ьЯШБЎЩиЯЪЩЩт =LCKM<(#ћтЧТВБЭзгаЩз№џARDMM: њьаФСnш?<ЉеЌЊДппдгйлі ћ1GJGQH1"їяфЫСУЊМппнсрфѕ є1QOHQ@.ѓщдЛПНЎЬфукыёшї џј :RKKW:!ьрвОЖЙМйчщыюэшќ іј (@LKIH7#ѓтрЪЛНПЧкъђїіычј ї /NMHD@,џэоиТЖЛЧлсуњјъъќ џљ 6OMFF;! єупЮМГИвьфяєцё њњAOCHA2црйЪСБНнѓэєэхієќ %GO>@5(јфнбХТЙРщёёцыђўџј 3IJ@<*ѕфмЬПРЛЩјяў ѕ№яўѕѕ 4JI<=! §шсжФСФНЯ љ №эђўџюїBJ@:2ўулбЛЧЪХу ѕшщњьљ $EKF6 јјчзЮЖРааі"јцъ№єёў +BDA3џыюсеЧОХЭк!%# ёыъя№щї 5EB8'ћыэнЭПНЬды -* яхщёѓыѓ4DI4 №щщрЫЙЙЩк§ 1+ єхсoш@Цй<8эщшљ /AB1юонрЮНПЪхџ24/%їыхэцтљ%6=4"ќъфббгТНиј3:8-ўёхщѕтпћ 9E*ѓфпЮедЙШх§*53=2 ћђтфѓрчџ%86%# утзТднРШ№џ 7<58, ўыхёёиы "9,сйаУжмЭзђї>;;9*ѓшюіюнъџ+0"ѓскЬУгзжуѓ"?OJ7+§ѕђфэє ѕшхкбжеЬЭцђћ,9OF;( ѕђьхї  ёкзйзйжЩдхѕ34IA8,! їїќёь№ ёpш+Š Эзвгбжжажчѕ%<>H70*$ љіјїїњ щйгЭЯбЬецєњ #6AG90& ў§ћќќћ љздаЬжЯТзъљ!-:A56- іђ§ђиЯФФееЧйяї $)/0822. љљїщі№саХМУЪбчяї #'5863-"ќљў!ѕѕѕњфпзЪЛЙМШыѕ %,1F<+§#ђєќрдвЧМИМвн№!)*#!B@3(§яњ2ьѓјѕэлЧТДЋОуфъ"*,&,<7*0ѕђџ;ѓѓщэщлвУЋЁКлц "'(-?RNC7јпТ­ДОЬы !ARKA5єлНЏЗОЯё$CPHB/ ёйЛАЙОді)GNEA)юиИГЛРиќ+HKD?$эгЗЖМСо0HHD>џыЮИЙМУц2GFD9ќщЬЙЛНЩщ5FDC3љчЩЛМНЭ№7DCB0іуЧННПгѕ 9BCA) ѕрШПНСлј !8@B=$ђмЧРНХоќ $8?B9ёкЩСОЩх§%6?A4юкЪСРЯщџ&5??0ўьйЫСТдь'4?<*§ълЫРХйя%5?8&љщмЫСЪмђ$6>5! їшнЩТЮсѕ $7dK№к­ЉЖНЪў7g\KэЪщ +) йЦКо#**#%ъВПбсџ,KW$§ѕ№% ьнЯи '!эј, СЄЖы #3 ѕ+1&/ йУЕРеC>эбяФЊЪј>+яяљ&7G-#оАЛУљ4K/хФдњтЏЮћM9ѕпгы 3H_?ёШ АЪZY(иМНіјълп1D(іоЗф'Z\YшЛ ЂЮ"tfдОНенэќђ,4*§бАкќ&ba^лЋЇЅр0}gЮДЬSшPМ4іМЙЪ№'#0 ќУЛбџ+`nTФžШm|SлЖˆŒƒ“ЯAn}vWRИ†šШ [Rч‰€€ЭLK㭘ˆ‚‚К/lj\6д‡–ИыFvYљЉ€€­9UёЙœЁckQ2щŸЂЙ№/epPќЛ‚Н18вГ€‚ЂUrS2 шФЕТѕ1T\4ЛŽм?wd(ўшЦ’€‘ЙєCfnV4нмйбћ-BA#эОЉАјRf8§єњлš…šеCR^M8іЭюѕў!)$ћбОБб haйпљЌ”Єр7HV@,щСыў+"(фЙЛМ№E}]єПЧњљЬЄДм)09M:/лСмC6(іе­СikхЊЃъубПаы-:3D/%ЧЬп'KN,ьН•Н#aчЌ ЯФаЭэ717:7 ЙЛч4SY0ђЌ‚ƒЕ*_ыЖЉХЂЗг?9===ВВЮў?S[,љЈ€ƒБ:LрДЇВЋмAT=<86џИЖЪ§@PV#іЊЛ80лГУЏ˜аH\890=УИХє5NR*ьГ‹…Ъ;2кКЬВœ•ПM]A=93ЯСЧ№#QF&ьД‹ЭU0рЦЭЛЂžЛC^O>>TшQ~№иЧєввбљJ?рЎ’žмYi'ужжПІІЦў.JUMEэмлињC3мЕ”ЕѓYEнлЮЧЉЛд#9MDIѓсцъџ4&вВ›Тc{4аиСЧЏЩс(7AA:ёкъ#)ыХЁ•к9zz.§ЭЩЗТЛбѕ-;8?1энс /%ъǘ’ъF~m(ћаРЎХЧп%.=)5$ёоф.%щЙ—˜ъItY+ємКЇЛЯъ,1>'+ §ђпђ"0 уСžВъ6aR.рМКЩлё!"$ ьѓ љпСТф@E+§пШвуыњ   ѓєџ ыЮЦт /A0нЬн№№§ ѕ§§ ћшгШф (?1шгмяёєћ  ћ  їпЯЮэ(=0цгкя№љ    њ  ѓоЫгє!:2шлныыёџ  §ъќ ќфенє1%ѓшпццці ђфї§уйкї§+'јшотцъє( ќыђќћ ўяучїџ# џъссхшэџ( їфяћ UшRнХнBљытцѕџ*'ўюхцутщѓ !їрчіяруъ№,+ўы№ёцфшј "ћрръќѕхщщђ% їъјљѕіў јььњ њјіћєіћђ№ў ђєќ џ№ъћ њќћѕџ§ђѕ њыэљ єфјў њёјћўѕњ §єьяћѕцє  јююіњќ  џєђіџ јьїј№яєћў ћђяї џёяіљў ћёюшіќ іээћ юъяьѓ љ№ц№ѕћёхэў№чъщя% ѓуктё§ ћцмчў яшццьќ)&їукичњ  ќэхэїщяяюьѓ$&§хнйсї$јюыѓяцьэыэѕ &,"јхнйрћ їыюїёѕќјьшя$!ьунфїђъђў №јљїышя ёчVшSЭœ_фэ їэѓјєў§їъщѓ ўёххђ ћ№єђєџўїы№ќїєъэњ  §ђї §яѓ§єяј џіі№ьъє њђљ  ќђєўэюїіёяшшљ! ќі ј№§џ§ђєћџћѕєяь ўќ  јяѓ§іј §ћћђяяёџњўјъюџѕђћ ћљэшхєќћ њыє§§№юјћычуѕ љџ §љяџѓ№ѕ  єшчі ќўўѕяёћљњўњў њщщ§ §њ ќќџ њэѕћїњџѕљ ўя№џ љј њіњћћѓќ §јіўѓѕ ћђњќљ  јјћќўѕњіїљљ§і№џџўѓєќџў јёё§§ўў ќїѕљўљєяћњ  јяёїї ўљџјєџїWшTЦсОKящѓєњёђ№ѓ њќњыюќ%&љюъюьњіёёэю§ѕџњљщь+*їэыыцѓ!јјћюяј љіџ§я№)$љя№шь№ їјћђђіњљњћѕыђ ,% ћььръё(№я№юѓ§ §§ѕі№ыѕ +ћ№№уыѕ!ї№ьюѓў єѕэёі (љѕьтцёёуч№ ўѕ№ш№ќ$њјъчшѓ  џъъ№ ќѕщьњ ўющьї  эш№ ўўљяю ўѕтх№ њьцё љўёёѓ  §юръє ћ№щчѓљђъэѕ іфршљ іцтшћјэхъќ#ђопш ўёсть ўіюцюќђпцэ §эмр№ њьурэ%  єшкщѕјфосѕ  єшрцѓ (ярп№XшUЫЧЛ\ќѕхфщџ ђцпъљ$ѕынхї §ѓшчэѕыхю ђыпщј џѓъцюў §№шщ№ єютэі  ў№ьъі ћячюћќ№чші їъья їщцѓ џяъхё ћѓшюєџяфх№ % їсстє љіѓэєњќѓъщ№$ітрої ќѓ№ђѕњ§ёщъђ!ѓцптј $їюээњ§ ћюьё§ ыхръљ(їьшыјќ їьх№§ыцуь§" ј№юяі§ў§ іэчђ  љщуся єьъ№ї §яхшѕ"єчутѓ љэшяєџяфщјѕъуфѕ ћёщђїўџ џющю§љьтъј  џі№ђїљњњщщє ћэтюћ  ўјѓёїїі YшVЦЗЩSѕь№ќ їяшѓћ  §їююёї іъёј  џѕщшѓљ  јіяёё§ єыѕњ ј№шёњ  ћљёюъњљїњ  ієыїў§ џњѕ№ыћ џћ§ў §їђїќўњў ўіьъј ў§ќћњќќјєјќєыэј џћ§ ў§џјє№ѕџ   њяѓјћќ џљњјэює  §ђѕљўњљњ ііјњ џя№ѓ§ їњќџѕєіћјіј§ іѓњќћџѓэѕ љёіћ њѕњќ јќќѓђћ  љ№ѕћ ў§ќ§ў§љћєѓћ  їёѓћ ўћљќўјћѕєћћїѓјџўћљњі§ћїѕў њѕіќћќќўќћђєќџќ§ џZшAЦеЮwћііяёњ іыёњў џ ўќіяыї ќёшёћўџ њџ  џѓшся іъх№§ њїў  ўёцтю їшш№ў §іљ џюфуђѓхшё §ѕёі §ятцѕ ќьцьѕ јёѓќ  ћђчщі  јхсъњ єы№џ  ўђчъѕјтошњ ѕщюќ  §№чьј  їсошќ ј№є џєяѓ§ ѓпнщњ ѕюђ§  ћ№эѕ ёстъїџљєїќ џјяяј ёшъёјќ љјљ§ іэђљ  ўяъыѓљў ќ§ќџў ўіэѓњ љыэёїњ§  ў§§ їёїџ ѓщяјџ§ќ§ўќѕѓњ EшXйЗГXђјћљјќ  њњљ§џ§ћљё№№єљћљћќ џќњњџўћќѕёяѓѕњћќќќ§ќћўџўћљѕѓ№ѓїќћ§§ў  ќўўќўџўћїѕёѓѓј§ў§§џ џ§ћ§ў§љїєђѓєљ§џќ§ ћ§§ќўќјіѕђѓїјџўќ§  ќћџ§џњіієѓђїћ§§§§  њўўџў§њіѕєѓђї§ќ§ќ џ§џ§џљљїѕѓєѕљћќ§ћ  ўџў џџўљїїєђѕіљћќќ§  §ўџќїїїђєѕіљќ§ћ§ ўўћїіѕёѕѕїњќћњ  ўџџџњіѕєѓѓіљњћќ§ ўў§ћєѕєђѓљљљћ§ќ  џ§јѕѕђђіјјњћќ§ FшYгКЎ[џў§јєѓєѓіјњњћћў ўџџ§ієєѓѓіњњљњќџ џ§ќіђѓєіѕњ§љї§ ўќјіѓёєіјћћјїўџљјїѓёєјљњћїљџ  ўљљіё№їњљњћјїџ  џ§јѕѕђђїњњјћјј§  џ§ієѕѓђї§ћљљіј  џўћієєѓѓїўќјіјњ џ ќњієђєѕљ§ќїіјњ  џ ўќњєѓѓѓіќўћїїїќ §ќїєѓѓѕљћџњїѕјў   §јїѕђѓїњќўћієљ џќііѓђђљњў§њєєљ џћїєєђєј§џўљєѕњ  GшZоекoџљїѓѓђіњў§іѕє§ џ ћјієёѓіћўќїѓі§ џћїіђёєј§џќѕђїџ џћѕѕђђѕћ§џќѓђљ џ  љєєѓёє§џќђёќ   њђђѕѓєќўћѓ№ќ    џ§њђёєєѕ§§јђѓћ  ўћїѓ№ѓѕљўќіђѕ§  §њіђ№єѕћќѕђѕџ  §љѕёёѓјќљѓѓї ў њіі№ёѕњўіђєљ  љїєђ№іћџіёіћ  џљѕѓёѓіќ§ѕђє§  ўјѕѓёєјўќѓђіў  ћјіђёєњњђёј  ћїєёёі§Hш[ьшПVіёєћ  џћіѓёђјўєђѕћ  њєђѓѓјџќєёјќ  ўљѓђђєљћєђїў  џќљѓёѓѕњџњєѓј ўќїєяђј§џїєѕњ џњјѓ№ђћџ§єєјћ џљѕѓёѓћџћєѕњќ џјєѓђѕћњєїћ§  ќїѓђђіўњєїћџ  §ѕђѓєіљѓљџў  ќѓ№єѕїџјѕћџў џљђёєѕљ§јїќ§ §јёђєіњ§љјћџ џћіёёєїќ§љјќ ќћѕё№іљўџћњљ§Iш\ТЛУM §љє№ђїћџўњћћ§џ ќїѓёѓїќќћќќ§ њіђёѓјќќќќќ§ ўљєђђєљўќќќћў ўїѓђђѕњџћќќ§§ џ§їђђѓїњќќќ§§ џћѕѓђєіќўќќ§ќџ џљѕђєєјўўћ§ўќџ џўљѓѓєѕјџўћўў§џ ўќљђђєіљџ§ќ§џќџ ўќјђђіїћ§ћўўћџ ќќіђѓїїњўќўў§ў џћњіёѓјјњўћўџџџ ћјіѓѓіћќў§ќџџ џњїѕѓѓјћ§ў§§џџ џњJш]ќуієєѕјћџ§ўўџџ ќљѕєєѕїќў§§ўџў ћјієєіљ§ўќўџџџ љїіѓѓіћўџў§ўџџ џњїіѓѕїћўџў§§џ ўњіѕєѕјќлЧХич№&%;;%щккХЧнщє''=7" пизУЬпщї!()>3лзжТбсъџ'),>.зигУеуь+)0<*їдзЯХйую -)38&эбзЮЩмфё/)35# цажЬЮохі/*40"фбеЭвочљ!/+3-"лбеЯдощџ'0+0*#иажвзнэ+1)-("ћдЯидио№,0&*'! єгакзипѕ //$(( ёвгниитј0+!'(эЭерйзуќ2)'(шЮкфизш1%'(§фЯнчззэ/")'њувпшеиє,+' њрецщгкј!*-%љржьщвоў)/!џїсияцKш^ШВЎ5ах$1§їсоѓсЮы" "2§љнтјкЯѓ$%. ўњнчљиеї#-'ћоьіан§§  2 ісђђЮрј  2 єтљяахџѕ . єфќчдюћѕ +  ѕшќсжііј ) ѓэљтйјђљ  # ѓёѕтоѕёј   ёђѓрфёђѕ  ѓ№ѕршяёѕ   єюљсчяяє  ђэљууёьѕ эєіууёщї  чќѕпцяцљ$фїкшьх§§ (ќцєзьшуњ)ѕюэиьут ї(ьі скыпхї!"#шќ лрщлюј( & щжсфйљљ+'э ћеуплђ +$#ћѓюжуйр ё+(їљхжрзц ѕ*")їџ сзлзя ќљ )&' їнззлѓљ%*+# њњйееоїћ),* §єзбзфї§,1( ў№вЬйъєџ15%Lш_ыб) ћўяЬЩньђ76!њњшЧЭтыє>1 їїфОбшцљ D,ѓїкЛгысќ *E+ яіаМиыс 6C&ќыђХПоуц?A іщьМРхлэ F@&яъпКФчиѓ&F:& шщгЙЩхлј/H4!фцЭИЯосќ6I2%поЧИайф"';H/(јнгУЙбзщ $1=G.(ѓйЬТКЯйя*7?F3%ывЧРКЬнђ2;AF5 уЬУПЙЪуљ 8?BG7мФПОЙЩх$?BDG9ћзНМККШы -EEHG6ђаЗЛЖЙЫ№3JFKG1щЪГЙДИЮѕ9NIMI0 тУАЕГЖвњ!@QNMJ,кМЎАДЖк*HSSMI(ћвЖЋЋДИл .MVWLI ёЭБЇЈДЗс3Q\XMGшЪЎЁЈДЛш;SaYLCнТЌ›ІЕПь&BVgZLBжНЇ˜ІДРі,E\jXL>вИ •ЉДХ0JamUK:їЬГœ“ЌЕЫ6OhnTK1ђЧ­•’ЌЗг;RnmUI.хТЋ’­Зк>[rlTHпПЃŒ–­Йп$B`wMш`аці kSFжНœˆ—ЎМь,EhyeQCвИ•‡œЏСі0Ln{dQ<ЭБ‡œАЧ3RqydP6њЫЋŒˆœГа 7YvudL1ёХЃ‰Зд;byscI$ьО‡žКпBgzqbDщЙ—‡žПыJiyq`=уВ”ŠЂХё RnusZ: м­ЉЫљ$UrrsT1зЈŒŽЌж§,ZsqqN%ЬЂŽŽŽВр6_qspKџУž‹“Кц@amwjAїН”ŠšХш Cflyc;юКš•ˆЁЫщHemx\.шД›“‰ЈжьPbovU'рЏ ­мю&R_rqN#зЋЂИнѕ)T^tnB"гЋЂŒ•Фпћ3T`th8!Щ­žŽЬр9Qcq`2 њША›Їбт :OgoQ/іУБ˜“Бвш >PikI,яТА—™ЛеыX\J6сМЈЈЙЬтћCXSD1сКЉАОЯщ§GUJA.оЗ­ЙРеыў$JPC>(мЕДРФйюў'JH>:$еЖНУЦпюў.I>=7ўЮЙЧУЬхьNшaŽsy4D6=3љЪРЭУащщ ;<2=,№ЧЫбХиъч;00:'юЦгЯЧошъ8)17 цЪлЮЪтуэ2"23пвоЭЯцрѕ )"2.!онпЮжцп§"!2' офоЯкусџ #1#ќушмапру%. їъъкдррч '* ј№ъкирсэ(&!љѓщилпс№ &#  џєшкнрсѓџ $# ѓцммтуђ§ "$єхомфхяќ !$ђхпнфць§!"ёхорфхы" №хнтфтъ" §юфоууоэ!$ќюупфслэ !%љ№ссфмл№ '% їюртфжлѕ ,# јырусвпі /јшсуоЯућ%1їцуфиахў +0ѕуттббщў 1-ёутрЬдьџ#5,яуткЪжё*6(џьтсдЪйѓ /6& ќысоЯЪмє $36! јщпиЭЪрѕ !)45 ѕшOшLЮл™3ндЫЫфљ #054єхлЮЫЭх§ (352ѓтеЭЪац .47/ћђпЯЫЩвы$348/љ№йЫЫШвё*659- љыдШЫЧеѕ085:'јшЭШЪЦлњ587:"ісШШЩЦо§ $999:єиФЧЦЧуџ(<9<6ядТХУЬщ/>;>4ўщЯСФСая4?>?.ўтЪРССд№8AA=+ћлЦОНХзѓ&%158ЧРПЦЭ№(FFK3'дЛВЈЌЯ64љ!45$љЬРЩЩвч0?RC.бИАЎ­с 1;/њ +32 ъЯКббйэ8ALC%ѕЬЕЌЊКы6?&џ,2-тЭадеп№:DG;!чЪИЋЌШў.ќѓшшщыьф№§%'$ђзвпутцьы/BB:'љёьфшђшфђ!*#§ёджсчууюё 9E>/# №яьтч№юті +!іязефыспђ§;J9+№чшхцяъыі  'ѓпрлрърря&=F;#ёсфъчъюѓї ьсмтфхпцї/@@4 ётцъыюьѕћ ! ћщотуурфы7>=-ўыпшъьщєє !љшптхтнщє(>:6*ѓщххшяюђі їщтрууншќ09<7%№сччч№ѕѓѓ ўђхфтпрсэ#4890 ўыуццыђѓѓі ћюччултчј )688.ічоцьёђєђњ  їыцшонфє-666'ѓхмшѓѕэѓљџљыхцслш3:3.%љ№соъїѓю№џ њј№т>шgДЏ„хскѓ9<.&$ єхтцэїљьё љїэтпрщј "47/% ьфсхѕїіьѕ§ њєшррря)47+(ќъхпъїќ№ёљў њ№фпмші (5-,"јцтхэјїђєј ѕъхисю *1/'ёурщђјђѕѕћџџѓщллчњ  ,/-#џьуцьєљѕєјќќ§єсжою +-*!њчуьэєїіѕјњ§џ§юмзцє !),*ѕщцы№іїїѕљќќ§њшйкщ§"(-"ѓшщэђѓјєљљ§љў ѕхзкэ ++ёщщђёёјіїћќћ јѕрдкљ (' §ющьѓ№іїњїљљўџњэкгф§""&њёшѓюёїќїѓїџќ јузгъ$њ№ь№ѓђњ§ѕ№їџ§ ђрдлє&ќњёъђїѓќћѓяљџъкйпљ  њќђчїїєћ§эыћсвпцў! ?шhЌб‹ўјќёъђ§њњїыэќ ќкбрѕ! ўіїѕюя§їььѓї №лву§ # џњєёєѕћїъчіўцжкъў  ћљѓяіќўѕшцѕљуеояџљјєђјџєухљ ємзті ! њњљяђ§ўўђош юзкэњ "  ѕљќђєўїюрчщгпѓџ  џіѕјїѕ ѓхх№ їцкрє" џўїѓїїњ №фцѕ ѕрнфћ ўћѓѕѓљџџьсчыпоюљ ! ќѕѕђєљљянюџшлфѓћ $џќ№№љѕљ џѕъх№ љчлчљ!ћ§ћяьњјќ џюшяі ђфпэ§ "§ѕѕэ№іњ ћыыяћ ќюфцяџ "іієыюѕџ јьяѕџ  ѕщшчѓџ ! їђяюьј љюь@шiЯѕкљ єчшэѕў ўјьъююљ њяя ѓтчёј§ѕшцюѕї §јђі§  џяфчѕџїющфюєў ќїіљ  љюфьѕѓюхфяї ўїњ§ ѓьъшјэысуяќ ћјўў §ѓяшы #ћъшуфяџјњ ћяюыэџ  јхфхфэ њњ јьэ№ѓ ѕутфшэўјюэ№і№фнхщя џїяыђ§ эрнцъєџ ўїёэє ћ№мнфыѓџ ў§јюэќ ћшйохэѕ  ўўѕьєў їфнншъі ќєяјџ ѓуйтцшј  њ№ђќџђсйтуыї  џќ§ѓђўAшjИЬЛ9ћётйнщыѕ  ћў§іёў їёрзнщьњ   џњ§їѓџѕюсинчяњ  ў§§ѕї  §јюмжочюќ   ўџ§ѕї ўіыознщ№џ ўќіљ  ќѕъожмшѓ џ§љїњ ўѓчмжлцљ  њљњћ  ќѕчззмъњ    §ўјїў  њѕцжжньћ    ќњњј§ љяхжвођ§    ќјћїў   іятжбсѓ   јљљњў  љътдгсљ   јјј§   їщлвжцњ   јѕљў єхкгишћ  ѕђќ  ђтжейъў  ѓєћ ўёпBшk&юОTждоь   ћѕѕћ  ќьпгдпѓ њєђ   ќыквйсє  ћѓї   њщждлхѕ љѓі   џїфедочљ  џєіљ   ќђсжгоюћћѕѕћ љяугдуяћџ їіїќ  їырдихѓ§іѕјў ђщпеиъїћџѕіњ§   №хпзкыј§§ џєѕќў  ќ№унйоюљќќќ !§ііћ§  ћюулму№јњћ§ !!ћїіњћ љщппоуђњљї&§єіћћ ѕчппсцёљіїџ  %ќѕіљўќѓцрпфъёїєј#" јїіљќ њюфтсцьѓѕѓјCшlЁƒЖ{#" §їіјї§  љъхтхчюђє№њ %!§јѓїјџ џєъуушшэѓђэћ '"џіђѕќќ њђыухчьюёяёќ"%њјѓѓњ ї№ъфцщюяээѓ$$ њіђєљ  єёщхшюэьээє!$$ ўћѕюєў  џєюыцш№ьыыюљ%$"ќјѓ№ѕў ќёьыщъ№эыщюќ '# ћѓєѓє§  ўяээыыэюъчё!'#іђіђѓў њ№ъююъю№чшђ (#јђѓѕєџ ўїёьэюяьэчщѕ#'"іѓёєї §ѓёюээ№юшцэј %&  §єєђѓј  ћєяэяяюьъщыќ%% ћєёєѕї  љђ№ю№яэьщшя!$&љђѕёєњ џљ№№№ёьююшчє (%јёєєѓћ ќїђю№ёяюьчщј"(" ѕђєєєўDшW вд_ њїѓэ№ђёъьщэњ $&  ѓѓѓѕіў јїёюђѓяьъьяњ#$§ѕёѕѕљџ  џљѓёяёђяэьэё ##ћѕђєїњ  §їєё№ђђяэээѓ$  љіђєјќ  ќѕєђ№№ѓёэьяј #  §јіђѕњџ  ћєђѓяёѓёяэђћ!#ћјієє§  ћєёђђ№№єяьєџ ""љїѕѕі§  џљѕёёёёђє№яі!# њїііљџ ќњѕёяєѓёѓђяљ!" ћєѕј§џ ќљє№яѓѓѓѓђєќ!ўїієћџ ќіѓёёёѕєѕђїћћјіѕ§ ћіёёёёііѓіњџ њјїљ§ њѓ№ђяђїјѕїќ љїљћџљє№ёёѓїјљїќ §љїљ§§їѕёю№їјљљљўќљјјћјѓёю/шn›ЄЯ^њјїѓѓяя№іњ§   ўњљіђ№юьяєјњўџџ  §ћњіёяюяёѕіјћќ§  ўњѕ№юэюяѓєјјњќўў  ўњїёяя№ёђјњќќџ  џ§ћїѓё№ёєєїјћћќћњљќџ §јѕђђѕѕііњћўџўћњџ  §њјєѓєѕѕєїљ§ќ§љїљџ  ў§њїєєїїѕѕљњўўўљњў џјїєёюёєђёѓіјџќњјћ§  џљїѓёяѕѕѕіїћџ§ўў  џ§їѕ№яяђѓђєїќџџњќ§ќ§јѕ№№яђєѓіњџ  §ќјєё№яѓіѕј§  ўќћїѓ№юяѕіѕјќ  ўћљѕђяэ№єєєїћ0шoї(зFџў§ћў  ўћјѕёёєєѕѕјћџ§ћ§  ўќїєёяяђѓѕѕљќўў  џќљіѕѓђђѓѕѕїћ§џ  ќњїєѓђ№юяђѕїљћ §ќљѕѕєяю№ђѕіјќ ўњљѕѓђђьья№ѓѓї§  §ћїѕєђэяёѓєєј§ §њјѕєѓ№э№№ёђђј   ўћњѕєё№я№ёёёѓјџ  џћљѕѓёёђѓєєѓєћ  §њјѕѓѓєєѕіїјћ џўњїіѓёёѓєіїљњќў  ў§љієѓёёђѕјљћќџ џќљјѕєёяяёєљќ§ џћјїѓ№яяяёѕњћ§ 1шpКЁКŒ  џўќјѕѓђђєјљљћўџўћњљћ  џњјїїљќќќ§џџџќјіјњ ўџџћљљјјќћћћ§ќіѓєіњ §ћћќ§ўќќ§џ§јђёѓѕњўџ §§џџџ§ўўќіђѓіјћџ џў§ўџџў§§§ћ§ќљѕѕїљќџ џ§§§§ќќўў§њќќњїјќў   џ§§џќќ§ў§ќљњћћљњ§џ ўќњќќћљћћќњїіљ§§ќ§џ  џўџќћјјјїіѓѓїћњњћ  §ћћњјјїіѕєё№єјњќќџ  §ќћјљљїѕєѓёђіјњќќ  ў§ќћћќјієѓѓѕјњћ§§  ўќќўќјѕѓєѕїљћўџў ў§§§ќњєђђѓєїљ§ џ§§ўўў2шqЛхг7њііїјјћў  џўќћћ§ќњїєѓѕјјћџ §ќћћљїѕєіїљњў џћњјїієѓђѓєіљџ џћћјѕєђё№ђђѕјћ§ ўќњїіѕѓђђєѕљћўџ  џњњјјїѕѓђѓѓїјњ§  ќќћћљїѕѓѕїњљњ§ џќљћћћњњјјћћў§ џќ§љјїјјћќњјћќўџџ ўќ§ћњљњћ§§ћњ§§ўџўћћќћћљњћ§ћћћ§ўџџ ў§ќ§ќћћќќћљњњћћ§§ћў ўўџџў§ќќћћќ§§ќ§џ§ќќўўџџџўџў§ќћћўў§ў§ћ§џ§ќќћњњљњќћљќў3шrљмИ}џџ§ўџџў§§§ќќџџўќџўџў§њ§ў§§ќ§ќќ§џўџџ§џџўќћћћќџўџўџќ§џџ§ќ§џџџџ§ўўџџ§ћ§ўў§ў§ќћћ§ўџўўџ§џџџџќћњќўџџџџў§ўџўўќўў§љњњ§ўўџџџџџ§ўќћљњќўўўџџўўџџџџў§њљїњќўќќ§џџ§§џўўћњњћ§§ќќќ§§ќќ§ўўџќ§ќ§§§ћњњќ§ќћќ§ўџ§§ќ§ћљњ§ќњњћ§џџўќ§ў§њњљќќћћўџџџўќ§§§њћћ§ќњќ§џџџўўўўќћќќќњћћ§ў§ў4шsШЦМRџџўўў§ќћќ§§ќ§џў§џџџўџ§ќќќћћќ§ўўўџџџџџўўўќћћўџў§џџџўўџўџў§ћњћ§ўў§§ў§ќќџџџў§ќћћќ§ў§§§ќћќўџџџўќ§ўџџўў§ћќ§џџџџџџџџџў§ќ§§џџџџў§ќќћќќќ§§ў§§ўџџўўў§ќћќўўўўўўўўџџ§ў§ўќћћўџўўџџ§ќџџў§ћќў§ћћўўўўџўџ§ќўџ§џў§ќќ§ќ§ќќќћњњћ§џ§ќў§§ќќќ§§§§ќћћ§џў§§§ў§§ќњњќќќћњљћўџћњћќќћњљњќџ  5шtцчкhџќљјјјїіііјњќџџ§њљљјїїјљћќџ§ќљјјііїљњќџўћњјіїјљћўџџџџўџџџџџџўќњњњћќџ џџўўќќћћћњљјљљќџ џў§ќћњњљїїіїјќ ўќћћћћњљљјјјљњџ џ§ћљљњћњљљјїіјњў џў§ў§§ќћњљјјљљќ§џ  §§§ў§ќћњљјљљљњ§џ §ћќќ§ћњљљјјљљњњ§џ џ§ќќќ§ћћћњњљњљњ§џ џўќ§ќќћћќќћќћћ§ўў§ќќћљљњћњљљњ§џўќћћјїјљљјјљћў6шuкЮЛKўќћћљїїјњњљљћ§§ќќњљњћћњљљќўџџ§ќќњћќќќќћќ§§џўќћњљњћќќќўўўџџќћљњћћќ§ўўўџџџўќњњћќћќ§§§ќ§ўџ§ўўўўўџўќ§џџџџџџџџўџўќќ§ўџџ§ќ§§§§џџџџџџў§§ўўќўџџџџџџў§ќќќћћќ§ќќџўќњњћћћћћќўџџџџџў§ћљћќ§ќ§ќўџџќњњћќќћћќўўџџўњљњќќќњћ§§§ўџ7шvU"эџў§ћћќ§§ќћ§ўџџџџџџўќћћќ§ќћќџџ§ћћћќћњњњ§ўўўџќћќќ§§ќћќџўўўќњњћќќќћћ§џўџџџўўўџџўќ§ўџў§ќќўџўџџўўўџџџ§§џџџў§§џџџџў§§ў§§ќќќ§ўџўџџџўў§§ќќўџўџџџџўџџ§ўў§§ќџџџџџў§§§ќћќўџџџўўў§§§џџџџџџўў§ўўџџўџџџџџџ§эосюэьПЧБЈЧр!:a0: "ѓ &3ј џѓвіѕоѕкФЖЗБЪщ+'8шw‚@“ђMf75јч1% ў$ циѓсыкаМЎжЛХќ&CWj9яњъDвф иммбЛЉсЬЬ&aTSAџкь;,ЯзрзлбЧУмФзAoHC2§ящэ*сТъцжвЩймзйЩц6ZlL=,ёчфёь" ѕЯымШЙСчдуЦбџ@g_VE#їшѕсы!ѓ'цлрзШГбшнквкSu^ECыољжјњ.'*тфквЕЖпёклфь#]\0/ющящрыює53 щкаМЖЩыђдбыџ,"эжУДЦЬчэнёл@irG-§фЩлЬч ї .7*(мШУВЪЫщяьых ctiY!яййЪић>",.ќЬвЏЗЪкьюьуя itWLјчвЭПр џ*<)/1ъбМЌЛТмьэыл 5cyW8ѕпПХЮс %*:=хбИЄЫепђ№фсNZyYъвУМвц 9шbЦдЙк148?вУЖЏШйхќщо)_kdOпУвБЯј"8@'ЪЕЖЕФ㧹тш'Yxb? ЬОЫОй-F<*№УЏВСРощсщ6eqK?фТИФТч07GBдДЛЈЩЭѓжѓљ#R`w?#ЫЛИФЫф".AP9Т­БЏдбњ§иє 4L`qI ѕФЛОЦжя%/1GJ; юВІЄЕжуќёряAK_gG ьФБТЬх§30-BN+џфЏ—ІФкюјятј.6Bm^0§№ИІМоч"259DM#јгЋ“Їецыѓѓѕ0ESiRќжВЃКчѓ'/<<@@№Н˜ЁБфяёўјќ:RVe= ѓФЉІШэ*877G= тЅ•ЃХъфї§џ >^PU:оЊЉВЭќ6:@C=5§Щ•›АХхљі ћ)GSQ>3їШЃІСЫ $AI`^x№прЯЊФбргЖагюЧЦ„ЈЂЕŠЮ6JF/@lD гнщбАЁбХРЙЊПза…‚ƒЁЯ#D`|J$0Jb6*ѕћт’%шzƒю€‚ƒЮЧі">Me^%2^N9"5  цЎЁ‹ˆ‡Рщфэ*74OC,%5-_ub=<)!) яЦЉ’И 90.огКЖљ џї G? с$4-5ei(§юпЧУз§ ћ.g6ўџ%93./=HV*љќ ыкбРКб'"M\ *19)"'џщљыодРНЬџ'& &E8++-##$(ыђћњмШПЗк  *-:E7. зОХЭЯОЙРтџіѕњў ян KK6# њъЖ­Тлрнуџмо!M:! љђђјјдЄЏдцяя65(%&+#эЬм *єшъреагесэФЄКрїRg]Y]]VN8шяђйваЖЉЉБГЧЫЉвђ3`b`bnlk`;єя &ш{…г SыиеШГЌ­ВЗбХ’’ЖлјKqnflroqY- ёцўўумиХЋЅЂЌСзМ“Аая%RaWU]eja<џчнєјыхмЭПКЛбх№ЦЅЋЛЪ>SXVXY`]?!ѕвЫхяьщтиЭЬаъќіЩЖДЖкCFLOLIO:ѓЯГЕжоллеавйхџиЭЪз@LS]_XYN)ёзНХусттрсушѕѓЯЦПи )5>A?>ќёкХЖЧттшэ№ёјўќйдй§$0?EJH9іфйЩоёыђії§ ъвЭмї(096їљїьодЧнъцюѓѕщйнђ "0;E/ў§їщожюљѕќџ њжвпђћ%.0ёыђънЭЦШхьыєќ  єгпє ,?F;њчввзюђѕпЫуљ#26јїїњтаХЦЭцшірељ "2?9ќргЭЯз№№ ђЮм +2їєьрЯЧФЦеьє щеы&3-џѕшнЬХУЧиѓќ ъ'ш|n-туњ$+њђтзШКЖГЗвюі ђі')275 §ьнЭУМЖРоєі яћ"(*/+ўўђсдЦСЛЙХцєљ  є".428*ўылбЮЩЧг№ќ   њѕ$/-*+ќўётзЯЯЫЮмї џ§ ђі!)''! їђ№ъмеЯдгкы  јћ#"њщхтнвЩЦЭЬйё  ў!('їтрлнгЬЩбЭнє §#$эолмндЮадгсј !"ўшрурпижикихј  !! ѕъчцфслллизцј   џ єюььшхччхрпэџ §џ  љє№юэыщььчфші §§  ўјѕ№№ьяѓяъэёњ  §ќў ќіѓёяѓёі№юђї§   ўї№ю(ш}УДЁюьђёђыяљќџ   §єяэъъяёюьѓјћ  §љєэшуссхцчъ№єљ   ўћіёюъхтфчыяёєќ    §ћїї№ъумкущшыюќ   јђтооуспфыєњ  љэцфщчущэіћ !њ№ццфцррхщяіњјќ$&((! ўї№юэъхуъюєѕіѕ§ #" ќљієєьщшыюёђіћ    §іѓєђщцуфшчыэє§ "&  ўњѕѕё№щщъя№яяїџ ћѓюьъччфщчыъыэіџ  §єя№ъчцхфшуъшыёћџќџўљіёюхусттспхущ№їљљ  ќ§њѓячцтчурпцч№)ш~кОqѓњћ§  џїїјєюцхчшыутпхщюѓјњ§  љіњћњёэыыщхпрохцшы№іњџ  §ѕїљќљя№яэшцсусщъэ№ї§  ћћњњѕьяяэхтрттшъюђјџ  џ§§њѕ№ѕяьшъчъщюёєіњ ўўћќіјєєэёььшцхщяђії !"" џќќѕє№ёюъфсхшюяю№џћўњѕэ№юђьчфшщяїіј§  џўўіэыяяюшффцыђїі§ їђђѓяэцхшшэёєіџ  ўљїіѓэщуфхчыьђї§  ўќњѕ№ыщттсфщюѕїџ ў§ќєёэьутсцыѓїќ   ўњђѓяырпнфьєѕџ   џіђѓ№ыууф№і§ *шM‘3Ц їђяъъцнсцђі јђэщутрлрчєўњђьштусоуьј ѕььцууррхяљ#  џ№щчуртртцёїјњћў  ќяьщчччцщяјњћњћ  ўєышчщчччь№їєієљ§  ўѓюъщщщыы№яёђђ№љў љѓяюяюяя№яєђђєћ   §њіђяяяёђё№№ѓђєї  ћћєяььюьыщщщюяѓћ  ќљї№ю№юђёэщь№ѕїџ  ћљђюыыюяыщхцщэђљ  ћњіё№єѓєєѓђђѓјў  њєђюью№яюююэыёљ§ў ќјіђ+ш€С“”`ђѓєєђёяюѓљќ§ћџ  њіђэ№№№юэьшьђїњћћ  ќјѕєѕєђ№ьыђіћў   ўњјїјјііђёёіјњў    ў§љјјјѕђ№ёєїјћ    ћћіѓѓђюююєњњјњ      ќјіѕёяэяёјћњњ§    џїіёээяэёѕњќљњў   ќј№ээ№яђіљљѕїќ ќљ№я№єѓјљјїѓёї   џћіђяёѓљњ§ќњїіќ  џљѓ№яюёѕњ§§ћћќјљџ   ћєёђююѓі§џћћјјѕњџ  §їѓєѓяяѕјћћїєёєѓіџ   ўљієїѓ№ђѕјњїіїѕјјџ  §јѕѕѓѕёёѓіјљїїіѕіј,ш|“›    њїљљјњіјњћљјіїєіјџ    ќџџ§іњћћњљїїіѕљ   ћџћїѕїѕіѓѓєіѕѕљџ   ќњўџ§ћљїїіїїјњћќћќ  ўїіљќњјјјїљћњќўџў  §ќўџќ§ќјњћќњњќџџ§њ    ўџўќћјњќћћќўўќ  ўџџ§ќћј§ќћћ§§љљџў§ћ§ќљїљјљћћќ§§ ўџў§јљјљѕјљљњўў§њћ§ўјњќўќ§ў ўџ ўљў§ќјќўџў§њќћљіјіћ§ќќќ џ§ўў§ў џ§џ§њјїљ§ўўћќ§ўћў§ќ џ§ќўўў§ќћќњћ  ў§ћњїїјљќ§ў§ўўў -ш‚ПЅКH џњњљњћќў§ћњќ§§§ў ўџўћјћ§ўџџ џ§ќ§ќїіљўќћћў§§ќ§ўњїћџњљќ§џљјћќќ§ћњў ўќіёѕљјїіѕї§ ўјђёєљљїјјћџ§јѓэъьђїіѕјіњ ўћіѓ№ю№ѕљњљњћџ§§џ §јїѕё№ѓїќўў ќљѕѓ№ђєћџ ќјљїљќ ўћѕєёѓђѕљ ћњѕєђѕєљўўњјѓѓђѕѕћџџ§њїѓєѓіј§.шmџе„ ќњіѕѕїњўўџџўџў  §њіђ№№ѓііј§   џ§јѓюю№ѓѕіњџџ  ўќїіђюь№ђєіќ   §љїђђ№ыы№ђђєњў  џљїѓё№эъяѕєѕіћџ  ћїєђяюыыюѓёѓіќ  џљіѓёяэьяёєђѕїќџџ  џњјіђ№№яёѓєєіјћ§ў§ў  џћїіѓѓђђёђєіѓїњўў§ §јљѓяююэяёѓёјћўўўџ  џњљѕяяяё№єѕљћџџ§  ўўўќљіѓёђђѕѓїљ§џ  §џџўљїєђѓѓѓёіїћ§  §њљіїіѓѓїљќџџџ ўш„ЦоэЈrj`TG<1)" #&),/1356676532/-*&" ћѕёъхрйдаЫЦСОКЖВЏЌЊЈІЄЃЃЂЃЄЅЇЊ­БЕЙОУЩЭгйосхщью№ёё№эъцтолклрыњ.Jh|rO*нЫЦаш'EZjqrmd[OE:2+$!#&)+.0234444431.+($ ћѕ№ъхпидЮЩХРМИДА­ЊЇЅЄЃЃЂЃЃЅЈЊ­АЕИНСЦЫаейотцшыьээьъчфснмлоую§-GcwsW6ыгЧЪиђ-EZhookd[RH?7/)$ !#'),-./0100/.,*(%" §јѓэчслжвЬЧТОЙЕВЎЌЊЇІЄЄЄЄЅІЈЊЌЏГЗЛПФШЬбжкорухццчцфтроннрхюќ #;Sjz~pT3яжЩШгъ8N^inmiaZQI@<50*'$"!!!!"$%&()++,,,,,+)'%#  ќїёыцркдЮЪХТОЙЕБЎЋЉЇЅЄЃЃЃЄІЈЊ­АГЗЛРФШЬагжйморсссрпонмнпуьш…ѓћѓžї2H`rzgL+ыдШЧгхџ0FUagjgc]UME?83.*'%##""#$%&'()*+,,++*)(%# ќїђэцркеЯЪХСМИДБЎЋЈЇЅЅЄЄЅІЉЋ­ЏВЖЙНСФШЬавеикммнооопппрушёћ /DYky~{mU;§саЧЩдш§-BP\dfeb]WQIC<73/+)&%$%%%&&'(()))))('&#! §јѓюштмивЭЧУПКЗГА­ЋЉЇІІІІЇЈЊЌЎБДЗКОСХШЫЯбджзйкккллмнсхьє2DXiv{ymX@"ъеЩЧЮм№3DR\bdc_ZUOJC>941-*)'&&%&&&'(((((''&$"! џњѕящфпйгЮЪХРМИЕВЎ­ЌЋЉЈЈЈЉЊЋ­АВДЗКОРФЧЪЭЯбгежзийклнрфъђћ(;M_luwrdQ7чеШЦЬзъ§%8FRZ^_^[WRLGB=841.,*('''&&&&&&&&%%#"  §љєящуойдЮЩХСНЙЕВАЎЋЊЉЈЈЉЉЊЌЏБГЖЙМПТш†OFHцФЧЪЭЮбгджзиклотцьє§ '7GXfosqhWB)ѕсаШЦЬиъћ#4CMUZ\][WSNIE@<842/-+*)((''&&&&%$$$"  ћіёьцслжбЬШФПЛИДВЏ­ЋЊЉЉЉЊЋЌ­АВДЗКМПТХЧЪЫЮавдезйлосцьєќ %6DT`kppi]K4эйЬХЦЬйщћ0?IQWYZXVRNJFB=:730.-+*)((''&%%$"!  џњі№ыцрлжбЭЩФСМКЗДВЏЎ­ЌЌЌЌ­ЎАБГЖИКНРТХШЪЬЮавдзйлпучэє§ -;8530/-+*('&$#"! ўњіёэщфрлидаЬШХТПНЛЙЗЖЖЖЖЖЗЗИКЛОПСТФЦШЪЭЯвдзкнсхъ№і§ #-9BLTZ]]YRF8&япгШТСУЪгоьљ +4<97420.-+)'&$"! шˆMO6Ю §љѕёьшхснйжвЯЫЩЦУСПОНЛЛКККЛМНОПСТФЦШЪЬЮбгжкнсхщюѓљ"*4DJNPQNH@5' ћьогЩУРРУШблхђ§ %-38<:87420.,+)&%#!  ўћїѓяьщхтолидвЯЭЫШЧЦФУТТТТТТУФХЦЧЩЫЭЯбгжймптцъяєњџ $,4;BGKMLJE>3( §юсдЫФПОРУЪгмшђў %+058;=>>>=<;985420.,+)'%$"  џќјѕёюышфсолиеваЮЬЪЩЧЦХФФФФХХЦЧШЪЫЭЮбгжйлосхшэёї§ &-4;AEHJIFA:0& ќясжЫФРОПСЦЭжрыєџ "(.ш‰("*П3689:;;:9875420.-+)(%$!  §њїѓ№ьщцурнкиегаЮЭЫЪЩШШЩЩШЩЩЪЫЬЮЯбгджйлосфшы№єљџ  &.4:?CEFD@;4*јьпдЬФРООСЦЬдочёњ$*.25799998765310.-+)'&$"  ўћїєёюъчфспнлйзегваЯЮЭЬЬЬЫЬЬЬЭЮабгезймосфшьяєљў $+17;?AA@>93*! ќ№цйаШТПОПТЧЭжошђњ !'+/235566654310.-+)(&$#! џќњіѓ№эъчхтролйзегвбаЯЯЯЯЯЯЯабвгджйлнртхшь№ѓјќ $*/48<>>=:60( §ђцлвЪУРООСФЪбйсыѓќ !&*-0234443320/.--,)'%$"  ўћјєёяьщцфтролкижеддгввввввгдежзйкнптфчъюёѕњџ%+/479;;:71+#шŠAMBкљютйЯЩУОННПУЩЯзпшёњ #'+.00111110/.-+*)'&$"  џќјіѓ№эыщцфтромлйизжеееееежжзййлнпсухшыяђѕљў #(,04688751,% џєщпжЭЧТППРСХЪаипчяїџ "&)+-.///..--,+)('%#!  ўћљіѓёяьъшцфтронмлййиииииийклмнпсуцшыэёєјћџ  %)-134542/)$ їьтиаЩФРОНОСХЪбйрщ№јџ!%'*+------,+*)(&$#! ўќљієђяэыщчхусрпонммллллммнопстфцшъьяђѕјќ !&)-/2221.*& ўєысиаЩХРОНОРФЩЯжмфьѓћ!$'()**+++*))('%$"! џ§њјѕѓёяэыщчцхутсррппппппррсуфцчщыэ№ђѕљќ ш‹`a]ї "%(+.///-*&! њёшоеЯЩФРООПСХЪЯжмуъёљџ !$&'()***))(('%$"!  §ћљїєђ№юэыъъшчххфуууттттууфхчшъьяёєіљќ  #&)+---+)%! ќєътйвЫЦТПООПСХЪЯжмфыёљў  "$%&'((('''&%#"! џ§ћљіѕѓђяюьыщшчцххфффхххцччщъыэю№ѓѕїњ§  #&(***)(%!ј№чпзбЫХТПППРТЦЫажмтъёї§ "$$%%&&&&%$$##"! џ§ћјієѓё№яюьыъщщшшшшшшшшщъыьэяёѓѕїњќџ "$%&''&$! ўіюцпзбЪЦТРООРТХЩЮдкрчэѓјџ  "#$$%%%$$#"!  ўќњјїѕєѓё№яюэьыыъъщъ!шŒПЎŸ#ъъыыьэю№ёѓѕїљќџ "$%&&&%#  џјёщскгЭШХТРРРТХЩЭвзмушюєњџ  !!""""""!!  џўћњјїієѓђё№яюэээььээююя№ёђѓѕіјњќџ !"####!њєьхозвЬШФТСРСТХШЫбелсчэђј§  !!!"""!!  џ§ќњљїіѕєѓђђё№№№№№№№№ёёђѓєіїљћќў !"#$##! ўї№ътмжаЫЧФСРРСТХШЬбелрхы№іњџ  !!  џў§ќњљјііѕєєѓђђђђђђђѓѓєѕіїјљћ§џ  ! §ї№ъунзбЬШЦФТСТТХЧЫЯгинтшэђїќ  "шЊЈœ$ џў§ќћњљљљјїїіііѕѕѕѕііїїјњћќўџ  ўјѓьцркдаЫШХУТТТУХШЬадйоушэђјќ  џў§ќћњљјјјїїїїїїїјјљњњћќ§џ  ћі№ъфпйдаЬЩЦХФУФХЧЪЭаейнтчьёѕњџ  џџў§ќћћњњњњњњљњњћћќ§ўџ  ќјђэчтнигаЬЩЧХФФФХЧШЫЮвейнтцъюђіњ§    ќјђющфрмидаЭЫЪШЧЦЧЧШЩЫЮагжймручыяђіљќџ#шxцїѓ    ўњіђюъцтнкжгаЭЬЪШШШШШЩЪЬЭЯгеилосфшыяђѕјњ§  ќјѕёэщхтолиеваЮЬЫЪЪЩЩЩЪЫЭЯбгеилосуцщьяђѕїњќў  §њїѓ№эъцурнкздваЯЭЭЫЫЫЬЬЭЮЯбдеикнптхшыэяђєїљћ§џ  §њїєёэычфсомйждваЯЮшНеWта}@№жаSОжа}}ўрSОтата@Ќ@№жаЌжжаЌўЌўрЌжжтата}т:@№SжажжаО:ўртатаж`Њ@ў@№жаўќжа ќўршЛЎ•UтўтатажОў@№жаќжаЊќўртІтатаўж€@№жа@@жаЌ€ўрSж@татаОО@№жа:жаО:ўрЊтатажЊў@№жаўќжаш‘ИѕѕS ќўрўтатаОў@№жаќжаЊќўр:татаж€@№жа@@жа Ќ@ўрЊж€татажт:@№жаў:жаОўрS:татаЊ`S0Ќ@№Sжа}ш’Й^…QжжаSЌўр}жтаSтаЌ@№Sжа}жжаSЌўрЌжтатаО}:@№жаЌжа}:ўрSЌта}та:@№жажа:ўрЌта}таЊSќ@№ш“ЖМuOSжа}ўжаSќўрО}ўтаSтаќ@№Sжа}ўжажSќўрЌўтата@@€@№жаS@жаЌ€ўр€@тата}€@№жа@жа:ўрЌта}ш”ЗщхMтаS`S0Ќ@№Sжа}жжаSЌўр}жтаSтаЌ@№Sжа}жжа@SЌўрЌжтата}:@№жаЌжа}:ўрSЌта}та:@№жажаў:ўрш•ГœЅKтЌта}тажSќ@№Sжа}ўжаОSќўр}ўтаSтаЊќ@№Sжа}ўжажSќўрЌўтата@€@№жаS@жаЌ€ўр€@тата€@№жа@жа@№ш–гшхI:ўрўрЌўр}ўрЌ``S`@№@Р@№@№@P@аSPаў}ЌPЌP}@№ЌPа}P:ааш—оеG}аSќаЌ@№@№SPЌPаж0ЌP @Pќ€@№@PЊаж@PЌ@№ш˜F`l@0Ож@Р0 :@рS ж0 @№ў @№)# џљїёэъчфсрнкйжегбЯЮЫЩЩШЦФУСОНЛЙИЖДВВАЏЏЏЏАГЕИНТЩаитыљ"*05785/' їсЯТТж3k|GЩЗЮ>k}zfN4 §ѕё№ђѕћ '1:AINQSTUSQNJFA;60+% џњі№эщцупмйегбЮЪЧХФРПЛЛЙЖЕДБЏЏЎ­ЌЌЌЌ­АГИМТЩЯитъѕў!%'*+)$іцеШУЮчHs}L еЙХэ#Qr}wfP8"ў§ќќџ%,3:@DHKMNLKIFC?;61,'" §љє№ычурнигбЯЫЩЦХСПМЙЖГВАЎ­ЋЊЉЈЈЉЊЋ­АГЗМУЩазпшяј ќ№рдЫЫж№Frb)ђШНЯњ&Qp|zm\G5$ &,26;?BEFGGFEшƒ<6ДB>;84/)%  ќїѓющхсойдаЮЩЦУРНКЗДБАЎЌЋЈЇІІЇЇЈЊЌЏВЖКРХЬглуьѕќ  љюсеЮЭжь 4^|wSьЧПаї KivxpaO=.   $*/48YnvvodUH:.% %)-0468::;;;98530,($  ќіёыцслеаЫЦУОКЗДА­ЊЉЇЇІЅЄЄЅІЈЊ­АДИНТЦЭдйпхъяєїњћќћљіђьхпйжзмчњ1Soz_3 уЪФЮш-JbotшšЗ^UWж€@№жО@О:Рж@№жОО@№ўќ@№ўЊЊжќжОООўРОжжЊќЊўўќ@№ўќўООжўРжОќО Ќ@№   ЊЌЊЊЊОжРООш›ІчхUОжЌжО€@№ОООж@РжтРтў:@№ў@№SРSж@№ж0ќ@№ў жаЊќжажОўўўрОжќтаЊтаў ќ@№жаЊќжаўОжўўржќтаОтажЌ@№жаЊОЌжа ЊшœЎ:ЕSжўрЊОЌтата€@№жжаО@жаОЊж:ўржттаОтажќ@№ўжаЊќжажОжўўрОжтќтаЊтаўжќ@№жаќжаўОжўўржќтаОта@Ќ@№ жа SЌжашЄаeQЊЊўжўрООжЌтажтаО€@№ОжаО@жажРтS:ўрўжРРSРЌPж0ќ@№жаХќжаќўўўр:ќтаќта ќ@№жаЌЊќжа}жўўрSќтата:жЌ@№шžЋJЅOжаЌОЌжаSЊжўр}Ќтата€@№жаО@жаќЊўж:ўрўттатаўжќ@№жаSќжа}жўўрЌтќтатаќжќ@№жаЌќжа}жўўрSќта:ташŸЅX…M@@Ќ@№@жаSSЌжаЌўжўр}жЌтатаў@О€@№жжа@жаўОS:ўрЊжтатаќPж0ќ@№жаSќжаЌўўўрќќтатаІ ќ@№:жаќЊќжа}жўўрЌ} ш  ‹ЕKќтаSтажЌ@№жа@ОЌжаSЊжўрЌЌта}та€@№жаЌО@жаSЊЌж:ўр:ќтта:таІжќ@№жаSќжа}жўўрЌтќтатаќжќ@№жаХќжаЌжўўр шЁЄVuI}ќтатаS@Ќ@№жа@SЌжаўжўр}жЌтатаў@О€@№ўжат @жатўРжж:ўрОўРЊўРўРќP}0€@№жа@0}0@жа:P}0€ўрќЌ0@тата@0}0€@№жаЌP}0@жа шЂœ5G@0}0€ўр:PЌ0@татаS0Х0:@№жаІPХ0жа}0Х0:ўрњPќ0тата0Х0:@№жаХ0жа}0Х0:ўрІPќ0татаЌPЌ0ќ@№жаSPќ0ўжаЌ0І0ќўрќPќ0ўтатаS0Ќ0ќ@№жа шЃŸCхEќ0ўжаЌІ0ќўрќ0ўтатаќ Ќ0ќ@№ўжаХќ0ўжатЌІ0ќўрж}ќ0ўтаОтаSЌ0ќ@№Њжа@ќ0ўжа І0ќўрўќ0ўтатаж ж0ќ@№жжаўтўжаSжќўрЌўўтатаќО шŽЛY:@№жаЊ0жжаО:ўрттатаОІ@№жаSSжаўІўржтSтатаж€@№жат@жаж€ўр}Pў@таSтажќ@№жатўжажќўрўўта/шЅ}-oх_partnrplay,d0 clr.l d1 move.b (a2,d0),d1 mulu #$0400,d1 add.l mt_partnote,d1 move.l d1,mt_partpoint clr.w mt_dmacon move.l #$dff0a0,a5 lea mt_aud1temp,a6 bsr.L mt_playit move.l #$dff0b0,a5 lea mt_aud2temp,a6 bsr.L mt_playit move.l #$dff0c0,a5 lea mt_aud3temp,a6 bsr.L mt_playit move.l #$dff0d0,a5 lea mt_aud4temp,a6 bsr.L mt_playit move.l #mt_speed,d0 mt_rls: dbf d0,mt_rls move.l #$8000,d0 add.w mt_dmacon,d0 move.w d0,$dff096 move.l #mt_aud4temp,a6 cmp.w0шІno—6 #1,14(a6) bne.s mt_voice3 move.l 10(a6),$dff0d0 move.w #1,$dff0d4 mt_voice3: move.l #mt_aud3temp,a6 cmp.w #1,14(a6) bne.s mt_voice2 move.l 10(a6),$dff0c0 move.w #1,$dff0c4 mt_voice2: move.l #mt_aud2temp,a6 cmp.w #1,14(a6) bne.s mt_voice1 move.l 10(a6),$dff0b0 move.w #1,$dff0b4 mt_voice1: move.l #mt_aud1temp,a6 cmp.w #1,14(a6) bne.s mt_voice0 move.l 10(a6),$dff0a0 move.w #1,$dff0a4 mt_voice0: lea mt_modulate,a0 move.l mt_partnote,d0 lsl.b #7,d0 add.l #$10,d0 m1шЇлЗЖЄove.l d0,mt_partnote cmp.l #$400,d0 bne.s mt_stop clr.l mt_partnote addq.l #1,mt_partnrplay clr.l d0 move.w mt_maxpart,d0 move.l mt_partnrplay,d1 cmp.l d0,d1 bne.s mt_stop clr.l mt_partnrplay mt_stop: rts mt_playit: move.l (a0,d1),(a6) addq.l #4,d1 clr.l d2 move.b 2(a6),d2 and.b #$f0,d2 lsr.b #4,d2 tst.b d2 beq.s mt_nosamplechange clr.l d3 lea mt_samples,a1 move.l d2,d4 mulu #4,d2 mulu #$1e,d4 move.l (a1,d2),4(a6) move.w (a3,d4),8(a6) move.w 2(a3,d4),18(2шЈд‰>a6) move.w 4(a3,d4),d3 tst.w d3 beq.s mt_displace move.l 4(a6),d2 add.l d3,d2 move.l d2,4(a6) move.l d2,10(a6) move.w 6(a3,d4),8(a6) move.w 6(a3,d4),14(a6) move.w 18(a6),8(a5) bra.s mt_nosamplechange mt_displace: move.l 4(a6),d2 add.l d3,d2 move.l d2,10(a6) move.w 6(a3,d4),14(a6) move.w 18(a6),8(a5) mt_nosamplechange: tst.w (a6) beq.s mt_retrout move.w (a6),16(a6) move.w 20(a6),$dff096 move.l 4(a6),(a5) move.w 8(a6),4(a5) move.w (a6),6(a5) move.w 20(a6),d0 or.3шЉј)гZw d0,mt_dmacon mt_retrout: move.w 20(a6),d0 lsl.w #4,d0 add.w 20(a6),d0 move.w d0,$dff09e tst.w (a6) beq.s mt_nonewper move.w (a6),22(a6) mt_nonewper: move.b 2(a6),d0 and.b #$0f,d0 cmp.b #14,d0 bne.s mt_noset move.w 2(a6),24(a6) rts mt_noset: tst.b 3(a6) bne.s mt_noclr clr.w 24(a6) mt_noclr: cmp.b #3,d0 beq.s mt_modvol cmp.b #6,d0 beq.s mt_modvol cmp.b #9,d0 beq.s mt_modvol cmp.b #4,d0 beq.s mt_modper cmp.b #7,d0 beq.s mt_modper cmp.b #10,d0 beq.s mt_modper cmp.b #5,d0 beq.s mt_m4шЊ*i'odvolper cmp.b #8,d0 beq.s mt_modvolper cmp.b #11,d0 beq.s mt_modvolper cmp.b #12,d0 bne.s mt_nochnge move.b 3(a6),8(a5) mt_nochnge: rts mt_modvol: move.w 20(a6),d0 bra.s mt_push mt_modper: move.w 20(a6),d0 lsl.w #4,d0 bra.s mt_push mt_modvolper: move.w 20(a6),d0 lsl.w #4,d0 add.w 20(a6),d0 mt_push: add.w #$8000,d0 move.w d0,$dff09e rts mt_aud1temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0001,$0000,$0000 mt_aud2temp: dc.w $0000,$0000,$0000,$0000,5шЋй}]F$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0002,$0000,$0000 mt_aud3temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0004,$0000,$0000 mt_aud4temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0008,$0000,$0000 mt_partnote: dc.l 0 mt_partnrplay: dc.l 0 mt_counter: dc.l 0 mt_partpoint: dc.l 0 mt_samples: dc.w $0000,$0000 mt_sample1: dc.l 0 mt_sample2: dc.l 0 mt_sample3: dc.l 0 mt_sample4: dc.l 0 mt_sample5: dc.l 0 mt_sample6: dc.l 0 mt6шЌ‹o_sample7: dc.l 0 mt_sample8: dc.l 0 mt_sample9: dc.l 0 mt_sample10: dc.l 0 mt_sample11: dc.l 0 mt_sample12: dc.l 0 mt_sample13: dc.l 0 mt_sample14: dc.l 0 mt_sample15: dc.l 0 mt_maxpart: dc.w $0000 mt_kn1: dc.w $0000 mt_dmacon: dc.w $0000 mt_modulate: dc.w $0c39,$0039,$00bf,$ec01,$6630,$0839,$0007,$00bf dc.w $e001,$6626,$2c79,$0000,$0004,$43fa,$0020,$4eae dc.w $fe68,$2c40,$4280,$41fa,$0026,$223c,$0000,$0032 dc.w $4eae,$ffa6,$60ee,$0000,$0000,$4e75,$696e,$7475 dc.w $6974,$696f,$6e2e,7ш­Щ3„ћ$6c69,$6272,$6172,$7900,$0104 dc.w $1753,$6f75,$6e64,$5472,$6163,$6b65,$7220,$5632 dc.w $0063,$00f0,$20a9,$2054,$6865,$204a,$756e,$676c dc.w $6520,$436f,$6d6d,$616e,$6400,$0000 mt_arpeggio: dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c dc.w $023a,$021a,$01fc,$01e0,$01c5,$01ac,$0194,$017d dc.w $0168,$0153,$0140,$012e,$011d,$010d,$00fe,$00f0 dc.w $00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097 dc.w $008f,$0087,$007f,$0078,$0071,$0000,$0000,$0000 mt_sampleinfo:blk.b 10840 s1:blk.b $18ЩФUР9c8 s2:blk.b $2488 s3:blk.b $2328 s4:blk.b $f3c s5:blk.b $26ac s6:blk.b $26ac s7:blk.b $0 s8:blk.b $0 s9:blk.b $0 s10:blk.b $0 s11:blk.b $0 s12:blk.b $8fc s13:blk.b $7d0 s14:blk.b $fa0 s15:blk.b $44c kn1: dc.w $0000 mt_dmacon: dc.w $0000 mt_modulate: dc.w $0c39,$0039,$00bf,$ec01,$6630,$0839,$0007,$00bf dc.w $e001,$6626,$2c79,$0000,$0004,$43fa,$0020,$4eae dc.w $fe68,$2c40,$4280,$41fa,$0026,$223c,$0000,$0032 dc.w $4eae,$ffa6,$60ee,$0000,$0000,$4e75,$696e,$7475 dc.w $6974,$696f,$6e2e,ш™Ћt@  ў ќ@№ў ЊЊжќжОООўРОжжЊќЊўўќ@№ўќўООжўРжОќОЌ@№ЊЊ Ќ ЊжРЊООЌ$шАP@Kub.w d4,d5 move.w d5,$64(a5) move.w d0,d4 lsr.w #3,d4 move.w d2,d5 asl.w #5,d2 ; asl.w #3,d5 ; add.w d5,d2 add.w d2,d4 add.w $40f0,d4 move.w d4,$4a(a5) move.w d4,$56(a5) move.w d0,d4 andi.w #$f,d4 asl.w #8,d4 asl.w #4,d4 ori.w #$bca,d4 move.w d4,$40(a5) addq.w #1,d1 asl.w #6,d1 addq.w #2,d1 move.w d1,$58(a5);GO !!! rts ;------------------------------------------------------------------- ;------------------------------------------------------------------- ;--------%шБ$gд----------------------------------------------------------- ;------------------------------------------------------------------- sin: blk.w $168; tableau des sinus cos: blk.w $168; tableau des cosinus xx: ; abscisse dc.w -140,-140,-140,-85,-85,-85,-140,-85 dc.w -10,-65,-65,-65,-65,-10 dc.w 65,10,10,10,10,65,10,50 dc.w 85,140,140,140,140,85,85,85,85,140 blk.w 44,0 yy: ; hauteur dc.w -10,70,70,70,70,-10,30,30 dc.w -10,-10,-10,70,70,70 dc.w -10,-10,-10,70,70,70,30,30 dc.w -10,-10,-&шВ"ыт10,30,30,30,30,70,70,70 dc.w -35,-15,-15,-15,-25,-25 dc.w -35,-15,-15,-15,-15,-25,-25,-25,-25,-35 dc.w -35,-35,-35,-15,-15,-15,-25,-25 dc.w -35,-15,-15,-20,-20,-30,-30,-35 dc.w -35,-15,-15,-20,-20,-30,-30,-35 dc.w -15,-35,-15,-25 zz: blk.w 32,0 dc.w -72,-72,-72,-52,-72,-62 dc.w -47,-47,-47,-27,-27,-27,-27,-47,-37,-27 dc.w -2,-22,-22,-22,-22,-2,-22,-12 dc.w 3,3,3,23,23,23,23,3 dc.w 28,28,28,48,48,48,48,28 dc.w 73,53,53,63 ; profondeur *********************************** **********'шГОUа************************* ** ** ** SoundTracker V2.0 Playroutine ** ** ** ** Coding : The Exterminator ** ** ** ** Љ The Jungle Command ** ** ** *********************************** *********************************** mt_speed=$1f4 musicon: bsr mt_init move.w #$4000,$dff09a move.l $00006c,mt_oldirq move.l #mt_newirq,$00006c move.w #$c000,$dff09a(шДDz§Щ clr.l d0 rts musicoff: move.w #$000f,$dff096 move.w #$4000,$dff09a move.l mt_oldirq,$00006c move.w #$c000,$dff09a clr.l d0 rts mt_init: move.l #s1,mt_sample1 move.l #s2,mt_sample2 move.l #s3,mt_sample3 move.l #s4,mt_sample4 move.l #s5,mt_sample5 move.l #s6,mt_sample6 move.l #s7,mt_sample7 move.l #s8,mt_sample8 move.l #s9,mt_sample9 move.l #s10,mt_sample10 move.l #s11,mt_sample11 move.l #s12,mt_sample12 move.l #s13,mt_sample13 move.l #s14,mt_sample14 move.l #s)шЕњОŽЉ15,mt_sample15 move.l #mt_sample1,a0 clr.l d0 mt_clear: move.l (a0,d0),a1 clr.l (a1) addq #4,d0 cmp.l #$3c,d0 bne.s mt_clear move.w #0,$dff0a8 move.w #0,$dff0b8 move.w #0,$dff0c8 move.w #0,$dff0d8 eor.w #$c000,mt_voice0+12 clr.l mt_partnrplay clr.l mt_partnote clr.l mt_partpoint move.b mt_sampleinfo+$1d6,mt_maxpart+1 move.b mt_sampleinfo+$1d7,mt_kn1+1 rts mt_newirq: movem.l d0-d7/a0-a6,-(a7) bsr mt_music movem.l (a7)+,d0-d7/a0-a6 dc.w $4ef9 mt_oldirq: dc.l *шЖ—ЋіЧ 0 mt_music: addq.l #1,mt_counter cmp.l #6,mt_counter bne.s mt_notsix clr.l mt_counter bra.L mt_rout2 mt_notsix: lea mt_aud1temp,a6 tst.b 3(a6) beq.s mt_arp1 move.l #$dff0a0,a5 bsr.s mt_arprout mt_arp1: lea mt_aud2temp,a6 tst.b 3(a6) beq.s mt_arp2 move.l #$dff0b0,a5 bsr.s mt_arprout mt_arp2: lea mt_aud3temp,a6 tst.b 3(a6) beq.s mt_arp3 move.l #$dff0c0,a5 bsr.s mt_arprout mt_arp3: lea mt_aud4temp,a6 tst.b 3(a6) beq.s mt_arp4 move.l #$dff0d0,a5 bsr.s mt+шЗф9>p_arprout mt_arp4: bra.L mt_stop mt_arprout: tst.w 24(a6) beq.s mt_noslide clr.w d0 move.b 25(a6),d0 lsr.b #4,d0 tst.b d0 beq.s mt_voldwn2 bsr.L mt_pushvol1 bra.s mt_noslide mt_voldwn2: clr.w d0 move.b 25(a6),d0 bsr.L mt_pushvol2 mt_noslide: move.b 2(a6),d0 and.b #$0f,d0 tst.b d0 beq.L mt_arpegrt cmp.b #3,d0 beq.L mt_arpegrt cmp.b #4,d0 beq.L mt_arpegrt cmp.b #5,d0 beq.L mt_arpegrt cmp.b #1,d0 beq.s mt_portup cmp.b #6,d0 beq.s mt_portup cmp.b #7,d0 beq.s mt_portup cmp.b #8,d0 be,шИ­#ˆšq.s mt_portup cmp.b #2,d0 beq.s mt_portdwn cmp.b #9,d0 beq.s mt_portdwn cmp.b #10,d0 beq.s mt_portdwn cmp.b #11,d0 beq.s mt_portdwn cmp.b #13,d0 beq.s mt_volup rts mt_portup: clr.w d0 move.b 3(a6),d0 sub.w d0,22(a6) cmp.w #$71,22(a6) bpl.s mt_ok1 move.w #$71,22(a6) mt_ok1: move.w 22(a6),6(a5) rts mt_portdwn: clr.w d0 move.b 3(a6),d0 add.w d0,22(a6) cmp.w #$358,22(a6) bmi.s mt_ok2 move.w #$358,22(a6) mt_ok2: move.w 22(a6),6(a5) rts mt_volup: clr.w d0 move.b 3(a6),d0 lsr.b #4,d0 tst-шЙ ЩJ.b d0 beq.s mt_voldwn mt_pushvol1: add.w d0,$12(a6) cmp.w #$40,$12(a6) bmi.s mt_ok3 move.w #$40,$12(a6) mt_ok3: move.w $12(a6),8(a5) rts mt_voldwn: clr.w d0 move.b 3(a6),d0 mt_pushvol2: and.b #$0f,d0 sub.w d0,$12(a6) bpl.s mt_ok4 clr.w $12(a6) mt_ok4: move.w $12(a6),8(a5) rts mt_arpegrt: cmp.l #1,mt_counter beq.s mt_loop2 cmp.l #2,mt_counter beq.s mt_loop3 cmp.l #3,mt_counter beq.s mt_loop4 cmp.l #4,mt_counter beq.s mt_loop2 cmp.l #5,mt_counter beq.s mt_loop3 rts mt_loop.шЄѕЯŠ2: clr.l d0 move.b 3(a6),d0 lsr.b #4,d0 bra.s mt_cont mt_loop3: clr.l d0 move.b 3(a6),d0 and.b #$0f,d0 bra.s mt_cont mt_loop4: move.w 16(a6),d2 bra.s mt_endpart mt_cont: lsl.w #1,d0 clr.l d1 move.w 16(a6),d1 lea mt_arpeggio,a0 mt_loop5: move.w (a0,d0),d2 cmp.w (a0),d1 beq.s mt_endpart addq.l #2,a0 bra.s mt_loop5 mt_endpart: move.w d2,6(a5) rts mt_rout2: lea mt_sampleinfo,a0 move.l a0,a3 add.l #$0c,a3 move.l a0,a2 add.l #$1d8,a2 add.l #$258,a0 move.l mtшЛРu01b2,$0da5,$01b4,$0443,$01b6,$0554 dc.w $01b8,$0665,$01ba,$0776,$01bc,$0887 dc.w $01be,$0aa9 dc.w $ffff,$fffe alpha:dc.w 0 beta:dc.w 0 profondeur:dc.w 300 ; ; FSW Transcrit par FREDDY de ; ; PHOENIX ; ; Programme : G E N I A L ! ! ! ! ; ;charger sincos en sin ani3d: move.l #$ffffffff,$dff044;= р ne pas oublier !!!! sinon ... move.w #$8000,$dff074 move.w #$ffff,$dff072 move.w #$20,$dff060 move.w #$20,$dff066 move.w #7,$dff048 move.w #7,$dff054 шМћHNЏ moveq #0,d0 move.l d0,d1 move.l d0,d2 move.l d0,d3 move.l d0,d4 move.l d0,d5 lea sin,a3; quelques constantes ... lea cos,a4 move.l #$dff000,a5 move.b #1,$40f2 move.b #0,$4002 ; c'est une memoire car en fait c'est ($40f4) move profondeur,$40f6 move alpha,d6 move beta,d7 ; On commence vraiment ici ! prog: jsr affiche move.l #$ffffffff,$dff044;= р ne pas oublier !!!! sinon ... cmpi.w #$8000,$40f0; alternance des 2 pages graphiques bne.s l28506; une en $41000, uшН…X}Юne en $43000 avec effacage move.w #$a000,$40f0; de celle que l'on ne voie pas l284ca: cmpi.b #$fa,$6(a5);ici:boucle d'attente ; bne.s l284ca move.w #$8000,$6d036;pour le copper:prochaine page en $41000 l284da: btst #$e,$2(a5); blitter libre ? bne.s l284da move.l #78*32+$7a006,$54(a5);efface toute la page en $43000 clr.l $60(a5); avec le blitter clr.l $64(a5); avec le blitter clr.w $42(a5) move #12,$66(a5) move.w #$100,$40(a5) move.w #$40*100+10,$58(a5);GO !!! move.w #$a00шО3с8\0,$40f0 bra.s l28540 l28506: move.w #$8000,$40f0 l2850c: cmpi.b #$fa,$6(a5); attente=>pour gagner ; bne.s l2850c; 4 ou 5 cycles !!! move.w #$a000,$6d036;pour le copper:prochaine page en $43000 l2851c: btst #$e,$2(a5); blitter libre ? bne.s l2851c move.l #78*32+$78006,$54(a5);efface toute la page en $41000 clr.l $60(a5); avec le blitter clr.l $64(a5); avec le blitter clr.w $42(a5) move #12,$66(a5) move.w #$100,$40(a5) move.w #$40*100+10,$58(a5);GO !!! l28540: l2855e: move.шП’ъ;Эw $0(a4,d6.w),d4; Et pour une rotation aleatoire ... asr.w #6,d4 asl.w #1,d4 addq.w #4,d4 add.w d4,d7; d7 est l'angle beta move.w $0(a3,d7.w),d4 asr.w #5,d4 asl.w #1,d4 addq.w #8,d4 add.w d4,d6; d6 est l'angle alpha : axe (ox) cmp.w #$2d0,d7; si l'angle depasse les bournes blt.s betaok move.w #0,d7 betaok: cmp.w #$2d0,d6 blt.s alphok move.w #0,d6 alphok: move d6,alpha move d7,beta rts ;------------------------------------------------------------------- ;---------шР4@jП---------------------------------------------------------- ;------------------------------------------------------------------- ;------------------------------------------------------------------- ; AFFICHAGE ;d6: angle alpha d'axe (ox) ;d7: 2щme angle de rotation ;($40f6): profondeur ;($4000): nombre de trait a afficher ;a0 a1 a2 : xx yy zz ;a3 a4 : sin et cos ;($40f0): bas poids adresse de l'ecran ;------------------------------------------- affiche: move.b $4000,d0 move.b d0,$шСscуѓ40f4 lea xx,a0 lea yy,a1 lea zz,a2 bra.s l28428 oucle: move.w (a2)+,d4; a2:zz cmp.w (a2),d4 bne.s l28424 move.w (a1)+,d4; a1:yy cmp.w (a1),d4 bne.s l28426 move.w $40d0,d2; ancienne abscisse 2D move.w $40de,d0; ancienne ordonnee 2D move.w (a0)+,d4; a0:xx cmp.w (a0),d4 bne.s l2844c; si zz et yy inchangщe => moins de calcule ! move.w $40a0,d1;on ne calcule pas 2 fois le meme point ! move.w a6,d0 bra.s l28484 l28424: tst.w (a1)+; a1:yy l28426: tst.w (a0)+; a0:xx l28428 шТ FВ: move.w (a1),d0 move.w d0,d4 muls $0(a4,d7.w),d0; a4:cos move.w (a2),d1 move.w d1,d2 muls $0(a3,d7.w),d1; a3:sin sub.w d1,d0 move.w d0,$40de muls $0(a3,d7.w),d4; a3:sin muls $0(a4,d7.w),d2; a4:cos add.w d4,d2 move.w d2,$40d0 l2844c: move.w (a0),d1 move.w d1,d3 muls $0(a4,d6.w),d1; a4:cos move.w d2,d4 muls $0(a3,d6.w),d4; a3:sin asr.l #7,d4 add.w d4,d1 muls $0(a4,d6.w),d2; a4:cos asr.l #7,d2 move.w d3,d4 muls $0(a3,d6.w),d4; a3:sin sub.w d4,d2 ext.l d2 asr.w #!шУцЉџ8,d2 add.w $40f6,d2 ext.l d1 ext.l d0 divs d2,d1 divs d2,d0 addi.w #$80,d1 addi.w #$80,d0 l28484: cmpi.b #0,$40f2;($40f2)=0 => trace sinon calcule le 2щme pt beq.s oktrace move.w d1,$40a0;il faut donc calculer le prochain point move.w d0,a6 move.b #0,$40f2;le prochain coup on trace c'est sur ! bra.l oucle oktrace:move.w d0,d3 move.w $40a0,d0 move.w a6,d2 move.w d1,$40a0 move.w d3,a6 bsr.l race move.b #1,$40f2 subq.b #1,$40f4;a-t-on trace le nombre de point demandes"шФП`7– ? bne.l oucle; NON rts ;-------------------------------------------- ; Affichage terminщ ! ;-------------------------------------------- ;trace une ligne de d0,d2 a d1,d3 avec le blitter race: btst #$e,$2(a5); blitter libre ? bne.s race move.w #$20,$66(a5) move.w #7,$54(a5) cmp.w d1,d0 blt.s l285dc exg d0,d1 exg d2,d3 l285dc: sub.w d0,d1 cmp.w d2,d3 blt.s l285e8 move.w d3,d4 sub.w d2,d3 bra.s l285ee l285e8: move.w d2,d4 sub.w d3,d4 exg d4,d3 l285ee: cmp.w d2,d4 b#шЏа:Рlt.s l28612 cmp.w d3,d1 beq.s l2860a bgt.s l28602 exg d1,d3 move.w #$41,$42(a5) bra.s l28630 l28602: move.w #$51,$42(a5) bra.s l28630 l2860a: move.w #$11,$42(a5) bra.s l28630 l28612: cmp.w d3,d1 beq.s l2862a bgt.s l28622 exg d1,d3 move.w #$45,$42(a5) bra.s l28630 l28622: move.w #$59,$42(a5) bra.s l28630 l2862a: move.w #$19,$42(a5) l28630: move.w d3,d4 asl.w #1,d4 move.w d4,d5 sub.w d1,d4 move.w d4,$52(a5) asl.w #1,d5 move.w d5,$62(a5) move.w d1,d4 asl.w #2,d4 sшЦшhАA1)+ move #$1c0,(a1)+ clr (a1)+ move #$1c0,(a1)+ clr (a1)+ move #$1c0,(a1)+ clr (a1)+ move #$1c0,(a1)+ clr (a1)+ move #$1c0,(a1)+ clr (a1)+ move #$1c0,(a1)+ clr (a1)+ move #$1c0,(a1)+ clr (a1)+ move #$1c0,(a1)+ clr(a1)+ bra finli noblli: sub d3,d2 cmpi #$ffb0,d3 bne rienli cmpi #$ffff,d1 beq rienli move.l #$ffdffffe,(a1)+ swap d2 clr d2 asl.l #8,d2 addi.l #$1fffe,d2 move.l d2,(a1)+ move #$ffff,d1 bra suili rienli: swap d2 clr d2 asl.l #8,d2 addi.l #$1шЧ$(нfffe,d2 move.l d2,(a1)+ move.l #$1c0fffe,(a1)+ suili: move #$182,(a1)+ clr (a1)+ move #$184,(a1)+ clr (a1)+ move #$186,(a1)+ clr (a1)+ move #$188,(a1)+ clr (a1)+ move #$18a,(a1)+ clr (a1)+ move #$18c,(a1)+ clr (a1)+ move #$18e,(a1)+ clr (a1)+ move #$190,(a1)+ clr (a1)+ move #$192,(a1)+ clr (a1)+ move #$194,(a1)+ clr (a1)+ move #$196,(a1)+ clr (a1)+ move #$198,(a1)+ clr (a1)+ move #$19a,(a1)+ clr (a1)+ move #$19c,(a1)+ clr (a1)+ move #$19e,(a1)+ clr (a1)шШцЖ›f+ finli: dbf d0,li1 move.l #$fffffffe,(a1)+ rts donlist1: dc.w 128,120,112,104,97,92,89,87,84,82,80,78,76 dc.w 74,72,70,68,66,65,63,61,60,58,57,55,54,53 dc.w 51,50,49,48,46,45,44,43,42,41,40,39,38,37 dc.w 36,35,34,$ffff,33,32,31,30,$ffff,29,28,27 dc.w $ffff,26,25,$ffff,24,23,$ffff,22,$ffff dc.w 21,20,18,16,13,10,7,4,0 dc.w -4,-7,-10,-13,-16,-18,-20,-21 dc.w $ffff,-22,$ffff,-23,-24,$ffff,-25,-26,$ffff dc.w -27,-28,-29,$ffff,-30,-31,-32,-33,$ffff,-34,-35,-36 dc.w -37,-3шЩv ;>8,-39,-40,-41,-42,-43,-44,-45,-46,-48,-49,-50,-51 dc.w -53,-54,-55,-57,-58,-60,-61,-63,-65,-66,-68,-70,-72,-74 dc.w -76,-78,-80,-82,-84,-87,-89,-92,-97,-104,-112,-120,-128 trace: lea tabbandes,a0 move.l #$70000,a1 move #128-1,d0 tra0: move (a0)+,d1 ; d1 = pas asr #1,d1 andi #$fff,d1 move #$8000,d2 ; d2 = abscisse du point move #7,d7 tra1: sub d1,d2 dbf d7,tra1 move d1,d7 asr #1,d7 add d7,d2 move #1,d3 ; d3 = couleur et compteur tra2: move d2,d4 add d1,d4 ; d4 = proшЪГyФzchain changement de couleur tra3: move d2,d5 asr #8,d5 move d5,d6 and #7,d6 asr #3,d5 clr d7 eor #7,d6 bset d6,d7 andi.l #$1f,d5 move.l a1,a2 adda.l d5,a2 btst #0,d3 beq tran0 or.b d7,$0(a2) tran0: btst #1,d3 beq tran1 or.b d7,$2000(a2) tran1: btst #2,d3 beq tran2 or.b d7,$4000(a2) tran2: btst #3,d3 beq tran3 or.b d7,$6000(a2) tran3: addi #$100,d2 move d2,d5 move d4,d6 andi #$ff00,d5 andi #$ff00,d6 cmp d6,d5 bne tra3 addi #1,d3 move d4,d2 cmpi #$10,d3 bneшЫЈˆзЉ tra2 adda.l #$20,a1 dbf d0,tra0 move.l #$71000,a0 move.l #$70fe0,a1 move #127,d0 tra11: move #15,d1 tra10: move $6000(a1),$6000(a0) move $4000(a1),$4000(a0) move $2000(a1),$2000(a0) move (a1)+,(a0)+ dbf d1,tra10 suba.l #$40,a1 dbf d0,tra11 rts tabbandes: ; largeur des bandes (valeur a virgule !!) dc.w $fff,$fff,$fff,$ffe,$ffd,$ffb,$ffa,$ff8 dc.w $ff6,$ff3,$ff0,$fed,$fea,$fe5,$fe2,$fdd dc.w $fd9,$fd4,$fce,$fc9,$fc3,$fbc,$fb6,$fae dc.w $fa7,$f9f,$f97,$f8e,$f85,$f7b,$fшЬИчeУ70,$f64 dc.w $f58,$f4c,$f3d,$f2e,$f1c,$f08,$ef1,$ed3 dc.w $eb3,$e96,$e79,$e5c,$e40,$e22,$e06,$de9 dc.w $dcd,$db0,$d93,$d76,$d59,$d3d,$d20,$d03 dc.w $ce6,$cc9,$cad,$c90,$c73,$c56,$c39,$c1d dc.w $c00,$be3,$bc6,$ba9,$b8d,$b70,$b53,$b36 dc.w $b19,$afd,$ae0,$ac3,$aa6,$a89,$a6d,$a50 dc.w $a33,$a16,$9f9,$9dd,$9c0,$9a3,$986,$969 dc.w $94c,$930,$913,$8f6,$8d9,$8bc,$8a0,$883 dc.w $866,$849,$82c,$810,$7f3,$7d6,$7b9,$79c dc.w $780,$763,$746,$729,$71a,$711,$709,$703 dc.w $6fc,$6f8,$6fшЭhРŸЅ4,$6f0,$6ec,$6ea,$6e7,$6e4 dc.w $6e2,$6e1,$6df,$6de,$6dd,$6dc,$6db,$6ba codagelettre: ; transforme 4 mots (= 1 ligne de 16 couleurs) lea donneesbrutes,a0 ; en 16 octets (1 octets = couleur d' move.l #$69000,a1 ; un point ) (on aurait pu : 2 points move #60*16-1,d0 ; = 1 octets car 0=< couleur < 16 ) cl: move.w (a0)+,d2 move.w (a0)+,d3 move.w (a0)+,d4 move.w (a0)+,d5 move.w #15,d6 cl0: clr d7 btst d6,d2 beq cl1 addi #1,d7 cl1: btst d6,d3 beq cl2 addi #2,d7 cl2: btst d6,шЮOŽЄd4 beq cl3 addi #4,d7 cl3: btst d6,d5 beq cl4 addi #8,d7 cl4: asl #1,d7 move.b d7,(a1)+ cmpi.b #1,d6 beq jm dbf d6,cl0 jm: dbf d0,cl rts ; lettre: origine : $7a000 a $7dc00 ; blk.b 60*16*16 ;col pt1,col pt2,col pt3 ... donneesbrutes: ; pour 60 lettres blk.w 16*60*4,$f000 ; 1er mot:plan1 ,2eme mot:plan2 ... clr: lea $70000,a0 move #$3000-1,d0 clr0: clr.l (a0)+ dbf d0,clr0 rts tstbsouris: btst #6,$bfe001 bne stbs jmp fincop stbs: rts execbase=4 openlib=-408 coшЯшјBp: move.l execbase,a6 lea grname,a1 jsr openlib(a6) move.l d0,a5 adda.l #50,a5 move.l a5,adadcop move.l (a5),adcop move.l #$6d000,(a5) rts fincop: move.l adadcop,a5 move.l adcop,(a5) move.l (a7)+,d7 move #$ffff,$dff096 move #%0000010000001111,$dff096 jsr musicoff rts grname: dc.b 'graphics.library' even adadcop:dc.l 0 adcop: dc.l 0 moncop: dc.w $008e,$3081,$0090,$30c1,$0092,$0048,$0094,$00c0 dc.w $00e0,$0007,$00e2,$0000,$00e4,$0007,$00e6,$2000 dc.w $00e8,$0007,$00eaшКa™жШ,$4000,$00ec,$0007,$00ee,$6000 dc.w $00f0,$0007,$00f2,$a000 dc.w $0100,%0101001000000000 dc.w $0102,$0000,$0104,$0000,$0108,$0000,$010a,$0000 dc.w $0180,$0000,$0182,$0111,$0184,$0222,$0186,$0333 dc.w $0188,$0444,$018a,$0555,$018c,$0666,$018e,$0777 dc.w $0190,$0888,$0192,$0999,$0194,$0aaa,$0196,$0bbb dc.w $0198,$0ccc,$019a,$0ddd,$019c,$0eee,$019e,$0fff dc.w $01a0,$0f00,$01a2,$0311,$01a4,$0520,$01a6,$0830 dc.w $01a8,$0a40,$01aa,$0d60,$01ac,$0f90,$01ae,$0f80 dc.w $01b0,$0e93,$шбШ †5f00,d0 cmpi.l #$2000,d0 bne boucle jsr defile2 jsr ani3d cmpi #0,abai beq noab jsr abais noab: cmpi #0,remo beq nore jsr remon nore: jsr tstbsouris jmp boucle abais: move abai,d0 asl #5,d0 andi.l #$ffff,d0 move.l #32*224+$78000,a0 move.l #32*224+$7a000,a1 suba.l d0,a0 suba.l d0,a1 clr $1a(a1) clr $1a(a0) clr (a1)+ clr (a0)+ clr $1a(a1) clr $1a(a0) clr (a1)+ clr (a0)+ clr $1a(a1) clr $1a(a0) clr (a1)+ clr (a0)+ subi #1,abai clr remo rts remon: mшвFxymove remo,d0 subi #1,d0 mulu #24,d0 lea dlogo,a6 andi.l #$fffe,d0 adda.l d0,a6 move remo,d0 subi #1,d0 asl #5,d0 andi.l #$fffe,d0 addi.l #32*30,d0 move.l #$78000,a0 move.l #$7a000,a1 adda.l d0,a0 adda.l d0,a1 move (a6)+,d0 ori (a6)+,d0 ori (a6)+,d0 ori (a6)+,d0 move d0,$1a(a0) move d0,$1a(a1) move d0,(a0)+ move d0,(a1)+ move (a6)+,d0 ori (a6)+,d0 ori (a6)+,d0 ori (a6)+,d0 move d0,$1a(a0) move d0,$1a(a1) move d0,(a0)+ move d0,(a1)+ move (a6)+,d0 ori (a6)шг/€ѕ+,d0 ori (a6)+,d0 ori (a6)+,d0 move d0,$1a(a0) move d0,$1a(a1) move d0,(a0)+ move d0,(a1)+ subi #1,remo clr abai rts abai:dc.w 0 remo:dc.w 0 logo: lea dlogo,a6 move.l #32*30+$70000,a0 move.l #32*30+$72000,a1 move.l #32*30+$74000,a2 move.l #32*30+$76000,a3 move.l #32*30+$78000,a4 move.l #32*30+$7a000,a5 move #194,d7 bbb: move #2,d6 bbs: move (a6)+,d0 move (a6)+,d1 move (a6)+,d2 move (a6)+,d3 move d0,(a0)+ move d1,(a1)+ move d2,(a2)+ move d3,(a3)+ ori d0,d1 oшд…kчоri d1,d2 ori d2,d3 move d3,(a4)+ move d3,(a5)+ dbf d6,bbs adda.l #32-6,a0 adda.l #32-6,a1 adda.l #32-6,a2 adda.l #32-6,a3 adda.l #32-6,a4 adda.l #32-6,a5 dbf d7,bbb lea dlogo,a6 move.l #32*30+$7001a,a0 move.l #32*30+$7201a,a1 move.l #32*30+$7401a,a2 move.l #32*30+$7601a,a3 move.l #32*30+$7801a,a4 move.l #32*30+$7a01a,a5 move #194,d7 wbb: move #2,d6 wbs: move (a6)+,d0 move (a6)+,d1 move (a6)+,d2 move (a6)+,d3 move d0,(a0)+ move d1,(a1)+ move d2,(a2)+ move d3,шеЊФћ>(a3)+ ori d0,d1 ori d1,d2 ori d2,d3 move d3,(a4)+ move d3,(a5)+ dbf d6,wbs adda.l #32-6,a0 adda.l #32-6,a1 adda.l #32-6,a2 adda.l #32-6,a3 adda.l #32-6,a4 adda.l #32-6,a5 dbf d7,wbb rts dlogo:blk.w 4*3*195,0 texte: dc.b " a . " dc.b " ........ " dc.b "SALUT vVINCENTb VOICI DONC MA oDEMO 2b $%%%%<> " dc.b "COMMENT LA TROUVES-TU ???" dc.b " JE L",$27,"AI FINIE LE 05/02/1989 " dc.b ". LA LISTE DU iCOPPERb FAIT ... 10 KO !!! " dc.b "EN CONNAIшжn+4S-TU D",$27,"AUSSI LONGUE ?? " dc.b ". FIN DE oTiRvrAjNbSjMoIiSvSbIvOjNb ." dc.b " oFREDDYb ..... " dc.b $ff even lettre: blk.b 15*18*2,0 even lign2: dc.l 0 ptext: dc.l 0 tabcol1: dc.w $0,$355,$6,$7,$108,$109,$10a,$20b dc.w $222,$444,$555,$777,$999,$aaa,$ccc,$eee tabcol2: dc.w $0,$350,$660,$770,$881,$991,$aa1,$bb2 dc.w $222,$444,$555,$777,$999,$aaa,$ccc,$eee tabcol3: dc.w $0,$50,$60,$70,$181,$191,$1a1,$2b2 dc.w $222,$444,$555,$777,$999,$aaa,$ccc,$eee tabcol4: dc.w $0,$305,$606 шзИ~ћ,$707,$818,$919,$a1a,$b2b dc.w $222,$444,$555,$777,$999,$aaa,$ccc,$eee tabcol5: dc.w $0,$533,$600,$700,$811,$911,$a11,$b22 dc.w $222,$444,$555,$777,$999,$aaa,$ccc,$eee addcol:dc.l tabcol1 chalet: clr.l lign2 lea texte,a0 move.l ptext,d0 adda.l d0,a0 move.b (a0),d0 andi #$ff,d0 addi.l #1,ptext cmpi.b #$ff,d0 bne ncha clr.l ptext jmp chalet ncha: cmpi.b #"a",d0 bne nab move #194,abai jmp chalet nab: cmpi.b #"r",d0 bne nre move #194,remo jmp chalet nre: cmpi.b #"b", шиf_Šd0 bne nnnb move.l #tabcol1,addcol jmp chalet nnnb: cmpi.b #"j",d0 bne nnnj move.l #tabcol2,addcol jmp chalet nnnj: cmpi.b #"v",d0 bne nnnv move.l #tabcol3,addcol jmp chalet nnnv: cmpi.b #"i",d0 bne nnni move.l #tabcol4,addcol jmp chalet nnni: cmpi.b #"o",d0 bne nnno move.l #tabcol5,addcol jmp chalet nnno: subi.b #$20,d0 andi #$ff,d0 mulu #15*16,d0 lea $69000,a0 lea lettre,a1 lea lettre,a2 adda.l #15,a2 adda.l d0,a0 move #15,d1 chaa: move #14,d0 cha: move.b (a шйй<Тk0),(a1)+ move.b (a0)+,(a2)+ dbf d0,cha adda.l #15,a1 adda.l #15,a2 dbf d1,chaa rts defile2: btst #14,$dff002 bne defile2 move.l #$6d112,$dff050 move.l #$6d0ce,$dff054 move #2,$dff064 move #2,$dff066 move.l #$ffffffff,$dff044 move #0,$dff042 move #$9f0,$dff040 move #$40*1023+1,$dff058 g:btst #14,$dff002 bne g move #$40*1023+1,$dff058 h:btst #14,$dff002 bne h move #$40*385+1,$dff058 lea $6f640,a0 tst (a0)+ move #$fffe,(a0)+ tst (a0)+ move #$fffe,(a0)+ lea lettre шкнША,a1 move.l addcol,a2 move.l lign2,d0 adda.l d0,a1 move #14,d0 clr.l d1 afli2: tst (a0)+ move.b (a1)+,d1 bclr #0,d1 move $0(a2,d1),(a0)+ dbf d0,afli2 tst (a0)+ move #$fffe,(a0)+ tst (a0)+ move #$fffe,(a0)+ lea lettre,a1 move.l addcol,a2 move.l lign2,d0 adda.l d0,a1 move #14,d0 clr.l d1 aafli2: tst (a0)+ move.b (a1)+,d1 bclr #0,d1 move $0(a2,d1),(a0)+ dbf d0,aafli2 addi.l #15,lign2 cmpi.l #15*17*2,lign2 bne nn2 jsr chalet nn2: rts listescop: ; 1ere liste $ шХч%єn6d000 2eme $6a000 lea moncop,a0 move.l #$6d000,a1 move #51*2-1,d0 li0: move (a0)+,(a1)+ dbf d0,li0 lea donlist1,a0 clr.l d1 move #143-1,d0 li1: move #$30+128,d2 move (a0)+,d3 cmpi #$ffff,d3 bne noblli move #$1c0,(a1)+ move #$fffe,(a1)+ move #$1c0,(a1)+ move #$fffe,(a1)+ move #$1c0,(a1)+ clr (a1)+ move #$1c0,(a1)+ clr (a1)+ move #$1c0,(a1)+ clr (a1)+ move #$1c0,(a1)+ clr (a1)+ move #$1c0,(a1)+ clr (a1)+ move #$1c0,(a1)+ clr (a1)+ move #$1c0,(a1)+ clr (aшмдШп_р`№~*Ь№ў@?ќ@@@ќ@ј?ј@ј№№ррррРРР РРР €€@ 0€ @`€~ОС€>Сў € РР ?рр <р#8р €`$=рр#РРР РРР ?рр ?№№@јј€xx‡„@€@p8ˆDљxxј‡„€ј€@?№@?№Р8?р@р``№РР§ј|ј€ƒјј„„ўј|јƒј?ј@јјј`xxx„xx„јx„ецјјџџјј€€€џ№€џр€€џр€€€@€@€€€@€@€шн‘="€€€@€@€€€@€@€€€€@€@€€€@€@€€€€@€€@€€€@Р€€@€@€€@€@€@€€@€€@€€€@€€@€€@€@€@€€@€@€@Р`€рРРР РР р`€рРРР РР р€@€@€@€€@€@€@€€@€€@ шоќp^Й€€€@€<€€ј|€@„B€€јќ€€„‚љјљј…‚ћ№†yр‚ћр†ћРћР† ћРyРћР† €yРћР† {РљР† љр†‚€y№†јјјќ…ј|„‚€x<„Bќ>дфјќ€ј€„€ј€„xј€„€ј„€ј„јј„€xј„xxј„ЖyЦљј…ўљќyќ…€ќyќ…љјќ…ќјќ…јќ…§ўЈШ№ ј>€@№<€@ˆB„єќ„€Œ‚wќїќ‡„їќŒ„їќŒѓмїмŒ"€sœїœŒbwЈ*Ш2№<ј>„ є<„ Œ"†і<† Ž"r<ї… "€„їМŒЂ„ їмŒbѓќ їмŒ"€sќїќŒwќwќѓќŒwќѓќŒёќ€qќŽ€€pќ‰№|№|ˆ‚№<ˆB№ˆ"ј#;р;№J{№BJѓј‚Šѓќqќ‚ŠѓќŠsМ@№<‹Т€ №€ №<€ ˆ"€№<€ ˆ"p№<€ ˆ" €№<ˆ"€ №<ˆ"шфAЎŽ'№№<ˆ" p<№ˆ"pќ>€ ј<€ „"||@@BB<||<@@BB@||BB >ј!„ј€>x!„ ?јј №№№№№№№ррррР рЈ*Ш2№<ј>€ №<€ ˆ"€№<€ ˆ"p<№€ ˆ" €№<ˆ"№№<ˆ"ƒ s<ѓ"їд4ф8ј>ќ>||@@BB@@<<@@BBxx €!„№№ррРР РРР рр№№№ >x!„<<<|@BB@@||BB€ ј„>дjфrј|ќ~€@ј|€@„Bј|€@„BhП&x|ј<€@„B€ј|„Bј|„Bx|@ј<„Bќќ||ƒ‚ќџќќ€?ј?ј@№№` Р0РР Р Р руќџрџўџќ€€џќќ€€џќ€џќ€ќ€@€џўирјр№р Р?Р0 ?–LО@~€€џќ€ўџќ€€€ќ€€ќ€€ Рџў@@€Р€€€@€€@€€@€@€€@€@€@РЈ*Ш2№<ј>€ №<€ ˆ"€№<€ ˆ"p№<€ ˆ" €№<ˆ"€ №<ˆ"шаЮШЉ : 256*256 ; 32 couleurs * * $69000 data lettre a $6d000 run: move.b #38,$4000; ($4000)=nb de trait a afficher move.l $4,a6 jsr -132(a6) lea $6a000,a0 move #$3000,d0 clli: clr (a0)+ dbf d0,clli move #$8000,$40f0 jsr listescop jsr clr ; efface l'ecran jsr trace ; trace les bandes jsr cop ; initialise le copper jsr codagelettre ; code les lettres jsr logo jsr musicon move #$7fff,$dff096 ; "service minimum" move #$83cf,$dff096 boucle: move.l $dff004,d0 andi.l #$1fшчлдяvDMACONR = $002 ; DMA - Kontrollregister (lesen) ; diese Register kіnne nur vom Copper erreicht werden, wenn COPCON=1 BLTCON0 = $040 ; BPL - Kontrollregister 0 BLTCON1 = $042 ; Register 2 BLTAFWM = $044 ; Maske fќr erstes Datenwort von A BLTALWM = $046 ; " " leztes " " A BLTCPTH = $048 ; Adresse Quelldaten C (Bit 16-18) BLTCPTL = $04a ; (Bit 0 -15) bltaptl = $052 bltdpth = $054 bltdptl = $056 bltsizeшшъ_Ц = $058 bltcmod = $060 bltbmod = $062 bltamod = $064 bltdmod = $066 bltbdat = $072 bltadat = $074 cop1lc = $080 copjmp1 = $088 diwstrt = $08E diwstop = $090 ddfstrt = $092 ddfstop = $094 dmacon = $096 intena = $09A bplcon0 = $100 bplcon1 = $102 bplcon2 = $104 bpl1mod = $108 bpl2mod = $10A COLOR = $180 Forbid =-132 Permit =-138 AllocMem =-шщШ,˜198 FreeMem =-210 OldOpenlib =-408 Closelib =-414 Initrastport =-198 gmove =-240 Initbitmap =-390 OwnBlitter =-456 Disownblitter=-462 Tiefe =2 Hoehe =256 Breite =320 Con0 =%0010001000000000 Con1 =0 Con2 =0 DWstart =$3081 DWstop =$30c1 DFstart =$0038 DFstop =$00d0 Mod1 =0 Mod2 =0 Main: move.l 4,a6 JSR forbid(a6) lea $dff000,a5 move.w #$01f0,dmacon(a5) move.w #$4000,intena(aш$hг5) bsr openlibs move.l gfxbase,a6 JSR ownblitter(a6) bsr initscreen bsr initcopperlist move.l copperlistmemory,a0 move.l a0,cop1lc(a5) clr.w copjmp1(a5) bsr initregs move.l $6c,oldserver move.l #server,$6c move.w #$c000,intena(a5) move.w #$83c0,dmacon(a5) ;--------------------------------------------------------------- move.l bplmemory,a0 move.l #255,d0 loop1: move.l #$ffffffff,(a0) move.l #$ffffffff,4(a0) add.l #40,a0 dbra d0,loop1 move.l bplmemory,a0 add.l #8шыЧўPџџŒџŒџ‹џŠџ‰џˆџ‡џ‡џ†џ…џ…џ„џ„џƒџƒџ‚џ‚џ‚џџџџџџџџ€џџџџџџџџ‚џ‚џ‚џƒџƒџ„џ„џ…џ…џ†џ‡џ‡џˆџ‰џŠџ‹џŒџŒџџŽџџ‘џ’џ“џ”џ•џ–џ˜џ™џšџœџџžџ џЁџЃџЄџІџЈџЉџЋџ­џЎџАџВџГџЕџЗџЙџЛџНџПџРџТџФџЦџШџЪџЬџЮџбџгџеџзџйџлџнџпџтџфџцџшџъџьџяџёџѓџѕџјџњџќџў€~~~}}||{{zyyxwvuttsrqonmlkjhgfdcb`_]\ZXWUSRPNMKIGECA?><:8642/-+)'%#! џўџќџњџјџѕџѓџёџяџьџъџшџцџфџтџпџнџлџйџзџеџгџбџЮџЬџЪџШџЦџФџТџРџПџНџЛџЙџЗџЕџГа йвџВџАџЎџ­џЋџЉџЈџІџЄџЃџЁџ џžџџœџšџ™џ˜џ–џ•џ”џ“џ’џ‘џџŽџџŒџŒџ‹џŠџ‰џˆџ‡џ‡џ†џ…џ…џ„џ„џƒџƒџ‚џ‚џ‚џџџџџџџџ€џџџџџџџџ‚џ‚џ‚џƒџƒџ„џ„џ…џ…џ†џ‡џ‡џˆџ‰џŠџ‹џŒџŒџџŽџџ‘џ’џ“џ”џ•џ–џ˜џ™џšџœџџžџ џЁџЃџЄџІџЈџЉџЋџ­џЎџАџВџГџЕџЗџЙџЛџНџПџРџТџФџЦџШџЪџЬџЮџбџгџеџзџйџлџнџпџтџфџцџшџъџьџяџёџѓџѕџјџњџќџў !#%')+-/2468:<>?ACEGIKMNPRSUWXZ\]_`bcdfghjklmnoqrsttuvwxyyz{{||}}~~~џœџšџ™џ˜џ–џ•џ”џ“џ’џ‘џџŽшэX_:w@мp уŽp "ˆ >ј€€@€@Р рр ?№ €<€<< `рр рррррр ррр  Р?р р€рР@€@€џРqр ?РПр€ `?р№ @Р1а ``?№ @ `=№ р`№шяЗBY8 Аp№| ˜8ќ  Шўаœl?ў˜ь?ўМ(м?ў4,и?ќ((((ај?Р?рџ№@€Р€@€€@€€€@€€`€рРРР РР р€€€@€@€€€@€@€  8$ш№€оыP pH€`рРРР €€€@€  8$p0H€`€@ Р €РР ?р ?№?№@@@@8pЧˆp8€p8ˆDр`$р8``$р`8`$р8`8`$€@p8pxˆD:№€8pGˆ?№@рр Р Р@€рР Р РР Р РР РР РРР РРР РР РР Р РР Р Р р Рр ?р р@@?№?№@@@1№N@№№y№№№№ррррррРР ˆ€| ј ј?ј@ј€џќ€Ршлf"э Р @р@1рqрN@рyррРР №рр№ј№xx„<8DP`@€8№DяјњјŸ„џј€@?№@?№АРј№№№№№ppˆ €p>p!ˆљЈ4hbars.sѕџџџ§јш>љ;+т; TETRAGON RASTER BAR ROUTINE Љ 1988 AntiAction beg: lea $70000,a0 ; Temporary ptr move.w #$0180,(a0)+ move.w #$0f0f,(a0)+ move.w #$0100,(a0)+ move.w #$0200,(a0)+ move.w #$2b01,d0 move.w d0,(a0)+ move.w #$ff01,(a0)+ ; $2b01,$ff01 = jump to this row move.w #210,d1 move.l a0,copptr coplp: move.w #$0180,(a0)+ move.w #0,(a0)+ add.w #$0100,d0 move.w d0,(a0)+ move.w #$fffe,(a0)+ dbf d1,coplp move.l #$ffffffe,(a0)+ ; End mark lea graphname,a1 moveq #0,d0 move.l 4.w,a6 jsr -$198(a6)њ-ћUВГЭ$#"! /.-,+*)('&%:9876543ћTJ4W intro-1.sѕџџџ§њш3` PsJMP START ;ORG $23000 ;LOAD $23000 OPENLIBRARY= -408 bltclear= -300 CLOSELIBRARY= -414 EXECBASE= $04 forbid= -132 permit= -138 START: movem.l d0-d7/a0-a6,-(sp) BCLR #0,UP1 BSET #1,UP1 MOVE.L #0,YPOS MOVE.L #0,YPOS2 lea CHAR,a1 lea $60000,a2 move.l #59400,d0 Vloop: move.b (a1)+,(a2)+ dbf d0,Vloop MOVE.L EXECBASE,A6 LEA GFXNAME,A1 JSR OPENLIBRARY(A6) MOVE.L D0,GFXBASE MOVE.L GFXBASE,A0 ADD.L #$32,A0 ќ)§Ь™7654эьыъщшјїіѕєѓђё№яюџў§ќћњљ     §Lk4_tbl.sѕџџџ§ќшaП“Сopenlibrary = -408 closelibrary = -414 execbase = $04 movem.l d0-d7/a0-a6,-(a7) ; dos.library move.l execbase,a6 lea dosname,a1 move.l d0,dosbase LEA TEXT,A1 MOVE.L A1,TEXTPOINTER MOVE.L #$58000+9602,SCROLLSTART ; copperlist lesen move.l #raster,a0 move.l #$50000,a1 move.w #$04,d0 sprloop0: move.l (a0)+,(a1)+ dbf d0,sprloop0 move.l #raster3,a0 move.l #$50100,a1 move.w #$04,d0 sprloop1: move.l (a0)+,(a1)+ dbf d0,sprloop1 move.l #raster2,a0 move.l #$50080,a1 move.ўџ\фlџц4й.fastdirѕџџџ§ўцЕUIAlternating.SЗbars.s.SЈintro-1.se codesesTJpurce2S0tbl.s9.SLkWave.S.SБ4• RASTERBARS1p”yЧн(8=<;:9Б4]Wave.Sѕџџџ§ш9љ;,п; TETRAGON RASTER BAR ROUTINE Љ 1988 AntiAction beg: lea $70000,a0 ; Temporary ptr move.w #$0180,(a0)+ move.w #$0f0f,(a0)+ move.w #$0100,(a0)+ move.w #$0200,(a0)+ move.w #$2b01,d0 move.w d0,(a0)+ move.w #$ff01,(a0)+ ; $2b01,$ff01 = jump to this row move.w #210,d1 move.l a0,copptr coplp: move.w #$0180,(a0)+ move.w #0,(a0)+ add.w #$0100,d0 move.w d0,(a0)+ move.w #$fffe,(a0)+ dbf d1,coplp move.l #$ffffffe,(a0)+ ; End mark lea graphname,a1 moveq #0,d0 move.l 4.w,a6 jsr -$198(a6)ў f1004№pѕџџџ§ш0Ш!‹GѓщщщAљ0ќ€0ќ0ќ0ќ0<+0Р0ќџ2<в#Ш‚0ќ€0ќ@0Р0ќџўQЩџь ќџџўCљŽp,xNЎўh#Р†,@#ю&Š#ќп№€ 9№п№fіa 3ќџпё€9Прfр#љŠп№€Nu y‚0<вBhPHQШџјMљjKљrIљ‚Gљ‚p$y‚>Jf"R-џџ3pAџчA<ыFz5Д`PŠT†QЭџєR€ fЪMљjKљrIљ‚Gљ‚p$y‚>Jg"R-џџ3pAџчA<ыFz5Д`PŠT†QЭџєR€ fЪAљrCљjt0@QЪџјNu ˆ˜ "Dfˆ Њ ЊˆfD""Dfˆ Њ Ь Ь ЊˆfD"Œ+ЗўMKIG4 `replayspH§\JFЪЩШЧЦХФУТСРедгвбаЯЮЭЬЫрпонмлкй     '&%$#"! 2/.-,+*)_4З OktalyzerPR.sFџџџ§ш)?!4#*************************************** * 8 Channels Tracker ***************** *************************************** Lock = -84 UnLock = -90 Examine = -102 ExNext = -108 PlaneLen = 384*640/8 MenuPlaneLen = 4*6*640/8 PattLen = $800 TrackLen = PattLen/8 SongLen = PattLen*32 org $7a000 load $7a000 p: bsr.L OpenLibs bsr.L AllocMem bsr.l SetInts bsr.L RH_FOff bsr.L SetAutoReq bsr.L GetOldCopper bsr.L BuildTables bsr.L ICL bsr.L PrintPattern  шWfo d0,a1 move.l ActCSLen(pc),d0 move.l 4.w,a6 jsr -210(a6) FCS_NotFree: rts * Chip-Sample reservieren ************* AllocChipSample:lea SampleTab(pc),a0 move.w ActSample(pc),d0 lsl.w #3,d0 move.l (a0,d0.w),d1 beq.s ACS_Ex move.l d1,a4 move.l 4(a0,d0.w),d0 move.l d0,ActCSLen moveq #2,d1 move.l 4.w,a6 jsr -198(a6) move.l d0,ActCSPT beq.s ACS_Ex move.l d0,a1 move.l ActCSLen(pc),d0 subq.l #2,d0 ble.s ACS_Ex move.w #$4040,(a1)+ ble.s ACS_Ex ACS_C!ш ЪїЗopy: move.b (a4)+,(a1)+ subq.l #1,d0 bne.s ACS_Copy ACS_Ex: rts ActChipSample: dc.w -1 ActCSPT: dc.l 0 ActCSLen: dc.l 0 PA_CLText: dc.b 8,3,'--------------------',0,0 * PlanePT an d0 setzen **************** SetPlanePT: cmp.w #19,d0 blt.s SPP_First cmp.w #45,d0 bge.s SPP_Last sub.w #19,d0 mulu #6*80,d0 add.l Plane(pc),d0 bra.s SPP_Set SPP_Last: move.l Plane(pc),d0 add.l #25*6*80,d0 bra.s SPP_Set SPP_First: move.l Plane(pc),d0 SPP_Set: lea CopPlane(pc),a1 m"ш јW_№ove.w d0,6(a1) swap d0 move.w d0,2(a1) rts * Pattern ausgeben ******************** PrintPattern: clr.w BplCon bsr.L ClearCursor bsr.L ClearPlane moveq #0,d0 move.w ActPattern(pc),d0 mulu #PattLen,d0 add.l SongPT(pc),d0 move.l d0,a5 lea FullNoteTab(pc),a4 moveq #4,d1 PP_YLoop: moveq #0,d0 move.w d1,-(sp) move.w ActPattern(pc),d2 bsr.L PrintDez2 move.w (sp),d1 moveq #3,d0 move.w d1,d2 subq.w #4,d2 bsr.L PrintDez2 move.w (sp),d1 moveq #6,d0 #ш O2 move.w d1,d2 subq.w #4,d2 bsr.L PrintHex2 moveq #9,d0 move.w (sp)+,d1 PP_XLoop: movem.w d0-d1,-(sp) move.b (a5)+,d2 add.w d2,d2 add.w d2,d2 lea PrintBuffer(pc),a0 move.l a0,a1 move.b d0,(a0)+ move.b d1,(a0)+ move.l (a4,d2.w),(a0)+ clr.b (a0)+ move.l a1,a0 bsr.L PrintText movem.w (sp)+,d0-d1 addq.w #4,d0 movem.w d0-d1,-(sp) move.b (a5)+,d2 bsr.s Print0Z movem.w (sp)+,d0-d1 addq.w #1,d0 movem.w d0-d1,-(sp) move.b (a5)+,d2 bsr.s Print0$ш &3T”Z movem.w (sp)+,d0-d1 addq.w #1,d0 movem.w d0-d1,-(sp) move.b (a5)+,d2 bsr.s PrintHex2 movem.w (sp)+,d0-d1 add.w #3,d0 cmp.w #80,d0 blt.s PP_XLoop addq.w #1,d1 cmp.w #64+4,d1 bne.L PP_YLoop bsr.L SetCursor move.w #$9200,BplCon rts ActPattern: dc.w 0 * SpezialZahl 0-z ausgeben ************ Print0Z: bsr.s P0Z_Set bra.L PrintText P0Z_Set: lea PrintBuffer(pc),a0 move.b d0,(a0) move.b d1,1(a0) lea Z0Tab(pc),a1 move.b (a1,d2.w),d2 move.b d2,2(a0%ш К€f) clr.b 3(a0) rts * Hex d2 an d0/d1 ausgeben ************ PrintHex2: bsr.s PH_Init bra.s PH_2 PrintHex4: bsr.s PH_Init bra.s PH_4 PrintHex5: bsr.s PH_Init move.l d2,d1 swap d1 bsr.s PH_AddHex PH_4: move.w d2,d1 rol.w #4,d1 bsr.s PH_AddHex move.w d2,d1 lsr.w #8,d1 bsr.s PH_AddHex PH_2: move.w d2,d1 lsr.w #4,d1 bsr.s PH_AddHex move.w d2,d1 bsr.s PH_AddHex lea PrintBuffer(pc),a0 bra.s PrintText PH_Init: lea PrintBuffer(pc),a0 lea Z0Tab(pc),a1 &ш,ж—Џ clr.l (a0) clr.l 4(a0) move.b d0,(a0)+ move.b d1,(a0)+ rts PH_AddHex: and.w #$f,d1 move.b (a1,d1.w),(a0)+ rts PrintBuffer: dc.l 0,0 * Dez d2 an d0/d1 ausgeben ************ PrintDez3: lea PD_3(pc),a0 lea PrintBuffer(pc),a1 move.l #'000'*256,2(a1) bra.s PrintDez PrintDez2: lea PD_2(pc),a0 lea PrintBuffer(pc),a1 move.w #'00',2(a1) clr.b 4(a1) bra.s PrintDez PrintDez: move.b d0,(a1)+ move.b d1,(a1)+ PD_NextStell: move.w (a0)+,d3 beq.s PD_Ready PD_Loop: 'ш‡­Fsub.w d3,d2 bpl.s PD_AddDez add.w d3,d2 addq.w #1,a1 bra.s PD_NextStell PD_AddDez: addq.b #1,(a1) bra.s PD_Loop PD_Ready: lea PrintBuffer(pc),a0 bra.s PrintText PD_3: dc.w 100 PD_2: dc.w 10,1,0 * Text a0 ausgeben ******************** * 0=End -1=weiter ********************* PrintText: moveq #0,d0 moveq #0,d1 move.b (a0)+,d0 move.b (a0)+,d1 PrintXY: move.l MenuPlane(pc),a2 lea Chars,a3 add.w d0,a2 mulu #6*80,d1 add.w d1,a2 moveq #96,d1 moveq #32,d2 PT_(шџ–9ТCharLoop: moveq #0,d0 move.b (a0)+,d0 beq.s PT_Ready bmi.s PrintText cmp.b d1,d0 blt.s PT_Big sub.b d2,d0 PT_Big: sub.b d2,d0 lea (a3,d0.w),a1 move.b (a1),(a2) move.b 64(a1),80(a2) move.b 64*2(a1),80*2(a2) move.b 64*3(a1),80*3(a2) move.b 64*4(a1),80*4(a2) addq.w #1,a2 bra.s PT_CharLoop PT_Ready: rts * Plane loeschen ********************** ClearPlane: move.l Plane(pc),a0 moveq #0,d0 moveq #0,d1 moveq #0,d2 moveq #0,d3 moveq #0,d4 move.w #$180)шg‰_-1,d5 CP_Loop: movem.l d0-d4,(a0) lea 20(a0),a0 movem.l d0-d4,(a0) lea 20(a0),a0 movem.l d0-d4,(a0) lea 20(a0),a0 movem.l d0-d4,(a0) lea 20(a0),a0 dbf d5,CP_Loop rts * Cursor neu setzen ******************* SetCursor: movem.w CursorX(pc),d0-d1 addq.w #4,d1 lea CursorTab(pc),a0 move.b (a0,d0.w),d0 SetCursorXY: movem.w d0-d1,-(sp) bsr.s ClearCursor movem.w (sp)+,d0-d1 movem.w d0-d1,OldCPos InvertCursor: move.l MenuPlane(pc),a0 mulu #6*80,d1 add.w d1,a*шйuЙjЭ0 add.w d0,a0 moveq #4,d0 IC_Loop: not.b (a0) lea 80(a0),a0 dbf d0,IC_Loop rts ClearCursor: tst.l OldCPos bmi.s CC_Cleared movem.w OldCPos(pc),d0-d1 bsr.s InvertCursor moveq #-1,d0 move.l d0,OldCPos CC_Cleared: rts OldCPos: dc.l -1 CursorX: dc.w 0 ;\ CursorY: dc.w 0 ;/ *************************************** * INTERRUPT *************************** *************************************** * neuer Vertical-Blank interrupt ****** NewVBIInt: movem.l d0-d7/a0-a6,-(шяI†2,3(a5) lea PrintBuffer(pc),a0 addq.b #7,d5 move.b d5,(a0) move.b d6,1(a0) lea Z0Tab(pc),a1 move.b (a1,d2.w),2(a0) clr.b 3(a0) move.l a0,-(sp) bsr.L ClearCursor move.l (sp)+,a0 bsr.L PrintText bra.L CursorDown CN2_NoNib: rts * Noten-Taste gedrueckt *************** TestNoteKey: lea NoteKeyTab(pc),a0 moveq #-1,d2 TNK_Loop: addq.w #1,d2 move.b (a0)+,d1 beq.L TNK_NoNote cmp.b d1,d0 bne.s TNK_Loop move.w d2,d0 rts TNK_NoNote: moveq #-1,d0 rts * 0шРЋѓ-z gedrueckt ? ********************* TestKey0Z: lea Key0ZTab(pc),a0 moveq #-1,d2 TRZ_Loop: addq.w #1,d2 move.b (a0)+,d1 beq.s TRZ_No cmp.b d0,d1 bne.s TRZ_Loop moveq #0,d0 rts TRZ_No: moveq #-1,d0 rts Key0ZTab: dc.b '0123456789abcdefghijklmnopqrstuvwxyz',0,0 * Hex gedrueckt *********************** TestHex: lea HexKeyTab(pc),a0 moveq #-1,d2 TH_Loop: addq.w #1,d2 move.b (a0)+,d1 beq.s TH_No cmp.b d0,d1 bne.s TH_Loop moveq #0,d0 rts TH_No: moveq #-1,d0шVњИж rts HexKeyTab: dc.b '0123456789abcdef',0,0 * Cursor-Bewegung ********************* CursorLeft: subq.w #1,CursorX bpl.s CL_Ok move.w #39,CursorX CL_Ok: bra.L SetCursor CursorRight: addq.w #1,CursorX cmp.w #40,CursorX blt.s CR_Ok clr.w CursorX CR_Ok: bra.L SetCursor CursorUp: subq.w #1,CursorY and.w #$3f,CursorY bra.s NewCursorY CursorDown: addq.w #1,CursorY bra.s NewCursorY SetCursor0: clr.w CursorY bra.s NewCursorY SetCursor16: move.w #16,CursorY bra.s Newш[QœCursorY SetCursor32: move.w #32,CursorY bra.s NewCursorY SetCursor48: move.w #48,CursorY bra.s NewCursorY SetCursor63: move.w #63,CursorY bra.s NewCursorY NewCursorY: and.w #$3f,CursorY move.w CursorY(pc),d0 bsr.L SetPlanePT bra.L SetCursor * Pattern +1 / -1 ********************* SubPattern: moveq #-1,d0 bra.s PattChanged AddPattern: moveq #1,d0 PattChanged: add.w d0,ActPattern and.w #$1f,ActPattern bra.L PrintPattern * Tabellen setzen ********************* SetTшае`abs1: move.l #NoteTab1,ActNoteTab move.l #PeriodTab1,ActPeriodTab rts SetTabs2: move.l #NoteTab2,ActNoteTab move.l #PeriodTab2,ActPeriodTab rts ActNoteTab: dc.l NoteTab1 ActPeriodTab: dc.l PeriodTab1 * TrackBuffer handlings *************** TNoteUp: moveq #63,d0 TNU_Loop: move.b (a4),d1 beq.s TNU_Next cmp.b #36,d1 beq.s TNU_Next addq.b #1,d1 move.b d1,(a4) TNU_Next: lea 32(a4),a4 dbf d0,TNU_Loop bra.l PrintPattern TNoteDown: moveq #63,d0 TND_Loop: move.b (a4),dшƒљx1 subq.b #1,d1 ble.s TND_Next move.b d1,(a4) TND_Next: lea 32(a4),a4 dbf d0,TND_Loop bra.l PrintPattern CutTrack: move.l TrackBuffer(pc),a0 moveq #63,d0 CT_Loop: move.l (a4),(a0)+ clr.l (a4) lea 32(a4),a4 dbf d0,CT_Loop bra.l PrintPattern CopyTrack: move.l TrackBuffer(pc),a0 moveq #63,d0 CoT_Loop: move.l (a4),(a0)+ lea 32(a4),a4 dbf d0,CoT_Loop rts PasteTrack: move.l TrackBuffer(pc),a0 moveq #63,d0 PT_Loop: move.l (a0)+,(a4) lea 32(a4),a4 dbf d0,PT_LшBуŽooop bra.l PrintPattern * Pattern handlings ******************* PNoteUp: move.w #511,d0 PNU_Loop: move.b (a3),d1 beq.s PNU_Next cmp.b #36,d1 beq.s PNU_Next addq.b #1,d1 move.b d1,(a3) PNU_Next: addq.w #4,a3 dbf d0,PNU_Loop bra.l PrintPattern PNoteDown: move.w #511,d0 PND_Loop: move.b (a3),d1 subq.b #1,d1 ble.s PND_Next move.b d1,(a3) PND_Next: addq.w #4,a3 dbf d0,PND_Loop bra.l PrintPattern CutPattern: move.l PatternBuffer(pc),a0 move.w #511,d0 CPt_Loop: шtŽМ move.l (a3),(a0)+ clr.l (a3)+ dbf d0,CPt_Loop bra.l PrintPattern CopyPattern: move.l PatternBuffer(pc),a0 move.w #511,d0 CPa_Loop: move.l (a3)+,(a0)+ dbf d0,CPa_Loop rts PastePattern: move.l PatternBuffer(pc),a0 move.w #511,d0 PPp_Loop: move.l (a0)+,(a3)+ dbf d0,PPp_Loop bra.l PrintPattern *************************************** * OUTPUT ****************************** *************************************** * Alle Menu-Angaben ausgeben ********** PrintAll: lea PAшЭ•йo_CLText(pc),a0 bsr.L PrintText move.w ActSample(pc),d2 ;Act Sample cmp.w ActChipSample(pc),d2 beq.s PA_Same bsr.L StopDMA move.w ActSample,ActChipSample bsr.L FreeChipSample bsr.L AllocChipSample PA_Same: move.w ActSample(pc),d2 moveq #5,d0 moveq #3,d1 bsr.L Print0Z lea SH_Samples(pc),a0 ;Sample Name move.w ActSample(pc),d0 lsl.w #5,d0 add.w d0,a0 move.l a0,-(sp) moveq #8,d0 moveq #3,d1 bsr.L PrintXY move.l (sp),a0 move.l 20(a0),d2 moveq #9шђЮoП,d0 moveq #0,d1 bsr.L PrintHex5 move.l (sp),a0 move.l 24(a0),d2 moveq #9,d0 moveq #1,d1 bsr.L PrintHex5 move.l (sp)+,a0 move.l 28(a0),d2 moveq #9,d0 moveq #2,d1 bsr.L PrintHex5 moveq #0,d2 move.b SH_Speed(pc),d2 moveq #48,d0 moveq #3,d1 bsr.L Print0Z moveq #0,d2 move.b ActPosition(pc),d2 moveq #46,d0 moveq #0,d1 bsr.L PrintDez3 lea SH_Patterns(pc),a0 moveq #0,d2 move.b ActPosition(pc),d2 move.b (a0,d2.w),d2 moveq #47,d0 moveq #1ш7‹ЎЭ,d1 bsr.L PrintDez2 move.b SH_Len(pc),d2 moveq #46,d0 moveq #2,d1 bsr.L Printdez3 moveq #72,d5 move.b PlayChannels(pc),d6 moveq #7,d7 PA_Loop1: move.w d5,d0 moveq #2,d1 lea ChannelStates(pc),a0 btst d7,d6 bne.s PA_ChannelOn addq.w #2,a0 PA_ChannelOn: bsr.L PrintXY addq.w #1,d5 dbf d7,PA_Loop1 rts ChannelStates: dc.b '*',0,'-',0 * Chip-Sample freigeben *************** FreeChipSample: move.l ActCSPT(pc),d0 beq.s FCS_NotFree clr.l ActCSPT move.l шDY1a6) move.l d0,a6 lea $24(a6),a6 moveq #3,d7 WD_WaitDrive: tst.l (a6)+ beq.s WD_NextDrive move.l -4(a6),a0 WD_DriveOn: btst #7,$41(a0) beq.s WD_DriveOn WD_NextDrive: dbf d7,WD_WaitDrive rts TrackDiskName: dc.b 'trackdisk.device',0,0 * Auf Blitter warten ****************** WB: btst #6,$dff002 bne.s WB rts * Auf Maus warten ********************* WaitLifted: bsr.L WaitTOP btst #6,$bfe001 beq.s WaitLifted btst #2,$dff016 beq.s WaitLifted rts * eingene Int ш”%'errupts loeschen ********* ClearInts: move.l OldIOInt+2(pc),$68.w move.l OldVBIInt+2(pc),$6c.w rts * DOS - Lib oeffnen und schliessen **** OpenLibs: move.l 4.w,a6 lea DosName(pc),a1 jsr -408(a6) move.l d0,DosBase rts CloseLibs: move.l 4.w,a6 move.l DosBase(pc),a1 jmp -414(a6) DosName: dc.b 'dos.library',0 DosBase: dc.l 0 * Copperliste initialsieren *********** ICL: lea CopperList(pc),a0 move.l #Sprite1,d0 move.w d0,6(a0) swap d0 move.w d0,2(a0) lea Co ш і8ИdpMenuPlane(pc),a0 move.l MenuPlane(pc),d0 move.w d0,6(a0) swap d0 move.w d0,2(a0) move.w CursorY(pc),d0 bra.L SetPlanePT * Tastatur checken ******************** EditKeyHandler: move.b ActKey(pc),d0 clr.b ActKey tst.b d0 beq.L EKH_Ex move.l SongPT(pc),a5 ;Pattpos ermitteln move.w ActPattern(pc),d1 ;Pattpos mulu #PattLen,d1 add.l d1,a5 move.l a5,a4 move.l a4,a3 move.w CursorY(pc),d6 move.w d6,d1 lsl.w #5,d1 add.w d1,a5 addq.w #4,d6 moveq #0, ш!NCКd1 ;Einsprung 1 ermitteln move.w CursorX(pc),d1 divu #5,d1 move.w d1,d5 lsr.w #1,d5 move.w d5,EKH_Channel move.w d1,d5 mulu #9,d5 add.w #9,d5 add.w d1,d1 add.w d1,d1 add.w d1,a5 add.w d1,a4 swap d1 add.w d1,d1 lea KH_Handlers(pc),a0 move.w (a0,d1.w),d1 lea p(pc),a0 movem.l d0/a3-a4,-(sp) jsr (a0,d1.w) movem.l (sp)+,d0/a3-a4 lea KH_NormKeys(pc),a0 lea KH_NormKeysJmp(pc),a1 lea p(pc),a2 tst.w ShiftMode beq.s KH_NoShift lea KH_ShiftKш"?жeys(pc),a0 lea KH_ShiftKeysJmp(pc),a1 KH_NoShift: tst.w AltMode beq.s KH_NextKey lea KH_AltKeys(pc),a0 lea KH_AltKeysJmp(pc),a1 KH_NextKey: move.w (a1)+,d2 move.b (a0)+,d1 beq.s EKH_Ex cmp.b d0,d1 bne.s KH_NextKey jmp (a2,d2.w) EKH_Ex: rts KH_NormKeys: dc.b $10,$11,$15,$16,$17,$18,$19,$f,$e,$c,$d,0 KH_NormKeysJmp: dc.w SetTabs1-p,SetTabs2-p dc.w SetCursor0-p,SetCursor16-p,SetCursor32-p,SetCursor48-p,SetCursor63-p dc.w CursorLeft-p,CursorRight-p,CursorUp-p,Cursш#<бF”orDown-p KH_ShiftKeys: dc.b $10,$11,$12,$13,$14,0 KH_ShiftKeysJmp:dc.w TNoteDown-p,TNoteUp-p dc.w CutTrack-p,CopyTrack-p,PasteTrack-p KH_AltKeys: dc.b $10,$11,$12,$13,$14,$e,$f,0 KH_AltKeysJmp: dc.w PNoteDown-p,PNoteUp-p dc.w CutPattern-p,CopyPattern-p,PastePattern-p dc.w AddPattern-p,SubPattern-p KH_Handlers: dc.w KH_CheckNote-p,KH_CheckSample-p,KH_CheckEffect-p dc.w KH_CheckNib1-p,KH_CheckNib2-p * Note angeschlagen ? ***************** KH_CheckNote: bsr.L TestNoteKey bmiш$E+ 2.s CN_NoNote lea PrintBuffer(pc),a0 ;Note setzen move.b d5,(a0) move.b d6,1(a0) move.l ActPeriodTab(pc),a1 move.b (a1,d0.w),d0 bmi.L CN_NoNote move.b d0,(a5) clr.b 1(a5) tst.b d0 beq.L CN_NoPlay move.b ActSample+1,1(a5) move.w d0,d1 and.w #$ff,d1 move.w EKH_Channel(pc),d0 bsr.s PlayNote CN_NoPlay: movem.l d2/a0,-(sp) bsr.L ClearCursor movem.l (sp)+,a0/d2 add.w d2,d2 add.w d2,d2 move.l ActNoteTab(pc),a1 move.l (a1,d2.w),2(a0) clr.b 6(a0) ш%№`gubsr.L PrintText move.w d5,d0 addq.w #4,d0 move.w d6,d1 move.w ActSample(pc),d2 tst.b (a5) bne.s CN_Seted moveq #0,d2 clr.b 1(a5) CN_Seted: bsr.L Print0Z bra.L CursorDown CN_NoNote: rts EKH_Channel: dc.w 0 * Note spielen ************************ * lea InitText(pc),a0 bsr.L PrintText bsr.L PrintAll bsr.L SetCursor move.l #CopperList,$dff080 bsr.s RasterLoop bsr.L StopDMA bsr.L ClearAutoReq bsr.L ClearInts bsr.L CloseLibs bsr.L FreeMem move.l OldCopList(pc),$dff080 moveq #0,d0 rts * Rasterschleife ********************** RasterLoop: bsr.s WaitTOP lea MenuExTable(pc),a0 bsr.L Executer bsr.L EditKeyHandler btst #6,$bfe001 bne.s RasterLoop btst #2,$16(a6) bne.s RasterLoop tst.l MousePos ш+,Щ™ bne.s RasterLoop tst.w AltMode beq.s RasterLoop tst.w ShiftMode beq.s RasterLoop rts * Auf letzte Ras-Pos warten *********** WaitTOP: move.l $dff004,d0 lsr.l #8,d0 and.w #$1ff,d0 cmp.w #301,d0 bne.s WaitTOP rts InitText: dc.b 0,0,'Len...: $',-1 dc.b 0,1,'RStart: $',-1 dc.b 0,2,'REnd..: $',-1 dc.b 0,3,'Name :',-1 dc.b 16,0,'Load Sample',-1 dc.b 16,1,'Clear Sample',-1 dc.b 16,2,'Edit Sample',-1 dc.b 30,0,'load song',-1 dc.b 30,1,'save song',-1ш, Ѓћт dc.b 30,2,'play song',-1 dc.b 30,3,'play patt',-1 dc.b 41,0,'pos.:',-1 dc.b 41,1,'patt:',-1 dc.b 41,2,'len.:',-1 dc.b 41,3,'speed:',-1 dc.b 71,2,'c',-1 dc.b 71,3,'s12345678',0 even * Speicher reservieren **************** AllocMem: move.l 4.w,a6 move.l #MenuPlaneLen+PlaneLen,d0 move.l #$10002,d1 jsr -198(a6) move.l d0,MenuPlane add.l #MenuPlaneLen,d0 move.l d0,Plane move.l #SongLen,d0 move.l #$10000,d1 jsr -198(a6) move.l d0,SongPT move.l #Paш-Ы Ю•ttLen,d0 move.l #$10000,d1 jsr -198(a6) move.l d0,PatternBuffer move.l #TrackLen,d0 move.l #$10000,d1 jsr -198(a6) move.l d0,TrackBuffer rts * Speicher freigeben ****************** FreeMem: move.l 4.w,a6 move.l MenuPlane(pc),a1 move.l #MenuPlaneLen+PlaneLen,d0 jsr -210(a6) move.l SongPT(pc),a1 move.l #SongLen,d0 jsr -210(a6) move.l PatternBuffer(pc),a1 move.l #Pattlen,d0 jsr -210(a6) move.l TrackBuffer(pc),a1 move.l #TrackLen,d0 jsr -210(a6) ш.Гдж^ clr.w ActSample FM_Samples: bsr.L FreeSample addq.w #1,ActSample cmp.w #36,ActSample bne.s FM_Samples bra.L FreeChipSample Plane: dc.l 0 MenuPlane: dc.l 0 SongPT: dc.l 0 PatternBuffer: dc.l 0 TrackBuffer: dc.l 0 * Interrupts setzen ******************* SetInts: move.l $68.w,OldIOInt+2 move.l $6c.w,OldVBIInt+2 move.l #NewIOInt,$68.w move.l #NewVBIInt,$6c.w bsr.L ClearMouseMove bsr.L PrintAll clr.l 0.w rts * Auto-Request setzen ***************** SetAutoReqш/QХЇ5: move.l 4.w,a6 lea IntName(pc),a1 jsr -408(a6) move.l d0,a1 lea -346(a1),a2 move.l (a2),OldAutoReqPT+2 move.l #NewAutoReq,(a2) move.l a2,AutoReqPT jmp -414(a6) IntName: dc.b 'intuition.library',0 * Auto Request loeschen *************** ClearAutoReq: move.l AutoReqPT(pc),a0 move.l OldAutoReqPT+2(pc),(a0) rts AutoReqPT: dc.l 0 * Neue Auto-Request routine *********** NewAutoReq: move.l $68.w,NAR_IO move.l $6c.w,NAR_VB move.l OldIOInt+2(pc),$68.w move.l Olш21§яНdVBIInt+2(pc),$6c.w move.l OldCopList(pc),$dff080 OldAutoReqPT: jsr 0 move.l #CopperList,$dff080 move.l NAR_VB(pc),$6c.w move.l NAR_IO(pc),$68.w rts NAR_IO: dc.l 0 NAR_VB: dc.l 0 * Alte Copperliste holen ************** GetOldCopper: move.l 4.w,a6 lea GName(pc),a1 jsr -408(a6) move.l d0,a1 move.l 38(a1),OldCopList jmp -414(a6) GName: dc.b 'graphics.library',0,0 OldCopList: dc.l 0 * Tabellen aufbauen ******************* BuildTables: lea FullPeriodTab+2(pc),ш1€J|"Dfˆ Њ Ьюю Ь ЊˆfD"3Uw ™ Л нџџ н Л ™wU3"Dfˆ Њ ЊˆfD""Dfˆ Њ Ь Ь ЊˆfD""Dfˆ Њ Ьюю Ь ЊˆfD"3Uw ™ Л нџџ н Л ™wU3_acehjloqsvxz|ƒ…‡‰‹‘“•—™›ž ЂЃЅІЈЉЋЌ­ЏАБВГДЕЖЗИЙЙКЛЛМММНННННОНННННМММЛЛКЙЙИЗЖЕДГВБАЏ­ЌЋЉЈІЅЃЂ ž›™—•“‘‹‰‡…ƒ|zxvsqoljheca^\ZXUSQNLJGECA><:86420.,*(&$"    "$&(*,.02468:<>ACEGJLNQSUXZ\graphics.library4XO/-ь`Ќ?™&HXb’žВИОФЬRXђыђQЩџь ќџџўCљŽp,xNЎўh#Р†,@#ю&Š#ќп№€ 9№п№fіa 3ќџпё€9Прfр#љŠп№€Nu y‚0<вBhPHQШџјMљjKљrIљ‚Gљ‚p$y‚>Jf"R-џџ3pAџчA<ыFz5Д`PŠT†QЭџєR€ fЪMљjKљrIљ‚Gљ‚p$y‚>Jg"R-џџ3pAџчA<ыFz5Д`PŠT†QЭџєR€ fЪAљrCљjt0@QЪџјNu ˆ˜ "Dfˆ Њ ЊˆfD""Dfˆ Њ Ь Ь ЊˆfD" шfЂяa0 ;Noten - Stepwerte lea HBuff(pc),a1 moveq #35,d7 BT_Loop1: move.l #$38c000,d0 divu (a0)+,d0 and.l #$ffff,d0 add.l d0,d0 add.l d0,d0 move.l d0,(a1)+ dbf d7,BT_Loop1 rts HBuff: blk.l 36,0 * DMA aus ***************************** StopDMA: move.w #$f,$dff096 clr.w $dff0a8 clr.w $dff0b8 clr.w $dff0c8 clr.w $dff0d8 rts * Auf Laufwerke warten **************** WaitDrives: move.l 4.w,a6 move.l a6,a0 lea $15e(a0),a0 lea TrackDiskName(pc),a1 jsr -276(„Rш џџі0ќ&ш5zy:;.b $3,$2,$3,$4,$5,$4,$1,$3,$0,$1,$0 blk.b $2,$4 dc.b $5,$0,$3,$5,$2,$3 blk.b $2,$0 blk.b $2,$2 dc.b $5,$2,$5 blk.b $2,$3 dc.b $2,$3 blk.b $3,$4 dc.b $3,$0,$3,$1,$4,$5,$0,$3,$5,$3,$0,$1,$2,$3,$1,$4,$5,$3,$2,$4,$5 blk.b $2,$0 dc.b $2 blk.b $3,$3 blk.b $3,$2 dc.b $1,$4,$3,$4,$3,$5,$2,$5 blk.b $2,$4 dc.b $5,$1,$5 blk.b $3,$4 dc.b $2,$0,$4,$1 blk.b $2,$3 dc.b $4,$5,$2,$1,$4,$3,$2,$0,$3,$5,$3 blk.b $3,$1 blk.b $2,$5 dc.b $0,$3,$2 blk.b $2,$1 blk.b $2,$5 dc.b $3,$2 blk.b $2,$5 zaehler: dc.wќ'ш6Fwс $0000 zaehler2: dc.w $0000 zaehler3: dc.w $0000 zaehler4: dc.w $0000 dingsbums: dc.b $0 colormerker: dc.b 0 even STCOL: DC.W 0 MAX: DC.W 0 DELTA: DC.W 0 YPOS: DC.W 0 EVEN OLDLISTE: DC.L 0 EVEN FLAG: DC.B 0 EVEN LISTE: DC.L 0 BITMAP: BLK.L 100,0 RASTPORT: BLK.L 100,0 COPPER: BLK.B 5000,0 DEBUG10:DC.L 0 XP: DC.W 0 YP: DC.W 0 EVEN BREITE: DC.B 0 EVEN TEXTPOINTER: DC.L 0 SCROLLSTART: DC.L 0 TEXT:DC.B ' ABCDEFGHIJKLMNOPQRSTUVWXYZ BLUE LIGHTNING ',0 EVEN ANIMTABLE: DC.ќ(ш7š|,eW 15,66,0,0 DC.W 13,57,0,67 DC.W 11,48,0,124 DC.W 9,43,176,124 DC.W 8,34,176,167 DC.W 6,28,208,96 DC.W 5,24,240,0 DC.W 5,21,240,24 DC.W 4,19,240,45 DC.W 3,16,208,67 DC.W 3,16,256,67 DC.W 3,16,0,172 DC.W 3,16,48,172 DC.W 3,16,96,172 EVEN BOB: DC.L 8 ENDMOVIE: DC.B 0 ZAEHLERBLITTER: DC.B 0 MOD: DC.W 10 FONT: dc.l $40000 ANIMPIC: BLK.B 0,0 dosbase: dc.l 0 dosname: dc.b "dos.library",0 adresse: dc.l $55000 adresse2: dc.l $55060 adresse3: dc.l $55030 MERKER: dќ)+ Sнc.b $0 MERKERb: dc.b $0 changebit: dc.b $0 $0000 zaehler4: dc.w $0000 dingsbums: dc.b $0 colormerker: dc.b 0 even STCOL: DC.W 0 MAX: DC.W 0 DELTA: DC.W 0 YPOS: DC.W 0 EVEN OLDLISTE: DC.L 0 EVEN FLAG: DC.B 0 EVEN LISTE: DC.L 0 BITMAP: BLK.L 100,0 RASTPORT: BLK.L 100,0 COPPER: BLK.B 5000,0 DEBUG10:DC.L 0 XP: DC.W 0 YP: DC.W 0 EVEN BREITE: DC.B 0 EVEN TEXTPOINTER: DC.L 0 SCROLLSTART: DC.L 0 TEXT:DC.B ' ABCDEFGHIJKLMNOPQRSTUVWXYZ BLUE LIGHTNING ',0 EVEN ANIMTABLE: DC.ш(^\Zё dc.b 179,180,181,182,183,184,185,185,186,187,187,188,188,188,189 dc.b 189,189,189,189,190,189,189,189,189,189,188,188,188,187,187 dc.b 186,185,185,184,183,182,181,180,179,178,177,176,175,173,172 dc.b 171,169,168,166,165,163,162,160,158,157,155,153,151,149,147 dc.b 145,143,141,139,137,135,133,131,129,127,124,122,120,118,115 dc.b 113,111,108,106,104,101,99,97,94,92,90,88,85,83,81 dc.b 78,76,74,71,69,67,65,62,60,58,56,54,52,50,48 dc.b 46,44,42,40,38,36,34,32,31,29,27,26,24,23,21 dc.b 2ш:Бœх› move.l d0,gfxbase move.l d0,a6 move.l $26(a6),oldcop move.l #$70000,$dff080 nob: cmpi.b #240,$dff006 bne.s nob bsr bars move.w #$0fff,$dff180 btst #6,$bfe001 bne.s nob move.l oldcop,$dff080 rts bars: move.l copptr,a0 move.w #210,d0 clearlp: clr.w 2(a0) addq.w #8,a0 dbf d0,clearlp lea infront,a6 lea intable,a5 lea thycols,a4 lea sine,a3 moveq #0,d0 ; First bar blp: move.l copptr,a2 move.w (a5)+,d7 tst.b (a6)+ bne.s nonow addq.b #1,-1(a5) move.b (a3,d7.w),d1 ; Y Position and.ш;hїЋw #$ff,d1 asl.w #3,d1 ;*8(each coplist entry=8bytes) move.w d0,d6 asl.w #5,d6 ; *16 each colorlist e = 16 moveq #15,d5 mclp: move.w (a4,d6.w),2(a2,d1.w) addq.l #8,a2 addq.l #2,d6 dbf d5,mclp nonow: addq.l #1,d0 cmpi.b #8,d0 bne.s blp lea infront,a6 lea intable,a5 lea thycols,a4 lea sine,a3 moveq #0,d0 ; First bar blp2: move.l copptr,a2 move.w (a5)+,d7 tst.b (a6)+ beq.s nonow2 addq.b #1,-1(a5) move.b (a3,d7.w),d1 ; Y Position and.w #$ff,d1 asl.w #3,d1 ;*8(each coplist enш<Œ*rstry=8bytes) move.w d0,d6 asl.w #5,d6 ; *16 each colorlist e = 16 moveq #15,d5 mclp2: move.w (a4,d6.w),2(a2,d1.w) addq.l #8,a2 addq.l #2,d6 dbf d5,mclp2 nonow2: addq.l #1,d0 cmpi.b #8,d0 bne.s blp2 lea intable,a0 lea infront,a1 moveq #7,d2 checklp: move.w (a0)+,d0 sub.b #$40,d0 ;spl (a1)+ dbf d2,checklp rts infront:dc.b 1,1,1,1,1,1,1,1 intable:dc.w $8,$10,$18,$20,$28,$30,$38,$40 thycols: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0111,$0222 dc.w $0222,$0111,$0000,$0000,$0000,$00ш=Ўйю00,$0000,$0000 dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0111,$0222 dc.w $0444,$0444,$0222,$0111,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0000,$0000,$0111,$0222,$0444,$0666 dc.w $0666,$0444,$0222,$0111,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0000,$0000,$0222,$0444,$0666,$0888 dc.w $0888,$0666,$0444,$0222,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0000,$0222,$0444,$0666,$0888,$0aaa dc.w $0aaa,$0888,$0666,$0444,$0222,$0000,$0000,$0000 dc.w $0000,$0000,$0222,$0444,$0666,ш8ПЮ >$0888,$0aaa,$0ccc dc.w $0ccc,$0aaa,$0888,$0666,$0444,$0222,$0000,$0000 dc.w $0000,$0222,$0444,$0666,$0888,$0aaa,$0ccc,$0eee dc.w $0eee,$0ccc,$0aaa,$0888,$0666,$0444,$0222,$0000 dc.w $0111,$0333,$0555,$0777,$0999,$0bbb,$0ddd,$0fff dc.w $0fff,$0ddd,$0bbb,$0999,$0777,$0555,$0333,$0111 sine: dc.b 95,97,99,101,104,106,108,111,113,115,118,120,122,124,127 dc.b 129,131,133,135,137,139,141,143,145,147,149,151,153,155,157 dc.b 158,160,162,163,165,166,168,169,171,172,173,175,176,177,178„Gш?џџѕ„Hш@џџѕ„IшAџџѕ„JшBџџѕ„KшCџџєў„LшDџџєќ„MшEџџєњ„NшFџџєј„OшGџџєі„PшHџџєє„Qш3џџѕ„<шJџџѕ„=шKџџѕ„>шLџџѕ„?шMџџѕ„@шNџџєў„AшOџџєќ„BшPџџєњ„CшQџџєј„DшRџџєі„EшSџџєє„Fш>џџѕ„1шUџџѕ„2шVџџѕ„3шWџџѕ„4шXџџѕ„5шYџџєў„6шZџџєќ„7ш[џџєњ„8ш\џџєј„9ш]џџєі„:ш^џџєє„;шIџџѕ„&ш`џџѕ„'шaџџѕ„(шbџџѕ„)шcџџѕ„*шdџџєў„+шeџџєќ„,шfџџєњ„-шgџџєј„.шhџџєі„/шiџџєє„0шTџџѕ„шkџџѕ„шlџџѕ„шmџџѕ„шnџџѕ„шoџџєў„ шpџџєќ„!шqџџєњ„"шrџџєј„#шsџџєі„$шtџџєє„%ш_џџѕ„шvџџѕ„шwџџѕ„шxџџѕ„шyџџѕ„шzџџєў„ш{џџєќ„ш|џџєњ„ш}џџєј„ш~џџєі„шџџєє„шjџџѕ„шс5л €@<€ @аџ шџ ?єЯ@?єО€шN€„ш‚ЬЖџа†€а=џ€џ№ўџРџј?џаz?џРџјџџџрџќџ€аєџ џєџў€?џаџњџџ@бшјар@|h€ № гаїџш>џ§пџ ћџєўƒяџаз єє~€абњњ?@Gшшп@єє~€абњњ?@Gшшў€єш>€а њє@ƒшј§єш€арzє@шњєш€аzє@шєєш€аzє@ш„шƒТcx-шєш€аzє@ш№адш€?аzє@шјшЧџєџџƒ{џњ@яџшфЧџєџўУџњ@ƒџџшТРшџ§gпє@‡џџаРа€fh@‡а €УџђaџШ@ƒџџа @Фа€bh@€а  Ф €b@€а Ф€b@€а ˆФ€b @€а ФФ€b @€а „ш„бsБйbФ€b @€а 1Ф€b @€а †€Ф€b @€ L€Ф€b @Р08„00€Т@ƒ 0Cx`€ ‚<0@†€#Ф`€ ‚b0@0† Р!ƒџ„0`СџТ 0Cџ`@Уџ  aџ‚ A‡ў 0€` @‚0 @РР0€Ф @`€ џјxџќр€?џ№„ ш…џш:ц € @,€  _@аП ша/єџа_њџ _њ Я@„ ш†ЅЧ7/єЗ@ш/K@џ€џ№ўџРџј?џш^„€ @€ @€шН_џ  џєў€/џаџњПџ@щzПџаџњџџ@_џш џ§џ ъєџш/џ§џџ Пџєџў‚џџаэшјє_‹рб|z/€EџџшыајњПяїъќ}_ПяЋџџќц јњПш *ќ}_ /Ћќќ§@јє_ шб|z/ /Eќќў€xє/шМz /Bќјѕxє/шрМz /Bќ„ ш‡ŸНшAъXє/ЈМz /Bќ№”Hє/(Ќz /BќЈhє/(Ќz /Bџџє”xњ/?шЄ} /Bџџєx?њ/џ§…шЃџ§ /Eџџє=Ÿє/џњ…шИ#њ /Kџџшў€џш/џхшЙџє /Iџџрџ@|ш/€шОt /Dрч {џ(/хшНџ” /Cџ§рыаzа/@шНh /@рэшz /@шН /@ръєz)@шН /@р„ шˆ|ѕ}Xщzz)@шН +@ршНz-@шН )@рш^„z/@шН )@ ш/KAz/@шН /AР`/єЗAz0/@шН /B р_њ ЯBњH_@ ш}$/ /Eар_њџЅњДП@ш§Z_ /Kшш/єџећџzП`ь§џН_ _Kї§єшвќњ_ ђ~}/Р_Ѕјє шПЁџњ/а§Пџ§а/Ђџџєа_@Пџњ §_џ§ аЁџє ,€_џњ @z/џ§а  Пџє„ ш‰+{Џѕ@ €„@@€ џјxџќр€?џ№ €„шŠџџєє„шuџџѕ‚#шŒnPt.b " ok! now it's my turn to type a few words, my name is " dc.b "mellica....... ok! a big hello to qrd and the amiga freak" dc.b " of trilogy ------ also a big hello to liteace(cool freak) of" dc.b "dexion..... and now get ready for action, razmo the mega " dc.b "cool guy wants to write a lot of shit to you...... " dc.b "ello ere vrybody! hope yar having a cool time here at " dc.b "bamiga-sector 1 and warfalcons copyparty!!! i hope you like " dc.b "my lit‚$ш‚cBtle demo here, i'm sorry about the lack of graphix but " dc.b "as you all know(i think) i had to spend a lot of time " dc.b "working on my new product named: sound-machine!!! ... " dc.b "if ya havent gotten it already im sure you will get it very " dc.b "soon! i have worked on it for a very long time and it " dc.b "wasn't very much fun correcting those dirty bugs! " dc.b "anyway, use it! it's quite usefull! ... ... ... " dc.b "i would now like to send some music greetings to some " d‚%шŽюЈ“Ec.b "cool composers. i'm sorry if you are not mentioned but not " dc.b "everybody has got 1 mega byte!(if you know what i mean?) ... " dc.b "music greetings to:(no special order! all make good music " dc.b "his own way!) sll(nice work! keep it up!) biboy" dc.b "(cool! keep it up too! and thanks for the greet!) ... ... ... " dc.b "jesper kyd(cool too! keep up!) ... ... ... " dc.b "i've got nothing more to say! bye!... .... . . ... ... . ." dc.b " ‚&ш7Rуз " dc.b $ff even changer: cmp.w #1000,changerdelay bne fuck_it move.l #fadecol,fadepos clr.w changerdelay fuck_it: cmp.w #969,changerdelay ble fuck_it2 jsr fade_it fuck_it2: cmp.w #985,changerdelay bne changer2 move.l changerpos,a0 move.l #bobvisspcX,a1 move.l 00(a0),00(a1) move.l 04(a0),04(a1) move.l 08(a0),08(a1) move.l 12(a0),12(a1) jsr bob_spcset jsr dot_spcset add.l #$10,changerpos move.l changerpos,a0 cmp.b #$ff,(a0) bne changer2 move.l #changeda‚'шqрчЌt,changerpos changer2: add.w #1,changerdelay rts fade_it: move.l fadepos,a0 move.w (a0),colors+2 move.w 60(a0),colors+6 move.w 120(a0),colors+10 move.w 180(a0),colors+14 add.l #2,fadepos rts fadepos: dc.l fadecol fadecol: dc.w $000,$111,$222,$333,$444,$555,$666,$777,$888,$999,$aaa dc.w $bbb,$ccc,$ddd,$eee,$fff,$eee,$ddd,$ccc,$bbb,$aaa,$999 dc.w $888,$777,$666,$555,$444,$333,$222,$111 dc.w $999,$999,$999,$aaa,$aaa,$aaa,$bbb,$bbb,$ccc,$ccc,$ddd dc.w $ddd,$eee,$eee,$fff,$fff,$eee,$eee‚(ш‘ŒXКс,$ddd,$ddd,$ccc,$ccc dc.w $bbb,$bbb,$aaa,$aaa,$aaa,$999,$999,$999 dc.w $555,$555,$666,$666,$777,$777,$888,$888,$999,$999,$aaa dc.w $bbb,$ccc,$ddd,$eee,$fff,$eee,$ddd,$ccc,$bbb,$aaa,$999 dc.w $999,$888,$777,$777,$666,$666,$666,$555 dc.w $ddd,$ddd,$ddd,$ddd,$ddd,$eee,$eee,$eee,$eee,$eee,$eee dc.w $fff,$fff,$fff,$fff,$fff,$fff,$fff,$fff,$eee,$eee,$eee dc.w $eee,$eee,$eee,$ddd,$ddd,$ddd,$ddd,$ddd bobvisspcX: dc.b 0 bobvisspcY: dc.b 0 bobinvspcX: dc.b 0 bobinvspcY: dc.b 0 bobvisspdX: dc.‚)ш’zЮPb 0 bobvisspdY: dc.b 0 bobinvspdX: dc.b 0 bobinvspdY: dc.b 0 dotvisspcX: dc.b 0 dotvisspcY: dc.b 0 dotinvspcX: dc.b 0 dotinvspcY: dc.b 0 dotvisspdX: dc.b 0 dotvisspdY: dc.b 0 dotinvspdX: dc.b 0 dotinvspdY: dc.b 0 X1=6 Y1=6 X2=6 Y2=6 changerpos: dc.l changedat changerdelay: dc.w 0 changedat: dc.b $00,$1e,$1e,$3c,$04,$08,$00,$08,$00,$10,$10,$10,$06,$08,$00,$04 dc.b $30,$30,$10,$10,$06,$06,$06,$06,$10,$10,$20,$10,$08,$00,$00,$00 dc.b $3c,$3c,$34,$38,$08,$0a,$04,$06,$10,$30,$20,$20,$04‚*чбГ ,$00,$04,$00 dc.b $1e,$1e,$1e,$1e,$00,$00,$06,$0a,$00,$10,$10,$00,$06,$06,$06,$06 dc.b $00,$0c,$10,$30,$0e,$0c,$0a,$00,$00,$00,$10,$10,$0c,$08,$00,$08 dc.b $02,$20,$00,$0c,$00,$02,$08,$0c,$0c,$0c,$08,$20,$0c,$08,$0a,$00 dc.b $ff dc.w $ddd,$ddd,$ddd,$ddd,$ddd,$eee,$eee,$eee,$eee,$eee,$eee dc.w $fff,$fff,$fff,$fff,$fff,$fff,$fff,$fff,$eee,$eee,$eee dc.w $eee,$eee,$eee,$ddd,$ddd,$ddd,$ddd,$ddd bobvisspcX: dc.b 0 bobvisspcY: dc.b 0 bobinvspcX: dc.b 0 bobinvspcY: dc.b 0 bobvisspdX: dc.„ш”п{дм   !"#$&'()*,-./1235679:;=>?ABCEFHIJLMNџџ       ŸŸŸŸŸžžžœœ››šš™™˜——–••”“’’‘ŽŒŒ‹Š‰ˆ‡†…„ƒ€~}|{yxwvusrqpnmljihfedba`^][ZYWVUSRPONLKIHGEDCA@>=<:98654210/-,+*('&%$#„ш•т‚зл!    !"$%&'(*+,-/01245689:<=>@ABDEGHIKLMOPRSTVWYZ[]^_abdefhijlmnoqrstvwxyz|}~€‚ƒ…†‡ˆ‰Š‹‹ŒŽ‘’’“”••–——˜˜™šš››œœœžžžŸŸŸŸŸ      џџ„ш€џѕ€‚ш—ђ€№,a6 clr.l d0 clr.l d1 clr.l d2 clr.l d3 move.l #$7f000,d4 move.l #$7f2d4,d5 move.l #$7f000,d6 move.l #$7f2d4,d7 move.b dotvisspcX,d0 move.b dotvisspcY,d1 move.b dotinvspcX,d2 move.b dotinvspcY,d3 dot_spcset2: move.l d4,(a6) move.l d5,4(a6) move.l d6,8(a6) move.l d7,12(a6) add.l d0,d4 add.l d1,d5 add.l d2,d6 add.l d3,d7 add.l #16,a6 cmp.b #$ff,(a6) bne dot_spcset2 rts bob_spcset: lea bob_pos,a6 clr.l d0 clr.l d1 clr.l d2 clr.l d3 move.l #$7f000,d4 move.l ‚ш˜рS@М#$7f2d4,d5 move.l #$7f000,d6 move.l #$7f2d4,d7 move.b bobvisspcX,d0 move.b bobvisspcY,d1 move.b bobinvspcX,d2 move.b bobinvspcY,d3 bob_spcset2: move.l d4,(a6) move.l d5,4(a6) move.l d6,8(a6) move.l d7,12(a6) add.l d0,d4 add.l d1,d5 add.l d2,d6 add.l d3,d7 add.l #16,a6 cmp.b #$ff,(a6) bne bob_spcset2 rts control: dc.l 0 screenI: dc.l $6b000 screenII: dc.l $70000 screenIII: dc.l $75000 bob_pos: dc.l $7f000,$7f2e4,$7f100,$7f2d4 dc.l $7f010,$7f2f4,$7f108,$7f2f4 dc.l $7f‚ш™ТcЂ‘020,$7f304,$7f110,$7f314 dc.l $7f030,$7f314,$7f118,$7f334 dc.l $7f040,$7f324,$7f120,$7f354 dc.l $7f050,$7f334,$7f128,$7f374 dc.l $7f060,$7f344,$7f130,$7f394 dc.l $7f070,$7f354,$7f138,$7f3b4 dc.l $7f080,$7f364,$7f140,$7f3d4 dc.l $7f090,$7f374,$7f148,$7f3f4 dc.l $7f0a0,$7f384,$7f150,$7f414 dc.l $7f0b0,$7f394,$7f158,$7f434 dc.l $7f0c0,$7f3a4,$7f160,$7f454 dc.l $7f0d0,$7f3b4,$7f168,$7f474 dc.l $7f0e0,$7f3c4,$7f170,$7f494 dc.l $7f0f0,$7f3d4,$7f178,$7f4b4 dc.l $7f100,$7f3e4,$7f180,$7f4d4 d‚шšJџДцc.l $7f110,$7f3f4,$7f188,$7f4f4 dc.l $7f120,$7f404,$7f190,$7f514 dc.l $7f130,$7f414,$7f198,$7f534 dc.l $7f140,$7f424,$7f1a0,$7f554 dc.l $7f150,$7f434,$7f1a8,$7f574 dc.l $7f160,$7f444,$7f1b0,$7f594 dc.l $7f170,$7f454,$7f1b8,$7f2d4 dc.b $ff even dot_pos: blk.l 192,0 dc.b $ff even scroll_pos: dc.l txt scroll_count: dc.b 0 charsval: dc.b "abcdefghijklmnopqrstuvwxyz0123456789,.'?!:()- " even charsadd: dc.l $7f800,$7f803,$7f806,$7f809,$7f80c,$7f80f,$7f812,$7f815 dc.l $7f818,$7f81b,$7f81e‚ш›Žбm,$7f821,$7f824,$7f968,$7f96b,$7f96e dc.l $7f971,$7f974,$7f977,$7f97a,$7f97d,$7f980,$7f983,$7f986 dc.l $7f989,$7f98c,$7fad0,$7fad3,$7fad6,$7fad9,$7fadc,$7fadf dc.l $7fae2,$7fae5,$7fae8,$7faeb,$7faee,$7faf1,$7faf4,$7fc38 dc.l $7fc3b,$7fc3e,$7fc41,$7fc44,$7fc47,$7fc4a wave_pos: dc.l $7f2d4 dc.l $7f2d8 dc.l $7f2dc dc.l $7f2e0 dc.l $7f2e4 dc.l $7f2e8 dc.l $7f2ec dc.l $7f2f0 dc.l $7f2f4 dc.l $7f2f8 dc.l $7f2fc dc.l $7f300 dc.l $7f304 dc.l $7f308 dc.l $7f30c dc.l $7f310 dc.l $7f314 dc.l $7‚шœБЃБf318 dc.l $7f31c dc.l $7f320 dc.l $7f324 dc.l $7f328 dc.l $7f32c dc.l $7f330 dc.l $7f334 dc.l $7f338 dc.l $7f33c dc.l $7f340 dc.l $7f344 dc.l $7f348 dc.l $7f34c dc.l $7f350 dc.l $7f354 dc.l $7f358 dc.l $7f35c dc.l $7f360 dc.l $7f364 dc.l $7f368 dc.l $7f36c dc.l $7f370 dc.l $7f374 dc.l $7f378 dc.l $7f37c dc.l $7f380 dc.l $7f384 dc.l $7f388 dc.l $7f38c dc.l $7f390 dc.l $7f394 dc.l $7f398 dc.l $7f39c dc.l $7f3a0 dc.l $7f3a4 dc.l $7f3a8 dc.l $7f3ac dc.l $7f3b0 dc.l $7f3b4 dc.l $7f3b8 dc.‚шbцШXl $7f3bc dc.l $7f3c0 dc.l $7f3c4 dc.l $7f3c8 dc.l $7f3cc dc.l $7f3d0 dc.l $7f3d4 dc.l $7f3d8 dc.b $ff txt: dc.b " " dc.b " welcome to your first experience of the cosmiticial" dc.b " orgasm in democodin' !!! we (in kefrens) are proud to p" dc.b "resent ya ... bouncing bones ... coding, painting and m" dc.b "usic was done by razmo of the megamighty kefrens. theese" dc.b " words of wisdom was typed by icu2 of the same group (kef" dc.b "rens) ... first of all, i‚шžПuEG wanna welcome our newest members" dc.b " to this gang .. we says hi to all members of: atomic team" dc.b " and all members of: defcon 5 .... if you wanna contact the" dc.b " untouchable (well almost !!) kefrens, ya should write to: " dc.b " k e f r e n s p o s t e r e s t a n t e 3 4 5 0" dc.b " a l l e r o e d d e n m a r k .... all scandinavian" dc.b " lamerletters will n o t be returned (discs will be taken for" dc.b " presents !!!) if you not have guessed i‚ шŸsKcMt yet (think not !) " dc.b " this scrolly waz written at the great copyparty held by bami" dc.b "ga sector one and the warfalcons (good luck guys !!) in denma" dc.b "rk .. we sends our best regards to theese crews for a nice ti" dc.b "me !! our special goldies will reach the following crews in" dc.b " ranked order ofcourse !!! subway and the dream team rebe" dc.b "ls northstar and fairlight tsk-crew and the accummulators" dc.b " cosmos the silents bs1 (dk) the band ‚!ш ŸB| mad monks x-" dc.b "men deathstar (germany) the agents it trilogy the sup" dc.b "ply team plasma force sunriders the web inc. triangle " dc.b " the dominators accession coolcat (australia) alcatraz (" dc.b "new !) zub zero (new !) top swap the link the gang .." dc.b ".. i'm sorry, if yo not waz mentioned but i lost my greetinglis" dc.b "t at home ... to those fellows i can only say one thing: sorry" dc.b " !!! ok ! i will now leave this keyboa‚"ш‹Х­rd to another member of" dc.b " kefrens ... see ya !!! hi there thiz is the whiz" dc.b " kid typing a few lines for your entertainment, so what can" dc.b " i write, let's see...... how about some slagging off to a" dc.b " dude who promised a demodisc for a long time ago, but we have" dc.b " still not seen anything from him (he knows it when he sees" dc.b " this text.!!!) i'm fresh out off words, so i'll turn " dc.b "the board over to someone else....... " dc‚ шЂt"ja5 add.w #$24,a5 move.b 0(a6),0(a5) move.b 1(a6),1(a5) move.b 2(a6),2(a5) move.b 0+40(a6),0+80(a5) move.b 1+40(a6),1+80(a5) move.b 2+40(a6),2+80(a5) move.b 0+80(a6),0+160(a5) move.b 1+80(a6),1+160(a5) move.b 2+80(a6),2+160(a5) move.b 0+120(a6),0+240(a5) move.b 1+120(a6),1+240(a5) move.b 2+120(a6),2+240(a5) move.b 0+160(a6),0+320(a5) move.b 1+160(a6),1+320(a5) move.b 2+160(a6),2+320(a5) move.b 0+200(a6),0+400(a5) move.b 1+200(a6),1+400(a5) move.b 2+200(a6),2+400(a5) move.b 0+240(a6),0‚шЃ№Йf+480(a5) move.b 1+240(a6),1+480(a5) move.b 2+240(a6),2+480(a5) move.b 0+280(a6),0+560(a5) move.b 1+280(a6),1+560(a5) move.b 2+280(a6),2+560(a5) rts scroll_wave: lea wave_pos,a0 clr.l d7 move.b #3,d7 scroll_wave2: move.l screenII,a6 move.l #$73e80,a5 add.w d7,a5 add.w d7,a6 move.l (a0),a1 clr.w d0 move.w (a1),d0 add.w #40,d0 mulu #80,d0 add.w d0,a6 move.b (a5),(a6) and.b #$f0,(a6) move.b 80(a5),80(a6) and.b #$f0,80(a6) move.b 160(a5),160(a6) and.b #$f0,160(a6) move.b 240(a5),240(a6) ‚шЄp?aYand.b #$f0,240(a6) move.b 320(a5),320(a6) and.b #$f0,320(a6) move.b 400(a5),400(a6) and.b #$f0,400(a6) move.b 480(a5),480(a6) and.b #$f0,480(a6) move.b 560(a5),560(a6) and.b #$f0,560(a6) move.l screenII,a6 move.l #$73e80,a5 add.w d7,a5 add.w d7,a6 move.l 4(a0),a1 clr.w d0 move.w (a1),d0 add.w #40,d0 mulu #80,d0 add.w d0,a6 move.b (a5),d0 and.b #$0f,d0 or.b d0,(a6) move.b 80(a5),d0 and.b #$0f,d0 or.b d0,80(a6) move.b 160(a5),d0 and.b #$0f,d0 or.b d0,160(a6) move.b 240(a5),d0 and.b #$0‚шЅqЃЈШf,d0 or.b d0,240(a6) move.b 320(a5),d0 and.b #$0f,d0 or.b d0,320(a6) move.b 400(a5),d0 and.b #$0f,d0 or.b d0,400(a6) move.b 480(a5),d0 and.b #$0f,d0 or.b d0,480(a6) move.b 560(a5),d0 and.b #$0f,d0 or.b d0,560(a6) add.w #10,2(a0) add.w #10,6(a0) cmp.w #$f5a6,2(a0) blt scroll_wave3 sub.w #$2d2,2(a0) scroll_wave3: cmp.w #$f5a6,6(a0) blt scroll_wave4 sub.w #$2d2,6(a0) scroll_wave4: addq.b #1,d7 addq.l #8,a0 cmp.b #$ff,(a0) bne scroll_wave2 rts shiftscreen: cmp.l #$6b000,screenI beq scre‚шІRЅren1 cmp.l #$70000,screenI beq screen2 cmp.l #$75000,screenI beq screen3 rts screen1: move.l #$70000,screenI move.l #$75000,screenII move.l #$6b000,screenIII move.l screenI,d0 move.w d0,planes+6 move.w d0,planes+14 swap d0 move.w d0,planes+2 move.w d0,planes+10 add.w #$28,planes+14 rts screen2: move.l #$75000,screenI move.l #$6b000,screenII move.l #$70000,screenIII move.l screenI,d0 move.w d0,planes+6 move.w d0,planes+14 swap d0 move.w d0,planes+2 move.w d0,planes+10 add.w #$28,plane‚шЇotЕs+14 rts screen3: move.l #$6b000,screenI move.l #$70000,screenII move.l #$75000,screenIII move.l screenI,d0 move.w d0,planes+6 move.w d0,planes+14 swap d0 move.w d0,planes+2 move.w d0,planes+10 add.w #$28,planes+14 rts bob_clear: move.l #$01000000,$dff040 clr.w $dff044 clr.w $dff046 clr.w $dff066 move.l screenIII,$dff054 move.w #%0101011100010100,$dff058 ;move.w #$f0f,$dff180 bsr scroll_wave ;move.w #$f00,$dff180 bsr blitwait rts bob_mover: lea bob_pos,a0 lea dot_pos,a2 bm2‚шЈjЖŽš: ;move.w #$400,$dff180 move.l #$00c20000,control clr.w d0 clr.w d1 move.l screenII,a6 move.l (a0),a1 move.w (a1),d0 move.l 8(a0),a1 add.w (a1),d0 move.w d0,d1 lsr.w #4,d0 lsl.w #1,d0 add.w d0,a6 lsl.w #4,d0 sub.w d0,d1 lsl.b #4,d1 add.b #$0f,d1 add.b d1,control add.b d1,control+2 move.l 4(a0),a1 move.w (a1),d0 move.l 12(a0),a1 add.w (a1),d0 mulu #80,d0 add.w d0,a6 move.l screenII,a5 move.l (a2),a1 move.w (a1),d0 move.l 8(a2),a1 add.w (a1),d0 move.w d0,d1 lsr.w ‚шЉG€уt#3,d0 add.w d0,a5 lsl.w #3,d0 sub.w d0,d1 not.b d1 move.l 4(a2),a1 move.w (a1),d0 move.l 12(a2),a1 add.w (a1),d0 mulu #80,d0 add.w d0,a5 bset d1,(a5) move.l screenII,a5 move.l 16(a2),a1 move.w (a1),d0 move.l 24(a2),a1 add.w (a1),d0 move.w d0,d1 lsr.w #3,d0 add.w d0,a5 lsl.w #3,d0 sub.w d0,d1 not.b d1 move.l 20(a2),a1 move.w (a1),d0 move.l 28(a2),a1 add.w (a1),d0 mulu #80,d0 add.w d0,a5 bset d1,(a5) clr.l d0 move.b bobvisspdX,d0 add.l d0,(a0) move.b b‚шЊœD_obvisspdY,d0 add.l d0,4(a0) move.b bobinvspdX,d0 add.l d0,8(a0) move.b bobinvspdY,d0 add.l d0,12(a0) move.b dotvisspdX,d0 add.l d0,(a2) add.l d0,16(a2) move.b dotvisspdY,d0 add.l d0,4(a2) add.l d0,20(a2) move.b dotinvspdX,d0 add.l d0,8(a2) add.l d0,24(a2) move.b dotinvspdY,d0 add.l d0,12(a2) add.l d0,28(a2) cmp.w #$f2d2,2(a0) blt noset1 sub.w #$2d0,2(a0) noset1: cmp.w #$f5a6,6(a0) blt noset2 sub.w #$2d0,6(a0) noset2: cmp.w #$f2d2,10(a0) blt noset3 sub.w #$2d0,‚шЋ,- %10(a0) noset3: cmp.w #$f5a6,14(a0) blt noset4 sub.w #$2d0,14(a0) noset4: cmp.w #$f2d2,2(a2) blt noset5 sub.w #$2d0,2(a2) noset5: cmp.w #$f5a6,6(a2) blt noset6 sub.w #$2d0,6(a2) noset6: cmp.w #$f2d2,10(a2) blt noset7 sub.w #$2d0,10(a2) noset7: cmp.w #$f5a6,14(a2) blt noset8 sub.w #$2d0,14(a2) noset8: cmp.w #$f2d2,18(a2) blt noset9 sub.w #$2d0,18(a2) noset9: cmp.w #$f5a6,22(a2) blt noset10 sub.w #$2d0,22(a2) noset10: cmp.w #$f2d2,26(a2) blt noset11 sub.w #$2d0,26(a‚ш–†€~z2) noset11: cmp.w #$f5a6,30(a2) blt noset12 sub.w #$2d0,30(a2) noset12: move.l control,$dff040 move.l #$ffff0000,$dff044 move.l #$00240024,$dff060 move.l #$00240024,$dff064 move.l #$7a004,$dff050 move.l #$7a464,$dff04c move.l a6,$dff048 move.l a6,$dff054 move.w #%0000011100000010,$dff058 ;move.w #$200,$dff180 bsr blitwait add.l #16,a0 add.l #32,a2 cmp.b #$ff,(a0) bne bm2 ;move.w #$400,$dff180 rts blitwait: btst #6,$dff002 bne blitwait rts dot_spcset: lea dot_pos‚ш­‚S; scroll_dec2 move.b #0,(a1) addq.l #1,a1 jmp scroll_dec1 scroll_decfin: rts preparements: jsr scroll_dec jsr dot_spcset jsr bob_spcset mainprogram: cmp.b #$b0,$dff006 bne mainprogram ;move.w #$f00,$dff180 bsr bob_clear jsr image ;move.w #$800,$dff180 bsr bob_mover ;move.w #$0f0,$dff180 bsr scroll_main bsr shiftscreen jsr JAM ;move.w #$000,$dff180 jsr changer bra but Draw: add.w #76,d0 add.w #76,d2 movem.l d2-d7/a2-a3,-(a7) moveq #$f,d4 and.w d2,d4 ; low 4 bits sub.w d3,d1 ; ‚шЎєCMHeight mulu #320/4,d3 ; Start address sub.w d2,d0 ; Width blt.s No1 tst.w d1 blt.s No2 cmp.w d0,d1 bge.s No3 moveq #$11,d7 bra.s OctSel ; Octant # No3: moveq #1,d7 exg d1,d0 OctSel: bra.s No4 No2: neg.w d1 cmp.w d0,d1 bge.s Skip moveq #$19,d7 bra.s No4 Skip: moveq #5,d7 exg d1,d0 No4: bra.s OctsSel No1: neg.w d0 tst.w d1 blt.s No11 cmp.w d0,d1 bge.s No12 moveq #$15,d7 bra.s OctSel2 No12: moveq #9,d7 exg d1,d0 OctSel2: bra.s OctsSel No11: neg.w d1 cmp.w d0,d1 bge.s No13 mov‚шЏчЭ8 eq #$1d,d7 bra.s OctsSel No13: moveq #$d,d7 exg d1,d0 OctsSel: add.w d1,d1 asr.w #3,d2 ext.l d2 add.l d2,d3 ; Total offset move.w d1,d2 sub.w d0,d2 bge.s NoMinus ori.w #$40,d7 ; Sign = - NoMinus: lea $dff000,a0 move.w d2,a3 move.w #$ffff,d6 ; LinePtrn WaitBl: btst #6,2(a0) bne.s WaitBl move.w d1,$62(a0) ; 4Y move.w d2,d1 sub.w d0,d1 move.w d1,$64(a0) ; 4Y-4X moveq #-1,d1 move.l d1,$44(a0) ; AFWM+ALWM move.w #320/4,$60(a0) ; BitMap Width in bytes move.w d7,d5 addq.w #1‚шАЮБZe,d0 asl.w #6,d0 addq.w #2,d0 ; Blitsize move.w d4,d2 swap d4 asr.l #4,d4 ; First pixelpos ori.w #$b00,d4 ; Use ABD move.w #$8000,$74(a0) ; Index clr.w d1 NoSpesh: move.l screenII,d7 ; Pointer swap d5 move.w d4,d5 move.b #$ca,d5 ; MinTerms swap d5 add.l d3,d7 WtBl2: btst #6,2(a0) bne.s WtBl2 move.l d5,$40(a0) ; BltCon0 & 1 move.w a3,$52(a0) ; 2Y-X move.l d7,$48(a0) move.l d7,$54(a0) ; Start address of line move.w d6,$72(a0) ; Pattern move.w d0,$58(a0) ; Size mo‚шБРШ4–monobassСˆџџџ§Пш>ћйи0)# џљїёэъчфсрнкйжегбЯЮЫЩЩШЦФУСОНЛЙИЖДВВАЏЏЏЏАГЕИНТЩаитыљ"*05785/' їсЯТТж3k|GЩЗЮ>k}zfN4 §ѕё№ђѕћ '1:AINQSTUSQNJFA;60+% џњі№эщцупмйегбЮЪЧХФРПЛЛЙЖЕДБЏЏЎ­ЌЌЌЌ­АГИМТЩЯитъѕў!%'*+)$іцеШУЮчHs}L еЙХэ#Qr}wfP8"ў§ќќџ%,3:@DHKMNLKIFC?;61,'" §љє№ычурнигбЯЫЩЦХСПМЙЖГВАЎ­ЋЊЉЈЈЉЊЋ­АГЗМУЩазпшяј ќ№рдЫЫж№Frb)ђШНЯњ&Qp|zm\G5$ &,26;?BEFGGFEB>;84/)%  ќїѓющхсойдаЮЩЦУРНКЗДБАЎЌЋЈЇІІЇЇЈЊЌЏВЖКРХЬглуьѕќ  љюсеЮЭжь 4^|wSьЧПаї KivxpaO=.С Т— лЫЪЩШЧЦХФУТ”45percoˆџџџ§СшУДњOилэ<аў,TOп г2п:*ЬМ№ФеыNЦЮмЫкPлЬ№Р/QMLЫ( 7OBѕИЅхТбнIЩаХДіdўэј§ѓИ@gD'еA4:!SSыЃЁеРПнCфуЪЙeџјеЋ1_8ы?;1$SWШ“ЇЭЕЋэ@эйИЛ'n1шИЈ-]7 їBB./\UХ“ІЛЄЋ6ёЯБв>Ub-Й”—ХуЙРUbE$ъИЃШ E2;?F\\!ЖŽ”ЃЫоКЧ T]GуДЈгD68@L`YЙŽ•ЊвџзЛвPZEлВЎи"B6! 5BSaQВ™ЏкџљдМиNVBжВДм!D:# 6FW`LВŽœИнњѓвПмMS;еДЙщ$E:$ 6JY^FќЌ’ЁНтіъаТхJO8бЗПь)E;$#7M[\:іЊ‘–ЇФфѓцЮЦъFJ1џаКЦє,F;&$9O[W3ђЋ“˜­Шх№уЭЪъ!CD+љЯОЭ§.FСшФњ_;$%&§бМНЧгикжааоі іхсь(;;.&,C?0єдЩЪбееевЮвріћ№щэќ,96.-4?A<,ѓиЭЮвееебЮврѕљ№ъ№ў.86//6?@:)СшХ§#шёйЯагеддаЮгтѓџїяьѓ/85008>>7&ёкбвдддгаЮвсёўќѕяюѕ/74018>=5%№мдгеедгаЮдс№ћјѓяяї.64139=;3! ёнздедгвЯЮгсяјїѓ№ёњ/5424:<91 ђрйжждгвЯЮдпэієђ№ѓ§ !/5435:;8/ ѓскжегвбЮЭдпэєѓђёѕџ#06557;;6,ѓтлзжгваЮЮгоъёёђђї#05667;:5+єфнйждвбЮЮеошя№ђѓј#/5667:93)ѓцнижгваЭЮдншюяђѓњ$/5678:72(ѓчойжгвЯЬЭгмцьяђєќ&06789:61'ѓцоиевбЮЬЭвлхыяђі§&05788960%єшпкждваЮЯдмцыяѓіў%.466773.#ѕърлиждбЯадмцыяѓіў#-355652,#ѕътнйзжвабенхыяѓїў $-244430+"їытнкиздввзоць№ѓїџ #+03332-)іытолйиеСшЦўк­вгзнчь№єј #+02210,'іыупмкижгдипчьёѕљ "+/100.+&іыупмлйждейршэђѕњ "*/0/.-)$іьфрнмлзежксщюѓіћ "*./.-+'#ѕьфсонлижзлтъяєїћ ")-.-+)&!ѕыфспомйззлтъяєїќ !)--+*(% іьхтрпнкзимуыёѕј§ !(++*(&#ѕыцусрокийнфьёѕј§ !'**)'%" џєыхусролйкохэђїљў  '*)'&#! џєьхфтсплккпцюђїњў !&)(&%"  џєьчхутрмкмршяѓјњџ  &''%#! ўѓьчхфтпнлнсщяєјћ &'&$"  §ѓычххурнлнтщ№ѕљћ %&$#!§ѓэшчхфсомоуыёіљћ#%#!ћѓьщчхфсонпфьёіљќ ##" ћѓьщшцхтонрцьђїњќСшЧЅЁŠS"" њђэъщчхтпосцюѓїњ§!!ћђэъщшцурптшяєјћў!  њђэъщшцуррущ№ѕљћў  јђэыъшцуссфъ№іљћў  љђюьъщчфссхыђіњќџ јђюьыъчфтуцьђіњќџ  јђяэьъчфтучэѓїњќџ  џјђяэыъчхуфшюєјњ§џ  џјђяюьышхухщяѕјћ§ ўїђяюэышхфцыёіљћ§  ўїѓ№юэышцхчыёіљќў  §їѓ№яюьщчцшэђїњќў  §їѓёяюьщччщюѓїњќў  ќїѓ№яюьщччъюєїњ§ў  ћїѓё№юьъшшыяєјћќџ СшШНЦ˘ ќїѓђ№юьъщщь№ѕљћ§џ  ћїєё№юьъщъэёіљќў  ћїѓђ№яэыъыюђіњќ§  ћїєђёяэыыыяђїњќў  њїєђёяюьыь№ѓјњќў  џњїєђёяэьыэ№єјњ§ў  џњїєѓђ№юььюёѕјћ§ў  џћїѕѓђ№юээяђіљћ§џ  џњїєѓђ№яэюяѓіљќўџ  ўњїѕѓђ№яюю№ѓїњќў  ўњјієђё№яяёєїњќў  ўњїѕєђё№я№ђєїњќў  §њїѕєѓё№№№ђѕјћ§ў  §њїѕєђё№№ёѓѕјћ§ў  §њјіѕѓђёёђєіљћ§џ  §њїСшЩчузЄіѕѓђёёђѕїњќ§  ќњїієѓђђђѓєїњќўџ §њјіѕєѓѓђѓѕјњќўџ ќњјіѕєѓђѓєіјћќў џќњїіѕєѓѓѓєіљћ§ў џќњјіѕєѓѓєѕіљћ§џ џќњјїіѕєєєіїљќ§џ ўќњјїѕѕєєѕіјњќўџ ўќњјїіѕѕєѕіјњќўџ џќњјїііѕѕіїјћќў ўќњјїіѕѕііїљћ§ў ўќњјїііѕііјљћ§џ ўќњјїїіііїјњћ§џ ўќњљјїїїїїљњќўџ §ћњјїїїіїјљћќўџ §ћњјјїїїїјљћСшЪЮбО}ќўџ §ќњљјјјјјјљћ§ўџ џ§ќњљјјјјјљњћ§ўџџ§ћњљјјјјјљњќ§џџ§ћњљјјјјљљњќ§џџ§ќњљљљљљљњћќўџџ§ћњљљљљљњњќ§ўџў§ћњљљљљљљњћ§ўџџ§ћњњљњњљњњћ§ўџў§ћњњњљљњњћћ§ўџў§ќњњњљњњњћќ§ўџўќћњњњњњњњћќ§џў§ћћњњњњћћќ§ўџџў§ћћњњњњћћќ§ўџџў§ћћњњњњћћќ§ўџў§ќћћћћћћќќ§ўџС шЫЫЦС€џў§ќћћћћћћћќ§ўџџў§ќћћћћћћћ§§ўџў§ћћћћћћќќќўўџў§ќќќћќќќќ§ўџџ§§ќћќћћќќ§§ўџџ§§ќќќќќќќќ§ўџџў§ќќќќќќќ§§ўџўў§ќќќќќќќ§§ўџџ§§ќќќќќќќ§ўџџџў§§ќќќќќ§ќ§ўџџў§§ќќ§§§§ўўџџўў§ќќќќќ§§ўџџџўў§§§ќќ§§§ўўџџџў§§§§§§§§ўџџџўў§§§§§§§§ўўџС lйтийџўў§§§§§§§§ўўџџўў§§§§§§§ўўџџџўў§ў§§§§ўўўџџўў§§§§§§ўўџ§ћњљјјјјљљњќ§џџ§ќњљљљљљљњћќўџџ§ћњљљљљљњњќ§ўџў§ћњљљљљљљњћ§ўџџ§ћњњљњњљњњћ§ўџў§ћњњњљљњњћћ§ўџў§ќњњњљњњњћќ§ўџўќћњњњњњњњћќ§џў§ћћњњњњћћќ§ўџџў§ћћњњњњћћќ§ўџџў§ћћњњњњћћќ§ўџў§ќћћћћћћќќ§ўџЬ Э>ЂедгвбаЯЮЭ 4Ш PopSnare2ˆџџџ§ЬшЮи›|№'ќфБъ€ѕ ›€@ж0WђXс3›|A”:Њ Њч‚вхАРнЦёщуђxlЎ~HbDї€,d:4g Jг,ю<ќБѓп№нНмЯеЬжУЇьы™ЅтуЙšгц”у%ЗК1Ей!п PъZ(SQ!I'eU?c&8C?8,' "6G"#љ HЭ§%ъ ј!к(ѕДу ѕрєі№ЌиъфЯепЙгЩХРФМ™ИЇЃДЕПД™ХГФЮЫпвктмру№'њ1љ1J--T8Jd;NcbQwIWy`[n^qvBh}b8S;LJэњc/џпмъфѓСЁюТжЮЮуйНђСданЕППзЊЦУИВМЕВЉЂУПЌ ТПдЭ‰ЦйЈТшп­ЯяцЫўзэсџў)*&+B4DFVCkqUo_jn?^^YfndY8!9QcIVU==(і"1ќ+эп"ѓмѓэќ ќСљ ЪШЙЙнщП–йрТТЊЬЈІШИŠЎ­˜Ќ‰бЅЊЗаеЊЇГ ваилѓпвьы"=@2Y@8<1NAae_OEP_lm€O@lWQbP=E2GL.ѓ>ъ§ъяфЮќЩпИКНвзГУ‹НЬшЯ"/АЦ˜в—хšЙЁ•чЏ‘ГЬЫ ЮкТЗвѕешшрѓЭ§в"C,4*7&M0.-=S0n,J[:tNEeE6)яяєьїьуцшъњбЭГ љЊЈЬжбвЂВОсШœИМЬЅŽзоЧЫНъпЯјТОђыўЩмвѕЮ(ш№Ьша­/Ш$ў, 22#%<)*GHFA2"; *PD`W*/8,#"D№ J ю*Aсх.іміяоштњХпѕШЦў­дщ™ юО№ІѕМмЙдњЩквЈа№цжрнЪЦљХгшйлЯьёѕр'8е9*. !@ *YG;F8_2<2.1H1D >ч=љќюєњ ычащєхлњЪруМдШПиЦщПцЩйъЛШябљкгщЛйћЮпэщмўїўяф е№ћуіњ ' 5 )#*4! ;MOI0/6/ 3 I,ђ(ўыянњзќ оуљёЫо ќкњбч Ръžџхэ§гяюњ№хшюњцыгьѕмјщхыёшэФђтыў , &<оўћ<щ  #щќљё&!уу§цёѕ чыёф  №ћћю ёщіѕћёчAшхз сцюякќюыђјм$ѓїчєјэћѕэ эпсџ эўісЬшб-њЦІ$ч%юя'§іыў4 ћ8§§"и  ц ц№юфќрчї л љьћоЭыъффќ§ьд ђеёухяјнї §ю џѓь № ѕћэ ћ .ђ$ўј % ыщ+ шњ!"їъїў§§№ її ё тїхђџўштџ§мёдђяњ ћд№ узѕ ещїю я§ѕт јі №яї3д § іъіј сћ  ю ыцј%й ю&№ўќ ё ъь"ђюћи§ §ћщъ шјљяпњх§ѓўэшђъљєяюћ ььїњ №ѕэ ѓіє ќ §ї#ќ/ љ .ј&ц§ћ яєќјњњџ №ъсѓ шярјы§ ћююэшо§єєфњёњњўцщг њ§ыњ§юя-ю ѓћћ їќ§!ЬшвŒэі њєіє ќуцчя" ј љч§ђ№і№§ёј ј §є ьќќџ ђьн ц§џ ыћќѓєя §ѕојшщќђл чіяј ѓхњ ђђ ћ ќ њ3я§ ў ћ љ№ілрѕщя ў ћц§ќњќр№ ъёшхїќъ§јлїцњ§щщ шѓџ/ ј э ѓќ§ ќя їюў юэіёѕџъ№ўџў§ њ ѓ ѕ ќјт §њѕыќїріџіюѕцфџџщђђќўџює## § ў ућ §џэь ѕхїљтњсљёрћ щніь§ ыїчњяяєўії ћўє,  і њѕ1х §ћ њ йтјцќэ ѓќэџьє џјѓїїєљєєѕђ§ їўїЬшгМ†у7эя§ѓђјёўњђњђщ  ќў    єя њћѕ§ѓщѓіяќћшъяѓјќђђыншљёњтѕќђшѕћч§ќёѓ№ќјћ ъ ќњ ї љ  њќ 'ї! ї ўёђ§єѕѕѓќўэљёљђїѓћцє№ўыыѓчіюѓцфѓпьћёјѕѓєў ѕљџ ќўљ љџюѕў "ўџ # ќѕ №ћђјљііљѕыјїњ№ічр ђўьѓ їьѕѕяїљћъё§ќ ѕєёёўцўё є§ѓ є ќї ј ћ љ§і шќћя юђњціљђпјќ№ыф§ќєі№ћѓњъѓрќсфџ§џэ џѕї  ієј§   ћ ј љ§ §ўјїїЬшд†h.Љ§ёўыєѕяўљы§ѕќђј§ѓёёќіћљіѓњћ§іќ ѕіўјўўќђ џћќљ §і   јѕ ўўћ  єќ§ §џљ єя і§ѕєџэјєљ §јўџљ§ьїћў§§ќѓћџћџ љ§ў љѕўџ § ёќ §џћіљњњє јљ ќё њ ѕ џёџњќќєћњѕ§њїџќї ы§ўёћ ўџњ§эљ ў§ўњ њџі џљѕ ќ їєіћїќ ёњђ§ѕэђ ћўљї їў ј ѓњђў ьќіљєќћјћџћџћѕў§  јќћі іњў і ўѕњ џё ј§ќїџњѓїя§ њѕњюѓєќљ ћ№ћ њіџ ъџїўћњ №ў §ў ў ў џїэ џџЬшеЉoХй ћ ђўћјє§џњ §шѓє ьљїџћўђћѕўє§№ѓўџђћ§љ§ќќќјёќ§ўљўњшћ§ў ї ї  ў ј§ѕїї џџџњ ўі§§ћіњ №љіўћѕіљњяљ§§јџїћїћљџ ііљјћ ѕ §ўќ §ћџљ  ћїё њє њљџў§ўў і љѓ њјџђѕћћћїљў ј ќјљ ўњіџ §љџњј§џћџѓєјјџїќј њњќўџ§ўё§є єњ ђњџќ ўё§јљљ џўњџ  љўђ ўњњџўќњ ђўџљ§ №љ їєќэ №§ ћљіјэ іїљњєѕ №љњњјџњ§Ь `†P 'ќџџѕј њ  ў ўѕ  ћѕ і§њџ§ўіњї ѕќџёіяўќџјєєћџё§ћѓѕјљщўџћўљєќ§ §џљ єя і§ѕєџэјєљ §јўџљ§ьїћў§§ќѓћџћџ љ§ў љѕўџ § ёќ §џћіљњњє јљ ќё њ ѕ џёџњќќєћњѕ§њїџќї ы§ўёћ ўџњ§эљ ў§ўњ њџі џљѕ ќ їєіћїќ ёњђ§ѕэђ ћўљї їў ј ѓњђў ьќіљєќћјћџћџћѕў§  јќћі іњў і ўѕњ џё ј§ќїџњѓїя§ њѕњюѓєќљ ћ№ћ њіџ ъџїўћњ №ў §ў ў ў џїэ џџж_m!цфз4`DP-INTROpзHиˆ­№z-,A@?>=<;:987LKJIHGFEDCBWVUTSRQPONMba`_]\[Р('&%$#"! 3210/тсрпонмлкйия‚4ыPicsжуџџџ§зшйЅЩ–/_ Ÿ П пџнЛ™fD"џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўзшк€rџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџзшлђ‚џџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўзшм€rГџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўзшнrЅџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџзшођ}џџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўзшпr‘џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўзшр€rЋџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўз шс€ђ†џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџз штђtџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџз ш/€w;џџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўу6џџкзже  +*)('&%$#"!6543210/.зџџџ§ф?х‡З!ЇІЅЄЃЂЁ ŸžГВБАЏЎ­ЌЋЊЉОНМЛКЙИЗЖЕДЩШЧЦХФУТСРПдгвбаЯЮЭЬЫЪпонмлкйихwˆ4)Fontжџџџ§фшиЋt1ђ  €€ €€ 6`я№žџяЗИрџяСžџџ‹яр 00<ћрџ№ОџпЄрџпСОџџяр`8№9ˆр€lОќ рќСў€ Яр рР;џ№?€рўўрўўррр?џ№=бŽh ;Ÿ€ўƒИярƒМў?ОGр/ра?џ№7§Ž@;Ÿ€ўИярМў?Очр]рш;ћ№7Їў2П€ўиярміНŒїрц`œ?ї№žЇ‡ОŸП€~ј/ЭрќЮПїра .?џ№ќGП‚џŸƒnј/џ`ќоџПЗПрCрц0ч†E~`hg|{zyxwvutsr‡†…„ƒ‚€~}’‘ŽŒ‹Š‰ˆœ›š™˜—–•”“Јч[ 4AIntro.Sжџџџ§цшЈє‹Е•********************************** * Use one Mega-Byte !!!!! * ********************************** * ri 'Font' -> 'Font' * * ri 'Pics' -> 'Pic' * * ri 'Song' -> 'snd1' * * wi 'introstart' to 'introstop' * ********************************** org $2c000 load $2c000 ScrollBPLx = 448 ;Breite der ScrollBitPlane ScrollBPLy = 36 ;Hoehe der ScrollBitPlane ScrollBPLyFont = 36 FontBPLx = 400 ;Breite der FontBitPlane FontBPLy = 204 ;Hoehe der Fontќ шщ\;џ†$0002 dc.w $0003,$0003,$0003,$0003,$0003,$0003 dc.w $0004,$0004,$0004,$0004,$0004,$0004 dc.w $0005,$0005,$0005,$0005,$0005,$0005 align 4 counter5: dc.b $0 counter6: dc.b $0 counter7: dc.b $61 even contab: dc.b 112,113,114,115,116,117,118,120,122,124,126,128,130,133 dc.b 136,139,142,146,150,154,158,162,166,169,172,175,178,180 dc.b 182,184,186,188,190,191,192,193,194,195,196,195,194,193 dc.b 192,191,190,188,186,184,182,180,178,175,172,169,166,162 dc.b 158,154,150,146,142,139,136ќ!шъ=@>,133,130,128,126,124,122,120 dc.b 118,117,116,115,115,114,113 align 4 even make1: move.w #$4b,d1 loop: move.l d0,(a4) add.l #$02000200,d0 move.w (a0),d4 and.w #$0001,d4 or.b d4,$03(a4) move.w (a0)+,d4 lsr.w #$01,d4 move.b d4,$01(a4) add.l #$04,a4 clr.l d3 lea taba,a3 move.b (a1)+,d3 lsl.b #$02,d3 add.l d3,a3 move.l (a3),(a4)+ dbf d1,loop clr.l (a4)+ rts stars: lea xpos,a0 lea xpos+$150,a1 bsr.s make2 lea xpos+$a8,a0 lea xpos+$1a4,a1 bsr.s make2 lea xpos,aќ"шыЬRV0 lea xpos+$150,a1 lea $70000,a4 move.l #$60006100,d0 bsr.s make1 lea xpos+$a8,a0 lea xpos+$1a4,a1 lea $71000,a4 move.l #$61006200,d0 bsr make1 rts make2: move.w #$4b,d1 lop2: clr.w d0 move.b (a1)+,d0 move.w (a0),d4 add.w #$01,d4 add.w d0,d4 and.w #$01ff,d4 move.w d4,(a0)+ dbf d1,lop2 rts taba: dc.l $00010000 dc.l $00010000 dc.l $00000001 dc.l $00000001 dc.l $00010001 dc.l $00010001 xpos: dc.b $0,$3e,$1,$4d,$1,$bb,$1,$74,$1,$98,$0,$25,$0,$fa,$0,$e8,$0,$36 ќ#шьхzО[dc.b $1,$e5,$1,$67,$1,$f,$1,$f0,$0,$a3,$1,$e8,$1,$dd,$1,$11,$1,$20,$1 dc.b $56,$1,$67,$1,$7a,$1,$54,$0,$e7,$0,$aa,$0,$50,$1,$78,$1,$15,$0 dc.b $d9,$0,$1c,$1,$88,$1,$6,$1,$20,$1,$7a,$1,$52,$0,$76,$0,$ed,$0,$41 dc.b $0,$f7,$0,$1c,$0,$b9,$1,$23,$1,$f9,$0,$94,$1,$50,$1,$df,$0,$c2 dc.b $1,$c6,$1,$97,$1,$e3,$0,$a5,$0,$d2,$0,$d9,$1,$75,$0,$70,$0,$70 dc.b $1,$86,$1,$5c,$1,$6d,$1,$dd,$0,$86,$1,$8,$0,$f1,$0,$46,$0,$f7,$1 dc.b $37,$0,$5a,$0,$a7,$0,$7d,$1,$23,$1,$9e,$0,$3f,$0,$4,$0,$25,$0,$55 dcќ$шэtŒЌ .b $1,$6c,$1,$c,$1,$dc,$1,$38,$1,$1b,$1,$6f,$0,$de,$0,$34,$0,$ae,$1 dc.b $aa,$1,$d2,$0,$e7,$0,$63,$1,$a3,$1,$25,$1,$b1,$0,$3a,$1,$f5,$1 dc.b $29,$1,$3a,$1,$63,$1,$b3,$0,$c3,$0,$74,$0,$22,$0,$b4,$0,$8e,$1 dc.b $2a,$0,$35,$0,$58,$0,$88,$1,$6,$1,$c0,$0,$d4,$0,$37,$1,$18,$0,$b6 dc.b $0,$f5,$1,$4f,$1,$dd,$0,$ba,$0,$6c,$0,$e0,$1,$cb,$1,$8f,$0,$93 dc.b $0,$f8,$0,$55,$1,$fa,$1,$b8,$0,$cf,$1,$74,$1,$2e,$0,$e5,$1,$6d dc.b $1,$b1,$0,$b3,$0,$23,$0,$d2,$0,$ab,$0,$cc,$1,$46,$1,$9f,$0,$1f dc.b $1,$ќ%ш4mˆw61,$1,$37,$1,$3d,$1,$70,$1,$66,$1,$b7,$0,$87,$1,$b1,$0,$c6 dc.b $1,$ac,$0,$ef,$0,$2c,$0,$c6,$1,$e3,$0,$27,$1,$66,$0,$ef,$0,$60 dc.b $0,$4b,$0,$ae,$0,$78,$0,$1d,$0,$87,$0,$21,$0,$2e,$1,$59,$0,$40 dc.b $1,$30,$0,$d6,$0,$5e,$2,$5,$0,$2 blk.b $2,$3 dc.b $5,$3 blk.b $2,$5 dc.b $1,$5,$0,$3,$2,$3,$0 blk.b $2,$2 dc.b $1 blk.b $2,$5 dc.b $0,$2,$4,$5,$1,$2,$3,$5 blk.b $3,$3 blk.b $2,$5 dc.b $0,$1,$5 blk.b $2,$3 dc.b $1 blk.b $2,$0 dc.b $5,$3,$4,$1 blk.b $2,$5 dc.b $3,$5,$1,$0,$1 blk.b $2,$2 dcќшяPд R2 dc.w $0108,$0000 dc.w $010a,$0000 dc.w $0104 priority:dc.w $0000 dc.w $0182 color: dc.w $0000 dc.w $0192 color2: dc.w $0000 dc.w $0100,$2600 dc.w $4d09,$fffe,$0180,$0111,$0100,$0000 dc.w $4e09,$fffe,$0180,$0222 dc.w $4f09,$fffe,$0180,$0333 dc.w $5009,$fffe,$0180,$0444 dc.w $5109,$fffe,$0180,$0555 dc.w $5209,$fffe,$0180,$0666 dc.w $5309,$fffe,$0180,$0777 dc.w $5409,$fffe,$0180,$0888 dc.w $5509,$fffe,$0180,$0666 dc.w $5609,$fffe,$0180,$0555 dc.w $5709,$fffe,$0180,$0444 dc.w ќш№9{7ћ$5809,$fffe,$0180,$0333 dc.w $5909,$fffe,$0180,$0222 dc.w $5a09,$fffe,$0180,$0111 dc.w $5b09,$fffe,$0180,$0000 dc.w $00e0,$0005,$00e2,$02bc dc.w $00e4,$0005,$00e6,$251e dc.w $00e8,$0005,$00ea,$477e dc.w $00ec,$0005,$00ee,$69de dc.w $00f0,$0005,$00f2,$8c3c dc.w $008e,$296a dc.w $0090,$29d1 dc.w $0092,$002c dc.w $0094,$00d2 dc.w $0108,$0000 dc.w $010a,$0000 dc.w $0104,$0000 dc.w $0182,$0ccc dc.w $0184,$0aaa dc.w $0186,$0888 dc.w $0188,$0666 dc.w $018a,$0444 dc.w $018c,$02ќшёК Rр22 dc.w $018e,$00cc dc.w $0190,$00aa dc.w $0192,$0088 dc.w $0194,$0066 dc.w $0196,$0044 dc.w $0198,$0022 dc.w $019a,$0c00 dc.w $019c,$0a00 dc.w $019e,$0800 dc.w $01a0,$0600 dc.w $01a2,$0400 dc.w $01a4,$0200 dc.w $01a6,$0c0c dc.w $01a8,$0a0a dc.w $01aa,$0808 dc.w $01ac,$0606 dc.w $01ae,$0404 dc.w $01b0,$0202 dc.w $01b2,$040f dc.w $01b4,$020f dc.w $01b6,$0fff dc.w $01b8,$0fff dc.w $01ba,$0fff dc.w $01bc,$0fff dc.w $01be,$0fff dc.w $0100,$5200 dc.w $8409,$fffe,$0180,$0000 dc.w ќшђі‹мѕ $00e0,$0004,$00e2,$6b36 dc.w $00e4,$0004,$00e6,$9736 dc.w $00e8,$0004,$00ea,$c336 dc.w $008e,$296a dc.w $0090,$29d1 dc.w $0092,$002c dc.w $0094,$00d2 dc.w $0104,$0000 dc.w $0108,$002c dc.w $010a,$002c dc.w $0182,$0840 dc.w $0184,$0730 dc.w $0186,$0620 dc.w $0188,$0510 dc.w $018a,$0400 dc.w $018c,$0300 dc.w $018e,$0500 dc.w $0100,$3200 waitab2: blk.w 330,0 dc.w $0182,$0840 dc.w $0184,$0730 dc.w $0186,$0620 dc.w $0188,$0510 dc.w $018a,$0400 dc.w $018c,$0300 dc.w $01ќшѓж }Х8e,$0500 waitab: blk.w 340,0;340 dc.w $f909,$fffe,$0180,$0000 dc.w $fa09,$fffe,$0180,$0001 dc.w $fb09,$fffe,$0180,$0002 dc.w $fc09,$fffe,$0180,$0003 dc.w $fd09,$fffe,$0180,$0004,$0100,$1200,$00e0,$0004,$00e2,$6000 dc.w $fe09,$fffe,$0180,$0005 dc.w $fe6f,$fffe,$0180,$0005 dc.w $01a2,$0333 dc.w $01a4,$0666 dc.w $01a6,$0ddd dc.w $0120,$0007 dc.w $0122,$0000 dc.w $0124,$0007 dc.w $0126,$1000 dc.w $0128,$0000 dc.w $012a,$03f0 dc.w $012c,$0000 dc.w $012e,$03f0 dc.w $0130,$000ќшєwNљЙ0 dc.w $0132,$03f0 dc.w $0134,$0000 dc.w $0136,$03f0 dc.w $0138,$0000 dc.w $013a,$03f0 dc.w $013c,$0000 dc.w $013e,$03f0 DC.W $00E0,$0005 DC.W $00E2,$224e+$8000;2280 DC.W $00E4,$0005 DC.W $00E6,$2b80+$8000 DC.W $00E8,$0005 DC.W $00EA,$3480+$8000 DC.W $0100,$3200 DC.W $008E,$296A DC.W $0090,$29D1 DC.W $0092,$002C DC.W $0094,$00D2 DC.W $0108,$4 DC.W $010A,$4 dc.w $0182,$0840 dc.w $0184,$0730 dc.w $0186,$0620 dc.w $0188,$0510 dc.w $018a,$0400 dc.w $018ќшѕd-:‰c,$0300 dc.w $018e,$0500 waitab1: blk.w 168,0 ;dc.w $ffff,$fffe raster: dc.w $0044,$0066,$0088,$00aa,$00cc dc.w $00cc,$00aa,$0088,$0066,$0044 raster2: dc.w $0041,$0063,$0085,$00a7,$00c9 dc.w $00c9,$00a7,$0085,$0063,$0041 raster3: dc.w $0440,$0662,$0884,$0aa6,$0cc8 dc.w $0cc8,$0aa6,$0884,$0662,$0440 colortab_up: even dc.w $0fd2,$0cb0,$0e90,$0970,$0750,$0530 dc.w $055f,$077f,$099f,$0bbf,$0ddf,$0fff dc.w $0dbf,$0caf,$0b9f,$0a8f,$097f,$086f dc.w $075f,$064f,$053f,$042f,$0ќшіcВa53f,$075f dc.w $097f,$0b9f,$0dbf,$0fdf,$0fff,$0eee dc.w $0ddd,$0ccc,$0bbb,$0aaa,$0999,$0888 dc.w $0777,$0666,$0555,$0444,$0854,$0965 dc.w $0a76,$0b87,$0c98,$0da9,$0eba,$0fcb dc.w $0fdc,$0bcf,$0abf,$09af,$089f,$078f dc.w $067f,$056f,$045f,$0642,$0753,$0864 dc.w $0f75,$0f86,$0f97,$0fa8,$0fb9,$0fca xcoltab1: dc.w $0fd2,$0db0,$0b90,$0970,$0750,$0530 dc.w $055f,$077f,$099f,$0bbf,$0ddf,$0fff dc.w $0dbf,$0caf,$0b9f,$0a8f,$097f,$086f dc.w $075f,$064f,$053f,$042f,$053f,$075f dc.w $097f,$0b9f,ќшїkrЇ$0dbf,$0fdf,$0fff,$0eee dc.w $0ddd,$0ccc,$0bbb,$0aaa,$0999,$0888 dc.w $0777,$0666,$0555,$0444,$0854,$0965 dc.w $0a76,$0b87,$0c98,$0da9,$0eba,$0fcb dc.w $0fdc,$0bcf,$0abf,$09af,$089f,$078f dc.w $067f,$056f,$045f,$0642,$0753,$0864 dc.w $0975,$0a86,$0b97,$0ca8,$0db9,$0eca colortab_down: dc.w $0fd2,$0fb0,$0f90,$0f70,$0f50,$0f30 dc.w $055f,$077f,$099f,$0bbf,$0ddf,$0fff dc.w $0dbf,$0caf,$0b9f,$0a8f,$097f,$086f dc.w $075f,$064f,$053f,$042f,$053f,$075f dc.w $097f,$0b9f,$0dbf,$0fdf,$0fff,$0eќшјZОЎ№ee dc.w $0ddd,$0ccc,$0bbb,$0aaa,$0999,$0888 dc.w $0777,$0666,$0555,$0444,$0854,$0965 dc.w $0a76,$0b87,$0c98,$0da9,$0eba,$0fcb dc.w $0fdc,$0bcf,$0abf,$09af,$089f,$078f dc.w $067f,$056f,$045f,$0642,$0753,$0864 dc.w $0975,$0a86,$0b97,$0ca8,$0db9,$0eca dc.w $0fd2,$0db0,$0b90,$0970,$0750,$0530 dc.w $055f,$077f,$099f,$0bbf,$0ddf,$0fff dc.w $0dbf,$0caf,$0b9f,$0a8f,$097f,$086f dc.w $075f,$064f,$053f,$042f,$053f,$075f dc.w $097f,$0b9f,$0dbf,$0fdf,$0fff,$0eee dc.w $0ddd,$0ccc,$0bbb,$0aaa,$0999ќшш…Љ^в,$0888 dc.w $0777,$0666,$0555,$0444,$0854,$0965 dc.w $0a76,$0b87,$0c98,$0da9,$0eba,$0fcb dc.w $0fdc,$0bcf,$0abf,$09af,$089f,$078f dc.w $067f,$056f,$045f,$0642,$0753,$0864 dc.w $0975,$0a86,$0b97,$0ca8,$0db9,$0eca dc.w $ffff,$fffe colortab_down2: dc.w $0005,$0005,$0005,$0005,$0005,$0005 dc.w $0004,$0004,$0004,$0004,$0004,$0004 dc.w $0003,$0003,$0003,$0003,$0003,$0003 dc.w $0002,$0002,$0002,$0002,$0002,$0002 dc.w $0001,$0001,$0001,$0001,$0001,$0001 dc.w $0002,$0002,$0002,$0002,$0002,ќ шњЅWšff066 move.w #$c9f0,$dff040 move.l a0,$dff050 ;WOHER SUBA.L #2,A0 MOVE.L A0,$DFF054 ;WOHIN move.w #38,d3 ;hoehe in worten move.w #16,d4 ;breite in worten and.w #$3ff,d3 mulu #64,d3 and.w #$3f,d4 add.w d3,d4 move.w d4,$dff058 BSR NOTREADY ADD.L #$900,a0 DBF D6,NEXT RTS ; ----------------------------------------------- fuck: cmpi.b #1,dingsbums beq YES jmp SCHEISSROUTINE YES: cmpi.w #200,zaehler3 beq zaehlerplus3 add.w #1,zaehler3 jmp WEITERcќ шћЫRE2 zaehlerplus3: move.w #$0000,zaehler3 move.b #0,dingsbums jmp WEITERc2 SCHEISSROUTINE: cmpi.b #0,colormerker beq colorup jmp colordown colorup: cmpi.w #3,zaehler2 beq zaehlerplus2 add.w #1,zaehler2 jmp WEITERc zaehlerplus2: add.w #$0110,color sub.w #$0110,color2 move.w #$0000,zaehler2 WEITERc: cmpi.w #$0880,color beq change r: cmpi.w #$0ff0,color beq colorreset jmp WEITERc2 colorreset: move.b #1,dingsbums move.b #1,colormerker move.w #0,color2 WEITERc2: ;cmpi.w #25,zaehler ;beqќ шќˆ0 zaehlerplus ;add.w #1,zaehler ;jmp WEITERc5 ;zaehlerplus: ;add.w #44,counterup1 ;sub.w #44,counterup ;move.w #$0000,zaehler jmp weiterc5 change: ;move.w #$0020,changer ;move.w #$0000,changer1 move.w #$0000,priority jmp r change1: ;move.w #$0020,changer1 ;move.w #$0000,changer move.w #$0040,priority jmp r1 colordown: cmpi.w #3,zaehler4 beq zaehlerplus2d add.w #1,zaehler4 jmp WEITERc3 zaehlerplus2d: sub.w #$0110,color add.w #$0110,color2 move.w #$0000,zaehler4 WEITERc3: cmpi.w #$0880,ќ ш§жОњЉcolor beq change1 r1: cmpi.w #$0110,color beq colorreset2 jmp WEITERc2 colorreset2: move.b #1,dingsbums move.b #0,colormerker move.w #0,color WEITERc5: ; gross (mitte) lea colortab_up,a0 ; scroll up colortab_up lea colortab_up+2,a1 move.w #130,d0 move.w colortab_up,d1 verloop1: move.w (a1)+,(a0)+ dbra d0,verloop1 move.w d1,colortab_up+262 ; -------------------------------------- move.l #57,d0 ; write colors in the lea colortab_up,a0 ; copperlist lea waitab+18,a1 colooќшўF)Лвp1: move.w (a0)+,(a1) add.l #12,a1 ; space to next wait dbra d0,coloop1 ;unterer lea colortab_down+262,a0; scroll down the colortab_down lea colortab_down+260,a1 move.w #130,d0 move.w colortab_down+262,d1 verloop2c: move.w (a1),(a0) sub.w #2,a0 sub.w #2,a1 dbra d0,verloop2c move.w d1,colortab_down ; -------------------------------------- move.l #57,d0 ; look up lea colortab_down,a0 lea waitab+22,a1 coloop1c: move.w (a0)+,(a1) add.l #12,a1 ; ; dbra d0,ќшџ§FЈЪcoloop1c move.w #47,d0 lea $55000,a0 lea waitab1+6,a1 cld: move.w (a0)+,(a1) add.l #8,a1 dbra d0,cld weiter_col: ; -------------------------------------- ; grosser oberer move.l #59,d0 ; lea colortab_up,a0 ; lea waitab2+6,a1 coloop1e: move.w (a0)+,(a1) add.l #12,a1 ; ; dbra d0,coloop1e move.l #59,d0 lea colortab_down,a0 lea waitab2+10,a1 clu: move.w (a0)+,(a1) add.l #12,a1 dbra d0,clu move.l #colortab_down2,a0 move.l #$55000,a1 move.w #$36,d0 sprloop4: move.l ќшhзй§(a0)+,(a1)+ dbf d0,sprloop4 ; -------------------- cmp.b #1,changebit beq changeloop move.l adresse,a1 move.l #$50000,a0 move.w #$04,d0 sprloop5: move.l (a0)+,(a1)+ dbf d0,sprloop5 move.l adresse3,a1 move.l #$50100,a0 move.w #$04,d0 sprloop6: move.l (a0)+,(a1)+ dbf d0,sprloop6 move.l adresse2,a1 move.l #$50080,a0 move.w #$04,d0 sprloop7: move.l (a0)+,(a1)+ dbf d0,sprloop7 jmp overlooped changeloop: move.l adresse2,a1 move.l #$50080,a0 move.w #$04,d0 sprloop8: move.l (a0)+,(a1)+ ќшU8њdbf d0,sprloop8 move.l adresse3,a1 move.l #$50100,a0 move.w #$04,d0 sprloop9: move.l (a0)+,(a1)+ dbf d0,sprloop9 move.l adresse,a1 move.l #$50000,a0 move.w #$04,d0 sprloop10: move.l (a0)+,(a1)+ dbf d0,sprloop10 overlooped: ;---------------------------------------- cmp.b #0,MERKER beq SUB jmp WEITER3 SUB: sub.l #$2,adresse2 cmp.l #$55010,adresse2 beq OK WEITER3: cmp.b #1,MERKER beq ADD jmp WEITER2 OK2: move.b #0,MERKER cmp.b #0,changebit beq j1 move.b #0,changebit jmp WEITER2 j1ќшюrЕ: move.b #1,changebit jmp WEITER2 OK: move.b #1,MERKER cmp.b #0,changebit beq j2 move.b #0,changebit jmp WEITER2 j2: move.b #1,changebit jmp WEITER2 ADD: add.l #2,adresse2 cmp.l #$55050,adresse2 beq OK2 WEITER2: ;------------------------------ cmp.b #0,MERKERb beq ADDb jmp WEITER3b SUBb: sub.l #2,adresse cmp.l #$55010,adresse beq OKb jmp WEITER2b WEITER3b: cmp.b #1,MERKERb beq SUBb jmp WEITER2b OK2b: move.b #1,MERKERb jmp WEITER2b OKb: move.b #0,MERKERb jmp WEITER2b ADDb: add.lќш…‹а #2,adresse cmp.l #$55050,adresse beq OK2b WEITER2b: weiter: ; -------------------------------------- test: btst #6,$bfe001 ;catch mousebutton!!! beq.s end ende1: movem.l (sp)+,d0-d7/a0-a6 move.w #$8030,$dff09c ;hi...this is haegar... dc.w $4ef9 oldirq: dc.l 0 end: move #3,$dff096 ;dma-controller off move.w #$4010,$dff09a move.l oldirq,$6c ;init oldirq move.w #$c000,$dff09a move.w #$0080,$dff096 move.l #$22f8,$dff080 ;init oldcopper move.w #$8080,$dff096 error: jmp enќшюDJЙџde1 newcopper: even dc.w $1009,$fffe,$0180,$0999 dc.w $2209,$fffe,$0180,$0888 dc.w $2309,$fffe,$0180,$0777 dc.w $2409,$fffe,$0180,$0666 dc.w $2509,$fffe,$0180,$0555 dc.w $2609,$fffe,$0180,$0444 dc.w $2709,$fffe,$0180,$0333 dc.w $2809,$fffe,$0180,$0222 dc.w $2909,$fffe,$0180,$0111 dc.w $2a09,$fffe,$0180,$0000 dc.w $00e0,$0004,$00e2,$f0b0 ;changer:dc.w $0000 dc.w $00e4,$0004,$00e6,$f580 ;changer1:dc.w $0020 dc.w $008e,$296a dc.w $0090,$29d1 dc.w $0092,$002c dc.w $0094,$00dњ+шќмN411,0 dc.w 2 datach2: blk.w 11,0 dc.w 4 datach3: blk.w 11,0 dc.w 8 voi1: dc.w 0 voi2: dc.w 0 voi3: dc.w 0 voi4: dc.w 0 pointers: blk.l 15,0 notetable: dc.w 856,808,762,720,678,640,604,570 dc.w 538,508,480,453,428,404,381,360 dc.w 339,320,302,285,269,254,240,226 dc.w 214,202,190,180,170,160,151,143 dc.w 135,127,120,113,000 muzakoffset: dc.l 0 trkpos: dc.l 0 patpos: dc.l 0 numpat: dc.w 0 enbits: dc.w 0 timpos: dc.w 0 data: blk.b 61000,0 even TEST: LEA њ,шє‚œ7COPTAB,A5 MOVE.L #23,D7 ADDQ #1,YPOS CMPI #24,YPOS BEQ CHGDIR JMPIN: BTST #0,UP1 BNE CUP CDW: ADDI.B #1,(A5) ADDA #8,A5 DBRA D7,CDW RTS CUP: SUBI.B #1,(A5) ADDA #8,A5 DBRA D7,CUP RTS CHGDIR: BCHG #0,UP1 MOVE.L #0,YPOS JMP JMPIN TEST2: LEA COPTAB2,A5 MOVE.L #23,D7 ADDQ #1,YPOS2 CMPI #24,YPOS2 BEQ CHGDIR2 JMPIN2: BTST #1,UP1 BNE CUP CDW2: ADDI.B #1,(A5) ADDA #8,A5 DBRA D7,CDW2 RTS CUP2: SUBI.B #1,(A5) ADDA #8,A5 DBRA D7,CUP2 њ-j§„Eр RTS CHGDIR2: BCHG #1,UP1 MOVE.L #0,YPOS2 JMP JMPIN2 YPOS: DC.L 0 YPOS2: DC.L 0 UP1: DC.L 0 END: 3: dc.w 0 voi4: dc.w 0 pointers: blk.l 15,0 notetable: dc.w 856,808,762,720,678,640,604,570 dc.w 538,508,480,453,428,404,381,360 dc.w 339,320,302,285,269,254,240,226 dc.w 214,202,190,180,170,160,151,143 dc.w 135,127,120,113,000 muzakoffset: dc.l 0 trkpos: dc.l 0 patpos: dc.l 0 numpat: dc.w 0 enbits: dc.w 0 timpos: dc.w 0 data: blk.b 61000,0 even TEST: LEA ќшсŠ&{w #$04,d0 sprloop2: move.l (a0)+,(a1)+ dbf d0,sprloop2 move.l #colortab_down2,a0 move.l #$55000,a1 move.w #$36,d0 sprloop3: move.l (a0)+,(a1)+ dbf d0,sprloop3 ; ---------------------------------------- lea waitab2,a0 ; write at wait move.l #$8609,d1 ; wait line $x move.l #59,d0 ; #x WAITs writing coloop2y: move.w d1,(a0)+ ; WAIT writing move.w #$fffe,(a0)+ ; move.w #$0180,(a0)+ ; foregrounfcolor move.w #$0fff,(a0)+ ; color move.w #$0182,(a0)+ move.w #$0f0f,(a0)+ adќш D}Dd.w #$0100,d1 ; WAIT next line dbra d0,coloop2y ; #x time ??? ; -------------------------------------- lea waitab,a0 ; in the copperlist you need move.l #$be09,d1 ; a memory space for the waits move.l #59,d0 ; the calculation is so coloop2: ; each line must be multiplied move.w d1,(a0)+ ; with two and than all with move.w #$fffe,(a0)+ ; the number of lines move.w #$0182,(a0)+ ; p.e. 1 move + 1 waiit *2*50 move.w #$0,(a0)+ ; = blk.w 200,0 move.w #$018ќш rWжй0,(a0)+ move.w #$0,(a0)+ add.w #$0100,d1 dbra d0,coloop2 ; ; -------------------------------------- lea waitab1,a0 move.w #$fee1,d1 move.l #48,d0 ; coloop2x: move.w d1,(a0)+ move.w #$fffe,(a0)+ move.w #$0180,(a0)+ move.w #$0000,(a0)+ add.w #$0100,d1 ; dbra d0,coloop2x ; ; -------------------------------------- move.l execbase,a6 move.w #$0080,$dff096 lea newcopper(pc),a0 move.l a0,$dff080 move.w #$8080,$dff096 move.l $6c,oldirq ;iќш ёІЂДnit new irq move.l #newirq,$6c move.w #$c010,$dff09a movem.l (a7)+,d0-d7/a0-a6 rts ; newirq: ; Neuer IRQ movem.l d0-d7/a0-a6,-(sp) ; Register Retten mouse: cmp.b #$80,$dff006 bne.s mouse bsr stars ;----------------------------------------------- SCROLLTEXT: BSR SCROLL CMP.B #8,BREITE BNE KEIN_TEXT MOVE.B #0,BREITE MOVE.L TEXTPOINTER,A1 CMP.B #0,(A1) BNE KEIN_ENDE LEA TEXT,A1 MOVE.L A1,TEXTPOINTER KEIN_ENDE: LEA $40000,A0 MOVE.L #$58000,A3 MOVE.W #360,XP ќш Џtіš MOVE.W #200,YP BSR PRINT ADD.L #1,TEXTPOINTER KEIN_TEXT: ADD.B #1,BREITE jmp fuck PRINT: MOVE.L A0,A5 START: MOVE.L A5,A0 CLR.L D1 CLR.L D5 MOVE.B (A1)+,D1 CMP.B #0,D1 BEQ.L NICHTS_MEHR CMP.B #$20,D1 BNE.S WE1 MOVE.B #9,D1 BRA.L SPRUNG WE1: CMP.B #$28,D1 BNE.S WE2 MOVE.B #7,D1 MOVE.L #5120,D5 BRA.S SPRUNG WE2: CMP.B #$29,D1 BNE.S WE3 MOVE.B #8,D1 MOVE.L #5120,D5 BRA.S SPRUNG WE3: CMP.B #$2E,D1 BNE.S WE4 MOVE.B #4,D1 MOVE.L ќш б6A #5120,D5 BRA.S SPRUNG WE4: CMP.B #$39,D1 BGT.S WE5 SUB.L #$30,D1 MOVE.L #3840,D5 BRA.S SPRUNG WE5: CMP.B #$3F,D1 BNE.S WE MOVE.B #0,D1 MOVE.L #5120,D5 BRA.S SPRUNG WE: cmp #$4a,d1 blt.S marker cmp #$53,d1 blt.S reihe1 bra.S w reihe1: move.l #1000,d5 SUB.L #9,D1 bra.S marker w: move.l #2000,d5 sub.l #18,d1 marker: SUB.L #$41,D1 sprung: MULU #4,D1 ADD.L D5,D1 ADD.L D1,A0 BITPLA: BSR.S COPY NICHTS_MEHR: RTS COPY: MOVE.LќшкЖ^e #3,D6 MOVE.W XP,D2 LSR.W #3,D2 MOVE.W YP,D7 MULU #48,D7 ADD.W D7,D2 MOVE.L D2,D3 ADD.L D3,A3 BITCOPY: move.w #0,$dff042 move.w #$8400,$dff096 move.l #$ffffffff,$dff044 move.w #36,$dff064 ;BEI ANDEREM MODULO IN COPPERL ;MODULO * 2 ADDIEREN move.w #44,$dff066 move.w #$09f0,$dff040 MOVE.L A3,DEBUG10 move.l A3,$dff054 ;WOHIN move.l A0,$dff050 ;WOHER move.w #25,d3 ;hoehe in PIXEL move.w #2,d4 ;breite in worten and.w #$ќ шљ„їek3ff,d3 mulu #64,d3 and.w #$3f,d4 add.w d3,d4 move.w d4,$dff058 BSR NOTREADY ADDA.L #$900,A3 ADDA.L #8000,A0 DBF D6,BITCOPY RTS NOTREADY: BTST #14,$DFF002 BNE.S NOTREADY RTS ; ;ROUTINE: BLITTERSCROLL ; ;PARAMETER: A0 -> ZEIGER AUF BITPLANE ; ;VARIABLEN: KEINE ; ;LABELS: SCROLL ; ;SCROLL: SCROLL: MOVE.L #3,D6 move.l scrollstart,a0 next: move.w #0,$dff042 move.w #$8400,$dff096 move.w #$ffff,$dff044 move.w #$ffff,$dff046 move.w #0,$dff064 move.w #0,$dњ ш,Й.L #$ffffffff,$dff044 BSR CALCD MOVE.L A1,$dff050 MOVE.L A0,$dff054 CLR.W $dff042 MOVE.W D3,$dff040 move.w #%0111101111010100,$dff058 bsr waitblitt RTS waitblitt: btst #6,$dff002 bne waitblitt rts CALCD: clr.l d1 move.W yD,d1 mulu #$a0+$28,d1 add.w d1,a0 clr.l d1 clr.l d2 move.W xD,d1 divu #16,d1 move.w d1,d2 mulu #2,d2 add.l d2,a0 swap d1 move.w d1,d2 ror.w #4,d2 add.w d2,d3 RTS XD: dc.њ!шisЊFW 0 YD: dc.W 0 CHAR: BLK.B 60000,0 OBJ: BLK.B 20000,0 even start_muzak: move.l #data,muzakoffset init0: move.l muzakoffset,a0 add.l #472,a0 move.l #$80,d0 clr.l d1 init1: move.l d1,d2 subq.w #1,d0 init2: move.b (a0)+,d1 cmp.b d2,d1 bgt.s init1 dbf d0,init2 addq.b #1,d2 init3: move.l muzakoffset,a0 lea pointers(pc),a1 lsl.l #8,d2 lsl.l #2,d2 add.l #600,d2 add.l a0,d2 moveq #14,d0 init4: move.l d2,(a1)+ clr.l d1 move.w 42(a0),d1 lsl.l #1,d1 add.l d1,d2њ"ш"їЌ add.l #30,a0 dbf d0,init4 init5: clr.w $dff0a8 clr.w $dff0b8 clr.w $dff0c8 clr.w $dff0d8 clr.w timpos clr.l trkpos clr.l patpos init6: move.l muzakoffset,a0 move.b 470(a0),numpat+1 move.l $6c.w,lev3save+2 move.l #lev3interrupt,$6c.w rts stop_muzak: move.l lev3save+2,$6c.w clr.w $dff0a8 clr.w $dff0b8 clr.w $dff0c8 clr.w $dff0d8 move.w #$f,$dff096 rts lev3interrupt: bsr.s replay_muzak lev3save: jmp $0 replay_muzak: movem.l d0-d7/a0-a6,-(a7) addq.w #1њ#шфd,timpos speed: cmp.w #6,timpos beq.L replaystep chaneleffects: lea datach0(pc),a6 tst.b 3(a6) beq.s ceff1 lea $dff0a0,a5 bsr.s ceff5 ceff1: lea datach1(pc),a6 tst.b 3(a6) beq.s ceff2 lea $dff0b0,a5 bsr.s ceff5 ceff2: lea datach2(pc),a6 tst.b 3(a6) beq.s ceff3 lea $dff0c0,a5 bsr.s ceff5 ceff3: lea datach3(pc),a6 tst.b 3(a6) beq.s ceff4 lea $dff0d0,a5 bsr.s ceff5 ceff4: movem.l (a7)+,d0-d7/a0-a6 rts ceff5: move.b 2(a6),d0 and.b #$f,d0 tst.b d0 beq.њ$шFлщ…s arpreggiato cmp.b #1,d0 beq.L pitchup cmp.b #2,d0 beq.L pitchdown cmp.b #12,d0 beq.L setvol cmp.b #14,d0 beq.L setfilt cmp.b #15,d0 beq.L setspeed rts arpreggiato: cmp.w #1,timpos beq.s arp1 cmp.w #2,timpos beq.s arp2 cmp.w #3,timpos beq.s arp3 cmp.w #4,timpos beq.s arp1 cmp.w #5,timpos beq.s arp2 rts arp1: clr.l d0 move.b 3(a6),d0 lsr.b #4,d0 bra.s arp4 arp2: clr.l d0 move.b 3(a6),d0 and.b #$f,d0 bra.s arp4 arp3: move.w 16(a6),d2 bra.s arpњ%шk„‘6 arp4: lsl.w #1,d0 clr.l d1 move.w 16(a6),d1 lea notetable,a0 arp5: move.w (a0,d0.w),d2 cmp.w (a0),d1 beq.s arp6 addq.l #2,a0 bra.s arp5 arp6: move.w d2,6(a5) rts pitchdown: bsr.s newrou clr.l d0 move.b 3(a6),d0 and.b #$f,d0 add.w d0,(a4) cmp.w #$358,(a4) bmi.s ok1 move.w #$358,(a4) ok1: move.w (a4),6(a5) rts pitchup:bsr.s newrou clr.l d0 move.b 3(a6),d0 and.b #$f,d0 sub.w d0,(a4) cmp.w #$71,(a4) bpl.s ok2 move.w #$71,(a4) ok2: move.w (a4),6(a5) rts њ&шНHЪюsetvol: move.b 3(a6),8(a5) rts setfilt:move.b 3(a6),d0 and.b #1,d0 lsl.b #1,d0 and.b #$fd,$bfe001 or.b d0,$bfe001 rts setspeed: clr.l d0 move.b 3(a6),d0 and.b #$f,d0 move.w d0,speed+2 rts newrou: cmp.l #datach0,a6 bne.s next1 lea voi1(pc),a4 rts next1: cmp.l #datach1,a6 bne.s next2 lea voi2(pc),a4 rts next2: cmp.l #datach2,a6 bne.s next3 lea voi3(pc),a4 rts next3: lea voi4(pc),a4 rts replaystep: clr.w timpos move.l muzakoffset,a0 move.l a0,a3 add.lњ'шяg #12,a3 move.l a0,a2 add.l #472,a2 add.l #600,a0 clr.l d1 move.l trkpos,d0 move.b (a2,d0),d1 lsl.l #8,d1 lsl.l #2,d1 add.l patpos,d1 clr.w enbits lea $dff0a0,a5 lea datach0(pc),a6 bsr.L chanelhandler lea $dff0b0,a5 lea datach1(pc),a6 bsr.L chanelhandler lea $dff0c0,a5 lea datach2(pc),a6 bsr.L chanelhandler lea $dff0d0,a5 lea datach3(pc),a6 bsr.L chanelhandler move.w #400,d0 rep1: dbf d0,rep1 move.w #$8000,d0 or.w enbits,d0 move.w њ(шр‡d0,$dff096 cmp.w #1,datach0+14 bne.s rep2 clr.w datach0+14 move.w #1,$dff0a4 rep2: cmp.w #1,datach1+14 bne.s rep3 clr.w datach1+14 move.w #1,$dff0b4 rep3: cmp.w #1,datach2+14 bne.s rep4 clr.w datach2+14 move.w #1,$dff0c4 rep4: cmp.w #1,datach3+14 bne.s rep5 clr.w datach3+14 move.w #1,$dff0d4 rep5: add.l #16,patpos cmp.l #64*16,patpos bne.s rep6 clr.l patpos addq.l #1,trkpos clr.l d0 move.w numpat,d0 cmp.l trkpos,d0 bne.s rep6 clr.l trkpos rep6: moveњ)шЁ›‚ˆm.l (a7)+,d0-d7/a0-a6 rts chanelhandler: move.l (a0,d1.l),(a6) addq.l #4,d1 clr.l d2 move.b 2(a6),d2 lsr.b #4,d2 beq.s chan2 move.l d2,d4 lsl.l #2,d2 mulu #30,d4 lea pointers-4(pc),a1 move.l (a1,d2.l),4(a6) move.w (a3,d4.l),8(a6) move.w 2(a3,d4.l),18(a6) move.l d0,-(a7) move.b 2(a6),d0 and.b #$f,d0 cmp.b #$c,d0 bne.s ok3 move.b 3(a6),8(a5) bra.s ok4 ok3: move.w 2(a3,d4.l),8(a5) ok4: move.l (a7)+,d0 clr.l d3 move.w 4(a3,d4),d3 add.l 4(њ*шnњфja6),d3 move.l d3,10(a6) move.w 6(a3,d4),14(a6) cmp.w #1,14(a6) beq.s chan2 move.l 10(a6),4(a6) move.w 6(a3,d4),8(a6) chan2: tst.w (a6) beq.s chan4 move.w 22(a6),$dff096 tst.w 14(a6) bne.s chan3 move.w #1,14(a6) chan3: bsr.L newrou move.w (a6),(a4) move.w (a6),16(a6) move.l 4(a6),0(a5) move.w 8(a6),4(a5) move.w (a6),6(a5) move.w 22(a6),d0 or.w d0,enbits move.w 18(a6),20(a6) chan4: rts datach0: blk.w 11,0 dc.w 1 datach1: blk.w њш5ѓ@‹C.B 84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100 EVEN LABEL2: BLK.B 40,0 PLATZ: DC.W 2 NEWCOPPER: DC.L $008e2C71,$01200000 DC.L $009099C0,$01220000 DC.L $00920038,$009400d0 DC.L $010800A0,$010a00A0 DC.L $01020000,$01040000 DC.L $01005200,$01000200,$0108FFD8 BIT: DC.L $00E00005,$00E263C0 DC.L $00E40005,$00E663E8 DC.L $00E80005,$00EA6410 DC.L $00Ec0005,$00EE6438 DC.L $00f00005,$00f26460 DC.L $01800000,$01820000,$01840e00,$01860a00 DC.L $01880d80,$018a0fe0,$018c08fњш9 rY0,$018e0080 DC.L $01900fe0,$01920ed0,$01940db0,$01960cb0 DC.L $01980ba0,$019a0a90,$019c0980,$019e0000 DC.L $01a00000,$01a20000,$01a40000,$01a60000 DC.L $01a80000,$01aa0444,$01ac0555,$01ae0666 DC.L $01b00777,$01b20888,$01b40999,$01b60aaa DC.L $01b80ccc,$01ba0ddd,$01bc0eee,$01be0FFf WAITS: BLK.B 1192,0 DC.L $A809FFFE DIWSTART: DC.L $008eB073,$01200000 DC.L $009035e1,$01220000 DC.L $00920030,$009400d8 DC.L $010800e2,$010a00e2 DC.L $01020000,$01040000 DC.L $01005200 DC.њшQћ)фL $00E00007,$00E20000 DC.L $00E40007,$00E60036 DC.L $00E80007,$00EA006C DC.L $00Ec0007,$00EE00A2 DC.L $00f00007,$00f200D9 DC.L $01800000,$01820000,$01840e00,$01860a00 DC.L $01880d80,$018a0fe0,$018c08f0,$018e0080 DC.L $01900fe0,$01920ed0,$01940db0,$01960cb0 DC.L $01980ba0,$019a0a90,$019c0980,$019e0000 DC.L $01a00000,$01a20000,$01a40000,$01a60000 DC.L $01a80000,$01aa0444,$01ac0555,$01ae0666 DC.L $01b00777,$01b20888,$01b40999,$01b60aaa DC.L $01b80ccc,$01ba0ddd,$01bc0eee,$01be0FњшicŸFf COPTAB: dc.l $a615fffe,$01800000 dc.l $a715fffe,$01800110 dc.l $a815fffe,$01800330 dc.l $a915fffe,$01800440 dc.l $aa15fffe,$01800550 dc.l $ab15fffe,$01800770 dc.l $ac15fffe,$01800880 dc.l $ad15fffe,$01800990 dc.l $ae15fffe,$01800bb0 dc.l $af15fffe,$01800cc0 dc.l $b015fffe,$01800ed0 dc.l $b115fffe,$01800ff0 dc.l $b215fffe,$01800ff0 dc.l $b315fffe,$01800ed0 dc.l $b415fffe,$01800cc0 dc.l $b515fffe,$01800bb0 dc.l $b615fffe,$01800990 dc.l $b715fffe,$01800880 dc.l $b815fffe,$01800770њшЃ˜іИ dc.l $b915fffe,$01800550 dc.l $ba15fffe,$01800440 dc.l $bb15fffe,$01800330 dc.l $bc15fffe,$01800110 dc.l $bd15fffe,$01800000 ; --- GRAU COPTAB2: dc.l $e615fffe,$01800000 dc.l $e715fffe,$01800111 dc.l $e815fffe,$01800333 dc.l $e915fffe,$01800444 dc.l $ea15fffe,$01800555 dc.l $eb15fffe,$01800777 dc.l $ec15fffe,$01800888 dc.l $ed15fffe,$01800999 dc.l $ee15fffe,$01800bbb dc.l $ef15fffe,$01800ccc dc.l $f015fffe,$01800eee dc.l $f215fffe,$01800fFF dc.l $f315fffe,$01800fff dc.l $f415fffe,њш …цБ$01800eee dc.l $f515fffe,$01800ccc dc.l $f615fffe,$01800bbb dc.l $f715fffe,$01800999 dc.l $f815fffe,$01800888 dc.l $f915fffe,$01800777 dc.l $fa15fffe,$01800555 dc.l $fb15fffe,$01800444 dc.l $fc15FFFe,$01800333 dc.l $fd15fffe,$01800111 dc.l $fE15fffe,$01800000 DC.L $FFFFFFFE sc3text: DC.B ' #3 #a #b ' DC.B ' #1 LETS GO #3 ... ITS AGAIN TIME FOR #1 NEW STUFF ...' DC.B ' #3 BEFOR WE REALLY START NOTICE SOME INPORTANT FACTS : ' DC.B ' #2 THE MEGA MINI POWEњш!ПOR FORCE CRACKER HAS BEEN FIRED ... ' DC.B ' OHHH YEAR .... #3 WE DONT NEED A LABBERKOPF IN OUR CREW' DC.B ' ... THIS GUY CANNOT PROGRAMM ANY LINE ,ONLY WITH HIS BIG' DC.B ' MOUTH ..... BLA ,BLA ,BLA E.C.T. ..... #2' DC.B ' GOOD BYE ??? OH, I MEAN GOOD BUY ROUTINES FORM YOUR' DC.B ' FRIEND .... #2 FIRE AND FORGET PFC 0 ' DC.B ' BEING NOT LONGER A MEMBER OF FUN AND FUNTION ..... ' DC.B ' #3 BUT LETS BEGIN WITH NICER PART OF THIS SCROLLER ,' DC.B ' YOU GET ITњш"ЏБ( ?? OF COURSE ,THE GREETINGS' DC.B ' TO OUR COOL CONTACTS ... NO RANKING ORDER ... #2 ' DC.B ' HQC , BAMIGA SECTOR ONE , NORTH STAR AND FAIRLIGHT ,' DC.B ' NOTHERN LIGHT , VISION FACTORY AND THE BEYONDERS ,' DC.B ' TRUST , THE NEW MASTERS , KNIGHT HAWKS , PROPHETS AG,' DC.B ' THE PIONEERS , AMIGA INDUSTRIES , THE INVISIBLE CRIME ,' DC.B ' CASCADE , D.O.C , GENERATION X , ACKERLIGHT ,' DC.B ' LEVEL ONE AND THE DREAM TEAM , THE FLY , THE PHOENIX,' DC.B ' ACK , VORTEX FOURTYTWO , њш#]]TFC , ELECTION ,' DC.B ' SEVEN UP CREW ANT TRILOGY , TMT , NINJA FORCE ,' DC.B ' ASC BOYS AND YOUTHQUAKE ,' DC.B ' STARTLIGHT , THE SYNDICATE OF BEATIE BOYS ,' DC.B ' RAGE AND DNS , H.D.S. , NO SHITWEAR GROUP , DESENY SEVEN ,' DC.B ' UNION , INXS , THE OMEGA CREW , MAJOR LUDWIG V.B. ,' DC.B ' RUEDIGER , THE SKINNY PUPPIES , LORD LIBERTY ' DC.B ' AND NO ONE ELSE .... #3' DC.B ' IF YOU WISH TO CONTACT US, NOTICE THE FOLLOWING' DC.B ' ADDRESS : PLK 0 ZERO 0 EIGHT 0 ' Dњш$JРC.B ' NINE 0 SEVEN 0' DC.B ' FIVE 0 SIX 0 C 0 ' DC.B ' FIVE 0 KOELN 0 FOURTY 0' DC.B ' FINISH 0 END OF THIS TRANSMISSION ... SEE YOU LATER ' DC.B ' ..... BYE ... 0 ' DC.B ' #3 . . . . . . . . . . . . . . . . . . . . . ' endesc3: even sc3texte: dc.l 0 HUEPFDATAS: DC.B 176,176,176,176,176,176,176,176,176,176 DC.B 176,176,176,177,177,178,179,180,182,184,186,189,192,195,198 DC.B 202,206,210,215,220,225,230,230,230,230 DC.B 225,220,215,210,2њш‘ЕœН06,202 DC.B 198,195,192,189,186,184,182,180,179,178,177,177,176,176,176 HDEND: EVEN HUEPFPOINTER: DC.L HUEPFDATAS even gfxbase: dc.l 0 oldcopper: dc.l 0 gfxname: dc.b "graphics.library",0 even za3q: dc.w 0 even za3a: dc.w 1 even size: dc.w 0 even moduloa: dc.w 0 even quellea: dc.l 0 even teiler: dc.b 1 even gr: dc.w even za19: dc.b 0 even za20: dc.l 0 mp=START objBLITT: LEA $563C0,A0 LEA OBJ,A1 MOVE.W #2544,D3 MOVE.W #0,$DFF066 MOVE.W #0,$DFF064 MOVEњ ш&Ž'> jmp divi ll3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$636ea,quellea move.w #40,za3a jmp divi mm3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$636f0,quellea move.w #48,za3a jmp divi nn3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$636f6,quellea move.w #48,za3a jmp divi oo3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$636fc,quellea move.w #48,za3a jmp divi pp3: move.w #%0100101100000011,њ ш'#Ršsize move.w #48,moduloa move.l #$63702,quellea move.w #40,za3a jmp divi qq3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$66db0,quellea move.w #48,za3a jmp divi rr3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$66db6,quellea move.w #40,za3a jmp divi ss3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$66dbc,quellea move.w #40,za3a jmp divi tt3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$66dc2,queњ ш(Ы“Ѓllea move.w #48,za3a jmp divi uu3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$66dc8,quellea move.w #48,za3a jmp divi vv3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$66dce,quellea move.w #48,za3a jmp divi ww3: move.w #%0100101100000101,size move.w #44,moduloa move.l #$66dd4,quellea move.w #64,za3a jmp divi xx3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$6a488,quellea move.w #40,za3a jmp divi yy3: moveњ ш)Oј}Œ.w #%0100101100000011,size move.w #48,moduloa move.l #$6a48e,quellea move.w #40,za3a jmp divi zz3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$6a494,quellea move.w #48,za3a jmp divi minus: move.w #%0100101100000011,size move.w #48,moduloa move.l #$6a49a,quellea move.w #40,za3a jmp divi frage: move.w #%0100101100000011,size move.w #48,moduloa move.l #$6a4a0,quellea move.w #40,za3a jmp divi komma: move.w #%0100101100000011,size move.w #4њш*ЩгЦЌ8,moduloa move.l #$6a4a6,quellea move.w #40,za3a jmp divi space: move.w #%0100101100000011,size move.w #48,moduloa move.l #$6a4ac,quellea move.w #48,za3a jmp divi punkt: move.w #%0100101100000011,size move.w #48,moduloa move.l #$6a4b2,quellea move.w #40,za3a jmp divi sc3: btst #14,$dff002 bne sc3 move.l quellea,$dff050 move.l #$7002C,$dff054 clr.w $dff042 move.w #%0000100111110000,$dff040 move.w #$ffff,$dff044 move.w #$ffff,$dff046 move.w moduloa,њш+gЋve$dff064 move.w moduloa,$dff066 move.w size,$dff058 jmp raus divi: cmp.b #0,teiler beq div0 cmp.b #1,teiler beq div1 cmp.b #2,teiler beq div2 cmp.b #3,teiler beq div3 jmp sc3 div0: move.w #$f9f0,gr jmp sc3 div1: move.w za3a,d5 divu #2,d5 move.w d5,za3a move.w #$e9f0,gr jmp sc3 div2: move.w za3a,d5 divu #2,d5 divu #2,d5 move.w d5,za3a move.w #$c9f0,gr jmp sc3 div3: move.w za3a,d5 divu #2,d5 divu #2,d5 divu #2,d5 move.w d5,za3a move.w #$89f0њш,фееЊ,gr jmp sc3 null: move.b #0,teiler jmp font0 eins: move.b #1,teiler jmp font0 zwei: move.b #2,teiler jmp font0 drei: move.b #3,teiler jmp font0 stufea: move.w #0,ZAEHLER5A jmp font0 stufeb: move.w #1,ZAEHLER5A jmp font0 stufec: move.w #2,ZAEHLER5A jmp font0 stufed: move.w #3,ZAEHLER5A jmp font0 stufee: move.w #4,ZAEHLER5A jmp font0 ; COPYRIGHT BY ; ANDY OF AFL ; PFC OF F2 ; IN 08 / 1988 raus: rts SET: LEA BIT,A0 MOVE.L #$563C0,D0 TST.W ZAEHLEњш-{)™R4 BEQ YES ADD.L #$4D58-$190,D0 YES: MOVE.W #$00E0,D1 MOVE.W #$4,D7 LOOP: MOVE.W D1,(A0)+ ADDQ.W #2,D1 SWAP D0 MOVE.W D0,(A0)+ MOVE.W D1,(A0)+ ADDQ.W #2,D1 SWAP D0 MOVE.W D0,(A0)+ ADD.L #$28,D0 DBF D7,LOOP RTS ACTION: LEA DATAS,A0 CLR.L D0 MOVE.W ZAEHLER7,D0 MOVE.B $00(A0,D0.W),D1 MOVE.L #99,D0 SUB.W D1,D0 AND.L #$FF,D0 MOVEQ #$1,D1 CLR.W ZAEHLER3 LEA WAITS,A1 CLR.L D2 MOVE.W #99,D2 SUB.W D0,D2 ASR.W #1,D2 ADD.W #$0њш.802C,D2 ASL.W #8,D2 OR.W #$0009,D2 SWAP D2 OR.W #$FFFE,D2 MOVE.L D2,(A1)+ MOVE.W #$0100,(A1)+ MOVE.W #$5200,(A1)+ SWAP D2 MOVE.W D2,D4 ADDQ.W #1,D0 UP: CLR.L D2 MOVE.W #99,D2 MULU D1,D2 DIVU D0,D2 MOVE.W D2,ZAEHLER2 SUB.W ZAEHLER3,D2 MOVE.W D2,D5 MOVE.W ZAEHLER2,ZAEHLER3 MULU #$C8,D2 SUB.W #$28,D2 MOVE.W D4,(A1)+ MOVE.W #$FFFE,(A1)+ TST.W ZAEHLER4 BEQ YES2 ADD.W #$50,D2 NEG.W D2 YES2: MOVE.W #$0108,(A1)+ MOVE.W D2,(A1)+ MOњш/J† \VE.W #$010A,(A1)+ MOVE.W D2,(A1)+ LSL.W #1,D5 ADD.W #$0100,D4 ADDQ.W #1,D1 CMP.W D0,D1 BCS UP ADD.W #$0100,D4 MOVE.W D4,(A1)+ MOVE.W #$FFFE,(A1)+ MOVE.L #LABEL2,D0 MOVE.L #$01001200,(A1)+ MOVE.W #$00E0,(A1)+ SWAP D0 MOVE.W D0,(A1)+ SWAP D0 MOVE.W #$00E2,(A1)+ MOVE.W D0,(A1)+ MOVE.L #$0108FFD8,(A1)+ MOVE.W ZAEHLER5A,D7 TST.W ZAEHLER6 BEQ YES3 SUB.W D7,ZAEHLER7 BNE NO4 NOT.W ZAEHLER6 NOT.W ZAEHLER9 NO3: BRA NO4 YES3: ADD.W D7,ZAEHњшМOЗжLER7 CMP.W #96,ZAEHLER7 BLT NO4 NOT.W ZAEHLER4 NOT.W ZAEHLER6 NO4: RTS ZAEHLER2: DC.W 0 ZAEHLER3: DC.W 0 ZAEHLER4: DC.W 0 ZAEHLER5: DC.W 0 ZAEHLER5A: DC.W 0 ZAEHLER6: DC.W 0 ZAEHLER7: DC.W 0 ZAEHLER9: DC.W 0 DATAS: DC.B 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 DC.B 24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43 DC.B 44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63 DC.B 64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83 Dјш12MБ000d,$000f dc.w $000f,$000d,$000b,$0009,$0007,$0005,$0003,$0001 dc.w $0010,$0030,$0050,$0070,$0090,$00b0,$00d0,$00f0 dc.w $00f0,$00d0,$00b0,$0090,$0070,$0050,$0030,$0010 dc.w $0101,$0303,$0505,$0707,$0909,$0b0b,$0d0d,$0f0f dc.w $0f0f,$0d0d,$0b0b,$0909,$0707,$0505,$0303,$0101 sine: dc.b 95,97,99,101,104,106,108,111,113,115,118,120,122,124,127 dc.b 129,131,133,135,137,139,141,143,145,147,149,151,153,155,157 dc.b 158,160,162,163,165,166,168,169,171,172,173,175,176,177,178 dc.b 179јш2ƒ’ыn,180,181,182,183,184,185,185,186,187,187,188,188,188,189 dc.b 189,189,189,189,190,189,189,189,189,189,188,188,188,187,187 dc.b 186,185,185,184,183,182,181,180,179,178,177,176,175,173,172 dc.b 171,169,168,166,165,163,162,160,158,157,155,153,151,149,147 dc.b 145,143,141,139,137,135,133,131,129,127,124,122,120,118,115 dc.b 113,111,108,106,104,101,99,97,94,92,90,88,85,83,81 dc.b 78,76,74,71,69,67,65,62,60,58,56,54,52,50,48 dc.b 46,44,42,40,38,36,34,32,31,29,27,26,24,23,21 dc.b 20,18,17,1јPПRsk6,14,13,12,11,10,9,8,7,6,5,4 dc.b 4,3,2,2,1,1,1,0,0,0,0,0,0,0,0 dc.b 0,0,0,1,1,1,2,2,3,4,4,5,6,7,8 dc.b 9,10,11,12,13,14,16,17,18,20,21,23,24,26,27 dc.b 29,31,32,34,36,38,40,42,44,46,48,50,52,54,56 dc.b 58,60,62,65,67,69,71,74,76,78,81,83,85,88,90 dc.b 92 copptr:dc.l 0 gfxbase:dc.l 0 oldcop:dc.l 0 graphname:dc "graphics.library",0 0,122,124,127 dc.b 129,131,133,135,137,139,141,143,145,147,149,151,153,155,157 dc.b 158,160,162,163,165,166,168,169,171,172,173,175,176,177,178 dc.b 179њш4qH3 MOVE.L (A0),OLDCOPPER MOVE.L #NEWCOPPER,(A0) JSR objBLITT MOVE.L #IRQ,$6C move.l gfxbase,a6 lea $70000,a1 move.l #0,d1 move.l #$5d00,d0 jsr bltclear(a6) move.l #sc3text,sc3texte ; jsr start_muzak MOUSE: JSR SYNC JSR SCROLL JSR HUEPF JSR TEST JSR TEST2 BTST #6,$BFE001 BNE MOUSE MOVE.L #$FC0CD8,$6C ENDE: jsr stop_muzak MOVE.L EXECBASE,A6 MOVE.L GFXBASE,A1 JSR CLOSELIBRARY(A6) MOVE.L EXECBASE,A6 jsr permit(a6) MOVE.L GFXBASE,A0 ADD.Lњш5дŸLŸ #$32,A0 MOVE.L OLDCOPPER,(A0) movem.l (sp)+,d0-d7/a0-a6 error: rts IRQ: movem.l d0-d7/a0-a6,-(a7) jsr set jsr action movem.l (a7)+,d0-d7/a0-a6 JMP $FC0CD8 SYNC: CMP.B #$FF,$DFF006 BNE SYNC RTS HUEPF: MOVE.L HUEPFPOINTER,A0 LEA DIWSTART,A1 LOOP2: CLR.L D1 MOVE.B (A0)+,D1 MOVE.B D1,2(A1) CMP.L #HDEND-1,HUEPFPOINTER BNE HUEPFEND LEA HUEPFDATAS,A0 HUEPFEND: MOVE.L A0,HUEPFPOINTER NOHUEPF: RTS SCROLL: cmp.b #1,za19 bne andy1 add.њш6."Юl #1,za20 cmp.l #170,za20 bne raus clr.l za20 move.b #0,za19 ANDY1: move.l #$00070002,$dff050 move.l #$00070000,$dff054 clr.w $dff042 move.w gr,$dff040 move.w #$ffff,$dff044 move.w #$ffff,$dff046 move.w #$0000,$dff064;A move.w #$0000,$dff066;D move.w #%0100011100011001,$dff058 add.w #1,za3q move.w za3q,d1 cmp.w za3a,d1 bne raus clr.w za3q add.l #1,sc3texte cmp.l #endesc3,sc3texte bne pussy move.l #sc3text,sc3texte pussy: move.l sc3texte,a1 halten: cmњш7MЁŠp.b #"0",(a1) bne font2 move.b #1,za19 jmp raus font2: cmp.b #"#",(a1) bne font add.l #1,a1 cmp.b #"0",(a1) beq null cmp.b #"1",(a1) beq eins cmp.b #"2",(a1) beq zwei cmp.b #"3",(a1) beq drei cmp.b #"a",(a1) beq stufea cmp.b #"b",(a1) beq stufeb cmp.b #"c",(a1) beq stufec cmp.b #"d",(a1) beq stufec cmp.b #"e",(a1) beq stufee font0: add.l #1,a1 font: move.l a1,sc3texte cmp.b #"A",(a1) beq aa3 cmp.b #"B",(a1) beq bb3 cmp.b #"C",(a1) beq cc3 cmp.b њш8‰ЧЎХ#"D",(a1) beq dd3 cmp.b #"E",(a1) beq ee3 cmp.b #"F",(a1) beq ff3 cmp.b #"G",(a1) beq gg3 cmp.b #"H",(a1) beq hh3 cmp.b #"I",(a1) beq ii3 cmp.b #"J",(a1) beq jj3 cmp.b #"K",(a1) beq kk3 cmp.b #"L",(a1) beq ll3 cmp.b #"M",(a1) beq mm3 cmp.b #"N",(a1) beq nn3 cmp.b #"O",(a1) beq oo3 cmp.b #"P",(a1) beq pp3 cmp.b #"Q",(a1) beq qq3 cmp.b #"R",(a1) beq rr3 cmp.b #"S",(a1) beq ss3 cmp.b #"T",(a1) beq tt3 cmp.b #"U",(a1) beq uu3 cmp.b #"V",(a1) beq vv3 cњш9]Іm^mp.b #"W",(a1) beq ww3 cmp.b #"X",(a1) beq xx3 cmp.b #"Y",(a1) beq yy3 cmp.b #"Z",(a1) beq zz3 cmp.b #"?",(a1) beq frage cmp.b #"-",(a1) beq minus cmp.b #".",(a1) beq punkt cmp.b #",",(a1) beq komma cmp.b #" ",(a1) beq space jmp space aa3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$60000,quellea move.w #48,za3a jmp divi bb3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$60006,quellea move.w #40,za3a jmp divi cc3: move.wњш:˜ДJт #%0100101100000011,size move.w #48,moduloa move.l #$6000c,quellea move.w #40,za3a jmp divi dd3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$60012,quellea move.w #48,za3a jmp divi ee3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$60018,quellea move.w #48,za3a jmp divi ff3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$6001e,quellea move.w #40,za3a jmp divi gg3: move.w #%0100101100000011,size move.w #48,moduloњ ш%ИgЬa move.l #$60024,quellea move.w #40,za3a jmp divi hh3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$6002a,quellea move.w #40,za3a jmp divi ii3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$636d8,quellea move.w #24,za3a jmp divi jj3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$636de,quellea move.w #40,za3a jmp divi kk3: move.w #%0100101100000011,size move.w #48,moduloa move.l #$636e4,quellea move.w #40,za3aіш<РdЈМ$0666,$0888,$0aaa,$0ccc dc.w $0ccc,$0aaa,$0888,$0666,$0444,$0222,$0000,$0000 dc.w $0000,$0222,$0444,$0666,$0888,$0aaa,$0ccc,$0eee dc.w $0eee,$0ccc,$0aaa,$0888,$0666,$0444,$0222,$0000 dc.w $0111,$0333,$0555,$0777,$0999,$0bbb,$0ddd,$0fff dc.w $0fff,$0ddd,$0bbb,$0999,$0777,$0555,$0333,$0111 sine: dc.b 95,97,99,101,104,106,108,111,113,115,118,120,122,124,127 dc.b 129,131,133,135,137,139,141,143,145,147,149,151,153,155,157 dc.b 158,160,162,163,165,166,168,169,171,172,173,175,176,1іш=}S|77,178 dc.b 179,180,181,182,183,184,185,185,186,187,187,188,188,188,189 dc.b 189,189,189,189,190,189,189,189,189,189,188,188,188,187,187 dc.b 186,185,185,184,183,182,181,180,179,178,177,176,175,173,172 dc.b 171,169,168,166,165,163,162,160,158,157,155,153,151,149,147 dc.b 145,143,141,139,137,135,133,131,129,127,124,122,120,118,115 dc.b 113,111,108,106,104,101,99,97,94,92,90,88,85,83,81 dc.b 78,76,74,71,69,67,65,62,60,58,56,54,52,50,48 dc.b 46,44,42,40,38,36,34,32,31,29,27,26,24,23,21 і_hTЗldc.b 20,18,17,16,14,13,12,11,10,9,8,7,6,5,4 dc.b 4,3,2,2,1,1,1,0,0,0,0,0,0,0,0 dc.b 0,0,0,1,1,1,2,2,3,4,4,5,6,7,8 dc.b 9,10,11,12,13,14,16,17,18,20,21,23,24,26,27 dc.b 29,31,32,34,36,38,40,42,44,46,48,50,52,54,56 dc.b 58,60,62,65,67,69,71,74,76,78,81,83,85,88,90 dc.b 92 copptr:dc.l 0 gfxbase:dc.l 0 oldcop:dc.l 0 graphname:dc "graphics.library",0 0,122,124,127 dc.b 129,131,133,135,137,139,141,143,145,147,149,151,153,155,157 dc.b 158,160,162,163,165,166,168,169,171,172,173,175,176,1јш?Бœфž move.l d0,gfxbase move.l d0,a6 move.l $26(a6),oldcop move.l #$70000,$dff080 nob: cmpi.b #240,$dff006 bne.s nob bsr bars move.w #$0fff,$dff180 btst #6,$bfe001 bne.s nob move.l oldcop,$dff080 rts bars: move.l copptr,a0 move.w #210,d0 clearlp: clr.w 2(a0) addq.w #8,a0 dbf d0,clearlp lea infront,a6 lea intable,a5 lea thycols,a4 lea sine,a3 moveq #0,d0 ; First bar blp: move.l copptr,a2 move.w (a5)+,d7 tst.b (a6)+ bne.s nonow addq.b #1,-1(a5) move.b (a3,d7.w),d1 ; Y Position and.јш@hїЊ’w #$ff,d1 asl.w #3,d1 ;*8(each coplist entry=8bytes) move.w d0,d6 asl.w #5,d6 ; *16 each colorlist e = 16 moveq #15,d5 mclp: move.w (a4,d6.w),2(a2,d1.w) addq.l #8,a2 addq.l #2,d6 dbf d5,mclp nonow: addq.l #1,d0 cmpi.b #8,d0 bne.s blp lea infront,a6 lea intable,a5 lea thycols,a4 lea sine,a3 moveq #0,d0 ; First bar blp2: move.l copptr,a2 move.w (a5)+,d7 tst.b (a6)+ beq.s nonow2 addq.b #1,-1(a5) move.b (a3,d7.w),d1 ; Y Position and.w #$ff,d1 asl.w #3,d1 ;*8(each coplist enјшAюЁ,try=8bytes) move.w d0,d6 asl.w #5,d6 ; *16 each colorlist e = 16 moveq #15,d5 mclp2: move.w (a4,d6.w),2(a2,d1.w) addq.l #8,a2 addq.l #2,d6 dbf d5,mclp2 nonow2: addq.l #1,d0 cmpi.b #8,d0 bne.s blp2 lea intable,a0 lea infront,a1 moveq #7,d2 checklp: move.w (a0)+,d0 sub.b #$40,d0 spl (a1)+ dbf d2,checklp rts infront:dc.b 1,1,0,0,0,0,1,1 intable:dc.w $00,$20,$40,$60,$80,$a0,$c0,$e0 thycols:dc.w $0111,$0333,$0555,$0777,$0999,$0bbb,$0ddd,$0fff dc.w $0fff,$0ddd,$0bbb,$0999,$0777,$0555јш0ђВXt,$0333,$0111 dc.w $0101,$0303,$0505,$0707,$0909,$0b0b,$0d0d,$0f0f dc.w $0f0f,$0d0d,$0b0b,$0909,$0707,$0505,$0303,$0101 dc.w $0011,$0033,$0055,$0077,$0099,$00bb,$00dd,$00ff dc.w $00ff,$00dd,$00bb,$0099,$0077,$0055,$0033,$0011 dc.w $0101,$0330,$0550,$0770,$0990,$0bb0,$0dd0,$0ff0 dc.w $0ff0,$0dd0,$0bb0,$0990,$0770,$0550,$0330,$0110 dc.w $0100,$0300,$0500,$0700,$0900,$0b00,$0d00,$0f00 dc.w $0f00,$0d00,$0b00,$0900,$0700,$0500,$0300,$0100 dc.w $0001,$0003,$0005,$0007,$0009,$000b,$ішCБœфœ move.l d0,gfxbase move.l d0,a6 move.l $26(a6),oldcop move.l #$70000,$dff080 nob: cmpi.b #240,$dff006 bne.s nob bsr bars move.w #$0fff,$dff180 btst #6,$bfe001 bne.s nob move.l oldcop,$dff080 rts bars: move.l copptr,a0 move.w #210,d0 clearlp: clr.w 2(a0) addq.w #8,a0 dbf d0,clearlp lea infront,a6 lea intable,a5 lea thycols,a4 lea sine,a3 moveq #0,d0 ; First bar blp: move.l copptr,a2 move.w (a5)+,d7 tst.b (a6)+ bne.s nonow addq.b #1,-1(a5) move.b (a3,d7.w),d1 ; Y Position and.ішDhїЊw #$ff,d1 asl.w #3,d1 ;*8(each coplist entry=8bytes) move.w d0,d6 asl.w #5,d6 ; *16 each colorlist e = 16 moveq #15,d5 mclp: move.w (a4,d6.w),2(a2,d1.w) addq.l #8,a2 addq.l #2,d6 dbf d5,mclp nonow: addq.l #1,d0 cmpi.b #8,d0 bne.s blp lea infront,a6 lea intable,a5 lea thycols,a4 lea sine,a3 moveq #0,d0 ; First bar blp2: move.l copptr,a2 move.w (a5)+,d7 tst.b (a6)+ beq.s nonow2 addq.b #1,-1(a5) move.b (a3,d7.w),d1 ; Y Position and.w #$ff,d1 asl.w #3,d1 ;*8(each coplist enішE3№5try=8bytes) move.w d0,d6 asl.w #5,d6 ; *16 each colorlist e = 16 moveq #15,d5 mclp2: move.w (a4,d6.w),2(a2,d1.w) addq.l #8,a2 addq.l #2,d6 dbf d5,mclp2 nonow2: addq.l #1,d0 cmpi.b #8,d0 bne.s blp2 lea intable,a0 lea infront,a1 moveq #7,d2 checklp: move.w (a0)+,d0 sub.b #$40,d0 ;spl (a1)+ dbf d2,checklp rts infront:dc.b 1,1,1,1,1,1,1,1 intable:dc.w $8,$10,$18,$20 dc.w $88,$90,$98,$a0 thycols: dc.w $0000,$0000,$0000,$0222,$0444,$0666,$0888,$0aaa dc.w $0aaa,$0888,$0666,$0444,$02іш;Cд%:22,$0000,$0000,$0000 dc.w $0000,$0000,$0222,$0444,$0666,$0888,$0aaa,$0ccc dc.w $0ccc,$0aaa,$0888,$0666,$0444,$0222,$0000,$0000 dc.w $0000,$0222,$0444,$0666,$0888,$0aaa,$0ccc,$0eee dc.w $0eee,$0ccc,$0aaa,$0888,$0666,$0444,$0222,$0000 dc.w $0111,$0333,$0555,$0777,$0999,$0bbb,$0ddd,$0fff dc.w $0fff,$0ddd,$0bbb,$0999,$0777,$0555,$0333,$0111 dc.w $0000,$0000,$0000,$0222,$0444,$0666,$0888,$0aaa dc.w $0aaa,$0888,$0666,$0444,$0222,$0000,$0000,$0000 dc.w $0000,$0000,$0222,$0444,F?џџO!…„ƒ‚€~“’‘ŽŒ‹Š‰žœ›š™˜—–•”ЉЈЇІЅЄЃЂЁ ŸДГВБАЏЎ­ЌЋЊПОНМЛКЙИЗЖЕџџџ§GHој1&h}|{zyxwvutsˆ‡†H`4  ST25Replay.sџџџ§Gш†Ќ’2M ;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ;­ NoisetrackerV1.0 replayroutine ­ ;­ Mahoney & Kaktus - HALLONSOFT 1989 ­ ;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ mt_data=$58000 mt_init:lea mt_data,a0 move.l a0,a1 add.l #$3b8,a1 moveq #$7f,d0 moveq #0,d1 mt_loop:move.l d1,d2 subq.w #1,d0 mt_lop2:move.b (a1)+,d1 cmp.b d2,d1 bgt.s mt_loop dbf d0,mt_lop2 addq.b #1,d2 lea mt_samplestarts(pc),a1 asl.l #8,d2 asl.l #2,d2 add.l #$43c,d2 add.l a0,d2 move.l d2,a2 moveq #$1e,d0IJ\лyJš4 (.fastdirџџџ§Iš]e5xOktalyzerPR.s_OKTAplayer.sTWS)+№PMAMusikasr.SWS)#QST25Replay.s1`4 мreplayspKLХкjihgfedcba`tsrnmlkjiqpoL+№4  OKTAplayer.sџџџ§KшoyБЄ†********************************** * OKTALYZER V1.1 REPLAYER SOURCE * ********************************** section replayer,code_c jmp p ;by A.Sander with Defpac2 ;(C) 1989 VERLAG MAYER ;- only for 4-Channels rs_song: incbin SongName rs_songend: p: bsr.s rs_init bmi.s rs_error rs_left: btst #6,$bfe001 bne.s rs_left bsr rs_exit moveq #0,d0 rts rs_error: moveq #100,d0 rts * init ******************************** rs_init: lea rs_song,a5 cmp.l #'OKTA',(a5)+ bne rMN „цfedcba`_^]\onmlkqpN#Q41 PMAMusikasr.Sџџџ§Mшp~O“[musl = 900 ; Musik-Lфnge sndl = 900 ; Sound-Lфnge ; Hier beginnt die Musik-Abspielroutine V1.0 vom 12.08.1989 ; Copyright 1989 by Michael Winterberg ; Deusener Straпe 275 ; 4600 Dortmund 18 musirqan: bsr musinit move.l musspeed,musoldspeed or.b #2,$bfe001 lea musirq,a0 move.l a0,$6c rts musirqaus: or.b #2,$bfe001 eor.b #2,$bfe001 move.w #$f,$dff096 move.l oldirq,$6c rts musinit: move.l $6c,oldirq clr.l muscmd lea musperiod,a0 cЂU9=џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ?ї€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќР_џџџџџџџџџџџџџ?џџџ4Ќ RASTERBARS1pt+§oлSYS: ѓёЇzx4бCopperpQўЌЋNџZ4НЏ (SpRS‹Eђ*WVUTS y4ЛƒђS.infopџџџ§RшTHˆ-яуdlџXSњ,m3€€m(0^+ѓ†џџ_ ™^BџџџџШјјјјјшјјјјјјјјјјP )*** DON'T EDIT THE FOLLOWING LINES!! ***^IM1=BKK!:jЖRЁг[SЙ`в!(dB9lЗTB1(ЎПШ]ПШ[ПШ[АааЭnhXKUАбe(dRГЈBA0hЗSS=ЯXЄ[[BJІJЅB1(S9lЕB1)@ЁH9lЗPв€IM1=џщ<Ф,щ!И8Д,Q`ц.Yf8Д,Qf8фФlQf8Д,QЗ<Д`р'<Д,Qf8Д.Qg8Ф.XоYЗ8Д,Qf8Д,QЗ<ДnXA8к#nQf8Д,Qf8ДlYg8ФRшU}§шКb)UЇк#bQЗ8Д,Qf<Д.QИ<0kLA&к#lXG<Д,Qf€IM1=Qf<Дn(EЇ0lQPк$Д,XG<Д,Yg<СbMQ$Д.LPк<Д,QИ$0nQИ$2М(F8ФnMPк$Д,Qf<Сb(A6ЉbQg<ФnLPк<Д,Yg8Ф.)Ud3,Yg<ФnLPк$ДlQЗ<ДlYQFДlYИ<ФnMZк$Д,Yg€IM1=Yg8Ф+)g8ФnS&<УДn`HиG8Ф.QЗ<Фk)f<ЕЛAa<УДЃZйF<ДlYg<Дk)g8Ж,MW<2ДЃiЙиG8Ф.QЗ<Фk)f<СkYВ$ЋДЇjйF<ДlYИ<Фk)g<Фn(EЇ8ДЃjHиG8Ф.Yg<Фk)f<Сb€IM1=MQfУДЇjЙиF<ДlYИ<Сk)g$2М,W<УДЃЋHиG8ФnYИ<Фk)a6ЉДYИ<УДЇjЙиF<Ф.YИ<3k(Ef;lYИ<УДЇЋЙиG8ФnYВ<Сk)Q­ДnYИ<УДЋЋЙиG<ФnYИ<3k*W8ФnYИ<УДЇЋЙ€IM1=и3.YИ<3bXAdД.YИ9c.YQОUTи3nYИ<Фn)ЖdДlRU0БnYQМUЅи3RшVWe86.YИ<3bXAdД.Rf6Ќn)QОUй3nYВ<Сn)ЖdДnXE­СbLQО@й3nYИ<3bXEdД.YИ$2ДMQЙк3ПXG$Сn(AdДgIM1=YИ$2ДMQgMк4ЃИ­3bXA$ЉlXA6:М,ZМ@л"jLЩn(A$8l)QЇЉДЇЋHоIEo(A$Љl-Uf=UЃ`р%4ЊТ$8b(QМM4фЃk>8c.ЋК@ц*HЩЦЇjџџо^IM2=BKK!:jЖRЁг[SЙ`в!(dB9lЗTB1(ЎПШ]ПШ[ПШ[АааЭnhXKUАбe(dRГЈBA0hЗSS=ЯXЄ[[BJІJЅB1(S9lЕB1)@ЁH9lЗPв€IM2=и$`"IC,Qj@!0тDб2j8ЃjIf9Dб2п"@!4Ђe4Ї­0E8Д4`"@м2б)E,IEUВ$0b$Є,Rhб!0и!0бjHГjKN(A$0b(@jQfID$`зD$Ѓf4ЃЋСb(A$0aX7"КF8Д02ж)!4QE5Ј$0€IM2=b(A$+b%Б­+M4Є,`hд"@E*IMXA$0b(A$0aX7"МMЇБlRж)BjМb(A$0b(A"СN%БЋОUШЏlRRшWн“)rhд"IBjОaXA$0b(7$+aUЇМO]ЇblRб)д)BjСMІЈ$0b(A"СMVЋЬОUШЏlRj@€IM2="@в2j4Ќ$0MІЈ$0N%ЇЌM]ЧЋЬВ\4Д4Qh)гj4Ј$0aUЋМKaUЋМРUЈЏ(A]ХД*If@Dб2j4Ќ$0b(6ЌMUЇЏЬM]Сb(A\4Ѓl0F9гj4Ј$0N%Б­+UШЋМР$0bЪ!\4В"РF9Dб2j4Ќ€IM2=aX@­+aX6ЬO\0b(A$2Р$+MWЄ,`вE*Mb(7"СN%БЬO$0b(A$8@ЋМMWЄ,Ѓб)E*MN%Б­+aUЇЬO$0b(Ab%БЋМMWЄ,`вE*MaX7"СMX6ЬO$0b)PN%ЇЋМMWЄ,Ѓб)E*MN%Б­+€IM2=aUЇЬO\`b,+aUЈ!ЁMWЄ,`вE*MaX7"МMUЇЬO4Гh,0N"o\-MWЄ,Ѓб)E*MN%БЋСMUЇЬO\c,D+b"@ЬМMЈЄ,`вE*MaX7"МMUЋЬO6У(T0MVЏЋОUШЄ,Ѓб)E*MN%ЇЋМMUЇЬO€IM2=\ЌПD+MUЇМO\0Є,`вE*MaUБЋМMVЇRйhчЬO%Уk\0MVЋЬВ$b3,Ѓб)E*MN%ЇЋМUUЋЬO%ЈЏL+UЈЏ(O\b3,`вE*MMUЇЋМMVЇЬEMЇЏЭ-]Сb(O0dД02б)E*MaUЇЋОMІЋ+PMVЋЬРIM2=$7Џ(A18Е$`вE*MMUЇЋМMVЇЬPMX+[ВUШЏ(O18Ж0в)E*MaUЇЋОMІЋ+PMX)#Р]ЈЏ(O18ЕдE*MMUЇЛМUVЇЬPMUЋЫОUШb+Р18Ж0в)E*MMUЇЋОMІЋЬPMUЇЌM\7Џ+Р18ЕдE€IM2=e6bЋОMІЋЌM%Љ6ЋОUСЏЩA]У(lRг$`j4h(KUVЇМM]Љ6МO%Шb+Р0dЄ,`hг2"HЃA!%ІЋМM%Љ:ЩO\0ЏЪ$E8Д02еh)BjD00ЋМM]Љ"ЬВ%ШhBIf9D$`е"@E,IDb"+M%ЇЋ(OeIM2=\b2lQj@!0з)!4Ђe4h@A%ЁbЬЕ14Д,Ѓб)кDб2j8Ѓi$$7ЏA)F8Ж0бhм$`"IC*I0b(jQfIб$`пhбE4QE4Є,RhбDт)б$Ѓf8Д4`"@нЄ,`вE*MaUБЋМMVЇXYu~цїY4Л„ ЖStartup-SequenceQџџџ§XŸ:Fdf0:LoveDungeon.exe цфз4`DP-INTROpZ[ с|4[`4Л„ ЗStartup-Sequence.infoQџџџ§Z`ѓ)Ўу Sќ7P8€€ Z џџјџџј’3“80Ч83“80“8џџјџџјџИўѓxќЭ8њ2иџИоѓx$Э8š2и{§јї›ј&iјб–ј?џџјџџјџџјяmцЬlЦЯ8ЦЬlЦЯlЦџџі€F †2ЦЭ&€F! †л2ЦeЭ.„dй–.i>ўџџўџџўCEDFILETYPE=Text4ЛƒђS.infopџџџ§M ш]АdЁmove.l d6,d1 and.l #$f,d1 muls #2,d1 move.w (a0,d1),(a2) lea musvolcount,a4 move.w (a0,d1),(a4,d4) move.l d6,d0 and.l #$f0,d0 asr.l #3,d0 move.w (a0,d0),(a1) lea muscmd,a1 move.l musvoice,d1 cmp.b #$E3,(a1,d1) bne muskeinvol move.w (a0,d0),(a4,d4) muskeinvol: lea musperiod,a1 move.w d7,(a1,d4) move.l #$dff000,a6 add.l d2,a6 lea musiffstart,a0 cmp.l #0,(a0,d5) bne musdo_iff lea mussoundstart,a0 move.l (a0,d5),$a0(a6) lea mussoundlaenge,a0 move.l (a0,d5),d0 asM ш^œ[›&r.l #1,d0 move.w d0,$a4(a6) move.w d7,$a6(a6) bsr mussetvol bsr musvoiceon lea musnr,a0 move.l d5,(a0,d3) rts musdo_iff: move.l (a0,d5),$a0(a6) lea mussoundloop,a0 move.l (a0,d5),d0 lea mussoundlooplaenge,a0 add.l (a0,d5),d0 asr.l #1,d0 move.w d0,$a4(a6) move.w d7,$a6(a6) bsr musvoiceon lea musnr,a0 move.l d5,(a0,d3) rts mus_keiniff: lea mussoundstart,a0 move.l (a0,d5),$a0(a6) lea mussoundlaenge,a0 move.l (a0,d5),d0 asr.l #1,d0 move.w d0,$a4(a6) move.w d7,$aM ш_НЬ06(a6) bsr musvoiceon lea musnr,a0 move.l #-1,(a0,d3) lea musperiod,a0 move.w d7,(a0,d4) rts mus_iff_only: move.l #$dff000,a6 move.l musvoice,d2 muls #$10,d2 add.l d2,a6 lea muscmd,a0 add.l musvoice,a0 move.b #0,(a0) lea musvol,a0 move.l musvoice,d4 muls #2,d4 move.w #64,(a0,d4) lea musiffstart,a0 cmp.l #0,(a0,d5) beq mus_keiniff move.l (a0,d5),$a0(a6) lea mussoundlaenge,a0 move.l (a0,d5),d0 sub.l #104,d0 asr.l #1,d0 move.w d0,$a4(a6) move.w d7,$a6(a6) bsr M ш`ф2ђSmusvoiceon lea musnr,a0 move.l #-1,(a0,d3) lea musperiod,a0 move.w d7,(a0,d4) rts musvoiceoff: move.l musvoice,d0 move.l #1,d1 asl.l d0,d1 move.w d1,$dff096 move.l musvoice,d0 muls #$10,d0 move.l #$dff000,a3 add.l d0,a3 move.l #musleer,$a0(a3) move.w #5,$a4(a3) move.w #0,$a8(a3) move.w #202,$a6(a3) rts musvoiceon: move.l musvoice,d0 move.l #1,d1 asl.l d0,d1 or.w d1,musflags rts musflags: dc.w 0 mussetvol: move.l #$dff000,a5 move.l musvoice,d0 muls #2,d0 leM шažы@ a musvol,a0 add.l d0,a0 muls #8,d0 add.l d0,a5 move.w (a0),$a8(a5) rts musok: rts muschangespeed: move.b 2(a0),d0 and.l #$ff,d0 cmp.l #32,d0 bpl musnochangespeed move.l d0,musspeed musnochangespeed: rts musfunc: cmp.b #$52,d0 beq muschangespeed move.l musvoice,d0 muls #2,d0 lea muscmd2,a1 add.l musvoice,a1 move.b (a0),(a1) move.b 1(a0),d1 and.l #$ff,d1 lea musdata3,a1 move.w d1,(a1,d0) move.b 2(a0),d1 and.l #$ff,d1 lea musdata4,a1 move.w d1,(a1,d0) rts musMшbК]ydo_func: move.l #0,musvoice musdo_func_loop: bsr musfunc_work bsr mussetvol add.l #1,musvoice cmp.l #4,musvoice bne musdo_func_loop rts musleer: dc.b 0,0,0,0,0,0,0,0,0,0,0,0 musfunc_work: move.l musvoice,d0 muls #4,d0 lea muscmd,a1 add.l musvoice,a1 cmp.b #0,(a1) bne mus_func_work_weiter mus_noloop: move.l #musleer,d2 move.l #10,d3 jmp mus_func_it mus_func_work_weiter: move.l d0,d1 lea musnr,a0 add.l d1,a0 cmp.l #-1,(a0) beq mus_noloop move.l (a0),d1 lea soundMшcжшFglooplaenge,a0 add.l d1,a0 cmp.l #0,(a0) beq mus_func_workok lea musiffstart,a0 add.l d1,a0 move.l (a0),d2 lea mussoundloop,a0 add.l (a0,d1),d2 lea mussoundlooplaenge,a0 move.l (a0,d1),d3 mus_func_it: move.l musvoice,d0 muls #$10,d0 move.l #$dff000,a0 add.l d0,a0 cmp.l #0,d3 beq mus_func_workok move.l d2,$a0(a0) asr.l #1,d3 move.w d3,$a4(a0) mus_func_workok: lea musvolcount,a3 move.l #$dff000,a6 lea musdata,a1 lea musdata2,a2 move.l musvoice,d0 move.l d0,d2 mMшdіAѓЄove.l d0,d3 move.l d0,d4 muls #2,d4 muls #4,d3 muls #$10,d2 add.l d2,a6 lea muscmd2,a0 add.l musvoice,a0 move.b (a0),d0 and.l #$ff,d0 cmp.b #$50,d0 beq mustonminus cmp.b #$51,d0 beq mustonplus muscommand2: lea muscmd,a0 add.l musvoice,a0 move.b (a0),d0 and.l #$ff,d0 cmp.b #$e3,d0 beq musattack cmp.b #$e4,d0 beq musdecay rts musattack: cmp.w #0,(a3,d4) beq musdo_attack sub.w #1,(a3,d4) rts musdo_attack: lea musvol,a0 cmp.w #64,(a0,d4) beq musattack_ok addMшe–С‹н.w #8,(a0,d4) move.w (a1,d4),(a3,d4) sub.w #1,(a3,d4) rts musattack_ok: lea muscmd,a0 move.l musvoice,d0 move.b #$e4,(a0,d0) move.w (a2,d4),(a3,d4) sub.w #1,(a3,d4) musdecay: cmp.w #0,(a3,d4) beq musdo_decay sub.w #1,(a3,d4) rts musdo_decay: lea musvol,a0 cmp.w #0,(a0,d4) beq musdecay_ok sub.w #8,(a0,d4) move.w (a2,d4),(a3,d4) sub.w #1,(a3,d4) rts musdecay_ok: lea muscmd,a0 move.l musvoice,d0 move.b #0,(a0,d0) rts mustonminus: move.l #$dff000,a6 move.l musvoiMшfNСce,d0 muls #$10,d0 add.l d0,a6 lea musdata3,a0 move.w (a0,d4),d0 muls #$100,d0 lea musdata4,a0 add.w (a0,d4),d0 lea musperiod,a0 add.w d0,(a0,d4) move.w (a0,d4),$a6(a6) jmp muscommand2 mustonplus: move.l #$dff000,a6 move.l musvoice,d0 muls #$10,d0 add.l d0,a6 lea musdata3,a0 move.w (a0,d4),d0 muls #$100,d0 lea musdata4,a0 add.w (a0,d4),d0 lea musperiod,a0 sub.w d0,(a0,d4) move.w (a0,d4),$a6(a6) jmp muscommand2 muslist: geschwindigkeit: dc.l 0 startpos: dc.l M*=B0 endepos: dc.l 0 maxpos: dc.l 0 muscode: blk.b musl,0 soundlist: soundstart: blk.l 32,0 soundlaenge: blk.l 32,0 iffstart: blk.l 32,0 soundloop: blk.l 32,0 soundlooplaenge: blk.l 32,0 soundname: sounddata: blk.b sndl-640,0 oldirq: dc.l 0 musend: a musvol,a0 cmp.w #0,(a0,d4) beq musdecay_ok sub.w #8,(a0,d4) move.w (a2,d4),(a3,d4) sub.w #1,(a3,d4) rts musdecay_ok: lea muscmd,a0 move.l musvoice,d0 move.b #0,(a0,d0) rts mustonminus: move.l #$dff000,a6 move.l musvoiц/шhіьFю * * Im Scrolltext bedeutet der Code : * * 10,X = Der Computer scrollt erst nach X Interrupts weiter (1-255) * * 11,X = Geschwindigkeit einstellen X = neue Scollgeschwindigkeit * * (1-15) * * 13,X = Schwabbeltabelle waehlen X = Zeiger auf Schwabbeltabelle * * (1-2) * * 14,X = Farbtabelle waehlen X = Zeiger aufц0qOъŒ Farbtabelle (1-2) * ********************************************************************** message:dc.b 13,1,14,1," ",11,12," DI.PO. ",10,200 dc.b " PRESENT ",10,200," NEW INTRO ",10,200 dc.b " ",11,2 dc.b " ALL PROGRAMMING BY THE MEDITATION STOPPERS IN 1988" dc.b " MES ",10,255," ",0 introstop: **************************************************************** * Hier kannst Du den Scrolltext eingeben !!!! KшjЯ/ .b 36*32 rs_speed: dc.w 6 rs_len: dc.w 1 rs_patterns: ds.b 128 rs_pattpts: ds.l 64 rs_samplepts: ds.l 36 rs_patty: ds.w 1 rs_trkpos: ds.l 1 rs_pbuffs: ds.l 16 rs_pattline: ds.l 4 rs_actspeed: ds.w 1 rs_actcyc: ds.w 1 rs_nextpt: ds.w 1 rs_pointer: ds.w 1 rs_vol: ds.l 1 rs_filter: ds.w 1 rs_oldaud: ds.l 1 rs_periods: dc.w $358,$328,$2FA,$2D0,$2A6,$280,$25C,$23A,$21A dc.w $1FC,$1E0,$1C5,$1AC,$194,$17D,$168,$153,$140 dc.w $12E,$11D,$10D,$FE,$F0,$E2,$D6,$CA,$BE dc.w $B4,$AA,$A0,$9Kždт@7,$8F,$87,$7F,$78,$71 pattpts,a0 add.w d0,d0 add.w d0,d0 move.l (a0,d0.w),a0 move.w (a0)+,d0 rts rs_dma: movem.w d0-d1,-(sp) move.w #4,d1 rs_nextline: move.b $dff006,d0 rs_waitline: cmp.b $dff006,d0 beq.s rs_waitline dbf d1,rs_nextline movem.w (sp)+,d0-d1 rts rs_cmformat: dc.l 'CMOD',8,rs_channelmodes rs_extformat: dc.l 'SAMP',36*32,rs_samples dc.l 'SPEE',2,rs_speed dc.l 'PLEN',2,rs_len dc.l 'PATT',128,rs_patterns,0 rs_channelmodes:ds.w 4 rs_samples: dsMшl’аg2,428,0,0 dc.w 0,427,404,381,359,339,320,302,285,269,254,240,226,214,0,0 dc.w 0,214,202,191,180,170,160,151,143,135,127,120,113,107,0,0 mus_wave_daten: dc.w 0,1,2,3,4,6,9,13,18,24,31,39,48,50,61,72 muscmd: dc.b 0,0,0,0 muscmd2: dc.b 0,0,0,0 musperiod: dc.w 0,0,0,0 musvol: dc.w 0,0,0,0 musvolcount: dc.w 0,0,0,0 musdata: dc.w 0,0,0,0 musdata2: dc.w 0,0,0,0 musdata3: dc.w 0,0,0,0 musdata4: dc.w 0,0,0,0 muscount: dc.l 0 musnr: dc.l 0,0,0,0 musspeed: dc.l 0 musstart: dc.l 0 MшmИ Ende lea Font,a2 ;Startadresse des Fonts holen sub.b #"!",d0 ; and.l #$000000FF,d0 ; move.l d0,d1 ;D0 -> D1 divu #FontBPLx/Fontx,d0 ;Zeile berechnen mulu #[[Fontx/8]*Fonty]*[FontBPLx/Fontx],d0 divu #FontBPLx/Fontx,d1 swap d1 and.l #$0000FFFF,d1 mulu #Fontx/8,d1 add.l d1,d0 add.l d0,a2 move.l a2,a3 move.l a1,a4 trans1: moveq #Fonty-1,d6 trans2: moveq #[Fontx/8]-1,d5 trans3: moveцш€ИЋYЦ.b (a3)+,(a4)+ dbf d5,trans3 subq.l #Fontx/8,a3 subq.l #Fontx/8,a4 add.l #FontBPLx/8,a3 add.l #ScrollBPLx/8,a4 dbf d6,trans2 add.l #[ScrollBPLx/8]*ScrollBPLy,a1 add.l #[FontBPLx/8]*FontBPLy,a2 move.l a2,a3 move.l a1,a4 dbf d2,trans1 eend: movem.l (a7)+,d0-d7/a0-a6 rts ;------------------------------ ;------------------------------------------------ effecthandler: lea.l datach0,a6 cmp.b #0,3(a6) beq.s eff1 move.l #$dff0a0,a5 bsr.s eff5 eff1: lea.l datach1,a6 cmp.b #цшtI'l0,3(a6) beq.s eff2 move.l #$dff0b0,a5 bsr.s eff5 eff2: lea.l datach2,a6 cmp.b #0,3(a6) beq.s eff3 move.l #$dff0c0,a5 bsr.s eff5 eff3: lea.l datach3,a6 cmp.b #0,3(a6) beq.s eff4 move.l #$dff0d0,a5 bsr.s eff5 eff4: movem.l (a7)+,d0-d7/a0-a6 rts eff5: move.b 2(a6),d0 and.b #$0f,d0 cmp.b #1,d0 beq appreggiato cmp.b #2,d0 beq pitchbend rts ;------------------------------------------------ appreggiato: cmp.w #1,timpos beq.s appre1 cmp.w #2,timpos beq.s appre2 cmp.w цш‚Ÿјђі#3,timpos beq.s appre3 cmp.w #4,timpos beq.s appre1 cmp.w #5,timpos beq.s appre2 rts appre1: clr.l d0 move.b 3(a6),d0 lsr.b #4,d0 bra.s appre4 appre2: clr.l d0 move.b 3(a6),d0 and.b #$0f,d0 bra.s appre4 appre3: move.w 16(a6),d2 bra.s appre6 appre4: lsl.l #1,d0 clr.l d1 move.w 16(a6),d1 lea.l notetable,a0 appre5: move.w (a0,d0.l),d2 cmp.w (a0),d1 beq.s appre6 addq.l #2,a0 bra.s appre5 appre6: move.w d2,6(a5) rts ;------------------------------------------------ pцшƒ€›ї?itchbend: clr.l d0 move.b 3(a6),d0 lsr.b #4,d0 cmp.b #0,d0 beq.s pitch2 add.w d0,(a6) move.w (a6),6(a5) rts pitch2: clr.l d0 move.b 3(a6),d0 and.b #$0f,d0 cmp.b #0,d0 beq.s pitch3 sub.w d0,(a6) move.w (a6),6(a5) pitch3: rts ;------------------------------------------------ replayhandler: lea.l muzakdata,a0 move.l a0,a3 add.l #12,a3 move.l a0,a2 add.l #472,a2 add.l #600,a0 move.l trapos,d0 clr.l d1 move.b (a2,d0.l),d1 mulu #1024,d1 add.l patpos,d1 clr.w enabцш„gЂВ3it move.l #$dff0a0,a5 lea.l datach0,a6 bsr soundhandler move.l #$dff0b0,a5 lea.l datach1,a6 bsr soundhandler move.l #$dff0c0,a5 lea.l datach2,a6 bsr soundhandler move.l #$dff0d0,a5 lea.l datach3,a6 bsr soundhandler move.l #300,d0 repl1: dbra d0,repl1 move.l #$8000,d0 add.w enabit,d0 move.w d0,$dff096 move.l #datach3,a6 cmp.w #1,14(a6) bne.s repl2 move.l 10(a6),$dff0d0 move.w 14(a6),$dff0d4 repl2: move.l #datach2,a6 cmp.w #1,14(a6) bne.s repl3 move.l 10(a6),$dfц ш…Э}зf0c0 move.w 14(a6),$dff0c4 repl3: move.l #datach1,a6 cmp.w #1,14(a6) bne.s repl4 move.l 10(a6),$dff0b0 move.w 14(a6),$dff0b4 repl4: move.l #datach0,a6 cmp.w #1,14(a6) bne.s repl5 move.l 10(a6),$dff0a0 move.w 14(a6),$dff0a4 repl5: add.l #16,patpos cmp.l #1024,patpos bne.s repl6 clr.l patpos addq.l #1,trapos clr.l d0 move.w numpat,d0 move.l trapos,d1 cmp.w d0,d1 bne.s repl6 clr.l trapos repl6: movem.l (a7)+,d0-d7/a0-a6 rts REPLAY_SONG: movem.l d0-d7/a0-a6,-(a7) cц!ш†л— mp.w #0,plamod beq.s rps1 addq.w #1,timpos cmp.w #6,timpos bne.L effecthandler clr.w timpos bra replayhandler rps1: movem.l (a7)+,d0-d7/a0-a6 rts ;-------------------------------------------- ;------------------------------------------------ soundhandler: move.l (a0,d1.l),(a6) addq.l #4,d1 clr.l d2 move.b 2(a6),d2 and.b #$f0,d2 lsr.b #4,d2 cmp.b #0,d2 beq.s shand2 clr.l d3 lea.l sounds-4,a1 move.l d2,d4 mulu #4,d2 mulu #30,d4 move.l (a1,d2.l),4(a6) move.w (a3,ц"ш‡Й Љd4.l),8(a6) move.w 2(a3,d4.l),18(a6) move.w 4(a3,d4.l),d3 cmp.w #0,d3 beq.s shand1 move.l 4(a6),d2 add.l d3,d2 move.l d2,4(a6) move.l d2,10(a6) move.w 6(a3,d4),8(a6) move.w 6(a3,d4),14(a6) move.w 18(a6),8(a5) bra.s shand2 shand1: move.l 4(a6),d2 add.l d3,d2 move.l d2,10(a6) move.w 6(a3,d4.l),14(a6) move.w 18(a6),8(a5) shand2: cmp.w #0,(a6) beq.s shand3 move.w (a6),16(a6) move.w 20(a6),$dff096 move.l 4(a6),0(a5) move.w 8(a6),4(a5) move.w 0(a6),6(a5) move.w 20(ц#шrЬWa6),d0 or.w d0,enabit shand3: rts ************************************************ gfxname: dc.b "graphics.library",0,0 gfxbase: dc.l 0 oldcopper: dc.l 0 newcopper: ;-----Farben der Sterne (von hinten nach vorne) dc.w $1a4,$999,$1a6,$777 dc.w $1ac,$aaa,$1ae,$aaa dc.w $8e,$2081,$90,$29c1 ;DIWSTRT, DIWSTOP dc.w $92,$0030,$94,$00d0 ;DDFSTRT, DDFSTOP dc.w $100,$4200 ;4 BitPlanes dc.w $108,planex-42,$10a,planex-42 ;Modulos dc.w $104,$0 CL_stars: dc.w $122,0,$120,0,$126,0цш‰As У move.b #35,rows ;eigentliche Scrollroutine move.l mpointer,a0 lea ScrollBPL,a1 ;Startadresse der 1. Bitplane move.l #384,d0 ;X-Position moveq #1,d1 ;Y-Position moveq #3,d2 ;Anzahl der Bitplanes bsr Text ;Text-Routine aufrufen addq.l #1,a0 ;Scrollzeiger erhoehen tst.b (a0) ;naechstes Zeichen = 0 bne scrend ;Nein -> SCREND lea message,a0 ;Ja -> Scrollanfang holen clr.b schwabset clr.b colorset move.b #1,speed scrend: move.l a0,mpointer scrend1: ;---- BilцшŠ~Џd nach links scrollen (immer wenn picpix<>planex*4) move.l #wait-lllll,d0 cmp.l #94,d0 bne end btst #1,picstat+1 beq.s piscl3 ;wenn Bit #1 gesetzt, dann bsr.L resetbitmap ;Bitplane zurќcksetzen and #$fffd,picstat ;Reset-flag lіschen move.l #ytab1,ytab ;Ytab1 einschalten (normal ticken) move.l #ytab1end,ytabend piscl3: btst #0,picstat+1 ;Wenn Bit #0 nicht gesetzt, dann beq.s pisce ;nicht schieben move pspeed,d0 ;Bild verschieben add d0,picpix move d0,d1 lsl #4,d1 or цш‹Mў мd1,d0 sub.b d0,bplptr+35 ;BPLCON1 bhs.s irqg1 move.b #$ff,bplptr+35 ;-- Planezeiger erniedrigen moveq #depth-1,d7 lea BPLPTR,a0 piscl1: addq #2,6(a0) ;Lo-Wort bcc.s piscl2 addq #1,2(a0) ;Hi-Wort piscl2: addq.l #8,a0 dbf d7,piscl1 bra.s irqg1 pisce: cmp.l #ytab2,ytab ;falls ytab 2 eingeschaltet ist, bne.s pisce2 move.l #YTab3,Ytab ;ytab3 einschalten (nicht ticken) move.l #ytab3end,ytabend pisce2: cmp.l #ytab1,ytab ;falls ytab 1 eingeschaltet ist, bne.s pisce3 move.l #YTaцшŒмЄŠєb2,Ytab ;ytab2 einschalten (austicken) move.l #ytab2end,ytabend pisce3: ;****************************************** ;------ Hќpfen ----- irqg1: move.l ytabptr,a0 lea BPLPTR+2,a1 clr.l d0 move.b (a0)+,d0 ext d0 mulu #planex,d0 ext.l d0 moveq #depth-1,d7 dotzl1: move (a1),d1 swap d1 move 4(a1),d1 add.l d0,d1 move d1,4(a1) swap d1 move d1,(a1) addq.l #8,a1 dbf d7,dotzl1 cmp.l ytabend,a0 blo.s dotzl2 ;Ende der Tabelle nicht erreicht? move.l ytab,a0 dotzl2: move.l a0цш‰‰ФK,ytabptr irqg2: addq.b #1,delay movem.l (sp)+,d0-d7/a0-a6 oldirq: jmp $000000 delay: dc.b 1 even ************************************************ error: illegal ;move.l #$40000,a7 ;move.l #$ffffffff,d6 ;jmp $fc0208 ;-------------------------------------- setbitmap: movem.l d0-d7/a0-a6,-(a7) move.l #Bpl+smod,d0 ;Adresse der Planes moveq #depth-1,d7 lea BPLPTR,a0 sbl2: addq.l #2,a0 swap d0 move d0,(a0)+ ;in Copperliste schreiben addq.l #2,a0 swap d0 ;erst hi-,dann lo-byцшŽаOњte move d0,(a0)+ add.l #planex*planey,d0 dbf d7,sbl2 movem.l (a7)+,d0-d7/a0-a6 rts ;----------------------------------------- resetbitmap: ;Bitplane nach rechts schieben movem.l d0-d7/a0-a6,-(a7) moveq #depth-1,d7 lea BPLPTR+2,a0 rsbl2: move (a0),d0 swap d0 move 4(a0),d0 sub.l #planex/2,d0 move d0,4(a0) swap d0 move d0,(a0) addq.l #8,a0 dbf d7,rsbl2 movem.l (a7)+,d0-d7/a0-a6 rts ;----------------------------------------- ;---- Bild in Bitplane kopieren ;- zuerst dieцшРU Farben in die Copperliste SetPic: movem.l d0-d7/a0-a6,-(a7) and.l #$ffff,d0 move.l a0,a2 lea pictab,a0 lsl #3,d0 addq.l #4,d0 move.l (a0,d0),a0 addq.l #6,a0 lea colors,a1 move #$180,d0 moveq #15,d7 setcol: move d0,(a1)+ move (a0)+,(a1)+ addq #2,d0 dbf d7,setcol ;---- Bild in die Bitmap kopieren lea $dff000,a5 ;Ziel steht in a2, Quelle in a0 moveq #[depth]-1,d7 pcl1: move.l #[picy]-1,d6 pcl2: move.l #[picx/2]-1,d5 pcl3: move (a0)+,(a2)+ dbf d5,pcl3 ;1 Reihe kopieren цшn[ЧO add.l #planex-picx,a2 ;X-Modulo addieren dbf d6,pcl2 ;1 Plane kopiert move.l #planey-picy,d0 mulu #planex,d0 and.l #$ffff,d0 add.l d0,a2 ;Plane-Modulo addieren dbf d7,pcl1 movem.l (a7)+,d0-d7/a0-a6 rts ;----------------------------------------------------- issr: move.l a0,a1 move #[StarsY/2]-1,d7 move #starsx,d1 isl1: move d1,-(sp) rnd: bsr rndsr move d0,d1 and #%1111,d1 rndl: dbf d1,rndl bsr rndsr move (sp),d1 move d0,d2 move d1,d3 ;----- Controlword 2 berechneцш‘ў5ь9n move d3,d1 add #1,d1 lsl #8,d1 bcc CCW_G1 bset #1,d1 ;---- Controlword 1 berechnen CCW_g1: move d3,d0 lsl #8,d0 bcc CCW_g2 bset #2,d1 CCW_g2: lsr #1,d2 bcc CCW_g3 bset #0,d1 CCW_g3: move.b d2,d0 move d0,(a1)+ move d1,(a1)+ btst #0,d5 beq.s istl2 move.l #1,(a1)+ bra.s istl3 istl2: move.l #$10001,(a1)+ istl3: move (sp)+,d1 add #2,d1 dbf d7,isl1 rts rndsr: move.b $dff006,d0 move.b $dff007,d1 and #%111111,d1 ror d1,d0 cmp #$200,d0 bge rndsr rts ;-----------цш’чУ5------------------------------------------- mssr: move.l d0,d1 divu #2,d1 move.l d1,d2 swap d2 move.l a0,a1 move.l #[StarsY/2]-1,d7 mssrl2: sub.b d1,1(a1) tst.b d2 beq.s mssrl1 btst #0,3(a1) bne mssrl3 sub.b #1,1(a1) mssrl3: eor #1,2(a1) mssrl1: add.l #8,a1 dbf d7,mssrl2 rts ;---------- ;------------------------------ Scrolling: movem.l d0-d7/a0-a6,-(a7) ;Register retten lea $dff000,a5 ;Custom-Start -> A5 waitblt:btst #14,$002(a5) ;Blitter frei ? bne waitblt ;Nein цш}q%3-> WAITBLT move.l a0,$050(a5) ;Blitter Source-Register (A) subq.l #2,a0 ;minus 2 move.l a0,$054(a5) ;Blitter Ziel-Register (D) moveq #16,d0 ;maximal Geschwindigkeit -> D0 sub.b d5,d0 ;minus Scrollgeschwindigkeit ror.w #4,d0 ;4 Bit nach rechts rotieren or.w #%0000100111110000,d0 ;Quelle A -> Ziel D LF11110000 move.w d0,$040(a5) ;BLTCON 0 move.w #$0000,$042(a5) ;BLTCON 1 move.w #$0002,$064(a5) ;BLTMOD A (1 Wort da BPL 28 move.w #$0002,$066(a5) ;BLTMOD D Worteцш”/н2.l 4,a6 jsr -132(a6) lea gfxname,a1 jsr -408(a6) move.l d0,gfxbase move.l pictab,d0 move d0,pspeed ;-----------REPLAY_INIT: move.l #snd1,sounds+0 move.l #snd2,sounds+4 move.l #snd3,sounds+8 move.l #snd4,sounds+12 move.l #snd5,sounds+16 move.l #snd6,sounds+20 move.l #snd7,sounds+24 move.l #snd8,sounds+28 move.l #snd9,sounds+32 move.l #snda,sounds+36 move.l #sndb,sounds+40 move.l #sndc,sounds+44 move.l #sndd,sounds+48 move.l #snde,sounds+52 move.l #sndf,sounds+56 цш•ё­чг move.l #sounds,a0 clr.l d0 rint1: move.l (a0,d0.l),a1 clr.l (a1) addq.l #4,d0 cmp.l #60,d0 bne rint1 lea.l muzakdata,a0 move.b 470(a0),numpat+1 ;--------------REPLAY_ENABLE: move.w #-1,plamod move.w #00,$dff0a8 move.w #00,$dff0b8 move.w #00,$dff0c8 move.w #00,$dff0d8 clr.w timpos clr.l trapos clr.l patpos ;-------------------------setplanes: lea bplz,a0 lea ScrollBPL,a1 moveq #2,d1 setl0: move.l a1,d0 move.w d0,6(a0) swap d0 move.w d0,2(a0) add.l #[ScrollBPLx/цш–дэ'U8]*ScrollBPLy,a1 addq.l #8,a0 dbf d1,setl0 lea schwab,a0 move.b #YScrollPos+1,d0 lsl.l #8,d0 move.b #$0f,d0 swap d0 move.w #$fffe,d0 moveq #ScrollBPLyFont-1,d1 setl2: move.l d0,(a0)+ move.l #$01020000,(a0)+ move.l #$01800000,(a0)+ add.l #$01000000,d0 dbf d1,setl2 ;-------------initstars: move.l #stars,d0 lea CL_stars+2,a0 moveq #Fields-1,d7 ISS_L: move d0,(a0) addq #4,a0 swap d0 move d0,(a0) addq #4,a0 swap d0 add.l #4*[StarsY+1],d0 dbra d7,iss_l lea Stars,a0цш—œ8` moveq #fields-1,d5 IStL1: bsr issr add.l #4*[StarsY+1],a0 dbf d5,istl1 bsr.L setbitmap clr.l d0 lea bpl+rechts,a0 bsr.L setpic move.l ytab,ytabptr ;---------------------------------------- move.l gfxbase,a0 move.l 50(a0),oldcopper move.l #newcopper,50(a0) move.l $6c,oldirq+2 move.l #newirq,$6c move.l #$0022,d1 lllll: move.l #$ffff,d0 llllll: dbf d0,llllll dbf d1,lllll lea bpl,a1 add.l #[planex-8]+[241*planex],a1 moveq #1,d0 lll: move.l a1,a0 move.l #$78aee000,(цш˜{АаRa0) add.l #planex,a0 move.l #$b4e88000,(a0) add.l #planex,a0 move.l #$a4ece000,(a0) add.l #planex,a0 move.l #$b4a82000,(a0) add.l #planex,a0 move.l #$78aee000,(a0) sub.l #42,a1 dbf d0,lll wait: btst #6,$bfe001 beq.L end cmp #planex*4,picpix ;steht das Bild blo.L wg1 ;nein ;----------- nфchstes Bild klarmachen and #$fffe,picstat ;scrolling aus move picnr,d0 lea BPL+links,a0 ;Destination-Adresse bsr.L setpic ;altes Bild clonen move.b #1,delay snpl4: btst #6,$bfeцш™ч™ф›001 beq.s end tst.b delay bne.s snpl4 move picnr,d0 ;Bildnr hochzфhlen addq.w #1,d0 cmp #numpics,d0 bne.s sbdpl1 clr.l d0 sbdpl1: move d0,picnr move d0,d1 lsl #3,d1 lea pictab,a0 move 2(a0,d1.w),pspeed sub #planex*4,picpix ;PicPix zurќcksetzen move picpix,d1 or #3,picstat ;scrolling an und resetbitmap sndpl3: cmp picpix,d1 beq.s sndpl3 ;warten, bis Interrupt lфuft lea bpl+rechts,a0 ;Bild rechts in die BPlane kopieren bsr.L setpic wg1: bra.L wait ;--------------ц шšЯZ---------------------- end: ;------------REPLAY_DISABLE: clr.w plamod move.w #00,$dff0a8 move.w #00,$dff0b8 move.w #00,$dff0c8 move.w #00,$dff0d8 move.w #$f,$dff096 move.l gfxbase,a0 move.l oldcopper,50(a0) move.l oldirq+2,$6c move.l gfxbase,a1 move.l 4,a6 jsr -414(a6) jsr -138(a6) movem.l (sp)+,d0-d7/a0-a6 rts ************************************************ newirq: movem.l d0-d7/a0-a6,-(sp) ;-------------------------------movestars: lea Stars,a0 moveq #Fields-1,dц ш›хнІA5 moveq #1,d0 msl1: bsr mssr add.l #4*[StarsY+1],a0 addq #1,d0 dbf d5,msl1 ;-------------------------------------------- bsr replay_song ;------------------ScrollText: test1: tst.b schwabset beq test2 tst.b schwabcount beq swabl0 sub.b #1,schwabcount bra test2 swabl0: move.b #SchwabCycleSpeed,schwabcount move.l schwabpointer,a0 lea schwab,a1 moveq #ScrollBPLyFont-1,d0 swabl1: move.w 18(a1),6(a1) add.l #12,a1 dbf d0,swabl1 move.w (a0)+,dozw2-6 cmp.w #$ffff,(a0) bneц шœCтР swabl2 move.l schwabptrset,a0 swabl2: move.l a0,schwabpointer test2: tst.b colorset beq test3 tst.b colorcount beq colorl0 sub.b #1,colorcount bra test3 colorl0:move.b #ColorCycleSpeed,colorcount move.l colorpointer,a0 lea schwab,a1 moveq #ScrollBPLyFont-1,d0 colorl1:move.w 22(a1),10(a1) add.l #12,a1 dbf d0,colorl1 move.w (a0)+,dozw2-2 cmp.w #$ffff,(a0) bne colorl2 move.l colorptrset,a0 colorl2:move.l a0,colorpointer test3: tst.b count beq cnull subq.b #1,count bц ш@=ra scrend1 cnull: move.l mpointer,a0 next0: cmp.b #10,(a0) ;ASCII 10 = kurz warten bne next1 addq.l #1,a0 move.b (a0)+,count bra scrend next1: cmp.b #11,(a0) ;ASCII 11 = Geschwindigkeit bne next2 addq.l #1,a0 move.b (a0)+,speed bra scroll next2: cmp.b #13,(a0) bne next3 addq.l #1,a0 move.b (a0)+,d0 subq.b #1,d0 and.l #$000000ff,d0 mulu #4,d0 lea schwabptr1,a1 add.l d0,a1 move.l (a1),schwabpointer move.l (a1),schwabptrset move.b #$ff,schwabset bra scroll next3: ц шˆŸyTPcmp.b #14,(a0) bne next4 addq.l #1,a0 move.b (a0)+,d0 subq.b #1,d0 and.l #$000000ff,d0 mulu #4,d0 lea colorptr1,a1 add.l d0,a1 move.l (a1),colorpointer move.l (a1),colorptrset move.b #$ff,colorset bra scroll next4: scroll: move.l a0,mpointer lea ScrollBPL+2,a0 move.b speed,d5 and.l #$000000ff,d5 bsr Scrolling add.l #[ScrollBPLx/8]*ScrollBPLy,a0 bsr Scrolling add.l #[ScrollBPLx/8]*ScrollBPLy,a0 bsr Scrolling clr.l d0 move.b speed,d0 sub.b d0,rows bgt scrend1 ф6шŸЃ•ыРџџўРџџўРџџР€џўРџўРџўРЮРџџўРџџџРџџўРџџўРџџрРџўРџўРџўРЮРџџўРџџўРџџўРџџўРџџ№РџўРџўРџўРЮРРџЮqРџЮРџЮРџјРџЮРџЮ1РџўРЮРР)ЮAРЮРЯџРќРЯџРЯџРСџџРЮРџўРyЮРўРЯџР!ўРџџРџџРџџРўРџўР1ЮРўРЯџР!оРџџРџџРџџРўРџўРСЮРўРР!Ю%РџРџРџџРў1Рp#РЮРРР!Ю_РР1РрР/РPРўўРўРўAРўЮРўРў!Рў!рРўgРф7ш ˜›фРўўРўРўAРўЮРўРўРўрРўРРўўРўРўAРўЮРў/РўРўaрРў0РџџџРррРр%ўРђAРшЮРрџРр џРрўРрўgРџџџРрРр…ўРќЯџРроРрџРрMџРрўРрџЁРџџџРрРрўРјЯџРрўРрџРфџРрўРрџAРџќр`Рр ЮРрЯџРрќРрРрРрЮРрЯХРр7ўРрЮР№ЮРрјРрРрРрЮРр Я‰Рт9ўРс!ўРрўРр№РрџџРрРрўРрMЮР€т?ўРх§ўРрўРррРрџџРрРрўРфЮРсyЮРьуўРрўРрР€рџџРрРф8шЁГOл§рўРрЮРяџЮРуџ€РрРр?рAРрРрРрЮРџсЮРуџРрР№~рРрРрРрЮР€\шсЮEРујРрРрќрРрРр РрЮРќўЁЮРчњРрР№јрРрРр‘РрЮРџќџџЯџРџџџџРџџџџРџџџ№џџџџРџџРџџџџРџџЯџРџќџџЯџРџџџџРџџџџРџџџрџџџџРџџРџџџџРџџЯџРџќџџЯџРџџџџРџџџџРџџџРџџџџРџџРџџџџРџџЯџРџРџќџУџРџРџџРџЯџРџџџџРџџџџРџџџџРџџџџРџРџќџЧџРџРџџРџЯџРџџџџРџџџџРџџџџРџџџџРџРџќџЯџРџРџџРџЯф9шЂЧJйЅџРџџџџРџџџџРџџџџРџџџџРџРрпƒРР‰РЮРрРр€РрРрРљРрџР Р‡љРЮР№Рс€Рр…РрРСРр‘ўРРЯƒРЮРрРђ€Рр§РрРСРр‘ќ/РРџРЮРрРџд€РрРрРРрјРпРџџРЮРџџўРџџўРџџўРџџўРРр№РхР§ЭРюРџџўРџџўРџџџџРџџўРРррЧмРўРџџўРџџўРџџўчРџџўРРрРРсР 7РўРЮРЮРЮGРЮРРр€РћР ЩР~РЮРЁўРЯ‡РўРРр€ф:шЃРДРh Р>РЮРўРЮхРўРРр?Р€P РРЮРўРЮРў™РРр~Рё1РРЮРРAЮР РРрœќР„bРРўЮ Рџ€РўЮ™РўРўРрРўјўРџРўРўЮРўРџAЯРўРўРрРўјўРўРўРўЮРўРџЮРўРўРџќрРўќўРў‡ЁРўРрЮР№Р№ЮРрРфРџќрРш~рРрЯЁРрРрЮРрџџРрЮРрџРрРџќрРр?рРрџсРр€РрЮРрAџџРроРсџРрРррРј€рРрџСРррРрЮРрџџРрџёРрџРрРф;шЄyррРр€РрРрџРррРрЮРрСРрссРђ~рРс<рРрРРфРрРр№РрўAРрРртРт?рРф?рРррРшџџРрСРр јРрўРрРрфРр€€рРррРр№РрџџРрСРрќРрџAРрРрсaРфРРрРр_рРрјРрџџРрРрўРр РрРр7сРшрРрРр€@РрќРь}Рр‘РроРрРрРр9AР№№РрРщ@РрўР№ёџРрРрЮРрРрРр? РўЅјРрРяъ@РрџРр хРрРф_ЮРрРрРрxРё%ќ Рр Рч@РрпРрIРрРфЯЮРрРрРрўРџСўРџџРџџџџРџџЯџРџџџџРџџџРџџЯџРџџџџРџџРџџф<шЅŸ[ NџџРџџџџРџџРџџџџРџџЧџРџџџџРџџџРџџЯџРџџџџРџџРџџџџРџџпџРџџРџџџџРџџУџРџџџџРџџџРџџЯџРџџџџРџџРџџџџРџџЯџРџџџџРџџџџРџЯџРџЯџРџџРџџџРџќџРџџџџРџџџџРџџџџРџЯџРџЯџРџџРџџџРџќџРџџџџРџџџџРџџџџРџЯџРџЯџРџџРџџџРџќџРџџџџРя!РрРЮРљЮРРрРџќРрРц РрРЮРСЮРРрРџРрРјРрРЯРбЮРРрРџ\РрРрРрРЮРЮРРрРўРрРџџўРшџџРЯРЮРРрРф=шІˆ DфўРрџџРџџўРрџџРЮРЮРƒРрРўРрџџРџџўРјџџРЮРСЮР‰РрРџРрџџР=ЮРрРЮРЮР{ƒРтžРќРфџќAџџРџўРЮРЮРџРфўРрРџџ€<џџРџўРЮРЮРџРрќРрўРџџ<-џџРџўРЮРЮРџПР№јРрўРџўќќРРЮР!ЮРЯŸРўј?РрŸўРў|(РўРўЮРЮРџџРќјџРрРџёќсРўРўЮРўaЮРўљР~џ€с€РќјРўРўЮРўЮф>шЇ ЧNРў“Р~ ?€рРј№аРрРрЮ РўоРўџуРќ џЯРрРзџрџўРрРрЮ РрўРрLц‘Рј›Э'РџўџРГŸРџў‹РрРрЮРрќРррGљРёЧяѓРџўџР?џРџў™Рр%РсЮ?РрјРц‡РьџРџўџР~?џРЮРрРсЮџРр№Рц фРьј1РўРќ3џџРўРрРщџ#РррРф44qРш~xсРРјаёСРўРрРщўћРрР€р(|AРр\8РР№ЁёРўРрР№ўРр€?рxќРрќ8РРсурРРрРрРр~р1ўРр|8РРрХрРРф?XЛНЅ-рРрРрќрУџРсœ8РРуРOРрРрРрјрџРр8РРрР?РрРрРр№рЯРр8РРр@РРрРрРррр‡Рр8РРр@РџџџРџџРџџџџРџџџРџџџРџќ?џРџџРџџџџРџџџРџџРџџџџРџџџ€џџџРџќ?џРџџРџџџџРџџџРџџРџџџџРџџџџџџРџќ?џРџџРџџџџРРўј?РрŸўРў|(РўРўЮРЮРџџРќјџРрРџёќсРўРўЮРўaЮРўљР~џ€с€РќјРўРўЮРўЮцш“М•[‡BitPlane FontX = 40 ;Breite eines Buchstaben FontY = 34 ;Hoehe eines Buchstaben YScrollpos = 1 ;Startrasterzeile des Scrollings SchwabCycleSpeed = 1 ;(0 = schnell - 255 = langsam) ColorCycleSpeed = 1 ;(0 = schnell - 255 = langsam) Fields = 3 StarsX = $20 StarsY = $e0 planex = 84 planey = 337 smod = 25*planex picx = 34 picy = 150 depth = 4 links = 4+[90*planex] rechts = 46+[90*planex] numpics = 3 ;*Anzahl der verwendeten Bilder introstart: movem.l d0-d7/a0-a6,-(sp) moveф+шЊDП4I?џ№1Йˆ`РцР ў`РСЦРˆh`џрў?Рp0џј`џƒ€ЦуџПџ`уџС†џ№ˆh`№р?<p0ыј`џС€†уџПљ`уџС†џ№ˆx`рр€8Рp2*ˆoр0р€†џj`џ †0Аˆ8`РрР;€p8ˆр4Г€†џ h`џ †0Бˆ`€ррџј:p8Xˆ4Г€†h` †№Вˆ`? рC№џј8pёИ№Аƒ†8x` †№АИ`~рјџј8pСМ ~рА‚†  `` РА @`|рРј<88pСј ~Р№‚ H €` LРБ ``|РРј=88pС `Рс‚ !ј` Р№ p`ф,шЋЎy“хp€р8>88pС рРУ‚ !ј` Р№ x`p?№8|<>8pС `Р /ш` Р€ x`p~ј8ў8pУ `Р "jр РЋш`pќќ8ў8№џПџрџќўј?ярќўџџПярpј|8p8№џПџрџјўј?ярќўџџПярp№<8p8№?џрџџПџрџџПџр?џџџ№џџ€p№<8p8?џрџџПџрџџПџр?џџџ№џџ€pј|8p8(`РА`Р€Є`0рpд€pќќ8ў8 `Р `ј€П€`0рpР€q~њ8ў8?ј`УџПј`џ№Пј`?№ф-шЌх5џјpџ№€q?ђ8|<>8 ш`Уh`8АŒh`?№Шx№6А€z€сx<8?џрџh`0№Œx`0џШy№8џ€ЯРЯј<8?џ €`hр0Œ`0ќp>€їрПј<8?џ@`8h`№И`№<8p<€~KрIјџј?џ`  h`РА`№| p8€?ѕрП№џј8ј`  hрРџЂрРќ$№?ћ€€ррџј8hр  hрШ€"`РР0Р0Б€РрР8xр  x`Р€ `РџрAр0ё€рр€8р  `Р€ `Рџрр№0€№р??џрф.ш­Bяq  `Р€ `Рј№№0€џрў?џр  `Р€ `Рўxp0€џрќ?џџрј?џрџ€?рџџџџ№?џ€рјџРџџџџРџ€џџџџРџџџќџќџќџРџџџџРџ€џџџџРџџџќџќџќџРџџџџРџ€џџџџРџџџќџќџќсРџєР?C€чџ@Рр€@яќрСРџР~C€џ№Рщ@џќрРч#РўC€фp#Ряъ@шќр\?Рѕ'РњC€џPРч@ўМрф/шЎ…#Ÿ%~РџџўРќ€рўРџџрррќРџџўРј€рўРџџрррјРџџўРР€рўРџџррр№€џќРа€рРрррр?јР€€џќРрррџџ€Р~№Р€€џџўРџрррџџ€€ќрР€€џџўРџрррџ€џџ€?јРOРР€џўРџрррџ€р€~№€Рќ€рРрсрџ€№€ќрўРќјф0шЏ‚ž3РРрРтрРУ€Р€јРўРќј€РрРррРƒ€Р€№€ўџРј?РрРрр?Р?€џџ€р?ј"ћР8€џџРџрРу„Р~€џџ€Р~рч§Р8ўџџРџрРфќРќ€џџ€€ќрЩР8ќџџРџрРшљРј€?јр0‘Р8№РрРр“Р№€~№р/џР8р€рРџџџџРќ??јџ‡ртg~Р8р?џџРџџрРџџцŸРв~?јњOРчџСР8рџџРџџрРџџчџР§ќ?јџП€ф1шА­›4g№ўР8уџџРџџрРчœј88р?№g СР8уr РрРф№88р~с #Р8т9РрРф|р88рќс@"Р8р!РрРф\Р88сјуФР Р8рџРџ§Рџ§џРџўРџщРџџџџРяџќљцѕРѓм?ыРџћРчџеРџњРџуРџџџџРя§јћџПРїќ?}РїџРяџўљР РРРРРРРРР 0Р РРР@€@€@€€@€ @@€@?џ№?џрџќўџџПџрџџСўџџяррјфшС‰ŽЈЇ?џ№?rрџо†яџПИряџС†џџ‹ярџрќ?џ№?Оє`џџžпџПрпџСОџџярџрў89№?№јрџћ€ОпџПјрпџСЖџџoрџрџ;Q№?tј`џљ€іпџПў`пџСЖџџ‰џрџрџ€>№<Хяр?њ€Ўџјэ`џќц?ПџрџрџР< №7§џр;А€оџјoрџќЎ?ОŠпрџрџрџј<н№7‰Ž;А€Ўш l`ьўџМ‹џр?їрП№џј9Г№љYМFџПƒЎј8zрќўџНОярџрџјџј;іpћИПўпПƒ~ј1рќ~џЛПпрїрПјџј8С№§јПўџџ‚>˜ рœ~џОПџрфшТЃЯљ/xџРќxўј<№љПрџџƒіј {рќўџџПџрr_€щ8§ј8№бПџрпџ‚~и рмўџџПџрqџў8џў:?pСП§рпџўш oрьўџ:ПџрtўќИџў;з№СПўрџўўи!m`мўпјДoрrќ§8§ў;П№џПџрџќўј?ярќўџџПярpј|8ћю8№џПџрџјўј?ярќўџџПярp№<8џО9џ№?џрџџПџрџџПџр?џџџ№џџ€t№<Иіў;џ?џрџџПџрџџПџр?џџџ№џџ€pј|8џю;џ7`яџЏџрѓpЛќ`9љџў№тz€pќќ8ћў?џ.‘рпџПџрЧb x`?PџџфшУjа^№аC€p~ј8юў?џ?ћрпџПџрџџПџр?№џџ№џў€p?№8ў>?џkрџјяр3П‰яр?№Яџp0П€p?€№8§ј?џрџјяр?џ‰џр:џЯўp0џ€xРРxќ8?џрјя`?џ‹џр=ќћ№0?€|р€јќИ?џ ?рј?ярџџОџрќL?џ№1џ€~рјџј?џрј?юрћџ­џрќ ?џ№7џ€?р№џј?џџрш?я`ѓџНџрџќ;ї№?є€џрџрџј?џя`˜?я`ч€9рџР+џР?О€џрџР?џџ`ј?џрп€?рџџџэр?ў€џрџ€?џџ`јфшФ$<›х?ћрџ€7рџџѓp№?ў€џрџ?џ§`ј?прџ€?рџїчrp?ќ€џрў?џќ`Ј?ърџ€?рџџсџ№?ј€џрќ?џџрј?џрџ€?рџџџџ№?џ€рјџРџџџџРџ€џџџџРџџџќџќџќџРџџџџРџ€џџџџРџџџќџќџќџРџџџџРџ€џџџџРџџџќџќџќџРр џџР?П€рЏџРџ/ПœрџќџРрџџРП€рџџРіџПмрџќџРрƒ§нР§П€р?нР№ОрџМфшХпнW?џРрƒџйР§П€р?§РјхПœрџќџРџџџџРёџ€џџџџРџџџќџќџќџџРџџџџРсџ€џџџџРџџџќџќџќџџРџџџџРЯџ€џџџџРџџџќџќџќџџ€џџ§Рџ€џќџРџќџќџќџџџџџР_џ€џќџРџќџќџќџџ€пўџџљРџ€џџџџРџџќџќџќџџ€џќџџэРџ€џџџџРџџќџќџќџ€џџ€?џјџџБР7џ€џџћРџџќџќџќџ€пџ€№џџсРџџ€џџфшЦn€ЏРџјћџ€џџРџџрРс??јќ'𧘟?РџјупџџРџџџџРџџљРР~?јјРјфшЧн ^§ў9РџјяŸџџРџџџџРџџјР€ќ?ј№€щ#џQРџјќŸџџРџџџџРј|џј?јџџчоРџјќy сРџџџїРћмџ№?јџўў_м Рџј§х§СР§џџџРћœџр?јџќўПмнРџјџы§ЭРџџџџРћœџР?јџјќ3ГРџјџУ1РџџџџРт<џ€?јџ№џџџџРџјџџџџРџџџџРџќџ?јџрџџџџРџјџџџџРџџџџРџќў?јџРџџџџРџјџџџџРџџџџРџќџџџџРџџџџРџџџџРџџџџРџџџџРџџџџРџџџџРџџџџфшШм2Ы РџџџџРџџџџРџџџџРџџџџРџџџџРџџџџРџџџџР№ЬFЯРрПџРќОўРрџРљ}ќРџ€љ\/йРрџџРћўџРрџџРї§ў%Рџ€хсCРр џwРрVјРрAўяРр­№!Рџ€чD0Рр џїРу–ўРрAџэРч-ќРџ€џџ€џџџџРџџџџРџџџџРџџџџРџџџџРјџ€џџ€џџў§РџџџџРџџџџРџџџџРџџџџРјџ€џџ€џџџ_РџџџџРџџџџРџџџџРџџџџРјџ€пџ€ЮџРџЯџРџРџЯџРџЯџРИџ€Эџ€фшЩКНПџџРџЯџРџРџЯџРџЯџР8џ€§џ€џџРџџџРџџРџџ§РџџџРјџ€љџ€џџРџџџРџџРџџїРџџџРјџџ€џРџџџРџџРџџйРПџџРјџ€џџ€џџРџџљРџџРџџёРПџџРјџ€џџ€џџРџџљсРџџРџџѓСР?џџРјџ€џћРџѓсРџџРўџчСРџџРя€џџ€+џџРџоЗРџџРџНoРџџРјџ€џџ€џџ§РљџџСРџџРѓ§џƒРџџџРј?›€џџ€џџuРѓ§џРџџРчљўРџџџРј~я€фшД Ќдqпџ€џџgРыљў РџџРїѓўРџџџРИ§€Эџ€џЯљРџ“ЮлЧП'ЯЗРџЯћР8јџ€§џ€џџљРяѕЮ+РћРџщЮWРџЯїРј№€љџ€џџљРяgўЯРџРўЭџŸРџџџРјс?џџ€џџёРў?ўРџРќўРџџџРјР~џџ€џџљРђIўеРџРф‘џЉРџџџРј€ќџџ€џџсРёф7РпРуШoРџџПРјџјџџБРї—їРџРя/юРџџџРџ№џўСРџЏї7РџРџ_юoРџџ§РџрџџРџ ФmРџРўˆйРџџџРф шЫ;ЗOФ€uРѕэР§РыйРћРѓ€пџ€gРчљ† РпРяѓ†РПРИё€џџ€џЯбРџcЮлРџРўЧЯЗР ЯџРј№€џџ€џ‡ЧРіЮ;РџРь)ЮwРŸЯџРјрџџ€џсРќG†пРѕРј‡ПРo‡щРјР€€ўСРў?РѓРќ?РџчР?€€џџЙРѓИџРџРчpџРОџРџџсРуцџРРчЬџРџўџРўџџБРї—їџРћРя/яџРџџїРќџўРџЏіџРџРџ_э§Рџ§§Рф шЬП‹ЂЧјџњРџ K§РљРў—ћРџџёР№ РРР РРР Р@€@@€@@€@€@€@€@€@@@H@РРРРРРРРР Р Р Р ЬР§џџпРѓќќРџћџяРџџі{Р§џњлџёРŸі?Рь9џРџЯџРљџ§џРџБАmРџіџпРџџoџРџћПўyРПЉяРџџРџЯџРуџџ§Ры РџЋџф шЭFѓСћРџўџљРџџџџ~џРїъџРџџРџЮџРџџџџРў#oРџ_џџР§џ§ћРїпќ§ќџРяџџР?џџРћЯџРРџРрРРїРРѓРР8р џР ћР џРŸЮ?Р€џРРР€џР€ЧР€pџРБРџРПЯяРџР€џРџР?Рј@џРчРџРїЮџРћР ЯџР ЯџР Ю?Р МР ЯџР ЯР џџРяЯџРяРзЯРџЯэРПЬРŸƒџРщЬРџЬРџќР§ЯћРяР…ЯџРџ‡пРџШ@СџРу€@щ€@џћ‡БРџРХЯџРџџРџРпУџРУчџ€ПчР яР9ЯяРўрРŸРOЧџРžРўРџРРўРџџнРф шЮмcХЯРџп№@?РЯџРџџРўРџџ=РџXQРџџнРуЯѕРџџј'РџЯџРџџРї_РџџРщёРџџџРЧџ‡ПРƒ§їјƒПРƒџЯџРƒўџРƒќџРƒџўРƒчј§РџџџРуџ§РСџї№@РŸРСџЯџРРџРСё}РСџўwРСџЮуР РчџџљРѕZрРь9РџџЧџРџўРџФРџ§СРўў™Р@џџџџРџ{ёРяџРџџУџРџџ@џГ@џѓƒРџї_РџџџџРџџ‡сРџџШ@џџСџРџџ€ћ€џЭ}Р§§†ПР џџџџРџїЯЯРџџЬРџџƒћРџџРїџРџпЯ}РџёЮ)РЏќџџџРџяЮџРџџЯџРџџМРџџРџяРџЗЮџРџХЮ'Рџќџџ‡ѕРўп‡џРџџ‡џРџў ј@џџ€џПР§_‡пфшЯБ}№РџГЯЧРcќџџЯпРњџРџџџРџў№џџ@џПРњџџРћЮ/РžќџџЯпРѓ?РџўѕРџў/`џўРџёРљўПРїџЯРЏќџџЯџРшџџРџџџРџџžРџќџБРџСРљџџџРџяЯџРџќџџЯпРуџџРџџѓџРџџП€џ§§OРџРћџџљРџПЯџРМџџЯЛР№џџРџџїѕРџ?џЗПWР§7РћџџїРџПЯџР{џџЯЛРрџџРџўо§Рџ:џЯџРќРїџџoРџёЯџР рЮРРРРРРРРРРРРРЬРРЬР€@€@€€@€@€@€H@€H@фшаW‹f@€@@@@H@€@€@€@€@ РР РР Р Р ЬРРРРРРРРРРў|‰РРџРxwРџЯ§РџџџџРџ~|џР§џџџРџпїџРРџ|яРџРџР№РџЯџРџџџџРўќOџРџМџ{Рџ?їџРРџ|'€џРџРрyРџЯџРџџџџРэџџРџzіРќпчгРРў|џРџРќaРџЯ§РџџџџРр)?їРїѓќ§Р§џїЯРџРџ|ўџРџРжРџџРРѕРРџРРБРРџРџРўќўџРџР|3Рџ§Р€Р€џР€Р€§РџРџмўќРџРўqРњџРџРџРРяРџРџќў?ј@џРфшб БAPѓˆсРѕџРџЯѕРЯџРџЯЙРџЯљРџРџМў№џРЃцРsƒџРџЮ§Р‡џРљЮqРџ‡уРџРџќўџрџРз—їРѓСџРџЯџРџџРбЯРџ‰РџРџќџџРџР?ЏїРїсџРџЯНРўџРыЯћРўgРџРџќџџ€џР_ KРїёџРџЯ{РџџџРŸЯћРџіџР§Рџ|џќџР;‰?РЏљџРџЯѓРџџџР/Я%РџяџРыРўјџќџР№pР§§РƒџЯџРƒџџчР‚ŸЮпРƒпџпРƒзРџ№@ƒџЖƒџРƒјˆР‚ћџРСџЯыРСџџяРР{ЮџРСПџРСЯРџрРСџЯСџРС№@РСПїџРэџЯ?Рџџ§НРяџЯџРџяџ}РћЯР€џїРџџп€џџРћ№0Рљў§џРџџЮџРџўРџљЧџРџџќРџпРР џфшвtѕ/џРџПŸРџџРяфїРџўџРїџЯљРџџ@§ћУџРўћў@џпРџќџљРџОрѕРяŽџРџўРџџЯбРџ§€їѓСћРџћџўПРџќџёРџ~_№џџРќџРџўРџџЮыРџ§РїЧџџРэџњєРъмџЇРќўј@ћР№џРџTџРџџ‡ŸРџћРў?џџР§ўјРјРћиРѓ~LРєї€уџџРѕїџРџџ/РџчРј??џРџјpріџРџ№?Рїў?Рѕ@эџџРџџƒ?РџўŸРџ›РёўџРћђ'№чџРџ РэўџРџўРџџџРџџР}Рџџі{РџПРцџџџРїтј@џџРџ~'џРїџѕРѓ§юРўџяРџџТOРџџoџРџoРяџџџРяњќРџџРіџПџРџџЛРыиРџџџРџэЧРџўџљРњПРяџїРсHПРџџР№ŸћРџџРчРяѓ№РџџџРћЁЯ?Р§џ§ћРѕџРџџџџРюфшгAЩЊУџР§WРјь9џРџџР РўЦСЗРџџџРћ1ЮsРћџїѓРѓџРџџџџРрџџРРРРРРРРРРРРРЬРРРРРРРРРР€@€@€@@€@€@€H@€@€@€@€@@€@€@H@H@@€@€@€@РРРР ЬР ЬР РР РР РРР№ЄПпРџџќџРџЯGРЯџРџџРџџ§Рр|џРџџџљРј›џџРџџ§§РџЯЏР?ЯџРџџРџџџРрќџРџџџ§Рч§џРџџЗПРџЮР?ЯџРџџРџџ§Ррќџфшд.t'(РџџџљРјПяѕРџџЯРџЮПРџЯџРџ§РџџћРуќџРџџџїРРЃРџрРџЮРџЯџРџџРџџџРуќџРџрР€УРџА@џЯэРЯџР_§РъПћРсќџРѕp@ЗРџИ§ЯџРџЯџРџѕРџўщРяќ§РџјџЯ?РџпРћЯчРџЯѓРЧбР§ŒЁРуќЯРћ џ€РпРџЯяРџЯїР?сРъxСРџќпРРœџ@€ŸРџЯЯРџЮпР^СРњМРџј{Р€џўпРџЯРџЯ=РќРЯўРџ№їРў џџыРПРџЮџРџЯРј0Рў@џрџРюџўПРїРџЮџРџЮР№фшП]б|шРьџћљ§РўћџРƒџР‚џЯџРџЮwРјќРљјџћљпР№џћџРСяРСџЯџРƒ§ЧРƒБАmРc`Рџї§џРРџџџРџџРџџЯџРСѓУРС Р0џЯ§џР(§РџџРў}ЯџРџЭР}Рў#oР„D2и@РјР `uРџ§РќљЯџРџпƒ}РџИРЮ8Р€§@~рgРџлРјŸЯџРџЗќРљмpРѓАџРћ€qР@џЯбРџПРўџЯџР§^и@ёѓџРурџР џРЬРџ‡ЧРџџРђ‡џРњў№ыЫЫџРїџРџџР‡/џРџсРџ§Р№чџРљў? џзƒРџИџРџџРЯ^ §РўСРџ§Рз|шжq„RсџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџрџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ?џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ?џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ?џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ?џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџз}шзџџё_џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџз~:}Њ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџёџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџуџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџуџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџрџЦ?џџџџџџџџџџџџџџџџџџџџџџџџџџџџрџЦ?џџџџфшйCIЎyџ8?№ћПРџƒўИ?џрМоџИПŸрcp;ўј;§pЧПрџƒОј?Чрќ>џ›Пррјхј?Ј№яПР џ<Ош?ярьўџ ПХр~@ јУР=№№џПН`џИўј?ярќўџПтрј@џ?э№џНпрїpўш?э`ьўяяДmрј`ў?Ш0  € h` € ( јўў?ќ јџЮ?ўјwџ?џ €  €  р0€€јwў>?џ1рџюПџрў?ЛЏр?і§џ№ыфшкD[”џ€ј`є?Џ1ярџЗПџрЦ} _р>яџў№яќ€€ј@ё>џ`ќр€€р Р№€€РјСР>џэрїИяр7П‹яр џЯџp?З€рјчј0Р Ияр?Чр=€Фp?g№?˜џјў`ј я`?џ‹џр; ћ№?џ€CјџјЗр јярŸ§‡ўрќџ№?џ€ќ ў0џрј/эрџюП§р‡ќ>џ№?џ€ў`ќ?їрш?я`џ?Р џ;x0 €рј?їя`ј?ъ`ў€?рџР/№?И€?р№?џЦ`ш?РфшлГ5‚­р§€>рџ€?2?€рр?ї§`ј?ћ`џ€=рџў0?ў€рР0§`ш?П`џ€1рўуц №?ќ€`  №`и7џ`п€7рћуЧ№?№€   € € 0 @€@€€@€€€РРР€РРР Р Р РџџџџР'€џџџџРџ~'ќџќџќ=РџџўџРП€џџџяРіџПќџќџмфшмЫђbРџџ§нРŸ€џџџнР№ŸќџќџМџРџџ§йР;€џџџнРјь9ќџќџМќРРѕРџ€џрџРРќџќџќј@€ёРџ€џ№џР€?ќџќџќ№љР?џ€џјџРќџќџќр ёР?џ€џќџРџќџќџќРўяРџџ€Р џРџќџќџќ/€ўљРџџ€€џРќџќџќ€ўэРџ€џР€?ќѕ\џќ€€ўў?ЁРџџ€ћРфшнG'KРќџќџќ€пџ€ќ>~Рџ€џщРџџќўмџм€џџ€јюџРџџёРџџјѕ8ј€џџ€№‚џўРў/џсРџўа@§P?а@€џџ€рСџќРќџџСРџџ Рџр€Рg€€€ €чћмРџxРРРќџ{Рѓ€€>їАРўxz@€>РњіРё€^џчр7Рўxќ~wРѓќќР№€ў§oРџxЯиџРџБАmРрќјPяРџxѕ€џРРРРјёфшођкІ,Рўxџ~}Р€9p@?€ ‡№ј§Рџxџ€@€?}Рx0ЯрютџРўјќрРРџР№|ў?јџРя˜џРџјшљ€џР§_џпРсќќ?јџ€ў_пџРџјѕх§џРњџџџРћќј?јџўПлћРџИяы§ПРљџџПРћ|№?јўќ)/їРџјїТ’џРљџџџРхќ0РРРРРРРР  €€@€@€@€фшпцcЏ€@€@€@€@€@РРРРРРРРРР№ЄПпРџџџџР§јŸџРџџџџРћё?џРј›џџРџџџПРћўџџРџџџРї§џџР€ч§џРџџџwРрRяРџџўяРрЄџпР€јПяѕРџџџwРуАчџРџџўэРчaЯџРџ€РЃРР§РРџРРћРРџРџ€€€УР€§Р€џР€љР€џРџ€€€ЗППЧПП€пџ€џЯ?ф шЪлЇW"Р Я§РџР ЯљР ЯџРИ€џџ€џ€џЬРџРџЯїРџЯџРј€џџ€џ@џ€џРџ‡§Рџ‡џРјџџ€ўПџРїРџџРј€€џџыРўР §РўбРўћР€џўПРџЁРџЯРџAРџџŸР€ўћџР{џСРџпРїџРџџПР€џћџР‚ПџРћ{РƒџРџіїР€џџџРСџџРќїРСџўРџљяР€€§РљўР џРѓќР §Рg€€