/ FILE NAME : MISC1.SB LAST MOD : 21-NOV-81 / / IRSLT=IFDIF(FVAL1,FVAL2) / / IFDIF DOES A THREE WORD COMPARISON OF 'FVAL1' AND 'FVAL2', / AND RETURNS A NON-ZERO RESULT IF THE TWO VALUES ARE NOT / EXACTLY IDENTICAL FOR ALL THREE WORDS. / / / CALL MOVE(IARRY,JARRY,N) / / MOVE MOVES 'N' WORDS STARTING AT 'IARRY' TO THE / 'N' LOCATIONS STARTING AT 'JARRY'. / / IF 'N' IS NEGATIVE, THE ABSOLUTE VALUE IS USED FOR / THE MOVE COUNT, AND THE FIRST WORD WITH A ZERO CODE / IN THE BOTTOM BYTE WILL BE THE LAST WORD TRANSFERRED. / ANY REMAINING WORDS IN THE DESTINATION BUFFER / WILL BE PADDED WITH ZEROS. / ENTRY IFDIF ENTRY MOVE OPDEF TADI 1400 OPDEF DCAI 3400 IFDIF, BLOCK 2 /***** IFDIF(FVAL1,FVAL2) *****\ TAD IFDIF DCA MOVE TAD IFDIF# DCA MOVE# TAD TADIT JMS SETUP JMS COMP1 JMS COMP1 JMS COMP1 XIT, RETRN MOVE COUNT, COMP1, 0 JMS PARA1 CIA JMS PARA2 SZA JMP XIT JMP I COMP1 MOVE, BLOCK 2 /**** MOVE(ADDR1,ADDR2,N) ****\ TAD DCAIT JMS SETUP JMS GETW DCA CDFN JMS GETW DCA 7 CDFN, HLT TADI 7 SNA /ZERO WORDS TO MOVE? JMP XIT /YES. NO OPERATION. SPA JMP MOVEZ CIA DCA COUNT LOOP, JMS PARA1 JMS PARA2 ISZ COUNT JMP LOOP JMP XIT MOVEZ, DCA COUNT STA DCA 7 LOOPZ, TAD 7 AND (77 SZA CLA JMS PARA1 DCA 7 TAD 7 JMS PARA2 ISZ COUNT JMP LOOPZ JMP XIT SETUP, 0 DCA PARA2I TAD MOVE DCA GET1 JMS GETW DCA PARA1C JMS GETW DCA PARA1A JMS GETW DCA PARA2C JMS GETW DCA PARA2A JMP I SETUP GETW, 0 /GET PARAMETER WORD (**NOT ARG**) GET1, HLT /CDF FROM MOVE. TADI MOVE# INC MOVE# JMP I GETW PARA1, 0 PARA1C, HLT /CDF OF ARG 1 TADI PARA1A INC PARA1A JMP I PARA1 PARA1A, 0 PARA2, 0 PARA2C, HLT /CDF OF ARG2 PARA2I, HLT /EITHER (TADIT) OR (DCAIT) INC PARA2A JMP I PARA2 PARA2A, 0 TADIT, TADI PARA2A DCAIT, DCAI PARA2A END