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

User Tag List

Страница 2 из 8 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 80

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

  1. #11
    Master
    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    364
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    пока вы будете узнавать какая строка - она скорее всего закончится )

  2. #12
    Veteran Аватар для TomCaT
    Регистрация
    25.06.2005
    Адрес
    Одесса
    Сообщений
    1,792
    Спасибо Благодарностей отдано 
    53
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Reobne Посмотреть сообщение
    можно ведь тупо нагрузить процессор.
    Код:
      LD H,D
      LD L,E
      LD BC,3333
      LDIR
    Семь байт занимает.
    Именно что-то такое и нужно.
    Так понимаю, получается около 70000, ну, а обработчик уже тут можно вычесть...

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

    Цитата Сообщение от Titus Посмотреть сообщение
    Двухбайтник в наше время был признаком весьма плохого тона
    Совершенно верно. Даешь максимальную совместимость.
    Последний раз редактировалось TomCaT; 09.10.2017 в 19:02.
    Помни. Только на компьютере можно семь раз Cut, а один - Format. В реале все иначе. (c)
    Власть людей сильнее, чем люди у власти.
    Чем меньше мы смотрим на мир, тем больше задумываемся о нем. (c)

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

    Can you help Robin in his quest for the silver arrow? (c) Odin "Robin of the Wood"
    Мы все немного режем по дереву, а потом собираем корабли в бутылках.
    Is it the same old story you are going to tell me
    or is it the old story telling me and you we are the same?
    http://www.sky.od.ua/~ptsk
    [свернуть]


  3. #13
    Master Аватар для DenisGrachev
    Регистрация
    15.04.2011
    Адрес
    г. Новосибирск
    Сообщений
    741
    Спасибо Благодарностей отдано 
    39
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    44 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от TomCaT Посмотреть сообщение
    Именно что-то такое и нужно.
    Так понимаю, получается около 70000, ну, а обработчик уже тут можно вычесть...
    - - - Добавлено - - -
    Совершенно верно. Даешь максимальную совместимость.
    Т.е. тебе нужно ждать нужное кол-во тактов?Так бы стразу и сказал

    ld bc,нужное число тактов
    call DELAY;ждёт нужно число тактов из bc>141такта

    Код:
    ; Z80 delay routine
    ; by Jan Bobrowski, license GPL, LGPL
    DELAY:  ; wait bc T (including call; bc>=141)
    	; destroys: af, bc, hl
    	ld hl, -141
    	add hl, bc
    	ld bc, -23
    _loop	add hl, bc
    	jr c, _loop
    	ld a, l
    	add a, 15
    	jr nc, _g0
    	cp 8
    	jr c, _g1
    	or 0
    _g0	inc hl
    _g1	rra
    	jr c, _b0
    	nop
    _b0	rra
    	jr nc, _b1
    	or 0
    _b1	rra
    	ret nc
            ret

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

    По умолчанию

    в EmuZwin
    при запрещенных прерываниях
    можно поймать начало фрейма при помощи


    Код:
    ld a,r
    jp pe,vsync_hit
    ld a,r
    jp pe,vsync_hit
    ld a,r
    jp pe,vsync_hit
    ...
    но срабатывает не всегда
    тк сам интервал детекции начала фрейма
    видимо может проскочить между командами

    но усердное курение доков
    и отсутствие этого в других эмуляторах
    говорит нам, что это просто бага эмузвина


    проще определить факт прерывания исполнения кода обработчиком прерываний.

    или то что прога запущенна в эмузвине
    Последний раз редактировалось NEO SPECTRUMAN; 13.01.2018 в 15:05.

  5. #15
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    в EmuZwin
    при запрещенных прерываниях
    можно поймать начало фрейма при помощи


    Код:
    ld a,r
    jp pe,vsync_hit
    ld a,r
    jp pe,vsync_hit
    ld a,r
    jp pe,vsync_hit
    ...
    но срабатывает не всегда
    тк сам интервал детекции начала фрейма
    видимо может проскочить между командами

    но усердное курение доков
    и отсутствие этого в других эмуляторах
    говорит нам, что это просто бага эмузвина


    проще определить факт прерывания исполнения кода обработчиком прерываний.

    или то что прога запущенна в эмузвине
    Что-то тут не так. Есть известный баг Z80, но он работает с точностью до наоборот - при _разрешенных_ прерываниях в момент прихода импульса прерывания команда LD A,R выставляет флаг P/O в 0 (PO) (как будто они запрещены). Вот тут про это подробно: http://ivr.webzone.ru/articles/ldar_new/ .
    Последний раз редактировалось Spectramine; 13.01.2018 в 22:03.

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

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Этот баг исправлен в CMOS-версиях Z80.
    да кому надо такое исправлять
    они хоть знали про это?
    что то упрощали\переделывали
    а оно исправилось само по себе
    ...с таким же успехом они и out (c),0 "исправили"...
    Последний раз редактировалось NEO SPECTRUMAN; 13.01.2018 в 20:41.

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

  8. #17
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    да кому надо такое исправлять
    они хоть знали про это?
    что то упрощали\переделывали
    а оно исправилось само по себе
    ...с таким же успехом они и out (c),0 "исправили"...
    Баг есть баг, по вышеприведенной ссылке у автора программа время от времени из-за него висла. Возможно, кстати, что и не исправили. Тут вот люди не уверены, что исправлено.

    А out (c),0 не документирована, исправлять там нечего. Поменялось поведение, и всё.

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

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Баг есть баг, по вышеприведенной ссылке у автора программа время от времени из-за него висла.
    этот "баг" уровня недокументированной фичи
    и элементарно обходится
    и нужно достаточно постараться чтобы из за него все повисло...
    (и вообще делать такую операцию без двойной проверки...
    ...ну я бы не стал...
    мало ли где один бит сам по себе появится\исчезнет...
    тем более когда время выполнения не критично...)

    а вот от потери out C,0
    легко перестают работать правильно кучи софтов...
    а просто так его обойти без потери производительности уже нельзя...

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

    Цитата Сообщение от weiv Посмотреть сообщение
    А out (c),0 не документирована
    но чавота про всякие iff-ы
    я узнал из всяких статей с названиями недокументированный возможности...
    ...хотя в статье выше упоминается что в оригинальной ранней документации данная возможность описывалась

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

    Цитата Сообщение от weiv Посмотреть сообщение
    Тут вот люди не уверены, что исправлено.
    ВНЕЗАПНО нашел для себя новую недокументированную команду IM ?
    Последний раз редактировалось NEO SPECTRUMAN; 13.01.2018 в 22:15.

  10. #19
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    этот "баг" уровня недокументированной фичи
    и элементарно обходится
    и нужно достаточно постараться чтобы из за него все повисло...
    (и вообще делать такую операцию без двойной проверки...
    ...ну я бы не стал...
    мало ли где один бит сам по себе появится\исчезнет...
    тем более когда время выполнения не критично...)
    Да фича-то достаточно бесполезная, как бы. Со включенными прерываниями словить начало кадра и так ума много не надо. А вот баг неприятный, ибо не все о нём знают.

    а вот от потери out C,0
    легко перестают работать правильно кучи софтов...
    а просто так его обойти без потери производительности уже нельзя...
    Это да. А вот нефиг недокументированные команды юзать, дабы ибо.

    но чавота про всякие iff-ы
    я узнал из всяких статей с названиями недокументированный возможности...
    ...хотя в статье выше упоминается что в оригинальной ранней документации данная возможность описывалась
    Да опять же - где ж там возможность, когда баг. Что мешает в обработчике свой флаг выставить, а вне обработчика его проверять, вместо того, чтобы ерундой страдать.

    ВНЕЗАПНО нашел для себя новую недокументированную команду IM ?
    Там сворее всего дублирование IM 0 или IM 1, но проверять всем лень.
    Последний раз редактировалось Spectramine; 13.01.2018 в 23:10.

  11. #20
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,121
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    10 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    прерывания, нюансы. я для PMD-85 делал так:

    Код:
    w:
     ld a,(flg)
     or a
     jp nz,w
     xor a
     ld (flg),a
    
    ;vector
    intvec:
     push af
     ld a,0
     ld (flg),a
     pop af
     ret
    flg: db 0

Страница 2 из 8 ПерваяПервая 123456 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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 в разделе События
    Ответов: 206
    Последнее: 11.08.2009, 14:26
  4. Di:Halt 2007 invitation
    от sq/skrju в разделе События
    Ответов: 12
    Последнее: 25.05.2007, 11:44

Ваши права

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