|
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: 5760 (0x1680) Types: TextFile Names: »KRAN.PAS«
└─⟦037dced94⟧ Bits:30003312 Elevopgave i styring af skildpadde til Piccolo └─ ⟦this⟧ »KRAN.PAS«
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»