Просмотр полной версии : Кончилась память в ZXASM :(
Хорошего воскресенья всем!
Пишу свою прогу в ZXASM, текст состоит их двух частей: непосредственно набираемый файл и в конце него с диска командой include подгружаю библиотечный файл с разными процедурами. И вот хотя кода всего генериется на 3,5 килобайта, при подгрузке библиотеки асм стал выдавать "Not enough memory". Я чето думал, что если часть исходника вынести в файлы и грузить их includ'ами, то можно будет наассемблировать хоть 30 кб кода, а тут...
Кто знает, можно ли как-то это побороть без ассемблирования библиотеки в объектный код и подгрузки его уже в таком виде? Очень не хочется к конкретным адресам привязываться, так удобно по меткам вызывать процедуры... :( уже и кода-то дописать немного осталось....
1. Используй кросс-ассм - SJasm PASMo итд
2. Используй AlAsm - там памяти под метки много больше
в свое время проект Walker был перенесен в AlAsm по той же причине.
STD, Попробуй мельче разбить. Если библиотека большая - как нибудь её пополам поделить. Или если основной текст большой, то из него ещё в одну новую библиотеку отщипнуть.
Rubts0FF
08.09.2016, 19:03
Пишу свою прогу в ZXASM
Здесь проще ответить мне. Создай файл содержащий только INCLUDE, так сказать PROJECT File, например:
Include "file1"
Include "file2"
тогда весь оставшийся буфер будет использоваться под таблицу меток. Можно еще изменить, уменьшить, размеры буферов для INCLUDE, MAKE, MACRO.
Спасибо всем за ответы, вырезал кусок основной программы во вторую "bib02", стер часть комментов (предварительно распечатав текст), заработало. Более глобально в связи с этим менять пока ничего не буду, тк собственно с программированием на 98% закончил, теперь прогу контентом наполнять надо :). А это память именно под метки кончилась? Ничего я крут, сколько кода наметил... :))
Rubts0FF
09.09.2016, 09:14
А это память именно под метки кончилась?
Там одно адресное пространство, текст и метки, где-то 30000 байт. В начале идет исходный текст, сверху вниз растет таблица меток, при ассемблировании. Когда приближается к тексту - Not enough memory. До сегодняшнего дня от этого страдал только я, ну мы с Костей Афендиковым. Решили этот вопрос введением слота для подгрузки пп., т.н. - overlays. Наверное поэтому никогда и не было попыток растащить таблицу по другим страницам.
Понятно. Все равно, даже не смотря на такие некоторые трудности, я считаю ZXASM великолепной вещью для ZX. Влюбился в него сразу, как только первый раз увидел в приложении к ZX FORMAT..
А когда includ'ами грузишь, он сначала один загрузит, отассеблирует, потом на этоже место второй и тд...? Те можно написать текста килобайт на 100 и он это все кучкой последовательно отассемблирует, если места под метки хватит?
Rubts0FF
09.09.2016, 20:37
я считаю ZXASM великолепной вещью для ZX. Влюбился в него сразу, как только первый раз увидел в приложении к ZX FORMAT..
Спасибо, представляешь, я тоже так считаю.:-)
А когда includ'ами грузишь, он сначала один загрузит, отассеблирует, потом на этоже место второй и тд...?
Нет, файл открывается на последовательное чтение, размер буфера задается в настройках - INLCLUDE Buff, минимальный 256 байт-сектор.
В случае INSERT файл открывается на чтение, только если идет компиляция в файл (MAKE "filename"). Если в память, на первом проходе проверяется наличие файла и его размер, на втором считывание в память, по текущему адресу компиляции.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot