Savings  ...



RosAsm Global Savings


RosAsm is based on an 'all in one/stand alone' approach. So is it for savings. A Win32 application is a made up of many pieces (icon, code, data, menus, dialogs...). The best and simplest place to save all this is nothing but the EXE or DLL itself. Does it make much difference? Not for the most part. Having the icon apart in a .ico file, for example, is of no real use for us as far as we already got it inside the PE and as far as RosAsm is able to load it from a saved PE. 


This makes some differences for sources. RosAsm stands in the freedom movement; so it provides a simple distribution solution: not only a source, not only an EXE, but both in one package. For end users, nothing to say: its an application that runs like any other one. For programmers, just run RosAsm, just load the PE, >>> got the source and all the other parts in each specific editor.


At development time, to save your work session, just click on [Compile] or [Run].


Your Source code is stored in the PE in a 'non-loadable' section. This is to say that, when Win32 uploads the PE, it doesn't even read this section. All of this doesn't make any difference, neither for disk space (a little less), nor for memory consumption.



RosAsm Partial Savings


Assembly programmers used to Command-Line-Tools, feel often frustrated with the 'Global saving' of RosAsm, and want to have their Applications components saved to Disk.  This old fashioned working style is more complicated (a bit more dangerous, and of real no use), but all wished features are (or will be) implemented for authoring components savings:


At any time of Edition [Ctrl][S] will save your 'Application.asm' to Disk. I recommend you do not let 'sources alone' in the same directory where you compile, as this might mislead you when reloading some finished application (with Resources inside). In case of overwriting from 'source only', you would lose all the resources. generally speaking, RosAsm has few securities. You, programmers, are supposed to know what you are doing. So >>> save >> save > save again... 


Most Resources do not need Disk savings, as they already come from a existing File (Icons, Cursors, BitMaps, and so on...). Though, those 'no need' Savings will be fully implemented later, in order to allow RosAsm produced PEs users to store these Resources to their own Disks, from a single PE delivered without the external Files (like BitMap Files, for example). For Dialogs, they can be loaded/saved from/to Disk via the Dialog Menu Options.


The only Resources yet in real need of some saving process are Menus and Strings.


There is no option for saving all the Resources at once, but the reverse operation may be done, instead: 1) Load an Application1.exe // 2) Load a Source Only .asm File from Application2.exe, while keeping the Resources of Application1. Using this simple method you can update the Resources to several different versions of a given application. A bit dangerous, too, in case of error, if you do not save your work on a regular basis.


update

RosAsm BackUps


See the Description of the [Ctrl][K] Functionlaity in Source_Editor.



Stripping Sources


For programmers who do not want to make it Open Source (and so forth, prefer writing for NOP :) ), there is a tool at RosAsm page, 'SourceKiller', that removes the source from a RosAsm PE. To be used carefully... (no way back).



Saving your work on a regular basis


As long as RosAsm development is not over, your work will always be in danger of destruction and annihilation. This occurred, two years ago, with the RCData implementation: A nice bug stored RC in Avi resources and destroyed all of the Resources tree. Because of this, this is a good idea, too, to keep at least one previous version of RosAsm on your disk. So, again, save at each significant step. Anyway, even when RosAsm will be fulfilled and proved bugless, destruction will remain possible in many ways (you, hardware crash or OS jokes,...). 


For each project, you should have one folder with all necessary tools inside (RosAsm, B_U_Asm, all other help files, Calc, ..., all Win32 Data Files, ...) plus one folder for saving your work at each step. I do it by number. For example, in my development folder, actual RosAsm name is B234, this is to say that I have 187 versions, in my [Saving] Folder. This is an absolute requirement. We have to keep a huge number of older versions (with actual Disks sizes, who cares?) because some errors consequences may appear a long time after they are done. You will never save too much.


~~~~~~~