User Tag List

Показано с 1 по 10 из 20

Тема: Ремонт: ошибки ОПТС

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Ремонт: ошибки ОПТС

    загрузка ОПТС и обработка Fkeys
    ОПТС 1.1 и ОПТС2 отличаются ...

    ОПТС 1.1

    стартуем в конфгурации 0 (ROM 0000..37ff)

    инициализация PPI1A
    инициализация PPI2A
    инициализация TMR

    проверка нажатия F1-F5, если нажато то пропускаем тесты (переходим на _Fast_F_RUN)

    0xC9 -> 0xF5FD (F3+Reset addr)

    выключаем LUT (все цвета в 0)

    проверяем PPI2A (бегущая 1 в порту A)
    если ошибка то начинаем пикать бесконечно (бип бип бип)

    проверка ACZU
    если ошибка то начинаем пикать бесконечно (бип бип бип)

    ACZU в порядке, используем его как стек.

    очищаем GZU, заливаем его цветом 1 (синий)
    включаем отображение ( все ACZU белые, прафика каждая своим цветом)

    стек в конец ACZU (ld sp,0xffff)
    выводим надпись 'ОПТС 1.1'
    BEEP

    конфгурации 14 (ROM 0000..5fff)
    считаем контрольную сумму (просто сумируется ПЗУ в байт,) должно быть =0
    если ошибка то пикаем 5 раз и выводим "Системный блок неисправен"

    неразрушающие тест RAM
    конфгурации 14 (RAM 2000..f7ff)
    если ошибка то пикаем 5 раз и выводим "Системный блок неисправен"

    тесты прошли без ошибки,
    эмитируем что небыли нажаты.

    _Fast_F_RUN:

    скопируем дефолтные значения системных переменных.
    инициализация LAN
    определяем номер РМУ
    инициализация PIC

    установка флага наличия FDD

    RAM:0490 ; Read from PIT, INT7 should be 1 if fdd exist
    RAM:0490 ;
    RAM:0490 3E 21 ld a, _DS0|_MOTOR
    RAM:0492 32 39 FB ld (_1C_PPI1B_DrvReg), a
    RAM:0495 ;
    RAM:0495 7E ld a, (hl)
    RAM:0496 E6 80 and 80h ; 'Ç'
    RAM:0498 CA 9C 04 jp z, no_FDD_Detected
    RAM:049B 2F cpl
    RAM:049C no_FDD_Detected:
    RAM:049C 32 01 F7 ld (FDDFLAG), a


    если в процессе загрузки не нажаты F1..F5 то если подключен ExtROM загрузка из него.

    F1
    - если сетевой номер != 0 то загрузка бейсика
    F1F5:
    - если не найден FDD (via FDDFLAG) то загрузка бейсика

    - включаем мотор, ждем готовности FDC некоторое время
    если нет готовности, то загрузка бейсика

    - пробуем прочитать 1 сектор с 0й дорожке в режиме Double Density, если ок проверка CRC
    - пробуем прочитать 1 сектор с 0й дорожке в режиме Single Density, если не ок то загрузка бейсика

    - проверка СRC и если не совпала то зангрузка бейсика
    иначе если всё ок то запускаем диск.

    F2
    - проверяем наличие EXTROM
    ppi2.c.7=0
    проверяем что в PIC стоит запрос на прерывание 1
    если нет то ошибка наличия ExtROM
    то если была нажата F2+Reset то выводим
    "Подключите внешнее ПЗУ"
    иначе заргрузка бейсика.
    т.е. если ничего небыло нажато, то пробуем загрузится из
    ПЗУ если оно есть.
    иначе загрузка EXTROM (см отдельную тему)

    F3
    - call 0xF5FD
    - jp StartTestLS
    если программа записала в 0xF5FD jmp на себя то можно рестартовать в нее по F3+Reset
    сейчас знаю тольк FORTHBAS.CCC у которого это используется.

    F4 - сразу загрузка бейсика

    F5 - пробуем загрузиться с FDD без проверки номера РМУ (JP F1F5
    [свернуть]


    ОПТС2.0


    зато сразу включаем отображение ( все ACZU белые, прафика каждая своим цветом)
    поэтому на экране видны следы теста ACZU

    проверка ACZU
    если ошибка то начинаем пикать бесконечно (бип бип бип)

    ACZU в порядке, используем его как стек.

    очищаем GZU, заливаем его цветом 1 (синий)

    стек в конец ACZU (ld sp,0xffff)
    выводим надпись 'ОПТС 2.0'
    BEEP

    проверяем PPI3A EXTROM вместо PPI2A (бегущая 1 в порту A)
    если ошибка то на экране "Ошибка ШИНЫ" + 5beep

    конфгурации 14 (ROM 0000..5fff)
    считаем контрольную сумму (просто сумируется ПЗУ в байт,) должно быть =0
    если ошибка то на экране "Ошибка ПЗУ" + 5beep


    очищаем GZU, заливаем его цветом 1 (синий)

    тест RAM
    конфгурации 14 (RAM 2000..f7ff)
    если ошибка то на экране "Ошибка ОЗУ" + 5beep

    0xC9 -> 0xF5FD (F3+Reset addr)

    тесты прошли без ошибки,
    эмитируем что небыли нажаты.

    _Fast_F_RUN:

    скопируем дефолтные значения системных переменных.
    инициализация LAN
    определяем номер РМУ
    инициализация PIC

    определим размер GZU (кол-во страниц) (FDDFLAG=0x80 если 192к гзу)
    быстрый тест GZU
    если ошибка то на экране "Ошибка ГЗУ" + 5beep

    установка флага наличия FDD

    RAM:0490 ; Read from PIT, INT7 should be 1 if fdd exist
    RAM:0490 ;
    RAM:0490 3E 21 ld a, _DS0|_MOTOR
    RAM:0492 32 39 FB ld (_1C_PPI1B_DrvReg), a
    RAM:0495 ;
    RAM:0495 7E ld a, (hl)
    RAM:0496 E6 80 and 80h ; 'Ç'
    RAM:0498 CA 9C 04 jp z, no_FDD_Detected
    RAM:049B 2F cpl
    RAM:049C no_FDD_Detected:
    RAM:049C 32 01 F7 ld (FDDFLAG), a


    если в процессе загрузки не нажаты F1..F5 то если подключен ExtROM загрузка из него.

    F1
    - если сетевой номер != 0 то загрузка бейсика
    F1F5:
    - если не найден FDD (via FDDFLAG) то загрузка бейсика

    - включаем мотор, ждем готовности FDC некоторое время
    если нет готовности, то загрузка бейсика

    - пробуем прочитать 1 сектор с 0й дорожке в режиме Double Density, если ок проверка CRC
    - пробуем прочитать 1 сектор с 0й дорожке в режиме Single Density, если не ок то загрузка бейсика

    - проверка СRC и если не совпала то зангрузка бейсика
    иначе если всё ок то запускаем диск.

    F2
    - очистка экрана
    - проверяем наличие EXTROM
    ppi2.c.7=0
    проверяем что в PIC стоит запрос на прерывание 1
    если нет то ошибка наличия ExtROM
    то если была нажата F2+Reset то выводим
    "Нет внешнего ПЗУ"
    иначе заргрузка бейсика.
    т.е. если ничего небыло нажато, то пробуем загрузится из
    ПЗУ если оно есть.
    иначе загрузка EXTROM (см отдельную тему)

    F3
    - call 0xF5FD
    если программа записала в 0xF5FD jmp на себя то можно рестартовать в нее по F3+Reset
    сейчас знаю тольк FORTHBAS.CCC у которого это используется.

    F4 - сразу загрузка бейсика

    F5 - пробуем загрузиться с FDD без проверки номера РМУ (JP F1F5

    [свернуть]
    Последний раз редактировалось esl; 25.04.2015 в 20:36. Причина: делает ПИК ПИК при ошибке ГЗУ

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

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

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

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

Похожие темы

  1. Ответов: 7
    Последнее: 15.05.2017, 22:58
  2. Ошибки в документации на Z80
    от Lisitsin в разделе Софт
    Ответов: 12
    Последнее: 25.02.2011, 19:49
  3. Ошибки(глюки) в TR-DOS
    от DDp в разделе Оси
    Ответов: 0
    Последнее: 08.03.2009, 14:55
  4. Ремонт 48К
    от Иван в разделе Несортированное железо
    Ответов: 6
    Последнее: 19.03.2007, 15:13
  5. Ошибки в схеме Ленинград-1?
    от Elya в разделе Ленинград
    Ответов: 4
    Последнее: 09.11.2005, 08:59

Ваши права

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