User Tag List

Страница 13 из 22 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя
Показано с 121 по 130 из 215

Тема: Восстановление Специалистов.

  1. #121

    Регистрация
    12.12.2011
    Адрес
    г. Иркутск
    Сообщений
    2,509
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  3. #122

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir_S Посмотреть сообщение
    Нужно это дело механизировать.
    Сверлю моторчиком от магнитофона. А тут небольшой косяк с совмещением сторон. В пределах допустимого.

  4. #123

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию



    2 шт


    (номиналы резисторов указаны не корректно).

    Всё просто. С одной стороны двунаправленная 8-битная шина между МК и компьютером. 9-ая линия, это тактовый сигнал. С другой стороны SD-карта и преобразователь 3.3 Вольта для карты.

    Внутри МК зашита библиотека PetitFAT c которой общается компьютер. Эта библиотека не умеет создавать новые файлы и папки. Она умеет записывать в файлы, но только блоками по 512 байт и если размер файла не увеличивается.

    Это потому что библиотека написана в крайне экономном стиле. Она использует всего несколько десятков байт ОЗУ. А для изменения размера файла нужно изменить несколько байт в таблице FAT. А карта памяти работает записывает данные блоками по 512 байт. То есть придется скопировать весь блок в память, изменить байт, а потом сохранить его обратно. На это потребуется 512 байт памяти.

    Память то есть, но авторы PetitFS писали не для меня конкретно.

    В будущем я использую другую библиотеку или доработаю эту.
    Последний раз редактировалось vinxru; 25.02.2013 в 14:32.

  5. #124

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ошибка в подключении проводов к SD. Пришлось бросить перемычку.

    Ошибка в порядке проводов подключения в разъему. Я ведь был уверен, что контакты расположены в порядке D0-D7. Оказалось, что хаотично. Исправлю таблицей перекодирования в МК.

    ---------- Post added at 11:35 ---------- Previous post was at 11:35 ----------

    Вчера подпаял контроллер на проводах и удачно загрузил программу.

    ---------- Post added at 11:37 ---------- Previous post was at 11:35 ----------

    Пока будет 4 команды
    1) Загрузка файла boot.rks (pf_open, pf_read)
    2) Загрузка файла с произвольным именем (pf_open, pf_read)
    3) Начало получения списка файлов в папке (pf_opendir)
    4) Получение следующего файла в папке (pf_readdir)

  6. #125

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию



    Вчера вечером сделал первые наброски файлового менеджера.

    Каждый программист должен в своей жизни написать Norton Commander Пока контроллер работает только в режиме чтения, поэтому вторая панель не особо нужна.

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

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

    Теперь надо написать код связывающий его и микроконтроллер.

    Как хорошо писать на Си под эти компы Функция копирования видеопамяти:

    Код:
    void scroll1(char* d, char* s, uchar w, uchar h) {
      for(; w; --w, d+=0x100, s+=0x100)
        memswap(d, s, h);
    }
    Просто и быстро. Хотя ассемблерные вставки то же пока присутствуют.

    Код:
    void fillRect1_int(uchar len, uchar x, uchar* a) {
    asm {
        lda fillRect1_int_2
    fillRect1_int_cmd2:
        nop          ; CMA = 2F NOP = 00
        mov d, a
        lda fillRect1_int_1
        mov e, a
    fillRect1_int_l0:
        mov a, m
    fillRect1_int_cmd:
        ora d        ; XRA D = AA, ANA D = A2, ORA D = B2
        mov m, a
        inx h
        dcr e
        jnz fillRect1_int_l0
      }
    }
    
    void fillRect1(uchar* a, ushort c, uchar l, uchar r, uchar h) {
      if(c==0) {
        fillRect1_int(h, l & r, a);
        return;
      }
      --c;  
      fillRect1_int(h, l, a);
      a += 0x100;
      for(; c; --c) {  
        fillRect1_int(h, 0xFF, a);
        a += 0x100;
      }  
      fillRect1_int(h, r, a);
    }
    
    #define QUARDCOORDS(XX,YY) ((uchar*)(0x9000)+(YY)+((XX)*256) )
    
    #define FILLRECTARGS(X0,Y,X1) QUARDCOORDS(X0/8, Y0), ((X1)+1)/8-(X0/8), (0xFF >> ((uchar)(X0) & 7)), (0xFF >> ((uchar)((X1)+1) & 7)) ^ 0xFF, (Y1)-(Y0)+1
    
    void fillRect(ushort x0, uchar y0, ushort x1, uchar y1) {
      fillRect1(FILLRECTARGS(x0, y0, x1, y1));
    }
    
    void graphXor() {
      asm {
        mvi a, 0AAh
        jmp graph1_l1
      }
    }
    
    void graph0() {
      asm {
        mvi a, 0A2h
        sta fillRect1_int_cmd
        mvi a, 02Fh
        jmp graph1_l2
      }
    }
    
    void graph1() {
      asm {
        mvi a, 0B2h
    graph1_l1:
        sta fillRect1_int_cmd
        xra a
    graph1_l2:
        sta fillRect1_int_cmd2
      }
    }
    Макросы я добавил, что ускорить программу. Что бы всё что можно рассчитать во время компиляции, считалось во время компиляции.

    Медленно, потому что расчет адреса будет производится при вызове.
    fillRect(8,5,184,232);

    Быстро, потому что расчет адреса будет производится при компиляции.
    fillRect1(FILLRECTARGS(8, 5, 184, 232));

    Во вложении RKS файл, код на Си и промежуточный файл на асме.

    Контроля переполнения буферов пути и ком строки я пока не сделал.

    Еще надо будет свою функцию сканирования клавиатуры делать. Тут нет автоповтора и заглавных букв.

    Я заголовочные файлы для BIOS начал писать и граф. библиотеку.
    Вложения Вложения
    Последний раз редактировалось vinxru; 01.03.2013 в 14:12.

  7. #126

    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,436
    Спасибо Благодарностей отдано 
    163
    Спасибо Благодарностей получено 
    190
    Поблагодарили
    121 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Каждый программист должен в своей жизни написать Norton Commander -
    ха, верно сказано.
    1. не стоит в упор копировать внешний вид окон Norton Commander'а, нужно искать что-то своё.
    2. всё ж прорисовку линий нужно делать на ассемблере. Очень удачно сделал HardWareMan. У него вывод символов (окна у меня в программе нарисованы псевдографикой) сделан очень быстро.
    3. я прорисовку окон, в том числе информационных и выбора дисков давно уже победил. На данный момент у меня уже есть: вывод и запуск файлов с Flash-диска, ROM-диска под МХ, файлов MX-DOS.
    4. недоделки/хотелки пока таковы: считывание каталога/запуск файлов с SD карты, полноценные переходы по каталогам в MX-DOS, организация общения с RAM-диском (до 512 кБайт) и т.д.

    И напоследок хочу сказать что офтопить как бы не желательно. Здесь vinxru обсуждает восстановление Специалистов, а уже идёт написание программ, изготовление новых девайсов и т.д.

  8. #127

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Эта программа, часть SD-контроллера. Поэтому не оффтопик

    ---------- Post added at 16:08 ---------- Previous post was at 16:07 ----------

    Цитата Сообщение от fifan Посмотреть сообщение
    всё ж прорисовку линий нужно делать на ассемблере. Очень удачно сделал HardWareMan. У него вывод символов (окна у меня в программе нарисованы псевдографикой) сделан очень быстро.
    Рамка у меня рисуется линиями и очень быстро. Рисует функция как раз приведенная в прошлом посте.

    ---------- Post added at 16:12 ---------- Previous post was at 16:08 ----------

    Цитата Сообщение от fifan Посмотреть сообщение
    3. я прорисовку окон, в том числе информационных и выбора дисков давно уже победил. На данный момент у меня уже есть: вывод и запуск файлов с Flash-диска, ROM-диска под МХ, файлов MX-DOS.
    4. недоделки/хотелки пока таковы: считывание каталога/запуск файлов с SD карты, полноценные переходы по каталогам в MX-DOS, организация общения с RAM-диском (до 512 кБайт) и т.д.
    Я у тебя взял шрифты, функцию вывода на экран (только немного её оптимизировал).

    Вообще, работает удивительно быстро. Доли секунды панель файлов перерисовывается при скоролле содержимого.

    Я ждал от Специалиста диких тормозов.

    ---------- Post added at 16:14 ---------- Previous post was at 16:12 ----------

    Размер шрифта 6 пикселей, а в байте 8 символов. Поэтому пришлось делать 4 функции рисования символов (как в твоей программе). Но внезапно это вылилось в то, что функция вывода текста может рисовать текст со смещением всего в 2 пикселя.

    И тут я этим активно пользуюсь.

  9. #128

    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,436
    Спасибо Благодарностей отдано 
    163
    Спасибо Благодарностей получено 
    190
    Поблагодарили
    121 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Я у тебя взял шрифты, функцию вывода на экран (только немного её оптимизировал).
    А я взял все подпрограммы вывода символа и работу с SD картой у HardWareMan'а. Ему хвала.

  10. #129
    HardWareMan
    Гость

    По умолчанию

    Мухаха! А я советую не редровить весь экран, а только строку с курсором. Я в свое время на кружке писал уже драйвер ROM диска с менюшкой. Все на отлично шустро прорисовывалось на стандартном тормозном выводе символа, т.к. рисовал только то, что нужно (т.н. "дифф"). Т.е., стираем курсор пропечатывая строку, где он был, рисуем новый опять же печатая где он должен быть. Весь скрин редровить только при тотальной смене картинки. Ну а с шустрым выводом должно просто летать.

    Касаемо:
    Цитата Сообщение от vinxru Посмотреть сообщение
    Размер шрифта 6 пикселей, а в байте 8 символов. Поэтому пришлось делать 4 функции рисования символов (как в твоей программе). Но внезапно это вылилось в то, что функция вывода текста может рисовать текст со смещением всего в 2 пикселя.

    И тут я этим активно пользуюсь.
    Мы этим пользовались еще на стандартном спеце 23 года назад в кружке. Именно поэтому, в быстром выводе 4 ветки вывода символа, а в оригинальном работа через сдвиг с помощью команды DAD и сохранением результата в стеке. Это же решает проблему хранения координаты Х, которая имеет 384 точки и не влазит в байт. Храним ее как X/2. Такие дела.

  11. #130

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я даже курсор xor fillRect рисую.

Страница 13 из 22 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Восстановление Scorpion ZS-256
    от AlexMik в разделе Scorpion
    Ответов: 127
    Последнее: 15.08.2013, 19:30
  2. восстановление Орион-128
    от sergey2b в разделе Орион
    Ответов: 1
    Последнее: 05.02.2011, 15:32
  3. Восстановление ПК Мастер-128
    от PKZX в разделе Клоны на ПЛИС, МК и БМК
    Ответов: 3
    Последнее: 13.03.2010, 22:10
  4. Хочу выслушать мнения специалистов...
    от ILoveSpeccy в разделе Музыка
    Ответов: 23
    Последнее: 29.08.2008, 04:35

Ваши права

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