Top 10k strings from sgg1.img in <root> / doc / technical / RoelofKoning / opsimg.zip /
Back to the directory listing
8 AND A
5 x,y;c$(q,w):
5 *"m";drive;"labelxmas$"
4 ;"clipstic
3 n$(z)=n$(z,2
3 n$(z)=n$(z,12
3 ;"circle.COD"
3 *"m";drive;"lxmfonts
3 SBC HL,BC
3 POP HL ;HL=d.
2 vermenigvuldigingen voorkomen (2*x=x+x).
2 p<(sheet*2
2 n$(z,spc+1
2 leeg
2 geheel met gehele getallen werkt en waarin geen
2 de geheugen plaatsen 1 t/m 3 wordt opgeslagen.
2 d1;"BOOKLET-A6":
2 balk=(wl+pos-1
2 ;"clipstic"
2 ;"Start DEMO met '
2 ;"SAVE program met 'GOTO 9999'"
2 ;"PRINTING FINISHED";
2 ;"PRESS ANY KEY"
2 ;"AND PRESS A KEY":
2 ,kol+(opt>2
2 ,"MISCELLANIOUS","","Joystick on/off","Printer on/off","Set IF1-map","Reset drive","Rom version","To main menu",""
2 +dump+udg's
2 *"m";drive;t$
2 *"m";drive;"labelxmas
2 *"m";drive;"LABELXMAS"
2 "Labelnaam: ";t$:
2 te LADEN en vervolgens te SAVEN
2 pas zelf regels 9998 en 9999 aan om het SCREEN
2 SNELLE CIRCEL - ROUTINE
2 CLIPSTICK ";
2 SBC HL,DE
2 PUSH HL
2 PUSH DE ;Bewaar x.
2 OR L
2 LD HL,(ycoord)
2 LD HL,(xcoord)
2 LD A,H
2 ADD HL,BC ;HL=q+y.
2 ADD HL,BC
2 LET x=x+1
1 zowel vooruit als achteruit op de cartridge te zoeken naar de
1 zonder foutmelding. Probeer in regel 30 maar eens 400 ipv 87. Of
1 zoekbytes wel en staat daar 210 dan worden deze niet gesaved.
1 zoekbytes niet gesaved en niet geladen worden. Dat kan heel
1 zijn direct BOOKLET Files te maken. Uiteraard kunnen nu, bij het
1 zelf willekeurige namen invoeren, b.v. van een familielid.
1 ycoord DEFW 0 ;y-coordinaat middelpunt: q.
1 xcoord DEFW 0 ;x-coordinaat middelpunt: p.
1 worteltrekken en sinussen en cosinussen nemen. Zo'n methode is
1 worden gedeclareerd. Denk er wel aan dat een tekst met een ander
1 window or screen
1 wens saven naar disk, of printen.
1 wegSAVEn) het volgende BASIC programma maar eens:
1 weer de oorspronkelijke waarde: 192! Een tweede waarschuwing is
1 was kniplijn
1 waarvoor TASMAN het programma ontwikkeld heeft, is het mogelijk
1 waar de voring sector van een file op de disk ligt. Rudie heeft
1 w$=" PLEASE WAIT A FEW MOMENTS !"
1 viel op het copyright teken omdat dat op een aantal printers
1 via RUN en het hoofdmenu direct SAVEN. Denk er wel aan dat na de
1 vergelijking te schrijven als y=SQR(R^2-x^2) en x van 0 tot R te
1 vereiste teksten. Bij een DISCiPLE File is echter niet bekend
1 vastgelegd. Dat betekent dat bij het inlezen geen "End of File
1 van een nummer voorzien.
1 van BOOKLET-A6 zijn echter zo gering en plaatselijk, dat wij een
1 van twee punten het dichtst bij de cirkel ligt door de
1 uitwisselen van tekstfiles met anderen, om de 512 bytes vreemde
1 uitgewerkte methode berekend slechts een achtste cirkel (het
1 tweetal bytes vast te leggen. Tijdens Mail Merge worden die
1 traag) omdat er een vermenigvuldiging en een worteltrekking per
1 tot 360 graden lopen om een complete cirkel uit te rekenen. Het
1 tore screen in store 1-2";
1 toegevoegd.
1 title=4600
1 test (Caps) keys
1 tekst genegeerd. Booklet-A6 vindt ze echter aan het begin van
1 tekens op het scherm verschynen. Bij zo een file moet dan voor
1 tekens op het scherm verschynen. Bij zo een file moet dan voo
1 tekenen. Nadeel van deze routine is dat er grote gaten in de
1 tekenen van cirkels aanzienlijk. Probeer na assemblage (en
1 te maken, te meer om aan te tonen dat er niet altijd direct naar
1 t$=t$+(d$(balk,z)
1 t$=t$+(a$(z)
1 t$=d$(balk)
1 t$=": AaBbCcD"
1 systeem door de regels voor het andere systeem achter een REM
1 stukje machinecode PLOT een punt alleen als het zichtbaar is,
1 stuk vanaf x=0 tot x=y=R/SQR(2), de overige punten worden geplot
1 sticker op een cadeau kunnen plakken.
1 statement te zetten. Aan de te gebruiken regels hebben wij, ter
1 start LD BC,(radius) ;LET y=r.
1 staat in TASCODE2 op adres 33831. Staat daar 192, dan worden de
1 slechts wordt verhoogd of verlaagd met gehele getallen kunnen we
1 skip2 EX DE,HL ;DE=x.
1 skip1 LD D,H ;DE=x.
1 signaal, een overblijfsel van telexverbindingen, dat voor ons
1 sidemes=600
1 sheet=page/8
1 selecteren om deze op uw label te krijgen (max. 7 stuks).
1 sel,kolom;
1 scrtxt=800
1 schuld aan. Een snellere, efficientere methode zou dus geen
1 schrijft de door Rudy Biesma aangepaste TW3 versie zijn teksten
1 saven naar basic gaan, dan POKE 33831,201 geven en vervolgens
1 s$=" LEEG LABEL"
1 s$=" "+c$(
1 rout=opt*10
1 roelrun
1 rive:";d;"
1 rekenen, dit is 1.25-R. Maar dit is geen geheel getal, en
1 regels hebben uitgebracht. Men kan het aanpassen aan het eigen
1 radius DEFW 0 ;straal: r.
1 putbdr=4000
1 punten, gemakkelijk uitrekenen (zie figuur 2).
1 punt nodig is.
1 prpage=500
1 programma met zowel de voor OPUS als DISCiPLE noodzakelijke
1 programma als in TASWORD 3 veranderingen worden aangebracht.
1 programma BOOKLET-A6 moet dat teken in regel 10 als 'textend'
1 pr=z+pos-1
1 poke niet eerst de tekst op het scherm mag verschijnen! Gebeurt
1 poke in TASCONTROL op adres 26794 is ook dat te verhelpen. Met
1 plotten van punt A wordt dan D<-0.25, omdat D geheel is en
1 plot LD A,H ;Het Spectrum scherm heeft 256
1 pd+z,dk;d$(z):
1 pd+z,dk;d$(pr):
1 pd+z,dk;E$(
1 pd+wl,dk;d$(balk):
1 patent voor). Bresenham berekende de gehele cirkel, de hier
1 page=fl/1920
1 ove window into box A-Z";
1 ophalen catalogus
1 op een speciale manier weg. Daarom moeten zowel in het BOOKLET
1 oom 'window' to screen";
1 ook weinig nut heeft. Wil men toch CHR$ 127 zelf gebruiken, dan
1 onzinnige! Gelukkig is daar toch een oplossing voor. Met een
1 onlangs, redenen genoeg om iets dergelijks ook voor de Spectrum
1 om dan direct geprint te worden.
1 ochrome window or screen"
1 oad window from box (A-Z)"
1 nodig voor het gebruik van de voor BOOKLET gemaakte files.
1 niet voorkomt. In die gevallen is CHR$ 127 soms het DELETE
1 newlab=4300
1 negtiv ADD HL,HL
1 ndo last operation"
1 nadeel van deze methode is echter dat er nog veel meer
1 n$(z)=t$(3
1 midden spacies.
1 mag uiteraard verder in de tekst niet gebruikt worden). De keus
1 maakt nog een paar extra voorzieningen nodig.
1 loop PUSH HL ;Bewaar d.
1 load save cat
1 linkerkantlijn.
1 lijnen of centreren. Ook kunt u ze, als ze links uitgelijnt zijn
1 lear window, screen, frame"'
1 laten lopen kun je de punten van de kwart cirkel met x,y>=0
1 langdurige bewerkingen mogen bevatten zoals vermenigvuldigen,
1 labelxmas$
1 label afgebeeld staat.
1 laatste regel blijft wachten op de volgende en vastloopt. De
1 l$=textend
1 kolom=kol-
1 kol=(opt-1
1 kan dat mits men een ander teken als eindmerk definieert. In het
1 is er de aller simpelste oplossing: verander TASWORD zo dat de
1 in regel 10 (65536-40) ipv 127; 65536-40=-40.
1 ile: Load / Save / Cat";
1 hoofdmenu maar blijft bestaan tot TASWORD opnieuw geladen wordt.
1 hier stond streepje voor snijrand.
1 het punt M midden tussen A en B binnen de cirkel ligt, dan is A
1 het middelpunt loopt, verandert er ook niets.) Bij elk punt
1 het laden POKE 26794,32 gegeven worden.
1 het copyright teken (CHR$ 127) gekozen. Het moet direct aan het
1 het Saven van de tekst de plaats van de vorige sector in een
1 herkenning, aan het eind de opmerking REM DISCiPLE of REM OPUS
1 ging er namelijk van uit dat dit de zoekbytes waren. Met een
1 getekende cirkels zijn niet allemaal even rond. Dat het sneller
1 getekend label gezet, u kunt ze naar keuze links of rechts uit-
1 gehouden. In de eerste plaats behandelt de DISCiPLE zijn Open
1 gebruik van de Spectrum ROM routine.
1 funktiewaarde te berekenen voor het punt dat midden tussen de
1 formule sin(h)^2+cos(h)^2=1 kun je de bovenstaande schrijven
1 fnt=z+pos-1
1 figuur 1). Verder is deze routine nogal inefficient (en dus
1 f$="EMPTY*****":
1 etrieve screen from 1-2"
1 er maar voordat ik die uitleg eerst iets anders.
1 en uit de 6 sierranden (BORDERs), dan zou u zo'n label als naam-
1 en ronder kan kun je zien aan bijvoorbeeld Art Studio of Beta
1 emphasized on.
1 emphasized off.
1 elke sector gewoon tussen de tekst: op elke 512 bytes twee
1 eindmerk dan in regel 10 is opgegeven hopeloos vastloopt!
1 eenvoudig als volgt:
1 een ietwat verfraaid uiterlijk. Ook voor de SAM verscheen het
1 een cirkel om zijn middelpunt roteert, blijft het precies
1 dus 0<=x<=255, 0<=y<=175. Voor het eigenlijke PLOTten maken we
1 dumproutine die alleen dat deel van het scherm print waar het
1 drive),"SAVE LABEL","LD+DMP LAB","SAVE PROG"
1 drawscr=900
1 door gebruik te maken van de symmetrie. De routine bepaalt welke
1 door gebruik te maken van de symmetrie van een cirkel. (Als je
1 dit weer veranderen in D<0. Nu hebben we dan een routine die
1 disk (1>3)","Change drive","Format disk","Format ramdisk 6","Destroy ramdisk ","To main menu",""
1 dichterbij de cirkel.
1 dezelfde cirkel; als je een cirkel spiegelt in een lijn die door
1 de gelegenheid om hier een aantal namen (groepen?) uit te
1 de cirkel, positief erbuiten en negatief binnen de cirkel. Als
1 dat wel, dan wordt TASCODE2 opnieuw geladen en bevat adres 33831
1 dat probleem opgelost door aan het begin van elke sector tijdens
1 d$(z)=c$(st
1 d$(nf)="* END *"
1 condensed on.
1 condensed off.
1 co+"."+d$(balk)
1 clipstic F
1 cirkels op plotters te kunnen tekenen (en kreeg hier zelfs een
1 cirkel zitten voor waarden van x die dichtbij R liggen (zie
1 circle.COD
1 catend=65535
1 c$=c$+r$(7
1 c$(q,w)=k$
1 bytes gebruikt voor het zoeken en tijdens het Loaden van een
1 box put/get
1 bij de door Rudie Biesma aangepaste TASWORD - DISCiPLE versie,
1 bewerkingen nodig zijn, vooral de SIN en COS funktie's zijn hier
1 bewerking, dan missen op elke 512 bytes twee letters. TASWORD
1 beste oplossing hiervoor bleek het toevoegen van een eindmerk
1 beschouwt dat als het eind van de file. Ik heb voor het eindmerk
1 berekeningen met gehele getallen kunnen snel uitgevoerd worden.
1 beide punten ligt.
1 begin van de sectoren plaatst worden uitgeschakeld. De routine
1 begin van de regel na de laatste tekstregel worden geplaatst (en
1 andere schrijfwijze. Met behulp van de misschien wel bekende
1 als dichtstbijzijnde was gevonden dan is de keus nu tussen punt
1 aan de TASWORD tekst. Het printprogramma detecteert dat en
1 a1=adr-a2*256
1 ZWindowX 1.2 by Paul Dias, Feb 91. For 'Your Sinclair' magazine.
1 Worden die zonder meer in TASWORD geladen voor eventuele verdere
1 We vervangen d gewoon door D=d-0.25. De konditie voor het
1 We gebruiken de variabele d om de waarde van de funktie in punt
1 Voor d<0 moeten dus de volgende instrukties worden uitgevoerd:
1 UDG's en de fonts geladen.
1 U kunt desgewenst ook een andere titel in voeren, ook kunt u
1 U hebt het misschien al een keer gezien, het programma "LABEL-
1 Type- en Special Files anders dan de OPUS en in de tweede plaats
1 Store screen at #1 (1) or #2 (2)
1 Store SCREEN$
1 Snelle cirkels.
1 Retr. scrn from #1 (1) or #2 (2)
1 REEN dat geladen wordt is het start-scherm, dat daarna in
1 R voldoet aan de vergelijking: x^2+y^2=R^2. Door deze
1 PPpp``hhPPpp``hhPPpp``hhPpp``hhPPpp``hhPPpp``hhPpp``hhPPpp``hhPPpp``hhPPp`xhhPPpp``hhPPpp``hhPPp``hhPPpp``hhPPpp``hhPPppxxxxxxxxxyyyyyyyx9999999rayyyyyyra999999rayyyyyyaax99999aayyyyyyaa999999jj9yyyyyjj999999jj9yyyyyxy999999x
1 POKE in TASWORD kan namelijk de routine die de zoekbytes aan het
1 PLEASE WAIT
1 Ofwel x=R*sin(h)en y=R*cos(h). De Spectrum ROM laat dan h van 0
1 Message" wordt gegeven. Het resultaat is dat de computer na de
1 Merge mogelijkheid van TASWORD 3 problemen. Bij de Microdrive,
1 Men kan dus voor het maken van een BOOKLET file alvorens te
1 MASTER", waarmee PC-gebruikers disklabels kunnen voorzien van
1 M bij te houden:
1 LXMAS-txt
1 LOADING LABEL X-MAS
1 LABELXMAS
1 LABEL X MAS (ter).
1 Is het label op het scherm naar uw zin, dan kunt u deze naar
1 Is d_oud>=0, dan wordt B gekozen en de funktie voor Mb berekend:
1 In ons geval, als het punt P met (Xp,Yp) in de vorige berekening
1 In 1977 ontwikkelde Bresenham een zeer efficiente methode om
1 Hiermee heeft TASWORD de Mail Merge mogelijkheid verloren maar
1 Het volgende programma leest de DIR/CAT van een disk, en geeft u
1 Het machinecode deel is de MC van "WINDOWx", uitgebreidt met een
1 Het label krijgt als titel automatische de titel van de disk.
1 Het hele gebeuren bedient u via PULL-DOWN menu's, met keuzebal-
1 Het enige dat nu nog nodig is, is een PLOT routine. Het volgende
1 Het Spectrum BASIC kommando 'CIRCLE' is nogal traag en de
1 Het SCREEN dat geladen wordt is het start-scherm, dat daarna in
1 Filename: ";f$
1 FONTS: 2-9
1 En voor d>=0:
1 En daarna (mc deel in het geheugen):
1 Elke methode om cirkels te tekenen kan flink opgevoerd worden
1 Een reeds eerder gesavede label (screen$) kan ook geladen worden
1 Een cirkel met als middelpunt de oorsprong (x=0, y=0) en straal
1 Dus d_nieuw=d_oud+(2*Xp-2*Yp+3).
1 Dus d_nieuw=d_oud+(2*Xp+3).
1 Door Rudy Biesma
1 Deze mc routine kan cirkels trekken met een straal van maximaal
1 Deze instelling herstelt zich niet door wisselingen van tekst en
1 De listing:
1 De gebruikte funktie is f(x,y)=x^2+y^2-R^2; deze funktie is 0 op
1 De door u geselecteerde namen worden op een op het scherm
1 De Spectrum ROM berekent cirkels met behulp van een nog weer
1 Daarnaast worden er nog twee MC-blokjes met repectievelijk de
1 Daarnaast worden er nog twee MC-blokjes met
1 Clear window:1, scrn:2, frame:3
1 CIRCLE-txt
1 CIRCLE
1 Basic 4.0. Het volgende machinecode programma versnelt het
1 BOOKLT-txt
1 BOOKLET-A6f
1 BOOKLET-A6, moet met een tweetal factoren rekening worden
1 BOOKLET-A6 voor de DISCiPLE.
1 BETA-BASIC gegrepen hoeft te worden, om toch iets meer te kunnen
1 Als u dan ook nog een keuze maakt uit de 9 geboden lettertypes,
1 Als d_oud<0, dan wordt A gekozen en de funktie voor Ma berekend:
1 A en B (zie figuur 3).
1 ;"roelrun"
1 ;"kies 1-23 => ";p
1 ;"keuze=";
1 ;"Zet printer on-line!"
1 ;"Use these keys:";
1 ;"Use SPACE";
1 ;"SIDE ";side
1 ;"SHEETS: ";scrsh;
1 ;"SHEET ";sh;
1 ;"Press....."
1 ;"Press ENTER, or
1 ;"PRINTING SHEET ";sh;" SIDE ";side
1 ;"PRINTING COVER"
1 ;"PRESS ANY KEY TO CONTINUE":
1 ;"PAGES : ";page;
1 ;"Nog een keer (J/N) ?":
1 ;"INSERT COVER SHEET";
1 ;"INSERT ";
1 ;"Hoeveel pixels moeten"''" de straallengtes verschillen ?":
1 ;"FILE-LENGTH : ";fl;" bytes"
1 ;"ENTER TO FINISH"
1 ;"DENK ZELF OM regels 9998 en 9999"
1 ;"D.DRIVE: ";dr
1 ;"CURRENT FILE: """;f$;"""";
1 ;"COVER TEXT"
1 ;"COVER :";(" NO"
1 ;"BOOKLET-A6":
1 ;"5.INPUT TEXT";
1 ;"4.COVER Y/N";
1 ;"3.DIRECTORY";
1 ;"2.PRINT BOOK";
1 ;"1.LOAD FILE";
1 ;"-"+e$+" + "+e$+"-":
1 ;""+("* START *"
1 ;" BOOKLET: A6 ":
1 ;" OPUS ":
1 8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
1 888888888888888888888888888888888 8888888888888888888 8888888888888888888 88888888888888888888 88888888888888888888 888888888888888888888888888888888888888888888888888888888888888888888888888
1 65535 en met middelpunt met x en y tussen -32768 en 32767,
1 26794,32 laadt het systeem met zoekbytes en met 26794,24 zonder.
1 1;"DISCIPLE":
1 0000000000000000000000xxxxxxxxxx8888888888888888888888iiiiiiiiii8000000000000000000888hhhhhhhhhh8000000000000000000888hhhhhhhhhh8000000000000000000888hhhhhhhhhh8000000000000000000888hhhhhhhhhh88888888888888888888888888888888888xxxxxxxxxx8888888888888888888
1 0000000000000000000000000000000088888888888888888888888888888888800000000000000000088888888888888000000000000000000888888888888880000000000000000008888888888888800000000000000000088888888888888888888888888888888888888888888888888888888888888888888888888888v
1 00000000000000000000000000000000888888888888888888888888888888888000000000000000000888888888888880000000000000000008888888888888800000000000000000088888888888888000000000000000000888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888 8888888888888888888 8888888888888888888 88888888888888888888 88888888888888888888 888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888 8888888888888888888 8888888888888888888 88888888888888888888 88888888888888888888 88888888888888888888888888888888888888888888888888888888888888888888
1 ,n2;n$(z):
1 ,"MAIN MENU","","File operations","Disk operations","Miscellanious",""
1 ,"FILE MENU","","Catalogue BASIC","Cat. complete","Extended catalog","Rename file","Copy files (1>3)","Copy files (1>6)","Copy files (6>1)","To main menu",""
1 ,"DISK MENU","","Rename disk","Compact disk","Copy disk (1>3)","Change drive","Format disk","Format ramdisk 6","Destroy ramdisk ","To main menu",""
1 +" is empty
1 ********************************************* end.
1 * Uitleg SGG-BULLETIN *
1 )="* START *":
1 )=" BORDERS":
1 )=" OUTPUT":
1 )=" LABEL":
1 )=" INPUT"
1 );"(";y;")"
1 );"(";x;")";e$(
1 (x,y) op de cirkel kunnen we zeven andere, op de cirkel gelegen
1 "READ DIR","SELECT DIR","NEW LABEL","ADD NAME","ADD TITLE","PRINTOUT"
1 "PRINTLABEL",("Drive: "+
1 "NAME? ";a$:
1 "FILENAME? ";f$
1 "DIV. FONTS","ZX = FONT1","LEFT TXT","CENTER TXT","RIGHT TXT","NOs ON/OFF"
1 "DISC TITLE";s$:
1 "1: =======","2: #######","3:
1 ","5: xxxxxxx","6: X-MAS"
1 " Discovery"''" Running"''" System 2.7";
1 we dan een routine die
1 reserve ruimte voor DISCiPLE regels
1 naar save regels
1 met anderen, om de 512 bytes vreemde
1 Set up SCREEN
1 Select option
1 Select DIR
1 Save TIJDELIJK screen
1 SIDE MESSAGE
1 SCREENTEXT
1 SAVE: BASIC+MC+Fontfs
1 SAVE BASIC
1 Retore SCREEN$
1 R.Koning 1989":
1 R.Biesma
1 PRINTOUT
1 PRINTLAB
1 PRINT PAGE'S
1 PRINT OUT
1 PRINT COVER
1 PAGE LAYOUT
1 NUMMERING
1 Menu keuze
1 MENU - DATA
1 Load TIJDELIJK screen
1 LABEL X DEMO
1 INPUT COVER TEXT
1 Hoe werkt dit programma en hoe kom je erop?
1 Handle menus
1 Function defs
1 Drive SWITCH
1 De startwaarde van d is te vinden door f(1,R-0.5) uit te
1 DRAW SCREEN
1 CHECK DIR
1 CHANGE FONT
1 CENTER TXT
1 AUTOSTART
1 ADD TITLE
1 ADD NAME
1 : window SIZE";
1 : window SCROLL"
1 * novembernr. 1993 *
1 SNELLE
1 Move window into box? (char)
1 Monochrome window:1, screen:2
1 Fetch window from box? (char)
1 CIRCEL
1 : window MOVE";
1 (in BASIC) LET d=d+2*x+3
1 Voor diegenen die de Mail Merge mogelijkheid nooit gebruiken
1 In de tweede plaats veroorzaken voorzieningen voor de Mail
1 In de eerste plaats wordt bij een Special File geen lengte
1 De verschillen tussen de OPUS versie en de DISCiPLE versie
1 De bijzondere manier van wegschrijven van de Special Files
1 Bij het voor de DISCiPLE aanpassen van het OPUS programma
1 7 SAVE d1 "TASCODE2" CODE 27392,10230
1 6 SAVE d1 "TASCTRL" CODE 25000,2390
1 5 POKE 26794,24: POKE 33831,201
1 4 PRINT PEEK 26794, PEEK 33831
1 3 dan LOAD d1 "TASCODE2" CODE 27392,10230
1 2 dan LOAD d1 "TASCTRL" CODE 25000,2390
1 1 geef met een lege computer CLEAR 24999
1 * TORNADO *
1 : return BASIC"
1 : Help Page";
1 (of de bij u gebruikte namen).
1 (de namen kunnen bij u iets afwijken, gebruik die dan).
1 (als de getallen niet 32 en 192 zijn dan heeft u een andere
1 TASWORD versie en zit er niets anders op dan te stoppen).
1 Does not fit here
1 d_nieuw=f(Xp+2,Yp-1.5)=(Xp+2)^2+(Yp-1.5)^2-R^2
1 d_nieuw=f(Xp+2,Yp-0.5)=(Xp+2)^2+(Yp-0.5)^2-R^2
1 No more room
1 Box "+
1 60 NEXT r
1 50 LET l=USR 60000
1 45 POKE 23300,PEEK 23670: POKE 23301,PEEK 23671
1 40 RANDOMIZE r: REM straal
1 30 NEXT r
1 30 FOR r=1 TO 87
1 25 POKE 23298,PEEK 23670: POKE 23299,PEEK 23671
1 20 RANDOMIZE 87: REM y coordinaat
1 20 CIRCLE 127,87,r
1 15 POKE 23296,PEEK 23670: POKE 23297,PEEK 23671
1 10 RANDOMIZE 127: REM x coordinaat
1 10 FOR r=1 TO 87
1 +SCREEN (
1 d_oud=f(Xp+1,Yp-0.5)=(Xp+1)^2+(Yp-0.5)^2-R^2
1 SBC HL,DE ;IF x>y
1 SBC HL,DE ;HL=q-x.
1 SBC HL,DE ;HL=p-x.
1 SBC HL,BC ;LET d=1-r.
1 SBC HL,BC ;IF x=y
1 SBC HL,BC ;HL=q-y.
1 SBC HL,BC ;HL=p-y.
1 RET Z ;THEN klaar.
1 RET NZ ;terug als HL>=256.
1 RET NZ ;keren.
1 RET NC ;dus terugkeren als DE>=176.
1 RET C ;THEN klaar.
1 RET ;Einde.
1 PUSH HL ;Bewaar d.
1 PUSH HL ;Bewaar d opnieuw.
1 PUSH DE
1 PUSH BC ;De PLOT-routine in de ROM
1 POP HL ;Verwijder p-x.
1 POP HL ;Verwijder p+y of p-y.
1 POP HL
1 POP DE ;DE=x.
1 POP DE
1 POP BC
1 ORG 60000
1 ORG 23296
1 OR D ;Ook als DE>=256 meteen terug-
1 LD L,C
1 LD HL,1
1 LD H,B
1 LD E,L
1 LD E,H
1 LD D,H ;LET x=0.
1 LD C,L
1 LD B,E ;verwacht y in B en x in C.
1 LD A,E ;Met PLOT kun je echter maximaal
1 JR Z,skip2 ;IF x=0 THEN GOTO skip2.
1 JR Z,skip1 ;IF x=0 THEN GOTO skip1.
1 JR NZ,negtiv ;ELSE LET d=d+(x-y)*2+5.
1 JP loop ;GOTO loop.
1 INC HL
1 INC DE ;LET x=x+1.
1 EX DE,HL ;HL=x, DE=q-x.
1 EX DE,HL ;HL=x, DE=q+y.
1 EX DE,HL ;HL=x, DE=p-x.
1 EX DE,HL ;HL=x, DE=d.
1 EX DE,HL ;HL=q-y, DE=p-x.
1 EX DE,HL ;HL=q-y, DE=p+x.
1 EX DE,HL ;HL=q+y, DE=p+x.
1 EX DE,HL ;HL=q+x, DE=x
1 EX DE,HL ;HL=p-x, DE=q-y.
1 EX DE,HL ;HL=p-x, DE=q+y.
1 EX DE,HL ;HL=p+x, DE=x.
1 EX DE,HL ;HL=p+x, DE=q-y.
1 EX DE,HL ;DE=q+x.
1 EX (SP),HL ;Bewaar x, HL=q-y.
1 EX (SP),HL ;Bewaar x, HL=p-y.
1 EX (SP),HL ;Bewaar x, HL=p+x.
1 EX (SP),HL ;Bewaar q-y, HL=x.
1 EX (SP),HL ;Bewaar p-y, HL=x.
1 EX (SP),HL ;Bewaar p-x, HL=x.
1 EX (SP),HL ;Bewaar p+y, HL=x.
1 DUMP 60000
1 DEC BC
1 CP 176 ;176 pixels verticaal plotten,
1 CALL plot ;PLOT p-y,q-x.
1 CALL plot ;PLOT p-y,q+x.
1 CALL plot ;PLOT p-x,q-y.
1 CALL plot ;PLOT p-x,q+y.
1 CALL plot ;PLOT p+y,q-x.
1 CALL plot ;PLOT p+y,q+x.
1 CALL plot ;PLOT p+x,q-y.
1 CALL plot ;PLOT p+x,q+y.
1 CALL #22E5 ;Roep de PLOT-routine aan.
1 BIT 7,D ;IF d<0 THEN LET d=d+x*2+3
1 AND A ;pixels horizontaal, keer meteen
1 ADD HL,DE ;HL=q+x.
1 ADD HL,DE ;HL=p+x.
1 ADD HL,DE
1 ADD HL,BC ;HL=p+y.
1 ADD HL,BC ;HL=p+y
1 LET y=y+1
1 LET d=d+2*(x-y)+5
1 ******************************
1 R^2*sin(h)^2+R^2*cos(h)^2=R^2
1 veel plezier.