From: 15A (Steven Flintham) Subject: Software Archaeology I really enjoyed this; I only hope I can bear the advice in mind when I find myself lumbered with a bit of maintenance work, sorry, excavation. ReplyTo: E3Y (3 Spaceman) From: K8G (Jonathan Harston) Subject: Missing IDs A good idea, but WARNING - it crashes and/or doesn't work on MANY computers! I've looked though the program and fixed those bits that cause problems,
EDITOR......... The fixed version is on
8BS 60 and 8BS 62, sorry, no room on
A summary of the changes are as follows: *LOAD !Boot 2000 This overwrites variables, and on some machines, the program as well. On my BBC with PAGE at &1900, TOP is at &1E9D, dangerously close. You're only changing three bytes, much easier to do by OPENing. ... read length from screen ... This in effect does a *INFO and then reads from the screen the characters that display the length. What if the lengths aren't there? This works with DFS, but as an example, with ADFS, I ended up resaving a file of &FFFF bytes long and it crashed when it got to the I/O area. Use the provided calls, even if it's just EXT#chn%. *SAVE !Boot .... FF802B FF0E00 ??? Why not FFFF802B etc? Just because DFS only stores 18 bits of the address doesn't mean that you should only provide 18 bits. Provide the full address and let the filing system deal with it. All in all this program could have been a very good example of something tailored to only work on DFS and crash on anything else. ( Very Microsoft! ) If you want to do something that you know only works on DFS, or anything else, you should check that it is there. You should only restrict features for known facilities, not restrict features for unknown facilities. For example: IF adfs THEN *DIR subdirectory ***BAD*** IF NOT dfs THEN *DIR subdirectory ***GOOD*** The first bit of code would only let you use a subdirectory if ADFS is selected. But what about NFS, HADFS, VFS, HostFS, CDFS, CoProFS....? In fact, any filing system other than DFS? You should never hard-wire into a program 'because MY machine doesn't let me do XXXXX, I'll stop everyone doing it'.