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 - metrics - download

⟦301f7c25c⟧ TextFile

    Length: 8192 (0x2000)
    Types: TextFile
    Names: »DSIMTINT.PAS«

Derivation

└─⟦da1b76629⟧ Bits:30008866 Indeholder bla. RCKAT
    └─⟦this⟧ »DSIMTINT.PAS« 

TextFile

OVERLAY PROCEDURE INIT(FUN: INTEGER);

VAR
  T1: ARRAYÆ0..5Å OF STRINGÆ37Å;
  T2: ARRAYÆ0..7Å OF STRINGÆ37Å;
  T3: ARRAYÆ0..2Å OF STRINGÆ37Å;
  
FUNCTION STROUT(S: STRING80): STRING80;
VAR STR: STRING80; I: INTEGER;
BEGIN
   IF LEN(S)=0 THEN  STROUT:='<ingen værdi>'  ELSE
   BEGIN
      STR:='';
      FOR I:=1 TO LEN(S) DO
      BEGIN
         IF SÆIÅ=CHR(10) THEN  STR:=CONCAT(STR,'<LF>')  ELSE
         IF SÆIÅ=CHR(13) THEN  STR:=CONCAT(STR,'<CR>')  ELSE
         IF SÆIÅ=CHR(27) THEN  STR:=CONCAT(STR,'<ESC>') ELSE
         IF SÆIÅ<CHR(32) THEN  STR:=CONCAT(STR,'^',CHR(ORD(SÆIÅ)+64)) ELSE
                               STR:=CONCAT(STR,SÆIÅ);
      END;
      STROUT:=STR;
   END;
END;

FUNCTION JN(VAR B: BOOLEAN): STRING14;
BEGIN
   IF B THEN  JN:='Ja'  ELSE  JN:='Nej';
END;

PROCEDURE INSEK(VAR S: STRING28);
BEGIN
   WRITE('  Ny: ');
   S:='';
   L:=0;
   REPEAT
      REPEAT UNTIL GETCON(CH);
      IF CH=CHR(27) THEN 
      BEGIN
         WRITE(STROUT(CH));
         L:=SUCC(L);
      END ELSE
      BEGIN
         IF L=1 THEN  S:=CONCAT(S,CHR(27));
         S:=CONCAT(S,CH);
         L:=0;
         WRITE(STROUT(CH));
      END;
   UNTIL L=2;
   FOR L:=1 TO 10 DO WRITE(CHR(08));
   FOR L:=1 TO 10 DO WRITE(' ');
END;

