Важная информация
Страница 1 из 20 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 193

Тема: ZX Like Pascal

  1. #1

    По умолчанию 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.


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

    Обновил 07.08.2016 версию до 0.908, перекачайте заново
    Вложения Вложения
    Последний раз редактировалось Andrew771; 07.08.2016 в 22:07.
    Формально всё правильно, а по существу - издевательство (В.И.Ленин)

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

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

  4. #2
    Banned
    Регистрация
    04.03.2010
    Адрес
    Россия. Пятигорск.
    Сообщений
    2,301
    Благодарностей: 3617

    По умолчанию

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

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

    По умолчанию

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

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

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

  7. #4

    По умолчанию

    Цитата Сообщение от 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 в 11:32.
    Формально всё правильно, а по существу - издевательство (В.И.Ленин)

  8. #5
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,122
    Благодарностей: 1074

    По умолчанию

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

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

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

  9. #6

    По умолчанию

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

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

  10. #7
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,122
    Благодарностей: 1074

    По умолчанию

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

  11. #8
    Доктор Аватар для Kakos_nonos
    Регистрация
    26.12.2010
    Адрес
    Кубань
    Сообщений
    1,077
    Благодарностей: 809

    По умолчанию

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

  12. #9

    По умолчанию

    Цитата Сообщение от 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,077
    Благодарностей: 809

    По умолчанию

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

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

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

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

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

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

Похожие темы

  1. PASCAL + MACRO11 (УКНЦ-ДВК).
    от hobot в разделе ДВК, УКНЦ
    Ответов: 165
    Последнее: 13.02.2017, 17:13
  2. Turbo Pascal для msx/msx2
    от Оззя в разделе MSX
    Ответов: 2
    Последнее: 13.01.2014, 22:58
  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, 17:35

Ваши права

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