Speccy - наш выбор!

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

Shiru 20th May 2005 13:57

Процедура детекта TurboSound.
 
Вот.

Code:

; TurboSound detected? Return A=0/1 (no/yes)

tsDetect
    ld hl,#fe00
    ld de,#ffbf
    ld bc,#fffd
    out (c),h
    out (c),l
    ld b,e
    out (c),c
   
    ld b,d
    out (c),b
    out (c),l
    ld b,e
    out (c),b
   
    ld b,d
    out (c),h
    out (c),l
    in a,(c)
    cp c
    jr nz,noTS
   
    out (c),d
    out (c),l
    in a,(c)
    cp e
    jr nz,noTS
    ld a,1
    ret
         
noTS
    xor a
    ret


Ronin 20th May 2005 15:23

может сначала 7й регистр заглушить ? на всякий случай. или прям на нем и тестировать (а не 0-ом).

lvd 20th May 2005 19:13

Quote:

Originally Posted by Ronin
может сначала 7й регистр заглушить ? на всякий случай. или прям на нем и тестировать (а не 0-ом).

Ну или можно предварительно сохранить тот регистр, на котором будем проверять наличие 2х девайсов. =)

lvd 20th May 2005 19:17

Quote:

Originally Posted by Shiru
Вот.
; TurboSound detected? Return A=0/1 (no/yes)


Ну можно так сделать:

1 - включить нулевой (дефолтный) девайс
2 - записать в него число1
3 - включить первый (доп.) девайс
4 - записать в него число2(!=число1)
5 - включить нулевой взад
6 - считать и вычесть число1
7 - вернуться

На выходе: ноль - 2 девайса, неноль - 1 девайс.

Ronin 20th May 2005 19:49

Quote:

Originally Posted by lvd
Ну или можно предварительно сохранить тот регистр, на котором будем проверять наличие 2х девайсов. =)

это чтоб шума всякого не было.
проще #3f в 7й регистр кинуть обоим. только если #07 можно скажем в A запихать, #3F пихать некуда ;)

Quote:

Originally Posted by lvd
На выходе: ноль - 2 девайса, неноль - 1 девайс.

а если ни одного ? :) то ноль вероятно.

Shiru 20th May 2005 21:47

Quote:

Originally Posted by Ronin
может сначала 7й регистр заглушить ? на всякий случай. или прям на нем и тестировать (а не 0-ом).

А смысл? Предполагается, что оба чипа заглушены на старте теста. Ну можно и на 7-ом - тогда первую строчку надо заменить на ld hl,#fe07
Quote:

Originally Posted by lvd
Ну можно так сделать:

Так тут практически так и сделано, только дополнительный шаг есть, чтобы при отсутствии чипов получить на выходе всё-таки 0 (нет чипов - нет и TS).

PheeL 20th May 2005 22:10

Quote:

Originally Posted by Shiru
Так тут практически так и сделано, только дополнительный шаг есть, чтобы при отсутствии чипов получить всё-таки 0.

Эм, а нафиг надо если всё-равно не будет слышно? Тут он чисто логически неоправдан как мне кажется. Имеется ввиду проверка на отсутствие чипов вообще.

Shiru 20th May 2005 22:15

Quote:

Originally Posted by PheeL
Эм, а нафиг надо если всё-равно не будет слышно? Тут он чисто логически неоправдан как мне кажется. Имеется ввиду проверка на отсутствие чипов вообще.

Да, она и имеется в виду. Код выше - что-то непонятно?

Выбираем 2-ой чип, пишем число N
Выбираем 1-ый чип, пишем число M
Выбираем 2-ой чип, читаем - если не N, чипа нет (ret 0)
Выбираем 1-ый чип, читаем - если не M, чипа нет (ret 0)
ret 1 (оба чипа есть)

lvd 21st May 2005 00:07

Quote:

Originally Posted by Shiru
Да, она и имеется в виду. Код выше - что-то непонятно?

Выбираем 2-ой чип, пишем число N
Выбираем 1-ый чип, пишем число M
Выбираем 2-ой чип, читаем - если не N, чипа нет (ret 0)
Выбираем 1-ый чип, читаем - если не M, чипа нет (ret 0)
ret 1 (оба чипа есть)

Гы, второй чип есть, а первого нету, надо же... :D

lvd 21st May 2005 00:27

Quote:

Originally Posted by Ronin
а если ни одного ? :) то ноль вероятно.

Ну тогда читай так: ноль - 2 девайса, не ноль - не два девайса. =)


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

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