User Tag List

Страница 5 из 8 ПерваяПервая 12345678 ПоследняяПоследняя
Показано с 41 по 50 из 80

Тема: Вместо HALT

Комбинированный просмотр

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

    Регистрация
    07.10.2006
    Сообщений
    1,731
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Странно, там на прерываниях висит уменьшение обратного счетчика тиков, по достижении 0 должен выходить в Бейсик. Понятия не имею, чем этому включенный ТУРБО мешает.

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

  3. #2

    Регистрация
    20.03.2007
    Адрес
    Санкт-Петербург
    Сообщений
    3,000
    Спасибо Благодарностей отдано 
    201
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Понятия не имею, чем этому включенный ТУРБО мешает.
    Значит надо и этот момент отловить. Я ж не выдумываю, что в ТУРБО комп весит намертво. Если выйти по Теневику (МОА), то крутится на инструкции L1: LD A,R; JP,PE,L1.
    МГТФ - любимый провод!
    KAY-1024(4096)/SL-4/TURBO v2010 + Nemo-FDC + Nemo-IDE (CF 4GB) + SMUC2 Rev.B RTC (HDD 1.6GB + DVD-ROM) + PROF-ROM + ZXMC2 + GENERAL SOUND 2MB + ZX-BUS_TEE + FDD 3.5' + FDD 5.25' + VGA&PAL

  4. #3

    Регистрация
    07.10.2006
    Сообщений
    1,731
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Посмотри в теневике, меняется ли содержимое регистра BC со временем. Если не меняется - что-то с турбо режимом, почему-то, если он включен, отключены прерывания.

    - - - Добавлено - - -

    Листинг кода, может, кто-то шарит в особенностях Турбо-режима Кая, разберется, почему виснет:

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


    ; CLEAR 32255 (#7DFF)

    ORG 32700
    LD C,#FE
    OUT (C),0

    LD HL,#7E00
    LD DE,#7E01
    LD BC,256
    LD (HL),#7F
    LDIR
    LD BC,500 ; время определения ошибки z80 в 1/50 секунды
    LD A,#7E
    LD I,A
    IM 2
    EI

    L1 LD A,R
    JP PE,L1
    LD BC,1

    LEND IM 1
    LD A,#3F
    LD I,A
    EI
    RET


    ORG #7F7F
    PUSH AF
    DEC BC
    LD A,B
    OR C
    JR Z,L3
    POP AF
    L2 EI
    RET
    L3 POP AF
    POP AF
    JP LEND
    [свернуть]
    Последний раз редактировалось Spectramine; 14.01.2018 в 22:37.

  5. #4

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В турборежиме может случиться так, что прерывание приходит не в любой такт, а только в такой такт, чтобы не затронуть команду LD A,R. Точно это зависит от кол-ва тактов в прерывании и от логики WAIT в турборежиме. А вообще классная тема, спасибо всем, кто высказался, открыли мне глаза на важный баг Z80!

    Правда, позанудствую немного. Мне кажется, иметь такие подпрограммы, которые проверяют, разрешены ли прерывания - это дурной тон. В любой момент исполнения программы программисту известно, запрещены прерывания или разрешены. Можно иметь две точки входа в подпрограмму, одна из которых разрешает прерывания по выходу, а другая - нет, и вызывать ту из них, которая соответствует режиму работы процессора в данный момент. Мне только в одной ситуации нужно было проверять состояние IFF2 - в обработчике NMI. Но в этот момент работа команды LD A,R не может быть нарушена, т.к. IFF1=0 и прерывания фактически запрещены.

  6. #5

    Регистрация
    07.10.2006
    Сообщений
    1,731
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    В турборежиме может случиться так, что прерывание приходит не в любой такт, а только в такой такт, чтобы не затронуть команду LD A,R. Точно это зависит от кол-ва тактов в прерывании и от логики WAIT в турборежиме. .
    Там неважно, в какой такт, лишь бы прерывание вообще происходило, тогда по истечении 10 секунд программа выйдет в бейсик. А оно, похоже, не происходит вообще, по каким-то причинам, соответственно, программа повисает насовсем.

  7. #6

    Регистрация
    20.03.2007
    Адрес
    Санкт-Петербург
    Сообщений
    3,000
    Спасибо Благодарностей отдано 
    201
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    А оно, похоже, не происходит вообще, по каким-то причинам, соответственно, программа повисает насовсем.
    Вспомнил. У меня ещё 2012-ом году отказалась работать игра Terra Cresta. У других владельцев КАЯ она тоже не заработала. Там от ссылки и далее по топику. Я так и не понял тогда, из-за чего эта проблема: то ли из-за CMOS Z80 (Z84C0020PEC, но на Фениксе работает!), то ли из-за схемы формирования /INT'а в КАЕ на ИР16. В общем, определится бы с причиной и решить эту проблему.

    - - - Добавлено - - -

    И вот отсюда и далее по топику тоже можно почитать (вроде, всё-таки, из-за процессора).
    Последний раз редактировалось SoftFelix; 16.01.2018 в 02:06.
    МГТФ - любимый провод!
    KAY-1024(4096)/SL-4/TURBO v2010 + Nemo-FDC + Nemo-IDE (CF 4GB) + SMUC2 Rev.B RTC (HDD 1.6GB + DVD-ROM) + PROF-ROM + ZXMC2 + GENERAL SOUND 2MB + ZX-BUS_TEE + FDD 3.5' + FDD 5.25' + VGA&PAL

  8. #7

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    В любой момент исполнения программы программисту известно, запрещены прерывания или разрешены.
    если у тя вся машина в твоем распоряжении то да
    а если тебе выделило какойто время некоторая многозадачная ОС то уже не совсем...

    а так функция местами полезная
    и че за бред понаписан в http://zxpress.ru/article.php?id=8963
    непонятно
    чем не устраивает элементарное двойное чтение?
    зачем было править проц
    много железа бажит или дает ложный результат при первом чтении

    - - - Добавлено - - -

    а так да
    тема внезапно стала еще интересней
    опять всплыли всякие кривые клоны
    и их кривые глюки
    про которые нигде особо и не написано...
    Последний раз редактировалось NEO SPECTRUMAN; 20.01.2018 в 01:17.

  9. #8

    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,481
    Спасибо Благодарностей отдано 
    318
    Спасибо Благодарностей получено 
    250
    Поблагодарили
    218 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    а если тебе выделило какойто время некоторая многозадачная ОС то уже не совсем...
    Много народа на Спеке работает под многозадачными ОСями...
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  10. #9

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    Много народа на Спеке работает под многозадачными ОСями...
    а з80 только в спеке будто....

  11. #10

    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,481
    Спасибо Благодарностей отдано 
    318
    Спасибо Благодарностей получено 
    250
    Поблагодарили
    218 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    а з80 только в спеке будто....
    Даже если не учитывать, что раздел называется "ZX Spectrum Software", то существует не более 1.5 штук многозадачных ОС и то в состоянии бета-версий. Ну, да SymbOS вроде как целостный продукт, но вещь сама в себе и кроме как автором ничем не поддерживается.
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

Страница 5 из 8 ПерваяПервая 12345678 ПоследняяПоследняя

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

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

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

Похожие темы

  1. HALT контроллер
    от zx_ в разделе БК-0010/0011
    Ответов: 9
    Последнее: 28.09.2018, 00:49
  2. Di:Halt 99
    от Vinnny в разделе События
    Ответов: 29
    Последнее: 13.07.2018, 19:59
  3. Di:HALT:2009
    от TmK в разделе События
    Ответов: 186
    Последнее: 11.08.2009, 14:26
  4. Di:Halt 2007 invitation
    от sq/skrju в разделе События
    Ответов: 12
    Последнее: 25.05.2007, 11:44

Ваши права

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