Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_25.ADF » P/ADexpo1

P/ADexpo1

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 » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_25.ADF
Filename: P/ADexpo1
Read OK:
File size: 04D5 bytes
Load address: 41206576
Exec address: 70786544
File contents
ADFS EXPOSED
~~~~~~~~~~~~
By Richard Dimond

This program was published in EU Nov 1987 but would only display a single
side of a disc.  As I have a double sided drive I decided to modify it to
show both sides of the disc.  With the original program, you also needed
to break out of it by pressing ESCAPE to re-run for a change of disc.  I
have added lines to prompt you to insert a disc and press RETURN before
the display is shown so that it is easier to change discs.

A single sided disc is shown as before but for a double sided disc the
display of the tracks is narrower and the numbers above are doubled.  Also
the data below is amended.

When the display is completed, a message is printed to ask you to press
'R' to re-run the program or SPACE to exit.

If you display a DS disc with a large amount of free sapace, the display
can take some time to complete.  I have managed to convert the program to
a M/code file which speeds this up quite noticeably.  It was made up after
some experimenting and by doing it in several stages so the assembler
listing has become rather untidy.  If I can re-arrange this, I will send
it in later - it will illustrate some other points in converting BASIC to
M/code.
00000000  0d 41 44 46 53 20 45 58  50 4f 53 45 44 0d 7e 7e  |.ADFS EXPOSED.~~|
00000010  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 0d 42 79 20 52 69  |~~~~~~~~~~.By Ri|
00000020  63 68 61 72 64 20 44 69  6d 6f 6e 64 0d 0d 54 68  |chard Dimond..Th|
00000030  69 73 1a 20 70 72 6f 67  72 61 6d 20 77 61 73 20  |is. program was |
00000040  70 75 62 6c 69 73 68 65  64 20 69 6e 20 45 55 20  |published in EU |
00000050  4e 6f 76 20 31 39 38 37  20 62 75 74 20 77 6f 75  |Nov 1987 but wou|
00000060  6c 64 20 6f 6e 6c 79 20  64 69 73 70 6c 61 79 20  |ld only display |
00000070  61 20 73 69 6e 67 6c 65  0d 73 69 64 65 20 6f 66  |a single.side of|
00000080  1a 20 61 20 64 69 73 63  2e 20 20 41 73 20 49 20  |. a disc.  As I |
00000090  68 61 76 65 20 61 20 64  6f 75 62 6c 65 20 73 69  |have a double si|
000000a0  64 65 64 20 64 72 69 76  65 20 49 20 64 65 63 69  |ded drive I deci|
000000b0  64 65 64 20 74 6f 20 6d  6f 64 69 66 79 20 69 74  |ded to modify it|
000000c0  20 74 6f 0d 73 68 6f 77  20 62 6f 74 68 20 73 69  | to.show both si|
000000d0  64 65 73 1a 20 6f 66 1a  20 74 68 65 20 64 69 73  |des. of. the dis|
000000e0  63 2e 20 20 57 69 74 68  20 74 68 65 20 6f 72 69  |c.  With the ori|
000000f0  67 69 6e 61 6c 20 70 72  6f 67 72 61 6d 2c 20 79  |ginal program, y|
00000100  6f 75 20 61 6c 73 6f 20  6e 65 65 64 65 64 0d 74  |ou also needed.t|
00000110  6f 20 62 72 65 61 6b 20  6f 75 74 20 6f 66 20 69  |o break out of i|
00000120  74 1a 20 62 79 1a 20 70  72 65 73 73 69 6e 67 20  |t. by. pressing |
00000130  45 53 43 41 50 45 20 74  6f 20 72 65 2d 72 75 6e  |ESCAPE to re-run|
00000140  20 66 6f 72 20 61 20 63  68 61 6e 67 65 20 6f 66  | for a change of|
00000150  20 64 69 73 63 2e 20 20  49 0d 68 61 76 65 20 61  | disc.  I.have a|
00000160  64 64 65 64 20 6c 69 6e  65 73 20 74 6f 20 70 72  |dded lines to pr|
00000170  6f 6d 70 74 20 79 6f 75  20 74 6f 1a 20 69 6e 73  |ompt you to. ins|
00000180  65 72 74 1a 20 61 1a 20  64 69 73 63 20 61 6e 64  |ert. a. disc and|
00000190  20 70 72 65 73 73 20 52  45 54 55 52 4e 20 62 65  | press RETURN be|
000001a0  66 6f 72 65 0d 74 68 65  20 64 69 73 70 6c 61 79  |fore.the display|
000001b0  20 69 73 20 73 68 6f 77  6e 20 73 6f 20 74 68 61  | is shown so tha|
000001c0  74 20 69 74 20 69 73 20  65 61 73 69 65 72 20 74  |t it is easier t|
000001d0  6f 20 63 68 61 6e 67 65  20 64 69 73 63 73 2e 0d  |o change discs..|
000001e0  0d 41 20 73 69 6e 67 6c  65 20 73 69 64 65 64 20  |.A single sided |
000001f0  64 69 73 63 20 69 73 1a  20 73 68 6f 77 6e 1a 20  |disc is. shown. |
00000200  61 73 1a 20 62 65 66 6f  72 65 1a 20 62 75 74 20  |as. before. but |
00000210  66 6f 72 20 61 20 64 6f  75 62 6c 65 20 73 69 64  |for a double sid|
00000220  65 64 20 64 69 73 63 20  74 68 65 0d 64 69 73 70  |ed disc the.disp|
00000230  6c 61 79 20 6f 66 20 74  68 65 20 74 72 61 63 6b  |lay of the track|
00000240  73 20 69 73 20 6e 61 72  72 6f 77 65 72 20 61 6e  |s is narrower an|
00000250  64 20 74 68 65 20 6e 75  6d 62 65 72 73 20 61 62  |d the numbers ab|
00000260  6f 76 65 20 61 72 65 20  64 6f 75 62 6c 65 64 2e  |ove are doubled.|
00000270  20 20 41 6c 73 6f 0d 74  68 65 20 64 61 74 61 20  |  Also.the data |
00000280  62 65 6c 6f 77 20 69 73  20 61 6d 65 6e 64 65 64  |below is amended|
00000290  2e 0d 0d 57 68 65 6e 20  74 68 65 1a 20 64 69 73  |...When the. dis|
000002a0  70 6c 61 79 1a 20 69 73  1a 20 63 6f 6d 70 6c 65  |play. is. comple|
000002b0  74 65 64 2c 20 61 20 6d  65 73 73 61 67 65 20 69  |ted, a message i|
000002c0  73 20 70 72 69 6e 74 65  64 20 74 6f 20 61 73 6b  |s printed to ask|
000002d0  20 79 6f 75 20 74 6f 20  70 72 65 73 73 0d 27 52  | you to press.'R|
000002e0  27 20 74 6f 20 72 65 2d  72 75 6e 20 74 68 65 20  |' to re-run the |
000002f0  70 72 6f 67 72 61 6d 20  6f 72 20 53 50 41 43 45  |program or SPACE|
00000300  20 74 6f 20 65 78 69 74  2e 0d 0d 49 66 20 79 6f  | to exit...If yo|
00000310  75 20 64 69 73 70 6c 61  79 20 61 20 44 53 1a 20  |u display a DS. |
00000320  64 69 73 63 1a 20 77 69  74 68 20 61 20 6c 61 72  |disc. with a lar|
00000330  67 65 20 61 6d 6f 75 6e  74 20 6f 66 20 66 72 65  |ge amount of fre|
00000340  65 20 73 61 70 61 63 65  2c 20 74 68 65 20 64 69  |e sapace, the di|
00000350  73 70 6c 61 79 0d 63 61  6e 20 74 61 6b 65 20 73  |splay.can take s|
00000360  6f 6d 65 20 74 69 6d 65  20 74 6f 20 63 6f 6d 70  |ome time to comp|
00000370  6c 65 74 65 2e 20 20 49  1a 20 68 61 76 65 20 6d  |lete.  I. have m|
00000380  61 6e 61 67 65 64 20 74  6f 20 63 6f 6e 76 65 72  |anaged to conver|
00000390  74 20 74 68 65 20 70 72  6f 67 72 61 6d 20 74 6f  |t the program to|
000003a0  0d 61 20 4d 2f 63 6f 64  65 20 66 69 6c 65 20 77  |.a M/code file w|
000003b0  68 69 63 68 20 73 70 65  65 64 73 20 74 68 69 73  |hich speeds this|
000003c0  20 75 70 20 71 75 69 74  65 20 6e 6f 74 69 63 65  | up quite notice|
000003d0  61 62 6c 79 2e 20 20 49  74 20 77 61 73 20 6d 61  |ably.  It was ma|
000003e0  64 65 20 75 70 20 61 66  74 65 72 0d 73 6f 6d 65  |de up after.some|
000003f0  20 65 78 70 65 72 69 6d  65 6e 74 69 6e 67 20 61  | experimenting a|
00000400  6e 64 20 62 79 20 64 6f  69 6e 67 1a 20 69 74 1a  |nd by doing. it.|
00000410  20 69 6e 1a 20 73 65 76  65 72 61 6c 1a 20 73 74  | in. several. st|
00000420  61 67 65 73 1a 20 73 6f  20 74 68 65 20 61 73 73  |ages. so the ass|
00000430  65 6d 62 6c 65 72 0d 6c  69 73 74 69 6e 67 20 68  |embler.listing h|
00000440  61 73 20 62 65 63 6f 6d  65 20 72 61 74 68 65 72  |as become rather|
00000450  20 75 6e 74 69 64 79 2e  20 20 49 66 20 49 20 63  | untidy.  If I c|
00000460  61 6e 20 72 65 2d 61 72  72 61 6e 67 65 20 74 68  |an re-arrange th|
00000470  69 73 2c 1a 20 49 1a 20  77 69 6c 6c 20 73 65 6e  |is,. I. will sen|
00000480  64 0d 69 74 20 69 6e 20  6c 61 74 65 72 20 2d 20  |d.it in later - |
00000490  69 74 20 77 69 6c 6c 20  69 6c 6c 75 73 74 72 61  |it will illustra|
000004a0  74 65 20 73 6f 6d 65 20  6f 74 68 65 72 20 70 6f  |te some other po|
000004b0  69 6e 74 73 20 69 6e 20  63 6f 6e 76 65 72 74 69  |ints in converti|
000004c0  6e 67 1a 20 42 41 53 49  43 20 74 6f 0d 4d 2f 63  |ng. BASIC to.M/c|
000004d0  6f 64 65 2e 0d                                    |ode..|
000004d5
P/ADexpo1.m0
P/ADexpo1.m1
P/ADexpo1.m2
P/ADexpo1.m4
P/ADexpo1.m5