DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦725efbaa8⟧ TextFile

    Length: 15168 (0x3b40)
    Types: TextFile
    Notes: Mikados_K
    Names: »INDFØRIN.K«

Derivation

└─⟦e5337a0bc⟧ Bits:30008987 DDE SPC/1 COMAL programmer: BUD, GR85, LØN
    └─⟦this⟧ »INDFØRIN.K« 

Mikados K File

INDFØRING I BRUGEN AF COMAL PÅ MIKRODATAMATSYSTEMET FRA
DANSK DATA ELEKTRONIK.
 
Det er tanken med denne vejledning at lette overgangen
fra anvendelse af COMAL, BASIC eller andre BASIC-lignende
programmeringssprog på andre datamater, til anvendelse af
COMAL på skolens mikrodatamatanlæg fra Dansk Data Elek-
tronik (DDE). Der er således ikke tale om et materiale
til brug for undervisning i programmering, ligesom mate-
rialet ikke skal erstatte den af DDE leverede manual til
COMAL.
 
Vejledningen indeholder en behandling af følgende emner i
nævnte rækkefølge, i hvilken vejledningen i øvrigt med
fordel kan læses:
 
 
Opstart af maskinen.
   Indlæsning af operativsystemet MIKADOS.
   Indlæsning af den interaktive fortolker COMAL.
 
Kommandoer til COMAL.
   I forbindelse med programindtastning.
      NEW, LIST, OUTPUT P, DELETE, AUTO, RENUMBER, EDIT.
   I forbindelse med programafprøvning.
      RUN, ESC, CONTINUE, OUTPUT P, LET, PRINT.
   Opbevaring og genfinding af programmer på pladelager.
      PUT, PUTOLD, GET, MERGE
      SAVE, SAVEOLD, LOAD, CHAIN
      CAT
 
Behandling af data opbevaret på pladelager.
 
Forskellige COMAL-sætningstyper, der typisk adskiller sig
fra BASIC og nogle COMAL-versioner.
 
 
OPSTART AF MASKINEN.
Indlæsning af operativsystemet MIKADOS.
Mens kassen med centralenheden og pladedrevene er slukket
(kontakten på bagsiden af centralenheden), sættes pladen
mærket "MIKADOS SYSTEM DISC ...." i drev 1 (nummereret
fra venstre), og drevet lukkes.
Plader isættes altid med det i kanten udskårne hak vend-
ende opad og udad.
Centralenheden tændes, og på en af skærmene udskriver sy-
stemet en oversigt over, hvormeget arbejdslager, der er
tilsluttet centralenheden, hvor det er placeret, og om
det fungerer fejlfrit. Er dette tilfældet skrives nu på
alle tilsluttede tændte skærme:
 
     MIKADOS VERSION  ......
 
Dette markerer, at operativsystemet MIKADOS nu er indlæst
i en del af arbejdslageret, der er fælles for ale skærme,
og er klar til at modtage kommandoer fra de tilsluttede
terminaler. En sådan kommando afgives ved at nedtrykke
tasten "ESC", hvorved tegnet ">" fremkommer på skærmen.
Efter ">" skrives kommandoen, og der trykkes RETURN.
 
Indlæsning af COMAL.
En af de kommandoer, MIKADOS kan udføre, er at indlæse et
oversat assemblerprogram og begynde at udføre det.
Dette er netop, hvad vi ønsker at gøre, da fortolkeren
COMAL er et sådant program.
Vi sætter nu pladen mærket "COMAL" i drev 1, trykker på
"ESC", skriver:
 
  >COMAL
 
og trykker RETURN.
Efter et stykke tid er COMAL indlæst i den del af ar-
bejdslageret, der er tilsluttet den kommandoafgivende
terminal. Dette markeres ved, at der øverst på skærmen
skrives:
 
 * * * DDE  COMAL  VERSION  2.19  * * *
 
COMAL angiver endvidere, at der kan indtastes kommandoer
eller programlinier, ved at udskrive en stjerne "*".
 
 
KOMMANDOER TIL COMAL.
Alle kommandoer til COMAL afgives ved at indtaste komman-
doen efter stjernen og trykke RETURN. Såfremt COMAL ikke
kan genkende kommandoen, eller der er noget andet galt,
vil der i skærmens øverste linie blive skrevet en fejl-
meddelelse.
De i det følgende nævnte kommandoer er forsøgt delt op i
de faser af programmeringen, hvor de hyppigst anvendes.
Alle kommandoer har kun direkte virkning for COMAL-
programmet i det arbejdslager, der er tilknyttet termina-
len.
 
Programindtastning.
 
  NEW      : et eventuelt COMAL-program i arbejdslageret
             slettes.
 
  LIST     : hele programmet udskrives.
  LIST m   : linie nr. m udskrives.
  LIST m,n : linierne m til n udskrives.
 
  OUTPUT P : en efterfølgende LIST-kommando bevirker ud-
             skrift på printeren.
  OUTPUT T : terminalen bruges til udskrift (unødvendig).
 
  DELETE m : linie m slettes.
  DELETE m,n:linierne m til n incl. slettes.
 
  AUTO     : skriver automatisk linienumre efter stjernen
             startende med 100 og med spring på 10. Stop-
             pes ved at trykke ESC. Ved indtastning af
             lange programmer er det en lettelse ikke at
             skulle indtaste linienumre.
  AUTO m,n : linienumrene starter med linie m og får
             spring på n.
 
  RENUMBER : ændrer programmets linienumre, så de starter
             med linie 100 og får spring på 10.
  RENUMBER m,n: linierne starter med linie 100 og får
             spring på n.
 
  EDIT m   : linie m bliver hentet frem, så det bliver
             ligt at foretage ændringer i den uden at
             skrive den om. Hertil bruges pil-op, pil-ned
             pil-højre og pil-venstre.
  EDIT m,n : linierne m til n hentes frem.
  EDIT     : linierne hentes frem i stigende nr-orden til
             ESC nedtrykkes.
 
Programafprøvning.
  RUN      : Alle variable nulstilles, og programmet bli-
             ver udført.
  RUN m    : Alle variable nulstilles, og programmet bli-
             ver udført fra linie m.
 
  ESC      : et kørende program stoppes ved tryk på ESC.
 
  CONTINUE : Programmets udførelse fortsætter, hvor den
             blev stoppet.
  CON m    : Programmets udførelse fortsætter fra linie m
 
  OUTPUT P : Alle udskrifter fra programmet skrives på
             printeren. Dette gælder dog ikke ledetekster
             fra INPUT-sætninger.
 
  LET A=17 : Når et program er stoppet med ESC, kan en
             variabel tildeles en ny værdi, inden pro-
             met sættes til at fortsætte med CONTINUE.
 
  PRINT A  : Når programmet er stoppet med ESC, eller med
             en fejl, kan værdien af en variabel, eller
             et udtryk, udskrives. Denne facilitet er
             yderst anvendelig ved fejlfinding i program-
             mer.
 
 
Opbevaring og genfinding af programmer på pladelager.
For at det skal have nogen mening at udvikle programmer
til en datamaskine, må man kunne gemme disse programmer
til senere brug, også selvom de eventuelt ikke er fær-
dige.
Dette gøres ved at gemme programmet i et område på plade-
lageret, en såkaldt programfil.
En programfil identificeres dels ved navnet, etiketten,
på den plade, den ligger på, dels ved et filnavn. F. eks.
er   DDE:COMAL   identifikationen af programfilen COMAL
på pladen med etiketten DDE. Både etiket og filnavn inde-
holder højst 8 tegn.
 
Et COMAL-program kan gemmes på to forskellige måder, nem-
lig dels som tekst, dels på en mere pakket form, såkaldt
binær form. Begge former har deres fordele og ulemper.
Generelt kan man imidlertid sige, at tekstformen er mest
anvendelig under programudvikling, mens den binære form
er fordelagtig ved rutinekørsler med programmerne. Ved
flytning af programmer udviklet i en COMAL-version, til
en ny COMAL-version, bør (skal) tekstformen anvendes.
 
Når et program i arbejdslageret ønskes gemt på tekstform
i en NY programfil, skrives:
 
   PUT etiket:filnavn
 
Operativsystemet opretter nu en ny fil med navnet
"filnavn" på pladen med etiketten "etiket", og kopierer
programmet fra arbejdslageret ud på filen.
 
Når et således gemt program ønskes indlæst i arbejdsla-
geret skrives:
 
   GET etiket:filnavn
 
Når programmet er indlæst, kan det både ændres og afprø-
ves som beskrevet i forrige afsnit, og det ændrede pro-
gram kan senere gemmes i den SAMME programfil ved kom-
mandoen:
 
   PUTOLD etiket:filnavn
 
