User Tag List

Страница 9 из 22 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя
Показано с 81 по 90 из 215

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

  1. #81

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Думаю, дай я перепишу твою программу на Си. За одно посмотрю, как под Специалист программировать.

    Там 50% кода занимает функция вывода текста. Её не стоило переписывать, ибо тормозить будет. Мой компилятор пока не особо шустрый. Но что бы разобраться, переписал её. Работает не особо медленнее оригинала.

    Обмозгую и добавлю ассемблерных вставок.

    Код:
    extern uchar chargen[2048];
    
    #define LOADCHAR \
        c = *text, ++text; \
        if(c==0) break; \
        down = (c >= 0xB0 && c < 0xF0); \
        s = chargen + c*8;
    
    #define PRINTX(M,V,A) \
        *d = (*d & M); if(down) *d ^= (*s V); \
        ++d; \
        for(i=8; i; --i) \
          *d = (*d & M) ^ (*s V), ++d, ++s; \
        --s; \
        *d = (*d & M); if(down) *d ^= (*s V); \
        d += A - 9; \
    
    void printx(uchar* dd, char* text) {
      register uchar* d = dd;
      uchar* s;
      uchar c, i, down;
      while(1) { 
        // Фаза 1
        LOADCHAR
        PRINTX(0x03, << 2, 0)
    
        // Фаза 2
        LOADCHAR
        PRINTX(0xFC, >> 4, 0x100)
        s -= 7;
        PRINTX(0x0F, << 4, 0)
    
        // Фаза 3
        LOADCHAR
        PRINTX(0xF0, >> 2, 0x100)
        s -= 7;
        PRINTX(0x3F, << 6, 0)
    
        // Фаза 4
        LOADCHAR
        PRINTX(0xC0, , 0x100)
      } 
    }
    
    #define COORDS(x,y) (uchar*)((y)*10+(x)*256+0x9000)
    
    void main() {
      uchar y;
    
      memset((uchar*)(0x9000), 0, 0x3000);
    
                 //1234567890123456789012345678901234567890123456789012345678901234
      printx(COORDS(0, 0), "+------------ C:\\ ------------+ +------------ C:\\ ------------+");
      for(y=1; y<23; y++)
        printx(COORDS(0, y), "\xB3              \xB3              \xB3 \xB3              \xB3              \xB3");
      printx(COORDS(0, 23), "+--------------+--------------+ +--------------+--------------+");
      printx(COORDS(0, 24), "C:\\>");
    Еще фаза некорректно выбирается. Точнее не выбирается вообще. И пока только черный фон.
    Когда релиз компилера?
    И очень нужен long (32 бита)
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  2. #82

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

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Когда релиз компилера?
    И очень нужен long (32 бита)
    Специалисты доделаю, потом доделаю компилятор.

  3. #83

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

    По умолчанию

    Сейчас план такой:

    1) Паяю контроллер SD-диска на весу и пишу для него прошивку.



    2) Проверяю через стандартный монитор командами ввода и вывода.

    3) Выпаиваю одну панельку под ПЗУ из компьютера, оставшуюся панельку переделываю под ПЗУ на 16 Кб.

    4) Модифицирую ПЗУ для компьютера так, что бы компьютер грузился с флешки, если вставлена флешка.

    5) Пишу программы тестирования клавиатуры, записываю на флешку и все проверяю.

    6) Дорабатываю прошивку клавиатуры, что бы не залипали кнопки.

    7) Если ATMega8 хватит, то оба расширения буду делать на DIP-корпусах. Если потребуется поставить ATMega16 в контроллер клавиатуры, то оба расширения буду делать на TQFP.

    8) Делаю две новых платы (клавиатура и ROM диск), размещаю их над основной платой параллельно. А не как сейчас, перпендикулярно.

    9) Запаиваю все не запаяные детали.

    10) Делаю контроллер цвета.

    11) Делаю корпус из оргстекла.

    ---------- Post added at 11:46 ---------- Previous post was at 11:43 ----------

    По поводу SD-карты идея такая. Контроллер будет отслеживать CS ВВ55-ой, и после чтения байта компьютером автоматически подставлять следующий байт. То есть последовательно получать байты можно будет вызовом единственной команды

    LXI H, 0F000h

    MOV A, M
    STAX D
    INX D

    или даже

    MOV B, M
    MOV C, M
    PUSH B

    11 тактов на байт. Прием 32 Кб данных (максимальный размер программы) будет происходить 0.3 сек.



    ---------- Post added at 11:51 ---------- Previous post was at 11:46 ----------

    Контроллер выдает данные блоками по 512 байт. То есть читает с флешки в свою память 512 байт, а потом отдает компьютеру.

    Чтение с SD может выполняться неопределенное кол-во времени. Во время чтения контроллер возвращает 0. Как только он будет готов передавать информацию, он передаст 1, а затем 512 байт данных.

    Код:
          ; Ожидание готовности МК
          LXI H, 0F000h
          XRA A
    Wait:
          OR M
          JZ Wait
          DCR A
          JNZ Error
    
          ; Прием данных
    Последний раз редактировалось vinxru; 21.01.2013 в 12:55.

  4. #84

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

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Если ATMega8 хватит, то оба расширения буду делать на DIP-корпусах.
    Хорошо б что имено в Атмегу8 всё вошло.

  5. #85

    Регистрация
    25.11.2011
    Адрес
    г. Красногорск
    Сообщений
    1,389
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fifan Посмотреть сообщение
    Хорошо б что имено в Атмегу8 всё вошло.
    с DIP толстый бутербод будет, у меги в планаре ножки удобные для пайки.

    Ретрокладовая продажи

    продажи
    [свернуть]

  6. #86

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

    По умолчанию

    А если ATMega16 применить, то можно оба устройства на одном МК реализовать.

  7. #87

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

    По умолчанию

    При применении квадратного планарного корпуса увеличивается размер печатной платы в том случае если взять все сигнальные линии прямо с ВВ55, с её панельки. Между двумя рядами DIP40 ни как не разместить упомянутый корпус Атмеги, только сбоку. Хотя на вкус и цвет, как говорится...

  8. #88

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

    По умолчанию

    Написал загрузчик для Специалиста и вставил его вместо ПЗУ Монитора (C800-CFFF). Нажимаем F6, Enter и загружается игра.

    Только вот игра глючит на функции вывода текста, каждый раз по разному. И не реагирует на клавиши.





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

    ---------- Post added at 01:29 ---------- Previous post was at 01:18 ----------

    Да, в эмуляторе эта игра работает только лишь с BIOS-ом C000-C7FFF.
    Последний раз редактировалось vinxru; 22.01.2013 в 11:31.

  9. #89

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

    По умолчанию

    Видимая часть экрана занимает адреса 9000...BFFF, а не с С000. С000...EFFF - это область ПЗУ.

  10. #90

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

    По умолчанию

    Я непонятно сказал. Я в SP занес С000h. Первый адрес стека будет BFFEh

    ---------- Post added at 10:23 ---------- Previous post was at 09:06 ----------

    Еще идея. Поставив внешние резисторы к ATMega8 можно сэкономить несколько тактов.
    Последний раз редактировалось vinxru; 22.01.2013 в 13:38.

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

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

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

Эту тему просматривают: 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

Ваши права

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