DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

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

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦e0493c7d9⟧ TextFile

    Length: 23040 (0x5a00)
    Types: TextFile
    Names: »plotmaninp«

Derivation

└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
    └─⟦4334b4c0b⟧ 
        └─⟦this⟧ »plotmaninp« 

TextFile

(mode list.yes
plotman=set 63 disc3
global plotman
plotman=typeset
mode list.no
end)
*pl 290,18,240,8,5**pn 0,0*
*cm plotmaninp  1982-02-17 AL*
*lw 175**ps 0**sj*
H. C. Ørsted Institute
Computer Department
Universitetsparken 5
DK-2100 København Ø
*nl4*
*ct*
RC8000 algol 8. Procedurer
Externt algol tegnemaskinestyresystem
*nl3*
"plotman"
*nl2*
Anders Lindgård
*sj* *nl19**lm 120*
80/1 *lm120**nl*
januar 1980
revideret 82.02.17
*nl*
*rh 1,RC8000 tegnemaskinestyresystem*
*rj**pn 5,0**ps 18*
*lm0*

*ld 8*
*ld8**ns 1,3,Forord*
        ------*ld 16**np*
Denne lille vejledning beskriver, hvordan man skriver de kodestumper,
som er nødvendige for at få tegnet formater, koordinatsystemer og
kurver på H.C. Ørsted Institutets RC8000's digitale tegnemaskine.
Systemet ligger tæt op af det i ref. 1 beskrevne, hvad de ydre 
konventioner angår.
*np*
(c) 1973, 1976, 1978, 1980,1982 Anders Lindgård
Det heri beskrevne system må kun anvendes til undervisnings- og forsk-
ningsformål, som udelukkende er financieret af den danske stat
med mindre andet er aftalt med forfatteren.
Denne vejledning må ikke ændres eller mangfoldiggøres
uden aftale med forfatteren.
*np*
Systemet er under stadig udvikling. Fejl i systemet eller beskrivelse
bedes overgivet forfatteren vedlagt dokumentation.
*np*
Ved kald af programmet "plhotnews" kan man få oplysninger om de
seneste ændringer i systemet.
*np*
Denne vejledning er tilgængelig på pladelagret og kan kopieres fra
"plotman". Tegningerne til vejledningen kan tegnes på "houstona" ved
at skrive "i pmaneks" på terminalen under SOS (se dog nedenfor).
*np*
Tegnemaskinerne styres fysisk af en terminalmultiplekseren
på RC8000.
*ld8**ns 1,3,Om tegning*
         ----------*ld 16**np*
Tilkoblet RC8000 findes nogle digitale tegnemaskiner, hvortil der er
udviklet styreprogrammel, som gør dem nemme at anvende i algol programmer.
*ld8**ns 1,3,Calcomp 563-cm tegnemaskine (for tiden kun på RC4000)*
         ---------------------------*ld 16**np*
Denne tromletegnemaskine tegner med kuglepen/tuschpen på et 75 cm bredt
papir, som kan være blankt papir eller milimeterpapir. Papiret
forefindes i ruller a 36 m. Skridtlængden for tegnemaskinen er 0,1 mm
og den maksimale hastighed er 300 skridt/sek = 3 cm/sek.
Hævning og sænkning af pen tager hver 0.1 sek.
 Tegnemaskinen
har en "local remote" knap. Tegnemaskinen findes i RC4000 maskinstuen
og kan bruges af alle. Dens navn er "calcm".
*ld8**ns 1,3,Calcomp 81-tegnemaskine*
         ------------------------*ld 16**np*
 Denne tegnemaskine tegner med filtpen/tuschpen på papir. Største
format er 33.8 cm i x-aksen og 28 cm i y-aksen. Den har op til
8 penne. Papiret forefindes i ruller a 25 m. Skridtlængden er
0.1 mm og maximal hastighed er 30 cm/sec. Denne maskintype 
forefindes for tiden ikke på HCØ. Dens navn er 'calcomp81'.
*se  ?*?cm
*ld8**ns 1,3,Tektronix 603 grafisk skærm*
         ---------------------------*ld 16**np*
