графика для ZXevo

CALL'ы и RET'ы

Postby amixgris » Sat, 21.12.2013 20:27:39

Grey wrote:главная цель была - распаковка кода LZW в GIF-е.

Эх, лет 10 назад, я LZW по книжке написал: и паковщик и распаковщик. Может даже найду на досуге.
User avatar
amixgris
 
Posts: 161
Joined: Mon, 30.07.2012 03:22:48
Location: Самара

Postby amixgris » Mon, 23.12.2013 03:03:17

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

Таки нашёл! Страшно, аж жуть! :)
User avatar
amixgris
 
Posts: 161
Joined: Mon, 30.07.2012 03:22:48
Location: Самара

Postby Grey » Mon, 23.12.2013 10:13:11

amixgris wrote:плагин для WC.

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

Остается включенным текстовый режим. Неужели WC как то блокирует прямую запись в порты, что бы писали только через его функции ?
Grey
 
Posts: 93
Joined: Fri, 29.11.2013 15:58:02

Postby TS-Labs » Mon, 23.12.2013 10:21:00

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

Еще как блокирует, и писать ТОЛЬКО через его функции ОБЯЗАТЕЛЬНО!!!
User avatar
TS-Labs
 
Posts: 5018
Joined: Thu, 26.07.2012 01:29:56

Postby Grey » Mon, 23.12.2013 10:30:30

блин ну не коммандер в прям какая то операционка с защищенным режимом.
Grey
 
Posts: 93
Joined: Fri, 29.11.2013 15:58:02

Postby TS-Labs » Mon, 23.12.2013 10:32:17

По-другому нельзя, потому что иначе хаос, КРОВЬ КИШКИ РАСПИДОРАСИЛО.
Командер дергает все порты на прерываниях. Поскольку порты читать нельзя, как он их потом восстановит?
User avatar
TS-Labs
 
Posts: 5018
Joined: Thu, 26.07.2012 01:29:56

Postby Grey » Mon, 23.12.2013 11:44:44

amixgris wrote:в WC нет функций для использования CPU0, так что не парься

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

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

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

Может документация не полная ? Как например запросить ещё страничек памяти?
Grey
 
Posts: 93
Joined: Fri, 29.11.2013 15:58:02

Postby LessNick » Mon, 23.12.2013 13:09:08

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
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 864
Joined: Thu, 26.07.2012 15:00:53

Postby Grey » Mon, 23.12.2013 13:40:31

breeze wrote:1) Отключил прерывания
2) Установил свою банку с #0000


Ок. Спасибо, успокоил.
Я подумал что он порты как то блокирует.
Grey
 
Posts: 93
Joined: Fri, 29.11.2013 15:58:02

Postby LessNick » Mon, 23.12.2013 13:44:46

Grey wrote:Я подумал что он порты как то блокирует.


Не, у тут уж не до такой степени писим :) что залез в защищённый режим и оттуда командуешь :D
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 864
Joined: Thu, 26.07.2012 15:00:53

Postby Grey » Mon, 23.12.2013 13:47:33

ну достаточно один бит сделать в системном порту в ТС конфе - типа блокировка всех расширений.
и никому про него не говорить :-) ( на долго ли )
Тем более порты ВГ и так перехватываются.
Grey
 
Posts: 93
Joined: Fri, 29.11.2013 15:58:02

Postby TS-Labs » Mon, 23.12.2013 15:31:11

Народ, не будьте детским садом :)
1. НИКАКИХ хаков в системном софте - ПРОКЛЯНУ! :moder:
2. Если нехватат каких-то фич - пинаем Кошы чтоб добавил.
User avatar
TS-Labs
 
Posts: 5018
Joined: Thu, 26.07.2012 01:29:56

Postby LessNick » Mon, 23.12.2013 21:44:35

TS-Labs wrote:Если нехватат каких-то фич - пинаем Кошы чтоб добавил.


Ну блин! Кошин WC разъелся и занял все три стула, какие фичи ты тут попросишь? Подвинься?
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 864
Joined: Thu, 26.07.2012 15:00:53

Postby Koshi » Mon, 23.12.2013 23:12:28

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

P.S. дергание портов в обход API коммандера ни к чему хорошему не приведет >_<
MGN Group
User avatar
Koshi
 
Posts: 262
Joined: Thu, 26.07.2012 16:41:52

Postby LessNick » Mon, 23.12.2013 23:44:17

Koshi wrote:дергание портов в обход API коммандера ни к чему хорошему не приведет >_<


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

