Skip to main content

Full text of "Atom News 1987 Number 3"

See other formats










A6om NIEUWS 


_ Jarreanetessses 
nummer «£ 





oee | ZE AE op WK 
ERAAARAA Ai 
EIDER 


PAG. 2 AIFOM NIEUWS 


UIt De FEDERATIE 





Bestuur: 

Voorzitter: Secretaris: 
N.Stad J.Hartog 
Plataanweg 47 Kevenbergseweg 60 
1544 PB Zaandijk 6871 WK Renkum 
Tel.075-280808 Tel.08373-13757 
Clubwinkel: Hardware cie.: 
P.Grevelt Y.Tuk 

Emmastraat 22 Postbus 257 


1782 PD Den Helder 2980 AG Ridderkerk 
Tel.02230-23453 


Contributie 1987: fl. 60.00 
Leden buitenland: fl. 75.00 


Rekeningnummers Atom Computer Club: 
Giro 5244293 


Redactie Atom Nieuws: 
Joop Ballijns 
Harry de Ruiter 


Penningmeester: 
T.Rutten 
Berkenlaan 24 
3737 RN Groenekan 
Tel.03461-3495 


Redactie Atom Nieuws: 
H. de Ruiter 
Polarisstraat 25 
8303 AC Emmeloord 


Ledenadministratie: Datasheets: 
S.van Leeuwen G. Akkerman 
Kompasstraat 32 Wikke 1 

1973 PX IJmuiden 1273 BR Huizen 
Tel.02550-22435 Tel.02152-60294 


Uiterste datum inlevering copy: 
nr. 87-4 86-07 1987 


De clubwinkel: 


80-koloms videokaart. inci.alle onderdelen behalve de RAM-IC's, 


bouwpakket 
80-koloms videokaart, gebouwd en getest 


£1,130.00 


„excl.RAM-IC's f1.180.00 


Geheugenkaart: 16 kByte,excl.onderdelen fl. 35.00 


Schakelkaart;: meerdere EPROM's op Axxx 
Minischakelkaart 
Z-80 kaart:CP/M excl. onderdelen 


fl. 47,50 
fl. 16.00 
fl. 65.00 


Herdruk ACORN NIEUWS 1982; 97 pag .wetenswaardigheden fl. 6.00 


ATOM NIEUWS jaargang 1983, ruim 450 pag. fl. 30.00 
ATOM NIEUWS jaargang 1984. ruim 650 pag. fl. 35.00 
ATOM NIEUWS jaargang 1985, ruim 650 pag. fl. 35.00 
ATOM NIEUWS Jaargang 1986, ruim 500 pag. fl. 35.00 
ATOM-WARE 1: Basic interpreter van de ATOM, 98 pag. fl. 6.00 
ATOM-WARE 2; ATOM Disc Operating System,68 pag. fl. 5.00 
ATOM-WARE 3; ATOM Monitor Operating System,80 pag. fl. 5.00 
Levering; 


Bij uw reg.penningmeester, eventueel rechtstreeks bij de fed. 
penningmeester.Bij rechtstreekse bestelling dient u het bedrag 


van het gewenste artikel te storten op 


de giro van de federatie 


onder vermelding van de naam van het artikel en uw lidnummer, Uw 


betaling dient vermeerderd te zijn met 


fl. 4.00 voor portokosten. 





INSGUDSCGPGAVE ATOM NTEUWS Er: 
pag 2 uit de federatie 

pag 3 inhoudsopgave 

pag 4 regioschijven 

pag 5-9 Eprom programmer 

pag 18-15 Atom Pascal 

pag 1& Normen 

pag 17 Tips Z80 

pag. 18 Selectie Exxx Eprom 
pag 19-21 FDC naar #BC468 

pag 22-25 Midi 

pag 26-28 Zeeslag 

pag 29-32 Programmeren deel 2 
pag 33 Ram statement 

pag 34-35 Ninput 

pag 36 Viditel 

pag 37-38 Foneem 

pag 39-40 GTH afstandsberekening 
pag 41-43 Highway 

pag 44-48 MDCR DOS-Z2 

pag 49 Memory editor 

pag SQ BIJ kelems infomaster 
pag 51-59 Dial-2 

pag. 60 Regionaie adressen 


ATOM NIEUWS 


is een uigave van de federatie ATOM computerclubs 


Ned/Belgie en verschijnt & - 8 keer per jaar. 


De redactie gaat er vanuit dat de ingezonden copy gemaakt is door 
de inzender tenzij 


in de publicatie uitdrukkelijk anders is 


vermeld.De aansprakelijkheid echter betreffend de auteursrechten 
ligt zonder enig voorbehoud volledig bij de inzender. 


PAG. 4 ATOM NIEUWS INHOUD REGTOGSCHEJVEN 





PROM87 B22900 BOAFAF BOIGI1 D13 
SPRITES 202900 BLAFAF LUESIS LID 
ZEESLAG 022968 BBAFAF LUIEUZ 285 

Regioschijf 6-3 _ POKE 002908 BBAFAF 090261 802 
MDCR4 ©0298 LOC2BZ BEIDD3 BAA 
MDCR3 032908 LOC2B2 BRIIFB BFB 
MDCR2 002988 BAC2B2 BAIDD3 B7A 
TDISK ees2e0 vOLz00 LIOBLB 372 
ADISK 037020 LO7000 BOBFFF 342 
TMDCR uoezee a0Ss20a BVAD2B 055 
#MDCR @34090 OOBBIS AA4ISC B51 
AMDCR 827008 007002 221980 041 
RFDRMAT 222930 GOBSI8 BELIJD DIF 
TFDRMAT 222328 B02509 QE220P OSD 
RNDTEST GO2808 OOBSIE BUABAA D36 
WNDTEST 002800 BOBEIE LAUZAA LIS 
MDCR1 UO2900 BEBEIB AODBFA 29 
RAMSTAT 202955 002902 A2A3FF OAD 
OTH CODE BOC2B2 DEBS 045 
NINPUT UU2900 OUC2B2 LUBACB DIE 
ENDEX 032800 BOAQ71 LAZAIS 039 
FONEEM vu2900 LO2I0D ULBGFF 032 
ACL-2 UEELLD 0O80LD DLIEDD DIA 
REGFAL 882905 2BAFAF DOOF3O BCS 
REG. ART @24008 BOAO71 OO1BD7 BAC 
6264 02828 207071 940782 BEC 
MERcode DA6LID BOGFFO DI100B D7C 
MERtoel 994200 DOAO71 D9103E B&B 
ACORN 925008 GOC2B2 BUBDIC BSD 
BACKUP 4 032923 BOC2B2 OPHBIC 051 
AVE. Mm 292908 0UC2B2 LEB7F7 049 
MATR. A BE400D BLAD71 QO2D47 DIB 
MATRIX 002908 22C282 OO1ECE 202 

Regioschijf 6-2 _ SUNDORI 002909 BLC2B2 DAO97B 138 
PARWEER 002900 OOC2B2 LALA7G 129 
BUNDESL 052900 BLC2E2 LAEDCI 11B 
GEBODAG 092908 OOC2B2 089391 117 
FEESTDA U82908 BOC2B2 000428 110 
TYPWRIT G2S200 DEC2B2 AUEISA 106 
BUGBATT WUZ900 BOC2B2 LODIEA DFE 
LEEFTYD 092908 BOC2BZ Q9167B BE7 
BRAILLE ©0298 28C2B2 OAIIFD ODS 
BLOBUST 002708 BBC2B2 BELSFF BCF 
KIEZEN @02900 BBC2B2 LLOISF UCS 
ZEKAMER 092922 OOC2B2 BI1413 OBO 
BOWL ING 002902 LOC2B2 @UABD1 BA4 
DOMINO 002999 DAC2B2 BEIDAA BI 
ED64-B Z0AGTD BRAUDO 0B100D DAF 
SMURF @02900 BAC2B2 LA2UBE 242 
SALFAA VEADDU LOALGE UP100D 052 
DIGITZR 002999 BOCZB2 OUIJCC DSE 
BACKUP @02908 QUCZB2 COLAII B33 
2340QVDU oosens ABSorFE LLOBEP 028 
DUMP voe00s BOHLOO 000159 829 


VERBRUI 2U2F00 BICZE2 OA2EFF BOOZ 


EPROM PROGRAMMER SJAAK GEENE ATOM NIEUWS PAG. > 





De Eprom Programmer aangepast voor 2716. 2764 en 
27128. 


Uitgangspunt is het schema in A.N.3-1 pag.17 en 
de software uit A.N,2-6 pag.26. 

Om met de 27/16 te beginnen. In A.N. heb ik een 
paar maal gelezen dat de progammer niet werkt 
voor de 2716. Dat heeft twee oorzaken: in de 
program-mode wordt de OE doorverbonden met de 
CE, maar volgens de databladen moet de OE 
minimaal 2 uS vroeger hoog worden als de CE, 
daarom heb ik de OE direct aan +5 gelegd. In de 
read-mode moet de OE laag zijn. De tweede 
oorzaak zit in de software, De programpuls is 
negatief, dus gaat hoog-laag-hoog. In afwijking 
van alle andere eproms moet de programpuls van 
de 2716 positief zijn dus: laag-hoog-laag. De 
readpuls is voor alle eproms gelijk en is 
negatief. 

Voor de 2532 werkt de programmer gewoon goed en 
voor de 2732 hoeven alleen maar een paar 
aansluitingen worden verwisseld. 

De 2764, 

Deze eprom is 8k dus er komt een adreslijn bij: 
Al2 en bovendien heeft het IC 28 pennen. De 
aansluitingen zijn compatible met de 2732, dus 
24 pennen. De andere 4 zijn: Vpp, A12, Vee en 
PGM. De software aanpassing is eenvoudig: het 
adresbereik gaat van 4k naar Sk en het 
startadres van het te copieren programma moet 
naar het lage geheugen, omdat in het hoge 
geheugen geen Bk blok meer vrij is. Ik heb 
gekozen voor #4000 tot #6000, 

De 27128. 

Deze eprom is 16k dus er komt nog een adreslijn 
bij: A13. Deze A13 komt aan pen 26(24), waar bij 
de kleine eproms de +5 aan zit, dus moet dat 
omgesckakeld kunnen worden. Verder zijn de 
aansluitingen gelijk aan de 2764. De software 
aanpassingen zijn: het adresbereik wordt 16k en 
het startadres van het te copieren programma 
komt nog lager te liggen, omdat nu een blok van 
16k nodig is. Ik heb gekozen voor #3000 tot 
#7000. 

Verder heb ik nog aanpassingen gemaakt voor het 
programmeren van de A-versies, voor de 2732A 
moet de Vpp 21V zijn en voor de 2764h en 27128A 
moet Vpp 12.5V zijn. In het programma worden 
waarschuwingen gegeven voor het instellen van 
Vpp. 

Fig.l geeft het schema. De voornaamste 
wijzigingen zijn de schakelaars. Sla-f verzorgt 
de omschakelingen voor de diverse eproms, zodat 
de juiste spanningen op de juiste aansluitingen 


PAG. 


& ATOM NIEUWS EFROM PSULGKAMMER  SJAAK GEENE 








nt 


en ® 
ti Ed 


2e 
ee 


ï 


re 








redken td 


staan. S2a-d verzorgt de omschakeling van read 
naar write. Het voordeel is ook dat de Vpp 
generator in de read-mode uit staat en geen 
stroom trekt. S3 tenslotte schakelt de Vpp. De 
ted Di geeft de program stand aan. De leds D6-D8 
geven het epromtype aan. Het omschakelen is 
tamelijk ingewikkeld geworden, maar is 
noodzakelijk als de programmer zo universeel 
moet zijn. Uw eigen wensen zijn natuurlijk aan 
de hand van het schema aan te passen, zodat het 
voor specifiek gebruik eenvoudiger wordt. 








1632 
esra) 








Erber (1) 
Zj em ) 


Eg 


&r 


























De schakelaar S2 MOET van het z.g. non-short ing 
type Zijn, anders kost dat een ATOM. Si hoeft 
dat niet te zijn als men voor het inprikken van 
de programmer de schakelaar in de juiste stand 
zet. S3 is een speciaal type met 3 standen, 


zodat in de middenstand alle contacten verbr 
zijn (on-off-on). rbroken 






EPROM PROGRAMMER _ SJAAK GEENE 


ATOM NIEUWS PAG. 


L 





ONW 


GT U ‘U 'D U 'D U 'U "U 


11 
13 
15 
17 
19 
21 
22 
23 
24 
25 
26 
27 
28 
29 
31 
33 
37 
39 


Voor spoel Ll heb ik een 

geschikt en goed verkrijgbaar type gevonden n.1l. 
3122 108 9146, uit Philips K9 en Kil KTV. Het is 
een witte ronde spoel in de voedingsunit en in 
slooptoestellen ruim voorhanden. De weerstanden 
R1l-R14 moeten uit meerdere weerstanden 
samengesteid worden om de juiste waarde te 
verkrijgen. Dit is betangrijk i,v.m. dejuiste 
progammeerspanning. 
De software. 
Ik ben uitgegaan van PROM.V2,0. Daarin tot regel 
50 de veranderingen aangebracht nodig voor het 
conditioneel assembleren, de variabelen A,B en C 
bepalen de read en programpuls, De variabele E 
het aantal te lezen of te programmeren bytes, de 
variabele G het begin van de te programmeren 
bytes, de variabele J bepaalt samen met E hoe 
hoog de programmeerspanning Vpp moet zijn. Het 
assembleren gebeurt bij mij standaard op #400, 
omdat bij de 27128 zoveel geheugen nodig ís, ook 
wordt dan de source overschreven. De variabele D 
in regel 50 kan dan eventueel gewijzigd worden. 

Verder heb ik de regelnummers zoveel mogelijk 
geìijk gehouden en de aanpassingen 
tussengevoegd, Veel plezier met de opgevoerde 
programmer. 


Sjaak Geene. 
Zonneweide 6, 
5221BH 's Bosch. 


PROGRAM EPROM PROGRAMMER 

„$12;DIMH(O) 

… * EPROM PROGRAMMER er 
hi BEFORE STARTING THE PROGRAM"' 
… SWITCH PROGRAMMER TO THE" 

… RICHT POSITION" ' 

* CHOOSE : ent 

FOR 27128 : halli 

FOR 2764 ent 

FOR 2716 mer 
FOR 2532 : enn 

Pp," FOR 2732 : 

DO INPUT" YOUR CHOISE “F‚' 

UNTIL Fò=i1 AND FX=5 


PEN 


RRRS 


GN WNE 


DO XIF Fei OR F=2 OR F=5 INPUT" A-TYPE? (Y/N) “SH 


UNTIL $H="Y"OR $H="N" 

ELSE 

IF F=l:A=#EC;B=#CC;Ce#CE: E=#40 ; G=#30 

IF F=2;A=#EC; BCC; C=#CE;E=#20; G=#40 

IF F3; A=CC;B=tEC; C=#EE; E=4#08; G-#84 

IF F=4 OR FuS;A=#EC;B=#CC;C=$CE;E=#10; G=4#04 
XIF F=1l OR F=2 OR F=5 AND $H="Y";J=TRUE 
ELSE J=FALSE 





PAG. 


B ATOM NIEUWS EPROM PROGRAMMER _SJAAK GEENE 





