Compucolor.org – Virtual Media

Listing of file='BACON.BAS;01' on disk='vmedia/chip_22-sector.ccvf'

100 REM  * UNIVERSAL BASE CONVERSION ROUTINE *
110 REM    WRITTEN BY EASTON BEYMER
120 REM     KILOBAUD,11/78,PP 67
130 REM     MOD. FOR CC II BY D. VAN PUTTE
140 PLOT 6,2,12,14
150 PRINT
200 INPUT "INPUT BASE ? ";BI:BI= INT (BI)
210 IF BI< 2OR BI> 16THEN 600
220 INPUT "INPUT NUMBER ? ";NI$
300 INPUT "OUTPUT BASE ? ";BO:BO= INT (BO)
310 IF BO< 2OR BO> 16THEN 600
400 GOSUB 10000
500 PRINT "OUTPUT NUMBER = ";NO$:GOTO 150
600 PRINT "BASE NOT IN RANGE";
700 PRINT " OF 2 TO 16":GOTO 150
10000 REM  BASE CONVERSION SUBROUTINE
10100 REM  CONVERT INPUT NO. TO BASE 10
10200 L= LEN (NI$):DEC= 0:PWR= 0
10400 FOR J= LTO 1STEP - 1
10500 K= ASC (MID$ (NI$,J,1))
10700 IF K> 64THEN K= K- 7
10800 K= K- 48
10810 IF K< BIAND K> - 1THEN 10900
10820 PRINT "INVALID INPUT FOR BASE ";:PRINT BI
10840 NO$= "????":RETURN
10900 DEC= DEC+ INT (K* BI^ PWR+ .5):PWR= PWR+ 1:NEXT J
11000 REM  CONVERT NO. FROM BASE 10 TO BASE SPECIFIED
11100 H$= "0123456789ABCDEF":NO$= ""
11200 PWR= INT (LOG (DEC)/ LOG (BO))
11300 FOR J= PWRTO 0STEP - 1
11400 XX= INT (BO^ J+ .5):CH= INT (DEC/ XX)
11500 NO$= NO$+ MID$ (H$,CH+ 1,1):DEC= DEC- CH* XX
11600 NEXT J:RETURN