Denne skærm har et areal på 10 cm x 8 cm. Skrivehastigheden er 300 cm/sek.
Tegnemaskinen forefindes på Kemisk Laboratorium III og er ikke alminde-
ligt tilgængelig for udefra kommende brugere. Dens navn er "tek603".
??se*?
*ld8**ns 1,3,Tektronix 4006 grafisk terminal*
         -------------------------------*ld 16**np*
Denne skærm har et areal på 19 cm x 14 cm. Skrivehastigheden er 300 cm/sek.
Tegnemaskinen findes i RC4000 maskinstuen og kan bruges af alle. Dette
er systemets standard tegnemaskine. Dens navn er 'tek4006a'.
Tegnemaskinen vil automatisk ændre formater således
at de passer bedst muligt til skærmens størrelse.
*se?*?cm
*ld8**ns 1,3,Tektronix 4006 grafisk terminal*
         -------------------------------*ld 16**np*
Samme data som ovenfor. Denne skærm findes på Kemisk Laboratorium V
og er ikke almindeligt tilgængelig for udefra kommende brugere. Dens navn er
"tek4006c".
??se*?
*ld8**ns 1,3,Houston dp-11 tegnemaskine*
             --------------------------*ld16**np*
Denne tegnemaskine tegner med kuglepen/tuschpen på foldet papir
med maksimal størrelse af en tegning på 25.1cm x 20.1 cm. Skridtlængden
kan stilles til 0.02, 0.04, 0.05, 0.1 mm. Normalt er den 0.1 mm.
Den maksimale hastighed er ca 10 cm/sek. Hævning og sænkning af pen
tager 10 msek og 60 msek henholdsvis. Tegnemaskinen *cm har en "local remote"
knap. Den* findes i RC4000 maskinstuen og tilhører Kemisk Centralinstitut.
*ld8**ns 1,3,Generelle betragtninger*
             -----------------------*ld16*
*nl**np*
Til betjening af disse tegnemaskiner fra algolprogrammer er der udviklet
en række standardprocedurer. Systemet er således udviklet, at uanset 
hvilken tegnemaskine man anvender, får man ensartet udseende tegninger.
Standard procedurerne kaldes fra algolprogrammer på samme måde som f.eks.
sin og cos, d.v.s. de skal ikke erklæres af brugeren forinden.*nl2*
Det må anbefales at man i videst muligt omfang holder beregninger og
tegning adskilt i programmerne, da man ellers ved mere langvarige be-
regninger optager tegnemaskinen uden at den tegner.*nl2*
Desuden er der i systemet indbygget grænser for, hvor længe man må op-
tage tegnemaskinen ad gangen. Denne grænse er for tiden 15 min. Tegn
små tegninger på Calcomp tegnemaskinerne. De færreste kurver har så
fine detaljer, at de ikke kan holdes inden for et A5 format.*nl2*
Et tegneprogram består typisk af følgende trin, der beskrives nærmere
nedenfor:*nl**lm10*
*mt 1,1)* Valg af tegnemaskine *nl*
*mt 1,2)*Reservation af tegnemaskine og tegning af format, som
definerer de begrænsninger, som pennen skal holde sig indenfor*nl*
*mt 1,3)* Tegning af tekst til identifikation af tegnemaskine*nl*
*mt 1,4)* Tegning af et koordinatsystem*nl*
*mt 1,5)* Tegning af en eller flere kurver*nl*
*mt 1,6)* Tegning af punkter*nl*
*mt 1,7)* Frigivelse af tegnemaskine*nl*
*lm 0*
Hvis man ønsker at udføre flere sæt tegninger adskilt af større bereg-
ninger, bør man absolut frigive tegnemaskinen, når man er færdig med
det sæt tegninger, der hører til et format, således at andre brugere
også har en chance for at få noget tegnet.*nl2*
Tegnemaskinerne kan anvendes under alle operativsystemerne.
*nl2*
*ld8**ns 1,3,1. Valg af tegnemaskine*
         -----------------------*ld16**np*
