DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

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

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦dc2be01aa⟧ TextFile

    Length: 5760 (0x1680)
    Types: TextFile
    Names: »PLOTTER.PAS«

Derivation

└─⟦037dced94⟧ Bits:30003312 Elevopgave i styring af skildpadde til Piccolo
    └─ ⟦this⟧ »PLOTTER.PAS« 

TextFile

program PLOTTER;
type
  index=1..5000;
  modevektor=array(.index.) of integer;
var
  mode:modevektor;
  gang,nr,antal,vent,test,fart,
  lift,pen,rep,tilstand,steptal:integer;
  str1:string(.1.);
  ch,ch1,ch2,ch3,ch4:char;
procedure nulstil;
begin
  for nr:=1 to 5000 do mode(.nr.):=0;
  steptal:=1;pen:=0;tilstand:=0;ch2:=' ';
end;
procedure flyt(var tilstand:integer);
begin
  for nr:=1 to antal do
  begin
    mode(.steptal.):=tilstand;
    steptal:=steptal+1;
    for vent:=1 to 10 do
    port(.17.):=tilstand;
    for vent:=1 to 10 do 
    gotoxy(1,1);write('Step nr: ',steptal);  
    port(.17.):=pen;
  end;         
end;
procedure undervis;
begin
  gotoxy(1,1);write(clrhom);nulstil;
  gotoxy(34,4);write('UNDERVISNING.');
  gotoxy(34,5);write('************ ');
  gotoxy(25,8);write('Du kan nu vælge :');
  gotoxy(25,10);write('Pennen frem              tast  F');
  gotoxy(25,11);write('Pennen tilbage           tast  B');
  gotoxy(25,12);write('Pennen til højre         tast  H');
  gotoxy(25,13);write('Pennen til venstre       tast  V');
  gotoxy(25,14);write('Pennen ned/op            tast  P');
  gotoxy(25,15);write('Standse                  tast  S');
  gotoxy(48,4);
  nulstil;
    repeat
    read(kbd,ch2);
    if (ch2<>'S') and (ch2<>'s')
    and(ch2 in(.'F','f','B','b','H','h','V','v','P','p'.))    
      then 
      begin
        case ch2 of
          'F','f':tilstand:=pen+1;
          'B','b':tilstand:=pen+3;
          'H','h':tilstand:=pen+4;
          'V','v':tilstand:=pen+12;
          'P','p':begin
                    lift:=pen;
                    case lift of
                      0:pen:=32;
                      32:pen:=0;
                      otherwise
                    end;
                    tilstand:=pen;
                  end;
        end;
      flyt(tilstand);
      end;          
  until (ch2='S') or (ch2 ='s') or (steptal>4999);
  port(.17.):=0;
end;    
procedure gentag;
begin
gotoxy(1,1);write(clrhom);
gotoxy(33,11);write(chr(130),'*******************',chr(128));
gotoxy(34,12);write('DER GENTAGES 1 GANG');
gotoxy(33,13);write(chr(130),'*******************',chr(128));
gotoxy(47,12);
  for nr:=1 to steptal do
  begin
    port(.17.):=mode(.nr.);
    for vent:=1 to 15  do    
    port(.17.):=(mode(.nr.) div 32)*32;
    for vent:=1 to 15 do
  end;
  port(.17.):=0;
end;
procedure repeter;
begin
  gotoxy(1,1);write(clrhom);
  gotoxy(37,10);write('REPETITION');
  gotoxy(37,11);write('**********');
  gotoxy(25,13);write('Hvor mange gange vil du repetere?');
  repeat
    gotoxy(25,15);write('Tast et tal mellem 2 og 9 incl.:       ');
    gotoxy(58,15);read(kbd,ch4);
  until ch4 in (.'2','3','4','5','6','7','8','9'.);
  val(ch4,gang,test);
  gotoxy(58,19);write('Der tegnes ',gang,' kopier!');
  for rep:=1 to gang do
  begin
    gotoxy(58,20);write('Nu tegnes kopi nr: ',rep);  
    gotoxy(77,20);
    for nr:=1 to steptal do
    begin
      port(.17.):=mode(.nr.);
      for vent:=1 to 15  do    
      port(.17.):=(mode(.nr.) div 32)*32;
      for vent:=1 to 15 do
    end;
  end;
  port(.17.):=0;
  gotoxy(1,1);write(clrhom);
end;
procedure forklar;
begin
gotoxy(1,1);write(clrhom);
gotoxy(30,2);write('F O R K L A R I N G');
gotoxy(30,3);write('*******************');
gotoxy(17,5);write('Plotterens to motorer  sluttes  til interfacets  ');
gotoxy(17,6);write('udgange 1 og 2. Dernæst  laves  en seriekobling  ');
gotoxy(17,7);write('af PENLIFT, relæudgang nr 3 og en 10 Volt for-   ');
gotoxy(17,8);write('syning (bag på interfacet).                      ');
gotoxy(17,9);write('Tilslut kablet mellem  PICCOLOen  og interfacet  ');
gotoxy(17,10);write('som  markeret  på kablet, og tænd derpå for in-  ');
gotoxy(17,11);write('terfacet. De små ryk, som motorerne giver i be-  ');
gotoxy(17,12);write('gyndelsen af  hver  indlæringssekvens, skyldes,  ');
gotoxy(17,13);write('at PICCOLOens taster er repetitive, de vil for-  ');
gotoxy(17,14);write('svinde under gentagelsesprocessen.               ');
gotoxy(17,15);write('Plotterprogrammet kan kun "huske" 5000 instruk-  ');
gotoxy(17,16);write('ser, så  følg  med  på step-tælleren oppe i det  ');
gotoxy(17,17);write('venstre hjørne af skærmen.                       ');
gotoxy(17,18);write('Hvis du vil justere  plotterens  position, skal  ');
gotoxy(17,19);write('du bruge et kort indlæringsprogram, som du blot  ');
gotoxy(17,20);write('ikke vil have gentaget.                          ');
gotoxy(30,24);write('Tryk  MELLEMRUM  for at fortsætte...');
repeat
  read(kbd,ch);
until ch=' ';
end;
begin
nulstil;
port(.19.):=255;
port(.19.):=192;
port(.17.):=0;
antal:=1;
repeat
gotoxy(1,1);write(clrhom);
gotoxy(25,3 );write(chr(130),' P L O T T E R - S T Y R I N G',chr(128));
gotoxy(20,6 );write('Du har nu følgende valg:');  
gotoxy(20,7 );write('________________________');
gotoxy(20,13);write('Du kan undervise                    tast  U');
gotoxy(20,15);write('Plotteren gentager                  tast  G');
gotoxy(20,11);write('Du kan få forklaring                tast  F');
gotoxy(20,19);write('Hvis du vil standse, så             tast  Q');
gotoxy(20,17);write('Plotteren gentager N gange          tast  R');
gotoxy(20,21);write('NB!!!  Hele turen bliver SLETTET !!!');
gotoxy(45,6);
  repeat
    read(kbd,ch1);
    case ch1 of
      'U','u':undervis;
      'G','g':gentag;
      'R','r':repeter;
      'F','f':forklar;
    end;
  until ch1 in (.'U','u','G','g','R','r','F','f','Q','q'.);
until (ch1='Q') or (ch1='q');
gotoxy(1,1);write(clrhom);
end.
«eof»