Home » Archimedes archive » Micro User » MU 1990-08.adf » July\BBC/CALC-BA

July\BBC/CALC-BA

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Micro User » MU 1990-08.adf
Filename: July\BBC/CALC-BA
Read OK:
File size: 0D61 bytes
Load address: FFFFFB43
Exec address: 6D3933B8
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
   10 REM   Listing III
   20 REM   By Glenn Marshall
   30 REM   (C) The Micro User
   40 :
   50 IF PAGE<>&2100 THEN END
   60 :
   70 *FX3
   80 PROCbasic_variables
   90 PROCmc_variables
  100 CALL calculator
  110 ON ERROR PROCerror
  120 PROCdisplay(store$)
  130 :
  140 REPEAT
  150   CALL calc_icon_data
  160   CALL pointer
  170   PROCdecode
  171*save calc 4000 8000
  180 UNTIL exit=on
  190 :
  200 CALL erase_calculator
  210 *FX210,1
  220 *FX3,6
  230 *FX210,0
  240 :
  250 :
  260 CHAIN "DESKTOP"
  270 :
  280 :
  290 DEFPROCbasic_variables
  300 store$="0"
  310 total$=""
  320 memory$=""
  330 on=1
  340 off=0
  350 decimal=off
  360 operation=on
  370 digits=8
  380 xpos=38
  390 ypos=7
  400 symbols$="+*/-^="
  410 exit=off
  420 ENDPROC
  430 :
  440 DEFPROCdisplay(string$)
  450 COLOUR 129:COLOUR 0
  460 PRINT TAB(xpos-8,ypos);STRING$(18," ")
  470 PRINT TAB(xpos-LEN(string$)+10,ypos);string$
  480 ENDPROC
  490 :
  500 DEFPROCdecode
  510 LOCAL key$,loop
  520 IF ?icon=255 ENDPROC
  530 RESTORE 710
  540 FOR loop=1 TO ?icon
  550   READ key$
  560 NEXT loop
  570 IF key$="E" exit=on
  580 IF key$="A" PROCac
  590 IF key$="C" AND operation=off THEN PROCc
  600 IF key$="M" PROCmc
  610 IF key$=">" PROCms
  620 IF key$="<" PROCmr
  630 IF key$="N" PROCinverse
  640 IF key$="P" PROCpi
  650 IF key$="%" PROCpercent
  660 IF INSTR(symbols$,key$)<>0 PROCdo_operation(key$)
  670 IF LEN(store$)>=digits ENDPROC
  680 IF key$>="0" AND key$<="9" PROCnumber(key$)
  690 IF key$="." AND digits<14 PROCput_decimal
  700 ENDPROC
  710 DATA E,%,N,^,/,P,7,8,9,*,M,4,5,6,-,<,1,2,3,+,>,0,.,=,C,A
  720 :
  730 DEFPROCnumber(key$)
  740 IF store$="0" store$=""
  750 store$=store$+key$
  760 PROCdisplay(store$)
  770 operation=off
  780 ENDPROC
  790 :
  800 DEFPROCdo_operation(key$)
  810 IF operation=on total$=LEFT$(total$,LEN(total$)-1)
  820 total$=total$+store$
  830 total$=STR$(EVAL(total$))
  840 PROCdisplay(total$)
  850 total$=total$+key$
  860 PRINT TAB(30,ypos);key$
  870 store$=""
  880 operation=on
  890 decimal=off
  900 digits=8
  910 ENDPROC
  920 :
  930 DEFPROCc
  940 store$="0"
  950 decimal=off
  960 digits=8
  970 PROCdisplay(store$)
  980 ENDPROC
  990 :
 1000 DEFPROCpercent
 1010 IF total$="" OR store$="" OR operation=on THEN ENDPROC
 1020 IF RIGHT$(total$,1)="*" store$=store$+"/100"
 1030 IF RIGHT$(total$,1)="+" total$="("+total$:store$=store$+")/("+store$+"/100)"
 1040 IF RIGHT$(total$,1)="/" store$=store$+"*100"
 1050 IF RIGHT$(total$,1)="/" total$="(("+total$:total$=LEFT$(total$,(LEN(total$)-1)):store$="/"+store$+")*100)-100"
 1060 PRINT TAB(30,ypos);key$
 1070 PROCdo_operation("=")
 1080 ENDPROC
 1090 :
 1100 DEFPROCpi
 1110 store$=STR$(PI)
 1120 PROCdisplay(store$)
 1130 operation=off
 1140 decimal=on
 1150 ENDPROC
 1160 :
 1170 DEFPROCput_decimal
 1180 store$=store$+"."
 1190 decimal=on
 1200 digits=9
 1210 PROCdisplay(store$)
 1220 ENDPROC
 1230 :
 1240 DEFPROCac
 1250 store$="0"
 1260 total$=""
 1270 decimal=off
 1280 digits=8
 1290 PROCdisplay(store$)
 1300 ENDPROC
 1310 :
 1320 DEFPROCmc
 1330 memory$=""
 1340 ENDPROC
 1350 :
 1360 DEFPROCmr
 1370 IF memory$="" PROCdisplay("0"):store$="":ENDPROC
 1380 store$=memory$
 1390 PROCdisplay(store$)
 1400 operation=off
 1410 ENDPROC
 1420 :
 1430 DEFPROCms
 1440 IF operation=off memory$=store$
 1450 IF operation=on mem$=LEFT$(total$,LEN(total$)-1)
 1460 ENDPROC
 1470 :
 1480 DEFPROCinverse
 1490 IF operation=on PROCinv_total
 1500 IF operation=off PROCinv_store
 1510 ENDPROC
 1520 :
 1530 DEFPROCinv_total
 1540 IF total$="" PROCdisplay("0"):ENDPROC
 1550 IF LEFT$(total$,1)="-" total$=MID$(total$,2,LEN(total$)):PROCdisplay(LEFT$(total$,LEN(total$)-1)):ENDPROC
 1560 total$="-"+total$
 1570 PROCdisplay(LEFT$(total$,LEN(total$)-1))
 1580 ENDPROC
 1590 :
 1600 DEFPROCinv_store
 1610 IF store$="" PROCdisplay("0"):ENDPROC 
 1620 IF LEFT$(store$,1)="-" store$=MID$(store$,2,LEN(store$)):PROCdisplay(store$):ENDPROC
 1630 store$="-"+store$
 1640 PROCdisplay(store$)
 1650 ENDPROC
 1660 :
 1670 DEFPROCerror
 1680 IF ERR=17 THEN END
 1690 store$="Error"
 1700 PROCdisplay(store$)
 1710 VDU 7
 1720 FOR delay=0 TO 500:NEXT
 1730 store$="0"
 1740 total$=""
 1750 operation=off
 1760 decimal=off
 1770 digits=7
 1780 ENDPROC
 1790 :
 1800 DEFPROCmc_variables
 1810 calculator=&1ED8
 1820 calc_icon_data=&1F43
 1830 erase_calculator=&1F16
 1840 pointer=&1900
 1850 icon=&63
 1860 ENDPROC

 �   Listing III
 �   By Glenn Marshall
 �   (C) The Micro User
