|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 29056 (0x7180)
Types: TextFile
Names: »MYREDOK2.PAS«
└─⟦6b390fbd9⟧ Bits:30002872 Myresnak v.1.06 for ICL COMET
└─⟦this⟧ »MYREDOK2.PAS«
Brugervejledning MYRESNAK v. 1.0
Maj 84/TH s. 5.6
10 og variablen V værdien 50.
L og V får værdien nul. Myren flyttes 0 punkter frem
og venstredrejes 0+5 = 5 grader.
Altså uanset hvilke værdier L og V tillægges, udfører
programmet kun det samme som ordren VENSTRE(5).
5.1.24 OPSTART
---------------
Ordren OPSTART udfører følgende operationer :
- Myren føres til startpositionen midt på skærmen (START).
- Myren stilles, så den peger opad (NORD).
- Myren gøres 'synlig' (MYRE).
- Myren sætter spor på skærmen (KRAVL).
- Myren sætter spor (GRØN).
- Alle variabler nulstilles (NUL).
- Alle variabler er globale (GLOBAL).
- Snoren fæstnes til denne position (SNOR).
- Niveau-tælleren stilles til 0.
Ved denne opstart startstilles alt, dog vil alle programmer-
ne i arbejdsområdet være bevaret.
Ordren kan benyttes, hvis fortolkeren mod al forventning ik-
ke arbejder, som den skal.
5.1.25 RENS
------------
Følgende operationer udføres ved ordren RENS :
- Der skiftes til grafikskærm (TEGNING).
- Tegninger på grafikskærmen fjernes.
- Myren stilles i startstilling (START).
- Myren stilles, så den peger opad (NORD).
- Alle variabler nulstilles (NUL).
5.1.26 RET
-----------
Fortolkeren skifter automatisk til videoskærmen og spørger
om programnavn. Når dette er indtastet, listes programmet, og
markøren stilles i øverste venstre hjørne i programfeltet.
Editoren aktiveres, og rettelsen kan foretages som forkla-
ret i kap. 7 under indskrivning af programmer.
5.1.27 SKRIV
-------------
Ordren SKRIV giver mulighed for udskrift af programmer på
linieskriveren.
Fortolkeren skifter automatisk til videoskærmen og spørger
om programnavn. Når dette er indtastet, listes programmet på
Brugervejledning MYRESNAK v. 1.0
Maj 84/TH s. 5.7
skærmen og udskrives samtidigt på den tilsluttede matrixprin-
ter.
5.1.28 SLET
------------
Samme ordre som GLEM (se kap. 5.1.7).
5.1.29 SLUT
------------
Ordren SLUT er den ordre, som afslutter et program. Den er
samtidig et signal til program-editoren om at afslutte edite-
ringen.
Hvis ordren afgives på kommandoniveauet (niveau 0), tolkes
den ikke.
5.1.30 SNOR
------------
Når ordren SNOR afgives, husker fortolkeren koordinaterne
til det punkt, hvor myren befinder sig.
Hver gang ordren STRAM afgives, vil der blive trukket en
linie fra dette punkt til det sted, hvor myren nu befinder
sig.
Først når ordren SNOR igen afgives, vil fortolkeren ud-
skifte koordinatsættet med koordinaterne til det punkt, hvor
myren nu står.
Eks. Følgende program ligger i arbejdsområdet :
VIFTE
SNOR
GENTAG(12)
FLYV
FREM(50)
HØJRE(30)
KRAVL
STRAM
HERTIL
SLUT
Programmet vil tegne alle diagonalerne til startpunk-
tet i en tolvkant samt tegne de to sidestykker, der udgår
fra startpunktet.
5.1.31 SORT
------------
Myren tegner med 'sort' farve på skærmen, dvs. alle tændte
punkter slukkes.
Ordren bruges til af slette og rette i tegningen.
Brugervejledning MYRESNAK v. 1.0
Maj 84/TH s. 5.8
5.1.32 START
-------------
Ved ordren start udfører fortolkeren følgende :
- Myren føres til startstillingen midt på skærmen uden
at sætte spor.
- Myren stiller sig i retningen pegende opad.
5.1.33 STOP
------------
STOP ordren afgivet på kommandoniveau (niveau 0) standser
fortolkeren og overgiver kommandoen til CP/M.
Man har derefter mulighed for at se, hvad der ligger på
disketten med kommandoen DIR, eller slette programfiler med
kommandoen ERA <programnavn>.MYR (se kap. 4.3).
Benyttes STOP i et program, standser dette. Niveautælleren
sættes til 0, altså kommandoniveauet.
BEMÆRK: Når myresnak fortolkeren standser, mistes alle program-
mer i arbejdsområdet. Husk derfor at gemme dem på disketten
inden STOP ordren afgives.
5.1.34 TEGNING (forkortet TG)
----------------------------------
Fortolkeren skifter til grafikbilledet uden at slette det,
der befinder sig her. Myrens attributter ændres ikke.
5.1.35 TRYK
------------
En kopi af grafikskærmen kopieres på matrixprinteren uanset
det valgte skærmbillede.
Udskrivningen kan afbrydes ved tryk på en vilkårlig tast.
5.1.36 UDHOP
-------------
UDHOP er en programordre, som bruges til udhop fra en sløj-
fe. Ordren har kun mening, hvis den befinder sig inden i sløj-
fen, dvs. mellem ordrerne GENTAG og HERTIL. Bruges den andre
steder, vil virkningerne utvivlsom virke overraskende..
Når fortolkeren udfører UDHOP ordren, foretager den et
spring til sætningen umiddelbart efter ordren HERTIL, hvoref-
ter den tolker denne sætning.
Brugervejledning MYRESNAK v. 1.0
Maj 84/TH s. 5.9
5.1.37 VDREJ (forkortet VD)
---------------------------------
Ordren har syntaksen : VDREJ(<tal>) eller VD(<tal>)
og er identisk med ordren VENSTRE (se kap. 5.1.38).
5.1.38 VENSTRE (forkortet VE)
---------------------------------
Ordren har syntaksen : VENSTRE(<tal>) eller VE(<tal>)
<tal> er et heltal og angiver, hvor mange grader myren
skal dreje sig venstre om.
<tal> kan være negativ, hvilket bevirker, at myren drejer
højre om.
Som programordre kan <tal> erstattes af en variabel eller
et udtryk (se kap. 6.5).
Eks. VENSTRE(45) Myren drejes 45 grader venstre om.
VENSTRE(V) Myren drejes det antal grader venstre
om, som tallet i variabel V angiver.
Brugervejledning MYRESNAK v. 1.0
Maj 84/TH s. 5.10
5.2 Oversigt over ordrerne til myresnak.
-----------------------------------------
Ordrerne kan inddeles i tre dele. Et sæt ordrer, der styrer my-
ren. Et sæt, der bruges i programmerne og et sæt, der bruges
til styring af de tilsluttede enheder samt styring af
variablerne.
5.2.1 Myreordrer.
-------------------
Ordre Forkortet Funktion
--------------------------------------------------------------------
HØJRE(<tal>) HØ(<tal>) Myren drejer <tal> grader mod højre.
HDREJ(<tal>) HD(<tal>) - - - - - - .
VENSTRE(<tal>) VE(<tal>) Myren drejer <tal> grader mod venstre.
VDREJ(<tal>) VD(<tal>) - - - - - - .
FREM(<tal>) FR(<tal>) Myren går <tal> punkter frem.
BAK(<tal>) BK(<tal>) Myren bakker <tal> punkter.
MYRE Myren vises på skærmen.
ERYM Myren fjernes fra skærmen.
FLYV Myren kan bevæges uden at sætte spor.
KRAVL Myren sætter spor på skærmen.
SNOR Myren husker hvor den er på skærmen.
STRAM Myren trækker en linie fra sin nuværende
position til positionen, hvor ordren
SNOR blev givet (Snoren strammes).
NORD Myren drejes mod nord (lodret op).
START Myren 'flyver' til startstillingen.
HJEM Myren trækker et spor tilbage til start-
stillingen.
GRØN eller HVID Myren tegner grønt spor på skærmen.
SORT Myren tegner sort (sletter sit spor).
--------------------------------------------------------------------
5.2.2 Programordrer.
----------------------
Ordrer Funktion.
--------------------------------------------------------------------
GENTAG Gentag det følgende i det uendelige.
GENTAG(<tal>) - - - <tal> gange. (Hvis
<tal> <= 0 udføres sætningen efter
HERTIL.
HERTIL Afslutning af gentage-sløjfen.
HVIS(<udsagn>)<ordre> Hvis <udsagn> er sandt udføres <ordre>
ellers overspringes sætningen.
UDHOP Sætningen efter hertil udføres.
SLUT Afslutter programmet.
--------------------------------------------------------------------
Brugervejledning MYRESNAK v. 1.0
Maj 84/TH s. 5.11
5.2.3 Systemordrer.
---------------------
Ordrer Forkortet Funktion
--------------------------------------------------------------------
TEGNING TG Der skiftes til tegnesiden.
RENS Skærmen renses, og myren anbringes i
startstillingen.
KATALOG KT Alle programnavnene vises.
HUSK Nyt program kan indtastes.
LIST Udskrift af program på skærmen.
SKRIV Udskrift af program på linieskriveren.
TRYK Kopierer tegnesiden på linieskriveren.
RET Man kan rette i et eksisterende program.
GLEM eller SLET Sletning af program i arbejdsområdet.
NUL Nulstiller alle variabler.
HENT Henter program på disketten.
GEM Lagrer program på disketten.
LOKAL Myresnak arbejder med lokale variabler.
GLOBAL - - - globale - .
STOP Fortolkeren stopper (Husk at alle pro-
grammer i arbejdsområdet mistes, hvis
de ikke er gemt på disketten).
OPSTART Fortolkeren opstartes påny, dog vil alle
programmerne i arbejdsområdet være
bevaret.
--------------------------------------------------------------------
Brugervejledning MYRESNAK v. 1.0
Maj 84/TH s. 6.1
6. Programmer.
----------------
Et program består af
1. <programnavn>(<variabel),..,<variabel>)
2. programdel
3. SLUT
Et program kan maksimalt bestå af 20 linier med 30 tegn.
6.1 Programnavn.
-----------------
Programnavnet kan bestå af et antal bogstaver eller tal (evt.
blandet) og kan være lige så langt, som linien tillader.
Programnavnet kan ikke være en af ordrene nævnt i kap. 5.
Hvis programmet skal gemmes på diskette, bør programnavnets
længde ikke overstige 8 tegn, da fortolkeren (af hensyn til
CP/M systemet) automatisk afskærer tegn udover det ottende, når
der arbejdes på disketten.
Eks. På disketten ligger programmet 'FIRKANTER' under
navnet 'FIRKANTE' (8 tegn).
Programmet 'FIRKANTERNE' gemmes.
Programmet 'FIRKANTE' (opr. 'FIRKANTER') over-
skrives, og efter operationen ligger programmet 'FIR-
KANTERNE' nu på disketten under navnet 'FIRKANTE'.
Hentes programmet ind i fortolkeren, vises nu i
kataloget programmet 'FIRKANTERNE'.
Dvs. at hvis et programnavn overstiger 8 tegn vil
diskettekataloget kun vise de første 8.
6.2 Variabler.
---------------
En variabel består af eet bogstav (A-Å).
Bruges flere variabler, skilles de ved komma.
Der kan maximalt benyttes 8 variabler pr. program.
6.3 Programdel.
----------------
Programdelen består af 1. Ordrer
2. evt. een sløjfe
3. evt. programkald
Eks. VINKEL(V) KVADRAT SPIRAL(Q)
FREM(200) GENTAG(4) FREM(10)
VENSTRE(V) FREM(100) VENSTRE(Q)
FREM(200) HØJRE(90) SPIRAL(Q+10)
SLUT HERTIL SLUT
SLUT
Brugervejledning MYRESNAK v. 1.0
Maj 84/TH s. 6.2
6.4 Programkald.
-----------------
Programkald består af
<programnavn>(<udtryk>,..,<udtryk>)
<udtryk> kan udelades.
Det er vigtigt, at antallet af udtryk til programmet svarer
til antallet af programmets variabler.
6.5 Udtryk.
------------
Et udtryk opfattes som
1. et <tal> eller en <variabel>
2. to <tal> eller <variable> med et <regnetegn> imellem
Eksempler på LOVLIGE udtryk:
2+5 A-3 7*L -Q A/L 5/-B -2*P 5*-A
Eksempler på ULOVLIGE udtryk:
2*5+6 2*A/R A*B*C
6.6 Tal.
---------
Myresnak fortolkeren behandler kun heltal, som kan være posi-
tive, negative eller nul. Talområdet går fra -32768 til 32767.
6.7 Regnetegn.
---------------
Fortolkeren arbejder kun med '+', '-', '*' og '/'.
6.8 Sløjfer.
-------------
Sløjfer består af et antal programordrer eller programkald,
som skal gentages et vist antal gange evt. uendelig mange gange.
Syntaksen er følgende
1. GENTAG(<udtryk>)
2. ordredel
3. HERTIL
Ad. 1. Hvis <udtryk> udelades, gentages ordredelen i det uen-
delige.
Ad. 2. Hvis <udtryk> er positivt, udføres ordredelen <udtryk>
Brugervejledning MYRESNAK v. 1.0
Maj 84/TH s. 6.3
antal gange. Sløjfen kan afbrydes, hvis ordren UDHOP
bruges evt. i en betinget ordre. Fortolkeren udfører
så linien efter HERTIL.
Ad. 3. Hvis <udtryk> er nul eller negativ, overspringes ordre-
delen, og linien efter HERTIL udføres.
BEMÆRK: Fortolkeren tillader kun een sløjfe pr. program. Ønskes
flere sløjfer (evt. inden i hinanden), gøres det ved at
kalde et nyt program, der udfører denne sløjfe.
Eks. SPIRAL(L) TREKANT(L)
GENTAG GENTAG(3)
TREKANT(L) FREM(L)
HØJRE(10) HØJRE(120)
HERTIL HERTIL
SLUT SLUT
6.9 Betingede ordrer.
----------------------
Den betingede ordre giver mulighed til at udføre rekursiv
programmering. Syntaksen er følgende
HVIS(<udsagn>)<ordre>
Hvis <udsagn> er sand, udføres <ordre>. Hvis <udsagn> er
falsk, overspringes sætningen, og næste programlinie udføres.
Hvis <ordre> er SLUT, forlades programmet (niveauet sættes
et ned).
<ordre> kan også være et programkald.
Eks. HVIS(N>=0)SLUT
HVIS(2<=2*N)FIRKANT(L+5)
6.10 Udsagn.
------------
Udsagnet har følgende syntaks:
<udtryk><logisk operator><udtryk>
6.11 Logisk operator.
---------------------
De logiske operatorer er følgende:
1. = lig med
2. > større end
3. < mindre end
4. >= eller => større end og lig med
5. <= eller =< mindre end og lig med
6. <> eller >< forskellig fra
Brugervejledning MYRESNAK v. 1.0
Maj 84/TH s. 6.4
6.12 Programafbrydelse.
-----------------------
Alle programkørsler kan afbrydes ved tryk på en vilkårlig
tast. Det er dog ikke muligt at genstarte programmet fra det
sted, hvor det blev afbrudt.
Brugervejledning MYRESNAK v. 1.0
Maj 84/TH s. 7.1
7. Indskrivning af programmer.
--------------------------------
Skrives ordren HUSK, aktiveres program-editoren, og indskriv-
ningen af programmet kan påbegyndes.
På et hvilket som helst tidpunkt under indskrivningen kan
editorens faciliteter benyttes.
- Piltasterne benyttes til at flytte markøren.
- 'DEL' tasten sletter tegnet under markøren og flytter re-
sten af linien en position til venstre.
- 'INS' tasten indsætter et mellemrum under markøren og
flytter resten af linien en position til højre.
- 'BS' virker som tasten med pil til venstre.
- Tredie funktionstast fra højre sletter linien under markø-
ren og rykker efterfølgende linier en linie op.
- Anden funktionstast fra højre indsætter en tom linie un-
der markøren og rykker de efterfølgede linier en linie
ned.
NB: Hvis der stod noget i nederste linie, mistes det.
- Første funktionstast fra højre sletter alle tegn fra mar-
køren til liniens slutning.
Editoren foretager selv indrykninger/udrykninger af program-
linierne.
Programindskrivningen afsluttes automatisk, når 'RETURN' ned-
trykkes mens markøren står på linien, hvor ordren SLUT står.
Myresnak-programmer kan maksimal være på 20 linier. Hver li-
nie kan højst bestå af 30 tegn.
Skrivefeltets bredde er 34 anslag af hensyn til indryknin-
gerne. Når indskrivningen er færdig fjerner editoren automatisk
alle mellemrum og afskærer alle tegn udover det 30te.
Programmet lagres i arbejdsområdet, og programnavnet indføres
i kataloget. Hvis der allerede er et program med samme navn, gi-
ves der mulighed for at rette programnavnet i det sidst indta-
stede program, ellers overskrives det gamle.
Ordren RET giver også adgang til editoren og benyttes, når
man skal foretage rettelser i et eksisterende program.
Brugervejledning MYRESNAK v. 1.0
Maj 84/TH s. 8.1
8. Variabelbegrebet i myresnak.
----------------------------------
Myresnak fortolkeren arbejder med to former for variabler
nemlig globale og lokale variabler.
Man kan frit skifte mellem de to typer ved ordrerne GLOBAL
og LOKAL.
Det tilrådes ikke at bruge disse ordrer som programordrer,
da virkningerne er uoverskuelige.
8.1 Globale variabler.
----------------------
Ved opstart af myrestart er alle variabler globale, hvilket
vises på videosiden i anden linie på skærmens højre halvdel.
Alle variablerne er ligeledes nulstillede. (Samme virkning op-
nås ved ordren OPSTART).
At variablerne er globale betyder, at alle programmerne har
adgang til de samme variabler og evt. kan ændre dem.
Ordren NUL nulstiller alle variablerne.
Ordren GLOBAL sætter alle variablerne globale.
Programmerer man rekursivt (dvs. at programmet kalder sig
selv) forbliver man på samme niveau (niveau 1), og der er der-
for ingen mulighed for tilbagevikling.
Eks. I arbejdsområdet ligger følgende program :
TREKANTETSPIRAL(L)
FREM(L)
HØJRE(120)
SPIRAL(L+3)
SLUT
Vi starter f.eks. ved ordren TREKANTETSPIRAL(10) på
niveau 0 (kommandoniveauet).
Programmet kaldes og tolkes på niveau 1 og L tildeles
værdien 10. Myren går 10 frem og højredrejes 120 grader.
Programmet kaldes igen (vi bliver på niveau 1), og L
tildeles nu værdien 10+3 = 13. Myren går 13 frem og høj-
redrejes 120 grader.
Programmet kaldes igen (vi bliver på niveau 1), og L
tildeles nu værdien 13+3 = 16. Myren går 16 frem og høj-
redrejes 120 grader.
Således forsættes i det uendelige, eller til program-
met afbrydes ved tryk på en vilkårlig tast. Vi vender så
tilbage til kommandoniveauet (niveau 0).
Brugervejledning MYRESNAK v. 1.0
Maj 84/TH s. 8.2
8.2 Lokale variabler.
---------------------
Variablerne sættes lokale ved ordren LOKAL, hvilket vises på
videosiden i anden linie på højre halvdel.
Hvert program får nu sit eget variabelsæt og evt. variabel-
overførsler sker ved hjælp af programmets variabeldel. Hvert
program har kun adgang til sit eget variabelsæt.
Ved rekursiv programmering vil hver programkald rykke et
niveau ud.
Husk: Der er maximalt 50 niveauer til rådighed.
Ordren NUL nulstiller samtlige variabler på alle niveauer.
Ordren HVIS giver mulighed for tilbagevikling ved rekursive
programkald.
Eks. Følgende program ligger i arbejdsområdet :
MANGEFIRKANT(L,N)
HVIS(N=0)SLUT
GENTAG(4)
MANGEFIRKANT(L/3,N-1)
FREM(L)
VENSTRE(90)
HERTIL
SLUT
Programmet kaldes f.eks. med ordren MANGEFIRKANT(180,3)
på kommandoniveauet (niveau 0).
På niveau 1 tildeles variablen L værdien 180 og N værdi-
en 3. Der testes om N er nul, hvilket den ikke er. Sløjfen
påbegynder første gennemløb på niveau 1. Programmet kalder
sig selv, og parametrene øverføres til niveau 2.
På niveau 2 tildeles variablen L vædien 180/3 = 60 og N
værdien 3-1 = 2. Der testes om N er nul, hvilket den ikke
er. Sløjfen påbegynder første gennemløb på niveau 2. Pro-
grammet kalder sig selv, og parametrene øverføres til ni-
veau 3.
På niveau 3 tildeles variablen L vædien 60/3 = 20 og N
værdien 2-1 = 1. Der testes om N er nul, hvilket den ikke
er. Sløjfen påbegynder første gennemløb på niveau 3. Pro-
grammet kalder sig selv, og parameterne øverføres til ni-
veau 4.
På niveau 4 tildeles variablen L vædien 20/3 = 7 og N
værdien 1-1 = 0. Der testes om N er nul, hvilket den er.
Ordren SLUT udføres, og programmet forlader niveau 4. Der
hoppes tilbage til niveau 3.
På niveau 3 forsættes med ordren FREM(L). Dvs. myren be-
væger sig 20 punkter frem. Tilbageviklingen er altså påbe-
gyndt. Myren venstredrejes 90 grader. Andet gemmenløb på
Brugervejledning MYRESNAK v. 1.0
Maj 84/TH s. 8.3
niveau 3 startes, og programmet kalder sig selv.
På niveau 4 får L værdien 20/3 = 7 og N værdien 1-1 =0.
Der testes for N = 0. Niveauet forlades påny og vi forsæt-
ter på niveau 3.
Således forsættes indtil man når niveau 0.
BEMÆRK at variablen N benyttes som en slags omvendt ni-
veautæller. Variablen L overføres også til niveau 4, men
benyttes ikke.
«eof»