Såfremt en programfil indeholder en programstump gemt på
tekstform, kan denne programstump indsættes i et program,
der allerede er i arbejdslageret, ved kommandoen:
 
   MERGE etiket:filnavn
 
Hvis de to programstumper indeholder linier med sammen-
faldende linienumre, vil de nyindlæste linier blive de
gældende.
 
Ønskes programmet gemt på binær form, anvendes kommando-
erne SAVE, LOAD og SAVEOLD i stedet for hhv. PUT, GET og
PUTOLD. MERGE kan ikke anvendes ved binært gemte program-
mer.
Der er imidlertid den fordel ved binært gemte programmer,
at det er muligt fra et program at starte et andet binært
gemt program, nemlig ved brug af kommandoen CHAIN.
Indeholder et program f. eks. linien
 
   1000 CHAIN "DDE:NYTPROG"
 
vil udførelsen af linie 1000 bevirke, at det igangværende
program stoppes, hvorefter det binært gemte program
NYTPROG indlæses og startes i den første programlinie.
Det er på denne måde muligt f. eks. at lade en hel kæde
af programmer starte hinanden i en programstyret række-
følge.
 
Det er muligt at få udskrevet en indholdsfortegnelse for
en hel plade, nemlig ved at skrive
 
   CAT etiket
 
eller, såfremt etiketten ikke kendes
 
   CAT #N
 
hvor # er tegnet over 3-tallet, og N er nummeret på det
drev, hvor pladen er monteret.
 
BEHANDLING AF DATA OPBEVARET PÅ PLADELAGER.
Til opbevaring af data på pladelageret anvendes såkaldte
datafiler, der navngives som nævnt under programfiler.
Der skelnes mellem to typer datafiler, nemlig filer med
sekventiel tilgang og filer med direkte tilgang.
 
CREATE.
Før en datafil kan anvendes, skal den oprettes.
Dette gøres ved kommandoen CREATE, der både kan benyttes
som en COMAL-kommando og som en programlinie. Anvendt som
programlinie skal "etiket:filnavn" dog omgives af " ".
 
En sekventiel datafil oprettes således:
 
   CREATE  etiket:filnavn, antal_sektorer
 
hvor "antal_sektorer" angiver filens startstørrelse i
sektorer a 256 bytes.
En sekventiel datafil kan udvides maksimalt 60 gange,
hver gang med størrelsen "antal_sektorer".
 
En direkte datafil oprettes således:
 
   CREATE etiket:filnavn, antal_poster, bytes_pr_post
 
Datafilen, der ikke senere kan udvides, oprettes med
plads til "antal_poster" poster på hver "bytes_pr_post"
bytes. Den kommer således til at fylde det mindste antal
sektorer a 256 bytes, der kan indeholde
"antal_poster" * "bytes_pr_post" bytes.
 
OPEN.
Før et program kan læse fra en datafil, eller skrive på
filen, skal den åbnes. Dette gøres ved kommandoen OPEN,
der skal udføres i en programlinie.
Sekventielle og direkte filer åbnes på samme måde, nemlig
med enten kommandoen
 
   10 OPEN "etiket:filnavn", R              eller
   10 OPEN "etiket:filnavn", W
 
hvor den første form angiver, at man kun ønsker at læse
(Read-mode) fra filen, mens den anden angiver, at man øn-
sker at ændre filen, skrive på den (Write-mode).
 
GET.
Til indlæsning af en post fra en datafil bruges kommando-
en GET. Fra en sekventiel fil kan man selvfølgelig kun
indlæse den "næste" post i filen, mens man fra en fil med
direkte tilgang kan indlæse en vilkårlig post ved angi-
velse af dens nummer.
Da der i COMAL ikke findes et egentligt postbegreb i form
af en post-variabel, må en post angives som en liste over
de variable, den tænkes at bestå af.
 
For at indlæse den næste post fra den sekventielle fil
DDE:ELEVREG, skrives f. eks.:
 
  100 GET "DDE:ELEVREG":ELEVNAVN$,ELEVNR
 
idet en elevpost tænkes at bestå af en tekstvariabel:
ELEVNAVN$, og en talvariabel: ELEVNR.
 
Ved indlæsning fra en direkte fil skal man som nævnt an-
give postens nummer i filen. Dette gøres således:
 
  100 GET "DDE:KLASREG",KLASNR:KLASSENAVN$,ANTALELEVER
 
hvor talvariablen KLASNR indeholder nummeret på den post,
der ønskes indlæst, mens posten består af en tekstvari-
abel: KLASSENAVN$ og en talvariabel: ANTALELEVER.
 
PUT.
Til skrivning af poster på sekventielle og direkte data-
filer anvendes kommandoen PUT. Denne anvendes på nøjagtig
samme måde som GET, dog er det kun tilladt at anvende PUT
i forbindelse med en datafil, der er åbnet for skrivning,
altså med OPEN "etiket:filnavn", W .
 
CLOSE.
Når en datafil ikke længere skal anvendes af programmet,
bør den lukkes. Dette gøres med kommandoen CLOSE.
Man kan lukke alle åbne filer med programlinien
 
  100 CLOSE
 
eller man kan lukke en enkelt fil med programlinien
 
  100 CLOSE "etiket:filnavn"
 
 
Det gælder for alle filkommandoerne: CREATE, OPEN, GET,
PUT og CLOSE, når de anvendes i programlinier, at angi-
velsen af "etiket:filnavn" skal omgives af " ", eller
være en tekstvariabel. For eksempel:
 
  10 DIM FIL$(20),KLASSENAVN$(30)
  20 FIL$="DDE:KLASREG"
  30 OPEN FIL$,R
  40 FOR I= 1 TO 10
  50    GET FIL$,I:KLASSENAVN$,ANTALELEVER
  60    PRINT I;KLASSENAVN$,ANTALELEVER
  70 NEXT I
  80 CLOSE FIL$
  90 END
 
Programmet åbner filen "DDE:KLASREG", indlæser klasserne
fra nr. 1 - 10 og skriver posterne på skærmen, hvorefter
filen lukkes igen.
 
FORSKELLIGE COMAL-SÆTNINGSTYPER.
 
Tildelingssætningen.
I lærebogen er angivet, at COMAL's tildelingsoperator er
:=  . I DDE-COMAL skal det blot være  =  .
Altså IKKE
 
  10 LET ANTAL := ANTAL + 1
men
 
  10 LET ANTAL = ANTAL + 1  .
 
INPUT-sætningen.
I lærebogen står f. eks.
 
  10 INPUT 'Indtast et tal ':TAL
 
I DDE-COMAL skrives:
 
  10 INPUT "Indtast et tal ",TAL
           ^               ^^
 
Løkker.
I lærebogen gennemgås løkker konstrueret v.hj.a.
WHILE - ENDWHILE sætninger. Denne løkkestruktur undersø-
ger altså, om løkke-fortsættelses-betingelsen er opfyldt
ved INDGANGEN til løkken.
En noget anderledes løkkestruktur kan opnås ved at under-
søge, om løkke-ophørs-betingelsen er opfyldt ved UDGANGEN
fra løkken. Dette gøres ved brug af REPEAT - UNTIL sæt-
ninger. F.eks.
 
  10 ANTAL=0; SUM=0
  20 REPEAT
  30   INPUT "Indtast et tal ",TAL
  40   IF TAL<>0 THEN
  50     SUM=SUM+TAL
  60     ANTAL=ANTAL+1
  70   ENDIF
  80 UNTIL TAL=0
  90 IF ANTAL=0 THEN
 100   GSNIT=0
 110 ELSE
 120   GSNIT=SUM/ANTAL
 130 ENDIF
 140 PRINT "Gennemsnit, antal ";GSNIT,ANTAL
 150 END
 
Forgreninger.
Forgreninger i programmet konstrueres ved brug af
IF - THEN sætninger. I hhv. linie 40 - 70 og linie
90 - 130 er vist to forskellige eksempler på disse kon-
struktioner. En tredie mulighed er konstruktionen:
 
  10 IF TAL <> 0 TEN SUM=SUM + TAL   .
 
Der er principielt ikke flere konstruktionsmuligheder,
idet det er tilladt at indlejre en ny IF-THEN-ELSE-ENDIF
konstruktion i de to i eksemplet viste konstruktioner.
F. eks.
  10 INPUT TAL
  20 IF TAL > 0 THEN
  30   PRINT "Tallet er positivt"
  40 ELSE
  50   IF TAL < 0 THEN
  60     PRINT "Tallet er negativt"
  70   ELSE
  80     PRINT "Tallet er nul"
  90   ENDIF
 100 ENDIF
 
