File: TDCOPY.LS of Disk: Disks/Build-2007/MyProgs-22-04-07
(Source file text) 


/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 1

             /TD8E DECTAPE COPY, V4
             /
             /
             /
             /
             /
             /
             //
             /
             /
             /
             /
             /COPYRIGHT (C) 1972, 1975
             /DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
             /
             /
             /
             /THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A
             /SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLU-
             /SION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE, OR ANT OTHER
             /COPIES THEREOF, MAY NOT BR PROVIDED OR OTHERWISE MADE AVAILABLE
             /TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO
             /AGREES TO THESE LICENSE TERMS.  TITLE TO AND OWNERSHIP OF THE
             /SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.
             /
             /
             /THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
             /NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
             /EQUIPMRNT COROPATION.
             /
             /DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
             /SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
             /
             /
             /
             /
             /
             /

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 2




             /DEFINITIONS FOR PAL8 AND PAL10

       7002  BSW=7002
       7421  MQL=7421
       7501  MQA=7501
       7621  CAM=7621
       7521  SWP=7521
       7701  ACL=7701
       6007  CAF=6007
       6203  CDI=6203
       6030  KCF=6030
       6771  SDSS=6771
       6772  SDST=6772
       6773  SDSQ=6773
       6774  SDLC=6774
       6775  SDLD=6775
       6776  SDRC=6776
       6777  SDRD=6777
             FIXTAB


       7402  HALT=HLT


             /UNIT NUMBER DEFINITIONS FOR TD8E IOT'S

       0770  UNIT01=0770
       0760  UNIT23=0760
       0750  UNIT45=0750
       0740  UNIT67=0740


/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 3



       7600  LIMIT=7600

       0011  *11

00011  0000  X11,    0
00012  0000  X12,    0

             /PAGE 0 CONSTANTS AND VARIABLES

       0020  *20
00020  0000  INPUT,  0               /INPUT UNIT CONSTANT
00021  0000  OUTPUT, 0               /OUTPUT UNIT CONSTANTS
00022  0000          0
00023  0000          0
00024  0000          0
00025  0000          0
00026  0000          0
00027  0000          0
00030  0000  OCOUNT, 0               /NUMBER OF OUTPUT UNITS SPECIFIED
00031  0000  OPOINT, 0
00032  0020  LIST,   OUTPUT-1
00033  0000  OUTNUM, 0
00034  0000  IBLOCK, 0               /STARTING INPUT BLOCK
00035  0000  OBLOCK, 0               /STARTING OUTPUT BLOCK
00036  0000  NUMBER, 0               /NUMBER OF BLOCKS TO TRANSFER
00037  0000  FIELDS, 0               /-(HIGHEST FIELD AVAILABLE)
00040  0000  COUNT,  0               /TEMPORARY COUNTERS
00041  0000  COUNT1, 0               /  "
00042  0000  COUNT2, 0               /  "
00043  0000  COUNT3, 0               /  "
00044  0000  COUNT4, 0               /  "
00045  0000  UNIT,   0               /UNIT CONSTANT--THIS TRANSFER
00046  0000  VERF,   0               /VERIFY SWITCH (1=YES,0=NO)
00047  0000  WDCNT,  0               /-(NUMBER OF WORDS PER BLOCK)
00050  0000  RW,     0               /READ/WRITE BIT--THIS TRANSFER
00051  0000  FLD0,   0               /# OF BLOCKS IN FIELD 0 BUFFER
00052  0000  FLDN,   0               /# OF BLOCKS IN FIELD N BUFFER
00053  0000  BUF0,   0               /START OF FIELD 0 BUFFER
00054  0000  BUFN,   0               /START OF FIELD N BUFFER
00055  0000  XNUMB,  0               /# OF BLOCKS LEFT TO TRANSFER
00056  0000  BLOCKN, 0               /STARTING BLOCK NUMBER--THIS TRANSFER
00057  0000  NUMB1,  0
00060  0000  NUMB2,  0
00061  0000  VB,     0
00062  0000  END0,   0               /BEGINNING OF FIELD 0 VERIFY BUFFER
00063  0000  ENTRY,  0               /ENTRY TO TD8E HANDLER
00064  0000  INB,    0
00065  0000  OUTB,   0
00066  0000  OHOLD,  0

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 4


00067  2404  MESSG1, TEXT @TD8E COPY V4A@
00070  7005
00071  4003
00072  1720
00073  3140
00074  2664
00075  0100
00076  4061  MESSG3, TEXT @ 12-BIT WORDS PER BLOCK@
00077  6255
00100  0211
00101  2440
00102  2717
00103  2204
00104  2340
00105  2005
00106  2240
00107  0214
00110  1703
00111  1300

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 5


       0200  *200

