|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
NedoPC с CP/M на ATMega88 -> РК-шка на Атмеге
Author |
Message |
antsnark
Doomed
Joined: 27 Jan 2010 03:45 Posts: 434 Location: 83.149.9.42
|
можёт и было где... страница проекта: http://spritesmods.com/?art=avrcpm
|
01 May 2010 06:03 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22568 Location: Silicon Valley
|
а я на SX-28 хотел сделать CP/M-машину, но остановился из-за нехватки времени
у чувака судя по всему всё закрыто - надо мне свой опен-сорцный вариант чтоли как-нибудь доделать...
|
01 May 2010 06:43 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
CP_M on AVR
Не скрою, когда вот эта штука здесь у нас пробегала, она мне понравилась.
Z80 -> PIC
http://www.nedopc.org/forum/viewtopic.php?t=9278
http://hackaday.com/2010/05/22/z80-emulated-on-pic-hardware/
http://www.nedopc.org/forum/viewtopic.php?t=7636
http://sgu-wap.narod.ru/SP_Z80/CP_M/Z80_on_PIC32.jpg
Но автор её спрятался, как секретный физик НАСА, так что схемы и прошивки мне раскопать не удалось.
Упомянутый здесь проект, CP/M on an AVR
http://spritesmods.com/?art=avrcpm&f=had
автор которого запихал Intel 8080 и OS CP/M в ATMega88, тоже интересен и весьма похож на тот.
Описание и документация автора несколько сумбурны, так что сразу я этот проект отложил, но в празднички решил попробовать.
Сначала пришлось привести в божеский вид вот этот "чертёж":
И, надеюсь, я не напортачил лишнего:
http://sgu-wap.narod.ru/SP_Z80/CP_M/SKC_sch88.png
И для начала я решил дать "толчок" проекту в Протезусе. (Обычно у меня это получается, но на AVR до сих пор ничего не пробовал.)
Замечательной авторской памяти – GM71C4 256A 128 KB, 4-bit DRAM chip – у меня в Протезусе не нашлось, поэтому пришлось заменить её двумя чипами половинной ёмкости, разбросав по ним сигналы /OE и /WE согласно состоянию сигнала А8.
http://sgu-wap.narod.ru/SP_Z80/CP_M/AVR_CPM.png
MMC/SD-card сразу не цеплял, поскольку модель, как мне кажется, подглючивает, а может Протезус у меня уже староватый. Но, тем не менее, ожидал я в такой минимальной конфигурации на консоли хотя бы:
Ok, CPU is live!
Для чего, как мне показалось из текста z80.asm, MMC/SD-card и CP/M сразу не требуются.
Но - "от винта"… сразу этого не случилось…
Вот такой старт, как у автора, мне на консоли Протезуса лицезреть не удалось.
В общем - некоторое "обломинго" с разбегу… Ну что ж - буду посмотреть…
Хотя…сам автор упоминает, что ошибок у него дофига…
Короче, кому это интересно, документацию по проекту можно взять вот здесь,
http://sgu-wap.narod.ru/SP_Z80/CP_M/AVR_CP_M.rar
раз уж я потратил на это время. Может - у кого получится.
Прав автора мы не нарушим - всё это у него licensed under the GPLv3.
|
04 Jan 2011 00:20 |
|
|
pwa75
Novelist
Joined: 03 Mar 2011 11:51 Posts: 27 Location: Адлер
|
Тоже понравился этот проектик. Решил его взять на вооружение. Вот уже пару месяцев ваяю эмулятор РК86 на меге8515. т.к. очень люблю Algorithm Builder то пришлось переписать весь эмулятор z80 под него.
Что уже имею. Есть отдельно отлаженный эмуль z80 (как не странно я его запустил). есть отдельно отлаженный модуль эмуля ВГ75 и ВТ57 , выводит 64символа на 23строки. Теперь хочу все это поженить. В 8кило меги удалось поместить эмуль z80,вг75,вт57,знакогенератор и монитор. И еше осталось 1.5кило свободного места ). Проблема заключается в том ,что эмуль z80 хавает почти все регистры, но и эмуль вг75 тоже их немножко берет (. Короче извращаюсь как могу, но дело движется ).
|
03 Mar 2011 12:08 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
2_pwa75
Ну ты бы поделился проблемами, фотками штоль - мне тоже проект довольно близок...
|
03 Mar 2011 14:31 |
|
|
pwa75
Novelist
Joined: 03 Mar 2011 11:51 Posts: 27 Location: Адлер
|
вот плата
это я проверял эмуль вг75
первые извращения
Сейчас дело остановилось на женитбе эмуля вм80 и вг75. уже добился того, что эмуль вм 80 не мешает выводу на экран. Косяки по ходу гдето в эмуле 80го, т.к. код монитора исполняется до определенного момента. картинку пока увы не вижу . Если чесно ,выкинул из проекта все лишнее, оставил только сам код который эмулирует проц. дебаггер,работу с извращенной памятью, карточку ит.д все выкинул, даже rs232, т.к. мне оно даром не надо было
|
05 Mar 2011 06:09 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
В смысле ты DRAM выкинул и статику поставил? А то непонятно - сам говоришь, что регистров едва хватает... Или как?
|
05 Mar 2011 09:33 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну и как он на твой взгляд - удобен штоль? http://algrom.net/russian.htmlА то у меня друг недавно пересел за визуальный ассемблер. Говорит - да ну нафиг - смотри как удобно... квадратики ромбики... почти ни строчки кода... А я как-то всё больше по-старинке привык...
|
05 Mar 2011 09:51 |
|
|
pwa75
Novelist
Joined: 03 Mar 2011 11:51 Posts: 27 Location: Адлер
|
Да драм выкинул. Схема стандартная. Статика по стандартному включению. Добавлен только видеовыход как в рк86. АВ удобен мне при отладке,да и писать в нем удобно . Докладываю что получилось.
Женитьба удалась !! Также обнаружил косяк в эмуле ВМ80 ! После его исправления эмуль заработал. Вот где косяк
; *** Stage 1: Fetch next opcode
mov adrl,z_pcl
mov adrh,z_pch
rcall memReadByte
adiw z_pcl,1
Этой командой происходило увеличение только младшего байта адреса,теперь представте ситуацию когда адрес $50ff, после этой команды будет $5000 , вот и думайте дальше что произойдет.
Исправить также сдесь
do_fetch_dir8:
mov adrl,z_pcl
mov adrh,z_pch
rcall memReadByte
adiw z_pcl,1
mov opl,temp
ret
do_fetch_dir16:
mov adrl,z_pcl
mov adrh,z_pch
rcall memReadByte
mov opl,temp
adiw z_pcl,1
mov adrl,z_pcl
mov adrh,z_pch
rcall memReadByte
adiw z_pcl,1
mov oph,temp
ret
Знающий чел поймет как исправить эту ситуевину,я исправил так. переменным z_pcl и z_pch присвоил номера регисров Х.
|
05 Mar 2011 11:15 |
|
|
pwa75
Novelist
Joined: 03 Mar 2011 11:51 Posts: 27 Location: Адлер
|
по поводу регистров, вот что имеем
;Register definitions
.def z_a = r2
.def z_b = r3
.def z_c = r4
.def z_d = r5
.def z_e = r6
.def z_l = r7
.def z_h = r8
.def z_spl = r9
.def z_sph = r10
.def dsk_trk= r11
.def dsk_sec= r12
.def dsk_dmah= r13
.def dsk_dmal= r14
.def parityb= r15
.def temp = R16 ;The temp register
.def temp2 = R17 ;Second temp register
.def trace = r18
.def opl = r19
.def oph = r20
.def adrl = r21
.def adrh = r22
.def insdecl= r23
.def z_pcl = r24
.def z_pch = r25
.def insdech= r26
.def z_flags= r27
ну и что остается под свои нужды? смог только исключить регистры которые были нужны для эмуля жесткого диска r11,r12,r13,r14. Пришлось все остальное пихать в стек, с которым поимел немало гемороя при отладке . Проверить на железке смогу только в понедельник,т.к. все осталось на работе. но в отладчике уже все ок.
|
05 Mar 2011 11:25 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Что-то смысл я не сразу осознал...
А как же у тебя клавиатура теперь с РК общается?
|
06 Mar 2011 10:37 |
|
|
pwa75
Novelist
Joined: 03 Mar 2011 11:51 Posts: 27 Location: Адлер
|
По поводу клавы. ее вапще пока нет . Пока была задача все это дело запустить. Имею первые продвижения. Вся система запустилась. Даже запустил игруху . Но есть первые разочарования. скорости явно не хватает.видно как происходит очистка экрана
вот игра стакан
Идея раскидать эмуль вг75 и вм80 в разные процы была изначальной.
трудность в том что надо организовать общий доступ двух авров к одной срам. попытки были но к удаче не привели.как видно из фото выше, даже есть доп панелька на плате. кто может помоч в этом деле. есть даже идея сделать обмен данными через свободный порт D. а эмуль вг75 могу запихнуть в мегу8.вообще эмуль вг75 могу засунуть в любой проц где spi тактуется на /2 и 16мгц тактовая
|
07 Mar 2011 05:34 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Твоя идея или что-то за прототип брал?
Ну без схемы помочь в принципе трудно. То есть оба проца у тебя конфликтуют при обращении к СРАМ по spi?
Я почему-то думал, что ты СРАМ по-другому прицепил, исходя из схем здесь - выше...
|
07 Mar 2011 10:56 |
|
|
pwa75
Novelist
Joined: 03 Mar 2011 11:51 Posts: 27 Location: Адлер
|
да вроде такой дурости еще нигде не встречал
значит идея моя.Просто в инете не находил еще схемы где срам одна на два проца.SPI юзает вывод на экран, поэтому его использовать нельзя.
ну вот,вроде писал ,что срам по стандартной схеме.
вот вам схема
а вообще хотел вот так
|
07 Mar 2011 11:20 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Поставь вот такую двухпортовую DRAM, делай один цикл чтения строки RAS в порт SIO по запросу эмулятора ВГ75 (сама же ВГ75 так и делает, правда? за одно и проблему регенерации покроешь) и считывай потом строку символов из SIO как тебе надо. Ставятся эти DRAMы в сегах мега драйвах. Сам проц может обращаться как обычный RAS-CAS цикл. Она 4 бита, нужно 2 штуки. Но получаешь сразу 64КБ. Я такие хотел заюзать в спеце, чтобы вывод не конфликтовал. А может еще и заюзаю...
PS Эта DRAM поддерживает и ввод через SIO. :3
|
07 Mar 2011 12:05 |
|
|
Who is online |
Users browsing this forum: No registered users and 18 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|