ASMB,L,R,C * * **************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. 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. * * **************************************************************** * * NAME: PART OF MATH LIBRARY * SOURCE: 24998-18XXX SEE NAM FOR LAST THREE DIGITS * RELOC: PART OF 24998-12001 * PGMR: BG & JTS * HED ".DDS" - DOUBLE INTEGER DECREMENT AND SKIP IF ZERO. NAM .DDS,7 24998-1X041 REV.2001 780818 ENT .DDS * * .DDS DECREMENTS A DOUBLE INTEGER IN MEMORY AND SKIPS IF * THE RESULT IS ZERO. A,B,E & O ARE PRESERVED. * * CALLING SEQUENCE: * * JSB .DDS * DEF * * SKP .DDS NOP STA SAVEA SAVE A,B STB SAVEB ERA,ALS ALS SAVE E,O SOC INA STA E&O LDA .DDS GET ARG ADDR. ISZ .DDS STA TEMP RESOLVE IND: ADDR MAY BE IN -A-. LDA SAVEA JUST IN CASE. LDA TEMP,I RAL,CLE,SLA,ERA JMP *-4 STA TEMP DIRECT ADDR ARG. ADA =D-1 -1 IFF ARG IN (A,B) STA A&B LDA SAVEA IN CASE (A,B) DLD TEMP,I GET ARG. SZB,RSS BORROW ? ADA =D-1 YES, DO IT. ADB =D-1 SZA,RSS RESULT ZERO ? SZB JMP *+2 NO. ISZ .DDS YES, SKIP. DST TEMP,I STORE RESULT. (NOP IF IN A&B) STA TEMP RESTORE E&O. LDA E&O CLO SLA,ELA STO LDA TEMP ISZ A&B ARG IN (A,B) ? JMP *+2 NO. JMP .DDS,I YES, DONE. LDA SAVEA RESTORE A,B LDB SAVEB JMP .DDS,I EXIT * SAVEA BSS 1 SCRATCH FOR A,B SAVEB BSS 1 TEMP BSS 1 ADDR ARG A&B BSS 1 FLAG: -1 IFF ARG IN (A,B) E&O BSS 1 E & O * END