,$L;LHLELLLwL}0NE$%A$% 0"$)$$H hLP , `e$$%`  R@P1   *  :.`GH`@1`  L:CDCH hC DD CDL"LLY  u$%8CC$$%%ݬ!0 $%%$% DDՙ` T { } " *)L *M  L((  # LL(v)  M o L L( PL 0j  M {.B o zyCvwx  > . 4 WLL )~>Le ^JJ p  p r  .HH)!H # h . fhywwhyxx  PQA  A.L> L[ *`/ ߰")+ H" $//G@LLL   L M  v #  E`?{ `  L v) ꩧL > vyzL ` )L  L G/ȘL08`"))8`0 G$Ș(` H8(()$}$%)з`$GȘ`H)h?g H^ji "0("&hEEd "EiEȱEiE`h`hQEEd" ) E8EȱEE`@  8E g QEEH.8 *h > `LLI $(I0G/IɛILI  ; L CECȱE, CqECȊqEC I - G.G LSROTCES EERF vH0 C ) *,=,?, Gh)H<, GȽ{G h>, GȄIwx GI`  d  L DC8CD 0IGIDC`pih v=H*"" h0Ch h0!)C)з?{Щ  v08.`"%, $"$' HH`L n"7)0+0,)i ,0 !,"   F L  LEv,0Ȯ" $JJJȐy~Eʈ~E ʽ~Eȩ?E7EȩE, 0EȩE P  ` "d*J     4C?C% (  4  C LL/ ,C v)Cv  LB, 4   wx0 B,  PL L0AML ML NLLLNLML AO  A0`.Ln((L,.!4" S  L) .!EF.ʎ. LGH`}$0Z:ȩ$. ȩ "* ??/ɛ   Ýн .`L{L .(`BDOS SYS $% $ɣ% HLhLzy.,")    8 I0 ` `  45 $ )?i@3245, 4224 ӤԠBX`F5*F5*4*4*Bx)%`0 g  0#\ o GGȽG  L `8H hLЌ8`  0(.G)G)ȱGȱG`L"!"L`v8v "ixiipE` C "dEE8EF "h( (,0(`( dEFEi ( 0`Ƀ0..C/`C,"0)@D@ 3@ D@( "C8&C C8X` K o675 . /I   K ,90    L,7,60 ` il i L  VH h`,705@ 0 76` nBKDE J V,70 0,6  $ bl.`2DE600  N1BJ V0i,DEHIB V0K,=-8(DEHI V3 N,50 ,00H h` NH Nhll,10)(1(DH)Eh*(+)*DELi*8(H+)IHI VL,50 L[$h7#D:AUTORUN.SYSD:BDUP.SYSE: B V BLV` 8#,#0 3A"!"L~L CED$FCECEDFF@6I6 Ӣ@ԍ` )`   \`h@)]    B8 ɟ *I  M #IL_uuuuuuuuuuuu "#$ BDOS SYS 0B//''3 +BD+EJ V0BD8EHI V8 +8ȄȄHHIhIhI;I;ߩBD+EJ V0hBDEHI V0JD7 0 i2,`إHHHH-L2,L0,,L0,LZ0,0,,- -,,,,,,,,,C,L/,iU߬,zvJJJ)2/2/, 0,UЏ,L2 .`0`08`0e`0,,`0ݭ,0؍,Ȍ,e,`0 ɏ`,,c,^,@W--i@%:,) )?,,@)?-,- @.L0ɀ )?,,,)?,,,,,,,,),(,,),,,,6 ,-,,%,,,,Lc1,JJJJJ),,,),( =, ,,,-,8)3,)(i,%,,-, ,,,,),,,,, ,@,,,JJJJJ},,,},,0L1,,,)-3H3)) ,Ƚ,,,(h)Ϡ,hhhh`6-a-,.--.#.-000#0+050K02273 @xrke_ZUPK!GC?<852/,*'%#! οzqke_VPg`ZUQLHC?=9439-*(%$! 8 j jFAn0R"zU4w`N8'xpjd^WR2 "@  "&???1????ǀ>#??~?~???>??>????$?q????x?ÇÇ??x%???|A???||?~~~???&a?|??????????'a?|??????????&lllllll>`<|fl0fF68of;p88pl88l~00`~00 0`||x~|| x | ||| 00||||~ x0 0 ~~`0 0`|0)08l||||~~~||||||||~|l8|ff~ 0`@`0 xx6c*6>|~~ |||||||)m.~  8`88<||||8l ||<~~~<|| x<` `x`x`~8|888888|80~~0+,0`|~~||v~||~~~f<8<||~~||~|l8|~| 8`~x|nf8x,80`|~~||v~||~~~f<8<||~~||~|l8|~| 8`~x|nf8x %堎 9Igqz^˨ `pPP`PšI .53#""""E#"""""UUUD43"UUUD43"TDD3#"2E4#""xgE3#"T#"VDDD4333333333 /  0htrtrommoommkkffgh\hZ\h\\hZ\h\ZfZZfZ\QQEQQQEQQQEQQQEQQQEQQQEQQQEQQQEQ]]]`][`b`]`b`[[\]][X`bDPNPNKIKIGDBGFDPNPSUWUSUS 1NPN`````bbbbbd]]]]d]]]]KKIGIGIKNPNPNPNPNPNPSSSSSUUUUUWZ\PTQJMRFOQTQVRMYYYXVXVTQ^^^][]^`RHHQRRTTRVVMHTQMMJTTTZZZZ 2ZZZZZZZZ____________ZZDZZDZZZDZZDZ__D__D___D__D___D__D___D__D_aaDaaDaaaDaaDa\\\\h\\hh\\\\\h\\hh\XXXXdZZZZf\\\\h\\hh\ 3DPQQPQQDQPDQPQQQDQQQPQQDQPDQPQQQDPQQPQQDQPDQPQQQDPQQPQQDQPDQPQQKDPQQPQQDQPDQPDQQDPQQPQQDQPDQPQPP LKIGILKIGILKIGIGI I_k_k_ZXdXdXYZfZfZ]_k_k]^_k_k_ZXdXdXYZ 4fZfZ]_k_k]^VVRRROTTTTVVTVVTVVRRROYYYYVVVTTQQDQPDQPQQQDPQQPQQDQPDQPQQKDPQQPQQDQPDQPDQQDPQQPQQDQPDQPQPP LKIGILKIGILKIGIGI I_k_k_ZXdXdXYZfZfZ]_k_k]^_k_k_ZXdXdXYZ A Tu jaki Anonim. Pamitacie EUZEBIADEMO ? Dobre by o, ale ja nie o tym... Postanowi em zrobi spis scenowcw.Jeeli kto s ysza o gociu, ktregonie bdzie na licie, to wskazane jestaby go tu umieci . Ot, i wszystko.... Jeli kto tworzy( ) 6dema/gry, a niemia [oficjalnej] xywy to podane bdziejego nazwisko, OK ?!? OK...Acha, czasem (czsto) przy xywie danegoosobnika moe wystpi obok/zamiastgrupy take co on np. zrobi (nazwaprogramu lub nazwa gazety w ktrej sie-dzia , wzgl7dnie co robi innego). Mato s uy tylko lepszej identyfikacjitego osobnika, jeli jest ma o znany,bo ma o (z)robi , itp, itd... Scenana Atari 8-bit nie jest na szczcietaka "ruchoma" jak C64 i nie s zmie-niane czsto xywy, ale tu bd podane8jeli kto j jaki czas temu (?) zmie-ni ... Anonymous Atarian * SPIS SCENY XL/XE * (z dodatkiem koderw gier i uytkw)-------------------------------------- | Xywa lub nazwi9sko | Grupa w ktrej jest------------------|---------------------2100 Beyond-A+B Soft Digital computing-AB Soft ("Plama 256")-ACT Essen-Adrian Mole ("Faces demo")-Aegis Softscape-*AJEK (files maker:)-Alan CIA-Team-Alex Bit Busters-Alex ASL (laaamer)-Alex (AST) ASF-Alien ("Hi-Fi Demo")-Alf-AlphaSys (A.Slaager ) ("Paint 256")-Andy Brothers Production-A.N.G. soft ;(all those funnies)-Angus Taquart-Anonymous Atari User (crax&upgrading)-Anonymous Atarian (very cool man!)-Antic-Aqualung Shadow Production-Arasek-Arctus SCS-Arc Angel (T.Karwoth) ("Megablast")-Archis < H.A.R.-Armour Bob ("Sup. Boink demo")-ATARI Soldier ("Virus Killer")-ATEST software (crax, instructions)-Atreju (hardware-freak)-Axe-Bac Taquart-Bach Markus Chaos Club Chemnitz-Bael = MAC-Bana Banklan-Bar Krzysztof ("Neron")-Baron-Bart (Trokowicz) ASF-Bartman Shadows-Bartoszewski Darek ASF ("Przemytnik")-Basia ("Tajemnice Atari")-Bassi Copy Serv.Stuttga>rt-Bat Brothers Production-B.A.U.P.A.G. (all crew)-Bca-Bechert Florian MAPDA-Becotel BBS (all crew)-Bee-man-Beetle U.N.O.-Bene Tamas HARD-Benjy Blue Flame-Berthold Torsten Chaos Club Chemnit?z-Beston Richard ("World Soccer")-Bewesoft-Biazik Andrzej ("Moje Atari")-Bielak Tomasz ("Tajemnice Atari")-Bielecki Rafa ("Tajemnice Atari")-Bie Janusz Nemezys Soft Group-Big Foot-Binner A. Copy Crew Amsterd@am-Bionic Byte Brothers (B.B. Southon)-Black Angel Delta Force-Black Cat WFMH-Black Face NNC-Black Panther ARGS-Blasphemer PENTAGRAM-Bloody Butcher Cobra-Bloomer PENTAGRAM-Boassi Sergio NAational Software-Bob(er) MEC-Borkowski Piotr The Factory-Brain WFMH-Brannon Charles ("Speed Script")-Brooke C. Jason (cool msx-man!)-Brooker Fred HMC-Bryant Mike ("Coll.Chess","Crosswrd")-Brzydki B Cobra-Bubble H.A.R.-Buchcik USSR-Bug on XL W.A.F.-Buhl Jesper ("Hi-Res in 8 col")-Bulatronic OUR 5oft-Burger Wolfgang (szef ABBUC'a)-Burt Soft ("TOPS Graph")-Burton Bandit C (Great cracker!)-Butowski Krzysztof ("Sub Copy 130XE")-Bylica Krystian ("Animator")-C&C soft ("JoyTransmission")-Captain Hook-Captain XE/XL-Captor ("Outris")-Carampuc ASF-Casper PENTAGRAM-DCebula Jakub ("Moje Atari")-Cedyn Shadows-CEvE Digital Computing-CHAOS softwork (Pelc, Misik,...)-Charlie Apocalypse Riders-Charlie Chaplin ABBUC-Chip Bryan-Chip Special Soft-Chris CEobra-Christiansen Andre CSP ("Unicum")-Chyla Zbigniew ("Ludek Maker")-Cichy Nova-Cielewicz Tomasz ("Atari Magazyn")-Cino TACF-Claas Clever TFC-Cohen Frank ("Ghost Chaser")-Coleman Steve F("Ninja")-Consoft-Copeland Ian ("Ninja Commando")-Corwin ("Droga wojownika")-CRS Digital Computing-Creature XL H.A.R.-Czerpak Przemys aw ("Watson 2")-Dadi Iron Angels-Dajczak Tomasz OpGacus Chiroptera-Darth High Voltage-Data Shadow Production-Dave Shadows-Daxey Slight-DDT-Crew HTT-Death ("Techno Demo")-Defender N.A.S.A.-De Jet-Delights SoHftware ("Masturbator demo")-Dent Arthur Copy Serv. Stuttgart-Destoyer ("Chaotic demo")-Detail TACF-Detail Sigma-Dex BBSL-Diabe -Dickinson Andy Harlequin("Plastron")-Digital Breath-Dino-IDizzi-Izzi Comtech Crew-DJ V Fuji Brothers-Dhor MEC-Dojwa Jacek-Dracon USG/Taquart-Drg Robert ("Another World")-Drees Matthias Art Works ("Tigris")-Drops (gfx w grach Thora)J-Dr.Candle Tight-Dr.XL-DRW-Duck-Eagle Soft (D.Majer) ("HAWKMOON")-Eddie-Eddie van Hamster Animal Crackers BBS-Einstein-Einsbaer Corp. ARGS ("Atari Ray.")-Electron Taquart-Electrosoft USSR-Ellingham Les PAGEK 6(New Atari User)-ELO-Eloesser Volker MAPDA("Digi Paint")-*EMEK ("Univ.Copy")-Epsilon Software ("F.R.E.E.")-Ermentrout Bard ("RAMbrandt")-Ever (ex-Zic) Infinity-Exterminator HTT-Ezcan Kemal (szefLo Ke-Soft'u)-Fatman Best Quality-Faza Orion-Felker Farkas HARD-Fern Derek (szef "MICRO DISCOUNT")-Ferro Nova-Finzel Peter ("Design Master")-Flash MEC-Floppydoc (E.Puetz) ABBUCM-Flynn CIA-Team-F.T.E. soft ("Sparta DOS")-Foorman PENTAGRAM-Foreman ("Shrink!")-Foster Zelax-Fox-Frankenstein HTT-Frankie TFC-Fanklin Kevin-Freddy Krueger-Free S.A. N Comtech Crew-Friday W.A.F.-Fulco Games (all crew) ("Robocop")-Gabor Istwan ("Test Drive")-Galtan 5 Overlords-Ga a Soft (R.Ga uszka) ("Zumbaja")-Garry-Gastwor Sandor ("Test Drive")-Gatekeeper-GeisleOr Mariusz-Gepard Dial-German Cracking Artist (all group)-Gilmore Adam (great msx-man!)-Gizbern (R.Wjcik)-Gizmo /Magic/ (A.{ukszo)-Gizmo Apocalypse Riders-Glenn the 5200 man (old famous hacker)-Globe P GMG-Globus APC-Glonisz Quasimodos-GMX SatanTronic-Gnom (II)-Grzyb Janusz-Goldmaster GMG-Grecki Prod. EGR General Prog.-Gradomski Zbigniew ("Moje Atari")-Graef Thino (konw. smp z ST/AmigQi)-Grass MEC-Graveman MAC-Greg Taquart-Grendel ("Warsaw Tetris")-Grey Shadows-Grygo Tomasz ("Audiomaster")-Gucio-Guma The Factory-Gumi Tight-GumRisoft Ltd APC-Gutek ("Alpha Boot")-Hahn Tilo Chaos Club Chemnitz-Halliwell Clay ("RGB Squash")-Halloran Phil HMC ("Microx")-Han Solo ("Perry Rhodan")-Harris John ("GED", "MAE asm")-Hawk S Pokey-Hawkmoon Synergy Systems-Heaven Taquart-Hedges ("Tajemnice Atari")-Heniek (Cygert) ASF-Hermes Cobra-HiassofT (ABBUC "Magic Menu")-Highlander Soft ("JHV '95 demo")-HTillemann-Hoffee Steve ("Atari Class." editor)-Hot ("Atari Magazyn")-Hubbard Rob (msx in "Jet set...")-Hudi soft ("Iraq demo")-Hugo Banklan-Humanoid A.S.S.-Hurek ("Muad' Dib dUemo")-Husky (ten od "Toms Nav.")-HuSoft (J.Husak)-HU-SOFT-Imortal MAC-Inquisators (all in group)-Intrepid Polly Parrot Pirating-Irata-Iron Soft (D.Rogoziski)-Iwaczuk Ryszard (R.I.)("wiat ATARI")-Jachimczyk MarViusz ("New Words")-Jacomo Leopardi WUDSN Ursel-Jager Tight-JAKU-B-Jao (J.Parchaski) ("Music Box #2")-Jaskier Taquart-Jask a Micha -Jung-JBW-Jerry Blue System Soft.-JKS ("Mad DesigneWr")-Joe A. L.P.S.-Joey M. KaiserSoft-John E. TEBSF-Jojo Jungle soft ARGS-Jonathan VII Europ. Soft. Agency-Jordan Shadows-Joy MEC-Kac Quasimodos-Kaczor X Tight-Kaczor ("Top Secret")-Kaj de Vos (hardware freak)-Kaktus BBSL-Kamilos (ex-CamoSoft) PENTAGRAM-KAMM-Soft Mad Team-Karmaski Janusz ("Oper. Wolf #2")-Kasia F.-Kasjo Infinity-KasYtet Sharks team-Katon-Kazek Crazy Atarians (?)-Kendrick Bill New Breed Soft-Kespe Laslo ("Test Drive")-KevSoft Nova-Kie biski Maciej ASC-Kilroy N.A.P.O. (cracker)-Kimroy (&rest) Z Comp. Soft. Service-Kloss KGB-Kmicic-KMK Soft ("SysInfo")-Knight Russel ("LOCO")-Knill Robert Raster Software-Koala Yoyer Soft-Kobra ("Line" zine)-Konop Shadows-Kop[er OHP-Kot-Bur ("Line" zine)-Kravco Tight-Krawczyk Adam The Factory-Krger Quasimodos-Kruszona Jakub ("KLEKS")-Krzepki MAC-Krzyak Andrzej ("ROBBO"-maniac)-Kubba-Kubek\ (ex-Gnom) OHP-Kuchara BBSL/Excellent-LBS APC/Taquart-Legolas (Internet-freak)-Leslie Tight-Lewis MEC-Lind ABBUC-L.K. Safari-Lobo Orion-Loos Uwe ] The German Chaotics-Lord Helmchen W.A.F.-Lord of Darkness (famous cracker)-Louis /sysop/ ANG BBS-LS Software (L.Strowski)-Luberda Micha Lorien-Lucifer TACF-Lufa SatanTronic-{czyski Robert Cr^isis soft-{uciw Leszek Opacus Chiroptera-{uszcz Tomasz L.K. APM-MacGyver Cobra-MacIntosh Ivan ("Cavernia")-Mach Maciej-Macioo BGG/Apocalypse Rid.-Macio Systems Ltd ("5 gwien Eepcha")-Madman M_ad Team-Maestro Zelax/Gedeon-Magic Arts ("Wormhole" in H.P.)-Magnus WFMH-Malefactor (ex-Mr.Q) PENTAGRAM-Marauder-Marco GMG-Marcy Sword Soft-Maris John Pokey Soft-Markus ` The Factory-Marx (M. Frtczak) ("The first demo")-Marucha APC/Shake! :)-Marzanna Blue System Soft.-Mass Storage-Master (normal Atari freak)-Master of Byte-Mateoos Crazy Atarians-Mathnoid '93 (a"LZW Arch.")-Matzat Volker ("Fraktalis")-Mayonez Cobra-Mazur Tomasz (szefo Mirage Soft)-Media nova (ex-Analog Research) ABBUC-Metal SCS-MF Soft ("Sprint XL")-Miarecki Artur L.K. APM-Micha b Top Crew-Midge Ure-Mietek Sword Soft-Migut Wies aw (Atari wise man)-Mihocka Darek Branch Always Soft-Mike (M.Brzezicki)-Mike die Raete ("Lind's pix show")-Mikel Copy Serv. Stuttgart-Miker c Apocalipse Riders-Miko ajczak Pawe ("Magia")-Mills Andy Harlequin-Mischer ("Atari Magazyn")-Missing Link-Mister Antic-Miziski Robert (TOMS Multi-expert)-MMMG Soft Mad Team-Monsoft Fuji Brothersd-Morgoth Quasimodos-Moryto Artur Lorien-Mozart WSL/BBSL-Mr.Bacardi (nice cracker)-Mr.Blue-Mr.Hebo-Ice (H.Borhorst) H.A.R.-Mr.MB BBSL-Mr.PIA (wydaje "Strange Inv.")-Mr.T Seharks team-Mr.WIT Shadows-Mroova (files maker)-Mrozowski Robert ("Kula demo")-Munns Richard ("Rebound")-Muro USSR-Murray Chris ("Guardian")-Murray Stuart (publisher of "Futura")-Murzynf-Muti Shadows-Nangano Jim ("Spy vs Spy...")-Narel Rados aw ("Watson 2")-Newell Wes (rozszerz. pamici)-Nic Copy Serv. Stuttgart-Nieber Christian ("Softsynth")-Nosek SCS-Nowaczuk gRafa Sword Soft-Orange Spoon Alternative Soft-Orcky SCS-OSon H.A.R.-Ostrowsky Frank (T.Basic XL")-Owens Michael ("Zybex")-PaKo Blue System Soft.-Palka Tomasz ("Smu")-Phanto a Roland ("A.D. 2044")-Pasek Marek ("Tajemnice Atari")-Paskud USSR-Pasternak Les aw ("Tajemnice Atari")-Paterson David ("MACAM J." editor)-Pazur Zelax-Pecu Copy Crew Zambrw-Percy-Piet Bit Busters-Peter WSL/BBSL-Peters Klaus (serwis xl/xe)-Petersen Ulf (hard i soft do xl/xe)-PeWu (P.W.) Slight-(Dark)Phoenix Apocalypse Riders-Phoenix (from USA)-Phoenix SoftCrew (whole group)j-Piastucki Piotr ASC-Pickford Stephen ("180", "Feud")-Pignato Alex (&rest) OL' Hackers-Pigu a Infinity-Piotrowski S.Tomasz (hardware-freak)-Pirate Plunder ("Space Pussies")-Pirx Our 5oft-PiXL-Pokey Softk-Poskrbek Piotr ASC ("Magia Fortuny")-Potter Jeff AGDA group-Presley (P.Kulikiewicz) ASF-Prizm HTT-Professor XL W.A.F.-Profi Mad Team-PS Software (*2) ("S ownik Ang-Pol")-Psychol Mad Team ("Colvox"!)-PTW (P.Wakiewicz) ("Trzmiel")-Puma Soft (D.Kulawik) ("Geometria")-Punisher Comtech Crew-Puff Robert ("Super Arc v2.4")-Pure Evil Shadow Production-Pytek Tight-ReeveSoft ("Diamond GOmS")-Roszkowski Marek Sword Soft-QBA-Quess (ex-Boss) Orion-Qeich Sven Chaos Club Chemnitz-R & R Soft ("Turbo Tape Copier")-R.A.C.E. (Rochester Atari Comp. Enth.)-Rafaell Soft ("Samurai's Game")-Raindorf Soft ("Scr. Anid. Manag.")-Rainer-Ramirez Nelson New Age software-Ramzes Zelax-Rage High Voltage-Ralf Copy Serv. Stuttgart-Rav Best Quality-Raven Quasimodos-Replay Bit Busterso-Reuss Erwin ("Bibo-DOS")-Rogue Piratech (BBS)-R.I.K. KaiserSoft-Rob C. (old famous hackers)-Robo HCL-Robo-soft ("Alex")-Robbocop Slight-RockySoft Mad Teapm-Roeber Sascha (wydaje "PD-Mag")-Ro-Bue (R.Buehler) ARGS (hardw-freak)-Ruta Marek ("Moje Atari")-Rutek ("Atari Magazyn")-Rzbik Banklan-Rzg Slight-Sabath Peter (German demo-coder)-Sqamuraj Taquart-Sandman Dial-Sanyi HARD-Saygon Nova-Schoenfeld H. Copy Crew Amsterdam-Schreurs Bo&Ernest (creators of xe CD)-Scorpio software-Seban Slight-Selftest Edward Nationarl Software-Seti TABOO-Shadow Polly Parrot Pirating-Sherlock (alias D.K.) Orion-Sherlock The Best-Shooter KaiserSoft-Sikor Bit Busters-Sine TACF-Sir Andrew H.A.R.-Sisr Leo Infinity-Siz (& rest) Bellcom PD ("The cube")-Slash MMF-Slaves Taquart-Slayer U.N.O.-Smark-soft (K.Klimczak) ("MultiDOS")-Sniper HCL (Heretic Crew)-SolarSystems HTT-Solo-tSolocoder A.C.E.-Sound Vixen ASC-Soused Teat Slight-Sparrow-Hawk Disc Jockers-Specht Rolf ("Edelweiss Demo")-Spider Man (German cracker)-Spike GPS-Spiryt-Spueli-Soft-SpyChip u ("Outris")-S.S.M.B. ("Atari Graphics Demo")-STD (S.Dorndorf) H.A.R. ("Qmeg OS")-Stecu (K.Stec) (rozszerz. sprztu)-Stefaski Maciej ECS (Elec.Cyb.Stud.)-Steinman Chuck (STEREO-inventor !)-Sterba Radek Raster Software-Stvanley USG ("XL-Paint")-Storm N.A.S.A.-Striegler Henrik Chaos Club Chemnitz-Stru-Stuart Robert (publisher of "Excel")-Stuermer Armin (szef "AMC Verlag")-Stwr ("Inny wiat")-Suaron Orion-SVwL-Soft Chaos Club Chemnitz-Sygit Maciej ("Midi SEQ.")-Syntax Overlords-Syrylak Jaros aw ("Tajemnice Atari")-Szura a Robert Sword Soft-Szymczuk Daniel Lorien-lifirczk Maciej ("Ksie","PATROL")-wity x Zelax-Tabu MMF/USG-Tadeusiewicz Ryszard (txt-editors fan)-Tamme Ingo The German Chaotics-Tarzan Crazy Atarians-Tatar (P.Rak) .p. "Tajemnice Atari"-Tegethoff Sven Gnome Design-Tehno High yVoltage-Teli Sandor HARD-Terminator DMDV-TFB (The Fat Boy - Katowice City)-Thomas PentaGraM-Thompson A. (author of ql Xe-book)-Thor (K.Szmato a)-Thorgal (ex XL-soft) WFMH-Tiger-Tio-Tip Top Software (files mzaker)-TITAN-Soft ("DOS-collect.")-Titanic Software ("Maggie Demo")-Titus (ex-Juras) Shadows-TL (T.Liebich) USSR-TLB Slight-Tobi (T.Geuther) Top Crew-Tomczyk Marek (A8bit Resort in I-net)-Tomsoftware-Top O{din Brothers Production-TopStar DMDV-Tori WFMH-Trams Mario (65c816-expert)-Trener MAC-Troll DIAL-Tron CIA-Team-Tronic-Verlag hacker-Ugly Pig Overlords-|Ula Blue System Soft.-Ula ("Atari MAgazyn")-Unknown Europ. Soft. Agency-Unknown Base-Unknown One (remake of US Sec.Copy)-Unknown Software ("Mad Sound")-Unriagh-US-Ranger ("C64-DiaShow")-U}SA ("Atari graphics demo")-Uwe (& rest of group) HBSF Berlin-Vasco-Victor-Vitos-Vidol Tight-VLA-Soft ("Red Fox demo")-VLX (ex-Orion) MEC-Wackie Yo-Yo Comtech Crew-Walet ("Droga wojownik~a")-Wao-Wasyl HCL-W.A.U.G. (Wear Atari USER GROUP)-Wawrzyn BBSL-Whittaker David ("Colony")-Wiech Ryszard (Kyan Pascal-fan)-Wiege Oddware ("Sisyphos")-Wielebny (IRC #atari8 man)-Winkler Thorsten Gnome Design-Winston Peter HMC (Hero Msx Comp.)-Wio Cobra-WizTech Piratech (BBS)-Waldi Tight-Woj-Bit-Wojtek Cracking Service-Wolfman (lame hacker)-Woppie Zelax-Wosfilm-Wdz BBSL-WSSoftware ("Syntezator")-XL/XE (Willi)-XL-Brothers-X-Man The Best-X-Ray Slight-Xanth computer sys. ("A130XE demo")-XE-Tronic Guy-XI SatanTronic-XTD (!)  (dema "Death","Iron Maid.")-Yamaha ("Tajemnice Atari")-Yarek MAC-Ye-Howa-Yeti (ex-Scorpion) No Name-Zabo otny Wojciech ("AutoCopy")-Zaborowski Robert ESC ("Excellent...)-Zachar Marek ("Moje Atari")-Zajc Mariusz Sword Soft-Zajor HCL-Zalewski Andrzej ("Moje Atari")-Zasilacz (twrca "Fat-Antic")-Zakiewicz Jerzy ("Co mona z XLXE..")-Zbx Virus PENTAGRAM (P.G.M.)-Zbycho Jabol Crazy Atarians-Zenial  Taquart-Zero the Hero ("Amaurote")-Zeus (Tomasz Sadza) ("Cywilizacja")-Zielony WaxSoft-Zientara Wojciech-Zilog-Zipp Steve HTT-Zoltar X Crazy Atarians-Zulus Bit Busters-Zwoliski Maciej  ("Hydraulik")-ak Soft-bik MAC-uk Jacek (files maker, itd.)-ur-soft (cool msx-men)--------------------------------------- Wiksze grupy, unie & korporacje  (tylko te oficjalne !!!): ABBUC (najwikszy na wiecie klub fanw XL/XE, z Niemiec, zrzeszajcy podgrupy: H.A.R. ARGS, UNO, N.A.S.A.,itd.) Bloody Coders (stowarzyszenie tzw. lepszych grup na XL/XE, tj. SCS, Our 5oft, Wax  Soft, itd.) Clever People (najlepsi w Polsce crac- kerzy, grajcy Mazurowi z Mirage na nosie - po- rednio przyczynili si do zaniechania wydawania programw dla Atari 8bit przez Mirage, Avalon i ASF... Fuji Brothers (po czone si y Banklan, DJ V i Monsofta - po prostu czyste OEy !!) Jabole Team nastpcy (?!?!?!?!?!??) Clever People... Cracki z trainerami (np. w "Technoidzie") to nie tylko ich specjalno... Rwnie wane jest na o- gowe picie "wina marki wino"... ;-) Delighty Union grupa za oona z nudw (chyba?!) przez Lewisa i Macioosia, do sk adu za apa si te Miker. Trupa ta od czasu do czasu wypuszcza jak kontrowersyjn produk- cj, zazwyczaj gwa c- c zmys wzroku, s u- chu lub tzw. "dobry smak"... Z wygldu dobroduszni, jednake w swoich programch daj]Jeeli macie do przekazania komujakie fuck-greetingsy to umiecie jenieco niej._______________________________________ PASKUD, TY cHUJU Z{AMANY !!!!!!!!!!_______________________________________Yo , ORION Lamers Group !Jeeli uwaacie swojego SHERLOCKa zadobrego muzyka, to oznacza waszelamerstwo do potgi dwunastej !---------------------------------------Wawrzyn, Kaktus,skaczcie do gry jak JEBANE kangury! Liroy--------------------------------------- Fucki ,dla tych wszystkich skurwysynw,ktrzy opuszczaj Atari na rzecz pier-dolonych Amig i PC !!!Prawdziwy mczyzna uywa tylko Atari .---------------------------------------| || Dykta Rules ! || |---------------------------------------Cedy,qp se shnooreck,bo i tack mash rak-ka!--------------------------------------- Ja ju to mia em.--------------------------------------- Fuckas dla Darth'a za jago ca okszta t.--------------------------------------- Maga fucks dla wszystkich ludzi, ktrzy przyczynili si do odejcia Wodz'a z C.A.---------------------------------------Jaki penis(wyej)napisa maga fucks???---------------------------------------MEGA_SUPER_GIGA FUCKI dla wszystkichjebanych w dup,pierdolonych dziewczt! M f P--------------------------------------- Krger - zapro ZBX'a na kashank... -------------------------------------- Faki do (GREGA) vel Koz a/CEPELIA/FLOWER POWER CHlLDREN QBK/OHP---------------------------------------"Spierdalaj to za ma o" dla:Maruchy! - jebanego dyskomu aPASKUD'nego peda kawa sy i jego katolickiej rodzinki---------------------------------------- kurewsko wykurwiste faki for: jebanych matkojebcuw z burdelu zwanego Orion,fszystkich pieprzonych pozeruf na tzw.scenie,st-uzers,zjebanego spaskudzia ego pi dzielca,pewnej dziwki z mojego osiedla /huj jej w dupe...,ju kloniarzy i dla tych huji co chc se te jebane kaloryfery kupi, grupie patafianw z Ornety,ktrzy to zadarli w zesz ym roku z nami na party tym razem skoczycie z kosami w ple- rach. that's all....motherfuckas! Fathead te suxs... -------------------------------------- orion - wy kutasy yebane....,... -------------------------------------- mier pozerom!!!..... -------------------------------------- wszystkie kobiety to kurwy.Ich matki to dziwki.Niech yj mzczy ni! -------------------------------------- Fathead,skompresuj g ow! -------------------------------------- fuck for every lamers and pozers our scene /orion,fathead,parwa and more./ -------------------------------------- stek uzerrs suxcks! -------------------------------------- mier modnym i pozerom! DARTH -------------------------------------- Chrzecijaskie Fucki dla dwch naj- wikszych scenowych pozerw: BLASPH'a and FOORMAN'a DARTH -------------------------------------- Teraf**kings for f**ked LamaF**ka's ,called: oRION!  Quartet z Gdaska -------------------------------------- Kravco, wyskocz raz jeszcze na Ornet w kolorowych brylach (...) !!! ------------------------------------- Special fuckinx 2 Paskud 4 "superb" organisation of Miko w-Party '95 ! ------------------------------------- Morsie,pierdol tY si! Parwa-------------------------------------- Bael,ty zaronita ma po! Mors-------------------------------------- Van jaki tam of Qtas klub - ty pier- dolony pedale! GEPARD-------------------------------------------------- Bael,ty zaronita ma po! Mors-------------------------------------- Van jNa tym dysku wszyscy znaleli na pewnoplik FUCK.TXT.Pomyla em,e nie wszyscychc s a tylko fucki no i powsta plikGRTX.TXT,w ktrym to moecie umieszczagrtx'y i pozdrowienia dla kogo tylkochcecie.---------------------------------------Wdz/BBSLSk adam na rce wszystkich cz onkwgrupy Crazy Atarians jeszcze raz ogrom-ne podzikowania za kilkumiesiecznwsp prac.Chcia bym,aby nasze kontaktynie ulega y zmianie(po co to komu Phoe-nix'ie).We cie to sobie do serca(Jabol-ku tylko uwaaj nie za bardzo).---------------------------------------Big grtx for Zbycho Jabol za extrafriendship,ktry mam nadziej si niezniszczy . Wdz/BBSL---------------------------------------Mega grtx'y for :Wdz,Kaktus,Wawrzyn,MacGyver,Chris,Mayonez,Greg,Slaves,Vasco,Joy,Jager,Sir Leo & all Atarimaniacs !!!!(za ca okszta t of course) Kuchara/BBSL.---------------------------------------Special grtx going to :Zbycho JAbol,Mateoos,Zoltar X,Wdz,Tio,Hans Kloss,Kac,Vasco,Yeti,Greg,Bac,Electron,Victor,Gizmo,Jager,Lobo,ArasekJoy,Diabe ,Macioo,Krger,MacGyver,Malefactor,Seti,Miker,Dhor,Wawrzyn,Pigu a and Dracon,Kubek,Gepard,Darth,Trener & the all Atarians. Phoenix/C.A.---------------------------------------Grtxy for ZBX $virus za ca okszta t Malefactor/Pentagram--------------------------------------- Mega pozdrowienia dla wszystkichtych, ktrzy pomagaj przy tworzeniuPENTAGRAM ZINE !!! You fuckin' rulez!i reszty, ktrych mam w anie na my-li... Oraz specjalne grtxy for M f P[albo (Q)] za ca okszta t... VIRUS from Pentagramos-------------------------------------- Podzikowania dla Greya za brak prob- lemw w toalecie. Van Eijk-------------------------------------- Thanxy dla Van Eijka za zajebiste pi eczki. Grey-------------------------------------- gretz for all.-------------------------------------- thanks for: /no order.../ JAGER,MALEFACTOR,SLAVES,MUTI,PHOENIX, DRACON,STANLEY,RAGE,KUBEK,GREY,BIK, BAEL,CHMIEL,MONSOFT,VASCO AND MORE... and ofcursess for: rest of PANDEMONIUM rest of DIAL tekkno sympatics & maniackx. rock rule is ower. ge opardi/tarcza and pnm.-------------------------------------- Pozdrowienia dla MMU,RANGERA,VANA, NICKA,MARCINA,TRIDENTA,ASGARDA i reszty KAKAO BROTHERS MORS-------------------------------------- Grettingsy dla Scorpion'a Yeti-------------------------------------- Grettingsy dla Yeti'ego Scorpionik--------------------------------------------------PrefaceFifteen years after the introduction of the Atari 8-bit computer,virtually the entire base of machines is still using the same CPU,and thus has the same basic processing power as when the machine wasfirst shipped. Not that we need to be like other platforms -- whichseem to get CPU upgrades before you've had enough time to pay offthe credit card bill on the last system -- but we have missed out ona great amount of satisfaction that comes when you find out that youcan do tasks faster, easier, and better than before. Or when you findthat the machine is now capable of feats that it previously could notachieve.When I met the 65816 processor for the first time, I was immediatelycaptivated by the range of enhancements that it provided. It was afeeling surpassed only by the still cherished memory of my firstsuccessful Assembly language program. Some of these enhancements arebrilliant, and are implemented in very clever ways. For the designersto have achieved this much, and yet remain completely compatible withthe 6502 at the same time, is truly a work of art. It is a processorthat plain and simply _belongs_ inside the Atari computer; for the Atariis unquestionably in my mind the best 8-bit computer that has ever beencreated, or will ever be created. It is itself a work of art, that morethan anything else, is responsible for the attachment I have to computers,and to programming in particular. There is no other machine more deserving,or more able to utilize the extra power of the 65816. As an Atari enthusiastsince 1979, it gives me great pleasure to be a part of this new upgrade forthe machine.John HarrisAhwahnee, CaliforniaProgramming notes for the 65816.The 65816 is a wonderful improvement over the 6502, containing 78 newopcodes, 9 new addressing modes, block memory moves, 16-bit registers,relocatable stack and zero-page, and a 16 megabyte linear address space.This is intended to be an introduction to the many new features andtechniques provided by the 65816 processor. - Native Mode -The 816 powers-up in a state known as "6502 emulation mode". This is itsdefault state, where it remains virtually 100% compatible with the 6502.Most of the 816's enhancements are still available in emulation mode,including 24-bit addressing, and the new opcodes and addressing modes.The primary missing ingredient is 16-bit registers. These are not availableuntil the processor is switched into a different state, known as"native mode". This mode switching was necessary so that enhancementscould be provided for the CPU, while still maintaining a way to providecomplete 6502 compatibility. As such, there are a number of operationaldifferences when the 816 is in native mode, and these will be noted in theupcoming sections.Switching between native and emulation modes is accomplished with a newinstruction, called XCE, for eXchange Carry and Emulation bits. Theemulation bit is like a shadow of the carry flag, and so to change modes,you set the carry for emulation mode, or clear the carry for native mode,and then do an XCE. The previous state of the emulation flag will be inthe carry after the exchange has been made.; Change to Native ModeCLCXCE; Change to Emulation ModeSECXCERunning the 816 in native mode requires changes to the interrupt processingsystem in the OS. A new OS is being worked on, but until this is available,the Atari will crash if you attempt to enter native mode without completelydisabling interrupts.  You will find that there is still a considerableamount of power available even in emulation mode, and you still have theoption of entering native mode with all interrupts disabled.The wait for an 816-aware version of the OS won't be too much longer, andin the meantime, you can create a macro which enters native mode and disablesinterrupts at the same time. Later on, when the OS supports native modewith the interrupts still active, you can just remove the interrupt disablefrom the macro, and reassemble your code. Here's an example of the nativeand emulation mode macros supplied with the MAE assembler as part of theMACROS include file.!!!NAT .MD ;Macro definition for NATiveSTZ $D40ESEICLCXCE.ME!!!EMU .MD  ;Macro definition for EMUlationSECXCELDA #$C0 ;Change this to #$40 if you aren't using DLIsSTA $D40ECLI.ME- B accumulator -The 816 has a second "hidden" accumulator known as the B accumulator.Though there are no operations that work directly with it, there is aninstruction called XBA to exchange the A and B accumulators. Thus, B makesa great temporary holding spot. The B accumulator is actually the upper8 bits of a 16-bit wide accumulator. When A and B are used together as a16-bit register, it is referred to as the C accumulator. The B accumulatorand XBA instruction are accessible in emulation mode. Only the 16-bit wideC accumulator requires the native mode before it can be accessed. Later on,we will learn how to configure the CPU for 16-bit register use, but it canalso be useful to load 16 bit values into both accumulators while still in8-bit register mode. These three instructions perform this operation.LDA #>address ;The high byte of the address is loaded first,XBA ; then swapped into the upper accumulator,LDA #
valueXBAThe A+B accumulator is also a great place for passing a 16-bit value to asubroutine. - Changing Register Sizes -Register size is controlled by two new bits in the native mode processorstatus register. The new "M" bit controls the size of the accumulator andall memory accesses, and the "X" bit controls the size of the X and Y indexregisters. The native mode status register looks like this:bit 7 6 5 4 3 2 1 0 N V M X D I Z C | | | Index register size | Accumulator and memory sizeThese bits are set to 1 when the register size is 8 bits. To enable 16-bitregisters, set the desired bit to 0. It is possible to have one bit set to1, and the other bit set to 0. When transferring between registers ofunequal size, a general rule is that the size of the destination registercontrols the width of the data moved. The following table will summarizethis. A=8-bit,X=16-bit A=16-bit,X=8-bit ---------------- ----------------TAX - Moves A and B into X Moves 8-bit A into XTXA - Moves lower 8 bits of X into A. Moves 8 bit X into A, B remains unchanged. and 0 into B.Two new instructions are provided for setting and resetting bits in thestatus register. Use the instruction SEP to set processor status bits.The operand should be an immediate quantity, containing binary 1's for eachof the bits you wish to set. Consider this like an ORA instruction into thestatus register. Use the instruction REP to reset or clear processor statusbits. The operand should be an immediate quantity, containing binary 1'sfor each of the bits you wish to clear.REP #$30 ;Set to all 16-bit registersREP #$20 ;Set 16-bit accumulator and memoryREP #$10 ;Set 16-bit index registersSEP #$30 ;Set to all 8-bit registersSEP #$20 ;Set 8-bit accumulator and memorySEP #$10 ;Set 8-bit index registersNote that the SEP and REP instructions can set or reset any of the statusregister bits, so their use is not restricted to only changing registersizes. Other uses could include:SEP #$09 ;Setting or resetting multiple bits at a time.SEP #$40 ;Set the V flag.SEP #$80 ;Setting or clearing N or Z flags...REP #$02 ;...without changing register values.There are zero the upper 8 bits of both X and Y. Even if only one register is going to be used, the downsizingoperation itself can clobber the other register, so the previous value mustbe saved and restored if the contents need to be preserved. When pushing and pulling registers from the stack, make sure the registersize is in the same state for both operations, or else the incorrect numberof bytes will be pulled from the stack.When assembling code with immediate operands, the assembler needs to knowwhat the register sizes are, in order to know how many bytes to assembleinto the object code. The CPU will want to fetch 16 bits if the registersize is 16-bit, so the assembler better have put a 16-bit quantity thereor else the code will not run properly. The programmer must use psuedo-opsto keep the assembler in sync with the state of the register sizes in theCPU. Four such psuedo-ops are provided in the MAE assembler..AW ;Accumulator is word sized.AB ;Accumulator is byte sized.IW ;Index registers are word sized.IB ;Index registers are byte sizedSo after changing the register sizes with SEP or REP, always follow with theappropriate psuedo-ops to match the new register sizes. It is best to codeboth the CPU instruction and the psuedo-ops into macros, to reduce thechances of any mismatches occurring. The example MACROS include fileprovided with the MAE assembler has macros for this purpose. Here is whatthey look like:!!!R16 .MD  ;Macro define to set 16-bit registersREP #$30.AW.IW.ME!!!R8 .MD ;Set 8-bit registersSEP #$30.AB.IB.ME!!!A16 .MD ;Set 16-bit accumulatorREP #$20.AW.ME!!!A8 .MD ;Set 8-bit accumulatorSEP #$20.AB.METhere are also I16 and I8 macros for setting index register size by itself.If your code goes into native mode to use 16-bit registers, and plans toreturn to emulation mode when the 16-bit need is finished, then you do notneed to explicitly return to 8-bit registers with SEP. Returning toemulation mode will automatically return the registers to 8-bit size.Remember that you still need to use the .AB and .IB pseudo-ops.Be extremely careful when creating code that branches or JSRs out of aroutine that changes register sizes. Consider the following example:R16 ; Macro to set 16 bit registersdo some codeCMP #VALUEBEQ YESdo the "no" codeRETURN R8 ; Macro to return to 8 bit registersRTS;YES do the "yes" codeBRA RETURNThe problem with this code, is that the assembler will not know that theCPU is in 16-bit register mode at the label YES. So if the code containedany immediate references, they would not be assembled properly. This simpleexample could easily be rewritten by placing the YES portion of the routineabove the label RETURN, and having the "no" section branch around it. Thisis a preferable arrangement if it is feasible, but in some cases this willnot apply as easily. If you need to create a structure similar to the above,you will need to add additional sizing psuedo-ops to keep the assembler insync with the code. Add the following lines before and after the YESsegment:;.AW ;Since the yes code executes in 16-bit mode,.IW ; set the assembler register sizes to match.YES do the "yes" codeBRA RETURN.AB ;Set the assembler back to 8-bit mode..IB- Bank Registers -The 816 still has a 16-bit program counter, and while it does offer a few24-bit data addressing modes, most modes are still 16-bit. Thus, the CPUcreates 24-bit addresses by using "bank registers" added to a 16-bit address.Much like a "page" of memory is an even 256 bytes, a "bank" of memory is aneven 64K. The upper 8 bits of a 24-bit address is called the bank byte.The 816 provides two 8-bit bank registers, one for the PC and one for dataaddressing. By storing different values into these bank registers, the CPUcan address the full 16 megabytes provided by the 24-bit address space.The bank register for the PC is called the PBR, or Program Bank Register.The bank register for data addressing is called the DBR, or Data BankRegister. Things get slightly confusing when looking at the mnemonics toaccess these bank registers. Mnemonics referring to the DBR will use theletter B; and the letter K is used to refer to the PBR. Access to the DBRis provided only through the stack. The instruction "PHB" pushes the DBRonto the stack, while "PLB" pulls a byte from the stack and puts it into theDBR. Thus, to set the DBR to another value, push that value onto the stack,and then do a PLB. The following code will set the DBR to $40.LDA #$40PHAPLBThere is a "PHK" instruction to push the PBR onto the stack, but no "PLK"instruction. Such an instruction would make little sense, as it would causethe program counter to immediately jump to a new location in the 24-bitaddress space. To set the PBR, there is a new 24-bit jump instruction,"JML", or jump-long. The operand is a 3 byte, full 24-bit address.It is sometimes useful to set the DBR to the same bank as the PBR, so thatdata access is aligned to the same bank where the code is running. You cando this with these simple instructions:PHK ;Push the PBR,PLB ; and pull it into the DBR- Direct Page -The concept of zero-page from the 6502 has been extended for the 816processor. By adding a 16-bit register that can point to any location inthe first 64K of memory, you can now relocate zero-page to any 256 byte blockof memory within the first 64K. This register is called the Direct PageRegister, and the zero-page addressing modes are now referred to as DirectPage modes. The direct page register does not need to point to an even pageof memory, but odd memory alignments will slow down all direct pageaddressing by one cycle.There is one important difference about the way the 816 handles direct pageindexed references that overflow the end of the page boundary. Such asreferencing $F0,X when X=$20. On the 6502, any references above $FF wouldwrap around to $00 again, keeping all addresses within the page. On the 816in native mode, indexes will cross the page boundary and reference locationsoutside of the direct page. In 6502 emulation mode, in order to maintaincompatibility, index references will wrap around to $00, but, (and this iswhere it gets a bit strange), only for instructions that existed on the 6502,and only when the direct page register is set to 0. All operations that arenew to the 816 will always generate addresses outside of the direct page incases where the index calculation overflows the page boundary. I think anumber of examples would best demonstrate the conditions here.; X=$20, E=emu, dp=0LDA $F0,X ;Gets byte at $10STZ $F0,X ;Clears byte at $110 (non-6502 instruction); X=$20, E=emu, dp=$4000LDA $F0,X ;Gets byte at $4110 (dp is not 0); X=$20, E=nat, dp=0LDA $F0,X ;Gets byte at $110 (native mode); X=$FFFF, E=nat, dp=0, 16-bit register modeLDA $F0,X ;Gets byte at $100EF (yes, past the first 64K)The last example demonstrates the interesting effect that with 16-bit indexregisters, direct page indexed addresses can be up to 64K bytes away from thelocation of the direct page, all with no cycle penalties!Setting the direct page register is similar to setting the DBR, except thatthe direct page register is 16 bits. There are PHD and PLD instructions,but they will be two byte accesses. Thus to set the direct page register,you will need to push a two byte address onto the stack. There is a newopcode which is handy for this use. It's called PEA, for Push EffectiveAbsolute address. The operand is an absolute address, and it is the addressitself that gets pushed onto the stack, rather than the contents at thataddress. It's as if the operand is treated like an immediate constant, butthe assembler syntax does not use the "#" immediate identifier. For example,if you want to set the direct page register to $4000, you would use:PEA $4000PLDThe direct page register can also be transferred directly to and from theaccumulator. The instructions are TCD and TDC. The mnemonic choice of Cwas used to indicate that this is always a 16-bit transfer of the A+Baccumulators, regardless of whether the accumulator is set to 8-bit or16-bit mode.There are all sorts of unique possibilities for this relocatable direct page.If you need to do some very fast graphic routines, you can point the directpage register into screen memory! Or even point the direct page register at$D000, which would let you access the hardware graphic registers at directpage speed! Be creative, but keep in mind that if interrupts are occurringwhen the direct page is pointing somewhere else, direct page accesses withinthe interrupt would go to the wrong place. The interrupt routine would needto push the direct page, reset it back to 0, and then restore the direct pageon exit. A new version of the OS, when it becomes available, may take careof this automatically. Until then, the programmer will be responsible fornot allowing interrupts to occur when the direct page register is non-zero,or else providing the enhancements necessary to the interrupt serviceroutines to handle the situation properly. More information will be givenin the section on interrupts, near the end of this document.- Stack Register -The 816 now provides a 16-bit stack pointer, which can point to any locationin the first 64K of memory. It also allows the stack to be longer than 256bytes, and can be up to as much memory as you want to set aside for it. The16-bit stack pointer is only available in native mode. When the CPU is in6502 emulation mode, the upper byte of the stack pointer will be set to 1,forcing all stack accesses to page 1 just like the 6502.In addition to the TSX and TXS instructions, the 816 also offers TSC and TCSinstructions for transferring the accumulator to and from the stack pointer.The mnemonic uses the letter C to indicate that the full 16-bit value in theA+B accumulator will be transferred, regardless of the setting of the M bitin the CPU status. Of course, since the high byte of the stack pointer isforced to 1 when the CPU is in emulation mode, only the lower 8 bits of theaccumulator are transferred in emulation mode.Be careful of using the TXS instruction in native mode. The stack pointerwill be 16 bits, but if the index registers are set to 8 bits, the upper byteof the X register will be zero. A TXS instruction from native mode with theindex registers set to 8 bits, will wind up positioning the stack into pagezero! This is a really sad occurrence, because it often winds up being theonly problem when trying to run existing 6502 code in native mode. To setthe stack pointer from native mode and 8 bit registers, this is the easiestmethod: TSC ;This will place the current 16 bit stack pointer in A & B LDA xxx ;Replace the lower 8 bits with the new desired value. TCS ;The upper 8 bits was kept in B, and will be unchanged- New Addressing Modes -The 816 provides many new addressing modes, and in some cases, expands theallowable modes of older instructions. For example, the BIT instruction nowaccepts immediate operands, plus indexed,X modes for absolute and directpage. INC and DEC can operate on the accumulator, in the same manner as theshift and rotate instructions. Just write "INC A", or simply "INC".New addressing modes include:JMP (address,X) ;Absolute Indexed IndirectAvailable only on JMP and JSR instructions, this addressing mode allows easyaccess into 2 byte jump tables. It's too bad the 6502 didn't have this mode.We wouldn't have been subjected to the -1 addresses in the $E400 jump tablesif it had. In fact, a neat enhancement to an 816 version of the Atari OSwould be to add a NOP instruction in front of every one of the $E400routines. In this way, the current RTS method would still work, with its+1 adjustment skipping over the NOP and winding up in the same place theroutine starts now. The difference, is that now a JSR (indirect,X) wouldenter the routine at the NOP, providing an easier method for programmeraccess.LDA (dp) ;Direct Page IndirectThis is similar to the indirect indexed form of addressing, but without the",Y" index. This is very handy when you only need one byte at the indirectaddress, and it does not require the use of a register set to 0. This modeis available for all instructions that currently allow indirect indexed.The following modes generate 24-bit addresses, and are only useful whenmemory is expanded beyond the initial 64K. Unless otherwise noted, allmodes are available with the types of instructions that previously allowedthe full range of addressing modes. Such as LDA, STA, and math operationslike ADC and ORA. Operations that modify the operand, such as DEC, do notsupport these new addressing modes, nor do operations with the X or Yregisters.LDA >long ;Absolute LongSimply a 24-bit version of absolute addressing, taking one extra addressbyte for the operand, and thus, one extra cycle as well. The ">" symbolis required by the MAE assembler to denote the long addressing mode.LDA >long,X ;Absolute Long Indexed,XA 24-bit version of absolute indexed,X, again taking one extra address bytefor the operand, and one extra cycle.JMP [address]  ;Absolute Indirect LongThe operand is a 16-bit address, but this address should contain a 24-bitpointer to the destination jump location. This mode is only valid for theJMP instruction. Square brackets "[]" are used to denote 24-bit indirectpointers.LDA [dp] ;Direct Page Indirect LongMuch like direct page indirect, and the operand will still be a one bytedirect page location. However, the address at that location should be a24-bit address.LDA [dp],Y ;DP Indirect Long Indexed,YAdds a ",Y" index to direct page indirect long addressing.The last two addressing modes deserve a topic by themselves.- Stack Relative Addressing -The most significant improvement to the addressing modes in the 816, is theaddition of stack relative addressing. This gives the programmer easy anddirect access to any byte or address within the last $FF bytes pushed ontothe stack. The operand of stack relative addressing is a one byte indexinto the stack. Since the stack pointer always points to the next availablelocation, a relative pointer of $1 should be used to access the last bytepushed onto the stack. Higher numbers will access bytes successively deeperin the stack. Note that a relative pointer of $0 will reference the lastbyte that was pulled off the stack, but usage of this byte will be dangerousunless the conditions are such that no interrupts could have occurred.Interrupt processing will push additional bytes onto the stack, overwritingthe byte that was "left over" from the last stack use.The direct form of stack relative addressing is written in Assembly as:LDA $1,SThere is also an indirect indexed form of stack relative addressing. Thisoperates much like the "(indirect),Y" type of addressing, except that insteadof the address being stored in zero page, the address is pushed onto thestack. This is best explained by an example showing the same operation inan already familiar method, along side the new stack relative mode.Indirect Indexed Stack Relative Indirect Indexed---------------- -------------------------------LDA #$40 PEA $4000STA $81 LDY #0LDY #0 LDA ($1,S),Y ;"$1,S" defines the locationSTY $80  ; of the address bytesLDA ($80),YNote that in the stack relative example, the programmer is responsible forpulling the address off of the stack when it is no longer needed. Thisexample used an immediate address, for which the 816 can easily push all16 bits using the PEA instruction. In cases where the address is calculated,or taken from some other memory variable, push the high byte of the addressfirst, and then the low byte.The stack relative form of indirect addressing is 1-2 cycles s lower thanusing the direct page, so it is not ideal for speed critical applications.Still, there are many excellent uses for stack relative addressing. In itssimplest form, it can be a handy method for allocating temporary variablesor pointers, wit hout requiring the use of other memory locations. This canbe especially helpful if you need indirect addressing capabilities, and donot want to overwrite any direct page locations. You can push the desiredaddress onto the stack, and then use the st ack relative form of indirectindexed addressing.At some point, you may need to use a direct page variable, modifying itscontents, and then be responsible for restoring it to its original value.Traditionally, you would push the contents onto the sta ck, or transfer it toanother memory location. Stack relative gives you another option. Once youpush the original contents onto the stack, you may use that stacked addressas your temporary pointer. In fact, there is a single instruction that canpu sh the original pointer, called Push Effective Indirect address, or PEI.PEI is written in Assembly as:PEI ($80)This instruction will take the 16-bit address at the location of the directpage operand, and push it onto the stack. Much like PEA, it pushes theeffective indirect address rather than the contents stored at the address.For example, lets say that the direct page location $80 contains the bytes$00,$40, (basically, the address $4000), and location $4000 contains $FF.The instruction "LDA ($80)" would return the contents $FF, while theinstruction "PEA ($80)" would push $4000, being the effective address thatthe operand points to.The stack can also be a useful method for passing parameters to subroutines.You can push as many arguments as you need onto the stack before thesubroutine call, and access them from within the subroutine by using stackrelative addressing. Since there will be a two byte return address on thevery top of the stack, the first parameter will be at an index of $3 whenusing stack relative. If your subroutine needs to preserve registers on thestack first, the index will increase accordingly.Some of the more exotic uses are in the form of reentrant or recursiveprogramming. A routine is said to be reentrant if it can be called fromanother source, like an interrupt, while it is in the middle of execution.A routine is recursive if it can call itself. For a routine to be able tohave these properties, it must preserve all registers and use no externalmemory references. One of the example code routines at the end of thisdocument shows an example of recursive programming.- Relocatable Code -Relocatable code has the ability to be moved anywhere in memory, and stillexecute correctly. Improvements in addressing modes and opcodes make itmuch easier for the 816 programmer to write fully relocatable code. Incombination with the stack relative addressing modes, the final keyingredient is an instruction called PER, Push Effective address Relative.Since relocatable code cannot rely on absolute addressing, PER provides amethod for referencing other parts of a program or its data by using a 16-bitsigned offset relative to the current PC. The PC always contains theabsolute address of where a program is running. So by knowing how far itis from the currently executing instruction to another part of the program,PER can generate an absolute address by adding or subtracting this distancefrom the PC. In the assembler, you only need to provide the label name forwhere you want to reference, as the operand of the PER instruction. Theassembler will calculate the proper offset and store it in the object code.To write a relocatable program, the programmer will need to replacesituations that use absolute addresses, with relative address references.Instead of JMP instructions, use BRA for short jumps within 128 bytes, orBRL for long jumps of up to 32K. There is no BSR instruction for relativesubroutine calls, but such an instruction can easily be created in a macroby using two other instructions.!!!BSR .MD (ZLOC) ;BSR macro definition, with 1 parameter for the adrPER *+5 ;Push return adr, adj -1 for RTS; Points after the BRLBRL ZLOC ;Branch to the subroutine. RTS returns to next instr..ME In the above macro, we have used the PER instruction to push the returnaddress for the subroutine as an offset of +6 from the current PC. TheRTS is going to increment the pushed address before continuing execution,so we actually have to pass a relative address of +5 to get the RTS toreturn where we want. Then, it is a simple matter to jump to the subroutinewith a relative branch.Since some subroutine calls could be within 128 bytes, it would be moreefficient to allow a short BRA to be used in these situations. This is notpractical for the assembler to do automatically, since it will not know howfar away forward references will be. Thus it can not determine how manybytes to reserve for the branch, and changing this during the second passwould cause an error in the location of all subsequent addresses.Therefore, we recommend creating two macros and allowing the programmerto specify the size of the branch with the macro name. The MACROS includefile supplied with the MAE assembler uses the name BSL for the long branchto subroutine as shown in the example above. Another macro called BSR usesthe BRA instruction, and would be used only for subroutine calls within 128bytes.That covers the absolute JMP and JSR instructions. Using relocatablestructures for data storage is more complex, because there are morevarieties in the ways programs need to access data. We can explore a fewgeneralizations, after which, you should be capable of cr eating approachesthat fit your individual needs.The basic building block is the PER instruction. Anytime you need to accessan address that is within part of the program's space, you need to find theruntime location for that address using PER. PER! pushes the address ontothe stack, and what you do from there depends upon how often your programneeds to use that address. For references that are confined to fairly localuse, it is probably best to leave the address on the stack, and use it forst"ack relative indirect addressing. Let's look at a fairly simple tablelook-up routine to see how this works. We'll examine a key code look-upwith a JMP table, first in standard absolute addressing, and then in arelocatable form using PER and stack r#elative.Absolute addressing - 6502 method---------------------------------LDA $2FC ;Get key codeLDY #MAXCMD?FND CMP KEYCMDS,YBEQ ?HVDEYBPL ?FNDSEC ;Return with "Not Found"RTS?HV TYA ;When key code is$ found,ASL ; multiply by 2 for word indexingTAYLDA CMDADR+1,YPHALDA CMDADR,YPHARTS ; and jump to routine;KEYCMDS .HE BF 95 92MAXCMD = *-KEYCMDS-1CMDADR .WO C.A-1.WO C.B-1.WO C.C-1With the 816, the above ex%ample could be shortened a bit by using theJMP (indirect,X) instruction. The ending code would look like this,plus the CMDADR table would not use -1 after the addresses with this method.?HV TYAASLTAXJMP (CMDADR,X)Now, here's a relocata&ble version---------------------------------LDA $2FCPER KEYCMDS ;Push address of KEYCMDSLDY #MAXCMD?FND CMP ($1,S),YBEQ ?HVDEYBPL ?FNDPLA ;Pull KEYCMDS address off stackPLASEC ; and return "Not Found"RTS'?HV R16 ;Set 16-bit registersPLA ;Pull KEYCMDS adr off stackPER CMDADR ; and push CMDADRTYAASLTAYLDA ($1,S),Y ;Addresses in the table are offsets from CMDADRADC $1,S ;Add it to CMDADR, which is still (on the stack, andSTA $1,S ; it points to the absolute address of the routineR8 ;8-bit register modeRTS ;And go;KEYCMDS .HE BF 95 92MAXCMD = *-KEYCMDS-1CMDADR .WO C.A-CMDADR-1 ;Addresses are stored as offsets from) CMDADR.WO C.B-CMDADR-1 ;.WO C.C-CMDADR-1 ;Also includes -1 for RTS adjustThis example used 16-bit registers, so keep in mind the current restrictionsregarding native mode and interrupts. Until the new OS is in place, you maywant to stay in emu*lation mode, and just use a double byte add with 8-bitregisters.Not all program data is going to fit this type of example either. If thedata is accessed at many locations throughout the program, the above processcan get inefficient very quickly. +In some cases, you may be able to leavethe address on the stack, and continue to use it with stack relativeaddressing. This can quickly become impractical though when needing toaccess the address from different subroutine levels or with other items,pushed onto the stack. A better solution is to do the PER at the startof the program, and then pull off the address and store it permanently ina direct page variable. Then use direct page indirect addressing to accessthe data. For single bytes and- other small amounts of temporary storage,put the most often used variables directly into the direct page, or intofree absolute memory areas like $400-$6FF.- Block Memory Moves -The 816 provides two instructions for moving blocks of memory, onein.cremental and one decremental. This is to handle the potentiallydestructive operation of moving overlapping blocks of memory. Theincremental instruction is MVN, or Move Next, and the decrementalinstruction is MVP, or Move Previous. The block moves/ are about twiceas fast, or more, as normal move operations using 6502 methods.Block moves are set up by placing the source address in the X register,the destination address in the Y register, and the number of bytes -1 to bemoved in the C accumula0tor. The C register decrements to $FFFF in the moveoperation, thus the reason to subtract 1 from the desired byte count. Theregisters should be set to 16-bit mode of course, otherwise block moves wouldtake place in page 0 only. This also means tha1t block moves have very littleuse in 6502 emulation mode.Two operands follow the block move mnemonic in the assembler syntax, whichare the bank bytes for the source and destination addresses respectively.Thus block moves can move data from one bank2 to another if desired. Here isan example that will move $1000 bytes from $4000-$4FFF to $8000-$8FFF.LDX #$4000LDY #$8000LDA #$FFFMVN 0 0The MVN process will move one byte at a time, using 7 cycles per byte,incrementing both X and Y regist3ers while decrementing the count in C.When the C register gets to $FFFF, the move will be completed, and X and Ywill contain the address one past the range that was just moved. In thisexample, X would contain $5000, and Y would contain $9000.When 4the destination address is higher than the source address, and theblocks overlap, the programmer should use the MVP instruction (Move Previous).MVP moves the bytes using decrementing registers, so X and Y need to beinitialized to point at the highest5 byte in the source and destinationblocks respectively. These values can be found very easily with 16-bit ADCinstructions. Assuming the C, X, and Y registers are initialized to thestart of the memory blocks, as for the MVN process, the following li6nes ofcode will set X and Y to the right locations to start a MVP.PHA ;Save byte countTXACLCADC $1,S ;Add the stacked byte count to XTAXTYAADC $1,S ; ...and YTAYPLA ;Restore byte countMVP 0 0 7 ;All ready for the MVP- Other New Instructions -There are a number of other new instructions that haven't been introducedyet, or haven't been discussed formally. These include:PHX ;Push XPHY ; or YPLX ;and8 PullPLYTXY ;Transfer X register to YTYX ; or Y to XJSL >$123456 ;Jump Subroutine Long, also pushes 24-bit addressRTL ;Return subroutine Long, pulls 24-bit address.Be careful to always use RTL when using J9SL, and use RTS when using JSR.Mixing these up will cause an improper number of bytes to be pulled fromthe stack, and will most likely crash the machine.STZ operand ;Store Zero to memory. No register required.A handy instruction for clearing :memory. Usable in addressing modes of: direct page direct page indexed,X absolute absolute indexed,XTRB operand ;Test and Reset BitsSimilarly to the BIT instruction, TRB will logically AND the value in theaccumulator with the operand, with; the Z flag indicating the results.TRB goes one step further, by resetting the corresponding bits in theoperand. Technically, it logically ANDs the complement of the accumulatorwith the operand, and stores the result.In other words, TRB resets bitite operation, it must be able to read the current value atthe address, and thus can not be used on any hardware locations that do notsupport this. Locations like $D40E, $D208, $D00C, etc., can not be used withTRB and TSB.- Interrupts -This last? section is not for the faint at heart. Early on it was mentionedthat without changes to the interrupt processing in the Atari OS, the 816will crash if you try to enter native mode with interrupts still active.We are about to learn why that happens,@ and why 816 interrupt processingroutines on the Atari are a considerable challenge. Keep in mind that oncea new 816-aware version of the OS is available, most of the problems we areabout to look at will have already been addressed. The informationA here isprovided for those of you that may need to write your own interrupt handlers,or are simply curious about what goes on behind-the-scenes.The 6502 standard interrupt vectors at $FFFA and above are used whenever the816 is in emulation mode. WBhen in native mode however, the 816 utilizes asecond set of CPU interrupt vectors. Since the Atari OS does not containvalid addresses at these vector locations, this is the primary reason thesystem will crash on any native mode interrupts. The follCowing table showsthe locations of the native mode interrupt vectors.$FFEE - IRQ(note there is no native RESET vector, since RESET forces emulation mode)$FFEA - NMI$FFE8 - ABORT (not used in the Atari)$FFE6 - BRK instruction$FFE4 - COP instructioDnWhere the 6502 vectored software BRK instructions through the IRQ vector,the 816 in native mode provides a separate BRK vector. This is necessarybecause the B status register bit is no longer available to distinguish aninterrupt caused by the BRKE instruction. The other new vector is designedto allow a co-processor to be used with the 816. Though that is an unlikelyscenario with the Atari, the COP vector operates the same as the BRK vector,but in response to the COP processor instruction. FThus, a programmer coulduse the COP instruction and COP vector for applications similar to where BRKis used.Interrupts in native mode on the 816 are a significant programming concern.Since the processor can be in many states, a great deal of care mGust be usedto ensure that the CPU is in the proper state for the interrupt handlingroutine, and restored to its original state when the interrupt exits. The6502 had only the decimal mode to worry about. When an interrupt occurred,the programmer coHuld not be sure whether the CPU was in decimal mode or not,and so the decimal flag needed to be cleared if the interrupt routine neededto do any math. Interestingly, the 816 always clears the decimal mode whenresponding to an interrupt, so 816 progrIammers don't need to be concernedwith it. In its place however, the 816 programmer must be concerned withthe size of the accumulator and index registers, and the contents of the DBRand direct page bank registers. This is why retrofitting the 816 iJnto the Atari creates some seriousproblems.It is more than just providing the native mode vectors, becausethe programmer will not need to use the native mode unless he is alsoplanning to use 16-bit registers. In order to utilize 816 enhancementswhiKle leaving the interrupts active, the interrupt service routines needto be aware of the many available states of the 816. They need to savethe current state, reset everything to the default state that the interruptroutine expects, and then restore tLhe state back to where it started whenthe interrupt occurred. The first two of these three steps are comparativelysimple, because all of the interrupts start at the main interrupt vectors,and a new OS could provide the required code at the start of Minterruptprocessing. The following code segment is an example of what is requiredto save the state of the DBR, direct page register, and register sizes, andalso reset them to what would be expected as default conditions.PHD ;Save DBR anNd DirectPHBPEA $0000 ;Provides both operands for the following pullsPLD ;Set DBR and Direct to 0PLBPHX ;X&Y always need to be saved, because resetting themPHY ; to 8 bits would destroy the upper half contentOs.PHP ;Save M & X status bits, so we can restore; ; the registers at their proper size.SEP #$30 ;Set 8 bit regsNow you're ready to begin the interrupt routine with the CPU in its defaultstate. The problem, is Pthat the interrupt service routine needs to restoreall of these things when it exits, and current Atari interrupt routines donot expect all of this stuff to be pushed on the stack. While the built-inOS routines could be fixed to provide this, there Qis no way to control whathappens when the interrupt vectors get patched by external programs. All ofthese external programs, and even PBI devices, are going to exit with every-thing still on the stack, which would bring the system to a crashing haltR.There are no perfect solutions to this this problem. If execution speedwere of no concern, a completely safe solution is to push an extra 'dummy'interrupt return address onto the stack, so that the RTI from the interruptservice routines would retSurn to the OS, where it could pull everything elsefrom the stack and restore the state of the machine. Then a second RTI wouldresume main program execution. We already had to push the status register aspart of the above operation, so we would only Tneed to push the dummy returnaddress right before it to set the stack up properly for an RTI return.Since we are in native mode, we must also push the PBR bank byte to createa 24-bit return address. The PER instruction works ideal for pushing thereUmaining 16-bit portion of the address, like we used in the BSR example ina previous section. The RTI does not add $1 to the return address, so inthis case we may push the exact address with PER.Here is the completed interrupt pre-handler, along witVh the code to restorethe processor state and exit.PHD ;Save DBR and DirectPHBPEA $0000 ;Provides both operands for the following pullsPLD ;Set DBR and Direct to 0PLBPHX ;X&Y always need to be saved, becausWe resetting themPHY ; to 8 bits would destroy the upper half contents.PHK ;Push bank byte,PER IRETURN ; and return address, and status for the RTIPHP ;Save M & X status bits, so we can restore; X ; the registers at their proper size.SEP #$30 ;Set 8 bit regs; now jump to the appropriate interrupt vector, such as...JMP ($216) ;Its RTI will return to IRETURNIRETURN PLY ;Status byte was pulled as part of the RTI, soYPLX ; now restore X&YPLB ;Restore DBR and DirectPLDRTI ;Return to main programThis adds up to 66 or 70 cycles, (depending on index register size). A delaylike this could be detrimental to PBI and serial IRQs, andZ immediate VBLANK,and would be completely unacceptable for DLIs. The solution in the otherextreme, would be to require interrupts to be completely disabled wheneverthe programmer needed to change the state of the CPU. In this way, theinterrupt rou[tines would not need any of the above maintenance code, andwould be just as fast as existing routines. This method however would betoo restrictive to the programmer. Everything else is a compromise some-where, but by taking a few points into consid\eration, a workable solutioncan be reached.Coding improvements to the interrupt routines by using 816-specific featurescan regain part of the 66-70 cycle overhead. Another point to keep in mind,is that the emulation mode interrupt vectors could be] kept as-is, and thuscan be used if the response time of the native mode vectors is too slow.All this means, is that the program can switch to emulation mode when doingdisk I/O, or other interrupt speed sensitive tasks. Until the 816-OS isfinished ^and receives considerable testing, we won't know if and where speedproblems will occur.DLI routines need access as soon as possible. Thus, the NMI service routineshould always plan to get to the DLI without doing any of the safety measures.In prac_tice, this won't be that detrimental to the DLI programmer. DLI'srarely need direct page access, often don't require the index registers, andcould get around changes in the DBR by coding all accesses to the hardwarewith 24-bit absolute addressing. `In any case, exceptions to these conditionscan be handled by the programmer in many ways, and in a much more efficientmanner than the "save everything" method shown above. Since there simply isnot enough time to save everything, there is little choiace but to handle DLIsas a special case. The big drawback, is that it forces the programmer to beaware of the potential dangers of DLI programming in native mode, since theCPU may not be in a known state. The main NMI vector will still need to settbhe accumulator to 8 bits, which is needed for checking the NMIST location todetermine the cause of the interrupt. So the native mode NMI handler willlikely look like this:SEP #$20 ;Set 8 bit accumulator/memoryBIT $D40FBPL NODLIJMP ($200c)NODLI would then do the safety routine as above, and JMP ($222)This is going to be 4 cycles slower getting to the DLI than the normal Atarihandler, (3 for the SEP and 1 extra for the bank byte push on the NMI itself),but this is the best that cadn be done.Finally, the OS should provide a native mode IRQ master vector, similar tothe vector at $216, which would be in front of all of the safety code. Theprogrammer can use this vector to customize the interrupt needs, if necessary.Providing ae similar master vector for the NMI would add another 5 cycle delayto the DLI, and thus be undesirable. A compromise, would be to provide anative mode VBI vector that would be called at the NODLI location in theabove NMI handler. This would give profgramming access to the native VBIbefore any of the safety measures. Such a vector is currently beingconsidered.There are a few more considerations for interrupts on the 816. When the 816responds to an interrupt in native mode, it will push an addgitional byte ontothe stack between the status byte and the return address. This byte is thePBR; the current bank register for the program counter. Also, one extracycle of delay will occur due to this byte being pushed. The PBR is notpushed when tqp',4_\BBDOS SYSBAUTORUN SYSB(CZYTAJ FNTB-CZYTAJ CMCBY5SPIS TXTBFUCK TXTB GRTX TXTB6N65816 TXTB ODEZWA TXTBmMATPLAN TXThe CPU is in emulation mode, which can set up a potentialinterrupt problem if the programmer tries to run code outside of bank 0 whilein emulation mode. Because the interrupt will set the PBR to 0, there willbe no way for the processor to know wherer to return to when the interruptexits. The best way to avoid this scenario is to never execute code outsideof bank 0 unless the CPU is in native mode, or unless interrupts are fullydisabled.816 interrupts in both native and emulation modes do not sexhibit the 6502'sinterrupt bugs. On the 6502, if an interrupt occurs while processing a BRKinstruction, the BRK gets ignored. The 6502 can also skip NMIs and IRQsunder certain conditions. Interrupts on the 816 appear to be completelystable.- Stample Code: Testing for the presence of the 65816.If you want to write a program that will run on both the 6502 and 65816 CPUs,yet take advantage of extra 816 abilities if it is present, then you need away to determine which processor the code is ruunning on. The following shortcode segment will do this, based on the code's behavior in decimal mode.When doing BCD math on the 6502, the N and Z flags are not set correctly-- basically because the 6502 is setting the flags before the final BCDadjuvstment is made internally. The 816 sets the flags properly, so we onlyhave to a simple BCD add where the flags come out differently. Here's thecode:SEDLDA #$99CLCADC #1CLDBEQ HV816; 6502 here ;flags show N set, and Z clear, weven though A=0HV816 ;816 here- Sample Code: Printing a line of text to the screen.Many of you may already use a routine that you can call like this:JSR PRINT.BY "This text is printed" 0...code continues hereOn the 6502, txhis routine would normally pull the return address from thestack, and place it in a zero-page variable. After incrementing it by one,this would now point to the start of the text string. The bytes of text canthen be output one by one, until reachinyg the $0 end-of-string marker. Thenthe address is pushed back onto the stack, where an RTS returns to theprogram code following the text string. The stack relative mode of the816 makes this routine more elegant, as you will see in the followingcomzparison.6502 version 65816 version 65816 16-bit version------------ ------------- --------------------PRINT PLA PRINT LDA $1,S PRINT REP #$30STA ZP INC { LDA $1,SPLA STA $1,S INCSTA ZP+1 BNE ?1 STA $1,SPBYTE INC ZP LDA $2,S SEP #$30BNE ?1 INC LD|Y #0INC ZP+1 STA $2,S LDA ($1,S),Y?1 LDY #0 ?1 LDY #0 BEQ PENDLDA (ZP),Y LDA ($1,S),Y JSR PUTEBEQ PEND BEQ PEND BRA PRINT}JSR PUTE JSR PUTE PEND RTSJMP BPYTE BRA PRINT PEND LDA ZP+1 PEND RTSPHALDA ZP PHARTSThe 65816 versions do not require a direct page variable, and do not needto pull and push ~the address from the stack. The stack relative addressingallows the code to operate directly on the address automatically pushed bythe JSR. Also, when this stacked address is incremented through the textstring, it is automatically in the right place for the RTS. Sadly, INC doesnot work with a stack relative operand, forcing us to LDA the value to theaccumulator, increment it, and STA it back. The 16-bit version makes thisprocess a little smaller, but again require having resident OS interruptroutines that allow size changes to the register.In all routines, "JSR PUTE" can be considered to mean any suitable routineto output a byte to the screen.- Sample Code: Block Move PatchThe 816 block move instructions can move memory at least twice as fast as6502 implementations. It will usually take less code as well, which setsup an opportunity to patch existing 6502 programs with a block moveinstruction. All we need to do is find the existing routine that doesmemory moves, and replace the instructions with an 816 equivalent block move.For a demonstration of this, I chose the word processing program TextPro,version 4.55. It is best if the application needs to do a lot of memorymanagement, and this should be a good choice. I'll load the file intomemory using the debugger. Since I want the entire file contents sequential,and at the address I choose, I'll use the "-" option for the load which doesa straight CIO transfer.L -3000 TP.COMThe first step is to find the existing memory move code, and while you couldbrowse through the disassembly, a little detective work with the debugger isa better choice. A memory move should have a searchable sequence of an LDAinstruction, followed immediately by an STA. The most common type will beusing (indirect),Y addressing, and a quick check of the opcode table showsthe hex values to be $B1 for the LDA, and $91 for the STA. Since we don'tknow what the operand will be, we will use a wildcard for that.H 3000 7800 B1 ? 91This found one occurrence, but examination of the code showed it to not bewhat we were looking for. To search for other choices, you need to think ofthe other ways memory can be moved. Self-modifying code is sometimes used,where you would see an LDA absolute,X or absolute,Y followed by an STA.Since the operands in this case are two bytes, we would use two wildcards.It turns out that the routines we want use the absolute,Y addressing, and thesearch looks like this:H 3000 7800 B9 ? ? 99This actually finds quite a few matches, being a common programming structurefor other uses. We luck out, and the routine we are looking for happens tobe the very first match, at $36C4. Even if it weren't though, it would haveonly taken a few minutes to examine the code at each location to find theright one. Anyway, here's what the code looks like, and I have adjusted theaddresses in the left column to be the actual runtime locations, to match upwith the self-modifying operands.$394B LDA $80STA $396BLDA $81STA $396CLDA $82STA $396ELDA $83STA $396FLDX $85BEQ $3983$3963 LDA #0$3965 STA $B73CLDY #0$396A LDA $FFFF,Y$396D STA $FFFF,YINYCPY $B73CBNE $396AINC $396CINC $396FCPX #0BEQ $3987DEXBNE $3963$3983 LDA $84BNE $3965$3987 RTSThe next step is to determine the locations where we can get the parametersfor the move. The source address is easy to detect, being the first fourlines that store into the LDA $FFFF,Y instruction. Likewise, the destinationaddress is the next four lines, making the source address found in $80-$81,and the destination in $82-$83. Finding the length takes a bit moreexamination, but winds up at $84-$85.All we have to do now, is replace this subroutine with an 816 code segmentthat uses the block move instruction. This code gets placed at $36A5, andalthough it can be entered with the single line assembler in the debugger,it will get confusing since almost every instruction that you enter will bean 816-specific instruction. The disassembler will not display any of theseproperly, so the display will look like a real mess. The debugger will alsohave problems giving you the proper address to enter the next line of code,since it doesn't know the length of 816 instructions. It will assume allunknown instructions to be one byte, which is sometimes okay, but if youenter a three byte instruction like "MVN 0 0", the debugger will give youthe next line with the address pointing to the first 0 operand. You needto be aware of how long the 816 instructions really are, and move down towhere the next instruction needs to start. I apologize for not providing adebugger that is 816-aware yet, but this *will* be fixed soon. I need itfor my own work, so that ensures it a high priority in the 'to-do' list.For now, entering code segments like this is safer in the main assembler.You can assemble a disk file with an origin of $36A5, then return to thedebugger, re-load TP.COM, and then load your 816 patch on top of it. Ipurposely won't give detailed instructions on how to enter the followingcode segment within the debugger. If you aren't comfortable with what isgoing on, and with what is required to get around it, entering code this wayis probably too error-prone. I will give a nice tip though for those of youthat are going to do it anyway! First fill the target area with all $EA's.In this case, "F 36A5 36E0 EA". This does two things for you. Afterentering an instruction, the next line should display a NOP. If it doesn't,then you are still within the operand of the previous instruction. Thus, itmakes a great visual safety measure. Also, since you will need to move downto a lower address, having all NOPs at one byte per line will ensure that theaddress you need will be displayed. (Even if the address you need appears inthe operand of the current line, there will still be another copy of itfurther down the screen). If you had left the previous code there, you mightneed an address that is in the operand field of an old instruction, requiringyou to enter the address by hand. You also should move down with the cursorkeys, and not the Return key. Okay, with all that out of the way, here isthe 816 code segment.$36A5 STZ $D40E ;Until Atari OS can handle interrupts in native modeSEI ; we need to disable NMIs and IRQsCLCXCE ;Set native mode,REP #$30 ; and 16-bit regs.LDA $84 ;All parameters loaded as 16-bit quantities.BEQ $36B9 ;Catch 0 size conditionDEC ;Adjust size for MVN count being -1LDX $80LDY $82MVN 0 0$36B9 XCE ;Carry was not changed, so this returns where weCLI ; were, including 8-bit regs.LDA #$C0STA $D40E  ;Interrupts are back on.LDY $84 ;These last two lines are a safety measure, justLDX #0 ; to match the closing register and flag values fromTXA ; the previous routine. If you have enough space,RTS ; it's a good idea to do this in case the programmer; relied on these values being there after the call.Most programs that do memory management will need to have two routines, fordoing both incremental and decremental type moves, just as the 816 CPU hastwo block move instructions. Right after the routine we just patched, isanother routine starting at $36E2. The requirements are similar, but withthe added task of needing to compute the ending address for both the sourceand destination memory blocks, which is where the move needs to begin. I'llskip right to the 816 code in this case.$36E2 STZ $D40ESEICLCXCEREP #$30LDA $84BEQ $36FEDEC ;Same so farTAYCLCADC $80 ;Gets to end of source blockTAXTYAPHAADC $82 ;End of destination blockTAYPLAMVP 0 0SEC ;We changed the carry this time.$36FE XCECLILDA #$C0STA $D40ELDY #$FFLDX #0TXARTSThat completes the patches. Now we need to save to new version back to disk.Obviously, you should use a different file name in case something went wrong.If you are using SpartaDOS, it is a simple matter of checking the file sizein the disk directory. The file shows as 17993 bytes long, so you can enterthe save command: (remember the "-", and the relationship between file sizeand end address -1)S -3000 3000+#17992 TP.COMIf you are using a DOS that does not give you the true file sizes, then youneed to find the end of the TP.COM file another way. If you have beenfollowing this example, for now you should just enter the save commandlisted above. The method I will suggest for finding the end of the fileneeds to be done before loading TP.COM, which we are too late for. Whatwe could have done, was fill memory with some known value before loadingthe TP.COM file. Such as "F 3000 8000 11". Then load TP.COM, and searchfor a long string of 11's. If you have picked a number that is not usedin long sequential quantities within the file, then the match address youfind should be the end of the file. Save from 3000 to one byte lower thanwhere the 11's start.That completes this project. Operations like inserting and deleting textwill be twice as fast in this new version. Note however, there will be somescreen flickering caused by when we turned off the interrupts -- includingDLIs -- during the move. When the 816 OS is available, we will not have todisable interrupts, and this patch will be completely clean. At this time,you could go back and put NOPs over the STZ $D40E and SEI instructions.- Sample Code: Sieve of Eratosthenes BenchmarkThis is a slightly improved version of the routine that appeared in"Programming The 65816", by David Eyes and Ron Lichty. The Sieve programcalculates all of the prime numbers between 3 and 16,384. The basicprocedure is to eliminate every multiple of a number N, since that numbercan't be prime while having N as a factor. All even numbers are non-prime,so we can start N at 3, and step up to the mid-point in the table skippingall even numbers. In the following routine, even numbers are effectivelyskipped by using 1/2 the table size, and considering the first table entryto be for the number 3, 5 in the second entry, 7 in the third, and so on.The routine will set the direct page to $3000, so that the entire 8K tablecan be accessed with dp,X addressing and 16-bit index registers.SIZE = 8192 .OR $00 ;This is added to the dp register of $3000,ITER .DS 2 ; putting these 3 variables at $3000-$3005COUNT .DS 2PRIME .DS 2FLAGS = $3008;Note: by setting FLAGS to $3008, we can use the label in absolute; addressing, which is required when we need to index by Y. Using; "68000 - .98I can get the 65816 version down to about 1.2 seconds, but that requiresdoubling the size of the FLAGS table, and stepping Y by twos. The advantagehere, is that each entry is two bytes, and thus you can eliminate theoverhead of needing the set 8-bit memory access for the "STZ FLAGS,X".This creates a table in a different format than the above routine however,so I did not consider it valid as a speed upgrade only. Regardless, the816 gets close to the performance of the 68000, even though the 68000 hasan external 16-bit path to memory, and tons of registers to replace thememory variables needed in the 816 version. For many applications, I thinkthe 816 would even be faster than the 68000 at the same clock speed. Andfor small code size, it blows the 68000 away.- Sample Code: String Matching DecompressionThis next example shows a form of recursive programming. It may be difficultto follow, but since I have yet to see anyone post a useful example ofrecursive programming in any book, I thought I would put this in.The code is a message decompression routine, based on a string matching typeof compression. If the data contains sequences of letters that are repeatedin multiple locations, the compressed data will contain pointers for therepeated strings that identify a length and a location to find the originaloccurrence of the string. When decompressing the data stream, if you findany pointers, then you need to go to the location pointed to, and copy thenumber of bytes indicated by the length portion of the pointer.Usually, these compression methods use pointers that refer back to previousdata in the decompression buffer -- in other words, the data that has alreadybeen decompressed. In my application, all of the individual messages weresmall, and they would not generate significant amounts of repetition withinthemselves to get a good compression ratio. However, there are lots of thesemessages, and so if I could use backward pointers into the source data,instead of the destination, then pointers could refer to string matches inprevious messages, and obtain a much higher compression ratio. The challengewith this approach, is that the previous messages are already compressed.When you try to copy a matched string from a previous occurrence, you mightrun into additional compression pointers. To create an optimum approach, theroutine should follow any additional pointers that come along, into deeperand deeper levels, and also be able to work itself back out of the pointersas the deeper levels get used up. Since I know this is going to be confusing,I need to start with an example to show how this decompression process works.The format I use for compressed pointers, is a $7F 'ID' byte, followed by thelength of the match, followed by the backwards relative distance where thematch was found. (The ID byte can also be $7E, which is used for matchdistances greater than $100 bytes away. That allows the match distance tobe up to $1FF).First, a simple example. Consider the text string:BY THE WAY THE PATHWhen compressing this, the second occurrence of the letters " THE ", includingthe spaces, is repeated, and can be stored as a pointer. Thus, the compresseddata would look like this: .BY "BY THE WAY" $7F 5 8 "PATH"To decompress this data, you would start by copying bytes into the outputbuffer. When you get to $7F, you consider the next byte the length of amatch, and the byte after that to be a backward pointer. Subtracting 8 fromthe location of the $7F, gets you to the space after the word BY. Copyingfive bytes from that location yields " THE ", and from there, you are readyto continue with the rest of the source data "PATH". This recreates theoriginal string.Now we need to do a complex example to show what happens when we run intomore compression pointers during the string copy phase. .BY "BY THE WAY THE PATHWAY THE PARTY"Don't judge my English here. I'm just looking for matching words. Now let'ssee how this string would compress. It will start out identical to theprevious example, until you get to the W in PATHWAY. From there, you canmatch the string "WAY THE PA" -- a nice chunk of 10 bytes. The distancewould be 12 if it were based on the original string, but for this routinewe need to count backwards using our compressed data, which makes it only 10.Here's the final compressed string for the second example, which marks severalpositions below it that will help identify and keep track of where we are atdifferent places in the decompression process. .BY "BY THE WAY" $7F 5 8 "PATH" $7F 10 10 "RTY"^ ^^ ^ ^^ ^ ^4 52 3 67 1 8Let's follow through the decompression of this one. Up to the point wherewe reach the second $7F, everything is the same as the first example, and wewill have "BY THE WAY THE PATH" in our decompression output buffer. We arenow at location #1, and the $7F pointer directs us 10 bytes backwards, to theword WAY at location #2. We can't just copy 10 bytes from there though,because we would wind up with the bytes $7F 5 8 in our output string. Wecopy the first 3 bytes, "WAY", and then find another $7F byte at position #3.We need to copy the bytes that this pointer refers to, and so we subtract 8from there, reaching point #4. We've already copied 3 of the 10 requiredbytes from the original pointer, but what happens if we copy the 7 remainingbytes from this position? That would be the string " THE WA", and that's notthe right data. If we did this, our output would come out, "BY THE WAY THEPATHWAY THE WA", which has the last two letters wrong. The problem is, whenwe went backwards the second time, the length of that string match is only 5.Thus we can only copy five bytes from there -- the locations #4 thru #5 -- andthen we have to return back one level, to after the second string pointer atlocation #6. We have 2 bytes left to copy, to reach the requirement of 10from the original pointer, and that takes us to position #7. The originalpointer is now completed, so we can return to position #8 and copy theremaining bytes. Basically, the $7F match pointer at position #1 refersto the string from #2 thru #7. That string happens to have a substringinside of it from #4 thru #5. If you stop to think about this going intoadditional levels, and at each level we need to keep track of how long thissubstring is, where is the previous return point, how many bytes are left inthe previous substring, and how many bytes are left in the original stringwhere we started, it can quickly add up to a formidable programming challenge.The problem is a lot more manageable if you can realize that no matter howmany levels deep you are, the program's requirements are the same.You are copying text bytes to the output string. You need to know the lengthof the current string to know how many bytes to copy. You need to return tothe previous level when you reach either the end of this string, or the endof the previous string, whichever comes first. (If you're on the top whenyou reach this point, you're done). You can also reach a $7F byte at anytime, at which point you need to save the current string parameters and goone level deeper. Once you do this though, you can just return to the samecode, as in the top of this paragraph.This is the essence of recursive programming -- The ability to execute thesame block of code again and again, but at deeper levels. The 816 processorprovides a good method for doing this, in the form of stack relativeaddressing. If you keep all of the parameters on the stack, going onelevel deeper simply means pushing another set of parameters. The first setwill be preserved, and the routine operates on the new set that is on the topof the stack. Returning back to previous levels is accomplished by pullingthe 'finished' parameters off the top, re-exposing the previous set.With that in mind, I hope you can follow though the completed code example.; This subroutine enters with the address of the compressed; source message in the A and X registers, LO, HI respectively.; It will place the decompressed output string in the buffer MSGBUF.; The end of the source string is marked with the bytes $7E FF;; During the routine, the byte on top of the stack will be the; remaining length of the current level of string lookup. This starts; as $FF, since there is no string lookup in progress at the root level.; The address at two bytes down in the stack, is the pointer where bytes; are being copied to the output buffer. This starts at the source of; the compressed data, but new addresses will get pushed when string; lookups are in progress.MVMSG PHX ;Push the start address of the source... PHA LDX #$FF PHX ;...and the FF 'root' marker INX ;=0 I16CKLEN LDA 1,S ;If there are no more bytes to copy at this level, BEQ RET ; return to the previous level. LDY #0BYTE LDA (2,S),Y ;Get a byte from the source string CMP #$7E  BEQ MC7E CMP #$7F BEQ MC7F ;If 7F or 7E, initiate a new string match process STA MSGBUF,X ;Else, store a byte INX INY LDA 1,S BMI BYTE ;At root level, we can just keep copying TYA  CMP 1,S ;Else, we need to check the string length BNE BYTERET PLA ;When a string lookup is complete, PLA ; return to the previous level PLA BRA CKLEN;MC7E INY LDA (2,S),Y ;Get next byte after $7E DEY INC BEQ ENDMV ;If it is $FF, that marks end of data SECMC7F LDA 1,S BMI ?ROOT STY TEMP ;When string length is not root, subtract the SBC TEMP ; number of bytes already moved, STA 1,S ; and STA the number of remaining bytes?ROOT TYA ADC 2,S ;+1 STA SCNADR ;Put address of the $7E/$7F into SCNADR LDA (2,S),Y AND #1 ;This adds $100 if the byte was $7F. Later on, ADC 3,S ; it will get subtracted STA SCNADR+1 INY LDA SCNADR SBC (2,S),Y ;-1 Subtract the pointer distance... STA SCNADR LDA SCNADR+1 SBC #1 ;...-$100 more. Cancels earlier +$100 if byte was STA SCNADR+1 ; 7F, or puts 7E pointers in the range -$100-$1FF INY LDA (2,S),Y STA TEMP ;Match size TYA SEC ADC 2,S ;Update current string address to the point STA 2,S  ; after the match pointer LDA 3,S ADC #0 STA 3,S LDA 1,S BMI ?OK ;If root level, use full match size SEC SBC TEMP ;Else, we need to check if the bytes we need at the BPL ?OK ; current level is more than the match size. LDA 1,S ;If not, set the new level to go only as far as the STA LINMAP+2 ; number of bytes needed to complete current level LDA #0 ;And current level will be finished when that' Yo atarowskie ludziki ! Niniejszy plik stanowi dramatyczny apel do wszystkich w adajcych asemb- lerem w do dobrym stopniu !!! Jak widzicie (lub wkrtce zauwaycie) aktualny "Czytnik Atascii" to produkt w wieeeeelkim stopniu niezadowalaj!cy! Oto par istotnych lamerstw w nim istniejcych: - potrafi wczyta tekst tylko do ok. 23 kB !!! Jeli napotka d uszy, to po prostu nie pokae go i powrci do "loadera" ! SUX !!! Skoro edytor "PANTHER" ma pojemno ponad 27 kB, to powi!nno by max. wczytywane tyle textu ile jest maxymalna pojemno bufora w "Pantherze" !!! Jeli brakuje miejsca w normalnej pamici, to przecie mona uy jeszcze pamici pod ROM, albo "uszczkn" co z RamDysku !!! - po pewnym czasie podczas cz!ytania pojawi si znany fx pt."Atract mode"! Ekstremalnie utrudnia on czytanie txtu !!! Zadziwiajce jest tu, e nie da si tego shitu wyeliminowa przez wcinicie dowolnego klawisza !!!!!! Jak to moliwe !?! W programch do czytania t!ekstu NIE MOE mie miejsca zmiana kolorw ekranu po pewnym ! A tu toto jest, co wiadczy o stopniu syfiastoci aktualnego Czytnika !!! - kolejna wada: czytnik dzia a tylko pod Bibo-DOS i to wy cznie jako nagrany po nim Autorun.SYS !!!! ء - brak jest moliwoci skoku na koniec albo sam pocztek tekstu, przesuwa- nia tekstu take o ca  stron, itd. - "Czytnik Atascii" uywa xtra playera CMC by Jaskier, co jest OK... Jednak przyda oby si odgrywanie muzyki take! na - po prostu trzeba doda odwo ania do drugiego Pokeya w playerze (obok $d200 - $d210, itd.) By oby xtra, bo czytnik dzia a by i na compie bez stereo (jak teraz) i uywa stereo (mam je w moim compie) Qrna, czy to takie trud!ne ?!?!?!?? A poza tym - moe by tak take uy- wa "mjuziku" spod !?!? - denerwuce jest to, e wczytywane s tylko pliki z rozszerzeniem *.TXT (a co z rwnowanymi plikami *.DOC ?) !?!?!!!!!!!!!! :-( - ... ... (dopiszta se !sami, co was w obecnym czytniku denerwuje!) Kochani !!! Jak sami widzicie, obecny "Czytnik" to mocno niedorobiony program ! Jeli kto z was odway si zrobi lepszy "odgrywacz textw", zas uy na miano prawdziwego bossa (nie myli! z tym z "Orionu" !!) i moe si on nawet do- czeka dobrego browaru na Party (za swoj prac!) ?! Co powinien zawiera taki "czytnik", by o napisane nieco wyej, wic do roboty, cz owieki !!! grtx, B. \ / -M!ATplanetowiec- \----/ / @ @\ _^--^_ /\ /\ /\  ᪠  aki "czytnik", by o napisane nieco wyej, wic do roboty, cz owieki !!! grtx, B. \ / -M Witam ! Jestem GREEN DISK () i przyby em zMatplanety, by przeprowadzi ma ysonda wrd atarowcw z koca XX w.Czego bdzie dotyczy sonda?"Chuj wie" - tak brzmi jedno z Waszychmdrych powiedze (XX w.), dlatego tei jemu teraz oddamy %g os:Drodzy atarowcy ! Sonda to poronionypomys , dlatego postanowi em, e sipobawimy... ale nie w ciupcianie, bow kocu ile mona? Zabawa bdziepolega a na tym, e:-GREEN DISK bdzie w obiegu na scenie a do zdarcia warstwy magnetycznej -z%abawa bdzie anonimowa bo: a) anonimy by y dobre za komuny, a teraz bez wtpienia Wasz zasrany kraj wrci do niej, a to za spraw Kwacha - durnia bez szko y b) doznamy wikszej swobody wypowiedzi c) a co najwaniejsze, jedna osoba %dziki temu moe dosta dysk wiele razy, i to jest pikne! (*?) O co chodzi? Bd po prostu kategorie w ktrych Ty bdziesz mg si wypowiedzie albo zag osowa.Jeszcze par zasad:-jeli kto bdzie mia GOOD IDEA, to moe stworzy jak %kategori, czyli po prostu dopisa j i zag osowa.-obok kategorii, w nawiasie, bdzie podane, na ile osb g osujemy (nie zawsze!)-w niektrych przypadkach, bd do rozdzielenia gwiazdki (punkty) w danej kategorii. Jeli nie bdzie osoby na %ktr chcemy odda punkty to j wpisujemy i obok stawiamy gwiazdk "*"- dla totalnie 'ciemnej masy': oznaczenie, np. "(3G)" informuje, e jedna osoba moe odda maksymalnie 3 gwiazdki na danego delikwenta. Tylko nie przeginajcie, prosz !!!-mo%na g osowa na siebie,ale uczciwie. Zreszt jak kto zamiesza, to tylko si omieszy jak np. Bael/MAC, ktry w jednej z list znalaz si w kategorii najlepszych koderw.-jednej osobie mona przyzna ca y limit punktw-itp. itd.Uwaga. Z GD mog% wyj ca kiem ciekawemotywy, moe kiedy kto opisze wynikiw jakim artykule w magu np. w 09.97r.Ja, Chuj niej podpisany nie bdczu adnych roszcze (a co to znaczy?)ycz DOBREJ ZABAWY ziemianiny, juniewiele czasu Wam zosta o... % Chuj/MATplanetaps.Korzystajc z okazji: MEGA FUCKI dla jebanych pozerw (Pi i Sigma) z programu "Przybysze z Matplanety". Ja wam kurwa dam plagiatorzy, podszywa si pod matplanetowcw! Naleycie do zbioru pustego!psII.Co z%a huj wsikn DREZYNA DISK?psIII. Inny cz on przyw aszczy sobie sam GreenDisk!!! Ale na szczcie w przyrodzie nic nie ginie i to co teraz masz, to jego kopia, zrobiona uprzednio. Teraz po prostu nagrywaj ten Green (1 stron) na swoj%e swap- dyski - bdzie wiksza pewno, e aden p g wek sobie Greena nie przyw aszczy... Oczywicie rozsy aj t stron ile wlezie (przy okazji swappowania...).To by Chuj, a ja tzn.GREEN DISK ()dodam od siebie tylko dwa s owa:SZAN%UJ ZIELE !  * * * K A T E G O R I E---------------------------------------1. RULEZ KODERZY (5 gwiazdek)Konop ****************** ***************Rzg *** *LBS ***** ****%Seban ***** ****Jaskier *** **Krger **** ****Lobo -********---------------------------------------2. RULEZ GRAFICY (5g)Raven **** *****Dracon ********** ******Grass *Blasphemer **** ****%*Foorman * ***Zic *Replay *****TITUS **********---------------------------------------3. RULEZ MUZYCY (5g)Foster *Daxey *** ****** **Samurai **Soused **** *ZBX $virus ******TL * *******X-Gay (X-ray) * *%**** *****Greg *** **Morgoth *Bac ****VLX **---------------------------------------4. RULEZ SWAPPERY (8g!)     Wawrzyn *  Dracon ***Chris **Ku%bek *** (?)Slaves **Jaskier *Phoenix ***Gepard *Zbycho Jabol * *****Kazek *Sir Leo * * *****Yeti * **Vasco * *****Bac **T.Sandor ********---------------------------------------5. RULEZ LAMERZY& (3g)Wawrzyn ***Kubek (K.K.) ********************** *Kamilos **** ***Seban *******Konop ******Paskud *************************** ****************************Fathead *************Marucha (sux!) *********Darth *****&---------------------------------------6. RULEZ MAGI (3 sztuki)   Pentagram ZineOddech Latryny(1-7)(Q) Pentagram Zine!!(Q) Pentagram Zine!!!(Q) Crazy Magazine Mixer Bar&ymag*4 Pentagram ZINE E N E R G Y Z I N E !!!! (CZYTAJ TO, CO NAJLEPSZE!) E N E R G Y Z I N E !!!! E N E R G Y Z I N E !!!! Pentagram Zine Oddech Latryny PENTAGRAM ZINE #1,#2,#3 !!! TELEGAZ&ETA TVP SA ! (yeah! jaku-b) Pentagram Zine SZAMBO (?)---------------------------------------7. NAJWIKSZE ZJEBY WSZECHCZASW (5g)Jetboy ******Paskud ************************** ************************(Q)Rogowska(s&uka od chemii)** ********(Q)Wodecka * *******(Q)Jezus Chrystus *TEN, CO PODA{ W/W OSOB! *****Mojesz *****Hitler ****************Stalin **********Rydzyk z radia maryja *************** & **** (Co wy wyrabiacie ! Ja kocham tego faceta !)maryja zawsze dziewica **********Gumi (ten od bomb ?!) *****Wa sa * ******* ***** *Fathead ******************baba od polaka **SOCZEWA (baba z fi&zy) *****Kwaniewski *********SZANDOR LA VEY **********(  zjeb TOTALNY, przyni a mu si"bIBLIA sATANISTYCZNA")ROMAN KOSTRZEWSKI *****(  z zespo u "Kat", nagra "dzie o" LA VEYA i pieprzy BZDURY)marucha *****Jaskier ***** ***** ****Lob&o ***************Electron ***** ***** *Mixer Rze nik (Miker) ***** ***** * **JZEF OLEKSY *****(  agent OLIN)---------------------------------------8. ULUBIONE DOBRANOCKI ATAROWCW (5g)Pomys owy Dobromir ***** \ / & \/ Pingwin Pik-Pok *   Smerfy *********** ߛDonald Duck **Muminki *(Q)Animki **(Q)PLAYBOY *(Q)Penthause *& ******Straak Sam *Bugs *****TOM & JERRY ***********************WREDNIAK i BA{WAN **********MANGI *****DEXTER'S LABORATORY *---------------------------------------10. RULEZ DEMA (5 sztuk) - o v e r m i n d - JOYRIDE & Cool Emotion Joyride BITTER REALITY ASSKICKER(Q) bitter reality(Q) Joyride(Q) smurfdemo(Q) cool emotion(Q) Back 2 life 6*ASS-KICKER !!!!& joyride Delirium Tremens JoyrideEndless Dream OUT OF TIME Sweet Illusions ANTY-666 Bitter Reality Joyride Drunk Tank Spirit Visi& on >:-> ASSKICKER, ASSKICKER, ASSKICKER ASSKICKER, ASSKICKER Belmondo demo (ha,ha!) =:-)---------------------------------------11.ZWIERZACZKi ATAROWCW (no limit)-ledzik pod ytni-dziewczyny te jebane suczki(Q)-psy do jeba& nia(Q) ^   -kot Kapcior   - -krulik bugs(Q)  = & -pinc panter!(Q)-papug falisty-ryby akfariowe (140 gram)-winie morskie-kotek "Mika"-brat---------------------------------------12. PITEK 13-go -zgwa ci a mnie &wiewirka(Q) - stara zabra a mi zasilacz ߭-zobaczy em gr CONSTELLATION- ="= ="= CENTURION, NEXUS, itp.-zdech mi chomik-bezdomny obciga mi druta(Q)-ODKRY{EM WIRUS BUTTONIC W MOIM& ULUBIO- NYM MODULE Z CMC-zobaczy em pierwszy raz BELMONDO DEMO-us ysza em po raz pierwszy Disco poloi SHAKE! w Polonia 1 z maruch(sux) naczele !!!-dosta em okres-zobaczy em demo CASTLE (YFA)-odkry em Hidden-Part w "S{IT ILYNS"-kumpel &powiedzia mi, e jest w ciy.-stacja wkrci a mi Verbatimk.---------------------------------------13. RULEZ GRY (5g) Kolony *** & Operation Blood * *****  Mission Shark ***MEGABLAST **** ***** ***** *****ONE ON ONE *****Draconus *** **** ***** ******Lasermania *Head& Over Heels * ******SEXmisja (A.D. 2044) ** ****** ** *****Zybex ******Plastron * *****fred ******Black Lamp **********180 ****---------------------------------------14. SPRZT MARZENIA (3 sztuki) 1 MB RAMDisk & HARD DISK TwarDZiEL inside !!! VIDEOINTERFACE 6502-33MHz 65c816 z DOPA{EM 14 Mhz Stereo QUADRO Toms 720 & TOMS 710 (!) Kosiarka do trawy 2 GB twardziela,26 cm penisa(Q)He m virtual reality, aby si do niegospuszcza(Q) dobra ko Twardy dysk TV color HD Toms 720 dru&kara Star LC-20 z MicroPrintem ona Manga Ujrze konania o nyBy przy agonii chrystusa(jebany pozer)Dokupi sobie Dolby PRO-Logic do XL-ki dobra D U P A !!!-------------------&-------------------15. RULEZ TEXTWRAJTERZY (3g)KAC *Katon * ***Malefactor *** *****ZBX Virus ** ** *** ***MacGyver ** ***Jabol * **Krger **kamilos * *Blasph & Frmanitko (sranie na ekra-nie rlz!) ***** *&Dracon *Zenial ***SlaveS **---------------------------------------16. ULUBIONE ZESPO{Y ATAROWCW (3g) I WOKALICI & SAMAEL ** *** Jean Michel Jarre ***** Marek Biliski ****&*(Q)Thunderdoome ** *****(Q)prodigy * *** *** *Czes aw Niemen *KOMBI **BURZUM * *Dune ** *** ***NAUKA O GWNIE **Aerosmith -*Lady Pank *DEPECHE MODE ***Grzegorz Turnau ***Bon Jovi -*NAPIERDALATOR ***&Niu kidz onde blok -*****BATHORY ***Bekstrit Bojs -**********CREMATORY ***TIAMAT *dANIEL -***Anathema *Type o Negative *---------------------------------------17. WIERZY W BOGA (1g) & TAK ********** NIE **** & ---------------------------------------18. SUXX Sprzt (1 sztuka) Piersional Caloryfer(Q) grzyb Amiga A-1200 (MORE AND MORE EXPENSIVE IN USING NEW SOFTWARE)& FALCON C-64 (SIDE BORDERS RULE!) grzyb P.Shit - Pecety od 8086 w gre Ams-trd VIC-20--------------------------------------- ^^^^ 19. Najlepszy brow&x ! (10)  PIAST MAGNAT ********** YWIEC ************ EB ************ PIAST FULL LIGHT ********* LECH ********** *****& ***** ********** ********** ********** Gdaskie ***** Brok ***********--------------------------------------- I TO WSZYSTKO, CHYBA. Tekst najlepiej wpisuj w PANTHERZE, i nagrywaj oczywicie pod t sam nazw!------------&!---------------------------20. GRAFIKI &" &#  ANTY-666 rulez  &$ Niszcz () !!! TP SATANISTW BD` DLA NICH &% BEZ LITOCI... POGRUCHOTAJ IM   WSZYSTKIE KOCI NIECH DEBILE ZROZUMIEJ, E SI WSZYSCY Z nich MIEJ... Z{AP && FRAJERA, PRZYKOP Z GLANA, NIECH SI DOWIE E JEST LAMA !!! &' "Sraj Polaku, sraj, bo TU jest twj kraj,ni&(c ci wicejnie zosta o, wic si moeszzesra MIA{O" insert 100-lec_ \  \ \ &) ߔ   &* NISZCZ NAZIZM I KSENOFOBI ! &+ 頠  &, 蠠  &- &. sru.... &/ Ӡՠؠؠ &0 &1 RULEZ!!!!! RULEZ!!!! &2 Extremalne Hard Core Tekkno rlez ! &3 ٛ &4 (Q) &5 rlz, rlz, rlz, rlz, rlz, rlz----------&6-----------------------------21. ILE POSIADASZ KONTAKTW: (5) (10) (1) (26+5 miejscowych) ( #25 W MIESZKANIU  220V KADY !!) (sam nie wiem)(Q) ($0c) (nie&7 zrozumia em pytania)---------------------------------------22. INFO-prawdobodobnie by em 2.-stawiam w Ornecie browca pomys odawcy anonimusa-wszystkie dziewczyny to pojebane kurwy /(Q) \-tekkno and drags=rlz-czekajta na Pzine #4 !!! Ten&8 numerWas rozpierdoli !-Shoovax rulz da uerld 4ever!!!-I Tack mash rak-ka!- Przeczytane w szalecie pewnego Rejonowego Urzdu Pracy: "Dajcie mi wreszcie prac, bo si wkurwi i rozpierdol ten interes..."- Inny mdry cytat: "No love  no&9 sex, No sex  no children no children  no school no school  NO PROBLEM !!!"- Pamitajcie ATARmeni - oto zupe nie tajne has o otwierajce WAM sekretny sezam pe en skarbw (nowych gier ze SWORD-SOFT'u): has o: misiste pmpony kikaj&: w esa! odzew: najlepsze trackma tylko z SZEDOUS !!!- Chcecie wiedzie wicej o polskiej supergwie dzie ? Piszta na adres: Fan Club Edyty Grniak "Litania" ul. W.Witosa 3/28 88-300 Mogilno&;, POLSKA---------------------------------------23. ZNIENAWIDZENI NAUCZYCIELE-H.Sza kowska,B.Twardowska,S.Szostek T.Janicki, -WODECKA Lekcja... (!!!!) &< Temat: -Rogowska(Q) ------ -Janc(Q)   -Zankowska(zawsze!)+Suchecka(Q) (!!!!) (!!!!)-Piechowicz(kutas!)(Q)&= (!!!!!)-Koza-Soczewa (AUTYSTYCZNE BABSKO Z FIZY) (!!!!!)---------------------------------------24. ULUBIONY POLITYK (2G)-Leszek Bubel ******-Andrzej Lepper **-Andrzej Olechowski *******-Jzef Oleksy **-Lenin ***********************&>-Adolf Hitler ************************************-Stalin *********************-yrinowski *-Janusz Kurwin-Miker *25. Ulubiony osprzt w asny (3G). - CA-2001 *** - Joystick **** - Wibrator *** *** ***(Q)Zdech e cierwo do jebania * - M&?YSZA - przed uacz do portw od joysticka (eby by o wygodniej wk ada...) - dmuchana lalka (bo kaloryfer uwiera) ******26. Ulubiony kolor Atarowcw. (2G) Niebieski * Zielony ******(Q)Czarny * ** ** **(Q)N&@iebiesko-fioletowy * {TY * KRWAWA CZERWIE **** B kit PARYSKI ** ULTRAMARYNA27. Ulubione dyskietki. (1G)  Verbatim datalife ** radioaktywne * NONAME ** 3M ** Basf * 100% error free ***28. Inne zainteresowania Atarowcw.(3G)&A-Ufologia ***-Astronomia **-Parapsychologia **(Q)Nekrofilia **** **-Walenie KONIA (100% ?) ****(Q)Sodomia **-Picie (na umr) *-panie **29. Ulubione czasopisma Atarowcw (2G)-Wiedza i ycie **-Nieznany wiat **-Amiga &B*-Playboy ***-Czytad a *-Pentagram Zine **-NIE **-Wrka *-UFO *-Extasy **30. Muzyka Atarowcw - typ (2G)- Techno&Rave itp *- Rock **- Folk kaszubski **(Q)Tekkno&trans **- Extremalne (min. 10ud./sec.) HC TE-KKNO !!! **- DOOM&C & GOTHIC METAL ****- Instrumentalna ** (elektroniczna)- Fucking Deska w Polu ---***^2 (Pizda w Dole ?)---------------------------------------and now Q:31.D ugo penisa Atarowca   &D ߠ - - - - ܠ0.5m _ __16 cali _ _18 cm. ( Gdzie ta cholerna&E linijka ?!! )32.Jak czsto chodzisz do kocio a-wogle ******e co ??? To do niego trzeba chodzi ?33.Czy s uchasz radia ma-ryja?(2G)TAK ** **NIE ** ** ** ****34.Czy chodzisz na party?(2g)TAK ** ** ** **NIE35.Czy chcia by przer&Fucha CINDY C.?(dowolna ilo gwiazdek nie wikszaod 3)TAK *** *** *** *** *** *** *** * ***NIEJej ma ***WOL SWOJ MAMend of Q---------------------------------------36. Co zostanie 100-lic Polski w XXI wieku ?: (1g) &G WROC{AW *** MOSKVA BERLIN MAPUTO ORNETA ** MIKO{W -* TEHERAN ** BAGDAD ** GDA SK ****** PEKIN * 37. Miejsce na w asne refleksje-chcia bym przepierdoli bIE KOWSK, pani od bioli, eW z II e, sYLWI z ZBX'a klasy, ssiadk z&H 4 pitra i jeszcze jedn ssiadk z obok bramy.(cholera ale jestem niedoruchany!!!)- MYLA{EM, E PUSZCZ PAWIA, GDY ZOBACZY{EM PIJANEGO ʑ NA CP W ORNECIE 1996- ALE I TAK NAJBARDZIEJ REWELACYJNY BY{ HERMES, KTRY OLA{ KOGO CIEP{YM MO&ICZEM... :-> (VLX'a !!! (thnx, Jaku-b,lepiej nie pij w nocy !!!)- "Gdy nie masz dokd i, krzyk zmczy ci, za szyjk mocno chwy i... napij si !!!" (stare, ale skuteczne!)- "Z dziewczyn si ch&Jodzi, w dziewczyn si wchodzi, a kiedy dziewczyna zachodzi, to si odchodzi..." i co, mocne, no nie ?!?! - Mocno wkurwia mnie satanistyczne pozerstwo pewnej grupy komputerowej... Powinni sobie wymalowa np."666" na czole&K, eby kady pozna PSEUDO-POJEBO-SATANIST od razu !!! PRAWDZIWY satanista NIE POZUJE (nie mae prawie wszdzie szstek i odwrconych krzyy, nie pierdoli publicznie o szatanie, itd.) !!!!! - Mi o przemija nad ranem, kiedy budzisz si&L i pytasz: "To ty jeszcze tu, kochanie ?" - Nie ma brzydkich kobiet, tylko wina czasem brak... - OK, Tera gar dow-cipw (ob)scenicznych: #$01) Przychodzi Konop do muzeum, a tam na cianie wisi piknie oprawiony PHONG &Mw 1 ramce !!! #$02) Przychodzi Blasph do lekarza, a tam [panuje] wirus (tzn. $Virus) ! - 'Z{OTA MYL': "Wykszta cenie nie piwo - nie musi by pe ne !!!" A.Kwa$niewski---------------------------------------38. Najlepsze cover'y&N na dyski(2g) ?Vitos ** ** ** ** *Blasphemer **Darth ** ** ** ** ** **Replay ** ** *Titus ** **---------------------------------------39. Najwiksi pozerzy (3g):  Count Grishnackh of Burzum *** &O Fathead *** *** Blasph *** *** *** *** *** Foorman *** *** *** *** *** Lobo *** Darth *** * J. Chytrus ***---------------------------------------40.Najwiksze asuchy (3g): &P ܠ   mIchO RLz! SEBAN *** *** *** *** *** *** ** LEWIS ** * *** *** Wojciec&Qh Mann *** ** *** * ** FatMan ** *** * *** ** LUCIANO PAVAROTTI ** ** * Gumi of APC *** *** ** *** DENNIS RUSSOS *** *** Lobo ** * ** * * SIKOR (ostatnio uty !) *** ** Maskotka *-------------------------------------&R--41. Atarowcy w reklamach: (1g) \ / \/ Seban i Sprite *****  / \ ߛ-------------&S--------------------------42. NAJLEPSZY UYTEK (1G)  Panther **** PROFESSIONAL COPY *** Big ASSEMBLER ** * QA * &T DISK COPY ** WATSON 2 **** MEGA PLAYER Z COBRY *** XL-ART ** FLASH PACK * DJ PACKER *** TOMS COPIER (V2.0) * SUPER PACKER **** AFM ** MPT ** ** GRAPH BY SOUSED ** DOS II+/D *** Energy EDi&Utor *** XE Commander *---------------------------------------43. NAJGORSZY UYTEK (1G) TOMS NAVIGATOR *** *** ** DOS 2.5 *** BUTTONIC (?!) **** Demos MAKER *** DEMO CONSTRUCTON KITT ** GRAPHICS VIEW *** TREJSER **--------------------------&V-------------44. Co ci denerwuje (1g) A) w ludziach: ** *** *pazerno **nieuczciwo ** *** *** *wygld *** ***nieobliczalno *spec. poczucie humoru ** *** *nieumiarkowanie w jedzeniu i piciu *** B) w&W sprzcie: bad sektory ** ** **nag y zanik prdu *****wirusy ** *piractwo komputerowe **programy Sword-Softu ****dema "" *ceny softu i dyskw **ma y biust **nieudolne bika **w sofcie (w "ARDENACH", itd.) *** C) w otoczeni&Xu:napisy na murach ** (kto to wpisa ?)obszczane klatki schodowe ****spotkania z w autobusie/tramwaju ****handel narkotykami **masowe przerzucanie sina komputery Pi-Si *** *widok kopulujcych przed domem *rzdy SLD-PSL ***&Y ** z Kielc *** *(OBECNIE W GDYNI)inflacja ***wszechobecne - ***ozon *---------------------------------------45. Najgorsze gry (SUXX GAMES!): (2G) ? \  &Z /\-Fire Stone ***** -Defensor ****-Sex Quix *****-Nexus ***-Centurion ***-Wyprawy Kupca **-Pi karski Poker **-Major Bronx *-Kasiarz *-Piekie ko **---&[------------------------------------46. Czy podoba Ci si forma i idea tego GreenDisku ??!? (2G)-Tak ******-Nie-chyba NIE WIEM--------------------------------------- UWAGA: jeeli bufor na tekst si skoczy (do tego ju niedaleko!), &\istnieje moliwo utworzenia (save) nowego pliku txt z kolejnymi (chorymi) pytaniami, wnioskami, itd., pt. "MATPLAN 2". Zachcamy do s ownego ekshibicjonizmu,towarzysze !!! ;-)--------------------------------------- ju niedaleko!), $ upust targajcym ich sprzecznociom i bolczkom...---------------------------------------ps. Do cholery, kto to jest Kazek ? Phoenix/C.A.PS.2 S uchaj facet: to towarzysz Wies aw Bu^bulka... !PS.3 Miejmy nadziej ( a nadziejamatk...), e GreenDISK dotrze do wik-szoci wyej wymienionych osb... :-))                    --------------------------------------PS.5 Zdradz Wam Ataroholicy tajemnic!Grafi_ke do Euzebii narysowa Bla-shemer ! Vote for Blasph !---------------------------------------ej wymienionych osb... :-))                    --------------------------------------PS.5 Zdradz Wam Ataroholicy tajemnic!Grafib