For at kunne vælge den rette terminal udgang hvorpå
tegnemaskinen er tilkoblet er det nødvendigt at sætte
en fildescriptor således:
*nl*
<plotname>=set pl <terminal>
*nl*
<plotname> er navnet på tegnemaskinen f. eks. "tek4006a og
<terminal> er navnet på terminaludgangen f. eks. "terminal20".
*np*
Ved kørsel under operativsystemet 
 "sos" er det
yderligere nødvendigt at inkludere den pågældende
enhed. Dette gøres ved:
*sj*
att sos
>include 54
*rj**nl*
hvorved "terminal20" inkluderes for en "sos" proces.
*nl**np*
Hvis dette trin udelades, vælger systemet automatisk den Tektronix
4006 grafiske terminal, som er opstillet i RC4000 maskinstuen.*nl*
Valg af tegnemaskien foregår ved kald af proceduren:
*sj**ld8*
     setplotname(name,type)  ;
      name kan være          
      <:calcm:>              ;  calcomp 653-cm tegnemaskine
      <:calcomp81:>          ;  calcomp 81-cm tegnemaskine 
*cm      <:tek603:>             ;  tektronix skærm (Kem.III)*
      <:tek4006a:>           ;  tektronix 4006 grafisk skærm (standard)
      <:houstona:>           ;  houston dp11 tegnemaskine
*cm
      <:tek4006c:>           ;  tektronix 4006 grafisk skærm (Kem.V)
*
*nl**ld16**rj*
     type har kun betydning for *cm"calinch" og* "houstona". 
*cm På "calinch" giver type=2 cm lignende formater.* På "houstona" er type
beregnet til at vælge skridtlængde. type=0 svarer til 0.1 mm, type=1 til
0.05 mm. Type=4 er som type=1 med automatisk ændring af format således
at papiret udnyttes bedst muligt. Analogt for
type 5,6,7 osv. Der skal være overenstemmelse mellem den skridtlængde
som type angiver og den der er sat med en kontakt på selve dp11 tegnemaskinen.
For skærme har kun type 0 og 4 mening.
*nl*
*ld8*
*ld8**ns 1,3,2. Reservation og tegning af format*
           -----------------------------------*ld16**np*
Dette gøres ved kald af proceduren*nl2*
plotform(type,xsize,ysize);*nl2*
Hvis tegnemaskinen er ledig, reserveres den ellers udskrives på
hovedkonsollen:
*sj*
    message <name> wait for <pname>
    message <name> reserved <user>

*rj*
hvor <user> er navnet på den proces, der har reserveret tegnemaskinen.
Derefter venter programmet på, at tegnemaskinen bliver ledig og kan
reserveres. <pname> er navnet på den ønskede tegnemaskine. <user> er
navnet på dens egen proces.*nl*
*nl*
Dernæst tegnes et format afhængigt af den anvendte tegnemaskine
og parameteren type.*nl*
*sj*
For houston dp-11 og calcomp-cm tegnemaskinerne gælder:
    type = 0  Der tegnes et format som er xsize cm 
              gange ysize cm.
    type = 1  Der tegnes et standard A-format. Hvis xsize er 1,
              tegnes et A1 format, hvis xsize er 2 tegnes et A2
              format o.s.v. Formatet placeres med den korteste
              side i x-aksens retning.
    type = 2  Der tegnes A-formater, som ved type = 1 blot placeres
              den længste side i x-aksens retning.
*rj*
Der er nu defineret et koordinatsystem med nulpunkt i nederste venstre
hjørne og med en enhed på 1 cm. Pennen befinder sig i nulpunktet med
pennen hævet.*nl*
*cm
Calcomp-tomme tegnemaskiner behandles på samme måde, idet længde-
enheden er 1 tomme og ikke 1 cm. A-formaterne ændrer dog ikke størrelse.**nl*
Skærmene slettes ved plotform-kaldet, og formatet vælges som for 
cm-tegnemaskinerne men dog således, at formatet og længdeenheden divi-
deres ned, således at formatet kan være på skærmen. Tegninger vil være
tro formindskede kopier af de tilsvarende calcomp- og houston-tegninger.*nl*
*ld8*
*ld8**ns 1,3,3. Tegning af tekst og tal*
         --------------------------*ld16**np*
