nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 20 Nov 2018 13:24



Reply to topic  [ 98 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7  Next
[Zpring] Великий долгострой nedoSprinter на Z180 и Xilinx(?) 

Как назвать железяку, чтобы юзеры потянулись?
Zprint 10%  10%  [ 1 ]
Zpring 20%  20%  [ 2 ]
Zprinx 0%  0%  [ 0 ]
Неважно т.к. ничего не получится 10%  10%  [ 1 ]
А мне пофиг 40%  40%  [ 4 ]
Названия в опросе - полная лажа 20%  20%  [ 2 ]
Total votes : 10

[Zpring] Великий долгострой nedoSprinter на Z180 и Xilinx(?) 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17147
Location: Colorado
Reply with quote
Post 
Вот так будут выглядеть в 640x350 старые программы, использующие экран в 256 строк:

Image
Image
Image
Image
Image
Image
Image
Image
Image
Image

Кстати в новых графических режимах пользователь всё также сможет подключать видеопамять в своё окно построчно, записывая номер строки в порт #89. Чтобы записывать номера строк от 256 до 399, придётся задействовать второй порт - например #8A (записывая туда 0, юзер получит строку 256, 1 - 257 и т.д.). Да - эти порты будут работать только на запись...

P.S. Могу по-быстрому подкрутить свой эмулятор Спринтера так, чтобы он эмулил новые графические режимы, если кому-то уже интересно потыкаться :roll:

P.P.S. Все вышевывешенные картинки получены в моём эмуляторе, не использующем ни стандартный спринтеровский BIOS, ни стандартную спринтеровскую ось DSS - все поддержанные точки входа написаны на сях, т.е. перенести их на новое железо - не проблема...

_________________
:eugeek: https://twitter.com/Shaos1973


Last edited by Shaos on 19 May 2013 20:06, edited 2 times in total.



19 May 2013 14:16
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17147
Location: Colorado
Reply with quote
Post 
Shaos wrote:
Задействовать дополнительне разряды адреса от Z180 (A17,A18,A19) скорее всего не получится, т.к. бортовой MMU делит доступную память на 3 части, причём первая часть - это всегда начало памяти, а последняя - это всегда конец, т.е. перемещаться по большой памяти может только среднее окно, а нам надо 4 независимых области по 16K...

P.S. Хотя эти биты адреса можно для DMA пересылок использовать - ведь ему весь мегабайт физически доступен будет и скорость у него приличная - один байт за 6 системных клоков (частота кварца делённая пополам).

Откопал, что в Спринтере скорость работы акселератора оценивалась так:
Quote:
Time of the Acelerator work = number of bytes / 7000000

т.е. 7 миллионов байт в секунду. А у нас будет один байт за 6 системных клоков, которые с нашим кварцем 25.175 МГц составляют 12587500 периодов в секунду - делим на 6 и получаем 2 Мбайта в секунду - по идее не сильно меньше... :roll:

_________________
:eugeek: https://twitter.com/Shaos1973


Last edited by Shaos on 22 May 2013 19:05, edited 1 time in total.



19 May 2013 16:29
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17147
Location: Colorado
Reply with quote
Post 
Shaos wrote:
Shaos wrote:
Открыл опрос вначале этого топика:

http://www.nedopc.org/forum/viewtopic.php?t=8869


Как-то вяло голосуем - добавил ещё 2 варианта ответа - про то что ничего не получится и классический "мне пофиг" :roll:

P.S. Zpring пока побеждает - я сам к этому названию склоняюсь, т.к. придумал его применительно к Спринтеру ещё 8 лет назад, правда речь там шла только про эмулятор...


Вперёд вырывается название "А мне пофиг" :lol:

_________________
:eugeek: https://twitter.com/Shaos1973


19 May 2013 21:53
Profile WWW
Doomed
User avatar

Joined: 23 Nov 2007 16:53
Posts: 346
Location: Saint Petersburg, Russia
Reply with quote
Post 
Назови: "IMak Z180". Названия в опросе - полная лажа.

_________________
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.


20 May 2013 15:02
Profile WWW
Doomed
User avatar

Joined: 23 Nov 2007 16:53
Posts: 346
Location: Saint Petersburg, Russia
Reply with quote
Post 
Shaos wrote:
Задействовать дополнительне разряды адреса от Z180 (A17,A18,A19) скорее всего не получится, т.к. бортовой MMU делит доступную память на 3 части, причём первая часть - это всегда начало памяти, а последняя - это всегда конец, т.е. перемещаться по большой памяти может только среднее окно, а нам надо 4 независимых области по 16K...

Shaos, получается MMU с идеологией CP/M.. Напрашивается сама используемая OS..

_________________
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.


20 May 2013 15:15
Profile WWW
Doomed
User avatar

Joined: 23 Nov 2007 16:53
Posts: 346
Location: Saint Petersburg, Russia
Reply with quote
Post 
Shaos wrote:
А для Z180 33MHz можно попробовать 36MHz (800x600@56) - вдруг заведётся...
А куда он денется, если у Zilog'a по статистике полуторный запас по частоте.

_________________
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.


20 May 2013 15:20
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17147
Location: Colorado
Reply with quote
Post 
Black_Cat wrote:
Назови: "IMak Z180". Названия в опросе - полная лажа.


Годный пункт опроса - добавляю

По поводу IMak - есть несколько причин так не называться...

Black_Cat wrote:
Shaos wrote:
А для Z180 33MHz можно попробовать 36MHz (800x600@56) - вдруг заведётся...
А куда он денется, если у Zilog'a по статистике полуторный запас по частоте.


Не знал - запомню...

_________________
:eugeek: https://twitter.com/Shaos1973


20 May 2013 15:29
Profile WWW
Doomed
User avatar

Joined: 23 Nov 2007 16:53
Posts: 346
Location: Saint Petersburg, Russia
Reply with quote
Post 
Shaos wrote:
По поводу IMak - есть несколько причин так не называться...

Нам есть дело до ихних I и ихних Mak'ов?

_________________
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.


20 May 2013 15:56
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17147
Location: Colorado
Reply with quote
Post 
Black_Cat wrote:
Shaos wrote:
По поводу IMak - есть несколько причин так не называться...

Нам есть дело до ихних I и ихних Mak'ов?


В том числе...

_________________
:eugeek: https://twitter.com/Shaos1973


20 May 2013 17:08
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17147
Location: Colorado
Reply with quote
Post 
Shaos wrote:
Shaos wrote:
Потом есть мысль таки разделить видеопамять на 4 микросхемы по 32K, которые будут использоваться не только как хранилище пикселов, но и палитры - т.е. когда работаем с одной микросхемой, три другие выступают в роли кодировщика цвета по палитре - я прикинул, всё влазит! Но т.к. память только 70 нс, то придётся некое подобие конвейера делать - пока один пиксел декодится в RGB, следующий пиксел в тоже самое время будет считываться из видеопамяти...

Короче идея такая - каждый блок 16K в конце содержит пустое место равное 16384-320*50 = 384 байта, в которое отлично влезут 256 байт палитры для одной из цветовых составляющих (R,G или B). В каждой микросхеме 32K будут 2 таких блока - по адресу 011 1111 xxxx xxxx и по адресу 111 1111 xxxx xxxx. Соответственно пишем в них:

- первая микросхема: Red (для второй) и Red (для третьей и четвёртой);
- вторая микросхема: Red (для первой) и Green (для третьей и четвёртой);
- третья микросхема: Green (для первой и второй) и Blue (для четвёртой);
- четвёртая микросхема: Blue (для первой и второй) и Blue (для третьей).

Когда на экран выводится содержимое первой или второй микросхемы, то мы обращаемся к первым 256 байтам палитры трёх остальных микросхем (011 1111 xxxx xxxx), а когда с третьей и четвёртой, то ко вторым 256 байтам палитры (111 1111 xxxx xxxx). Кроме того есть интересная возможность для хакеров и демомейкеров положить разные таблички в одноимённые области (например может быть три разных блока R и три разных B, а также два разных блока G). Как минимум можно иметь 2 разные палитры для верхней половины экрана и для нижней половины экрана. Четверти экрана в половинках также могут друг от друга отличаться, но не полностью, а частично - например первая и вторая четвертинки могут иметь разные составляющие R, а третья и четвёртая - разные составляющие B - т.е. общее количество различных цветов в пределах экрана будет уже не 256, а 1024 :o (правда вторые 512 будут отличаться от первых только в одной цветовой составляющей, что тоже не мало).

P.S. Вышеописанные половины и четвертины имеют отношение к режиму 640x400, в случае же режима 640x350 половинки четвертинок (восьмушки?) могут свободно переставляться в пределах экранных 7 зон, таская за собой палитры из своих половинок :roll:


Спринтер на самом деле имеет 2 страницы видеопамяти, которые имеют свои палитры и могут переключаться в видимой части экрана, а программа, чтобы писать во вторую страницу, должна в подключаемой строке копировать пикселы по смещению 320 вместо смещения 0. Однако этим свойством пользуется только пара программ, причём я в эмуляторе реализовал это простым копированием на экран даже когда программа пишет в теневую страницу - работает нормально разве что вместо мгновенного переключения видна заливка.

В нашем же случае вторая страница добавляется только для режима 320x200 и находится она не сбоку, а снизу - и у этих двух страниц таки тоже разные палитры. :roll:

P.S. Ещё из отличий - наш 16-цветный режим будет иметь фиксированную EGA-палитру (скоростёнки не хватит ещё и на 640 точек в строку палитру натягивать).

_________________
:eugeek: https://twitter.com/Shaos1973


20 May 2013 17:33
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17147
Location: Colorado
Reply with quote
Post 
Black_Cat wrote:
Shaos wrote:
Задействовать дополнительне разряды адреса от Z180 (A17,A18,A19) скорее всего не получится, т.к. бортовой MMU делит доступную память на 3 части, причём первая часть - это всегда начало памяти, а последняя - это всегда конец, т.е. перемещаться по большой памяти может только среднее окно, а нам надо 4 независимых области по 16K...

Shaos, получается MMU с идеологией CP/M.. Напрашивается сама используемая OS..


Кстати наверное таки надо заюзать бортовой MMU - хотя бы для первой версии.
А порты переключения окон, как и предполагал в 2010, сделать через прерывания - DMA будет копировать в статически подцепленную область (это достаточно быстро).
Единственное перемещаемое окно буду юзать только для работы с видеопамятью или часто необходимыми данными...

P.S. Текстовые режимы тоже пусть будут эмулируемыми - для первой версии потянет :roll:

P.P.S. Позже может и ZX-режим прикручу - где нибудь сбоку :dj:

_________________
:eugeek: https://twitter.com/Shaos1973


21 May 2013 14:22
Profile WWW
Doomed
User avatar

Joined: 23 Nov 2007 16:53
Posts: 346
Location: Saint Petersburg, Russia
Reply with quote
Post 
Ты всё перекраиваешь, а как быть с софтом, вроде даж там ось была, как она с твоими переделками будет работать?

_________________
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.


21 May 2013 15:55
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17147
Location: Colorado
Reply with quote
Post 
Black_Cat wrote:
Ты всё перекраиваешь, а как быть с софтом, вроде даж там ось была, как она с твоими переделками будет работать?

Никак - ось будет моя, совместимая по наиболее популярным точкам входа (которые в моём эмуле эмулятся) - 100% совместимость для работы родного BIOS и DSS ненужна - главное заставить работать те десять программ, что запускаются в эмуле ну и плюс мои наработки сохранить и передать в будущее :)

