-
Постов
3 009 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Весь контент GenaSPB
-
дос запись в видео память
GenaSPB ответил SergeyVas тема в Программирование
Не видя всего кода, трудно сказать, что там происходит... вопросы: 1) Какого типа переменная palit (намёк на пропущенное приведение типов перед сдвигом) - см. вопрос 3. 2) Что за функция _remappalette (я про сдвиги на 7 и на 15)? 3) что за компилятор, в каком режиме (real mode? какой размер int?). Visual C 1.52? -
дос запись в видео память
GenaSPB ответил SergeyVas тема в Программирование
Где-то надо загрузить ту палитру, в которой Ваш файл сохранён (кажется, она вместе с каритнкой где-то). Потому я про 16 или 32 (24) бита вам и говорил. А что было-то, размер страницы (granulation) у Вашего видеоадаптера какой? Что печатает моя программа про доступные vesa режимы? Характеристики используемого Вами режима? -
дос запись в видео память
GenaSPB ответил SergeyVas тема в Программирование
1) не вижу описаний scrwidth, altop. Они 16 бит? 2) А с чего Вы решили, что в Вашей видеоплате функция установки номера окна предполагает, что окно 64 килобайта? Я про granularity. 3) моя программа работает у Вас? Она тоже изображение выводит. 4) Не вижу установки начальной страницы. -
дос запись в видео память
GenaSPB ответил SergeyVas тема в Программирование
Простите, а зачем я, как вы думаете, выложил исходники программ (под дос и под dos extender от zortech 3.1), где вызывается процедура переключения страниц видеопамяти как раз по информации, предоставляемой vesa bios? Запустите - программы рисуют картинки, похожие на BGIDEMO от Borland. В режиме 16/24/32 бита может оказаться быстрее - да и избавитесь от необходимости палитру загружать. Пожалуй, 16 бит самое то. Вот два метода перекючения страницы - через колбэк и медленный - через вызов функции vesa bios. Это для real mode. static void vesa_setpage_bio(unsigned short page, unsigned w) { union REGS r; r.x.ax = 0x4f05; /* 4fh/05h: Page service. */ r.h.bh = 0x00; /* bh = 0: set, bl = window */ r.h.bl = w; /* bh = 0: set, bl = window */ r.x.dx = page; /* In granularity units. */ int86(0x10, & r, & r); if (r.x.ax != 0x004f) { printf("Error in function 0x4f/0x05\n"); return; } } static void vesa_setpage_dir(unsigned short page, unsigned w) { _SI = _SI; /* Force save register variables. */ _DI = _DI; _DX = page; /* In granularity units. */ _BX = w; /* bh = 0: set, bl = window */ (* gcx.wpos)(); } void (* vesa_setpage)(unsigned short, unsigned) = vesa_setpage_bio; -
дос запись в видео память
GenaSPB ответил SergeyVas тема в Программирование
Для VESA режимов эту информацию возвращает BIOS видеоплаты. Чаще всего на A000. -
ARM3 от Atmel - где купить в России?
GenaSPB ответил _4afc_ тема в ARM, 32bit
Честное слово, в ЭФО брал - в апреле этого года. ATSAM3S4BA-AU, работают как настоящие! зы: кажется, ещё не кончились. http://shop.efo.ru/cgi-bin/shop.pl?categor...p;mh=50&a=1 -
Нет, LTO критически необходимым не является - пока ещё до предела в ПЗУ не дошёл. Просто отваливание этого куска выглядит как индикатор того, что что-то не так в оптимизаторе. Хотя... Была идея запихнуть проект в 32-килобайтный процессор (с LTO - 25 кБ, без - 33 кБ)... пока можно пользоваться старой версией. GDB не пользуюсь...
-
Я в своей пигмейской жизни разрабатываю встроенные системы сидя под виндами, использую для облегчения работы автотрассировку печатных плат и не хочу лезть на кактус под называнием пингвин_на_рабочем_столе. Ёжики не лезут на пингвинов. Протестирую. ps: протестировал: LTO с ARM7 отвалилось (Segmentation fault в lto1.exe). Жду следующей версии. В позапрошлом варианте работало - пока сижу на нём. Не колет.
-
Как обычно, приму с юлагодарностью ARM для хоста WIM32
-
А похожа инициализация на UC1601! i2c_start(ADDR_70); i2c_write(0x81); // Set Vbias Potentiometer TIC154 i2c_write(vbias); i2c_write(0xAF); // Set Display Enable i2c_stop(); _delay_us(10); // delay required after Set Display Enable command i2c_start(ADDR_70); i2c_write(0x84); // Disable Partial Display i2c_stop();
-
Ох, спасибо за ссылку... вспомнил прошлое (и не очень) - дизассемблирование ПЗУ от Ямахи - MSX-DOS потом использовал в своих домашних компютерах, написание компилятора С для 8080 и Z80 (MicroGenSf, если кто встречал).
-
А можно Вас попросить - открыть у себя на машине .sch и, выполнив команду "Library -> Archive Library", выложить и получившийся .lib файл?
-
Вот Вам проект (прверял на атмеге32, смотрите). Стиль - намеренно корявый, 3/4 программы сгенерено визардом.
-
AVR и Siemens M55
GenaSPB ответил dexter_khm тема в AVR
Вот архив с программой. И тот файл с картинкой, по которому генерируется знакогенератор. -
AVR и Siemens M55
GenaSPB ответил dexter_khm тема в AVR
А я бросил идею размножать символы - и просто нарисовал отдельный знакогенератор (правда, в моём приложении были только цифры, точка и пробел). Знакогенератор рисую в bmp - потом простой программой - "зубочисткой" (по классификации Керинигана) - преобразую в исходник массива. Кому надо - тексты (управление RD0154 - с микросхемой UltraChip uc1601s) лежит вот тут: http://forum.cqham.ru/viewtopic.php?t=22912 Исходники преобразователя .bmp -> .c выложу здесь, если надо. -
В даташите на Hitachi HD64180 тоже написано про 7 бит.
-
По это явно в Zilog-овском документе с их сайта говорится. Если надо - можно будет проверить (но только на Z180). А что, не известно точно, что за железо у Вас?
-
У Вас не Rabbit? Если да - там регистр R другую функцию выполняет. На Hitachi HD64180 документ не нашёл... Или у Вас точно от Zilog кристалл? Для zilog: Возможно, используют как ещё один флаг. Смотреть там, где записали. Правильно замечено, что проверка на работу под эмуляторами (или трассировщиками). Да, вы в курсе про копирование флага iff2 в parity при выполнении этой команды?? ps: С удивлянием для себя обнаружил, что команда ld a,r устанавливает флаги sign и zero по содержимому регистра r.
-
Не получается связка KEIL+UART
GenaSPB ответил pashqa тема в В помощь начинающему
Я намекаю, что если в выражении a = b = c = d = e = 1234; переменная с - volatile и не имеет права быть считанной (в свойствах языка такого нет) - Вы уверены, что a и b будет присвоено 1234? Я - не уверен. Дабы не исследовать зависимость от компилятора и оптимизации, проще простого - сделать отдельные выражения для присвоения каждой из них. -
Не получается связка KEIL+UART
GenaSPB ответил pashqa тема в В помощь начинающему
За строчкой Внутри цикла добавьте Результат сообщите. Предполагаю, что терминал Вы запускаете после того, как прцессор запускается? Попробуйте, не выключая терминал, просто reset нажать. Тут я предполагаю, что старт-стопный протокол начинает приём с какого-то нулевого бита из середины посылки и не входит в режим правильной синхронизации. 0xff поможет в этом. Так. Порты PIO_PDR и PIO_PUDR не позволяют читать записанные в них значения (Вам на это уже намекали). Соотвтственно, что пишется у Вас ("от безысходности") в регистры PIO_IDR и PIO_PUDR никто не знает. И не надо про то, что не влияет - сделайте как надо. Про это в даташите написано в колонке access словами Write-only. Не понял, что с PLL и тактовой частотой процессора. -
RC-5 протокол и ATmega8
GenaSPB ответил alfa20 тема в Программирование
Так из многих "нагугленных" эта заработала сразу, без напильника (естественно, речь не о привязке к компилятору). Разберётесь потом - даже можете своё сделать на основе работающей программы.