Новости by Alone Coder Я взял долгую паузу, чтобы завершить следующий шаг в развитии компилятора NedoLang. Что было сделано: -enum (только тип BYTE). -switch-case (только тип BYTE). -INCLUDE и INCBIN в NedoAsm. -Z80 library (умножение, деление, сдвиги). -TR-DOS I/O library. Как и во встроенных командах TR-DOS для работы с последовательными файлами, файлы делятся на куски по 4К с одинаковым названием, отличающиеся только параметром "start". Это позволяет открыть одновременно несколько файлов на запись. Пока не хватает работы с файлами произвольного доступа и переоткрытия файлов на запись. -Самокомпиляция. Для неё исходник компилятора пришлось существенно оптимизировать по размеру кода и меток (важно при ассемблировании, когда должны быть доступны все метки - линкера нет). Изначально каждая часть системы могла компилироваться на одном TRD, но после оптимизации по скорости и добавления фич (см. ниже) компилятор требует полуавтоматической компиляции на рамдиске. К сожалению, самокомпиляция занимает далеко не минуту - каждая из 3 частей (компилятор, токенизатор и ассемблер) компилируется около 2 минут на 3.5 МГц. Последовательность операций прописана в бейсик-загрузчике (впоследствии в двух бейсик-загрузчиках из-за недостатка памяти под ассемблер). Думаю насчёт добавления обработчика батников. - С помощью самокомпиляции исправлено огромное количество багов. Я сравниваю результат компиляции (бинарник), сгенерированный PC-версией, с результатом компиляции ZX-версии. Тестирование полуавтоматическое. - Выпущена демонстрация (NedoGift: LVD 35) для отработки процесса написания программ в системе NedoLang. -вызов по указателю (без параметров). -struct (пока без вложенных структур). -EXPORT для экспортирования меток. Компилятор Си экспортирует все метки. NedoLang позволяет указать, какие именно надо экспортировать (переменные, процедуры, функции, массивы, но не константы, потому что метки экспортируются в виде указателей). NedoAsm позволяет то же самое. - Примитивнаяраздельная компиляция - в основном для сборки самого компилятора (кодогенератор отдельно, язык отдельно). При этом экспортируется информация для релокации, но релоцировать ассемблер пока не умеет. Так что можноINCBIN'ить модуль в программу по конкретному адресу, куда он скомпилирован, используя экспортированные метки. - Выпущенастабильная 48K версия системы вместе с исходниками. См. тут:http://alonecoder.nedopc.com/zx/ -#include для модулей. -#define для констант, чтобы обеспечить совместимость с Си при задании размеров массивов (можно указывать тип констант). -#ifdef (пока без вложенности). -+sizeof(<type>). - Тайпкаст больше не требует'+' перед скобками. - Написанаэкспериментальная тайлово-спрайтовая библиотека для будущих игр. Пока находится в процессе отладки и добавления фич. Конвертор ресурсов будет поставляться с системой. Пока что поддерживается только 48K Speccy. - Добавлен экспериментальный таргет ARM Thumb, пока в неюзабельном виде. Пока я этим занимался,FlashZX зарелизил первоапрельскую демоверсию игры Battletoads. Я был поражён тем, что удалось сделать на EvoSDK (немного доработаннойHippiman'ом ). Так что буду серьёзно обдумывать новый спрайтовый движок :) Dart Alver из Смоленска (где раньше не было никакой спектрумовской сцены) выпустил огромную доработку графического редактора Burial Gfx Editor. Доработка включает новый движок масштабирования (с багфиксами, опцией 8x8 и рисованием сеткой), новое файловое меню (с переименованием, удалением и даже копированием), попиксельное движение курсора, встроенную справку и возвращённый плагин для работы с CHR шрифтами. Текущая версия размещена наhttp://alonecoder.nedopc.com/zx/ Wanderer написал новый скриптовый движок для новой игры, но проект заморожен, потому что он нашёл новую работу. Arwald защитил диплом и вернулся к своим игровым проектам. Не спеша готовится новый номер журнала Info Guide. Появилось несколько новых статей. Я начал перевод.Karbo прислал несколько музонов.John Silver написал ещё пару паттернов :) Я отвёз ему свой пц, и после обработки пылесосом он неожиданно заработал! Но я его всё никак не заберу.Louisa как будто сломала палец на ноге и не может водить машину:( (P.S.: Сегодня она поправилась.) SpeccyWiki перешла рубеж в4000 статей! Tiboh добавляет информацию о группах, пока обновляет демоархивZXAAA. AmoNik написал беспрецедентную автобиографию про компьютерную жизнь в Ленинграде. История начинается в 1988 году! Читайте её в этом номере. Возможно, удастся собрать информацию об этих ранних годах из разносторонних источников в одну книгу (см. прошлые выпуски ACNews ).