import sys, tty, termios, time # global variables: odata = {} ondata = 0 # changes required: # all code made lower case # : between statements becomes ; # string variables get $ replaced by _str (A$ -> a_str) # = in conditions replaced by == # <> in conditions replaced by != # all subroutines must be placed before main program # BASICODE statements: # PRINT as-is, replace ; with , to suppress newline # INPUT(var) -> var = input() # GOTO recode! # GOSUB 100 -> def gosub100() at target, make variables used # global, use gosub100() # easy mistake: gosub100 rather than gosub100(), no error/warning! # RETURN as-is # FOR i=1 TO 10 -> for i in range(1, 10+1) # FOR i=1 TO 10 STEP 2 -> for i in range(1, 10+1, 2) # watch out for modification of index in the loop, # when that happens, replace for loop with while loop # NEXT -> loop ends, NEXT statement itself is left out # IF..THEN (no else) -> may need to add () around condition, THEN -> : # use is often 1100 IF A=1 THEN 1150 replace with: # if (a==1): pass # else: # statements upto (not including) line 1150 indented # ON..GOTO recode! # RUN -> pyton # ON..GOSUB recode! # STOP -> exit() # END -> exit() # DIM var$(10) -> var_str = {} # READ var -> (replacement function) read(var) # DATA "text" -> (replacement function) data("text") # RESTORE -> (replacement function) restore() # REM comments -> # REM comments # BASICODE functions: # TAB (only in print statement) # ABS # SGN # INT as-is # SQR # SIN # COS # TAN # ATN # EXP # LOG # ASC as-is (replacement function) # VAL # LEN as-is # CHR$(VAR) -> (replacement function) chr(var) # LEFT$(A$, 3) -> (replacement function) left(a_str, 3) # MID$(A$, 3, 2) -> (replacement function) mid(a_str, 3, 2) # RIGHT$(A$, 3) -> (replacement function) right(a_str, 3) # replacement functions for BASIC commands and functions # that are missing or use different syntax in Python def asc(ostr): return ord(ostr) def data(ostr): global odata, ondata odata[ondata] = ostr ondata += 1 def left(ostr, on): return ostr[:on] def mid(ostr, ostart, on): return ostr[ostart - 1:ostart - 1 + on] def read(): global odata, oidata oi = oidata if (oidata < ondata): oidata = oidata + 1 return odata[oi] else: return "" def restore(): global oidata oidata = 0 def right(ostr, on): return ostr[-on:] # standard basicode functions def gosub100(): # Clear screen. sys.stdout.write("\033[2J\033[0;0H") def gosub110(): # Set cursor to position given by the variables ho and ve. sys.stdout.write("\033[" + str(ve) + ";" + str(ho) + "H") def gosub120(): # Read cursor position and return it in variables ho and ve. global ho, ve ofd = sys.stdin.fileno() old_settings = termios.tcgetattr(ofd) tty.setraw(sys.stdin.fileno()) sys.stdout.write("\033[6n") ostring = "" ochar = ";" #while (ochar != "[" and not(ochar < "\033" or ochar == " " or ochar > ";")): while (ochar != "R"): ochar = sys.stdin.read(1) ostring += ochar termios.tcsetattr(ofd, termios.TCSADRAIN, old_settings) if (ostring[0:2] == "\033["): ostring = ostring.split(";") ho = int(ostring[1][0:-1]) ve = int(ostring[0][2:]) else: ho = 40 ve = 24 def gosub200(): # Read key on keyboard and return it in in_str. Return empty string if no key available. global in_str in_str = "" def gosub210(): # Wait and read a key on the keyboard and return it in in_bc. global in_str in_str = "" ofd = sys.stdin.fileno() old_settings = termios.tcgetattr(ofd) tty.setraw(sys.stdin.fileno()) in_str = sys.stdin.read(1) termios.tcsetattr(ofd, termios.TCSADRAIN, old_settings) if (in_str == "\003"): print "^C" exit() def gosub250(): # Beep. sys.stdout.write("\007") def gosub260(): # Return random number between 0 and 1 in rv. global rv rv = random() def gosub270(): # Return the amount of free memory in fr. global fr fr = 65535 def gosub300(): # Convert number sr to string, returned in sr_str global sr_str sr_str = "%f" & sr def gosub310(): # Convert number sr to fixed width string, width=ct places after decimal point=cn, returned in sr_str global sr_str oformat = "%" + str(ct) + "." + str(cn) sr_str = oformat % sr def gosub350(): # Print SR$ on the printer. (not implemented) return def gosub360(): # Newline on the printer. (not implemented) return # start of program: def gosub1800(): global in_str # 1800 IF(IN$<"a") OR(IN$>"z") THEN RETURN if(in_str<"a") or(in_str>"z"): return # 1810 IN$=CHR$(ASC(IN$)-ASC("a")+ASC("A")) in_str=chr(asc(in_str)-asc("a")+asc("A")) # 1820 RETURN return def gosub1900(): global sp, sp_str # 1900 SP$="":IF SP<1 THEN RETURN sp_str="" if (sp<1): return # 1910 FOR I=1 TO SP:SP$=SP$+" ":NEXT I for i in range(1, sp + 1):sp_str=sp_str+" " # 1920 RETURN return def gosub20000(): global sr_str, pt, rt, vp # 20000 REM afdruk subroutine # 20010 IF sr_str="" THEN RETURN if (sr_str==""): return # 20020 IF PT=1 THEN 20060 if (pt==1): pass else: # 20030 PRINT SR$ print sr_str # 20040 RT=RT+1:IF RT=VP-4 THEN GOSUB 21000 rt=rt+1 if (rt==vp-4): gosub21000() # 20050 RETURN return # 20060 SR$=KL$+SR$:GOSUB 350:GOSUB 360:RT=RT+1 sr_str=kl_str+sr_str;gosub350();gosub360();rt=rt+1 # 20070 IF RT=VP THEN GOSUB 22000 if (rt==vp): gosub22000() # 20080 RETURN return def gosub21000(): global rt, ho, ve, vp, kf, i, lr, n, sr, n_str, sr_str, bb_str, a_str, h, hp # 21000 REM scherm vol # 21010 IF RT=0 THEN RETURN if (rt==0): return # 21020 HO=0:VE=VP-1:GOSUB 110 ho=0;ve=vp-1;gosub110() # 21030 PRINT""; print"", # 21040 GOSUB 210:GOSUB 100:RT=0:RETURN gosub210();gosub100();rt=0;return def gosub22000(): global rt, ho, ve, vp, kf, i, lr, n, sr, n_str, sr_str, bb_str, a_str, h, hp # 22000 REM papier vol # 22010 IF KF=1 THEN FOR I=1 TO LR:GOSUB 360:NEXT I:GOTO 22050 if (kf==1): for i in range(1, LR + 1): gosub360() else: # 22020 PRINT"Zet de printer bovenaan nieuwe pagina" print"Zet de printer bovenaan nieuwe pagina" # 22030 PRINT"en druk daarna op een toets." print"en druk daarna op een toets." # 22040 GOSUB 210:GOSUB 100 gosub210();gosub100() # 22050 RT=0:N=N+1:SR=N:GOSUB 300:N$=SR$ rt=0;n=n+1;sr=n;gosub300();n_str=sr_str # 22060 SR$="Afl. no: "+DD$+", pag. "+N$ sr_str="Afl. no: "+DD_STR+", pag. "+n_str # 22070 RL=LEN(SR$):GOSUB 20060:SR$="" rl=len(sr_str);gosub20060();sr_str="" # 22080 FOR I=1 TO RL:SR$=SR$+"-":NEXT I for i in range(1, rl + 1):sr_str=sr_str+"-" # 22090 GOSUB 20060:SR$=" ":GOSUB 20060:RETURN gosub20060();sr_str=" ";gosub20060();return def gosub23000(): global bb_str, kl, h, a_str, hp while (1 == 1): # 23000 IF BB$="$$$$$" THEN KL=1:H=1:RETURN if (bb_str=="$$$$$"): kl=1;h=1;return # 23010 IF A$<>"" THEN A$=A$+" " if (a_str!=""): a_str=a_str+" " # 23020 A$=A$+BB$:READ BB$ a_str=a_str+bb_str;bb_str=read() # 23030 IF LEFT$(BB$,1)="#" THEN H=1:RETURN if (left(bb_str,1)=="#"): h=1;return # 23040 IF LEFT$(BB$,1)="." THEN H=1:RETURN if (left(bb_str,1)=="."): h=1;return # 23050 IF A$=". " THEN RETURN if (a_str==". "): return # 23060 IF LEFT$(A$,1)="#" THEN RETURN if (left(a_str,1)=="#" ): return # 23070 IF LEN(A$)".") AND(H<2) THEN 24070 if (left(a_str,1)!=".") and(h<2): pass else: # 24030 A$=RIGHT$(A$,LEN(A$)-1) a_str=right(a_str,len(a_str)-1) # 24040 IF H<2 THEN 24070 if (h<2): pass else: # 24050 IF PT=0 THEN GOSUB 21000 if (pt==0): gosub21000() # 24060 IF PT=1 THEN SR$=" ":GOSUB 20000 if (pt==1): sr_str=" ";gosub20000() # 24070 IF A$=" " THEN SR$=A$:A$="":GOSUB 20000:GOTO 24160 if (a_str==" "): sr_str=a_str;a_str="";gosub20000() else: while (1 == 1): # 24080 L=LEN(A$):IF(H=0) AND(L= 1): #for i in range(hp, 1 - 1, -1): # 24110 IF MID$(A$,I,1)=" " THEN J=I:I=1 if (mid(a_str,i,1)==" "): j=i;i=1;break i = i - 1 # 24120 NEXT I:IF J=0 THEN J=HP:L=L+1 if (j==0): j=hp;l=l+1 # 24130 SR$=LEFT$(A$,J-1):A$=RIGHT$(A$,L-J) sr_str=left(a_str,j-1);a_str=right(a_str,l-j) # 24140 GOSUB 20000:GOTO 24080 gosub20000() # 24150 IF H=2 THEN SR$=" ":GOSUB 20000 if (h==2): sr_str=" ";gosub20000() # 24160 H=0:RETURN h=0;return # 25000 DATA"250, woe 20 sep '89" ondata = 0 oidata = 0 data("250, woe 20 sep '89") data("#JUBILEUM") data("Voor u ligt de 250-ste Beeldkrant, een") data("jubileumnummer! Het is alweer bijna vier jaar") data("geleden dat de eerste Basicode Beeldkrant in") data("Hobbyscoop werd uitgezonden (op 5 december") data("1985). Sindsdien is dit elektronisch berichten-") data("medium een vast onderdeel van ons programma") data("geworden. En terecht, want de Beeldkrant wordt") data("door vele Hobbyscoop luisteraars gelezen...") data("en gewaardeerd!") data("#WEDSTRIJD") data("Om deze nieuwe mijlpaal in het bestaan van de") data("Beeldkrant te vieren, schrijven we een opstel-") data("wedstrijd uit. Wij verzoeken u ons een") data("grappig of serieus voorval te beschrijven") data("waarbij Hobbyscoop een rol speelt. Het") data("verhaaltje of de anecdote mag 1 of maximaal") data("2 kantjes A4 beslaan. De meest originele") data("verhalen worden door ons beloond met een zeer") data("fraai ontworpen, hangende telefoon plus") data("geheugens, een pennenset met inscriptie,") data("boeken- of platenbonnen naar wens.") data(". ") data("Maak onze jubileum wedstrijd een succ>. Op") data("een of andere manier zullen we uw verhaal of") data("anecdote publiceren. Komen er veel reacties") data("dan kunnen we ze mogelijk bundelen. Liefst") data("hebben we uw reacties als vanouds naar") data("Postbus 1200, 1200 BE in Hilversum. Graag") data("ontvangen we uw inzending VOOR 15 oktober a.s.") data("#NIEUW: BEELDKRANT COLUMN") data("We hebben de afgelopen vier jaar diverse") data("nieuwtjes in de Beeldkrant geintroduceerd,") data("zoals bv. overzichten van frequenties voor") data("zend- en luisteramateurs, mini-cursussen,") data("non-commerciele advertenties, en natuurlijk") data("de landelijke actuele computer-agenda. Om") data("deze elektronische krant nog completer te") data("maken, voegen we daar nu opnieuw iets aan toe:") data("een heuse COLUMN! We hebben Thijs Timmerman,") data("student informatica te Delft, communicatie") data("deskundige en verwoed snuffelaar in Fido-") data("databanken, bereid gevonden om wekelijks een") data("stukje te schrijven voor de Beeldkrant.") data("Thijs heeft 'Delfts Blauw' als naam voor zijn") data("column gekozen. We wensen hem veel inspiratie") data("en u veel leesplezier toe!") data("#DELFTS BLAUW") data("De telefoon moest weer eens worden omgebouwd.") data("Het betreft een apparaat dat kan werken volgens") data("zowel Impuls Druktoets Keuze als Toon Druktoets") data("Keuze. Iedereen heeft het echter altijd over") data("pulsjes en toontjes. Het woord 'toonpuls' leidt") data("in dit opzicht tot verwarring.") data(". ") data("Mijn telefoon beschikt echter niet over een") data("schakelaartje waarmee je dat eenvoudig kunt") data("omzetten. Toen ik het beestje dan ook kocht,") data("stond deze op puls en was zo op elke centrale") data("te gebruiken. Na nog geen dag begon dat al te") data("vervelen en werd het ding opengeschroefd. Het") data("aansluitpunt voor de optionele schakelaars") data("werd gevonden en de zaak werd omgelegd. Leve") data("het Dual Tone Multi Frequency systeem en") data("vooral de toepassing daarvan in het Toon") data("Druktoets Keuze systeem.") data(". ") data("Het uberhaupt aangesloten zijn op een") data("semi-electronische centrale realiseer je je") data("immers pas als je ineens op een mechanische") data("centrale bent aangewezen. Het moeten wachten") data("na het opnemen van de hoorn op de voorkiezer") data("(VK) totdat deze een vrije uitgang heeft") data("gevonden en zo het kiezen kan aanvangen. Of") data("de irritante schakelklikken na het kiezen van") data("een cijfer. Het zweven van kiestonen of het") data("helemaal afwezig zijn van signalering. Terwijl") data("complete regio's zijn gedigitaliseerd en het") data("interlokale verkeer binnen die regio's over") data("glasvezel loopt (waarbij centrales i.v.m.") data("opvang storingen/ voorkoming overbelasting") data("vaak meervoudig benaderbaar zijn), wordt het") data("verkeer in hele stedelijke gebieden") data("afgewikkeld door mechanische centrales met") data("al hun nukken en eigenaardigheden.") data(". ") data("Er wordt echter naar gestreefd om in 1995 alle") data("mechanische centrales buiten werking gesteld") data("te hebben. Het hele net zal dan minimaal") data("semi-electrisch zijn. Landelijk volledig stil") data("telefoneren zal dan een feit zijn. De bel") data("rinkelt al nog voordat de toets van het laatste") data("cijfer van het telefoonnummer is losgelaten.") data("Even nadenken over wat er eigenlijk gezegd") data("moet worden als er wordt opgenomen is er niet") data("meer bij, er kan elk moment worden opgenomen.") data("Misschien wel door een Warffums ISDN-toestel...") data(".Thijs [WOEF] Timmerman.") data("#RUIMTE-STATION MIR") data("Op 5 september om 2138 UTC is SOYUZ-TM 8") data("gelanceerd vanaf Baykonoer met aan boord de") data("twee Russische kosmonauten Aleksandr Viktorenko") data("(42 jaar) en Aleksandr Serebrov (45 jaar). Op") data("7 september 2225 UTC werd de SOYUZ") data("aangekoppeld aan de koppelpoort van KVANT.") data("Omdat de automatische koppeling niet goed") data("verliep moesten de laatste meters van de") data("koppelmanoeuvre met de hand worden uitgevoerd.") data(". ") data("Op 16 oktober moet de nieuwe module D worden") data("gelanceerd met een PROTON-raket vanaf") data("Baykonoer. Na een autonome vlucht van een week") data("moet deze 12,5 meter lange module aan") data("MIR aangekoppeld worden. Deze module moet het") data("uitvoeren van ruimtewandelingen (EVA's)") data("vergemakkelijken. Aleksandr Serebrov wil") data("tijdens zijn verblijf in de ruimte vijf") data("ruimtewandelingen maken met behulp van de") data("nieuwe ruimtescooter SPK, ook wel ORLAN") data("genoemd, dat is Russisch voor 'zeearend'.") data(". ") data("Op 27 oktober 1989 zal het ruimtevrachtschip") data("Progress-M2 worden gelaceerd. Twee dagen") data("later zal de koppeling aan de KVANT plaats") data("vinden (aan achterzijde MIR-station).") data(". ") data("Op 28 januari 1990 zal de Soyuz-TM8 capsule") data("worden teruggezet van de voorzijde van MIR") data("naar KVANT. (De Progress-M2 is dan alweer") data("losgekoppeld). Op 30 januari 1990 zal nl. de") data("tweede nieuwe module T worden gelanceerd.") data("Deze zal op 6 februari aan de voorzijde van") data("MIR aankpelen. In deze module zullen") data("materiaal- proeven worden uitgevoerd. Men wil") data("daarin halfgeleiders en ook supergeleidende") data("materialen produceren. Met de toevoeging van") data("de twee nieuwe modules wordt de massa van het") data("ruimtestation opgevoerd van 34 naar 70 ton.") data(". ") data("Tot slot van dit overzicht vermelden we alvast") data("dat op 11 feb. de Soyuz-TM9 zal worden") data("gelanceerd, met de aflossers voor de huidige") data("bemanning, die op 19 feb. naar aarde zal") data("terugkeren met de Soyuz-TM8.") data(". ") data("Eind september is MIR een week lang weer goed") data("zichtbaar in de eerste uren na zonsondergang") data("tijdens hoge passages over Nederland van west") data("naar oost. Het radioverkeer van MIR is te") data("beluisteren op 143,625 MHz. (Met dank aan") data("Nico Janssen en Chris van den Berg)") data("#OLYMPUS 1") data("Olympus 1, de communicatie satelliet die") data("gebouwd werd door een consortium van") data("ruimtevaart instituten, heeft een aantal") data("tests ondergaan die onlangs succesvol werden") data("afgerond. De tests werden afgenomen nadat") data("de satelliet zijn geostationaire positie op") data("19 graden Westerlengte had bereikt.") data("Tot eind oktober zullen er nog diverse") data("tests uitgevoerd moeten worden voordat de") data("satelliet wordt vrijgegeven voor gebruik.") data(". ") data("Olympus 1 staat onder controle van ESA's") data("European Space Operations Centre in Darmstadt,") data("Duitsland. Zodra de satelliet in gebruik is") data("genomen, zal de controle worden overgenomen") data("door ESA's grondstation in Fucino, Italie.") data(". ") data("De satelliet werd gelanceerd op 11 juli j.l.") data("vanuit Kourou, Frans Guyana, en woog 2.612") data("kg. De satelliet werd voor ESA gebouwd om") data("een groot satellietcommunicatie platform") data("te demonstreren. Het gebruik van allerlei") data("satelliet services en technieken krijgt") data("hierdoor een extra stimulans.") data("#MINDER VERKEER DOOR TELECOMMUNICATIE") data("Het toenemend gebruik van telecommunicatie") data("leidt in de toekomst tot minder gereden") data("kilometers. Vooral in de periode na 2000 is") data("het effect van telecommunicatie op verkeer") data("en vervoer van betekenis. De Nederlandse") data("Organisatie voor Toegepast") data("Natuurwetenschappelijk Onderzoek (TNO) komt") data("tot deze conclusie in een zojuist verschenen") data("rapport, dat is opgestel Rn opdracht van") data("NOVEM, Nederlandse Maatschappij voor Energie") data("en Milieu B.V.") data("#TOEKOMST-SCENARIO'S") data("TNO onderzocht niet alleen de invloed van") data("teleommunicatie op verkeer en vervoer, maar") data("oo de gevolgen daarvan voor energie en") data("milieu. Uitgaande van drie scenario's heeft") data("de onderzoeksgroep de effecten van") data("telecommunicatie berekend in de jaren 2000") data("en 2025. Door onder andere teleshopping,") data("thuiswerken en het thuis volgen van onderwijs,") data("neemt het verkeer en vervoer in 2025 af met") data("maximaal 15%. Anderzijds leidt") data("telecommunicatie indirect tot een toename") data("van het aantal afgelegde kilometers. Vooral") data("in hun vrije tijd zullen mensen geneigd zijn") data("zich vaker en over grotere afstanden te") data("verplaatsen. Per saldo zal het aantal") data("afgelegde kilometers echter met 5% afnemen.") data("#MINDER WOONWERKVERKEER") data("De afname van de mobiliteit heeft vooral") data("betrekking op het woonwerk verkeer. Aangezien") data("dit verkeer met name in de spitsuren op de") data("weg is, kan een vermindering gunstige gevolgen") data("hebben voor files, luchtverontreiniging en") data("geluidshinder. Het overheidsbeleid zou zich") data("volgens de onderzoekers moeten richten op het") data("stimuleren van deze effecten. Daarentegen zou") data("de toename van de mobiliteit buiten de spits") data("moeten worden afgeremd. Om na te gaan ho dit") data("moet gebeuren, is er verder onderzoek nodig.") data("#GUNSTIGE GEVOLGEN VOOR HET MILIEU") data("De vermindering van verkeer en vervoer heeft") data("ook gunstige gevolgen voor het energieverbruik") data("en het milieu. De TNO-onderzoekers verwachten") data("in 2025 per saldo een energiebesparing van") data("3 tot 6% en een afname van schadelijke") data("emissies met 5 tot 10%. Telecommunicatie zorgt") data("dan bovendien voor een spreiding in de tijd") data("van emissies, wat bv. voor de b>hrijding van") data("stankoverlast spitsuren van belang is.") data(". ") data("Hoewel de genoemde percentages geenszins") data("verwaarloosbaar zijn, is het effect van") data("telecommunicatie in deze toch beperkt. Andere") data("factoren, zoals de mate van economische groei") data("en de aard van de technologische") data("ontwikkelingen, hebben een grotere invloed.") data("#MAANDAG-UITZENDING VERVROEGD") data("Met ingang van 1 oktober 1989 is de zendtijd-") data("indeling van de middengolf- zender Radio 5") data("enigszins veranderd. Hierdoor zal vanaf oktober") data("de computer- bijlage van Hobbyscoop op de") data("maandagavond 35 minuten naar voren worden") data("verplaatst: we zijn dan te beluisteren van") data("21.00 uur tot 21.30 uur. Dit betekent dus") data("tevens dat we 5 minuten zendtijd erbij krijgen!") data(". ") data("Radio 5 is te ontvangen op 1008 kHz (Flevoland)") data("en 891 kHz (steunzender Hulsberg). Deze") data("laatste frequentie is vooral belangrijk voor") data("luisteraars in Zuid-Limburg en Noordoost-") data("Belgie.") data(". ") data("De nieuwe zendtijd geldt voor de periode van") data("1 oktober 1989 t/m 31 december 1989. Daarna") data("zal er waarschijnlijk opnieuw het een en ander") data("gaan veranderen voor Hobbyscoop. Dus: blijf") data("luisteren, we houden u op de hoogte!") data("#AGENDA SEPTEMBER") data("Deze agenda bevat vooral veel actuele gegevens.") data("Voor een compleet overzicht van alle computer") data("bijeenkomsten verwijzen wij naar de Nieuwsbrief") data("van de landelijke Hobby Computer Club (HCC),") data("Postbus 149, 3990 DC Houten.") data(". ") data(".23 CC Rijnmond Vlaardingen 10:00 u") data(". Meerkoetstraat 1 (open dag)") data(".23 GGPC Groningen 10:45-11:15 u") data(". Kantine Philips Europaweg 8") data(".23 Sinclair GG Groningen 14:00 u") data(". 'Denksport' Oliemuldersweg 43") data(".23 MSX/CUC Mechelen (Belgie)") data(". 'Tivoli' Antwerpsesteenweg") data(".23 MSX/ C CC Groningen") data(". 'Sonde', Zonnelaan 30") data(".26 PTC Haarlem 19:00-22:00 u") data(". Scholengem. Verspronckweg 150") data(".26 MSX GG West-Brabant 19:30 u") data(". Nieuwe Markt 88 Roosendaal") data(".28 CC Rijnmond Vlaardingen 19:30 u") data(". 'Heipaal' Meerkoetstraat 1") data(".30 VCGN Rijswijk VLOOIENMARKT") data(". Lodewijk Makeblijde College") data(".30 MS(X)-DOS GG Groningen 11:30@u") data(". Isebrantsheerd 97 (Beyum)") data("$$$$$") # 30000 REM COPYRIGHT NOS HILVERSUM # 1000 A=600:GOTO 20:REM Hobbyscoop-krant # 1010 GOSUB 100:REM eerst scherm opmeten gosub100() # 1020 I=0:J=I:VE=I:IP=64:JP=IP:FOR A=1 TO 7 i=0;j=i;ve=i;ip=64;jp=ip for a in range(1, 8): # 1030 I=I+IP:HO=I:GOSUB 110:GOSUB 120:IF HO<>I THEN I=I-IP i=i+ip;ho=i;gosub110();gosub120() if (ho!=i): i=i-ip # 1040 J=J+JP:VE=J:GOSUB 110:GOSUB 120:IF VE<>J THEN J=J-JP j=j+jp;ve=j;gosub110();gosub120() if (ve!=j): j=j-jp # 1050 IP=IP/2:JP=JP/2:NEXT A:HP=I+1:VP=J+1 ip=ip/2;jp=jp/2 hp=i+1;vp=j+1 # 1060 REM begin programma # 1070 DIM K$(6) k_str = {} # 1080 GOSUB 100:PRINT"HOBBYSCOOPKRANT" gosub100();print"HOBBYSCOOPKRANT" # 1090 PRINT:PRINT"Naar P)rinter of S)cherm ?"; print;print"Naar P)rinter of S)cherm ?", # 1100 GOSUB 210:GOSUB 1800 while (1 == 1): gosub210() #GOSUB 1800 gosub1800() # 1110 IF(IN$<>"P") AND(IN$<>"S") THEN 1100 if(in_str!="P") and(in_str!="S"): pass else: break # 1120 PRINT IN$:PRINT print in_str;print # 1130 PT=1:IF IN$="S" THEN PT=0:GOTO 1310 pt=1 if (in_str=="S"): pt=0 else: # 1140 PRINT"Hoeveel letters per regel "; print"Hoeveel letters per regel ", # 1150 INPUT HP hp = input() # 1160 PRINT:PRINT"Kantlijnbreedte "; print;print"Kantlijnbreedte ", # 1170 INPUT SP:GOSUB 1900:KL$=SP$ ###sp = int(input());gosub1900();kl_str=sp_str sp = input();gosub1900();kl_str=sp_str # 1180 HP=HP-SP:IF SP>1 THEN HP=HP-SP+2 hp=hp-sp if (sp>1): hp=hp-sp+2 # 1190 PRINT:PRINT"Hoeveel regels tekst per pagina "; print;print"Hoeveel regels tekst per pagina ", # 1200 INPUT VP vp = input() # 1210 PRINT:PRINT"K)ettingformulieren of L)osse vellen ?"; print;print"K)ettingformulieren of L)osse vellen ?", while (1 == 1): # 1220 GOSUB 210:GOSUB 1800 gosub210();gosub1800() # 1230 IF(IN$<>"K") AND(IN$<>"L") THEN 1220 if ((in_str!="K") and(in_str<>"L")): pass break # 1240 PRINT IN$:PRINT print in_str;print # 1250 KF=1:IF IN$="L" THEN KF=0:GOTO 1280 kf=1 if (in_str=="L"): kf=0 else: # 1260 PRINT"Hoeveel lege regels onderaan vel "; print"Hoeveel lege regels onderaan vel ", # 1270 INPUT LR:PRINT lr = input();print # 1280 PRINT"Zet de printer klaar" print"Zet de printer klaar" # 1290 PRINT"en druk op een toets" print"en druk op een toets" # 1300 GOSUB 210 gosub210() # 1310 RT=0:H=0:N=1:KL=0 rt=0;h=0;n=1;kl=0 # 1320 REM print de kop # 1330 K$(0)="******************************" # 1340 K$(1)="* N.O.S.- HOBBYSCOOP *" # 1350 K$(2)="* RADIOTEKST *" # 1360 K$(3)="* BEELDKRANT MET DAARIN *" # 137` K$(4)="* OPGENOMEN DE *" # 1380 K$(5)="* LANDELIJKE COMPUTER AGENDA *" # 1390 K$(6)="******************************" k_str[0]="******************************" k_str[1]="* N.O.S.- HOBBYSCOOP *" k_str[2]="* RADIOTEKST *" k_str[3]="* BEELDKRANT MET DAARIN *" k_str[4]="* OPGENOMEN DE *" k_str[5]="* LANDELIJKE COMPUTER AGENDA *" k_str[6]="******************************" # 1400 GOSUB 100 gosub100() # 1410 SP=INT((HP-30)/2):IF PT=1 THEN SP=SP-3 sp=int((hp-30)/2) if (pt==1): sp=sp-3 # 1420 GOSUB 1900 gosub1900() # 1430 SR$=" ":GOSUB 20000 sr_str=" ";gosub20000() # 1440 FOR I=0 TO 6:SR$=SP$+K$(I):GOSUB 20000:NEXT I for i in range(0, 6 + 1):sr_str=sp_str+k_str[i];gosub20000() # 1450 RESTORE:READ DD$ restore();dd_str = read() # 1460 SR$=" ":GOSUB 20000 sr_str=" ";gosub20000() # 1470 A$="Aflevering no: "+DD$ a_str="Aflevering no: "+dd_str # 1480 SP=INT((HP-LEN(A$))/2):IF PT=1 THEN SP=SP-3 sp=int((hp-len(a_str))/2) if (pt==1): sp=sp-3 # 1490 GOSUB 1900 gosub1900() # 1500 SR$=SP$+A$:GOSUB 20000 sr_str=sp_str+a_str;gosub20000() # 1510 SR$=" ":GOSUB 20000 sr_str=" ";gosub20000() # 1520 SR$="Zend uw bijdragen voor onze";gosub20000() sr_str="Zend uw bijdragen voor onze";gosub20000() # 1530 SR$="beeldkrant aan:";gosub20000() sr_str="beeldkrant aan:";gosub20000() # 1540 SR$=" ";gosub20000() sr_str=" ";gosub20000() # 1550 SR$="N.O.S. Hobbyscoop Beeldkrant,";gosub20000() sr_str="N.O.S. Hobbyscoop Beeldkrant,";gosub20000() # 1560 SR$="Postbus 1200,";gosub20000() sr_str="Postbus 1200,";gosub20000() # 1570 SR$="1200 BE Hilversum.";gosub20000() sr_str="1200 BE Hilversum.";gosub20000() # 1580 A$="":REM print de overige data a_str="" # 1590 READ BB$ bb_str = read() while (1 == 1): # 1600 GOSUB 23000 gosub23000() # 1610 GOSUB 24000 gosub24000() # 1620 IF KL=0 THEN 1600 if (kl==0): pass else: break # 1630 END