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:CMP3 : 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,