Home » Archimedes archive » Acorn User » AU 1994-11.adf » !StarInfo_StarInfo » Miles/ShutDown/ReadMe

Miles/ShutDown/ReadMe

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 User » AU 1994-11.adf » !StarInfo_StarInfo
Filename: Miles/ShutDown/ReadMe
Read OK:
File size: 01F9 bytes
Load address: 0000
Exec address: 0000
File contents
ShutUtils
---------

This module cures the RISC OS 3.1 Shutdown Bug.

The bug appears when you try to shutdown the computer (using ^�F12) with two
or more files open.  The module works by intercepting Service_ShutDown and
then closing all files.

Upon the writing of this module I uncovered another bug, this time in the
RAMFSFiler module.  The module corrupts R1 during a Service_ShutDown.  This
results in the next module in line not receiving this call!!!  I have also
corrected this bug in my module.
00000000  53 68 75 74 55 74 69 6c  73 0a 2d 2d 2d 2d 2d 2d  |ShutUtils.------|
00000010  2d 2d 2d 0a 0a 54 68 69  73 20 6d 6f 64 75 6c 65  |---..This module|
00000020  20 63 75 72 65 73 20 74  68 65 20 52 49 53 43 20  | cures the RISC |
00000030  4f 53 20 33 2e 31 20 53  68 75 74 64 6f 77 6e 20  |OS 3.1 Shutdown |
00000040  42 75 67 2e 0a 0a 54 68  65 20 62 75 67 20 61 70  |Bug...The bug ap|
00000050  70 65 61 72 73 20 77 68  65 6e 20 79 6f 75 20 74  |pears when you t|
00000060  72 79 20 74 6f 20 73 68  75 74 64 6f 77 6e 20 74  |ry to shutdown t|
00000070  68 65 20 63 6f 6d 70 75  74 65 72 20 28 75 73 69  |he computer (usi|
00000080  6e 67 20 5e 8b 46 31 32  29 20 77 69 74 68 20 74  |ng ^.F12) with t|
00000090  77 6f 0a 6f 72 20 6d 6f  72 65 20 66 69 6c 65 73  |wo.or more files|
000000a0  20 6f 70 65 6e 2e 20 20  54 68 65 20 6d 6f 64 75  | open.  The modu|
000000b0  6c 65 20 77 6f 72 6b 73  20 62 79 20 69 6e 74 65  |le works by inte|
000000c0  72 63 65 70 74 69 6e 67  20 53 65 72 76 69 63 65  |rcepting Service|
000000d0  5f 53 68 75 74 44 6f 77  6e 20 61 6e 64 0a 74 68  |_ShutDown and.th|
000000e0  65 6e 20 63 6c 6f 73 69  6e 67 20 61 6c 6c 20 66  |en closing all f|
000000f0  69 6c 65 73 2e 0a 0a 55  70 6f 6e 20 74 68 65 20  |iles...Upon the |
00000100  77 72 69 74 69 6e 67 20  6f 66 20 74 68 69 73 20  |writing of this |
00000110  6d 6f 64 75 6c 65 20 49  20 75 6e 63 6f 76 65 72  |module I uncover|
00000120  65 64 20 61 6e 6f 74 68  65 72 20 62 75 67 2c 20  |ed another bug, |
00000130  74 68 69 73 20 74 69 6d  65 20 69 6e 20 74 68 65  |this time in the|
00000140  0a 52 41 4d 46 53 46 69  6c 65 72 20 6d 6f 64 75  |.RAMFSFiler modu|
00000150  6c 65 2e 20 20 54 68 65  20 6d 6f 64 75 6c 65 20  |le.  The module |
00000160  63 6f 72 72 75 70 74 73  20 52 31 20 64 75 72 69  |corrupts R1 duri|
00000170  6e 67 20 61 20 53 65 72  76 69 63 65 5f 53 68 75  |ng a Service_Shu|
00000180  74 44 6f 77 6e 2e 20 20  54 68 69 73 0a 72 65 73  |tDown.  This.res|
00000190  75 6c 74 73 20 69 6e 20  74 68 65 20 6e 65 78 74  |ults in the next|
000001a0  20 6d 6f 64 75 6c 65 20  69 6e 20 6c 69 6e 65 20  | module in line |
000001b0  6e 6f 74 20 72 65 63 65  69 76 69 6e 67 20 74 68  |not receiving th|
000001c0  69 73 20 63 61 6c 6c 21  21 21 20 20 49 20 68 61  |is call!!!  I ha|
000001d0  76 65 20 61 6c 73 6f 0a  63 6f 72 72 65 63 74 65  |ve also.correcte|
000001e0  64 20 74 68 69 73 20 62  75 67 20 69 6e 20 6d 79  |d this bug in my|
000001f0  20 6d 6f 64 75 6c 65 2e  0a                       | module..|
000001f9