|
|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen RC3600/RC7000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen RC3600/RC7000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 19456 (0x4c00)
Types: TextFile
Notes: RCSL-43-GL-, RCSL-43-GL-8980, RCSL-43-GL-8981, RCSL-43-GL-8982
Names: »S6305«
└─⟦a59f0a452⟧ Bits:30000472 DOMUS disk image
└─⟦this⟧ »/S6305«
! RCSL: 43-GL8981
AUTHOR: PBP/ME
EDITED: 79.04.26
83.26.02
RC36-06305.01
IBM 3740 CATALOG HANDLER.
KEYWORDS: MUSIL, FD, LISTING.
ABSTRACT: THIS PROGRAM GENERATES THE DISKETTE TO BE USED FOR
IBM 3740 PURPUSE BY INITATING THE TRACK ZERO ON THE
DISKETTE SO IT FITS FOR IBM 3740 DISKETTE FORMAT.
SUPPORTS SINGLE OR DOUBBLE SIDED DISKETTES
WITH 128 OR 256 BYTES PR SECTOR.
LÆSER GAMMEL HEADER OG GEMMER EOD-INFORMATION.
SLETTER HEADER,SKRIVER NY VOL FORTLØBENDE,EFTER
INDTASTNING AF FØRSTE NR.
SLETTER GAMMEL DATA PÅ DISKETTEN (FRA 1- EOD).
ASCII SOURCE: RCSL: 43-GL8980
REL. BINARY: RCSL: 43-GL8982
«ff»
RC36-00305 PAGE 01
ABSTRACT: THIS PROGRAM GENERATES THE DISKETTE TO BE USED FOR
IBM 3740 PURPUSE BY INITIATING THE TRACK ZERO ON THE
DISKETTE SO IT FITS FOR IBM 3740 FORMAT.
SUPPORTS SINGLE OR DOUBBLE SIDED DISKETTES WITH
128 OR 256 BYTES PR SECTOR.
DATE: 79.04.26 / 83.02.26
SIZE: 3178 BYTES. INCLUDING ONE 128 BYTE INPUT/OUTPUT BUFFER.
COMMANDS:
<VOLID> VOLUME IDENTIFIKATION. FROM
ONE TO SIX CHARACTERS. WILL BE PLACED
ON SECTOR 7 ON POSITION 5 TO 10. IF NL
IS PRESSED NEXT NUMBER WILL BE USED AS VOL.
IBMIRD WILL BE USED AS VOL1 LABEL IF YOU WRITE
IBMIRD. IF YOU WRITE A NUMBER THIS NUMBER WILLBE USED.
STOP WILL SET PROGRAM NEUTRAL
«ff»
RC36-00305 PAGE 02
OUTPUT MESSAGES:
CATALOG UPDATED CATALOG IS UPDATED.
INVALID COMMAND COMMAND IS NOT ALLOWED.
TYPE VOLID. MAX 6 CHARACTERS.
TYPE THE WANTED VOLUME ID.
ERMAP NOT FOUND CHECK READING OF ERMAP UNSUCCESFULL.
STANDARD IBMLABEL: IBMIRD IS USED AS VOL1.
IBMIRD IS USED AS VOL1 LABEL ON DISKETTE.
NO VOLUME LABEL CHECK READING OF VOL1 UNSUCCESFULL.
PARITY ERRORS FOUND IN CATALOG
DURING CATALOG UPDATE AN PARITY ERROR(S) WAS
FOUND. ERRONOMOUS.
RECORDLENGTH IS NOT 128 NEITHER 256
THE DISKETTE HAS AN UNKNOWN RECORDLENGTH.
MOUNT DISKETTE NR
MOUNT NEW DISKETTE
FOR MEGET DATA PÅ DENNE DISKETTE
SLET DENNE DISKETTE MED PROG FORMA
MONTER EN ANDEN DISKETTE
MOUNT NEW DISKETTE
«ff»
RC36-00305 PAGE 03
DISKETTE ERRORS:
DISCONNECTED: DEVICE NOT CONNECTED.
NOT READY UNIT IS NOT MOUNTED.
WRITE PROTECTION PROTECTION LAMP IS LITTED.
ILLEGAL DEVICE RESERVED BY OTHER PROGRAM.
BLOCK ERROR BLOCK TRANSFERRED IS DIFFERENT FROM
128 BYTES.
PARITY ERROR PARITY ERROR DETECTED ON SURFACE.
END MEDIUM END OF MEDIUM REACHED.
POSITION ERROR WANTED POSITION NOT FOUND.
DRIVER MISSING DRIVER IS NOT IN CORE.
TIME OUT SURFACE ADRESS NOT FOUND WITHIN GIVEN TIME.
SPECIEL REQUIREMENTS:
CODEPROCEDURE DELAY RCSL: 43-GLXXXX.
!«ff»
! RC36-00305 PAGE 04 !
CONST
MOUNTNEXT= "<10>MOUNT DISKETTE NR ",
NEXTLIN= "<13><0>",
STARTHELP= "<10>TYPE VOLID. MAX 6 CHARACTERS<10> ",
NOERMAP= "<10>ERMAP NOT FOUND ",
NOVOL1= "<10>NO VOLUME LABEL ",
IBMVOLID= "<10>STANDARD IBMLABEL: IBMIRD IS USED AS VOL1",
LENGTHERROR= "<10>RECORDLENGHT IS NOT 128 NEITHER 256",
PARERRORS= "<10>PARITY ERRORS FOUND IN CATALOG ",
CATUPDATED= "<10>CATALOG UPDATED ",
NOTALLOWED= "<10>INVALID COMMAND ",
SPACES= " ",
ANOTHER= "<10>FOR MEGET DATA PAA DENNE DISKETTE",
NEXTDIS= "<10>MONTER EN ANDEN DISKETTE ",
C= "C",
IBMIRD= "IBMIRD",
STOP= "STOP",
ERMAP= "ERMAP",
VOL1= "VOL1",
HDR1= "HDR1",
HDRSTART= 8,
REPFACTOR= 25,
PVOLLABEL= 7,
PERMAP= 5,
WRITESEQ= 3,
WRITEREAD= 11,
READNONSKIP= 17,
FDLENGTH= 128,
STARTDATA= 27,
CHAR= 48,
MASKB5= 8'173776,
NOTB6= 8'176777,
B5B6= 8'003000,
B10= 8'40,
B11= 8'000020,
ET= 49,
TO= 50,
B= 66,
D= 68,
E= 69,
W= 87,
D74001= "74001",
D00256= "00256",
D74015= "74015",
D74115= "74115",
D74126= "74126",
DISKSTATUS= "<10>DISKETTE STATUS: <0>",
ERTEXTS= "
DISCONNECTED <0>
NOT READY <0>
<0>
<0>
<0>
WRITE PROTECTED <0>
ILLEGAL <0>
END OF FILE <0>
BLOCK ERROR <0>
<0>
PARITY ERROR <0>
END MEDIUM <0>
POSITION ERROR <0>
DRIVER MISSING <0>
TIMEOUT <0>
<0>
",
«ff»
! RC36-00305 PAGE 05 !
! 128 BYTE PR. SECTOR SECTOR NO. 8 SIDE 0 !
HEADER= "
HDR1
<32><32><32><32><32><32><32><32><32>
<32><32><32><32><32><32><32><32><32>
<32><32>080
<32>
01001
<32>
73026
<32>
<32><32><32><32><32><32><32><32><32><32>
<32><32><32><32><32><32><32><32><32><32>
<32><32><32><32><32><32><32><32><32><32>
<32><32><32><32>
01001
<32><0><0><0><0><0><0><0><0><0>
<0><0><0><0><0><0><0><0><0><0>
<0><0><0><0><0><0><0><0><0><0>
<0><0><0><0><0><0><0><0><0><0>
<0><0><0><0><0><0><0><0><0>
",
BINNUL= "<0><0><0><0><0><0><0><0><0><0>
<0><0><0><0><0><0><0><0><0><0>
<0><0><0><0><0><0><0><0><0><0>
<0><0><0><0><0><0>>0><0><0><0>
<0><0><0><0><0><0><0><0><0><0>
<0><0><0><0><0><0><0><0><0><0>
<0><0><0><0><0><0><0><0><0><0>
<0><0><0><0><0><0><0><0><0><0>
<0><0><0><0><0><0><0><0><0><0>
<0><0><0><0><0><0><0><0><0><0>
<0><0><0><0><0><0><0><0><0><0>
<0><0><0><0><0><0><0><0><0><0>
<0><0><0><0><0><0><0><0>
",
«ff»
! RC36-00305 PAGE 06 !
! EBCDIC => ASCII !
EBCASC = #
! 0 1 2 3 4 5 6 7 !
! 0 ! 0 31 31 31 31 31 31 31
! 8 ! 31 31 31 31 31 31 31 31
! 16 ! 31 31 31 31 31 31 31 31
! 24 ! 31 31 31 31 31 31 31 31
! 32 ! 31 31 31 31 31 31 31 31
! 40 ! 31 31 31 31 31 31 31 31
! 48 ! 31 31 31 31 31 31 31 31
! 56 ! 31 31 31 31 31 31 31 31
! 64 ! 32 31 31 31 31 31 31 31
! 72 ! 31 31 91 46 60 40 43 94
! 80 ! 38 31 31 31 31 31 31 31
! 88 ! 31 31 33 36 42 41 59 92
! 96 ! 45 47 31 31 31 31 31 31
! 104 ! 31 31 31 44 37 95 62 63
! 112 ! 31 31 31 31 31 31 31 31
! 120 ! 31 31 58 35 64 39 61 34
! 128 ! 31 65 66 67 68 69 70 71
! 136 ! 72 73 31 31 31 31 31 31
! 144 ! 31 74 75 76 77 78 79 80
! 152 ! 81 82 31 31 31 31 31 31
! 160 ! 31 31 83 84 85 86 87 88
! 168 ! 89 90 31 31 31 31 31 31
! 176 ! 31 31 31 31 31 31 31 31
! 184 ! 31 31 31 31 31 31 31 31
! 192 ! 31 65 66 67 68 69 70 71
! 200 ! 72 73 31 31 31 31 31 31
! 208 ! 31 74 75 76 77 78 79 80
! 216 ! 81 82 31 31 31 31 31 31
! 224 ! 93 31 83 84 85 86 87 88
! 232 ! 89 90 31 31 31 31 31 31
! 240 ! 48 49 50 51 52 53 54 55
! 248 ! 56 57 94 31 31 31 31 31
#, ! END KEYOUTTAB !
«ff»
! RC36-00305 PAGE 07 !
! ASCII NO PARITY TO EBCDIC !
ASCEBC= #
000 000 ! 000 NUL,SOH !
002 003 ! 002 STX,ETX !
055 045 ! 004 EOT,ENQ !
046 047 ! 006 ACK,BEL !
022 005 ! 008 BS,HT !
037 011 ! 010 LF,VT !
012 013 ! 012 FF,CR !
014 015 ! 014 SO,SI !
016 017 ! 016 DLE,DC1 !
018 019 ! 018 DC2,TM !
060 061 ! 020 DC4,NAK !
050 038 ! 022 SYN,ETB !
024 025 ! 024 CAN,EM !
063 039 ! 026 SUB,ESC !
028 029 ! 028 IFS,IGS !
030 031 ! 030 IRS,IUS !
064 090 ! 032 SP,EXCLAM !
127 123 ! 034 ",# !
091 108 ! 036 $,% !
080 125 ! 038 &,' !
077 093 ! 040 (,) !
092 078 ! 042 *,+ !
107 096 ! 044 ,,- !
075 097 ! 046 .,/ !
240 241 ! 048 0,1 !
242 243 ! 050 2,3 !
244 245 ! 052 4,5 !
246 247 ! 054 6,7 !
248 249 ! 056 8,9 !
122 094 ! 058 :,; !
076 126 ! 060 <,= !
110 111 ! 062 >,? !
124 193 ! 064 @,A !
194 195 ! 066 B,C !
196 197 ! 068 D,E !
198 199 ! 070 F,G !
200 201 ! 072 H,I !
209 210 ! 074 J,K !
211 212 ! 076 L,M !
213 214 ! 078 N,O !
215 216 ! 080 P,Q !
217 226 ! 082 R,S !
227 228 ! 084 T,U !
229 230 ! 086 V,W !
231 232 ! 088 X,Y !
233 063 ! 090 Z, !
063 063 ! 092 , !
063 063 ! 094 , !
«ff»
! RC36-00305 PAGE 08 !
063 129 ! 096 ,A SMALL !
130 131 ! 098 B,C !
132 133 ! 100 D,E !
134 135 ! 102 F,G !
136 137 ! 104 H,I !
145 146 ! 106 J,K !
147 148 ! 108 L,M !
149 150 ! 110 N,O !
151 152 ! 112 P,Q !
153 162 ! 114 R,S !
163 164 ! 116 T,U !
165 166 ! 118 V,W !
167 168 ! 120 X,Y !
169 063 ! 122 Z, !
063 063 ! 124 , !
063 007 ! 126 ,DEL !
#; ! END KEYINTABLE !
«ff»
! RC36-00305 PAGE 09 !
VAR
OPTEXT: STRING(80);
OPSTRING: STRING(80);
DELAYSTRING: STRING(FDLENGTH);
OPSTR: STRING(6);
OPLENGTH: INTEGER;
OUTNO: INTEGER;
LENGTH: INTEGER;
COUNT: INTEGER;
HELPVAR: INTEGER;
ENDMEDIUM: INTEGER;
SECTORLENGTH: INTEGER;
SIDES: INTEGER;
MAXDSN: INTEGER;
PAR: INTEGER;
MESS1: INTEGER;
MESS2: INTEGER;
EOD: INTEGER;
GEMEOD: INTEGER;
LNG: INTEGER;
A1: STRING(2);
NR: STRING(6);
OPNEXT: STRING(80);
OPREST: STRING(10);
FD: FILE
"FD0",14,4,FDLENGTH,U;
GIVEUP FDERROR, 8'163776
OF STRING(1);
«ff»
! RC36-00305 PAGE 10 !
PROCEDURE OPANSWER;
BEGIN
OPWAIT(OPLENGTH);
OPTEXT:=OPSTRING;
OPIN(OPSTRING);
END;
PROCEDURE OPERATOR;
BEGIN
IF OUTNO > 0 THEN
BEGIN
NR:= SPACES;
OUTNO:= OUTNO+1;
BINDEC(OUTNO,NR);
MOVE(NR,2,OPNEXT,3,3);
OPMESS(MOUNTNEXT); OPMESS(OPNEXT);
OPMESS(NEXTLIN);
OPANSWER;
IF OPLENGTH-1 <> 0 THEN
BEGIN
OUTNO:= 0;
NR:= SPACES;
IF OPTEXT = IBMIRD THEN
BEGIN
OPLENGTH:= 1;
GOTO 60;
END;
IF OPTEXT = STOP THEN GOTO 55;
GOTO 50;
END;
OPLENGTH:= 7;
OPTEXT:= OPNEXT;
GOTO 60;
END;
OPANSWER;
50: MOVE (OPTEXT,3,NR,0,3);
DECBIN(NR,OUTNO);
OPNEXT:= SPACES;
MOVE(OPTEXT,0,OPNEXT,0,6);
IF OPTEXT = STOP THEN
BEGIN
55:
FD.ZMODE:=0; GOTO 100;
END;
60:
END;
PROCEDURE FDERROR;
BEGIN
HELPVAR:=HELPVAR-1;
IF HELPVAR <= 0 THEN
BEGIN
HELPVAR:= REPFACTOR;
IF FD.Z0 AND B11 <> 0 THEN
BEGIN
ENDMEDIUM:= B11;
FD.ZREM:=1;
GOTO 5;
END;
IF FD.Z0 AND 8'040000 <> 0 THEN GOTO 3;
IF FD.Z0 = B5B6 THEN FD.Z0:=FD.Z0 AND NOTB6;
OPMESS(DISKSTATUS);
OPSTATUS(FD.Z0,ERTEXTS);
3:
FD.ZMODE:=0;
IF OUTNO > 1 THEN OUTNO:= OUTNO-1;
GOTO 100;
END;
REPEATSHARE(FD);
5:
END;
PROCEDURE CIFFERCHANGE;
BEGIN
INSERT(PAR/10+CHAR,A1,0);
INSERT(PAR-(PAR/10*10)+CHAR,A1,1);
END;
«ff»
! RC36-00305 PAGE 11 !
PROCEDURE GETBLOCK;
BEGIN
GETREC(FD,LENGTH);
CONVERT(FD^,FD^,EBCASC,FDLENGTH);
END;
PROCEDURE ASCTOEBC;
BEGIN
CONVERT(FD^,FD^,ASCEBC,FDLENGTH);
END;
PROCEDURE SENCE;
BEGIN
IF MESS2 SHIFT 10 SHIFT(-15) = 0 THEN SIDES:=1
ELSE SIDES:=2;
IF MESS2 SHIFT 11 SHIFT(-11) = 26 THEN SECTORLENGTH:=128
ELSE IF MESS2 SHIFT 11 SHIFT (-11) = 15 THEN SECTORLENGTH:=256
ELSE BEGIN
OPMESS(LENGTHERROR);
GOTO 100;
END;
IF SECTORLENGTH=256 THEN
BEGIN
MESS1:= (MESS2 SHIFT 6 SHIFT (-11) +32) SHIFT 5 + 26;
TRANSFER(FD,MESS1,-1);
WAITTRANSFER(FD);
END;
END;
PROCEDURE LENGTH256;
BEGIN
MOVE (D00256,0,DELAYSTRING,22,5);
INSERT (ET,DELAYSTRING,33);
INSERT (E,DELAYSTRING,43);
IF SIDES = 1 THEN MOVE (D74015,0,DELAYSTRING,34,5)
ELSE MOVE (D74115,0,DELAYSTRING,34,5);
END;
PROCEDURE CHANGEHEADER;
BEGIN
MOVE(SPACES,0,DELAYSTRING,1,3);
MOVE(SPACES,0,DELAYSTRING,22,5);
MOVE(SPACES,0,DELAYSTRING,28,5);
MOVE(SPACES,0,DELAYSTRING,34,5);
MOVE(SPACES,0,DELAYSTRING,74,5);
END;
PROCEDURE OLDDATA;
BEGIN
OPSTR:=SPACES;
EOD:= 1898;
GEMEOD:= 0;
SETPOSITION(FD,1,HDRSTART);
GETBLOCK;
DELAYSTRING:= FD^;
IF FD^ <> HDR1 THEN GOTO 7;
6:
MOVE(DELAYSTRING,44,OPSTR,0,1);
IF OPSTR = C THEN GOTO 7;
MOVE(DELAYSTRING,74,OPSTR,0,2);
DECBIN(OPSTR,EOD); EOD:= (EOD-1)*26;
IF EOD >= 520 THEN
BEGIN
7: OPMESS(ANOTHER); OPMESS(NEXTDIS);
OUTNO:= OUTNO - 1; FD.ZMODE:= 0;
GOTO 100;
END;
MOVE(DELAYSTRING,77,OPSTR,0,2);
DECBIN(OPSTR,LNG); EOD:= EOD+ LNG;
GETBLOCK;
DELAYSTRING:=FD^;
IF FD^ =HDR1 THEN
BEGIN
GEMEOD:= EOD+GEMEOD;
GOTO 6;
END;
IF GEMEOD <> 0 THEN EOD:= GEMEOD+EOD;
END;
«ff»
! RC36-00305 PAGE 12 !
PROCEDURE SCRATCH;
BEGIN
COUNT:=0;
REPEAT
MOVE(SPACES,0,DELAYSTRING,COUNT,8); ! 8:= NUMBER OF SPACES !
COUNT:=COUNT+8
UNTIL COUNT >= 80;
REPEAT
INSERT(0,DELAYSTRING,COUNT);
COUNT:=COUNT+1
UNTIL COUNT >= FDLENGTH;
END;
PROCEDURE UPDATE;
BEGIN
SCRATCH;
OPEN(FD,WRITEREAD);
COUNT:=0;
SETPOSITION(FD,1,1);
REPEAT
PUTREC(FD,FDLENGTH);
FD^:=DELAYSTRING;
ASCTOEBC;
COUNT:=COUNT+1
UNTIL COUNT > 8;
DELAYSTRING:=VOL1;
IF SIDES = 2 THEN INSERT(TO,DELAYSTRING,71);
IF SECTORLENGTH = 256 THEN
INSERT(ET,DELAYSTRING,75);
INSERT(W,DELAYSTRING,79);
SETPOSITION(FD,1,PVOLLABEL);
PUTREC(FD,FDLENGTH);
FD^:=DELAYSTRING;
ASCTOEBC;
SETPOSITION(FD,1,PERMAP);
SCRATCH;
DELAYSTRING:=ERMAP;
IF SECTORLENGTH = 256 THEN
BEGIN
INSERT (B,DELAYSTRING,23);
COUNT:=24;
REPEAT
INSERT (0,DELAYSTRING,COUNT);
COUNT:=COUNT+1
UNTIL COUNT >= 72;
END;
PUTREC(FD,FDLENGTH);
FD^:=DELAYSTRING;
ASCTOEBC;
WAITZONE(FD);
END;
«ff»
! RC36-00305 PAGE 13 !
! MAIN PROGRAM !
BEGIN
OUTNO:= 0;
OPNEXT:= BINNUL;
NR:= SPACES;
HELPVAR:=REPFACTOR;
SIDES:=1; SECTORLENGTH:=128;
OPIN(OPSTRING);
11: OPMESS(STARTHELP); OPERATOR;
IF OPLENGTH > 7 THEN
BEGIN
OUTNO:= 0;
OPMESS(NOTALLOWED);
GOTO 11;
END;
IF OPLENGTH-1 = 0 THEN
BEGIN
OPMESS(IBMVOLID);
OPTEXT:=IBMIRD;
OPLENGTH:=7;
END;
FD.ZMASK:=MASKB5;
OPEN(FD,READNONSKIP);
MESS2:=FD.ZFILE;
SENCE;
OLDDATA;
12: UPDATE;
OPEN(FD,READNONSKIP);
SETPOSITION(FD,1,PERMAP);
GETBLOCK;
IF FD^ <> ERMAP THEN
BEGIN
OPMESS(NOERMAP);
GOTO 100;
END;
15: SETPOSITION(FD,1,PVOLLABEL);
GETBLOCK;
DELAYSTRING:=FD^;
IF FD^ <> VOL1 THEN
BEGIN
OPMESS(NOVOL1);
GOTO 100;
END;
«ff»
! RC36-00305 PAGE 14 !
! VOLUME IDENTIFIER !
CLOSE(FD,0); OPEN(FD,WRITEREAD);
SETPOSITION(FD,1,PVOLLABEL);
PUTREC(FD,FDLENGTH);
FD^:=DELAYSTRING;
MOVE(SPACES,0,FD^,4,6);
MOVE(OPTEXT,0,FD^,4,OPLENGTH-1);
ASCTOEBC;
! HDR1 LABEL !
PUTREC(FD,FDLENGTH);
DELAYSTRING:=HEADER;
IF SECTORLENGTH = 256 THEN LENGTH256
ELSE IF SIDES = 2 THEN
BEGIN
MOVE(D74126,0,DELAYSTRING,34,5);
INSERT(E,DELAYSTRING,43);
END;
FD^:=DELAYSTRING;
ASCTOEBC;
! DDR1 LABELS !
DELAYSTRING:=HEADER;
INSERT(D,DELAYSTRING,0);
IF SECTORLENGTH = 256 THEN
BEGIN
! ALL 256 BYTES DISKETTES !
CHANGEHEADER;
GOTO 19;
END;
IF SIDES = 2 THEN
BEGIN
! 128 BYTES DOUBBLE SIDED !
CHANGEHEADER;
GOTO 19;
END;
! 128 BYTES SINGLE SIDED !
MOVE(D74001,0,DELAYSTRING,28,5);
MOVE(D74001,0,DELAYSTRING,74,5);
19: COUNT:=1;
IF SIDES = 1 THEN MAXDSN:=19
ELSE MAXDSN:=45;
REPEAT
PUTREC(FD,FDLENGTH);
FD^:=DELAYSTRING;
ASCTOEBC;
COUNT:=COUNT+1
UNTIL COUNT >= MAXDSN;
WAITZONE(FD);
IF COUNT + 8 <> FD.ZBLOCK THEN
BEGIN
OPMESS(PARERRORS);
GOTO 100;
END;
COUNT:= 1;
FD.ZMODE:= WRITESEQ;
SETPOSITION(FD,1,STARTDATA);
DELAYSTRING:= BINNUL;
REPEAT
PUTREC(FD,FDLENGTH);
FD^:= DELAYSTRING;
COUNT:= COUNT+1
UNTIL COUNT >= 4;
WAITZONE(FD);
REPEAT
PUTREC(FD,FDLENGTH);
COUNT:= COUNT+1
UNTIL COUNT>= EOD;
WAITZONE(FD);
BINDEC(COUNT,OPSTR);
OPMESS(CATUPDATED);
100:
CLOSE(FD,1);
GOTO 11;
END;
«ff»
«nul»