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

User Tag List

Страница 1 из 7 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 66

Тема: DataGear: с чем и как его едят?

  1. #1
    Moderator Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,981
    Спасибо Благодарностей отдано 
    207
    Спасибо Благодарностей получено 
    303
    Поблагодарили
    113 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию DataGear: с чем и как его едят?

    Приветствую, народ!

    Интересует такое интересное устройство как DMA-контроллер DataGear:

    http://speccy.info/DataGear
    http://velesoft.speccy.cz/data-gear.htm



    На форуме здесь в разных ветках обсуждения упоминание о нем то тут, то там проскакивало, но какой-то "генеральной" темы по его обсуждению я не нашел. Что на мой взгляд, несправедливо. Ведь, по крайней мере, на первый взгляд, это устройство обладает неоспоримыми преимуществами:

    1. Компактно. Очень компактно и предельно просто - две "большие микросхемы-сороконожки" - сам проц и DMA-контроллер, а также 1-2 микросхемы мелкой логики. Т.е. можно спаять буквально "на коленке проводками".

    2. Подключается практически к каждому спектруму - по крайней мере к тем, где проц в виде форм-фактора "сороконожка по 20 ног в два ряда" и не намертво припаян к плате (тут увы - пользователям Пентевы, где проц - маленький квадратик, припаянный к материнке, но других исключений пока не знаю) - ибо плата просто вставляется в панельку из-под Z80.

    3. При такой простоте и малых размерах позволяет кидать массивы данных в/из порта или перекидывать по памяти со скорость 4 (максимум 8) тактов на байт. А это открывает широчайшие возможности по оперированию графикой, резко убыстряет скорость обмена с винтом и т.д.

    Возникает вопрос: почему этот давно уже созданный девайс не нашел у нас (на буржуинские страны говорить не буду - не знаю) до сих пор широкого применения? Ведь был же прецедент с Turbo Sound (FM), который точно также вставляется в панельку из-под AY - девайс быстро приобрел известность - начали под него писать софт, музыку. Пошли с ним конкурсы на демопати и т.д. Что мешает пойти устройству "в народ"? Может быть есть какие-то неучтенные мной подводные камни?

    И еще вопрос с точки зрения программиста: может быть тут есть те, кто изучая схему разобрался, а может кто-то и "пощупал" сей девайс собственноручно:
    Что делает карточка (перекидывает быстро-быстро массивы данных по памяти и в порты) - понятно. Изучая схему, я понял, что управляется она через порт #0B (а где-то тут на форуме были упоминания и про порт #6B, но на схеме я его не углядел, ну да ладно). Я просто не понял, как именно, используя DataGear, запустить его работу. Например, я хочу перекинуть 6912 байт из верхов памяти в экран аналогично тому, как я это ранее делал через LDIR.
    Если раньше это все выглядело как:

    LD HL,откуда
    LD DE,#4000
    LD BC,6912
    LDIR


    То кто мне подскажет, как будет выглядеть аналогичная по результату процедура при использовании DMA DataGear?

    Аналогично с портами. Например, я хочу считать сектор с IDE-винта. Сейчас это так (утрированно):

    LD BC, #00nn (конкретный порт IDE, предположим, что все IDE-регистры уже установлены и команда на чтение также послана)
    INIR
    INIR


    И теперь кто мне подскажет, как по аналогии это будет выглядеть при чтении посредством DataGear?

    Ну и последний вопрос к железячникам: есть желающие сие устройство производить, учитывая, что по ссылкам есть все нужные PCB-файлы для запуска в серию?
    Последний раз редактировалось Максагор; 01.12.2016 в 02:10.
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

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

  3. #2
    Guru Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,233
    Спасибо Благодарностей отдано 
    140
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    182 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Максагор Посмотреть сообщение
    Ну и последний вопрос к железячникам: есть желающие сие устройство производить, учитывая, что по ссылкам есть все нужные PCB-файлы для запуска в серию?
    ИМХО, MV1971 произведёт всё что угодно в "промышленных" масштабах, лишь бы был спрос.
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  4. #3
    Moderator Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,981
    Спасибо Благодарностей отдано 
    207
    Спасибо Благодарностей получено 
    303
    Поблагодарили
    113 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    ИМХО, MV1971 произведёт всё что угодно в "промышленных" масштабах, лишь бы был спрос.
    Вот предлагаю всем сюда заглядывающим юзерам реального железа обсудить вопрос: а оно нам надо?

    P.S. отдельно повторяю вопрос о том, как это все работает с точки зрения программиста? - тут у меня неясности.
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

  5. #4
    Moderator Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    9,917
    Спасибо Благодарностей отдано 
    178
    Спасибо Благодарностей получено 
    695
    Поблагодарили
    368 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Максагор Посмотреть сообщение
    Вот предлагаю всем сюда заглядывающим юзерам реального железа обсудить вопрос: а оно нам надо?

    P.S. отдельно повторяю вопрос о том, как это все работает с точки зрения программиста? - тут у меня неясности.
    Как бы это устройство не на каждый комп налезет, вернее если использовать мультиколор, так как в основоном имеющиеся демо расчитаны на трансфер
    в 4 такта (2 такта на чтение и 2 такта на запись) и не все компы смогут это осилисть из за несовпадения фаз записи в память без артифактов
    Напомню что минимально коректное число тактов для клоков совпадающих с RAS/ - это 3 такта. Тоесть при любой ситуации в память запишутся данные.
    Я на Фениксе пробовал, вот мультиколор там и не пошел.
    А больше 4 тактов мультиколор развалится.
    Кроме того у чипа нет ввода RESET. Иными словами, если трансфер не завершен, то шина не освободится никогда и даже если нажать на кнопку сброс компьютера. Поможет только выключение питания. Тоесть эту схему надо дорабатывать на предмет отсоединения сисналов захвата шины при сбросе, чтобы процессор смог проинициализировать систему.
    Если работать с портами, то вполне модет сгодится и вроде на сайте Велесофта есть Easy HDD.
    Кроме того там же есть примеры вывода мультиколора (Multitech) c сырцами.

    Вот к примеру один из них:
    Код:
        org   0CB20h
    
    MLT_Viewer_Init:
        di  
        ld  hl,0FE00h
        ld  de,0FE01h
        ld  bc,100h
        ld  (hl),0CBh ; '╦'
        ldir  
        ld  a,0FEh  ; '■'
        ld  i,a
        im  2
        ld  de,4000h
        ld  hl,0CE00h
        ld  bc,1800h
        ldir  
        ei  
    
    MLT_Viewer_Loop:
        halt  
        xor a
        in  a,(0FEh)
        cpl 
        and 1Fh
        jr  z,MLT_Viewer_Loop
        ld  a,3Fh
        ld  i,a
        im  1
        ret 
    
        org 0CBCBh
    
    MLT_Viewer_Interrupt:
        push  af
        push  bc
        push  de
        push  hl
        push  ix
        ld  d,1Dh
        ld  e,0E6h
        push  de
        ld  hl,5800h
        push  hl
    
        ld  hl,MLT_Viewer_Data_0
        ld  b,14h
        ld  c,6Bh
        otir  
    
        ld  hl,5820h
        ld  de,0E700h
        ld  b,17h
    loc_0_CBEB:
        push  bc
        ld  (MLT_Viewer_Addr_Src),de
        ld  (MLT_Viewer_Addr_Dest),hl
        push  hl
        ld  hl,MLT_Viewer_Data_1
        ld  b,9
        otir  
        pop hl
        inc d
        push  de
        ld  de,20h  ; ' '
        add hl,de
        pop de
        pop bc
        djnz  loc_0_CBEB
    
        ld  hl,MLT_Viewer_Data_2
        ld  b,6
        otir  
    
        ld  b,0C6h  ; '╞'
    MLT_Viewer_Delay:
        djnz  MLT_Viewer_Delay
    
        ld  bc,206Bh
        ld  hl,87B3h      ;команды Enable DMA + Force Ready
        ld  de,0CF0Dh                       ;команда Load
        ld  a,b
        ld  xl,18h
        out (c),e
        out (6Bh),a
    
    MLT_Viewer_Loop_Line:
        out (c),d
        out (c),l
        out (c),h
        add a,b
    
        out (c),e
        out (6Bh),a
        out (c),d
        out (c),l
        out (c),h
        add a,b
    
        out (c),e
        out (6Bh),a
        out (c),d
        out (c),l
        out (c),h
        add a,b
    
        out (c),e
        out (6Bh),a
        out (c),d
        out (c),l
        out (c),h
        add a,b
    
        out (c),e
        out (6Bh),a
        out (c),d
        out (c),l
        out (c),h
        add a,b
    
        out (c),e
        out (6Bh),a
        out (c),d
        out (c),l
        out (c),h
        add a,b
    
        out (c),e
        out (6Bh),a
        out (c),d
        out (c),l
        out (c),h
        xor a
        ld  e,b
        ld  d,a
        pop hl
        add hl,de
        pop de
        inc e
        push  de
        push  hl
        ld  a,0ADh  ; 'н'
        out (6Bh),a
        out (c),l
        out (c),h
        ld  a,20h ; ' '
        out (c),d
        out (6Bh),a
        out (c),e
        ld  hl,87B3h      ;команды Enable DMA + Force Ready
        ld  de,0CF0Dh                       ;команда Load
        dec xl
        jr  nz,MLT_Viewer_Loop_Line
    
        pop hl
        pop de
        pop ix
        pop hl
        pop de
        pop bc
        pop af
        ei  
        ret 
    
    MLT_Viewer_Data_0:
        db  0C3h        ;команда RESET DMA
        db  0C7h        ;команда Reset Port A Timing
        db  0CBh                            ;команда Reset Port B Timing
                          ;--- WR0 Control Bytes -----
        db    7Dh                             ;настраиваем командный регистр (трансфер A->B)
        db      0       ;адрес памяти младший байт  
        db  0E6h                            ;адрес памяти старший байт  
        db    1Fh                             ;число байт для пересылки младший байт
        db      0                               ;число байт для пересылки старший байт
                          ;--- WR1 Control Bytes -----
        db    54h                             ;настраиваем командный регистр (трансфер A <- память)
        db      2                               ;количество циклов на передачу
                                                            ;--- WR2 Control Bytes -----
        db    50h                             ;настраиваем командный регистр (трансфер B -> память)
        db      2                               ;количество циклов на передачу
                                                            ;--- WR3 Control Bytes -----
        db  0C0h                            ;настраиваем командный регистр (Enable DMA)
                                                            ;--- WR4 Control Bytes -----
        db  0ADh                            ;настраиваем командный регистр (адрес куда будет трансфер)
        db      0       ;адрес памяти младший байт   
        db    58h                             ;адрес памяти старший байт  
                                                            ;--- WR5 Control Bytes -----
        db    82h       ;настраиваем командный регистр (без WAIT)
    
        db  0CFh        ;команда Load
        db  0B3h                            ;команда Force Ready
        db    87h                             ;команда Enable DMA
    
    MLT_Viewer_Data_1:
                          ;--- WR0 Control Bytes -----
        db    1Dh                             ;настраиваем командный регистр (трансфер A->B)
    MLT_Viewer_Addr_Src:
        dw      0
                                                            ;--- WR4 Control Bytes -----
        db  0ADh                            ;настраиваем командный регистр (адрес куда будет трансфер)
    MLT_Viewer_Addr_Dest:
        dw      0                               ;адрес памяти 
        db  0CFh        ;команда Load
        db  0B3h                            ;команда Force Ready
        db    87h                             ;команда Enable DMA
    
    MLT_Viewer_Data_2:
                          ;--- WR0 Control Bytes -----
        db    1Dh       ;настраиваем командный регистр (трансфер A->B)
        dw      0E600h                          ;адрес памяти 
                  ;--- WR4 Control Bytes -----
        db  0ADh                            ;настраиваем командный регистр (адрес куда будет трансфер)
        dw      5800h 
    
        .end
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  6. #5
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Необходимости вроде как не видно в этой железяке.
    Прилепить, "чтоб було"?
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  7. #6
    Moderator Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,981
    Спасибо Благодарностей отдано 
    207
    Спасибо Благодарностей получено 
    303
    Поблагодарили
    113 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    и не все компы смогут это осилисть из за несовпадения фаз записи в память без артифактов
    Вот на одном клоне идет, на другом нет. Чем один клон должен отличаться от другого для получения таких разных результатов?

    Цитата Сообщение от Mick Посмотреть сообщение
    Я на Фениксе пробовал, вот мультиколор там и не пошел.
    Как в Фениксе устроена работа с ОЗУ, что получилось именно так? Есть информация по другим отечественным "теплоламповым" клонам - ATM1,2,2+, Профи, KAY, Scorp, Пентагон? С каким из этих клонов может возникнуть проблема и почему? Кто может прокомментировать?

    Цитата Сообщение от Mick Посмотреть сообщение
    Кроме того у чипа нет ввода RESET. Иными словами, если трансфер не завершен, то шина не освободится никогда и даже если нажать на кнопку сброс компьютера. Поможет только выключение питания. Тоесть эту схему надо дорабатывать на предмет отсоединения сисналов захвата шины при сбросе, чтобы процессор смог проинициализировать систему.
    Хммм. Да, это важно.
    Я так понимаю, это как раз доработанная схема, где можно блокировать поступление питания через закорачивание штырьков (повесить из на кнопку ресета)?
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

  8. #7
    Moderator Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    9,917
    Спасибо Благодарностей отдано 
    178
    Спасибо Благодарностей получено 
    695
    Поблагодарили
    368 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Максагор Посмотреть сообщение
    Хммм. Да, это важно.
    Я так понимаю, это как раз доработанная схема, где можно блокировать поступление питания через закорачивание штырьков (повесить из на кнопку ресета)?
    Джампер там нужен для выбора порта 0Bh или 6Bh. Там даже написано об этом -> If JP1 is connect, then port 107(#6B) is used.
    Так что это не поможет. Нужно ставить что то мультиплексора.

    Собственно сорцы галки же есть

    Код:
    DATAGEAR
    
    CHIP datagear gal16v8
    
    A5=1 NC1=2 A4=3 A3=4 A2=5 A1=6 A0=7 M1=8 IORQ=9 GND=10
    WAIT=11 BUSRQ=12 DMACS=13 BUSAK=14 NC2=15 LED=16 JP1=17 A7=18 A6=19 VCC=20
    
    EQUATIONS
    
    /DMACS = A0*A1*/A2*A3*/A4*A5*A6*/A7*M1*/IORQ*BUSRQ*/JP1
           + A0*A1*/A2*A3*/A4*/A5*/A6*/A7*M1*/IORQ*BUSRQ*JP1
           + /BUSRQ*/WAIT
    
    /LED   = /BUSAK
           + A0*A1*/A2*A3*/A4*A5*A6*/A7*M1*/IORQ*BUSRQ*/JP1
           + A0*A1*/A2*A3*/A4*/A5*/A6*/A7*M1*/IORQ*BUSRQ*JP1
    Цитата Сообщение от Максагор Посмотреть сообщение
    Как в Фениксе устроена работа с ОЗУ, что получилось именно так? Есть информация по другим отечественным "теплоламповым" клонам - ATM1,2,2+, Профи, KAY, Scorp, Пентагон? С каким из этих клонов может возникнуть проблема и почему? Кто может прокомментировать?
    В Фениксе клоки процессора идут в фазе с сигналом RAS/, а значит для стабильной работы нужно 3 такта для обращения к памяти. В этом случае память гарантированно запишется или считается.
    Тоесть по логике такое не пройдет во всех компах с таким построением. В Пентагоне насколько я помню клоки процессора находятся в той же фазе что и CAS/, то по идее ему 2 тактов должно хватить.
    Если судить по сайту велесофта и там упоминается Пентагон, то вроде как работает. Я лично не проверял. Нет Пятногона.

    Для работы с портами в принципе хватит любого клона, так как допустим 3 такта на чтение из памяти и 2 такта запись в порт в итоге 5 тактов. Это по любому быстрее чем команда OUT

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

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Необходимости вроде как не видно в этой железяке.
    Прилепить, "чтоб було"?
    И это говорит хвостатый который собрал 6 миникомпов, необходимость которых тоже крайне сомнительна.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  9. #8
    Activist
    Регистрация
    18.09.2009
    Адрес
    г. Витебск
    Сообщений
    499
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Самый главный вопрос, что с доставаемостью Z80 DMA? Зашел, посмотрел на Ali, вроде как не совсем пусто, но и изобилия нет - несколько предложений. Есть риск, что в ближайшее время совсем исчезнут и перейдут в разряд эксклюзива.

  10. #9
    Guru Аватар для Totem
    Регистрация
    13.12.2007
    Адрес
    Архангельск
    Сообщений
    2,189
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    11 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vasily Посмотреть сообщение
    Самый главный вопрос, что с доставаемостью Z80 DMA? Зашел, посмотрел на Ali, вроде как не совсем пусто, но и изобилия нет - несколько предложений. Есть риск, что в ближайшее время совсем исчезнут и перейдут в разряд эксклюзива.
    У меня валялась упаковка.
    На сколько помню 1 Мише отсылал, 1 Евгению, еще несколько штук есть, если очень надо.

    8 Мгц есть тут
    https://ru.utsource.net/search.aspx?...=Z84C10&page=1

    на ибеях надоть искать не 84c10/8410, а z80 DMA, полно.
    Последний раз редактировалось Totem; 02.12.2016 в 09:01.
    Ты слыхал как грузится Flyshark ?! нет, совсем не тот, что на дискете...а Flyshark, тот самый блин Flyshark...тот ,что был когда то на кассете...
    zx spectrum 48 issuse 6a, Ленинград-1, zx spectum 128 +2 grey,Пентагон-128, ZXM-Phoenix 5.02 ( assembly)

  11. #10
    Member
    Регистрация
    24.03.2008
    Адрес
    г. Рыбинск
    Сообщений
    123
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Извините за офф, а где-то можно в одном месте почитать, про растактовки на разных версиях 48/128k, cas и прочие там регенерации? Спасибо.

Страница 1 из 7 12345 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Мультиколор. И с чем его едят.
    от Demige в разделе Изображение
    Ответов: 2
    Последнее: 31.01.2012, 17:11
  2. Чем нарисовать спрайты и как заставить их двигатся.
    от sevol в разделе Программирование
    Ответов: 22
    Последнее: 18.11.2010, 14:59
  3. DRM, DAB и другие, и с чем их "едят"?
    от andrews в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 22.08.2009, 18:02
  4. Ответов: 10
    Последнее: 25.03.2007, 23:30
  5. TRD>TD0. Как и чем?
    от Vladimir Kladov в разделе Утилиты
    Ответов: 2
    Последнее: 12.03.2007, 10:51

Ваши права

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