( :
2 � �<>&2100 � �
< :
F	 *FX3
P �basic_variables
Z �mc_variables
d � calculator
n � � �error
x �display(store$)
� :
� �
�   � calc_icon_data
�   � pointer
�   �decode
�*save calc 4000 8000
� � exit=on
� :
� � erase_calculator
�
 *FX210,1
� *FX3,6
�
 *FX210,0
� :
� :
 � "DESKTOP"
 :
 :
" ��basic_variables
, store$="0"
6 total$=""
@ memory$=""
J	 on=1
T
 off=0
^ decimal=off
h operation=on
r
 digits=8
| xpos=38
� ypos=7
� symbols$="+*/-^="
�
 exit=off
� �
� :
� ��display(string$)
� � 129:� 0
� � �xpos-8,ypos);�18," ")
�( � �xpos-�(string$)+10,ypos);string$
� �
� :
�
 ��decode
� � key$,loop
 � ?icon=255 �
 � �dFB
 � loop=1 � ?icon
&
   � key$
0 � loop
: � key$="E" exit=on
D � key$="A" �ac
N$ � key$="C" � operation=off � �c
X � key$="M" �mc
b � key$=">" �ms
l � key$="<" �mr
v � key$="N" �inverse
� � key$="P" �pi
� � key$="%" �percent
�- � �symbols$,key$)<>0 �do_operation(key$)
� � �(store$)>=digits �
�* � key$>="0" � key$<="9" �number(key$)
�( � key$="." � digits<14 �put_decimal
� �
�: � E,%,N,^,/,P,7,8,9,*,M,4,5,6,-,<,1,2,3,+,>,0,.,=,C,A
� :
� ��number(key$)
� � store$="0" store$=""
� store$=store$+key$
� �display(store$)
 operation=off
 �
 :
  ��do_operation(key$)
*/ � operation=on total$=�total$,�(total$)-1)
4 total$=total$+store$
> total$=�(�(total$))
H �display(total$)
R total$=total$+key$
\ � �30,ypos);key$
f store$=""
p operation=on
z decimal=off
�
 digits=8
� �
� :
� ��c
� store$="0"
� decimal=off
�
 digits=8
