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

User Tag List

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

Тема: SD-ROM Картридж

  1. #1
    Activist Аватар для artyr_n
    Регистрация
    02.02.2014
    Адрес
    г. Одесса, Украина
    Сообщений
    291
    Благодарностей: 158
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию SD-ROM Картридж

    В расширенном загрузчике есть возможность грузить программу с ROM через порт ПУ, в картотеке есть картридж который грузит программу которая сканирует ПЗУ их там может быть 7 штук и выводит список записанных туда программ. Подобное для Апогея и Радио 86РК сделал vinxru http://vinxru.livejournal.com/235725.html.
    Пока есть схема и разведенная платка.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	rom_disk_v_1_2.jpg 
Просмотров:	256 
Размер:	72.7 Кб 
ID:	50365  
    Вложения Вложения

  2. Эти 3 пользователя(ей) поблагодарили artyr_n за это полезное сообщение:
    KTSerg (22.12.2014), perestoronin (21.12.2014), svofski (22.12.2014)

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

  4. #2
    Moderator Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    Воронеж
    Сообщений
    4,108
    Благодарностей: 569
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от artyr_n Посмотреть сообщение
    в картотеке есть картридж который грузит программу которая сканирует ПЗУ их там может быть 7 штук
    Цитата Сообщение от artyr_n Посмотреть сообщение
    Подобное для Апогея и Радио 86РК сделал vinxru
    Причём тут картридж? И у vinxru программ может быть не 7, гораздо больше.
    Рыцарь ордена Хламовников

    Мои магазины на Мешке: Retro store и Компьютерные комплектующие

  5. #3
    Veteran
    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Благодарностей: 575
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вопрос (реклама)
    возможно пременимо и тут
    в нашем проекте для корвета удалось сильно сократить кол-во необходимых ног

    может и тут такое подойдёт ?
    (по схеме не понял)

    у корвета из коробки РОМ подключёт как
    PPA - Data
    PPB-PPC - A0-A15

    и чётко известно в каком порядке биос читает данные

    загрузку разбили на 2 этапа

    Stage 1 - размером 256 байт (минимальный размер который может прочитать БИОС)
    он отдаётся после рестарта

    на этом этапе МК отслеживает ТОЛЬКО изменение A0 (т.е. нет необходимости читать 16 бит из порта и читаь по соответсвующий им байт)
    что ГОРАЗДО быстрее и нет вопроса с синхронизацией.

    дальше как прочитали 256 байт, уже наш код в Stage 1 переключает ВВ55 в Mode 2
    а там уже красота.
    для аппаратного квитирования используются PC4-PC7

    МК переходит в режим комманд и грузим всё что надо уже под нашим управленим
    да и код простейший.

    итого хватает 8(DATA) + 1 (PPB - A0, временно для Stage1) + 4 (PPC Mode 2 support)
    ну плюс служебное.
    Последний раз редактировалось esl; 21.12.2014 в 20:52.

  6. Этот пользователь поблагодарил esl за это полезное сообщение:
    artyr_n (22.12.2014)

  7. #4
    Activist Аватар для artyr_n
    Регистрация
    02.02.2014
    Адрес
    г. Одесса, Украина
    Сообщений
    291
    Благодарностей: 158
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    итого хватает 8(DATA) + 1 (PPB - A0, временно для Stage1) + 4 (PPC Mode 2 support)
    для чтения 512 байт никак не хватит одной адресной линии.
    Так как в Векторе в ПЗУ которая стоит на борту есть только загрузчик и при старте программы он отключается, то программа которую загрузили с внешнего ПЗУ должна иметь и фонты и обработчик клавиатуры ну и саму программу общения. В картридже который в картотеке это все помещается в два килобайта. В своей схеме я завел все порты ВВ55 в процессор, для начала буду пробовать использовать программу без изменений которая идет с картриджем а процессором эмулировать ПЗУ для которого содержимое брать с SD карточки.

  8. #5
    Veteran
    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Благодарностей: 575
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от artyr_n Посмотреть сообщение
    для чтения 512 байт никак не хватит одной адресной линии.
    1й линии хватит для последовательного чтения любого числа байт :-)

    Это уже работает в железе

    ---------- Post added at 01:15 ---------- Previous post was at 01:13 ----------

    Я писал в общем не про эмулятор пзу
    А куда это можно развить

  9. Этот пользователь поблагодарил esl за это полезное сообщение:
    artyr_n (22.12.2014)

  10. #6
    Activist
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    289
    Благодарностей: 119
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хватило-бы только АтМеге скорости, чтобы не сбиваться с "ритма" загрузки данных.
    Хотя это критично только для заливки "Загрузчика", в нем свой алгоритм будет, там и "картридж" сможет синхронизировать загрузку...

    В алгоритме чтения картриджа вроде нет ни какой синхронизации, со стороны Вектора просто перебираются адреса и читаются данные, это ведь "картриджу" сложно контролировать.
    Проще для такой "читалки" использовать режим загрузки из "ЛВС".
    Алгоритм сложнее, но есть синхронизация чтения. Это моё субъективное мнение...
    Последний раз редактировалось KTSerg; 22.12.2014 в 19:11.

  11. #7
    Veteran
    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Благодарностей: 575
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    именно про эти два пункта речь и идёт

    A0 - сильно помогает в 1м
    а Mode2 во втором

    вот про скорость и вопрос то
    там не очень понятно когда байт читать

    т.е. цикл вида
    читаем A0-A7,
    читаем A8-A15
    читаем байт ROM[A0..A15]
    выставляем D=ROM

    и это кушает кучу времени в реальности
    надо считать в тактах сколько и как идёт процесс чтения
    (брать код загрузчика - смотреть и считать)

    и хватит ли быстродействия.

    вариант же с A0 сильно упрощает цикл

    while len>0
    while (A0&1 == prevA0)
    prevA0=A0&1
    D=ROM[ADDR]
    ADDR+=1
    len-=1
    end
    Последний раз редактировалось esl; 23.12.2014 в 01:32.

  12. #8
    Activist
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    289
    Благодарностей: 119
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    ---------- Post added at 23:36 ---------- Previous post was at 23:22 ----------

    Цитата Сообщение от artyr_n Посмотреть сообщение
    В расширенном загрузчике есть возможность грузить программу с ROM через порт ПУ, в картотеке есть ...
    Пока есть схема и разведенная платка.
    Чет я сообразить не могу, что за двухрядный 30-ти контактный разъём J1 ?
    И что у него за порядок бит данных/адреса ?...

  13. #9
    Activist Аватар для artyr_n
    Регистрация
    02.02.2014
    Адрес
    г. Одесса, Украина
    Сообщений
    291
    Благодарностей: 158
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Чет я сообразить не могу, что за двухрядный 30-ти контактный разъём J1 ?
    BHR30-G

    родные разъёмы не достать поэтому я развел переходник

    который впаивается вместо родных разъёмов

    Цитата Сообщение от KTSerg Посмотреть сообщение
    И что у него за порядок бит данных/адреса ?...
    Порядок определила разводка переходника.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	bhr34g.jpg 
