*DECK OCTCON
IDENT OCTCON 000100
EXT XTRACE 000200
ENTRY OCTCON 000300
*#
*1DC OCTCON
* 1. PROC NAME AUTHOR DATE
* OCTCON P.C.TAM 77/08/03
*
* 2. FUNCTIONAL DESCRIPTION
* THIS ROUTINE WILL CONVERT A BINARY NUMBER INTO OCTAL DISPLAYS
* CODE FORMAT
*
* 3. METHOD USED.
* GET 3 BITS AT A TIME STARTING FROM THE RIGHT, ADD 33B TO IT,
* AND PUT IT IN THE RIGHT PLACE IN A REGISTER.
* AFTER EXHAUSTING ALL THE BITS, WRITE THE WORD FORMED IN
* REGISTER BACK
*
* 4. ENTRY PARAMETER.
* FIRST PARAMETER REPRESENTS THE VALUE TO BE CONVERTED.
*
* 5. EXIT PARAMETERS.
* SECOND PARAMETER IS STORAGE FOR THE RESULT.
*
* 6. COMDECKS CALLED
* INPARU MACDEF
*
* 7. ROUTINES CALLED.
* XTRACE
*
* 8. DAYFILE MESSAGES.
* NONE
*#
*CALL MACDEF
*CALL INPARU
OCTCON EQ *+4S15 ENTRY / EXIT 000400
000500
DEBUG1 IFEQ DEBUG,1,6
SX6 A1
SA6 TEMP
SX1 XOCTCON
RJ XTRACE
SA1 TEMP
SA1 X1
ENDIF DEBUG1
000900
SA2 X1 (X2) = VALUE OF PARWD 001000
MX3 3 (X3) = 70000000000000000000B 001100
SA1 A1+1 (X1) = ADDR. OF ARRAY TWOWD 001200
MX6 0 WORD1 ASSEMBLED IN X6 001300
SB1 20 (B1) = START VALUE FOR LOOP 001400
MX7 0 WORD2 ASSEMBLED IN X7. 001500
SB3 10 (B3) = CHAR LENGTH OF A CM WORD 001600
SB2 1 (B2) = END VALUE FOR LOOP 001700
001800
LOOP LT B1,B2,EOL 001900
BX4 X3*X2 GET LEFT 3 BITS 002000
LX4 3 002100
SX4 X4+33B CONVERT TO DISPLAY CODE 002200
GT B1,B3,WORD1 002300
002400
WORD2 LX7 6 002500
BX7 X7+X4 BUILD WORD2 002600
JP INCR 002700
002800
WORD1 LX6 6 002900
BX6 X6+X4 BIULD WORD1 003000
003100
INCR LX2 3 GET NEXT 3 BIT RIGHT 003200
SB1 B1-1 INCREMENT LOOP COUNTER 003300
JP LOOP 003400
003500
EOL SA6 X1 STORE RESULT 003600
SA7 X1+1 003700
JP OCTCON 003800
XOCTCON DATA L*OCTCN*
TEMP BSS 1
003900
END 004000