|
|
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: 12561 (0x3111)
Types: Q1_Text, reclen=79
Notes: q1file
Names: »V131«
└─⟦256585323⟧ Bits:30008759 50001598
└─⟦this⟧ »V131«
/* V13 KOPIERAR ETT ANTAL FILER FRÅN DRIVE 2 TILL DRIV 4
PRG JÅ 781004 */
DCL 1 FSTR1,
2 INFIL FILE;
DCL 1 FSTR2,
2 UTFIL FILE;
DCL 1 KATALOG_STR,
2 KATALOG FILE;
DCL 1 STR,
2 XN CHAR(24);
DCL 1 INDEX_STR,
2 TAL BINARY,
2 INDEX_XN CHAR(8),
2 REC_ANT BINARY,
2 LENGD BINARY,
2 DIV BINARY,
2 F_TRACK BINARY,
2 L_TRACK BINARY,
2 UNUSED BINARY,
2 REC#_B BINARY;
DCL 1 K_STR,
2 L_VERNR FIXED(5),
2 H_VERNR FIXED(5),
2 DATUM CHAR(6);
/* 14 BYTES */
DCL 1 TRANS_STR,
2 KONTONR FIXED(11),
2 VERNR FIXED(5),
2 REST CHAR(25);
DCL 1 AREA,
2 CH(255) CHAR(100);
DCL SVAR CHAR(25),
T1 CHAR(1),
T8 CHAR(8),
MAX BINARY,
SP BINARY,
VERSION CHAR(47) INIT(' V13 Version 1.2 790323'),
TEXT CHAR(52) INIT('DISK A 4 7 XXXXXX_Y 34 COPY TRANSFIL XXXXXX_Y 2 4 V7');
MOVEBUFF:PROC;
FSTR1=STR;
FSTR2=STR;
CALL CHOOSE(2);
OPEN INFIL;
CALL CHOOSE(4);
OPEN UTFIL;
CALL SEOF(INFIL);
I=UNSPEC(INFIL);
IF I=0 THEN RETURN;
UNSPEC(INFIL)=0;
J=255;
B1: IF J>I THEN J=I;
I=I-J;
CALL RD(INFIL,AREA,J,K);
IF K¬=0 THEN PUT SKIP LIST('LÄSFEL I',XN,K);
CALL WR(UTFIL,AREA,J,K);
IF K¬=0 THEN PUT SKIP LIST('SKRIVFEL I',XN,K);
IF I>0 THEN GO TO B1;
CLOSE UTFIL;
RETURN;
END;
/* H Ä R B Ö R J A R H U V U D P R O G R A M M E T */
START: CALL LOAD('┣0d┫',1);
GET SKIP LIST(SVAR);
PUT FILE(D) SKIP EDIT(VERSION)(A(94));
CALL DATCHECK(DATUM);
XN=' KONTOP ';
PUT FILE(D) EDIT(XN)(A(47));
CALL MOVEBUFF;
XN=' UKONTOP ';
PUT FILE(D) SKIP EDIT(VERSION)(A(94))(XN)(A(47));
CALL MOVEBUFF;
XN=' KSKONTOP';
PUT FILE(D) SKIP EDIT(VERSION)(A(94))(XN)(A(47));
CALL MOVEBUFF;
XN=' TRANSFIL';
PUT FILE(D) SKIP EDIT(VERSION)(A(94))(XN)(A(47));
FSTR1=STR;
OPEN INFIL;
CLOSE INFIL;
CALL CHOOSE(0);
OPEN INFIL;
ON ERROR GO TO L1;
READ FILE(INFIL) INTO(TRANS_STR);
L_VERNR=VERNR;
L1: CALL SEOF(INFIL);
MAX=UNSPEC(INFIL);
UNSPEC(INFIL)=MAX-1;
ON ERROR GO TO L2;
READ FILE(INFIL) INTO(TRANS_STR);
H_VERNR=VERNR;
L2: SP=(MAX+147)/148;
CALL CHOOSE(4);
I1: PUT FILE(D) SKIP EDIT(VERSION)(A(94))(' KATALOG')(A(47));
ON ERROR GO TO L3;
OPEN KATALOG;
INDEX_STR=KATALOG_STR;
IF F_TRACK=2 THEN GO TO L4;
L3: PUT FILE(D) SKIP EDIT(VERSION)(A(96))
('FEL DISKET I DRIVE# 4')(A(47))('SÄTT IN ARKIVDISKET')(A(47));
CALL OUTPUT(1,6);
GET SKIP LIST('');
GO TO I1;
L4: XN=' INDEX ';
PUT FILE(D) SKIP EDIT(VERSION)(A(94))(XN)(A(47));
FSTR1=STR;
OPEN INFIL;
INDEX_STR=FSTR1;
UNSPEC(INFIL)=REC_ANT-1;
READ FILE(INFIL) INTO(INDEX_STR);
IF 76 < L_TRACK+SP THEN DO;
PUT FILE(D) SKIP EDIT(VERSION)(A(96))('ARKIVDISKETTEN ÄR FULL')
(A(47))('BYT DISKETT')(A(47));
CALL OUTPUT(1,6);
GET SKIP LIST('');
GO TO I1;
END;
CALL SEOF(KATALOG);
WRITE FILE(KATALOG) FROM(K_STR);
CLOSE KATALOG;
T1='1';
UNSPEC(INFIL)=0;
ON ERROR GO TO I2;
READ KEY(DATUM) FILE(INFIL) INTO(INDEX_STR) KEYTO(INDEX_XN);
L5: T1=SUBSTR(INDEX_XN,8,1)+1;
T8=DATUM CAT '_' CAT T1;
ON ERROR GO TO I3;
READ KEY(T8) FILE(INFIL) INTO(INDEX_STR) KEYTO(INDEX_XN);
GO TO L5;
I2: T8=DATUM CAT '_' CAT T1;
I3: CALL CHOOSE(0);
T1=SP;
IF SP>0 THEN SUBSTR(TEXT,10,1)=T1;
SUBSTR(TEXT,12,8)=T8;
SUBSTR(TEXT,38,8)=T8;
CALL LOAD(TEXT,52);
END;