|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Великий долгострой nedoSprinter
Великий долгострой nedoSprinter
Author |
Message |
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22735 Location: Silicon Valley
|
Вот так будут выглядеть в 640x350 старые программы, использующие экран в 256 строк: Кстати в новых графических режимах пользователь всё также сможет подключать видеопамять в своё окно построчно, записывая номер строки в порт #89. Чтобы записывать номера строк от 256 до 399, придётся задействовать второй порт - например #8A (записывая туда 0, юзер получит строку 256, 1 - 257 и т.д.). Да - эти порты будут работать только на запись... P.S. Могу по-быстрому подкрутить свой эмулятор Спринтера так, чтобы он эмулил новые графические режимы, если кому-то уже интересно потыкаться P.P.S. Все вышевывешенные картинки получены в моём эмуляторе, не использующем ни стандартный спринтеровский BIOS, ни стандартную спринтеровскую ось DSS - все поддержанные точки входа написаны на сях, т.е. перенести их на новое железо - не проблема...
Last edited by Shaos on 19 May 2013 19:06, edited 2 times in total.
|
19 May 2013 13:16 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22735 Location: Silicon Valley
|
Откопал, что в Спринтере скорость работы акселератора оценивалась так:
т.е. 7 миллионов байт в секунду. А у нас будет один байт за 6 системных клоков, которые с нашим кварцем 25.175 МГц составляют 12587500 периодов в секунду - делим на 6 и получаем 2 Мбайта в секунду - по идее не сильно меньше...
Last edited by Shaos on 22 May 2013 18:05, edited 1 time in total.
|
19 May 2013 15:29 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22735 Location: Silicon Valley
|
Вперёд вырывается название "А мне пофиг"
|
19 May 2013 20:53 |
|
|
Black_Cat
Doomed
Joined: 23 Nov 2007 15:53 Posts: 441 Location: Saint Petersburg, Russia
|
Назови: "IMak Z180". Названия в опросе - полная лажа.
_________________"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
|
20 May 2013 14:02 |
|
|
Black_Cat
Doomed
Joined: 23 Nov 2007 15:53 Posts: 441 Location: Saint Petersburg, Russia
|
Shaos, получается MMU с идеологией CP/M.. Напрашивается сама используемая OS..
_________________"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
|
20 May 2013 14:15 |
|
|
Black_Cat
Doomed
Joined: 23 Nov 2007 15:53 Posts: 441 Location: Saint Petersburg, Russia
|
А куда он денется, если у Zilog'a по статистике полуторный запас по частоте.
_________________"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
|
20 May 2013 14:20 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22735 Location: Silicon Valley
|
Годный пункт опроса - добавляю По поводу IMak - есть несколько причин так не называться...
Не знал - запомню...
|
20 May 2013 14:29 |
|
|
Black_Cat
Doomed
Joined: 23 Nov 2007 15:53 Posts: 441 Location: Saint Petersburg, Russia
|
Нам есть дело до ихних I и ихних Mak'ов?
_________________"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
|
20 May 2013 14:56 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22735 Location: Silicon Valley
|
|
20 May 2013 16:08 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22735 Location: Silicon Valley
|
| | | | Shaos wrote: Короче идея такая - каждый блок 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 (правда вторые 512 будут отличаться от первых только в одной цветовой составляющей, что тоже не мало). P.S. Вышеописанные половины и четвертины имеют отношение к режиму 640x400, в случае же режима 640x350 половинки четвертинок (восьмушки?) могут свободно переставляться в пределах экранных 7 зон, таская за собой палитры из своих половинок | | | | |
Спринтер на самом деле имеет 2 страницы видеопамяти, которые имеют свои палитры и могут переключаться в видимой части экрана, а программа, чтобы писать во вторую страницу, должна в подключаемой строке копировать пикселы по смещению 320 вместо смещения 0. Однако этим свойством пользуется только пара программ, причём я в эмуляторе реализовал это простым копированием на экран даже когда программа пишет в теневую страницу - работает нормально разве что вместо мгновенного переключения видна заливка.
В нашем же случае вторая страница добавляется только для режима 320x200 и находится она не сбоку, а снизу - и у этих двух страниц таки тоже разные палитры.
P.S. Ещё из отличий - наш 16-цветный режим будет иметь фиксированную EGA-палитру (скоростёнки не хватит ещё и на 640 точек в строку палитру натягивать).
|
20 May 2013 16:33 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22735 Location: Silicon Valley
|
Кстати наверное таки надо заюзать бортовой MMU - хотя бы для первой версии.
А порты переключения окон, как и предполагал в 2010, сделать через прерывания - DMA будет копировать в статически подцепленную область (это достаточно быстро).
Единственное перемещаемое окно буду юзать только для работы с видеопамятью или часто необходимыми данными...
P.S. Текстовые режимы тоже пусть будут эмулируемыми - для первой версии потянет
P.P.S. Позже может и ZX-режим прикручу - где нибудь сбоку
|
21 May 2013 13:22 |
|
|
Black_Cat
Doomed
Joined: 23 Nov 2007 15:53 Posts: 441 Location: Saint Petersburg, Russia
|
Ты всё перекраиваешь, а как быть с софтом, вроде даж там ось была, как она с твоими переделками будет работать?
_________________"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
|
21 May 2013 14:55 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22735 Location: Silicon Valley
|
Никак - ось будет моя, совместимая по наиболее популярным точкам входа (которые в моём эмуле эмулятся) - 100% совместимость для работы родного BIOS и DSS ненужна - главное заставить работать те десять программ, что запускаются в эмуле ну и плюс мои наработки сохранить и передать в будущее
|
21 May 2013 15:50 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22735 Location: Silicon Valley
|
Настоящими портами будут только порты вида #AAxx, которые будут выделяться динамически "интеллектуальным" платам, а все остальные порты будут одним физическим портом, при чтении или записи в который будет вызывать прерывание NMI (такое же как и при использовании команд акселератора) - обработчик прерывания будет определять что произошло, акселератор ли это или в порт обращаются (обработчик по адресу из стека может почитать какая команда была в момент прерывания), брать значение и что-то делать - так можно эмулировать переключение страниц памяти как в Спринтере (4 порта) или как в 128/Пентагоне/Скорпионе, да даже и порт #FE можно так поддержать - главно всё программно.
P.S. У Z180 есть фича TRAP-прерываний в случае вызова неизвестной команды процессора - так можно поддержать "недокументированные" команды Z80, если они тут непосредственно не поддерживаются (я не уверен) - т.е. сэмулировать их программно...
|
21 May 2013 16:10 |
|
|
Black_Cat
Doomed
Joined: 23 Nov 2007 15:53 Posts: 441 Location: Saint Petersburg, Russia
|
10 программ это всё, что есть для Спринтера? А где про ось почитать, как она привязывается к железу?
_________________"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
|
21 May 2013 16:32 |
|
|
Who is online |
Users browsing this forum: No registered users and 1 guest |
|
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
|
|