00200  6046  START,  TLS
00201  4317          JMS CRLF
00202  4577          JMS I [MESSGE
00203  0067          MESSG1          /@TD8E COPY@
00204  4317          JMS CRLF
00205  3040          DCA COUNT
00206  5576          JMP I [END      /ONCE ONLY CODE FOR MULTIPLE FIELD TEST
00207  4336  START1, JMS QUEST
00210  2457          MESSG4          /@FROM UNIT:@
00211  7521          SWP
00212  4352          JMS UNITNO      /MAKE UNIT NUMBER CONSTANT
00213  3020          DCA INPUT
00214  1032          TAD LIST
00215  3031          DCA OPOINT
00216  7410          SKP
00217  4325  AGAIN,  JMS ERR4        /*ILLEGAL RESPONSE*
00220  3030          DCA OCOUNT
00221  3040          DCA COUNT
00222  4577          JMS I [MESSGE
00223  2465          MESSG5          /@TO UNITS:@
00224  4575  MORE2,  JMS I [ANSWER
00225  5217          JMP AGAIN
00226  7701          ACL
00227  4352          JMS UNITNO      /MAKE UNIT NUMBER CONSTANT
00230  7421          MQL             /STORE IN MQ
00231  7501          MQA             /RESTORE TO AC
00232  7041          CIA
00233  1020          TAD INPUT
00234  7650          SNA CLA         /IS OUTPUT UNIT = INPUT UNIT ?
00235  5225          JMP MORE2+1     /YES--ERROR
00236  2031          ISZ OPOINT
00237  2030          ISZ OCOUNT      /COUNT ONE MORE OUTPUT UNIT
00240  1030          TAD OCOUNT
00241  1174          TAD [-10
00242  7710          SPA CLA         /WERE MORE THAN 7 UNITS SPECIFIED?
00243  5246          JMP .+3
00244  4317          JMS CRLF        /YES--CARRIAGE RETURN
00245  5255          JMP OALL        /IGNORE EXTRA ONE
00246  7521          SWP             /NO--
00247  3431          DCA I OPOINT    /STORE UNIT CONSTANT IN LIST
00250  1040          TAD COUNT
00251  7041          CIA
00252  1030          TAD OCOUNT
00253  7750          SPA SNA CLA     /ALL UNITS IN?
00254  5224          JMP MORE2       /YES

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 6


00255  3040  OALL,   DCA COUNT
00256  4577          JMS I [MESSGE
00257  1040          MESSG6          /@FIRST INPUT BLOCK:@
00260  4575          JMS I [ANSWER
00261  5306          JMP WHOLE       /COPY WHOLE TAPE
00262  1040          TAD COUNT
00263  7650          SNA CLA         /WERE TOO MANY SPECIFIED?
00264  5271          JMP .+5
00265  4577          JMS I [MESSGE   /YES
00266  2511          ERROR4          /@ILLEGAL RESPONSE@
00267  4317          JMS CRLF
00270  5255          JMP OALL        /REPEAT THE QUESTION
00271  7701          ACL             /NO
00272  3034          DCA IBLOCK      /STORE
00273  4336          JMS QUEST
00274  1052          MESSG7          /@FIRST OUTPUT BLOCK:@
00275  7701          ACL
00276  3035          DCA OBLOCK
00277  4336          JMS QUEST
00300  1064          MESSG8          /@NUMBER OF BLOCKS TO COPY:@
00301  7701          ACL
00302  7450          SNA             /WERE 0 BLOCKS SPECIFIED?
00303  5345          JMP QUEST1      /YES--REPEAT QUESTION
00304  3036          DCA NUMBER
00305  5311          JMP .+4
00306  3034  WHOLE,  DCA IBLOCK
00307  3035          DCA OBLOCK
00310  3036          DCA NUMBER      /0 MEANS WHOLE TAPE
00311  4336          JMS QUEST
00312  1101          MESSG9          /@VERIFY OUTPUT (YES=1,NO=0):@
00313  7701          ACL
00314  0173          AND [7
00315  3046          DCA VERF
00316  5777          JMP I (SETUP

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 7


             /OUTPUT CARRIAGE RETURN/LINE FEED

00317  0000  CRLF,   0
00320  1376          TAD (215
00321  4572          JMS I [TYPE
00322  1171          TAD [212
00323  4572          JMS I [TYPE
00324  5717          JMP I CRLF      /--RETURN--

00325  0000  ERR4,   0
00326  4577          JMS I [MESSGE
00327  2511          ERROR4          /@ILLEGAL RESPONSE@
00330  4317          JMS CRLF        /OUTPUT CARRIAGE RETURN/LINE FEED
00331  1170          TAD [-4
00332  1325          TAD ERR4
00333  3325          DCA ERR4
00334  3040          DCA COUNT
00335  5725          JMP I ERR4      /--RETURN--


/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 8


00336  0000  QUEST,  0
00337  1736          TAD I QUEST
00340  3343          DCA MNUM
00341  2336          ISZ QUEST
00342  4577          JMS I [MESSGE
00343  0000  MNUM,   0
00344  4575          JMS I [ANSWER
00345  4325  QUEST1, JMS ERR4
00346  1040          TAD COUNT
00347  7640          SZA CLA
00350  5345          JMP QUEST1
00351  5736          JMP I QUEST     /--RETURN--


             /CONVERT UNIT NUMBER TO A WORD OF THE FORM
             /000 XXX XXX 000 OR
             /100 XXX XXX 000
             /WHERE XY0 IS THE THIRD DIGIT OF THE IOT
             /AND 0 OR 1 REFLECTS THE TD8E UNIT NUMBER
             /ENTER WITH THE UNIT NUMBER IN THE AC
             /EXIT WITH SPECIAL CODE IN AC

00352  0000  UNITNO, 0
00353  0173          AND [7          /MASK OUT ALL EXTRANEOUS BITS
00354  7110          CLL RAR         /SAVE 0/1 BIT IN LINK
00355  7421          MQL             /STORE ROTATED WORD, CLEAR AC
00356  7010          RAR
00357  7521          SWP             /PRESERVE 0/1 BIT IN MQ
00360  1365          TAD TABX        /GET DEVICE NUMBER CORRECTLY
00361  3317          DCA CRLF
00362  1717          TAD I CRLF
00363  7501          MQA             /OR IN 0/1 BIT
00364  5752          JMP I UNITNO    /--RETURN--

00365  2435  TABX,   UNITS

             /SKIP 4 LINES AND FETCH MARK TRACK

00366  0000  SKIPQ,  0
00367  6773  IOTR5,  SDSQ
00370  5367          JMP .-1
00371  6776  IOTR6,  SDRC
00372  5766          JMP I SKIPQ     /--RETURN--

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 9


00376  0215
00377  0600
       0400  *400

             /USER RESPONSE HANDLER
             /USES MQ FOR TEMPORARY STORAGE
             /EXIT WITH RESPONSE IN MQ
             /EXIT TO CALL+1 IF JUST CARRIAGE RETURN
             /OR ILLEGAL CHARACTER, CARRIAGE RETURN
             /OR ;,CARRIAGE RETURN
             /EXIT TO CALL+2 IF GOOD DATA, CARRIAGE RETURN
             /INCREMENT COUNT AND EXIT TO CALL+2 IF GOOD DATA;
             /ILLEGAL CHARACTERS CAUSE WHOLE ANSWER TO BE IGNORED
             /AND EXIT TO CALL+1

00400  0000  ANSWER, 0
00401  7621          CAM             /CLEAR AC AND MQ
00402  1236          TAD CLEAR
00403  3212          DCA SWITCH
00404  4250  MORE,   JMS LISTEN      /FETCH A CHARACTER
00405  1377          TAD (-215
00406  7440          SZA             /IS IT A CARRIAGE RETURN?
00407  5214          JMP .+5         /NO
00410  1171          TAD [212        /YES--OUTPUT LINE FEED
00411  4327          JMS TYPE
00412  7000  SWITCH, NOP             /SET UP EXIT ADDRESS
00413  5600          JMP I ANSWER    /--RETURN--
00414  1376          TAD (215-260
00415  7510          SPA             /IS CHARACTER LESS THAN 260?
00416  5240          JMP BAD         /YES--ILLEGAL CHARACTER
00417  1174          TAD [260-270    /NO
00420  7500          SMA             /IS IT MORE THAN 269?
00421  5243          JMP SEMI        /YES--CHECK FOR SEMICOLON
00422  1375          TAD (270        /RESTORE CHARACTER
00423  0173          AND [7          /MASK OUT EXTRANEOUS BITS
00424  7100          CLL
00425  7521          SWP
00426  0374          AND (777        /MASK OUT FIRST DIGIT IF THERE ARE 4
00427  7004          RAL             /ROTATE 3 LEFT
00430  7006          RTL
00431  7501          MQA             /FETCH NEW CHARACTER
00432  7421          MQL             /STORE RESULT IN MQ
00433  1237          TAD SKIP        /SET UP TO SKIP ON RETURN
00434  3212          DCA SWITCH
00435  5204          JMP MORE        /FETCH ANOTHER


/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 10


00436  7000  CLEAR,  NOP
00437  2200  SKIP,   ISZ ANSWER

00440  7200  BAD,    CLA             /ILLEGAL CHARACTER
00441  4567          JMS I [CRLF
00442  5600          JMP I ANSWER    /--RETURN--


             /TEST FOR SEMICOLON

00443  1373  SEMI,   TAD (270-273
00444  7640          SZA CLA         /IS CHARACTER A SEMICOLON?
00445  5240          JMP BAD         /NO--ILLEGAL CHARACTER
00446  2040          ISZ COUNT       /YES--INCREMENT COUNTER
00447  5212          JMP SWITCH      /EXIT FROM ANSWER ROUTINE


             /TELETYPE INPUT AND ECHO HANDLER

00450  0000  LISTEN, 0
00451  6031          KSF
00452  5251          JMP .-1
00453  4566          JMS I   [PARITY
00454  6046          TLS             /ECHO CHARACTER
00455  4257          JMS CHECK       /CHECK FOR CTRL/C AND CTRL/S
00456  5650          JMP I LISTEN    /--RETURN--

             /CHECK FOR CTRL/C AND CTRL/S
             /ENTER WITH INPUT CHARACTER IN AC
             /EXIT TO HANDLER OR WITH CHARACTER IN AC

00457  0000  CHECK,  0
00460  1372          TAD (-203
00461  7450          SNA             /IS IT CTRL/C?
00462  5670          JMP I CTRLC     /YES--HANDLE IT
00463  1371          TAD (203-223
00464  7450          SNA             /IS IT CTRL/S?
00465  5565          JMP I [REPEAT   /YES--HANDLE IT
00466  1370          TAD (223        /RESTORE CHARACTER
00467  5657          JMP I CHECK     /--RETURN--

00470  7600  CTRLC,  LIMIT

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 11


             /MESSAGE OUTPUT HANDLER

             /EXPECTS MESSAGE ADDRESS TO BE IN LOCATION AFTER CALL
             /EXITS TO CALL+2

00471  0000  MESSGE, 0
00472  1671          TAD I MESSGE
00473  3324          DCA FINDER      /SET UP POINTER
00474  2271          ISZ MESSGE
00475  3325          DCA LOC         /SET L/R SWITCH TO L (EVEN)
00476  1724  LNEXT,  TAD I FINDER    /GET WORD
00477  7002          BSW
00500  0164  RHALF,  AND [77
00501  7450          SNA             /IS CHARACTER 0 (TERMINATOR)?
00502  5671          JMP I MESSGE    /YES--RETURN--
00503  3326          DCA CHAR
00504  1326          TAD CHAR
00505  0367          AND (40
00506  7650          SNA CLA         /IS IT A LETTER?
00507  1163          TAD [100        /YES--301-337
00510  1162          TAD [200        /NO--240-277
00511  1326          TAD CHAR        /RESTORE CHARACTER
00512  4327          JMS TYPE        /OUTPUT IT
00513  2325          ISZ LOC
00514  1325          TAD LOC
00515  7010          RAR
00516  7630          SZL CLA         /WHICH HALF WAS THAT?
00517  5322          JMP .+3
00520  2324          ISZ FINDER      /RIGHT
00521  5276          JMP LNEXT
00522  1724          TAD I FINDER    /LEFT
00523  5300          JMP RHALF
00524  0000  FINDER, 0
00525  0000  LOC,    0
00526  0000  CHAR,   0


             /TELETYPE OUTPUT ROUTINE


00527  0000  TYPE,   0
00530  6041          TSF
00531  5330          JMP .-1
00532  6046          TLS
00533  7200          CLA
00534  5727          JMP I TYPE      /--RETURN--


/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 12


             /INSERT IOT'S ACCORDING TO TABLES
             /UNIT CONTAINS APPROPRIATE UNIT CODE
             /COUNT CONTAINS -(NUMBER OF IOT'S TO TRANSFER)
             /COUNT1 CONTAINS ADDRESS OF ADDRESS TABLE
             /UNIT CONTAINS UNIT CODE OF CURRENT UNIT

00535  0000  INSERT, 0
00536  1441          TAD I COUNT1
00537  3043          DCA COUNT3
00540  1045          TAD UNIT
00541  7421          MQL
00542  1443          TAD I COUNT3    /MAKE NEW IOT
00543  0366          AND (7007
00544  7501          MQA
00545  7041          CIA
00546  1443          TAD I COUNT3    /COMPARE WITH IOT FROM PROGRAM
00547  7650          SNA CLA         /ARE THE IOT'S THE SAME AS THE LAST UNIT?
00550  5735          JMP I INSERT    /YES--RETURN--
00551  1441  INS1,   TAD I COUNT1
00552  3043          DCA COUNT3
00553  1443          TAD I COUNT3    /GET IOT FROM PROGRAM
00554  0366          AND (7007       /RETAIN ONLY SIGNIFICANT BITS
00555  7501          MQA             /OR IN UNIT NUMBER
00556  3443          DCA I COUNT3    /PUT IT IN PROGRAM
00557  2041          ISZ COUNT1      /BUMP COUNTERS
00560  2040          ISZ COUNT       /DONE YET?
00561  5351          JMP INS1        /NO
00562  5735          JMP I INSERT    /YES--RETURN--


00566  7007
00567  0040
00570  0223
00571  7760
00572  7575
00573  7775
00574  0777
00575  0270
00576  7735
00577  7563
       0600  PAGE

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 13


             /COUNT THE NUMBER OF WORDS PER BLOCK
             /PLACE IT IN MWORDS
             /BE SURE ALL TAPES MATCH INPUT FORMAT

00600  1032  SETUP,  TAD LIST
00601  3031          DCA OPOINT      /SET POINTER TO I/O LIST
00602  3042          DCA COUNT2      /CLEAR COUNTER
00603  1030          TAD OCOUNT
00604  7040          CMA
00605  3033          DCA OUTNUM      /SET # OF UNITS
00606  1377  SET4,   TAD (TABLE1-END1-1      /SET UP COUNTERS FOR IOT FIX
00607  3040          DCA COUNT
00610  1376          TAD (TABLE1
00611  3041          DCA COUNT1
00612  1431          TAD I OPOINT
00613  3045          DCA UNIT
00614  4561          JMS I [INSERT   /PUT THE PROPER IOT'S IN THE FOLLOWING ROUTINE
00615  3047          DCA WDCNT       /CLEAR WORD COUNT
00616  1045          TAD UNIT
00617  0160          AND [4000
00620  1375          TAD (2000
00621  6774  IOTX7,  SDLC
00622  7200          CLA
00623  6776  IOTX8,  SDRC
00624  7006          RTL
00625  7430          SZL             /DOES UNIT EXIST?
00626  5231          JMP .+3         /YES
00627  4557  SELERR, JMS I [ERR3     /@SELECT ERROR UNIT N@
00630  5200          JMP SETUP
00631  0374          AND (400
00632  7640          SZA CLA         /TURNED ON?
00633  5227          JMP SELERR      /NO
00634  1045          TAD UNIT        /GET 0 OR 1 UNIT BIT (0 OR 4000)
00635  0160          AND [4000
00636  1156          TAD [1000       /GET GO BIT
00637  6774  IOTX1,  SDLC            /START READING FORWARD
00640  4353          JMS SKIP4       /SKIP 8 LINES TO AVOID GARBAGE
00641  4353          JMS SKIP4
00642  6771  IOTX3,  SDSS            /LOOK FOR FORWARD BLOCK NUMBER (26)
00643  5242          JMP .-1
00644  6776  IOTX4,  SDRC
00645  0164          AND [77
00646  1373          TAD (-26
00647  7640          SZA CLA         /FOUND YET?
00650  5242          JMP IOTX3       /NO--KEEP LOOKING

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 14


00651  4353  SET2,   JMS SKIP4       /YES--START COUNTING LINES BY FOURS
00652  2047          ISZ WDCNT
00653  7000          NOP
00654  0164          AND [77
00655  1372          TAD (-51
00656  7640          SZA CLA         /FOUND GUARD YET?
00657  5251          JMP SET2        /NO
00660  1045          TAD UNIT        /YES
00661  0160          AND [4000
00662  6774  IOTX2,  SDLC            /STOP UNIT
00663  7200          CLA
00664  1042          TAD COUNT2
00665  7440          SZA             /IS THIS THE INPUT UNIT?
00666  5274          JMP SET5        /NO
00667  1371          TAD (-11        /YES--SAVE THE COUNT
00670  1047          TAD WDCNT
00671  7041          CIA
00672  3042          DCA COUNT2
00673  5300          JMP SET3        /FIRST OUTPUT UNIT
00674  1371  SET5,   TAD (-11        /NOT INPUT UNIT
00675  1047          TAD WDCNT
00676  7640          SZA CLA         /SAME NUMBER OF WORDS AS INPUT UNIT?
00677  5344          JMP ERR5        /NO*ILLEGAL FORMAT*
00700  2031  SET3,   ISZ OPOINT      /NEXT UNIT
00701  2033          ISZ OUTNUM      /DONE YET?
00702  5206          JMP SET4        /NO
00703  1042          TAD COUNT2      /YES--PRINT MESSAGE
00704  3555          DCA I [MWORDS   /SET UP NUMBER OF WORDS PER BLOCK
00705  1555          TAD I [MWORDS
00706  7041          CIA
00707  4554          JMS I [PRINT    /PRINT 4 DIGIT NUMBER OF BLOCKS
00710  4577          JMS I [MESSGE   /YES--PRINT REST OF MESSAGE
00711  0076          MESSG3
00712  4567          JMS I [CRLF

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 15


             /IF WHOLE TAPE IS TO BE COPIED, IT IS NECESSARY TO
             /COMPUTE THE NUMBER OF BLOCKS ON THE TAPE (NB)
             /USING THE NUMBER OF WORDS PER BLOCK (WB)
             /AND THE FORMULA:
             /OCTAL:          NB=[63 6160/(WB+17)]+2
             /DECIMAL:        NB=[212,080/(WB+15)]+2

00713  1036          TAD NUMBER
00714  7640          SZA CLA         /COPY WHOLE TAPE?
00715  5770'         JMP VERFQ       /NO--
00716  3040          DCA COUNT       /YES--COMPUTE NUMBER OF BLOCKS ON TAPE
00717  1555          TAD I [MWORDS
00720  7041          CIA
00721  1367          TAD (17
00722  3041          DCA COUNT1      /GET NUMBER OF WORDS PER BLOCK+17
00723  1366          TAD (-64
00724  3042          DCA COUNT2
00725  1365          TAD (-6160
00726  7100  SUB,    CLL
00727  1041          TAD COUNT1
00730  2040          ISZ COUNT       /COUNT A BLOCK--TOO MANY?
00731  7410          SKP             /NO
00732  5344          JMP ERR5        /YES--ERROR
00733  7430          SZL
00734  2042          ISZ COUNT2
00735  5326          JMP SUB
00736  7300          CLA CLL
00737  1040          TAD COUNT       /COUNT IS [63 6160/WB+17]+1
00740  7001          IAC             /ADD 1 MORE
00741  3036          DCA NUMBER      /STORE AS # OF BLOCKS TO TRANSFER
00742  5743          JMP I .+1
00743  1000          VERFQ

00744  7200  ERR5,   CLA
00745  4577          JMS I [MESSGE
00746  2472          ERROR5          /*ILLEGAL FORMAT UNIT*
00747  4553          JMS I [DECODE   /PRINT UNIT NUMBER
00750  4552          JMS I [CTRLR    /WAIT FOR CTRL/R
00751  4567          JMS I [CRLF     /CARRIAGE RETURN/LINE FEED
00752  5200          JMP SETUP       /TRY AGAIN




             /READ FOUR LINES AND FETCH MARK TRACK

00753  0000  SKIP4,  0
00754  6773  IOTX5,  SDSQ
00755  5354          JMP .-1
00756  6776  IOTX6,  SDRC
00757  5753          JMP I SKIP4     /--RETURN--




/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 16


00765  1620
00766  7714
00767  0017
00770  1000
00771  7767
00772  7727
00773  7752
00774  0400
00775  2000
00776  2447
00777  7770
       1000  PAGE

             /IS TAPE TO BE VERIFIED?
             /SET UP DEPENDING ON RESPONSE
01000  1046  VERFQ,  TAD VERF
01001  7640          SZA CLA         /VERIFY?
01002  5210          JMP YES         /YES--
01003  1377          TAD (NOP        /NO--
01004  3616          DCA I VERF1A
01005  1376          TAD (OUTN
01006  3617          DCA I VERF2A
01007  5214          JMP CONT
01010  1375  YES,    TAD (RAR
01011  3616          DCA I VERF1A
01012  1374          TAD (VERIFY
01013  3617          DCA I VERF2A
01014  5615  CONT,   JMP I .+1
01015  1200          DOIT

01016  1311  VERF1A, VERF1
01017  1274  VERF2A, VERF2

             /WAIT FOR CTRL/R

01020  0000  CTRLR,  0
01021  4551          JMS I [LISTEN   /FETCH CHARACTER
01022  1150          TAD [-222
01023  7640          SZA CLA         /IT IT CTRL/R?
01024  5221          JMP .-3         /NO--WAIT FOR ONE
01025  4567          JMS I [CRLF     /CARRIAGE RETURN/LINE FEED
01026  5620          JMP I CTRLR     /--RETURN--


01027  3040  REPEAT, DCA COUNT
01030  4567          JMS I [CRLF
01031  4547          JMS I [QUEST    /@REPEAT (YES=1;NO=0):@
01032  1122          MESS11
01033  7701          ACL
01034  0173          AND [7
01035  7640          SZA CLA
01036  5546          JMP I [CLEAN    /YES
01037  5545          JMP I [START+4  /NO--RESTART

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 17


01040  0611  MESSG6, TEXT @FIRST INPUT BLOCK:@
01041  2223
01042  2440
01043  1116
01044  2025
01045  2440
01046  0214
01047  1703
01050  1372
01051  0000
01052  0611  MESSG7, TEXT @FIRST OUTPUT BLOCK:@
01053  2223
01054  2440
01055  1725
01056  2420
01057  2524
01060  4002
01061  1417
01062  0313
01063  7200
01064  1625  MESSG8, TEXT @NUMBER OF BLOCKS TO COPY:@
01065  1502
01066  0522
01067  4017
01070  0640
01071  0214
01072  1703
01073  1323
01074  4024
01075  1740
01076  0317
01077  2031
01100  7200
01101  2605  MESSG9, TEXT @VERIFY OUTPUT (YES=1,NO=0):@
01102  2211
01103  0631
01104  4017
01105  2524
01106  2025
01107  2440
01110  5031
01111  0523
01112  7561
01113  5416
01114  1775
01115  6051
01116  7200
01117  0417  MESS10, TEXT @DONE@
01120  1605
01121  0000
01122  2205  MESS11, TEXT @REPEAT (YES=1,NO=0):@
01123  2005
01124  0124
01125  4050

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 17-1

01126  3105
01127  2375
01130  6154
01131  1617
01132  7560
01133  5172
01134  0000
01135  2605  ERROR1, TEXT @VERIFY ERROR BLOCK @
01136  2211
01137  0631
01140  4005
01141  2222
01142  1722
01143  4002
01144  1417
01145  0313
01146  4000
01147  2401  ERROR2, TEXT @TAPE ERROR BLOCK @
01150  2005
01151  4005
01152  2222
01153  1722
01154  4002
01155  1417
01156  0313
01157  4000
01160  2305  ERROR3, TEXT @SELECT ERROR UNIT @
01161  1405
01162  0324
01163  4005
01164  2222
01165  1722
01166  4025
01167  1611
01170  2440
01171  0000

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 18


01174  1400
01175  7010
01176  1246
01177  7000
       1200  PAGE

             /SETUP FOR ACTUAL READ/WRITE/VERIFY OPERATION
01200  1144  DOIT,   TAD [LIMIT-END  /SET UP NUMBER OF BLOCKS
01201  4275          JMS DIV1        /IN FIELD 0 BUFFER
01202  3051          DCA FLD0
01203  1371          TAD M200
01204  4275          JMS DIV1        /AND IN FIELD N BUFFERS
01205  3052          DCA FLDN
01206  1034          TAD IBLOCK      /SET UP RUNNING COUNTERS AND POINTERS
01207  3064          DCA INB         /FOR NEXT INPUT BLOCK
01210  1035          TAD OBLOCK
01211  3065          DCA OUTB        /FOR NEXT OUTPUT BLOCK
01212  1036          TAD NUMBER
01213  3057          DCA NUMB1       /FOR NUMBER OF BLOCKS LEFT TO TRANSFER
01214  5220          JMP .+4
01215  1055  ALLDUN, TAD XNUMB
01216  7650          SNA CLA         /DONE WITH ALL BLOCKS YET?
01217  5313          JMP REWIND      /YES
             /READ---
01220  1032  READX,  TAD LIST        /NO--SET UP POINTER TO OUTPUT UNITS
01221  3031          DCA OPOINT
01222  1030          TAD OCOUNT
01223  7040          CMA
01224  3033          DCA OUTNUM
01225  1064          TAD INB
01226  3056          DCA BLOCKN
01227  1057          TAD NUMB1       /SET POINTERS FOR TRANSFER
01230  3055          DCA XNUMB
01231  1057          TAD NUMB1
01232  3060          DCA NUMB2       /SAVE COUNTER FOR WRITE
01233  1020          TAD INPUT       /SELECT INPUT UNIT
01234  3045          DCA UNIT
01235  3050          DCA RW          /SET R/W BIT TO READ

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 19


01236  1176          TAD [END        /SET START OF BUFFERS IN CASE
01237  3053          DCA BUF0        /THEY WERE CHANGED BY VERIFY
01240  3054          DCA BUFN
01241  4543          JMS I [READY    /FILL THE BUFFERS
01242  1055          TAD XNUMB       /SAVE THE POINTERS
01243  3057          DCA NUMB1
01244  1056          TAD BLOCKN
01245  3064          DCA INB

01246  2031  OUTN,   ISZ OPOINT
01247  2033          ISZ OUTNUM      /DONE WITH ALL UNITS YET?
01250  5254          JMP .+4         /NO--CONTINUE WRITING
01251  1066          TAD OHOLD       /YES
01252  3065          DCA OUTB
01253  5215          JMP ALLDUN      /READ ANOTHER BUFFER LOAD
01254  1065  WRITEX, TAD OUTB
01255  3066          DCA OHOLD
01256  1066          TAD OHOLD       /WRITE
01257  3056          DCA BLOCKN      /RESET POINTERS
01260  1065          TAD OUTB
01261  3061          DCA VB          /SAVE COUNTER FOR VERIFY
01262  1060          TAD NUMB2
01263  3055          DCA XNUMB
01264  1431          TAD I OPOINT    /SELECT OUTPUT UNIT
01265  3045          DCA UNIT
01266  7330          CLA CLL CML RAR /AC=4000
01267  3050          DCA RW          /SET R/W BIT TO WRITE
01270  4543          JMS I [READY
01271  1056          TAD BLOCKN
01272  3066          DCA OHOLD
01273  5674          JMP I .+1
01274  1400  VERF2,  VERIFY



/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 20


             /SEE HOW MANY BLOCKS WILL FIT INTO BUFFER
             /ENTER WITH BUFFER SIZE IN AC
             /EXIT WITH # OF BLOCKS IN AC

01275  0000  DIV1,   0
01276  3041          DCA COUNT1
01277  3040          DCA COUNT
01300  1041          TAD COUNT1      /TOTAL WORDS
01301  7100  DIV2,   CLL
01302  1555          TAD I [MWORDS   /-NUMBER OF WORDS PER BLOCK
01303  7420          SNL             /RUN OUT OF ROOM?
01304  5307          JMP .+3         /YES--
01305  2040          ISZ COUNT       /NO--COUNT A BLOCK
01306  5301          JMP DIV2
01307  7300          CLA CLL         /IGNORE LESS THAN A BLOCK LEFT
01310  1040          TAD COUNT
01311  7010  VERF1,  RAR             /DIVIDE BY 2 IF VERIFY (NOP IF NO VERIFY)
01312  5675          JMP I DIV1      /--RETURN--

             /END OF OPERATION
             /REWIND TAPES TO INITIAL END ZONE

01313  1030  REWIND, TAD OCOUNT
01314  7040          CMA
01315  3042          DCA COUNT2      /SET NUMBER OF TAPES STILL SPINNING
01316  7240  RLIST,  CLA CMA
01317  1032          TAD LIST
01320  3031          DCA OPOINT      /SET POINTER TO UNIT LIST
01321  1030          TAD OCOUNT
01322  7001          IAC
01323  7040          CMA
01324  3033          DCA OUTNUM      /SET NUMBER OF UNITS IN LIST
01325  4566  RUNIT,  JMS I   [PARITY
01326  4542          JMS I [CHECK    /CHECK TTY FOR CTRL/S OR CTRL/C
01327  2033          ISZ OUTNUM      /DONE WITH WHOLE LIST YET?
01330  7610          SKP CLA         /NO
01331  5316          JMP RLIST       /YES--START THROUGH LIST AGAIN
01332  2031          ISZ OPOINT
01333  1431          TAD I OPOINT    /GET UNIT CODE
01334  7006          RTL
01335  7630          SZL CLA         /STILL SPINNING?
01336  5325          JMP RUNIT       /NO--TRY NEXT TAPE
01337  1431          TAD I OPOINT    /YES
01340  3045          DCA UNIT

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 21



01341  1141          TAD [-6
01342  3040          DCA COUNT
01343  1140          TAD [RTAB
01344  3041          DCA COUNT1
01345  4561          JMS I [INSERT   /PUT PROPER IOT'S IN THIS ROUTINE
01346  1431          TAD I OPOINT
01347  0160          AND [4000       /UNIT/READ
01350  1137          TAD [3000       /REVERSE/GO
01351  6774  IOTR1,  SDLC
01352  4536          JMS I [SKIPQ
01353  4536          JMS I [SKIPQ    /WAIT FOR DRIVE TO GET UP TO SPEED
01354  6771  IOTR2,  SDSS
01355  5354          JMP .-1
01356  6776  IOTR3,  SDRC            /GET MARK TRACK BITS
01357  0164          AND [77
01360  1135          TAD [-22
01361  7640          SZA CLA         /END ZONE?
01362  5325          JMP RUNIT       /NO--NEXT UNIT
01363  7332          CLA CLL CML RTR /AC=2000
01364  7501          MQA             /UNIT CODE STILL IN MQ FROM INSERT
01365  3431          DCA I OPOINT    /SET STOPPED BIT
01366  1431          TAD I OPOINT
01367  0134          AND [6000
01370  6774  IOTR4,  SDLC            /STOP UNIT
01371  7600  M200,   7600            /CLA
01372  2042          ISZ COUNT2      /ALL TAPES STOPPED?
01373  5325          JMP RUNIT       /NO--NEXT UNIT
01374  4577          JMS I [MESSGE   /YES
01375  1117          MESS10          /@DONE@
01376  5565          JMP I [REPEAT


/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 22



       1400  PAGE

             /VERIFICATION ROUTINES

01400  1061  VERIFY, TAD VB          /SET POINTERS AND COUNTERS FOR TRANSFER
01401  3056          DCA BLOCKN
01402  1060          TAD NUMB2
01403  3055          DCA XNUMB
01404  3050          DCA RW
01405  1062          TAD END0        /SET BEGINNINGS OF VERIFY BUFFERS
01406  3053          DCA BUF0
01407  1377          TAD (3700
01410  3054          DCA BUFN
01411  1275          TAD CDF0
01412  3271          DCA COMP2
01413  4543          JMS I [READY    /READ VERIFY BUFFERS FULL
01414  1041          TAD COUNT1      /GET # OF BLOCKS IN LAST BUFFER FILLED
01415  3043          DCA COUNT3
01416  7040          CMA             /SET AUTOINDEX POINTERS TO BUFFERS
01417  1176          TAD [END
01420  3011          DCA X11
01421  7140          CMA CLL
01422  1062          TAD END0
01423  3012          DCA X12
01424  1040          TAD COUNT
01425  7040          CMA
01426  1037          TAD FIELDS
01427  3040          DCA COUNT       /SET NUMBER OF FIELDS WHICH WERE FILLED
01430  4255          JMS COMP4       /GET NUMBER OF BLOCKS
01431  1051          TAD FLD0
01432  7041          CIA
01433  3044          DCA COUNT4      /SET COUNTER
01434  4266          JMS COMP        /COMPARE THE BUFFERS

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 23


01435  1040  COMP3,  TAD COUNT
01436  7650          SNA CLA
01437  5533          JMP I [OUTN
01440  4255          JMS COMP4       /GET NUMBER OF BLOCKS
01441  1052          TAD FLDN
01442  7041          CIA
01443  3044          DCA COUNT4
01444  1271          TAD COMP2       /EACH FIELD------
01445  1376          TAD (10
01446  3271          DCA COMP2       /SET CDF INSTRUCTION PROPERLY
01447  7140          CMA CLL         /SET AUTOINDEX POINTERS TO BUFFERS
01450  3011          DCA X11
01451  1375          TAD (3677
01452  3012          DCA X12
01453  4266          JMS COMP
01454  5235          JMP COMP3       /DO THE NEXT FIELD


             /ENTER WITH AC CLEAR
             /EXIT TO CALL+1 WITH AC CLEAR IF
             /NORMAL BUFFER FILL
             /EXIT TO CALL+2 WITH # OF BLOCKS IN AC IF
             /LAST BUFFER

01455  0000  COMP4,  0
01456  2040          ISZ COUNT       /LAST FIELD FILLED?
01457  5655          JMP I COMP4     /NO--RETURN--
01460  1055          TAD XNUMB       /YES--OUT OF BLOCKS?
01461  7640          SZA CLA
01462  5655          JMP I COMP4     /NO--RETURN--
01463  1043          TAD COUNT3      /YES--GET ACTUAL # OF BLOCKS
01464  2255          ISZ COMP4       /INCREMENT RETURN ADDRESS
01465  5655          JMP I COMP4     /--RETURN--


/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 24


             /COMPARE PORTION OF VERIFY ROUTINE

01466  0000  COMP,   0
01467  1555          TAD I [MWORDS   /SET NUMBER OF WORDS PER BLOCK COUNTER
01470  3042          DCA COUNT2
01471  7402  COMP2,  HALT            /SHOULD CONTAIN CDF N
01472  1411          TAD I X11       /GET CORRESPONDING WORDS FROM EACH BUFFER
01473  7041          CIA
01474  1412          TAD I X12
01475  6201  CDF0,   CDF 0
01476  7640          SZA CLA         /DO WORDS MATCH?
01477  5305          JMP ERR1        /NO--VERIFY ERROR
01500  2042  TRY,    ISZ COUNT2      /DONE WITH BLOCK?
01501  5271          JMP COMP2       /NO--CONTINUE
01502  2044          ISZ COUNT4      /DONE WITH ALL BLOCKS?
01503  5267          JMP COMP+1      /NO
01504  5666          JMP I COMP      /YES--RETURN--

01505  4577  ERR1,   JMS I [MESSGE
01506  1135          ERROR1          /*VERIFY ERROR BLOCK *
01507  1044          TAD COUNT4      /GET CURRENT BLOCK NUMBER
01510  7041          CIA
01511  1774          TAD I (BLOCKS   /FROM BLOCK THIS OPERATION STARTED WITH
01512  4331          JMS PRINT        /PRINT 4 DIGIT BLOCK NUMBER
01513  4577          JMS I [MESSGE
01514  2505          ERROR6          /*UNIT *
01515  4553          JMS I [DECODE   /PRINT UNIT NUMBER
01516  4551  WAIT,   JMS I [LISTEN   /WAIT FOR RESPONSE
01517  3331          DCA PRINT
01520  4567          JMS I [CRLF
01521  1331          TAD PRINT
01522  1132          TAD [-224
01523  7450          SNA             /WAS IT CTRL/T?
01524  5531          JMP I [WRITEX   /YES--TRY AGAIN
01525  1130          TAD [2
01526  7640          SZA CLA         /WAS IT CTRL/R?
01527  5316          JMP WAIT        /NO--WAIT FOR A GOOD RESPONSE
01530  5300          JMP TRY         /YES--IGNORE AND CONTINUE


/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 25




             /PRINT A 4 DIGIT OCTAL NUMBER
             /ENTER WITH NUMBER IN AC

01531  0000  PRINT,  0
01532  3577          DCA I [MESSGE   /TEMPORARY STORAGE
01533  1170          TAD [-4
01534  3575          DCA I [ANSWER   /SET DIGIT COUNTER
01535  1577          TAD I [MESSGE
01536  7004          RAL
01537  3567          DCA I [CRLF
01540  1567  FOUR,   TAD I [CRLF
01541  7004          RAL
01542  7006          RTL
01543  3567          DCA I [CRLF
01544  1567          TAD I [CRLF
01545  0173          AND [7
01546  1127          TAD [260
01547  4572          JMS I [TYPE     /PRINT ONE DIGIT
01550  2575          ISZ I [ANSWER   /DONE YET?
01551  5340          JMP FOUR        /NO
01552  5731          JMP I PRINT     /YES--RETURN--


             /CLEAN UP UNIT TABLES AFTER REWIND

01553  1032  CLEAN,  TAD LIST
01554  3031          DCA OPOINT
01555  1030          TAD OCOUNT
01556  7040          CMA
01557  3033          DCA OUTNUM      /SET POINTER AND COUNTER
01560  1431  CLEAN1, TAD I OPOINT    /GET UNIT CODE
01561  0373          AND (4770       /MASK OUT EXTRANEOUS BITS
01562  3431          DCA I OPOINT    /REPLACE IT
01563  2031          ISZ OPOINT
01564  2033          ISZ OUTNUM      /DONE YET?
01565  5360          JMP CLEAN1      /NO
01566  5526          JMP I [DOIT     /YES--NEXT OPERATION




/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 26


01573  4770
01574  1715
01575  3677
01576  0010
01577  3700
       1600  PAGE

             /FILL ALL N FIELDS ONCE
             /ENTER WITH AC CLEAR
             /# OF BLOCKS FOR FIELD 0 IN FLD0
             /# OF BLOCKS FOR OTHERS IN FLDN
             /ADDRESSES OF BUFFERS IN BUF0, BUFN
             /R/W BIT (0 OR 4000) IN RW



01600  0000  READY,  0
01601  1125          TAD [IOTLOC-TABEND-1
01602  3040          DCA COUNT
01603  1124          TAD [IOTLOC
01604  3041          DCA COUNT1
01605  4561          JMS I [INSERT   /PUT PROPER IOT'S IN HANDLER
01606  1045          TAD UNIT
01607  7710          SPA CLA         /EVEN OR ODD UNIT NUMBER?
01610  7107          CLL IAC RTL     /ODD
01611  1123          TAD [ORIGIN     /EVEN
01612  3063          DCA ENTRY       /SET UP ENTRY TO HANDLER
01613  1050          TAD RW
01614  7421          MQL             /STORE UNIT BIT FOR LATER
01615  7040          CMA
01616  1037          TAD FIELDS      /SET COUNTER FOR # OF FIELDS
01617  3040          DCA COUNT
01620  7100          CLL
01621  1051          TAD FLD0        /ADJUST NUMBER OF BLOCKS TO
01622  4257          JMS SUB1        /TRANSFER DEPENDING ON NUMBER
01623  1051          TAD FLD0        /LEFT TO BE TRANSFERRED
01624  4266          JMS SUB2        /RESET FUNCTION WORD
01625  1053          TAD BUF0        /SET UP BUFFER POINTERS
01626  4277          JMS SUB3
01627  4307          JMS TRANS       /TRANSFER DATA--FIELD 0
01630  2040  ZOOM,   ISZ COUNT       /BEGINNING OF LOOP FOR EACH FIELD ABOVE 0
01631  7410          SKP             /DONE YET?
01632  5600          JMP I READY     /YES--RETURN--

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 27


01633  1037          TAD FIELDS
01634  7141          CIA CLL
01635  1040          TAD COUNT
01636  7001          IAC
01637  7004          RAL
01640  7006          RTL             /GET FIELD SETTING READY
01641  7421          MQL             /STORE IN MQ
01642  1313          TAD FUNCTN      /GET PREVIOUS FUNCTION WORD
01643  0160          AND [4000       /GET R/W BIT
01644  7501          MQA             /OR IN FIELD SETTING
01645  7421          MQL             /STORE
01646  7100          CLL
01647  1052          TAD FLDN        /ADJUST NUMBER OF BLOCKS TO TRANSFER
01650  4257          JMS SUB1
01651  1052          TAD FLDN
01652  4266          JMS SUB2        /AND RESET FUNCTION WORD
01653  1054          TAD BUFN
01654  4277          JMS SUB3        /SET UP BUFFER POINTERS
01655  4307          JMS TRANS       /TRANSFER DATA--FIELDS 1-N
01656  5230          JMP ZOOM        /FILL ANOTHER FIELD

01657  0000  SUB1,   0
01660  7041          CIA
01661  1055          TAD XNUMB
01662  7120          CLL CML         /SET LINK=1
01663  7500          SMA             /ARE THERE LESS BLOCKS LEFT THAN A FIELD FULL?
01664  3055          DCA XNUMB       /NO--REDUCE COUNT OF BLOCKS LEFT
01665  5657          JMP I SUB1      /YES-TRANSFER BLOCKS LEFT--RETURN--

01666  0000  SUB2,   0
01667  3041          DCA COUNT1      /LINK=1 IF BLOCKS LEFT, 0 IF NONE
01670  7420          SNL             /DONE WITH ALL BLOCKS YET?
01671  3055          DCA XNUMB       /YES--BUMP SWITCH
01672  1041          TAD COUNT1      /NO
01673  7002          BSW
01674  7501          MQA             /PUT # OF BLOCKS INTO FUNCTION WORD
01675  3313          DCA FUNCTN      /START REVERSE
01676  5666          JMP I SUB2      /--RETURN--


/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 28


01677  0000  SUB3,   0
01700  3314          DCA BUFADD
01701  1056          TAD BLOCKN      /SET STARTING BLOCK NUMBER
01702  3315          DCA BLOCKS
01703  1041          TAD COUNT1
01704  1056          TAD BLOCKN
01705  3056          DCA BLOCKN      /RESET STARTING BLOCK FOR NEXT TIME
01706  5677          JMP I SUB3      /--RETURN--


             /CALL TO THE HANDLER

01707  0000  TRANS,  0
01710  4566          JMS I   [PARITY         /CHECK TELETYPE
01711  4542          JMS I [CHECK    /WAS ^C OR ^S TYPED?
01712  4463          JMS I ENTRY
01713  0000  FUNCTN, 0               /FUNCTION WORD
01714  0000  BUFADD, 0               /BUFFER ADDRESS
01715  0000  BLOCKS, 0               /STARTING BLOCK NUMBER
01716  5330          JMP ERR         /ERROR RETURN
01717  4566          JMS I   [PARITY         /CHECK TELETYPE
01720  4542          JMS I [CHECK    /WAS ^C OR ^S TYPED?
01721  7200          CLA
01722  1055          TAD XNUMB
01723  7640          SZA CLA         /DONE YET?
01724  5707          JMP I TRANS     /NO--RETURN--
01725  2040          ISZ COUNT
01726  5600          JMP I READY     /--RETURN--
01727  5600          JMP I READY     /--RETURN--

             /TRANSFER ERROR HANDLER

01730  7650  ERR,    SNA CLA         /FATAL ERROR?
01731  5343          JMP SELECT      /NO
01732  4577          JMS I [MESSGE   /YES
01733  1147          ERROR2          /*TAPE ERROR BLOCK *
01734  1777          TAD I (BLOCK
01735  4554          JMS I [PRINT    /PRINT BLOCK NUMBER
01736  4577          JMS I [MESSGE
01737  2505          ERROR6          /*UNIT *
01740  4354          JMS DECODE      /PRINT UNIT NUMBER
01741  4567          JMS I [CRLF
01742  5522          JMP I [REWIND
01743  4346  SELECT, JMS ERR3
01744  2313          ISZ FUNCTN      /TURN AROUND AND TRY AGAIN
01745  5312          JMP FUNCTN-1


/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 29


01746  0000  ERR3,   0
01747  4577          JMS I [MESSGE
01750  1160          ERROR3          /*SELECT ERROR UNIT *
01751  4354          JMS DECODE      /PRINT UNIT NUMBER
01752  4776'         JMS CTRLR       /WAIT FOR CTRL/R
01753  5746          JMP I ERR3      /--RETURN--


             /DECODE UNIT NUMBER FOR PRINTING
             /PRINT UNIT NUMBER BEFORE RETURNING

01754  0000  DECODE, 0
01755  7100          CLL
01756  1045          TAD UNIT
01757  7004          RAL
01760  7421          MQL             /SAVE ROTATED CODE IN MQ
01761  7004          RAL
01762  7521          SWP             /SAVE EVEN/ODD BIT IN MQ
01763  7010          RAR             /WORK ON IOT CODE
01764  7012          RTR
01765  7001          IAC
01766  7040          CMA
01767  0173          AND [7
01770  7501          MQA             /INCLUDE EVEN/ODD BIT
01771  1127          TAD [260        /MAKE ASCII DIGIT
01772  4572          JMS I [TYPE
01773  5754          JMP I DECODE    /--RETURN--


01776  1020
01777  2004
       2000  PAGE


/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 30


             /TD8E DECTAPE HANDLER

             /SLIGHTLY MODIFIED VERSION OF DEC-E8-UZTA-D
             /COPYRIGHT 1971  DIGITAL EQUIPMENT CORPORATION
             /       MAYNARD, MASSACHUSETTS 01754

             /THE CALLING SEQUENCE IS:
             /       JMS ENTRY
             /       FUNCTION WORD
             /       BUFFER ADDRESS
             /       STARTING BLOCK
             /       ERROR RETURN
             /       NORMAL RETURN (AC CLEAR)

             /FUNCTION WORD:
             /       BIT 0:          0=READ, 1=WRITE
             /       BITS 1-5:       # OF BLOCKS TO BE TRANSFERRED
             /       BITS 6-8:       FIELD OF BUFFER AREA
             /       BITS 9-10:      UNUSED
             /       BIT 11:         1=START FORWARD, 0=START REVERSE

             /ERRORS:
             /THE HANDLER DETECTS TWO TYPES OF ERRORS:
             /FATAL ERRORS:
             /       PARITY ERROR
             /       TIMING ERROR
             /       TOO GREAT A BLOCK NUMBER
             /FATAL ERRORS TAKE ERROR RETURN WITH AC=4000
             /NON-FATAL ERROR:
             /       SELECT ERROR (IMPROPER UNIT NUMBER OR NO UNIT NUMBER)
             /NON-FATAL ERROR TAKES ERROR RETURN WITH AC=0

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 31

       2000  PAGE

       0000  MFIELD=0
       2000  ORIGIN=.

02000  0000  DTA0,   0               /ENTRY POINT FROM UNIT 0
02001  7300          CLA CLL         /0 TO LINK
02002  5210          JMP DTA1X
02003  1000  C1000,  1000
02004  0000  DTA1,   0               /UNIT 2 ENTRY
02005  7320          CLA CLL CML     /1 TO LINK
02006  1204          TAD DTA1
02007  3200          DCA DTA0        /PICK UP ARGS AT DTA0
02010  7010  DTA1X,  RAR
02011  3361          DCA YUNIT       /LINK TO UNIT POSITION
02012  6214          RDF
02013  1354          TAD C6203       /GET DATA FIELD AND SETUP RETURN
02014  3351          DCA LEAVE
02015  1361          TAD YUNIT       /GET FUNCTION WORD
02016  6774  IOT4,   SDLC            /PUT FUNCTION INTO DATA REGISTER
02017  1600          TAD I   DTA0
02020  6775  IOT1,   SDLD
02021  7200          CLA
02022  1360          TAD MWORDS
02023  3356          DCA WCOUNT      /STORE MASTER WORD COUNT
02024  2200          ISZ DTA0        /TO BUFFER
02025  1600          TAD I DTA0
02026  3357          DCA BUFF
02027  2200          ISZ DTA0        /TO BLOCK NUMBER
02030  1600          TAD I DTA0
02031  3204          DCA BLOCK
02032  2200          ISZ DTA0        /POINT TO ERROR EXIT
02033  6203          CIF CDF MFIELD  /TO ROUTINES DATA FIELD
02034  6777  IOT2,   SDRD            /GET FUNCTION INTO AC
02035  7104          CLL RAL
02036  0305          AND CM200       /GET # PAGES TO XFER
02037  3364          DCA PGCT
02040  6777  IOT3,   SDRD
02041  0374  C374,   AND C70         /GET FIELD FOR XFER
02042  1353          TAD C6201       /FORM CDF N
02043  3377          DCA XFIELD      /IF=0 AND DF=N AT XFER.
02044  7346          CLA CLL CMA RTL
02045  3367          DCA TRYCNT      /3 ERROR TRIES
02046  6776  IOT5,   SDRC
02047  0366          AND C100
02050  7640          SZA CLA
02051  5345          JMP FATAL-1

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 32


02052  6777  IOT6,   SDRD            /PUT FUNCT INTO XFUNCT IN SECOND PG.
02053  3762          DCA I CXFUN
02054  1356          TAD WCOUNT
02055  3765          DCA I CXWCT
02056  6777  IOT7,   SDRD            /GET MOTION BIT TO LINK
02057  7110          CLL RAR
02060  5277          JMP GO          /AND START THE MOTION.
02061  6772  RWCOM,  SDST            /ANY CHECKSUM ERRORS?
02062  7640          SZA CLA         /OR CHECKSUM ERRORS?
02063  5337          JMP TRY3        /PLEASE NOTE THAT THE LINK IS ALWAYS
                                     /SET AT RWCOM. GETCHK SETS IT.
02064  1364          TAD PGCT        /NO ERROR..FINISHED XFER?
02065  1305          TAD CM200
02066  7450          SNA
02067  5344          JMP EXIT        /ALL DONE. GET OUT
02070  3364          DCA PGCT        /NEW PAGE COUNT
02071  2204          ISZ BLOCK       /NEXT BLOCK TO XFER
02072  1356          TAD WCOUNT      /FORM NEXT BUFFER ADDRESS
02073  7041          CIA
02074  1357          TAD BUFF
02075  3357          DCA BUFF
02076  7120          CLL CML         /FORCES MOTION FORWARD
02077  7232  GO,     CLA CML RTR     /LINK BECOMES MOTION BIT
02100  1203          TAD C1000
02101  1361          TAD YUNIT       /PUT IN 'GO' AND UNIT #
02102  6774  IOT8,   SDLC            /LOOK FOR BLOCK NO.
02103  4755          JMS I CRDQUD    /WAIT AT LEAST 6 LINES TO LOOK
02104  4755          JMS I CRDQUD
02105  7600  CM200,  7600            /COULD HAVE SAVED A LOC. HERE
02106  6771  SRCH,   SDSS
02107  5306          JMP .-1         /WAIT FOR SINGLE LINE FLAG
02110  6776  IOT9,   SDRC
02111  7106          CLL RTL         /DIRECTION TO LINK. INFO BITS 
                                     /ARE SHIFTED.
02112  0241          AND C374        /ISOLATE MARK TRACK BITS
02113  1331          TAD M110        /IS IT END ZONE?
02114  7450          SNA             /THE LINK STAYS SAME THRU THIS
02115  5333          JMP ENDZ
02116  1363          TAD M20         /CHECK FOR BLOCK MARK
02117  7640          SZA CLA
02120  5306          JMP SRCH
02121  6777  IOT10,  SDRD            /GET THE BLOCK NUMBER
02122  7430          SZL             /IF WE ARE IN REVERSE, LOOK FOR 3
                                     /BLOCKS BEFORE TARGET BLOCK. THIS
                                     /ALLOWS TURNAROUND AND UP TO SPEED.
02123  1375          TAD C3          /REVERSE
02124  7040          CMA
02125  1204          TAD BLOCK
02126  7040          CMA             /IS IT RIGHT BLOCK?
02127  7450          SNA
02130  5370          JMP FOUND       /YES..HOORAY!
02131  7670  M110,   SZL SNA CLA     /NO, BUT ARE WE HEADED FOR IT?
                                     /ABOVE SNA IS SUPERFLUOUS.
02132  5306          JMP SRCH        /YES

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 32-1

02133  6776  ENDZ,   SDRC            /WE ARE IN THE END ZONE
02134  7106          CLL RTL         /DIRECTION TO LINK
02135  7200           CLA            /ARE WE IN REVERSE?
02136  5277          JMP GO          /YES..TURN US AROUND
             /IF WE ARE IN THE END ZONE GOING FORWARD, IT IS AN ERROR
02137  7300  TRY3,   CLL CLA
02140  2367          ISZ TRYCNT
02141  5277          JMP GO          /TRY 3 TIMES
02142  7300          CLL CLA
02143  5346          JMP FATAL               /LINK OFF MEANS AC=4000 ON RETURN
02144  2200  EXIT,   ISZ DTA0
02145  7120          CLL CML         /AC=0 ON NORMAL RETURN
02146  1361  FATAL,  TAD YUNIT
02147  6774          SDLC            /STOP THE UNIT
02150  7230          CLA CML RAR
02151  7402  LEAVE,  HLT
02152  5600          JMP I DTA0      /--RETURN--


/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 33


02153  6201  C6201,  6201
02154  6203  C6203,  6203
02155  2314  CRDQUD, RDQUAD
02156  0000  WCOUNT, 0
02157  0000  BUFF,   0
02160  0000  MWORDS, 0
02161  0000  YUNIT,  0
02162  2354  CXFUN,  XFUNCT
02163  7760  M20,    -20
02164  0000  PGCT,   0
02165  2362  CXWCT,  XWCT
02166  0100  C100,   100
02167  7775  TRYCNT, -3
       2004  BLOCK=DTA1


       2170          *ORIGIN+170
02170  7630  FOUND,  SZL CLA         /RIGHT BLOCK. HOW ABOUT DIRECTION?
02171  5277          JMP GO          /WRONG..TURN AROUND
02172  1361          TAD YUNIT       /PUT UNIT INTO LINK
02173  7104          CLL RAL         /AC IS NOW 0
02174  0070  C70,    70              /********DON'T MOVE THIS!!!!******
02175  0003  C3,     3
02176  1357          TAD BUFF        /GET BUFFER ADDRESS
02177  7402  XFIELD, HLT             /INTO NEXT PAGE

       2200          *ORIGIN+200
       2321          XUNIT=EQUFUN

02200  3361          DCA     XBUFF
02201  6776  IOT16,  SDRC
02202  6774  IOT17,  SDLC
02203  7010          RAR             /NOW GET UNIT #
02204  3321          DCA XUNIT
02205  6771  REVGRD, SDSS
02206  5205          JMP REVGRD              /LOOK FOR REVERSE GUARD
02207  6776  IOT11,  SDRC
02210  0242          AND K77
02211  1355          TAD CM32        /IS IT REVERSE GUARD?
02212  7640          SZA CLA
02213  5205          JMP REVGRD      /NO.KEEP LOOKING
02214  1362          TAD XWCT
02215  3360          DCA WORDS       /WORD COUNTER
02216  1354          TAD XFUNCT      /GET FUNCTION  READ OR WRITE
02217  7700  K7700,  SMA CLA
02220  5255          JMP READ        /NEG. IS WRITE
02221  6776  WRITE,  SDRC
02222  0267          AND C300        /CHECK FOR WRITE LOCK AND SELECT ERROR
02223  7120          CLL CML         /LOCK OUT AND SELECT ARE AC 0 ERRORS
02224  7640          SZA CLA
02225  5752          JMP I CFATAL    /FATAL ERROR. LINK MUST BE ON
02226  4314          JMS RDQUAD      /NO ONE EVER USES THIS WORD!
02227  7600  C7600,  7600
02230  1356          TAD C1400

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 33-1

02231  1321          TAD XUNIT       /INITIATE WRITE MODE
02232  6774  IOT12,  SDLC
02233  7240          CLA CMA
02234  4305          JMS WRQUAD      /PUT 77 IN REVERSE CHECKSUM
02235  7240          CLA CMA
02236  3357          DCA CHKSUM
02237  1761  WRLP,   TAD I XBUFF     /GLORY BE! THE ACTUAL WRITE!
02240  4305          JMS WRQUAD
02241  2361          ISZ XBUFF       /BUMP CORE POINTER
02242  0077  K77,    77              /ABOVE MAY SKIP
02243  2360          ISZ WORDS       /DONE THIS BLOCK?
02244  5237          JMP WRLP        /NOT YET..LOOP A WHILE
02245  1354          TAD XFUNCT      /IS THE OPERATION FOR WDSBLK PER BLOCK?
02246  7112          CLL RTR         /IF NO, WRITE A 0 WORD
02247  7630          SZL CLA

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 34


02250  4305          JMS WRQUAD      /WRITE A WORD OF 0
02251  4336          JMS GETCHK      /DO THE CHECK SUM
02252  4305          JMS WRQUAD      /WRITE FORWARD CHECKSUM
02253  4305          JMS WRQUAD      /ALLOW CHECKSUM TO BE WRITTEN
02254  5753          JMP I CRWCOM


02255  4314  READ,   JMS RDQUAD
02256  4314          JMS RDQUAD
02257  4314          JMS RDQUAD      /SKIP CONTROL WORDS
02260  0242          AND K77
02261  1217          TAD K7700       /TACK 7700 ONTO CHECKSUM.
02262  3357          DCA CHKSUM      /CHECKSUM ONLY LOW 6 BITS ANYWAY
02263  4314  RDLP,   JMS RDQUAD
02264  4321          JMS EQUFUN      /COMPUT CHECKSUM AS WE GO
02265  3761          DCA I XBUFF     /IT GETS CONDENSED LATER
02266  2361          ISZ XBUFF
02267  0300  C300,   300             /PROTECTION
02270  2360          ISZ WORDS       /DONE THIS OP?
02271  5263          JMP RDLP        /NO SUCH LUCK
02272  1354          TAD XFUNCT      /IF OP WAS FOR WDSBLK-1, READ AND
02273  7112          CLL RTR         /CHECKSUM THE LAST TAPE WORD
02274  7620          SNL CLA
02275  5300          JMP RDLP2
02276  4314          JMS RDQUAD      /NOT NEEDED FOR WDSBLK/BLOCK
02277  4321          JMS EQUFUN      /CHECKSUM IT
02300  4314  RDLP2,  JMS RDQUAD      /READ CHECKSUM
02301  0217          AND K7700
02302  4321          JMS EQUFUN
02303  4336          JMS GETCHK      /GET SIX BIT CHECKSUM
02304  5753          JMP I CRWCOM

02305  0000  WRQUAD, 0               /WRITE OUT A 12 BIT WORD
02306  4321          JMS EQUFUN      /ADD THIS TO CHECKSUM
02307  6773  IOT13,  SDSQ            /SKIP ON QUADLINE FLAG
02310  5307          JMP .-1
02311  6775  IOT14,  SDLD            /LOAD DATA  ONTO BUS
02312  7200          CLA             /SDLD DOESN'T CLEAR AC
02313  5705          JMP I WRQUAD

02314  0000  RDQUAD, 0               /READ A 12 BIT WORD
02315  6773          SDSQ
02316  5315          JMP .-1
02317  6777  IOT15,  SDRD            /READ DATA
02320  5714          JMP I RDQUAD


/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 35


02321  0000  EQUFUN, 0               /COMPUTE EQUIVALENCE CHECKSUM
02322  7040          CMA
02323  3363          DCA EQUTMP      /ACTUALLY CHECKSUMS ON DECTAPE ARE
02324  1363          TAD EQUTMP      /EQUIVALENCE OF ALL WORDS IN A RECORD
02325  0357          AND CHKSUM      /SIX BITS AT A TIME. BUT SINCE EQUIVALENCE
02326  7041          CIA             /IS ASSOCIATIVE, WE CAN DO IT 12
02327  7104          CLL RAL         /BITS AT A TIME AND CONDENSE LATER.
02330  1363          TAD EQUTMP      /THIS ROUTINE USES THESE IDENTITIES:
02331  1357          TAD CHKSUM      /A+B=(A.XOR.B)+2*(A.AND.B)
02332  3357          DCA CHKSUM      /A.EQU.B=.NOT.(A.XOR.B)=A.XOR.(.NOT.B)
02333  1363          TAD EQUTMP      /A.EQU.B=(A+(.NOT.B))-2*(A.AND.(.NOT.B))
02334  7040          CMA
02335  5721          JMP I EQUFUN

02336  0000  GETCHK, 0               /FORM 6 BIT CHECKSUM
02337  7200          CLA
02340  1357          TAD CHKSUM      
02341  7040          CMA
02342  7106          CLL RTL
02343  7006          RTL
02344  7006          RTL
02345  4321          JMS EQUFUN
02346  7320          CLA CLL CML     /FORCES LINK ON AT RWCOM
02347  1357          TAD CHKSUM
02350  0217          AND K7700
02351  5736          JMP I GETCHK

02352  2146  CFATAL, FATAL
02353  2061  CRWCOM, RWCOM
02354  0000  XFUNCT, 0
02355  7746  CM32,   -32
02356  1400  C1400,  1400
02357  0000  CHKSUM, 0
02360  0000  WORDS,  0
02361  0000  XBUFF,  0
02362  0000  XWCT,   0
02363  0000  EQUTMP, 0


/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 36

       2400  PAGE
             /
             /
02400  0000  PARITY, 0
02401  6036          KRB
02402  0121          AND     [177
02403  1162          TAD     [200
02404  5600          JMP I   PARITY

             /IOT TABLES FOR TD8E SUBROUTINE

02405  2020  IOTLOC, IOT1
02406  2034          IOT2
02407  2040          IOT3
02410  2016          IOT4
02411  2046          IOT5
02412  2052          IOT6
02413  2056          IOT7
02414  2061          RWCOM
02415  2102          IOT8
02416  2106          SRCH
02417  2110          IOT9
02420  2121          IOT10
02421  2133          ENDZ
02422  2147          FATAL+1
02423  2205          REVGRD
02424  2207          IOT11
02425  2221          WRITE
02426  2232          IOT12
02427  2307          IOT13
02430  2311          IOT14
02431  2315          RDQUAD+1
02432  2317          IOT15
02433  2201          IOT16
02434  2202  TABEND, IOT17

       2435  UNITS=.
02435  0770          UNIT01
02436  0760          UNIT23
02437  0750          UNIT45
02440  0740          UNIT67

02441  1351  RTAB,   IOTR1
02442  1354          IOTR2
02443  1356          IOTR3
02444  1370          IOTR4
02445  0367          IOTR5
02446  0371          IOTR6


             /IOT TABLES FOR WORDS PER BLOCK ROUTINE

02447  0637  TABLE1, IOTX1
02450  0662          IOTX2
02451  0642          IOTX3

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 36-1

02452  0644          IOTX4
02453  0754          IOTX5
02454  0756          IOTX6
02455  0621          IOTX7
02456  0623  END1,   IOTX8


/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 37

02457  0622  MESSG4, TEXT @FROM UNIT:@
02460  1715
02461  4025
02462  1611
02463  2472
02464  0000
02465  2417  MESSG5, TEXT @TO UNITS:@
02466  4025
02467  1611
02470  2423
02471  7200
02472  1114  ERROR5, TEXT @ILLEGAL FORMAT UNIT @
02473  1405
02474  0701
02475  1440
02476  0617
02477  2215
02500  0124
02501  4025
02502  1611
02503  2440
02504  0000
02505  4025  ERROR6, TEXT @ UNIT @
02506  1611
02507  2440
02510  0000
02511  1114  ERROR4, TEXT @ILLEGAL RESPONSE@
02512  1405
02513  0701
02514  1440
02515  2205
02516  2320
02517  1716
02520  2305
02521  0000


/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 38


       2600  PAGE
             /ONCE ONLY CODE

02600  4777  END,    JMS I (QUEST
02601  2646          MESSG2          /@HIGHEST FIELD AVAILABLE:@
02602  7701          ACL
02603  0173          AND [7
02604  7041          CIA
02605  3037          DCA FIELDS
02606  1376          TAD (CDF
02607  3220          DCA CDF00
02610  1037          TAD FIELDS
02611  7450          SNA             /MORE THAN 1 FIELD??
02612  5237          JMP LIM         /NO--NO PROBLEM
02613  3041          DCA COUNT1      /YES--ARE THEY ALL PRESENT?
02614  1220  NEXT,   TAD CDF00
02615  1375          TAD (10
02616  3220          DCA CDF00       /SET FOR DATA FIELD CHANGE
02617  1374          TAD (HLT
02620  6201  CDF00,  CDF
02621  3775          DCA I (10       /TRY LOCATION 10
02622  1775          TAD I (10
02623  6201          CDF 0
02624  7041          CIA
02625  1374          TAD (HLT
02626  7650          SNA CLA         /IS FIELD THERE?
02627  5235          JMP NEXT1       /YES--TRY NEXT ONE
02630  4577          JMS I [MESSGE   /NO
02631  2511          ERROR4          /ILLEGAL RESPONSE
02632  4567          JMS I [CRLF     /CARRIAGE RETURN/LINE FEED
02633  3040          DCA COUNT       /CLEAR COUNT
02634  5200          JMP END         /TRY AGAIN
02635  2041  NEXT1,  ISZ COUNT1      /DONE YET?
02636  5214          JMP NEXT        /NO

02637  1373  LIM,    TAD (LIMIT-END  /SET BEGINNING OF VERIFY BUFFER
02640  7110          CLL RAR
02641  1176          TAD [END
02642  3062          DCA END0
02643  1372          TAD (NOP
02644  3771          DCA I (START1-1
02645  5770          JMP I (START1
02646  1011  MESSG2, TEXT @HIGHEST FIELD AVAILABLE:@
02647  0710
02650  0523
02651  2440
02652  0611
02653  0514
02654  0440
02655  0126
02656  0111
02657  1401
02660  0214
02661  0572

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 38-1

02662  0000

02770  0207
02771  0206
02772  7000
02773  5000
02774  7402
02775  0010
02776  6201
02777  0336
00121  0177
00122  1313
00123  2000
00124  2405
00125  7750
00126  1200
00127  0260
00130  0002
00131  1254
00132  7554
00133  1246
00134  6000
00135  7756
00136  0366
00137  3000
00140  2441
00141  7772
00142  0457
00143  1600
00144  5000
00145  0204
00146  1553
00147  0336
00150  7556
00151  0450
00152  1020
00153  1754
00154  1531
00155  2160
00156  1000
00157  1746
00160  4000
00161  0535
00162  0200
00163  0100
00164  0077
00165  1027
00166  2400
00167  0317
00170  7774
00171  0212
00172  0527
00173  0007
00174  7770
00175  0400

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 38-2

00176  2600
00177  0471
       0000  FIELD 0
       0200  *200

             $

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 39

AGAIN  0217      DTA1X  2010      IOT13  2307      OUTNUM 0033
ALLDUN 1215      END    2600      IOT14  2311      OUTPUT 0021
ANSWER 0400      ENDZ   2133      IOT15  2317      PARITY 2400
BAD    0440      END0   0062      IOT16  2201      PGCT   2164
BLOCK  2004      END1   2456      IOT17  2202      PRINT  1531
BLOCKN 0056      ENTRY  0063      IOT2   2034      QUEST  0336
BLOCKS 1715      EQUFUN 2321      IOT3   2040      QUEST1 0345
BUFADD 1714      EQUTMP 2363      IOT4   2016      RDLP   2263
BUFF   2157      ERR    1730      IOT5   2046      RDLP2  2300
BUFN   0054      ERROR1 1135      IOT6   2052      RDQUAD 2314
BUF0   0053      ERROR2 1147      IOT7   2056      READ   2255
CDF0   1475      ERROR3 1160      IOT8   2102      READX  1220
CDF00  2620      ERROR4 2511      IOT9   2110      READY  1600
CFATAL 2352      ERROR5 2472      K77    2242      REPEAT 1027
CHAR   0526      ERROR6 2505      K7700  2217      REVGRD 2205
CHECK  0457      ERR1   1505      LEAVE  2151      REWIND 1313
CHKSUM 2357      ERR3   1746      LIM    2637      RHALF  0500
CLEAN  1553      ERR4   0325      LIMIT  7600      RLIST  1316
CLEAN1 1560      ERR5   0744      LIST   0032      RTAB   2441
CLEAR  0436      EXIT   2144      LISTEN 0450      RUNIT  1325
CM200  2105      FATAL  2146      LNEXT  0476      RW     0050
CM32   2355      FIELDS 0037      LOC    0525      RWCOM  2061
COMP   1466      FINDER 0524      MESSGE 0471      SELECT 1743
COMP2  1471      FLDN   0052      MESSG1 0067      SELERR 0627
COMP3  1435      FLD0   0051      MESSG2 2646      SEMI   0443
COMP4  1455      FOUND  2170      MESSG3 0076      SETUP  0600
CONT   1014      FOUR   1540      MESSG4 2457      SET2   0651
COUNT  0040      FUNCTN 1713      MESSG5 2465      SET3   0700
COUNT1 0041      GETCHK 2336      MESSG6 1040      SET4   0606
COUNT2 0042      GO     2077      MESSG7 1052      SET5   0674
COUNT3 0043      HALT   7402      MESSG8 1064      SKIP   0437
COUNT4 0044      IBLOCK 0034      MESSG9 1101      SKIPQ  0366
CRDQUD 2155      INB    0064      MESS10 1117      SKIP4  0753
CRLF   0317      INPUT  0020      MESS11 1122      SRCH   2106
CRWCOM 2353      INSERT 0535      MFIELD 0000      START  0200
CTRLC  0470      INS1   0551      MNUM   0343      START1 0207
CTRLR  1020      IOTLOC 2405      MORE   0404      SUB    0726
CXFUN  2162      IOTR1  1351      MORE2  0224      SUB1   1657
CXWCT  2165      IOTR2  1354      MWORDS 2160      SUB2   1666
C100   2166      IOTR3  1356      M110   2131      SUB3   1677
C1000  2003      IOTR4  1370      M20    2163      SWITCH 0412
C1400  2356      IOTR5  0367      M200   1371      TABEND 2434
C3     2175      IOTR6  0371      NEXT   2614      TABLE1 2447
C300   2267      IOTX1  0637      NEXT1  2635      TABX   0365
C374   2041      IOTX2  0662      NUMBER 0036      TRANS  1707
C6201  2153      IOTX3  0642      NUMB1  0057      TRY    1500
C6203  2154      IOTX4  0644      NUMB2  0060      TRYCNT 2167
C70    2174      IOTX5  0754      OALL   0255      TRY3   2137
C7600  2227      IOTX6  0756      OBLOCK 0035      TYPE   0527
DECODE 1754      IOTX7  0621      OCOUNT 0030      UNIT   0045
DIV1   1275      IOTX8  0623      OHOLD  0066      UNITNO 0352
DIV2   1301      IOT1   2020      OPOINT 0031      UNITS  2435
DOIT   1200      IOT10  2121      ORIGIN 2000      UNIT01 0770
DTA0   2000      IOT11  2207      OUTB   0065      UNIT23 0760
DTA1   2004      IOT12  2232      OUTN   1246      UNIT45 0750

/TD8E DECTAPE COPY, V4                    PAL8-V10A NO DATE   PAGE 39-1

UNIT67 0740      
VB     0061      
VERF   0046      
VERFQ  1000      
VERF1  1311      
VERF1A 1016      
VERF2  1274      
VERF2A 1017      
VERIFY 1400      
WAIT   1516      
WCOUNT 2156      
WDCNT  0047      
WHOLE  0306      
WORDS  2360      
WRITE  2221      
WRITEX 1254      
WRLP   2237      
WRQUAD 2305      
XBUFF  2361      
XFIELD 2177      
XFUNCT 2354      
XNUMB  0055      
XUNIT  2321      
XWCT   2362      
X11    0011      
X12    0012      
YES    1010      
YUNIT  2161      
ZOOM   1630      



ERRORS DETECTED: 0
LINKS GENERATED: 2