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

User Tag List

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

Тема: ZX Like Pascal

  1. #1
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,497
    Благодарностей: 668
    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.


    Пока тестовая бета-версия, могут быть глюки! Буду исправлять, если обнаружим.

    Обновил 16.08.2017 версию до 0.909, перекачайте заново

    Также добавлен Генератор спрайтов ZxSprGen V.2.0.1 от AzAtom, специально написанный для ZX Like Pascal.
    Вложения Вложения
    Последний раз редактировалось Andrew771; 16.08.2017 в 22:51.
    Формально всё правильно, а по существу - издевательство (В.И.Ленин)

  2. Эти 14 пользователя(ей) поблагодарили Andrew771 за это полезное сообщение:
    ALKO (02.04.2015), Astrolux (25.09.2015), AzAtom (07.08.2016), bigral (02.04.2015), helcril (04.04.2015), kas29 (15.08.2016), krt17 (01.04.2015), MaratBest (17.08.2017), mastermind (09.04.2015), Sergey (02.04.2015), s_kosorev (03.03.2016), Vitamin (01.04.2015), Бука (14.04.2015), Руслан (02.04.2015)

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

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

    По умолчанию

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

  5. #3
    Member
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    120
    Благодарностей: 45
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  6. Этот пользователь поблагодарил Bolt за это полезное сообщение:
    Barmaley_m (09.04.2015)

  7. #4
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,497
    Благодарностей: 668
    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.
    Формально всё правильно, а по существу - издевательство (В.И.Ленин)

  8. #5
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,122
    Благодарностей: 1075
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

  9. #6
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,497
    Благодарностей: 668
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  10. #7
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,122
    Благодарностей: 1075
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  11. #8
    Доктор Аватар для Kakos_nonos
    Регистрация
    26.12.2010
    Адрес
    Кубань
    Сообщений
    1,078
    Благодарностей: 818
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  12. #9
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,497
    Благодарностей: 668
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    Цитата Сообщение от denpopov Посмотреть сообщение
    хотелось бы готовый код со сдвигами скормить компилятору
    тож на будущее вставлю. А пока придется адаптировать прогу под текущее.
    Формально всё правильно, а по существу - издевательство (В.И.Ленин)

  13. Этот пользователь поблагодарил Andrew771 за это полезное сообщение:
    Kakos_nonos (02.04.2015)

  14. #10
    Доктор Аватар для Kakos_nonos
    Регистрация
    26.12.2010
    Адрес
    Кубань
    Сообщений
    1,078
    Благодарностей: 818
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  15. Этот пользователь поблагодарил Kakos_nonos за это полезное сообщение:
    Andrew771 (02.04.2015)

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

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

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

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

Похожие темы

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

Ваши права

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