; ; AUTHOR: ; R. STODOLA ; THE INSTITUTE FOR CANCER RESEARCH ; 7701 BURHOLME AVE. ; PHILADELPHIA, PA. 19111 ; ; ******************************************************* ; * * ; * THIS SOFTWARE WAS DEVELOPED WITH SUPPORT * ; * FROM THE NATIONAL INSTITUTES OF HEALTH: * ; * NIH CA06927 * ; * NIH CA22780 * ; * * ; * DIRECT INQUIRIES TO: * ; * COMPUTER CENTER * ; * THE INSTITUTE FOR CANCER RESEARCH * ; * 7701 BURHOLME AVENUE * ; * PHILADELPHIA, PENNSYLVANIA 19111 * ; * * ; * NO WARRANTY OR REPRESENTATION, EXPRESS OR * ; * IMPLIED, IS MADE WITH RESPECT TO THE * ; * CORRECTNESS, COMPLETENESS, OR USEFULNESS * ; * OF THIS SOFTWARE, NOR THAT USE OF THIS * ; * SOFTWARE MIGHT NOT INFRINGE PRIVATELY * ; * OWNED RIGHTS. * ; * * ; * NO LIABILITY IS ASSUMED WITH RESPECT TO * ; * THE USE OF, OR FOR DAMAGES RESULTING FROM * ; * THE USE OF THIS SOFTWARE * ; * * ; ******************************************************* ; * * ; * THIS SOFTWARE WAS DESIGNED FOR USE ON A * ; * PDP-11/70 OPERATING UNDER IAS V2.0 USING * ; * THE IAS PDP-11 MACRO ASSEMBLER. * ; * * ; ******************************************************* .TITLE BYD10 -- DEC10 TAPE PACKER/UNPACKER. .SBTTL BYD10 -- DOCUMENTATION. .IDENT /ICR001/ ; ; THESE ROUTINES PACK AND UNPACK 5 ASCII CHARACTERS FROM ; A 5 BYTE MAGTAPE FIELD DUMPED FROM A 36 BIT WORD VIA ; A DEC10. ; ; CALL BYD10(IASC,ID10,NWRDS) ; CALL D10BY(ID10,IASC,NWRDS) ; BYD10 -- CONVERT ASCII TO DEC 10 FORM. ; D10BY -- CONVERT DEC 10 FORM TO ASCII. ; IASC -- ARRAY CONTAINING ASCII VALUES. ; ID10 -- ARRAY CONTAINING DEC 10 TAPE WORDS. ; NWRDS -- NUMBER OF DEC10 WORDS (1 WORD = 5 ASCII CHARACTERS). ; ; NOTE THAT IASC AND ID10 MAY BE THE SAME ARRAY. ; BYD10:: MOV 2(R5),R3 ;GET ARG. MOV 4(R5),R2 MOV @6(R5),NWRDS MOV #177600,R4 ;SAVE MASK LOOP: DEC NWRDS ;DECR. COUNTER. BMI DONE MOVB (R3)+,R1 ;CONSTRUCT DEC10 FORM. ASH #7,R1 MOVB (R3)+,R0 BIC R4,R0 BIS R0,R1 ASHC #7,R0 MOVB (R3)+,-(SP) BIC R4,(SP) BIS (SP)+,R1 ASHC #3,R0 MOVB R0,(R2)+ ASHC #4,R0 MOVB (R3)+,-(SP) BIC R4,(SP) BIS (SP)+,R1 ASHC #4,R0 MOVB R0,(R2)+ SWAB R1 MOVB R1,(R2)+ SWAB R1 MOVB (R3)+,R0 BIC R4,R0 MOV R0,-(SP) ASH #-3,R0 BIS R0,R1 MOV (SP)+,R0 MOVB R1,(R2)+ ROL R0 BIC #177701,R0 MOVB R0,(R2)+ BR LOOP ; DONE: RETURN ;RETURN TO CALLER. ; D10BY:: MOV 2(R5),R3 ;FETCH ARGUMENTS. MOV 4(R5),R2 MOV @6(R5),NWRDS MOV #177600,R4 ;SAVE MASK LOOP1: DEC NWRDS ;IF DONE, RETURN. BMI DONE MOVB (R3)+,TD+1 ;CONVERT TO ASCII. MOVB (R3)+,TD MOV TD,R1 CLR R0 ASHC #7,R0 MOVB R0,(R2)+ ASHC #7,R0 BIC R4,R0 MOVB R0,(R2)+ CLR R0 ASHC #2,R0 MOVB (R3)+,TD+1 MOVB (R3)+,TD MOV TD,R1 ASHC #5,R0 MOVB R0,(R2)+ ASHC #7,R0 BIC R4,R0 MOVB R0,(R2)+ SWAB R1 MOVB (R3)+,R0 BIC #177701,R0 BIS R0,R1 ROR R1 BIC R4,R1 MOVB R1,(R2)+ BR LOOP1 ; TD: .WORD 0 NWRDS: .WORD 0 .END