home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib19a.dsk / MAY.1984 / UBC.bas < prev   
BASIC Source File  |  2023-02-26  |  2KB  |  45 lines

  1. 1  REM *****************************
  2. 2  REM *           UBC             *
  3. 3  REM * UNIVERSAL BASE CONVERSION *
  4. 4  REM *   BY PRESTON R BLACK MD   *
  5. 5  REM *     COPYRIGHT (C) 1984    *
  6. 6  REM *     BY MICROSPARC, INC    *
  7. 7  REM *     LINCOLN, MA  01773    *
  8. 8  REM *****************************
  9. 10  TEXT : HOME 
  10. 20  DIM Y(50):HEX$ = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  11. 30  PRINT : PRINT "** COPYRIGHT 1984 BY MICROSPARC, INC. **": PRINT : INPUT "DO YOU WISH TO SEE INSTRUCTIONS? ";A$: IF  MID$ (A$,1,1) = "N"  THEN 80
  12. 40  PRINT : PRINT "THIS IS A CONVERSION PROGRAM WHICH WILL": PRINT "CONVERT ANY NUMBER FROM ONE BASE TO": PRINT "ANOTHER BASE."
  13. 50  PRINT : PRINT "THE NUMBERS CAN BE IN ANY BASE FROM": PRINT "BASE 2 TO BASE 36."
  14. 60  PRINT : PRINT "ENTER THE ORIGINAL BASE, THE NUMBER TO": PRINT "BE CONVERTED, AND THE BASE YOU WISH": PRINT "THE NUMBER TO BE CONVERTED TO."
  15. 70  PRINT : PRINT "PRESS ANY KEY TO CONTINUE. ";: GET A$: PRINT :
  16. 80  HOME : VTAB 10: INPUT "PLEASE ENTER STARTING BASE: ";OLDBASE
  17. 90  INPUT "ENTER NUMBER TO BE CONVERTED: ";OLDNUM$
  18. 100  PRINT : INPUT "PLEASE ENTER NEW BASE: ";NBASE
  19. 110  IF OLDBASE = NBASE  THEN 330
  20. 120  IF OLDBASE > <10  THEN 140
  21. 130 NWNUM =  VAL(OLDNUM$): GOTO 240
  22. 140 J =  LEN(OLDNUM$):K = J
  23. 150  FOR I = 1 TO J:K = K -1
  24. 160 CV$ =  MID$ (OLDNUM$,I,1)
  25. 170  FOR L = 10 TO 36
  26. 180  IF CV$ =  MID$ (HEX$,L,1)  THEN 200
  27. 190  NEXT L: GOTO 210
  28. 200 VD = L -1: GOTO 220
  29. 210 VD =  VAL(CV$)
  30. 220 NWNUM = NWNUM +((OLDBASE ^K) *VD): NEXT I
  31. 230  IF NBASE = 10  THEN 320
  32. 240 I = 1:SN = NWNUM
  33. 250 Y = SN/NBASE:Y(I) = (Y - INT(Y)) *NBASE
  34. 260 I = I +1:SN = Y
  35. 270  IF  INT(Y) >0  THEN 250
  36. 280  FOR K = (I -1) TO 1  STEP  -1
  37. 290 W = Y(K) +1:DUM$ = DUM$ + MID$ (HEX$,W,1): NEXT 
  38. 300  PRINT : PRINT OLDNUM$;" BASE ";OLDBASE;" EQUALS ";DUM$;" BASE ";NBASE;" "
  39. 310  GOTO 340
  40. 320  PRINT : PRINT OLDNUM$;" BASE ";OLDBASE;" EQUALS ";NWNUM;" BASE 10.": GOTO 340
  41. 330  PRINT : PRINT OLDNUM$;" BASE ";OLDBASE;" EQUALS ";OLDNUM$;" BASE ";NBASE;"."
  42. 340  VTAB 24: INPUT "DO YOU WISH TO CONTINUE? ";A$
  43. 350 NWNUM = 0:DUM$ = ""
  44. 360  IF  MID$ (A$,1,1) = "Y"  THEN 80
  45. 370  HOME : END