50 P.$12;D=#0400; @=0 
60 P."ASSEMBLING TO #"&D' 
70 DIM VV47; F‚N=Q TO 47:VVN=DiN, 
80 F.lel TO 2;P.$21;P=D 
SOL; INIT ter 
100 LDA@#55 ;:STA#208 
110 LDA@O;STA#B8OE ; LDA@#CC : STA#BBOC 
120:VV7 JSR#F7D1: ] 
130 ?P=#0C:$(P+1)="EPROM PROCESSOR"; ! (P+16) =#EAOAOAOD: P=P+20: { 
140:VV10 JSRVVO:JSRVV1 : JSRVV41 : JSRVV34; JSR#CDS4 ; JSR#F7D1 : } 
150 $P="INSERT EPROM";P=P+12: (NOP 
160 JSR#FE94; JSR#CD54 
170 \**READ COMMAND** 
180:VV11 JSRVVO:JSRVV1 : JSRVV41 ; LDAGHSF : JSR#CDOF 
190 LDA#100:CMP&#51 : BNEVV33 
200 LDA@O:STA#B8OC; LDA@#S2 ; STA#208 ; JMP#C2CF 
210:VV33 CMP@#42; BEOVV12; CMP@4#5 2 : BEOVV18 : CMP@#5 3: BEQVV26 
220 CMP@#57 ; BEQVV 30 ; CMP@#56 : BEQVV21 
230 JSRVV6: JSRACD54: JMPVV 11 
240:VV30 JMPVV28 
250O\** BLANK? ** 
260:VV12 JSRVVO 
270:VV13 JSRVV1:JSRVV41 : JSRVV5 ; LDA@G#FF : CMP#95 : BNEVV14 
280 JSRVV2:BEQVV13;JSRVV15 ; JSRVV16 ; JMPVV11 
290:VV14 JSRVV15;JSRVV6 : JSRVV17 : JMPVV11 
30ON\**READ* * 
310:VV18 JSRVVO 
320:VV19 JSRVV1:JSRVV41:JSRVVS:;LDY@O:LDA#95;STA(HI3) .Y 
330 JSRVV2;BEQVV19:JSRVV20: JMPVV11 
340\**CHECKSUM* * 
350:VV26 JSRVVO 
360:VV27 JSRVV1:JSRVV41; JSRVVS 
370 CLC;LDA#95; ADC#96 : STA#96 ; LDAQO : ADCH97 ; STAH97 
380 JSRVV2:BEQVV27 ; JSRVV 25 : JMPVV 11 
IION\**VERIFY** 
400:VV21 JSRVVO 
410:VV22 JSRVV1:JSRVV41: JSRVV5 : LDA#95 
420 LDY@0:CMP(#93) ,Y:BNEVV23; JSRVV2;BEQVV22 
430 JSRVV24: JSRVV16 ;: JMPVV11 
440:VV23 JSRVV24; JSRVV6 ; JSRVV17 ; JMPVV11 
450\**WRITE** 
452:VV28 JSRVVO:JSRVV1;JSRVV42: JSRVV31 
453 LDAGE:CMP@8; BEOVV36 : CMP@#10 : BEQVV44 : CMP@#20 : BEQVV45 : JMPVV45 
454:VV36 JSRVV39: JSRVV43: JMPVV40 
455:VV44 LDA@J : CMP61 ; BEQVV 37 ; JMPVV36 
456:VV37 JSRVV38;JSRVV43 : JMPVV40 
457:VV45 LDA@J : CMP@I1 : BEQVV46 : JMPVV 37 
458:VV46 JSRVV47; JSRVV43; JMPVV40 
465:VV40 JSR#FE94; JSR4CDS4 : JSRVV 35 : JSRAFE6 6 
470:VV29 JSRVV1;JSRVV42 
475 LDY8O;:LDA(#93),Y;STA#B800 : LDA@A : STA#B8OC 
480 JSR#FE66 ; JSR#FE66 : JSR4FE66 
490 LDAGB:STA#BBOC : JSRVV2 : BEQVV 29 : JSR4CDS4 : JSRVV20 
500 JSRVV34: JSR#FE94 ; JSR#CDS 4: JMPVV11 
BION\**INIT ADRESSE 


EPROM PROGRAMMER SJAAK GEENE ATOM NIEUW PAG, 


hd 





520:VVO LDA@+FF ; STA#B803 

530 LDAGO:STA#91:STA#92:STAH93: STAHOG : STA#97 

540 LDA@G;STA#94; JSRHFE6GB: RTS 

550\**WRITE ADRESS** 

560:VV1 LDA@G#FF;STA#B802: LDA#91 : STA#B8O1 ; LDA4#92 : STA#BBOO ; RTS 
570:VV41 LDAGHCE; STA#BBOC ; LDA@#CC ; STA#BBOC ; RTS 
575:VV42 LDAGC;STA#B80C: LDA@B; STA#B8O0C: RTS 

SBON\**INC ADRESS** 

590:VV2 INC#93;:BNEVV3: INC#94 

600:VV3 INC#91;BNEVV4; INC#92 

610:VV4 LDAGE:AND#92:;RTS 

620\**READ BYTE** 

630:VV5 LDAGO:STA#B802 ; LDAGHEC ; STA#BBOC 

640 LDA#B800: STA#9S : LDAG#HCC : STA#B8OC; RTS 

65O\** ERROR ** 

660:VV6 JSR#F7D1:]:?P=7:SP+I="ERROR '":P=P+7: [:NOP;RTS 
670\** "BLANK CHECK "** 

680:VV15 JSR#F7D1:]:SP="BLANK CHECK ":P=P+12;: [;NOP:RTS 
6ION* OK EN 

700:VV16 JSRAF7D1:1:SP="OK":;P?22=13:P23=10: P=P+4: (NOP:RTS 
Z1ON\**"ON #(ADRESS) "** 

720:VV17 JSRHF/D1:J:SP="ON #";P=P+4: [;NOP 

730 LDA#92:JSR#F802:LDA#91 : JSRHFBO2 ;: JSR#CDS4; RTS 
ZAON** "VERIFY" ** 

750:VV24 JSR#F/D1:1:$P="VERIFY ":P=Pt7: [:NOP:RTS 
760N\**"READY'"** 

770:VV20 JSR#F7D1:):$P="READY";P?5=13:P26=10:P=P+7: (NOP: RTS 
78ON** "SUM" 

790:VV25 JSR#F7Di:}:SP="SUM=k# ";P=P4+5: [;NOP 

800 LDA#97;JSR#F802: LDA#96 : JSR#FBO2 ; JSR#CDS 4; RTS 
810\** "SET program'** 

820:VV31 JSR#F?7D1:}:SP="SET program':P?211=7;P=P+12 

830 [;NOP:RTS 

B4O\** "SET read"** 

850:VV34 JSR#F7D1:):$P="SET read':;P?8=7;P=P+9 

860 [;NOP;RTS 

870\** "PROGRAMMING ""** 

880:VV35 JSR#F7D1: ) : $P="PROGRAMMING'":;P?11=10;:P?12=13:P=P+13 
883[:NOP:RTS 

885:VV47 JSR#F7D1:}:sP=" 12,5 “:P=P+6:{(;NOP:RTS 
886:VV38 JSR#F/D1;};SP=" 21 ";P=P+4; {:NOP;RTS 

887:VV39 JSR#F7D1;];SP=" 25 ";P=P4 :NOP:RTS 

888:VV43 JSR#F/D1:}:$P="VOLTS! P?8=10;P?9=13;P=P+10 
889 [;NOP;RTS 

890} ;N. 4 

900 P,$6"CODE AT #"&D'"FINISH AT #"&P' 

910 P,"LENGTH="P-D!" (#"&P-D") BYTES" 

915 P."PROGRAMMING FROM #"&G*256 

917 P." TO #"&(G+E)*256-1' 

920 P,"TO START: PRESS KEY" 

930 LINK#FFE3:@=8:LINKD:E. 

















„AG. 14 AOM NIEUWS ATOM PASLAL 





ATOM PASCAL (VER. 1-1986) 


LINK83000 PROMPT: « PROGRAM: #3000 - S7FFF 


WORKING AREA: #6 - &FF, #200 -#2FF 
USER AREA: #8200 - #97FF: 





TEXT 3800 
-r Top line position 
8 Bottom line position (°.”} ATC 
*N/n Next n lines (°.“zall,RTN=1} 
*U/n Up n lines 
…F Find line containing string 36C4 
Istring 
IN/OUT 
«Rr Read text from keyboard 
? 
*L/n List n lines TV/printer 
-C COS/DOS (To ATOM COS5/DOS) 8200 
SAVECFILE” ---- LOAD" FILE" 
Back ta PASCAL = Control P {Useless after BREAK) 
TOGGLE 
*A Assignment tracing. Print values changed by 
Assignment and FOR statements. 
ha Statement tracing. Print text unit just 
before it is executed. 
EDITING 
*Ò/n Delete n lines 
„1 Insert one line ahead of current line 
? 
«Sp (SP=SPACE) List current line 
-v View 5 lines 
EXECUT ION 
6 60, execute program 
„Kk Check program syntax 
*, Execute and trace program 
-X Execute immediately one statement (STM) 
1STM 
-P Page, radefine number of printer colums (desimal}. RTNs64ldefcult} 
HM Shaw number of free user memory bytes (desimal} 
«2 Delete program (cold start), N or SPACE z NO,Y = VES 
…E End PASCAL, back to BASIC. {BREAK} 
ESC Stop execution 


ArUM PASCAG ATOM NIEUWS PAG. 11 





ATOM PASCAL is both à compiler and an interpreter. It compiles source 
statements written in Pascal directly from the keyboard into an internal 
format. The internal format contains both the object code to be interpre- 
ted upon execution and source code identifiers for formatted printout to 
support editing at the source code level. Identation levels are set 
automaticalìy to aid debugging. The object code (program) can be saved and 
loaded on tape or disk. (Starting address of code in address #9782/B3). 
Input Lines must be restricted to 60 characters. Machine-code subroutines 
can be called using SUBR(CALL) or FUNC(CALt). These subroutines must not 
contain operating system vectors {(#200-#24B): 


PROGRAM BLEEP:; 

VAR BLEEP=SFD1A: CHAR; 

BEGIN 

SUBR(BLEEP } lar WRITELFUNCIBLEEP)) 
END 


A well known textbook in Pascal is “Pascal User Manual and Report”, 


Springer Verlag (1978) by Jensen and Wirth. Most of these Standard Pascal 
features are implemented: 


Reserved Words 





AND ED sin ser 
ARRAY FILE Hor THEN 
BEGIN FOR or To 
CASE FUNCTION or „TYPE 
CoNsT Soro OTHERWISE UNTIL 

L_piv Ie PPOCEDURE VAR 
vo IN PROGRAM WHILE 
DOWNTO LABEL RECORD WITH 
ELSE Mod REPEAT 





Reserved Symbols 




















n - * / = 
= < >= o < > 
} te -) E 1 
|L_Word Function Operand (s) Result 
ABS Absolute Value Integer, Real | Same as Operand 
ARCTAN | Arc Tangent Integer, Real | Real 
cos Cosine Integer, Real | Real 
Exp Exponent Integer, Real | Real 
LN Natural Logarithm Integer, Real | Real 
200 Integer Boolean 
ROUND Round Real Integer 
Sin Sine Integer. Real | Real 
sor Square Integer. Real | Same as Operand 
SORT Square Root Integer, Real | Real 
TRUNC Truncate Real Integer 




















PAG.12 ATOM NIEUWS ATOM PASCAL 





andard Ident:frers 

















constants: FALSE TRUE 
Types: BOOLEAN CHAR INTEGER 
REAL STRING TEXT. 
Fsnetrens: Aas FUNG ROUND stee 
ARCTAN Le sis TRUNC 
car ooo SOR 
cos oro soRT 
EXP PRED SUBR 
Procedures: READ READIN * _ WRITE WRITELN | 
EREAK 1 











Character Functions: 








succ Successar Scalar except Real Same as Operand 


Fuora___| runesion Operand («) Result 
H 

cur | Character Integer Character 

arn í Oedsnat Scatat except Real Integer 

PRED | Predezessar Scalar except Real | same as Operand 





Bachine Language Functions 


word _[ ranstien ____ |operand ts) | aesutt 


MEN 






Suhroutine Call 







Function Call 


ATOM PASLAL ATOM NIEUWS PAG.15 





Arsthmerie Operators 








ISymbel/word | Operatzen 


+ Aadieien (plus sagn) 


- Subtraction (minus sign) 














. Multaplication 
1 Division 
viv Division (yields à truncated integer result) 
MOD Î Modules (yields the remainder of divisian} 
J 
Relaticnal Operators 
|Symbol/Wword Operation _ 
Gs nom 
> Greater than 
>en Greater than or equal to 
< Less than 
< Less than or equal to 
- Equal to 
e Not equal to 











nm 


EXECUTION-TIME DIAGNOSTICS 


The form of the diagnostic message is 


ERROR &nn 
text unze 


After conzrol returns to the command interpreter, a series of 
WRITELNs may be executed with the @X command to examine the 
state of the data. The position of the text unit pointer 
insures that visibility of identifiers is the same aa that 
which prevailed at the time of the error. The data structures 
built during execution are not initialized until the next <G 
er + is executed, so Gata are available for examination, 


PAG. 14 ATOM NIEUWS ATOM PASLAL 





The *S ERROR* dragnostie indicates a syncax error. 


e syntax error message, the right-most 
‚ since the 





e case of 





“a” usually gives a strong clue about the err 
sedzarely to 1es right is the one whach led 








character 27 
the syncax analyzer into the impasse. If the right-hand 
“at ys zhe last character of the diagnostic message, 
something 1s missing at the end of the input, for example, 


a Zinaì semicolon in a declarataon or definition. 





Note: Error numbers with an asterzak ace internal checks. 





Their occurrence may 1nticate less of menory intel 


























ore 

oa . 

03 Value Stack has excaeded avarlahle space. 

aar 

os- 

a& Too few actual parameters . 

07 Too many actual parameters 

aa Actua) parameter of a VAR Zormal parameter zz an 
expression. 

os 

10 

21 Nonordinal type where ordinal (scalar) tyoe required. 

12 Maximum permissible dynamic statement denth of 24 
exceacet. 

13 Ordinal value computation cut of range (Array and ser 
selection) 

ier 

ist 

16 _ Expression result type should be Boolean and ze not. 

1? _ Punetion identifzer on left-hand side of assignment does 
zot refer to a declared function. 

18 

19 _ type compatibiliey error in assignment or actual value 
parameter. 

20 Type {a} improper for operator. 

21 Attempt to make array selection on a nonarray. 

22 String leng:h excess or operation. 

23 Eapty string inproper for operation. 

24 

25 Attenpt to negate a nonnumeric. 

26 Operand should be Boolean. 

27 

za GoTO with destination textual depth greater than that of 
coro. 

29 Actual/formal parameter type discrepancy. 

30 Control variable has changed zn FOR loop. 

31 Argument of CHR not in 0..255, 

32 Value less than lower limit of eubrang: 

EE] Value greazer than upper limit of subrange. 

34 Argumens not ordinal (scalar). 


35 Argument not teal or integer. 


43 


sl 
52 
53 


GOTO refers to an undefined label, ATOM NIEUWS PAG- 15 
Actual/formaì VAR parameter type discrepancy. 





Array reference to STRING with noninterger subscript. 


Right operand of IN not a set ar packed set. 
ATOM PASCAL 





Source String to long for receiving string. 
Improper argument of record select (.} operator. 


No match between value of expression and CASE constants. 
Argument of WITH is not a record variable. 

Hore than the maximum of 16 records in a program. 

Field identifier not preceded by “‚" and not in the 
scope of a WITH, 


Processor stack pointer is hicher than when break dis- 
continued executzon: Break-in-progress is now false and 
«G will start at beginning. 

Processor stack is about to overflow. 

Attempted division by zero. 

Floating-point overflow. 

Pixedepoint overflow in TRUNC or ROUND, 

MOD with negative divisor. 


Diagnostic messages which occur durang hriading have the 


following distinctive form: an indicator Line deseribing the 


error, followed by ane or more program text lines deseribing 


where the ercor occurred. The following indicator lines can 


eccur: 


*UNDEF* identifier 
*DUP* identifier 
*UNDECL* Label 
“DUP* label 
*TYPE* ident:fier 


The indicator lines *DUP* identifrer and *UNDEP* identifier are 
each followed by one text unit which contaans the cited identi- 


Frer occurrence, 


The *DUP* d1agnostic is generated at a defining occurrence of 
an zdentifier af the identifier has a prior defining occurrence 


at 


the same block level, 


The *UNDEF* diagnostic is generated at a referring occurrence 
of an identifrer 1f the identifier has no prior defining 
gecurrence at the same or at any higher block level which would 


be visible to this referring occurrence. 


The indicator line *“TYPE* identifier can indicate an incons:s- 


tency between the types of the upper and tower bounds of 2 sub- 
range type: it can also be generated by a STRING type with a 
noninteger length. The identifier in the indicator line is a 


type identsfrer appearing ìn either the sabrange or string 


type: this udentifer refers to a type which 1s ineonarstent 


wich the definition in which it occurs, This definition occurs 
in the text unit following the indicator line, 


PAG. 1& ATOM NIEUWS __NORMEN YvO Trut 





Ni ï : 


Naar aanleiding van het feit dat er weer wat nieuwe clubontwikkelingen plaats nodig 
hebben in het #BXXX blok hierbij weer een nieuwe memory map met de benodigde 
uitleg. 

De 280-CP/M kaart heeft een extra VIA nodig welke geplaatst zal worden in het 
#BXXX blok. De keuze van het definitieve adres is gemaakt op #BCOO. Waarom?, wel 
in het #BCXX blok staan alle diskcontrotlers (de GDOS, en de ACORNDOS volgens 
de nieuwe normwijziging). Het schema om de VIA op het adres #BCOO te krijgen is 
bijgeleverd bij iedere Z80-CP/M kaart. Voor de rensen die niet zo bedreven zijn in het 
lussen van zo'n printje kan ik melden dat er een printje zal komen om de VIA te 
plaatsen. Er zat zo hard mogelijk gewerkt worden om dit in een respectabele tijd voor 
elkaar te krijgen. 

Verder worden er behalve de Z80-CP/M kaart nog wat zaken ontwikkeld zoals een 
“echte” Centronics interface (ontwikkeling van de regio limburg). De plaatsing hiervoor 
valt op de plaats van de originele ATOM-VIA namenlijk #B800. Natuurlijk wordt een 
en ander wel goed uitgedecodeerd. (op 16 bytes nauwkeurig… …. ) 

Over de verder in de memory-map besproken zaken kunnen we nog geen goede uitleg 
geven, maar deze zaken komen wel binnen afzienbare tijd, dus vandaar dat de adressen 
alvast gereserveerd zijn binnen de 1/O-memory-map. 

Nogmaals de inmiddels bekende kreet: U bent niet verplicht zich aan de 
plaatsingsnormen te houden, maar het is wel verstandig, want hoe meer uitbreidingen 
er in het #BXXX blok komen, hoe meer U uit eigen initiatief geplaatste uitbreidingen in 
de weg zult zien zitten. Daarvoor adviseert de hardwarecommissie nogmaals: houd 
alstublieft de clubnormen aan, anders word het voor U een puinhoop in het #BXXX 




















SFFFE 
MONITOR 
me, Enis 
#EDOO = SBFEF me - 
Foaring Point 
Doo - #BE00 vero 
BASIC vaEo0 err 
mmtje 
id #B000 +BDo0 
ROM/RAM —_j 
#A000 #BCOO 
#9800 Acorn DOS 
#BC48 
Graphics «8300 opos 
#8000 #BC10 
Z80-CPM 
soo Y #5C00 
V6k-kaart RAM wa400 
4000 
“3000 Boos 
RAM A Booo 
#2800 
DOS-workspace 
2000 
RAM 
40400 
Zero Page 
0000 





TIPS 28390 Yvo TUK ATOM NIEUWS PAG. 1/ 





Ti Z80-CP ryik: 


De gebruikers van de Z80-CP/M kaart zullen reeds gemerkt hebben dat er bepaalde 
zaken besproken worden in de handleiding die eigenlijk niet direct mogelijk zijn, omdat 
er bijvoorbeeld geen ACORNDOS-FDC aanwezig is in het systeem (de EPROM die 
geplaatst moet worden in het FEXXX blok) In dit verhaaltje zullen we een en ander 
duidelijk maken over de nodige aanpassingen die aan de ATOM gepleegd moeten 
worden om de zaak op de Z80-CP/M kaart te laten draaien. 
Allereerst de #EXXX EPROM. 
Indien U op de schakelkaart geen ruimte meer hebt om een #EXXX blok te plaatsen 
staan hieronder twee methoden om zonder al te veel problemen een #EXXX blok in de 
ATOM te creeren. 
Methode t: U heeft een schakelkaart #AXXX), en geen extra monitorROM op voet 
24. (Voet 24 op het ATOM-moederboard is dus geheel vrij.) Maak het 
decoderingsschakelingetje zoals dat beschreven is in figuur 1, en schrap op het 
moederbord bij IC24 of voetje 24 pen 20 door, en soldeer een draadje met het 
selectiesignaal op die plaats. (Het is eventueel ook mogelijk om het pootje van de 
EPROM uit te buigen, en dan het draadje vast solderen aan dat pootje. Het HEXXX 
blok is nu voor U beschikbaar … 
Methode 2: U heeft voetje 24 in de ATOM bezet door een EPROM, en deze plaats dient 
bezet te blijven door diezelfde EPROM. Maak het decoderingsschakelingetje zoals dat 
beschreven is in figuur 1. Soldeer op de EPROM die geplaatst is in voet 24 een IC- 
voetje met gedraaide contacten, waarbij de middenverbinding (zie figuur 2) is 
verwijderd. (Anders zou de ondergelegen EPROM nooit meer gewist kunnen worden.) 
(Het verdient trouwens aanbeveling om op die onderste EPROM een stikkertje te 
plakken wat zeer makkelijk verwijderbaar is, omdat het niet echt makkelijk gaat door de 
opgesoldeerde voet.) Plaats nu op de IC-voet de nieuwe #EXXX DOS-EPROM, en 
buig het selectiepootje (nr. 20) nu uit. Soldeer op dit pootje de draad die uit de 
decodering komt, en ziedaar: ook een #EXXX blok beschikbaar. 
Andere zaken voor wat betreft de Z80-CP/M kaart: 
De VIA...Een probleem op zich want er is op dit moment geen echte VIA-kaart 
beschikbaar voor de Z80-CP/M kaart. De normplaatsing is zoals al eerder beschreven 
#BCOO. Deze plaatsing kan heel makkelijk, en totaal heeft U slechts drie IC's en 2 
connectors nodig voor deze uitbreiding. Let echter wel op het plaatsen van de 
doorverbindingen aan de VlAzijde, en zorg ervoor dat de connector naar de Z80-CP/M 
kaart goed vast zit. Voordat U het systeem aanzet is het verstandig om even te 
controleren of de connector niet verkeerd om zit. De min baan aan beide zijden van de 
connector moet wel kloppen! 
Het schema voor de plaatsing van deze VIA krijgt iedereen die een Z80-CP/M kaart 
besteld heeft bij de bouwhandleiding. Het schema wat in de grote handleiding staat is 
inmiddels achterhaald omdat het niet op de plaats #BCOO staat. 
Succes met het nabouwen, en veel plezier met de DOS EPROM. 

Namens de hardwarecommissie: Yvo Tuk. 





PAG. 18 ATOM NIEUWS SELECTIE EXXX EPROM Yv TUK 





74LS40 





U kunt in het ATOM schema kijken op welk 
IC deze 74LS40 het best geplaatst kan worden 
als "piggy pack”, zodat U de adreslijnen bij de 
hand hebt. 





Opbouw extra voet 
op IC-voet 24 van 
het ATOM-moeder- 
bord (figuur 2) 
EPROM voor het 
HAXXX blok, of 
Hier zat nog een ver- b À 
Opgesoldeerde, binding mssende _ Íe monitor ROM 
socket met gedraaide twee rijen van de GHFXXX) 
contacten socket, deze is weg- 
geknipt om de 
EPROM nog te kun- 


nen programmeren. 


FDC NAAR #BC48 YvO TUK ATOM NIEUWS PAG, 17 





Verplaatsing van de FDC naar #BC48 


Naar aanleiding van het feit dat het artikel over de verplaatsing van de FDC volgens een 
nieuwe norm van de Hardwarecommissie op vreemde wijze is verdwenen hierbij 
nogmaals een artikel over deze verplaatsing. 
De verplaatsing komt eigenlijk neer op de manier zoals Nico Stad deze besproken heeft 
in een voorgaand AN. In deze verplaatsing zat echter nog een klein foutje, want de 
FDC stond plotseling in ieder blok na het blok #BCXX. Dus nog een opvolgende 
wijziging…… 
De methode is vrij simpel; er dient zowel in de Atom als in de FDC wat gewijzigd te 
worden. Deze wijzigingen zijn te zien in bijgaande figuren, Een korte bespreking van 
deze figuren: 
Figuur 1 & Figuur 2: Het wijzigen van de FDC, aan de componentenzijde, en aan de 
soldeerzijde. 
Figuur 3 & Figuur 4: Het wijzigen van het Atom moederbord aan de componenten- en 
soldeerzijde. 
De motivatie voor de verplaatsing van deze FDC mag wel duidelijk zijn lijkt mij, het 
hele /O gebeuren hoort nu eenmaal thuis in het #BXXX blok, en de geijkte plaats 
hiervoor is het blokje VO (FDC's). De exacte plaats #BC48 werd gekozen om 
practische redenen. 
De Hardwarecommiússie is het dus duidelijk niet eens met het plaatsen van de FPC naar 
het SEXXX blok; in dat blok hoort de software thuis. lemand met een uitgebreide DOS 
zou op het moment dat zo'n wijziging een norm zou worden niet meer mee kunnen met 
de normen… 
De DOS EPROM dient overigens ook gewijzigd te worden, het patch programma is te 
vinden op de clubschijf die bij het nummer van AN hoorde waar de wijziging van Nico 
Stad instond… 
Succes met het wijzigen! 

Namens de hardwarecommissie: Yvo Tuk 


PAG. 20 ATOM NIEUWS FDC NAAF #EC4B8 YVU TUE 





Wijziging FDC naar #BC48-#BC4F 


Figuur 3 





Soldeerzijde ATOM-moederbord 
NN Hier dient het voormalige BLTKO 


lijntje verbroken te worden…. 


Al deze pootjes uitbuigen 





Tan 
Wijziging FDC naar #BC48-#BC4F 


Figuur 1 


EDC NAAR #BC48 Yvo TUK ATOM NIEUWS PAG» £1 





Wijziging FDC naar #BC48-#BC4F 


Figuur 4 





vanaf poot 7 naar 
poot 31 van de 
41612 connector…. 


Aan de soldeerzijde deze 





Wijziging FDC naar #BC48-#BC4F 


Figuur 2 





PAG. #4 AFOM NIEUWS MIDI HANS VAN DER LINDEN 





Qve: IDI 


In reactie op het artikel over MIDI van Theo Waaijer in Atom 
Nieuws, jaargang 6, nummer 1, en de daarin gestelde vragen 
doe ik hierbij een poging enkele feiten over MIDI op papier 
te zetten, en tevens iets van mijn eigen belangstelling voor 
de combinatie computertmuziek over te brengen. Ik hoop 
hiermee diegenen die niet met het begrip MIDI vertrouwd zijn 
zover bij te scholen dat ze eventuele toekomstige 
verhandelingen of discussies hierover kunnen volgen. Helaas 
heb ik zelf geen ervaring met het gebruik van MIDI of 
epparatuur die van een MIDI-aansluiting voorzien is, dus de 
volgende informatie is uit publikaties afkomstig en niet in 
de praktijk geverifieerd. 


Allereerst iets over de naam MIDI: dit is volgens mijn 
informatie een afkorting van Musical Instrument Digital 
Interface, en niet Musical Integrated Digital Interface 
zoals Theo Waaijer meende te hebben begrepen. Voor de rest 
van het verhaal is dit natuurlijk van generlei belang. 


Wat is MIDI? 


MIDI is een gestandaardiseerd interface om elektronische 
muziekinstrumenten met elkaar te verbinden. Via MIDI kunnen 
“muziek-data" van het ene instrument naar het andere 
getransporteerd worden. Waarom zou je zoiets willen? Omdat 
het zo eenvoudig mogelijk is om bv, met een enkel keyboard 
meerdere synthesizers tegelijk te bespelen, en bv. muziek 
die live gespeeld wordt in een sequencer op te slaan en 
later weer in dezelfde of een andere vorm opnieuw te laten 
horen. Deze mogelijkheden kwamen pas ter beschikking met de 
grootschalige invoering van de digitale muziekinstrumenten 
en de fabrikanten van deze instrumenten besloten (volgens 
mijn informatie in 1983) tot de invoering van een 
interface-standaard: MIDI. Daardoor zijn apparaten van 
verschillende merken, mits voorzien van een MIDI 
aansluiting, in principe zonder problemen met elkaar te 
koppelen, 


Het MIDI interface transporteert "muziek-data” in principe 
slechts in een richting, nl. van de MIDI zender naar de MIDI 
ontvanger. Bidirectioneel datatransport is via MID[ alleen 
mogelijk door tussen twee apparaten ook twee MIDI 
verbindingen te maken. Dit is in sommige gevallen wenselijk 
maar in de meeste gevallen nauwelijks zinvol. 

Zoale ik zojuist al opmerkte is er bij MIDI sprake van een 
zender en een ontvanger. De zender zendt informatie, bv. 
ingevoerd via een keyboard (een "orgel-manuaal"), in de door 
MIDI voorgeschreven vorm naar de aangesloten ontvanger(s). 
Deze informatie vertelt de ontvanger(s) bijvoorbeeld dat er 
zojuist op het keyboard een G werd aangeslagen en een D werd 


MIDI 


HANS VAN DER LINDEN ATOM NIEUWS PAG. 25 





losgelaten. Ook kan op deze wijze een ander geluid 
geselecteerd worden (nieuwe programmakeuze). 

Elke ontvanger ontvangt de MIDI informatie, zendt die 
(eventueel) door naar de volgende ontvanger, selecteert de 
voor hem bestemde informatie en voert de via MIDI ontvangen 
instructie uit. Dit kan bijvoorbeeld inhouden dat er een G 
ten gehore wordt gebracht en het klinken van een D wordt 
beeindigd. 

Er ís dus slechts een MIDI zender, die als “"Master-keyboard'" 
fungeert, en een of meer MIDI ontvangers die in de vorm van 
een keten aan de zender gekoppeld zijn, en het eigenlijke 
geluid produceren. Als Master kan een synthesizer(-keyboard) 
of een los keyboard worden gebruikt, maar ook een computer. 


Het MIDI interface 


Het MIDI interface is een asynchroon serieel interface. 
Daardoor kunnen de verbindingen met eenvoudige DIN kabels 
gemaakt worden. Het protocol lijkt op dat van het bekende 
RS5232 interface, maar de overdracht—snelheid is hoger. nl. 
31250 Baud, om vertraging in de datacommunicatie zoveel 
mogelijk te beperken. Een byte wordt bij MIDI in de volgende 
vorm verzonden: 1 startbit, 8 databits, 1 stopbit. Er zijn 
twee soorten data, te weten statusbytes en databytes. Elk 
statusbyte wordt gevolgd door een daarbij passend aantal 
databytes. Een databyte heeft altijd als MSB een O0, een 
statusbyte als MSB altijd een 1. 

Een apparaat dat voorzien ís van een MIDI interface kenmerkt 
zich door de aanwezigheid van S5-polige DIN connectors. Er 
zijn drie soorten MIDI aanstuitingen: MIDI OUT, MIDI IN en 
MIDI THRU. Een zender verstuurt zijn gegevens via MIDI OUT, 
een ontvanger ontvangt gegevens via MIDI IN en stuurt ze 
eventueel door via MIDI THRU. Niet alle apparaten hebben al 
deze aansluitingen; welke aansluitingen aanwezig zijn hangt 
af van de mogelijkheden die het apparaat biedt. Een Expander 
(=synthesizer zonder toetsenbord) heeft bv. geen MIDI OUT 
want hij kan niet als zender functioneren. 


Hoe werkt MIDI? 


Welke gegevens worden eigenlijk via MIDI verstuurd? Dat zijn 
onder andere gegevens over: 

= toonhoogte, toonduur 
aanslagdynamiek 

— programmakeuze 

— pitch bend (toonhoogte modulatie) 

—'kanaalkeuze (16 verschillende kanalen aanwezig} 

= etc. 
MIDI kent 16 verschillende kanalen, die onafhankelijk van 
elkaar kunnen worden gebruikt. Het is hierdoor mogelijk 
maximaal 16 verschillende apparaten via een MIDI keten 
onafhankelijk van elkaar te bedienen. Hiervoor bestaan 
verschillende Modes: 


PAG. 24 ATOM NIEUWS MIDI HANS VAN DER LINDEN 





OMNI-Mode: Alle ontvangers negeren de kanaalinformatie 
en reageren op alle "muziek-data". De zender 
kent alle “muziek-data" toe aan kanaal 1. Er 
is in deze Mode dus eigenlijk maar 1 kanaal 
beschikbaar, en alle apparaten reageren op 
dezelfde informatie. 

POLY-Mode: Alle ontvangers zijn ingesteld op een eigen 
kanaal en reageren alleen op data die via 
dat kanaal worden verstuurd. De zender zendt 
zijn informatie voor elke ontvanger op een 
apart kanaal. ledere ontvanger is dus apart 
aanspreekbaar. 

MONO-Mode: Elke stem ín een ontvanger krijgt een eigen 
kanaal toebedeeld en reageert alleen op dat 
kanaal. Het is dus mogelijk verschillende 
geluiden uit een instrument tegelijkertijd 
en onafhankelijk van elkaar te gebruiken. 
Slechts enkele apparaten ondersteunen deze 
Mode. 


Toepassinasmogelijkheden 


Gewapend met deze kennis over MIDI kunnen we ons een beeld 
vormen over de toepassingsmogelijkheden van een combinatie 
van MIDI en de Atom. Het meest voor de hand liggend is het 
gebruik van de Atom als sequencer of als multi-track 
recorder. Ik zal proberen uit te leggen wat hiermee wordt 
bedoeld. 


Wanneer je als musicus een muziekstuk bedoeld voor meerdere 
musici in je eentje wilt spelen kom je natuurlijk handen 
tekort. Dit probleem kun je oplossen door de verschillende 
partijen na elkaar te spelen en op te nemen, bijvoorbeeld 
met een bandrecorder. Wanneer je echter elektronische 
instrumenten met MIDI interfaces gebruikt kun je de 
verschillende partijen ook via MIDI opnemen en wel in een 
computer, die daarvoor van een geschikt programma voorzien 
moet zijn, Deze combinatie noemt men ook wel een sequencer 
of een multi-track recorder, afhankelijk van de wijze van 
bedienen. Je kunt namelijk de muziek niet slechts live (in 
real-time dus) spelen en opnemen, maar ook stap voor stap 
via keyboard of computer-toetsenbord invoeren, en zelfs 
naderhand wijzigen. 

Een dergelijk computerprogramma zou bv. moeten voorzien in 
16 kanalen die onafhankelijk beluisterd en geprogrammeerd 
kunnen worden, zowel in real-time als stap voor stap, en 
ieder aan een eigen MIDI kanaal zijn te koppelen. Het dient 
ook mogelijk te zijn de weergavesnelheid te varieren. Het 
zou verder nuttig zijn als het programma MIDI informatie in 
notenschrift zou Kunnen omzetten (en omgekeerd) zodat een 
muziekstuk via een printer in notenschrift op papier kan 
worden gezet. 

De precieze eisen waaraan zo'n programma dient te voldoen 
zijn natuurlijk niet zomaar even snel op te schrijven. maar 
moeten zorgvuldig overwogen worden. Overigens bestaan 
dergelijke programma's al voor enkele home- en personal 


MIDI HANS VAN DER LINDEN ATOM NIEUWS PAG. 29 





computers, o.a. voor de Commodore 64. Aan de technische 
haalbaarheid (voldoende geheugen, snel genoeg?) hoeft dus 
niet te worden getwijfeld. Het schrijven van zo'n programma 
zal echter waarschijnlijk geen peuleschil zijn en heel wat 
man- en/of vrouw-uren vergen. 


Conclusie 


Voor mensen die met elektronische muziekinstrumenten werken 
of dit van plan zijn is MIDI een schitterende uitvinding. De 
meeste apparaten op dit gebied zijn dan ook standaard van 
een MIDI interface voorzien. Helaas zijn deze apparaten 
meestal ook (schrikbarend) duur (enkele duizenden guldens). 
en dus voor hobbyisten minder interessant. 

Daar staat echter tegenover dat het bouwen van een MIDI 
interface voor de Atom betrekkelijk goedkoop kan blijven, 
zeker ais het gecombineerd kan worden met een universeel 
serieel interface (RS232, RS5423). Op dit gebied zijn er dus 
geen grote beperkingen. 

Of MIDI voor de (gemiddelde) Atom gebruiker van enig nut kan 
zijn waag ik te betwijfelen. Het eindoordeel hierover laat 
ik echter graag over aan U, geachte lezer. 


Hans van der Linden 
Ketelstraat 10 

6562 LH Groesbeek 
tel. OB891-1336 


FALL. 26 ATOM NIEUWS ZEESLAG KLAAS YPMA 





ZEESLAG TEGEN DE COMPUTER 


Al minstens anderhalf jaar geleden ben ik op het idee gekomen om 
een programma te schrijven waardoor het lijkt of de computer even 
intelligent (of juist nog intelligenter) reageert als de mens. 
Een achaakprogremma is hiervan een goed voorbeeld. Omdat ik dat 
echter veel te ingewikkeld vond, ben ik naar een eenvoudiger vorm 
gaan zoeken. Dit werd het spel zeestag 


Het leuke van het programma was dat de intelligentie steeds kon 
worden uitgebreidt. De eerste programma versie was zeer simpel 
van opzet. De computer verloor door het slechte spel ruimschoots 
alle partijen. IK ben toen uit gaan zoeken met wat voor simpele 
tacktieken het. programma de schepen zo snel mogelijk Korn 
opsporen. Er onstonden zo vele programma versies, met steeds 
betere tacktieken. Nu is het is zo dat in principe de computer 
even goed is als de speler (geluk speelt echter ook een rol). 


Het programma is geheel opgebouwd uit procedures en Functies. Het. 
gemis van echte variabelennamen i.p.v. de letters A t/m Z werd 
als zeer storend ervaren. Om het programma te Kunnen ”runnen” 
heeft men het volgende nodig: 
- een “standaard” atom 
… RAM van #2860 tot #9888 (sorry, het programma is vrij lang) 

P- charme 
Het geheugen wordt als volgt ingedeeld: 
= #2968 tot #5860 programma zeeslag 
“__#SB08 tot #6IAG extra P-charme statements (GRMOD, POKE en 
SPRITES) 

#6IAO tot #6206 assemblerprogrmamma voor verwisselen van het 
graf ische-scherm 
- #6200 tot #6306 sprites tabel 

#6508 tot #6800 arrays en werkruimte P-charme (t.b.v. o.a. de 
procedures en Functies) 
— #6868 tot #5008 beeldscherm buffer 


Üm een goede grafische weergave te verkrijgen wou ik gebruik 
maken van sprites, dat zijn figuurtjes die ge met 1 commando kunt 
tekenen. IK heb hiervoor een simpel programma gemaakt in de vorm 
var: het statement SPRITES. Met het statement. HOKE kan ern op een 
eenvoudiger manier dan met *!’ of ‘7’ een sprite in het geheugen 
worden opgeslagen. Een voorbeeld: 

POKE #6100, 1,8, #7E, #53, #03, #7E, #CO, #CO, HCI, HIE;REM letter 'S’ 
Hier worden 18 bytes vanaf adres #6136 achter elkaar in het 
geheugen opgeslagen. Dit is een sprite met als startadres #6100 
waarmee de letter 'S’ kan worden getekend. De eerste 2 bytes 
geven de lengte en de hoogte van de sprite aan. Deze sprite is 1 
byte, dus 8 “puntjes” lang, ern tevens 8 “puntjes” hoog. Bij een 
geset bit wordt er een puntje geïnverteerd (wit wordt zwart en 
omnek eerd) en bij een gereset Hit wordt. ci nietea gedaan. De 
sprite Kan als volgt worden uitgeschreven: 





ZEESLAG KLAAS YPMA ATOM NIEUWS PAG. 4/7 





JE … KMKKKK. 
#C1 
#CO 
CO 
HE 
#03 oee 
HES Xs XX 
HIE, … NMXNXX. 
Om een eenvoudige definitie van een sprite te waarborgen, moet 
een sprite altijd een lengte van een of meerdere bytes in de 
X=richting hebben. Een byte omvat B bits of “puntjes”. Bij langere 
sprites wordt de opbouw ais volgt: 
POKE #6180, 2, 3, #FF, #FB, #08, #08, #FF, HFB; REM rechthoek — 1323 
betekend: 








“FE #FS KNMANKKKMKKKMK. 
#80 #08 Kee JX 
HEE HEE MRNMKKKKKKKKK. 


Dit is dus een sprite van 1323. Met het commando: 
MOVE 18, 1@;SPRIIES #6166 

wordt de sprite bij coordinaat 18,18 geplaatst. Met deze 2 
statements Kunnen dus eenvoudige sprites worden gemaakt. De 
GAGS-ROM biedt natuurlijk veel meer mogelijkheden, maar zorat 
echter voor storingen als men daarnaast tegelijkertijd intensief 
gebruikt maakt van P-charme. De statements POKE en SPRITES zijn 
ook. als lovsse P-charme statements meegegeven 


Bediening 
Biá zeesleg moeten er een aantai schepen worden opgespoord en tot 


zinken gebracht. De volgende schepen zijn aanwezig: 
-— 1 slagkruiser, 4 “hokges” lang en mag niet aan de wal liggen 


— î Kruiser A Ei u a a „ Oa Ed u “ 
- 3 jagers 3 ” em mogen *  * ee 7 
- 3 torpedoboten 2 ” me wer ne ” 


Alleen de Kleine torpedoboten mogen aan de wal liggen (dit zijn 
de hokjes 6,8 t/m 6,9, 9,8 t/m 9,9, 6,6 t/m 9,8 en @,9 t/m 8,9. 


Deze informatie vordt na het opstarten geprint. Daarna wordt er 
gevraagd of men zelf een speelbord voor de computer wil opzetten, 
of dat de computer dit voor de moet doen. Wanneer men zelf een 
bord wil opzetten moeten achter elkaar de coordinaten worden 
ingetypt van de verschillende schepen. Het programma controleert 


of dit correct gebeurt. Het programma plaatst zijn schepen “at 
random”. Soms Komt het voor dat de schepen ongelukkig worden 
geplaatst, waardoor er bijna geen ruimte meer is voor alle 


schepen. Wanneer dit voorkomt zal er met een schoon speelbord 
opnieuw worden begonnen, 


Nadat de speelborden gereed zijn, doet de computer het eerste 


schot. Dasrna Komt het lege speelbord van de speler te 
voorschijn. Er wordt gevraagd: 

COORD: 
Men typt hierop eerst de X-coordinaat en daarna de Y-coordinaat 
in. Als men zich hierin vergist, dan typt men i.p.v. van de 


tweede coordinaat een <DEL> in, waarop er opnieuw wordt begonnen. 
Het, resultaat, een 7 voor een “treffer” of een X voor een 


FAG.ZB ATOM NIEUWS ZEESLAG KLAAS YPMA 





“misser” (plons), wordt nu gegeven. Na een treffer moet men het 
hele schip tot zinken zien te brengen. Rondom een tot zinken 
gebracht schip worden door de computer “puntjes” gezet. Dit om 
aan te duiden det er op deze plaatsen geen ander schepen Kunnen 
tissen (de schepen mogen elkaar niet raken). Deze “puntjes” heten 
geheugensteuntjes. Men Kan zelf ook geheugensteuntjges plaatsen 
aan het einde van ieder beurt. Wil men dat niet dan geeft men een 
willekeurige toets 


De speler moet winnen van de computer. Dus bij een gelijk aantal 
zetten wint de computer. IK hoop dat jullie veel plezier beleven 
aan dit spel en dat het vooral aanspoort tot zelf programmeren 
Dat. is veel leuker dan alleen het “runnen” van andermans 
programma’ s. 


Klaes Ypma 

Parkweg 140 

S134 Vs Vlaardingen 
tel. : @16--4348651 "7 


PROGRAMMEREN DEEL 2 MARTIE KRUKKELAND ATOM NIEUWS PAG. 47 












rde 
indwaarde? 























Tek, B en ‚ Za 
zesbest Maakbest 
nirialiseen eu Wirsaliseen eu 
open besrard als put open besvavd elf vutput 
lees Eeksre Recomel wt geb: Druk ar “srsppen — “aaa | 
zolang Recomnder >aard voer wa WerRmg | 
venwenk rezondÂd Schrge wanaing naan zeer. | 














| Lees velaemde necoudÂd [retoar “wentie =°-34qa) 





PAG. SG AIDM NIEUWS PROGRAMMEREN DEEL 2 MARTIE KRUKKELAND 














zin 
10 PROGRAM LEESBEST ï 
28 DIM 8(36) 2 
20 A=FIN"" 3 
4ô SGET A,B 4 
33 WHILE NOT ($B="-3935"} 5 


54 PRINT $B';REM verwerk datz 






70 _SGET A,B 7ô 
89 VEND Zi 
30 END ag 


Ve kumnen m 
zinnige namen 













Da] 


rama gmzett 


q 









Dm 
at NI 4 


ui 
(u 
hel 
Ù 
nt ty 


mre 
en 








gzwemmern 
tekeningen, lit 





„aarden in gedachten, oper dan de 
ze uitkomsten verkrij en deze wit 
reeds bekende uitkoms het oroarge iz 





overean stemmen, 








wat er grofse 
belangrijk. 
nf subroutine 
doen?, in de 

zetten van de 
de sorteer s 
data afdrukt, 


u. 





Hierander sta 
‘Sarteer'-prog 





Tek, 18 Jarteer 


“wirialsseen 















“SORT 
“pruk Ar zagel 











PROGRAMMEREN DEEL 2 MARTIE KRUKKEL AND ATOM NIEUWS PAG. 31 









Fr 





















Pals en Wa aan PSD aon 
Leea wak Voonkamb sg Bebelanet otd programma. 
“Doe wieks” Cum ye 








wo 


DD 
mee IIe 














L Hiernaast ztaat de routine 
VerRwis VERUISSEL uitgewerkt, we 
mn S£ ) geeruiken zen hulp variabele 
:= TAgel{(leopy om tijdens het wisselen van de 

wip ád C Pp getallen, een getal te 
en onthauden, daar het anders 

Tavel (Loep,) := TABEL(Leop:+i) serloren zou gaan. Zoals u al 
en L asgemerkt hebt. worden 

Tagel(Loopi +1) ;= hulp subroutines die aangeroepen 





worden, in het aanroepende 
sroorsmmadeel tussen ** pf '' 
geplaatst en de naam wordt bij 
het programma zelf er boven 
aeschreven, 





staan de pvergebleven delen van het sorteer programma (het 
INITIALISEER' en ‘DRUK AF TABEL'), Zoals is te zien, is ‘de 
RT ook afzonderlijk te gebruiken, omdat de hieronder gegeven 
allsen de invoer en uit r de SORT rautine verzorsen, 





PAG. 32 ATOM NIEUWS PROGRAMMEREN DECL 2 MARTIE KRUKKELAND 















irak seen 

primen honet TAg EL 
baat IO alemauben 

vooa, Teller zz | Imat 1O Dauk AF 


LL 
Vasi getal VBEl(Te et) 


OR AF TABEL 





voor Telen ss 0 LL IO 














L 














ni Cmenbieween. week 
Taget(tellee):= getal UEA imo eeven 


beawan PRocebuar of 
Fuutbie (rie P-cHana) 











op 








SAM STATEMENT JAN BRONZWAER ATOM NIEUWS PAG. 33 





Niet geheel tevreden met de reeds eerder gepubliceerde 
Raatest-prograama’s , maakte ik deze zoveelste versie . Ze is 
bedoeld voor herkenning door P-Charme en heeft de volgende 
eigenschappen: 


= TRANSPARANT , d.w.z. programma’s worden niet gewist, 
= NOGAL SNEL ‚ 352k wordt in pakweg 4 seconden getest, 
= INFORMATIEF , geeft foutieve adressen op "t scherm. 


Het is echter niet mogelijk om ram te testen in het gebied van 
de code zelf , dit lijkt mij vanzelfsprekend. 

De regels 50-60-70 dienen ter initialisatie ‚ zoals voor een 
P-Charme tabel noodzakelijk is , zie ook A.N. 3-2. 

Wilt u het RAM-statement in een box plaatsen ‚ dan dient u het 
af te sluiten met JMP#C5S8 (regel 240). 


syntaxs RAM, Mxxxx,tyyyy Geexxe begin , yyyy= eind) 


10 PROGRAM RAM STATEMENT 


30 REM jan bronzwaer (ACL) 

40 DIMLL4;F. I=0TO4sLL I=-1sN.5P.$12"ram-STATEMENT"?" "7 

50 P."TABEL OP: "sIN.TsIN.“CODE OP: “AsP.$21;F. X=OTO1;P=A 
60 GOS. ajN. ;P.$6” ;@=0; T!O=KOOCGESFF; T=T +5; STe" KAM" sz TTL. T 
70 TPO=LL0/256: #80; T?1=LL0%256: 772480; TeT+2; MIFC=T/256 
80 P, "LENGTE CODE: “(P-A-1)""ZEROPAGE: #90-093"" 7 END 

Sa . 

200 

110\interpreteer commando 

120:LL0 JSR&C78B; JSRRC231 ; JSRHCAEL 3 LDAN1 65 STANFOS LDAH2S 
130 STA#I13LDA817; STARP2; INCH 2; L.DAR26; STARTS; LDYBO; STYHO4 
140\berg geheugeninhoud op 

15OsLtt LDA(#9O) , Y; STA#945 JSR#C5O4 

160\test adres met #FF 

170 LDAENFF; STA (HPO) , Ys LDA (DO) , Y3 CMPENFF 3 BNELLS 

180\test adres met #00 

190 LDA@#OO STALRFO) , Y3 LDA (HPO) , Y3 CMPEHOOS BNELL 5 

200\zet geheugeninhoud terug 

210 LDA#94; STA(HFO) ,Y 

220\verhoog teller tot einde 

230: LL2 LDX@RPO; JSRHFAOB; BNELL1 5; JSRÊFFED; JSRHFFED 

240 JSRHF7Di; 1; SP="ready";P=P+L Ps (3 NOP 3 JSRF FD; JMP#CSSB 
250\print foutief adres 

260:LL3 LDA#EOs CMP@27; BPLLL 45 LDASSS; JSRHFFF4 

270 LDA#91; JSRHFBO2; LDARFO; JSRHFBO2; JSRHF7F Ds JMPLL2 

280: LLAJSRKFFED; JMPLLS 

290) 

300 RETURN 





PAG. 34 ATOM NIEUWS NINPUT JAN BRUNZWAER 





Het NINPUT ( numerieke INPUT > statement is bedoeld om te worden 
gebruikt in een door P-Charme te herkennen tabel. 


Syntax z NINPUTx , waarin Xx = maximaal 64. 


U krijgt een vraagteken op het scherm en mag vervolgens alleen 
getallen intypen met een maximale lengte x ( dit om bi ivoorbeeld 
een sprong naar de volgende regel te voorkomen ) ‚ waarna 
AUTOMATISCH return volgt. Bij minder dan x karakters moet u zelf 
een return geven. Hetgeen u intypt wordt als STRENG opgesì agen 
in de stringbuffer op #140. Daar halen we het in Basic op met 
het statement VAL. 


Wat is toegestaan , wat is verboden 7 





= Slechts EEN "-*” teken en slechts EEN " zijn toegestaan en 
wel in de goede volgorde. NINPUT laat in dat geval geen onzin 
toe en tikt u op de vingers door middel van piepjes en cursor— 
bevriezing. 

— “Deieten” mag ook ‚ de cursor stopt vanzelf zodat de tekst 
VOOR het vraagteken niet wordt opgegeten. 

— E-notatie is verboden , u typt decimaal getallen in. 

— Geeft u slechts een return dan staat er alleen #OD in de 
stringbuffer. Dit levert met VAL de waarde O op. 

— Wilt u het getal "oneindig" invoeren, dan typt u "o' 
(= shift 0 >. De tekst “oneindig” verschijnt nu op het scherm 
en in de stringbuffer wordt "ZE30" gedumpt … Met VALS#140 zit— 
ten we dan groot genoeg , dacht ik. 

— Met de ESCAPE-toets kunt u uit NINPUT ontsnappen zonder dat uw 
basicprogramma stopt. In dat geval staat er “** in de string- 
buffer. 


Hoe halen we nu de numerieke invoer ons programme binnen? Welnu 
dat begrijpt u wellicht beter aan de hand van een klein 
voorbeeldie : 


10 PROGRAM EXAMPLE 

20 DIM A44) 

30 NINPUT& 

40 ZA=VALSHL40 

50 $A=S#140; IF%A=""";GOTO 70 
60 FPRINT ZAsEND : 
70 P,"NOGMAALS"’ ; GOTD3O 


In regel 30 wordt $A erbij gehaald omdat de Atom bij het 
IF-statement de stringbuffer op #140 gebruikt en diens inhoud 
dus verandert. Dok moet regel 40 altijd VOOR regel 50 staan. 
Laat ik niet vergeten Charl de Moor eens openbaar te wijzen op 
zijn didactische kwaliteiten . Hij maakte op mijn verzoek de 
eerste opzet voor dit statement en zeî vervolgens : “en de rest 
kun je zelf!" ZO leer je assembler , waarde clubgenoten. 


NENPGT JAN BEONZWAER ATOM NIEUWS PAG. 5» 





10 PROGRAM NINPUT STATEMENT 

20 

30 REM jan bronzwaer (ACL) 

40 DIMLL10;F. I=OT010;LL1=-1jN. 

50 P.$12"NINPUT-STATEMENT"?"" 580 JSRLL 103 LDAACH"O* 

69 IN.“TABEL OP: "T 590 JSRLL10; JMP 

70 IN.“CODE OP: “A;P.s2i 600: LL? ij mi 

80 F‚XxOTO1;PxAj BOS. a;N. &10 LDA4BOO1 ; AND@#20; BEQLLS 


90 P.$6” 3 @=O; T! OmKOOCLESFF 620 Ser 9 
100 T=T+3j ST="NINPUT*; T=T4L. T orn rees JSRLL LO; JMPLL7 


119 T2O=LL0/2561 #80; TP iet 04256 €40 STAW140, Y3 INY; RTS 


120 T?22#B0;TaT+2j PESFC=T/256 &501 
660 RETURN 


130 P. "LENGTE CODE: *(P-A-1)” 
140 P, “ZEROPAGE: #90-#95** "3 END 
150a 

160 

170:LL0 

180 JSRICAE1;LDX@O; STX4 
190 LDA#16; STANI 

200 LDA&3F 4 JERHFESZ 

210 LDY@O;LDX@03 STY492; IMPLLZ 
2201 Li 

250 STXNI 1; JSRHFDLA; LDX491 
240: LL2 

250 STX#91; JSRUFESA 

260 LDXW91;LDY#92 

270 CMP&#&F;BEGLLA 

280 CMP@#1B; BEALLS 

290 CMP@#7F; BEGLLG 

300 CMP@#OD; BEALL7 

310 CPX@#OO; BNELL3 

320 CMPRCH". “s BNELLS 

330 LDX@4FF; IMPLLS 

3401 LLS 

350 CFPY@ROO; BNELL 4 

360 CMP@CH"*-";BEGLLS 
3701LL4 

380 CMP@#3O5 BCCLL1 

390 CMP@WIA: BCSLL 1 

400: LL5 

410 JSRHFESZ; STANL40, Y 
420 INY;STY#92 

430 CPY#90; BEGLL7 ; BNEULZ 
440:LL& 

850 CPY@#OO; BEGLL t 

460 JSRHFES2; DECHI2 

870 LDAGCH"“. “;CMP#1 ZF, Y 
480 BNELL 2; LDX@O; JMPLLZ 
490: LL7 





Ten 


500 LDAR#OD; STA#140, Y En zo komen de mooiste programma's 
510 JERAFED; JMPACHSB tot stand. 
E 


530 JSRIF7DA; Js SP="ONEINDIG" 
540 PaP+L.P;L;NOP 

550 LDY@ROO;LDAECH" 2" 

560 JSRLL1O;LDABCH"E" 

570 JSRLL103LDASECH" 3" 


PAG. 56 ATOM NIEUWS VIDIIEL EVER SANDERS 





Omdat er nogal wat MODEMS in de club zijn en ondat er een VIDI 
TEL programma in de club is wil ik over de kosten van het een 
en ander toch wel wat vertellen. 

Viditel is zoals U weet een informatie en communicatiesysteen 
tegen, zoals de PTT zelf zegt, relatief geringe kosten. 

Of dat inderdaad zo is kunt U zelf vaststellen aan de hand van 
de onderstaande gegevens. 

Een van de voordelen van dit systeem is dat er een tweerichting 
verkeer mogelijk is en herbergt nogal wat andere functies in 
zich. 

Zo kunt U bijvoorbeeld bestellingen doen dmv zgn. antwoordbeel— 
den (de electronisch bestelkaart) of U kunt berichten verzenden 
via 

VIDIBUS. Ook kunt U wereldwijd telexberichten verzenden en ont 
vangen via VIDITEX. 

U kunt informatie betrekken uit computers van derden door ge 
bruik te maken van VIDIPOORT. 

At deze toepassingen kunnen daor alle VIDITEL-abannees worden 
gebruikt. 

Men heeft hiervoor nodig: 

=- telefoon (dat had u niet gedacht he) 

== VIDITEL-terminal bv een ATOM 

=— MODEM 


Wat kost dat geintje nu allemaal? 

Het aansluiten van een MODEM door de PTT kost U eenmalig 
fl. 30, texcl. BTW) 

Het maandelijiks-VIDITEL abonnement kost: 

=- zonder (PTT) moden fl. 10,-—- per maand (excl. BTW) 

=- met (PTT) modem fl. 17,50 per maand (excl. BTW) 

Het PTT modem kunt U ook kopen, dan kost U dat fl. 292,— 
excl. BTW. Let er wel op dat dit modem NAGENOEG ALLEEN 
voor VIDITEL te gebruiken is. 


En wat kas het bellen nu zelf?: 

Overdag van B.00-18.60 uur: computertijd 10 ct per minuut 
excl. BTW 
telefoontijd 15 ct per S minuten 
vrij van BTW 

*s Avonds 18.00-08.00 uur: computertijd 8,6 ct per minuut 
excl. BTW 
telefoontijd 15 ct per 5 minuten 
vrij van BTW 


Deze tarieven gelden op t januari 1987. 


De VIDITELcomputers in Amsterdam en Den Haag zijn bereikbaar via 
een Ob-nummer. Door de invoering van de Ob-nummers ís het 
mogelijk alie VIDITEL-abonnees onafhankelijk van hun woonplaats 
een goedkoop tarief te laten betalen. De VIDITELnummers ziijn: 
96-8421 voor de computer in Den Haag en 

06-8422 voor de computer in Amsterdam 


Wilt U nog meer informatie beìt U dan even met 0017. 
Ik hoop met dit artikel het misverstand dat VIDITEL duur is 
uit de wereld te hebben geholpen. 


FONEEM WIM SCHOENMAKERS ATOM NIEUWS PAG. 5/ 





Het volgende programma is bedoeld voor gebruikers van de "SP 
0256-AL2“, waarmee het mogelijk is spraak op te wekken m.b.v. uw 
computer. Schakelingen hiervoor hebben al diverse malen in -toen 
nog= “Acorn nieuws” gestaan en in de elektuur van mei '66. Het 
is wel nodiqg dat deze aangesloten as op de printeruitgang van uw 
Atom, zoals ook in het elektuur-artikel is vermeld. Verder moet 
uw Atom voorzien zijn van P-CHARME. Met dit prograsma is het 
sogelijk op eenvoudige wijze woorden te creeren door de reeds 
ingevoerde fonemen regelmatig te laten uitspreken en dan weer 
verder in te voeren. Na het geven van "RUN" ziet u het volgende 
menu op het scherm : 


Emm E/MENU\ Een 3 
1=INVOEREN 

2=UITSPREKEN 

S=WIJZIGEN 


A=VERDER INVOEREN 





S=LIJST FONEMEN 


MAAK UW KEUZE? 


U kan nu een keuze maken door de gewenste cijfertoets in te 
drukken, "RETURN" is niet nodig. Als u voor *S" kiest ziet u 
alle beschikbare fonemen in alfabetische volgorde. Met "1" kunt 
u starten met de fonemen-invaer. Nu typt u de fonsmen in die u 
nodig denkt te hebben, steeds gevolgd deor "RETURN". Als u 
stoppen wilt met de invoer typt u nogmaals "RETURN". Het "2" 
kunt u de fonemen laten uitspreken, op het scherm worden dan 
alle ingetypte fonemen zichtbaar gemaakt, voorafgegaan door een 
nummer. Als de Aton een pauze (PAl..-.PAS) tegenkomt wordt op de 
volgende regel verdergegaan. Als blijkt dat u ergens een 
verkeerde foneem gebruikt hebt, kiest u (in het menu) voor “3“, 
waarna u het pusmer van de verkeerde foneem intypt. Dan kunt u 
de juiste foneea intypen, die dan op de plaats van de oude wordt 
gezet. Met "4" kunt u de lijst verder invoeren. Dan valgt nu het 
programaa : 


10 PROGRAM FONEEM 

20 REM W.H. A. SCHOENMAKERS 

30 DATA"PAL","PA2", “PAS”, "PA4", "PAS", "OV*, "AV", "EH", "KKS* 
30 DATAPPP*, “JH", "NNI", "THS, "TT2", PRRI®, "Ax", spe, “TT1® 
50 DATA“DH1*,"IY“, "EY", "DDL", “UW1", "AD", "AA", "YYZ", “AE“ 
50 DATA"HH1 "1 "BBI", "TH", "UH", “UW2") "Alm; “DD2”, “655, "VV* 
70 DATA"GE1", "SH", "ZH", “RR2", "FE", "KK2", "KKI", "ZZ", *NG" 
BO DATA"LL*, "WI", "XR", "WH", "YY1", "CH", "ERI", “ER2“, “ON* 

90 DATA"DHZ*, “55*, “NN2", "HH2", "OR", "AR", *YR*,“G62", "EL", "BB2* 
100 DIM AAS), 14) ‚KL4) 

110 RESTORE 

120 F.X=0T063; DIM J(10) 

130 AAO =JEREADSAA OO :N. 





PAG. 38 ATOM NIEUWS FONEEM WIM SCHOENMAKERS 





140 S=#5000;REM adres tabel 

150 PROC INVOEREN: P. $12 

160bIN. "TOETS DE FONEEN IN“$I 

170 X=0 

180CIFX>63 P.$7" INVOER NIET CORRECT! !"" $P. $11811;G.b 

190 IFSI=""T. Y=Y-1;G.a 

200 IFSAAGO=SI T.S?Y=X; V=Y+156.b 

210 XeX+13G.c 

220aPEND 

230 PROC UITSPREKEN 

240 P.$12;@=0:F.C=0TOY;G=5?C 

250 IF&ST.P.* 

260 P.$21$2$ (G+64) $083$6 

270 P.C*="$AALG)" “ENC 

280 P.*;P."toets"sLINKWFFES 

290 PEND 

500 PROC WIJZIGEN 

310 P.$12; IN. “NUMMER VAN FONEEM"B 

S20dP.";IN."WAT 15 DE NIEUWE FONEEM"sK 

330 X=0 

SAOFIFX>65 OR SK=""G.d 

350 IFSAAOOESK T.S?B=X;G.e 

360 XeX+136.f 

S70ePEND 

380 PROC LIJST 

390 P.“PA1.PAZ.PAS.PAA. PAS. AA. AE. AO. AR. AW. AX. AY. BB. BBZ. CH. * 
400 P_"DD1.DD2. DH1. DH2. EH. EL. ER1.ER2. EY „FF. GG1. GGZ. GG6S.HHI. * 
810 P.“HHZ. IH. IY.JH.KK1.KKZ. KK. LL. MM. NG. NN .NN2. OR. OW. OY „PP. * 
420 P_" _RRI.RR2.SH.S5. TH. TT1. TTZ. UH. UWI. UZ. VV. WH. WW. XR. YY 1" 
830 P.*VY2.YR. ZH. ZZ" 

440 P.* "toets”;LINK#FFES 

450 PEND 

A6OGP.S12jP. “kk MENU Ek 07 

470 P. “1=INVOEREN" * 

480 P."Z2=UITSPREKEN"" * 

490 P."S=WIJZIGEN""" 

500 P. “4=VERDER INVOEREN"? ” „SE J 

510 P."S=LIJST FONEMEN"""" EVE 
520 P. "MAAK UW KEUZE?" ; INKEYZ Tha rn eh 
530 IF$Z=CH"i"Y=0; INVOEREN; G. g ilk | GEE oe, ed 














540 IF$Z=CH"2"UITSPREKEN;G.g 

550 IF$Z=CH"3"WIJZIGEN;G.g 

560 IFSZ=CH"4"P.$12; Y=Y+15 INVOEREN: G. og 
570 IF$Z=CH"5"P.#12;LIJST;G.g 

580 6.9 

590 END 





Opmerkingen z 


In regeì 140 moet de variabele "S" het startadres van de tabel 
bevatten waar de fonemen worden opgeslagen. Als u op #5000 geen 
RAM-geheugen heeft kunt u hier een ander adres opgeven, bijv. 
S=#3000. 


De fonemen PA1 t/m PAS zijn de pauzes, ze wekken dus geen 
klanken op. 


SILHTAPSTANDSBEREKENING C,CAMPERS ATOM NIEUWS PAG. 59 





Met dit prograama kan men het volgende berekenen : 
A) Afstandsberekening 

B) Coordinaten decimaal 

C) Coordinaten in graden, minuten en seconden 

D) Eigen antennerichting 

E) Antennerichting tegenstation 


Er is een Josbox bodig 
Met dit programma kunt U ca. 1866240000 verschillende brekningen 
saken 
voor inlichtingen: 04750-33925 
PAOCCR en PAOWCR 


Dan valgt hier het programma. Ook dit programma is weer via het 
disk- en het bandjesarchief te verkrijgen. 


10 REM QTH AFSTANDSBEREKENING (MAIDENHEAD) 

20 REM VOOR ACORN ATOM BEWERKT DOOR PAOCCR EN PAOWCR ROERMOND 
30 REM VERSIE O109B6 —-— JOSBOX NODIG 

35 ON ERR P. "ANTENNERICHTINGEN ONBEREKENBAAR! *" ;E. 

40 P_$12 

50 F.W=1T051;3P.S#ASjN. 5 FP. ° ; DOP. S&DF; U. C. =3 

60 P."nw*$128"gth"$128“afstandsberekening” 

70 DOP. S#DF;U.C. 2315 P.* 3F.W=ITOS1sP.SHDOEN. $P." " 


75 P.* aaidenhead""*** 

80 P‚“ (BEST 75 ES GD DX DE PAOCCR) "7? 
85 Pp.” (ES PAOWGR) "*" "7? 

20 Pp.“ DRUK SPATIEBAL.K !!!" 

100 LINK #FFES 

110aP.$12 


120 DIM N(6),Q6) PCI) 

130 P.$7:; IN. "MYN QTH-LOCATOR "SN 

140 $Q=SN; 605. 1; 608. k 

150 ZUeXX3 LVEZV 

160 P.87; IN. “ZYN GTH-LOCATOR "sQ 

170 GOS. 15505. k 

180 XZ=4Y-2V 

190 LD=C. UZ8C. LWJEC. LX+SINKUESINKX 

200 LD=-ATNCXD/SOR (-4D8AD+1)) +PI/2 

210 X0xxD 

220 4D=XDE111.28180/PI 

230 Dek (XD+0. 5) ; Bel 

240 IF D=O P_*“U TIKTE 2 GELYKE GTH-LOCATORS IN"";G.b 
242 P_$78787 

245 P."AFSTAND IS 2 "D" KM"? 

250 4C=(SIN(LX) -SIN (XU) 8COS (0) } 

260 %C=4C/ ( (COSXU) ESINKO) ; ZC=ACSKC} LC=XCE180/PI 

270 C=X(XC+0. 5) ;8=3 

274 FIF XV>4Y C=360-C 

275 P."“MYN ANTENNERICHTING : *C*“ GRADEN" 

277 IF C<=180 P. "ZYN ANTENNERICHTING 2 “C+180" GRADEN” 
278 IF C>180 P. “ZYN ANTENNERICHTING : "C-180" GRADEN" 
280bIN. “NOG EEN BEREKENING (J/N) "$P 





DIT WAS zerrrrrers 


PAG. 48 ATOM NIEUWS GTH-AFSTANDSBERERENING, €. CAM 











284 F._w=1TU31EP.SHASEN. 3 Po"; DOP. SHDE; UC. =S 

285 P."campers"$128"ham"$128"computing" 

286 DOP. SHDF; U. C.=313P." ;F-W=ITOSEGP. SHDOEN. ;P. "3E. 
ZOOIREM X-Y INDEX ROUTINE 

310 A=0?0-65 

320 IF A>17 OR A<O G.f 

530 B=0?1-65 

340 IF B>17 OR BO G.f 

350 F=G?2-48 

360 IF F<O OR F>9 G.f 

370 H=Q?5-48 

380 IF H<O OR H>? G.f 

400 R=Q0?4-65 

405 IF R>23 OR RCO G.f 

415 S=0?5-65 

417 IF S>235 OR SKO G.f 

A20 AX=(-VO+BE1OHH+5/24+1/48) KPI/ LBO 

A22 FIF XXXO FP_LX4180/PI" GRADEN Z.B."" 

425 FIF ZX>=0 FP.XX£180/PI" GRADEN N.B"? 

430 ZY=(-180+AE2ZOHFKZER/12+1/24) €PI/1BO 

435 FIF XY<O FP.ZYX180/PI" GRADEN W.L. *” 

436 FIF ZV>=0 FP.XYX180/PI" GRADEN O.L. "” 

440 R. 

45OfP. IET BESTAANDE GTH-LOCATOR OF "* 

455 P. “TIKFOUT 
456 DOP-$7;U.C. 
460 G.b 

585 REM GMS OMZET-ROUTINE 
SIOkKZE=LXK180/PI 

595 E= 

&10 
630 
#40 
660 LG=(LJ-J} 860 

+65 G=X6 

670 FIF (XG-G) >=. 55 L6=%0+1 
675 IF 
676 IF 
&77 IF 















678 IF 
679 FIF 4X>=0 PXE "LG" N.B. "” 
&BO FIF XX£0 P,XE! 5" Z.B."" 


&90 ZT=XYE180/PI 

710 T=4T 

720 @=0 

730 #M=(XT-T) €60 

740 M=XM 

760 %W= CMM) 360 

765 WEiW 

770 FIE (WW) >=, Ss ZW=AWHL 
775 IF ZW>=60s ZM=XM+1 








776 IF KW>=60; ZW={W-60 
J77 IF AM>=605 LT=KT+1 
778 IF XM>=605 ZM=AM-60 








780 FIF XY>=0 PAT" 
790 FIF ZY<O P.4T 
300 RR. 


ez PW GL. "7 
ZM" PZW" Wel. "7 






SIGHWAY RONALD LEUKS ATOM NIEUWS PAG, 41 





KERKKEKEEEKD DDP 
SSS HIGRWAY >>> 
KEEK DDP 


Highway is een spelletje voor de GAGS V2.35 en maakt af en toe 
gebruik van Josbox of P-Charme om het beeldscherm te kopieren. 
Als in Uw Atom geen schakelsoft aanwezig is kunt U dit vervangen 
daar een FOR/NEXT -loop. Het programma loopt in een Atom zonder 
gestapeld geheugen, verder is ook een joystick nodig (indien U 
geen joystick bezit zie de opmerking na de listing). 


LINKS a B c D E RECHTS 


Het spelen: Als het spel begint staat Uw auto (DAF 66) op de 
E-positie. Het is de bedoeling om naar de A-positie te rijden om 
daar een liftster op te halen en haar naar de overkant (de 
E-positie) te brengen. Ontwijk hierbij de hindernissen t Als U 
erin slaagt om drie liftsters naar de overkant te brengen riidt 
Uw auto het Benzine-Station binnen, Hier kunt U punten winnen 
door op de oliepomp drie dezelfde tekens te plaatsen. Dit kunt U 
proberen daor op de vuurknop te drukken. Het spel eindigt als U 
drie maal tegen een hindernis aanbotst. 


10 REM &X8EE highway XKKEE 
20 REM Et ROLAND LEURS $% 
30 T=0;GAGS; BASE#B& 
40 CREATE/M CAR1,56,56,56,144,16B,147,65,127,0,0,0,1,1,129 
„2,254/A: 101 
50 CREATE/H CAR2,56,56,56,144,1468,147,65,127,56,56,56,17,41 
„145,2,254/A: 102 
40 CREATE/H CARZ, 102, 255, 189,255,66,60,0,0,0,0,0,0,0,0,0,0 
70 FOR A=5T06 
80 CREATE/H OBS3,31,255,635,255,6,2,1,0,255, 248, 254, 248,4,6 
„0,0/AzAiN. 
90 FOR A=1T02 
160 CREATE/V OBS1,216,72,124,58,57,56,56,B4,124, 16,56, 56,56 
„68,0,0/A: A;N. 
110 FOR A=3T04 
120 CREATE/V OBS2,0,0,24,24,24,24,24,24,24,62,231,195,0,0,0 
„0/A:AsN. 
136 CREATE/V HITC,0, 54,26, 36,36, 127,62, 28,60,92,62,9, 28, 28,8 
Ls 
» 
140 CREATE/V BUS5,0,0,24,24,24,24,24,24,24,255,130,67,254,0, 
0,0 
150 CREATE/H CRAS5,0,0,12,19,56,9,2,0,0,0,12,50,209,72,15,0 
160 CREATE/V TREE,&0,24,24,28,26,24,24,56,124,252, 254, 126,60 
„56,0,0 
170 CLEARZ;MOVE14,0; DRAW24, 9& 
180 MOVE 115,0; DRAW105, 96 
190 SET: TREE, 3,85; IF ABSRND22=1 THEN TURN: TREE 
200 SET:TREE, 1,19; IF ABSRNDX2=1 THEN TURN: TREE 
210 SET: TREE, 7,55; IF ABSRND42=1 THEN TURN: TREE 
220 SET: TREE, 120,90; IF ABSRND22=1 THEN TURN: TREE 
1 THEN TURN: TREE 








£ ATOM NIEUWS HIDSWAY KUNALD LEURS 





10;K=13t=05 UNSET: RETC: 


240 


250 


330 





540 
550 
560 
570 
580 
590 
400 
&10 
&20 
4630 
640 
&50 
660 
&70 
480 
690 
700 


SET: TREE, 118,63; IF ABSRND%2=1 THEN TURN: TREE 
FDR B=24 TO 103;:MOVE B,0;DRAW B,96;NEXT B 
FOR X=15 TO 23} Y=0 

PIXEL X,Y,Z31F Z=0 THEN PLOT 13,X,Y 
V=V+13 IF Z{>0 THEN NEXT X 

IF X=24 THEN GOTO 310 

BOTO 270 

FOR X=104 TO 112; Y=0 

PIXEL X,Y,‚Z;IF Z=0 THEN PLOT 15,X,Y 
Y=Ye1s ie Z<20 THEN NEXT X 

IF X=113 THEN GDTO 560 

GOTO 220 

INV; CDPY #8000 #8500 #9000 

5125 REL=ORP. KRAKEREKKKEERKKKERKKKERKKKKEKKKE" 
OREREERKKSER highway ZEEKERKANKEE" 
VEEEKEREEKEEKEKERKKEKER EKE EKEREN 
PINKS A _ B C D E _ RECHTS""? 
“HET SPEL BEGINT — DE AUTO BEGINT" 

BI DE E POSITIE — VERMIJDT DE" 
HINDERNISSEN ALS DE AUTO OP DE" 

B‚C OF D POSITIE STAAT — NEEM ’N" 
LIFTER MEE — PROBEER OP DE E POS" 





P."TE KOMEN MET LIFTER. "7? ?* <TOETS>"s INV; LINKHFFES 
P‚$12; 7$E1=0;P. "scorez"*""<1> ONTWIJK EEN HINDERNIS z: 10 
P_*<2> NEEM EEN LIFTER MEE : 2o Pr“ 





<3> ZET DE LIFTER AF : 20 Pp" 

FP_"£4> JACKPOT (DRUK TOETS)"; INV: LINKSFFES 
F.$12;?#E1=0;P. "NADAT DRIE LIFTERS ZIJN AFGEZET" 
P."KAN DE AUTO HET BENZINESTATION" 








"BINNEN RIJDEN. PROBEER DEZELFDE" 

DRIE NUMMERS OP DE OLIEPOMP TE" 

KRIJGEN DOOR OP DE VUURKNOP TE“ 

DRUKKEN, "7 7 "111 => 50 PP" 

333 > 100 P"*"777 => 500 FP"? 
5 == ===> 500 PFP" "ANDER ——> opt” 


« "<DRUK TOETS>"; INV 
en &FFES;CLEAR2; COPY#9000 #9600 #8000 
B=101;SETG, 95, 10} L=0; H=03 K=03 U=03 P=03 0204 M=20 
SET1, 36, 1;5ET2, 56,96 
SET3, 55,40; SET4,55,-45 
SETS, 74,32; SET&, 74, 128 
DO A=0;B=03C=0; JOYSTK A,B,C 
POSG, D,E 
IF A=1 GOSUBr 
IF A=255 GOSUBI 
GOSUB o;PAUSE M 
UNTIL P=3;60TOe 








710r IFD=74; IFH=ODRK=O;R. 


720 
750 


IFD=93;R. 
UNSETG; SETG, (D+19) , 10; SOUNDSO, ZO; R. 


7801 IFD=36&; IFL=OORK=t; R. 


750 
7460 


IFD=17;5R. 
UNSETG: SETG, (D-19) , 105 SDUNDSO, 503 R. 


770oIFL=0; IFA.R.X15=9; SET: HITC, 7, 6sLe1 


780 
750 


IFL=1;SHOVE:HITC,O, -8;POS:sHITC, D,E; IFE<Zs UNSET 2 HITC; L=0 
IFE=1&DRE=8; IFK=0;3 POSG, D,E; IFD=17;$ UNSETG; G=1023 SETG, 17, 
=U4 21 Os.e 





HIGHWAY RONALD LEURS ATOM NIEUWS PAG. 45 





200 IFH=O; IFA.R. 15=2; SET: BUSS, 114, 963 
B10 IFH=1;SHOVE: BUSS, 0, -8:F0S: BUSS, D,E: IFE 7; UNSET : BUSS; H=O 
820 IFE=140RE=8; IFK; POSG, D,E; IFD=?35; UNSETG} G= 1015 SETG, 95, 10 
UNSET : BUSS; U=U#504 GOS. p 1 0=0+1; 1FO=25G. 5 

830 F.A=1TD6; SHOVEA,O,-B3 ATHIT A, Gs GOSURc 

640 POSA,D,E; IFE>OA.E{9: POSG, D,E; IF D*17A.Di9ZsU=U+10D 

850 NEXT; SOUND10, 50; R. 

B&0CFOSA, D,E: INSETA; GDS. 5; F. 0=0T07 

870 SET: CRAS,D, E; PAUSE; NEXTOz FaF+i 3; IMAGE: CARS, (F410-6) „96 
B80 UNSETG:G=101:SETG, 92, 10; SETA, D,E; =O; R. 

89neF. Z=1T023 FAUSE1 0: GOS. sjN. 

900 F.$12 
910 F 
920 























IFU:T;P. "JE HEBT DE HIGHSCORE VERBETERD '";T=U 

950 P. "SCORE » vy*”"nighscore 1 "T**"<S DRUK TOETS OM TE H" 
96 PRE1=OsP."ERSTARTEN >" 

970 LI. #FFE33G. 600 

AUSE 105; GOS. piN. 

0 INSETA;N. ;UNSET: HI TC; CLEAR 
1600 PRINTSZ0"?"""""""""$989$98IEIRPEI8 
1010 MOVEL 1,25; DRAWiL, 26; L=0 

1020 DRAWS2, 26; DRAWS2, 25; CIRCLEI, 16,51, 24 CIRCLEI, 21, 31,3 
1056 CIRCLEI, 46, 21, 23 MOVESI , 36; DRAWZI , 40; CUBE1, 0, 21, 40, 20, 








1040 P_$20’;"HEO=11;@=8iP.UsF.A=1 TO Z:D0 IFA=1l;D=#BOAB 


1970 
1080 
1C90 
1400 
1110 
1120 IF7#BOA8=?#BOAF ; IF ?#BOAF=7#BOB7;G. 1170 
1139 F.Q=#FFTOOS. -103 SOUNDG, 103 N. ; MODE4 
1146 COFY#9000 #9200 #BOOOsO=O;M=M- 2; IFM O3 M=O 
1150 PR15=03 7#14=0; IFP FE. X=1 TOP; IMAGE: CARS, (X410-6) , P6jN. 
1160 G.&20 
1170 F.Q=-100T0100S. 2; SOUNDO, 55 INViN. ; INV; Q=0; IF"#B0AB=49 7 U= 
U+50 
1180 IF?#80AB=51 3; U=U+100 
1190 1F?8BOAB=S5j EU 200 
1200 IF7#BOAB=61 3 U=U4500 
B. 1040 
OpF.X=G TO 94 SOUND25, 200; FAUSES;N. ;R- 
sF.X=0 TO 9; SOUND75, 1003 FAUSES;N. ;R. 














H.E. Atomisten die (nou) geen joystick hebben kunnen dit spel 
toch spelen. Gebruik voor links de toets °5’ en voor rechts de 
toets °G’. Verander in regel 11f0 ’254' in "127° en gebruik de 
shifttoets i.p.v. de vuurknop. Veel Speelplezier ermee brt 


Voor de programmatuur: disk- en bandiesarchief. 


PAG, 44 ATOM NIEUWS MDCR DOS 2 MICHEL/JAN A.C-B. 





Een MDCR operating systeem: DOS 2, 


Het zal in de club wel algemeen bekend zijn wat een MDCR is: een 
Aass-storage divice dat werkt met de kleine cassettes en waarmede 
naar gelang de grootte van de datablokken, per spoor zowat 64Kb 
kan opgeslagen worden. 


Er circuleren binnen onze club, bij mijn weten, twee programma's 
die de MDCR (van Philips) aan het werk zetten: in hoofdzaak 
verschillen ze hierin van elkaar dat de ene werkt vanaf de B 
poort van een VIA, de andere gebruikt de A poort en een bit uit 


de B poort. 


Dit houdt in dat wie aan de ingebouwde VIA een printer heeft 
hangen, best het eerste gebruikt; wie een tweede VIA installeert 
kan zowel het ene als het andere gebruiken. 


Ongeacht de verschillen van beide programma's, hebben ze in feite 
het bestaande cassette-systeem ietwat “opgetild” door een 
directory van de tape bij te houden en daarmede een aantal 
bewerkingen te doen die het gewone cassette systeem natuurlijk 
niet kan. Zo wordt een programma “gezocht” op de tape, vooruit of 
achteruit, wat met de gewone COS niet gaat. 


Oe grote stap vooruit van een hand bediende cassette naar een 
automatisch bestuurde MDCR is echter nog steeds een muizepasje in 
vergelijking tot de afstand die naar een DISK-systeem moet 
afgelegd worden. 


Een MOCR-operating systeem. 


De idee om een nieuw MDCR operating-system te gaan maken is 
gegroeid uit een daaraan voorafgaande idee: namelijk om met onze 
DOS sen RAM-DISK system te maken. 
Voor wie dit een nieuwe kreet isj een RAM-DISK behandelt een deel 
van het RAM geheugen als een DISK, m.a.w. men houdt daar een 
directory van bij en kan daar dan alies doen wat men met een DISK 
doet, alleen hog sneller omdät ‘de mechanisch bepaalde access-tijd 
van de gewone disk nu wegvalt. 

In het licht van dit opzet werd de hele DOS viteengerafeld en 
werd er een source van heropgesteid. 
Dit eerste Freuzewerk liet toe daarna die delen eruit te gaan 
gebruiken die nuttig zijn voor de RAM-DISK en andere te 
verwaarlozen. Bij terug-assembleren moest er echter voor gezorgd 
worden dat aìle oude routines op hun plaats bleven zitten omdat 
andere DOS utility's direkte sprongen naar deze adressen maken. 


Het bleek ( en dat is nogal logisch ook >» dat de DOS in twee 
grote stukken ken opgedeeld worden: een eerste deel dat het werk 
met de file's organiseert en een twede deel dat de disk drive 


aanspreekt langs de controller om. 


ATOM NIEUWS PAG. #4 





MDER DOS 2 MICHEL / JAN 





Dit twede deel werd veranderd om nu niet een Diskcontroiler aan 


te spreken maar om in RAM te gaan werken. 
Dat de stap near het "aanspreken" van een MDCR nu voor de hand 


tag is klaar. Alleen moest deze stap nu nog gezet worden. 


Even samengevat: 


Aan de hand van de bestaande DOS en met behoud van al zijn 
mogelijkheden werd een systeem opgezet dat nu naar keuze ofwel 
met een RAM-gebied af met de MDCR omgaat net alsof het een 
diskdrive is. 

Wie dus nog niet met een Disk werkte kan niet weten wat dit 
inhoudt; maar zij zullen al wel hebben vastgesteld tet hun 
ergernis, dat sommige programma's “voor disk” geschreven zijn, 
dat is nu verleden tijd, alles wet voor disk geschreven was kan 


nu op de MDCR. 
INSTALLATIE 


Om deze gemodificeerde DOS te instelteren zijn er verschitiende 
mogelijheden die bvb afhangen van wat U reeds heeft in uw ATOM. 
Vertrekkend van de "standaard ? ATOM". 


HARDWARE. : 


U moet geheugen in RAM hebben vanaf #2000, op tat 4#9FFF. 

U moet een EPROM in #Exxx kunnen plaatsen (of een prat. RAM); dat 
kan bvb op de schakelkaart. 

U moet de UIA hebben en daarvan gebruikt U de B-poort: die zit op 
PL? of de bus in uw rack als U PL? naar buiten hebt gevoerd. 

U kan natuurlijk ook een andere VIA (met andere adressering) met 
behulp van de duovia kaart op het rack zetten, en daarvan weer de 


B poort gebruiken. 


U moet vanaf de B-poort interfacen naar de MDCR volgens het 
verbeterde Marchal systeem, ofwel volgens het hierbijgevoegde 
schema: Daarop vindt U ook de goede aansluitvolgorde. 


SOFTWARE : 


Is aan al het voorgaande voldaan, dan volstaat het om de code van 
de DQS.2 in de EPROM of de RAM op #Exxx te hebben om te kunnen 
werken, tikt u #D0S dan gaat uw ATOM over op dit operating 
systeem dat nu in RAM of op de MDCR gaat werken, net alsof het 
een diskette is. 

Hoe krijgen we die code? Door het programma #MDCR te runnen!! 
Maar hiervoor moet U al over een disk-drive beschikken en deze 
meet ook de vier sourcen MOCR op disk hebben staan; dat het 
gehele ding in SALFAA 2.0 is geschreven is ook niet 
verwonderlijk. 

Wat wel duidelijk is: U komt er niet met deze source tenzij U 
beroep kunt doen op iemand die el over disk beschikt. Om deze 


PAG.4& ATOM NIEUWS MDCR DOS 2 MICHEL/SJAN A‚L.B, 





moeilikheid uit de weg te gaan is er reeds een file "AMDCR" 
beschikbaar om van uit #Exxx DOS.2 te draaien voor MDCR. Daarbij 
werd uitgegaan van de idee dat de bestaande wia op zijn 
fabrieksadres nml #8800 gebruikt wordt en dat U als RAMdisk het 
gebied vanaf #7FFF naar beneden gebruikt. 


OVER DE SOURCE EN HET HOOFDPROGRAMMA. 


Het hoofdprogramma #MDCR vereist om de code voor de DOS." te 
leveren, dat op de disk vanwaaruit het gerund wordt, nog aanwezig 
zijn: de files ADISK, TDISK, MDCR1, MDCR2, MOCR3, MDCRá. 

ADISK is de absolute-file van de gemodificeerde DOS. 

TDISK is de symboltable benodigd door SALFAA. 

MDCRI is het begin van de source en bevat de gebruikte adressen. 
MDCR2 is de source voor het MDCR besturingssysteem. 

MDCR3 is het vervolg. 

MDCR4 is het deel dat RAMdisk bevat. 


AANPASSEN AAN INDIUIDUELE SITUATIES: 


1: VIA adres: regel 105 van MDCRI aanpassen aan het 
Ulâ-basis-adres 


2: RAMdisk:wilt U hiervan afzien dan moet U in de fite MDCR2 de 
regels 1006,1008,1010 weglaten; en in de file #MDCR moet U verder 
verwijderen de regels 1036 tot em met 1042. 


JsAantal MDCR's. Indien slechts een MDCR gebruikt wordt dan 
verandert men in file MDOCR3 op regel 1180 LDX@#10 in LDXAAD en 


laat verder regel 1178 weg. 


Opmerking: 

De basis-file "ADISK", die de gemodificeerde DOS bevat, herkent 
16 mogelijke drivesi! Daarvan werden toegewezen nrs 0 en 1 aan de 
MDCR, nrs 2 en 3 aan RAMdisk. Wordt met opzet of per vergissing 
geprobeerd een “drive” te accessen die niet is aangesloten dan 


gaat het systeem "hangen". 


4:Geheugengebied. 

De code wordt door Salfaa in RAM op gebied #7000 neergezet en is 
geschreven voor HExxx. Vanaf f7xxx kan het dan gecopieeerd worden 
bvb naar een EPROM. 

Alhoewel het steeds mogelijk is om de code elders (dan in #Exxx) 
neer te zetten, bvb op de schakelkaart in #Axxx, en daar zal snel 
de bekoring toe komen, willen de auteurs erop wijzen dat dan aan 
het originele ATOM opzet afbreuk wordt gedaan. Wie echter zowel 
de originele DOS samen met dit systeem wil installeren, zal dan 
een soort schakelsysteem, dat beurtelings het ene en dan weer het 
andere voorzet, moeten ontwikkeen, 


GEBRUIK 


MDCR DOS 2 MICHEL/JAN A.C.B. ATOM NIEUWS PAG, 4/ 





Dit wordt echt kort gehouden: er bestaat een originele DOS 
handleiding, en een nederladss versie van TELEC, beiden zijn 
onveranderd bruikbaar voor dit systeem. Wanneer U geen eigen 
epstartprogramma (BOOT) heeft dan moet U #*DOS intikken : alle 
vectoren worden nu verzet om te werken met DOS.2; na elke BREAK 


moet U terug *DOS tikken. 


Zoals bij een gewone diskette moet U formateren. Dit gebeurt 
zowel woor de MDCR als voor de RAMdisk. Het format programma is, 
als bij de gewone dos als utility gedacht en staat als source 
code op de schijf: om het te runnen moet dit weer met Salfaa 2.0. 
De code kan komen waar U wil en dan roept U deze aan met LINK 


Kxxx om te formatteren. 
Het formatteren wan de RAMdisk is nog eenvoudiger: dít is een 


Besic programma dat U zet waar U wil Cwel buiten de 
RAMdisk-space) en dat U dan runt. RAMdisk start op #7FFF en gaat 
vandaar naar beneden, U moet dus opgeven hoever: let er op niet 


in de buurt te komen van Top van een in geheugen staand programma 
want tussen beide is er geen beschermende barriere, zodat er 


ongelukken kunnen gebeuren. 


TOT SLOT. 


Uit wat voorafgast kan afgeleid worden dat in dit systeem nog 
meer mogelijkheden zitten die we hier reeds willen aanstippen. 

In deze DOS.2 zit een file en directorybehandelingssysteem dat, 
in princiepe, allerhande apparatuur kan aanspreken, daarom werd 
het geschreven om 16 “drives” te kunnen accessen. 

Zoals we nu door het opgeven van een drivenummer, de keus hebben 
om twee mdcer en twee RAMgebieden t accessen, zal het mogelijk 
zijn om verder nog bvb 4 diskdrives achter dit systeem te hangen. 
Daarvoor moet dan wel het specifieke programma geschreven worden 
dat deze drives via hun controller aansprsekt. Dat kan dan elke 
controller zijn dus is het niet uitgesloten dat er vroeg of laat 
een controller voor een harddisk achter komt. Voor een harddisk 
zijn er echter nog andere problemen te kleren. Dat wordt dan wel 
DOS.3. 

Het hele programma-werk van deze DOS.2 ‘is van de hand wan Michel; 
mijn bijdrage bestaat uit het leveren van deze tekst en misschien 
hier en daar een suggestie. 

dit projekt beschouwen wij niet als ten einde, dat ziet U wel in 
geloven wij. Dat we nu toch publiceren is omdat we overtuigd zijn 
dat in dit stadium velen reeds nut kunnen hebben van het systeem. 
En anderen kunnen misschien nu inspringen om bepaalde 
ontwikkelingen over te nemen; bij voorbeeld: 

De RAMdisk gebruikt nu eigen RAM van de ATOM. Men kan dit met 
weinig veranderingen zo maken dat de RAMdisk een eigen 
geheugenkaart bewerkt die dan een max. totaal aän geheugen van 
(16#2568256) 1.048.576 bytes kan hebben. Daarvoor moet echter een 
RAMdisk geheugenkaart met eigen decodering ontwikkeld worden, een 


hardprojekt dus. 
Het schrijven van het programma om de controllers 8271 en 1793 te 


FAL.S8 AFOM NIEUWS MDCR DOS 2 MICHEL/JAN A.C.B. 





Besturen, 

Het vitzoeken van een systeemuvitbreiding nodig om een winchester 
controller in gang te krijgen. 

Zoals men kan zien: onze ATOM is nog niet dood! 


Michel Van Leuven en Jan Lernout A.C.B. 1 Maart 1987 
INHGUD SCHIJF: 


mder (tekstfile voor EDIT) 
#MDCR 
AD ISK 
TOISK 
MDCR1 
MDER2 
MDCR3 
MDCR4 
AMDCR 
TMDCR 
FORMAT 
RFORMAT 


LITERATUUR: 


ATOM DOS 

Handleiding bij diskdrivepakket wan TELEC 
ATOM-WARE nr.2 van Henk Reinders 

De DOS uitgedost door Frank Cuypers 





Pb1 EN 
Pb7, CTP 
Cbie o RDC 
Pb BE 
Pb0o RODA 
Cb2 o WDA 
Pb5, WCD 
Pb REV 
Pb2 WD 
Pb4 

2: LS 26 

3 

& LS 367 





Eén MDCR fiq.4 


MEMORY EDITOR BERRY LAM ATOM NIEUWS PAG. 49 





INLEIDING, 


Toen enige tijd geleden voor de Acorn Atom de B80-koloms kaart ter 
beschikking kwam, is hij vrij snel in mijn computer gekomen. 

Een toepassing, die ik er voor geschreven heb, is een memory-editor. 

Het programma is geheel geschreven in SALFAA en kan als statement worden 
ingebouwd in een box of een P-CHARME-tabel. 


BESCHRIJVING, 


De routine wordt via de interpretortabel van de box aangeroepen, waarna 
gesprongen wordt naar het punt waar ook het adres wordt ingelezen dat 
achter het statement stond (zie regel 1940) en in de service-line worden de 
toetsen getoond waarmee de verschillende functies worden aangeroepen. 
Vervolgens zet subroutine “SCHERM" voor de eerste keer 256 bytes op het 
scherm. Dit gebeurt in 16 regels van 16 bytes en de regels zijn als volgt 
opgebouwd: 

Hexadecimaal adres van het begin van de regel, de hexadecimale inhoud van 
de volgende 16 bytes en tenslotte de ASCII-weergave van die 16 bytes. 

Per keer wordt dus Ì pagina op het scherm gezet. 

De cursor wordt gezet bij de hex-byte links boven, 

De "READ'KEY"-loop (r.2000) scant het toetsenbord en springt, afhankelijk 
van de toets, naar de verschillende subroutines. 

Omdat ik een numeriek toetsenbord aan de Atom heb, stuur ik de cursor met 
de getallen 8, 6, 2 en 4 in de verschillende richtingen over het blok van 
16 bij 16 bytes, Komt de cursor bij de rechter zijkant, dan gaat de cursor 
naar het begin van de volgende regel, tenzij de cursor al rechtsonder 
staat . Een teruglopende cursor springt van de tinker zijkant naar het 
einde van de vorige regel tot de cursor linksboven staat. 

Naar de CHANGE-routine (r.2480) wordt gesprongen als de spatiebalk wordt 
ingedrukt . Staat de cursor in het hex-gebied, dan worden de eerstvolgende 
2 toetsen ingelezen en getest op geldigheid (O t/m 9 en A t/m F). Staat 
de cursor in het ASCII-deel, wordt 1l toets ingelezen. De zo verkregen 
nieuwe waarde wordt op de juiste plaats in het geheugen gezet en de hele 
regel wordt opnieuw geschreven, waarna de cursor weer op de zelfde plats 
wordt teruggezet. 

De JUMP-routine (r.2620} verplaatst de cursor van het HEX- naar het ASCII- 
gebied en omgekeerd. 

De NEXT- (r.2680) en PREV-routine (r.2720) zetten resp. de volgende en de 
vorige 256 bytes op het scherm, 

Met "Q" tenslotte wordt de loop verlaten en het scherm in zijn 
oorspronkelijke vorm geinitialiseerd. 


Berry Lam 
05120-21258 


PAG. SG ATOM NiElWwS BIJ KULUMS INFOMASIENR JAN BROUNZWAER 











eahemeobeaisokenkcokerk apzopssk opo shop oponkeaidijtk 


INFOHMASTER va 
sokje pks is he ek ie: 













* 





aat. 


Sinds het verschijnen van de BO=koiomskaart zal ar ap 
teuteid warren aan Droeraama’ 
kaart in tet 
ter van 


dive 
waarvoor 










ee al jaren ha 
moeten bestaan … „Warchali ts daarvan 
sen aoed voorbesid . j=katams is het met deze 
atabase” veert monier werken. 




















Indien wij de Bi-kotoms cigbkaart sebruiken … is het 
beschikbaar seheusen met A5 K uiteebreid van 
#EDON-#H20R „ omdat de BA-kniomskaart over haar =iaen 
videnseheusen beschiet. 

Welnu v hiervan heb ik aebruik semaakt om het ZEER 
compact seschrevan Infomaster eniaszins te verfraaien 
„en heb Ír een DOS-versie van semaa vaar de 








BB-kolomskaart » INFOMSO senaamd. 

Ban de werkine van het oroaramma is niet sesieuteid + 
ik vond dat er op de kwaliteit niets aan te merken 
valt „n bavendien moeten reeds bestaande bestanden 
teìiloos kunnen draaien . Aiteen de tavr=out is … naar 
mijn Smaak v verbeterd en heeit seen protessioneier 
vitertijk sekresen. Het erosramme is daardoor IK 
lanser senorden », de sorteer -en zoekrautines zijn dan 
aak verpiaatst naar #25056 en deze worden bii het 
nnen van INFONSG vanzett insetaden. 











Voor de voliedise handleidina van INFORSG verwiis ik Lt 
naar: 

Atom Nieuws 5 mei 19Rá (blauw) paaina ÎÙ 
Atom Hieaws 5-5 ibtaum) vaar knutrseiar 
vanrzichtie met dit laatsteennemde artik 
niet bekend aan weike versie van Intnmaster ik heo 
sssieyteid en bovendien is er seen hyte meer vrij! 

















De ge reainschijf vindt ui 


INFOMSA #SOAA-HSFFE (basict 
IM,EDDE WEEMA-HLIFF aas, onde 





kie Saan aisvnier te werkt 


zet de Btom in de BA-kolnmsmnde 





ENFOKSA 
50 
Ik dacht hiermee een waardevni ermaramma te hebben 
serderareerd met metaeen het verdient @Nes:e: atweer 





>en Wi thraidins Vaar SAZE mien nmeakasrt +5 


DIAL E.GIJSSEL ATOM NIEUWS PAG, 91 





Nogmaals DIAL 


Over automatische nummerkiezers is al vaker geschreven in A.N., en de 
schema's zijn er in vele soorten en maten. 

Bij veel van deze schema's ontbreekt het printontwerp, wat voor 
nabouwen een bei ring kan zijn. 

Ook dacht ik dat het eenvoudiger en goedkoper moest kunnen dan tot nu 
toe is gepubijceerd. 

Het resultaat is een schema met 1 IC (7404) en vijf transistoren. 

Om een telefoontoestel te sinuleren zijn verder nog drie relais nodig 
en een trafo van ongeveer 1:1, maar dit is bestist niet kritisch. 

in combinatie met de software biedt de schakeling de volgende 
mogelijkheden: 





= Kiestoondetektie, maar ook bezettoon en verbindingstoon thet 
overgaan van de telefoon) worden gesignaleerd 

- Aanroepen via n uitbreidingsstatement in P-Charme of rechtstreeks 
tn machinetaal 

- Het kiezen van een telefoonnummer volgens de methode van het 
impuisktezen (IDK) 

= Printontwerp bijgel 








rd op enkelzijdige eurokaart 


De hardware 


Voor het basisidee ben ik uitgeggan van het schema van RJ Bronsveld 
uit A.N. 86-3. 

De hierin zangebrachte wijzigingen bestaan uit het sanpassen van de 
kiestoondetektieschakeling en een wijziging in de interfacing met de 
ATOM. 

De schakeling kan in drie aparte delen gesplitst worden: 

: Het kiesgedeelte 

De kiestoondetektie 

3: De interface met de ATOM 





Het kiesgedeelte heb ik ongewijzigd overgenomen uit het schema van de 
heer Bronsveld, zadat ik vaor de uitleg van de werking hiervan naar 
zijn artikel verwijn, waarin dit uitstekend beschreven staat. 





De kiestoondetektieschakeling bestaat uit twee transistoren, waarvan 
de eerste als versterker werkt, en de tweede als schakelaar voor de 
erachter geschakelde 7404. 

De ingangsgevoaeligheid van de versterker bedraagt ca 20 mV 

Bij mij heeft de kiestoon die op de netlijn vd telefoon staat een 
amplitude van 300 mV, gemeten over het teletoontoestel. 

Dit kan al naar gelang van oa de afstand tot de telefooncentrale wat 
meer ot minder zijn, maar er blijft ten alien tijde meer dan voldoende 
over om de versterker aan te sturen, zelfs bij een minder geschikte 
trato. 

Om de versterker niet te oversturen is achter de trato een trimmer van 
ik geschakeld. 

Om ook bezettoon en verbindingsteoon te kunnen detekteren moet deze 
trimmer wel juist ingesteld zijn. 

Het afstellen gaat als volgt: 











PAG. 52 ATOM NIEUWS DIAL E.GIJSsEl 





Draai je eigen nummer (dat is aitijd bezet) 
Stel nu de trimmer zodanig in dat de led voor de kiestoondetektie 
meeknippert met de bezettoon, zonder flauw te blijven branden 

Meestal zal de trimmer hiervoor vrij ver dichtgedraaid moeten worden. 


De interface met de ATOM wordt gevormd door drie identieke 
schakelingen voor het aansturen van de relais, en een schakeling die 
in digitaie vorm het uitgangssignaal van de kiestoondetktie naar de 
ATOM stuurt 
Hierbij geldt: O= kiestoon aanwezig 

I= geen kiestoon 


Het onderscheid tussen kiestoon, bezettoon en verbindingstoon wordt 
softwarematig gemaakt door de duur van het signaal te meten. 


Bezettoon : 0.25 of 0.5 s aan/uit 

Verbindingstaan : 1 s aan 4 of 5 s uit 

kiestoon : constante toon 

De aansturing van een relais wordt ook gedaan met een nul, na een 


reset of bij het inschakeien van de computer zijn alle VIA-bitjes 
namelijk hoog, zodat de schakeling dan niets doet en het 
stroomverbruik minimaal is. 


De software 

Als de print wordt aangesioten op de B-poort van de ATOM-VIA kan het 
programma zonder meer worden overgenomen, als dit niet het geval is 
zuilen de regels 220 en 230 aangepast moeten worden, door hier de 
juiste adressen in te vullen vaar het dataregister (Pr 220) en het 
data-directionregister {r 230). 

Het programma is geschreven in SALFAA versie 2.0, maar met cudere 
versies moet het ook werken. 

Regel 10 schakelt SALFAA in (bij mij in voet 5). 

Regel 20-50 maakt tabel vaar P-Charme op #&00. 

Regel 40-80 assembleer programma 

Regel 130 schakel P-Charme in (bij mij in voet 3). 

Regel 150-250 bij een andere versie van SALFAA ot om een andere VIA op 
te geven zal hier iets gewijzigd moeten worden. 

Relocaten van het programma is mogelijk door regel 210 te wijzigen. 


Het gebruikte statement is DIALSstring> 
Voorbeeld: DIAL*O10-4142434" 

DIAL#A 
Er worden door het programma twee zero-page geheugenlokaties gebruikt 
nl #BO en #B1. 
Deze ruimte wordt ook gebruikt door de DOS-ROM, maar dit heeft nog 
geen errors tot gevolg gehad. 
Het gebruik ervan is tijdelijk, namelijk alleen tijdens het uitvoeren 
van het statement, en omdat de DOS-ROM deze adressen ook maar 
tijdelijk sebruikt geeft dit geen problemen, althans bij mij niet. 
Adres #30 wordt gebruikt ais teiter vaar het meten van de lengte van 


DiAL E‚GlJSSEl ATOM NIEUWS PAG. 55 





de van het aangeboden signaal (zie tabel). 
Adres HBI geeft nadere informatie over de laatste uitgevoerde opdracht 
(=laatst gebelde nummer). 
De inhoud van #B1 is als volgt gedefinieerd: 

= 0 _Bezettoon gedetekteerd 
4 Errar, fout cijter in de string 
= 255 Verbindingstoon gedetekteerd 


Het toevoegen van het karakter -— veroorzaakt een sprong naar de 
kiestoondetektieroutine, door dit karakter weg te laten tussen het 
netnr en het abonneenr worden alle cijfers achter elkaar gekozen, het 
toevoegen van streepjes achter het nummer veroorzaakt even zovele 
extra sprongen naar deze routine 

Na het laatste karakter uit de string springt het programma 
automatisch naar de routine. 

Bezettoon wordt gedetekteerd na drie inpulsen, verbindingstoon na een 
puls van een seconde. 

Het aantal pulsen dat nodig is om bezettoon te detekt n kan worden 
gewijzigd door de waarde van #B1 in regel 410 aan te passen, meer kan, 
maar kost meer tijd, minder is ivm storing niet aan te raden. 

Tijdens het wachten op de kiestoon kan het programma beeindigd worden 
door op CTRL te drukken. 

De inhoud van &Bá4 is nu te berekenen met de volgende formule: 
beginwaarde - aantal getelde pulsen, waarbij geïidt dat een puls pas 
getetd wordt als hij voorbij is. 

Om het on line schakelen van een modem te kunnen verzorgen is een 
grapje uitgehaald bij het konstateren van bezettoon. 

Een modem moet namelijk op de uitgang van de kiezer aangesloten 
warden, parallel aan de telefoon. 

Voor automatisch aanloggen moet het modem ook vooraf on line 
geschakeld worden, de kiezer draait dan het nummer, na het kiezen valt 
het relais af en het modem staat aangekoppeld. 

Dit werkt zolang de lijn vrij is, maar als het gebelde nummer in 
gesprek is, en de kiezer zou normaal de lijn terugschakelen naar de 
ruststand, dan zau het modem aan een lijn hangen met bezettoon erop, 
en bij de volgende poging om het nummer te bellen zou de kiezer nooit 
geen kiestoon meer krijgen, want daarvoor moet eerst de hoorn erop 
gelegd zijn, wat dus overeen zou komen met het otf line schakelen van 
het modem, opnieuw intikken van DIAL“....”, modem oniine, wachten, 
weer bezet, lelijk waord, enz... 

Wanneer de kiezer echter bezettoon detekteert, wordt de verbinding 
verbraken door het impulskontakt te openen en f seconde te wachten tpv 
de lijn meteen terug te schakelen. 

Dit geeft de apparatuur in de telefooncentrale de indruk dat de 
verbinding verbroken is, en wanneer de kiezer dan opnieun de lijn 
overpakt voor een nieuwe poging staat er weer keurig kiestoon op. 

In een programma ziet dit er dan zo uit: 

9POSA="020-147/583" REM ATOMTEL 

100op0 

LOLODIALSA 

LOZ2OUNTIL Biet 

1030LINK (startadres viditelprogramma> 

1O4OEND 











Het geheel is bij mij al enige maanden in bedrijf en funktioneert nog 


PAG. 54 ATOM NIEUWS DIAL E.GIJSSEL 





steeds naar behoren. 

De totale bouwprijs wordt hoofdzakelijk bepaald door de relais, maar 
meer dan 30,- zal het niet snel worden, daar komt nog bij dat van de 
gebruikt onderdelen het meeste za gangbaar is dat je het 
waarschijnlijk zo op de plank hebt liggen. 


> 190 9000 10 „GPTION#LO 
200 F009 4000 &FFF .TABLEN&OOO, H6FFF 
210 #000 7006 „CODE#7000 
220 7000 B8OO ‘drB=#B800 
2530 7000 B802 :ddrB=#B8O2 
240 7000 FB85 : DELA Y=#FB85 \ DELAY X/60 S 
250 7000 FFF4 zOSWRCH=RFFF 4 
260 7000 20 Bi CE JSR#CEBL 
260 7003 20 E4 C4 JSRIC4EA 
270 7006 20 23 70 JSR START 
270 7009 AO OO LDYeo 
270 700B 84 BO STY#BO 
289 700D AZ IE LDX@30 
280 ?00F 20 85 FB JSR DELAY 
290 7012 LOOP 
290 7012 A4 BO LDY#BO 
2r0o 7Ot4 Bi 52 LDACHSZ) ,Y 
290 7016 CB INY 
290 7017 84 BO STY#BO 
300 7019 CI OD CMPEL 3 
300 Z01B FO 11 "_BE& STOP 
310 Z0iD 20 83 70 JSR CALL 
310 7020 4C 12 70 JMP LOOP 
320 7023 ‘START 
330 70235 AP 70 LDA@N7O 
330 7025 8D O2 B8 STA ddrB 
340 7028 Af BF LDA@RBF 
540 F02A 8D 00 BB STA drB 
350 702D 60 RTS 
360 702E :SToP 
370 702E 20 3C 70 JSR TONE 
370 7031 20 ED FF JSRHFFED 
380 7054 zEINDE 
390 7034 AG FF LDA@RFF 
390 7036 8D OO B8 STA drB 
400 7039 4C SB C5 JMPRC5SB 
410 703C : TONE 
420 703C AF 03 LDA8s 
420 703E 85 Bi STARBL 
430 7040 zREPT 
440 7040 AZ OO LDX@O 
430 2042 2 TEST \CTRL PRESSED? 
460 7042 AD Ot BO LDANBOO1 
460 7045 CI BF CMP@IFE 
460 7047 DO O5 BNE CONT 
470 7049 68 PLA 
470 704A 48 PLA 
470 704B 4C 34 70 JMP EINDE 


A80 VO4E "CONI \TOONDETECTIE BIT 7 


DIAL 


E‚GIJSSElL 


ATOM NIEUWS PAG. 55 





490 
500 
500 
510 
510 
510 
520 
530 
530 
540 
540 
550 
550 
560 
540 
570 
580 
520 
570 
595 
5,5 
595 
596 
596 
600 
&10 
620 
620 
630 
640 
650 
660 
660 
620 
670 
680 
690 
690 
690 
700 
200 
710 
210 
720 
730 
730 
730 
230 
240 
7ao 
750 
760 
260 
760 
270 
770 
780 
780 
80 


04E 
7051 

2054 
7056 
7057 
7059 
705B 
705B 
7osD 
205F 
Z061 
7063 
7065 
7067 
706, 
704B 
7206 
706C 
Z06E 
2070 
2075 
7075 
2078 
074 
707D 
707E 
207E 
7080 
7082 
7085 
7083 
7086 
7088 
708A 
asp 
708E 
708E 
2090 
z0r2 
7094 
2094 
7098 
7099 
709B 
7098 
709C 
zor 
70A1 

70A4 
70A6 
Z0AS 
70A9 
JOAC 
ZOAE 
„O1 

7085 
JoB6 
20B9 
ZOBRR 


20 
2e 
30 
E8 
Eo 
Do 


Cé 
Do 
AD 
29 
8D 
A2 
20 
40 


20 


29 
€ 
10 
led 
Do 
18 
69 


A8 
AD 
29 
8D 
Az 
zo 


AD 
29 
sp 


20 
AD 
os 
ap 


66 
00 
os 


40 
E7 


oc 
EL 
20 
09 
32 
D5 
3E 
15 


FF 
B1 


Fa 
2D 
o4 
3 


oo 
DF 
oo 
oF 
85 


oo 
EF 
oo 
03 
83 
00 
10 


FE 
BB 


B8 


FB 


FF 


20 


FB 


FB 
B8 


JSRIFE66 
BIT drB 
BMI NUL 
INX 
CcPxas4 
BNE TEST 

2 NUL 
CPX@1 2 
BMI REPT 
CPX@32 
BMI BEZET 
cPxeso 
BMI TONE 
CPXE63 
BMI CONNECT 
RTS 

: BEZET 
DEC#B1 
BNE REPT 
LDA drB 
AND@HEF 
STA drB 
LDxeáo 
JSR DELAY 
RIS 

2 CONNECT 
LDA@NFF 
STANB1 
RTS 

2 CALL 
JSR OSURCH 
CMP@#2D 
BNE CIJFER 
JSR TONE 
RTS 

1CIJFER 
AND@noF 
CMP@10 
BPL ERROR 
cHPao 
BNE KIEZEN 
eLC 
Apceto 

:KIEZEN 
TAY 
LDA drB 
AND@NDE 
STA drB 
Lpxe1s 
JSR DELAY 

zreB 
LDA drB 
AND@NEF 
STA drB 
LDXa3 
JSR DELAY 
LDA drB 
GRAEN1O 
STA drB 


\SCREEN ECHO 


\GETAL GROTER DAN 9 


PAG. 56 ATOM NIEUWS DIAL E.bIJSSEL 





90 7OBE A2 O3 LDX@e3 

790 70CO 20 83 FB JSR DELAY 
800 70C35 88 DEY 

8300 #0C4 DO ES BNE reB 
810 70C6 Az OF LDX@15 
gio 7oc8 20 85 FB ISR DELAY 
820 70CB AD OO B8 LDA drB 
820 Z0CE 09 20 ORAEHZO 
820 ZODO SD OO B8 SIA drB 
850 70Ds 60 RIS 

840 /OD4 1 ERROR 

850 JOD4 A9 07 tDAg7 

850 /OD6 85 BIJ STASBL 
850 zons 20 F4 FF JSR OSWRCH 
850 ZODB AC 34 70 JMP EINDE 
AGPRBEEF=S 

2OPHIFC=ó 

30! HAOOSHCGESFF 

4OERGOS=" DIAL" 
50!#407=#8000F0 

&OASM-V 


7OPASS2; GOS. 150 
SOPASS1; GOS. 150 
1507#BFFF=3 
140E. 
1350ASM-B 
160. HARD 
180.PRINT 27,78, 10 
190. OPT ION#LO 
200. TABLE#600O, S4FFF 
210. CODER7000 
220: dr BrttB800 
230: ddr B=#B8O2 
240: DELAY=#FBS3 \ DELAY X/60 S 
250: OSWRCH=HFFF 4 
26OIJSRHTEBL 5 JSRAC4E4 
27GJSR START;LDYEOs STYHBO 
ZSOLDXE3O5 ISR DELAY 
290:LOOP LDY#BOSLDA(HS2) ‚Ys INYESTYHBO 
300CMP@15; BE@ STOP 
SIOJSR CALLS JMP LOOP 
320: START 
SIOLDAENZOISTA ddrB 
S4OLDAEHBFISTA drB 
SSORTS 
360: STOP 
370JSR TONE; JSRHFFED 
380:EINDE 
SPOLDA@NFFISIA drB 
4O00JMPMCSSB 
410: TONE 


DIAL E.GIJSSEL ATOM NIEUWS PAG. / 





420L DA2SS STAKBL 

430: REPI 

440L DXBO 

450: TEST \CIRL PRESSED? 
440LDA#BOOLSCMPB1913 BNE CONT 
470PLA{ PLA; JMP EINDE 

480: CONT \TGONDEMECTIE BIT 7 
490JSRHFEGG 

SOOBIT drB5 BMI NUL 
SL1OINX;CPX@64F BNE TEST 

520: NUL 

SSOCPX@12; BMI REPT 
S4OCPXASZIBMI BEZET 
SSOCPX@5O; BMI TONE 
S&OCPX@631 BMI CONNECT 
SJORTS 

580: BEZET 

SYODECHBIJBNE REPT 

S95LDA drBSANDEKEFISTA drB 
SP&LDX26OS ISR DELAY 

GOORTS 

610: CONNECT 
620LDA@KFF ; STAND 

&3ORIS 

&40: CALL 

&5O0JSR OSWRCH \SCREEN ECHO 
G6OCMPENZD; ENE CIJFER 

&7OISR TONE;RTS 

680: CIJFER 
&POAND@HOF ; CMP21O3 BPL ERROR \GETAL GROTER DAN 9 
70O0CMPRO;BNE KIEZEN 

710CLC$ ADC@LG 

720: KIEZEN 

Z30TAY;LDA drBJAND@NDFSSTA drB 
Z40LDX@15; JSR DELAY 

750:reB 

76OLDA drB$ANDEKEFISTA drB 
FFOLDX@SIJSR DELAY 

7Z80LDA drB5ORARRLOSSTA drB 
7IOLDX@IIJSR DELAY 
BOODEYIBNE reB 
SLOLDX@ISIJSR DELAY 

BZOLDA drB3ORAENZOISTA dr B 
BSORTS 

840: ERROR 

S5OLDAE/; STANBIJ JSR OSWRCHS IMP EINDE 
840, END 

8ZOR. 


DIAL E.‚GIJSSEL 





PAG. B ATOM NIEUWS 


ONDERAAN ZICHT 
En 











TRANSISTOREN SX BCSW7E 
DIODEN Dus 
ict F4 LS O4 
TR TRAED 1; 
UE nn N Don TLE ROOD Sn 
CT ot 2 Ì 
ze OT À3 LED GROEN 5 MM 
1ut en 
ek ie 5 LH 
Tei DAM (- Û E 
I} | ur 
— à Ge 
he A 
Kn In Pas IN 
Re 3 ker B 
! RE 1 A 
Yv Y 8 UIT 
B ven 











ATOM NIEUWS PAG. 59 


E.GIJSSEL 


DIAL 








KIESTOONDETEKTIE UIT 
CONN PII L 





me LE 





CONN PIN 3 

|! à 
ne | GET 
CDNN PIN 5 + 














ius 
KORTSTT 


LONN PIN t1 


Wi 











A 
NAAR NUDE 





A 
IN 


NETLIJA 
1 





KIESTOON 
WZ neteKTiE 


nn 


rl 


— DIAL 


PAG.6B ATOM NIEUWS 


Wilt u lid worden van de ATOM COMPUTER CLUB? 


ADRESSEN 


Neem dan contact op met de penningmeester van de regio waar u bij 
ingedeeld wilt worden.Deze kan u inlichten omtrent het lidmaat 


schap. 


Regio NOORD; 
D.Uuldriks 
05987-19611 


Regio OVERIJSSEL/GELDERLAND ; 
Polarisestraat 25 


H.de Ruiter 
05270-17824 


Regio TWENTE; 
G.J ;Noor land 
05700-25294; 

Regio NOORD-HOLLAND; 
P.van Kuik 
02997-1902 


Regio DEN HAAG; 


Th.WaayerL.Couperuastraat 6 


070-862504 


Regio DELFT; 
F.von Morgen 


Regio ROTTERDAM; 
R.de Haan 
01804-25160 , 


Regio CENTRUM; 
P.van Mourik 
03402-48781 


Regio ARNHEM; 
J.Hartog 
08373-13757 


Regio ZEELAND: 
E.Gijssel 
01100-32557 


Regio BRABANT-OOST: 
P.Ehrlig 
040-1144183 


Regio LIMBURG; 
A.van Zantvoort 
04746-5146 


Regio BELGIE; 
R.Leyssens 


Tjamme 18 


Prinses [reneweg: 4 


Zuideinde S4-a 


Postbus 145 


Brasem 125 
Ruiterstede 60 
Keyenbergseweg 60 
Ruysdaaistraat 6 
Roostenlaan 266 
Op het Kuilken 16 


Oude Baan 127 


9642 


8303 


7433 


1843 


2274 


2600 


2986 


3431 


6871 


4462 


5644 


6067 


3550 


JV 


AC 


dP 


XP 


AC 


B5 


Veendam 

Emme loord 
Schalkhaar 
Grootschermer 
Voorburg 


Delft 


Ridderkerk 


Nieuwegein 


Eindhoven 


Linne 


Heusden Belgie 


Bij het aangaan van het lidmaatschap kunt u de contributie over- 
maken op de rekening van de federatie.Vermeld hierbij uw volledige 
naam, adres en de regio waar u bij ingedeeld wilt worden,