cdc:nos2.source:nam5871:ns_cvd
Table of Contents
NS$CVD
Table Of Contents
- [00003] PROC NS$CVD(INW,OUTW1,OUTW2,ERR)
- [00004] NS$CVD - CONVERT DECIMAL TO BINARY.
- [00008] CONVERT DECIMAL TO BINARY.
Source Code
- NS$CVD.txt
- *DECK NS$CVD
- USETEXT CYB$NS
- PROC NS$CVD(INW,OUTW1,OUTW2,ERR); # CONVERT DEC TO BINA #
- # TITLE NS$CVD - CONVERT DECIMAL TO BINARY. #
- BEGIN # NS$CVD #
- #
- ** NS$CVD - CONVERT DECIMAL TO BINARY.
- *
- * J.C. LEE 1981
- *
- * THIS IS A UTILITY ROUTINE. ITS FUNCTION IS TO CONVERT DECIMAL
- * TO BINARY.
- *
- * PROC NS$CVD(INW, OUTW1, OUTW2, ERR)
- *
- * ENTRY:
- * INW = INPUT WORD, LEFT-JUSTIFIED.
- *
- * EXIT:
- * OUTW1 = OUTPUT BINARY VALUE.
- * OUTW2 = OUTPUT RIGHT-JUSTIFIED DC.
- * ERR = TRUE/FALSE. (TRUE IF ERROR FLAGED)
- *
- * METHOD:
- * PROCESS A DISPLAY-CODED CHARACTER AT A TIME, UNTIL THE
- * WHOLE INPUT WORD IS PROCESSED. FLAG ERROR IF ONE IS FOUND.
- *
- #
- DEF DC$0 #O"33"#; # DISPLAY-CODED 0 #
- DEF DC$9 #O"44"#; # DISPLAY-CODED 9 #
- ITEM INW U; # INPUT WORD, LEFT-JUSTIFIED #
- ITEM OUTW1 I; # OUTPUT BINARY VALUE #
- ITEM OUTW2 I; # OUTPUT RIGHT-JUSTIFIED DC #
- ITEM ERR B; # ERROR INDICATOR #
- ITEM COMPLETE B; # CONVERSION DONE INDICATOR #
- ITEM DIGIT I; # ONE DISPLAY-CODED CHARACTER #
- ITEM I I; # TEMPORARY VARIABLE #
- CONTROL EJECT;
- ERR = FALSE;
- OUTW1 = 0;
- OUTW2 = 0;
- COMPLETE = FALSE; # CONVERSION NOT DONE YET #
- FOR I=0 STEP 1 WHILE I LS WC
- AND NOT COMPLETE
- DO
- BEGIN # PROCESS A DISPLAY-CODED CHAR #
- DIGIT = C<I,1>INW;
- IF DIGIT GQ DC$0
- AND DIGIT LQ DC$9
- THEN # DIGIT IS BETWEEN 0 AND 9 #
- DIGIT = DIGIT - O"33";
- ELSE # NOT A DECIMAL NUMBER #
- BEGIN
- COMPLETE = TRUE;
- IF DIGIT NQ 0
- THEN # ERROR IF NOT END OF FIELD #
- ERR = TRUE;
- END
- IF NOT COMPLETE
- THEN
- BEGIN
- OUTW2 = OUTW2*O"100" + DIGIT ; # DECIMAL VALUE IN CHAR #
- OUTW1 = OUTW1*10 + DIGIT; # CONVERT TO BINARY VALUE #
- END
- END
- RETURN;
- END
- TERM
cdc/nos2.source/nam5871/ns_cvd.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator