Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Программирование (http://zx-pk.ru/forumdisplay.php?f=14)
-   -   процедура для выравнивания INT на нулевой такт (http://zx-pk.ru/showthread.php?t=16983)

ZXMAK 7th October 2011 00:14

процедура для выравнивания INT на нулевой такт
 
Есть у кого-то готовая процедура для выравнивания INT на нулевой такт?

Если нет, может есть идеи как это практичней реализовать?

NEO SPECTRUMAN 7th October 2011 00:25

INT FILTER ONLY FOR PENTAGON-128
http://zxpress.ru/book_articles.php?id=552
Похоже такие проги нужно подгонять под каждую машину.

ZXMAK 7th October 2011 01:14

Quote:

Originally Posted by NEO SPECTRUMAN (Post 421518)
INT FILTER ONLY FOR PENTAGON-128
http://zxpress.ru/book_articles.php?id=552
Похоже такие проги нужно подгонять под каждую машину.

Quote:

Но, в любом случае, время исполнения одной и той же команды могло быть непостоянным, так что ни о какой полноценной синхронизации для создания тонких цветовых эффектов не могло быть и речи.
как-то это плохо соотносится с мультиколорными демами MDA DEMO, SHINY48, игре Defenders Of The Earth, и т.д. Где мультиколор и тексты на бордюре ничем не хуже чем в демах на пентагон :)

Насчет FILTER - то что нужно, только где-бы взять ее исходный код в нормальном виде? В тексте статьи он покоцан и разнесен по таблицам :(

goodboy 7th October 2011 01:23

Quote:

Originally Posted by Alexander Makeev (Post 421537)
FILTER - то что нужно, только где-бы взять ее исходный код в нормальном виде?

http://vtrdos.ru/book/REVU9645.ZIP

VNN_KCS 7th October 2011 13:21

Не оно? - http://zx.pk.ru/showthread.php?t=13836&page=3

ZXMAK 7th October 2011 18:33

Quote:

Originally Posted by VNN_KCS (Post 421682)

не, дрожание - это некратное число тактов в кадре, тут речь о том чтобы сдвига на 0..3 такта не было в момент прихода прерывания

VNN_KCS 7th October 2011 19:37

1 Attachment(s)
Это не устранение дрожания. Это п/программа, которая позволяет запускать последуюшую за ней программу с одного и того-же места прорисовки растра.
Автор - alone. Посмотри как работает.

GM BIT 7th October 2011 20:38

Quote:

Originally Posted by Alexander Makeev (Post 421505)
Есть у кого-то готовая процедура для выравнивания INT на нулевой такт?

Если нет, может есть идеи как это практичней реализовать?

Такой процедуры нет, все делается ручками!!!
VNN правильно написал это только первоначально можно подправить 0-3 такта, остальное руками

---------- Post added at 19:37 ---------- Previous post was at 19:35 ----------

Quote:

Originally Posted by VNN_KCS (Post 421857)
Это не устранение дрожания. Это п/программа, которая позволяет запускать последуюшую за ней программу с одного и того-же места прорисовки растра.

Если в последующей процедуре имеются ветвления (т.е. разное кол-во тактов) то эта программа не о чем

---------- Post added at 19:38 ---------- Previous post was at 19:37 ----------

Quote:

Originally Posted by VNN_KCS (Post 421857)
Посмотри как работает.

Выложи в тексте а то на диске файл *.H просто не знаю в чем это смотреть?

VNN_KCS 8th October 2011 19:57

Quote:

Originally Posted by GM BIT (Post 421888)
Выложи в тексте а то на диске файл *.H просто не знаю в чем это смотреть?

Запусти Best View. Загрузи то, что надо, нажми в нём CAPS+T и... никаких проблем. Текстовик в твоём распоряжении. Токо перевести в твой формат. Я же тебе уже делал.

---------- Post added at 17:40 ---------- Previous post was at 17:38 ----------

Quote:

Originally Posted by GM BIT (Post 421888)
сли в последующей процедуре имеются ветвления (т.е. разное кол-во тактов) то эта программа не о чем

Токо если рисунок на бордюре линейный, то по барабану. Ну почти по борабану.

---------- Post added at 17:52 ---------- Previous post was at 17:40 ----------

Quote:

Originally Posted by GM BIT (Post 421888)
Если в последующей процедуре имеются ветвления (т.е. разное кол-во тактов) то эта программа не о чем

А ты придумай, чтоб не "смыкалось". Я изгалялся. А что делать!

---------- Post added at 17:57 ---------- Previous post was at 17:52 ----------

Quote:

Originally Posted by GM BIT (Post 421888)
Выложи в тексте а то на диске файл *.H просто не знаю в чем это смотреть?

Дык постом выше лежит.

ZXMAK 9th October 2011 19:03

Quote:

Originally Posted by GM BIT (Post 421888)
Такой процедуры нет, все делается ручками!!!
VNN правильно написал это только первоначально можно подправить 0-3 такта, остальное руками

зачем руками? есть такая процедура, все автоматом подстраивается, вот она:
Code:

FILTER:
        DI
        LD        HL,INT
        LD        (#81FF),HL
        LD        A,0
        LD        (BUFF+4),A
        LD        E,1
        LD        HL,BUFF
        LD        A,#81
        LD        I,A
        IM        2
        EI
        HALT

        CALL        WAIT
        INC        E
        CALL        WAIT
        INC        E
        CALL        WAIT
        INC        E
        DI

        LD        BC,2749
        LD        HL,(BUFF+1)
        EX        DE,HL
        LD        HL,(BUFF+3)
        LD        A,H
        OR        A
        JR        NZ,F2

F0:
        LD        A,L
        CP        4
        JR        Z,DISP3
        LD        A,D
        CP        L
        JR        Z,DISP2
        LD        A,E
        CP        D
        JR        Z,DISP1
DISP0:
        NOP
        LD        R,A
        LD        R,A
F1:
        DEC        BC
        LD        A,B
        OR        C
        JR        NZ,F1
        RET
F2:
        LD        E,D
        LD        D,L
        LD        L,H
        DEC        BC
        DEC        BC
        LD        A,(HL)
        NOP
        JR        F0
DISP1:
        DEC        BC
        NOP
        JR        DISP0
DISP2:
        JR        DISP0

DISP3:
        LD        R,A
        LD        A,(HL)
        JR        DISP0
WAIT:
        LD        BC,2753
W1:
        DEC        BC
        LD        A,B
        OR        C
        JR        NZ,W1
        LD        B,(HL)
        RET
INT:
        LD        (HL),E
        INC        HL
        LD        D,(HL)
        LD        D,(HL)
        EI
        RET
BUFF:
        DEFS        5

расчитана разумеется на без-WAIT'овые машины. На WAIT'овых машинах свои способы, например на фирменном ULA достаточно HALT сделать перед прохождением строки paper'а.


All times are GMT +4. The time now is 21:00.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.