|
|
DataMuseum.dkPresents historical artifacts from the history of: Q1 computer |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Q1 computer Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 11613 (0x2d5d)
Types: Q1_Text, reclen=79
Notes: q1file
Names: »V11«
└─⟦256585323⟧ Bits:30008759 50001598
└─⟦this⟧ »V11«
└─⟦81d2ef3a9⟧ Bits:30008755 50001593
└─⟦this⟧ »V11«
/* V1 LÄGER UPP OCH ÄNDRAR OP-TILLTRÄDE TILL RUTINERNA
V 1:0
RG JÅ 780818 */
DCL 1 KSTR,
2 GEN CHAR(4),
2 TVEKTOR(12) BINARY,
2 ANM CHAR(32);
/* 60 BYTES */
DCL P POINTER,
D BASED(P) CHAR(6),
PP POINTER,
1 STR BASED(PP),
2 X CHAR(2),
2 Y CHAR(2),
DATUM CHAR(6),
TAB(12) CHAR(12),
T3 CHAR(3),
T4 CHAR(4),
T12 CHAR(12),
T32 CHAR(32),
SVAR CHAR(1),
FLAGG BINARY,
KFIL FILE;
TABGEN:PROC;
DO I=1 TO 12;
K=1;
DO J=1 TO 12;
IF (TVEKTOR(I) & K) = K THEN SUBSTR(TAB(I),J,1)='1';
ELSE SUBSTR(TAB(I),J,1)='0';
K=K*2;
END;
END;
RETURN;
END;
VECKGEN:PROC;
DO I=1 TO 12;
K=1;
L=0;
DO J=1 TO 12;
IF SUBSTR(TAB(I),J,1)='1' THEN L=L+K;
K=K*2;
END;
TVEKTOR(I)=L;
END;
RETURN;
END;
GO TO L0;
S1: PUT FILE(D) SKIP EDIT('OPERATÖRSNUMMER:')(A(44))(T3)(A(3))
('OPERATÖRSKOD:')(A(14));
CALL TYPIST(GEN,4);
CALL TYPIST('┣10┫',1);
CALL CORED(0);
GET SKIP LIST(T4);
IF T4¬=GEN THEN DO;
GEN=T4;
FLAGG=1;
END;
PUT FILE(D) SKIP EDIT('OPERATÖRSNUMMER:')(A(44))(T3)(A(3));
GO TO L2;
S2: DO I=1 TO 12;
PUT FILE(D) SKIP EDIT('OPERATÖRSNUMMER:')(A(44))(T3)(A(3))
('TILLTRÄDE TILL HUVUDRUTIN NUMMER')(A(43))(I)(A(4))
('UNDERRUTIN NR 1 3 5 7 9111')(A(64))('2 4 6 8 012')(A(46));
CALL TYPIST(TAB(I),12);
CALL TYPIST('┣10┫',1);
CALL CORED(0);
GET SKIP LIST(T12);
IF T12¬=TAB(I) THEN DO;
TAB(I)=T12;
FLAGG=1;
END;
END;
PUT FILE(D) SKIP EDIT('OPERATÖRSNUMMER:')(A(44))(T3)(A(3));
GO TO L2;
S3: PUT FILE(D) SKIP EDIT('OPERATÖRSNUMMER:')(A(44))(T3)(A(4))
('ANMÄRKNING:')(A(15));
CALL TYPIST(ANM,32);
CALL TYPIST('┣10┫',1);
CALL CORED(0);
GET SKIP LIST(T32);
IF T32¬=ANM THEN DO;
ANM=T32;
FLAGG=1;
END;
PUT FILE(D) SKIP EDIT('OPERATÖRSNUMMER:')(A(44))(T3)(A(3));
GO TO L2;
S4: PUT FILE(D) SKIP EDIT('OPERATÖRSNUMMER:')(A(44));
IF FLAGG=1 THEN DO;
CALL VECKGEN;
REWRITE FILE(KFIL) FROM(KSTR);
END;
GO TO L1;
/* H Ä R B Ö R J A R H U V U D P R O G R A M E T */
L0: UNSPEC(P)=16570;
UNSPEC(PP)=16616;
CALL DATCHECK(DATUM);
IF DATUM='0 ' THEN GO TO UT;
D='0';
PUT FILE(D) SKIP EDIT('OPERATÖRSNUMMER:')(A(44));
OPEN KFIL;
L1: GET SKIP LIST(T3);
PUT FILE(D) EDIT(T3)(A(3));
I=T3;
IF I<1 ö I>100 THEN GO TO UT;
UNSPEC(KFIL)=I;
READ FILE(KFIL) INTO(KSTR);
CALL TABGEN;
FLAGG=0;
L2: PUT FILE(D) EDIT('VAD SKALL ÄNDRAS')(A(47))('1 = OPERATÖRSKOD')(A(47))
('2 = TILLTRÄDE')(A(47))
('3 = ANMÄRKNING')(A(47))
('N = ANNAN OPERATÖR')(A(47))
('S = AVSLUTNING AV RUTINEN')(A(47));
GET SKIP LIST(SVAR);
IF SVAR='1' THEN GO TO S1;
IF SVAR='2' THEN GO TO S2;
IF SVAR='3' THEN GO TO S3;
IF SVAR='N' THEN GO TO S4;
UT: IF FLAGG=1 THEN DO;
CALL VECKGEN;
REWRITE FILE(KFIL) FROM(KSTR);
END;
D=DATUM;
CALL PLOAD('Q ');
END;