Цитата Сообщение от Andrew771 Посмотреть сообщение
Везде используется тип word, если не указан явно диапазон значений.
Т.е., например функции работы с окнами, где указано "от 0 до 31" и т.д. имеют тип byte, а остальные word?

Цитата Сообщение от Andrew771 Посмотреть сообщение
Было бы очень удобно.
Сегодня начал, набросал базовые функции очистки экрана, установки аттрибутов и прочих и вывод прямых спрайтов. Завтра буду делать отзеркаленные и окна может успею. С ассемблерными вставками я похоже погорячился. На PC их не получится писать как есть, и пока не вижу способа их реализовать кроссплатформенно.

Пока получилось запустить ваш пример из "demo_sprites.PRG". Исходник выглядит вот так:
Код:
program TestZXPas;

{$APPTYPE CONSOLE} // Эта директива для работы команд ввода/вывода.
uses
  windows, ZXPas in 'ZXPas.pas';

var
  x,y:byte;
  SPRITE01:array[0..60]of byte = (6,  0,0,  63, 96,204,152,145,163,130,139,
                                      0,1, 192, 96, 48, 24,200,200, 88, 80,
                                      1,0, 143,199, 97, 44, 43, 41, 45, 45,
                                      1,1, 208,208,176, 96,160,176,208,144,
                                      2,0,  45, 35, 47, 51, 20, 23, 16, 31,
                                      2,1,  48,160,160, 96, 96,160, 32,224);

  SPRITE02:array[0..60]of byte = (6,  0,0,   0, 63, 96,204,144,145,163,130,
                                      0,1,   0,192, 96, 48, 24,200,200, 88,
                                      1,0, 139,143,199, 97, 44, 47,109, 91,
                                      1,1,  80,208,208,176, 96,160,176,144,
                                      2,0,  83, 88,103, 87, 72, 99, 60,  3,
                                      2,1,  16, 48,176, 24,104,200, 56,192);

begin
  // Инициализация модуля ZXPas
  ZXPas.init;
  while not ZXInitialized do
    sleep(10);
  // Далее можно писать программу для ZX Like Pascal

  border(0);
  textbackground(0);
  textcolor(6);
//  clrscr;
  VirtScreenClear;
  textcolor(3);
  writeln('xxx');
  SpritePutClear(sprite01,7+2,25-14);
  SpritePutOr(sprite02,7+3,25-13);
  SpritePutXor(sprite02,7+4,25-12);

  SpritePutMirrorClear(sprite01,17+2,20-14);
  SpritePutMirrorOr(sprite02,17+3,20-13);
  SpritePutMirrorXor(sprite02,17+4,20-12);{}

  VirtScreenPut;

  // Ожидание закрытия графического окна и затем завершение программы
  repeat
    sleep(100);
  until not ZXInitialized;
  ZXPas.Deinit;
end.