Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Программирование (http://zx-pk.ru/forumdisplay.php?f=14)
-   -   Как отключать турбо режимы на разных спеках? (http://zx-pk.ru/showthread.php?t=5236)

Evgeny Muchkin 25th April 2007 10:50

Как отключать турбо режимы на разных спеках?
 
Возникла необходимость в программном выключении турбо режима. Но я знаю как это делается только на Скорпионах:

ld bc,#1ffd
in a,(c)

А как это делать на других клонах, обладающих режимом турбо?
Интересуют в первую очередь Pentagon 1024 SL, просто пентагон с какими-то более-менее стандартными турбированиями, ATM и другие.

Заранее огромное спасибо!

skyther 25th April 2007 11:50

пент1024:
ld a,%00010000 ;bit 4 - отключение режима TURBO. При bit 4 = 0 TURBO включено, при bit 4 = 1 TURBO отключено.
ld bc,#eff7
out (c),a

Sinus 25th April 2007 12:16

на кае ещё можно програмно включить/выключить трубу, но я счаз далеко от дома, и посмотреть в мануале не могу. как приеду (на след. неделе) отпишу.

Quote:

пентагон с какими-то более-менее стандартными турбированиями
вообще на всех турбированных пентагонах которые мне довелось видеть в гродно и минске турба включалась только тумблером :)
так что код для программного выключения мог бы выглядеть так:

Code:


loop      call CheckTurbo
          and a
          jz ZisIzKewl

          ld hl,Text
          call PrintBuf

          dup 8
          halt
          edup

          jz loop

ZisIzKewl ....

Text      db "Please turn off turbo",0


CHRV 25th April 2007 15:27

Дока по программированию Атм Турбо:
http://atmturbo.nedopc.com/inf/books...c/atm_hard.zip

Максагор 25th April 2007 16:24

В АТМ-2+ за турбу отвечает бит D3(1=включение турбы) порта #xx77. Порт может быть в двух состояниях - открытом и теневом.

В открытом состоянии:

LD BC,#4177 ;или #FF77, если надо сразу и порт спрятать
LD A,%10101xxx ;три младших бита определяют номер экрана
OUT (C),A


В теневом состоянии:

LD BC,metka
PUSH BC
LD BC,#2A53
PUSH BC
LD BC,#FF77 ;или #4177, если надо открыть порт
LD A,%10101xxx
JP #3D2F
metka .....

Evgeny Muchkin 25th April 2007 16:36

Всем большое спасибо! Но все же очень надеюсь и на дополнения про других клонов ;)

Теперь "почти универсальная" отключалка турбы у нас такая:

Code:

TUROFF  DI
        LD BC,#1FFD;  Scorpion
        IN A,(C)
        LD A,%00010000;  Pentagon 1024 SL
        LD BC,#EFF7
        OUT (C),A
        LD BC,#2A53;  ATM Turbo
        PUSH BC
        LD BC,#FF77
        LD A,%10101011
        JP #3D2F


falanger 1st May 2007 00:47

А зачем Турбу отключатьтам где она есть и реализованна "корректно"?

Grand 1st May 2007 05:44

Quote:

Originally Posted by Evgeny Muchkin
Возникла необходимость в программном выключении турбо режима. Но я знаю как это делается только на Скорпионах:

ld bc,#1ffd
in a,(c)

Ни в коем случае! :)
Надо так:
Code:

RST 8
DEFB #88

Это работает с версии теневого монитора 2.4d.

Evgeny Muchkin 2nd May 2007 17:31

Quote:

Originally Posted by Grand (Post 87185)
Ни в коем случае!

Объясни почему?

Grand 4th May 2007 04:22

Способ RST 8 \ DB #88 даёт сразу несколько плюсов.
Если подключить вместо бейсиковского обработчика ошибок свой, то "автоматически" определим, что компьютер, например, не Scorpion.
Если же Scorpion, то флаг CY укажет есть ли у него турборежим в принципе.
Ну и, наконец, так "по науке": ни в одном руководстве, написанном разработчиками Scorpion'а, не сказано, что можно переключать турборежим чтением из портов. ;)


All times are GMT +4. The time now is 11:08.

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