*ld16**np*
Det må frarådes at skrive alt for megen tekst på tegnemaskinen, da det 
er en tidsrøvende proces at tegne bogstaver og andre symboler. Til ud-
skrivning af tekst og tal anvendes en af de to procedurer
*sj*
      writeplot(    ...    )
      write(plotz,     ...     )

*rj*
prikkerne står for en eller flere parametre som i et almindeligt kald
write. Anvendes write skal man skrive
*sj*
      setposition(plotz,0,0);

*rj*
før andre tegnemaskineprocedurer bliver kaldt, ellers vil teksten ikke blive
tegnet.*nl*
Tegningen af bogstaver og symboler sker fra pennens nuværende position.
Da denne efter et kald af plotform er i nederste venstre hjørne
af formatet, er det normalt nødvendigt at flytte den. 
*nl*
For Calcomp81 tegnemaskinen kan mange anvende den indbyggede
tegn-generator ved at sætte: plotalpha:=true;
*nl*
Det valgte alfabet på calcomp81 er det dansk/norske.*nl*
Ved at kalde proceduren*nl*
*sj*
      setmargin(x,y);

*rj*
sættes et marginpunkt x,y cm (tommer) fra formatets nederste venstre
hjørne. Ved at skrive et sideskifttegn (tegnværdi 12) flyttes pennen
til marginpunktet. Et linieskifttegn (tegnværdi 10) bevirker, at pennen
flyttes til marginpunktets x-koordinat, medens y-koordinaten reduceres
med linieafstanden, der er 0.70 cm. Bogstavhøjden er 0.35 cm, medens
bogstavbredden er 0.28 cm (også på tomme-tegnemaskinen) Disse størrelser er
gemt i 3 standardvariable "linediff", "plotheight"
og "plotsize" og kan
ændres ved at give disse variable nye værdier.*nl*
*sj*
*se!*
Eksempel:
!ld8!
         begin
         integer j;
         plotform(0,8,3);
         plotheight:=0,50; plotsize:=0,4;
         linediff:=2*plotheight;
         setmargin(1,2);  j:=4;
         writeplot(<:<12> en tekst med en <10> vognretur :>,j*2);
         plotclose;
         end;
!se*!
*ld16*
*rj*
der giver tegningen i figur1*nl*
*nl7*
*ld8**ns 1,3,4. Tegning af koordinatsystem*
         -----------------------------*ld16**np*
Til at administrere tegnearealet og tegning af et koordinatsystem
anvendes proceduren*nl*
*sj*
       plotadmini(xmin,xmax,ymin,ymax,type);

*rj*
Den definerer et brugerkoordinatsystem, således at koordinaterne
xmin,xmax,ymin,ymax ligger iden for formatet og således, at 1 cm
svarer til et 'pænt' tal; ved et 'pænt' tal forstås et af tallene
1, 2, 5 gange et tiereksponent, og således at punktet xmin, ymin, 
ligger så tæt som muligt på punktet 1,1 cm fra nederste venstre hjørne.
Den tegner et koordinatsystem således at akseskæringspunktet 
(ikke nødvendigvis 0,0) ligger i venstre halvdel og indenfor
de nederste 9/10 af formatet. Ved akseskærings-
punktet angives dette punkts koordinater i brugersystemet. Ved hver
af enderne af de to pile skrives, hvor meget en inddeling er i koor-
dinatsystemet. Hvis type er 0 tegnes der mærker på akserne for 
hver inddeling ellers tegnes kun et mærke på hver akse ved akseskrærings-
punktet.
*ld8**ns 1,3,5. Tegning af kurver*
            --------------------*ld16**np*
Til kurvetegning findes to procedurer
*sj*
     plotgraph(x,y,xl,xh,dx);
     plotcurve(x,y,t,tl,th,dt);

