Ну и совсем для красоты можно .FETCH сделать сначала ибо DK может быть каким-нибудь LD который часто не загружают.
Вид для печати
Ну и совсем для красоты можно .FETCH сделать сначала ибо DK может быть каким-нибудь LD который часто не загружают.
Зачем? .FETCH отлично вызывается поверх загруженного драйвера - просто будет как ноп. Размер тоже не нужен - после выполнения .FETCH в R0 вернется первый свободный адрес после драйвера (если драйвер до этого был загружен - вернется адрес буфера который был указан в .FETCH).
Хватать всю память не надо - .FETCH можно натравливать на то, что за пределами топа программы. Соответственно можно либо заранее запросить память для буфера, а потом FETCH натравить на +20000 к нему, либо сделать .FETCH, а потом запросить R0+20000
- - - Добавлено - - -
Ну и в общем случае, в качестве начала буферов и тому подобного лучше использовать не метку в конце программы, а значение из @#50 или директивы .LIMIT - тогда программа будет по прежнему работать даже если из нее вызвать подпрограмму какую-нибудь библиотечную :)
А если для сокращения размеров занимаемой прогой памяти читать из памяти и записывать в файл по одному блоку? Буфер уменьшается в 16 раз, а порядка 7 килобайт оперативы не лишние.
Здесь ничего библиотечного не вызывается, потому и так можно. Да и вопрос был про сохранение ПЗУ с адреса 140000, а для этой цели и .FETCH необязательно вызывать, можно и самому, если понадобится и с помощью LOAD загрузить. А так программа обрастёт кучей ненужных функций. Может для начинающего программиста это и нужно, чтобы изучить все макровызовы, но для такой программы это лишнее.
Да и к значению из @#50 надо вроде прибавить 2.
- - - Добавлено - - -
Да вроде на МС1201.02 даже при включенном ПЗУ с адреса 140000 остаётся ещё 40 КБайт ОЗУ. Как же его так можно загрузить, что и 9 КБайт не будет хватать?
56 килобайт всего в наличии, из которых 8 килобайт поставленное ПЗУ - итого 48 всего-то остается. Сколько ест операционка, не знаю, но если прога 10 килобайт, то для операционки с дровами остается 38.