Важная информация

User Tag List

Страница 1 из 54 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 531

Тема: ZX Like Pascal

  1. #1
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    130
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию ZX Like Pascal

    Представляю свой готовый кросс-компилятор Паскаля для Спектрума (и это не первоапрельская шутка! ).

    ZX Like Pascal – кросс-компилятор языка программирования Паскаль для компьютера ZX Spectrum. Имеет усеченную версию по сравнению с классическим Паскалем.
    Исходная программа на Паскале создается в файле с расширением PRG в любом текстовом редакторе. Для компиляции необходимо запустить файл ZXLIKEPASCAL.EXE и выбрать необходимый файл PRG. Программа на Паскале скомпилируется в программу на Ассемблере и запишется в текстовый файл с тем же именем и расширением ASM. Ассемблерный файл можно далее скомпилировать в любом кросс-ассемблере для ZX Spectrum. В случае обнаружения синтаксической ошибки в исходной программе выводится сообщение на экран с описанием ошибки, конкретное местонахождение ошибки можно посмотреть в файле ERROR.PRG.
    Поддерживаются только целочисленные и строковые типы, одномерные и двумерные массивы.
    Символьный экран - 64х24. Шрифт используется 4х8, в строке 64 символа. Поддерживается латиница и кириллица, буквы только прописные.
    Имеются встроенные операторы вывода окон, познакоместных спрайтов и двумерных карт из элементов-спрайтов. Карты могут представлять из себя ландшафты, лабиринты, игровые поля. Имеется также встроенный оператор поиска элементов на карте по различным критериям. Карта задается в двумерном массиве, байт на клетку. В программе может быть несколько карт, соответствующие нескольким массивам.
    Флагами компиляции можно задать:
    - использование атрибутов (да/нет);
    - отслеживание границ спрайтов и вывод только помещающейся части спрайтов (да/нет);
    - вывод на виртуальный экран (да/нет).
    Выход за пределы допустимых значений переменных и массивов не отслеживается, за ними должен следить программист (это сделано для увеличения быстродействия программ).
    После последнего END программы на Паскале в файле PRG могут записываться процедуры на Ассемблере, коды спрайтов, карт и другая информация. Она без изменения копируется в файл ASM.

    Обновил 20.05.2020 версию до 1.0.

    Также добавлен Генератор спрайтов ZxSprGen V.2.0.1 от AzAtom, специально написанный для ZX Like Pascal.
    Вложения Вложения
    Последний раз редактировалось Andrew771; 20.05.2020 в 17:34.

  2. Эти 3 пользователя(ей) поблагодарили Andrew771 за это полезное сообщение:

    Azm (23.05.2020), Dart Alver (21.08.2020), nzeemin (09.04.2023)

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

  4. #2
    Banned
    Регистрация
    04.03.2010
    Адрес
    Россия. Пятигорск.
    Сообщений
    2,296
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    мануал только на родном русском.
    Это хорошо, мы пендосятский всё равно не понимаем.

  5. #3
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Почему ArrayByte[n1], а не array [1..n1] of byte?
    Почему %, а не mod?
    Логического xor, а также целочисленных and, or, xor, shl, shr - нет?
    Указателей вообще никаких нет? И не будет? Будут ли параметры у процедур? Локальные переменные? функции?

    Это такое авторское вИдение Паскаля или какой-то диалект, о котором я не знаю?

  6. #4
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    130
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Это такое авторское вИдение Паскаля или какой-то диалект, о котором я не знаю?
    Ну еще спроси, почему нет типа real и longint
    Я сделал для создания игр на Спекки прежде всего, на мой взгляд только нужные операторы. Поэтому появились всякие непаскалевские PutSprite и MapPut.
    Цитата Сообщение от Bolt Посмотреть сообщение
    Почему ArrayByte[n1], а не array [1..n1] of byte?
    Потому что диапазоны нигде не поддерживаются, и нижняя граница всегда 1, а не любая. Только для формальности можно подогнать под Паскаль.
    Цитата Сообщение от Bolt Посмотреть сообщение
    Почему %, а не mod?
    если честно, х.з.
    Цитата Сообщение от Bolt Посмотреть сообщение
    Логического xor, а также целочисленных and, or, xor, shl, shr - нет?
    xor ни разу не использовал в жизни в логических выражениях на ЯВУ. And и Or есть в логических выражениях. Сдвиги нафиг, это для Асма.
    Цитата Сообщение от Bolt Посмотреть сообщение
    Указателей вообще никаких нет? И не будет? Будут ли параметры у процедур? Локальные переменные? функции?
    вряд ли.

    Основное назначение - написание игр.
    Последний раз редактировалось Andrew771; 02.04.2015 в 09:32.

  7. #5
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Ну еще спроси, почему нет типа real и longint
    кстати, да, почему?

    ---------- Post added at 11:57 ---------- Previous post was at 11:53 ----------

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Сдвиги нафиг, это для Асма
    я, кэшна не знаток спецификации, но БорманПаскаль говорит вот:

  8. #6
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    130
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от denpopov Посмотреть сообщение
    Сообщение от Andrew771
    Ну еще спроси, почему нет типа real и longint
    кстати, да, почему?
    real не будет, он в подавляющем большинстве игр не нужен.
    longint - планируется в будущем. Но для этого нужно сделать процедуры сложения/вычитания/умножения/деления 32-битных чисел, пока отказался. У меня пока есть 16-битные процедуры.

    Цитата Сообщение от denpopov Посмотреть сообщение
    я, кэшна не знаток спецификации, но БорманПаскаль говорит вот:
    Сдвиги если для скроллинга окон, то у меня есть готовые операторы для этого. Для остального не знаю, где еще можно применить. Умножайте/делите на 2 вместо сдвигов. Компилятор оптимизирует такие умножения сам.

  9. #7
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Умножайте/делите на 2 вместо сдвигов. Компилятор оптимизирует такие умножения сам
    хотелось бы готовый код со сдвигами скормить компилятору

  10. #8
    Veteran Аватар для Kakos_nonos
    Регистрация
    26.12.2010
    Адрес
    Кубань
    Сообщений
    1,152
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    36
    Поблагодарили
    22 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А хотябы стек для передачи параметров процедурам?
    А неудобно будет.

  11. #9
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    130
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kakos_nonos Посмотреть сообщение
    А хотябы стек для передачи параметров процедурам?
    А неудобно будет.
    ладно, приделаю. Пока через глобальные переменные можно передавать.

    ---------- Post added at 14:43 ---------- Previous post was at 14:37 ----------

    Цитата Сообщение от denpopov Посмотреть сообщение
    хотелось бы готовый код со сдвигами скормить компилятору
    тож на будущее вставлю. А пока придется адаптировать прогу под текущее.

  12. #10
    Veteran Аватар для Kakos_nonos
    Регистрация
    26.12.2010
    Адрес
    Кубань
    Сообщений
    1,152
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    36
    Поблагодарили
    22 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Обязательно компилятор опробую и что-нибудь напишу. Очень давно ищу подобное, попадаются только монстры типа Си или Оберона с компиляторами из 1000 файлов. А тут - один фаил. Всё по спектрумовски.

Страница 1 из 54 12345 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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