ASMB,R,Q,C * NAME: .MBT * SOURCE: 92071-18227 * RELOC: 92071-1X227 * PGMR: EJW,HLC * * * **************************************************************** * * (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 .MBT,6 92071-1X227 REV.2041 800729 ENT .MBT EXT .ZPRV * A EQU 0 B EQU 1 * * * MOVE BYTES ROUTINE * * (A) = SOURCE ADDRESS * (B) = DESTINATION ADDRESS * P JSB .MBT * P+1 DEF N BYTE COUNT * P+2 NOP TEMP FOR .MBT * P+3 * (A) = ADDR+1 OF LAST SOURCE BYTE * (B) = ADDR+1 OF LAST DESTINATION WORD * .MBT 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 .MBT,I GET ADDR OF COUNT ISZ .MBT LDA A,I GET BYTE COUNT CMA,INA,SZA,RSS JMP RMBT EXIT IF COUNT=0 STA .MBT,I ELSE SAVE NEGATIVE COUNT * 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 LDA B,I GET WORD ANDSHIFT ACCORDING TO 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 STA B,I SAVE NEW WORD ELB RESTORE BYTE ADDR INB INCREMENT TO NEXT BYTE ADDR STB .B. SAVE NEW DESTINATION ADDR ISZ .MBT,I INCREMENT THE COUNT JMP MBTL MOVE SOME MORE IF NOT DONE. * RMBT ISZ .MBT INCREMENT RETURN ADDR 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 .MBT,I RETURN DEF .MBT * CHAR NOP .A. NOP .B. NOP .EO. NOP * END