nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 05:54



Reply to topic  [ 79 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next
NedoPC с CP/M на ATMega88 -> РК-шка на Атмеге 
Author Message
Doomed

Joined: 27 Jan 2010 03:45
Posts: 434
Location: 83.149.9.42
Reply with quote
можёт и было где...
Image
Image
Image

страница проекта:
http://spritesmods.com/?art=avrcpm


01 May 2010 06:03
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
а я на SX-28 хотел сделать CP/M-машину, но остановился из-за нехватки времени
у чувака судя по всему всё закрыто - надо мне свой опен-сорцный вариант чтоли как-нибудь доделать...

_________________
:dj: https://mastodon.social/@Shaos


01 May 2010 06:43
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
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
Image
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, тоже интересен и весьма похож на тот.

Описание и документация автора несколько сумбурны, так что сразу я этот проект отложил, но в празднички решил попробовать.
Сначала пришлось привести в божеский вид вот этот "чертёж":

Image

И, надеюсь, я не напортачил лишнего:

Image
http://sgu-wap.narod.ru/SP_Z80/CP_M/SKC_sch88.png

И для начала я решил дать "толчок" проекту в Протезусе. (Обычно у меня это получается, но на AVR до сих пор ничего не пробовал.)
Замечательной авторской памяти – GM71C4 256A 128 KB, 4-bit DRAM chip – у меня в Протезусе не нашлось, поэтому пришлось заменить её двумя чипами половинной ёмкости, разбросав по ним сигналы /OE и /WE согласно состоянию сигнала А8.

Image
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 сразу не требуются.
Но - "от винта"… сразу этого не случилось… :(
Вот такой старт, как у автора, мне на консоли Протезуса лицезреть не удалось.

Image

В общем - некоторое "обломинго" с разбегу… :( Ну что ж - буду посмотреть…
Хотя…сам автор упоминает, что ошибок у него дофига…

Короче, кому это интересно, документацию по проекту можно взять вот здесь,
http://sgu-wap.narod.ru/SP_Z80/CP_M/AVR_CP_M.rar
раз уж я потратил на это время. Может - у кого получится.
Прав автора мы не нарушим - всё это у него licensed under the GPLv3.


04 Jan 2011 00:20
Profile
Novelist

Joined: 03 Mar 2011 11:51
Posts: 27
Location: Адлер
Reply with quote
Тоже понравился этот проектик. Решил его взять на вооружение. Вот уже пару месяцев ваяю эмулятор РК86 на меге8515. т.к. очень люблю Algorithm Builder то пришлось переписать весь эмулятор z80 под него.
Что уже имею. Есть отдельно отлаженный эмуль z80 (как не странно я его запустил). есть отдельно отлаженный модуль эмуля ВГ75 и ВТ57 , выводит 64символа на 23строки. Теперь хочу все это поженить. В 8кило меги удалось поместить эмуль z80,вг75,вт57,знакогенератор и монитор. И еше осталось 1.5кило свободного места ). Проблема заключается в том ,что эмуль z80 хавает почти все регистры, но и эмуль вг75 тоже их немножко берет (. Короче извращаюсь как могу, но дело движется ).


03 Mar 2011 12:08
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
2_pwa75
Ну ты бы поделился проблемами, фотками штоль - мне тоже проект довольно близок...


03 Mar 2011 14:31
Profile
Novelist

Joined: 03 Mar 2011 11:51
Posts: 27
Location: Адлер
Reply with quote
Post 
Image
вот плата
Image
это я проверял эмуль вг75
Image
первые извращения
Сейчас дело остановилось на женитбе эмуля вм80 и вг75. уже добился того, что эмуль вм 80 не мешает выводу на экран. Косяки по ходу гдето в эмуле 80го, т.к. код монитора исполняется до определенного момента. картинку пока увы не вижу . Если чесно ,выкинул из проекта все лишнее, оставил только сам код который эмулирует проц. дебаггер,работу с извращенной памятью, карточку ит.д все выкинул, даже rs232, т.к. мне оно даром не надо было :)


05 Mar 2011 06:09
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
pwa75 wrote:
работу с извращенной памятью, карточку ит.д все выкинул,

В смысле ты DRAM выкинул и статику поставил? А то непонятно - сам говоришь, что регистров едва хватает... Или как?


05 Mar 2011 09:33
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
pwa75 wrote:
очень люблю Algorithm Builder

Ну и как он на твой взгляд - удобен штоль?

Attachment:
example.gif
example.gif [ 28.41 KiB | Viewed 866 times ]
http://algrom.net/russian.html

А то у меня друг недавно пересел за визуальный ассемблер.
Говорит - да ну нафиг - смотри как удобно... квадратики
ромбики... почти ни строчки кода...

А я как-то всё больше по-старинке привык... :wink:


05 Mar 2011 09:51
Profile
Novelist

Joined: 03 Mar 2011 11:51
Posts: 27
Location: Адлер
Reply with quote
Да драм выкинул. Схема стандартная. Статика по стандартному включению. Добавлен только видеовыход как в рк86. АВ удобен мне при отладке,да и писать в нем удобно :wink: . Докладываю что получилось.
Женитьба удалась !! Также обнаружил косяк в эмуле ВМ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
Profile
Novelist

Joined: 03 Mar 2011 11:51
Posts: 27
Location: Адлер
Reply with quote
Post 
по поводу регистров, вот что имеем
;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
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
pwa75 wrote:
все выкинул, даже rs232, т.к. мне оно даром не надо было

Что-то смысл я не сразу осознал... :wink:
А как же у тебя клавиатура теперь с РК общается?


06 Mar 2011 10:37
Profile
Novelist

Joined: 03 Mar 2011 11:51
Posts: 27
Location: Адлер
Reply with quote
Post 
По поводу клавы. ее вапще пока нет :D . Пока была задача все это дело запустить. Имею первые продвижения. Вся система запустилась. Даже запустил игруху :) . Но есть первые разочарования. скорости явно не хватает.видно как происходит очистка экрана
вот игра стакан
Image