*rj*
plotgraph tegner en kurve y(x) i intervallet fra xl til xh
med en skridtlængde på dx.*nl*
Eksempel:*nl*
*lm20*
*se <*
plotgraph(x,sin(x),0,2*pi,pi/200);<nl2<
<se *<
*lm0*
tegner funktionen sinus af x i intervallet fra 0 til 2pi med en
skridtlængde på pi/200. Plotcurve tegner en funktion givet ved en
parameterfremstilling x(t), y(t), hvor t varieres i intervallet fra
tl til th med en ændring på dt.
*nl**sj*
*ld8**se <*
Eksempel 1:     plotcurve(x,sin(x),x,0,2*pi,pi/200);
                identisk med eksemplet for plotgraph.

Eksempel 2:     plotcurve(sin(t),cos(t),t,0,2*pi,pi/200);
                tegner enhedescirklen.

Eksempel 3:     plotcurve(x(t),y(t),t,0,200,1.0);
                Tegner en stykvis ret linie gennem punktparrene
                x(t) y(t),  t = 1,2, ..., 200.
                (t skal være en erklæret real variabel.)
<se *<
*ld16**rj*
*nl*
dt i plotcurve skal vælges med nogen omhu. Den bør ikke vælges
mindre end svarende til et skridt på tegnemaskinen, da man ellers får udført
overflødige tidsrøvende beregninger, d.v.s dt bør vælges således
at pennen flyttes mindst et skridt ved en ændring af t på dt.
*ld8**ns 1,3,6. Tegning af punkter*
         ---------------------*ld16**np*
Til dette brug findes proceduren
*sj*
     plotpoint(x,y,type);

*rj*
som flytter pennen til punktet x,y. Hvis "type" er nul i kaldet
plotpoint, flyttes pennen blot. På skærmen sættes en prik, eller
tegnes et punkt afhængig af type, se figur2. Den tegnede figur
vil ligge i en omskreven cirkel med radius pointsize og centrum i
x,y. Standard værdi for pointsixe er 0.3 cm, og pointsize ændres
ved at give denne variabel en ny værdi.*nl*
Eksempel der viser de 15 forskellige punkttyper udtegnet med
et algolprogram, se figur2.*nl*
*ld8**sj*
     begin
         2 integer i;
         3 plotform(0,17,4);
         4 pointsize:=35;
         5 for i:=step 1 until 15 do
         6   begin
         7   plotmove(1+i-plotsize,3);
         8   writeplot(i);
         9   plotpoint(1+i,1,i);
        10   end;
        11   plotclose;
     end
     algol end 68
*ld16*
*rj*

Hvis type er større end 15, tegnes flere figurer oven i
hinanden svarende til følgende algol-sætning:
*sj*
   for type:=type,type shift(-4) while type<>0 do
      plotpoint(x,y,type extract 4);

*rj*
plotpoint ændrer ikke pennens lodrette position. Dette kan gøres
ved at kalde procedurerne "pendown" eller "penup" som sænker og
hæver pennen henholdsvis.
*ld8**ns 1,3,7. Frigivelse af tegnemaskiner*
                ---------------------------*ld16**np*
På RC8000 vil det desværre indtil videre være nødvendigt explicit
at frigive tegnemaskiner ved afslutningsvis i tegneprogrammer ved
kald af "plotclose".
Hvis et tegneprogram går i fejl og kalder en af ALGOLs alarmprocedurer
vil der ofte mangle noget af tegningen.
*ld8**sj*
*ps0*
*se!*
Nogle eksempler på tegnemaskineprogrammer:

    begin
    real x;
    plotform(0,8,8);
    setmargin(3,7);
    writeplot(<:<12>sin(x)*exp(-x):>);
    plotadmini(0,2*pi,-0.1.4,0);
    plotgraph(x,sin(x)*exp(-x),0,2*pi,pi/200);
    plotclose;
    end

eller

    begin
    real x;
    plotform(0,8,8);
    setmargin(3,7);
    writeplot(<:12>sin(x)*exp(-x):>);
    plotadmini(0,2*pi,-0.1,0.4,0);
    plotcurve(x,sin(x)*exp(-x),x,0,2*pi,pi/200);
    plotclose;
    end

