|  | DataMuseum.dkPresents historical artifacts from the history of: ICL Comet | 
This is an automatic "excavation" of a thematic subset of
 See our Wiki for more about ICL Comet Excavated with: AutoArchaeologist - Free & Open Source Software. | 
top - metrics - download
    Length: 3328 (0xd00)
    Types: TextFile
    Names: »MENU.PAS«
└─⟦1d9c0f429⟧ Bits:30005384 COMAL-80 med små spil (opstartsdiskette)
    └─⟦this⟧ »MENU.PAS« 
PROGRAM menuvalg;
CONST
ESC     = 27;
return  =  $0D;
op      =  $0B;
ned     =  $0A;
pil_on  = '=->';
pil_off = '   ';
nul     = 0;
VAR
quit : boolean;
valg,tast :byte;
tabulering,pegepind,slet,antal,liniestart, linie_slut, linie : integer;
(*----------------------------------------------------*)
PROCEDURE a;
BEGIN
  GOTOXY(tabulering,liniestart -4);
  WRITELN('***** rutine A *****')
END;
(*----------------------------------------------------*)
PROCEDURE b;
BEGIN
  GOTOXY(tabulering,liniestart -4);
  WRITELN('***** rutine B *****')
END;
(*----------------------------------------------------*)
PROCEDURE c;
BEGIN
  GOTOXY(tabulering,liniestart -4);
  WRITELN('***** rutine C *****')
END;
(*----------------------------------------------------*)
PROCEDURE d;
BEGIN
  GOTOXY(tabulering,liniestart -4);
  WRITELN('***** rutine D *****');
  quit := true;
END;
(*----------------------------------------------------*)
PROCEDURE ny_pegepind;
BEGIN
  gotoxy(tabulering-4,slet);
  WRITE(pil_off);
  gotoxy(tabulering-4,pegepind);
  WRITE(pil_on);
  gotoxy(tabulering-2,pegepind);
END;
(*----------------------------------------------------*)
PROCEDURE menutekst;
BEGIN
  gotoxy (tabulering,liniestart);
  WRITELN ('tekst 1 ');
  gotoxy (tabulering,liniestart + 1);
  WRITELN ('tekst 2 ');
  gotoxy (tabulering,liniestart + 2);
  WRITELN ('tekst 3 ');
  gotoxy (tabulering,liniestart + 3);
  WRITELN ('tekst 4 QUIT af program ');
END;
(*----------------------------------------------------*)
PROCEDURE initiering;
BEGIN
  tabulering := 12;
  liniestart := 12;
  pegepind := liniestart;
  antal := 4;
  antal:=antal-1;
  tast:=nul;
  linie_slut:=liniestart + antal;
END;
(*----------------------------------------------------*)
PROCEDURE get(VAR tast:byte);
BEGIN
  PORT(.$F6.):=0;
  tast := 0;
  REPEAT
    tast := PORT(.$F6.) AND $7F;
  UNTIL tast <> 0;
END;
(*----------------------------------------------------*)
BEGIN
  GOTOXY (0,0);
  CLREOS;
  quit := false;
  REPEAT
    initiering;
    menutekst;
    ny_pegepind;
    WHILE NOT(tast = return)  DO
    BEGIN
      GET(tast);
      IF tast = op 
      THEN BEGIN
             slet := pegepind;
             IF pegepind = liniestart 
             THEN BEGIN 
                     pegepind := linie_slut;
                  END
             ELSE BEGIN
                    pegepind := pegepind - 1;
                  END;
           END
      ELSE BEGIN
             IF tast = ned 
             THEN BEGIN
                    slet:=pegepind;
                    IF pegepind = linie_slut 
                    THEN BEGIN
                           pegepind:=liniestart;
                         END
                    ELSE BEGIN
                           pegepind:=pegepind + 1;
                         END;
                  END;
           END;
           ny_pegepind;
     END;(*while*)
     gotoxy(tabulering-4,pegepind);
     WRITE(pil_off);
     valg := pegepind - liniestart+1;
     CASE valg OF
       1: a;
       2: b;
       3: c;
       4: d;
     OTHERWISE;
     END;
   UNTIL quit;
  
   GOTOXY (0,0);
   CLREOS;
   WRITELN ('program afsluttet');
END.
«eof»