TRD конечно клевый сайт,но мне нужна программа соответствующая двум критериям:
ПЕРВОЕ - tap,z80 or tzx формат.
ВТОРОЕ - что бы проги нормально функционировали на сорокавосьмикилобайтных машинах.
---------- Post added at 14:56 ---------- Previous post was at 14:53 ----------
Ах да, еще что б никакой связи с дисковым интерфейсом не было.
Т.к. у меня нет дисковода на спеках , а обьем памяти жалко расходовать на такие вестчи.
---------- Post added at 15:00 ---------- Previous post was at 14:56 ----------
Оффтопик -> где можно по выше указанным параметрам найти компрессор изображений.(что б управление осуществлялось через бэйцык командами Randomidze USR [address])?
Насчёт Си, я имел в виду начать с составления списка начальных операторов и операций, которые потребуются для создания простейшей проги типа - puts ('Speccy foreva!') и которые с вероятностью в 100% реализовываются на камне Z80 без извратов. Затем, постепенно можно расти вверх.
Так я поступил со Спектрум-бэйсиком, переводя один оператор за другим в машинный код. "http://zx.pk.ru/attachment.php?attachmentid=6235&d=1192144869". Просьба не ругать, поделке лет 10 уже. Бэйсик программа демонстрирует возможности миниатюрного компилятора.
На том же сайте есть и упаковщики, найдёшь. Всё равно с ПЦ постишь, значит и Unreal запустить можешь, а там сконвертишь как тебе нужно
Последний раз редактировалось Vovoi; 29.12.2009 в 15:13.
Spectrum Basic
На местных форумах это обсуждалось несколько раз. Если сказать коротко, резюме получается такое: без оптимизаций практического смысла в компиляторе мало, а реализация оптимизаций -- это очень большая задача даже для опытных в этом деле людей. А компиляторов, которые генерируют код для Z80 с показателями оптимальности в диапазоне от "никак" до "так себе", их и без того хватает.
Higgins ZX Spectrum Emulator 8.10 alpha 3 available
Please write us to report a bug or request a feature.
цитата: TRD конечно клевый сайт,но мне нужна программа соответствующая двум критериям:
ПЕРВОЕ - tap,z80 or tzx формат.
ВТОРОЕ - что бы проги нормально функционировали на сорокавосьмикилобайтных машинах.
Если еще интересна тема компилятора лови калыбаху! Мануал прилагается.
Бласт мосч! Правда там пакет состоит из нескольких частей оптимизатор-компилятор. И довольно геморойно на кассетах компилить-править-снова компилить.. повторять по мере необходимости
Последний раз редактировалось null_device; 03.10.2015 в 13:42.
Фрагмент описания MC2b.v5:
{ Параметры процедурам в машинных кодах могут передаваться через переменные.
Имя числовой переменной транслируется в два байта ее адреса. Например:
100 LET var=10: REM LINE 42,var
Оттранслируется как команда
LD HL,(var)
}
Из примера чётко видно, что интерпретация вышеуказанной программы средствами spectrum-basic невозможна. Компилятор MCoder-2 "привинчивает" к бэйсику дополнения, которые могут выполняться только в скомпилированном коде.
В статье "ZX Review #5-6" Форум - По поводу компилятора бейсика "Blast" [http://www.zxpress.ru/article.php?id=1673] обсуждается другой, более полный компилятор спектрум-бэйсика. Авторы хотят положить конец неполным компилерам для ZX-Spectrum, создав один полноценный. В статье, в качестве примеров присутствуют такие выкрутасы как:
10 LET A=VAL((STR$ A)(1 TO 3))
(выходит ошибка)
10 LET A=VAL(STR$ A)(1 TO 3)
(все нормально)
А ведь учившиеся по книжке "Как написать игру" [http://trd.speccy.cz/book.htm], хорошо помнят о подобных приёмах, которые лишь накручивают логику в компилерах, увеличивая объём самого компилятора
Так вот, что я подумал.
Один вариант построения компилятора Spectrum-Basic, это опираться на бэйсик-программы и бэйсик-игры и затачивать компилятор исключительно под них. Тогда с исходной программой будет великолепно справляться интерпретатор ПЗУ, а полноценный копилятор лишь ускорит программу.
Но таких программ немного, так что сейчас наверное этим заниматься не имеет смысла, да и никто не будет.
Второй вариант - увлечённо строить компиляторы типа MC2b.v5, когда бэйсик-программа, может лишь частично выполняться интерпретатором ПЗУ и в полной мере проявлять себя ТОЛЬКО в скомпилироанном виде.
Здесь, на мой взгляд, теряется очень важная фишка - возможность отладки программы. В этом случае выигрыш лишь в том, что программа быстро набирается и подходит лишь тем, которые отлично знают, ЧТО делает каждый оператор в тексте и КАК он будет сформирован в RAM. Это некий переходный вариант бэйсик-ассемблер.
Своими вставками немного напоминает Пакет машиннокодовых процедур SUPERCODE/NEW SUPERCODE (авторы F.Vachha & V.Rumsey) [http://grands.land.ru/tzxutils.htm], когда программа на бэйсике обращается в оперативку, запуская фрагменты кода, заранее выполненного на ассемблере. Таким образом, в бэйсик-программе возникают новейшие операторы, например, по выводу спрайтов и т.д. Можно скомпилировать сей гибрид программой MCoder-2, но придется вести расчёты, чтобы расположить полученный код впритык к библиотекам SUPERCODE. Тот ещё гемор.
В книге Капульцевичей говорилось, что программы по стилю написания в конечном счете уже не похожи на обычные для спектрум-бэйсика, они пишутся так, как этого желает компилятор. Програмер ограничивает себя в сладком.
Так что остается вариант компилятора, когда в бэйсик можно вставлять мнемоники асма (вместо числовых значений) и забирать/передавать этим кускам кода данные.
Учитывая некоторый момент, что на Спеке, надеюсь, всё же возникнет какая-то графическая ОС, следует помечтать о каком-то отдельном редакторе, в котором присутствуют хотя бы ассемблер и сокращенный бэйсик, а прога компилится с учетом API самой системы (вывод музыки, текста, спрайтов). Тогда програмер уже не станет заботиться об оперативке, либо о том, как и где разместить музыку/спрайты.
Но это уже другой разговор о том, остановиться ли на бэйсике, либо использовать Си/Паскаль.
Ну с Си мы уже всё решили, да?
Pascal или Basic?
)))))))))
_____________
У меня же в STC-1 была мечта прикрутить асм, но на словарь мнемоник ушло бы много оперативки. Посчитал скока выйдет, опечалился и забросил идею.
Программа представляет собой текстовый редактор, который поделен на две части. Поделены условно, поскольку на экране лишь какая-то одна.
В одной части происходит редактирование бэйсик-программы. В другой, редактирование (по желанию) ассемблерного текста операторов, этот бэйсик составляющих. Библиотеки текстов асма грузятся вместе с редактором. Вся кухня напоминает макроассемблер. Только в макроасме сложно реализовать FOR-NEXT, а здесь, этим занимается сама програмуля. В ходе трансляции, программа читает оператор, лезет в текст асма, его составляющий, компилит встроенным ассемблером, ставит значение, идёт к следующему. Таким образом, всё сводится к умелому жонглированию асм-текстов. Вот такой был план.
Начинающему, не составит сложность набрать програмулю, а для кодера перешедшего на асм, это быстрый набор листинга.
Новые операторы можно составлять самостоятельно, в том числе по управлению спрайтами и т.п.
Spectrum Basic
Это, т.с. издержки производства.. как невозможность задать переход с параметром (GOTO n, GOSUB n), иная логика работы команды RND после компиляции (об этом написано в фирменном мануале на MCoder2), и пр. ограничения накладываемые любым компилятором.
Звучит заманчиво.. Идея двухпанельного редактора с компилятором-интерпретатором. Ждем развития и реализации в готовом коде.
Компилятор на спектрумe на мой взгляд обречен как вид. С одной стороны вынуждает "подгонять" программу под компилятор. С другой, неоптимальная сборка конечного кода (хромает либо скорость, либо размер). В общем минусов при их использовании, зачастую, больше чем плюсов.
>Компилятор на спектрумe на мой взгляд обречен как вид.
Если считать, что МЫ последние, кто занимается Speccy, то да, нам он по большей части не нужен. Если помечтать и прикинуть, что у молодёжи вдруг возникнет желание программировать на Спектруме, то компилятор будет промежуточным звеном между бэйсиком и асмом. Будем считать, что молодёжь сразу ринется в ассемблер.
Spectrum Basic
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)