Forskellen mellem lærebogens beskrivelse og DDE-COMALs
sætninger er altså, at bogens ELIF-sætninger skal erstat-
tes af en ELSE-sætning og en ny IF-sætning på hver sin
linie, samt at en IF-THEN konstruktion på mere end en
linie altid skal afsluttes med ENDIF.

Mikados K File

0x0000…0039 Line {l1=0x37, l2=»INDFØRING I BRUGEN AF COMAL PÅ MIKRODATAMATSYSTEMET FRA«, l3=0x37}
0x0039…0051 Line {l1=0x16, l2=»DANSK DATA ELEKTRONIK.«, l3=0x16}
0x0051…0054 Line {l1=0x01, l2=» «, l3=0x01}
0x0054…008c Line {l1=0x36, l2=»Det er tanken med denne vejledning at lette overgangen«, l3=0x36}
0x008c…00c7 Line {l1=0x39, l2=»fra anvendelse af COMAL, BASIC eller andre BASIC-lignende«, l3=0x39}
0x00c7…0102 Line {l1=0x39, l2=»programmeringssprog på andre datamater, til anvendelse af«, l3=0x39}
0x0102…013b Line {l1=0x37, l2=»COMAL på skolens mikrodatamatanlæg fra Dansk Data Elek-«, l3=0x37}
0x013b…0173 Line {l1=0x36, l2=»tronik (DDE). Der er således ikke tale om et materiale«, l3=0x36}
0x0173…01ad Line {l1=0x38, l2=»til brug for undervisning i programmering, ligesom mate-«, l3=0x38}
0x01ad…01e7 Line {l1=0x38, l2=»rialet ikke skal erstatte den af DDE leverede manual til«, l3=0x38}
0x01e7…01ef Line {l1=0x06, l2=»COMAL.«, l3=0x06}
0x01ef…01f2 Line {l1=0x01, l2=» «, l3=0x01}
0x01f2…022d Line {l1=0x39, l2=»Vejledningen indeholder en behandling af følgende emner i«, l3=0x39}
0x022d…0265 Line {l1=0x36, l2=»nævnte rækkefølge, i hvilken vejledningen i øvrigt med«, l3=0x36}
0x0265…0278 Line {l1=0x11, l2=»fordel kan læses:«, l3=0x11}
0x0278…027b Line {l1=0x01, l2=» «, l3=0x01}
            […0x1…]
0x027e…0294 Line {l1=0x14, l2=»Opstart af maskinen.«, l3=0x14}
0x0294…02c0 Line {l1=0x2a, l2=»   Indlæsning af operativsystemet MIKADOS.«, l3=0x2a}
0x02c0…02f3 Line {l1=0x31, l2=»   Indlæsning af den interaktive fortolker COMAL.«, l3=0x31}
0x02f3…02f6 Line {l1=0x01, l2=» «, l3=0x01}
0x02f6…030d Line {l1=0x15, l2=»Kommandoer til COMAL.«, l3=0x15}
0x030d…0337 Line {l1=0x28, l2=»   I forbindelse med programindtastning.«, l3=0x28}
0x0337…0371 Line {l1=0x38, l2=»      NEW, LIST, OUTPUT P, DELETE, AUTO, RENUMBER, EDIT.«, l3=0x38}
0x0371…039a Line {l1=0x27, l2=»   I forbindelse med programafprøvning.«, l3=0x27}
0x039a…03cb Line {l1=0x2f, l2=»      RUN, ESC, CONTINUE, OUTPUT P, LET, PRINT.«, l3=0x2f}
0x03cb…0405 Line {l1=0x38, l2=»   Opbevaring og genfinding af programmer på pladelager.«, l3=0x38}
0x0405…0424 Line {l1=0x1d, l2=»      PUT, PUTOLD, GET, MERGE«, l3=0x1d}
0x0424…0446 Line {l1=0x20, l2=»      SAVE, SAVEOLD, LOAD, CHAIN«, l3=0x20}
0x0446…0451 Line {l1=0x09, l2=»      CAT«, l3=0x09}
0x0451…0454 Line {l1=0x01, l2=» «, l3=0x01}
0x0454…0481 Line {l1=0x2b, l2=»Behandling af data opbevaret på pladelager.«, l3=0x2b}
0x0481…0484 Line {l1=0x01, l2=» «, l3=0x01}
0x0484…04bf Line {l1=0x39, l2=»Forskellige COMAL-sætningstyper, der typisk adskiller sig«, l3=0x39}
0x04bf…04e4 Line {l1=0x23, l2=»fra BASIC og nogle COMAL-versioner.«, l3=0x23}
0x04e4…04e7 Line {l1=0x01, l2=» «, l3=0x01}
            […0x1…]
0x04ea…0500 Line {l1=0x14, l2=»OPSTART AF MASKINEN.«, l3=0x14}
0x0500…0529 Line {l1=0x27, l2=»Indlæsning af operativsystemet MIKADOS.«, l3=0x27}
0x0529…0564 Line {l1=0x39, l2=»Mens kassen med centralenheden og pladedrevene er slukket«, l3=0x39}
0x0564…059e Line {l1=0x38, l2=»(kontakten på bagsiden af centralenheden), sættes pladen«, l3=0x38}
0x059e…05d6 Line {l1=0x36, l2=»mærket "MIKADOS SYSTEM DISC ...." i drev 1 (nummereret«, l3=0x36}
0x05d6…05f7 Line {l1=0x1f, l2=»fra venstre), og drevet lukkes.«, l3=0x1f}
0x05f7…0631 Line {l1=0x38, l2=»Plader isættes altid med det i kanten udskårne hak vend-«, l3=0x38}
0x0631…0645 Line {l1=0x12, l2=»ende opad og udad.«, l3=0x12}
0x0645…0680 Line {l1=0x39, l2=»Centralenheden tændes, og på en af skærmene udskriver sy-«, l3=0x39}
0x0680…06b9 Line {l1=0x37, l2=»stemet en oversigt over, hvormeget arbejdslager, der er«, l3=0x37}
0x06b9…06f1 Line {l1=0x36, l2=»tilsluttet centralenheden, hvor det er placeret, og om«, l3=0x36}
0x06f1…072a Line {l1=0x37, l2=»det fungerer fejlfrit. Er dette tilfældet skrives nu på«, l3=0x37}
0x072a…074b Line {l1=0x1f, l2=»alle tilsluttede tændte skærme:«, l3=0x1f}
0x074b…074e Line {l1=0x01, l2=» «, l3=0x01}
0x074e…076c Line {l1=0x1c, l2=»     MIKADOS VERSION  ......«, l3=0x1c}
0x076c…076f Line {l1=0x01, l2=» «, l3=0x01}
0x076f…07aa Line {l1=0x39, l2=»Dette markerer, at operativsystemet MIKADOS nu er indlæst«, l3=0x39}
0x07aa…07e5 Line {l1=0x39, l2=»i en del af arbejdslageret, der er fælles for ale skærme,«, l3=0x39}
0x07e5…081e Line {l1=0x37, l2=»og er klar til at modtage kommandoer fra de tilsluttede«, l3=0x37}
0x081e…0856 Line {l1=0x36, l2=»terminaler. En sådan kommando afgives ved at nedtrykke«, l3=0x36}
0x0856…088f Line {l1=0x37, l2=»tasten "ESC", hvorved tegnet ">" fremkommer på skærmen.«, l3=0x37}
0x088f…08c5 Line {l1=0x34, l2=»Efter ">" skrives kommandoen, og der trykkes RETURN.«, l3=0x34}
0x08c5…08c8 Line {l1=0x01, l2=» «, l3=0x01}
0x08c8…08de Line {l1=0x14, l2=»Indlæsning af COMAL.«, l3=0x14}
0x08de…0919 Line {l1=0x39, l2=»En af de kommandoer, MIKADOS kan udføre, er at indlæse et«, l3=0x39}
0x0919…094d Line {l1=0x32, l2=»oversat assemblerprogram og begynde at udføre det.«, l3=0x32}
0x094d…0985 Line {l1=0x36, l2=»Dette er netop, hvad vi ønsker at gøre, da fortolkeren«, l3=0x36}
0x0985…09a2 Line {l1=0x1b, l2=»COMAL er et sådant program.«, l3=0x1b}
0x09a2…09db Line {l1=0x37, l2=»Vi sætter nu pladen mærket "COMAL" i drev 1, trykker på«, l3=0x37}
0x09db…09ec Line {l1=0x0f, l2=»"ESC", skriver:«, l3=0x0f}
0x09ec…09ef Line {l1=0x01, l2=» «, l3=0x01}
0x09ef…09f9 Line {l1=0x08, l2=»  >COMAL«, l3=0x08}
0x09f9…09fc Line {l1=0x01, l2=» «, l3=0x01}
0x09fc…0a10 Line {l1=0x12, l2=»og trykker RETURN.«, l3=0x12}
0x0a10…0a47 Line {l1=0x35, l2=»Efter et stykke tid er COMAL indlæst i den del af ar-«, l3=0x35}
0x0a47…0a7e Line {l1=0x35, l2=»bejdslageret, der er tilsluttet den kommandoafgivende«, l3=0x35}
0x0a7e…0ab6 Line {l1=0x36, l2=»terminal. Dette markeres ved, at der øverst på skærmen«, l3=0x36}
0x0ab6…0ac0 Line {l1=0x08, l2=»skrives:«, l3=0x08}
0x0ac0…0ac3 Line {l1=0x01, l2=» «, l3=0x01}
0x0ac3…0aec Line {l1=0x27, l2=» * * * DDE  COMAL  VERSION  2.19  * * *«, l3=0x27}
0x0aec…0aef Line {l1=0x01, l2=» «, l3=0x01}
0x0aef…0b29 Line {l1=0x38, l2=»COMAL angiver endvidere, at der kan indtastes kommandoer«, l3=0x38}
0x0b29…0b5f Line {l1=0x34, l2=»eller programlinier, ved at udskrive en stjerne "*".«, l3=0x34}
0x0b5f…0b62 Line {l1=0x01, l2=» «, l3=0x01}
            […0x1…]
