*TITLES1CVBN -- CHARACTER TO BINARY CONVERSION 00000030 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** *A AUTHOR HANS HOOGSTRAAT 00000040 *A DESIGNER HANS HOOGSTRAAT 00000050 *A LANGUAGE S/370 ASSEMBLER F 00000060 *A SYSTEM IBM (SEE CRAY) 00000060 *A WRITTEN 00000070 * REVISED 00000080 *A 00000090 *A 00000100 *A I = S1CVBN (A, STCHAR, NOCHAR) 00000110 *A I = FUNCTION RESULT I4 00000115 *A A = INPUT CHARACTER STRING A4 00000120 *A STCHAR = STARTING CHARACTER FOR CONVERSION I4 00000130 *A NOCHAR = NUMBER OF CHARACTERS TO CONVERT I4 00000150 *A 00000170 *A 00000230 *A S1CVBN CONVERTS THE (NOCHAR) NUMERIC CHARACTERS FROM (A), 00000240 *A STARTING AT THE (STCHAR)TH CHARACTER, INTO ITS BINARY 00000250 *A EQUIVALENT AND RETURNS THE RESULT IN (I). 00000260 *A 00000270 *A ALL CHARACTERS EXCEPT - AND 0 TO 9 ARE IGNORED. 00000280 *A 00000290 S1CVBN CSECT 00000360 COPY S1REG 00000370 * 00000380 BASE EQU R10 00000390 * 00000400 STM R14,R12,12(R13) 00000410 BALR BASE,0 00000420 USING *,BASE 00000430 * 00000440 L R3,4(R1) GET ADDRESS OF A(STCHAR) 00000450 L R3,0(R3) 00000460 LA R4,1 00000470 SR R3,R4 00000480 A R3,0(R1) 00000490 * 00000500 L R4,8(R1) GET VALUE OF NOCHAR 00000510 L R4,0(R4) 00000520 AR R4,R3 END A ADDRESS PLUS 1 00000530 * 00000540 LA R1,0 00000550 LR R5,R1 00000560 LA R6,15 00000570 LA R7,10 00000580 LA R8,1 00000590 * 00000600 LOOP CLI 0(R3),C' ' SKIP BLANKS 00000610 BE LOOP1 00000620 CLI 0(R3),C'-' 00000630 BE COMPL 00000640 CLI 0(R3),C'0' 00000650 BL LOOP1 00000660 CLI 0(R3),C'9' 00000670 BH LOOP1 00000680 MR R0,R7 MULTIPLY ACCUMULATED RESULT 10 00000690 * 00000700 IC R5,0(R3) GET NEXT CHARACTER 00000710 NR R5,R6 AND OFF NON NUMERIC BITS 00000720 AR R1,R5 00000730 B LOOP1 00000740 COMPL LNR R8,R8 00000750 LOOP1 LA R3,1(R3) 00000760 CR R3,R4 00000770 BL LOOP 00000780 * 00000790 MR R0,R8 00000800 LR R0,R1 00000810 LM R2,R12,28(R13) 00000820 BR R14 00000830 LTORG 00000840 END 00000850