Модифицированный заголовок C64 PRG BASIC?

Недавно я купил c64 mini и пытался закодировать сборку с помощью Turbo Macro Pro v1.2.

Во время работы над программой hello world я нашел учебник, в котором использовался заголовок автозапуска BASIC.

Я попытался также включить PRINT CHR$(147) для очистки экрана, но получаю сообщение OUT OF MEMORY ERROR.

исходный заголовок BASIC был:

*=$0801
.byte $0c, $08, $0a, $00, $9e, $20
.byte $34, $30, $39, $36, $00, $00
.byte $00

Я изменил его на:

*=$0801
.byte $0e, $08, $0a, $00, $99, $20
.byte $c7, $28, $31, $34, $37, $29
.byte $00, 
.byte $19, $08, $14, $00, $9e, $20
.byte $34, $30, $39, $36, $00, $00
.byte $00

Когда я собираю и запускаю из TMP, а затем набираю LIST, я получаю

10 PRINT CHR$(147)
20 SYS 4096

Но при запуске я получаю сообщение OUT OF MEMORY ERROR в строке 10.

Я делаю что-то неправильно? Или действительно не хватает памяти для этой инструкции?

TMP по-прежнему загружается в память в фоновом режиме. В настоящее время я запускаю это в VICE.


person Dacobi    schedule 24.08.2019    source источник
comment
Непонятно, что такое TMP. Это весь ваш код? У вас установлен адрес загрузки для вашего PRG? Похоже, что CHR$ пытается выделить новую строку и терпит неудачу, потому что считает, что свободной памяти не осталось.   -  person Jester    schedule 25.08.2019
comment
Извините, TMP — это Turbo Macro Pro v1.2. В полном коде у меня есть ассемблерный код *=$1000. но если ОСНОВНАЯ строка 10 SYS 4096, я не получаю ОШИБКУ НЕДОСТАТОЧНОЙ ПАМЯТИ.   -  person Dacobi    schedule 25.08.2019
comment
Оказывается, если я соберу на диск, а затем перезапущу и запущу с диска, все будет работать нормально, поэтому, должно быть, проблема с памятью в TMP. Я просто не понимаю, что.   -  person Dacobi    schedule 25.08.2019


Ответы (1)


Я предполагаю, что TMP выделяет всю память, которую он может, для таблиц поиска, промежуточного кода и т. д. Последнее, что он хочет, это чтобы BASIC все испортил, и поэтому он укажет верхнюю часть памяти BASIC в безопасное место. Распределяемая память BASIC находится в указателях 43-44 и 55-56, указывающих на начало/конец памяти BASIC. Обычно они составляют от 0801 до 000 долларов, но я предполагаю, что TMP устанавливает их иначе.

person Mike    schedule 14.09.2019