_________________
:eugeek: https://twitter.com/Shaos1973


21 May 2013 16:50
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17147
Location: Colorado
Reply with quote
Post 
Shaos wrote:
Black_Cat wrote:
Shaos wrote:
Задействовать дополнительне разряды адреса от Z180 (A17,A18,A19) скорее всего не получится, т.к. бортовой MMU делит доступную память на 3 части, причём первая часть - это всегда начало памяти, а последняя - это всегда конец, т.е. перемещаться по большой памяти может только среднее окно, а нам надо 4 независимых области по 16K...

Shaos, получается MMU с идеологией CP/M.. Напрашивается сама используемая OS..


Кстати наверное таки надо заюзать бортовой MMU - хотя бы для первой версии.
А порты переключения окон, как и предполагал в 2010, сделать через прерывания - DMA будет копировать в статически подцепленную область (это достаточно быстро).
Единственное перемещаемое окно буду юзать только для работы с видеопамятью или часто необходимыми данными...


Настоящими портами будут только порты вида #AAxx, которые будут выделяться динамически "интеллектуальным" платам, а все остальные порты будут одним физическим портом, при чтении или записи в который будет вызывать прерывание NMI (такое же как и при использовании команд акселератора) - обработчик прерывания будет определять что произошло, акселератор ли это или в порт обращаются (обработчик по адресу из стека может почитать какая команда была в момент прерывания), брать значение и что-то делать - так можно эмулировать переключение страниц памяти как в Спринтере (4 порта) или как в 128/Пентагоне/Скорпионе, да даже и порт #FE можно так поддержать - главно всё программно. :)

P.S. У Z180 есть фича TRAP-прерываний в случае вызова неизвестной команды процессора - так можно поддержать "недокументированные" команды Z80, если они тут непосредственно не поддерживаются (я не уверен) - т.е. сэмулировать их программно...

_________________
:eugeek: https://twitter.com/Shaos1973


21 May 2013 17:10
Profile WWW
Doomed
User avatar

Joined: 23 Nov 2007 16:53
Posts: 346
Location: Saint Petersburg, Russia
Reply with quote
Post 
Shaos wrote:
Black_Cat wrote:
Ты всё перекраиваешь, а как быть с софтом, вроде даж там ось была, как она с твоими переделками будет работать?

Никак - ось будет моя, совместимая по наиболее популярным точкам входа (которые в моём эмуле эмулятся) - 100% совместимость для работы родного BIOS и DSS ненужна - главное заставить работать те десять программ, что запускаются в эмуле ну и плюс мои наработки сохранить и передать в будущее :)

10 программ это всё, что есть для Спринтера? А где про ось почитать, как она привязывается к железу?

_________________
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.


21 May 2013 17:32
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 98 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7  Next

Who is online

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