User Tag List

Страница 15 из 36 ПерваяПервая ... 111213141516171819 ... ПоследняяПоследняя
Показано с 141 по 150 из 354

Тема: Корвет: ExtROM Open Source extender

  1. #141

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Я вот уже с твоей подачи стал думать, как прикрутить диагностику интерейса. Битые ВВ55 встречаются не так уж и редко.

  2. #142

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Фух, отловил баг !!!!
    Два разных биоса работают !
    3 дня и такие спецэффекты !

    21_89___wiza.kdi.bin
    12_87_11_niijaf.kdi.bin

    Первый вроде работал но падал при загрузки >8к

    Решил второй биос прикрутить, думал может где-то ошибся
    Прикрутил а эффект ровно тот-же

    А бага красивая ....

    Я в резидент скопировал все копипастом, EXR_GETBYTE,....
    Изменил метки, но в одном месте в чтении забыл исправить метку ...
    Она ссылалась на код stage2
    И когда его затерало то чудеса и начинались
    Вот откуда мои 8к были, 0x2000
    Пришлось даже в эмулятор прикрутить дамп всей памяти по чтению сектора.
    Только так и отловил.

    Больше ничего не делал, но очень радует что оно заработало !

    Раз два работают, большенство остальных должны пойти легко.

    ---------- Post added at 00:37 ---------- Previous post was at 00:29 ----------

    сразу отпишусь, что это на старой версии эмулятора, твои патчи пока не применял, решил не отвлекаться.
    может что-то из этого уже и пофиксится
    ты вроде что-то там с PPI2C.7 делал.


    решил попробовать разный софт
    и сразу



    Код:
    ABRIS виснет проверяет странную мышку ??
    
    RAM:39FA          MOUSE_Ext?:                             ; CODE XREF: RAM:1A53p
    RAM:39FA 21 1D 3A                 ld      hl, kbdVint?
    RAM:39FD E5                       push    hl
    RAM:39FE 21 08 00                 ld      hl, 8
    RAM:3A01 E5                       push    hl
    RAM:3A02 CD 7D 29                 call    setIntHandler
    RAM:3A05 D1                       pop     de
    RAM:3A06 D1                       pop     de
    RAM:3A07 3E 82                    ld      a, PORT_C30_OUT|PORT_B_IN|MODE_B_0|PORT_C74_OUT|PORT_A_OUT|MODE_A_0|_SET_MODE
    RAM:3A09 32 0B FB                 ld      (_1C_PPI3RUS), a
    RAM:3A0C          ;
    RAM:3A0C 21 0A FB                 ld      hl, _1C_PPI3C
    RAM:3A0F 36 10                    ld      (hl), 10h
    RAM:3A11 36 00                    ld      (hl), 0
    RAM:3A13 3A 09 FB                 ld      a, (_1C_PPI3B)
    RAM:3A16 FE 38                    cp      38h ; '8'
    RAM:3A18 C0                       ret     nz
    RAM:3A19 32 21 3C                 ld      (MouseExtFlag?), a
    RAM:3A1C C9                       ret
    Код:
    AKVA  - остатки защиты ??
    читает из fdd, а в DRVREG неверное значение
    судя по коду там кто-то забил нопы рядом, 
    надо уже допатчить штоль
    
    в памяти
    7004: D0 -> C9
    
    c9 0a 0f d0 0f d2 02 70
    c9 0a 0f c9 0f d2 02 70
    Код:
    poker - виснет на чтении 
    868d: mvi a,0
    
    868f: sta ppi2C_
    Код:
    DANDARE - виснет на чтении
    
    RAM:8D6C 3E 08                    ld      a, 8
    RAM:8D6E 32 32 FB                 ld      (_1C_PPI2C_), a
    
    RAM:8DE2 AF                       xor     a
    RAM:8DE3 32 32 FB                 ld      (_1C_PPI2C_), a


    ---------- Post added at 00:41 ---------- Previous post was at 00:37 ----------

    Цитата Сообщение от forth32 Посмотреть сообщение
    Битые ВВ55 встречаются не так уж и редко.
    та очередную голову отбить бы за DB37M
    школьники баловались - ключами вжик по разъему
    а там всё что нужно и +5 и +12 ....

    ведь в оригинале стоял (тот что рп50 - мама)
    оптимизаторы.
    да и еще он похоже в корпус хуже ствновился
    у меня вот чуть под углом.
    Последний раз редактировалось esl; 17.07.2014 в 01:32.

  3. #143

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Самое главное - полностью сделал управление реакцией контроллера на сигнал Control, что так сильно портило жизнь последнее время. Для этого я в API добавил еще одну команду - A1. Для тех, кто не очень понимает, что такое Control и зачем это нужно, привожу цитату из доки по API:

    A1 — управление сигналом Control

    Сигнал Control, выходящий из бита 7 канала С порта PPI2, используется контроллером Extrom для синхронизации начальной загрузки, а после окончания загрузки используется для определения момента перезагрузки корвета. Дело в том, что несознательные разработчики корвета проявили потрясающее разгильдяйство, не выведя на боковой разъем такой важный сигнал, как Reset. В результате приходится определять перезагрузку корвета по уходу этого сигнала в 0 (что происходит при аппаратном сбросе ВВ55). Но проблема уперлась в то, что некоторые умники, пишущие программы для корвета, считают своим долгом дергать этот сигнал как угодно, даже без определенной цели. В результате контроллер уходит в перезагрузку, а программа, работающая на корвете, теряет доступ к диску. Чтобы избежать этой ситуации, и используется данная команда. В поле TRK указывается 0 — запретить перезагрузку от Control, или 1 — разрешить ее. В режиме запрещения перезагрузки, если нажать кнопку Reset корвета, получим на экране сообщение Ошибка шины. В этом случае надо или отключить и снова включить питание, или нажать кнопку сброса на самом контроллере.


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

    Далее, я доработал утилиту mount, как тут обсуждалось.

    1. Ввел проверку наличия интерфейса Extrom. Теперь, если запустить программу с обычной дискеты, без подключенного интерфейса, то она не виснет, а выводит соответствующее сообщение.

    2. Ввел ключ /H - подсказку по командной строке. Для тех, кто не любит читать доки, а таких у нас большинство.

    3. Добавил управление линией Control, используя вышеописанное расширение API. Вообще-то, по логике, эта функция собственно к mount (управлению монтированием образов) не особенно относится. Но уж больно не хотелось писать еще одну, отдельную утилиту. Так что пока засунул сюда, а там посмотрим.

    MOUNT /K OFF - отключает перезагрузку от Control
    MOUNT /K ON - включает ее обратно.

    Режим OFF следует включать перед запуском тех программ, которые лезут в интерфейс и самопроизвольно трогают сигнал Control. Если программа в процессе работы вдруг теряет доступ к диску, а лампочка control в контроллере вдруг зажигается - значит, этот режим как раз вам и нужен.

    В прошивке контроллера, кроме ввода нового вызова API, я исправил некоторые мелкие ошибки, ввел более тщательную диагностику наличия карты - теперь, в случае отстутствия карты, в терминал выдается сообщение "SD карта не найдена", и вымаргивается ошибка 5. Разрешил даже в ошибочном состоянии прерывание от сигнала Control - это позволяет запустить загрузчик фазы 1 и, таким образом, проверить работу интерфейса ВВ55.
    Ну и, самое главное, включил, наконец, режим удвоения частоты SPI - теперь карта работает на максимально возможной скорости. Правда, производительности это добавило только процентов 20 - сказываются тормоза драйвера VinxFS.

    Во вложении лежит новая прошивка контроллера, KDI с обновленным mount, и дока по API.

    На сегодняшний день состояние проекта такое.

    - Схема контроллера полностью готова и проверена мной при двухкратной сборке - на вставной макетке и окончательной плате. Еще ESL скоро доделает свою плату - будет уже три успешных сборки.

    - API уже устаканили и по протоколу, и по составу команд. Реализован полностью и в прошивке контроллера, и в эмуляторе. И документация по API уже написана.

    - Прошивка контроллера готова и более-менее отлажена. По крайней мере, последние дни я погонял несколько стресс-тестов и ошибок не выловил.

    - Клиентская утилита управления образами дисков MOUNT готова и более-менее проверена. К сожалению пока я один только могу ее проверить, но скоро и ESL подтянеся.

    - Эмулятор тоже почти готов. В нем еще нет поддержки последнего вызова A1, но ESL его, надеюсь, прикрутит. Я этим заниматься не стал, отлаживал на реальном железе, тем более что оно заработало практически с первого раза.

    Ну, вроде бы, и все. Теперь мне надо сесть и написать полную документацию по проекту - наверное, займусь в выходные. А ESL обещал доделать универсальный загрузчик систем, тоже являющийся важной частью проекта. Также ему надо доделать свою плату контроллера, и потестировать мою прошивку у себя. После этого можно объявлять релиз. Интересно, хоть кто-нибудь, кроме меня и ESL, соберет себе такое устройство?

    Из дальнейших планов я хочу подправить BIOS для поддержки больших дисков. По первым прикидкам - можно примерно 5Мб диск сделать, на большее не хватит ОЗУ. А то сидеть в 21 веке на мелких 800м образах как-то уже ломает.

    Еще тут Marinovsoft высказывал хотелку графической морды над утилитой mount. Может, кто-нибудь возьмется? Я, как старый системщик, не особо умею делать гуи, всю жизнь предпочитал комстроку, за редким исключением. Мне проще прошивки писать, чем интерфейс пользователя.

    Вообщем, мы потихонечку подбираемся к концу. Даже грустно немного. Хорошая была тренировка для мозгов.
    Вложения Вложения

  4. #144

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Попробовал из опробованных ESL первую попавшуюся на глаза программу - DANDARE, игрушка какая-то. Отключил Control, запусил - повисла. Причем контроллер в перезагрузку не уходит, ждет команд, а команд нет.
    Пришлось ввести в эмулятор обработку команды A1. Как ни странно, в эмуляторе DANDARE после этого отлично заработал. Получается, что эта программа кроме Control что-то еще портит в интерфейсе ППИ3. Поеду на дачу, по дороге попробую разобраться.

    Прикладываю подправленные файлы эмулятора, может кому пригодятся. PPI.C я брал последний из репозитория.
    Вложения Вложения
    • Тип файла: 7z emu_a1.7z (7.6 Кб, Просмотров: 82)

  5. #145

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    УРА заработала !
    забыли припаять три проводка на SD

    но заработала почти

    почти все время говоит
    CS ERR: r:ff c:0

    я добавтл вывод комманды в консоль
    вот лог
    Код:
       *** Extrom - SD ***
    
     Reset flag:1
    
     CARD MID=2  OID=4d54
     Product - SD256
     rev 13  serail -25735
     -- Каталог диска --
    0: LOADER  BIN
    1: ROM1    BIN
    2: ROM2    BIN
    3: ROM3    BIN
    4: ROM4    BIN
    5: ROM5    BIN
    6: MOUNT   CFG
    7: SYSTEM  BIN
    8: ROM6    BIN
    9: DISK       
    
    Total 10 files
    
    Загрузка фазы 2
    
    Loader file: LOADER.BIN
    Loader base: 20
    Loader si
             Loader base: 20
    Loader size: 3
     Block # 1er base: 20
    Loader size: 3
     Block # 2
    Загрузка фазы 2 окончена
     Mount A: DISK/DISKA.KDI  SPT=40
    
     Mount B: DISK/DISKB.KDI  SPT=40
    
    CMD:0 DRV:0 TRK:0 SEC:0 csum:0
    CS ERR: r:ff c:0
    для ром5 тоже ошибки
    но один раз - запустилось, некоторое время поработало а потом опять
    Код:
    CMD:f1 DRV:0 TRK:0 SEC:0 csum:f0
    CMD:f0 DRV:0 TRK:0 SEC:0 csum:ef
    CMD:f0 DRV:0 TRK:0 SEC:0 csum:ef
    CMD:f0 DRV:0 TRK:0 SEC:0 csum:ef
    CMD:f0 DRV:0 TRK:0 SEC:0 csum:ef
    CMD:f0 DRV:0 TRK:0 SEC:0 csum:ef
    CMD:f0 DRV:0 TRK:0 SEC:0 csum:ef
    CMD:f1 DRV:0 TRK:0 SEC:0 csum:f0
    CMD:f1 DRV:0 TRK:0 SEC:0 csum:f0
    CMD:f1 DRV:0 TRK:0 SEC:0 csum:f0
    CMD:f1 DRV:0 TRK:0 SEC:0 csum:f0
    CMD:f1 DRV:0 TRK:0 SEC:0 csum:f0
    CMD:f1 DRV:0 TRK:0 SEC:0 csum:70
    CS ERR: r:f0 c:70
    есть идеи какие ?
    p.s. кондеры еще не вешал по питанию.

    еще заметил что тот-же КТДП из ROMx не всегда стартует, в основном зависает после вывода первой буквы П
    в слове Перемещение КТДП.
    Последний раз редактировалось esl; 18.07.2014 в 02:06.

  6. #146

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    первые результаты по патчеру

    работает со всеми стандартными CP/M биосами что есть

    не работает с
    KORNET
    SFERA

    т.к. их вообще не копал, а там сильные переделки
    отложил на потом.

    и нет обработки МИКРОДОС

    на первое время сделаю чтобы оно писало что задетектило это
    но оно работать не будет,
    и включать подстановку биоса.

    подстановку так-же можно быдет насильно включить если например удерживать SHIFT.

    сейчас говорит что не смог определить тип и HALT.

    и там похоже баг, только-что нашел, на работают физ. диски
    кое что забыл сделать.

    это всё на основе старого stage2
    хотя там в основном лоадере добавлен только

    Код:
    	LD	A,'@'		; Признак окончания загрузки - на экран
    	CALL	PUTCH
    
    	call 	cpm_biod_patcher
    и в конце
    Код:
    	include 	"extrom-patcher.asm"
    типы биосов там-же в архиве
    сейчас оно если биос не детектит делает HALT

    лоадер патчит очистку экрана, и патченый - не очищает экран.
    Вложения Вложения

  7. #147

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    кстати, отрубание реакции на CS7 можно тоже по кнопке в stage2 включать

    ---------- Post added at 01:28 ---------- Previous post was at 01:09 ----------

    радость, посмотрел свой порт Athletic Land на реальном корвете
    работает.
    спасибо тебе forth32 !

  8. #148

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    УРА заработала !
    забыли припаять три проводка на SD
    А вот я и говорил - при привильной сборке начинает работать сразу!

    почти все время говоит
    CS ERR: r:ff c:0
    Похоже, данные искажаются при передаче через канал ВВ55 в режиме 2. В режиме 0 данные передаются нормально, что подтверждается корректной заливкой загрузчиков 1 и 2 фазы. Тут или битая ВВ55, или, скорее всего, ты просто напутал при подключении стробирующих сигналов (PC4-PC7) к разъему. Проверь их тщательно. Лучше всего вызвони прямо от ножек процессора PD3-PD6 к ножкам ВВ55 PC7-PC4. Скорее всего, ты или опять забыл запаять один проводок, или запаял его на другой пин разъема.

    есть идеи какие ?
    p.s. кондеры еще не вешал по питанию.
    Вообще-то лучше повесь, это тоже может влиять на передачу данных в высокоскоростном режиме.

    еще заметил что тот-же КТДП из ROMx не всегда стартует, в основном зависает после вывода первой буквы П
    в слове Перемещение КТДП.
    Это ты не отпускаешь кнопку на клавиатуре. Насколько я помню, у меня тоже так было.

    ---------- Post added at 07:22 ---------- Previous post was at 07:15 ----------

    Цитата Сообщение от esl Посмотреть сообщение
    кстати, отрубание реакции на CS7 можно тоже по кнопке в stage2 включать
    Можно конечно, только смысл? Это отрубание нужно крайне редко и только для запуска отдельных кривых программ. При нормальной работе оно крайне вредно, так как не даст нормально перезагрузить корвет.

  9. #149

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    Похоже, данные искажаются при передаче через канал ВВ55 в режиме 2. В режиме 0 данные передаются нормально, что подтверждается корректной заливкой загрузчиков 1 и 2 фазы. Тут или битая ВВ55, или, скорее всего, ты просто напутал при подключении стробирующих сигналов (PC4-PC7) к разъему. Проверь их тщательно. Лучше всего вызвони прямо от ножек процессора PD3-PD6 к ножкам ВВ55 PC7-PC4. Скорее всего, ты или опять забыл запаять один проводок, или запаял его на другой пин разъема.
    не, оно же иногда работает
    я же выше приводил пример что тест заработал, а потом упал по ошибке CRC.

    А КТДП - тоже
    сначала запускался, потом отказывался
    перенес в другое место (к телевизору) - опять начал запускаться.

    ---------- Post added at 09:20 ---------- Previous post was at 09:18 ----------

    Цитата Сообщение от forth32 Посмотреть сообщение
    Можно конечно, только смысл? Это отрубание нужно крайне редко и только для запуска отдельных кривых программ. При нормальной работе оно крайне вредно, так как не даст нормально перезагрузить корвет.
    зато не надо использовать внешнюю программу
    и оно всегда будет "с собой"
    вопрос простоты использования

    ---------- Post added at 10:13 ---------- Previous post was at 09:20 ----------

    вставил кучу нопов в iop_get_byte
    заработало
    пробовать сколько надо уже буду не сейчас
    тогда надо и в iop_getbuf вставлсять

    в общем - будем дальше пилить.

  10. #150

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    не, оно же иногда работает
    я же выше приводил пример что тест заработал, а потом упал по ошибке CRC.
    Значит, помеху сильную ловишь. Особенно, если там у тебя по шлейфу 12в идет, и если шлейф достаточно длинный. По опыту могу сказать, что длина линии небуферированных TTL сигналов не должна превышать 15-20см. Иначе надо или ставить буфера с низким выходным сопротивлением, или делать бутерброд, как в FDD шлейфе - чередовать сигнальные и земляные линии.

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

    Вставка задержки при формировании сигнала подтверждения приема - мысль хорошая. Таким образом дается время на стабилизацию сигналов. Правда, при этом теряется производительность. Наверное, разные ВВ55 имеют сильный разброс параметров - твой более тормозной, чем мой.

    Жду рассказ об истории успеха, когда у тебя загрузится CP/M до промпта A>.

    зато не надо использовать внешнюю программу
    и оно всегда будет "с собой"
    вопрос простоты использования
    Имеешь в виду случай, когда на диске нет программы mount? Может быть, ты и прав. Раз уж ты там пишешь загрузчик фазы 2 - заодно и вставь туда, например, проверку на нажатие левого шифта. Хотя, мне кажется, что это довольно редкий случай, когда потребуется Control отключать.

Страница 15 из 36 ПерваяПервая ... 111213141516171819 ... ПоследняяПоследняя

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

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

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

  1. Willy

Похожие темы

  1. Open source firmware for the Spectrum
    от zx-kit в разделе Разный софт
    Ответов: 60
    Последнее: 29.05.2014, 13:53
  2. open-source эмуляторы под .NET
    от Sawyer в разделе Эмуляторы
    Ответов: 1
    Последнее: 04.01.2011, 17:47
  3. GP2X F100 Open Source Gaming Console
    от CodeMaster в разделе Зарубежные компьютеры
    Ответов: 3
    Последнее: 12.06.2010, 23:51
  4. Open Source эмуль...
    от rg_software в разделе Эмуляторы
    Ответов: 50
    Последнее: 06.12.2006, 11:57

Ваши права

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