ASMB NAM CATI,7 92069-16172 REV.1912 770601 * * ************************************************************** * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- * * PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH- * * OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * ************************************************************** * * * SOURCE: 92069-18172 * RELOC: 92063-16172 * * ************************************************************* * SPC 1 * CALL CATI(IFLD,IBYT,ILTH,INT,ISTAT) * * CONVERT A NUMERIC ASCII FIELD OF LENGTH * "ILTH" BEGINNING AT "IBYT" OF "IFLD" * TO AN INTEGER "INT" * * CONVERSION IS TERMINATED BY A NON-NUMERIC * CHARACTER OR EXHAUSTION OF "ILTH" * * NUM-CHAR = BLANK,+,-,NUMBER . * * "ISTAT" 0 => NORMAL * -1 => OVERFLOW OR NON-ASCII SPC 1 EXT .ENTR ENT CATI SPC 1 A EQU 0 B EQU 1 SPC 1 IFLD BSS 1 BUFFER ADDRESS (WORD) IBYTE BSS 1 REL. NUM. FIELD ADDRESS (BYTE) ILTH BSS 1 CHARACTER IN IFLD INT BSS 1 BINARY INTEGER RETURNED ISTAT BSS 1 STATUS CATI NOP ENTER AND GET JSB .ENTR ARGUMENT DEF IFLD ADDRESSES SPC 1 LDA IBYTE,I STA IEND ADA ILTH,I STA ILTH SPC 1 CLO CLA STA INT,I ALL BLANK FIELD => 0 STA SIGN STA SAVE JSB GETC GET A CHARACTER CPA =B53 + SIGN? JMP C1 YES CPA =B55 - SIGN? CCB,RSS YES JMP C5 NO STB SIGN SPC 1 C1 JSB GETC GET A NUMBER C5 JSB CHECK CHECK IT STA INT,I LDA SAVE ADA A STA B ADA A ADA A ADA B ADA INT,I STA SAVE JMP C1 SPC 1 SAVE BSS 1 SIGN BSS 1 IEND BSS 1 SPC 1 DONE CLA SET SOC STATUS ERR CCA STA ISTAT,I LDA SAVE LDB SIGN INSERT THE SZB SIGN CMA,INA STA INT,I JMP CATI,I EXIT SPC 1 GETC NOP GETC1 LDB IEND CPB ILTH IF DONE JMP DONE THEN EXIT ADB M1 GET AND CLE,ERB ISOLATE THE ADB IFLD BYTE POINTED LDA B,I AT BY IBYT SEZ,RSS ALF,ALF AND B377 ISZ IEND CPA =B40 JMP GETC1 JMP GETC,I SPC 1 CHECK NOP ADA =B177720 CHECK FOR SSA ASCII NUMBER JMP ERR ( >57B, ADA M10 <72B) SSA,RSS JMP ERR ADA .10 JMP CHECK,I * M1 DEC -1 .10 DEC 10 M10 DEC -10 B377 OCT 377 END