1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        DCZOC:  DECIMAL-TO-OCTAL  CONVERTER
4  REM
5  REM        36747 REV  A   10/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
260  PRINT 
8930  PRINT 
8940  PRINT "DECIMAL ";
8950  INPUT Z
8960  IF Z=0 THEN 9280
8970  GOSUB 9000
8980  PRINT "OCTAL ";Z
8990  GOTO 8930
9000  REM  **********  DECIMAL-TO-OCTAL  **********
9010  LET Z1=0
9020  LET Z2=SGN(Z)
9030  LET Z=ABS(Z)
9040  IF Z>262143. OR INT(Z)#Z THEN 9270
9050  LET Z3=Z/8
9060  LET Z1=Z1+(Z3-INT(Z3))*8
9070  IF INT(Z3)=0 THEN 9220
9080  LET Z3=INT(Z3)/8
9090  LET Z1=Z1+(Z3-INT(Z3))*80
9100  IF INT(Z3)=0 THEN 9220
9110  LET Z3=INT(Z3)/8
9120  LET Z1=Z1+(Z3-INT(Z3))*800
9130  IF INT(Z3)=0 THEN 9220
9140  LET Z3=INT(Z3)/8
9150  LET Z1=Z1+(Z3-INT(Z3))*8000
9160  IF INT(Z3)=0 THEN 9220
9170  LET Z3=INT(Z3)/8
9180  LET Z1=Z1+(Z3-INT(Z3))*80000.
9190  IF INT(Z3)=0 THEN 9220
9200  LET Z3=INT(Z3)/8
9210  LET Z1=Z1+(Z3-INT(Z3))*800000.
9220  LET Z=Z1
9230  IF Z2=0 OR Z2=1 THEN 9250
9240  LET Z=-Z
9250  RETURN 
9270  PRINT "ERROR - NUMBER OUT OF RANGE"
9280  STOP 
9290  END 