0x0b65…0b7c Line {l1=0x15, l2=»KOMMANDOER TIL COMAL.«, l3=0x15}
0x0b7c…0bb7 Line {l1=0x39, l2=»Alle kommandoer til COMAL afgives ved at indtaste komman-«, l3=0x39}
0x0bb7…0bf1 Line {l1=0x38, l2=»doen efter stjernen og trykke RETURN. Såfremt COMAL ikke«, l3=0x38}
0x0bf1…0c2a Line {l1=0x37, l2=»kan genkende kommandoen, eller der er noget andet galt,«, l3=0x37}
0x0c2a…0c63 Line {l1=0x37, l2=»vil der i skærmens øverste linie blive skrevet en fejl-«, l3=0x37}
0x0c63…0c70 Line {l1=0x0b, l2=»meddelelse.«, l3=0x0b}
0x0c70…0caa Line {l1=0x38, l2=»De i det følgende nævnte kommandoer er forsøgt delt op i«, l3=0x38}
0x0caa…0ce3 Line {l1=0x37, l2=»de faser af programmeringen, hvor de hyppigst anvendes.«, l3=0x37}
0x0ce3…0d18 Line {l1=0x33, l2=»Alle kommandoer har kun direkte virkning for COMAL-«, l3=0x33}
0x0d18…0d53 Line {l1=0x39, l2=»programmet i det arbejdslager, der er tilknyttet termina-«, l3=0x39}
0x0d53…0d59 Line {l1=0x04, l2=»len.«, l3=0x04}
0x0d59…0d5c Line {l1=0x01, l2=» «, l3=0x01}
0x0d5c…0d71 Line {l1=0x13, l2=»Programindtastning.«, l3=0x13}
0x0d71…0d74 Line {l1=0x01, l2=» «, l3=0x01}
0x0d74…0dae Line {l1=0x38, l2=»  NEW      : et eventuelt COMAL-program i arbejdslageret«, l3=0x38}
0x0dae…0dc5 Line {l1=0x15, l2=»             slettes.«, l3=0x15}
0x0dc5…0dc8 Line {l1=0x01, l2=» «, l3=0x01}
0x0dc8…0df1 Line {l1=0x27, l2=»  LIST     : hele programmet udskrives.«, l3=0x27}
0x0df1…0e16 Line {l1=0x23, l2=»  LIST m   : linie nr. m udskrives.«, l3=0x23}
0x0e16…0e40 Line {l1=0x28, l2=»  LIST m,n : linierne m til n udskrives.«, l3=0x28}
0x0e40…0e43 Line {l1=0x01, l2=» «, l3=0x01}
0x0e43…0e7d Line {l1=0x38, l2=»  OUTPUT P : en efterfølgende LIST-kommando bevirker ud-«, l3=0x38}
0x0e7d…0ea0 Line {l1=0x21, l2=»             skrift på printeren.«, l3=0x21}
0x0ea0…0edb Line {l1=0x39, l2=»  OUTPUT T : terminalen bruges til udskrift (unødvendig).«, l3=0x39}
0x0edb…0ede Line {l1=0x01, l2=» «, l3=0x01}
0x0ede…0efd Line {l1=0x1d, l2=»  DELETE m : linie m slettes.«, l3=0x1d}
0x0efd…0f2b Line {l1=0x2c, l2=»  DELETE m,n:linierne m til n incl. slettes.«, l3=0x2c}
0x0f2b…0f2e Line {l1=0x01, l2=» «, l3=0x01}
0x0f2e…0f69 Line {l1=0x39, l2=»  AUTO     : skriver automatisk linienumre efter stjernen«, l3=0x39}
0x0f69…0fa4 Line {l1=0x39, l2=»             startende med 100 og med spring på 10. Stop-«, l3=0x39}
0x0fa4…0fdc Line {l1=0x36, l2=»             pes ved at trykke ESC. Ved indtastning af«, l3=0x36}
0x0fdc…1016 Line {l1=0x38, l2=»             lange programmer er det en lettelse ikke at«, l3=0x38}
0x1016…1040 Line {l1=0x28, l2=»             skulle indtaste linienumre.«, l3=0x28}
0x1040…1076 Line {l1=0x34, l2=»  AUTO m,n : linienumrene starter med linie m og får«, l3=0x34}
0x1076…1091 Line {l1=0x19, l2=»             spring på n.«, l3=0x19}
0x1091…1094 Line {l1=0x01, l2=» «, l3=0x01}
0x1094…10cf Line {l1=0x39, l2=»  RENUMBER : ændrer programmets linienumre, så de starter«, l3=0x39}
0x10cf…1100 Line {l1=0x2f, l2=»             med linie 100 og får spring på 10.«, l3=0x2f}
0x1100…1137 Line {l1=0x35, l2=»  RENUMBER m,n: linierne starter med linie 100 og får«, l3=0x35}
0x1137…1152 Line {l1=0x19, l2=»             spring på n.«, l3=0x19}
0x1152…1155 Line {l1=0x01, l2=» «, l3=0x01}
0x1155…118d Line {l1=0x36, l2=»  EDIT m   : linie m bliver hentet frem, så det bliver«, l3=0x36}
0x118d…11c4 Line {l1=0x35, l2=»             ligt at foretage ændringer i den uden at«, l3=0x35}
0x11c4…11ff Line {l1=0x39, l2=»             skrive den om. Hertil bruges pil-op, pil-ned«, l3=0x39}
0x11ff…1227 Line {l1=0x26, l2=»             pil-højre og pil-venstre.«, l3=0x26}
0x1227…1253 Line {l1=0x2a, l2=»  EDIT m,n : linierne m til n hentes frem.«, l3=0x2a}
0x1253…128e Line {l1=0x39, l2=»  EDIT     : linierne hentes frem i stigende nr-orden til«, l3=0x39}
0x128e…12ac Line {l1=0x1c, l2=»             ESC nedtrykkes.«, l3=0x1c}
0x12ac…12af Line {l1=0x01, l2=» «, l3=0x01}
0x12af…12c3 Line {l1=0x12, l2=»Programafprøvning.«, l3=0x12}
0x12c3…12fe Line {l1=0x39, l2=»  RUN      : Alle variable nulstilles, og programmet bli-«, l3=0x39}
0x12fe…1318 Line {l1=0x18, l2=»             ver udført.«, l3=0x18}
0x1318…1353 Line {l1=0x39, l2=»  RUN m    : Alle variable nulstilles, og programmet bli-«, l3=0x39}
0x1353…1379 Line {l1=0x24, l2=»             ver udført fra linie m.«, l3=0x24}
0x1379…137c Line {l1=0x01, l2=» «, l3=0x01}
0x137c…13b6 Line {l1=0x38, l2=»  ESC      : et kørende program stoppes ved tryk på ESC.«, l3=0x38}
0x13b6…13b9 Line {l1=0x01, l2=» «, l3=0x01}
0x13b9…13f2 Line {l1=0x37, l2=»  CONTINUE : Programmets udførelse fortsætter, hvor den«, l3=0x37}
0x13f2…140e Line {l1=0x1a, l2=»             blev stoppet.«, l3=0x1a}
0x140e…1449 Line {l1=0x39, l2=»  CON m    : Programmets udførelse fortsætter fra linie m«, l3=0x39}
0x1449…144c Line {l1=0x01, l2=» «, l3=0x01}
0x144c…1484 Line {l1=0x36, l2=»  OUTPUT P : Alle udskrifter fra programmet skrives på«, l3=0x36}
0x1484…14bf Line {l1=0x39, l2=»             printeren. Dette gælder dog ikke ledetekster«, l3=0x39}
0x14bf…14e2 Line {l1=0x21, l2=»             fra INPUT-sætninger.«, l3=0x21}
0x14e2…14e5 Line {l1=0x01, l2=» «, l3=0x01}
0x14e5…151d Line {l1=0x36, l2=»  LET A=17 : Når et program er stoppet med ESC, kan en«, l3=0x36}
0x151d…1555 Line {l1=0x36, l2=»             variabel tildeles en ny værdi, inden pro-«, l3=0x36}
0x1555…158d Line {l1=0x36, l2=»             met sættes til at fortsætte med CONTINUE.«, l3=0x36}
0x158d…1590 Line {l1=0x01, l2=» «, l3=0x01}
0x1590…15cb Line {l1=0x39, l2=»  PRINT A  : Når programmet er stoppet med ESC, eller med«, l3=0x39}
0x15cb…1604 Line {l1=0x37, l2=»             en fejl, kan værdien af en variabel, eller«, l3=0x37}
0x1604…163b Line {l1=0x35, l2=»             et udtryk, udskrives. Denne facilitet er«, l3=0x35}
0x163b…1676 Line {l1=0x39, l2=»             yderst anvendelig ved fejlfinding i program-«, l3=0x39}
0x1676…1689 Line {l1=0x11, l2=»             mer.«, l3=0x11}
0x1689…168c Line {l1=0x01, l2=» «, l3=0x01}
            […0x1…]