� �display(store$)
� �
� :
� ��percent
�/ � total$="" � store$="" � operation=on � �
�* � �total$,1)="*" store$=store$+"/100"
J � �total$,1)="+" total$="("+total$:store$=store$+")/("+store$+"/100)"
* � �total$,1)="/" store$=store$+"*100"
e � �total$,1)="/" total$="(("+total$:total$=�total$,(�(total$)-1)):store$="/"+store$+")*100)-100"
$ � �30,ypos);key$
. �do_operation("=")
8 �
B :
L	 ��pi
V store$=�(�)
` �display(store$)
j operation=off
t decimal=on
~ �
� :
� ��put_decimal
� store$=store$+"."
� decimal=on
�
 digits=9
� �display(store$)
� �
� :
�	 ��ac
� store$="0"
� total$=""
� decimal=off

 digits=8

 �display(store$)
 �
 :
(	 ��mc
2 memory$=""
< �
F :
P	 ��mr
Z+ � memory$="" �display("0"):store$="":�
d store$=memory$
n �display(store$)
x operation=off
� �
� :
�	 ��ms
�# � operation=off memory$=store$
�- � operation=on mem$=�total$,�(total$)-1)
� �
� :
� ��inverse
� � operation=on �inv_total
� � operation=off �inv_store
� �
� :
� ��inv_total
  � total$="" �display("0"):�
R � �total$,1)="-" total$=�total$,2,�(total$)):�display(�total$,�(total$)-1)):�
 total$="-"+total$
"# �display(�total$,�(total$)-1))
, �
6 :
@ ��inv_store
J! � store$="" �display("0"):� 
TD � �store$,1)="-" store$=�store$,2,�(store$)):�display(store$):�
^ store$="-"+store$
h �display(store$)
r �
| :
� ��error
� � �=17 � �
� store$="Error"
� �display(store$)
� � 7
� � delay=0 � 500:�
� store$="0"
� total$=""
� operation=off
� decimal=off
�
 digits=7
� �
� :
 ��mc_variables
 calculator=&1ED8
 calc_icon_data=&1F43
& erase_calculator=&1F16
0 pointer=&1900
:
 icon=&63
D �
�
00000000  0d 00 0a 14 20 f4 20 20  20 4c 69 73 74 69 6e 67  |.... .   Listing|
00000010  20 49 49 49 0d 00 14 1a  20 f4 20 20 20 42 79 20  | III.... .   By |
00000020  47 6c 65 6e 6e 20 4d 61  72 73 68 61 6c 6c 0d 00  |Glenn Marshall..|
00000030  1e 1b 20 f4 20 20 20 28  43 29 20 54 68 65 20 4d  |.. .   (C) The M|
00000040  69 63 72 6f 20 55 73 65  72 0d 00 28 06 20 3a 0d  |icro User..(. :.|
00000050  00 32 13 20 e7 20 90 3c  3e 26 32 31 30 30 20 8c  |.2. . .<>&2100 .|
00000060  20 e0 0d 00 3c 06 20 3a  0d 00 46 09 20 2a 46 58  | ...<. :..F. *FX|
00000070  33 0d 00 50 15 20 f2 62  61 73 69 63 5f 76 61 72  |3..P. .basic_var|
00000080  69 61 62 6c 65 73 0d 00  5a 12 20 f2 6d 63 5f 76  |iables..Z. .mc_v|
00000090  61 72 69 61 62 6c 65 73  0d 00 64 11 20 d6 20 63  |ariables..d. . c|
000000a0  61 6c 63 75 6c 61 74 6f  72 0d 00 6e 0f 20 ee 20  |alculator..n. . |
000000b0  85 20 f2 65 72 72 6f 72  0d 00 78 15 20 f2 64 69  |. .error..x. .di|
000000c0  73 70 6c 61 79 28 73 74  6f 72 65 24 29 0d 00 82  |splay(store$)...|
000000d0  06 20 3a 0d 00 8c 06 20  f5 0d 00 96 17 20 20 20  |. :.... .....   |
000000e0  d6 20 63 61 6c 63 5f 69  63 6f 6e 5f 64 61 74 61  |. calc_icon_data|
000000f0  0d 00 a0 10 20 20 20 d6  20 70 6f 69 6e 74 65 72  |....   . pointer|
00000100  0d 00 aa 0e 20 20 20 f2  64 65 63 6f 64 65 0d 00  |....   .decode..|
00000110  ab 18 2a 73 61 76 65 20  63 61 6c 63 20 34 30 30  |..*save calc 400|
00000120  30 20 38 30 30 30 0d 00  b4 0e 20 fd 20 65 78 69  |0 8000.... . exi|
00000130  74 3d 6f 6e 0d 00 be 06  20 3a 0d 00 c8 17 20 d6  |t=on.... :.... .|
00000140  20 65 72 61 73 65 5f 63  61 6c 63 75 6c 61 74 6f  | erase_calculato|
00000150  72 0d 00 d2 0d 20 2a 46  58 32 31 30 2c 31 0d 00  |r.... *FX210,1..|
00000160  dc 0b 20 2a 46 58 33 2c  36 0d 00 e6 0d 20 2a 46  |.. *FX3,6.... *F|
00000170  58 32 31 30 2c 30 0d 00  f0 06 20 3a 0d 00 fa 06  |X210,0.... :....|
00000180  20 3a 0d 01 04 10 20 d7  20 22 44 45 53 4b 54 4f  | :.... . "DESKTO|
00000190  50 22 0d 01 0e 06 20 3a  0d 01 18 06 20 3a 0d 01  |P".... :.... :..|
000001a0  22 16 20 dd f2 62 61 73  69 63 5f 76 61 72 69 61  |". ..basic_varia|
000001b0  62 6c 65 73 0d 01 2c 0f  20 73 74 6f 72 65 24 3d  |bles..,. store$=|
000001c0  22 30 22 0d 01 36 0e 20  74 6f 74 61 6c 24 3d 22  |"0"..6. total$="|
000001d0  22 0d 01 40 0f 20 6d 65  6d 6f 72 79 24 3d 22 22  |"..@. memory$=""|
000001e0  0d 01 4a 09 20 6f 6e 3d  31 0d 01 54 0a 20 6f 66  |..J. on=1..T. of|
000001f0  66 3d 30 0d 01 5e 10 20  64 65 63 69 6d 61 6c 3d  |f=0..^. decimal=|
00000200  6f 66 66 0d 01 68 11 20  6f 70 65 72 61 74 69 6f  |off..h. operatio|
00000210  6e 3d 6f 6e 0d 01 72 0d  20 64 69 67 69 74 73 3d  |n=on..r. digits=|
00000220  38 0d 01 7c 0c 20 78 70  6f 73 3d 33 38 0d 01 86  |8..|. xpos=38...|
00000230  0b 20 79 70 6f 73 3d 37  0d 01 90 16 20 73 79 6d  |. ypos=7.... sym|
00000240  62 6f 6c 73 24 3d 22 2b  2a 2f 2d 5e 3d 22 0d 01  |bols$="+*/-^="..|
00000250  9a 0d 20 65 78 69 74 3d  6f 66 66 0d 01 a4 06 20  |.. exit=off.... |
00000260  e1 0d 01 ae 06 20 3a 0d  01 b8 17 20 dd f2 64 69  |..... :.... ..di|
00000270  73 70 6c 61 79 28 73 74  72 69 6e 67 24 29 0d 01  |splay(string$)..|
00000280  c2 0e 20 fb 20 31 32 39  3a fb 20 30 0d 01 cc 1d  |.. . 129:. 0....|
00000290  20 f1 20 8a 78 70 6f 73  2d 38 2c 79 70 6f 73 29  | . .xpos-8,ypos)|
000002a0  3b c4 31 38 2c 22 20 22  29 0d 01 d6 28 20 f1 20  |;.18," ")...( . |
000002b0  8a 78 70 6f 73 2d a9 28  73 74 72 69 6e 67 24 29  |.xpos-.(string$)|
000002c0  2b 31 30 2c 79 70 6f 73  29 3b 73 74 72 69 6e 67  |+10,ypos);string|
000002d0  24 0d 01 e0 06 20 e1 0d  01 ea 06 20 3a 0d 01 f4  |$.... ..... :...|
000002e0  0d 20 dd f2 64 65 63 6f  64 65 0d 01 fe 10 20 ea  |. ..decode.... .|
000002f0  20 6b 65 79 24 2c 6c 6f  6f 70 0d 02 08 12 20 e7  | key$,loop.... .|
00000300  20 3f 69 63 6f 6e 3d 32  35 35 20 e1 0d 02 12 0b  | ?icon=255 .....|
00000310  20 f7 20 8d 64 46 42 0d  02 1c 15 20 e3 20 6c 6f  | . .dFB.... . lo|
00000320  6f 70 3d 31 20 b8 20 3f  69 63 6f 6e 0d 02 26 0d  |op=1 . ?icon..&.|
00000330  20 20 20 f3 20 6b 65 79  24 0d 02 30 0b 20 ed 20  |   . key$..0. . |
00000340  6c 6f 6f 70 0d 02 3a 17  20 e7 20 6b 65 79 24 3d  |loop..:. . key$=|
00000350  22 45 22 20 65 78 69 74  3d 6f 6e 0d 02 44 13 20  |"E" exit=on..D. |
00000360  e7 20 6b 65 79 24 3d 22  41 22 20 f2 61 63 0d 02  |. key$="A" .ac..|
00000370  4e 24 20 e7 20 6b 65 79  24 3d 22 43 22 20 80 20  |N$ . key$="C" . |
00000380  6f 70 65 72 61 74 69 6f  6e 3d 6f 66 66 20 8c 20  |operation=off . |
00000390  f2 63 0d 02 58 13 20 e7  20 6b 65 79 24 3d 22 4d  |.c..X. . key$="M|
000003a0  22 20 f2 6d 63 0d 02 62  13 20 e7 20 6b 65 79 24  |" .mc..b. . key$|
000003b0  3d 22 3e 22 20 f2 6d 73  0d 02 6c 13 20 e7 20 6b  |=">" .ms..l. . k|
000003c0  65 79 24 3d 22 3c 22 20  f2 6d 72 0d 02 76 18 20  |ey$="<" .mr..v. |
000003d0  e7 20 6b 65 79 24 3d 22  4e 22 20 f2 69 6e 76 65  |. key$="N" .inve|
000003e0  72 73 65 0d 02 80 13 20  e7 20 6b 65 79 24 3d 22  |rse.... . key$="|
000003f0  50 22 20 f2 70 69 0d 02  8a 18 20 e7 20 6b 65 79  |P" .pi.... . key|
00000400  24 3d 22 25 22 20 f2 70  65 72 63 65 6e 74 0d 02  |$="%" .percent..|
00000410  94 2d 20 e7 20 a7 73 79  6d 62 6f 6c 73 24 2c 6b  |.- . .symbols$,k|
00000420  65 79 24 29 3c 3e 30 20  f2 64 6f 5f 6f 70 65 72  |ey$)<>0 .do_oper|
00000430  61 74 69 6f 6e 28 6b 65  79 24 29 0d 02 9e 1a 20  |ation(key$).... |
00000440  e7 20 a9 28 73 74 6f 72  65 24 29 3e 3d 64 69 67  |. .(store$)>=dig|
00000450  69 74 73 20 e1 0d 02 a8  2a 20 e7 20 6b 65 79 24  |its ....* . key$|
00000460  3e 3d 22 30 22 20 80 20  6b 65 79 24 3c 3d 22 39  |>="0" . key$<="9|
00000470  22 20 f2 6e 75 6d 62 65  72 28 6b 65 79 24 29 0d  |" .number(key$).|
00000480  02 b2 28 20 e7 20 6b 65  79 24 3d 22 2e 22 20 80  |..( . key$="." .|
00000490  20 64 69 67 69 74 73 3c  31 34 20 f2 70 75 74 5f  | digits<14 .put_|
000004a0  64 65 63 69 6d 61 6c 0d  02 bc 06 20 e1 0d 02 c6  |decimal.... ....|
000004b0  3a 20 dc 20 45 2c 25 2c  4e 2c 5e 2c 2f 2c 50 2c  |: . E,%,N,^,/,P,|
000004c0  37 2c 38 2c 39 2c 2a 2c  4d 2c 34 2c 35 2c 36 2c  |7,8,9,*,M,4,5,6,|
000004d0  2d 2c 3c 2c 31 2c 32 2c  33 2c 2b 2c 3e 2c 30 2c  |-,<,1,2,3,+,>,0,|
000004e0  2e 2c 3d 2c 43 2c 41 0d  02 d0 06 20 3a 0d 02 da  |.,=,C,A.... :...|
000004f0  13 20 dd f2 6e 75 6d 62  65 72 28 6b 65 79 24 29  |. ..number(key$)|
00000500  0d 02 e4 1b 20 e7 20 73  74 6f 72 65 24 3d 22 30  |.... . store$="0|
00000510  22 20 73 74 6f 72 65 24  3d 22 22 0d 02 ee 17 20  |" store$="".... |
00000520  73 74 6f 72 65 24 3d 73  74 6f 72 65 24 2b 6b 65  |store$=store$+ke|
00000530  79 24 0d 02 f8 15 20 f2  64 69 73 70 6c 61 79 28  |y$.... .display(|
00000540  73 74 6f 72 65 24 29 0d  03 02 12 20 6f 70 65 72  |store$).... oper|
00000550  61 74 69 6f 6e 3d 6f 66  66 0d 03 0c 06 20 e1 0d  |ation=off.... ..|
00000560  03 16 06 20 3a 0d 03 20  19 20 dd f2 64 6f 5f 6f  |... :.. . ..do_o|
00000570  70 65 72 61 74 69 6f 6e  28 6b 65 79 24 29 0d 03  |peration(key$)..|
00000580  2a 2f 20 e7 20 6f 70 65  72 61 74 69 6f 6e 3d 6f  |*/ . operation=o|
00000590  6e 20 74 6f 74 61 6c 24  3d c0 74 6f 74 61 6c 24  |n total$=.total$|
000005a0  2c a9 28 74 6f 74 61 6c  24 29 2d 31 29 0d 03 34  |,.(total$)-1)..4|
000005b0  19 20 74 6f 74 61 6c 24  3d 74 6f 74 61 6c 24 2b  |. total$=total$+|
000005c0  73 74 6f 72 65 24 0d 03  3e 18 20 74 6f 74 61 6c  |store$..>. total|
000005d0  24 3d c3 28 a0 28 74 6f  74 61 6c 24 29 29 0d 03  |$=.(.(total$))..|
000005e0  48 15 20 f2 64 69 73 70  6c 61 79 28 74 6f 74 61  |H. .display(tota|
000005f0  6c 24 29 0d 03 52 17 20  74 6f 74 61 6c 24 3d 74  |l$)..R. total$=t|
00000600  6f 74 61 6c 24 2b 6b 65  79 24 0d 03 5c 15 20 f1  |otal$+key$..\. .|
00000610  20 8a 33 30 2c 79 70 6f  73 29 3b 6b 65 79 24 0d  | .30,ypos);key$.|
00000620  03 66 0e 20 73 74 6f 72  65 24 3d 22 22 0d 03 70  |.f. store$=""..p|
00000630  11 20 6f 70 65 72 61 74  69 6f 6e 3d 6f 6e 0d 03  |. operation=on..|
00000640  7a 10 20 64 65 63 69 6d  61 6c 3d 6f 66 66 0d 03  |z. decimal=off..|
00000650  84 0d 20 64 69 67 69 74  73 3d 38 0d 03 8e 06 20  |.. digits=8.... |
00000660  e1 0d 03 98 06 20 3a 0d  03 a2 08 20 dd f2 63 0d  |..... :.... ..c.|
00000670  03 ac 0f 20 73 74 6f 72  65 24 3d 22 30 22 0d 03  |... store$="0"..|
00000680  b6 10 20 64 65 63 69 6d  61 6c 3d 6f 66 66 0d 03  |.. decimal=off..|
00000690  c0 0d 20 64 69 67 69 74  73 3d 38 0d 03 ca 15 20  |.. digits=8.... |
000006a0  f2 64 69 73 70 6c 61 79  28 73 74 6f 72 65 24 29  |.display(store$)|
000006b0  0d 03 d4 06 20 e1 0d 03  de 06 20 3a 0d 03 e8 0e  |.... ..... :....|
000006c0  20 dd f2 70 65 72 63 65  6e 74 0d 03 f2 2f 20 e7  | ..percent.../ .|
000006d0  20 74 6f 74 61 6c 24 3d  22 22 20 84 20 73 74 6f  | total$="" . sto|
000006e0  72 65 24 3d 22 22 20 84  20 6f 70 65 72 61 74 69  |re$="" . operati|
000006f0  6f 6e 3d 6f 6e 20 8c 20  e1 0d 03 fc 2a 20 e7 20  |on=on . ....* . |
00000700  c2 74 6f 74 61 6c 24 2c  31 29 3d 22 2a 22 20 73  |.total$,1)="*" s|
00000710  74 6f 72 65 24 3d 73 74  6f 72 65 24 2b 22 2f 31  |tore$=store$+"/1|
00000720  30 30 22 0d 04 06 4a 20  e7 20 c2 74 6f 74 61 6c  |00"...J . .total|
00000730  24 2c 31 29 3d 22 2b 22  20 74 6f 74 61 6c 24 3d  |$,1)="+" total$=|
00000740  22 28 22 2b 74 6f 74 61  6c 24 3a 73 74 6f 72 65  |"("+total$:store|
00000750  24 3d 73 74 6f 72 65 24  2b 22 29 2f 28 22 2b 73  |$=store$+")/("+s|
00000760  74 6f 72 65 24 2b 22 2f  31 30 30 29 22 0d 04 10  |tore$+"/100)"...|
00000770  2a 20 e7 20 c2 74 6f 74  61 6c 24 2c 31 29 3d 22  |* . .total$,1)="|
00000780  2f 22 20 73 74 6f 72 65  24 3d 73 74 6f 72 65 24  |/" store$=store$|
00000790  2b 22 2a 31 30 30 22 0d  04 1a 65 20 e7 20 c2 74  |+"*100"...e . .t|
000007a0  6f 74 61 6c 24 2c 31 29  3d 22 2f 22 20 74 6f 74  |otal$,1)="/" tot|
000007b0  61 6c 24 3d 22 28 28 22  2b 74 6f 74 61 6c 24 3a  |al$="(("+total$:|
000007c0  74 6f 74 61 6c 24 3d c0  74 6f 74 61 6c 24 2c 28  |total$=.total$,(|
000007d0  a9 28 74 6f 74 61 6c 24  29 2d 31 29 29 3a 73 74  |.(total$)-1)):st|
000007e0  6f 72 65 24 3d 22 2f 22  2b 73 74 6f 72 65 24 2b  |ore$="/"+store$+|
000007f0  22 29 2a 31 30 30 29 2d  31 30 30 22 0d 04 24 15  |")*100)-100"..$.|
00000800  20 f1 20 8a 33 30 2c 79  70 6f 73 29 3b 6b 65 79  | . .30,ypos);key|
00000810  24 0d 04 2e 17 20 f2 64  6f 5f 6f 70 65 72 61 74  |$.... .do_operat|
00000820  69 6f 6e 28 22 3d 22 29  0d 04 38 06 20 e1 0d 04  |ion("=")..8. ...|
00000830  42 06 20 3a 0d 04 4c 09  20 dd f2 70 69 0d 04 56  |B. :..L. ..pi..V|
00000840  10 20 73 74 6f 72 65 24  3d c3 28 af 29 0d 04 60  |. store$=.(.)..`|
00000850  15 20 f2 64 69 73 70 6c  61 79 28 73 74 6f 72 65  |. .display(store|
00000860  24 29 0d 04 6a 12 20 6f  70 65 72 61 74 69 6f 6e  |$)..j. operation|
00000870  3d 6f 66 66 0d 04 74 0f  20 64 65 63 69 6d 61 6c  |=off..t. decimal|
00000880  3d 6f 6e 0d 04 7e 06 20  e1 0d 04 88 06 20 3a 0d  |=on..~. ..... :.|
00000890  04 92 12 20 dd f2 70 75  74 5f 64 65 63 69 6d 61  |... ..put_decima|
000008a0  6c 0d 04 9c 16 20 73 74  6f 72 65 24 3d 73 74 6f  |l.... store$=sto|
000008b0  72 65 24 2b 22 2e 22 0d  04 a6 0f 20 64 65 63 69  |re$+".".... deci|
000008c0  6d 61 6c 3d 6f 6e 0d 04  b0 0d 20 64 69 67 69 74  |mal=on.... digit|
000008d0  73 3d 39 0d 04 ba 15 20  f2 64 69 73 70 6c 61 79  |s=9.... .display|
000008e0  28 73 74 6f 72 65 24 29  0d 04 c4 06 20 e1 0d 04  |(store$).... ...|
000008f0  ce 06 20 3a 0d 04 d8 09  20 dd f2 61 63 0d 04 e2  |.. :.... ..ac...|
00000900  0f 20 73 74 6f 72 65 24  3d 22 30 22 0d 04 ec 0e  |. store$="0"....|
00000910  20 74 6f 74 61 6c 24 3d  22 22 0d 04 f6 10 20 64  | total$="".... d|
00000920  65 63 69 6d 61 6c 3d 6f  66 66 0d 05 00 0d 20 64  |ecimal=off.... d|
00000930  69 67 69 74 73 3d 38 0d  05 0a 15 20 f2 64 69 73  |igits=8.... .dis|
00000940  70 6c 61 79 28 73 74 6f  72 65 24 29 0d 05 14 06  |play(store$)....|
00000950  20 e1 0d 05 1e 06 20 3a  0d 05 28 09 20 dd f2 6d  | ..... :..(. ..m|
00000960  63 0d 05 32 0f 20 6d 65  6d 6f 72 79 24 3d 22 22  |c..2. memory$=""|
00000970  0d 05 3c 06 20 e1 0d 05  46 06 20 3a 0d 05 50 09  |..<. ...F. :..P.|
00000980  20 dd f2 6d 72 0d 05 5a  2b 20 e7 20 6d 65 6d 6f  | ..mr..Z+ . memo|
00000990  72 79 24 3d 22 22 20 f2  64 69 73 70 6c 61 79 28  |ry$="" .display(|
000009a0  22 30 22 29 3a 73 74 6f  72 65 24 3d 22 22 3a e1  |"0"):store$="":.|
000009b0  0d 05 64 13 20 73 74 6f  72 65 24 3d 6d 65 6d 6f  |..d. store$=memo|
000009c0  72 79 24 0d 05 6e 15 20  f2 64 69 73 70 6c 61 79  |ry$..n. .display|
000009d0  28 73 74 6f 72 65 24 29  0d 05 78 12 20 6f 70 65  |(store$)..x. ope|
000009e0  72 61 74 69 6f 6e 3d 6f  66 66 0d 05 82 06 20 e1  |ration=off.... .|
000009f0  0d 05 8c 06 20 3a 0d 05  96 09 20 dd f2 6d 73 0d  |.... :.... ..ms.|
00000a00  05 a0 23 20 e7 20 6f 70  65 72 61 74 69 6f 6e 3d  |..# . operation=|
00000a10  6f 66 66 20 6d 65 6d 6f  72 79 24 3d 73 74 6f 72  |off memory$=stor|
00000a20  65 24 0d 05 aa 2d 20 e7  20 6f 70 65 72 61 74 69  |e$...- . operati|
00000a30  6f 6e 3d 6f 6e 20 6d 65  6d 24 3d c0 74 6f 74 61  |on=on mem$=.tota|
00000a40  6c 24 2c a9 28 74 6f 74  61 6c 24 29 2d 31 29 0d  |l$,.(total$)-1).|
00000a50  05 b4 06 20 e1 0d 05 be  06 20 3a 0d 05 c8 0e 20  |... ..... :.... |
00000a60  dd f2 69 6e 76 65 72 73  65 0d 05 d2 1e 20 e7 20  |..inverse.... . |
00000a70  6f 70 65 72 61 74 69 6f  6e 3d 6f 6e 20 f2 69 6e  |operation=on .in|
00000a80  76 5f 74 6f 74 61 6c 0d  05 dc 1f 20 e7 20 6f 70  |v_total.... . op|
00000a90  65 72 61 74 69 6f 6e 3d  6f 66 66 20 f2 69 6e 76  |eration=off .inv|
00000aa0  5f 73 74 6f 72 65 0d 05  e6 06 20 e1 0d 05 f0 06  |_store.... .....|
00000ab0  20 3a 0d 05 fa 10 20 dd  f2 69 6e 76 5f 74 6f 74  | :.... ..inv_tot|
00000ac0  61 6c 0d 06 04 20 20 e7  20 74 6f 74 61 6c 24 3d  |al...  . total$=|
00000ad0  22 22 20 f2 64 69 73 70  6c 61 79 28 22 30 22 29  |"" .display("0")|
00000ae0  3a e1 0d 06 0e 52 20 e7  20 c0 74 6f 74 61 6c 24  |:....R . .total$|
00000af0  2c 31 29 3d 22 2d 22 20  74 6f 74 61 6c 24 3d c1  |,1)="-" total$=.|
00000b00  74 6f 74 61 6c 24 2c 32  2c a9 28 74 6f 74 61 6c  |total$,2,.(total|
00000b10  24 29 29 3a f2 64 69 73  70 6c 61 79 28 c0 74 6f  |$)):.display(.to|
00000b20  74 61 6c 24 2c a9 28 74  6f 74 61 6c 24 29 2d 31  |tal$,.(total$)-1|
00000b30  29 29 3a e1 0d 06 18 16  20 74 6f 74 61 6c 24 3d  |)):..... total$=|
00000b40  22 2d 22 2b 74 6f 74 61  6c 24 0d 06 22 23 20 f2  |"-"+total$.."# .|
00000b50  64 69 73 70 6c 61 79 28  c0 74 6f 74 61 6c 24 2c  |display(.total$,|
00000b60  a9 28 74 6f 74 61 6c 24  29 2d 31 29 29 0d 06 2c  |.(total$)-1))..,|
00000b70  06 20 e1 0d 06 36 06 20  3a 0d 06 40 10 20 dd f2  |. ...6. :..@. ..|
00000b80  69 6e 76 5f 73 74 6f 72  65 0d 06 4a 21 20 e7 20  |inv_store..J! . |
00000b90  73 74 6f 72 65 24 3d 22  22 20 f2 64 69 73 70 6c  |store$="" .displ|
00000ba0  61 79 28 22 30 22 29 3a  e1 20 0d 06 54 44 20 e7  |ay("0"):. ..TD .|
00000bb0  20 c0 73 74 6f 72 65 24  2c 31 29 3d 22 2d 22 20  | .store$,1)="-" |
00000bc0  73 74 6f 72 65 24 3d c1  73 74 6f 72 65 24 2c 32  |store$=.store$,2|
00000bd0  2c a9 28 73 74 6f 72 65  24 29 29 3a f2 64 69 73  |,.(store$)):.dis|
00000be0  70 6c 61 79 28 73 74 6f  72 65 24 29 3a e1 0d 06  |play(store$):...|
00000bf0  5e 16 20 73 74 6f 72 65  24 3d 22 2d 22 2b 73 74  |^. store$="-"+st|
00000c00  6f 72 65 24 0d 06 68 15  20 f2 64 69 73 70 6c 61  |ore$..h. .displa|
00000c10  79 28 73 74 6f 72 65 24  29 0d 06 72 06 20 e1 0d  |y(store$)..r. ..|
00000c20  06 7c 06 20 3a 0d 06 86  0c 20 dd f2 65 72 72 6f  |.|. :.... ..erro|
00000c30  72 0d 06 90 0f 20 e7 20  9f 3d 31 37 20 8c 20 e0  |r.... . .=17 . .|
00000c40  0d 06 9a 13 20 73 74 6f  72 65 24 3d 22 45 72 72  |.... store$="Err|
00000c50  6f 72 22 0d 06 a4 15 20  f2 64 69 73 70 6c 61 79  |or".... .display|
00000c60  28 73 74 6f 72 65 24 29  0d 06 ae 08 20 ef 20 37  |(store$).... . 7|
00000c70  0d 06 b8 16 20 e3 20 64  65 6c 61 79 3d 30 20 b8  |.... . delay=0 .|
00000c80  20 35 30 30 3a ed 0d 06  c2 0f 20 73 74 6f 72 65  | 500:..... store|
00000c90  24 3d 22 30 22 0d 06 cc  0e 20 74 6f 74 61 6c 24  |$="0".... total$|
00000ca0  3d 22 22 0d 06 d6 12 20  6f 70 65 72 61 74 69 6f  |="".... operatio|
00000cb0  6e 3d 6f 66 66 0d 06 e0  10 20 64 65 63 69 6d 61  |n=off.... decima|
00000cc0  6c 3d 6f 66 66 0d 06 ea  0d 20 64 69 67 69 74 73  |l=off.... digits|
00000cd0  3d 37 0d 06 f4 06 20 e1  0d 06 fe 06 20 3a 0d 07  |=7.... ..... :..|
00000ce0  08 13 20 dd f2 6d 63 5f  76 61 72 69 61 62 6c 65  |.. ..mc_variable|
00000cf0  73 0d 07 12 15 20 63 61  6c 63 75 6c 61 74 6f 72  |s.... calculator|
00000d00  3d 26 31 45 44 38 0d 07  1c 19 20 63 61 6c 63 5f  |=&1ED8.... calc_|
00000d10  69 63 6f 6e 5f 64 61 74  61 3d 26 31 46 34 33 0d  |icon_data=&1F43.|
00000d20  07 26 1b 20 65 72 61 73  65 5f 63 61 6c 63 75 6c  |.&. erase_calcul|
00000d30  61 74 6f 72 3d 26 31 46  31 36 0d 07 30 12 20 70  |ator=&1F16..0. p|
00000d40  6f 69 6e 74 65 72 3d 26  31 39 30 30 0d 07 3a 0d  |ointer=&1900..:.|
00000d50  20 69 63 6f 6e 3d 26 36  33 0d 07 44 06 20 e1 0d  | icon=&63..D. ..|
00000d60  ff                                                |.|
00000d61