Важная информация

User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 17 из 17

Тема: 16K RAM (НЕ 48!)

  1. #11
    Member Аватар для Helloween
    Регистрация
    09.08.2010
    Адрес
    Екатеринбург
    Сообщений
    121
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо, то что нужно.
    Осталось выяснить, на какие адреса ссылаются переменные:

    CHANS
    PROG
    VARS
    WORKSP
    STKBOT
    STKEND

  2. #12
    Guru Аватар для null_device
    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    3,099
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    При сбросе эти переменные одинаковые (в 16К и 48К). К конкретной программе надо выяснять значения отдельно..
    Когда есть, но не знаешь где - это все равно, что нету.

  3. #13
    Member Аватар для Helloween
    Регистрация
    09.08.2010
    Адрес
    Екатеринбург
    Сообщений
    121
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А можно узнать содержимое этих переменных? А то реальный Спектрум я увижу не ранее, чем через неделю. А в литературе как назло нет.

  4. #14
    Guru Аватар для null_device
    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    3,099
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А чем плох, допустим, spectaculator? Загрузите в него свою программу и сравнивайте значение нужных вам переменных, со значениями после сброса (до загрузки)!?
    ----
    Короче, кинул архив с дампами памяти после ресета для 16 и 48 килобайт в виде файлов для эмулятора, на диске (trd) и ленте (tap) - изучайте!
    Последний раз редактировалось null_device; 03.10.2015 в 13:41.
    Когда есть, но не знаешь где - это все равно, что нету.

  5. #15
    Member Аватар для Helloween
    Регистрация
    09.08.2010
    Адрес
    Екатеринбург
    Сообщений
    121
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У меня почему-то в лучшем случае рестарт после загрузки.

    Начальный адрес 23552?

  6. #16
    Guru Аватар для null_device
    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    3,099
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Данные файлы содержат участок памяти с переменными ZX ОС. Если грузить их по их настояшему местоположению (23552), то комп зависнет, или сбросится. Попробуйте набрать такую мини программу:

    Скрытый текст

    Код:
    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
    вводя числа в интервале 23552-23733 будут выводиться: номер смежных ячейки, значения для 16К и 48К модели, а ниже значения для двухбайтовых переменных.
    [свернуть]
    Когда есть, но не знаешь где - это все равно, что нету.

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Veteran Аватар для TomCaT
    Регистрация
    25.06.2005
    Адрес
    Одесса
    Сообщений
    1,795
    Спасибо Благодарностей отдано 
    54
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    При сбросе ОС ищет последнюю рабочую ячейку (появляются и исчезают красные полосы на экране при тестировании ячеек памяти) и запоминает ее в 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
    [свернуть]


Страница 2 из 2 ПерваяПервая 12

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •