User Tag List

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

Тема: Реверс-инжиниринг УКНЦ (1515ХМ1&2, 1801ВП1, 1801ВМ2)

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

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

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    485
    Спасибо Благодарностей отдано 
    140
    Спасибо Благодарностей получено 
    392
    Поблагодарили
    147 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Есть в УКНЦ особенности работы с прерываниями на аппаратном уровне в некоторых микросхемах.
    А можно поподробнее что было дальше: возникло прерывание, регистр 0177702 не считали, вышли в RT-11... А вектор восстановили? Бит разрешения прерывания дергали?
    Вектор восстановлен. Ничего не дергалось. Процесс был запущен как-обычно в диспетчере процессов ПП, прерывание там рядом переназначено. После возникновения прерывания был выход с него (тупо inc KeyDwn; rti). Далее в диспетчере задач по дохождению до кода было видно что что-то нажали, был выход из диспетчера и затем ЦП давал команду на очистку памяти ПП. Вообщем обычное дело.
    Ну так вот - если не делать считывание из ячейки по возникновению прерывания - затем блокировались например .ttyin (висело в бесконечном цикле) в ЦП. Нажатия клавиш тоже не слышно было.

    Помогло в прерывании тупо сделать считывание с ячейки (пометка что вызвалось нажатие клавиши как и раньше оставалась) и rti потом. Без считывания с ячейки происходил факап какой-то.
    Я делал это в соседней теме про косичку от Manwe для БК-0010 чтобы по возникновению прерывания тупо выйти из всего в RT-11. Вот без считывания выходит "косячно". Если в прерывании считывать адрес - выходит нормально.

    Вот такой код прокатил:
    Код:
    ; 'keyboard' interrupt
    INTKB1:	mov	R0, -(SP)
    	mov	@#177702, R0
    	; TODO: change drawing variables in CPU from pressed keys
    	inc	KEYPR0
    	mov	(SP)+, R0
    	rti
    Закомментировав строку с mov @#177702.. - уже не прокатывает.

    Правда есть момент - я не менял ВЕСЬ вектор. Только адрес прерывания, и восстанавливал его также. Но думается это иррелевантно что там в PS проца запишется, как и раньше оставалось-же.

    Весь код (он большой конечно и может быть там косяки?) где-то тут: https://raw.githubusercontent.com/bl...ter/kosich.mac
    Но сама рисовка там в ЦПУ ничего не портит. А в ПП достаточно закомментить считывание по прерыванию из 177702 и после выхода в RT-11 ничего больше не нажмешь.
    Последний раз редактировалось BlaireCas; 16.09.2022 в 22:11.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

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

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

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

Похожие темы

  1. Ответов: 32
    Последнее: 18.12.2024, 18:19
  2. Реверс-инжиниринг игры Boovie
    от Oleg N. Cher в разделе Программирование
    Ответов: 41
    Последнее: 09.01.2022, 23:07
  3. Реверс инжиниринг печатной платы
    от Filin в разделе Несортированное железо
    Ответов: 36
    Последнее: 11.03.2018, 22:46
  4. Куплю 1515ХМ1-6006, 1515ХМ1−6008
    от moxjemi в разделе Барахолка (архив)
    Ответов: 3
    Последнее: 10.01.2012, 17:23
  5. 1801ВМ2 А и Б
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 03.05.2010, 11:51

Ваши права

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