User Tag List

Страница 27 из 37 ПерваяПервая ... 232425262728293031 ... ПоследняяПоследняя
Показано с 261 по 270 из 394

Тема: SD-контроллер от vinxru

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    02.01.2021
    Адрес
    г. Дмитров
    Сообщений
    322
    Спасибо Благодарностей отдано 
    77
    Спасибо Благодарностей получено 
    59
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    ; SD BIOS for Computer "Radio 86RK" / "Apogee BK01"
    ; (c) 09-10-2014 vinxru (aleksey.f.morozov@gmail.com)

    .org 0e000h

    MONITOR equ 0F89dh ; Адрес собрата в Монитор
    USER_PORT equ 0f000H ; Адрес КР580ВВ55
    SEND_MODE equ 10000000b ; Режим передачи (1 0 0 A СH 0 B CL)
    RECV_MODE equ 10010000b ; Режим приема (1 0 0 A СH 0 B CL)

    ; Коды передаваемые микроконтроллером

    ERR_START equ 040h ; МК переключен в режим приема команд
    ERR_WAIT equ 041h ; МК выполняет команду
    ERR_OK_DISK equ 042h ; Накопитель исправен, микроконтроллер готов к приему команды
    ERR_OK equ 043h ; Команда выполнена
    ERR_OK_READ equ 044h ; МК готов передать следующий блок данных
    ERR_OK_ADDR equ 047h ; МК готов передать адрес загрузки
    ERR_OK_BLOCK equ 04Fh

    ;----------------------------------------------------------------------------
    ; Точка входа

    Entry:
    ; Первым этапом происходит синхронизация с контроллером
    ; 256 попыток. Для этого в регистр C заносится 0
    MVI C, 0

    Boot:
    ; Режим передачи (освобождаем шину) и инициализируем HL
    CALL RecvMode

    JMP Boot2

    ;----------------------------------------------------------------------------
    ; Отправка и прием байта (в HL должен находится USER_PORT)

    Rst1:
    ; Шина адреса используется как тактовый сигнал
    INX H
    MVI M, 20h
    MVI M, 0
    DCX H
    ; Прием байта
    MOV A, M
    RET

    ;----------------------------------------------------------------------------
    ; Ожидание готовности МК

    Rst2:
    WaitForReady:
    call Rst1
    CPI ERR_WAIT
    JZ WaitForReady
    RET

    ;----------------------------------------------------------------------------

    ; Начало любой команды (это шина адреса)
    Boot2:
    INR L
    MVI M, 0
    MVI M, 44h
    MVI M, 40h
    MVI M, 0h
    DCR L

    ; Если есть синхронизация, то контроллер ответит ERR_START по шине данных
    call Rst1
    CPI ERR_START
    JNZ RetrySync

    ; Инициализация флешки
    call Rst2
    CPI ERR_OK_DISK
    JNZ RetrySync

    ; Режим передачи
    call Rst1
    MVI A, SEND_MODE
    CALL SetMode

    ; Код команды BOOT
    MVI M, 0
    call Rst1

    ; Режим приема
    CALL RecvMode

    ; Это ответ команды BOOT
    call Rst2
    CPI ERR_OK_ADDR
    JNZ RetrySync

    ; Адрес загрузки в BC
    call Rst1
    MOV C, A
    call Rst1
    MOV B, A

    ; Сохраняем в стек адрес запуска
    PUSH B

    ; Файл может быть разбит на несколько частей
    RecvLoop:
    ; Все части загружены, можно запускать файл.
    call Rst2
    CPI ERR_OK_READ
    JZ Rst1

    ; Если МК прочитал блок без ошибок, будет передан ERR_OK_BLOCK
    CPI ERR_OK_BLOCK
    JNZ PrintError

    ; Размер блока данных
    call Rst1
    MOV E, A
    call Rst1
    MOV D, A

    ; Принимаем блок данных
    RecvBlock:
    MOV A, E
    ORA D
    JZ RecvLoop
    call Rst1
    STAX B
    INX B
    DCX D
    JMP RecvBlock

    ;----------------------------------------------------------------------------
    ; Повторные попыки

    RetrySync:
    ; Попытки
    DCR C
    JNZ Boot

    ;----------------------------------------------------------------------------
    ; Вывод кода ошибки

    PrintError:
    CALL 0F815h
    JMP MONITOR
    ;----------------------------------------------------------------------------
    ; Установка режима приема или передачи

    RecvMode:
    MVI A, RECV_MODE

    SetMode:
    LXI H, USER_PORT+3
    MOV M, A
    MVI L, 0
    RET

    .End
    Последний раз редактировалось sd; 13.04.2024 в 11:49.

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

  3. #2

    Регистрация
    27.04.2015
    Адрес
    г. Пенза
    Сообщений
    521
    Спасибо Благодарностей отдано 
    337
    Спасибо Благодарностей получено 
    102
    Поблагодарили
    69 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от sd Посмотреть сообщение
    ; SD BIOS for Computer "Radio 86RK" / "Apogee BK01"
    ; (c) 09-10-2014 vinxru (aleksey.f.morozov@gmail.com)
    Это и правда код Морозова.

    Ваш sdbios.rk и shell.rk даже по размеру отличаются от оригинальных ркшных.
    Файл boot_e000.rk содержит что угодно, только не загрузчик boot.rk.
    И только boot.rk похож на оригинал, с незначительными двумя байтами.

    Реальные исходники были бы намного лучше. Проект opensource.
    wtf

  4. #3

    Регистрация
    02.01.2021
    Адрес
    г. Дмитров
    Сообщений
    322
    Спасибо Благодарностей отдано 
    77
    Спасибо Благодарностей получено 
    59
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от cy6 Посмотреть сообщение
    Файл boot_e000.rk содержит что угодно, только не загрузчик boot.rk.
    я сейчас посмотрел по кодам, насколько я помню команды ассемблера в кодах. Этот файл именно этот загрузчик, что ассемблеровский лист выше я загрузил и содержит до 89h , а с 8ah идет какой то кусок кода ркшного монитора к которому обращалась sdbios, что этот кусок делает сейчас не помню, но можно дисасеблировать и посмотреть. Какие там реальные исходники были понятия не имею, я это сделал из того, что подруку попалось, просто адаптировав, под те адреса, где у меня ВВ55 стоит и чтобы с монитором микроши работало.

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

    p.s. испавлять нужно было только boot, что бы в ПЗУ его сразу записать и биос. Сам shell наверное без исправлений уже, а как был.

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

    Посмотрел дизассемблером. Все верно как написано выше. Первая часть загрузчик, и с адреса e08ah (8ah в файле) идет небольшая подпрограмма монитора РК-86, что-то типа стирания экрана на вид. Которую использовал sdbios и которой не было в мониторе микроши, в отличии от РК-86 в рк-86 эта процедура INIT_VIDEO = 0F82DH
    Последний раз редактировалось sd; 13.04.2024 в 20:23.

  5. #4

    Регистрация
    26.01.2018
    Адрес
    г. Долгопрудный
    Сообщений
    980
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    117
    Поблагодарили
    80 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Отлично!
    Спасибо!
    Наверное есть смысл развести эту плату в формате модуля ПЗУ и контроллера FDD.


  6. #5

    Регистрация
    02.01.2021
    Адрес
    г. Дмитров
    Сообщений
    322
    Спасибо Благодарностей отдано 
    77
    Спасибо Благодарностей получено 
    59
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    скорее в формате контроллера fdd, там уже и пзу и вв55й есть

  7. #6

    Регистрация
    27.04.2015
    Адрес
    г. Пенза
    Сообщений
    521
    Спасибо Благодарностей отдано 
    337
    Спасибо Благодарностей получено 
    102
    Поблагодарили
    69 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от sd Посмотреть сообщение
    скорее в формате контроллера fdd, там уже и пзу и вв55й есть
    Еще интереснее был бы девайс "два-в-одном": эмулятор контроллера FDD + контроллер SD.
    Чтобы сохранить совместимость с оригинальной ДОС, нужно сохранить микросхемы портов в/в.
    Схему же кодирование битов и управление дисководом, эмулировать программно.
    wtf

  8. #7

    Регистрация
    26.01.2018
    Адрес
    г. Долгопрудный
    Сообщений
    980
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    117
    Поблагодарили
    80 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я форму платы имел ввиду. Она у них одинаковая, под корпус.
    Если у кого то есть фирменное ПЗУ, может поменять внутренности на читалку с SD.
    Опять же горизонтальный формат платы не перекрывает обзор на дисплей. У кого то они маленькие.

  9. #8

    Регистрация
    02.01.2021
    Адрес
    г. Дмитров
    Сообщений
    322
    Спасибо Благодарностей отдано 
    77
    Спасибо Благодарностей получено 
    59
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В этом случае было бы нужно к контроллеру fdd готек подключать и под него софт писать, что бы он микрошу понимал.

  10. #9

    Регистрация
    19.02.2010
    Адрес
    Энергодар
    Сообщений
    1,187
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    27
    Поблагодарили
    22 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А какие файлы использовать с микрошей если атмега 8 ???
    Те что выложены не заработали...

  11. #10

    Регистрация
    02.01.2021
    Адрес
    г. Дмитров
    Сообщений
    322
    Спасибо Благодарностей отдано 
    77
    Спасибо Благодарностей получено 
    59
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Те, что были на прошлой странице

    Этот пользователь поблагодарил sd за это полезное сообщение:

    oracleua(02.10.2021)

Страница 27 из 37 ПерваяПервая ... 232425262728293031 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Демка "Звёздные войны" для Апогея от Vinxru
    от Kakos_nonos в разделе Радио-86РК
    Ответов: 4
    Последнее: 12.07.2014, 21:57
  2. весточка от Vinxru
    от dk_spb в разделе Орион
    Ответов: 6
    Последнее: 15.03.2014, 19:12

Ваши права

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