slenkar писал(а):
what is the difference between drawtile and drawtilemono?
DrawTile gets color attributes from a specified tile data, and needs 8 + 1 bytes of data for tile 8x8 (8 bytes for pixels and 1 for color attribute). For non-ZX platform the such tiles may be colored (has many colors, greater than 2) and be able to has non-Spectrum formats (BMP, PNG, etc, even vector formats). That's why for portable code is better not to place the tiles data directly into the user-level code (by DATA), and make a separate module Rsrc that will defines different graphic (and other) resources for different platforms.
DrawMonoTile gets color attributes from internal variable that specified by procedure SetColors. For non-ZX platform such tiles are always monochrome (two-colored), as for ZX. And a color is specified by the same constants named identically, i.e. YellowOnBlue tile looks the same as on ZX, as under DOS, etc.
slenkar писал(а):
and what does DEFDATAREL do?
DEFDATAREL defines a block of data (relative, relocatable). First parameter after running the procedure has the data address. Second parameter must be = data size, and it is needed for correct jump over the data to next machine code placed after the data.
I must optimize this procedure, and I have to write the non-relocatable variant that will be named DEFDATA.
READ just reads bytes. Perhaps we need procedures READINT, READSET, READSINT, READLINT, READCHAR, READBOOL, etc. Just like we need DATAINT*, DATASET*, DATACHAR*, DATABOOL*, etc. I intend to add these features as they become necessary.