Просмотров:	514 
Размер:	33.3 Кб 
ID:	50372   Нажмите на изображение для увеличения. 

Название:	perexodnik_rev2_1.jpg 
Просмотров:	501 
Размер:	56.7 Кб 
ID:	50373  

  14. #10
    Veteran
    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Благодарностей: 575
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    esl, я примерно догадываюсь, о предлагаемом способе загрузки данных.
    Но artyr_n уже писал, что в загрузчике Вектора нет такого алгоритма, а весь фокус - сделать картридж работающий на "стандартном" загрузчике.
    я всё время и пишу про способ совместимый со стандартным ПЗУ
    точнее так
    он будет загружаться стандартным пзу
    но дальше уже должно быть всё самописное.


    даже полез исходники смотреть

    для определённости
    http://asdasd.rpg.fi/~svo/scalar/ware/888/

    вот код загрузчика (цифра - такты)
    Код:
            lxi     b,0
            lxi     h,0x8000
    ROM_LOAD:
    ;младший адрес
            mov     a,l     ;5
            out     7       ;10     PA
    ;старший адрес
            mov     a,h     ;5
            out     5       ;10     PC
    
    ;чтение байта ROM
            in      6       ;10     PB
            stax    b       ;5
    
            inx     h       ;5
            inx     b       ;5
    
            mov     a,b     ;5
            cpi     80h
            jnz     ROM_LOAD
            jmp     start
    я собственно про что всё время говорю
    что т.к. в коде нет никакой синхронизации (т.к. там ПЗУ стоит)

    смотрим код, между записью старшего байта паузы НЕТ ВООБЩЕ

    смотрите в коде
    OUT 5 ;записали старший байт
    <<<<<<<<<<<<<<<<<<<вот тут вы должны успеть всё сделать обычным образом.
    IN 6 ;прочитали байт данных

    т.е. нет паузы вообще на тот код который я приводил как "стандартный"
    (читать байтики из двух портов и вытаскивать байт из масива.)

    также этот код не делает проверок вообще, и грузит насильно 32к
    (может в более навороченных есть проверки но мне уж точно лень смотреть, хотя пищущему такое нужно точно знать)
    мы точно знаем сколько он будет грузить.

    мой способ с контролью изменения A0 точно будет работать

    объясню еще раз
    младший байт тут меняется как 00,01,02,03,04,05,06
    соответственно A0 -> 0,1,0,1,0,1,0,1
    мало того очень удачно что младший байт задаётся первым
    т.е. после его записи есть пауза 15 тактов
    (или можно исхитрится что пауза будет весь хвост с inx,cpi,jmp)

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

    p.s. или я не понимаю о чём мы говорим
    Последний раз редактировалось esl; 23.12.2014 в 01:31.

  15. Этот пользователь поблагодарил esl за это полезное сообщение:
    artyr_n (23.12.2014)

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

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

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

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

Похожие темы

  1. 16КБ C64 картридж
    от greenpill в разделе Commodore 16/64/128
    Ответов: 37
    Последнее: 13.05.2015, 00:43
  2. Ответов: 2
    Последнее: 15.12.2010, 17:04
  3. Картридж NES и денди
    от REMR в разделе Nintendo
    Ответов: 3
    Последнее: 18.10.2010, 18:29
  4. Что за картридж?
    от murgatroid_79 в разделе Зарубежные компьютеры
    Ответов: 1
    Последнее: 20.05.2010, 08:01
  5. Flash-картридж...
    от Elya в разделе Память
    Ответов: 1
    Последнее: 20.08.2009, 12:49

Ваши права

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