grc - GEOS resource compiler
-
+
Maciej 'YTM/Alliance' Witkowiak
<ytm@friko.onet.pl>
Currently, grc supports only menus and required header definition.
grc generates output in two formats - as C header and ca65 source (.s). This
-is because application header data must be in assembler fromat while menu
+is because application header data must be in assembler format while menu
definitions can be easily translated into C. The purpose of C file is to include
it as header in only one project file. Assembler source should be processed with
ca65 and linked as first object (read Building process below).
make easier recognition of file purpose. Also cl65 recognizes these files.
Parser is very weak at the moment so read the comments carefully and write
resources exactly as it is written here. Look out for CAPS and small letters.
-Everything after a ';' till the end of line is considered as comment and
+Everything after a ';' till the end of line is considered as comment and
ignored.
See included commented example .grc file for better view of the problem.
"item name x" MENU_TYPE pointer
}
-The definition starts with keyword MENU, then goes menu name, which will be
+The definition starts with keyword MENU, then goes menu name, which will be
represented in C as const void. Then are coordinates of top left corner
of menu box. The position of bottom right corner is estimated basing on length
of item names and menu orientation. It means that menu box will be always
as large as it should be. Then there's orientation keyword, it can be either
HORIZONTAL or VERTICAL.
Between { and } there's menu content. It consists of item definitions.
-First is item name - it has to be in quotes. Next is menu type bit. It can
+First is item name - it has to be in quotes. Next is menu type bit. It can
be MENU_ACTION or SUB_MENU, both can be combined with DYN_SUB_MENU bit
(see GEOSLib documentation for description of these). You can use C logical
operators in expressions but you have to do it without spaces, so dynamically
is present in source that includes generated header. It can point to a function
or to another menu definition.
-If you are doing sub(sub)menus definitions remember to place the lowest level
+If you are doing sub(sub)menus definitions remember to place the lowest level
definition first. This way C compiler won't complain about unknown names.
b) header definition
mode any
}
-Header definition describes GEOS header sector which is unique to each file.
-Currently there's no way to change default grc icon (an empty frame). It will
+Header definition describes GEOS header sector which is unique to each file.
+Currently there's no way to change default grc icon (an empty frame). It will
be possible in next versions.
-The definition starts with keyword HEADER, then goes GEOS file type. You can
-only use APPLICATION here at the moment. Then there are (all in quotes) DOS
-filename (up to 16 characters), GEOS Class name (up to 12 characters) and
-version info (up to 4 characters). Version should be written as "Vx.y" where
-x is the major and y the minor version number. These fields along with both
-brackets are required. Data between brackets is optional and will be replaced
+The definition starts with keyword HEADER, then goes GEOS file type. You can
+only use APPLICATION here at the moment. Then there are (all in quotes) DOS
+filename (up to 16 characters), GEOS Class name (up to 12 characters) and
+version info (up to 4 characters). Version should be written as "Vx.y" where
+x is the major and y the minor version number. These fields along with both
+brackets are required. Data between brackets is optional and will be replaced
by default and current values.
Keyword 'author' and value in quotes describes Author field and can be up to
63 bytes long.
Info (in the same format) can have up to 95 characters.
-If 'date' field will be ommited then the time of compilation will be placed.
+If 'date' field will be ommited then the time of compilation will be placed.
Note that if you do specify the date you have to write all 5 numbers.
Dostype can by SEQ, PRG or USR. USR is by default, GEOS doesn't care.
-Mode can be 'any', '40only', '80only', 'c64only' and describes system
-requirements. 'any' will work both on GEOS64 and GEOS128 in 40 and 80 column
-modes. '40only' will work on GEOS128 in 40 column mode only. '80only' will
+Mode can be 'any', '40only', '80only', 'c64only' and describes system
+requirements. 'any' will work both on GEOS64 and GEOS128 in 40 and 80 column
+modes. '40only' will work on GEOS128 in 40 column mode only. '80only' will
work only on GEOS128 and 'c64only' will work only on GEOS64.
required starter code, then actual application code in test.o and the last is
GEOS system library.
The resulting file test.cvt is executable in well-known GEOS Convert format.
-Note that it's name (test) isn't important, the real name after unconverting
+Note that it's name (test) isn't important, the real name after unconverting
is the DOS name given in header definition.
On each step a '-t geos' was present at the command line. This switch is required
5. Bugs and feedback
--------------------
-This is the first release of grc and it contains bugs for sure. I am aware of
+This is the first release of grc and it contains bugs for sure. I am aware of
them, I know that parser is weak and if you don't strictly follow grammar
rules then everything will crash. However if you find an interesting bug mail
me :-) Mail me also for help writting your .grc correctly if you have problems
6. Legal stuff
--------------
-grc is covered by the same license as whole cc65 package, so see its
-documentation for more info. Anyway, if you like it and want to ecourage me
-to work more on it send me a postcard with sight of your neighbourhood, city,
+grc is covered by the same license as whole cc65 package, so see its
+documentation for more info. Anyway, if you like it and want to ecourage me
+to work more on it send me a postcard with sight of your neighbourhood, city,
region etc or just e-mail with info that you actually used it. See GEOSLib
documentation for addresses.