Short: Make methods and tags bases 1.1 (17.06.01) Author: Przemyslaw 'SENSEI' Gruchala (sensei@box43.gnet.pl) Uploader: Przemyslaw 'SENSEI' Gruchala (sensei@box43.gnet.pl) Version: 1.1 (17.06.01) Type: dev/misc Replaces: dev/misc/MakeTagBase.lha Requires: OS 2.0+, any CPU Keywords: maketagbase redgroup sensei gruchala polska poland WHAT'S THIS? This is a small utility to create methods and tags bases for BOOPSI and MUI classes, libraries and normal applications. DISCLAIMER This software is provided as-is, without warranty of any kind, either expressed or implied. Under no circumstances will the authors be liable for direct, indirect, incidental or consequential damages either to hardware or software or data loss resulting from the use of MakeTagBase. The entire risk as to the results of MakeTagBase is assumed by the user. DESCRIPTION MakeTagBase can works in two modes: 1) Convert string to bases mode. When you want create new bases you should write for example: MakeTagBase ID BLAH and if ID is correct you'll recive for above example: Converting ID "BLAH"... Base 0x16A94880 TagBase 0x96A94880 Now you can use 'Base' as a method dummy and 'TagBase' as tag base (it's 'Base' bit or TAG_USER). 2) Convert bases to string mode. It could be useful if you forgot what string you used to create bases or you'd like to check either MakeTagBase or existing bases. Example of usage: MakeTagBase BASE 0x16A94880 Converting TagBase 0x16A94880... ID "BLAH" Template of MakeTagBase is ID,BASE=TAGBASE where ID is four character long string which contains big case A-Z and 0-9 numbers. If other characters are present or length isn't correct error will occur. BASE=TAGBASE is base which you would like to convert to string. It should starts with 0x or $ if it's hexedimal number and with 0-9 if it's decimal number. In other cases error will occur. You can't use ID and BASE=TAGBASE in the same time! Note that any unused bits like 31 or so aren't touched in this mode. So MakeTagBase BASE 0x16A94880 and MakeTagBase TAGBASE 0x96A94880 are the same. Note that you're not allowed to use f.e. "0000" as source string because it'll be converted to 0!!! HOW IT WORKS? In making bases mode it's packing specified string to long word number (using it's own packing techniques (which you can learn for request, but I doubt that anybody will mail me for it ;) ). In making string mode it's unpacking specified long word number to string. REGISTERED BASES Currently "registered" bases are: - CMDL Base 0x18B1AA80 TagBase 0x98B1AA80 for command.library. If you're using this utility please contact me and I'll add your base to this list, so nobody will use the same bases as you (it's important f.e. when you're writing MUI subclasses to create unique bases!!! F.e. if two or more objects are using the same bases and are placed in one group and you'll do method or set attributes of one of these classes on group object (group object is setting unknown attributes pased to OM_SET for each its children) attribute will be set only for the top object on group list! In other word it'll not do what you want... Better start thinking about it in design state because when everyone is using your MCC it's too late to change anything...). "Registration" is for free, so just contact me. And always upload new MakeTagBases when they're released because they could contain more recent list of registered bases. FUTURE Anything what you want, just contact me ;). New registered bases and bugs fixes if any. HISTORY 1.1 (17.06.01): - First public version. - Cleanup the source code. Better error handling (now it's using dos.library error codes instead of custom one). - No stdio printf() routines anymore! It's using dos.library instead. The result is 2.5 smaller executable file... - Fixed BASE=TAGBASE mode (which starts not working after using dos.library Printf() because I used %c instead of %lc ;). - BASE=TAGBASE is now accepting several types of tagbases: if it starts with 0x and $ base is in hexedimal format and if first character is between 0 and 9 base is in decimal format. - Compiled with size optimization turned on using SAS/C v6.58. 1.01 (24.08.00): - Some fixes are made (I don't remember what exactly). 1.0 (??.08.00): - First internal version. AUTHOR Idea, testing and main programmer: Przemyslaw 'SENSEI' Gruchala (sensei@box43.gnet.pl) Support: Stephen Brookes ============================= Archive contents ============================= Original Packed Ratio Date Time Name -------- ------- ----- --------- -------- ------------- 1671 987 40.9% 17-Jun-01 05:46:30 MakeTagBase.info 5216 3202 38.6% 17-Jun-01 07:29:40 +MakeTagBase 4670 2177 53.3% 17-Jun-01 08:13:54 +MakeTagBase.readme -------- ------- ----- --------- -------- 11557 6366 44.9% 23-Jun-101 01:55:34 3 files