REM NUMBERS
TO ENGLISH CONVERTER.
(C
) COPYRIGHT
2005 1STON.
COM ALL RIGHTS RESERVED.
REM MAC
- I WANT MY $
20.00, LOL.
REM CONVERTS NUMBERS
TO ENGLISH. USE
36 DIGITS
(DECILLION
+) POSITIVE
OR NEGATIVE.
REM THIS VERSION RUNS STARTING
TO ENDING NUMBERS.
REM COUNTS BY 1S
, 2S
, UP
TO 1000 POSITIVE
OR NEGATIVE.
REM COMMAS CAN BE USED BUT ARE
NOT NECESSARY.
101
PROMPT$(1) = "NUMBERS TO ENGLISH PROGRAM: INPUT A +/- INTEGER TO 36 DIGITS OR NOTHING TO END"
PROMPT$
(2) = "PRESS: [" + CHR$(25) + "] SCROLL NUMBERS MANUALLY [ENTER] AUTO SCROLL [ESC] END"PROMPT$
(3) = "PROGRAM PAUSED. PRESS: [SPACE BAR] RESUME [" + CHR$(25) + "] MANUAL SCROLL [ESC] END"PROMPT$(4) = "PRESS: [R] RERUN PROGRAM [C] CHANGE SETTINGS / RERUN [ESC] END"
PROMPT$(5) = "PRESS: [SPACE BAR] PAUSE [ESC] END <MANUAL SCROLL AVAILABLE WHEN PAUSED>"
PROMPT$(6) = "PROGRAM ABORTED BY USER. PRESS [R] TO RERUN PROGRAM OR [ESC] TO QUIT"
PROMPT$(7) = "INPUT A +/- INTEGER TO 36 DIGITS OR INPUT NOTHING TO WRITE STARTING NUMBER ONLY"
PROMPT$(8) = "ENTER A DISPLAY PREFERENCE OR LEAVE BLANK FOR DEFAULT [A]"
PROMPT$(9) = "ENTER A DISPLAY PREFERENCE OR LEAVE BLANK FOR DEFAULT [L]"
PROMPT$(10) = "INPUT A NUMBER FROM -1000 TO 1000 TO COUNT BY OR LEAVE BLANK FOR [1]"
NUMBERORDER = NUMBERORDER + 1
LINE INPUT " INPUT STARTING NUMBER HERE: "; X$
XHOLD$ = ""
REM EVALUATE
FOR NEGATIVE NUMBERS
IF VAL(X$
) < 0 THEN X$
= MID$(X$
, 2): NEG
(NUMBERORDER
) = -1 ELSE NEG
(NUMBERORDER
) = 1
REM EVALUATE COMMA PLACEMENT
X$ = XHOLD$: XHOLD$ = ""
IF NUMBERORDER
= 1 THEN STARTINGNUMBER$
= X$: STARTINGHOLD$
= XHOLD$
ELSE LOOPTIMES
= VAL(X$
) IF NUMBERORDER
= 2 THEN ENDNUMBER$
= X$
X$ = STARTINGNUMBER$: NUMBERORDER = 0
NUM$ = "ZERO"
IF UC$
= "L" THEN NUM$
= "Zero"
XHOLD$ = X$
UC = 0: XHOLDC$ = ""
XHOLDC$
= MID$(X$
, I
, 1) + XHOLDC$
II = II + 1
HYPHEN = 1
COMMA = 1
KK = 0: COMMA = 0: COMMASET = 0
IF VAL(XHOLD$
) * NEG
(1) + CNTBY
* NEG
(3) > 0 THEN NEG
(1) = 1
STARTINGNUMBER$ = XHOLD$
REM #1 IS (-) ADDING UP
TO LARGER NUMBER
(INVERT SIGNS
)
PRINTNUM:
IF ADDAND
= 1 THEN COMMA
= 0: COMMASET
= 0 IF HYPHEN
= 1 THEN HOLDNUM$
= "-" IF COMMASET
= 1 THEN COMMA
= 0 ELSE COMMA
= 0: HOLDNUM$
= NUM$: NUM$
= ",": COMMASET
= 1 HYPHEN = 0
IF COMMASET
= 1 THEN COMMASET
= 0 IF ADDAND
= 1 THEN NUM$
= "AND " + NUM$: ADDAND
= 0:
IF UC$
= "L" THEN NUM$
= LCASE$(NUM$
) NUM$ = ""
PAUSE = 0
AUTO = 1
CONVERT1:
ENDNUMBER$
= STRING$(LEN(STARTINGNUMBER$
) - LEN(ENDNUMBER$
), "0") + ENDNUMBER$
IF LEN(STARTINGNUMBER$
) <> LEN(ENDNUMBER$
) THEN STARTINGNUMBER$
= STRING$(LEN(ENDNUMBER$
) - LEN(STARTINGNUMBER$
), "0") + STARTINGNUMBER$
IF NEG
(1) = -1 AND NEG
(2) = 1 THEN STARTINGNUMBER$
= "":
REM MAKE ALWAYS SMALLER
CONVERT2:
XHOLD2$ = "0" + XHOLD$
SWAP X3$
, XHOLD2$: HOLDNEG3
= NEG
(3): NEG
(3) = -1: NEG
(1) = 1 SWAP X3$
, XHOLD2$: CHANGESIGN1
= -1
CARRY = 0: PASS = 0
XHOLD$ = NEWNUM$
IF HOLDNEG3
<> 0 THEN NEG
(3) = HOLDNEG3: HOLDNEG3
= 0 IF CHANGESIGN1
= -1 THEN NEG
(1) = -1: CHANGESIGN1
= 0 IF NEWNUM$
= "" THEN NEWNUM$
= "0": NEG
(1) = 1 NEWNUM$ = ""
MSG:
SHUTOFF:
TEENS:
DATA TEN
,ELEVEN
,TWELVE
,THIRTEEN
,FOURTEEN
,FIFTEEN
,SIXTEEN
,SEVENTEEN
,EIGHTEEN
,NINETINE
TENS:
DATA TEN
,TWENTY
,THIRTY
,FORTY
,FIFTY
,SIXTY
,SEVENTY
,EIGHTY
,NINETY
ONES:
DATA ONE
,TWO
,THREE
,FOUR
,FIVE
,SIX
,SEVEN
,EIGHT
,NINE
LARGENUMBERS:
DATA THOUSAND
,MILLION
,BILLION
,TRILLION
,QUADRILLION
,QUINTILLION
,SEXTILLION
,SEPTILLION
,OCTILLION
,NONILLION
,DECILLION