 PROGRAM CREATEEILOADFILE(VEBIN,BIN,INPUT);
 (**)
 TYPE
   HEX= 0..15;
   HEXWORD= PACKED ARRAY[0..14] OF HEX;
   MIXED= RECORD CASE BOOLEAN OF
     FALSE: (I: INTEGER);
     TRUE : (H: HEXWORD)
   END;
   COMMENTLINE= PACKED ARRAY[1..70] OF CHAR;
   IDENTTABLE = PACKED RECORD CASE BOOLEAN OF
     TRUE: (LIST: ARRAY[0..16B] OF INTEGER);
     FALSE
      ID, LENGTH: 0..7777B;
        FILL1: 0..777777777777B;
      NAME: ALFA;
      DATE: ALFA;
      TIME: ALFA;
      OSNAME: ALFA;
      PROCESSOR: ALFA;
      RECOMENDATIONS: ALFA;
      HARDWARE: ALFA;
      COMMENTS: COMMENTLINE;
             )
   END;
 (**)
 VAR
   BIN: FILE OF MIXED;
   VEBIN: FILE OF HEXWORD;
   NIBBLE: HEX;
   I, J, K: INTEGER;
 (**)
   IDTABLE: IDENTTABLE;
 (**)
   VPOS: INTEGER;
 (**)
   FUNCTION GETVE: HEX;
    BEGIN
     IF VPOS>14 THEN
      IF EOF(VEBIN) THEN
       GETVE:=0
      ELSE BEGIN
       GET(VEBIN); GETVE:=VEBIN^[1]; VPOS
      END
     ELSE BEGIN
      GETVE:=VEBIN^[VPOS]; VPOS:=VPOS+1
     END;
    END (* GETVE *);
 (**)
   PROCEDURE COPYBINS;
    BEGIN
     REPEAT
      FOR I:=0 TO 14 DO BIN^.H[I]:=GETVE;
      PUT(BIN);
     UNTIL EOF(VEBIN);
    END (* COPYBINS *);
 (**)
   PROCEDURE PUTBIN(I: INTEGER);
    BEGIN
     BIN^.I:=I;
     PUT(BIN);
    END;
 (**)
   PROCEDURE SHIFT(VAR A: ALFA);
    VAR I: INTEGER;
    BEGIN
     FOR I:= 1 TO 9 DO A[I]:=A[I+1];
     A[10]:=' ';
    END;
 (**)
   PROCEDURE READCOMMENTS(VAR C: COMMENTLINE);
    VAR I: INTEGER;
    BEGIN
     I:=1;
     WHILE NOT EOLN DO
       BEGIN READ(C[I]);
        I:=SUCC(I);
       END;
     FOR I:=I TO 70 DO C[I]:=COL;
     READLN;
    END (* READ COMMENTS *);
(**)
   PROCEDURE READALFA(VAR C: ALFA);
    VAR I: INTEGER;
    BEGIN
     I:=1;
     WHILE NOT EOLN DO
       BEGIN READ(C[I]);
        I:=SUCC(I);
       END;
     FOR I:=I TO 10 DO C[I]:=COL;
     READLN;
    END (* READ COMMENTS *);
(**)
 BEGIN
  REWRITE(BIN);
  RESET(VEBIN);
  VPOS:=1;
  FOR I:=1 TO 152*2 DO NIBBLE:=GETVE;
  IDTABLE.ID:=7700B; IDTABLE.LENGTH:=16B;
  IDTABLE.FILL1:=0;
  READALFA(IDTABLE.NAME);
  DATE(IDTABLE.DATE); TIME(IDTABLE.TIME);
  SHIFT(IDTABLE.DATE); SHIFT(IDTABLE.TIME);
  IDTABLE.OSNAME:='NOS   2.1 ';
  IDTABLE.PROCESSOR:= 'LOADEI    ';
  IDTABLE.RECOMENDATIONS:='     8X8X ';
  IDTABLE.HARDWARE:='H         ';
  IDTABLE.COMMENTS:=
   'EI VERSION 9, COPYRIGHT CONTROL DATA SYSTEMS INC. 1992                ';
  READCOMMENTS(IDTABLE.COMMENTS);
  FOR I:=0 TO 16B DO PUTBIN(IDTABLE.LIST[I]);
 (**)
  PUTBIN(50000000000000000000B);
  COPYBINS;
 END.
