|
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 - 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»