Home » Archimedes archive » Acorn Computing » 1994 08 subscription disc.adf » 9408s » BeebDisk/EgyRusM

BeebDisk/EgyRusM

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 » Acorn Computing » 1994 08 subscription disc.adf » 9408s
Filename: BeebDisk/EgyRusM
Read OK:
File size: 036B bytes
Load address: 0000
Exec address: 0000
File contents
   10 REM Egyptn & Russn Multiplication
   20 REM by Jon Millington
   30 REM (c) Acorn Computing
   40 DIM A(14),B(15)
   50 INPUT"Key 1-Egyptian 0-Russian "M
   60 REPEAT MODE 7
   70 INPUT "Enter two numbers: "A
   80 R=20+LEN STR$ A
   90 INPUT TAB(R,0)"times "B'
  100 IF A*B>1E9-1 THEN 60
  110 IF A<B THEN C=A:A=B:B=C
  120 IF B>511 THEN H=1 ELSE H=2
  130 VDU 23;8202;0;0;0;
  140 C$=CHR$(H+139)
  150 IF M THEN B(0)=1 ELSE B(0)=B
  160 N=-1
  170 REPEAT N=N+1
  180 A(N)=A
  190 FOR D=1 TO H
  200 PRINT C$ B(N) CHR$133 A(N)
  210 NEXT D
  220 A=2*A
  230 IF M THEN B(N+1)=2*B(N)
  240 IF M=0 THEN B(N+1)=B(N) DIV 2
  250 UNTIL B(N+1)=0 OR B(N+1)>B
  260 T=0
  270 FOR G=0 TO N
  280 IF M THEN C=N-G ELSE C=G
  290 IF M AND B<B(C) THEN 380
  300 IF M=0 AND B(C) MOD 2=0 THEN 380
  310 FOR K=11 TO 22
  320 Z=INKEY(10)
  330 FOR D=1 TO H
  340 PRINT TAB(K,H*C+D+1)CHR$130 A(C)
  350 NEXT D,K
  360 T=T+A(C)
  370 IF M THEN B=B-B(C)
  380 NEXT G
  390 L=LEN STR$ T
  400 P$=STRING$(L,"-")
  410 FOR D=H*G+2 TO H*G+H+1
  420 PRINT TAB(32-L,D)C$ P$
  430 PRINT TAB(21,D+H)C$ CHR$129 T
  440 NEXT D
  450 PRINT"Again? Press space";
  460 UNTIL GET<>32

$ � Egyptn & Russn Multiplication
 � by Jon Millington
 � (c) Acorn Computing
( � A(14),B(15)
2" �"Key 1-Egyptian 0-Russian "M
<
 � � 7
F � "Enter two numbers: "A
P R=20+� � A
Z � �R,0)"times "B'
d � A*B>1E9-1 � �T|@
n � A<B � C=A:A=B:B=C
x � B>511 � H=1 � H=2
� � 23;8202;0;0;0;
� C$=�(H+139)
� � M � B(0)=1 � B(0)=B
�	 N=-1
� � N=N+1
� A(N)=A
� � D=1 � H
� � C$ B(N) �133 A(N)
� � D
�
 A=2*A
� � M � B(N+1)=2*B(N)
� � M=0 � B(N+1)=B(N) � 2
� � B(N+1)=0 � B(N+1)>B
 T=0
 � G=0 � N
 � M � C=N-G � C=G
" � M � B<B(C) � �D|A
, � M=0 � B(C) � 2=0 � �D|A
6 � K=11 � 22
@ Z=�(10)
J � D=1 � H
T � �K,H*C+D+1)�130 A(C)
^
 � D,K
h
 T=T+A(C)
