преобразователь уровня -- это диод шоттки и резистор.
преобразователь уровня -- это диод шоттки и резистор.
Нет, уже устарела
Есть новая
- - - Добавлено - - -
У "новых" бывает внезапно включен внешний генератор частоты. Попадалось такое.
Важно добиться, чтобы avrdude видела мегу. И только после этого, делать попытки что то записать.
wtf
А под микрошу кто нить разводил плату?
Изготовление Картриджей для Денди 1-8 игровки с меню. (0,1,2,3,4,7,71 мапперы), для Сеги 1-8
https://vk.com/retronicaru
Насколько я помню это просто загрузчик от оригинального проекта. И возможно там добавлен какой то кусок кода от ркшного монитора, на который ссылается потом sdbios и которого небыло в микроше
; SD BIOS for Computer "Radio 86RK" / "Apogee BK01"
; (c) 09-10-2014 vinxru ([email protected])
.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.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Это и правда код Морозова.
Ваш sdbios.rk и shell.rk даже по размеру отличаются от оригинальных ркшных.
Файл boot_e000.rk содержит что угодно, только не загрузчик boot.rk.
И только boot.rk похож на оригинал, с незначительными двумя байтами.
Реальные исходники были бы намного лучше. Проект opensource.
wtf
я сейчас посмотрел по кодам, насколько я помню команды ассемблера в кодах. Этот файл именно этот загрузчик, что ассемблеровский лист выше я загрузил и содержит до 89h , а с 8ah идет какой то кусок кода ркшного монитора к которому обращалась sdbios, что этот кусок делает сейчас не помню, но можно дисасеблировать и посмотреть. Какие там реальные исходники были понятия не имею, я это сделал из того, что подруку попалось, просто адаптировав, под те адреса, где у меня ВВ55 стоит и чтобы с монитором микроши работало.
- - - Добавлено - - -
p.s. испавлять нужно было только boot, что бы в ПЗУ его сразу записать и биос. Сам shell наверное без исправлений уже, а как был.
- - - Добавлено - - -
Посмотрел дизассемблером. Все верно как написано выше. Первая часть загрузчик, и с адреса e08ah (8ah в файле) идет небольшая подпрограмма монитора РК-86, что-то типа стирания экрана на вид. Которую использовал sdbios и которой не было в мониторе микроши, в отличии от РК-86 в рк-86 эта процедура INIT_VIDEO = 0F82DH
Последний раз редактировалось sd; 13.04.2024 в 20:23.
У меня теперь атмега шьётся старым 5-ти вольтовым USBasp'ом, при старте мигает светодиод. Это что значит? Флэшка не нравится? Файлы не те?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)