@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu  } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 138ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u  Voor wie is de Atari-Basicode interface ? De Interface is bedoeld voor in de Atari laT}den van Basicode programma's. Bandjes met dit soort programma's kunt u bij de NOS kopen, of zelf van de radioprogramma hobbysU}coop opnemen. De interface V1.00 is alleen nog maar te gebruiken door mensen die iets van BASIC-programmeren afweten, of die V}het willen leren. Ook is het vertaalprogramma alleen geschikt voor de Atari 800XL en 130 XE (dus niet voor de 600XL). De SofW}tware van de Basicode interface is public domain. De hardware die de SAG -tegen kostprijs- verkoopt heeft ook een schrijfoptiX}e ingebouwd, de software kan dit nog niet aan. Er komt zeer waarschijnlijk voor deze hardware een programma zodat u normale AY}tari-basic programma's ook kan saven en weer loaden via de Basicode-hardware op uw gewone recorder. Dit zal dan op 1800,2400 Z}of misschien zelfs 3600 baud gaan plaatsvinden. 2400 baud is effectief 8 maal sneller dan de normale Atari 1010 recorder. Dus[} u begrijpt wel dat dat een fantastische tijdwinst oplevert. Het verhaal van Atari-Basicode. De Basicode interface maak\}t het mogelijk om programma's die in het Basicode-formaat op cassette gezet zijn in te lezen in uw Atari-Home computer uit de]} 800 XL,XE of 800/400(48K) serie. De Interface bestaat uit twee delen, een programma-cassette en een hardware interface.De h^}ardware is bijzonder eenvoudig en goedkoop gehouden en de software is mede daardoor zeer gecompliceerd geworden. U als gebrui_}ker zult daar echter weinig van merken. De Basicode Interface is door Decos Computer Extensions Leiden, P.L. Veger ontwikkel`}d. Dit is gebeurd in opdracht van de Stichting Atari Gebruikers Nijmegen, alwaar u ook voor vragen e.d. terecht kunt. Atari a}Nederland heeft voor een deel bijgedragen in de kosten van de ontwikkeling. Het is nog nooit eerder voorgekomen dat een gebrb}uikers groep de ontwikkeling van een Basicode interface tegen betaling heeft uitbesteed. Dit was voor de Atari home-computersc} echter nodig omdat de Atari computers een sterk van de Basicode-standaard afwijkend Basic-dialect gebruiken. Vele hobbyistend} hebben moedige pogingen gewaagd om Basicode op de Atari te implementeren, maar de meeste liepen al vast op de hardware intere}face. Enkele mensen waarvan ik zo al weet dat zij er vele weken op geploeterd hebben zijn b.v. A.Mol en G. Assmann. Daar er f}na 4 jaar nog geen resultaat was, heeft de SAG het initiatief genomen om het door P.L. Veger van Decos C.E. te laten ontwerpeg}n. Deze had achteraf, gezien de complexiteit, spijt de opdracht te hebben aangenomen. Het is Decos op de valreep gelukt om deh} versie 1.00 van de interface op de gebruikersdag te introduceren. De Hardware zal verder nooit meer wijzigingen ondergaan. i}De Software hopelijk wel. Wij doen een beroep op alle hobbyisten om het BASIC- deel van het basicode te onderzoeken op foutenj} en deze zelf te verbeteren en de fouten en/of wijzigingen naar de SAG te sturen. Door de korte ontwikkelings tijd, omvang ek}n onoverzichtelijkheid van het project twijfelen we er niet aan dat er nog fouten in de software zitten. De 'fouten' die ons l}al bekend zijn staan al in deze handleiding beschreven, met hun oplossingen. Globale werking van de interface. De harm}dware interface is een klein kastje dat u tussen de audiorecorder en uw computer plaatst. De 'line-out' van uw audiorecorder n}of deck sluit u aan op de ingang van de interface met behulp van tulpstekkers bij Japanse audio's,of op de koptelefoon uitgano}g van de europese recorders dan moet U wel 'n stekker met aan de ene kant jacket en aan andere kant tulpstekkers.De joystickkp}abel steekt u nu in joystickpoort nummer 1. De versie V1.01 bestaat uit twee delen Deel 1 is de 'B:' handler.Dit is een maq}chinetaal programma wat zich voordoet als device B: voor de computer. U kunt dus door het simpele commando ENTER "B:" een basr}icode programma inladen, daar heeft u het tweede deel eigenlijk helemaal niet voor nodig. U zult dan echter veel ERROR - regs}els krijgen. Daarom kunt u de basicode-programma's beter uit deel 2 laden. Deel 2 is een BASIC-programma dat gelijk het inget}laden Basicode-programma kan vertalen naar Atari-Basic. Dit vertalen is een zeer ingewikkeld proces, en u zult de computer dau}ar zelf een handje mee moeten helpen, want helemaal alleen kan versie 1.01 het nog niet. Hij vertaalt nu zo'n 95% van de statv}ements, de rest moet u zelf doen. Dit komt vaak neer op een regel of 3 tot 10 per programma.Het eerste zijnde de "B:" handlerw}. Laad deze met de START knop ingedrukt. Op het eind van het laadprocess verschijnt er voor dat U READY op het beeld ziet verx}schijnen BOOT ERROR op Uw scherm. Negeer dit, het hoort er bij. Deel twee is met CLOAD te laden en is het eigenlijke vertaalpy}rogramma. De hardware en deel 1 functioneren in onze ogen foutloos. Dus daar kunt u van op aan. Deel 2 functioneert heel bez}hoorlijk, en is goed te gebruiken zoals het nu is. Er staan echter nog wat dingen op ons verlanglijstje om van deel 2 in een {}klap een versie 2.00 te maken. Zie hiervoor het verlanglijstje aan het einde van de handleiding. Het Inladen van de Soft|}ware. Zet allereerst uw computer uit, druk de start toets in en houdt hem ingedrukt, en doe nu de computer weer aan. U ho}}ort dan "biiiieeep".Doe nu het bij de Interface behoorende bandje in de datarecorder(1010). Spoel het terug, zet de recorder ~}op play en druk op RETURN. Deel 1 wordt nu ingeladen, deel 1 is ongeveer 9 blokken groot.Hierna komt u in Ready. De 'B:' han}dler is nu geinstalleerd. Type nu 'CLOAD' (Return), druk weer op RETURN en wacht een paar minuten. Het inladen van Basico}de programma's Type als u de software ingeladen heeft RUN (RETURN), type nu J RETURN. Nu ziet u het vertaal menu. U moet }dit menu vanaf punt 1 tot 4 doorlopen om een volledig vertaald basicode programma in Atari-Basic in uw computer te hebben. Di}t kunt u dan gewoon saven op uw normale cassette-recorder. We kiezen eerst 1, het inladen. U zet nu het basicode bandje wat }u heeft opgenomen of gekregen aan, en als de pieptoon begint drukt u op een toets. Het scherm wordt dan zwart, maar als het p}rogramma ingeladen is komt het weer terug. Als er echter niets gebeurt (dus het scherm komt niet terug, kijk dan onderaan de }handleiding wat voor mogelijke oplossingen hiervoor) Zogauw als het programma terug komt ziet u allemaal ERROR - regels versc}hijnen. Dit hoort en is normaal. Dit zijn de regels die niet begrepen worden door Atari-Basic en vertaald moeten worden. Op e}en gegeven moment geeft uw computer ready. Type nu weer Run RETURN, J RETURN, en kies nu 2. Nu gaat deel 2 aan de gang om de} ERROR - regels te vertalen naar Atari-Basic. Dit duurt even. Hierna worden deze weer geENTERd en dan blijven er misschien ee}n paar ERROR - regels over. Dat hoort niet, deze moet u zelf met de hand verbeteren naar Atari-Basic. Hoe dat moet vindt u in} Appendix B. Als deze regels er ook inzitten dan is het programma compleet op de DIM-statements na. Door nu uit het vertaal }menu 3 te kiezen worden de DIM-statements gegenereerd. Nu kunt u nog 4 uit het vertaalmenu kiezen om het vertaal programma u}it het geheugen te gooien. U kunt nu het Basicode programma runen door RUN RETURN N RETURN te typen.   Fo}uten zoeken in Basicode programma's In ieder geval moeten alle ERROR- regels verbeterd zijn (zie appendix B). De eerste f}out die je in versie 1.00 en 1.01 wel eens krijgt is een ERROR 9 at line....(1000 of meer) Op die regel wordt dan een string} gebruikt die nog niet gedimensioneerd is. List regel 25 even om te kijken of dat zo is. Zo niet, zet hem er dan bij. Dit is }een fout in V1.00 (zie ook verlanglijstje) ----laatste nieuws, de missende string blijkt de laatste entry uit de vartab te z}ijn. Dit moet makkelijk te verbeteren zijn (regel 950 tot 994) Nog zo'n fout is error 9 at line 25 o.i.d. Dit komt dan omd}at er aan het einde van de DIM-regel een komma staat zonder iets erachter. Haal de komma weg en je problemen zullen over zijn}. Verder kan je nog al eens wat error 5's krijgen als er veel met string array's gewerkt wordt. Dit kan komen omdat je in de} Atari-Basicode geen lege elementen van een string array kunt gebruiken. Dus als er bijvoorbeeld in het originele Basic-progr}amma PRINT B$(I) stond, dan is dat in Atari-Basicode,PRINT B$(OOB(I),OOB(I)+OQB(I)-1) geworden. Als B$(I) nu leeg is dan is O}OB(I)0 THEN PRINT B$(OOB(I),OOB(I)+OQB(I)-1) of door:PRINT B$(OOB(I),OOB(I)+OQB(I)-1*(OQB(I)>0)),(werkt dit trouwens??) } Het DATA "hallo" type. Het READen van teksten in quotes geeft grote problemen in Atari Basic. Je kan daar allerlei vreemde} errors door krijgen. Als je nu namelijk READ A$ doet staat daar "hallo" met de quotes dus IN de string. Soms gebruiken ze in} BAsicode wel de loop:1100 READ A$:IF A$<>"." THEN 1100 met als DATA "hallo dit is",".", A$ wordt op het atarietje echter no}oit gelijk aan een punt, echter alleen aan quote punt quote. Dus krijg je een error 6. Oplossing: Haal de quotes uit de data}-regels weg, en verander komma's binnen de quotes in b.v. puntkomma's Verder zullen er nog wel veel meer fouten en oplossi}ngen zijn. Wij hebben ze nog niet gevonden maar u helpt ons allemaal door uw problemen en oplossingen op te sturen naar de SA}G.   Het verbeteren van ERROR - regels. Dit is een zogeheten 'tricky' appendix. U zult allerlei vreemde d}ingen tegenkomen op de error regels. De regels die u moet verbeteren zijn vaak al voor driekwart vertaald en het origineel ku}nt u niet meer bekijken want dat is weg. Er is echter weer een meevaller want de meeste error-regels zijn van de onderstaand}e soorten: IF LEFT% type.B$=LEFT%(A%,X) wordt door deel 2 vertaald als:OO$=A$:OO$=OO$(1,X):B$=OO$ In een IF statement le}verd dit echter onzin op kijk maar:IF LEFT%(A%,X)="J" THEN wordt IF OO$=A$:OO$=OO$(1,X):LP=OO$="J" THEN. veranderen in:OO$=A$}:OO$=OO$(1,X):IF OO$="J" THEN U ziet dat dit heel makkelijk gaat, u hoeft niet de hele regel over te tikken, maar alleen het} woordje IF op de goede plaats te zetten. READ A(I) type Het READen van geindexeerde variabelen kan niet in Atari-Basic. }hier komt dus een error regel van. b.v.READ A(I) wijzigen in:READ OO:A(I)=OO of READ A%(I) wordt vertaald als:READ Wijzigen} in:READ OO$:A$(OOA(I),OOA(I+1)-1)=OO$:OQA(I)=OO$dus een keer 'OO$:' invoegen en een keer '=OO$' invoegen. 25 ERROR - DIM ty}pe dit ziet u ook wel eens. De vertaler haalt dan wonderbaarlijke dingen uit met deze regel. hij ziet er dan wel eens zo uit.} 25 ERROR - DIM OOA(3),OQA(3+1),$(3*OSIZ+OSIZ) hier is de A voor het dollarteken zoek. Alle string array's worden in drieen} gedimensioneerd een OO.. array, een OQ.. array en een .. string. Waarin .. de naam is. Deze moeten alle drie gedimd worden a}nders gaat het niet goed. De OO.. array wordt trouwens, mocht u het willen weten, gebruikt als index voor elk element. en OQ}.. wordt gebruikt om de lengte van elke string in te bewaren. Het NEXT zonder variabele type.Hoewel het in de Basicode speci}ficaties verboden wordt om NEXT zonder variabele erachter te gebruiken, zult u dit toch wel een paar keer tegenkomen. U moet }dan gewoon de variabele opzoeken waar de next op slaat en die erachter zetten. A$=B$+"hallo"+A$ type Strings optellen kan no}g niet in V1.00, het moet wel te doen zijn maar zit er nog niet in.Vertaal dit als volgt:OO$=B$:OO$(LEN(OO$)+1)="hallo":OO$(L}EN(OO$)+1)=A$:A$=OO$ ander voorbeeld:A$=A$+" " wordt:A$(LEN(A$)+1)=" ".Het kan wel eens voorkomen dat de vertaler stopt tijd}ens het vertalen met een error 5 of 9,tik dan goto 445. De regels die hij al vertaald heeft worden dan alvast geENTERd, en a}ls je dan weer RUN J 2 geeft kan hij doorgaan waar hij gebleven was. Het beste is om dit soort regels dan gewoon met de hand }te vertalen. De vertaler zal er op vast blijven lopen. Na de expression to complex error doet de vertaler automatisch al een} goto 445.  Het hele basicode vertaal-programma is Public-Domain, en is dus van ons allemaal. (ja, ook} van U!). U mag het rustig verder geven en verbeteren, sterker nog, we zijn daar zelfs blij mee. Wij weten namelijk dat het }altijd mooier is om iets te geven dan om iets te ontvangen. (is dat waar??) Wat wij nu de donateurs willen vragen, is of hij} de volgende dingetjes aan deel 2 kan verbeteren. 1) Strings optellen moet erin.(niet echt eenvoudig maar het kan) 2) I}F LEFT% moet ook door deel 3 vertaald worden.(dit is een eitje) 3) Maak de stringdimmer sneller (is makkelijk, gebruik een} tabel voor de OFNDs, dan hoeft hij maar 1 keer te zoeken) 4) Zorg voor de read statements. 5) Doe iets tegen die quote}s in de DATA regels. 6) Maak de vertaler recursief oftewel: herschrijf de vertaler in een echte taal C, of nog beter hierv}oor LISP. Nu er eenmaal een deel 2 op tafel ligt is het makkelijk om te zien hoe het allemaal had gemoeten. Het staat natu}urlijk vreemd dat we in deze handleiding zo'n beetje alleen maar de fouten van deel 2 bespreken, want u vraagt zich natuurlij}k af 'als je toch zo goed weet wat er fout is, waarom verbeter je het dan niet?' De meeste fouten waren absoluut niet voorzi}en, zoals de DATA -fout en de READ fout. Die kwamen pas naar voren op het moment dat we een eerste werkende versie van deel 2} hadden. Die versie was al te laat en de tijd om te verbeteren werd te krap. Op een gegeven moment moesten de bandjes naar de} fabriek, en waren we uitgepraat. Het enige waar we nog op kunnen hopen is verbeteringen en tips van gebruikers. Voor de prob}lemen zoals de data en de lege stringsarrayelementen, zijn we zeer geinterresseerd in uw opinie. U hoeft het niet eens te imp}lementeren al zegt u maar: Ik zou die stringarray's eigenlijk zus of zo opgelost hebben. Als u dat niet kunt inbouwen in deel} 3 dan doen wij dat wel als uw ideeen goed zijn. Het wijzigen van Deel 2 Voor de moedige helden die gaan proberen wat} aan deel 2 te wijzigen allereerst een waarschuwing. Deel 2 is een programma waarin alle nadelen van BASIC zeer duidelijk na}ar voren komen. Het had eigenlijk geschreven moeten worden in een recursieve taal, maar dan was het niet te gebruiken geweest} voor cassetterecorder gebruikers. Kort gezegd: Het programma is een puinhoop. Dat kon niet anders want er zijn maar 600 rege}lnummers beschikbaar, en dat hadden er 6000 moeten zijn. Het is volstrekt onoverzichtelijk en een schoolvoorbeeld van de spa}gettistructuur. Een paar clous voor het oncijferen zijn de volgende: De "B:" handler wordt bij vertaalslagen 2,3 en 4 gebrui}kt als RAM-disk. Daar zijn die XIO's voor. De XIO 36 zorgt ervoor dat de handler in zijn buffer de adressen van de error-reg}els zet. De routine op $600 wordt gebruikt om de keywords te herkennen. Op regel 500 (subroutine) komt een regeldeel binnen}, wat dan tot de dubbele punt vertaald wordt. Op 650 staat het variabelen herkennings gedeelte. Een handige truc om de we}rking van het programma te begrijpen zijn 'PRINT OA$' statements op verschillende plaatsen in het programma te zetten. Mo}gelijke problemen. Als bij het inlezen van het nog onvertaalde basicode programma het scherm niet terug komt, is het bela}ngrijk dat U op de volgende punten let: (1) zorg er voor dat er maar een kabel aan de interface verbonden is met de casset}te recorder, dus of de in of de uit kabel, maar niet alletwee tegelijk. (2) Omdat elke recorder een andere geluidsterkte g}eeft en vraagt, zou het kunnen zijn dat U het potmetertje dat binnen in de interface zit even zou moeten verdraaien. U gaat d}an als volgt te werk. Draai de vier schroeven van de interface los en haal het dekseltje er af. Aan een kant van het printpla}atje ziet U, naast een aantal andere componenten de potentiometer zitten. Dit is het grootste ding op de plaat, meestal zwart} met een wit rondje in het midden. In dit witte rondje zit een heel klein gleufje waar U een klein schroevendraaiertje in kan} plaatsen zodat U dit kan ronddraaien. Meestal moet deze ongeveer in het midden staan, voor een enkele recorder echter niet. }Draai nu dit metertje voorzichtig een klein stukje naar links of rechts, en probeer het laden nog eens. Experimenteer er mee }totdat het programma goed laad. Mochten er nog vragen problemen opmerkingen of wat dan ook zijn, schrijf dan even een brie}fje naar: Stichting Atari Gebruikers Postbus 180 4130 EB vianen   BASICODE:niet }voor beginners. Er is nu een versie die 24k ram aan kan om te vertalen b.v. de lichtkrant. Het is nog geen definitieve oplos}sing maar al een hele verbetering. Ga als volgt te werk: 1) typ onderstaande listing in. De code ervoor zijn de TYPO III }codes ZD 10 FOR I=1523 TO 1535:READ B:POKE I,B:NEXT I UC 20 DATA 0,8,243,5,32,7,169,60,141,2,211,24,96 BM 30 FOR I=1824 TO} 1851:READ B:POKE I,B:NEXT I ON 40 DATA 173,254,191,133,10,173,255,191,133,11,169,211 ,141,231,2,169,9,141,232,2,169,32,133,} 12,169,7,133,13 XX 50 POKE 1856,14:POKE 1912,24:POKE 1913,96:POKE 1914,0:POKE 2031,14:POKE 2408,144:POKE 2499,144 MT 60 FO}R I=1867 TO 1885:POKE I,0:NEXT I TI 70 FOR I=21536 TO 21612:READ B:POKE I,B:NEXT I BA 80 X=USR(21536):END JN 90 DATA 104,}162,16,169,3,157,66,3,169,8,157,74, 3,169,128,157,75,3,169,106,157,68,3,169,84 DY 100 DATA 157,69,3,32,86,228,48,40,169,11,1}57,66, 3,169,243,157,68,3,169,5,157,69,3,169,0 CP 110 DATA 157,72,3,169,4,157,73,3,32,86,228,48,10, 169,12,157,66,3,32,86,22}8,48,0,96,67 LZ 120 DATA 58,155 2)SAVE dit naar tape 3)Laad de booter vanaf basicodecassette ('t gedeelte dat met STAR}T geladen word) 4)Na BOOTERROR en READY, laad en RUN het zojuist ingetypte programma. 5)Na de piiiieep tonen en RETURN }schrijft het 'n vernieuwde BOOTER. 6)Laad het vertaalprogramma. 7)Schrijf je het vertaalprogramma weg met LIST"C:" 8) }Laad de vernieuwde BOOTER met START er volgt nu geen BOOTERROR maar alleen READY 9) Laad het basicode of Hobbyscoop programm}a via de interface en audio d.m.v. ENTER"B:" 10) Wanneer het beeld terug komt en stopt het vertaalprogramma met ENTER"C:" in}laden [via data recorder] 11) typ RUN en begin met punt 2, 1 komt dus te vervallen. }nt 2, 1 komt dus te vervallen. 612 4 1 5 0 10 70 2 12 132 Basic reviesie. toets de volgende regel in. FOR X=49139 TO 49145:?CHR$(PEEK(X)):NE }XT X De rev.B geeft dan de text ",7inner" de rev.C geeft dan een rij hartjes. De rev.A uit de oude 800 geeft een rij grap }hics.  } ********************************** ***** ***** ***** ATARI BBS LIST ***** ***** UNITED }STATES ***** ***** ***** ********************************** STATE: TEL. NUMBER: NAME: -}----- ------------ ----- AK 907-338-1462 FROST BYTE AL 205-288-1100 JOE'S AL 205-928-2515 PURPLE} 12 AL 205-979-8093 B.A.C.E. AZ 602-326-1186 ZANDOR AZ 602-745-2837 TEMPLE OF RA AZ 602-79}0-8805 TWILIGHT ZONE AZ 602-839-7925 AGENCY AZ 602-840-9109 COMPUWIZARD AZ 602-956-7143 BLUE MAX } CA 213-212-6414 MADONA MARSH CA 213-271-0224 TIME ZONE CA 213-316-3929 ATARI HEAVEN CA 213}-324-0218 S.W.A.M.P.S. CA 213-371-8130 MOONBASE CA 213-476-2686 ATARI WORLD CA 213-631-7328 PHUNN}Y PHARM CA 213-673-0121 INGLEWOOD CA 408-249-6946 RAT'S NEST CA 408-262-5010 UTILITY CO. CA } 408-298-6930 IBBS CA 408-688-9629 MINES O MORIA CA 408-732-1079 VAN VISION2 CA 408-779-1254 MUS}HROOM CA 408-942-6975 TEAM CA 415-282-6138 GOLDEN GATE CA 415-527-8276 SYNAPSE CA 415-531-}9549 A LA BBS CA 415-552-8924 SKULL & XBONE CA 415-587-8062 A.B.A.C.U.S. CA 415-895-5706 WOLF DEN} CA 619-447-8143 S.D.A.C.E. CA 714-731-6523 A.C.A.O.C. CA 714-772-9671 SOFTWARE CLLR CA 71}4-781-8774 A.F.A.C. CA 805-481-9603 S.L.O. POKES CA 805-498-2508 THOUSEND OAKS CA 805-527-6337 HE}LL CA 818-244-4897 DARK DNGN CA 818-345-3070 HIDE O'WAY CA 818-346-4343 WIZARDRY CA 818-34}7-2271 MERLIN'S CA 818-348-8644 L.A.A.C.E. CA 818-355-4059 ENTERPRISE CA 818-360-0211 PHANTOM'S } CA 818-360-2927 WINCHESTER CA 818-701-7670 SOFTWARE BNK CA 818-780-4097 COMPUT-R-STOR CA 81}8-883-4581 ICE CAVERNS CA 818-887-7738 CEMETARY CA 818-992-7730 WASTED CA 818-996-1871 RBBC THE W}AY CA 818-998-2544 TIME ZONE CA 916-363-3304 A.C.C.E.S.S. CA 916-484-1673 F.C.B.B. CO 303-}278-4244 UFO NET CO 303-758-2927 DENVER CO 303-978-0298 SHANNONS CT 203-253-8823 DIGIT AL CT } 203-634-3248 TOTAL BOARD CT 203-776-9723 NEW HAVEN DC 202-276-8342 WASHINGTON DC 202-364-8617 } ALADDINS LAMP FL 305-257-1922 B.A.J.A. FL 305-456-7089 THE JAIL FL 305-475-9062 ORICAL FL } 305-465-2813 DOOOOM FL 305-557-6984 LODE RUNNER FL 305-869-0226 PEGASUS FL 305-894-2270 RAINBOW } FL 813-676-9207 SKULL'S EYE FL 813-734-7837 ACTION GA 404-234-8240 HAL GA 404-758-8498 3R}D WORLD HI 808-655-0204 P.A.C.E. HI 808-737-9186 ATARITREE HI 808-833-2616 HAWAII DATA HI }808-845-7143 STRICKLY ATAR IA 515-961-8881 MID-AMERICA ID 208-383-9547 B.U.G. ID 208-466-4769 B.E}.B.B.S. ID 208-522-3583 ATARI KINGDOM ID 208-523-7400 I.F.BBS IL 217-235-2000 I.C.T.C. IL }312-448-6472 PHAMIS IL 312-462-9844 S.C.A.T. IL 312-759-6297 SATELITE IL 312-776-8173 ATARI WORLD} IL 312-789-0499 CHICAGO IL 312-892-0417 LOCHLEVEN IL 312-889-1240 C.L.A.U.G. IL 312-925-2}929 WIZ BANG IN 219-262-3980 HART CITY IN 219-277-5565 M.O.M.S. IN 219-980-3285 GAS STATION IN} 812-273-5443 COUNTRY CORN IN 812-379-1162 P.A.C.E. KS 816-363-1663 SAM'S KS 816-796-9622 ST}AR BASE 3 KS 913-262-0058 MISSION KS 913-642-1743 EXPRESSWAY KY 502-247-3286 EARTH COM LA  }504-273-3116 BATON ROUGE MA 617-259-0181 OUTPOST MA 617-266-7789 BOSTON BULLET MA 617-325-9147 R. }A.M. MA 617-332-5896 CASINO MA 617-371-1855 RAM COMP CTR MA 617-444-5401 KINGS CASTLE MA 6 }17-595-0211 NORTH SHORE MA 617-663-4221 NITELITE MA 617-667-7388 MACRO EXCH MD 301-465-3176 MD  } 301-474-7591 RECORD LABLE MD 301-587-2132 COMPUTER AGE MD 301-871-1094 BBSOOSE MD 301-972-444 }4 WAR LORDS MD 301-974-4987 SEVERNA PRK ME 207-774-5570 MAGIC CRISTAL ME 207-839-2337 ATARI ELETE} MI 313-352-8271 SY-DRAFT MI 313-368-4828 PLAY GROUND MI 313-427-1402 CAPT. KIRK MI 313-53}1-1701 ETHERNET MI 313-538-0197 DARTHBOARD MI 313-544-0885 M.A.C.E. MI 313-559-1676 TRADING PLACE} MI 313-662-8303 BARTON DATA MI 313-771-4126 FREEDOM BD MI 313-776-9792 SOFTWRE HAUS MI 31}3-794-4603 COMET MI 313-882-5909 TRADING POST MI 313-978-8087 A.R.C.A.D.E. MI 517-371-4234 C.H.A.}O.S. MI 616-791-2109 G.R.A.S.S. MO 314-355-3403 M.I.C.E. MO 314-391-8451 MANCHESTER MO 314}-647-3290 GATEWAY MO 314-928-0598 A.U.R.A MO 816-796-9622 STAR BASE MS 601-388-3940 COASTEL NC} 704-252-2145 DARK SKULL NC 704-541-3306 S.A.O.C.N.C. NC 919-323-3934 SOLDIER NC 919-867-0644} INMOVATIVE NH 603-749-6968 S.P.A.C.E. NJ 201-254-6449 E.B.B.B.S. NJ 201-536-6585 DOJO NJ } 201-566-8754 GHOSTBUSTERS NJ 201-595-9107 NORAD NJ 201-689-0492 ENTERPRISE NJ 201-962-6602 MID N}IGHT EX NJ 609-423-4865 SWASHBUCKLER NJ 609-451-7475 C.C.B.B.S. NJ 609-652-2654 S.O.B.B.B.S. NJ} 609-751-0387 TEMPLE DOOM NJ 609-751-0569 OUR GANG NV 702-733-9488 S.A.N.C.C. NY 212-241-8965} SPIDER WEB NY 212-357-4112 AT. INN NY 212-366-9720 MASTERS CSTL NY 212-457-3304 GREYHAWK'S NY} 212-464-3434 CRYPT NY 212-727-1380 STAR TREK NY 212-746-3778 TITAN'S TOWR NY 212-803-1363 A}SGARD NY 212-927-6919 DANTE'S INFNO NY 212-951-8373 ATARI LIBRARY NY 315-451-7747 ACE BASE NY } 516-328-1052 HALL O JSTIC NY 516-351-1748 PLANET EROS NY 516-378-6747 MAGIC BBS NY 516-432-937}2 C.I.A. NY 516-467-1387 LAKE BBS NY 516-496-2554 UNITEDNATION NY 516-536-2089 BREAKER BBS NY } 516-569-0187 ADVENTURE GM NY 516-586-9765 S.C.A.M.S. NY 516-626-6990 STARSHIP AT NY 516-671-5}763 DUNGEON NY 516-673-3141 COLLOSSAL CAV NY 516-742-5949 MOUNTAIN NY 516-783-6862 ATARI CIRCUIT  } NY 516-878-8466 CAMELOT NY 516-944-6594 GENERAL STORE NY 516-997-7002 CSTL REVELSTN NY 914!}-245-4034 OH 216-271-9273 C.A.C.E. OH 216-428-5087 PEEK+POKE OH 419-423-0206 FLAGCITY OK 4"}05-348-4811 ALCATRAZ OK 405-681-6929 TEBBTOW1 OK 918-836-4742 SAT EYE ONLY OR 503-245-9405 P.A.C.#}E. OR 503-256-3083 ASASIX OR 503-343-4352 A.C.E. PA 215-398-3937 ALLEMTOWN PA 215-432-5686$} ACTION EAST PA 215-836-5116 CHELTENHAM PA 412-258-8733 BOSS-XL(1030) PA 412-655-2652 PACE PA %} 717-876-4721 N.E.P.A.T.S. RI 401-521-4234 A.A.R.I. SD 605-624-9409 VULGAR UNICRN TN 615-623-0&}706 ACE-BASE TX 214-595-5345 TBBS #2 TX 512-285-4054 HICK CITY TX 512-442-1022 CHANNEL 1 TX '} 512-443-3470 UTILITY BBS TX 512-835-9742 BLACK BOX TX 512-837-2003 ARMADILLO TX 817-532-2981 C(}ENTREX TX 817-589-2588 COMPUTALK I TX 817-595-3195 COMPUTALK II UT 801-261-1356 THE OTHER BBS U)}T 801-479-0777 I.M.A.C.E. UT 801-943-3831 SLC A.C.E. VA 703-620-5309 RED CABOOSE VA 804-898-7*}493 PEN A.C.E. WA 206-574-5438 ACTION BBS WA 206-632-9473 M.B.B.S. WA 206-892-8969 ACTION ANNX +} WA 509-456-8382 FARSIDE WI 414-259-9475 BIG TOP WI 414-355-6031 MIL-ATARI *************,} 414-355-6031 MIL-ATARI *************F*********************************** ***** ***** ***** ATARI BBS LIST ***** ***** .} CANADA ***** ***** ***** *********************************** STATE: TEL. NUMBER: NA/}ME: ------ ------------ ----- AL 403-481-2596 CROSSROADS AL 403-481-6164 BRIAN'S BBS AL 403-481-0}6569 5TH DIMENSION AL 403-487-0154 ELECTRO T'S AL 403-743-4206 ATARI FOREVER AL 403-791-0457 NORT1}H LIGHTS ON 416-731-4797 THE JAIL ON 519-252-0415 WINDSOR ON 519-853-1063 PIT STOP QE 514-2}366-0795 TASK FORCE QE 514-457-5582 ATARI CONNCT QE 514-684-5464 CACHE QE 514-697-1279 KURTZS CMP3}ND QE 514-697-9947 T.O.O.T. #1 QE 514-698-0667 TWILIGHT ZON QE 514-932-9110 TREASURE ISL ****4}********************************** 5}********** FK                   7}                          8}          Voor wie is de Atari-Basicode interface ? De Int9}erface is bedoeld voor in de Atari laden van Basicode programma's. Bandjes met dit soort programma's kunt u bij de NOS kopen,:} of zelf van de radioprogramma hobbyscoop opnemen. De interface V1.00 is alleen nog maar te gebruiken door mensen die iets va;}n BASIC-programmeren afweten, of die het willen leren. Ook is het vertaalprogramma alleen geschikt voor de Atari 800XL en 130<} XE (dus niet voor de 600XL). De Software van de Basicode interface is public domain. De hardware die de SAG -tegen kostprij=}s- verkoopt heeft ook een schrijfoptie ingebouwd, de software kan dit nog niet aan. Er komt zeer waarschijnlijk voor deze har>}dware een programma zodat u normale Atari-basic programma's ook kan saven en weer loaden via de Basicode-hardware op uw gewon?}e recorder. Dit zal dan op 1800,2400 of misschien zelfs 3600 baud gaan plaatsvinden. 2400 baud is effectief 8 maal sneller da@}n de normale Atari 1010 recorder. Dus u begrijpt wel dat dat een fantastische tijdwinst oplevert. Het verhaal van Atari-BaA}sicode. De Basicode interface maakt het mogelijk om programma's die in het Basicode-formaat op cassette gezet zijn in te lB}ezen in uw Atari-Home computer uit de 800 XL,XE of 800/400(48K) serie. De Interface bestaat uit twee delen, een programma-caC}ssette en een hardware interface.De hardware is bijzonder eenvoudig en goedkoop gehouden en de software is mede daardoor zeerD} gecompliceerd geworden. U als gebruiker zult daar echter weinig van merken. De Basicode Interface is door Decos Computer ExE}tensions Leiden, P.L. Veger ontwikkeld. Dit is gebeurd in opdracht van de Stichting Atari Gebruikers Nijmegen, alwaar u ook vF}oor vragen e.d. terecht kunt. Atari Nederland heeft voor een deel bijgedragen in de kosten van de ontwikkeling. Het is nog G}nooit eerder voorgekomen dat een gebruikers groep de ontwikkeling van een Basicode interface tegen betaling heeft uitbesteed.H} Dit was voor de Atari home-computers echter nodig omdat de Atari computers een sterk van de Basicode-standaard afwijkend BasI}ic-dialect gebruiken. Vele hobbyisten hebben moedige pogingen gewaagd om Basicode op de Atari te implementeren, maar de meestJ}e liepen al vast op de hardware interface. Enkele mensen waarvan ik zo al weet dat zij er vele weken op geploeterd hebben zijK}n b.v. A.Mol en G. Assmann. Daar er na 4 jaar nog geen resultaat was, heeft de SAG het initiatief genomen om het door P.L. VL}eger van Decos C.E. te laten ontwerpen. Deze had achteraf, gezien de complexiteit, spijt de opdracht te hebben aangenomen. HeM}t is Decos op de valreep gelukt om de versie 1.00 van de interface op de gebruikersdag te introduceren. De Hardware zal verdN}er nooit meer wijzigingen ondergaan. De Software hopelijk wel. Wij doen een beroep op alle hobbyisten om het BASIC- deel van O}het basicode te onderzoeken op fouten en deze zelf te verbeteren en de fouten en/of wijzigingen naar de SAG te sturen. Door P}de korte ontwikkelings tijd, omvang en onoverzichtelijkheid van het project twijfelen we er niet aan dat er nog fouten in de Q}software zitten. De 'fouten' die ons al bekend zijn staan al in deze handleiding beschreven, met hun oplossingen. GlobaleR} werking van de interface. De hardware interface is een klein kastje dat u tussen de audiorecorder en uw computer plaatstS}. De 'line-out' van uw audiorecorder of deck sluit u aan op de ingang van de interface met behulp van tulpstekkers bij JapansT}e audio's,of op de koptelefoon uitgang van de europese recorders dan moet U wel 'n stekker met aan de ene kant jacket en aan U}andere kant tulpstekkers.De joystickkabel steekt u nu in joystickpoort nummer 1. De versie V1.01 bestaat uit twee delen DeV}el 1 is de 'B:' handler.Dit is een machinetaal programma wat zich voordoet als device B: voor de computer. U kunt dus door heW}t simpele commando ENTER "B:" een basicode programma inladen, daar heeft u het tweede deel eigenlijk helemaal niet voor nodigX}. U zult dan echter veel ERROR - regels krijgen. Daarom kunt u de basicode-programma's beter uit deel 2 laden. Deel 2 is eeY}n BASIC-programma dat gelijk het ingeladen Basicode-programma kan vertalen naar Atari-Basic. Dit vertalen is een zeer ingewikZ}keld proces, en u zult de computer daar zelf een handje mee moeten helpen, want helemaal alleen kan versie 1.01 het nog niet.[} Hij vertaalt nu zo'n 95% van de statements, de rest moet u zelf doen. Dit komt vaak neer op een regel of 3 tot 10 per progra\}mma.Het eerste zijnde de "B:" handler. Laad deze met de START knop ingedrukt. Op het eind van het laadprocess verschijnt er v]}oor dat U READY op het beeld ziet verschijnen BOOT ERROR op Uw scherm. Negeer dit, het hoort er bij. Deel twee is met CLOAD t^}e laden en is het eigenlijke vertaalprogramma. De hardware en deel 1 functioneren in onze ogen foutloos. Dus daar kunt u va_}n op aan. Deel 2 functioneert heel behoorlijk, en is goed te gebruiken zoals het nu is. Er staan echter nog wat dingen op ons`} verlanglijstje om van deel 2 in een klap een versie 2.00 te maken. Zie hiervoor het verlanglijstje aan het einde van de handa}leiding. Het Inladen van de Software. Zet allereerst uw computer uit, druk de start toets in en houdt hem ingedrukt,b} en doe nu de computer weer aan. U hoort dan "biiiieeep".Doe nu het bij de Interface behoorende bandje in de datarecorder(101c}0). Spoel het terug, zet de recorder op play en druk op RETURN. Deel 1 wordt nu ingeladen, deel 1 is ongeveer 9 blokken grood}t.Hierna komt u in Ready. De 'B:' handler is nu geinstalleerd. Type nu 'CLOAD' (Return), druk weer op RETURN en wacht een paae}r minuten. Het inladen van Basicode programma's Type als u de software ingeladen heeft RUN (RETURN), type nu J RETURNf}. Nu ziet u het vertaal menu. U moet dit menu vanaf punt 1 tot 4 doorlopen om een volledig vertaald basicode programma in Atag}ri-Basic in uw computer te hebben. Dit kunt u dan gewoon saven op uw normale cassette-recorder. We kiezen eerst 1, het inladq}B%DOS SYSB*)DUP SYSBSBASICODEDOCBBASICREVDOCBCBBS LISB -BBSLIS CANBC6BCODE1 DOCBHITCHHIKDOCB MEGAINFOASCBNETINFO1DOCB&PCXFRM TXTB3SOURCES TXTB/ SPEEDSCRDOCB4<TBASIC DOCBGpTURBOBASDOC9XF551MODDOCen. U zet nu het basicode bandje wat u heeft opgenomen of gekregen aan, en als de pieptoon begint drukt u op een toets. Het sr}cherm wordt dan zwart, maar als het programma ingeladen is komt het weer terug. Als er echter niets gebeurt (dus het scherm ks}omt niet terug, kijk dan onderaan de handleiding wat voor mogelijke oplossingen hiervoor) Zogauw als het programma terug komtt} ziet u allemaal ERROR - regels verschijnen. Dit hoort en is normaal. Dit zijn de regels die niet begrepen worden door Atari-u}Basic en vertaald moeten worden. Op een gegeven moment geeft uw computer ready. Type nu weer Run RETURN, J RETURN, en kies nuv} 2. Nu gaat deel 2 aan de gang om de ERROR - regels te vertalen naar Atari-Basic. Dit duurt even. Hierna worden deze weer gew}ENTERd en dan blijven er misschien een paar ERROR - regels over. Dat hoort niet, deze moet u zelf met de hand verbeteren naarx} Atari-Basic. Hoe dat moet vindt u in Appendix B. Als deze regels er ook inzitten dan is het programma compleet op de DIM-sty}atements na. Door nu uit het vertaal menu 3 te kiezen worden de DIM-statements gegenereerd. Nu kunt u nog 4 uit het vertaalmz}enu kiezen om het vertaal programma uit het geheugen te gooien. U kunt nu het Basicode programma runen door RUN RETURN N RET{}URN te typen.   Fouten zoeken in Basicode programma's In ieder geval moeten alle ERROR- regels verbeter|}d zijn (zie appendix B). De eerste fout die je in versie 1.00 en 1.01 wel eens krijgt is een ERROR 9 at line....(1000 of mee}}r) Op die regel wordt dan een string gebruikt die nog niet gedimensioneerd is. List regel 25 even om te kijken of dat zo is.~} Zo niet, zet hem er dan bij. Dit is een fout in V1.00 (zie ook verlanglijstje) ----laatste nieuws, de missende string blijk}t de laatste entry uit de vartab te zijn. Dit moet makkelijk te verbeteren zijn (regel 950 tot 994) Nog zo'n fout is error} 9 at line 25 o.i.d. Dit komt dan omdat er aan het einde van de DIM-regel een komma staat zonder iets erachter. Haal de komma} weg en je problemen zullen over zijn. Verder kan je nog al eens wat gel een komma staat zonder iets erachter. Haal de kommaFHints For Hitchhikers Guide to the Galaxy => Uploaded by Marc Sandelowsky <= WARNING!!! Don't read this if y}ou don't want to spoil the adventure ! After getting up,get screwdriver and toothbrush. Go south. Get the mail,you'll nee}d it later! Go south again and lie in front of the bulldozer in the mud.Lie down and wait until Mr.Prosser takes your place.(}Ignore Ford,when he offers you the towel.) Now go to the bar and type :"Buy Cheese Sandwich." Then drink the beer Ford bou}ght,until you hear your house being knocked down. Go East.There will be a dog yapping. GIVE SANDWICH TO DOG. Important fo}r later.Go North to the house. When Ford drops the device at your feet, get it. Then push green. Wait until it doesn't say yo}u can't smell. SMELL, touch shadow, eat peanuts,remove gown.Hang gown on the hook.Get towel.Cover drain with towel,cover }panel with satchel,put junk mail on the satchel. Push button. Get gown and towel. Wear gown. Turn switch and read the screen.} It will be the first or second word from the 2ND verse of Prostetnic's favorite poetry. (When he reads it). Ok,wait unti}l you are strapped in and he starts reading the poetry. Type :"ENJOY POETRY." After a bit more from the first verse he'll sta}rt the second verse. Write the appropriate word (first or second) down. When you get brought to the hold, TYPE "FRIPPING"} or TYPE "LYSHUS" depending which word is asked for. If it blows up,then try again. The case should open. Get the plotter } Wait until you'r in the Heart Of Gold .Then, go South .You will be brought to the bridge. Go Down and West. Touch pad,get} substitute. East . South. Then kep going South until you are in the engine room. It will try to talk you out of it. W}hen you get in, LOOK, until it lets you see the inside. Drop plotter, substitute (it won't spill ).Put the dangling bit in te}a . PUT SMALL PLUG IN RECEPIACLE (on plotter). Turn switch. If this doesn't work, leave a message. NOTE: Don't refer to th}e tea as TEA, Call it Substitute. Final Note: READ THE BOOK !!!!!! doesn't work, leave a message. NOTE: Don't refer to} the tea as TEA, Call it Substitute. Final Note:AD THE BOOK !!!!!! doesn't work, leave a message. NOTE: Don't refer to3MEGA MAGAZINE-------------The disk magazine for mind blowing ATARI 8-bit users!Hello ATARI 8-bit freaks!Yes, another dis!}k magazine for the ATARI 8-bit is going to be released. It would be a worldwide magazine written in English.The magazine sh!}ould contain:- Source code (ATMAS II, MAC/65 etc)- Reviews of games and demos- Info about hardware- Demos- Utilities- N!}onsense and (rude) jokesNOTHING WILL BE CENSURED!!There's no release date for the first issue or for the following issues.!} They will just be released when they're finished! If it's good enough, it could be sold by POKEY (Holland) or even PAGE 6 (E!}ngland).So, if you like to write something about how to abuse a commodore user or why rap music is crap or whatever, just w!}rite! Anything is possible on this magazine as long as it is stupid, funny or just informative.We also need much source code!} of demos and other stuff.If you think you can help with this totally crazy magazine, you should write to:Mega MagazineP.!}O. Box 1648800 AD Franeker(Frl.) HollandPhone: 05170 - 2267(ask for Frankenstein!)Text files should be send on disk a!}s ASCII (ATASCII) file. Don't worry, you'll get your disk back! - Greetinx from Frankenstein -GGGGGGGGGGGGGGGGGGGGGGGGGGG!}GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGworry, you'll get your disk back! - Greetinx from Frankenstein -GGGGGGGGGGGGGGGGGGGGGGGGGGG  From mcvax!seismo!lll-crg!nike!ucbcad!ucbvax!decwrl!kaoa01.dec.com!curzon Thu Oct 9 15:32:19 gmt 1986 Further%} to John Sangsters comment on appending binary files, to get them to all run in succession: Joe who posed the questi%}on is an old Atari hand, but for others who (like myself) only "know enough to be dangerous", here's some stuff on appending%} executable files that I took a long time to find. Appending files is a good trick to chain programs together, and i%}t's easy but for one little pitfall. A program may load and run just fine on its own, but fail to run after you append som%}ething to the back of it. That's USUALLY because there are two ways DOS will pass control to your program after you %}load it. First, after it loads any program SEGMENT, it checks location $2E2/$2E3 (DOS init vector). If that location has b%}een changed during that last segment load, it jumps (JSR) to the address placed there (low byte, high byte as usual). When%} and if it returns (RTS) from that code, it continues to load the next segment of the file, and checks for a change to the %}init vector again. Then, when end of the whole file is reached (end of all the appended segments) it checks init as above, %}returns, and then it checks $2E0/$2E1 (DOS run vector). It will JSR to the RUN vector, if changed. The point is if y%}our program is entered by the RUN vector, it can only start up if it's the LAST segment loaded. For example: xm301 handler %}file HANDLER.OBJ that Atari distributed, is no good if you simply append subsequent files to it. It has a RUN vector segme%}nt at the end of the OBJ file, which will then be ignored. To append a terminal program, or BBS program to it you ha%}ve to change the final segment (at the end of the file) from: $E0 $02 $E1 $02 [addr-lo] [addr-hi] to: $E2 %}$02 $E3 $02 [addr-lo] [addr-hi] ... which will install [addr] in the INIT location, where it gets acted on. %} I think most programs will by default use a RUN vector not the INIT. (including Basic compilers, Action). Of course, i%}f a program includes both a DOS init segment, and a DOS run segment, you will have to get fancier. Joe pointed out t%}o me too, that using OSS DOS (and I think SpartaDOS) you can use a batch file to chain programs, rather than appending them.%} That may be a lot easier... Hope this is useful to somebody out there: I thought it was going to be a 5 lines long %}but....  easier... Hope this is useful to somebody out there: I thought it was going to be a 5 lines long $ Turn your 486 PC into the world's fastest Atari 8-bit computer and your notebook PC into the world's smallest Atari 8-bit )}computer! Introducing... PC XFORMER - The Atari 8-Bit Emulator For DOS Compatible PCs =================================)}=========================== April 5, 1994. For additional information contact: Branch Always Software 14150 N.E. 20)}th Street Suite 302 Bellevue, WA 98007 U.S.A Phone: 206-369-5513 Fax: 206-885-5893 CIS: 73657,2714 GEnie: BRASOF)}T Program by: Darek Mihocka. Availability: June 20, 1994, from Atari 8-bit and PC dealers. Retail price: $39.95 U.S. ($2)}9.95 when ordered before June 30, 1994) Branch Always Software announces the upcoming release of PC Xformer, a DOS compat)}ible version of the Xformer series of Atari 8-bit emulators. With our 8 years of experience developing Atari 8-bit and Atari)} ST emulators, this emulator is by far the fastest and most compatible Atari 8-bit emulator available on any computer platf)}orm. For the first time it is now possible to run Atari 8-bit software on the same computers that you run DOS and Windows)} software on, as fast or even faster than a real 8-bit computer. Imagine the ease of use and simplicity of using Atari Basi)}c on a PC or even on a small notebook computer than you carry with you. Hardware requirements are simple: a PC running MS)}-DOS (or a compatible operating system), 640K of RAM, a VGA card, and a 286 compatible CPU. This includes computers using t)}he 386, 486, and Pentium chips, as well as 286 emulators running on non-Intel based PCs. A CPU at least as fast as a 33 Mhz)} 386 is recommended for full speed emulation. Optional hardware not absolutely required (but recommended) includes: a Sou)}nd Blaster compatible sound card, a game card with 2 joysticks, and a hard disk. A SuperVGA card is not required to run PC X)}former. PC Xformer is a brand new DOS version of ST Xformer, the popular Atari 8-bit emulator for the Atari ST that first)} appeared in 1987 in ST LOG magazine and most recently came bundled with the Gemulator Atari ST Emulator for DOS. Unlike)} ST Xformer, which was limited in speed and graphics capabilities imposed by the Atari ST hardware, PC Xformer has no such l)}imitations when used on a fast enough PC. Player Missile Graphics are now fully supported, as are all GTIA graphics modes a)}nd Display List interrupts. Vertical Blank and Display List interrupts occur in real time allowing for on-the-fly color cha)}nges (and other animation tricks that were not previously supported in ST Xformer) allowing PC Xformer to run any Atari 8-b)}it software that you transfer to your PC. To allow the usable playing of games which use timing loops instead of interrup)}ts, an option in PC Xformer allows you to force it to "slow down" to normal speed. Or let it rip at maximum speed to get the)} most performance out of your Atari Basic programs. As with ST Xformer, the bank switched memory of the XL/XE is emulated)}, and Atari Basic can be toggled on and off. All popular 8-bit DOSes are supported, including DOS 2.0, DOS 2.5, MyDOS, a)}nd disk based versions of SpartaDOS. Disk files are handled by using virtual disks, the same method used by ST Xformer, G)}emulator, and most other emulators. Up to 8 virtual disks can be used at once, as drives D1: thru D8:. Users of ST Xforme)}r can directly use their existing virtual disk files (.XFD, .XHD, .SD, or .DD files) with PC Xformer without modification. )} Users of the SIO2PC cable can also directly use their "ramdisk" files with PC Xformer without modification. Any size virtu)}al disk is supported, from the standard 90K single density disk to a 16 megabyte hard disk. Two PC style joysticks are su)}pported using the game i/o card found in most PCs. Self-centering joysticks are recommended over standard analog joysticks. )} Users wishing to receive more information about PC Xformer or to place an advance order should contact Darek Mihocka at)} Branch Always Software at the address or numbers listed above. User group and dealer inquiries welcome. Also avai)}lable from Branch Always Software: Gemulator 3.02 - The Atari ST Emulator For DOS Compatible PCs. Turns a 486 based PC in)}to an Atari ST clone with up to 8 megabytes of RAM and up to 800x600 color SuperVGA graphics. Compatible with most non-MIDI )} Atari ST software and all version of ST TOS up to TOS 2.06. Gemulator can be purchased from Toad, Rising Star, Purple Mou)}ntain, Paragon, ST Club, Ordosoft, ACN, and other major Atari ST dealers. Write for more information or contact your dealer)}. in, Paragon, ST Club, Ordosoft, ACN, and other major Atari ST dealers. Write for more information or contact your dealer(Once again, here's my listing ofmail order sources still supportingthe Atari 8-bits. There have been acouple of deletions -}since the lastupdate, and a few additions andaddress changes (noted with a *).List updated 6/13/92Software Infinity64-}2 East Waring AvenueState College, PA 16801 Notes:Good PD selection. Also now marketing commercial European imports.-}B&C ComputerVisions2730 Scott BoulevardSanta Clara, CA 95050(408) 968-9960 Notes:Huge selection of software and hardwa-}re items. Also some new commercial games, unavailable elsewhere.Page 6P.O. Box 54Stafford ST16 1DR Good European co-}mmercial & PD selection of software. Also are the publishers of New Atari User magazine...see below.Micro Discount26-}5 Chester RoadStreetly, West Midlands B74 3EAEngland 8-bit commercial close-outs.TelegamesBox 901Lancaster, TX 75146-} 8-bit, 2600, 5200, 7800, ColecoVisionGralin International11 Shillito RoadParkstone, Poole, Dorset BH12 2BNEngland Fa-}irly good selection of commercial 8-bit software/hardware.Steve Hoffee/K.O. Software333 Peninsula DriveLake Almanor, CA-} 96137 Markets a selection of imported commercial & PD software.Tampa Computer Orphans (*)3519 Del Lago Circle #182Ta-}mpa, FL 33614Sagamore Software2104 Arapahoe Dr.Lafayette, IN 47905 Good PD/shareware selection with extensive documen-}tation.Change In Heat12 Bella Vista PlaceIowa City, Iowa 52245 Independent programmer has produced 2 excellent commer-}cial quality games for the 8-bit.Bresnik Software555 Ware StreetMansfield, MA 02048 Another independent, producing go-}od educational software.UltraBasic10 East 10th StreetBloomsburg, PA 17815 8-bit speciality software.NERDS Software-}18 Wendy DriveFarmingville, NY 11738 Printshop related.IB Computers9244 S.W. Beaverton-Hills HwyValley Plaza Shopping -}CenterBeaverton, Oregon 97005(503)297-8425BellComPO Box 1043Peterborough, Ontario, Canada K9J7A5 The largest PD/share-}ware selection.CompsultPO Box 5160San Luis Obispo, CA 93403-5160 Closeout items galore.No Frills Software800 East 23-}rd StreetKearney, NE 68847 Closeouts & Printshop graphics.Miles Better Software219/221 Cannock Road, ChadsmoorCannock,-} Staffordshire WS11 2DDEngland Excellent mail-order source for the Atari. They have many games which were never releas-}ed in the USElectronic Clinic4916 Del Ray Ave.Bethesda, MD 20814 Refurbished equipment.Mars Merchandising1041-B East-} Charles RoadLombard, IL 60148-2059 Close-out software.Kake Software9 Smith Ct.Vincentown, NJ 08088 Assorted theme d-}isks.Bacmun Software1671 East 16th Street, Suite 629Brooklyn, NY 11229 PD theme disks.Amethyst Software (*)211 South-} KansasDanville, IL 61832 8-bit PD, and closeouts.American Technavision15338 Inverness StreetSan Leandro, CA 94579(41-}5)352-3787 Large selection of commercial software at excellent prices; also hardware replacement parts.Best Electroni-}cs2021 The Alameda, Suite 290San Jose, CA 95126(408) 243-6950 Known as *the* Atari hardware store. If they don't have -}the part you need, nobody does.BRE Software352 West Bedford Ave, Suite 104Fresno, CA 93711 PD/Shareware.C&T Compute-}rActivePO Box 893Clinton, OK 73601Discount Video & Computers (*)1717 South U.S. 1Fort Pierce, FL 34950Starbase Atari -}Computers2369 Austin HighwaySan Antonio, TX 78218(512) 590-7122Palette Imaging1 Closter Commons STE 789Closter, NJ 076-}24-0400(201) 767-3913 Offers new 1991 professional quality ChromaCad modeling package.MWPDS890 North Huntington St.-}Medina OH 44256Phantoms Atari 8-bitBox 331 Levisa RoadMouthCard, KY 41548Vulcan SoftwarePO Box 692Manassas VA 22111--}0692B. Utschig208 SW 319th Lane, #G-304Federal Way, WA 98023 Discount 8-bit PD and other softwareCSSPO Box 17660Roc-}hester NY 14617(716)586-5545 8-bit hardware upgrades, 8-bit repair service.San Jose Computers (*)1278 Alma CourtSan -}Jose, CA 95112(408)995-5080 New and reconditioned hardware, as well as lots of software.Entertainment Excellence1805 -}Princeton PlaceMerrick, NY 11566 Discontinued 8-bit software.East Hartford Computer202 Robert StreetEast Hartford, CT -}06108 Discontinued software for all computers.Aerion SoftwarePO Box 1222Riverdale Station, NY, NY 10471-1222 Market-}s a new 8-bit commercial game.Toad Computers556 Baltimore Annapolis BlvdSeverna Park, Maryland 21146(301)544-6943 Of-}fers a selection of software and reconditioned hardware.Novatari XL/XE PD LibraryC/O Geoffrey Dimego8612 Thames Street-}Springfield, VA 22151TEAC (The Educators Atari Club)PO Box 1024Laytonville, CA 95454Dean Garraghty (*)62 Thomson Ave..}Balby, Doncaster DN4 0NUEngland DigiStudio digitized music player, and PD library.AEL 8-Bit PD LibraryC/O Bill MarcumP.}O Box 34183Louisville, KY 40232When writing to request catalogs,it's always a good idea to includea Stamped, Self-Addres.}sed Envelope.-----------------------------Next, is a list of magazines stillsupporting the 8-bit Atari.Current Notes1.}22 North Johnson RoadSterling, VA 22170 A truly excellent Atari-oriented magazine, supporting both 8-bit and ST.Atar.}iUser113 West College StreetCovina, CA 91723 Year old Atari publication covering the full line of Atari products.Atar.}i Interface Magazine3487 Braeburn CircleAnn Arbor, MI 48108 8-bit and ST support, with good listing of national user gr.}oups, and monthly disk available.Page 6 / New Atari UserP.O. Box 54Stafford, ST16 1DREngland Glossy British magazine.} supporting mainly the 8-bits, along with a few ST articles. Excellent.Atari Explorer29-05 BroadwayAstoria, NY 11106.} Mostly ST, occasional 8-bit articlePSANP.O. Box 110576Tacoma, WA 98411-0576 Good Atari newsletter.8:16248 Wimborne. } RoadOakdale, Poole, Dorset BH15 3EFEngland 8-bit/ST newsletter from England.------------------------------------Note :. } If you have any updates tothis list, please contact:Ray Wilmott10 South Rhoda StreetMonroe, NJ 08884(GEnie : R.WILMOTT). }(InterNet : wilmott@remus.rutgers.edu). }emus.rutgers.edu),  FF                    2}                          2}        Nederlandse Commando's voor Speedscript Vraag naar overblijvende geheugenruimte (Un2}used): Ctrl-U Gebruik Toetsenbord Ctrl-+/Crtl-* resp.cursor een plaats naar links/rechts Ctrl-min/Ctrl-= resp.cursor een Z2}IN terug/verder (tot PUNT) Shift-+/Shift-* resp. cursor naar begin vorige/volgende woord Shift-min/Shift= resp. cursor een 2}PARAGRAAF terug/verder (tot RETURN-teken) START:eenmaal naar begin scherm;tweemaal naar begin document Ctrl-Z naar einde do2}cument Esc voor Control om eigenlijke betekenis commando of cursor-toets te krijgen CORRECTIES Ctrl-Insert voor een extr2}a ruimte Ctrl-I start INVOEG-MODUS:alle ingetypte tekst wordt ingevoegd zonder over oude tekst heen te schrijven tot opnieuw2} Ctrl-I Invoeg-modus uitzet;tijdens werk in invoeg-modus is commandoregel BLAUW TAB voor vijf extra-ruimtes SHIFT-INSERT vo2}or 255 extra-ruimtes SHIFT-DELETE BACK SPACE vult vrije ruimtetussen einde tekst in deel van 255 vrije ruimtes en rest teks2}t op WISSEN TEKST DELETE/BACK SPACE verwijdert voorafgaand teken Ctrl-DEL/BACK SPACE wist teken onder cursor Ctrl-D wis2}t resp.woord(W),paragraaf(P) of zin(S) VOOR de cursor Ctrl-E wist resp. woord,paragraaf of zin ACHTER de cursor N.B.DOOR HER2}HAALD INDRUKKEN VAN DE W.,P.,OF S.KUNNEN MEER WOORDEN, PARAGRAFEN OF ZINNEN GEWIST WORDEN;RETURN verlaat de Wismodus Ti2}jdens Wis-modus is controleregel ROOD). WISSEN TEKST ONGEDAAN MAKEN Ctrl-R maakt laatste wissen ongedaan (kan ook gebruikt 2}worden om stukken tekst te verplaatsen :woord/paragraaf/zinmet Ctrl-D of E wissen,cursor op gewenste plaats zetten en met Ct2}rl-R tekst weer terughalen Ctrl-K maakt de buffer voor Ctrl-R leeg OPTION/SHIFT/CLEAR wist hele document OPZOEKEN EN VER2}VANGEN OPTION-Ctrl-F start zoek-proces:type het op te zoeken woord.OPTION-Ctrl-C geeft de vervangende tekst aan.RETURN maakt2} ongedaan.Ctrl-F zoektvolgende plaats vanaf cursor-positie (2*START om cursor aanbegin document te zetten),Ctrl-C verandert2} in gewenste vorm. Ctrl-G zoekt en vervangt automatisch door de hele tekst vanaf de cursor-positie N.B.Speedscript maakt ve2 }rschil tussen kleine en grote letters. OPSLAAN Ctrl-S slaat op met D: of C: gevolgd door geldige file-naam. LADEN Ctr2!}l-L laadt met D:/C: gevolgd door file-naam. MENU Ctrl-M geeft mini-DOS met inhoudsopgave disk;Ctrl-D wist file, R voor Re2"}name, L voor Lock, U voor Unlock, F voor Formatteren, Ctrl-L voor Laden file OVERIGE Ctrl-X verwisselt teken onder cursor2#} met volgende teken Ctrl-A verandert teken onder cursor van kleine naar grote letter of omgekeerd Ctrl-B verandert kleur ac2$}htergrond Ctrl-T verandert luminescentie letters OPTION-Ctrl-+/OPTION-Ctrl-* versmallen/verbreden breedte scherm Ctrl-O ge2%}eft "valse" spaties, die niet afgedrukt worden aan Ctrl-P print, E naar het scherm, P naar printer Stoppen met printen met 2&}control 1 en weer verder gaan met nog een keer control 1.Definitief stoppen met break. PAGINA INDELEN De onderstaande com2'}mando's dienen om bij het printen formaten in te stellen.De letterjes moeten met select worden ingegeven,gevolgd door een num2(}mer of tekst in normalen letters.(met select verschijnt de letter in inverse video) l-Linkerkantlijn.Gevolgd door een nummer2)} van 0 tot 255.0 is geen kantlijn.Standaard is 5. r-Rechter kantlijn.Gevolgd door een nummer van 1 tot 255.Standaard is 75.L2*}et er wel op dat waarde groter is als de linker kantlijn. t-Top regel.Gevolgd door een getal.Instelling voor de eerste regel2+} waarop geprint word.(standaard 5) b-Onderste regel waar geeindigt wordt met printen,voordat er naar de volgende pagina word2,}t gegaan.Standaard waarde 58. p-pagina lengte.Staat normaal op 66. s-Spatie.1 voor enkele,2 voor dubbele, etc. @-Pagina nu2-}mmer waarmee gestart word.Normaal staat deze op 1. ?-Start met printen op pagina nummer.(staat normaal op 1.) x-Pagina bree2.}dte.Normaal op 80.Deze kan je veranderen als je printer breeder of smaller is,of als je met een ander letter type wil werken.2/} n-Geforceerd naar een volgende pagina.Hoeft niet door een nummer gevolgd te worden. m-Kantlijn loslaten.Om de linker kantl20}ijn los te laten.Je begint dan met printen op colom 0. w-pagina wacht.Dit moet aan het begin van het document geplaats worde21}n,om na iedere pagina te stoppen om een nieuw blaadje in de printer te doen. j-kiest een automatische linefeed na een return22}. i-informatie.Dit werkt net als een REM in basic.Het wordt dus niet op de printer afgedrukt.Maximaal aantal tekens=255 h-h23}oofd.Print op elke pagina op de eerste regel een hoofd. b-beneden.Print op elke pagina op de een na laatste regel een voetno24}ot. g-goto file-Kan je onder aan je brief plaatsen,zodat er automatisch een nieuw file word geladen.Wel even een device er v25}oor zetten. c-Centreren.Plaats het aan een begin van een regel en deze regel wordt netjes gecentreerd. #-Print het pagina n26}ummer. U-Een makkelijke manier van onderstrepen.Het werkt alleen met printers die CHR$(8) als backspace en CHR$(95) als onde27}rstrepen herkennen.De eerste u start en de tweede u stopt onderstrepen. Je kan ook nog je eigen printkeys defineren door s28}elect inte drukken en een letter die nog niet gebruikt is gevolg door een = teken en dan de ASCII waarde.Je kunt dan deze geb29}ruiken in je brief door weer select in te drukken met de door jou gekozen letter en dan de tekst die onderstreept moet worden2:} of zo. 2;}0 =27 =190 80 80ӛ************************ ** TURBO-BASIC ** *6=}* by Frank Ostrowski ** ************************TURBO-BASIC is een complete interpreter voor de 6>}ATARI XL en XE serie. Het programma loopt in een machine met minimaal 64kb. Het is volledig compatible met ATARI BASIC. Het e6?}nige wat mogelijk problemen op kan leveren zijn ML routines.TURBO-BASIC is een gestructureerde taal die een beetje lijkt op 6@}COMAL of Pascal. Om deze taal goed te gebruiken dient u zich enige discipline op te leggen t.a.v. de structurering van een pr6A}ogramma.In de bechrijving betekent:aexp = rekenkundige expressiesexp = string expressie (A$,"TEXT",CHR$(),STR$(),HEX$())6B}lineno = regelnummer>>..<< = een of meerdere opdrachtenname = naam van een subroutine/procedureSTRUCTUUR OPDRACHTEN***6C}*****************Naast de standaard BASIC opdrachten zijn er de volgende mogelijkheden:IF aexp ... ENDIFIF aexp ... ELSE 6D}... ENDIFAls de voorwaarde waar is wordt het deel tussen IF en ELSE uitgevoerd, anders het deel tussen ELSE en ENDIF. Als sc6E}heidingsteken na aexp dient niet THEN, maar een dubbele punt (:) of een (RETURN). Ook voor en na ELSE en ENDIF moet zo'n sche6F}idingsteken staan.REPEAT ... UNTIL aexpHerhaalt >>..<< tot de voorwaarde waar is.WHILE aexp ... WENDHerhaalt >>..<< tot d6G}at de voorwaarde niet waar is.DO ... LOOPHerhaalt >>..<< eindeloos.EXITVerlaat een lus door naar het einde van deze lus t6H}e springen.*F*F +Na deze opdracht wordt eerst gekeken of de eindwaarde van een FOR ... NEXT lus al bereikt is voordat deze6I} lus uitgevoerd wordt.*F -Heft *F + of *F op.PROC nameBegin van een subroutine/procedure.ENDPROCEinde van een procedure6J}.EXEC nameStart een procedure.ON aexp EXEC name,name,...Start een procedure. Ongeveer gelijk aan ON aexp GOSUB.# nameKe6K}nt aan een lineno een label toe.GO# nameSpringt naar het label.TRAP #nameSpringt bij een fout naar het label.RESTORE # n6L}ameKent de datapointer een label toe.--Speciale REM. Wordt bij een LIST omgezet naar 30 mintekens.LISTGeeft een listing 6M}met insprong bij lussen. Bij LIST lineno, wordt het programma gelist vanaf lineno tot het einde van het programma.*L -Heft 6N}de insprong bij een LIST op.*L*L +Heft *L - op.FOUTMELDINGEN*************Foutmeldingen worden nu weergegeven in de 6O}vorm ERROR - foutnummer ? fout. Er zijn enkele nieuwe meldingen bij gekomen.DEL lineno,linenoVerwijdert de regels tussen li6P}neno en lineno. (Inclusief de opgegeven regels)RENUM oud,nieuw,stapHernummert programma. Spreekt voor zich.DUMPDUMP files6Q}pecGeeft een lijst van de variabelen die in de var.tabel zijn opgenomen. Max. 256TRACETRACE +Schakelt de trace mode aan.6R}TRACE -Schakelt de trace mode uit.*B*B +Schakelt de BREAK uit. Deze toets wordt nu net als elke willekeurige toets behand6S}eld.*B -Schakelt de BREAK in.STATEMENTS**********DPOKE adres,woordDubbel-byte poke. Een aexp >=0 <=65535 wordt opge6T}slagen op adres en adres+1.MOVE source,dest,countDit voert een block-move uit van source naar dest met count bytes.-MOVE s6U}ource,dest,countHetzelfde als de vorige opdracht, alleen komt nu de laatste byte aan het begin.BPUT #n,adres,countSchrijft6V} een blok naar kanaal n, beginnend bij adres met count bytes.BGET #n,adres,countLeest een blok van kanaal n, beginnend bij 6W}adres met count bytes.FILLTO x,yVerkorte notatie voor POSITION x,y:XIO 18,#6,0,0,"S:".FCOLOR nKiest de kleur voor FILLTO 6X}x,y.CLSCLS #6Maakt het scherm schoon.PUT nVerkorte notatie voor PRINT CHR$(n).GET KEYOpent kanaal 7 voor INPUT, wacht 6Y}tot een toets wordt ingedrukt en sluit daarna kanaal 7 weer. KEY heeft de ATASCII waarde aangenomen.DIMDimensioneert arrays6Z} en strings. Maakt deze gelijktijdig leeg.INPUT "text",var,varINPUT "text";var,varPrint de text en vraagt daarna om de var6[}iabele(n). Bij een INPUT met een puntkomma wordt het vraagteken niet afgedrukt.TEXT x,y,sexpPrint sexp op positie x,y op ee6\}n grafisch scherm.CIRCLE x0,y0,rCIRCLE x0,y0,xr,yrTekent een cirkel bij het eerste statement, of een ellips als ook de vie6]}rde var opgegeven wordt.PAINT x,yVult een gesloten vlak waar x en y op dat moment in staan.PAUSE nPauzeert n/50ste second6^}e(n).DSOUND voice,freq,dist,volGelijk aan het SOUND statement, alleen nu met hogere freq resolutie.SOUNDDSOUNDSchakelt a6_}lle stemmen uit.CLOSESluit alle kanalen, behalve kanaal 0.FUNCTIES********DPEEK(adres)Dubbel-byte PEEK van adres en6`} adres+1.INKEY$Systeemvariabele waarin de laatst ingedrukte toets wordt opgeslagen.INSTR(A$,B$)INSTR(A$,B$,I)Zoekt B$ in6a} A$. Indien B$ wordt gevonden, wordt in de tweede opdracht het begin in de index I opgeslagen.UINSTR(A$,B$)UINSTR(A$,B$,I)6b}Hetzelfde als de vorige opdracht, maar er wordt niet op bits 7 en 5 gelet. Hierdoor kun je met upper- en lowercase door elkaa6c}r werken.ERRVerkorte notatie voor PEEK(195).ERLVerkorte notatie voor DPEEK(186).TIMESysteemvariabele waarin de secondes6d} in 1/50ste zijn opgeslagen.TIME$Systeemvariabele waarin de tijd als sexp is opgeslagen.TIME$=sexpMaakt TIME$ gelijk aan 6e}de sexp in de vorm "121212".FRAC(aexp)Rondt aexp af naar de dichtstbijzijnde integer. Nu wordt 0.1 gelijk aan 0 en 0.9 geli6f}jk aan 1.TRUNC(aexp)Geeft het gehele gedeelte van aexp.RNDDit is gelijk aan RND(0).RAND(n)Dit geeft een random getal tu6g}ssen 0 en n.HEX$(aexp)Maakt van een numerieke expressie een hex string.DEC(sexp)Maakt van een hex string een numerieke ex6h}pressie.$aaaaNotatie voor een hex getal.&Binaire AND.!Binaire OR.EXORBinaire Exclusive OR.DIVDeling zonder rest.MO6i}DGelijk aan a-b*TRUNC(a/b).%0%1%2%3Vier variabelen die standaard opgenomen zijn met de waarden 0, 1, 2 en 3.DISK-OPD6j}RACHTEN***************Onder TURBO-BASIC zijn de volgende disk opdrachten standaard opgenomen. Hierdoor hoeft u niet elke 6k}keer naar DOS om een opdracht uit te voeren.DIRDIR "D:*.*"RENAME "D:OLD,NEW"DELETE "D:FILE"LOCK "D:FILE"UNLOCK "D:FILE"6l}BLOAD "D:FILE.OBJ"Binaire LOAD van een file.BRUN "D:FILE.OBJ"Binaire LOAD en RUN van een file.TURBO-BASIC is compatibel6m} met DOS 2.x.Als u een programma op uw schijf heeft staan met de naam AUTORUN.BAS, dan wordt dit bij het opstarten van de co6n}mputer direct gerund.Veel succes, Arie Wesselseeft staan met de naam AUTORUN.BAS, dan wordt dit bij het opstarten van de6o} computer direct gerund.eel succes, Arie Wesselseeft staan met de naam AUTORUN.BAS, dan wordt dit bij het opstarten van de4 FF                   :q}                          :r}        TURBO BASICMet TURBO BASIC worden programma's ongeveer 2 maal sneller als met ATARI:s} BASIC. Tevens kan hiermee veel gestructureerder worden geprogrammeerd.TURBO BASIC lijkt in veel opzichten op een door OSS u:t}itgebrachte BASIC XL.Ook het aantal variabelen dat normaal maximaal 128 is, wordt verdubbeld naar 256 mogelijke variabelen.:u}Enkele verschillen en opmerkingen over TURBO BASIC zijn:alle foutmeldingen worden in TURBO BASIC voorzien van zowel het fou:v}tnummer, als van een korte omschrijving van de fout.Bij programmaregels worden kleine letters automatisch omgezet naar HOOFD:w}LETTERS (met uitzondering van de tekst tussen " ").De bezette geheugenplaatsen van Basic programma's is verschillend met nor:x}maal.De onderste RAM lokatie van Basic programma's ligt nu veel hoger.Bij gebruik van TURBO BASIC is het aan te bevelen om :y}alleen DOS.SYS op de disk te hebben en niet DUP.SYS.Er kan nl. vanuit TURBO BASIC wel naar het DOS menu worden gegaan, maar :z}niet meer terug.Onderstaand volgen de nieuwe Basic commandos van TURBO BASIC met een korte omschrijving voor het gebruik.H:{}et beste is om door proberen te kijken wat elk commando nu precies doet.Gebruikte uitdrukkingen bij de commando'saexp = a:|}rithmetic expression (rekenkundige uitdrukking).sexp = string expression (tekst uitdrukking (a$, chr$ "text" enz.)lineno = :}}regelnummer... = 1 of meerdere voorwaarden of regelnummers.IF aexp ... ENDIFIF aexp ... ELSE ... ENDIF----------------:~}----------als aan de voorwaarde is voldaan, dan wordt het gedeelte tussen IF en ELSE uitgevoerd, anders het deel tussen ELSE:} en ENDIF.REPEAT ... UNTIL aexp---------------------herhaling van regels totdat aan de voorwaarde wordt voldaan. De lus :}wordt minimaal 1 keer doorlopen.WHILE aexp ... WEND-------------------is hetzelfde als REPEAT ... UNTIL, alleen wordt nu :}aan voor de lus begint gekeken of reeds aan de voorwaarde is voldaan.DO ... LOOP-----------eindeloze lus (alleen dmv EXIT:} te verlaten)EXIT----bij DO ... LOOP de enige manier om uit de lus te komen. Dit commando is ook te gebruiken bij REPEAT :}... UNTIL, WHILE ... WEND enz.*F+---een FOR ... NEXT lus wordt afwijkend behandeld; nl. voordat met de lus wordt begonnen:}, wordt gekeken of aan de voorwaarde is voldaan.*F----schakelt de normale toestand weer in.ook bij een koude start is di:}t de normale toestand.PROC naam---------Begin van een subroutineIn TURBO BASIC kan men nl. een subroutine een naam geven:} en kan men deze subroutine aanroepen met zijn eigen naam.Dit is een van de sterkste kanten van TURBO BASIC, omdat deze "var:}iabelen" als geheugenadres op de stack worden geplaatst en niet als regelnummer, waardoor het programma sneller wordt.EXEC :}naam---------aanroepen van een subroutineON aexp EXEC naam,naam----------------------werkt hetzelfde, maar sneller als :}ON aexp GOSUBHetzelfde verhaal geldt voor de volgende 4 commando'sGO # naam---------ON aexp GO # naam,naam,naam--------:}-------------------TRAP # naam-----------RESTORE # naam----------------deze twee minus tekens zijn een soort REM comma:}ndo, alleen worden door dit commando 30 minus tekens geprintLIST----is het zelfde gebleven, alleen bij lussen wordt inges:}prongen in de listing bij elke (geneste) lus met 2 spaties.Dit gebeurt om een duidelijk overzicht te krijgen wat welke lus i:}s.*L----schakelt de hierboven genoemde spatiering uit. Dit is vooral van belang bij het wegschrijven van programma's met :}LIST*L+---schakelt de spatiering weer in (dit is ook de toestand na een koude start.Nog een afwijking is dat nu bij LIST:} 3000, (zonder verdere progr.regel), alle programmaregels vanaf 3000 tot aan het eind van het programma worden gelist (oo:}k event. naar de printer e.d.)DEL van,tot-----------wissen van de opgegeven programmaregels.RENUM oud,nieuw,verhoging-:}------------------------nummert alle regels om vanaf oud in nieuw, met verhoging tussenruimte.Alle GOTO enz. wordt ook hern:}ummerd, met uitzondering van berekende regelnummers (bijv. GOTO A*100)DUMP filespec-------------alle gebruikte variabele:}n en procedurenamen worden afgedrukt op het scherm (DUMP "P:" is afdruk op printer)TRACE+------aanzetten van de trace-mod:}e; dit wil zeggen dat bij runnen van het programma alle regelnummers worden afgedrukt die op dat moment worden uitgevoerd.T:}RACE-------schakelt de trace-mode weer uit.*B+---laat het indrukken van de toets afhandelen door het programma :}als elke andere foutmelding (bijv met een TRAP commando)*B----normale toestand weer ingeschakeld.DPOKE adr,word-------:}-------dubbel adres poke= POKE adr,word-256*INT(word/256):POKE adr+1,INT(word/256)MOVE source,dest,count----------------:}------blok verplaatsing.= FOR I=0 TO count-1:POKE dest+I,PEEK(source+1):NEXT I-MOVE sorce,dest,count--------------------:}--zelfde als MOVE, alleen wordt nu bij het hoogste adres begonnen.BPUT # n,adr,len----------------blokken schrijven=FOR:} I=0TO len-1:PUT # n,PEEK(adr+I):NEXT IBGET # n,adr,len----------------blokken inlezen.idem als BPUT.Met dit commando k:}an ondermeer een Graphics 8 beeld worden ingelezen)FILLTO x,y----------hiermee kunnen vlakken worden opgevuld met een kl:}eur (=XIO 18)CLS---CLS #6------wissen van het beeldscherm.PUT n-----is gelijk aan (in ATARI BASIC) PRINT CHR$(n)G:}ET(KEY)--------= OPEN #2,4,0,"K:": GET #2,KEY:CLOSE #2NB. voor KEY kan elke willekeurige variabele worden gebruikt.DIM-:}--bij dimensionering van string en arrays worden die nu automatisch gewist of op nul gezetINPUT "text",var,var----------:}----------= PRINT "text":INPUT var,varEr verschijnt op deze manier geen vraagteken na de tekts; alleen als de komma achter :}text wordt vervangen door een punt-komma, dan komt er een vraagteken.TEXT x,y,sexp-------------schrijft tekst op positie :}x,y in grafische modesCIRCLE x0,y0,r--------------CIRCLE x0,y0,xr,yr------------------tekent een cirkel of elips om pos:}itie x0,y0 met straal rPAINT-----vult een gesloten figuur met een d.m.v. COLOR gekozen kleur.PAUSE n-------onderbreki:}ng van het programma van n/50 sekonde.DSOUND voice,freq,dis,vol-------------------------16 bits muziek met een groter to:}onbereik. Nadeel is dat 2 geluidskanalen worden gebruikt.DSOUND------= FOR I=0 to 3:SOUND I,0,0,0:NEXT ICLOSE-----= F:}OT I=1 TO 7:CLOSE #I:NEXT IDPEEK(adr)= PEEK(adr)+256*PEEK(adr+1)INKEY$------als een toets wordt ingedrukt, bevat INKEY:}$ het betreffende teken. Indien geen toets werd ingedrukt, bevat het ""INSTR(A$,B$)------------INSTR(A$,B$,i)-----------:}---zoekt B$ in de langere A$ en geeft de positie van B$ in A$ terugAls voor i een waarde wordt opgegeven, dan start het zoe:}ken op positie i in de stringUINSTR(A$,B$)-------------UINSTR(A$,B$,i)---------------hetzelfde als INSTR alleen wordt n:}u geen onderscheid gemaakt tussen kleine of hoofdletters. Ook control tekens kunnen worden gevonden.Bijv. B$=MODEM; ook MoDe:}M wordt nu gevonden, en de positie hiervan in de string wordt aan een variabele teruggemeld. Indien het woord niet wordt gevo:}nden dan wordt de variabele 0.voorbeeld A=INSTR(A$,B$)ERR---= PEEK(195)ERL---= PEEK(186)+256*PEEK(187) of DPEEK(186):}TIME----speciale variabele die iedere 1/50 sec. wordt verhoogd.TIME$-----speciale string variabele; bevat hh/mm/ssDo:}or TIME$=230500 (voorbeeld) kan de klok worden gelijkgezet.FRAC(exp)---------middelt het gedeelte na de komma (iets ander:}s dan INT)TRUNC(exp)----------middelt het hele getal (net zoiets als INT?????)RND---RAND(n)-------RND is gelijk aan:} RND(0) in ATARI BASICRAND(n) is hetzelfde als INT(RND(0)*n)HEX$(exp)---------zet een decimaal getal om in een hexadecim:}aal getalDEC(sexp)---------zet een hex getal om in dec.$nnnn-----door voor een hex getal $ te zetten kan dit gebruikt:} worden om te poken in een geheugenplaatsvoorbeeldFOR I=1536 TO 1663:READ A:POKE I,A:NEXT Ier kan ook gezet wordenFOR I=$:}0600 TO $067F:READ enz.&-----Binair AND functie!----Binair OR functieEXOR----Binair Exclusif OR functieDIV---:}delen zonder restMOD---bestemming van de deelrestbijv. aMODb%0 / %1 / %2 / %3-----------------Dit zijn constante waa:}rden van 0 tot 3, die heel weinig geheugenruimte vergen.(1 byte ipv bij een normaal getal 7)DISK COMMANDOS--------------:}DIRDIR "D2:*.*"RENAME "D:OLD,NEW"DELETE "D:FILE"LOCK "D:FILE"UNLOCK "D:FILE"BLOAD "D:FILE.OBJ"BRUN "D:FILE.OBJ"BLO:}AD en BRUN zijn hetzelfde als keuze L uit het DOS-menu.K "D:FILE"UNLOCK "D:FILE"BLOAD "D:FILE.OBJ"BRUN "D:FILE.OBJ"BLO89 NOTICE: This article originally appeared in the January, 1989 issue of Atari Interface Magazine and may be freely distribu>}ted or reprinted in non-profit User Group publications as long as the article's author and Atari Interface Magazine are cre>}dited AND this notice is reprinted with the article. All other publications must obtain written permission from Unicorn Pub>}lications, 3487 Braeburn Circle, Ann Arbor, MI 48108, Phone: (313) 973-8825 before using this article. Inside the XF551 >}Disk Drive by Bob Woolley (SLCC) It has been almost a year since I first got my hands on an XF551. Busy little hands...>} Of course, the first thing I did was to tear the thing apart to see how it was put together. And, maybe do a little "put"i>}ng myself. As a result, I have made a few modifications that may be of interest to other XF551 owners. You will not be ab>}le to successfully make these changes unless you have reasonably decent electronic skills, so don't gamble with your new XF5>}51 unless you know what you are doing. Most User Groups have skilled members that will be happy to guide you if you need h>}elp. First But, before I get caught up in details of the drive, I would like to clarify some points on the XF551. The>} drive IS double sided and can read and write in single, enhanced or double density. The "book" that comes with the drive i>}s incorrect. MyDOS, SuperDOS and SpartaDOS can all format the drive as double sided and double density. Previous Atari dr>}ives did not use the INDEX hole on the diskette, which allowed us to flip the disk over and format the back of the media. >}The XF551 uses a standard, bone stock, IBM style drive. It uses INDEX. It will not FORMAT the back of a diskette unless th>}e disk jacket has two index holes. It WILL read and write to the back of any disk. Guaranteed! On side one, the tracks on >}the disk are written from the outer edge in, from 0 to 39. On side two, the tracks are written from the inner edge out. This>} allows us to read the first 40 tracks of a DSDD diskette on a SSDD drive. The second side is not backwards nor could it be>} read on a SS drive even if you changed it. The speed of the drive is NOT 288 RPM, the speed you are used to seeing, but 3>}00 RPM, the industry standard. The XF551 compensates for the difference by using a clock frequency 4% (.33mhz) higher than >}it should be. This will read and write the data in exactly the same place on the diskette as your 288 RPM drive, although p>}rograms that measure the speed of the drive will read 300 RPM. Talking To The Drive The XF551, as it comes from Atari,>} has the ability to format a diskette in any of three configurations: single density (SSSD-88K), 1050 density (SSED-127K) a>}nd double-sided, double density (DSDD-360K). The DSDD format has a standard skew (skew is the physical sequence of the sect>}ors on the disk) and a high speed skew option available to the user. This extra skew layout allows faster data transfers o>}n the SIO buss, much like the ICD Doubler upgrade on the 1050. For those of you interested in programming, the DSDD format S>}IO command is $23. For a high speed skew format in DSDD, you just need to turn on bit 7 for a value of $A3 (the SSSD and S>}SED formats do not have a high speed skew, although the drive will transfer data at high speed in those densities). To tra>}nsmit data at high speed to and from the XF551, just set bit 7 of the command to "1" again (a get sector ($52) with bit 7 on>} is $D2). You must still send the command frame at the normal SIO rate ($28 in $D204) and then set $D204 to $10 for high s>}peed operation during the data frame. The drive will also recognize the Put (and Get) Option Table command ($4F and $4E), >}which are similar to the Percom configuration table operations. Only bytes 4-8 are changed by the Put command, however, and>} only the three supported formats will be recognized. Even if you sent the Option Table a 512 byte sector size, you would >}only get 256 byte sectors. A number of the newest DOS versions (SpartaDOSX, SuperDOS 5.0, DOSXE...)now have XF551 support b>}uilt in. Also, a file is available in Atari8 on CompuServe that will modify SpartaDOS 3.2D for the XF551 features (in DL3 ->} XF32D.BAS). Using any of these methods will transfer data almost twice as fast as DOS 2.0. Into The Hardware. The fi>}rst thing you notice about the ICs in the drive is the one in a nice socket, the ROM. Makes it a lot easier to burn an EPRO>}M (use a 2764) to make code change if you can just plug and unplug your devices. I didn't see the ROM source code printed >}anywhere, so I wrote a simple dis-assembler for the 8050 MPU used as the brains of the drive. It was very nice when Atari u>}sed a 6507 (which uses 6502 OPCodes) in their drives but, no more. Everything Atari comes out with now seems to use a diff>}erent chip and this 8050 stuff was a bear. Finally, I got most of the program logic worked out and designed some changes: >} One upgrade that was available for the 1050 is a ROM change that will re-address the drive as D5: through D8:. This can >}be done on the XF551 ROM by altering location $0095 from $31 to $35 ($33 gives you a range of D3: to D6:, etc.). Having 36>}0K is nice. Having 720K is even nicer. Putting a 720K, 3.5 inch drive in place of the stock drive is not too hard, so let'>}s start with the ROM. There is a little bug in the code that allows the drive to start writing the track before it has rea>}ched operating speed. To remedy that, change $528 from $90 to $00, $C1D from $88 to $80 and $E25 from $88 to $80. The 720K>} drive has 80 tracks per side which requires you to change $680 from $28 to $50, $80F from $30 to $60 and $811 from $FD to $>}FA. A 3.5 inch drive uses a 3ms seek time -- change $53D from $00 to $03, $57B from $18 to $13, $9D1 from $08 to $03, and >}$B15 from $18 to $13. Finally, the 3.5s use write pre-compensation -- change $61D from $F6 to $F4, $621 from $F6 to $F4 and>} $D0D from $A2 to $A0. For a drive, I used a unit from JDR Microdevices (MF353B Mitsubishi) that plugs right into the 5.25>} connectors and uses the same mountings as the larger drive. This simplifies the installation quite a bit. When you go to >}plug in the 3.5, you may notice that the 34 pin cable is too short. I de-soldered the connector and added a longer cable, bu>}t one hacker, Joe Wyks, managed to pry the top off of the board connector and crimp his new cable into place without solder>}ing. The power connector can be adapted with cables made for that purpose, if necessary. That's about all that's needed to >} run a 720K 3.5. Format a disk using SpartaDOS XINIT, option 7 (DS 80 tracks) and start filling it up! You now have 2820 D>}D sectors. Bob Woolley can be reached on CompuServe at [75126,3446] and is the editor of the SLCC Journal. We wish to wa>}rmly thank him for contributing this article and sharing his knowledge of the 8bit and the XF551 disk drive with us. >}icle and sharing his knowledge of the 8bit and the XF551 disk drive with us. <(