Идея раскидать эмуль вг75 и вм80 в разные процы была изначальной.
трудность в том что надо организовать общий доступ двух авров к одной срам. попытки были но к удаче не привели.как видно из фото выше, даже есть доп панелька на плате. кто может помоч в этом деле. есть даже идея сделать обмен данными через свободный порт D. а эмуль вг75 могу запихнуть в мегу8.вообще эмуль вг75 могу засунуть в любой проц где spi тактуется на /2 и 16мгц тактовая


07 Mar 2011 05:34
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
pwa75 wrote:
Идея раскидать эмуль вг75 и вм80 в разные процы была изначальной.

Твоя идея или что-то за прототип брал?

pwa75 wrote:
кто может помоч в этом деле. есть даже идея сделать обмен данными через свободный порт D. а эмуль вг75 могу запихнуть в мегу8.вообще эмуль вг75 могу засунуть в любой проц где spi тактуется на /2 и 16мгц тактовая

Ну без схемы помочь в принципе трудно. То есть оба проца у тебя конфликтуют при обращении к СРАМ по spi?
Я почему-то думал, что ты СРАМ по-другому прицепил, исходя из схем здесь - выше...


07 Mar 2011 10:56
Profile
Novelist

Joined: 03 Mar 2011 11:51
Posts: 27
Location: Адлер
Reply with quote
Post 
да вроде такой дурости еще нигде не встречал
значит идея моя.Просто в инете не находил еще схемы где срам одна на два проца.SPI юзает вывод на экран, поэтому его использовать нельзя.
ну вот,вроде писал ,что срам по стандартной схеме.
вот вам схема

Image

а вообще хотел вот так

Image


07 Mar 2011 11:20
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Поставь вот такую двухпортовую DRAM, делай один цикл чтения строки RAS в порт SIO по запросу эмулятора ВГ75 (сама же ВГ75 так и делает, правда? за одно и проблему регенерации покроешь) и считывай потом строку символов из SIO как тебе надо. Ставятся эти DRAMы в сегах мега драйвах. Сам проц может обращаться как обычный RAS-CAS цикл. Она 4 бита, нужно 2 штуки. Но получаешь сразу 64КБ. Я такие хотел заюзать в спеце, чтобы вывод не конфликтовал. А может еще и заюзаю...

PS Эта DRAM поддерживает и ввод через SIO. :3


07 Mar 2011 12:05
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 79 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next

Who is online

Users browsing this forum: No registered users and 9 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

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.