R1 EQU 65 R8 EQU 72 R9 EQU 73 R10 EQU 74 R11 EQU 75 X3 EQU 3 B8 EQU 8 B9 EQU 9 B10 EQU 10 B11 EQU 11 A0 EQU 12 A1 EQU 13 A2 EQU 14 A3 EQU 15 A4 EQU 16 A5 EQU 17 A6 EQU 18 A7 EQU 19 A8 EQU 20 A9 EQU 21 A10 EQU 22 A11 EQU 23 S1 EQU 13 S2 EQU 12 S3 EQU 11 S4 EQU 10 S5 EQU 9 S6 EQU 8 H1 EQU 2 H2 EQU 1 XU EQU 017 U EQU 016 F FORM 6,6,6,18 NWC* EQU 14 IMAGE BUFFER WORD COUNT $(2) . $(1) . RORRRR S X3,RORX3 S B8,RORB8 S B9,RORB9 S B10,RORB10 DS A6,RORA6 DS A8,RORA8 DS A10,RORA10 S R8,RORR8 S R9,RORR9 S R10,RORR10 S R11,RORR11 S B11,RORB11 L R10,RESF L X3,A0 L B8,IRW INDEX OF REBIT WORD OF BIM L B9,ITW INDEX OF TEXT WORD OF BIM L A7,IRC REBIT COUNTER L A11,WCT WORD COUNTER FOR CARD PORTION L R11,CWC WORD COUNTER FOR ENTIRE CARD L,U R8,077 SET NEW REBIT STRING FLAG OFF RORA L,S1 A6,0,X3 LOAD ITEM LENGTH AN,XU A6,3 SUBTRACT 3 SZ RORFML CLEAR FIELD MARGIN LOCATION L,XU A8,0 SET 2ND WORD OF REBITS TO ZERO L A9,RBW LOAD CURRENT REBIT WORD L,XU R9,1 SET FIRST SPECIAL ITEM FLAG JGD R11,RORB CARD WORD COUNTER = ZERO J ROROUT OUTPUT CARD RORB L,H2 A1,2,X3 GET ADDRESS OF CURRENT ITEM L,S3 A2,2,X3 GET CC OF CURRENT ITEM JZ A6,RORC ANY SPECIAL ITEMS - NO L,XU A3,013 YES L,XU B10,3,X3 TE,S2 A3,3,X3 IS 1ST SPECIAL ITEM A TYPE 13 J RORC NO L A2,3,X3 . GET CONTROL COUNTER SSC A2,12 SSA A2,24 AN,XU A6,1 DECREMENT ITEM LENGTH L,XU B10,4,X3 RORC AN,XU A1,1 TE A1,ADR IS ADDRESS-1 = PREVIOUS ADDRESS L,XU R8,0 NO-SET NEW REBIT STRING FLAG ON TE A2,RBA ARE RELOCATION BASES THE SAME L,XU R8,0 NO-SET NEW REBIT STRING FLAG ON A,XU A1,1 RESET ADDRESS S A1,ADR STORE CURRENT ADDRESS S A2,RBA STORE RELOCATION BASE L A10,RBA NC1 TO A10 TNE,XU A10,2 IS RELOCATION BASE 2 -IF NOT NC1=RBA L,XU A10,1 YES NC1=1 JGD R8,RORLR IS NEW REBIT STRING FLAG ON JGD R11,RORD YES-CARD WORD COUNTER=ZERO J ROROUT OUTPUT CARD RORD JGD R10,RORE JUMP IF NEW CARD S,S6 A7,SHIFTA L A2,WCL WORD COUNT LOCATION S A2,WCLP SAVE LSSC A9,*SHIFTA S A9,BIM,*B8 STORE LAST REBITS L A4,A11 LSSL A4,7 TNZ CRUSCF TEST PROPRIATARY FLAG LSSL A4,2 OR A4,BIM,A2 S A5,BIM,A2 SET WORD COUNT IN BIM RORE L,XU A9,1 CLEAR REBIT WORD L,XU A7,7 TNZ CRUSCF L,XU A7,9 S B8,WCL SAVE WORD COUNT LOCATION L,XU A11,0 SET WORD COUNT TO ZERO LSSC A9,17 TZ CRUSCF LSSC A9,1 A A9,A1 SET REBIT STREAM ADDRESS LSSL A9,9 LET ROOM FOR WORD COUNT L A3,RBA GET RELOCATION BASE L,XU A2,2 TLE,XU A3,3 IS RB LESS THAN 3 J RORF YES L,XU A4,3 SET L-BIT FIELD LSSL A4,*KBIT A A3,A4 A A2,KBIT RORF LMJ B11,IRB1 INSERT REBITS RORLR L,S1 A0,2,X3 GET LEFT/RIGHT RELOCATION FLAGS DSL A0,3 JNB A0,RORRAF JUMP ON NO LEFT ADDRESS FLAG RORLAF L,S4 A4,0,X3 . GET UPPER TWO BITS PLUS SIGN LSSL A4,33 L,XU A3,4 LDSL A3,6 SET REBITS IN A3 L,XU A2,10 L A4,RBA TNE,XU A4,2 A,XU A3,1 SET NC2 REBIT LMJ B11,IRB OUTPUT REBITS JN A1,RORRAF+1 JUMP IF RIGHT ADDRESS FLAG ON L,XU A0,04122 S A0,RORFML SET LEFT ADDRESS MARGINS J RORSI RORRAF JP A1,RORST JUMP ON NO RIGHT ADDRESS FLAG L,S6 A4,0,X3 . GET UPPER TWO BITS PLUS SIGN LSSL A4,33 L,XU A3,1 LDSL A3,6 SET REBITS IN A3 L,U A5,2 L,XU A2,7 L A4,RBA TNE,XU A4,2 A,XU A3,1 SET NC2 REBIT LMJ B11,IRB OUTPUT REBITS L,XU A0,01700 S A0,RORFML SET RIGHT ADDRESS MARGINS RORSI JGD A6,RORSP ANY SPECIAL ITEMS J ROREND RORST JGD A6,RORSP ANY SPECIAL ITEMS L,XU A3,0 NO RELOCATION L,XU A2,2 LMJ B11,IRB1 SET REBITS J RORTXT RORSP L A2,0,B10 . GET SPECIAL ITEMS MARGINS SSL A2,12 AND,XU A2,07777 L,XU A5,2 TNE A3,RORFML ARE MARGINS SAME AS PREVIOUS J RORDM S A3,RORFML SAVE NEW MARGINS TNE,XU A3,01700 RIGHT ADDRESS MARGINS J RORRA YES TNE,XU A3,02100 RIGHT HALF WORD MARGINS J RORRH YES TNE,XU A3,04322 LEFT HALF WORD MARGINS J RORLH YES TNE,XU A3,04122 LEFT ADDRESS MARGINS J RORLA YES RORSM DSC A3,12 SPECIAL MARGIN L,XU A3,7 LDSL A3,12 SET REBITS IN A3 L,XU A2,16 J RORPM RORRA L,S6 A4,0,X3 . GET UPPER TWO BITS PLUS SIGN OF RA LSSL A4,33 L,XU A3,1 LDSL A3,3 SET REBITS IN A3 L,XU A2,4 J RORPM RORRH L,S6 A4,0,X3 . GET RIGHT HALF SIGN LSSL A4,33 L,XU A3,5 LDSL A3,1 SET REBITS IN A3 L,XU A2,5 J RORPM RORLH L,S4 A4,0,X3 . GET LEFT HALF SIGN LSSL A4,33 L,XU A3,6 LDSL A3,1 SET REBITS IN A3 L,XU A2,5 J RORPM RORLA L,S4 A4,0,X3 . GET UPPER TWO BITS PLUS SIGN LSSL A4,33 L,XU A3,4 LDSL A3,3 SET REBITS IN A3 L,XU A2,7 J RORPM RORDM L,XU A5,3 DSL A2,72 CLEAR A2 AND A3 RORPM LSSL A3,1 A,XU A2,1 L A0,0,B10 . GET CONTROL COUNTER LSSL A0,24 JP A0,$+2 A,XU A3,1 YES - SET MINUS SIGN BIT LMJ B11,IRB OUTPUT REBITS RORTYP L,S2 A0,0,B10 GET SPECIAL ITEM TYPE TE,XU A0,012 TYPE 012 J ROR11 NO ROR12 A,XU B10,1 INCREMENT ITEM INDEX AN,XU A6,1 DECREMENT ITEM COUNTER L,XU A5,2 L,H2 A3,0,B10 GET SEQ NUMBER OF EXTERNAL REF J RORKB+1 ROR11 TE,XU A0,011 TYPE 011 J RORUP L A3,0,B10 LSSL A3,24 SSA A3,24 LM A3,A3 TE A3,A10 IS CC=NC1 J RORNC2 L,XU A3,0 SET REBITS 00 L,XU A2,2 LMJ B11,IRB1 OUTPUT REBITS J RORUP RORNC2 TE,XU A3,2 J RORKB L,XU A3,1 SET REBITS 01 L,XU A2,2 LMJ B11,IRB1 OUTPUT REBITS J RORUP RORKB L,XU A5,3 L A2,KBIT SET BIT COUNT LMJ B11,IRB2 SET K-BITS PLUS TWO BITS IN A5 RORUP A,XU B10,1 INCREMENT ITEM COUNTER JGD A6,RORSP JUMP IF MORE SPECIAL ITEMS ROREND L,XU A3,0 L,XU A2,1 LMJ B11,IRB1 INSERT REBITS RORTXT L A0,1,X3 GET TEXT WORD S A0,BIM,*B9 STORE TEXT WORD AND INCREMENT INDEX S B9,ITW INDEX OF TEXT WORD S B8,IRW INDEX OF REBIT WORD S R11,CWC CURRENT WORD COUNTER S A7,IRC REBIT COUNTER S A9,RBW CURRENT REBIT WORD A,XU A11,1 INCREASE PORTION WORD COUNT BY 1 S A11,WCT PORTION WORD COUNT L A0,X3 SZ RESF CLEAR RESTART FLAG L X3,RORX3 L B8,RORB8 L B9,RORB9 L B10,RORB10 DL A6,RORA6 DL A8,RORA8 DL A10,RORA10 L R8,RORR8 L R9,RORR9 L R10,RORR10 L R11,RORR11 L B11,RORB11 J 1,B11 EXIT . IRB - INSERT RELOCATION BITS SUBROUTINE . A3 - BITS TO BE INSERTED - RIGHT ADJUSTED . A2 - NUMBER OF BITS TO BE INSERTED . ENTRY - LMJ B11,IRB IF NOT FIRST TIME THRU INSERT 2 BITS . IN A5 BEFORE BITS IN A3. . LMJ B11,IRB1 INSERT BITS IN A3 ONLY. . LMJ B11,IRB2 ALWAYS INSERT 2 BITS IN AS . BEFORE BITS IN A3. IRB JGD R9,IRB1 IS FIRST TIME THRU FLAG ON IRB2 LDSC A8,2 NO - LEFT SHIFT BY 2 A A9,A5 INSERT 2 BITS IN A5 AN,XU A7,2 DECREMENT BIT COUNT BY 2 IRB1 LDSC A8,0,A2 SHIFT LEFT BY AMOUNT IN A2 A A9,A3 INSERT NEW BITS AN A7,A2 DECREMENT BIT COUNT JP A7,0,B11 IF COUNT POSITIVE - DONE JGD R11,$+2 DECREMENT CARD WORD COUNT J ROROUT OUTPUT CARD LN A2,A7 A7 IS NEGATIVE L A3,A7 DSC A8,0,A2 S A9,BIM,*B8 STORE REBITS - INCREMENT COUNTER DSL A8,72,A3 ADJUST REMAINING BITS IN A9 A,XU A7,36 RESET BIT COUNTER J 0,B11 EXIT ROROUT JGD R10,RORERR IF SECOND TIME THRU - ERROR L,XU R10,077 JZ A11,RORZ S A11,WCT STORE PORTION WORD COUNT RORY SLJ RORBIM OUTPUT BINARY IMAGE L B9,RORCON TEXT WORD INDEX L B8,RORCON+1 REBIT WORD INDEX L,U R11,NWC-1 CARD WORD COUNT L,XU R8,0 SET NEW REBIT STRING FLAG ON J RORA RESTART RORZ L,XU A1,0,B8 AN,XU A1,1 TNE,H2 A1,WCLP S A1,WCL J RORY RORERR SZ A1 L B11,RORB11 J 0,B11 ERROR RETURN $(2) . RORX3 + 0 RORB8 + 0 RORB9 + 0 RORB10 + 0 RORB11 + 0 RORA6 + 0 RORA7 + 0 RORA8 + 0 RORA9 + 0 RORA10 + 0 RORA11 + 0 RORR8 + 0 RORR9 + 0 RORR10 + 0 RORR11 + 0 KBIT + 0 STORAGE FOR ELEMENT KBIT COUNT IRC + 0 ITEM REBIT COUNTER IRW + 0 INDEX OF REBIT WORD ITW + 0 INDEX OF TEXT WORD CWC + 0 CARD WORD COUNTER ADR + 0 PREVIOUS ADDRESS RBA + 0 RELOCATION BASE RBW + 0 REBIT WORT WCT + 0 CARD PORTION WORD COUNT WCL + 0 INDEX OF WORD IN WHICH WCT IS PLACED WCLP + 0 PREVIOUS WORD COUNT LOCATION SEQNO + 0 SEQUENCE NUMBER RESF + 0 RESTART FLAG RORFML + 0 RORCON + -1,NWC-2 TEXT WORD INDEX + 1,0 REBIT WORD INDEX $(1) . SROR* S A0,KBIT SAVE KBIT COUNT SZ RORIC L,U A0,BL S,H1 A0,RORFCT+4 SET BUFFER LENGTH DL A0,PARTBL+27 GET INTERNAL FILE NAME DS A0,RORFCT L,XU A0,RORFCT ER PFWL$ . GET NEXT PF WRITE LOCATION JNZ A2,0,B11 ERROR RETURN S A1,PARTBL+39 S A1,PARTBL+37 SET LOCATION OF TEXT L,H2 A1,RORBCW S,H2 A1,RORTB INITIALIZE BUFFER IMAGE LOCATOR L,XU A0,1 S,H1 A0,IRW SN,H1 A0,ITW SZ,H2 IRW INDEX OF REBIT WORD SET TO 1,0 L,XU A1,NWC-2 S,H2 A1,ITW INDEX OF TEXT WORD SET TO-1,NWC-2 L,XU A1,36 S A1,IRC ITEM REBIT COUNTER SET TO 36 SZ RBW REBIT WORD SET TO ZERO SZ WCL WORD COUNT INDEX SET TO ZERO S,H1 A0,ADR SET ADDRESS TO IMPOSSIBLE NUMBER L,XU A1,NWC-1 S A1,CWC SET CARD WORD COUNT TO NWC-1 S A1,RESF SET RESTART FLAG SZ WCT CARD PORTION WORD COUNT SET TO ZERO L,XU A1,0606 S A1,SEQNO SET SEQUENCE NUMBER TO 'AA' J 1,B11 EXIT ERORRR S A0,RORTAD S B11,RORB11 SAVE RETURN ADDRESS L,U A0,NWC-1 TE A0,CWC PARTIAL TEXT IMAGE TO BE OUTPUT SLJ RORBIM OUTPUT BINARY IMAGE TP RORTAD WAS TRANSFER ADDRESS SPECIFIED J ROREX NO L,H2 A0,RORTAD GET TRANSFER CONTROL COUNTER TG,XU A0,3 IS RELOCATION BASE LESS THAN 3 J $+3 LSSL A0,7 J RORK NO L,XU A1,3 SET L-BIT FIELD LSSL A1,*KBIT A A0,A1 LSC A0,A0 SCALE FACTOR A0 DSL A0,26 POSITION L-BITS S A1,BIM+1 RORK S,H2 A0,RORTAD L,U A0,6 LSSL A0,33 OR A0,RORTAD S A1,BIM SET TRANSFER ADDRESS IN BIM L A0,SEQNO LSSL A0,6 S,H1 A0,BIM+13 SLJ RORPUT ROREX TP RORFCT+3 I/O COMPLETE ER WAIT$ . WAIT FOR LAST BUFFER WRITE L,S1 A1,RORFCT+3 GET STATUS CODE JNZ A1,0,B11 ERROR RETURN L A0,RORIC GET ITEM COUNT JZ A0,ROREXT DSL A0,36 DI,U A0,2 JZ A1,$+2 A,U A0,1 L A1,PARTBL+39 S A1,RORFCT+5 SET PF WRITE LOCATION A A1,A0 S A1,PARTBL+39 L A1,RORBCW S,H2 A1,RORFCT+4 SET ACCESS BUFFER MSI,U A0,28 S,H1 A0,RORFCT+4 SET WORD COUNT L,U A0,RORFCT ER IOW$ . WRITE LAST BUFFER L,S1 A1,RORFCT+3 JNZ A1,0,B11 ERROR RETURN ROREXT L A0,PARTBL+39 AN A0,PARTBL+37 S,H2 A0,PARTBL+36 SET LENGTH OF TEXT J 1,B11 EXIT RORBIR L A1,IRW . INDEX OF REBIT WORD L A2,IRC LOAD REBIT COUNT L A0,RBW LOAD LAST WORD OF REBITS LSSC A0,0,A2 LEFT ADJUST S A0,BIM,A1 STORE REBITS J $+2 SZ BIM,A1 ERASE A WORD TLEM,H2 A1,ITW ANY MORE WORDS J $-2 YES ERASE NEXT WORD L A2,WCL GET WORD COUNT LOCATOR SZ WCL L A4,WCT GET WORD COUNT LSSL A4,7 TNZ CRUSCF LSSL A4,2 OR A4,BIM,A2 S A5,BIM,A2 SET WORD COUNT IN BIM L A0,SEQNO GET SEQUENCE NUMBER LSSL A0,6 S,H1 A0,BIM+13 . INSERT IN IMAGE SSL A0,6 A,XU A0,1 UPDATE SEQUENCE NUMBER TEP,XU A0,040 A,XU A0,0100-26 S A0,SEQNO SLJ RORPUT J *RORBIM EXIT RORPUR TNZ DMPFLG+1 J RORBIT S,H2 B11,TEMPR LMJ B11,BITDMP +BIM +((14)) +0 +(('BTSTRG')) +$,0 L,H2 B11,TEMPR RORBIT . L A1,RORFB L A2,RORTB L,XU R1,NWC SET REPEAT COUNT BT A2,0,*A1 TRANSFER IMAGE TO BUFFER L A3,RORIC GET ITEM COUNT A,XU A3,1 COUNT ITEM SZ 0,A2 CLEAR FIRST WORD OF NEXT IMAGE AREA S A2,RORTB UPDATE BUFFER IMAGE LOCATOR S A3,RORIC TE,XU A3,16 ITEM BUFFER FULL J *RORPUT TP RORFCT+3 I/O COMPLETE ER WAIT$ . WAIT FOR IO L,S1 A1,RORFCT+3 GET STATUS CODE JNZ A1,RORERR+1 ERRR RETURN L A1,PARTBL+39 S A1,RORFCT+5 SET PF WRITE LOCATION A,U A1,BLS INCREMENT SECTOR ADDRESS S A1,PARTBL+39 UPDATE NEXT WRITE LOCATION L A1,RORBCW S,H2 A1,RORFCT+4 SET ACCESS BUFFER SSC A1,18 SWITCH BUFFERS S A1,RORBCW S,H2 A1,RORTB UPDATE BUFFER IMAGE LOCATOR L,U A0,RORFCT ER IO$ . WRITE BUFFER SZ RORIC J *RORPUT $(2) . CRUSCF +0 . TEMPORARY FIX ROR* NOP J RORRRR TBLWR* NOP J TBLWRR EROR* NOP J ERORRR SHIFTA +0 RORBIM J $-$ J RORBIR RORPUT J $-$ J RORPUR RORTAD + 0 TRANSFER ADDRESS RORIC + 0 OUTPUT BUFFER ITEM COUNT RORFCT + 'TPF$ ' + ' ' + 0 F 0,010,0,0 + BL,0 + 0 RORBCW + RORB1,RORB2 BUFFER CONTROL WORD RORTB + 1,0 TRANSFER TO LOCATOR RORFB + 1,BIM TRANSFER FROM LOCATOR BL EQU 224 BLS EQU BL//28 $(4) . BIM* RES NWC RORB1 RES BL+1 RORB2 RES BL+1 TEMPR RES 1 RORZZZ INFO 2 4 $(1) . TBLWRR S,H2 A0,RORFCT+4 . LOCATION S,H1 A1,RORFCT+4 LENGTH L A0,PARTBL+39 S A0,RORFCT+5 S A0,PARTBL+35 SET LOCATION OF PREAMBLE L,U A0,RORFCT ER IOW$ . WRITE PREAMBLE L,S1 A1,RORFCT+3 GET STATUS CODE JNZ A1,0,B11 ERROR RETURN L,H1 A0,RORFCT+4 DSL A0,36 DI,U A0,28 JZ A1,$+2 A,U A0,1 S,H1 A0,PARTBL+36 SET PREABLE LENGTH AU A0,PARTBL+39 UPDATE NEXT WRITE LOCATION L,U A0,5 S,S3 A0,PARTBL+32 SET ELEMENT TYPE LN,U A0,PARTBL+27 ER PFI$ . INSERT RO ELEMENT IN PF JZ A2,1,B11 NORMAL EXIT SZ A1 J 0,B11 ERROR EXIT END