Спасибо, то что нужно.
Осталось выяснить, на какие адреса ссылаются переменные:
CHANS
PROG
VARS
WORKSP
STKBOT
STKEND
Спасибо, то что нужно.
Осталось выяснить, на какие адреса ссылаются переменные:
CHANS
PROG
VARS
WORKSP
STKBOT
STKEND
При сбросе эти переменные одинаковые (в 16К и 48К). К конкретной программе надо выяснять значения отдельно..
Когда есть, но не знаешь где - это все равно, что нету.
А можно узнать содержимое этих переменных? А то реальный Спектрум я увижу не ранее, чем через неделю. А в литературе как назло нет.
А чем плох, допустим, spectaculator? Загрузите в него свою программу и сравнивайте значение нужных вам переменных, со значениями после сброса (до загрузки)!?
----
Короче, кинул архив с дампами памяти после ресета для 16 и 48 килобайт в виде файлов для эмулятора, на диске (trd) и ленте (tap) - изучайте!
Последний раз редактировалось null_device; 03.10.2015 в 13:41.
Когда есть, но не знаешь где - это все равно, что нету.
У меня почему-то в лучшем случае рестарт после загрузки.
Начальный адрес 23552?
Данные файлы содержат участок памяти с переменными ZX ОС. Если грузить их по их настояшему местоположению (23552), то комп зависнет, или сбросится. Попробуйте набрать такую мини программу:
Скрытый текст
вводя числа в интервале 23552-23733 будут выводиться: номер смежных ячейки, значения для 16К и 48К модели, а ниже значения для двухбайтовых переменных.Код:1 clear 29999 2 load "16k" code 30000 3 load "48k" code 40000 4 input i 5 print i;"_";peek (3e4+(i-23552));"_";peek(4e4+(i-23552)) 6 print 7 print i+1;"_";peek (3e4+(i-23551));"_";peek(4e4+(i-23551)) 8 print 9 print peek (3e4+(i-23552))+256*peek((3e4+(i-23551));"_";peek(4e4+(i-23552))+256*peek((4e4+(i-23551) 10 goto 4[свернуть]
Когда есть, но не знаешь где - это все равно, что нету.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
При сбросе ОС ищет последнюю рабочую ячейку (появляются и исчезают красные полосы на экране при тестировании ячеек памяти) и запоминает ее в p_ramt.
Затем нужные ей области памяти, которые она привыкла располагать в конце ОЗУ, она и отсчитывает от этой переменной. Они уже перечислены выше null_device:
err_sp - стек при ошибке,
еще тут где-то есть стек GO SUB, но спец. переменной начала у него нет(?), во всяком случае он заканчивается как раз по адресу RAMTOP,
собственно ramtop, задаваемый командой CLEAR - последняя ячейка ДЛЯ ОС,
udg символы пользовательской графики, которые после сброса ОС располагает за RAMTOP.
Вот все эти переменные и будут после сброса отличаться для 16к и 48к моделей.
А значения других переменных, ну, и этих тоже, так или иначе можно выписать, хотя не знаю, зачем, они на разных моделях действительно разные, ОС может найти устройства типа Microdrive или Interface II и вдруг взять поднять все адреса для BASIC-программы, переменных и т.п. выше... TR-DOS ПЗУ тоже так делает, поэтому их полезно помнить для своей привычной рабочей модели, а закладываться на них на будущее - из-за этого куча релизов не универсальны в работе, там загрузятся, а тут нет.
---------- Post added at 20:07 ---------- Previous post was at 19:48 ----------
Вот базовый список областей и соотв. ОС-переменных для 16к и 48к, за которыми надо следить:
Код:Hex Dec Назначение 2B переменная Hex Dec 4000 16384 экран --- 5B00 23296 буфер печати(уст.) --- 5C00 23552 ОС-переменные --- 5CB6 23734 зона динамической памяти 5CB6 5CB6 карты микродрайвов(если они есть) --- --- --- инормационные каналы CHANS 5C4F 23631 --- --- Бейсик-программа PROG 5C53 23635 --- --- Бейсик-переменные VARS 5C4B 23627 --- --- редактируемая строка ELINE 5C59 23641 --- --- временная рабочая область WORKS 5C61 23649 --- --- стек вычислителя STKBOT 5C63 23651 --- --- "куча", резерв ОС STKEND 5C65 23653 --- --- стек а вот нет переменной, начинается от адреса регистра SP Z80 --- --- Бейсик-стек (GO SUB -стек) ERR_SP+2 5C3D 23613 --- --- конец памяти ОС RAMTOP 5CB2 23730 --- --- конец памяти PRAMT 5CB4 23732
Последний раз редактировалось TomCaT; 11.09.2010 в 20:46.
Помни. Только на компьютере можно семь раз Cut, а один - Format. В реале все иначе. (c)
Власть людей сильнее, чем люди у власти.
Чем меньше мы смотрим на мир, тем больше задумываемся о нем. (c)
Скрытый текст
Can you help Robin in his quest for the silver arrow? (c) Odin "Robin of the Wood"
Мы все немного режем по дереву, а потом собираем корабли в бутылках.
Is it the same old story you are going to tell me
or is it the old story telling me and you we are the same?
http://www.sky.od.ua/~ptsk[свернуть]
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)