PDA

Просмотр полной версии : Как скомпилировать длинную Basic-прогу?



Jukov
13.09.2006, 15:10
Необходимо скомпилировать файл длиной 13Кб. Попробовал tobos'ом, но ему не хватает памяти. Слышал, что он как-то может компилировать в сам бэйсик файл. Но как это сделать? Или лучше использовать другой компилятор. Дробных чисел в программе нет. Но есть вызовы маш.кода.

Sinus
16.09.2006, 18:28
не хочу обмануть, но имхо было 2 версии тобоса, которай компилила что есть в памяти, и вторая которая компилила файл.

...или это ода и та же делала... или вообще не делала ;)
честно говоря последний раз видел тобос в году 1995 ;)

но кстати, если у тебя нет дробнах чисел, то наверное нет смысла использовать тобос. есть же куча целочисленных компиляторов (правда не смог вспомнить ни одного названия)

и ещё меня смущает вот это - "Но есть вызовы маш.кода."
мне кажется что если процедура в коде как-нибудь влияла на васик, то после компайла это всё работать не будет.

Southern Bear
16.09.2006, 18:50
Или лучше использовать другой компилятор.
Лучше перенести как можно большую часть программы в маш-код. И васика меньше будет и шустродействие повысится.

TomCaT
17.09.2006, 14:41
но кстати, если у тебя нет дробнах чисел, то наверное нет смысла использовать тобос. есть же куча целочисленных компиляторов (правда не смог вспомнить ни одного названия)

Из "Как написать игру", книга 1, гл. 9, с.178


"...тем более, что существует расширенная дисковая версия компилятора MCoder2 -- MC2b.v4 насколько нам известно, единственная, ибо дисковые версии прочих компиляторов по сути таковыми не являются, так как программа все равно может быть оттранслирована только из памяти. Кроме того, MC2b.v4, в отличие от прочих своих собратьев, создает совершенно независимый от компилятора объектный код, что несколько упрощает компоновку конечного продукта, а главное, -- освобождает дополнительную память для размещения фонтов, спрайтов, подпрограмм, в машинных кодах и прочих нужд. Версия MC2b.v4 имеет еще ряд существенных улучшений и дополнений... программа эта написана одним из соавторов Александром Евдокимовым

gRAVER_ZX
07.10.2006, 13:21
я на своем реальном спектруме, когда программировал в бейсике, компилировал свои проги в Delphin'е.

с ним работать достаточно просто, располагается в памяти с адреса 40000, а скомпилированная программа - с 53100, но могу и наврать (не помню уже, когда им последний раз пользовался, лет пять назад, наверно).

в свою бейсик прогу я добавлял такие строки

9990 randomize usr 40000
9999 randomize usr 53100

соответственно сначала я компилирую прогу командой run 9990
а потом запускаю - run 9999

то есть если бейсик-область в памяти распологается с адреса примерно 26000, а сам компилятор - с 40000. то процентов 99, что твоя длинная прога скомпилируется. вопрос в другом, найдешь ли ты сейчас компилятор delphin.

Jukov
07.10.2006, 19:32
Найден альтернативный выход - всё, что тормозило, теперь написано в кодах.

TomCaT
09.10.2006, 09:40
Вот это лучший компилятор! :v2_yahoo: Ручная работа.

jim
09.10.2006, 10:35
как вариант: можно попробовать разбить бейсик-программу на отдельные подпрограммы и скомпилировать их отдельно. если компилятор позволяет, расположить их впритирку друг за другом (обычно скомпилированный код располагается сразу над RAMTOP-ом). а основную программу скомпировать в последнюю очередь. проблема будет только в передаче переменных процедурам, что можно решить, используя PEEK и POKE.