r � M � B=B-B(C)
| � G
� L=� � T
� P$=�L,"-")
� � D=H*G+2 � H*G+H+1
� � �32-L,D)C$ P$
� � �21,D+H)C$ �129 T
� � D
� �"Again? Press space";
� � �<>32
�
00000000  0d 00 0a 24 20 f4 20 45  67 79 70 74 6e 20 26 20  |...$ . Egyptn & |
00000010  52 75 73 73 6e 20 4d 75  6c 74 69 70 6c 69 63 61  |Russn Multiplica|
00000020  74 69 6f 6e 0d 00 14 18  20 f4 20 62 79 20 4a 6f  |tion.... . by Jo|
00000030  6e 20 4d 69 6c 6c 69 6e  67 74 6f 6e 0d 00 1e 1a  |n Millington....|
00000040  20 f4 20 28 63 29 20 41  63 6f 72 6e 20 43 6f 6d  | . (c) Acorn Com|
00000050  70 75 74 69 6e 67 0d 00  28 12 20 de 20 41 28 31  |puting..(. . A(1|
00000060  34 29 2c 42 28 31 35 29  0d 00 32 22 20 e8 22 4b  |4),B(15)..2" ."K|
00000070  65 79 20 31 2d 45 67 79  70 74 69 61 6e 20 30 2d  |ey 1-Egyptian 0-|
00000080  52 75 73 73 69 61 6e 20  22 4d 0d 00 3c 0a 20 f5  |Russian "M..<. .|
00000090  20 eb 20 37 0d 00 46 1d  20 e8 20 22 45 6e 74 65  | . 7..F. . "Ente|
000000a0  72 20 74 77 6f 20 6e 75  6d 62 65 72 73 3a 20 22  |r two numbers: "|
000000b0  41 0d 00 50 0f 20 52 3d  32 30 2b a9 20 c3 20 41  |A..P. R=20+. . A|
000000c0  0d 00 5a 16 20 e8 20 8a  52 2c 30 29 22 74 69 6d  |..Z. . .R,0)"tim|
000000d0  65 73 20 22 42 27 0d 00  64 17 20 e7 20 41 2a 42  |es "B'..d. . A*B|
000000e0  3e 31 45 39 2d 31 20 8c  20 8d 54 7c 40 0d 00 6e  |>1E9-1 . .T|@..n|
000000f0  18 20 e7 20 41 3c 42 20  8c 20 43 3d 41 3a 41 3d  |. . A<B . C=A:A=|
00000100  42 3a 42 3d 43 0d 00 78  18 20 e7 20 42 3e 35 31  |B:B=C..x. . B>51|
00000110  31 20 8c 20 48 3d 31 20  8b 20 48 3d 32 0d 00 82  |1 . H=1 . H=2...|
00000120  15 20 ef 20 32 33 3b 38  32 30 32 3b 30 3b 30 3b  |. . 23;8202;0;0;|
00000130  30 3b 0d 00 8c 10 20 43  24 3d bd 28 48 2b 31 33  |0;.... C$=.(H+13|
00000140  39 29 0d 00 96 1a 20 e7  20 4d 20 8c 20 42 28 30  |9).... . M . B(0|
00000150  29 3d 31 20 8b 20 42 28  30 29 3d 42 0d 00 a0 09  |)=1 . B(0)=B....|
00000160  20 4e 3d 2d 31 0d 00 aa  0c 20 f5 20 4e 3d 4e 2b  | N=-1.... . N=N+|
00000170  31 0d 00 b4 0b 20 41 28  4e 29 3d 41 0d 00 be 0e  |1.... A(N)=A....|
00000180  20 e3 20 44 3d 31 20 b8  20 48 0d 00 c8 18 20 f1  | . D=1 . H.... .|
00000190  20 43 24 20 42 28 4e 29  20 bd 31 33 33 20 41 28  | C$ B(N) .133 A(|
000001a0  4e 29 0d 00 d2 08 20 ed  20 44 0d 00 dc 0a 20 41  |N).... . D.... A|
000001b0  3d 32 2a 41 0d 00 e6 18  20 e7 20 4d 20 8c 20 42  |=2*A.... . M . B|
000001c0  28 4e 2b 31 29 3d 32 2a  42 28 4e 29 0d 00 f0 1c  |(N+1)=2*B(N)....|
000001d0  20 e7 20 4d 3d 30 20 8c  20 42 28 4e 2b 31 29 3d  | . M=0 . B(N+1)=|
000001e0  42 28 4e 29 20 81 20 32  0d 00 fa 1a 20 fd 20 42  |B(N) . 2.... . B|
000001f0  28 4e 2b 31 29 3d 30 20  84 20 42 28 4e 2b 31 29  |(N+1)=0 . B(N+1)|
00000200  3e 42 0d 01 04 08 20 54  3d 30 0d 01 0e 0e 20 e3  |>B.... T=0.... .|
00000210  20 47 3d 30 20 b8 20 4e  0d 01 18 16 20 e7 20 4d  | G=0 . N.... . M|
00000220  20 8c 20 43 3d 4e 2d 47  20 8b 20 43 3d 47 0d 01  | . C=N-G . C=G..|
00000230  22 18 20 e7 20 4d 20 80  20 42 3c 42 28 43 29 20  |". . M . B<B(C) |
00000240  8c 20 8d 44 7c 41 0d 01  2c 1e 20 e7 20 4d 3d 30  |. .D|A..,. . M=0|
00000250  20 80 20 42 28 43 29 20  83 20 32 3d 30 20 8c 20  | . B(C) . 2=0 . |
00000260  8d 44 7c 41 0d 01 36 10  20 e3 20 4b 3d 31 31 20  |.D|A..6. . K=11 |
00000270  b8 20 32 32 0d 01 40 0c  20 5a 3d a6 28 31 30 29  |. 22..@. Z=.(10)|
00000280  0d 01 4a 0e 20 e3 20 44  3d 31 20 b8 20 48 0d 01  |..J. . D=1 . H..|
00000290  54 1b 20 f1 20 8a 4b 2c  48 2a 43 2b 44 2b 31 29  |T. . .K,H*C+D+1)|
000002a0  bd 31 33 30 20 41 28 43  29 0d 01 5e 0a 20 ed 20  |.130 A(C)..^. . |
000002b0  44 2c 4b 0d 01 68 0d 20  54 3d 54 2b 41 28 43 29  |D,K..h. T=T+A(C)|
000002c0  0d 01 72 13 20 e7 20 4d  20 8c 20 42 3d 42 2d 42  |..r. . M . B=B-B|
000002d0  28 43 29 0d 01 7c 08 20  ed 20 47 0d 01 86 0c 20  |(C)..|. . G.... |
000002e0  4c 3d a9 20 c3 20 54 0d  01 90 0f 20 50 24 3d c4  |L=. . T.... P$=.|
000002f0  4c 2c 22 2d 22 29 0d 01  9a 18 20 e3 20 44 3d 48  |L,"-").... . D=H|
00000300  2a 47 2b 32 20 b8 20 48  2a 47 2b 48 2b 31 0d 01  |*G+2 . H*G+H+1..|
00000310  a4 14 20 f1 20 8a 33 32  2d 4c 2c 44 29 43 24 20  |.. . .32-L,D)C$ |
00000320  50 24 0d 01 ae 18 20 f1  20 8a 32 31 2c 44 2b 48  |P$.... . .21,D+H|
00000330  29 43 24 20 bd 31 32 39  20 54 0d 01 b8 08 20 ed  |)C$ .129 T.... .|
00000340  20 44 0d 01 c2 1b 20 f1  22 41 67 61 69 6e 3f 20  | D.... ."Again? |
00000350  50 72 65 73 73 20 73 70  61 63 65 22 3b 0d 01 cc  |Press space";...|
00000360  0c 20 fd 20 a5 3c 3e 33  32 0d ff                 |. . .<>32..|
0000036b