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

User Tag List

Страница 61 из 91 ПерваяПервая ... 575859606162636465 ... ПоследняяПоследняя
Показано с 601 по 610 из 907

Тема: Мощная среда ZXDev для разработки НА ПЯТИ ЯЗЫКАХ для ZX готова к тестированию

  1. #601
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,599
    Спасибо Благодарностей отдано 
    2,172
    Спасибо Благодарностей получено 
    133
    Поблагодарили
    99 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Поле для простора всегда есть. Но где больше инфы об этом? Есть авторы-одиночки, которым не нужны соавторы и сотоварищи. Есть авторы-тираны, которые не приемлют никаких решений со стороны, им нужно контролировать проект на все 100% лично. В общем, для себя я не вижу ничего интересного в портах аркадных игр на ассемблер. Есть интерес поработать в команде, но я не нашёл со-товарищей по интересам.

    Мой интерес: языки, отличные от ассемблера + ZX Spectrum

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

    Забыл упомянуть я про такие языки (для Z80 или 8080):

    • Modula-2 (конечно же! Лучший из виртовских языков для старых процев!)
    • NedoLang, который ваяет незабвенный Alone Coder. Имею мечту посоветовать ему выкинуть NedoLang и взять вместо него PL/M
    • Metal (язык Владимира Кладова)
    • COLOSS (мой язык. Вряд ли есть смысл сегодня на нём кодить. Нужен суровый рефакторинг)
    • Ну может ещё какие-нить Algol и FORTRAN для CP/M

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

  3. #602
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,125
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    11 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    NedoLang, который ваяет незабвенный Alone Coder. Имею мечту посоветовать ему выкинуть NedoLang и взять вместо него PL/M
    я так и не понял, что такое недо-язык: это оболочка к SDCC?

  4. #603
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,599
    Спасибо Благодарностей отдано 
    2,172
    Спасибо Благодарностей получено 
    133
    Поблагодарили
    99 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нет, насколько я понял, это самостоятельный Си-подобный язык для старых компьютеров. Вот пример исходника. NedoLang.zip

  5. #604
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,125
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    11 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    уж больно на Си похоже.

  6. #605
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,599
    Спасибо Благодарностей отдано 
    2,172
    Спасибо Благодарностей получено 
    133
    Поблагодарили
    99 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Про Оберон-технологии в науке. Прямого отношения к ZXDev не имеет, но любопытно.


  7. #606
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,751
    Спасибо Благодарностей отдано 
    256
    Спасибо Благодарностей получено 
    266
    Поблагодарили
    200 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а разве в с# много лексем?
    и да кстати... 1984
    С уважением,
    Jerri / Red Triangle.

  8. #607
    Activist
    Регистрация
    21.08.2009
    Адрес
    Cyprus
    Сообщений
    233
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Несколько в тему, интересная информация для любителей Паскаля:

    В репозитории Free Pascal недавно появилась ветка "z80" - судя по всему начало поддержки "embedded-z80" target. (кодогенерация для "голого" z80, т.е. без операционной системы)
    Автор добавленного кода, судя по комментариям - Florian Klämpfl <[email protected]> , см. http://www.freepascal.org/aboutus.var



    Посмотреть на код можно, например, так (я использую "git svn" т.к. привычнее, но само собой можно и самим svn):
    Код:
    # это займет много времени, пока все брэнчи вытянутся:
    git svn clone -s http://svn.freepascal.org/svn/fpc fpc
    cd fpc
    git reset --hard origin/z80
    # умомянутый код находится в основном в этой директории: ./compiler/z80
    Последний раз редактировалось mastermind; 18.04.2017 в 02:21.

  9. #608
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,599
    Спасибо Благодарностей отдано 
    2,172
    Спасибо Благодарностей получено 
    133
    Поблагодарили
    99 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вышла версия 1.1 XDev, XDevLite и ZXDev:



    Список изменений и новшеств не привожу, лениво.

  10. #609
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,599
    Спасибо Благодарностей отдано 
    2,172
    Спасибо Благодарностей получено 
    133
    Поблагодарили
    99 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

  11. #610
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,599
    Спасибо Благодарностей отдано 
    2,172
    Спасибо Благодарностей получено 
    133
    Поблагодарили
    99 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Мы с Лёшей Большаковым спроектировали и реализовали модуль для кооперативной многозадачности. Вот пример с летающими шариками, тут никакой синхронизации, всё дёргается) Но фишка не в этом. Все шарики двигаются внутри вот этой одной процедуры, выполняемой параллельно 8 раз:

    Код:
    PROCEDURE MoveBall;
    VAR
      x, y: INTEGER; sx, sy: SHORTINT;
    BEGIN
      x := b.RND(20, 240); y := b.RND(20, 160);
      sx := SHORT( b.RND(0, 1) ); IF sx = 0 THEN sx := -1 END;
      sy := SHORT( b.RND(0, 1) ); IF sy = 0 THEN sy := -1 END;
      g.PUTSPR(x, y, 1, 8, SYSTEM.ADR(Ball), g.XORSPR);
      LOOP
        g.PUTSPR(x, y, 1, 8, SYSTEM.ADR(Ball), g.XORSPR);
        IF (x < 1) OR (x > 247) THEN sx := -sx END;
        x := x + sx;
        IF (y < 8) OR (y > 190) THEN sy := -sy END;
        y := y + sy;
        g.PUTSPR(x, y, 1, 8, SYSTEM.ADR(Ball), g.XORSPR);
        t.Yield;
      END;
    END MoveBall;
    PUTSPR - процедура Сержа Колотова для вывода спрайта с пиксельной точностью. Я её не модифицировал для работы с буфером. И критики по поводу дёрганья шариков не жду. Именно для шариков лучше было бы делать всё в цикле. Это я так, для теста. Модуль Tasks и примеры его использования залиты в репозиторий.

    Переключение контекста задач очень легковесное, буквально несколько машинных команд.

    Вот документация на модуль:

    Код:
    MODULE Tasks; (* non-portable *)
    
    (*
      Модуль обрабатывает следующие нештатные ситуации:
        22 "Statement lost" - Run запущен не из "главной" задачи
        25 "Parameter error" - эта задача уже есть в списке
    *)
    Каждая задача обладает своим собственным стеком и может иметь локальные переменные. Поэтому ей требуется своя память для работы. Для этого статически или динамически создаётся переменная, которая хранит память для задачи. Представлены следующие модели задач, отличающиеся размером стека:

    Код:
    TYPE
      Low    = RECORD (Context) stack: ARRAY  20 OF BYTE END;
      Tiny   = RECORD (Context) stack: ARRAY  40 OF BYTE END;
      Small  = RECORD (Context) stack: ARRAY  60 OF BYTE END;
      Medium = RECORD (Context) stack: ARRAY  80 OF BYTE END;
      Large  = RECORD (Context) stack: ARRAY 100 OF BYTE END;
      Huge   = RECORD (Context) stack: ARRAY 120 OF BYTE END;
    Модель Tiny имеет размер стека 40 байтов, и этого достаточно для обработки прерывания IM 1. Модель Low гарантированно упадёт при обработке прерывания IM 1 и нужна для особых случаев (работа в режиме DI).

    Код:
    PROCEDURE Count (): SHORTINT;
    Возвращает количество запущенных задач. В коде есть ограничение на предел количества задач - 255. Ограничение видится разумным, т.к. при большом количестве задач тратится всё больше ресурсов на переключение их контекста. Плюс ещё и память. Модель Tiny берёт 50 байт на стек задачи. 50x255 = 12750.

    Код:
    PROCEDURE Spawn ((*VAR*) ctx: Context; proc: PROCEDURE);
    Ставит задачу proc в очередь выполнения. Выполнение начнётся по кольцу при вызове процедуры Run.

    Код:
    PROCEDURE Id (ctx: Context): INTEGER;
    Возвращает id (идентификационный уникальный номер) контекста - двухбайтовое целое число.

    Код:
    PROCEDURE MyId (): INTEGER;
    Возвращает свой id, т.е. текущей выполняемой задачи. В случае основной задачи он равен 0.

    Код:
    PROCEDURE Run;
    Выполняет атом одной из задач в кольце. Нормальное использование Run - вызывать в цикле, пока есть активные задачи: REPEAT Tasks.Run UNTIL Tasks.Count() = 0
    Run спроектирован таким образом, чтобы после каждого атома (Yield) отдавать управление основной задаче. Это может понадобиться для выполнения в основной задаче каких-то действий с более высоким приоритетом.

    Код:
    PROCEDURE Yield;
    Своеобразный "разрыв". Вызывается внутри задачи для передачи управления другим задачам.

    Смотрите примеры работы с модулем Tasks: TestTasks и MoveBalls.
    Вложения Вложения

Страница 61 из 91 ПерваяПервая ... 575859606162636465 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. мощная игрушка
    от ZEman в разделе Игры
    Ответов: 129
    Последнее: 23.03.2024, 17:05
  2. Ответов: 5
    Последнее: 20.06.2011, 03:18
  3. Видеоконтроллер из пяти микросхем
    от zx-kit в разделе Изображение
    Ответов: 20
    Последнее: 31.03.2011, 14:48

Метки этой темы

Ваши права

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