File TURING.PC

Directory of image this file is from
This file as a plain text file

[]
[       T U R I N G M A S C H I N E           ]
[]
BEGINN
WIEDERHOLE
 @SPEICHERAUTOMAT;
 SCHREIB "WIEVIELE ZEICHEN HAT DAS ZU BEARBEITENDE ALPHABET "!;
 LIES ALPHABETLAENGE;ALAENGE:=VAL(ALPHABETLAENGE);
 WENN NICHT(ALAENGE TEILT PROLAENGE)
 DANN FUEHRE SCHREIB"DIE ANZAHL DER PROGRAMMZEILEN IST NICHT KORREKT !";
             SCHREIB"DU MUSST DAS PROGRAMM LEIDER NEU EINGEBEN !;
      AUS
BIS ALAENGE TEILT PROLAENGE;
 @ABSPEICHERN;
 @ARBEITSBANDEINGABE;
[]
 ZW:=1;
 POS:=1;
 WIEDERHOLE [ DIE <ZW>-TE ZELLE WIRD ABGEARBEITET ]
[]
 [ AUSGABE DES ARBEITSBANDES VOR JEDEM ABARBEITEN EINER ]
 [ ZELLE MIT MARKIERUNG DES ARBEITSFELDES ]
 SCHREIB ABAND;
 ZAEHLER:=1;
 SOLANGE ZAEHLER<POS
 FUEHRE SCHREIB" "!;
        ZAEHLER:=ZAEHLER+1
 AUS;
 SCHREIB"^";
[]
 FUER ZAEHLER:=1+(ZW-1)*ALAENGE BIS ZW*ALAENGE [=INHALT DES BR ]
 FUEHRE
    WENN ABAND(POS,POS)=ZEILE(ZAEHLER,2,2)
    DANN FUEHRE
          ZW:=VAL(ZEILE(ZAEHLER,5,5));
          WENN POS=1
          DANN
           FUEHRE ABAND:=ZEILE(ZAEHLER,3,3)&ABAND(2,72);
            WENN ZEILE(ZAEHLER,4,4)="L"
            DANN FUEHRE
                   SCHREIB"UNZULAESSIGE LINKSVERSCHIEBUNG !"!;
                   SCHREIB"PROGRAMM BEENDET !";
                   ZW:=0
                AUS
           AUS
          SONST FUEHRE
             ABAND:=ABAND(1,POS-1)&ZEILE(ZAEHLER,3,3)&ABAND(POS+1,72);
              FALLS ZEILE(ZAEHLER,4,4) GLEICH
              "L":POS:=POS-1;
              "R":POS:=POS+1;
              "N":POS:=POS
              ENDE
            AUS
         AUS
 AUS
 BIS ZW=0 ODER POS>72;
 WENN POS>72
 DANN SCHREIB"UNZULAESSIGE RECHTSVERSCHIEBUNG !PROGRAMM BEENDET !";
 SCHREIB;SCHREIB ABAND
ENDE;
[]
SPEICHERAUTOMAT:BEGINN
SCHREIB"IST DAS ZU VERARBEITENDE PROGRAMM NEU ODER ALT "!;
LIES OLDNEW;
SOLANGE OLDNEW<>"NEU" ODER OLDNEW<>"ALT"
FUEHRE SCHREIB"DIESE EINGABE WAR FALSCH.GIB BITTE >ALT<";
       SCHREIB"ODER >NEU< EIN !";
       LIES OLDNEW
 AUS;
SCHREIB"JETZT GIB BITTE EIN--FILE:PROGRAMMNAME.EXTENSION ";
LIES PROANGABEN;
WENN OLDNEW="NEU"
DANN FUEHRE SCHREIB;
      SCHREIB"GIB MIR JETZT DIE PROGRAMMZEILEN HINTEREINANDER EIN.";
      SCHREIB"EINE LEERZEILE BEENDET DIE EINGABE !";
      PROLAENGE:=0;
      WIEDERHOLE PROLAENGE:=PROLAENGE+1;
                 LIES ZEILE(PROLAENGE)
      BIS ZEILE(PROLAENGE="";
      PROLAENGE:=PROLAENGE-1
     AUS
SONST FUEHRE
       OEFFNE#1:PROANGABEN;
      PROLAENGE:=1;
      SOLANGE NICHT ED#1
      FUEHRE LIES#1:Z$;
             ZEILE (PROLAENGE):=Z$;
             PROLAENGE:=PROLAENGE+1
      AUS;
      PROLAENGE:=PROLAENGE-1
     AUS
[;WENN PROANGABEN(12,14)=".MK"
 DANN @MARKOV-UEBERSETZER ]
ENDE;
[]
ABSPEICHERN:BEGINN
OEFFNEV#1:PROANGABEN;
VON I:=1 BIS PROLAENGE
MACH SCHREIB#1:ZEILE(I);
SCHLIESS#1
ENDE;
[]
ARBEITSBANDEINGABE:BEGINN
WENN ALAENGE=2
DANN FUEHRE
      SCHREIB"GIB MIR BITTE EIN,WIE DAS ARBEITSBAND AUSSEHEN";
      SCHREIB"SOLL (Z.B.:15*I,O,32*I)!";
      WIEDERHOLE LIES BASTRUK;
        PUNKT:=1;Q:=1;
        WIEDERHOLE    [ * WIRD IN BASTRUK GESUCHT ]
          SOLANGE BASTRUK(PUNKT,PUNKT)<>"*"
          MACH PUNKT:=PUNKT+1;
          MAL(Q):=PUNKT;
          Q:=Q+1;PUNKT:=PUNKT+1
        BIS Q=3;
        SUMME:=VAL(BASTRUK(1,MAL(1)-1)+VAL(BASTRUK(MAL(1)+5,MAL(2)-1)+1;
        WENN SUMME>72
        DANN FUEHRE SCHREIB"MEHR ALS 72 ZEICHEN KRIEG ICH NICHT AUF'S";
                    SCHREIB"ARBEITSBAND !GIB BITTE NEU EIN !";
                    CONTROLLETTI:="WRONG"
             AUS
        SONST CONTROLLETTI:="RIGHT"
      BIS CONTROLLETTI="RIGHT";
      []
      A:=1;E:=VAL(BASTRUK(1,MAL(1)-1));
      Q:=1;
      WIEDERHOLE
        FUER I:=A BIS E
        MACH ABAND:=ABAND&BASTRUK(MAL(Q)+1,MAL(Q)+1);
        ABAND:=ABAND&BASTRUK(MAL(1)+3,MAL(1)+3);
        A:=2+E;E:=SUMME;Q:=Q+1
      BIS Q=3
     AUS
SONST FUEHRE SCHREIB"GIB MIR BITTE DAS ARBEITSBAND EIN(NICHT MEHR";
             SCHREIB"ALS 72 ZEICHEN )!;
             LIES ABAND
      AUS
ENDE



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search