der begge giver figur3.

    begin
    real t;
    plotform(0,8,8);
    setmargin(1,7);
    writeplot(<:12>unitcircle:>);
    plotadmini(-1.3,1.3,-1.3,0);
    plotcurve(sin(t),cost(t)T,0,2*pi,pi/200);
    plotclose;
    end

der giver figur4.
!se*!
*rj*
*sj*
*ld16**ps0*
*ld8*
Ref. 1. Ole J. Heilmann and Preben Graae Sørensen
        A set of procedures for administrating the
        plotter in GIER-Algol 4.
        Rapport nr. 1.
        Kemisk Laboratorium III
        H.C. Ørsted Institutet.

Ref. 2. Anders Lindgård, P. Graae Sørensen and J. Oxenbøll
        J. Phys. E 10 264 (1977)

Ref. 3. R. Moss and A. Lindgård
        Comput. & Graphics 4 51 (1979)
*rj*
*ps0*
*ld8**ns 1,3,Appendix 1.*
        -----------*ld16**np*
Nogle udvalgte algol 8 tegnemaskineprocedurer.*nl*
*ld8**ns 1,3,Pennens flytning*
               ----------------*ld16**nl*
Hvis man   ønsker selv at gøre det i stedet for at
benytte de før nævnte procedurer).*nl*
*sj*
Til at ændre pennens position findes 3 procedurer:
     plotmove(x,y);
     penup;
     pendown;

*rj*
penup og pendown henholdsvis løfter og sænker pennen fra papiret,
mens plotmove flytter pennen til punktet med brugerkoordinaterne
x,y. Pennen kan dog ikke flyttes uden for formatet. Pennens lodrette
position ændres ikke ved kald af plotmove.
*np*
Pennens position i bruger koordinater gemmes af systemet i de
to "real" variable "plotxpos" og "plotypos".
*np*
Omsætningsfaktorerne mellem cm-systemet og brugerkoordinatsystemet
er givet ved de to standardvariable "deltax" og "deltay" som angiver
1 cm (enhed) i brugerkoordinater.
*ld8**ns 1,3,Underformatadministration*
         -------------------------*ld16**np*
*sj*
Ved kald af proceduren

    plotsubform(xmin,xmax,ymin,ymax,draw);


*rj*
defineres der et underformat i det af plotform definerende koordinat-
system. Dette underformat vil i alle henseender virke, som om
det var det oprindelige format for de øvrige tegnemaskine procedurer.
(xmin,ymin) er koordinaterne for nederste venstre hjørne af under-
formatet i det af plotform fastlagte cm(tomme) koordinatsystem.
(xmax,ymax) koordinaterne for det øverste højre hjørne af under-
formatet.Er draw true tegnes underformatets grænser. Er draw false
tegnes grænserne ikke. Ved et kald af plotsubform omdefineres et
eventuelt brugerkoordinatsystem (fra plotadmini) til et koordinat-
system med (0,0) i subformatets nedre venstre hjørne og med længde-
enheden 1 cm (1 tomme).
*sj*
*ld8**se!*
Eksempler:
    begin
    real x;
    plotform(0,8,8);
    setmargin(2,7);
    writeplot(<:<12>sin(x)*exp(-x):>);
    plotsubform(2,6,2,6,true);
    plotadmini(0,2*pi,-0,1,0.4,0);
    plotcurve(x,sin(x)*exp(-x),x,0,2*pi,pi/200);
    plotclose;
    end

se figur 5

    begin
        2 real t;
        3 plotform(0,8,8);
        4 plotsubform(2,6,1,5,true);
        5 plotadmini(-1.5,1.5,-1.5,1.5,0);
        6 plotcurve(sin(t),cos(t),t,0,2*pi,pi/200);
        7 plotsubform(1,7,6,8,false);
        8 setmargin(1,1);
        9 write(plotz,<:12>unitcircle:>);
       10 setposition(plotz,0,0);
       11 plotclose;
       12 end

