User Tag List

Страница 11 из 54 ПерваяПервая ... 789101112131415 ... ПоследняяПоследняя
Показано с 101 по 110 из 531

Тема: ZX Like Pascal

  1. #101

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    - - - Добавлено - - -

    Правда, для такого придётся переработать подход.
    - Ассемблерные процедуры перенести из конца программы и сделать возможность ассемблерных вставок.
    - Коды спрайтов и карт можно заполнять при инициализации массивов в разделе var, например.

  2. #102

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Начал делать этот модуль, только для Delphi. Столкнулся с неопределённостью. В инструкции функция описана, например Delay(<x>); и непонятно какого типа переменную она может принимать. Лучше описывать в виде Delay(x:byte);, как пишут в помощи по тому же turbo pascal или delphi.

  3. #103

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,713
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    AzAtom, если Вам нужен инструментарий для разработки под Спек и другие платформы на одном языке, посмотрите ZXDev, ссылка в подписи. Я приватно щас кое-что скину, буквально вчера начал набрасывать.

    - - - Добавлено - - -

    Именно так, кстати, всё и реализовано, как Вы предлагаете. Язык синтаксически совместим для разных платформ, есть поддержка ZX, можно делать модули, совместимые по интерфейсу, но различные по реализациям, то есть можно спокойно делать игру на PC, отлаживать алгоритмы, а потом скомпилировать для спектрума.

    Есть возможность ассемблерных вставок, коды спрайтов и карт можно задавать в константых массивах.

  4. #104

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Начал делать этот модуль, только для Delphi. Столкнулся с неопределённостью. В инструкции функция описана, например Delay(<x>); и непонятно какого типа переменную она может принимать. Лучше описывать в виде Delay(x:byte);, как пишут в помощи по тому же turbo pascal или delphi.
    Везде используется тип word, если не указан явно диапазон значений. Все арифметические выражения <arithmetic expression> 16-битные, т.е. тип word.

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

  5. #105

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Oleg N. Cher, вообще, есть идеи сделать кое-что довольно сложное, поэтому, хотелось бы поддержки указателей и прочего. Просто паскаль мне знаком и поэтому эта тема привлекла внимание. Интересные штуки вы прислали.

  6. #106

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Именно так, кстати, всё и реализовано, как Вы предлагаете. Язык синтаксически совместим для разных платформ, есть поддержка ZX, можно делать модули, совместимые по интерфейсу, но различные по реализациям, то есть можно спокойно делать игру на PC, отлаживать алгоритмы, а потом скомпилировать для спектрума.
    Проблема в том, что полных библиотек в ZXDev нет, нужно самому дописывать на ассемблере. Как, например, уже сейчас вывести спрайт?
    Я же создал полную библиотеку, чтобы юзер ничего сам не писал на ассемблере. Как правило, он и не может, т.к. наша аудитория - люди, знающие только языки высокого уровня: Бейсик, Паскаль.

  7. #106
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #107

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от 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.

  9. #108

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,713
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Oleg N. Cher, вообще, есть идеи сделать кое-что довольно сложное, поэтому, хотелось бы поддержки указателей и прочего. Просто паскаль мне знаком и поэтому эта тема привлекла внимание. Интересные штуки вы прислали.
    Благодарю.

    AzAtom, поддержка указателей в ZXDev безусловно имеется. Как типизированных, так и нетипизированных. Есть модуль SYSTEM, который реализует набор низкоуровневых операций. Оказываю консультации, отвечаю на вопросы. Есть форум для поддержи и рассылка. Сам удивляюсь почему этим почти никто не пользуется. ;-)

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Проблема в том, что полных библиотек в ZXDev нет, нужно самому дописывать на ассемблере.
    Информация устарела. Есть довольно симпатичные библиотечки, не хуже твоих.

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Как, например, уже сейчас вывести спрайт?
    Как минимум, несколькими способами. Есть модуль GrSpr, есть кое-что в Best40.


    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Я же создал полную библиотеку, чтобы юзер ничего сам не писал на ассемблере. Как правило, он и не может, т.к. наша аудитория - люди, знающие только языки высокого уровня: Бейсик, Паскаль.
    Знающий чел портирует туда чего угодно, даже с минимальным знанием асма и максимальным желанием. В крайнем случае попросит помощи. Есть также мнение, что всего сразу не предусмотришь. Ты сформировал библиотеку, куда добавил всё нужное тебе, ну а кто поручится, что юзеру не понадобится что-то ещё?

  10. #109

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Random(x) - Случайное число от 0 до x включительно. x может быть также арифметическим выражением.
    Может, правильнее выдавать не включительно, как делает тот же турбопаскаль от борланда? Тогда будет меньше проблем с переносом кода оттуда, например.
    Думал над этим, переделать легко. Просто, считаю с самого начала, как только начал изучать Бейсик и Паскаль, что правильнее полный диапазон включительно. Такая вот самодеятельность
    Я кстати еще по другому реализовал оператор read/readln - если юзер вводит неверное значение или не того типа, то прога не отваливается с ошибкой (это меня бесит во всех ЯВУ), а перезапрашивает значение заново, т.е. продолжает работу. Для игр особенно важно.

    По другому сделана readkey - опрашивает сразу до двух одновременно нажатых клавиш.

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Процедуры допустимы только без параметров и локальных переменных.
    Ждём их поддержки. По крайней мере, переменные цикла должны быть локальными, чтобы исключить повторное использование имени.
    Это планируется. И планируется поддержка записей еще.

  11. #110

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот скомпилированная программа с использованием этого модуля. Дополню другие функции и тогда можно выложить исходник.
    TestZXPas.rar

Страница 11 из 54 ПерваяПервая ... 789101112131415 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. PASCAL + MACRO11 (УКНЦ-ДВК).
    от hobot в разделе ДВК, УКНЦ
    Ответов: 341
    Последнее: 15.01.2022, 17:30
  2. Turbo Pascal для msx/msx2
    от Оззя в разделе MSX
    Ответов: 4
    Последнее: 23.02.2020, 23:59
  3. в розыске дисковая версия Pascal.
    от goblinish в разделе Программирование
    Ответов: 18
    Последнее: 16.08.2011, 16:30
  4. Pascal
    от Andrew771 в разделе Программирование
    Ответов: 22
    Последнее: 24.05.2011, 21:20
  5. Скопировать/вставить из/в HiSoft Pascal в эмуляторе
    от kit в разделе Программирование
    Ответов: 1
    Последнее: 05.02.2010, 15:35

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •