Page 2 of 3

Re: графика для ZXevo

PostPosted: Sat, 21.12.2013 20:27:39
by amixgris
Grey wrote:главная цель была - распаковка кода LZW в GIF-е.

Эх, лет 10 назад, я LZW по книжке написал: и паковщик и распаковщик. Может даже найду на досуге.

Re: графика для ZXevo

PostPosted: Mon, 23.12.2013 03:03:17
by amixgris
amixgris wrote:Эх, лет 10 назад, я LZW по книжке написал: и паковщик и распаковщик. Может даже найду на досуге.

Таки нашёл! Страшно, аж жуть! :)

Re: графика для ZXevo

PostPosted: Mon, 23.12.2013 10:13:11
by Grey
amixgris wrote:плагин для WC.

Почему в WC не работать код.
LD BC,VPage ; Указываем системе, что видеопамять начинается с #10
LD A,#10 ; Номер страницы
OUT (C),A
LD BC,VConfig ;
LD A,%11000010
OUT (C),A

Остается включенным текстовый режим. Неужели WC как то блокирует прямую запись в порты, что бы писали только через его функции ?

Re: графика для ZXevo

PostPosted: Mon, 23.12.2013 10:21:00
by TS-Labs
Grey wrote:Неужели WC как то блокирует прямую запись в порты, что бы писали только через его функции ?

Еще как блокирует, и писать ТОЛЬКО через его функции ОБЯЗАТЕЛЬНО!!!

Re: графика для ZXevo

PostPosted: Mon, 23.12.2013 10:30:30
by Grey
блин ну не коммандер в прям какая то операционка с защищенным режимом.

Re: графика для ZXevo

PostPosted: Mon, 23.12.2013 10:32:17
by TS-Labs
По-другому нельзя, потому что иначе хаос, КРОВЬ КИШКИ РАСПИДОРАСИЛО.
Командер дергает все порты на прерываниях. Поскольку порты читать нельзя, как он их потом восстановит?

Re: графика для ZXevo

PostPosted: Mon, 23.12.2013 11:44:44
by Grey
amixgris wrote:в WC нет функций для использования CPU0, так что не парься

а вот я и запарился.
Как ты предлагаешь дергать CPU0 ? на прямую писать в порты WC не дает. В документации по плагинам - только управление Pagе3.

0│MNGC_PL
│включение страница на #C000

переписывать под CPU3 ? получатся тормоза - к каждому адресу в массиве прибавлять смещение, а страницы там дергаются по 5-6 раз на один пиксель.

Может документация не полная ? Как например запросить ещё страничек памяти?

Re: графика для ZXevo

PostPosted: Mon, 23.12.2013 13:09:08
by LessNick
Grey wrote:Может документация не полная ? Как например запросить ещё страничек памяти?


А какую ты ещё память хочешь дёргать? я например в своей CLi забираю прерывания на себя, но при этом занимаюсь опросом клавы. Использую Page0 (#0000) под свои нужды, если достаточно первых 8кб, то можно безболезненно их использовать, но при дисковых операциях они затрутся. Если не достаточно, тогда действовать по такой схеме:

1) Отключил прерывания
2) Установил свою банку с #0000
3) Выполняется твой код

4) Вернул банку с #0000
5) Вызвал API WC - загрузка
6) Установил свою банку с #0000
7) Выполняется твой код

при необходимости GO TO 4

8) Вернул прерывания
9) Опросил клавишу ANY
10) Вернулся в WC

---

Grey wrote:В документации по плагинам - только управление Pagе3.


По сути ты можешь через порты на прямую установить всю необходимую тебе раму, а при обращении к API WC восстанавливать:

Да простит меня Koshi =) за недокументированный хак XD

Code: Select all
_PAGE0      equ   #6000   ; номер страницы подключенной с адреса #0000-#3fff
_PAGE1      equ   #6001   ; номер страницы подключенной с адреса #4000-#7fff
_PAGE2      equ   #6002   ; номер страницы подключенной с адреса #8000-#dfff
_PAGE3      equ   #6003   ; номер страницы подключенной с адреса #c000-#ffff

Вот здесь хранятся данные что сейчас в WC подключено, сохраняешь их и восстанавливаешь. Когда ты меняешь через Pagе3, соответственно меняется и значение в _PAGE3.

Главное это на выходе и при вызове API вернуть всё как было!!

Code: Select all
tsRAMPage0   equ   #10AF
_restoreWcBank   ld   a,(_PAGE0)            ; Восстанавливаем банку для WildCommander
      ld   bc,tsRAMPage0
      out   (c),a
      ret

Re: графика для ZXevo

PostPosted: Mon, 23.12.2013 13:40:31
by Grey
breeze wrote:1) Отключил прерывания
2) Установил свою банку с #0000


Ок. Спасибо, успокоил.
Я подумал что он порты как то блокирует.

Re: графика для ZXevo

PostPosted: Mon, 23.12.2013 13:44:46
by LessNick
Grey wrote:Я подумал что он порты как то блокирует.


Не, у тут уж не до такой степени писим :) что залез в защищённый режим и оттуда командуешь :D

Re: графика для ZXevo

PostPosted: Mon, 23.12.2013 13:47:33
by Grey
ну достаточно один бит сделать в системном порту в ТС конфе - типа блокировка всех расширений.
и никому про него не говорить :-) ( на долго ли )
Тем более порты ВГ и так перехватываются.

Re: графика для ZXevo

