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

User Tag List

Страница 5 из 10 ПерваяПервая 123456789 ... ПоследняяПоследняя
Показано с 41 по 50 из 97

Тема: Вопросы программирования на ПЭВМ "ИРИША", "ИРИША-Л" и "ИРИША-М"

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

    По умолчанию

    hlt - это таки останов

    пишу как помню, справочника под рукой нет, но гуру поправят

    если прерывания запрещены - то процессор навсегда остается на этом адресе

    если разрешены, то висит до возникновения прерывания а после переходит на следующую команду после возникновения? или обработки?.

  2. #42
    Guru
    Регистрация
    26.02.2010
    Адрес
    Запорожье
    Сообщений
    2,171
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    если прерывания запрещены - то процессор навсегда остается на этом адресе

    если разрешены, то висит до возникновения прерывания а после переходит на следующую команду после возникновения? или обработки?.
    гуру (?) поправят, только вот кто это делал практически?

    теоретически тут надо вспомнить о контроллере прерываний.

    ВН59 должен дергать INT и потом отдавать 3 байта - CD ХХ ХХ тобишь CALL XXXXh.

    А вот выход из прерывания? Если не выполнять комманду RET а заканчиват процедуру коммандой HLT то растущий стек потрет остальное ОЗУ. А если выполнять RET ? Куда мы попадаем ?
    .

  3. #43
    Veteran Аватар для KokaF77
    Регистрация
    22.09.2010
    Адрес
    Крымск
    Сообщений
    1,151
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Из состояния останова микропроцессор выводится следующими способами:
    1. Путём подачи H-уровня на вход сброса RESET...
    2. Путём подачи H-уровня на вход прерывания INT, микропроцессор реагирует на этот сигнал только в том случае, если установлен внутренний триггер разрешения прерывания (INTE=1). ...
    Важно подчеркнуть, что в состоянии останова микропроцессор стандартным образом реагирует на сигнал HOLD запроса ПДП с формированием сигнала HLDA подтверждения ПДП для контроллера ПДП.
    стр. 47, В.Л. Григорьев, "Программное обеспечение микропроцессорных систем".

    Цитата Сообщение от Atari Посмотреть сообщение
    ВН59 должен дергать INT и потом отдавать 3 байта - CD ХХ ХХ тобишь CALL XXXXh.
    Контроллер прерываний может отдать и более короткую команду "RST i".
    В любом случае, логикой работы команд CALL и RST предусмотрено запоминание в стек "содержимого PC как адреса возврата".
    Цитата Сообщение от Atari Посмотреть сообщение
    А вот выход из прерывания?
    Цитата Сообщение от Atari Посмотреть сообщение
    А если выполнять RET ? Куда мы попадаем ?
    Вернёмся по адресу следующему за HLT.

    Вроде бы так.
    Последний раз редактировалось KokaF77; 21.11.2011 в 11:27.
    Разыскиваю всё, что связано с ПЭВМ "Ириша".

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

    По умолчанию

    угу, следующая после HLT
    на Корвете (К580+ВН59) синхронизация с обратным ходом луча - известная всем
    ei
    hlt

    только вн59 в конце обработчика надо еще послать EOI (End Of Int) - чтобы он знал что уже закончили обрабатывать прерывание.

    ---------- Post added at 10:22 ---------- Previous post was at 09:38 ----------

    Цитата Сообщение от Viktor2312 Посмотреть сообщение
    Вот например авторы пишут, что "Доступ к подпрограммам графического расширения осуществляется либо путём непосредственного обращения к соответствующим подпрограммам через таблицу входов, либо через общий вход программы CONOUT.

    Это:

    вообще не догнал, как понять?
    таблица 9.7 там есть описание ESC+G
    Код:
    "передача управления на граф. вход
    следующие ща коммандой коды - граф комманды
    комманды описаны в 9.8

    напоминают оператор DRAW в бейсике.

    идея в том, что мы можем нарисовать сложную картинку как бы одним
    вызовом CONOUT
    печатаем специальную "строку" которая описывает что рисовать
    состоит из нескольких частей
    1. ESC+G (вкл граф режим)
    2. коды комманд из 9.8
    3. T -(выкл граф режим)

    вон например кусок кода из пзу который рисует круг вокруг надписи ириша

    Код:
    RAM:00A7 _ShowLogo:                              RAM:00A7                                         
    RAM:00A7                 lxi     h, _LOGO?
    RAM:00AA                 shld    _ShapeFle
    RAM:00AD                 call    _SHAPE
    RAM:00B0                 call    ?BEEP?
    RAM:00B3                 lxi     b, __StartMusic
    RAM:00B6                 call    _MELODY
    
    RAM:00B9                 lxi     d, _Circle
    RAM:00BC                 jmp     PutString_DE
    ---------------------------------------------------------------------------
    RAM:00BF _Circle:        .db 1Bh                 ; DATA XREF: _Logo_and_inits-1786o
    RAM:00C0                 .text "G"               ; GraphLangStart
    RAM:00C1                 .text "C1"              ; Color
    RAM:00C3                 .text "P248,34"         ; Pset
    RAM:00CA                 .text "S0,0"            ; SzhatieOcr
    RAM:00CE                 .text "F0,0"            ; Ellipse
    RAM:00D2                 .text "R32"             ; Radius
    RAM:00D5                 .text "I"               ; Circle
    RAM:00D6                 .text "TT"              ; Reset ConOut
    RAM:00D8                 .db 0

  5. #45
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Viktor2312 Посмотреть сообщение
    Что-то не очень получается, что либо сделать.
    Там не всё так просто
    Когда отладчик запускает программу, или редактирует память, он считает, что ПЗУ выключено. Т.е. чтобы что-либо вызвать из ПЗУ надо его включить командами MVI A,0 / OUT 12h
    Там, однако, есть ещё один подводный камень: отладчик по умолчанию оставляет в регистре SP 100h, и если включить ПЗУ, то вернёшься чёрт знает куда. Поэтому нужно назначить стек выше 4000h.
    Стандартная точка входа в CONOUT: 2000h, код символа нужно поместить в регистр С.
    Вот пример:
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Hello.png 
Просмотров:	227 
Размер:	16.1 Кб 
ID:	30989  
    Последний раз редактировалось b2m; 21.11.2011 в 12:38.

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

    По умолчанию

    Цитата Сообщение от Viktor2312 Посмотреть сообщение
    4000: LXI H, 0A00 ; Заносим в регистровую пару HL значение 000AH
    4003: LXI D, 0A00 ; Заносим в регистровую пару DE значение 000AH
    4006: CALL 2798H ; Переходим к подпрограмме рисования точки.
    тут ошибка в записи

    должно быть
    Код:
    4000: LXI H, 000A ; Заносим в регистровую пару HL значение 000AH
    4003: LXI D, 000A ; Заносим в регистровую пару DE значение 000AH
    4006: CALL 2798H ; Переходим к подпрограмме рисования точки.

    а по делу - все правильнно, работать и не должно
    в конфигурации котроая работает сейчас - нет ПЗУ
    и CALL уходит в пустоту (и что там проиходит - фиг известно

    надо сначала включить ПЗУ, а только после этого делать вызов.

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

  8. #47
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Чтобы результаты были более предсказуемые, надо ввести команду O0,12
    Затем надо командой XS задать указатель стека, например 4100

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

    По умолчанию

    Цитата Сообщение от Viktor2312 Посмотреть сообщение
    4000: 21
    4001: 0A
    4002: 00

    4003: 11
    4004: 0A
    4005: 00

    Также и для CALL ADR у нас адрес 2798H соответственно:

    4006: CD
    4007: 98
    4008: 27
    21 0a 00 -> LXI H,000A а не LXI H,0A00
    CD 98 27 -> CALL 2798 а не CALL 9828

    по поводу остального b2m рассписал вроде.

  10. #49
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Viktor2312 Посмотреть сообщение
    То есть с этими проблемами, требованием переписи содержимого аккумулятора в порт В ППА мы сталкиваемся только в эмуляторе, а в железе всё будет работать как надо?
    В железе будет работать точно также, как и в эмуляторе

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

    По умолчанию

    Цитата Сообщение от Viktor2312 Посмотреть сообщение
    То есть с этими проблемами, требованием переписи содержимого аккумулятора в порт В ППА мы сталкиваемся только в эмуляторе, а в железе всё будет работать как надо?
    эмулятор это программная копия реального железа.
    т.е. на нем все работает как на настоящей ирише

    иначе как-бы работал биос и остальной софт, он же 100% копия оригинального

Страница 5 из 10 ПерваяПервая 123456789 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 23
    Последнее: 02.02.2023, 21:21
  2. FAQ по ПЭВМ "ИРИША", "ИРИША-Л" и "ИРИША-М"
    от Viktor2312 в разделе Ириша
    Ответов: 5
    Последнее: 04.10.2016, 02:32
  3. Ответов: 14
    Последнее: 14.11.2012, 21:53
  4. Ответов: 42
    Последнее: 15.06.2012, 07:51
  5. В помощь собирающим ПЭВМ "Ириша-М". Продажа
    от Viktor2312 в разделе Барахолка (архив)
    Ответов: 13
    Последнее: 08.06.2011, 17:30

Ваши права

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