Вход

Просмотр полной версии : Кончилась память в ZXASM :(



STD
04.09.2016, 16:50
Хорошего воскресенья всем!
Пишу свою прогу в ZXASM, текст состоит их двух частей: непосредственно набираемый файл и в конце него с диска командой include подгружаю библиотечный файл с разными процедурами. И вот хотя кода всего генериется на 3,5 килобайта, при подгрузке библиотеки асм стал выдавать "Not enough memory". Я чето думал, что если часть исходника вынести в файлы и грузить их includ'ами, то можно будет наассемблировать хоть 30 кб кода, а тут...
Кто знает, можно ли как-то это побороть без ассемблирования библиотеки в объектный код и подгрузки его уже в таком виде? Очень не хочется к конкретным адресам привязываться, так удобно по меткам вызывать процедуры... :( уже и кода-то дописать немного осталось....

jerri
04.09.2016, 17:23
1. Используй кросс-ассм - SJasm PASMo итд
2. Используй AlAsm - там памяти под метки много больше

в свое время проект Walker был перенесен в AlAsm по той же причине.

Reobne
04.09.2016, 18:13
STD, Попробуй мельче разбить. Если библиотека большая - как нибудь её пополам поделить. Или если основной текст большой, то из него ещё в одну новую библиотеку отщипнуть.

Rubts0FF
08.09.2016, 19:03
Пишу свою прогу в ZXASM

Здесь проще ответить мне. Создай файл содержащий только INCLUDE, так сказать PROJECT File, например:
Include "file1"
Include "file2"
тогда весь оставшийся буфер будет использоваться под таблицу меток. Можно еще изменить, уменьшить, размеры буферов для INCLUDE, MAKE, MACRO.

STD
09.09.2016, 07:43
Спасибо всем за ответы, вырезал кусок основной программы во вторую "bib02", стер часть комментов (предварительно распечатав текст), заработало. Более глобально в связи с этим менять пока ничего не буду, тк собственно с программированием на 98% закончил, теперь прогу контентом наполнять надо :). А это память именно под метки кончилась? Ничего я крут, сколько кода наметил... :))

Rubts0FF
09.09.2016, 09:14
А это память именно под метки кончилась?
Там одно адресное пространство, текст и метки, где-то 30000 байт. В начале идет исходный текст, сверху вниз растет таблица меток, при ассемблировании. Когда приближается к тексту - Not enough memory. До сегодняшнего дня от этого страдал только я, ну мы с Костей Афендиковым. Решили этот вопрос введением слота для подгрузки пп., т.н. - overlays. Наверное поэтому никогда и не было попыток растащить таблицу по другим страницам.

STD
09.09.2016, 18:25
Понятно. Все равно, даже не смотря на такие некоторые трудности, я считаю ZXASM великолепной вещью для ZX. Влюбился в него сразу, как только первый раз увидел в приложении к ZX FORMAT..
А когда includ'ами грузишь, он сначала один загрузит, отассеблирует, потом на этоже место второй и тд...? Те можно написать текста килобайт на 100 и он это все кучкой последовательно отассемблирует, если места под метки хватит?

Rubts0FF
09.09.2016, 20:37
я считаю ZXASM великолепной вещью для ZX. Влюбился в него сразу, как только первый раз увидел в приложении к ZX FORMAT..
Спасибо, представляешь, я тоже так считаю.:-)

А когда includ'ами грузишь, он сначала один загрузит, отассеблирует, потом на этоже место второй и тд...?
Нет, файл открывается на последовательное чтение, размер буфера задается в настройках - INLCLUDE Buff, минимальный 256 байт-сектор.
В случае INSERT файл открывается на чтение, только если идет компиляция в файл (MAKE "filename"). Если в память, на первом проходе проверяется наличие файла и его размер, на втором считывание в память, по текущему адресу компиляции.