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

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 13

Тема: Что происходит при старте бейсика (48)

  1. #1
    Master
    Регистрация
    05.09.2010
    Адрес
    г. Рязань
    Сообщений
    694
    Благодарностей: 283
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Что происходит при старте бейсика (48)

    Всем доброго времени.
    Я вот тут интересуюсь, а что происходит при старте BASICа? Сначала я знаю: загрузка ОЗУ под завязку числом 02. Потом какой-то хитрый алгоритм, обнуляющий ОЗУ, но уже в обратном направлении. А потом что?
    Может меня кто просветить на эту тему? Есть замедленное видео:
    http://dl.dropbox.com/u/12408899/Sta...1%80%D1%82.zip
    И после чего должно появиться основное сообщение?

    Спасибо !!!

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

  3. #2
    Veteran Аватар для Лас
    Регистрация
    18.11.2008
    Адрес
    пос.Полярный, ЯНАО
    Сообщений
    1,077
    Благодарностей: 784
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Программа в ПЗУ SOS с адреса 0000h:
    - запрещаются прерывания;
    - в порт feh отправляется значение 07h;
    - регистр вектора прерываний устанавливается в 3fh;
    - память с ffffh по 4000h (включит.) последовательно от старших адресов к младшим заполняется байтом со значением 02h;
    -затем последовательно, от младших адресов к старшим, тестируется каждая ячейка памяти на исправность: ранее записанное содержимое ячейки памяти уменьшается на 1 (в исправной ячейке было 02h, стало 01h) и в случае если неожиданно в этой ячейке вместо 01h окажется 00h - тест на этом заканчивается, иначе содержимое ячейки памяти уменьшается еще на 1 (в исправной ячейке было 01h, стало 00h)и если вдруг в этой ячейке окажется не ноль, тест на этом заканчивается, иначе ячейка считается исправной и тест переходит к следующей ячейке;
    - тест продолжается до конца памяти или до первой встреченной сбойной ячейки;
    - адрес последней исправной ячейки памяти записывается в системные переменные бейсика;
    - устанавливаются некоторые другие системные переменные;
    - если выполняется 'сброс', а не команда 'new', то из ПЗУ в ОЗУ копируется a8h байт UDG-графики (копируется в область последней исправной ячейки от старших адресов к младшим, начиная с этой ячейки);
    - устанавливается соответствующая системная переменная, которая указывает на эту область и устанавливаются некоторые другие переменные;
    -устанавливается стек на свободную область в ОЗУ (перед областью UDG);
    - устанавливаются некоторые системные переменные;
    - режим прерываний устанавливается в 1;
    - инициализируются переменные клавиатуры, переменные каналов и потоков, переменные принтера;
    - инициализируются переменные экрана и производится очистка экрана;
    - выполняется печать © 1982 Sinclair Research Ltd;
    - ожидается прием команд с клавиатуры.

    NB! Команда new выполняется несколько иначе.

  4. Эти 4 пользователя(ей) поблагодарили Лас за это полезное сообщение:
    John North (11.10.2010), leks (11.10.2010), Lisitsin (21.10.2010), SoftLight (11.10.2010)

  5. #3
    Master
    Регистрация
    05.09.2010
    Адрес
    г. Рязань
    Сообщений
    694
    Благодарностей: 283
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Гениально!
    Вот у меня вроде бы всё происходит нормально до установки режима прерывания 1. Но потом начинает происходить что-то странное: весь экран заполняется вертикальными полосками, на их фоне появляются некоторые левые атрибуты и система рестартунт заново - т. е. опять красные вертикальные полоски и т. д.
    Пытаюсь я отследить всё это дело,но что-то плохо у меня получается понять где у меня эмулятор сбоит.
    Последний раз редактировалось Lisitsin; 28.05.2014 в 07:11.

  6. #4
    Master
    Регистрация
    05.09.2010
    Адрес
    г. Рязань
    Сообщений
    694
    Благодарностей: 283
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Справа после ";" зелёным цветом пытаюсь отрисовать стек, сообщение типа 09 C3 7E = это у меня счётчик машинных циклов M1.
    Ну так вот, участок программы с адреса 0adc что-то у меня повторяется и не один раз. Вот я и хотел бы знать что это за подпрограмма и за что отвечает. Ещё хочу знать где можно поставить мне точки останова и что можно посмотреть для контроля правильности работы эмулятора. И ещё хочу знать в какой области памяти начинает крутиться программа после выведения сообщения © 1982 Sinclair Research Ltd
    СПАСИБО !!!
    Последний раз редактировалось Lisitsin; 21.10.2010 в 23:03.

  7. #5
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    9,848
    Благодарностей: 3337
    Записей в дневнике
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

  8. Этот пользователь поблагодарил goodboy за это полезное сообщение:
    Lisitsin (21.10.2010)

  9. #6
    Master
    Регистрация
    05.09.2010
    Адрес
    г. Рязань
    Сообщений
    694
    Благодарностей: 283
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот именно !!!! То, что мне и было нужно !!!!!!!!!!!

  10. #7
    Veteran Аватар для Лас
    Регистрация
    18.11.2008
    Адрес
    пос.Полярный, ЯНАО
    Сообщений
    1,077
    Благодарностей: 784
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Лисицын Василий Николаеви Посмотреть сообщение
    Вот именно !!!! То, что мне и было нужно !!!!!!!!!!!
    Spectrum Rom Disassembling.zip
    В виде html, где подпрограммы ПЗУ в виде ссылок, по которым можно перемещаться.

  11. Эти 3 пользователя(ей) поблагодарили Лас за это полезное сообщение:
    Lisitsin (23.10.2010), Urguk (06.07.2013)

  12. #8
    Master
    Регистрация
    05.09.2010
    Адрес
    г. Рязань
    Сообщений
    694
    Благодарностей: 283
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    п о м о г и т е ! ! !

    В смысле всем доброго времени суток. Нуждаюсь в профессиональной консультации. Заранее благодарен.
    Пытаюсь эмулироваться дальше. Софт начинает печатать (c) 1982 Sinclair Research Ltd начиная с символа (с) из корректной области графики символов ((3FF8)=3C), но не на экран, а в область памяти принтера (подпрограмма PO-MSG). Дело в том, что бит 1 переменной FLAGS у меня установлен в 1, что говорит о том, что используется принтер. А экран устанавливается подпрограммой 'CHANNEL 'S' FLAG', но при инициализации я в неё не попадаю.
    Кто может подсказать, в какой момент инициализации это должно происходить и кто эту подпрограмму вызывает?
    Аминь.

  13. #9
    Veteran Аватар для Vadim
    Регистрация
    24.07.2008
    Адрес
    Курган
    Сообщений
    1,809
    Благодарностей: 375
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Лисицын Василий Николаеви Посмотреть сообщение
    skipped
    Пытаюсь эмулироваться дальше. Софт начинает печатать (c) 1982 Sinclair Research Ltd
    skipped

    Подозреваю, что проблемы из-за неточной эмуляции Z-80. Поищите инфу о флагах, как они себя ведут при разных командах (недокументированные возможности). Кое-что было в описании к эмулю z80, есть в инетах. Доков куча. Я много читал, сейчас даже не помню где это все взять, т.к. эмуляцией не был обеспокоен. На форуме также была подобная инфа.

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

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  14. #10
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    9,619
    Благодарностей: 3892
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    weiv, эмулятор не софтверный, а аппаратный, с логами кагбэ напряженка.
    Scorpion ZS 1024 turbo+/ZXMC 2.6/SD-HDD/FDD/AT-Keyb/Mouse/SMUC 2.0/ProfROMse/VGA 3.0/NeoGS
    ZX-Evolution 4096 rev.B

    Сайт с документацией к "Scorpion ZS 256"

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Диалекты Бейсика для ZX Spectrum
    от NUK в разделе Пресса
    Ответов: 6
    Последнее: 03.11.2009, 23:30
  2. Проверка 128k из Бейсика
    от AlexFantasy в разделе Unsorted
    Ответов: 1
    Последнее: 22.06.2008, 19:42
  3. Операторы бейсика. Сколько тактов?
    от captain cobalt в разделе Программирование
    Ответов: 20
    Последнее: 20.12.2007, 18:07

Ваши права

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