> ResCompile 0.90   by Peter Hartley (2 (K) All Rites Reversed -- Copy What You Like 2< see http://www.ant.co.uk/~peter/software/rcompile.htm < for details F P ZF%=0 : input file handle dG%=0 : output file handle n x tZA   block% 256, str$(2000)  2sprites$="":menus$="":templates$="":output$="" sepicons%=:sepvalid%=  DecodeArgs  G%=(output$) G%=0 4 0, "Can't open file "+files$+" for output"   *o( "; Generated by ResCompile 0.90" )  o( "" )  "' sprites$<>"" sprites(sprites$) ,! menus$<>"" menus(menus$) 6- templates$<>"" templates(templates$) @ J o( ";" ) To( " END" ) ^#G% h r-ș "OS_File",18,output$,&FFF : set type |   ON ERROR GOTO here  :" at line ";  F%<>0 #F%  G%<>0 #G% F%=0 G%=0    DecodeArgs ș "OS_GetEnv" args%  A%=block% ,ȕ ?args%>31:?A%=?args%:args%+=1:A%+=1:  ?A%=13 arg$=$block% &"A%= uc(arg$), "RESCOMPILE" ) 0arg$=arg$,A%+1) :nextword(arg$) D N word$=firstword(arg$) X nextword(arg$) b Ȏ uc(word$) l "-SI": v sepicons%=  "-SV":  sepvalid%=  "-S": / sprites$<>"" arg$="" usage: % sprites$=firstword(arg$)  nextword(arg$)  "-M": - menus$<>"" arg$="" usage: # menus$=firstword(arg$)  nextword(arg$)  "-T": 1 templates$<>"" arg$="" usage: ' templates$=firstword(arg$)  nextword(arg$)   "-O": . output$<>"" arg$="" usage:  $ output$=firstword(arg$) * nextword(arg$) 4 : > Ȏ "" H sprites$: R) sprites$=firstword(arg$) \ menus$: f' menus$=firstword(arg$) p templates$: z+ templates$=firstword(arg$)  output$: ( output$=firstword(arg$)  :  arg$  usage:   nextword(arg$)   arg$="" 4 output$="" (sprites$+menus$+templates$="")  usage      usage >"rescompile 0.90 by Peter Hartley (K) All Rites Reversed" $g"Usage: rescompile [[-sprites] file] [[-menus] file] [[-templates] file]"'" [-o] output" .,8)"-sprites Application sprite file" 8*8)"-menus Menu description file" B#8)"-templates Templates file" L18)"-output Output (suitable for objasm)" VH"See http://www.ant.co.uk/~peter/software/rcompile.htm for details" ` j t ~ *----------------*  * Sprites (easy) *  *----------------*   sprites(sprites$) *"extern sprite_areainfo Sprite_Area;" /o(" AREA |Sprites$$data|, DATA, READONLY") o(" EXPORT Sprite_Area") o("Sprite_Area") *o(" DCD 4 + :FSIZE:"""+sprites$+"""") o(" BIN "+sprites$)  o("")      *-------------------*  * Menu descriptions * ( *-------------------* 2 < menus(menus$) F items%,A$ PF%=(menus$) Q F%=0 R. 0, "Menus file "+menus$+" not found" S Z%o( " AREA |Menus$$data|, DATA" ) d o( "" ) n items%=0 x  A$=#F%  A$,1) = " " ) ȕ A$,1)=" " : A$=A$,2) :  str$(items%)=A$  items% += 1  # A$>0 A$,1)<>"#" ' items%>0 menuflush  menuheader(A$)    #F% menuflush #F%   " menuheader(A$) ,id$=firstword(A$) 6&"extern menu_block Menu_";id$;";" @o(" EXPORT Menu_"+id$) Jo("Menu_"+id$) Tnextword(A$) ^ menu$=A$ h items%=0 r |  menuflush  indir%,I%,W%,X$,Y$  (menu$)>12  indir%= , o(" DCD __mcompile_"+id$+"_title" ) " o(" DCD "+((menu$)+1) )  o(" DCD 0")   o12(menu$)  o(" DCB 7,2,7,0") W%=0  I%=0 items%-1 + (str$(I%)) > W% W%=(str$(I%))  o(" DCD "+(W%*16) ) &o(" DCD 44") 0o(" DCD 0") : I%=0 items%-1 D line%= N W%=0 X I%=items%-1 W%=128 b! I%=0 indir% W%+=256 l Y$=str$(I%) v X$=str$(I%+1) & I%12 W%+=256  o(" DCD "+(W%))  Y$>12 . o(" DCD __mcompile_"+id$+"_"+I%)  o(" DCD "+(Y$+1))  o(" DCD 0")    o12(Y$)    line% I%+=1 * 4 indir% >& o("__mcompile_"+id$+"_title") H" o(" DCB """+menu$+""",0") R \ I%=0 items%-1 f str$(I%)>12 p) o("__mcompile_"+id$+"_"+I%) z) o(" DCB """+str$(I%)+""",0")   o(" ALIGN")  o("")     *-----------*  * Templates *  *-----------*   templates(templates$) .ș "OS_File",5,templates$ found%,,,,len%  found%<>1 6 0, "Templates file "+templates$+" not found"  $ . file% len% 8'ș "OS_File",255,templates$,file%,0 Bix%=file%+16 L Vnextstr%=0 ` j'o(" AREA |Templates$$data|, DATA") t o("") ~ȕ !ix% > 0  T$=zerostr(ix%+12) / "extern window_block Template_";T$;";" ( window( T$, file%+!ix%, ix%!4 )  ix%+=24  icon2 o(" ALIGN") o("")    window( W$, w%, size% ) o( " EXPORT Template_"+W$ ) o( "Template_"+W$ )  A% = 0 71 4 o( " DCD &"+~(A%!w%) )  (tflags%=w%!56 2 ( tflags% &100 ) <4 o( " DCD text"+(addtext( w%+w%!72, )) ) F ( w%!76 > 1 ) P8 o( " DCD text"+(addtext( w%+w%!76, )) ) Z d$ o( " DCD &"+~(w%!76) ) n x o( " DCD &"+~(w%!80) )   A%=72 83 4 $ o( " DCD &"+~(A%!w%) )  nicons%=w%!84 o( " DCD &"+~(w%!84) )  nicons%>0  I%=0 nicons%-1 ) icon1( W$, w%, w%+88+I%*32 )  o("")    addtext( A%, B% ) " C%,C$ ,C$=zerostr(A%) 6 nextstr%>0 B%= @ C%=0 nextstr%-1 J str$(C%)=C$ =C% T ^ hstr$(nextstr%)=C$ rnextstr%+=1 |=nextstr%-1   icon1( W$, w%, icon% )  A% o( "; icon "+I% )  A%=0 19 4 # o( " DCD &"+~(icon%!A%) )  iflags%=icon%!16 0 ( (iflags%3) = 0 (iflags%&100) = 0 )  A%=20 31 4 ' o( " DCD &"+~(icon%!A%) )  - j%=addtext( w%+icon%!20, sepicons% )  o( " DCD text"+j% )  icon%!24 > 1 &1 j%=addtext( w%+icon%!24, sepvalid% ) 0! o( " DCD text"+j% ) : D% o( " DCD "+(icon%!24) ) N X# o( " DCD &"+~(icon%!28) ) b l v icon2  nextstr%=0  I%=0 nextstr%-1 o( "text"+I% ) #o( " DCB """+str$(I%)+""",0" )      Library-type routines   o12(A$) I%,B$ B$=" DCB """+A$+""""  A$<12  I%=A$ 11  B$+=",0" * 4 > o(B$) H R \ o(A$) f #G%,A$ p z  skipspace( A$) ȕ A$=32: A$=A$,2):    nextword( A$)  A% A%=A$+" "," ") A$=A$,A%+1) skipspace(A$)    firstword(A$)  A% A%=A$+" "," ") =A$,A%-1)  $ uc(B$) . A%,B%,A$ 8 A$="" B A%=1B$ LB%=B$,A%,1) V B%>96 B%<124 B%-=32 ` A$+=B% j t=A$ ~  zerostr(A%)  B%  B%=A% ȕ ?A%>31:A%+=1:  ?A%=13 =$B%