se figur 6
!se*!
*rj*
*ld8**ns 1,3,Alfabeter*
             ---------*ld16**np*
Standardalfabetet indeholder såvel det latinske alfabet som
det græske og desuden nogle specialtegn.*np*
Skift mellem latinsk og græsk alfabet styres af tegnene
SO (tegnværdi 14) og SI (tegnværdi 15) hvor SO vælger
det græske alfabet og SI det latinske. I et kald af
"writeplot" er tegnsættet initialiseret til det latinske.
Tegnsættene er vist på figur 7 og 8.*nl*
Eksempel:
*sj*
    Writeplot (<:greek letters: :>,
     <:<14> a b c d e f g h i k l m
     n o p q r s t w x y z ø <15>:>);
*rj*
*nl2*
Hvis man anvender calcomp81 tegnemaskinens indbyggede tegn-generator
kan ikke få græsk alfabet. Til gengæld kan man ved at kalde:
*sj*
select_char(charset);
*rj**nl2*
vælge mellem ASCII (=0), tysk (=1), spansk (=2), svensk/finsk (=3) eller
dansk/norsk (=4).

*ld8**ns 1,3,Skift af skriveretning*
             ----------------------*ld16**np*
Det er muligt at opnå andre skriveretninger end x-aksen,
og få hældning på bogstaver og tal ved at kalde proceduren:*nl2*
plotsettext(plotsize,plotheight,thetax,thetay,linediff);
*nl2*
hvor "plotsize", "plotheight", "linediff" angiver bredden,
højden af bogstaver samt linieafstand alt målt i cm.
"thetax" og "thetay" angiver
vinkler for henholdsvis skriveretning og hældning.
Begge måles i radianer (0,2pi). "thetax" måles fra x-aksen
i positiv omløbsretning. "thetay" måles fra y-aksen i
negativ omløbsretning. Alle variable ses i forhold
til marginpunktet som sat ved*nl*
setmargin (x_cm, y_cm);
*nl*
Se figur 9.
*nl*
For calcomp81 gælder det specielle ved brug af den indbyggede
tegn-generator at kun basis-linien kan ændres ved kald af
plotsettext og desuden at det er uden effekt blot at ændre
standardvariablene.
*nl*

*ld8**ns 1,3,Kønne bogstaver*
             ---------------*ld16**np*
Som standard tegnes bogstaver og tal med rette linier
givet på et 5 x 8 gitter. Ved at sætte standardvariablen
"plotspline" således:
*nl**sj*
     plotspline:=true;
*nl**rj*
opnås at alle bogstaver herefter tegnes optimalt runde ved
brug af splines. Algoritmen er ret regnetidskrævende og
medfører en hel del transporter fra baggrundslageret,
hvorfor den kun anbefales til brug ved publikationstegninger.
*ld8**ns 1,3,Enheder*
             -------*nl**ld16*
*np*
Standardenheden i systemet er givet ved variablen "plotunit"
og er for calcomp tegnemaskinerne 100 skridt svarende til
1 cm. *cm eller 1 tomme* Ændres "plotunit" umiddelbart
før et kald af plotform vil man opnå at den efterfølgende
tegning bliver forstørret/formindsket.*nl*
"plotunit" bør aldrig ændres andre steder.
*ld8**ns 1,3,Buffering*
             ---------*nl**ld16*
*np*
Systemet opsamler normalt vektorer i en for brugerprogrammet
usynlig buffer. Nar denne er fuld overføres bufferen til
tegnemaskinen og vektorerne tegnes.*np*
Man kan i programmet synkronisere programafvikling og
tegning ved et kald af proceduren "plotend". Denne sender
bufferen over til tegnemaskinen og venter på at disse
vektorer bliver tegnet færdig.
*ef*
*ld8**ns 1,3,Standard algol 8 tegnemaskine programmer*
             ----------------------------------------*ld16**np*
Ønsker man at få tegnet en afbildning af en funktion i variabel x
i intervallet xmin til xmax, kan man benytte et algolprogram,
der ligger i maskinen.*nl2*
*ef*

▶EOF◀