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

⟦30eff3c75⟧ TextFile

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

Derivation

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

TextFile

program KRANSTYRING;(* Jens Vaaben 10-9-1986 *)
type
  index=1..5000;
  modevektor=array(.index.) of integer;
var
  mode:modevektor;
  nr,antal,vent,tid,test,fart:integer;
  tilstand,steptal:integer;
  str1:string(.1.);
  ch,ch2,ch3,ch1:char;
(*------------------------------------*)
procedure nulstil;
begin
  for nr := 1 to 5000 do mode(.nr.) := 0;
  steptal := 1;
end;
(*------------------------------------*)
procedure flyt(var tilstand : integer);
begin
  for nr:= 1 to 2 do
    begin  
      port(.17.) := tilstand;
      for vent := 1 to tid do
      mode(.steptal.) := tilstand;  
      steptal := steptal + 1;
      gotoxy(1,1);write('Step nr: ',steptal);
      port(.17.) := 0;
      for vent := 1 to tid do
    end;
end;
(*-----------------------------------*)
procedure tempo;
begin
gotoxy(1,1);write(clrhom);
gotoxy(35,4);write('TEMPOVALG:');
gotoxy(35,5);write('_________');
gotoxy(25,12);write('Indtast et tal mellem 1 og 5.');
gotoxy(25,13);write('1 er på forhånd valgt af pro-');
gotoxy(25,14);write('grammet, det er langsomt.');
gotoxy(47,4);
repeat
  read(kbd,ch3);
until ch3 in (.'1','2','3','4','5'.);
val(ch3,fart,test);
gotoxy(47,4);write(fart);
tid := (9-fart)*20;
for nr := 1 to 20000 do
end;
(*-------------------------------------*)
procedure undervis;
begin
  gotoxy(1,1);write(clrhom);
  gotoxy(34,4 );write('UNDERVISNING.');
  gotoxy(34,5 );write('____________ ');
  gotoxy(25,8 );write('Du kan nu vælge :');
  gotoxy(25,10);write('Vogn 1 frem              tast  A');
  gotoxy(25,11);write('Vogn 1 bak               tast  B');
  gotoxy(25,12);write('Vogn 2 frem              tast  C');
  gotoxy(25,13);write('Vogn 2 bak               tast  D');
  gotoxy(25,14);write('Kran ned                 tast  N');
  gotoxy(25,15);write('Kran op                  tast  O');
  gotoxy(25,16);write('Pause                    tast  P');
  gotoxy(25,17);write('Standse                  tast  S');
  gotoxy(48,4);
  nulstil;
  repeat
  read(kbd,ch2); 
  if (ch2 <> 'Q') and (ch2 <> 'q')
  and(ch2 in(.'A','a','B','b','C','c','D','d','N','n','O','o','P','p'.))    
      then 
      begin  
        case ch2 of
          'A','a': tilstand :=  1;       
          'B','b': tilstand :=  3;
          'C','c': tilstand :=  4;
          'D','d': tilstand := 12;
          'N','n': tilstand := 16;  
          'O','o': tilstand := 48;
          'P','p': tilstand := 42;
        end;
      flyt(tilstand);
      end;
  until (ch2 = 'S') or (ch2 = 's') or (steptal > 4999);
end;    
procedure gentag;
begin
  gotoxy(1,1);write(clrhom);
  gotoxy(25, 9);write(chr(130),'*****************************',chr(128));
  gotoxy(25,10);write(chr(130),'*                           *',chr(128));
  gotoxy(25,11);write(chr(130),'*****************************',chr(128));
  gotoxy(28,10);write(chr(128),'NU GENTAGES DET HELE !',chr(130));
  for nr := 1 to steptal do
  begin
    for vent := 1 to tid do
    port(.17.) := mode(.nr.);
    for vent := 1 to tid do 
    port(.17.) := 0;
  end;
end;
procedure forklar;
begin
gotoxy(1,1);write(clrhom);
gotoxy(17, 2);write('             F O R K L A R I N G                 ');
gotoxy(17, 3);write('             ___________________                 ');
gotoxy(17, 5);write('De to vogne sluttes til interfacets udgange nr.  ');
gotoxy(17, 6);write('1 og 2. Kranen sluttes til udgang nr. 3.         ');
gotoxy(17, 7);write('Du må lære, hvad der vogn 1 og vogn 2 , ligesom  ');
gotoxy(17, 8);write('du må lære, hvad der er frem og bak.             ');
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('Kranprogrammet kan kun "huske" 5000 instrukser,  ');
gotoxy(17,16);write('så følg med på step-tælleren oppe i det venstre  ');
gotoxy(17,17);write('hjørne af skærmen.                               ');
gotoxy(17,18);write('Hvis du vil justere kranens højde, så bruger du  ');
gotoxy(17,19);write('et kort indlæringsprogram, som du blot ikke vil  ');
gotoxy(17,20);write('have gentaget.                                   ');
gotoxy(30,24);write('Tryk  MELLEMRUM  for at fortsætte...');
repeat
  read(kbd,ch);
until ch=' ';
end;
(*-------------------Her begynder det egentlige program----------------*)
begin
port(.19.):=255;
port(.19.):=192;
port(.17.) := 0;
nulstil;
tid := 160;
repeat
gotoxy(1,1);write(clrhom);
gotoxy(25,4 );write('      K R A N S T Y R I N G');
gotoxy(25,5 );write('      *********************');
gotoxy(20,8 );write('Du har nu følgende valg:');  
gotoxy(20,9 );write('_______________________ ');
gotoxy(20,11);write('Du kan indtaste et tempo            tast  T');
gotoxy(20,13);write('Du kan undervise                    tast  U');
gotoxy(20,15);write('Vogne og kran kan gentage           tast  G');
gotoxy(20,17);write('Du kan få forklaring                tast  F');
gotoxy(20,19);write('Hvis du vil standse, så             tast  Q');
gotoxy(20,21);write('NB!!!  Hele turen bliver SLETTET !!!');
gotoxy(46,8);
  repeat
    read(kbd,ch1);
    case ch1 of
      'T','t': tempo;
      'U','u': undervis;
      'G','g': gentag;
      'F','f': forklar;
    end;
  until ch1 in (.'T','t','U','u','G','g','F','f','Q','q'.);
until (ch1 = 'Q') or (ch1 = 'q');
gotoxy(1,1);write(clrhom);
end.
«eof»