Commodore PET User Manual page 237

Table of Contents

Advertisement

Following is the listing and sample run of the program:
10 PR 1NT
Il
:' J IElIElIIMULTI PLE 1NTEGER MULTI PLI CATI ONlIElIIlII" :PR1NT
20 INPUT A$,B$
30 IF VAL<A$)=0 OR VAL<B$)=0 THEN C$=10":GOTO 1190
40 ZERO$=10000000000000000"
1000 X=LEN<A$):Y=LEN<B$)
1002 IF X>Y THEN F=X/2:GOTO 1008
1004 F=Y/2
1006 IF F>INT(F)THEN F=INT<F)+l
1008 F$=LEFT$<ZERO$,F)
1010 IF X<=F THEN AH=0:AL=VAL(A$):GOTO 1040
1020 AH=VAL<LEFT$<A$,X-F»
1030 AL=VAL(RIGHT$(A$,F»
1040 IF Y<=F THEN BH=0:BL=VAL<B$):GOTO 1070
1050 BH=VAL<LEFT$<B$,Y-F»
1060 BL=VAL<RIGHT$<B$,F»
1070 Pl$=STR$(BLlIIAL)
1080 P2$=STR$<BLlIIAH)+F$
1090 P3$=STR$<BHlIIAL)+F$
1100 P4$=STR$<BHlIIAH)+F$+F$
1110 A$=Pl$:B$=P2$
1120 GOSUB 21300
1130 Ml$=(:$
1132 A$=P3$:B$=P4$:GOSUB 2000
1135 M2$=(:$
11413 A$=Ml$:B$=M2$
1150 OOSUB 2000
1190 PRINT:
PRINT"At-~S~~ER=";
(:$: PRINT: OOTO 20
1200 END
2000 REMlIIlIIADD PRODU(:TSlIIlII
2010 BLANK$="
2020 X=LEN(A$):Y=LEN(B$)
2030 IF X<Y THEN A$=LEFT$(BLANK$,Y-X)+A$
2040 IF X>Y THEN B$=LEFT$(BLANK$,X-Y)+B$
2050 D=0:N=I:C$="11
2060 FOR I=LEN(A$) Ta 1 STEP-l
2070 A=VAL(MID$(A$, 1,,1»
2080 A=A+D: II=0
2090 B=VAL(MID$(B$, 1,1»
2100 C=A+B
21113 IF (:>=10 THEN D=l
2120 IF D=l AND 1=1 THEN N=2
2130 C$=RIGHT$(STR$(C),N)+C$
21413 NE;:'::T 1
30130 REMlIIlIIlIITRUNCATE LEAD ZEROSlIIlII*
3(101 L=0
30113 FOR 1=1 TO LEN<C$)
3020 IF VAL(MID$(C$, 1,1»=0 THEN L=L+l
3030 IF VAL(LEFT$(C$,I»<>0 THEN I=LEN(C$)
31340
NE~'~T
1
31350 C$=RIGHT$(C$,LEN(C$)-L)
;;:(1613 RETURN
224

Hide quick links:

Advertisement

Table of Contents
loading

This manual is also suitable for:

Cbm

Table of Contents