Nederland f3,= België Bfr 45 Duitsland IM3,= Suriname sfi,=
JAWEANANANNNNAANNANANNNAANNNNAAIII\\N
evi CUC.- info
SPECTRAVIDEO COMPUTER USERS CLUB NL
SAAN
SV-COMPUTER GEBRUIKERS MAGAZINE
arenernsnnveravenrenenan: arenennrvenvenenvanreren
MSX
sof gwarenieuw®
programa’ Ss
VOORBEELDEN
19 KEY 1, “ beep" + CHR$(13)
29 KEY 2, * list” + CHR$(13)
39 KEY 3, “screen 1"
49 KEY LIST
193 ON KEY GOSUB 309, 490, 500, 699, 700 119 »
129 FOR T = 1 TO St READ A$
159 KEY T, " “ + A&
149 NEXT
159 t
169 DATA een, twee, drie, vier, vijf 179 1
189 KEY ON
199 1
209 A m A + 11 PRINT A1 GOTO 209 219 ' —=mmmenemen
302 T = it: GOTO 819
499 T = 2: GOTO 812
529 T = Je: GOTO 819
6292 T e= Ar GOTO 812
708 Te 5
829 1
819 IF INKEY$ > “* GOTO 819
822 1
859 PRINT “Functietoets nummer:"; T 849 1
859 RETURN
19 ON KEY GOSUB 89: KEY (1) ON
KEY 1, **
KEY STOP: PRINT "Druk F1 "y FOR X = 1 TO 25201 NEXT KEY ON
GOTO &2
PRINT: PRINT "Programma onderbreking "j
RETURN
SPECTRAVIDEO C,U.C, = BASIC INFORMATIE — KAART 35
KEY nummer, stringexpressie De eerste 15 karakters van de stringexpressie worden 'onder' de functietoets met het gegeven nummer (1-19) geplaatst. Van iedere toets kunnen de eerste zeven karakters onderin het beeld weergegeven worden (SCREEN @, 1).
KEY LIST De momentele 'inhoud’ van alle functietoetsen wordt op het beeldscherm weergegeven.
ON KEY GOSUB lijst met regelnunners
Deze instructie (die slechts een keer in het programma hoeft voor te komen) bepaalt de eerste regel van subroutines die aangeroepen zullen worden wanneer de betreffende functie- toets wordt ingedrukt; het lopende programma wordt dan onderbroken (interrupt). De lengte van de 'lijst met ragelnummers’ mag varieren van 1-12 getallen, gescheiden door komma's.
KEY (nummer) ON De functietoets 'interrupt' dient geactiveerd te worden met KEY ON (voor alle toetsen tege- lijk) of KEY (nummer) ON (als slechts een toets geactiveerd wordt).
KEY (nummer) OFF De functietoets 'interrupt’' voor een of alle functietoetsen wordt uitgeschakeld.
KEY (nummer) STOP
De functietoets ’interrupt’ voor een of alle functietoetsen wordt tijdelijk uitgeschakeld, Het indrukken van een functietoets leidt dus niet tot een programma onderbreking, maar wordt wel onthouden, zodat na de volgende KEY nummer) ON instructie deze onderbreking als- nag plaatsvindt.
COLOFON |
C.U.C.=info is het kontakt= orgaan van de SpectraVideo Computer Users Club nl,
Wouter Alexander Peter Zevenhoven
Rini Kikkert
Redactie:
Basicode:
C.U.C.=Congel voor Oost=Ned, Henk Hoff Westeinde 122 7671 CE Vriezenveen
Lezerspost, programma's, do= cumentatie, opgave adver= tenties, copy, manuscripten, monsters, opgaven leden, do nateurs en abonnementen: SpectraVIdeo C.U.C.
Postbus 202
2300 AE Leiden
Betaling lidmaatschapsgeld, donaties, advertenties, do= cumentatie en lezers=-service artiekelen: Ned, Middenstandsbank LEIDEN tegeVe SV Comp Users Club rek, 67,86,10,231 giro bank: 471359
Copyrights 1984 C,U,C, nl
Zonder schriftelijke toestem= ming mag niets uit deze uit= gave worden overgenomen of vermenigvuldigd, CONSUMENTENLIJN
SpectraVideo Int,
020 — 139,960
vrijdags 10,00 — 11,00 uur
Dhr, van der Roest
ne de ee a
| INHOUD
ARTIKELEN
7 Clubverslag 2k BASICODE corner
PRAKTIJK
6 Lang leve
9 Pythagoras
14 TV-tennis
17 Pendule
20 INPUT op SCREEN 1 21 Worteltrekken
25 Diamant
DIVERSEN
1 Colofon
1 Inhoud
3 Redaktorial
5 1/0 ports 16 Lezers-service 8 Agenda
RUBRIEKEN
hk Lezers in de pen 19 Informatie bulletin 5 22 Sintaks error
EXTRA BASIC informatie=-kaart 3
REDAKTORIAL
. Beste redaktie | eend Nn el Pe Mijne heren, à |
Beste Spectravideoisten,
Daar zitten we, "oude" SV, 328 gebruikers, nu za na de Firato. Een stuk wijzer en een illusie armer, De SV.328 is, zoals we reeds lang vreesden, GEEN MSX computer. Voor sommigen geen probleem, maar voor anderen, waaronder ikzelf, WEL,
In dit blad lijkt mij tusser al het lof, ook een woord van kritiek op zijn plaats. D Firato: het is nu officieel geworden, de S5V.328 is geen
MSX computer. Daar zit je nu
met je de bodem ingeslagen verwachtingen.
Beste C,U.C.-redaktie,
Misschien kan deze brief geplaatst in het Aangezien er wel meer zullen zijn die met de zelfde problematiek zitten. Het feit dat er meerdere zijn en dat de ontwikkelngen gevolgd gaan worden helpt in ieder geval een beetje,
Zet het goede werk voort en de groet jes van
Hans v d Meer Vechtstr 78 hs 1079 JL AMSTERDAM
Red, :
Een clubblad, zoals het onze,
is een soort podium, Als je er in komt te staan, ziet
|dereen je, of wat je te ver- [tellen hebt terecht is of iniet, Iedere toehoorder zal lop zijn eigen wijze reageren en 1zo ook de redactie, De brief ‘van Hans, zoals afgedrukt, is gs een uittreksel, Misschien zijn er meer die e‚e‚a. zo ervaren, maar of dat op feitelijke gronden berust? Verderop is er meer over te lezen,
Geachte Heer,
Hartelijk dank voor de C.U.C.-info’s. Ik ben erg tevreden met dit clubblad. Jammer dat men telkens 2 maanden moet wachten. Ik vindt het fantastisch dat er een SVI-club is. Er zijn hier twee boeken in het Duits over de SVI computers verschenen. Verder hoop ik dat de club flink mag groeien.
L. Cuyverg Stressemanstr 14 4152 KEMPEN Duitsland
Red, :
| Wij horen veel positieve re- \acties op onze activiteiten, | Nu zelfs uit Duitland, Bij de- \ze vermelden wij tevens een
| abonnee in Israël in het be- | stand te hebben, Wie gaat er nog verder wonen?
iedereen je en ook hoort ie-
I/O PORT R/W DESCRIPTION REMARKS
lOH W WRITE DATA PORT PRINTER 11H W DATA STROBE PRINTER 12H R STATUS (BIT O = '"O'" FOR READY) PRINTER 20H R RECEIVER BUFFER REGISTER MODEM W DIVISOR LATCH (LEAST SIGNLIFIC.) MODEM W TRANSMITTER HOLDING BUFFER REG. MODEM 21H W DIVISOR LATCH (MOST SIGNIFICANT) MODEM W INTERRUPT ENABLE REGISTER MODEM 22H W INTERRUPT IDENTIFICATION REG. MODEM 23H W . LINE CONTROL REGISTER MODEM 24H W READ MODEM CONTROL REGISTER MODEM 25H R LINE STATUS REGISTER MODEM 26H R READ MODEM STATUS REGISTER MODEM 28H R RECEIVER BUFFER ZEG (LEAST SIG.) RS-232 W DIVISOR BUFFER REGISTER RS-232 W TRANSMITTER HOLDING BUFFER REG. RS-232 29H W DIVISOR LATCH (MOST SIGNIFICANT) RS-232 W INTERRUPT ENABLE REGISTER RS-232 2AH W INTERRUPT IDENTIFICATION REG. RS-232 2BH W LINE CONTROL REGISTER RS-232 2CH W MODEM CONTROL REGISTER RS-232 2DH R LINE STATUS REGISTER RS-232 2EH R MODEM STATUS REGISTER RS-232 30H R FD-1793 STATUS REGISTER FLOPPY DISK W FD-1793 COMMAND REGISTER FLOPPY DISK 31H R/W FD-1793 TRACK REGISTER FLOPPY DISK 32H R/W FD-1793 SECTOR REGISTER FLOPPY DISK 33H R/W FD-1793 DATA REGISTER FLOPPY DISK 34H R READ INTRO AND DRQ O/P PINS FLOPPY DISK W DISK SELECT REGISTER FLOPPY DISK
(BIT O = "O0" TO SELECT DISK 1 BIT 1 = "O0" TO SELECT DISK 2) 38H W DENSITY SELECT REGISTER FLOPPY DISK (BIT O = "O'' FOR DOUBLE DEN. BIT O = "1" FOR SINGLE DEN.)
50H W ADDRESS REGISTER SELECT 80-COLUMN CARD 51H W CRT CONTROLLER REGISTER (RO-RI7) 80-COLUMN CARD 58H W CRT BANK CONTROL 80-COLUMN CARD ( = OFFH BANK ON, = OOH BANK OFF) 80H W TMS-9918A WRITE MODE=0 VDP 81H W TMS-9918A WRITE MODE=l VDP 84H R TMS-9918A READ MODE=0 VDP 85H R TMS-9918A READ MODE=l VDP 88H W AY-3-8910 LATCH ADDRESS PSG SCH w AY-3-8910 WRITE PSG JOH R AY-3-891Q READ PSG 96H W WRITE 8255 PORT C PPT 97H W WRITE 8255 CONTROL WORD REG. PPT 981 R READ 8255 PORT A PPI 99H R READ 8255 PORT B PPI
ie
| LANG ZAL ZE LEVE T. Kok en W‚, Niekus |
FRINT "Lang zal ze leven."
110 PRINT
120 PRINT"Ze leve hoog."
130 PRINT
140 READ A$
150 READ B$
150 READ C&
170 PLAY A$
180 PLAY Bé
190 PLAY C$
200 DATA sil ri m80 o5 14c 18 cc 14 c o4g ose Bee 14 ecg 18 ggagfe 14 ddd 18 gf 12 efg 14 af 12 edc.
210 DATA r2
220 DATA sil r2 m9ò a4 18d 18d 18d 14 ggga 12 b 18 gga 14 bbb o5c 12 d r8 14e 12d r8 14 e 12d rg l4e 12d f+ mll?2 g...
230 END zn
eemputer vakhandel berkhoutlaan 2c Ziblem lisse OZSZE-17459
SOFTWARE MEMORY EXPENSION Í 35,
TAKISTO SCOOP 35,— ZEESLAG EE Nanm ESVAY 35, WOORDENSPEL 35,-- ’ TEKEN-programma Adje CP/M pakket 160 Kbyte 999, Ombouw SVI.318 naar 64k 325,
Zeer binnenkort: SVI-netwerk
Prof. boekhoudpakket
2-printer switch
berkhoutlaan 2c 2161em lisse 02521-17459
CLUB-REPORTAGE Aad.
Nu we reeds twee C.U.C,-dagen
achter de rug hebben, willen we graag onze indruk meegeven aan de leden die (nog) niet in de gelegenheid waren een van onze computerdagen bij te wonen.
Wij = de redaktie — hebben deze bijeenkomsten als zeer, zeer
positief ervaren: we krijgen meer vragen dan we kunnen beantwoorden en dat bewijst dat de club leeft,
Regelmatig ontstaan er discussie's over zeer uiteenlopende onderwerpen
met als centraal thema onze “SpectraVIdeo's", Het succes (en de grote opkomst)
is te danken aan diverse zaken:
ie EEN ZEER GOEDE OPVANG bij CD. SYSTEMS te LISSE. Dit zetten wa bewust bovenaan, want de
accommodatie is uitstekend en de
koffie prima.
2e EEN COMPUTER met ONGEKENDE MOGELIJKHEDEN, Op de bijeenkomst van & oktober j.l. was b.v. te zien hoe men telex, morse enz. kan ontvangen d‚m,v, een uitbreiding via de joystick=-ingang: meer hierover in te toekomst,
3e EEN POSITIEVE HOUDING van de AANWEZIGEN. Zoveel mensen met zoveel meningen geeft wel eens heftige discussies, maar het uitgangspunt is voor eenieder gelijk: men wil zo efficient mogelijk met z’n computer omgaan, hoe de configuratie ook moge zijn.
Op punt 3 willen we terugkomen en een punt van discussie hier melden, te weten het feit, dat de SV, 318/, 328(MKII) niet de standaard MSX-computer is (zoals gesuggereerd in de folders?).
Hoewel het op de eerste plaats niet onze taak ís hieraan iets te
doen (wel des dealers, via de importeur en de importeur weer bij de fabrikant) kunt u er van overtuigd zijn, dat wij al het
mogelijke in 't werk zullen stellen om de SV,318/,328(MKII) ook als standaard MSX-computer te kunnen laten werkent
maar we houden u op de
hoogte. We denken wel, dat de 8V,318/,328 veel meer kan dan de standaard-MSX'ers!!
(Laatste nieuws: middels esn op korte termijn te verkrijgen adapter, zuilen de .318 en 328 machines volledig MSX compatibel
worden (hetgeen in de folders ia gesuggereerd) , Het zal tevens mogeli jk zijn daardoor een standaard cassette recorder aan te sluiten. Wij verwachten tevens, dat
te zijner tijd een tweede adapter zal worden aangeboden die de uitbreidbaarheid van de
semi -professionele machines handhaaft).
SpectraVideo
NU NOG EVEN IETS HEEL BELANGRIJKS,
De C.U.C.-computerdagen werden (en worden) nu gehouden in Lisse en wellicht later ook elders in de Randstad (zie de AGENDA), Maar wij beseffen heel goed, dat dit voor de
meeste leden te ver is of moeilijk berei kenbaar. Bij deze doen wij dan ook een
beroep op de SpectreVldeo-dealers elders in het land om (zaterdags 7) ruimte ter beschikking te stellen voor C.U,C.‚-dagen t‚b,v. hun regio's, Het dagelijks bestuur zal zeker een eerste computerdag bij bi jv. een SVI-dealer helpen organiseren en bijwonen, Tevens doen wij een beroep op de leden in die regio's zich beschikbaar te stellen om de zaak aldaar te coordineren.
LAAT HET 20 SPOEDIG MOGELIJK WETEN VIA ONZE POSTBUS, (twee nul twee -—
leiden), gd
idee: W Al d PYTHAGORAS eta benee
„ 1000 REM De stelling van Pythagoras
Deze beroemde Griekse 1010 :
: fi 8 1020 REM Na CTRL/STOP ……. filosoof en wiskundige \oso on stop GosUB 4000: STOP ON
heeft in ieder geval een 1040 :
kundi 3 1050 REM In geval van fouten .……. meet di ge stelling sE 1050 ON ERROR GOTO 7000 zijn naam gebracht, 1070 :
Het beginsel er van was 1080 COLOR 1,12,12: SCREEN 1: DEFSNG A-Z : p 1090 1
in feite al aan de Baby- REM Deel scherm in in 4 vlakken loniërs bekend, maar FOR X=0 TO 3: GOSUB 5030: NEXT heeft via de Griek zich 5
a Fi REM Tekening van kwadraat teken nu ook uitgebreid tot TW$="EL F1 D1 G2 Di R2
een groot deel van de di En î « eken driehoe moderne wereldbevolking, DRAW “C1 SO BM 170,10 DSO R50 M 170,10 . . : Ook in computerland is LOCATE 150,32: PRINT “A de stelling vaak bespro= LOCATE 200,20: PRINT *“C ken en beprogrammeerd , nd 192,70: PRINT "B maar, naar ons weten, LOCATE 20,20: PRINT “Stelling van
nog niet op de (educa- LOCATE 20,29: PRINT "Pythagoras: tieve) wijze zoals dit LOCATE 20,46: PRINT "A +B = C programma u uit de bytes REM Vul kwadraat tekens in dost FOR T= 27 TO 87 STEP 30
° DRAW "BM =T; , 44 X TW$;
Op scherm 1 zien we hoe de stelling van Pyt zich LOCATE 20,110: PRINT "Welke zyden
ontwikkelt v: o _ LOCATE 20,120: PRINT "zijn bekend? ie ei ke het opge LOCATE 8,130: PRINT "Toets ven van de zijden tot en 1350 LOCATE 20,140: PRINT “1: A en B
met het aanschouwelijk 1360 LOCATE 20,1501 PRINT “2: A en C
voorstellen van hoe daar=;500 en TEN EINE TE BBE
na e,e‚a, in zijn werk 1390 REM Wacht op opdracht van gebruiker
gaat, Interssant voor de \40 !
computeraars en een mooi 1420 huishoudelijk hulpje voor 1430 REM Pas formule aan gewenste berekening aan
1440 R$=CHR$(6B-I): B$="+" de wiskunde leraren, Lis="A"? IF I>1 THEN Li$="C"t B$e"-"
N ê L2$="B": IF I=2 THEN L2$="A" Wie ontwikkelt nu de ke- p gelsneden? LOCATE 32,60: PRINT “Afleiding: * LOCATE 20,80: PRINT R$;“ = "3 DRAW “BM 38,80 M 40,88 M 43,74 R50 F2 PRINT L1$;“ "3B$;" ";L2$ 8 REM Vul kwadraat tekens in
1560 REM Vraag lengte van zyden op 1570 s 1580 X=2: GOSUB 5030:’ Wis venster
10
LOCATE 20,110:PRINT “Lengten (cm)? LOCATE 20,125: PRINT "Zvde: ";L1$;"= "3 GOSUB 5070: Li=VAL(IN$)
LOCATE 20,135: PRINT "Zyde: ";L2$;"= "5 GOSUB 5070: L2=VAL (INS)
: REM Controleer waarden op nul
REM Bereken de lengte van de derde zyde
ON 1 GOTO 1700, 1710, 1720
LA=L1i: LB=L2: Q=LA“2+LB*2; LC=SOR(Q): LR=LC: Q=LC"2-LA“2: LR=SQR(O): LR=LR: G=LC*2-LB“2: LA=SQR(O) : LR=LA
REM Bereken de schaal
5=30/LA: IF LASLB THEN S=30/LB LA=INT(S&LA): LB=INT(S3LB): LC=INT(S3LC) REM Teken de driehoek mr’ vierkante vlakken LINE (167,160)-STEP(-LA,-LA), 14, BF LINE (1467,160)-STEP( LB, LB), 10, BF B=167+S5B
LINE (167+LB,159) -STEP(-LB‚-LA), 7 LINE -STEP( LA,-LB), 7
LINE -STEP( LB, LA), 7
LINE -STEP(-LA, LB), 7
REM Simuleer de berekening visueel X=i: GOSUB 5030: LOCATE 134,4 COLOR 15: PRINT "Het oppervlak van “; IF Y > 1 GOTO 2070 REM A°“2 + B°2 PRINT "A": LOCATE 140,14 LINE (136,34) -STEF(LA,LA), 14, BF GOSUB 5340: PRINT “plus dat van B LINE (190,34) -STEP(LB,LB), 16, BF REM Verklein vlak B em\ergroot FOR T=LB+1 TO 1 STEP =ti LINE (189,33) -STEP( T, 1), &, B H= (LC-LA) /LBS(LB+1-T) +LA LINE (136,34) =-STEP( H‚ H), 14, B FOR H=0 TO 99: NEXT NEXT T: GOTO 2210
>
REM C*“2 — (A“2 of B*“2)
PRINT "C"s LOCATE 140,14
LINE (136,34) -STEP(LC,LC), 7, BF GOSUB 5340: PRINT “min dat van "; L2$
t REM Verklein vlak C en vergroot A of B LT=LA: L3=LB: IF 1=3 THEN SWAP LT,L3
FOR T=1 TO LT+1
LINE (136,92ì- STEP( T‚-T), 22-441, B H= (LC-L3) /LTE(LT+1-T) +L3+2
LINE (135,33)-STEP( H‚ H),6,B
FOR H=0 TO 99%: NEXT NEXT T
3 REM Teken oppervlak van berekende zijde
GOSUB 53401 GOSUB 5390: LOCATE 154,4 PRINT "Is gelijk aan het ”1LOCATE 140,14
PRINT "oppervlak van "; R$
LINE (190,34) -STEP (SELR,SELR),7+3.5E(I-1),BF
REM Conclusie
GOSUB 5340: GOSUB 5340
U$= "Vlak !s BUUW,HN £ HUUR, HR = HEBHEKEN. HI COLOR 11: LINE (0,96) — (255,191),12,BF
LOCATE 110,100: PRINT "RESULTAAT:
LOCATE 14,112: PRINT USING U$; L1i$, Li, Li, Lili LOCATE 230,120: PRINT B$
LOCATE 14,128: PRINT USING U$; L2$, L2, L2, L28L2 LOCATE 182,135: PRINT "===
LOCATE 74,142: PRINT “Oppervlak van ";R$j" = "3 PRINT USING “##B4EEEE, HR"; Q
COLOR 15: R=SGR(Q)
LOCATE 20,160: PRINT “De wortel van"; GQ; "is"; R LOCATE 20,170: PRINT “De lengte van zyde ";R$; PRINT * is dus”;R; "cm.
REM Nag eens? , COLOR t: LOCATE 60, 18Â er PRINT “Nog een berekening? J/N
ON L+INSTR(*-JjNn",INKEY$)\2 GOTO 2440, 1100, 6000
’ SUBROUT INE
5050 'Wis eN 5040 LINE ((X AND 1)#128, (X'AND 2) #48) -STEP(127, 96) ,5+X, BF 5050 RETURN REM LINE INPUT INS op scherm 1 B=74: inga, L=zû: C={ rr knipperen IR$(201);;s LOCATE B C XOR & Lurso uit » COLOR 7: PRINT CHR$(201)3z COLOR 13 LOCATE B : 5180 ’ Is toets enter, backspace, cijfer of punt? 5190 IF IS=CHR$(L3) THEN RETURN 42 5200 IF ISX>CHRS(E) OR L=O GOTO 5250 =} 5210 « 5220 REM Backspace : wis laatste karakter 5230 Lel-i: INS=LEFTS(INS,L): B=B-b: GOTO 5110 5240 1 5250 IF L=4 OR 1$>“9" GOTO 5310 5240 IF IS<“O* AND I$<>",*“ GOTO 5310 5270 1 5280 REM Punt of cijfer : voeg karakter aan INS toe 5290 PRINT 1$%j: LeLt1i: INS=zIN$+I$: B=Btb6: GOTO 5110 5300 : 5310 REM Verboden karakter of te lang cijfer: beep 5320 BEEP: GOTO 5110 BS OO 5340 REM Wacht ca. 2 seconden
5350 5360 5370
TIME = 0 IF TIME < 100 GOTO 5360 RETURN
11
5390 REM Wis tekstvenster rechtsboven 5400 LINE (129,1)-(255,25), 6, BF
6030 REM Herstel standaard kleuren 6040 COLOR 15,4,5 6050 END
7030 IF ERR<>11 OR ERL<>1660 GOTO 7080 7040 :
7050 REM Als voor een zyde nul gegeven is,
7060 ER$="Waarde kan geen nul zijn!!“: GOTO 7150
7080 IF ERR<>5 OR ERL<>1710 AND ERL<>1720 GOTO 7190 7090 :
7100 REM Als voor C een te lere waarde gegeven is. 7110 ER$="C moet hager zijn dan "+CHRS(ASC(RS) XOR 3) 7120 :
7130 REM Geef foutmelding en vraag waarden opnieuw 7140 LINE (20,180) — (230,191),10,BF
7150 LOCATE 125-3&LEN(ER$), 183: PRINT ER$
7160 GOSUB 5340: X=3: GOSUB 5030
7170 RESUME 1560
7190 REM Als er geen oplossing is voor een fout...
DRE ZZ 7220 * PZ
Kom ook eens naar de SpectraVIdeo-dag
ALTIJD DE LAATSTE NIEUWTJES
en ALTIJD actueel met” software,
hardware en boeken
M.I.V. 1 Sept. organiseren wij maandelijks op de eerste zaterdag van de maand: DE SPECTRA VIDEO DAG
Apparatuur, programmatuur en boeken worden op bovenstaand adres zo volledig mogelijk gepresenteerd.
de COmPUce3 WiN<eEL VoO2 De ZOLLENDCREEC
berkhoutlaan 2c 216lem lisse 02521-17459
TV-TENNIS Peter Zevenhoven
Hebt U de gereserveerde woordenlijst (C.U.C. info nr. 1, pagina 5) gezien? Een van de vele kreten op die pagina is u PDL u S
Dat staat voor PADDLE, dacht ik, en direct werden 2 patme- ters, draden en pluggen (voor de joystickpoorten) aange schaft. Helaas, wat ik ook deed, de computer weigerde om
ook maar iets te presteren wat op het inlezen van een PADDLE leek.
Een van de allereerste programma’s die ik voor mijn SV. 528 schreef was een Z-80 disassembler. Daarmee heb ik enkele dagen in het BASIC-ROM gePEEKt tot ik de PDL routine vand.
Wat blijkt nu? Na het woord: „PDL moet, tussen haakjes, een getal (1-4) gegeven worden ik Dit getal wijst een EOC of SENSE ingang van joystickpoort 1 of 2 aan (zie appendix E van de handleiding (dan is die toch nog ergens goed voor) ].
Na de aanroep van PDL worden, gedurende & microseconden, de FORWARD/SCK uitgangen van beide joystickpoorten 0 Volt gemaakt (deze zijn normaal 5 Volt). Hierna wacht de PDL routine tot opgegeven ingang (het cijfer na PDL) © Volt wordt, terwijl intussen een teller de stand bijhoudt.
Conclusie: aan de joystickpoort dient een stukje electro- nica te komen, waarna, met de PDL instructie, men de momen- tele stand van een potentiometer kan opvragen (een getal van O tat 255). Heel mooi dus.
Bekijk het volgende schema eens:
188 REN "TV tenni 118 COLOR 14, in En SCREEN 2, 2: SOUND 1, 8 128 _DEFINT A-Z: S = RND(- TRE +5
t 148 Es kee bet ai 15) T SPRIT e 168 PU SPRITE 1, ‚ 15, &
178 REN Bal 188 SPR TES = CHR$(6) + STRINGS(3, 15) + CHR$(6) 198 REM Teken het veld
268 LINE (6, B) - (255, B): LINE (B, 191) - (255, 191)
218 F =
228 LINE (424, 28 £T) - (124, 20 XT + 8)
238 _ NEXT
248 REN ke bijverke
258 LINE ( 48, 4) - (28, 4 1, BF
268 COLOR 7: LOCATE 12, 8: KENT USING "#8"; Si 278 LINE (128, 4) - (22 ô, F
288 COLOR 9: LOCATE 138, 8: PRINT USING "ie; S2 ae REN er eg de toestand van bal
de je hb 268 - Ee ke = Baden t 160 + 20
Hi S THE 328 E=4: IF BDD ; EN THEN E=-1 338 REN Serveer vertraging 348 RV = RND(1) tf 100 + 50 358 RV = RV - 1 368 REM Synchroniseer en ev, geluid uit 378 IF TINE THEN SOUND 8,8: TIME = 0 ELSE 370 388 REM Lees en plaats de rackets 398 P4 = (P4 + PDL(4)) \ 2 : PUT SPRITE 6,( 12, Pi - 20) 468 P2 = (P2 + PDL(3)) \ 2 : PUT SPRITE 4,(232, P2 - 26) 418 IF RV 60T0 358 in REN Zijkant? Verticale ae veranderen IF U {5 OR V > 184 THEN Ee =-É: SOUND 8, 148: SOUND 8, 10 440 REN gereken nieuwe balpositi 4 HaWHt4tR: VeVtE: “BUT SPRITE 2, CH, U), 45, 1 pa a hal A rek an t? =-46 THEN T = P1 - V: 6010 558 400 IE k î k = 228 THEN T = P2 - V: 60TO 558 498 REN Heeft iemand een punt OO Bek. Nee, qa door 508 IF H > -18 AN a B < 252 60T0 ‚ 518 REN Ja, punt el 528 PLAY "ob vi Nij t258 538 IF H > 428 THEN S2 = 5 +1: S= 8 ELSE S=4eti: S= 1 548 60T0 249 558 REM en tegen raken? Nee, ä door 568 IF T > 23 OR T <4 6010 498 578 REN Ja, rd En ng 588 SOUND 6, A re ‚18: R= -R 598 IFT > Ae: NE = -3: Boro ze 688 IFT C NE = 3: 6010 618 IFT 4 Mi Bb T > 10 THEN PS SSencE) 60T0 36 368
658 END Zodra op SCK een O Volt puls verschijnt, wordt condensator C door transistor T opgeladen (Ri is de basisweerstand). Na het weer 5 Volt worden van SCK, zullen R2, Ien P de condensator C ontladen. De spanning over C wordt via SENSE aan de computer doorgegeven, welke telt hoelang net ontla-
15
den van C duurt.
De weerstand R2 is een beveiliging tegen te grote stromen door de transistor, de potmeter P is de "game paddle" en de instelpotmeter I moet even afgeregeld worden.
De knutselaars onder U zullen geen problemen hebben met
het in elkaar zetten van dit schakelingetje (hoop ik). Het afregelen van instelpotmeter I gaat als volgt:
Sluit de schakeling(en) aan op de joystickpoort (en).
2) Tik in: 10 LOCATE 0,0: PRINT PDL (1) 20 PRINT FDL(S): GOTO 10 RUN
Nt he. En 35) Zet potmeter P op de maxi ale weerstand en draai aan de instelpotmeter totdat de getallen op uw scherm onge- veer 250 aangeven.
Een voorbeeld van wat met game paddles gedaan kan worden is het nu volgende programma "TV-TENNIS". Tik dat maar eens in, sluit de "home-made game paddles" aan en: VEEL PLEZIER!
HH
C.U.C, lezers=-service
D.01 Map testrapporten (Ned, vert.) f 7,50 D.02 Los nr. C,U,C.-info 1 3e= B.02 Ned, talige handleiding (eerste gedeelte) 10.- B.03 Idem, (tweede gedeelte) 10,-
B,04 Idem, (eerste en tweede gedeelte) 18,- C.‚01 BASICODE lees/schrijfprogr. op cass, 6,50 D.03 Los nr. C,U.C.-info 2/3 6,- D.0k Los nr. C.U,C.-info & he=
Levering: na vooruitbetaling + f3,- verzendkosten, Graag schrift, bestellen om puzzles te voorkomen, Zie o.a, bestelkaart achterin,
PENDULE Peter Zevenhoven
rede 405 IF UH = H3 AND BV = V3 GOTO 425 110 REM 2 functies om de wijzer standen te berekenen 10 LINE (128, 96) — (HS, VS), 10 115 DEF FN S% (X,Y)= 128.5 + 75 3 Y % SIN 5 ENE MSA SeUN 120 DEF FN CX (X,Y)= 96.5 -— Y 8 COS(X) 420 1 125 1 425 IF MH = HZ AND MV = V2 GOTO 445 150 REM Constante van 2.4 PI 430 LINE (128, 96) — (H2, V2), 10 135 PI2 = 6. 28319 A55 H2= MH: V2 = MV 140 : 440 1 145 KEM Geef oude wijzerpunten een eerste waarde AAS REM Wis de seconde wijzer altijd iS « 130t He Hit KS Hi 450 LINE (128, 9%) -— (HI, VI), 10 55 Vl = 9: V2= Vis VJ = VI 455 HI = SH: VI = SV 60E 460 + 165 INPUT “Hoe laat 1s het (uur,‚min)®; UUR, MIN 455 REM Teken alle wijzers 170, * en 470 LINE (128, 96) - (SH, SV LIS REN Teken de klok A75 LINE (128, 96) — (MH, MV) ! 180 COLOR 6,4,4: SCREEN 1: A= 1.33 AE CANE LO VON (Ep N 185 : 485 ; | 190 REM De 'kast’ 490 REM Wacht tot seconde voorb: ;, 15 | 195 CIRCLE (128, 96), 9,, 0, 3.15, A 495 IF SEC = OS GOTO 495 ELSE OS = SEC! 200 CIRCLE ( 33, 9%), 30,, 4.74, 6.28, A ese 205 CIRCLE (223, 9%), 30,, 3.14, 4.71, A 200 REN Seconde: klik 210 CIRCLE ( 35, 156), 30,, 1.57, 3.15, A 510 OUT ISL, 15e OUT 131, 14 215 CIRCLE (221, 156), 30,, 0, 1.58, A ai 220 : 520 REM Moet de gong klinken? 225 LINE (12, 156) - (244, 191),, BF: PAINT (128, 155) 225 IF SLAG = 0 OR (SEC AND 1) GOTO S10 230 1 20e 235 REM De wijzerplaat 535 KEM Sla op de gong, teller — 1 540 SOUND O0, 15%: SOUND 1, O 240 CI ( 96), B& A1 PA ’ ’ an RCLE (128, 9%), 86, 10,,, Ar PAINT (128, 11), 10 Seg spuwD 2 125: SOUND 3 1 250 REN Custers on, wi jeerdlat 550 SOUND 4, 119: SOUND 5, C ESS: TELER tel ATD 12 555 SOUND B, 16: SOUND 9, 16 ao: AAP a TEER 7 13 4 PID 560 SOUND 10, 16: SOUND 11, O 265 HULPS = HIDS( STRS(TELLER), 2) en SOUND £2, 99: SOUND IS, 1 270 LOCATE 1 + FN SX (HULP, 77) — 3 8 LEN (HULPS) e 275 LOCATE , FN CX (HUP, 77) - 2 Srar slem SLRE Sr Is OTO 540, 280 COLOR 1 1 PRINT HULPS rd NE 285 NEXT TELLER 585 REM Verhoog de tijd een seconde 290 * 590 SEC = (SEC + 1} MOD 60 295 REM INTERVAL houdt de tijd bis 595 IF SEC THEN RETURN 300 ON INTERVAL = 50 GOSUB 585: INTERVAL ON 600 MIN = (MIN + 1) MOD 60 305 » in 605 IF MIN THEN RETURN 310 REM Bereken de wijzerstanden &10 UUR = (UUR + 1) MOD 12 315 HULP = SEC / 60 8 P1I2 als RETURN 320 SH = FN 5% (HULP, 70) BeOne 325 SV = FN CX (HULP, 70) 625 Pr. 330 HULP = (MIN 8 60 + SEC) / 3400 £ PI2 &50: END 335 MH = FN 3% (HULP, 63) 340 MV = FN CX (HULP, 43) 345 HULP = (UUR 8 50 + MIN) / 720 8 PI2 350 UN = FN SX (HULP, 50) 353 UV = FN CX (HULP, 50) 360 1
365 REM Half uur? Zorg voor gongsìag
370 IF MIN = 30 AND SEC = O THEN SLAG = 1
375 3
380 REM Meel uur? Aantal gongslagen
385 IF MIN+SEC = O THEN SLAG = 12: IF UUR THEN SLAG = UUR 390 :
395 REM Als wijzerstand veranderd is, wis dan eerst
400 * de oude wijzer. Teken daarna alle wi A
17
110 120 130 140 150 160 170 180 190 200 210 220 230
240 250 260 270
250 GOTO 15 260 END
REM woorden en getallen sorteren CLS: PRINT"Tik max, 3f woorden in" PRINT 5
PRINT" (9 + ENT = ga sorteren.)" PRINT: DIM A$(3)
FOR Z = 1 TO 3Y
INPUT A$(Z)
IF A$(Z)= "2" THEN L=Z-1:G0TO 29 NEXT Z
L= 39
REM bubble sort
FOR Z =1 TOL = 1
FOR Y= Z +1 TOL
IF A$(Z) > A$(Y) THEN SWAP
A8(Z), A$(Y)
NEXT Y, Z
CLS: REM en nu sorteren 100 PRINT" Gesorteerde lijst:": PRINT 110 FOR Z= 1 TO L: PRINT A$(Z),: NEXT 45
280 END ‚ 125 hals 130
140
150
160
170
180
190
200
210
220
230
100 REM knipperen CAPS/LOCK led 240 110 REM demo van een OUT-opdracht 250 120 WIDTH hj: SCREENg,f: LOCATE, ‚gd 260 130 « 270 140 ' led uit 280 150 A = &B11f11111 290 160 OUT &H88, 15 300
170 OUT &HSC, A 180 FOR M = 1 TO 48: LOCATE24,2f: PRINT
U: NEXT: 'tijdlus (vertraging) :
200 ' led aan
210 A = &B11111111
220 OUT &H88, 15
230 OUT &HBC, A
240 FOR N = f TO 8: LOCATE24, 2: PRINT
"pg": NEXT: 'tijdlus (vertraging)
be ens
tè De volgende programma's zijn iets moeilijker dan we gewend waren, st Tik ze nauwkeurig over en je moeite wordt weldra beloond,
Natuurlijk daarna RIN en ENTER geven, nt gamenstellinzt Wouter Alexander
REM twee zich verplaatsende cirkels REM W‚A, ++04Bli4+
COLOR, 1,9:SCREEN1 ‘achtergrondkleur ' len scherm kiezen WIDTIE Af ‘hj tekens per regel X=2f: Y=136 "middelpunt 1e cirkel M=2f: N=5g ‘middelpunt 2e cirkel t
X=Xa43 ‘rekenregels nieuwe- M=M+ 53 ‘middelpunten peen ,25,18,,,1.25 CIBCLE(M,N) „25 ‚14,,,1.25
:
IF X>8f THEN Y=Y-3 "voorwaarden
IF M>8f THEN N=N+3 'voor richting
IF X>162 THEN Y=5g ‘verandering IF M>162 THEN N=136 'cirkelver- IF X>22f THEN X=22f 'plaatsing- IF M>22f THEN M=22f "en, 8
GOTO 179 END
“xk
20
(LINE) INPUT op SCREEN 1 Peter Zevenhoven
Wel eens geprobeerd om, nadat u een mooie tekening op SCREEN 1 getekend had, om met de INPUT of LINE INPUT in= structie gegevens op te vragen? Jammer dus.
De INPUT instructie schakelt automatisch terug naar SCREEN 9 (dag tekening) en de LINE INPUT instructie maakt er helemaal een mooi rommeltje van na het drukken op ENTER of een cursortoaets.
Voor degenen die, terwijl er een tekening op het scherm staat, toch gegevens willen intoetsen, is de volgende sub-
routine ontworpen: 90009 REM LINE INPUT LIS op SCREEN 1
9219 HOL = PEEK(&HFA24):" Cursor’s horizontale positie 9029 VEL = PEEK(&HFAAS) 1" Cursor's verticale positie 9939 VOL = PEEK(&HFABA):* Huidige voorgrondkìeur
9049 AGA eum PEEKAKRPAORIE Huidige achtergrondkleur 905% LI$ = 1’ Wis de string
926 REM Plaats (print) cursor en wacht op een toets 997B COLOR VGA: LOCATE HOX, VEZ1 PRINT CHR$ (201)
9282 I$ = INPUT&(i)s COLOR AGZ
9999 REM Cursor uit
9199 LOCATE HO%, VEXt PRINT CHR&(221)s COLOR VEX
9119 REM ENTER? Ja, return
9129 IF 18 = CHR$(13) THEN RETURN
9139 REM Backspace (correctietoets)?
9149 IF I% <> CHR4(B) GOTO 9239
9152 REM LI$ leeg? Niets wissen
9169 IF LEN(LIS) = @ GOTO 9042
9179 REM Wis laatste karakter
9189 LIS = LEFTS(LIS, LEN(LI®) = 1)
9199 REM Pas cursorpositie aan
9299 HOX = HOX - &
9219 IF HOX < 2 THEN HOX = HOX + 252: VEX = VEX - B 9229 GOTO 9249
9239 REM Juiste ASCII code? Nee, volgende toets
9249 IF 18 < CHR$(32) GOTO 9949
9252 REM Voeg 1% aan LIS toe en pas de cursorpositie aan 9262 LOCATE HO4, VEX1 PRINT 1%: HO4 = HOX4 + &
9278 IF HO4 > 251 THEN HOX = HOX — 252: VEK = VEX + 8 9289 LIS = LIS + 18%: GOTO 9249
PP * —-mmmmmmeemennnmmmenvnnenmenveTnmmme me
Deze subroutine is bijna het equivalent van de LINE INPUT instructie, er kan echter geen prompt string meegegeven worden (eerst PRINTen dus) en de beroemde SCREEN EDITOR werkt niet (de backspace toets wel).
Voor het aanroepen van deze subroutine moet SCREEN 1 actief zijn en kunnen de mooiste plaatjes op het scherm getoverd worden, waarna met GOSUB 9299 de gebruiker zijn gegevens kan intoetsen.
Waar op gelet moet worden is, dat deze subroutine een “cursor" gebruikt die wordt gewist met de achtergrondkleur van de laatste COLOR instructie. Als om de een of andere reden tijdens GOSUB 9999 deze cursor in een gebied komt waar de achtergrondkleur anders is (na LINE .……, BF of zo) dan ontstaat er een kleurfout op de plaats van de cursor, De subroutine levert een string (LI$), waarvan de waarde (als een getal ingevoerd is) met VAL(LIS) opgevraagd kan worden. Als u meerdere gegevens tegelijk (net als bij INPUT) wil intoetsen, dient u nog een routine te maken die de diverse gegevens in de string uit elkaar haalt.
‘nn
Ferdy Bossy
100 REM : worteltrekken met de macht van Uw keuze 110 REM 1 2e machtwortel is SOR; maar
120 REM: de 10de machts wortel uit 328 kan natuurlijk ook. 130 CLS
140 PRINT" KEEEE WORTELTREKKEN EE4E8"
150 PRINT
160 PRINT“ KEKKKEKERSEREEEEKENEEEK EE"
170 PRINT: PRINT: PRINT: PRINT
180 INPUT" de wortel uit "sM:PRINTs:PRINT
190 INPUT "de wortel met de macht ";W
200 PRINT: PRINT:PRINT: PRINT
210 PRINT"de";W"e machts wortel uit”jMj"=":PRINT:PRINT USING“ #HEM. 44%"; MS (1/0) 230 ’ print using gebruikt omdat er anders vreemde uitkomsten komen.
240 PRINT:PRINT: INPUT "Nog een keer, tik ja of nee"s A$
250 IF A$="ja" THEN 150
255 IF A$="nee" THEN 270
260 IF A$=<>"ja" AND AS<>"nee” THEN 240
270 PRINT:PRINT"Tot de volgende keer"
280 END
‘mmm ‘mm ‘mmm
cees SINTAKS ERROR zaavean
Wat ging er fout in onze vorige uitgave? Dat was in de eerste plaats het programmaatje links midden in informatie bulletin nr. 3. We geven hier de juiste listing:
100 SCREEN 1
110 FOR X um 1 TO 15: LOCATEO,Ór COLOR X
120 FOR Y= 32 TO 2551 PRINT CHR& (CY) z
130 NEXT Y, X
140 GOTO 140
150 END Dat was niet dramatisch, maar het verschil valt wel op. Vervolgens bleek er op blz. 36 maar en halve sprite in te lezen te zijn. Dit kwam door regel 190 die moest zijnt
190 NEXT S1 SPRITE&(i)= 58 + T$ en dan gaat het wel goed. Op bladzijde 35 had regel 170 moeten zijn:
170 IF MID$S (A$, M‚ 1) > " »
THEN C = C + 2 “ (B=M)
En ook nog even iets over de computer himself. Het is velen al opgevallen dat PUT SPRITE niet overeenkomt met LOCATE, PSET etc... De video processor zet nl. een sprite een positie lager dan opgegeven. Wanneer er een sprite gePUT dient te worden, dan zal het Y=coordinaat altijd met i verminderd dienen te worden, dus Y = Ì ten opzichte van het LOCATE coordinaat,
Vervolgens hebben we nog enige nuttige ROM- en start-adressen:
4198H karaktergenerator (tot 4550H)
02C9H tabel BASIC woorden (tat OSB6H)
OSDEH tabel foutmeldingen (tot O84EH)
OOiBH print karakter (accu) op beeldscherm OOSEN karakter van toetsenbord lezen (in accu} OO44H print accu naar printer
OOBIH idem, print ev. extra spaties bij code © OO47H SCREEN O
OO4AH SCREEN 1
OO4DH SCREEN 2
0053H SCREEN ,0 (commando-lijn uit)
0054H SCREEN ‚1 (commando-lijn aan)
OOSCH kijkt naar CTRL/STOP (carry is ingedrukt) 09 neer? 0147H beep et er 7 |
4782H Tekent SPECTRAVIDEO logo we
DI AMANT Haar een wanrbeeld wan Georma Malfhaner uit. benen
CLS: INPUT "Hoeweel Punten”: FHT sn CIM TEL CPFHT, 1}: SCREEN 1 FIF TEL = & Tû PNT HLF = &…: TEL. “TE A ze 2 & SIM HLF TEL «TEL, 1» 5 £ s IF TEL = 8 THEN HEK FOR HLF = & Tü TEL LINE CTEL <HLF, @5, TEL sc HF, “TEL “TEL: B, TEL (TEL. HEST HLF, TEL
OTO Et
A CLS: INPUT "Aantal Punten"; FHT SCREEN 1
FOR HOEK z TO 3.34 STEF 3.54 / FHT H= Sa % € HIEK } :
Ve -60 4 C HOEK >
5
RE LINE -STEF(A, 76): LINE (128, 150) HEKT HOEK.
GOT) 34
0D Tr iN Et Er Er EN 0
arvrrrrnrarranmanvermeereransensvererananen