BEGIN
   T1Æ0Å:='7 bit ,    Kompression , CRTLtegn    ';
   T1Æ1Å:='7 bit ,    Kompression , No CRTLtegn ';
   T1Æ2Å:='7 bit , No kompression , CRTLtegn    ';
   T1Æ3Å:='7 bit , No kompression , No CRTLtegn ';
   T1Æ4Å:='8 bit , No kompression , CRTLtegn    ';
   T1Æ5Å:='8 bit , No kompression , No CRTLtegn ';
   T2Æ0Å:='7 bit ,   Even paritet , 2 stopbits  ';
   T2Æ1Å:='7 bit ,    Odd paritet , 2 stopbits  ';
   T2Æ2Å:='7 bit ,   Even paritet , 1 stopbit   ';
   T2Æ3Å:='7 bit ,    Odd paritet , 1 stopbit   ';
   T2Æ4Å:='8 bit ,  Ingen paritet , 2 stopbits  ';
   T2Æ5Å:='8 bit ,  Ingen paritet , 1 stopbit   ';
   T2Æ6Å:='8 bit ,   Even paritet , 1 stopbits  ';
   T2Æ7Å:='8 bit ,    Odd paritet , 1 stopbits  ';
   T3Æ0Å:='Intet check                          ';
   T3Æ1Å:='Check hvert enkelt tegn, i 3 linier  ';
   T3Æ2Å:='Vent på CRTL-Q efter CR/LF           ';
   IF FUN=1 THEN
   BEGIN
      ASSIGN(FIL,'DSIMT.DAT');
      RESET(FIL);
      IF IORES<>0 THEN
      BEGIN
         WRITELN;   WRITELN;   WRITELN;
         WRITELN('PAS PÅ!!!!  --> Kan ikke finde "DSIMT.DAT" !!');
         WRITELN;   WRITELN;
         WRITE('Tryk return ');
         READLN(FILN);
         WRITELN;   WRITELN;   WRITELN;
         FILL(DEF.CLRSKM,128,0);
      END ELSE
      BEGIN
         BLOCKREAD(FIL,DEF.CLRSKM,1);
      END;
      CLOSE(FIL);
      DEFBUF:=1;
      VISSTR:='?';
      BUF_CLR(1);  BUF_CLR(2);
   END;
   IF FUN<3 THEN
   BEGIN
      WRITE(DEF.CLRSKM);
      WRITELN('XXXXXX    XXXXXXX   XXXX   XX   XX   XXXXXX');
      WRITELN('XX   XX   XX         XX    XXX XXX     XX');
      WRITELN('XX   XX   XXXXXXX    XX    XX X XX     XX');
      WRITELN('XX   XX        XX    XX    XX   XX     XX');
      WRITELN('XXXXXX    XXXXXXX   XXXX   XX   XX     XX');
      WRITELN;
      WRITELN('             Version  15.01.84');
      WRITELN;
      WRITELN;
      WRITELN('Denne version af DSIMT er konfigureret med:');
      WRITELN;
      WRITELN('    Slet skærm sekvens: ',STROUT(DEF.CLRSKM));
      WRITELN('    Vært pause sekvens: ',STROUT(DEF.PAUSE));
      WRITELN('    Slut trmis sekvens: ',STROUT(DEF.SLUTTR));
      WRITELN('    Online/lokal skift: ',STROUT(DEF.SKIFT));
      WRITELN('    Bufferindhold-type: ',T1ÆDEF.BFTYPEÅ);
      WRITELN('    Transmissions-type: ',T2ÆDEF.TRTYPEÅ);
      WRITELN('    Transmissions-chck: ',T3ÆDEF.TRANCHÅ);
      WRITELN('    Transmissions-rate: ',DEF.BURATE);
      WRITELN('    Ekstra LF efter CR: ',JN(DEF.ADDLF));
      WRITELN;
      WRITELN;
   END;
   IF FUN=3 THEN
   BEGIN
      WRITELN;
      WRITELN('  Svar J eller N til rettelse.');
      WRITELN('  BEMÆRK: Det er ikke muligt at editere indtastede sekvenser.');
      WRITELN('          Er der fejl, så ret en gang mere.');
      WRITELN('  Afslut indtastede sekvenser med <ESC><ESC>');
      WRITELN;
      FOR I:=1 TO 9 DO
      BEGIN
         CASE I OF
            1: WRITE('  Ret "Slet skærm sekvens" ? (J/N): ');
            2: WRITE('  Ret "Vært pause sekvens" ? (J/N): ');
            3: WRITE('  Ret "Slut trmit sekvens" ? (J/N): ');
            4: WRITE('  Ret "Online/lokal skift" ? (J/N): ');
            5: WRITE('  Ret "Bufferindhold-type" ? (J/N): ');
            6: WRITE('  Ret "Transmissions-type" ? (J/N): ');
            7: WRITE('  Ret "Transmissions-chck" ? (J/N): ');
            8: WRITE('  Byt "Transmissions-rate" ? (J/N): ');
            9: WRITE('  Byt "Ekstra LF efter CR" ? (J/N): ');
         END;
         REPEAT UNTIL GETCON(CH) AND (CH IN Æ'J','N'Å);
         WRITE(CH);
         IF CH='J' THEN
         BEGIN
            CASE I OF
               1: INSEK(DEF.CLRSKM);
               2: INSEK(DEF.PAUSE);
               3: INSEK(DEF.SLUTTR);
               4: BEGIN
                     INSEK(DEF.SKIFT);
                     IF LEN(DEF.SKIFT)>1 THEN DEF.SKIFTÆ0Å:=CHR(1) ELSE
                     IF LEN(DEF.SKIFT)<1 THEN DEF.SKIFT:=CHR(27);
                  END;
               5: BEGIN
                     FOR J:=0 TO 5 DO
                     BEGIN
                        WRITELN;
                        WRITE(SUCC(J):4,': "',T1ÆJÅ,'"');
                     END;
                     WRITE('   Ny: ');
                     REPEAT UNTIL GETCON(CH) AND (CH IN Æ'1'..'6'Å);
                     WRITE(CH);
                     DEF.BFTYPE:=ORD(CH)-ORD('1');
                  END;
               6: BEGIN
                     FOR J:=0 TO 7 DO
                     BEGIN
                        WRITELN;
                        WRITE(SUCC(J):4,': "',T2ÆJÅ,'"');
                     END;
                     WRITE('   Ny: ');
                     REPEAT UNTIL GETCON(CH) AND (CH IN Æ'1'..'8'Å);
                     WRITE(CH);
                     DEF.TRTYPE:=ORD(CH)-ORD('1');
                  END;
               7: BEGIN
                     FOR J:=0 TO 2 DO
                     BEGIN
                        WRITELN;
                        WRITE(SUCC(J):4,': "',T3ÆJÅ,'"');
                     END;
                     WRITE('   Ny: ');
                     REPEAT UNTIL GETCON(CH) AND (CH IN Æ'1'..'3'Å);
                     WRITE(CH);
                     DEF.TRANCH:=ORD(CH)-ORD('1');
                  END;
               8: IF DEF.BURATE=1200 THEN 
                     DEF.BURATE:=300 ELSE DEF.BURATE:=1200;  
               9: DEF.ADDLF :=NOT DEF.ADDLF;
            END;
         END;
         WRITELN;
      END;
      WRITELN;
      WRITE('  Skal de nye parametre gemmes i "DSIMT.DAT" ? (J/N): ');
      REPEAT UNTIL GETCON(CH) AND (CH IN Æ'J','N'Å);
      WRITELN(CH);
      IF CH='J' THEN
      BEGIN
         ASSIGN(FIL,'DSIMT.DAT');
         REWRITE(FIL);
         BLOCKWRITE(FIL,DEF.CLRSKM,1);
         IF IORES<>0 THEN WRITELN('  I/O FEJL !!');
         CLOSE(FIL);
      END;
   END;
END;
   «eof»