отсюда мораль, нужно как-то сделать рефакторинг кода и оставить в базовом API только жизненно необходимый функционал, всё остальное же лучше вынести в отдельные банки, которые можно было бы отключать на время работы плагинов.
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 864
Joined: Thu, 26.07.2012 15:00:53

Postby TS-Labs » Mon, 23.12.2013 23:47:32

На всякий случай, КО объясняет разницу между демокодом и системным кодом:
В демокоде:
- все вылизано изначально,
- рассчитано на один сценарий,
- не рассчитано на поддержку кода в будущем,
- от глюка в демке никто не пострадает, кроме ЧСВ автора.
В системном софте:
- вылизаность кода и "оптимизация на лету" уступают в пользу читаемости и поддерживаемости кода,
- сценариев использования бесконечное множество, потому тестирование по принципу "раз прошло и заебись" не канает,
- он запоротого винта/флэшки у юзера может случиться такое непонимание, что он кющять не сможет, и это печально,
- код третьей стороны (плагины в данном случае) не должны мешать поддержке основного кода и обязаны использовать конвеншены, принятые автором основного кода. Т.е. если все работает в текущей версии, оно обязано работать и в последующих.
User avatar
TS-Labs
 
Posts: 5018
Joined: Thu, 26.07.2012 01:29:56

Postby thims » Tue, 24.12.2013 15:49:28

плюсстопиццот
User avatar
thims
 
Posts: 137
Joined: Fri, 27.07.2012 17:18:35

Postby g0blinish » Tue, 24.12.2013 16:07:33

лучше бы переименовать тему, ибо сообщения выглядят как злостный оффтоп. по коду: очень медленно отрисовывается, но ничо не поделаешь(
пердачок защеканца лвд после чтения моих постов..

[14:29:28] <Alone> На пентагоне картинки на бордюре рисуют. Это вообще нечестно

Теперь поезд ваш в депо, а мой локомотив мчится на укрепление демосцены спектрума.(с)Пиздунков
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3573
Joined: Tue, 18.06.2013 10:59:01

Postby TS-Labs » Tue, 24.12.2013 16:20:12

Ай... да тут все сплошные офтопы. Я думаю так, что реально информационные топики я выношу в стикед или аннаунсменты, чтоб найти было можно.
Если установить здесь орднунг унд дисциплин, то а) я заебусь сувать туды сюды псты, б) придется применять анальные кары, а это запрещено правилами.
User avatar
TS-Labs
 
Posts: 5018
Joined: Thu, 26.07.2012 01:29:56

Postby g0blinish » Tue, 24.12.2013 16:28:05

TS-Labs wrote:Если установить здесь орднунг унд дисциплин

ну это скорее пожелание ТСу, а не ХозяинуImage
пердачок защеканца лвд после чтения моих постов..

[14:29:28] <Alone> На пентагоне картинки на бордюре рисуют. Это вообще нечестно

Теперь поезд ваш в депо, а мой локомотив мчится на укрепление демосцены спектрума.(с)Пиздунков
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3573
Joined: Tue, 18.06.2013 10:59:01

Postby Grey » Tue, 24.12.2013 16:43:30

В общем готов плагин Gif Viewer для WC

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

Один штрих и выложу.
Grey
 
Posts: 93
Joined: Fri, 29.11.2013 15:58:02

Postby TS-Labs » Tue, 24.12.2013 16:56:03

pentevo\docs\Baseconf\zxevo_base_configuration.pdf
п.9.8 про клаву.

---

Свой готовый код предоставить не могу, ибо нет его. Можешь взять у Кошы опросник пс/2 для примера.
User avatar
TS-Labs
 
Posts: 5018
Joined: Thu, 26.07.2012 01:29:56

Postby LessNick » Tue, 24.12.2013 17:15:54

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


а тебе что, после декодинга гифа ещё нужна память? верни банки и прерывания и вызывай API WC. На пальцах опрашивать PS/2 это геморно… там не просто опрос порта!!
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 864
Joined: Thu, 26.07.2012 15:00:53

Postby Grey » Tue, 24.12.2013 17:16:42

TS-Labs wrote:п.9.8 про клаву.

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

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

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

wc.zip
Grey
 
Posts: 93
Joined: Fri, 29.11.2013 15:58:02

Postby LessNick » Tue, 24.12.2013 17:17:53

А вообще опрос PS/2 клавы давно уже надо вынести в BIOS!
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 864
Joined: Thu, 26.07.2012 15:00:53

PreviousNext

Return to Coding

Who is online

Users browsing this forum: No registered users and 1 guest

x