Или загружаются с порта поломанными. Раскурите функцию R монитора, пересмотрите тайминги контроллера в режиме эмуляции ПЗУ. Если бы карта считывалась битой, FAT бы точно не инициализировался.
Вид для печати
Или загружаются с порта поломанными. Раскурите функцию R монитора, пересмотрите тайминги контроллера в режиме эмуляции ПЗУ. Если бы карта считывалась битой, FAT бы точно не инициализировался.
Если есть сомнения в скорости выдачи контроллером данных для ВВ55, то можно воспользоваться директивой М Монитора. Например так
И т.д.Код:-->MA001
A001 FF 00
A002 FF 00
A003 FF.
-->MA000
A000 0E
A001 00.
-->
Медленно, но уверено.:v2_dizzy_ironic:
Спасибо! Бага явно где-то в скорости выдачи контроллером данных для ВВ55.
Ибо данные плавают:
-->MA000
A000 0E
A001 08 .
-->MA000
A000 03
A001 08 .
-->MA000
A000 0E
A001 88 .
и тп. в старших битах данных происходит какая-то ерунда, каждый раз новые данные.
Куда уже оптимизировать ассемблерные вставки в коде контроллера - не представляю :)
Дождусь Atmega8 и попробую на нем собрать и оригинальной прошивке Vinxru, надеюсь это поможет :)
Такс :) кажется нашел беду. Это шлейф. при чем оба глючат в одном и том же месте - на пинах данных D3-D6, тестер показывает КЗ между собой.
---------- Post added at 15:11 ---------- Previous post was at 13:25 ----------
Ура! Заработало :)
---------- Post added at 15:13 ---------- Previous post was at 15:11 ----------
Вывод такой: не доверяйте китайским плоским кабелям! В моем случае была лажа в том, что шлейф был на самом-деле 27-контактный, но они все чудом поместились 26-контактный в IDC-разъем :)))
---------- Post added at 15:27 ---------- Previous post was at 15:13 ----------
Коммандер работает. Но с курсором и клавишей ESC не очень дружит. Да и функциональные клавиши как-то не так работают.
Хотелось бы у студии узнать, на что заменить данные значения констант:
#define KEY_F1 0
#define KEY_F2 1
#define KEY_F3 2
#define KEY_F4 3
#define KEY_LEFT 8
#define KEY_TAB 9
#define KEY_ENTER 13
#define KEY_ESC 27
#define KEY_RIGHT 0x18
#define KEY_UP 0x19
#define KEY_DOWN 0x1A
#define KEY_STR 0x1F
#define KEY_SPACE 0x20
#define KEY_BKSPC 0x7F
Vinxru посоветовал поменять их на правильные значения для RK86 и пересобрать shell.rk.
---------- Post added at 16:08 ---------- Previous post was at 15:27 ----------
Vinxru сделал отдельную прогу keytest.rk (http://rghost.ru/58990926, которая показывает коды нажатых клавиш, с помощью функции биоса getch().
Так вот, нажатие на кнопки курсора выводит коды вверх: 38, вниз: 32, влево: 34, вправо: 36, что соответствует нажатиям клавиш 8,2,4,6.
Что с этим делать - пока непонятно.
От автора поступило предложение назначить кнопки курсора на альтернативные клавиши Q,A,O,P:
#define KEY_LEFT 'O'
#define KEY_RIGHT 'P'
#define KEY_UP 'Q'
#define KEY_DOWN 'A'
---------- Post added at 16:08 ---------- Previous post was at 16:08 ----------
Ну и параллельно изучить прошивку адаптера PS/2 клавиатуры, что это он такое отдает :)
Ура! Получилось пересобрать shell.rk! Теперь навигация с помощью Q/A/O/P.
Там, кстати, кому интересно - github портит концы строк у исходников, делает \n вместо \r\n, посему компилятор c8080 ничего не понимает.
Хотфикс данной проблемы:
find . -name "*.[c|h|inc|asm]" -type f -exec perl -pi -e 's/\n/\r\n/;' {} \;
Заливал вот отсюда из архива orkb_01d.zip. Вот этот хекс: orkb_01d.hex.