home *** CD-ROM | disk | FTP | other *** search
- ' +----------------------------------------------------------------------+
- ' | |
- ' | BASWIZ Copyright (c) 1990-1993 Thomas G. Hanlin III |
- ' | |
- ' | The BASIC Wizard's Library |
- ' | |
- ' +----------------------------------------------------------------------+
-
- DECLARE FUNCTION BCDAbs$ (Nr AS STRING)
- DECLARE FUNCTION BCDMul$ (Nr1 AS STRING, Nr2 AS STRING)
- DECLARE FUNCTION BCDSet$ (NumSt$)
-
- DEFINT A-Z
-
- FUNCTION BCDPower$ (Nr AS STRING, Power)
- IF Power <= 0 THEN
- BCDPower$ = BCDSet$("1")
- ELSE
- Sign$ = LEFT$(Nr, 1)
- P = Power
- Result$ = BCDSet$("1")
- PSeq$ = BCDAbs$(Nr)
- DO WHILE P > 0
- IF P AND 1 THEN Result$ = BCDMul$(Result$, PSeq$)
- P = P \ 2
- PSeq$ = BCDMul$(PSeq$, PSeq$)
- LOOP
- IF Power AND 1 THEN
- BCDPower$ = Sign$ + MID$(Result$, 2)
- ELSE
- BCDPower$ = Result$
- END IF
- END IF
- END FUNCTION
-