0x168f…16c6 Line {l1=0x35, l2=»Opbevaring og genfinding af programmer på pladelager.«, l3=0x35}
0x16c6…16ff Line {l1=0x37, l2=»For at det skal have nogen mening at udvikle programmer«, l3=0x37}
0x16ff…1738 Line {l1=0x37, l2=»til en datamaskine, må man kunne gemme disse programmer«, l3=0x37}
0x1738…1770 Line {l1=0x36, l2=»til senere brug, også selvom de eventuelt ikke er fær-«, l3=0x36}
0x1770…1777 Line {l1=0x05, l2=»dige.«, l3=0x05}
0x1777…17b2 Line {l1=0x39, l2=»Dette gøres ved at gemme programmet i et område på plade-«, l3=0x39}
0x17b2…17d3 Line {l1=0x1f, l2=»lageret, en såkaldt programfil.«, l3=0x1f}
0x17d3…180c Line {l1=0x37, l2=»En programfil identificeres dels ved navnet, etiketten,«, l3=0x37}
0x180c…1847 Line {l1=0x39, l2=»på den plade, den ligger på, dels ved et filnavn. F. eks.«, l3=0x39}
0x1847…1880 Line {l1=0x37, l2=»er   DDE:COMAL   identifikationen af programfilen COMAL«, l3=0x37}
0x1880…18bb Line {l1=0x39, l2=»på pladen med etiketten DDE. Både etiket og filnavn inde-«, l3=0x39}
0x18bb…18d1 Line {l1=0x14, l2=»holder højst 8 tegn.«, l3=0x14}
0x18d1…18d4 Line {l1=0x01, l2=» «, l3=0x01}
0x18d4…190f Line {l1=0x39, l2=»Et COMAL-program kan gemmes på to forskellige måder, nem-«, l3=0x39}
0x190f…1949 Line {l1=0x38, l2=»lig dels som tekst, dels på en mere pakket form, såkaldt«, l3=0x38}
0x1949…1981 Line {l1=0x36, l2=»binær form. Begge former har deres fordele og ulemper.«, l3=0x36}
0x1981…19bb Line {l1=0x38, l2=»Generelt kan man imidlertid sige, at tekstformen er mest«, l3=0x38}
0x19bb…19f4 Line {l1=0x37, l2=»anvendelig under programudvikling, mens den binære form«, l3=0x37}
0x19f4…1a2c Line {l1=0x36, l2=»er fordelagtig ved rutinekørsler med programmerne. Ved«, l3=0x36}
0x1a2c…1a65 Line {l1=0x37, l2=»flytning af programmer udviklet i en COMAL-version, til«, l3=0x37}
0x1a65…1a9c Line {l1=0x35, l2=»en ny COMAL-version, bør (skal) tekstformen anvendes.«, l3=0x35}
0x1a9c…1a9f Line {l1=0x01, l2=» «, l3=0x01}
0x1a9f…1ad9 Line {l1=0x38, l2=»Når et program i arbejdslageret ønskes gemt på tekstform«, l3=0x38}
0x1ad9…1af7 Line {l1=0x1c, l2=»i en NY programfil, skrives:«, l3=0x1c}
0x1af7…1afa Line {l1=0x01, l2=» «, l3=0x01}
0x1afa…1b11 Line {l1=0x15, l2=»   PUT etiket:filnavn«, l3=0x15}
0x1b11…1b14 Line {l1=0x01, l2=» «, l3=0x01}
0x1b14…1b47 Line {l1=0x31, l2=»Operativsystemet opretter nu en ny fil med navnet«, l3=0x31}
0x1b47…1b80 Line {l1=0x37, l2=»"filnavn" på pladen med etiketten "etiket", og kopierer«, l3=0x37}
0x1b80…1bac Line {l1=0x2a, l2=»programmet fra arbejdslageret ud på filen.«, l3=0x2a}
0x1bac…1baf Line {l1=0x01, l2=» «, l3=0x01}
0x1baf…1be8 Line {l1=0x37, l2=»Når et således gemt program ønskes indlæst i arbejdsla-«, l3=0x37}
0x1be8…1bf8 Line {l1=0x0e, l2=»geret skrives:«, l3=0x0e}
0x1bf8…1bfb Line {l1=0x01, l2=» «, l3=0x01}
0x1bfb…1c12 Line {l1=0x15, l2=»   GET etiket:filnavn«, l3=0x15}
0x1c12…1c15 Line {l1=0x01, l2=» «, l3=0x01}
0x1c15…1c4f Line {l1=0x38, l2=»Når programmet er indlæst, kan det både ændres og afprø-«, l3=0x38}
0x1c4f…1c88 Line {l1=0x37, l2=»ves som beskrevet i forrige afsnit, og det ændrede pro-«, l3=0x37}
0x1c88…1cc0 Line {l1=0x36, l2=»gram kan senere gemmes i den SAMME programfil ved kom-«, l3=0x36}
0x1cc0…1cca Line {l1=0x08, l2=»mandoen:«, l3=0x08}
0x1cca…1ccd Line {l1=0x01, l2=» «, l3=0x01}
0x1ccd…1ce7 Line {l1=0x18, l2=»   PUTOLD etiket:filnavn«, l3=0x18}
0x1ce7…1cea Line {l1=0x01, l2=» «, l3=0x01}
0x1cea…1d24 Line {l1=0x38, l2=»Såfremt en programfil indeholder en programstump gemt på«, l3=0x38}
0x1d24…1d5f Line {l1=0x39, l2=»tekstform, kan denne programstump indsættes i et program,«, l3=0x39}
0x1d5f…1d92 Line {l1=0x31, l2=»der allerede er i arbejdslageret, ved kommandoen:«, l3=0x31}
0x1d92…1d95 Line {l1=0x01, l2=» «, l3=0x01}
0x1d95…1dae Line {l1=0x17, l2=»   MERGE etiket:filnavn«, l3=0x17}
0x1dae…1db1 Line {l1=0x01, l2=» «, l3=0x01}
0x1db1…1dea Line {l1=0x37, l2=»Hvis de to programstumper indeholder linier med sammen-«, l3=0x37}
0x1dea…1e22 Line {l1=0x36, l2=»faldende linienumre, vil de nyindlæste linier blive de«, l3=0x36}
0x1e22…1e2d Line {l1=0x09, l2=»gældende.«, l3=0x09}
0x1e2d…1e30 Line {l1=0x01, l2=» «, l3=0x01}
0x1e30…1e6a Line {l1=0x38, l2=»Ønskes programmet gemt på binær form, anvendes kommando-«, l3=0x38}
0x1e6a…1ea4 Line {l1=0x38, l2=»erne SAVE, LOAD og SAVEOLD i stedet for hhv. PUT, GET og«, l3=0x38}
0x1ea4…1edf Line {l1=0x39, l2=»PUTOLD. MERGE kan ikke anvendes ved binært gemte program-«, l3=0x39}
0x1edf…1ee5 Line {l1=0x04, l2=»mer.«, l3=0x04}
0x1ee5…1f20 Line {l1=0x39, l2=»Der er imidlertid den fordel ved binært gemte programmer,«, l3=0x39}
0x1f20…1f5b Line {l1=0x39, l2=»at det er muligt fra et program at starte et andet binært«, l3=0x39}
0x1f5b…1f8f Line {l1=0x32, l2=»gemt program, nemlig ved brug af kommandoen CHAIN.«, l3=0x32}
0x1f8f…1fb5 Line {l1=0x24, l2=»Indeholder et program f. eks. linien«, l3=0x24}
0x1fb5…1fb8 Line {l1=0x01, l2=» «, l3=0x01}
0x1fb8…1fd5 Line {l1=0x1b, l2=»   1000 CHAIN "DDE:NYTPROG"«, l3=0x1b}
0x1fd5…1fd8 Line {l1=0x01, l2=» «, l3=0x01}
0x1fd8…2013 Line {l1=0x39, l2=»vil udførelsen af linie 1000 bevirke, at det igangværende«, l3=0x39}
0x2013…2048 Line {l1=0x33, l2=»program stoppes, hvorefter det binært gemte program«, l3=0x33}
0x2048…2080 Line {l1=0x36, l2=»NYTPROG indlæses og startes i den første programlinie.«, l3=0x36}
0x2080…20b9 Line {l1=0x37, l2=»Det er på denne måde muligt f. eks. at lade en hel kæde«, l3=0x37}
0x20b9…20f2 Line {l1=0x37, l2=»af programmer starte hinanden i en programstyret række-«, l3=0x37}
0x20f2…20fa Line {l1=0x06, l2=»følge.«, l3=0x06}
0x20fa…20fd Line {l1=0x01, l2=» «, l3=0x01}
0x20fd…2137 Line {l1=0x38, l2=»Det er muligt at få udskrevet en indholdsfortegnelse for«, l3=0x38}
0x2137…215b Line {l1=0x22, l2=»en hel plade, nemlig ved at skrive«, l3=0x22}
0x215b…215e Line {l1=0x01, l2=» «, l3=0x01}
0x215e…216d Line {l1=0x0d, l2=»   CAT etiket«, l3=0x0d}
0x216d…2170 Line {l1=0x01, l2=» «, l3=0x01}
0x2170…2196 Line {l1=0x24, l2=»eller, såfremt etiketten ikke kendes«, l3=0x24}
0x2196…2199 Line {l1=0x01, l2=» «, l3=0x01}
0x2199…21a4 Line {l1=0x09, l2=»   CAT #N«, l3=0x09}
0x21a4…21a7 Line {l1=0x01, l2=» «, l3=0x01}
0x21a7…21e0 Line {l1=0x37, l2=»hvor # er tegnet over 3-tallet, og N er nummeret på det«, l3=0x37}
0x21e0…2200 Line {l1=0x1e, l2=»drev, hvor pladen er monteret.«, l3=0x1e}
0x2200…2203 Line {l1=0x01, l2=» «, l3=0x01}
0x2203…2230 Line {l1=0x2b, l2=»BEHANDLING AF DATA OPBEVARET PÅ PLADELAGER.«, l3=0x2b}
0x2230…226a Line {l1=0x38, l2=»Til opbevaring af data på pladelageret anvendes såkaldte«, l3=0x38}
0x226a…22a2 Line {l1=0x36, l2=»datafiler, der navngives som nævnt under programfiler.«, l3=0x36}
0x22a2…22db Line {l1=0x37, l2=»Der skelnes mellem to typer datafiler, nemlig filer med«, l3=0x37}
0x22db…230d Line {l1=0x30, l2=»sekventiel tilgang og filer med direkte tilgang.«, l3=0x30}
0x230d…2310 Line {l1=0x01, l2=» «, l3=0x01}
0x2310…2319 Line {l1=0x07, l2=»CREATE.«, l3=0x07}
0x2319…234a Line {l1=0x2f, l2=»Før en datafil kan anvendes, skal den oprettes.«, l3=0x2f}
0x234a…2384 Line {l1=0x38, l2=»Dette gøres ved kommandoen CREATE, der både kan benyttes«, l3=0x38}
0x2384…23bf Line {l1=0x39, l2=»som en COMAL-kommando og som en programlinie. Anvendt som«, l3=0x39}
0x23bf…23f7 Line {l1=0x36, l2=»programlinie skal "etiket:filnavn" dog omgives af " ".«, l3=0x36}
0x23f7…23fa Line {l1=0x01, l2=» «, l3=0x01}
0x23fa…2423 Line {l1=0x27, l2=»En sekventiel datafil oprettes således:«, l3=0x27}
0x2423…2426 Line {l1=0x01, l2=» «, l3=0x01}
0x2426…2451 Line {l1=0x29, l2=»   CREATE  etiket:filnavn, antal_sektorer«, l3=0x29}
0x2451…2454 Line {l1=0x01, l2=» «, l3=0x01}
0x2454…248b Line {l1=0x35, l2=»hvor "antal_sektorer" angiver filens startstørrelse i«, l3=0x35}
0x248b…24a2 Line {l1=0x15, l2=»sektorer a 256 bytes.«, l3=0x15}
0x24a2…24d9 Line {l1=0x35, l2=»En sekventiel datafil kan udvides maksimalt 60 gange,«, l3=0x35}
0x24d9…2505 Line {l1=0x2a, l2=»hver gang med størrelsen "antal_sektorer".«, l3=0x2a}
0x2505…2508 Line {l1=0x01, l2=» «, l3=0x01}
0x2508…252e Line {l1=0x24, l2=»En direkte datafil oprettes således:«, l3=0x24}
0x252e…2531 Line {l1=0x01, l2=» «, l3=0x01}
0x2531…2568 Line {l1=0x35, l2=»   CREATE etiket:filnavn, antal_poster, bytes_pr_post«, l3=0x35}
0x2568…256b Line {l1=0x01, l2=» «, l3=0x01}
0x256b…25a1 Line {l1=0x34, l2=»Datafilen, der ikke senere kan udvides, oprettes med«, l3=0x34}
0x25a1…25da Line {l1=0x37, l2=»plads til "antal_poster" poster på hver "bytes_pr_post"«, l3=0x37}
0x25da…2614 Line {l1=0x38, l2=»bytes. Den kommer således til at fylde det mindste antal«, l3=0x38}
0x2614…263d Line {l1=0x27, l2=»sektorer a 256 bytes, der kan indeholde«, l3=0x27}
0x263d…2666 Line {l1=0x27, l2=»"antal_poster" * "bytes_pr_post" bytes.«, l3=0x27}
0x2666…2669 Line {l1=0x01, l2=» «, l3=0x01}
0x2669…2670 Line {l1=0x05, l2=»OPEN.«, l3=0x05}
0x2670…26a9 Line {l1=0x37, l2=»Før et program kan læse fra en datafil, eller skrive på«, l3=0x37}
0x26a9…26e2 Line {l1=0x37, l2=»filen, skal den åbnes. Dette gøres ved kommandoen OPEN,«, l3=0x37}
0x26e2…2707 Line {l1=0x23, l2=»der skal udføres i en programlinie.«, l3=0x23}
0x2707…2742 Line {l1=0x39, l2=»Sekventielle og direkte filer åbnes på samme måde, nemlig«, l3=0x39}
0x2742…2758 Line {l1=0x14, l2=»med enten kommandoen«, l3=0x14}
0x2758…275b Line {l1=0x01, l2=» «, l3=0x01}
0x275b…278e Line {l1=0x31, l2=»   10 OPEN "etiket:filnavn", R              eller«, l3=0x31}
0x278e…27ae Line {l1=0x1e, l2=»   10 OPEN "etiket:filnavn", W«, l3=0x1e}
0x27ae…27b1 Line {l1=0x01, l2=» «, l3=0x01}
0x27b1…27ea Line {l1=0x37, l2=»hvor den første form angiver, at man kun ønsker at læse«, l3=0x37}
0x27ea…2825 Line {l1=0x39, l2=»(Read-mode) fra filen, mens den anden angiver, at man øn-«, l3=0x39}
0x2825…2857 Line {l1=0x30, l2=»sker at ændre filen, skrive på den (Write-mode).«, l3=0x30}
0x2857…285a Line {l1=0x01, l2=» «, l3=0x01}
0x285a…2860 Line {l1=0x04, l2=»GET.«, l3=0x04}
0x2860…289b Line {l1=0x39, l2=»Til indlæsning af en post fra en datafil bruges kommando-«, l3=0x39}
0x289b…28d3 Line {l1=0x36, l2=»en GET. Fra en sekventiel fil kan man selvfølgelig kun«, l3=0x36}
0x28d3…290e Line {l1=0x39, l2=»indlæse den "næste" post i filen, mens man fra en fil med«, l3=0x39}
0x290e…2947 Line {l1=0x37, l2=»direkte tilgang kan indlæse en vilkårlig post ved angi-«, l3=0x37}
0x2947…295e Line {l1=0x15, l2=»velse af dens nummer.«, l3=0x15}
0x295e…2999 Line {l1=0x39, l2=»Da der i COMAL ikke findes et egentligt postbegreb i form«, l3=0x39}
0x2999…29d4 Line {l1=0x39, l2=»af en post-variabel, må en post angives som en liste over«, l3=0x39}
0x29d4…29fa Line {l1=0x24, l2=»de variable, den tænkes at bestå af.«, l3=0x24}
0x29fa…29fd Line {l1=0x01, l2=» «, l3=0x01}
0x29fd…2a35 Line {l1=0x36, l2=»For at indlæse den næste post fra den sekventielle fil«, l3=0x36}
0x2a35…2a54 Line {l1=0x1d, l2=»DDE:ELEVREG, skrives f. eks.:«, l3=0x1d}
0x2a54…2a57 Line {l1=0x01, l2=» «, l3=0x01}
0x2a57…2a81 Line {l1=0x28, l2=»  100 GET "DDE:ELEVREG":ELEVNAVN$,ELEVNR«, l3=0x28}
0x2a81…2a84 Line {l1=0x01, l2=» «, l3=0x01}
0x2a84…2abb Line {l1=0x35, l2=»idet en elevpost tænkes at bestå af en tekstvariabel:«, l3=0x35}
0x2abb…2ae2 Line {l1=0x25, l2=»ELEVNAVN$, og en talvariabel: ELEVNR.«, l3=0x25}
0x2ae2…2ae5 Line {l1=0x01, l2=» «, l3=0x01}
0x2ae5…2b1f Line {l1=0x38, l2=»Ved indlæsning fra en direkte fil skal man som nævnt an-«, l3=0x38}
0x2b1f…2b52 Line {l1=0x31, l2=»give postens nummer i filen. Dette gøres således:«, l3=0x31}
0x2b52…2b55 Line {l1=0x01, l2=» «, l3=0x01}
0x2b55…2b8d Line {l1=0x36, l2=»  100 GET "DDE:KLASREG",KLASNR:KLASSENAVN$,ANTALELEVER«, l3=0x36}
0x2b8d…2b90 Line {l1=0x01, l2=» «, l3=0x01}
0x2b90…2bcb Line {l1=0x39, l2=»hvor talvariablen KLASNR indeholder nummeret på den post,«, l3=0x39}
0x2bcb…2c04 Line {l1=0x37, l2=»der ønskes indlæst, mens posten består af en tekstvari-«, l3=0x37}
0x2c04…2c37 Line {l1=0x31, l2=»abel: KLASSENAVN$ og en talvariabel: ANTALELEVER.«, l3=0x31}
0x2c37…2c3a Line {l1=0x01, l2=» «, l3=0x01}
0x2c3a…2c40 Line {l1=0x04, l2=»PUT.«, l3=0x04}
0x2c40…2c7a Line {l1=0x38, l2=»Til skrivning af poster på sekventielle og direkte data-«, l3=0x38}
0x2c7a…2cb5 Line {l1=0x39, l2=»filer anvendes kommandoen PUT. Denne anvendes på nøjagtig«, l3=0x39}
0x2cb5…2cf0 Line {l1=0x39, l2=»samme måde som GET, dog er det kun tilladt at anvende PUT«, l3=0x39}
0x2cf0…2d2b Line {l1=0x39, l2=»i forbindelse med en datafil, der er åbnet for skrivning,«, l3=0x39}
0x2d2b…2d51 Line {l1=0x24, l2=»altså med OPEN "etiket:filnavn", W .«, l3=0x24}
0x2d51…2d54 Line {l1=0x01, l2=» «, l3=0x01}
0x2d54…2d5c Line {l1=0x06, l2=»CLOSE.«, l3=0x06}
0x2d5c…2d96 Line {l1=0x38, l2=»Når en datafil ikke længere skal anvendes af programmet,«, l3=0x38}
0x2d96…2dc9 Line {l1=0x31, l2=»bør den lukkes. Dette gøres med kommandoen CLOSE.«, l3=0x31}
0x2dc9…2dfa Line {l1=0x2f, l2=»Man kan lukke alle åbne filer med programlinien«, l3=0x2f}
0x2dfa…2dfd Line {l1=0x01, l2=» «, l3=0x01}
0x2dfd…2e0a Line {l1=0x0b, l2=»  100 CLOSE«, l3=0x0b}
0x2e0a…2e0d Line {l1=0x01, l2=» «, l3=0x01}
0x2e0d…2e42 Line {l1=0x33, l2=»eller man kan lukke en enkelt fil med programlinien«, l3=0x33}
0x2e42…2e45 Line {l1=0x01, l2=» «, l3=0x01}
0x2e45…2e63 Line {l1=0x1c, l2=»  100 CLOSE "etiket:filnavn"«, l3=0x1c}
0x2e63…2e66 Line {l1=0x01, l2=» «, l3=0x01}
            […0x1…]
0x2e69…2ea2 Line {l1=0x37, l2=»Det gælder for alle filkommandoerne: CREATE, OPEN, GET,«, l3=0x37}
0x2ea2…2edb Line {l1=0x37, l2=»PUT og CLOSE, når de anvendes i programlinier, at angi-«, l3=0x37}
0x2edb…2f12 Line {l1=0x35, l2=»velsen af "etiket:filnavn" skal omgives af " ", eller«, l3=0x35}
0x2f12…2f38 Line {l1=0x24, l2=»være en tekstvariabel. For eksempel:«, l3=0x24}
0x2f38…2f3b Line {l1=0x01, l2=» «, l3=0x01}
0x2f3b…2f5e Line {l1=0x21, l2=»  10 DIM FIL$(20),KLASSENAVN$(30)«, l3=0x21}
0x2f5e…2f77 Line {l1=0x17, l2=»  20 FIL$="DDE:KLASREG"«, l3=0x17}
0x2f77…2f89 Line {l1=0x10, l2=»  30 OPEN FIL$,R«, l3=0x10}
0x2f89…2f9e Line {l1=0x13, l2=»  40 FOR I= 1 TO 10«, l3=0x13}
0x2f9e…2fca Line {l1=0x2a, l2=»  50    GET FIL$,I:KLASSENAVN$,ANTALELEVER«, l3=0x2a}
0x2fca…2ff3 Line {l1=0x27, l2=»  60    PRINT I;KLASSENAVN$,ANTALELEVER«, l3=0x27}
0x2ff3…3000 Line {l1=0x0b, l2=»  70 NEXT I«, l3=0x0b}
0x3000…3011 Line {l1=0x0f, l2=»  80 CLOSE FIL$«, l3=0x0f}
0x3011…301b Line {l1=0x08, l2=»  90 END«, l3=0x08}
0x301b…301e Line {l1=0x01, l2=» «, l3=0x01}
0x301e…3058 Line {l1=0x38, l2=»Programmet åbner filen "DDE:KLASREG", indlæser klasserne«, l3=0x38}
0x3058…3092 Line {l1=0x38, l2=»fra nr. 1 - 10 og skriver posterne på skærmen, hvorefter«, l3=0x38}
0x3092…30a6 Line {l1=0x12, l2=»filen lukkes igen.«, l3=0x12}
0x30a6…30a9 Line {l1=0x01, l2=» «, l3=0x01}
0x30a9…30cb Line {l1=0x20, l2=»FORSKELLIGE COMAL-SÆTNINGSTYPER.«, l3=0x20}
0x30cb…30ce Line {l1=0x01, l2=» «, l3=0x01}
0x30ce…30e4 Line {l1=0x14, l2=»Tildelingssætningen.«, l3=0x14}
0x30e4…311e Line {l1=0x38, l2=»I lærebogen er angivet, at COMAL's tildelingsoperator er«, l3=0x38}
0x311e…314a Line {l1=0x2a, l2=»:=  . I DDE-COMAL skal det blot være  =  .«, l3=0x2a}
0x314a…3156 Line {l1=0x0a, l2=»Altså IKKE«, l3=0x0a}
0x3156…3159 Line {l1=0x01, l2=» «, l3=0x01}
0x3159…3176 Line {l1=0x1b, l2=»  10 LET ANTAL := ANTAL + 1«, l3=0x1b}
0x3176…317b Line {l1=0x03, l2=»men«, l3=0x03}
0x317b…317e Line {l1=0x01, l2=» «, l3=0x01}
0x317e…319d Line {l1=0x1d, l2=»  10 LET ANTAL = ANTAL + 1  .«, l3=0x1d}
0x319d…31a0 Line {l1=0x01, l2=» «, l3=0x01}
0x31a0…31b2 Line {l1=0x10, l2=»INPUT-sætningen.«, l3=0x10}
0x31b2…31cc Line {l1=0x18, l2=»I lærebogen står f. eks.«, l3=0x18}
0x31cc…31cf Line {l1=0x01, l2=» «, l3=0x01}
0x31cf…31f1 Line {l1=0x20, l2=»  10 INPUT 'Indtast et tal ':TAL«, l3=0x20}
0x31f1…31f4 Line {l1=0x01, l2=» «, l3=0x01}
0x31f4…320a Line {l1=0x14, l2=»I DDE-COMAL skrives:«, l3=0x14}
0x320a…320d Line {l1=0x01, l2=» «, l3=0x01}
0x320d…322f Line {l1=0x20, l2=»  10 INPUT "Indtast et tal ",TAL«, l3=0x20}
0x322f…324e Line {l1=0x1d, l2=»           ^               ^^«, l3=0x1d}
0x324e…3251 Line {l1=0x01, l2=» «, l3=0x01}
0x3251…325a Line {l1=0x07, l2=»Løkker.«, l3=0x07}
0x325a…328c Line {l1=0x30, l2=»I lærebogen gennemgås løkker konstrueret v.hj.a.«, l3=0x30}
0x328c…32c6 Line {l1=0x38, l2=»WHILE - ENDWHILE sætninger. Denne løkkestruktur undersø-«, l3=0x38}
0x32c6…3300 Line {l1=0x38, l2=»ger altså, om løkke-fortsættelses-betingelsen er opfyldt«, l3=0x38}
0x3300…331b Line {l1=0x19, l2=»ved INDGANGEN til løkken.«, l3=0x19}
0x331b…3356 Line {l1=0x39, l2=»En noget anderledes løkkestruktur kan opnås ved at under-«, l3=0x39}
0x3356…3391 Line {l1=0x39, l2=»søge, om løkke-ophørs-betingelsen er opfyldt ved UDGANGEN«, l3=0x39}
0x3391…33ca Line {l1=0x37, l2=»fra løkken. Dette gøres ved brug af REPEAT - UNTIL sæt-«, l3=0x37}
0x33ca…33da Line {l1=0x0e, l2=»ninger. F.eks.«, l3=0x0e}
0x33da…33dd Line {l1=0x01, l2=» «, l3=0x01}
0x33dd…33f2 Line {l1=0x13, l2=»  10 ANTAL=0; SUM=0«, l3=0x13}
0x33f2…33ff Line {l1=0x0b, l2=»  20 REPEAT«, l3=0x0b}
0x33ff…3423 Line {l1=0x22, l2=»  30   INPUT "Indtast et tal ",TAL«, l3=0x22}
0x3423…343a Line {l1=0x15, l2=»  40   IF TAL<>0 THEN«, l3=0x15}
0x343a…3450 Line {l1=0x14, l2=»  50     SUM=SUM+TAL«, l3=0x14}
0x3450…3468 Line {l1=0x16, l2=»  60     ANTAL=ANTAL+1«, l3=0x16}
0x3468…3476 Line {l1=0x0c, l2=»  70   ENDIF«, l3=0x0c}
0x3476…3488 Line {l1=0x10, l2=»  80 UNTIL TAL=0«, l3=0x10}
0x3488…349e Line {l1=0x14, l2=»  90 IF ANTAL=0 THEN«, l3=0x14}
0x349e…34ae Line {l1=0x0e, l2=» 100   GSNIT=0«, l3=0x0e}
0x34ae…34b9 Line {l1=0x09, l2=» 110 ELSE«, l3=0x09}
0x34b9…34d1 Line {l1=0x16, l2=» 120   GSNIT=SUM/ANTAL«, l3=0x16}
0x34d1…34dd Line {l1=0x0a, l2=» 130 ENDIF«, l3=0x0a}
0x34dd…350a Line {l1=0x2b, l2=» 140 PRINT "Gennemsnit, antal ";GSNIT,ANTAL«, l3=0x2b}
0x350a…3514 Line {l1=0x08, l2=» 150 END«, l3=0x08}
0x3514…3517 Line {l1=0x01, l2=» «, l3=0x01}
0x3517…3526 Line {l1=0x0d, l2=»Forgreninger.«, l3=0x0d}
0x3526…3559 Line {l1=0x31, l2=»Forgreninger i programmet konstrueres ved brug af«, l3=0x31}
0x3559…358d Line {l1=0x32, l2=»IF - THEN sætninger. I hhv. linie 40 - 70 og linie«, l3=0x32}
0x358d…35c6 Line {l1=0x37, l2=»90 - 130 er vist to forskellige eksempler på disse kon-«, l3=0x37}
0x35c6…35fa Line {l1=0x32, l2=»struktioner. En tredie mulighed er konstruktionen:«, l3=0x32}
0x35fa…35fd Line {l1=0x01, l2=» «, l3=0x01}
0x35fd…3625 Line {l1=0x26, l2=»  10 IF TAL <> 0 TEN SUM=SUM + TAL   .«, l3=0x26}
0x3625…3628 Line {l1=0x01, l2=» «, l3=0x01}
0x3628…3660 Line {l1=0x36, l2=»Der er principielt ikke flere konstruktionsmuligheder,«, l3=0x36}
0x3660…369a Line {l1=0x38, l2=»idet det er tilladt at indlejre en ny IF-THEN-ELSE-ENDIF«, l3=0x38}
0x369a…36d2 Line {l1=0x36, l2=»konstruktion i de to i eksemplet viste konstruktioner.«, l3=0x36}
0x36d2…36db Line {l1=0x07, l2=»F. eks.«, l3=0x07}
0x36db…36eb Line {l1=0x0e, l2=»  10 INPUT TAL«, l3=0x0e}
0x36eb…3701 Line {l1=0x14, l2=»  20 IF TAL > 0 THEN«, l3=0x14}
0x3701…3724 Line {l1=0x21, l2=»  30   PRINT "Tallet er positivt"«, l3=0x21}
0x3724…372f Line {l1=0x09, l2=»  40 ELSE«, l3=0x09}
0x372f…3747 Line {l1=0x16, l2=»  50   IF TAL < 0 THEN«, l3=0x16}
0x3747…376c Line {l1=0x23, l2=»  60     PRINT "Tallet er negativt"«, l3=0x23}
0x376c…3779 Line {l1=0x0b, l2=»  70   ELSE«, l3=0x0b}
0x3779…3799 Line {l1=0x1e, l2=»  80     PRINT "Tallet er nul"«, l3=0x1e}
0x3799…37a7 Line {l1=0x0c, l2=»  90   ENDIF«, l3=0x0c}
0x37a7…37b3 Line {l1=0x0a, l2=» 100 ENDIF«, l3=0x0a}
0x37b3…37b6 Line {l1=0x01, l2=» «, l3=0x01}
0x37b6…37ee Line {l1=0x36, l2=»Forskellen mellem lærebogens beskrivelse og DDE-COMALs«, l3=0x36}
0x37ee…3829 Line {l1=0x39, l2=»sætninger er altså, at bogens ELIF-sætninger skal erstat-«, l3=0x39}
0x3829…3861 Line {l1=0x36, l2=»tes af en ELSE-sætning og en ny IF-sætning på hver sin«, l3=0x36}
0x3861…3898 Line {l1=0x35, l2=»linie, samt at en IF-THEN konstruktion på mere end en«, l3=0x35}
0x3898…38bf Line {l1=0x25, l2=»linie altid skal afsluttes med ENDIF.«, l3=0x25}
0x38bf…38c0 00                                                                                                ┆ ┆
0x38c0…38e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
            […0x13…]

Reduced view