JFPatch has a history that covers its many components. Each of the parts of the tool had its own history log at the top of the file, and the main application had a history that wrapped up the descriptions of each of the parts. Now, the service itself has another history. There's also the technologies that the service is built upon, which have separate histories covering about 11 months, which are not described here.
- JFPatch as a service
- JFPatch the RISC OS application, incorporating general changes from the components that make it up
- JFPatch back end build tool
- Module generation
- AOF generation
JFPatch as a Service
|86||21 May 2020||Added .robuild.yaml file format documentation.
The .robuild.yaml file format is now documented, and an example given in the page. Some of the features of the build environment are documented. There is no way that this can be exhaustive as the feature set for Pyromaniac is constantly changing.
|85||21 May 2020||Update front end to recognise Zip archives, with a new icon.
The front end can now recognise a Zip archive being produced as the output, and has an SVG icon for the zip file, so that it looks nice. We have special case code that can turn the &a91 types into .zip with the correct media type. Although the files produced are in RISC OS format (ie, not NFS encoding), I would still expect the use to be for RISC OS, without any special handling, so using the RISC OS extra information is what users would expect, I think.
|84||21 May 2020||Update the rozipinfo source with the latest version.
Import of the latest rozipinfo which handles a lot of extrafield and nfs encoding issues better.
|83||20 May 2020||Add support for artifact definitions in .robuild.yaml files.
The artifact definitions are now honoured, exporting the results to a zip archive. This should retain the RISC OS filetypes from the NFS encoding on the filesystem.
|82||19 May 2020||Moved robuild YAML parsing to its own class.
Rather than defining the YAML format inline, it is now in its own class, so that it can be isolated and (maybe) tested.
|81||19 May 2020||Updated the module comments.
The module comments have been improved to better explain the interactions between different parts of the system.
|80||19 May 2020||Initial support for the .robuild.yml build configuration.
If a build configuration file (.robuild.yml) is found, we'll process it and try to build using the definition given within the file. The file format is currently in flux, as I'm playing with it, but seemed to work with the LineEditor build - but without artifacts. They will need to be added separately.
|79||19 May 2020||Replace the hardcoded RO Zip info parser with rozipinfo.
The rozipinfo module is a lot more complex and contains a lot more than we currently need for the reading of the Zip archives, but we should be able to use it for the creation of Zip archives for the outputs in the future.
Also fixed some zip file decoding problems when the Makefile does not supply any targets (in this case because it uses the includes to include the targets it expects to build).
|78||18 May 2020||Fix for output accumulator not writing out properly on heartbeat.
The 'heartbeat' callback is meant to be invisible to the calling user, and causes output to flush to the stream if no further output to a newline has been seen in a period (usually a few seconds). The heartbeat was unfortunately being exposed as a 'heartbeat' action, with the output attached. That wasn't the intention - it should be written out as a plain 'output' action.
Updated the docker container name to match the container that we build.
|75||4 Apr 2020||Improve rendering of the images; add a large icon.
The images weren't rendering well - the imagemagick conversion appears to be affected by whether a viewbox specification is given in the SVG, even though that viewbox is not used. These are now included, and this should make the icons appear better.
There is now a large patched icon generated. This was intended to be used for the repository card, but it's too much of a faff to get it generating in the right shape, so I've given up for now.
|74||1 Apr 2020||Fix for failure to load the binary zip data properly in front end.
When we loaded the binary zip data in the front end it wasn't passing it through properly to the back end - it was ending up somehow mangled which meant that we couldn't use it. Now the data is passed through properly.
|73||31 Mar 2020||Fix for failure to actually invoke the tool on zip archives.
When a zip archive is supplied we determine what the tool we should use from the filetypes of the files, and then we report the command line to use and execute it. Only, at some point, the list of buildable files in the zip archive changed from a tuple of name and filetype to a RISCOSName object that translates unix names to RISCOS names and filetypes (and vice-versa). But it was only changed in the single file code path.
This change ensures that we use the correct names, and introduces the example which performs the patching. You don't get an editor window when you've got a zip file (I had considered multiple editors, one for each file, but... complexity).
|72||31 Mar 2020||Set the build timeout to 5 minutes.
5 minutes should be enough for anyone. Any longer than that and I'm sure that you're doing something wrong. Even DDEUtils, slow though it is to build, doesn't take that long.
|71||30 Mar 2020||Update the JFPatch examples to all build, or fail interestingly.
The JFPatch examples now all build, except the SerialTCP which fails due to not finding the ESocket SWI. The EasySocket module is disabled on RISC OS because it might be a security issue. It at least demonstrates the throwback.
|70||30 Mar 2020||Fix for syntax colouring of empty BASIC REM statements.
An empty REM statement was handled as a REM followed by anything (in two captures) being coloured as a comment followed by a comment. This appears to cause the syntax colourer to crash. Just making the REM and the following content a single capture appears to work.
|69||30 Mar 2020||Fix for jfpatch syntax definition not colouring : separated fields.
JFPatch actually accepts '<field> : <value>' in the definition blocks, which I'd not supported in the syntax colouring. It's only used in some very old JFPatch source files, but it still shouldn't fail to colour properly.
|68||30 Mar 2020||Add 'load example' button.
We now have a button to load files, in addition to the create new document and the uplaod document. That might be a confusing collection, so maybe they should be rationalised. However, for now this works, and I've not got time to be playing around with it.
We take the examples from the local submodule, so the state of the repository when the service was deployed is used. This could be reorganised in the future.
|67||30 Mar 2020||Fix for returned binary being UTF-8 encoded.
UTF-8 encoding an ARM binary can only end badly.
|66||30 Mar 2020||Add references to the supporting examples in github.
A github repository provides examples for how you access the service through a simple JSON request and the WebSocket interface. It also has some examples of JFPatch files. Eventually I'll make them selectable within the front end UI, but I'm getting pushed for time here, and I just need to make something work.
|65||29 Mar 2020||Front end fixes to handle WebSocket disconnect better.
When we're disconnected this appears as a message in the output window, which helps to understand what's going on beyond the status that appears beside the help icon. The states where we've disconnected and have source which needs to be re-sent are now recognised and messages added to the output window. In the future this workflow should probably be updated to be more efficient - initially it was intended that we only transfer data when the user actually requests it, keeping them in control, but it seems that that's not a very useful flow.
It'd still be possible to repeatedly transfer lots of data if the connection kept going up and down at the moment but the user would have to actively send the data. Probably for the sizes we're talking about this is not especially relevant, and we could just take the hit of sending the data on reconnect.
|64||29 Mar 2020||Added AWS deployment service and instructions.
The service can now be deployed on to an AWS instance, and has logging to track the service use.
Small fix for bug found during testing with a single line causing a failure to recognise the source code type.
|63||28 Mar 2020||Added the structure diagram to the About page.
The structure diagram is now included in the About page, and the technologies used is expanded upon a little bit. It's kinda amusing that I've spent multiple days on getting the syntax colouring right, but haven't put the time into making JFPatch create 32bit modules yet. 'cos that bit is boring.
|62||28 Mar 2020||Added icons to the parts of the diagram.
There are now little icons beside each of the technologies involved in the service, because they break the diagram up and make it look like I know what I'm doing.
|61||28 Mar 2020||Create a structure diagram for how the service works.
I love diagrams. Pictures, they say, are worth a thousand words, and I don't like writing words, so pictures are cool. On the other hand, it's a lot easier to write words than to get Graphviz to do what you want.
Diagram shows the parts of the system, with the containers they live in. It can optionally show the JSON server, as well as the WS server, but it makes the diagram less clear, so I've turned the option off right now.
|60||28 Mar 2020||Add help icon and guidance for how to use the service.
The service is relatively simple, to me, but others may not have much of a clue what the buttons do or the workflow. It's not as polished (by far) as Compiler Explorer, so people may need a bit more help. In the future, it might be nice to simplify the interface so that it doesn't follow the back end service interface, but right now it is what it is and we can help make it easier to use.
The help box toggles with the button, but also hides itself when you press one of the create or upload buttons.
This change also renames the 'Save' button to 'Send' because that better represents what it does, and I don't really want to confuse people with thinking that it's going to save to some storage.
|59||26 Mar 2020||Add create document button.
Can now directly create a document and then start typing. This means that we've now got an extra button on the workflow bar, and that lets us create whatever source we want to.
|55||24 Mar 2020||Pass the context colouring script through preprocessor
We now have context colouring for C files, Pascal files, and Perl files in addition to the JFPatch files. We have the ability to select the Basic Text and ObjAsm files for colouring, but currently I've not written the modes to do that colouring.
The colouring source is now built conditionally based on whether we have enabled the different supported modes. Strictly that's only for the front end. The back end is always able to support them.
The preprocessor I've used is one that I wrote for Doom, Heretic and Hexen, with additional features for the processing of the conditionals, which it turned out I hadn't implemented. I might as well have written a clean pre-processor rather than reusing that one, but hey-ho.
|53||23 Mar 2020||Tidy up the pages to use paragraph elements in all sections.
Documentation should be inside the cells, or lists, or within a paragraph tag. These were not applied consistently through the pages, and have now been improved. Some of the FIXME marks have been cleaned up into a slightly tidier form too.
|52||23 Mar 2020||Add ability to generate version information directly.
The versions information can now be directly generated from the git commit history. Some commit messages are elided as they don't offer any useful information, or are not relevant to the service.
The order of the history messages is now consistent - they all now go from newest to oldest.
|51||23 Mar 2020||Clean up the history page.
The history page now omits the date on sections that we don't know, and has structured jfpatch sections so that the colouring is clearer for the properties.
CSS has been marked as UTF-8 so that it displays properly in Chrome.
|50||23 Mar 2020||Add main JFPatch history.
There is now a history page that includes information about the componentst that make up JFPatch and how they were developed.
I've yet to fill in any history for this development version of the tool, and the version numbers appear to be in reverse order for some sections.
|49||23 Mar 2020||Add the source code editor to the front end.
The front end is now able to show you the source code and let you edit it and then send it to the server for building. It's likely that the workflow isn't quite right for a real development environment, but... honestly, who cares, it's a freakin' build tool for RISC OS in a browser.
|48||22 Mar 2020||Add automatic reconnection of the websocket.
The websocket now reports the service status into a little status icon which pops up when we're disconnected. If we fail to connect or there is an error, or we're disconnected, we now pop the icon up and set a timeout to reconnect in 15 seconds.
|45||22 Mar 2020||Improve the documentation of the fileformat.
Fileformat now uses more of the colouring jfpatch sections.
|44||22 Mar 2020||Begin integration of codemirror with the documentation.
The colouring has begin to be added to the file format documentation to make it possible to colour our examples.
|43||22 Mar 2020||Simplify the colouring code for the example file.
Selecting the elements to colour using the class makes it easier to both style and name the elements we wish to provide examples for in the documentation.
|42||21 Mar 2020||Add codemirror and JFPatch assembler mode.
The JFPatch assembler mode provides all the colouring for the tool, as it currently stands. I believe that most of the colouring is sane. It might not be the colours that everyone likes, but that's not necessarily the point. It's got the right bits for what we need - and includes ARM and BBC BASIC colouring within the sections that of the file as appropriate.
|41||21 Mar 2020||Add missing documentation for some module features, macros.
The modules did not define a number of fields in the documentation. Many of the filters, the MessageFile, Resources and ImageFS/FS were not documented at all. These have now been added. Similarly the documentation has been updated to add in the Macros which were not documented at all (and are surprisingly non-obvious).
Some of the styling has been tidied up a little, and the SVG for file_xxx has been cleaned up so that it has the correct header.
|40||17 Mar 2020||Add favicon for the site; refactor HTML HEAD element.
The favicon is now referenced from within the HTML HEAD element. The HEAD element is now handled in the main macros. This means that it's a bit more manageable.
|39||16 Mar 2020||Clean up some more of the file format documentation.
I think most of the file format documentation now has some vaguely sensible styling present. It's still not complete, but it's definitely reaching the point at which it's now able to be used as a useful reference.
|38||16 Mar 2020||Restructure to use semantic markup.
Might as well use semantic markup to make the documentation a bit more structured.
|37||16 Mar 2020||Format the introduction section.
The introduction is now layed out properly, but doesn't have links.
|36||15 Mar 2020||Checkpoint for the JFPatch file format documentation.
The JFPatch documentation is partially converted to HTML. There's a lot missing, and it could do with some examples littering through it, but it seems to be at least vaguely working as it stands.
This change only really covers the Format file; it doesn't cover the !Summary, which might contain more information to be included. Similarly the !Help itself may include information about the historic nature of the application that may fit into the about pages at some point.
|35||15 Mar 2020||Add an 'about' page to describe what JFPatch was and how it works.
The About page talks about the service and about JFPatch. It does not talk about Pyromaniac.
|33||15 Mar 2020||Add the site menu box.
The site menu lets you select where to go to, particularly it will take you to the API and file format documentation. Only the API documentation exists right now.
|32||15 Mar 2020||Add example communications with the WebSocket server.
The WebSocket communications are not amazingly clear, so we can give some simple examples of the exchange.
|31||15 Mar 2020||Added disclaimer footer, and added a 404 page.
The disclaimer is now present at the bottom of the page and has vaguely silly, but still pertinent messages. It uses the flex display to float to the end. That's cute.
The 404 page 'notfound.html' is now generated, and contains a simple message to go back to the root.
|30||15 Mar 2020||Add introduction to API documentation.
A short introduction to give some general information on what the API can do.
|29||15 Mar 2020||Move the macros out of the API file into macros.
Might as well put them in the right file.
|28||15 Mar 2020||Added some protocol documentation.
Protocol documentation now exists, for anyone wishing to use the API to access the build service.
This uses a few of the HSC macros to control how we display the protocol definitions. These might be moved off into the macros file as they're probably a generally useful definition.
|27||14 Mar 2020||Make some tidier workflow icons for the buttons.
The icons from the font that I had selected looked poor in Firefox. For simplicity, I've just replaced them with images. The layout has been tidied up a little to make the buttons more balanced.
|26||14 Mar 2020||Replaced form buttons with icons for the user to press.
The buttons are pretty simple, taken from The Noun Project (and attributed). The icons for the filetypes are also shown when the filetype is recognised.
|25||14 Mar 2020||Add building of the frontend with HSC.
We can now build the frontend content with HSC and a makefile. This may make it easier to put some parts of the site together. At the moment it's a bit of an overkill, but it'll help as I add more pages.
|24||14 Mar 2020||Fix for CLI failing to report clipboard data properly.
After the functions were refactored, I didn't change the variable name.
|23||14 Mar 2020||Fix the character set used by the frontend; add selection of wss:.
The front end's character set wasn't selecting UTF-8, so the build status was coming out in an ugly way. It's now set with a meta directive.
The use of ws: when connected by HTTPS is insecure and rejected by the browser. So I've made it select ws: or wss: depending on whether the HTTP or HTTPS was used.
|22||14 Mar 2020||Split up the headings on the build and throwback windows.
The headings being implemented as ::before elements was kinda cute, but not as flexible as I'd like. For example, it precludes adding a close or 'iconise' type icon to the bar. This isn't a huge deal, but it makes redesigning the page harder.
|21||13 Mar 2020||Add 'basic' HTML client that can communicate with the back end.
The 'basic' HTML client is actually a quite powerful WebSocket client which can pass the supplied source to the back end, display the messages from the build process, handle throwback and clipboard data and allow the user to download the output file afterward, if any.
It's surprising that it works quite so well!
|20||13 Mar 2020||Report errors during the setup of the websocket build.
If the file you supplied wasn't recognised (or any other exception occurred during that setup), it would fail and never report any protocol errors back to you. We now report this as a failed build using the message, and the return code. We finally report that we are complete.
|19||13 Mar 2020||Update the JFPatch.pyro configuration for ansitext.
As the output will be processed by an ANSIText processor, let's give it that as the main configuration. Maybe in the future that'll be an option to the API but right now, it's fixed.
|18||13 Mar 2020||Moved the 'started build' message after the point we start the build.
We were reporting that we were starting the build, and then if it failed, we'd report that there was an error - that breaks the 'one response or error per action' rule'.
|17||12 Mar 2020||Add documentation of the HTTP and WebSocket protocols.
The protocols are now documented, which means that they should be able to be made into webpages soon!
The command to start the build has been changed from 'go' to 'build'.
|16||12 Mar 2020||Tidy up the websocket client and server, and JSON server for live use.
The live site is currently pointing at the test system, and with that, the configuration has been updated so that the tools and the commands that access the system are able to work that way.
The JSON server is now on a port alongside the WebSocket service. The responses no longer gives the arguments as lists for most of the values returned. This might be changed in the future, but it's simplest to just leave them as bare strings in most cases.
|15||12 Mar 2020||Add WebSocket server and client.
We can now provide a websocket server which will allow the building of a source using the RISC OS Pyromaniac environment. This gives a set of operations that are updated live whilst the system is running.
|14||12 Mar 2020||Update CI with allowance for empty resource files.|
|13||12 Mar 2020||Add ability to build the docker image in CI.
Might as well have CI to check that it's able to be built!
|12||12 Mar 2020||Add support for the streamed output from the build.
Streamed output means that we get results as they happen through a callback. The results are streamed on to the same thread that did the request. Output lines are accumulated through a heartbeat, to ensure that we output data regularly and we don't supply single character callbacks for each letter (because that's how we tend to write things on RISC OS).
|7||9 Mar 2020||Add option for debug to CLI; clean up better on failures.
The CLI tool can now specify a comma-separated list of debug flags for the pyromaniac system. This makes it easier to see what's going on when needed.
When we call the 'close' method on the builder, the rosource will clean up the temporary directory it created. This should make it less messy when something goes wrong.
|5||8 Mar 2020||Add execution timeout; support for BASTXT files; tidier JSON and binary.
An execution timeout of 60 seconds is imposed by the 'timeout' tool. This should ensure that we never run away with code being left running.
Basic Text files are now included in the buildables, which means that you can submit a simple BASIC file and get out the text that it generated but not any binary, as there are no clipboard operations (unless the user adds them).
JSON output now comes out pretty printed if the data is small. The Binary output now works!
|4||8 Mar 2020||Add a real service to return the content.
The service supports JSON and Binary outputs, and can report the results of the build in both cases when it fails (in text if the binary output was requested).
|3||8 Mar 2020||Create a CLI tool to use the building functions.
The CLI tool is really just a testing tool to make sure that we can work with the back end system.
|2||8 Mar 2020||Add a result collection class; rework all the building into a class.
The results are now in a single class, which is used with callbacks to accumulate the output so that we can write it out to a remote server if necessary. These functions are called by the docker and pyronativeserver objects.
The main code that was just in the body of the build.py is now in a class, and can be called in stages - this allows additional code to be inserted between the parts, such as to add debug or to debug issues.
|1||8 Mar 2020||Initial import of the JFPatch as a service (RO Build service).
This has been developed over the last few days from the bare Pyromaniac build environment, and should now contain a base on which the service can actually be created. The JFPatch is just a snapshot. The Pyromaniac is the 'last docker version' so isn't ideal in its management, but this does mean less duplication.
In the future we'll pull in the different parts of the environment from the artifact server.
!JFPatch RISC OS application and back end
|2.55ß||Note: (partial releases were 2.54ß)
|2.53ß||partial releases were 2.52ß2
|2.40ß||Changes in 2.40ß over 2.33
JFPatch back end
|2.56||02 Mar 2020||Added ClipboardHolder operation|
|2.55||09 Apr 1999||JB's modifications added|
|2.54||07 Apr 1998||Service entry fixed, Code-in fixed now. Other things.|
|2.53||26 Dec 1997||Fixed bugs in REM, Resources, Workspace changes, PostFilter improvements, optimisations for modules, ImageFS and FS blocks, Module help improved.|
|2.52||05 Dec 1997||ERR changed and REMF[P] added|
|2.51||18 Nov 1997||Output buffering added|
|2.50||15 Nov 1997||AOF module filter/wimpswis fix|
|2.49||22 Oct 1997||Many module changes|
|2.48||26 Sep 1997||AOF Debug support|
|2.47||09 Sep 1997||REM's now use stack as ws|
|2.46||11 Aug 1997||$$ now translates to $|
|2.45||29 May 1997||Includes work inline|
|2.44||28 May 1997||AOFModule header allows AOF|
|2.43||16 May 1997||> is a function, new bool|
|2.42||29 Apr 1997||> macro for code prefixes|
|2.41||25 Apr 1997||Cond Set fixed|
|2.40||09 Apr 1997||XBL/XSWI supports apcs|
|2.39||09 Apr 1997||Pre support (constants)|
|2.38||08 Apr 1997||AOF support|
|2.37||08 Apr 1997||;'s for comments in Pre/Post|
|2.36||09 Mar 1997||FNmess improved|
|2.35||08 Mar 1997||version$ added to code|
|2.34||06 Mar 1997||PROCGetRegs 'r' bug fixed !|
|2.33||05 Feb 1997||Added E REM message|
|2.32||22 Jan 1997||^ and # in XSWI supported|
|2.31||19 Jan 1997||fixed REM &, added OS_NewLine!|
|2.30||21 Dec 1996||Directory structure changed|
|2.29||14 Nov 1996||Modified Conditionals for 3.1|
|2.28||30 Oct 1996||Added export of locals|
|2.27||25 Jul 1996||Added hourglass option|
|2.26||28 May 1996||Added macro support|
|2.25||22 May 1996||Fixed no DDEUtils bug|
|2.24||22 May 1996||Fixed naff handling of TB|
|2.23||09 May 1996||Damned tiny bug fixed !|
|2.22||15 Apr 1996||Throwback support added|
|2.21||14 Apr 1996||Compile_A removed to allow vague Make support|
|2.20||19 Feb 1996||includes and Compile_A added|
|2.19||28 Jan 1996||Tabs in source file added|
|2.18||29 Dec 1995||SWAP instruction added|
|2.17||08 Sep 1995||-ve LMOVs implemented|
|2.16||05 Sep 1995||Library file reorganisation|
|2.15||05 Sep 1995||XLDMFD added for errors|
|2.14||02 Sep 1995||CAPTURE post assembly added|
|2.13||30 Aug 1995||EXAMINE post assembly added|
|2.12||20 Aug 1995||MODE instruction added|
|2.11||18 Aug 1995||LADD instruction added|
|2.10||18 Aug 1995||; comments remove :'s|
|2.09||10 Aug 1995||NOP instructiXon added|
|2.08||09 Aug 1995||Flag setting added|
|2.07||20 Jul 1995||XSWI and XBL added|
|2.06||22 Jun 1995||VDUStream forcing|
|2.05||11 Jun 1995||Workspace added; Long MOV; Local labels|
|2.04||06 May 1995||bug fix for stamping|
|2.03||03 May 1995||internal version numbering|
|2.02||18 Mar 1995||application making added|
|2.00||25 Feb 1995||no application making|
|2.32||24 May 2001||Added support for 'duplicate service handlers' which may help when using auto-added handlers|
|2.31||24 May 2001||Service handler code completely re-written to cope correctly with high-service numbers. Totally removed code for encoding using dictionary|
|2.30||16 Mar 2001||WimpSWIve registration now uses multiple instructions (BASIC problem ?)|
|2.29||27 Feb 2001||Can explicitly set version with module_version$ (and date with module_date$)|
|2.28||13 Feb 2001||Added 'lightning fast service' code|
|2.27||13 Feb 2001||Added fast service reject code|
|2.26||09 Jun 2000||Removed the dictionary encoding as this changed between OS versions.|
|2.25||05 Sep 1998||Some ADRs changed to LADRs in initialisation code (JB)|
|2.24||14 Jul 1998||Rect, PostRect and PostIcon filters added.|
|2.23||27 Apr 1998||WimpSWIve AOF code fixed, new filter system AOF code fixed|
|2.22||23 Apr 1998||Wimp poll reason codes moved to file, new filter system, aof startcode, init, final, service and swihandler entries fixed.|
|2.21||01 Apr 1998||Module initialisation error handling improved|
|2.20||31 Mar 1998||Ursula style service table|
|2.19||30 Mar 1998||Service handler code improved|
|2.18||16 Dec 1997||ImageFS support added|
|2.17||15 Dec 1997||Filter 'Code' now allows reasons|
|2.16||14 Dec 1997||Messages file fix, resource file blocks|
|2.15||15 Nov 1997||Dictionary tokenisation added|
|2.14||15 Nov 1997||SWI Pre/Post, bug fixes for WimpSWI/Filter|
|2.13||22 Oct 1997||Messages files|
|2.12||09 Sep 1997||WimpSWIve post trap code fixed|
|2.11||28 May 1997||AOF imports for header added|
|2.10||26 Apr 1997||Event code was completely buggered|
|2.09||08 Apr 1997||AOF compliant code added|
|2.08||09 Mar 1997||Extra info added|
|2.07||05 Feb 1997||Events and Vectors added|
|2.06||21 Dec 1996||Services moved into Resources|
|2.05||05 Nov 1996||Services added|
|2.04||26 Aug 1995|
|2.03||08 Aug 1995|
|2.02||22 Jun 1995|
|2.01||20 Jun 1995|
|2.00||11 Jun 1995|
|1.04||14 Dec 1997||`len_name in ADRW works|
|1.03||30 Oct 1996||Fix for MapWS returning default|
|1.02||13 Jan 1996||| Union loop id added|
|1.01||18 Aug 1995|
|1.09||02 Feb 2003||Added specifier for 32Bit areas|
|1.08||06 Nov 1998||LDR, conditional ADR (JB)|
|1.07||15 Apr 1998||ADR (JB)|
|1.07||22 Jul 1998||area data now works|
|1.06||26 Sep 1997||debug data|
|1.05||26 Sep 1997||entry points|
|1.04||28 May 1997||functions to do jumps/offsets|
|1.03||16 May 1997||multiple areas work|
|1.02||09 Apr 1997||EQUD works, Pre added|
|1.01||09 Apr 1997||fixed module code and swstk|
|1.00||08 Apr 1996||started, simple aof support|
|1.02||08 Jan 1998||Constants (JB)|
|1.01||28 May 1996||Embedded macros (ie one calls another)|
|1.00||28 May 1996||Base macros|