mvg (newbie)
2002/09/26 22:21
|
Тех. вопросы
|
| |
Здравствуйте.
Не лишними были -бы нек. дополнительные тех. данные по Спринтеру.
Один из "упущенных" вопросов - раскладка клавиатуры в режиме Спринтера.
Так "неотыскалась" клавиша rus/lat..... блин.....
Непонятно, как генерить звук не через AY.
И главное. Нигде не нашел карту памяти при работе с estex. Можно - ли выгрузить часть кода ос. А то адресов $8000-$bfff маловато как - то :(.
С Уважением Сергей.
|
Alex_Goryachev (Sprinter Team)
2002/09/27 11:02
|
|
Русская раскладка - ЙЦУКЕН. Переключается нажатием <Ctrl>+<Space>.
На вопрос о выводе звука ответит (надеюсь сегодня ночью) Ivan Mak. Замечу, только, что лучше забыть про AY в конфигурации Sprinter. Для вывода звука давно используется аудио система, имеющая сегодня два режима: режим Covox и режим Covox с буфером.
На вопрос о распределении памяти при обращении к Estex ответит Denis Parinov.
---
PETERS PLUS LTD
|
Shaos (enthusiast)
2002/09/27 11:37
|
|
> лучше забыть про AY в конфигурации Sprinter
А почему забыть? Очень хорошая штучка - думаю не помешает и в конфигурации Sprinter - нпаример для простых игрушек, ненапряжного для процессора музыкального сопровождения программ и т.д.
Alexander Shabarshin (shaos@mail.ru)
http://www.shaos.ru
|
Shaos (enthusiast)
2002/09/27 11:40
|
|
> как генерить звук не через AY
форум надо читать внимательнее :)
Alexander Shabarshin (shaos@mail.ru)
http://www.shaos.ru
|
Alex_Goryachev (Sprinter Team)
2002/09/27 14:29
|
|
Дело в том, что мы продолжаем рассматривать различные варианты дальнейшего развития архитектуры компьютера. AY занимает определенный кусок в ПЛМ. При удалении AY из конфигурации Sprinter, освободившиеся ячейки можно было бы использовать с большей пользой.
Но, ни что не будет мешает использовать прошивку со "старой" конфигурацией Sprinter, где AY сохранится.
А что касается "напряжной работы процессора", то разве демки Doom и Mortal Kombat не показали возможности спринтеровской аудио системы?
---
PETERS PLUS LTD
|
Shaos (enthusiast)
2002/09/27 18:03
|
|
> Но, ни что не будет мешает использовать прошивку со "старой" конфигурацией Sprinter, где AY сохранится.
Я считаю, что от эмуляции AY ни в коем случае не надо отказываться! Если еще появится проигрыватель PT3 в режиме Спринтера, то вообще будет суперкруто! :)
> А что касается "напряжной работы процессора", то разве демки Doom и Mortal Kombat не показали
> возможности спринтеровской аудио системы?
К сожалению не смог это лицезреть, у меня нестанартный винчестер, и средствами TRD-шек он не виден. Когда появятся обещанные версии в виде EXE-файлов? ;)
Alexander Shabarshin (shaos@mail.ru)
http://www.shaos.ru
|
Denis Parinov (Sprinter Team)
2002/09/27 18:04
|
|
> И главное. Нигде не нашел карту памяти при работе с estex. Можно - ли выгрузить часть кода ос. А то адресов $8000-$bfff маловато как - то :(.
Там все просто четыре окна памяти по 16К. Нижние окно используется для системы/BIOS. Я уже писал по поводу памяти на форуме вот здесь.
Насчет 8000-BFFF это рекомендация, если программа небольшая лучше ее расположить в этих адресах. Но использовать можно все 48К или 64К, если не использовать вызовы системы.
|
Mvg (newbie)
2002/09/27 19:12
|
|
Не есть хорошо.....
Если придется не вызывать Estex - будет тяжко... ну ладно, что - нибудь придумаю ..... :)
С Уважением Сергей.
|
Mvg (newbie)
2002/09/28 11:15
|
|
Здравствуйте !
Очередной вопрос.
Почему c:\FN\gfxview.exe c:\example.bmp работает,
а c:\FN\gfxview.exe c:\1\example.flc - не очень.
Путь к файлу обрабатывается на уровне доса или это делает прикладная прога? Объясняю, зачем это надо.
1. Из любого каталога надо иметь доступ к каталогу с утилитами, которые должны обрабатывать файлы в любом каталоге, в т.ч. и в исходном.
С Уважением Сергей.
|
Alex_Goryachev (Sprinter Team)
2002/09/28 15:01
|
|
Путь к файлу, разумеется, разбирается на уровне операционной системы. Напомню, что нужно использовать полные пути к файлам.
А что касается вьювера gfxview.exe , то он не работает с фликами, есть другой вьювер для этого. А BMP файлы можно просматривать из любого каталога на диске, не только из корневого или текущего. Специально проверил просмотр картинок из каталога C:\1\.
---
PETERS PLUS LTD
|
Ivan_Mak (Sprinter Team)
2002/09/28 18:04
|
|
С AY все просто. Сейчас он доступен по тем же портам, как и в ZX-Spectrum и программируетса точно так же, как и в ZX-Spectrum.
|
Mvg (newbie)
2002/09/28 20:32
|
|
Здравствуйте!
Уважаемые разработчики.
В процессе работы с Estex выявленые след.
странности :)
1. Тек. каталог c:\fn
даю команду b:
Получаю что????
Правильно - b:\fn ,блин ..... а каталога fn\ диске b нет!!!
конечно нажать cd\ нетрудно, но все - таки сыровато .....
2. Дальше интереснее ....
из b:\fn даю dir - ругается, далее даю
c:
получаю c:\fn - вроде правильно .... НО !!! ВНИМАНИЕ !!!
ДАЮ fn.exe !!!! На экране FLEX???? а нет его (bad command or file name)...
3. Если между 1 и 2 пунктом не давать dir - flex нормально запускается.
Вопрос по этому поводу ... Это баг командкома или дос-а???
т.е. не проявляется - ли ЭТО при обращении к ф-ям dos-a???
Небольшая рекомендация по обновлению biosа.
Ну НЕТУ у меня флопа А !!!!!! А выключить неполучаетя !!! Неужели трудно
завести отключение несуществующих девайсов (вот винты то у вас отключаются),
кстати можно сделать режим конфигурирования alter-ы - т.е. если юзеру не нужен
AY пусть его отключит - освободит "кусок плиса" под что -нибудь другое (вам виднее
под что).
Небодьшой вопрос ... Какие коды кроме 0d 0a обрабатывают ф-и символьного вывода?
Типа 0С - home 1F - CLS 08 -left помнится я их еще на РК86 юзал... Приятные коды...
И правильные :)
С Уважением Вылавливающий Насекомых Сергей.
|
Denis Parinov (Sprinter Team)
2002/09/29 04:04
|
|
> Не есть хорошо.....
> Если придется не вызывать Estex - будет тяжко...
Да почему же тяжко? DSS нельзя будет вызвать только когда его код закрыт другой страницей памяти. Ни что не мешает. Закрыть DSS, сделать необходимые операции с памятью (64К), после чего вернуть страницу DSS обратно.
DI
IN A,(#82)
LD (DSSPAGE),A
LD A,MYPAGE
OUT (#82),A
.
.
.
LD A,(DSSPAGE)
OUT (#82),A
EI
|
Denis Parinov (Sprinter Team)
2002/09/29 04:15
|
|
> Путь к файлу, разумеется, разбирается на уровне операционной системы. Напомню, что нужно использовать полные пути к файлам.
Здесь стоит добавить, что это рекомендация, как и 8000-BFFF относительно памяти. Можно использовать, как относительные так и полные пути к файлам, но быть готовым к тому, что версия DSS 1.5x изменяет текущий путь при запуске программ. Соответственно текущим будет путь расположения програмы, а не тот из которого она была запущена.
|
Denis Parinov (Sprinter Team)
2002/09/29 04:51
|
|
Попробую объяснить логику.
> 1. Тек. каталог c:\fn
> даю команду b:
> Получаю что????
> Правильно - b:\fn ,блин ..... а каталога fn\ диске b нет!!! конечно нажать cd\ нетрудно, но все - таки сыровато .....
Команда "drive:" изменяет текущий диск.
Для смены текущего каталога используется "cd \dir\dir".
Дело в том что MSDOS для каждого диска использует свой текущий каталог, здесь же он один.
Для смены диска и каталога можно использовать "cd b:\".
> 2. Дальше интереснее ....
> из b:\fn даю dir - ругается, далее даю
dir - без параметров, выводит список файлов из текущего каталога. Текущий каталог задан неверно - о чем и сообщается.
> c:
> получаю c:\fn - вроде правильно .... НО !!! ВНИМАНИЕ !!!
> ДАЮ fn.exe !!!! На экране FLEX???? а нет его (bad command or file name)...
> 3. Если между 1 и 2 пунктом не давать dir - flex нормально запускается.
Данная проблема возникает из-за очистки кеша при смене текущего диска и обращении к нему. Задание валидного текущего каталога решит ее.
> Вопрос по этому поводу ... Это баг командкома или дос-а???
> т.е. не проявляется - ли ЭТО при обращении к ф-ям dos-a???
Это особенности DSS, вызванные некоторыми отличиями от MSDOS.
В следующих версиях мы реализуем более привычный пользователям способ работы с текущим каталогом.
> Небольшая рекомендация по обновлению biosа.
> Ну НЕТУ у меня флопа А !!!!!! А выключить неполучаетя !!! Неужели трудно
завести отключение несуществующих девайсов (вот винты то у вас отключаются)
Эта возможность специально была заблокиравана, после того, как у наших пользователей возникли сложности с подключением дисководов.
Дело в том что 3.5" изначально делаются как второй дисковод. На PC для того чтобы устройство казалось первым используются перевернутые контакты FDD-кабеля. Поэтому на Спринтере многие отключали второй дисковод в SETUP после чего не могли загрузить систему.
> Небодьшой вопрос ... Какие коды кроме 0d 0a обрабатывают ф-и символьного вывода?
> Типа 0С - home 1F - CLS 08 -left помнится я их еще на РК86 юзал... Приятные коды...
08, 09, 0a, 0d.
|
Anton Enin (member)
2002/09/30 06:02
|
|
>Почему c:\FN\gfxview.exe c:\example.bmp работает,
>а c:\FN\gfxview.exe c:\1\example.flc - не очень.
всё просто Gfx Viewer не просматривает файлы .flc, а только
.bmp, .img, .ico, .pcx, .scr :) для просмотра .flc используй Flic Player...
Антон
|
Anton Enin (member)
2002/09/30 06:09
|
|
кста, о звуке... слишком тяжко z80 микшировать семплы для ковокс... особенно 16-бит/44khz + несколько каналов :)
может подумать о аппаратном микшере... ?!
tanx...
|
Mvg (journeyman)
2002/10/17 12:09
|
|
Здравствуйте.
Очень насущный вопрс.
Как конкретно работать с lpt портом???
Нужны адреса, побитно расписаные сигналы.
Желательно с примерами. (и не через dss,bios).
Нужно именно физическое обращение.
С Уважением Сергей.
|
Mvg (journeyman)
2002/10/18 23:15
|
|
Здравствуйте!!!!
Так как всетаки с принтерным портом. Все еще нужно описание.
С Уважением Сергей
|
Ivan_Mak (Sprinter Team)
2002/10/18 23:25
|
Краткая информация по LPT порту компьютера Sprinter
[re: Mvg] |
| |
Краткая информация по LPT порту компьютера Sprinter
---------------------------------------------------
В дополнение к этой информации необходимо иметь
техническое описание на Z80SIO и Z80PIO фирмы ZILOG
---------------------------------------------------
Порты Z84C15:
SIO1_DATA - 18h
SIO1_CONTROL - 19h
SIO2_DATA - 1Ah
SIO2_CONTROL - 1Bh
PIO1_DATA - 1Ch
PIO1_CONTROL - 1Dh
PIO2_DATA - 1Eh
PIO2_CONTROL - 1Fh
---------------------------------------------------
LPT signals Z84C15 signals
DATA <-> PIO1_D[7..0] подключено через DATA_BUFER
STROBE <- PIO1_RDY - подключено через инвертор
INIT <- PIO2_RDY - подключено через инвертор
AUTOLF <- PIO2_D6 - подключено через инвертор
SLCT <- PIO2_D7 - подключено через инвертор
BUSY -> SIO2_CTS - подключено через инвертор
BUSY -> PIO1_STB - напрямую на вход Z84C15 **
ACK -> SIO2_DCD - подключено через инвертор
PE -> SIO1_CTS - подключено через инвертор
SELECT -> SIO2_DCD - подключено через инвертор
ERROR -> PIO2_STB - напрямую на вход Z84C15
SIO1_RTS -> CS_DATA_BUFER - включение буфера (нулем)
SIO1_DTR -> DIR_DATA_BUFER - направление передачи
данных буфером - 1 - вывод, 0 - ввод
** два места подключения BUSY - это не ошибка
Подача сигнала STROBE осуществляется автоматически при записи
данных в порт PIO1 в режиме вывода данных.
Аналогично на принтер подается сигнал INIT (записью данных в PIO2
в режиме вывода)
Сигнал BUSY принимается автоматически и следить за окончанием цикла
передачи данных надо по состоянию сигнала SIO2_CTS
Z84C15 был рассчитан на установку в принтерах, поэтому у него
сигналы RDY и STB имеют обратные назначения относительно STROBE и BUSY
LPT порта.
Сигнал ERROR напрямую принят быть не может, его можно отфиксировать
по приходу прерывания от параллельного порта (в режиме ввода/вывода
данных на PIO1 - Mode 2). Появление прерывания и будет означать,
что возникла ошибка.
Сигналы AUTOLF, SLCT подаются независимо и обычно просто
устанавливаются в одно состояние.
BUSY, ACK, PE и SELECT могут быть приняты независимо, но специфика
портов Z84C15 такова, что появление этих сигналов вызывает установку
внутренних тригеров, которые не сбрасываются после исчезновения сигналов,
и их надо сбрасывать программно. (При простой работе с принтером
достаточно обрабатывать только сигнал BUSY.)
Режим порта PIO2 - ВСЕГДА побитный ввод/вывод (Mode 3).
При работе с сигналами AUTOLF и SLCT следует помнить, что шесть младших бит
порта LPT2 подключены к ISA. (В простейшем случае, младшие шесть бит порта
LPT2 надо инициализировать как входные.)
Режим порта PIO1 может устанавливаться произвольно. Он полностью работает
на принтер. В DOS PIO1 инициализируется только на выдачу данных (Mode 0).
|
Mvg (journeyman)
2002/10/26 10:27
|
|
Здравствуйте.
Существуют - ли для Спринтера стандартные библиотеки для работы с графикой. (но не биос, дюже тормозонй). Самому написать не трудно, но очень не хочется изобретать велосипед. т.е. хочется использовать "стандартный" и "общепринятый" способ обращения к видеопамяти (желательно с исхонником).
нужны putpixel и getpixel (кто паскаль знает, тот поймет)
Как для 16, так и для 256 цветов. Жду ответа.
С Уважением Сергей.
|
Anton Enin (member)
2002/10/30 04:09
|
|
если ты не хочешь, чтобы твоя программа превратилась в слайдшоу, не думай о таких вещах как <putpixel> и <getpixel>... думай о групповых операциях с экраном и с использованием акселератора.... :)
можешь посмотреть исходники моих мини-демок: flames и 256color... они были опубликованы на сайте... в них можно что-нибудь найти по этой теме...
|
Anonymous (Unregistered) 2002/10/30 22:35
|
|
Здравствуйте.
>>если ты не хочешь, чтобы твоя программа превратилась в слайдшоу, не думай о таких вещах как <putpixel> и <getpixel>... думай о групповых операциях с экраном и с использованием акселератора....
Не думаю, что при помощи акселератора можно как-либо ускорить процесс работы с гаф. примитивами. (например вычерчиваниеепроизвольных линий). А на счет можности..... именно тормоза вины подстегнули развитие выч. мощностей на пэцэ.
Так есть стандартые способы?
С Уважением Сергей.
|
Denis Parinov (Sprinter Team)
2002/10/31 00:54
|
|
> Существуют - ли для Спринтера стандартные библиотеки для работы с графикой. (но не биос, дюже тормозонй).
> Самому написать не трудно, но очень не хочется изобретать велосипед. т.е. хочется использовать "стандартный" и "общепринятый" способ обращения к видеопамяти (желательно с исхонником). нужны putpixel и getpixel (кто паскаль знает, тот поймет)
Существует некоторый набор исходников, к сожалению не оформленный для публикации. Мы будем над этим работать, но библиотек на все случаи жизни пока нет.
Насчет putpixel / get pixel. Вот пример который я публиковал на форуме:
Например, если вам нужно поставить точку на экране, то подпрограмма длярежима
81h будет выглядеть так:
; HL - горизонтальная координата
; DE - вертикальная координата
IN A,(0E2h) ;считать из порта номер страницы подключенной в
;третье окно памяти
LD C,A ;запомнить в регистре C
LD A,50h ;страница видео памяти
OUT (0E2h),A ;подключение видео памяти
LD A,E ;поместить вертикальную координату в регистр A.
OUT (89h),A ;выдать в порт
LD DE,0C000h ;адрес начала третьего окна памяти
ADD HL,DE ;получить адрес точки (адрес начала окна +
;горизонтальная координата)
LD A,255 ;цвет выводимой точки (от 0 до 255)
LD (HL),A ;вывод точки на экран
LD A,C ;вспомнить номер страницы памяти
OUT (0E2h) ;подключить страницу памяти вместо страницы видео
;памяти
для чтения соответственно надо поменять LD (HL),A на LD A,(HL).
|
Anton Enin (member)
2002/10/31 03:19
|
|
т.е. ты хочешь повторить винды и пц?... :)
вызывать библиотечные функции для таких вещей нецелесообразно... в примере Дениса приведен прототип
библиотечной функции... но для быстрого рисования приметивов 100 тактовая точка - это слишком медленно... поэтому такие функции как putpixel/getpixel должны быть интегрированы в отрисовщик приметивов...
например:
..
инициализация vram
...
main_loop:
... ; hl - x coord a - y coord c - col
out (YPORT),a
set 6,h ; если vram подключена с 4000
ld (hl), a ; put pixel
...
end_main_loop
деинициализация vram
|
Shaos (enthusiast)
2002/10/31 07:58
|
|
> Не думаю, что при помощи акселератора можно как-либо ускорить
> процесс работы с гаф. примитивами. (например вычерчиваниеепроизвольных линий).
Зачем тебе произвольные линии в гуе???
Акселератор покрывает все возможности гуя. Он может в частности следующее:
- быстрое заполнение горизонтального отрезка длиной до 256 точек одним цветом (в режиме 640x256 - до 512 точек)
- быстрое заполнение вертикального отрезка одним цветом
- быстрое копирование горизонтального отрезка длиной до 256 точек (в режиме 640x256 - до 512 точек)
- быстрое копирование вертикального отрезка
А из этого всего следует заполнение-копирование прямоугольников, вывод шрифтов, примитивов и т.д.
Достаточно сказать, что символы в FN выводятся почти мгновенно именно засчет акселератора, если ты все будешь делать путпикселами, то ты просто отпугнешь юзеров неимоверными тормозами :)
Alexander Shabarshin (shaos@mail.ru)
NedoPC Project
|
Anonymous (Unregistered) 2003/03/01 10:44
|
|
а как сделать
..
>>инициализация vram
...
и
>>деинициализация vram
|
Alex_Goryachev (Sprinter Team)
2003/03/01 11:25
|
|
Возможно, пригодится пример из href=http://www.petersplus.com/download/sources/aprint.zip> исходников Антона Енина, опубликованных на сайте
; set requist video mode 640x256x16
SetVideoMode:
ld c, 0x51 ; save previos vmode
rst 0x10
ld (vmode + 1), a
ld a, b
ld (vscrn + 1), a
sub a
call CrearVideoRam
ld bc, 0x0050 ; set 640x256x16
ld a, 0x82
rst 0x10
ld hl, CustomPalette
ld de, 0x1000
ld bc, 0xFFA4
sub a
rst 0x08 ; load palette
ret
; restore previos video mode
ResVideoMode:
sub a
call CrearVideoRam
vscrn: ld b, 0x00
vmode: ld a, 0x00
ld c, 0x50
rst 0x10 ; set previos vmode
ret
---
PETERS PLUS LTD
|
Anonymous (Unregistered) 2003/03/02 17:12
|
|
Хотелось - бы побольше узнать об акселераторе (функции, коды управлкеия (поподробнее), ограничения к применению и пр.).
А то дюже графика тормозит ...
|
Alex_Goryachev (Sprinter Team)
2003/03/03 16:51
|
|
Посмотрите здесь .
---
PETERS PLUS LTD
|