даже мысли нет,
а конец прерываний ты обрабатываеш ?
тот что EOI
даже мысли нет,
а конец прерываний ты обрабатываеш ?
тот что EOI
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Можно подробнее?
Я на VHDL пишу, а отлаживаю в Active HDL.
В том то и дело, что в симуляторе прерывания работают как надо.
И прерывания обрабатываются несколько раз, только потом зависание.
Сейчас переписал top под Ваши корки ВМ80 и ВН59 из башкирии 2м.
Проблема один-в-один как с моими корками.
Я думаю мне от этого никуда не уйти, но без элементарных знаний ассемблера i8080 мне будет очень сложно довести проект до завершения. Поэтому я решил написать простое тестовое ПЗУ для корвета. Так как я абсолютно не знаю ассемблера i8080, то начинать буду действительно с нуля.
* Какой ассемблер использовать?
* Какую литературу мне посоветуете.
* очень был бы благодарен за простые примеры вывода текста на экран, инициализации контроллера прерываний и их обработки с последующим выводом на экран...
Последний раз редактировалось ILoveSpeccy; 20.05.2013 в 22:43.
я пишу (грномко сказано) для 8080 в мнемонике Z80
только не используя комманды специфичные для z80
есть исходник ОПТС 1 ранних версий,
могу расшарить, могу еще базы для IDA с разными ромами (там можно переключать i8080,z80)
а какие примеры, код на чистом железе работать должен ?
Сергей, какими инструментами Вы пользуетесь. Я скачал книгу по ассемблеру 8080 инашел немного кода в инете. Но как мне сделать bin файл? Есть ли какой нибудь кросс-ассемблер для винды?
Пробовать буду в эмуляторе (подгружать бинарник вместо ПЗУ) и на FPGA.
---------- Post added at 21:03 ---------- Previous post was at 21:02 ----------
исходники ОПТС думаю тоже пригодятся.
http://john.ccac.rwth-aachen.de:8000/as/
make.bat
Код:set PROJNAME=my_prog set ASMDIR=c:\prog\asw %ASMDIR%\bin\asw.exe -cpu 8080 -L %PROJNAME%.asm if exist %PROJNAME%.p %ASMDIR%\bin\p2bin.exe %PROJNAME%.p %PROJNAME%.bin -r $-$ -k
ОПТС1 работает прекрасно. Могу рисовать на бейсике и т.д.
Ассемблер попробую.
Ща я сделаю трассировку прерываний в Вашем эмуляторе и посмотрю куды прыгаем при прерываниях...
собственно идея в том что может не отрабатывает запись в RAM
у корвета любая запись в место куда нельзя писать приводит к записи в память по соответствующему адресу
например при записи в подключенный ROM пишем в рам
при записи в подключенные порты клавиатуры пишем в рам под ним
но это версия ....
В файле pic.c в обработчике прерываний int DoPIC (void)
добавил перед return строку printf("\nDoPIC CALL Addr: %04X", (picHIGH<<8) | Low);
Результат с ОПТС2 ниже
И в FPGA тоже самое.Код:Driver: Allegmix Lautsprecher (Realtek High Definition Audio) DoPIC CALL Addr: F7F0 DoPIC CALL Addr: F7F0 DoPIC CALL Addr: F7F0 DoPIC CALL Addr: F7F0 DoPIC CALL Addr: F7F0 DoPIC CALL Addr: F7F0 DoPIC CALL Addr: F7F0 DoPIC CALL Addr: F7F0 DoPIC CALL Addr: F7F0 DoPIC CALL Addr: F7F0 DoPIC CALL Addr: F7F0
Мож я чегото путаю?
---------- Post added at 22:08 ---------- Previous post was at 22:06 ----------
я так и делаю
вот кусок кода:
Код:elsif CPU_WR = '0' then -- write case MAPPER_DO is when M_RAM | M_ROM0 | M_ROM1 | M_ROM2 | M_KEYBOARD => STATE <= SRAMWRITE;
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)