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

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 20

Тема: вопрос к SMT по исходникам анрила

  1. #1
    Master Аватар для boo_boo
    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    713
    Благодарностей: 14
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию вопрос к SMT по исходникам анрила

    hi!
    пытаюсь портировать куски анрила на линух, начал с ВГ93... скомпилировать удалось, заставить работать пока нет.
    думаю на задержки, все остальное вроде весчь в себе, поэтому вопрос:
    в файле wd93cmd.cpp дважды встречается конструкция
    Код:
    comp.t_states + cpu.t
    это что такое?
    пытался всякую муть сюда пихать (счетчик циклов CPU, счетчик кадров и тп), в некоторых случаях при попытке чтения диска получалось disc error, в некоторых -- ошибка чтения...

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

  3. #2
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Благодарностей: 30
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    это что такое?
    та же самая вроде весчь в себе - это "текущее время" эмулируемого спектрума - число тактов от старта

    вообще, хорошо, что уже есть ощутимые результаты

  4. #3
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Благодарностей: 104
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Вопрос такой

    исходя из каких соображений идёт эмуляция Beeper и SPK?
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  5. #4
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Благодарностей: 30
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    глупый вопрос

  6. #5
    Master Аватар для boo_boo
    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    713
    Благодарностей: 14
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SMT
    это "текущее время" эмулируемого спектрума - число тактов от старта
    ооо, спасибо! теперь при включенных задержках время опроса дисковода похоже на реальное...
    все равно disc error, впрочем...
    хм... после записи в регистр команд команды чтения сектора, и при последующих попытках что-то взять из регистра данных, младший бит регистра состояния (занято) перманентно установлен...
    будем думать
    Последний раз редактировалось boo_boo; 19.01.2006 в 15:27.

  7. #6
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Благодарностей: 30
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ты взял глюкалку или фуз?

  8. #7
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Благодарностей: 104
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SMT
    глупый вопрос
    Вообще ничего не вижу глупого, может всё таки ответишь?
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  9. #8
    Activist
    Регистрация
    23.03.2005
    Адрес
    г. Чернигов, Украина
    Сообщений
    405
    Благодарностей: 6
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    SMT - профессионал! Сразу видно, ибо "только проф. программеру проще объяснить, почему нельзя написать что-то, чем написать" кажется так было написано

    Boo boo - молодец! Давай эмуль под линуха... Думаю там очередь желающих. Я, кстати, тоже не против.
    Последний раз редактировалось Знахарь; 19.01.2006 в 17:37.

  10. #9
    Master Аватар для boo_boo
    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    713
    Благодарностей: 14
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SMT
    ты взял глюкалку или фуз?
    глюкалку... весь день долблюсь, без толку. впрочем, я довольно приблизительное представление имею о работе ВГ, так что оно не удивительно...

    вот лог обращения к ВГ -- может, по нему видно, на каком этапе пошли глюки?
    Код:
    file /home/boo/!ZX/CM2DEMO.trd loaded in drive A
    
    Захожу в TRDOS:
    
     WD OUT(0xff,0x00)    status = 10000000
     WD OUT(0xff,0xff)    status =      100
     WD OUT(0x1f,0xd0)    status = 10000100
    
     32 раза: {
     WD OUT(0xff,0xf7)    status = 10000100
     WD OUT(0xff,0xff)    status = 10000100
     }
    
    Делаю CAT:
    
     WD OUT(0xff,0x3c)    status = 10000100
     WD OUT(0x1f,0x08)    status =      101 /*восстановление*/
     WD IN(0xff)=0xbf     status =      100 /*INTRQ*/
     WD IN(0x1f)=0x24     status =   100100 /*состояние*/
    
     2408 раз {
     WD IN(0x1f)=0x26     status =   100110 /*дергаем состояние*/
     }
    
     WD OUT(0x1f,0x08)    status =   100111 /*восстановление*/
     WD IN(0xff)=0xbf     status =   100100  /*INTRQ*/
     WD OUT(0x7f,0x20)    status =   100100
     WD OUT(0x1f,0x18)    status =   100111 /*поиск дорожки*/
     WD IN(0xff)=0xbf     status =   100100 /*INTRQ*/
     WD OUT(0x7f,0x01)    status =   100000
     WD OUT(0x1f,0x18)    status =   100011 /*поиск дорожки*/
     WD IN(0xff)=0xbf     status =   100000 /*INTRQ*/
     WD IN(0x1f)=0x22     status =   100010
     WD OUT(0x7f,0x00)    status =   100000
     WD OUT(0x1f,0x18)    status =   100011 /*поиск дорожки*/
     WD IN(0xff)=0xbf     status =   100000 /*INTRQ*/
     WD IN(0x1f)=0x26     status =   100110
     WD OUT(0xff,0x3c)    status =   100110
     WD IN(0x1f)=0x26     status =   100110
     WD IN(0x3f)=0x00     status =   100110
     WD OUT(0x7f,0x00)    status =   100100
     WD OUT(0x1f,0x18)    status =   100111 /*поиск дорожки*/
     WD IN(0xff)=0xbf     status =   100100 /*INTRQ*/
     WD OUT(0x1f,0xc0)    status =   100111 /*чтение адреса*/
     WD IN(0xff)=0x3f     status =        1
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x00     status =        1
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x00     status =        1
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x06     status =        1
     WD IN(0xff)=0x3f     status =        1
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x01     status =        1
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x63     status =        1
     WD IN(0xff)=0x3f     status =        1
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x9b     status =        1
     WD IN(0xff)=0xbf     status =        0 /*INTRQ*/
     WD OUT(0x3f,0x00)    status =        0 /*уст. 0 дорожку*/
     WD OUT(0xff,0x3c)    status =        0
     WD IN(0x1f)=0x00     status =        0
     WD IN(0x3f)=0x00     status =        0
     WD OUT(0x7f,0x00)    status =        0
     WD OUT(0x1f,0x18)    status =        1 /*поиск дорожки*/
     WD IN(0xff)=0xbf     status =   100100 /*INTRQ*/
     WD OUT(0x1f,0xc0)    status =   100101 /*чтение адреса*/
     WD IN(0xff)=0x3f     status =        1
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x00     status =        1 /*данные*/
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x00     status =        1 /*данные*/
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x09     status =        1 /*данные*/
     WD IN(0xff)=0x3f     status =        1
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x01     status =        1 /*данные*/
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x73     status =        1 /*данные*/
     WD IN(0xff)=0x3f     status =        1
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0xa5     status =        1 /*данные*/
     WD IN(0xff)=0xbf     status =        0 /*INTRQ -- прочитали адрес*/
     WD OUT(0x3f,0x00)    status =        0 /*уст. 0 дорожку*/
     WD OUT(0xff,0x3c)    status =        0
     WD IN(0x3f)=0x00     status =        0
     WD OUT(0x7f,0x00)    status =        0
     WD IN(0x3f)=0x00     status =        0
     WD OUT(0x1f,0x18)    status =        1 /*поиск дорожки*/
     WD IN(0xff)=0xbf     status =   100100 /*INTRQ*/
     WD OUT(0x3f,0x00)    status =   100100 /*уст. 0 дорожку*/
     WD OUT(0x5f,0x09)    status =   100100 /*уст. 9 сектор*/
     WD OUT(0x1f,0x80)    status =   100101 /*чтение сектора*/
     WD IN(0xff)=0x3f     status =        1
    
     30 раз: {
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     }
    
     около 100 примерно таких кусков: {
     WD IN(0x7f)=0x00     status =        1 /*данные*/
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x00     status =        1 /*данные*/
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x00     status =        1 /*данные*/
     WD IN(0xff)=0x3f     status =        1
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x00     status =        1 /*данные*/
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x00     status =        1 /*данные*/
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x00     status =        1 /*данные*/
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x00     status =        1 /*данные*/
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     WD IN(0x7f)=0x00     status =        1 /*данные*/
     WD IN(0xff)=0x3f     status =        1
     WD IN(0xff)=0x7f     status =       11 /*DRQ*/
     }
    
     WD IN(0xff)=0xbf     status =        0 /*INTRQ -- считали 9й сектор*/
     WD IN(0x1f)=0x00     status =        0 /*состояние -- типа все ок*/
     WD OUT(0xff,0x37)    status =        0 /
    
     15 раз: {
     WD OUT(0xff,0x3f)    status = 10000000
     WD OUT(0xff,0x37)    status = 10000000
     }
    
     WD OUT(0xff,0x3f)    status = 10000000
     WD OUT(0xff,0x34)    status = 10000000
    
     15 раз: {
     WD OUT(0xff,0x3c)    status =        0
     WD OUT(0xff,0x34)    status =        0
     }
    
     WD OUT(0xff,0x3c)    status =        0
    
    Получаю Disc Error
    UPD: хммм, выглядит так, будто вместо 9го сектора считалось хрен знает что, по случаю чего ошибка. но фигли тогда сошлась контрольная сумма?
    Последний раз редактировалось boo_boo; 19.01.2006 в 19:24.

  11. #10
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Благодарностей: 30
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    GriV, слишком общий вопрос. всё равно, что рассказать "из каких соображений" телевизор показывает картинку. развёрнутый ответ сейчас не могу дать

    boo, если догадаюсь в чём дело, напишу

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Вопрос про ПЗУ
    от Eltaron в разделе Память
    Ответов: 14
    Последнее: 25.12.2005, 20:17
  2. вопрос про 555ТМ2
    от SMT в разделе Unsorted
    Ответов: 4
    Последнее: 23.12.2005, 15:05
  3. Такой вопрос:
    от GriV в разделе Музыка
    Ответов: 2
    Последнее: 12.11.2005, 01:22
  4. вОпрос по железу
    от Conan в разделе Unsorted
    Ответов: 61
    Последнее: 05.03.2005, 19:53

Ваши права

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