User Tools

Site Tools


cdc:nos2.source:opl.opl871:deck:hstcopy

Deck HSTCOPY

2 Modifications

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.hstcopy +++|(*$L'HOSTCOPY UTILITY.',S-,U+ *)
00002  M01S00002.hstcopy +++|(*$V+ DISPLAY CM RECORD MAP. *)
00003  M01S00003.hstcopy +++|(*$E+ USE EXTERNAL ENTRY POINTS. *)
00004  M01S00004.hstcopy +++|PROGRAM HSTCOPY(INPUT,OUTPUT,FTS);
00005  M01S00005.hstcopy +++|(***
00006  M01S00006.hstcopy +++| *  HSTCOPY - HOSTCOPY UTILITY.
00007  M01S00007.hstcopy +++| *
00008  M01S00008.hstcopy +++| *    L. M. BURGHER/S. V. PRESTON      84/09/22.
00009  M01S00001.ns2421  +++| *    S. V. PRESTON                    86/03/14.
00010  M01S00002.ns2421  +++| *      MODIFIED TO SUPPORT V10 SST FORMAT.
00011  M01S00009.hstcopy +++| *
00012  M01S00010.hstcopy +++| *  OVERVIEW
00013  M01S00011.hstcopy +++| *
00014  M01S00012.hstcopy +++| *    HSTCOPY READS A FILE AND TRANSFERS IT TO A 5870 OR 5970
00015  M01S00013.hstcopy +++| *    NON-IMPACT PRINTER.  HSTCOPY CALLS THE PP PROGRAM XHC TO
00016  M01S00014.hstcopy +++| *    TRANSFER THE DATA TO THE NON-IMPACT PRINTER.
00017  M01S00015.hstcopy +++| *
00018  M01S00016.hstcopy +++| *    HSTCOPY READS THE FOLLOWING TYPES OF FILES:
00019  M01S00017.hstcopy +++| *
Line S00018 Modification History
M01 (Added by) hstcopy
M02 (Updated by) ns2421
Seq #  *Modification Id* Act 
----------------------------+
00020  M02S00018.ns2421  ---| *      1) 128-BYTE AND 512-BYTE RECORDS CONSISTING OF 8-BIT
Line S00019 Modification History
M01 (Added by) hstcopy
M02 (Updated by) ns2421
Seq #  *Modification Id* Act 
----------------------------+
00021  M02S00019.ns2421  ---| *         BYTES WITHOUT ZERO-BYTE TERMINATORS.
00022  M01S00003.ns2421  +++| *      1) RECORDS CONSISTING OF MULTIPLES OF 128 8-BIT BYTES,
00023  M01S00004.ns2421  +++| *         WITHOUT ZERO-BYTE TERMINATORS, UP TO A MAXIMUM
00024  M01S00005.ns2421  +++| *         OF 8192 8-BIT BYTES.
00025  M01S00020.hstcopy +++| *
00026  M01S00021.hstcopy +++| *      2) 80-BYTE EBCDIC CARD IMAGE RECORDS WITHOUT ZERO-BYTE
00027  M01S00022.hstcopy +++| *         TERMINATORS.
00028  M01S00023.hstcopy +++| *
00029  M01S00024.hstcopy +++| *  CONTROL STATEMENT CALL
00030  M01S00025.hstcopy +++| *
00031  M01S00026.hstcopy +++| *    HSTCOPY(INPUT,OUTPUT,FTS)
00032  M01S00027.hstcopy +++| *
00033  M01S00028.hstcopy +++| *      HSTCOPY           - HOSTCOPY CONTROL STATEMENT.
00034  M01S00029.hstcopy +++| *      INPUT             - INPUT FILE CONTAINING INPUT DIRECTIVES.
00035  M01S00030.hstcopy +++| *      OUTPUT            - OUTPUT FILE CONTAINING STATUS OF HOSTCOPY.
00036  M01S00031.hstcopy +++| *      FTS               - INPUT FILE TO TRANSFER TO NIP.
00037  M01S00032.hstcopy +++| *)
00038  M01S00033.hstcopy +++|
00039  M01S00034.hstcopy +++|CONST
00040  M01S00035.hstcopy +++|
00041  M01S00036.hstcopy +++|(* DEFINE BUFFER LENGTHS. *)
00042  M01S00037.hstcopy +++|
Line S00038 Modification History
M01 (Added by) hstcopy
M02 (Updated by) ns2421
Seq #  *Modification Id* Act 
----------------------------+
00043  M02S00038.ns2421  ---|  CML      = 69;                       (* NUMBER OF CM WORDS *)
Line S00039 Modification History
M01 (Added by) hstcopy
M02 (Updated by) ns2421
Seq #  *Modification Id* Act 
----------------------------+
00044  M02S00039.ns2421  ---|  BIT4L    = 1024;                     (* NUMBER OF BIT4S *)
Line S00040 Modification History
M01 (Added by) hstcopy
M02 (Updated by) ns2421
Seq #  *Modification Id* Act 
----------------------------+
00045  M02S00040.ns2421  ---|  RECL     = 4;                        (* NUMBER OF 128-BYTE RECS *)
00046  M01S00006.ns2421  +++|  CML      = 1093;                     (* NUMBER OF CM WORDS *)
00047  M01S00007.ns2421  +++|  CMLS     = 69;
00048  M01S00008.ns2421  +++|  BIT4L    = 16384;                    (* NUMBER OF BIT4S *)
00049  M01S00009.ns2421  +++|  RECL     = 64;                       (* NUMBER OF 128-BYTE RECS *)
00050  M01S00041.hstcopy +++|
00051  M01S00042.hstcopy +++|(* DEFINE RECORD LENGTH. *)
00052  M01S00043.hstcopy +++|
00053  M01S00044.hstcopy +++|  RECRDL   = 256;                      (* NUMBER OF BIT4S PER RECRD *)
00054  M01S00045.hstcopy +++|  RECRDPL  = 2;                        (* NUM OF RECRD POINTERS *)
00055  M01S00046.hstcopy +++|
00056  M01S00047.hstcopy +++|TYPE
00057  M01S00048.hstcopy +++|
00058  M01S00049.hstcopy +++|(*$T- TURN RUNTIME TESTING OFF. *)
00059  M01S00050.hstcopy +++|  PCNTRL  = cONTROL;                  (* CONTROL RECORD POINTER *)
00060  M01S00051.hstcopy +++|  PRECRD  = rECRD;                    (* DATA RECORD POINTER *)
00061  M01S00052.hstcopy +++|(*$T= RESTORE RUNTIME TESTING. *)
00062  M01S00053.hstcopy +++|
00063  M01S00054.hstcopy +++|(* DEFINE BIT FIELD WIDTHS. *)
00064  M01S00055.hstcopy +++|
00065  M01S00056.hstcopy +++|  BIT1  = 0..1B;
00066  M01S00057.hstcopy +++|  BIT3  = 0..7B;
00067  M01S00058.hstcopy +++|  BIT4  = 0..17B;
00068  M01S00059.hstcopy +++|  BIT6  = 0..77B;
00069  M01S00060.hstcopy +++|  BIT9  = 0..777B;
00070  M01S00061.hstcopy +++|  BIT11 = 0..3777B;
00071  M01S00062.hstcopy +++|  BIT12 = 0..7777B;
00072  M01S00063.hstcopy +++|  BIT42 = 0..77777777777777B;
00073  M01S00064.hstcopy +++|
00074  M01S00065.hstcopy +++|(* DEFINE PACKED CHARACTER STRINGS. *)
00075  M01S00066.hstcopy +++|
00076  M01S00067.hstcopy +++|  CHAR3  = PACKED ARRAY[1..3]  OF CHAR;
00077  M01S00068.hstcopy +++|  CHAR10 = PACKED ARRAY[1..10] OF CHAR;
00078  M01S00069.hstcopy +++|  CHAR40 = PACKED ARRAY[1..40] OF CHAR;
00079  M01S00070.hstcopy +++|
00080  M01S00071.hstcopy +++|  BUFTAG = 1..2;
00081  M01S00072.hstcopy +++|  BUFFER = RECORD CASE TAG : BUFTAG OF
00082  M01S00073.hstcopy +++|             1 : (W  : ARRAY[1..CML] OF INTEGER);
00083  M01S00074.hstcopy +++|             2 : (B4 : PACKED ARRAY[1..BIT4L] OF BIT4);
00084  M01S00075.hstcopy +++|             END;  (* BUFFER *)
00085  M01S00076.hstcopy +++|
00086  M01S00077.hstcopy +++|  RECRD = PACKED ARRAY[1..RECRDL] OF BIT4;
00087  M01S00078.hstcopy +++|                                       (* DATA RECORD *)
00088  M01S00079.hstcopy +++|
00089  M01S00080.hstcopy +++|  CONTROL = PACKED RECORD              (* XHC CONTROL TABLE *)
00090  M01S00081.hstcopy +++|    FILL1   : BIT3;
00091  M01S00082.hstcopy +++|    EQ      : BIT9;                    (* EST ORDINAL *)
00092  M01S00083.hstcopy +++|    FILL2   : BIT11;
00093  M01S00084.hstcopy +++|    TERM    : BOOLEAN;                 (* TERMINATE XHC *)
00094  M01S00085.hstcopy +++|    FILL3   : BIT11;
00095  M01S00086.hstcopy +++|    CARDIMG : BOOLEAN;                 (* CARD IMAGE *)
00096  M01S00087.hstcopy +++|    FILL4   : BIT11;
00097  M01S00088.hstcopy +++|    COMP    : BOOLEAN;                 (* REQUEST COMPLETE *)
00098  M01S00089.hstcopy +++|    FILL5   : BIT42;
00099  M01S00090.hstcopy +++|    RESV1   : BIT1;
00100  M01S00091.hstcopy +++|    RECRDP  : PRECRD;                  (* RECRD POINTER *)
00101  M01S00092.hstcopy +++|    END;  (* CONTROL *)
00102  M01S00093.hstcopy +++|
00103  M01S00094.hstcopy +++|  SYSREQ = PACKED RECORD
00104  M01S00095.hstcopy +++|                                       (* SYSTEM REQUEST FORMAT *)
00105  M01S00096.hstcopy +++|             PPNAME : CHAR3;           (* PP PROGRAM NAME *)
00106  M01S00097.hstcopy +++|             RESV1  : BIT1;
00107  M01S00098.hstcopy +++|             RECALL : BOOLEAN;         (* RECALL OPTION *)
00108  M01S00099.hstcopy +++|             FILL1  : BIT4;
00109  M01S00100.hstcopy +++|             FILL2  : BIT12;
00110  M01S00101.hstcopy +++|             FILL3  : BIT6;
00111  M01S00102.hstcopy +++|             RESV2  : BIT1;            (* CONTROL POINTER *)
00112  M01S00103.hstcopy +++|             CNTRLP : PCNTRL;
00113  M01S00104.hstcopy +++|             END;  (* SYSREQ *)
00114  M01S00105.hstcopy +++|
00115  M01S00106.hstcopy +++|VAR
00116  M01S00107.hstcopy +++|
00117  M01S00108.hstcopy +++|  CNTRLP         : PCNTRL;             (* XHC CONTROL POINTER *)
00118  M01S00109.hstcopy +++|  INITOK         : BOOLEAN;            (* INITIALIZE OK *)
00119  M01S00110.hstcopy +++|  RCL, XHC       : SYSREQ;             (* SYSTEM REQUEST *)
00120  M01S00111.hstcopy +++|  FTS            : SEGMENTED FILE OF INTEGER;
00121  M01S00112.hstcopy +++|                                       (* SYSTEM SOFTWARE FILE *)
00122  M01S00113.hstcopy +++|
00123  M01S00114.hstcopy +++|(* DEFINE DAYFILE MESSAGE VARIABLES. *)
00124  M01S00115.hstcopy +++|
00125  M01S00116.hstcopy +++|  EFMSG : CHAR40;                      (* EMPTY FILE *)
00126  M01S00117.hstcopy +++|  EQMSG : CHAR40;                      (* INCORRECT EQUIPMENT *)
00127  M01S00118.hstcopy +++|  LDMSG : CHAR40;                      (* EQUIPMENT LOADED *)
00128  M01S00119.hstcopy +++|
00129  M01S00120.hstcopy +++|(* DEFINE BUFFER VARIABLES. *)
00130  M01S00121.hstcopy +++|
00131  M01S00122.hstcopy +++|  BUFF           : BUFFER;             (* DATA BUFFER *)
00132  M01S00123.hstcopy +++|  CMI            : 0..CML;             (* CM INDEX *)
00133  M01S00124.hstcopy +++|  BIT4I          : 0..BIT4L;           (* BIT4 INDEX *)
00134  M01S00125.hstcopy +++|  RECI           : 0..RECL;            (* RECRD INDEX *)
00135  M01S00126.hstcopy +++|  RECNUM         : 1..RECL;            (* NUM RECRDS PER BUFFER *)
00136  M01S00127.hstcopy +++|
00137  M01S00128.hstcopy +++|(* DEFINE RECORD VARIABLES. *)
00138  M01S00129.hstcopy +++|
00139  M01S00130.hstcopy +++|  RECRDP         : ARRAY[1..RECRDPL] OF PRECRD;
00140  M01S00131.hstcopy +++|                                       (* DATA RECORD POINTERS *)
00141  M01S00132.hstcopy +++|  RECRDPI        : 1..RECRDPL;         (* RECORD POINTER INDEX *)
00142  M01S00133.hstcopy +++|  RECRDI         : 0..RECRDL;          (* RECORD INDEX *)
00143  M01S00134.hstcopy +++|
00144  M01S00135.hstcopy +++|VALUE
00145  M01S00136.hstcopy +++|
00146  M01S00137.hstcopy +++|  INITOK = FALSE;
00147  M01S00138.hstcopy +++|  RCL    = ('RCL', 0, TRUE,  0, 0, 0, 0, NIL);
00148  M01S00139.hstcopy +++|  XHC    = ('XHC', 0, FALSE, 0, 0, 0, 0, NIL);
00149  M01S00140.hstcopy +++|
00150  M01S00141.hstcopy +++|(* DAYFILE MESSAGES. *)
00151  M01S00142.hstcopy +++|
00152  M01S00143.hstcopy +++|  EFMSG = ' SYSTEM SOFTWARE FILE EMPTY.            ';
00153  M01S00144.hstcopy +++|  EQMSG = ' EQXXX, INCORRECT EQUIPMENT NUMBER.     ';
00154  M01S00145.hstcopy +++|  LDMSG = ' EQXXX, HOSTCOPY TRANSFER COMPLETE.     ';
00155  M01S00146.hstcopy +++|(*$L'EXTERNAL FUNCTIONS AND PROCEDURES.'*)
00156  M01S00147.hstcopy +++|FUNCTION XDXB(    STR : CHAR10; TYP : INTEGER;
00157  M01S00148.hstcopy +++|              VAR NUM : INTEGER) : INTEGER; FORTRAN;
00158  M01S00149.hstcopy +++|(**
00159  M01S00150.hstcopy +++| *  CHARACTER TO INTEGER CONVERSION.
00160  M01S00151.hstcopy +++| *
00161  M01S00152.hstcopy +++| *  LOADED FROM SRVLIB.
00162  M01S00153.hstcopy +++| *)
00163  M01S00154.hstcopy +++|
00164  M01S00155.hstcopy +++|PROCEDURE SYS(VAR REQ : SYSREQ); EXTERN;
00165  M01S00156.hstcopy +++|(**
00166  M01S00157.hstcopy +++| *  ISSUE SYSTEM REQUEST.
00167  M01S00158.hstcopy +++| *
00168  M01S00159.hstcopy +++| *  LOADED FROM UTILLIB.
00169  M01S00160.hstcopy +++| *)
00170  M01S00161.hstcopy +++|(*$L'INIT - INITIALIZE.'*)
00171  M01S00162.hstcopy +++|PROCEDURE INIT;
00172  M01S00163.hstcopy +++|(**
00173  M01S00164.hstcopy +++| *
00174  M01S00165.hstcopy +++| *  INITIALIZE HOST COPY.
00175  M01S00166.hstcopy +++| *
00176  M01S00167.hstcopy +++| *  EXIT
00177  M01S00168.hstcopy +++| *    INITOK = TRUE, IF INITIALIZED PROPERLY.
00178  M01S00169.hstcopy +++| *    THE PP XHC HAS BEEN STARTED.
00179  M01S00170.hstcopy +++| *    LDMSG HAS BEEN SET WITH EQUIPMENT NUMBER.
00180  M01S00171.hstcopy +++| *
00181  M01S00172.hstcopy +++| *  CALLS
00182  M01S00173.hstcopy +++| *    SYS, XDXB.
00183  M01S00174.hstcopy +++| *
00184  M01S00175.hstcopy +++| *  NESTED FROM HSTCOPY.
00185  M01S00176.hstcopy +++| *)
00186  M01S00177.hstcopy +++|
00187  M01S00178.hstcopy +++|VAR
00188  M01S00179.hstcopy +++|
00189  M01S00180.hstcopy +++|  CARDIMG : ALFA;                      (* CARD IMAGE *)
00190  M01S00181.hstcopy +++|  EQ      : ALFA;                      (* EST ORDINAL *)
00191  M01S00182.hstcopy +++|  I, J    : INTEGER;
00192  M01S00183.hstcopy +++|  VALIDEQ : INTEGER;                   (* VALID EQUIPMENT *)
00193  M01S00184.hstcopy +++|
00194  M01S00185.hstcopy +++|  BEGIN  (* INIT *)
00195  M01S00186.hstcopy +++|  RESET(FTS);                          (* INITIALIZE FTS FILE *)
00196  M01S00187.hstcopy +++|  IF NOT EOS(FTS) THEN
00197  M01S00188.hstcopy +++|    BEGIN                              (* FILE OK *)
00198  M01S00189.hstcopy +++|    EQ := '          ';                (* EQ NUMBER *)
00199  M01S00190.hstcopy +++|    FOR I := 1 TO 3 DO
00200  M01S00191.hstcopy +++|      READ(EQ[I]);
00201  M01S00192.hstcopy +++|    READLN;
00202  M01S00193.hstcopy +++|    READLN(CARDIMG[1]);                (* CARD IMAGE *)
00203  M01S00194.hstcopy +++|    VALIDEQ := XDXB(EQ, 0, I);         (* CONVERT EQ TO INTEGER *)
00204  M01S00195.hstcopy +++|    IF (VALIDEQ = 0) AND (I <= 777B) THEN
00205  M01S00196.hstcopy +++|      BEGIN                            (* VALID EQ *)
00206  M01S00197.hstcopy +++|      NEW(CNTRLP);                     (* INITIALIZE POINTERS *)
00207  M01S00198.hstcopy +++|      FOR J := 1 TO RECRDPL DO
00208  M01S00199.hstcopy +++|        BEGIN
00209  M01S00200.hstcopy +++|        RECRDPI := J;
00210  M01S00201.hstcopy +++|        NEW(RECRDP[RECRDPI]);
00211  M01S00202.hstcopy +++|        END;
00212  M01S00203.hstcopy +++|      CNTRLP;EQ := I;                 (* SETUP XHC CONTROL RECORD *)
00213  M01S00204.hstcopy +++|      CNTRLP;TERM := FALSE;
00214  M01S00205.hstcopy +++|      IF CARDIMG[1] = 'T' THEN
00215  M01S00206.hstcopy +++|        CNTRLP;CARDIMG := TRUE
00216  M01S00207.hstcopy +++|      ELSE
00217  M01S00208.hstcopy +++|        CNTRLP;CARDIMG := FALSE;
00218  M01S00209.hstcopy +++|      CNTRLP;COMP := FALSE;
00219  M01S00210.hstcopy +++|      CNTRLP;RECRDP := NIL;
00220  M01S00211.hstcopy +++|      XHC.CNTRLP := CNTRLP;
00221  M01S00212.hstcopy +++|      RCL.CNTRLP := CNTRLP;
00222  M01S00213.hstcopy +++|      SYS(XHC);                        (* INITIATE XHC *)
00223  M01S00214.hstcopy +++|      INITOK := TRUE;                  (* INITIALIZE OK *)
00224  M01S00215.hstcopy +++|      FOR I := 1 TO 3 DO               (* SET EQ IN LOAD MESSAGE *)
00225  M01S00216.hstcopy +++|        LDMSG[I+3] := EQ[I];
00226  M01S00217.hstcopy +++|      END                              (* VALID EQ *)
00227  M01S00218.hstcopy +++|    ELSE
00228  M01S00219.hstcopy +++|      BEGIN                            (* INCORRECT EQ *)
00229  M01S00220.hstcopy +++|      FOR I := 1 TO 3 DO               (* SET EQ IN MESSAGE *)
00230  M01S00221.hstcopy +++|        EQMSG[I+3] := EQ[I];
00231  M01S00222.hstcopy +++|      MESSAGE(EQMSG);
00232  M01S00223.hstcopy +++|      WRITELN(EQMSG);
00233  M01S00224.hstcopy +++|      END;  (* IF *)                   (* INCORRECT EQ *)
00234  M01S00225.hstcopy +++|    END                                (* FILE OK *)
00235  M01S00226.hstcopy +++|  ELSE
00236  M01S00227.hstcopy +++|    BEGIN                              (* EMPTY FILE *)
00237  M01S00228.hstcopy +++|    MESSAGE(EFMSG);
00238  M01S00229.hstcopy +++|    WRITELN(EFMSG);
00239  M01S00230.hstcopy +++|    END;  (* IF *)                     (* EMPTY FILE *)
00240  M01S00231.hstcopy +++|  END;  (* INIT *)
00241  M01S00232.hstcopy +++|(*$L'MAIN PROGRAM.'*)
00242  M01S00233.hstcopy +++|BEGIN  (* HSTCOPY *)
00243  M01S00234.hstcopy +++|INIT;                                  (* INITIALIZE HOST COPY *)
00244  M01S00235.hstcopy +++|IF INITOK THEN
00245  M01S00236.hstcopy +++|  BEGIN                                (* INIT OK *)
00246  M01S00237.hstcopy +++|  WHILE NOT EOF(FTS) DO
00247  M01S00238.hstcopy +++|    BEGIN                              (* PROCESS FTS RECORD *)
00248  M01S00239.hstcopy +++|    CMI := 0;                          (* READ FTS RECORD *)
00249  M01S00240.hstcopy +++|    WHILE (NOT EOS(FTS) AND NOT EOF(FTS)) AND
00250  M01S00241.hstcopy +++|          (CMI < CML) DO
00251  M01S00242.hstcopy +++|      BEGIN
00252  M01S00243.hstcopy +++|      CMI := CMI+1;
00253  M01S00244.hstcopy +++|      READ(FTS,BUFF.W[CMI]);
00254  M01S00245.hstcopy +++|      END;  (* WHILE *)
00255  M01S00246.hstcopy +++|    GETSEG(FTS);                       (* GET NEXT RECORD *)
Line S00247 Modification History
M01 (Added by) hstcopy
M02 (Updated by) ns2421
Seq #  *Modification Id* Act 
----------------------------+
00256  M02S00247.ns2421  ---|    IF CMI = CML THEN                  (* 128- OR 512-BYTE RECORD *)
Line S00248 Modification History
M01 (Added by) hstcopy
M02 (Updated by) ns2421
Seq #  *Modification Id* Act 
----------------------------+
00257  M02S00248.ns2421  ---|      RECNUM := 4
Line S00249 Modification History
M01 (Added by) hstcopy
M02 (Updated by) ns2421
Seq #  *Modification Id* Act 
----------------------------+
00258  M02S00249.ns2421  ---|    ELSE
Line S00250 Modification History
M01 (Added by) hstcopy
M02 (Updated by) ns2421
Seq #  *Modification Id* Act 
----------------------------+
00259  M02S00250.ns2421  ---|      RECNUM := 1;
00260  M01S00010.ns2421  +++|    IF CMI = CML THEN                  (* ESTABLISH RECORD SIZE *)
00261  M01S00011.ns2421  +++|      RECNUM := 64                     (* 8192-BYTES *)
00262  M01S00012.ns2421  +++|    ELSE
00263  M01S00013.ns2421  +++|      BEGIN
00264  M01S00014.ns2421  +++|      IF CMI = CMLS THEN
00265  M01S00015.ns2421  +++|        RECNUM := 4                    (* 512-BYTES *)
00266  M01S00016.ns2421  +++|      ELSE
00267  M01S00017.ns2421  +++|        RECNUM := 1;                   (* 128-BYTES *)
00268  M01S00018.ns2421  +++|      END;
00269  M01S00251.hstcopy +++|    BIT4I := 0;                        (* XFER FTS RECORD TO NIP *)
00270  M01S00252.hstcopy +++|    FOR RECI := 1 TO RECNUM DO
00271  M01S00253.hstcopy +++|      BEGIN
00272  M01S00254.hstcopy +++|      IF RECRDPI < RECRDPL THEN
00273  M01S00255.hstcopy +++|        RECRDPI := RECRDPI + 1
00274  M01S00256.hstcopy +++|      ELSE
00275  M01S00257.hstcopy +++|        RECRDPI := 1;
00276  M01S00258.hstcopy +++|      FOR RECRDI := 1 TO RECRDL DO     (* MOVE ONE 128-BYTE RECORD *)
00277  M01S00259.hstcopy +++|        BEGIN
00278  M01S00260.hstcopy +++|        BIT4I := BIT4I+1;
00279  M01S00261.hstcopy +++|        RECRDP[RECRDPI];RECRDI] := BUFF.B4[BIT4I];
00280  M01S00262.hstcopy +++|        END;  (* FOR *)
00281  M01S00263.hstcopy +++|      SYS(RCL);                        (* WAIT FOR REQUEST DONE *)
00282  M01S00264.hstcopy +++|      CNTRLP;RECRDP := RECRDP[RECRDPI];
00283  M01S00265.hstcopy +++|                                       (* REQUEST XHC TO XFER RECRD *)
00284  M01S00266.hstcopy +++|      CNTRLP;COMP := FALSE;
00285  M01S00267.hstcopy +++|      END;  (* FOR *)
00286  M01S00268.hstcopy +++|    END;  (* WHILE *)                  (* PROCESS FTS RECORD *)
00287  M01S00269.hstcopy +++|  SYS(RCL);                            (* WAIT FOR REQUEST DONE *)
00288  M01S00270.hstcopy +++|  CNTRLP;TERM := TRUE;                (* TERMINATE XHC *)
00289  M01S00271.hstcopy +++|  CNTRLP;COMP := FALSE;
00290  M01S00272.hstcopy +++|  SYS(RCL);                            (* WAIT FOR TERMINATION *)
00291  M01S00273.hstcopy +++|  MESSAGE(LDMSG);                      (* HOSTCOPY COMPLETE *)
00292  M01S00274.hstcopy +++|  WRITELN(LDMSG);
00293  M01S00275.hstcopy +++|  END;  (* IF *)                       (* INIT OK *)
00294  M01S00276.hstcopy +++|END.  (* HSTCOPY *)
00295  M01S00277.hstcopy +++|*WEOR
00296  M01S00278.hstcopy +++|          TTL    SYS - ISSUE SYSTEM REQUEST.
00297  M01S00279.hstcopy +++|          TITLE  SYS - ISSUE SYSTEM REQUEST.
00298  M01S00280.hstcopy +++|          IDENT  SYS
00299  M01S00281.hstcopy +++|          ENTRY  SYS
00300  M01S00282.hstcopy +++|          SST
00301  M01S00283.hstcopy +++|          SYSCOM B1
00302  M01S00284.hstcopy +++|*COMMENT  SYS - ISSUE SYSTEM REQUEST.
Line S00285 Modification History
M01 (Added by) hstcopy
M02 (Updated by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00303  M02S00285.281l803 ---|          COMMENT COPYRIGHT CONTROL DATA CORPORATION, 1984.
00304  M01S00001.281l803 +++|          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00305  M01S00286.hstcopy +++| SYS      SPACE  4,10
00306  M01S00287.hstcopy +++|***       SYS - ISSUE SYSTEM REQUEST.
00307  M01S00288.hstcopy +++|*
00308  M01S00289.hstcopy +++|*         SYS ALLOWS DIRECT SYSTEM CALLS TO THE OPERATING
00309  M01S00290.hstcopy +++|*         SYSTEM.  THE REQUEST, IN THE FORM OF AN RA+1 REQUEST,
00310  M01S00291.hstcopy +++|*         IS PASSED TO SYS, WHICH IN TURN CALLS SYS=.  THIS
00311  M01S00292.hstcopy +++|*         IS REQUIRED BECAUSE OF REGISTER DIFFERENCES.
00312  M01S00293.hstcopy +++|*
00313  M01S00294.hstcopy +++|*         PASCAL DECLARATION:
00314  M01S00295.hstcopy +++|*
00315  M01S00296.hstcopy +++|*         PROCEDURE SYS(VAR REQ : SYSREQ); EXTERN;
00316  M01S00297.hstcopy +++|*
00317  M01S00298.hstcopy +++|*         REQ    RA+1 REQUEST.
00318  M01S00299.hstcopy +++|          SPACE  4,10
00319  M01S00300.hstcopy +++|***       COMMON DECKS.
00320  M01S00301.hstcopy +++|
00321  M01S00302.hstcopy +++|
00322  M01S00303.hstcopy +++|*CALL     COMCMAC
00323  M01S00304.hstcopy +++|          SPACE  4,10
00324  M01S00305.hstcopy +++|**        SYS - ISSUE SYSTEM REQUEST.
00325  M01S00306.hstcopy +++|*
00326  M01S00307.hstcopy +++|*         ENTRY  (X0) = ADDRESS OF THE REQUEST.
00327  M01S00308.hstcopy +++|*
00328  M01S00309.hstcopy +++|*         EXIT   REQUEST ISSUED.
00329  M01S00310.hstcopy +++|*
00330  M01S00311.hstcopy +++|*         USES   A - 4.
00331  M01S00312.hstcopy +++|*                X - 4, 6.
00332  M01S00313.hstcopy +++|*                B - NONE.
00333  M01S00314.hstcopy +++|*
00334  M01S00315.hstcopy +++|*         CALLS  SYS=.
00335  M01S00316.hstcopy +++|
00336  M01S00317.hstcopy +++|
00337  M01S00318.hstcopy +++| SYS      PS                 ENTRY/EXIT
00338  M01S00319.hstcopy +++|          SA4    X0          GET REQUEST
00339  M01S00320.hstcopy +++|          BX6    X4
00340  M01S00321.hstcopy +++|          RJ     =XSYS=
00341  M01S00322.hstcopy +++|          EQ     SYS         RETURN
00342  M01S00323.hstcopy +++|
00343  M01S00324.hstcopy +++|
00344  M01S00325.hstcopy +++|          END
00345  M01S00326.hstcopy +++|*WEOR
cdc/nos2.source/opl.opl871/deck/hstcopy.txt · Last modified: by 127.0.0.1