User Tag List

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 27

Тема: хочется сделать на PC вьювер .scr файлов

  1. #11
    Member Аватар для Виктор
    Регистрация
    16.03.2008
    Адрес
    Киев
    Сообщений
    42
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от molodcov_alex Посмотреть сообщение
    Да, 1,9,17,25,33,41,49,57,2,10,18....
    разве так может быть, ведь строк (8*8 пикселей) всего 24

  2. #12
    Veteran Аватар для molodcov_alex
    Регистрация
    13.03.2006
    Адрес
    Колпино
    Сообщений
    1,250
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А.... Че-то я попутал (не заметил что речь об аттрибутах) Для аттрибутов все линейно.
    А формула в данном случае будет: 6144+INT (x/8)+32*INT (y/8)
    Тоесть сначала идут аттрибуты для 1,2,3,4,5,6,7,8 строк (фактических, 192 которых). Дальше для 9,10,11,12,13,14,15,16 и т.д..
    То есть байт аттрибутов задает цвет знакоместа (кватратика 8x8 пикселей)

    Могу тоже кинуться исходником
    Код:
    void DrawScreen(){
      for(unsigned y=0;y<192;y++){
        unsigned addrp=((y&0xC0)<<(0+5))|((y&0x7)<<(3+5))|((y&0x38)<<(-3+5));
        unsigned addra=((y&0xF8)<<2)|0x1800;
        for(unsigned x=0;x<32;x++){
          BYTE pattern=*(RAM(ScreenBank?7:5)+(addrp|x));
          BYTE attribute=*(RAM(ScreenBank?7:5)+(addra|x));
          BYTE ink=(attribute&0x7)|((attribute&0x40)>>3);
          BYTE paper=(attribute&0x78)>>3;
          for(unsigned bit=0;bit<8;bit++)
            GDIBuf[bit+(x<<3)+(y<<8)]=pattern&(1<<(7-bit))?ink:paper;
        }
      }
    }
    Правда это из эмуля, писал давно и вкурить что тут понаписал уже не могу.
    Последний раз редактировалось molodcov_alex; 16.08.2008 в 14:02.
    ZX Spectrum forever!

  3. #13
    Member Аватар для Виктор
    Регистрация
    16.03.2008
    Адрес
    Киев
    Сообщений
    42
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вот, выкладываю. Написано на Visual Basic 6.0, ибо в другом - дуб. Но работает.
    А посему еще хотел, бы с вашего позволения, задать пару вопросов.
    Как "озвучить" загрузку, тоесть чтобы появление картинки сопровождалось звуками загрузки? то-есть как "проиграть" байт? 1- это один звук, а 0-другой, но откуда тогда такое разнообразие скрипов? Или это просто так воспринимает ухо?
    Есть еще вопрос, но пока не буду спрашивать, чтоб кучу вопросов сразу не задавать.
    Вложения Вложения

  4. #14
    Master Аватар для boo_boo
    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    715
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Виктор Посмотреть сообщение
    1- это один звук, а 0-другой, но откуда тогда такое разнообразие скрипов?
    ну, 1 это одно положение мембраны динамика, 0 - другое. если с какой-то частотой давать 1-0-1-0..., получим колебания мембраны и соответствующую высоту звука. если с той же частотой давать, скажем, 1-1-0-0-1-1-0-0.. мембрана будет колебаться с вдвое меньшей частотой, и звук получится ниже. и тд для любых битовых данных картинки
    Последний раз редактировалось boo_boo; 16.08.2008 в 16:31.

  5. #15
    Member Аватар для Виктор
    Регистрация
    16.03.2008
    Адрес
    Киев
    Сообщений
    42
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    спасибо, вот уж незнал, действительно.
    а сколько длиться одно положение мембраны? вернее сколько оно длилось на касетах?
    что бы реалистично выходило

  6. #16
    Master Аватар для boo_boo
    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    715
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    на самом деле в случае с лентой не совсем так -- там нули и единицы кодируются прямоугольными колебаниями (сигнал-нуль) разной длительности (частотная модуляция)... иначе понадобилась бы идеальная синхронизация между магнитофоном и спеком при идеальном состоянии ленты.
    глянь тут параграф "How does the Spectrum store data to a tape?": http://fly.cc.fer.hr/~arsen/tapefix/tapefix.html
    Последний раз редактировалось boo_boo; 16.08.2008 в 17:42.

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

  8. #17
    Member Аватар для Виктор
    Регистрация
    16.03.2008
    Адрес
    Киев
    Сообщений
    42
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    http://ru.wikipedia.org/wiki/%D0%A7%...86%D0%B8%D1%8F
    так что-ли?

    Добавлено через 3 минуты
    а сколько тогда бит/сек считывалось с кассеты?

    Добавлено через 15 минут
    а, щас посмотрю, а то ссылка сначала не отобразилась

    Добавлено через 6 часов 2 минуты
    boo_boo, спасибо за очень класную ссылку. Я та понял, та все просто - 0-1022 Hz, а 1 это 2044 Hz. Зная скорость передачи бит/сек легко вычислить длительность каждого звука. Плюс есть еще синхоимпульс и ведущий тон (leader ton)
    С эти вопросом все ясно, позвольте задать следующий. Про бордюр. Почему при загрузке появляются полосы, почему именно такого цвета, и вообще что они означают и для чего? Ведь в видеопамяти нет никакого бордюра?
    ЗЫ прошу прощения за наивный вопрос

    Добавлено через 6 часов 4 минуты
    ЗЗЫ и почему полосы "скачут", а не просто "уезжают" вверх экрана?
    Последний раз редактировалось Виктор; 16.08.2008 в 23:32. Причина: Добавлено сообщение

  9. #18
    Member
    Регистрация
    14.02.2005
    Адрес
    Владивосток
    Сообщений
    111
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    все верно - у бордюра нет видеопамяти - за цвет бордюра отвечают три младшие бита порта FE. при изменении цвета бордюра гораздо чаще чем один раз в 1/50 секунды мы как раз и увидим разноцветные полосы. смещение полос напрямую связано с моментом изменения цвета по отношению к моменту начала прорисовки экрана

  10. #19
    Master Аватар для boo_boo
    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    715
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Виктор Посмотреть сообщение
    Почему при загрузке появляются полосы, почему именно такого цвета, и вообще что они означают и для чего? Ведь в видеопамяти нет никакого бордюра?
    данные, считанные с ленты, гонятся на бордюр -- это не обязательно, так делает процедура загрузки из ПЗУ (шоб юзер перед монитором не скучал и знал, что процесс идет ), многие самописные процедуры вместо этого счетчик рисуют и тп. насчет цвета можно предположить, что один цвет соответствует сигналу на магнитофонном входе, второй нулю (до демодуляции), хотя не знаю, что конкретно чудит ПЗУ-шная процедура.
    насчет полос все как сказал mishutka, положение зависит от того, при каком положении CRT-луча было изменение цвета.
    подробная инфа обо всем этом есть в виде статей в нете/журналах, можно поискать
    Последний раз редактировалось boo_boo; 17.08.2008 в 14:51.

  11. #20
    Member Аватар для Виктор
    Регистрация
    16.03.2008
    Адрес
    Киев
    Сообщений
    42
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

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

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

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

Похожие темы

  1. 128к хочется...
    от ALEXEY.GORDEEV в разделе Барахолка (архив)
    Ответов: 8
    Последнее: 10.03.2008, 07:40
  2. Хочется совета по кучке разных старых и интересных железок...
    от Micro-80 в разделе Зарубежные компьютеры
    Ответов: 2
    Последнее: 07.02.2007, 11:35
  3. Вьювер пати релизов
    от mic_vvg в разделе Софт
    Ответов: 4
    Последнее: 24.11.2006, 11:24
  4. Unreal: хочется странного...
    от elf/2 в разделе Эмуляторы
    Ответов: 62
    Последнее: 29.06.2005, 21:12
  5. Форматы файлов
    от Viktor2004 в разделе Эмуляторы
    Ответов: 2
    Последнее: 13.02.2005, 09:57

Ваши права

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