ASMB,R,Q,C * NAME: .MBI * SOURCE: * RELOC: * PGMR: DJN * * * **************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT * * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * **************************************************************** * * NAM .MBI,6 92071-1X324 REV.2041 800730 ENT .MBI EXT .ZPRV,.XLA,.X.,.XST * A EQU 0 B EQU 1 * * * MOVE BYTES INTO ALTERNATE MAP ROUTINE * * (A) = SOURCE ADDRESS * (B) = DESTINATION ADDRESS * (X) = BYTE COUNT * P JSB .MBI * P+1 * (A) = ADDR+1 OF LAST SOURCE BYTE * (B) = ADDR+1 OF LAST DESTINATION WORD * (X) = 0 * .MBI NOP JSB .ZPRV SHARABLE ROUTINE DEF EXIT DST .A. SAVE A,B REGS ERA,ALS SAVE E,O REGS SOC C INA STA .EO. * LDA .X. GET BYTE COUNT CMA,INA,SZA,RSS JMP RMBT EXIT IF COUNT=0 STA .X. RESTORE NEGATIVE FOR ISZ * MBTL LDB .A. GET SOURCE ADDR CLE,ERB SET (B) TO WORD ADDR LDA B,I GET WORD AND SHIFT ACCORDING TO SEZ,RSS (E) CONTAINING EVEN/ODD POSITION ALF,ALF IT WAS EVEN. AND =B377 KEEP BYTE ELB RESTORE BYTE ADDR INB INCREMENT TO NEXT BYTE ADDR STB .A. SAVE NEW SOURCE ADDR * * LDB .B. GET DESTINATION ADDR STA CHAR SAVE NEW BYTE TEMPORARILY CLE,ERB SET (B) TO WORD ADDR JSB .XLA GET WORD AND SHIFT ACCORDING TO DEF B,I SEZ,RSS (E) CONTAINING EVEN/ODD POSITION ALF,ALF IT WAS EVEN. AND =B177400 KEEP HALF WHICH IS STAYING IOR CHAR FILL IN NEW BYTE SEZ,RSS ALF,ALF SHIFT IF NEEDED JSB .XST SAVE NEW WORD DEF B,I ELB RESTORE BYTE ADDR INB INCREMENT TO NEXT BYTE ADDR STB .B. SAVE NEW DESTINATION ADDR ISZ .X. DECREMENT THE COUNT JMP MBTL MOVE SOME MORE IF NOT DONE. * RMBT LDA .EO. RESTORE E,O REGS CLO CLEAR FOR RESTORE SLA,ELA STO DLD .A. SET NEW BYTE ADDRS IN A,B REGS EXIT JMP .MBI,I RETURN DEF .MBI * CHAR NOP .A. NOP .B. NOP .EO. NOP * END