PostPosted: Mon, 23.12.2013 15:31:11
by TS-Labs
Народ, не будьте детским садом :)
1. НИКАКИХ хаков в системном софте - ПРОКЛЯНУ! :moder:
2. Если нехватат каких-то фич - пинаем Кошы чтоб добавил.

Re: графика для ZXevo

PostPosted: Mon, 23.12.2013 21:44:35
by LessNick
TS-Labs wrote:Если нехватат каких-то фич - пинаем Кошы чтоб добавил.


Ну блин! Кошин WC разъелся и занял все три стула, какие фичи ты тут попросишь? Подвинься?

Re: графика для ZXevo

PostPosted: Mon, 23.12.2013 23:12:28
by Koshi
паге0 и паге8 можно менять в версии 0.56 (при вызовах FAT функций паге0, на вермя, меняется на нужную) ;P
тока оная выйдет в след гаду, не иначе. ибо функционала там добавилось... %)

P.S. дергание портов в обход API коммандера ни к чему хорошему не приведет >_<

Re: графика для ZXevo

PostPosted: Mon, 23.12.2013 23:44:17
by LessNick
Koshi wrote:дергание портов в обход API коммандера ни к чему хорошему не приведет >_<


с этим никто не спорит, но! при написании ТЯЖЕЕЕЕЛЫХ плагинов, выяснилось, что того малюсенького «очка» размером с 1 банку, всё-таки маловато. увы и ах!

отсюда мораль, нужно как-то сделать рефакторинг кода и оставить в базовом API только жизненно необходимый функционал, всё остальное же лучше вынести в отдельные банки, которые можно было бы отключать на время работы плагинов.

Re: графика для ZXevo

PostPosted: Mon, 23.12.2013 23:47:32
by TS-Labs
На всякий случай, КО объясняет разницу между демокодом и системным кодом:
В демокоде:
- все вылизано изначально,
- рассчитано на один сценарий,
- не рассчитано на поддержку кода в будущем,
- от глюка в демке никто не пострадает, кроме ЧСВ автора.
В системном софте:
- вылизаность кода и "оптимизация на лету" уступают в пользу читаемости и поддерживаемости кода,
- сценариев использования бесконечное множество, потому тестирование по принципу "раз прошло и заебись" не канает,
- он запоротого винта/флэшки у юзера может случиться такое непонимание, что он кющять не сможет, и это печально,
- код третьей стороны (плагины в данном случае) не должны мешать поддержке основного кода и обязаны использовать конвеншены, принятые автором основного кода. Т.е. если все работает в текущей версии, оно обязано работать и в последующих.

Re: графика для ZXevo

PostPosted: Tue, 24.12.2013 15:49:28
by thims
плюсстопиццот

Re: графика для ZXevo

PostPosted: Tue, 24.12.2013 16:07:33
by g0blinish
лучше бы переименовать тему, ибо сообщения выглядят как злостный оффтоп. по коду: очень медленно отрисовывается, но ничо не поделаешь(

Re: графика для ZXevo

PostPosted: Tue, 24.12.2013 16:20:12
by TS-Labs
Ай... да тут все сплошные офтопы. Я думаю так, что реально информационные топики я выношу в стикед или аннаунсменты, чтоб найти было можно.
Если установить здесь орднунг унд дисциплин, то а) я заебусь сувать туды сюды псты, б) придется применять анальные кары, а это запрещено правилами.

Re: графика для ZXevo

PostPosted: Tue, 24.12.2013 16:28:05
by g0blinish
TS-Labs wrote:Если установить здесь орднунг унд дисциплин

ну это скорее пожелание ТСу, а не ХозяинуImage

Re: графика для ZXevo

PostPosted: Tue, 24.12.2013 16:43:30
by Grey
В общем готов плагин Gif Viewer для WC

Ко скажите, как через порты опросить клавишу ESC (при выключенных прерываниях) ?
Без этого коряво будет, выход по пробелу, а потом ESC.

Один штрих и выложу.

Re: графика для ZXevo

PostPosted: Tue, 24.12.2013 16:56:03
by TS-Labs
pentevo\docs\Baseconf\zxevo_base_configuration.pdf
п.9.8 про клаву.

---

Свой готовый код предоставить не могу, ибо нет его. Можешь взять у Кошы опросник пс/2 для примера.

Re: графика для ZXevo

PostPosted: Tue, 24.12.2013 17:15:54
by LessNick
Grey wrote:Ко скажите, как через порты опросить клавишу ESC (при выключенных прерываниях) ?
Без этого коряво будет, выход по пробелу, а потом ESC.


а тебе что, после декодинга гифа ещё нужна память? верни банки и прерывания и вызывай API WC. На пальцах опрашивать PS/2 это геморно… там не просто опрос порта!!

Re: графика для ZXevo

PostPosted: Tue, 24.12.2013 17:16:42
by Grey
TS-Labs wrote:п.9.8 про клаву.

Спасибо. Хотя не так быстро и просто как я думал,

Пока вот такая версия.
По ентеру листание GIF - ов в каталоге.
А вот выход пока что такой - Сначала - "пробел", - останавливает рисование, а потом только ESC - выход в WC.

Длинна файлы любая ( до 4 гб фата)

wc.zip

Re: графика для ZXevo

PostPosted: Tue, 24.12.2013 17:17:53
by LessNick
А вообще опрос PS/2 клавы давно уже надо вынести в BIOS!