1 Ostatnio edytowany przez mono (2010-11-22 22:58:21)

Pin mnie zagadnął i przedstawił pomysł na detekcję covoxa, który jak wiadomo jest obecnie niewykrywalny automatycznie.
Pomysł jest mianowicie taki, żeby podczas montowania covoxa drutem zwierać do masy jakieś niewykorzystane w xl/xe paddle (trigi odpadły, bo na 2 siedzi klawiatura w XEGS, a w 3 cartridge) np. 4..7.
No i w związku z tym pytanie do Szanownych Kolegów Elektroników - czy to się da (czy w xl/xe te wejścia są dostępne do takich działań)?
Bluzgi, "to już nie Atari", itp. zbieram aktualnie ja, bo pin się chwilowo wstydzi.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

2

a nie mozna nalutowac 30 kabelkow zeby po czytaniu z jego rejestrow covox oddawal jakas konkretna wartosc? no chyba ze covox to tez sampler?

http://atari.pl/hsc/ad.php?i=1.

3

No niby tak, ale skąd ma czytać?
Covox może być pod różnymi adresami :/ Wiem o najpopularniejszych (NEO Tracker, XL digital DEMO haha) pod:
- D500
- D600
- D700
- D220
- D240
- D260
- D280
Może w takim razie lutować rezystor i zależnie od adresu odczytywać inną wartość?
Zawsze to jeden, dwa rezystory powiedzmy 4.7k a nie 30...

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

4

no czytac spod adresu gdzie sie covox znajduje. dlatego tez wartosc jedna a nie kilka. czytac d280 - wartosc oczekiwana cool, nie? czytaj kolejny adres...


sa covoxy z samplerem?

http://atari.pl/hsc/ad.php?i=1.

5

Detekcja kowoksa jest prosta: jak gra to słychać

pomidor

6

Ach faktycznie, no to wystarczy mikrofon z samplerem i juz go mozna automatycznie wykrywac ;-) Co do kodowania adresu wartoscia rezystora - fajnie gdyby to byly 2-3 adresy, ale jest ich troche.. A to moze byc problem bo chyba przetwornik wartosci paddle nie jest taki stabilny. Zrobcie drabinke z 10 rezystorow i sprawdzcie na roznych modelach/egzemplarzach atarek jak rozne wartosci bedziecie dostawac i czy przy takiej ilosci sa one latwo identyfikowalne..

The problem is not the problem; the problem is your attitude about the problem

7

rozumiem, ze soft ktory ew. mialby wykryc covoxa potrafi na nim grac?
ja proponuje takie rozwiazanie:
1. program gra domyslnie na pokeyu/covoxie ale klawiszem mozna zmieniac pomiedzy covoxem/pokeyem,
2. zmienna srodowiskowa w sparta dosie msx_unit=pokey|covox.

pamietam, ze pin mowil mi o tym juz jakis czas temu. sugerowalem mu rozwiazanie nr 1.

drac030: znam dwa dema na komodora. jedno jest fajne a drugie ma fajna muzyke.

8

Podobno w 1200XL do paddli 4..7 są podłączone jakieś jumpery.
Popieram pomysł, żeby Covox wykrywać odczytem adresu, pod którym jest.

https://www.youtube.com/watch?v=jofNR_WkoCE

9

slaby punkt takiego rozwiazania to koniecznosc ustalenia dwoch stalych adresow do odczytu adresu covoxa...

http://atari.pl/hsc/ad.php?i=1.

10

Chodziło mi o to, żeby odczytywać wszystkie adresy, pod którymi potencjalnie jest COVOX, aż na niego trafimy.

https://www.youtube.com/watch?v=jofNR_WkoCE

11

O ludzie, toż to temat stary jak świat. Epij, jesteś?

12

@Fox, zle zrozumialem...

jak sie ma sprawa z samplerem? covox jest jednoczesnie samplerem? liedys czytalem o covoxie na ukladzie scalonym nie drabince rezystorow, sa takie?

http://atari.pl/hsc/ad.php?i=1.

13

Ponieważ widzę, że Epij śpi to może sam się wypowiem.

Rozwiązanie o jakim myśleliśmy owszem, opierało się na paddlach ale polegało na podpięciu kowoksa pod paddla. Czyli nie tak jak mówi mono (może jakieś przekłamania na linii wystąpiły), że podpinamy paddle do masy. No i teraz gramy na covoxie na kolejnych adresach i patrzymy co się na paddlu pojawia.

14

To ma sens.

https://www.youtube.com/watch?v=jofNR_WkoCE

15 Ostatnio edytowany przez mono (2010-11-23 13:25:39)

Myślałem o tym, żeby przyjąć wartości paddles (z tolerancją), które wskazywałyby adres covoxa np.
* 0 - $D500
* $10 - $D600
* $20 - $D700
* $30 - $D220
itd.
W końcu jeśli już ktoś montuje covoxa (do użytku z istniejącym softem), to robi to raczej pod jakimś "standardowym" adresem, a nie np. w $D7EC.
Zdecydowanie nie podoba mi się pomysł z szukaniem covoxa po całym dostępnym obszarze I/O, bo cholera wie co akurat ktoś ma pod $D600? Zapis gdzieś a nuż włączy jakieś przerwanie i bez procedury obsługi (której prawdopodobnie nie ma w systemie) zablokuje kompa. A na paddlu (sprzętowym - cienie w xl/xe wskazują wartości z paddli 0..3) będzie albo 226 (z tolerancją) kiedy nic nie jest podpięte, albo wartość znacznie niższa wskazująca nam symbolicznie lokację covoxa zamontowanego w sprzęcie.
@Fox: Możesz powiedzieć coś więcej nt jumperów w 1200XL?

Edit: "Zapis włączy przerwania" (...) Analogicznie odczyt - kto da sobie głowę uciąć, że elektronika przy odczycie rejestru nie zmienia np. jakichś banków pamięci, romu, generuje dźwięku, włącza pralkę, whatever.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

16

http://www.virtualdub.org/downloads/Alt … Manual.pdf strona 14

https://www.youtube.com/watch?v=jofNR_WkoCE

17

Na pigwie znalazłem REV010A.ROM i tam rzeczywiście widać:

C458: A2 03     LDX #$03
C45A: BD 04 D2  LDA $D204,X ;POT4
C45D: 0A        ASL
C45E: 2E 0E 03  ROL $030E   ;ADDCOR
C461: CA        DEX
C462: 10 F6     BPL $C45A
C464: AD 32 02  LDA $0232   ;SSKCTL
C467: 8D 0F D2  STA $D20F   ;SKCTL
C46A: 58        CLI
C46B: AD 0E 03  LDA $030E   ;ADDCOR
C46E: 6A        ROR
C46F: B0 19     BCS $C48A
C471: A5 01     LDA $01     ;NGFLAG
C473: D0 15     BNE $C48A
C475: AD 01 D3  LDA $D301   ;PORTB
C478: 29 7F     AND #$7F
C47A: 8D 01 D3  STA $D301   ;PORTB
C47D: A9 02     LDA #$02
C47F: 8D F3 02  STA $02F3   ;CHACT
C482: A9 E0     LDA #$E0
C484: 8D F4 02  STA $02F4   ;CHBAS
C487: 4C 03 50  JMP $5003

że jeśli jumper P4 jest zwarty (POT4.7=0) i wystąpiły błędy przy testowaniu ROMu lub RAMu (NGFLAG=0), to wchodzi się do SELF-TESTu. Stan P4..P7 dostępny jest w rejestrze $30E w bitach 0..3, ale nie wygląda mi na to, żeby gdziekolwiek OS tego używał poza procedurą RESET. Czy normalnie te jumpery są zwarte? Kto z posiadaczy 1200XL mógłby powiedzieć, jakie wartości zwraca PEEK(53764)..PEEK(53767)? Może to jest używane do celów serwisowych?
Ale to w zasadzie na boku, bo nadal można wykorzystać P5..7.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

18

1200xl nie ma basica ;)

ja tam wole set blaster=a220 i5 d1

przechodze na tumiwisizm

19

Tia, zmienna środowiskowa byłaby najlepsza. Tylko że jedna jedyna Sparta X je ma.

KMK
? HEX$(6670358)

20

Mnie tam podoba się opcja ręcznej konfiguracji, która jest "de facto" standardem, nie musi to być zmienna środowiskowa - jeśli nie ma SpartaDOSa, to program może mieć instalator jak NeoTracker, wbudowane menu jak Inertia lub ProTracker, albo własny plik konfiguracyjny. Już widzę, jak wszyscy rzucają się (lub swoje komputery) do przylutowania jednego kabelka po to, żeby Covox nagle stał się wykrywalny, a potem masturbują się oglądając cztery magiczne cyferki, które "zgadły się same!!!!1111one". ;)

Technicznie zmodyfikowanie covoxa, żeby coś się odczytywało pod jego adresami nie powinno być trudne, i nawet byłoby to eleganckie rozwiązanie, ale...
Drastyczny przypadek wspomniany przez mono to tylko jedna możliwość (wiem, że Spartę można włączyć odczytem, odczyt rejestru danych IDE też ma skutki uboczne, coś jeszcze?), ale wyobraźmy sobie po prostu, że jest tam jakieś inne urządzenie (VBXE?), które daje sensowne (!=255) wartości. Jaką procedurę detekcji proponujecie, żeby mieć pewność, że to Covox?

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

21 Ostatnio edytowany przez drac030 (2010-11-23 16:40:43)

<teoretyzując dalej> Zmienna środowiskowa jest w gruncie rzeczy kompromisem pomiędzy detekcją automatyczną a opisaną przez epiego konfiguracją ręczną. Primo, program chcący się dowiedzieć, czy i gdzie jest taki covox, odczytuje tę informację automatycznie, w jeden, konkretnie zdefiniowany sposób. Secundo, nie potrzebuje z drugiej strony żadnego instalatora czy menu.

To od tego między innymi jest system operacyjny, żeby przechowywał i udostępniał tego typu informacje o komputerze, w tym o sprzęcie. A czy pozyska je automatycznie czy też od usera (przez jakiś centralny plik konfiguracyjny) to już nie jest zmartwienie programu od covoxa.

Oczywiście zaraz odezwą się tacy, którym OS przeszkadza. No cóż. Mimo wszystko moim zdaniem ta droga jest najłatwiejsza i najsensowniejsza. Z zastrzeżeniem jak wyżej, że OS musi mieć tę informację i ją móc udostępnić, a nie służyć tylko jako prymitywny loaderek do niektórych gierek.

KMK
? HEX$(6670358)

22

technicznie, to trzeba dolozyc zatrzask 8bit z oe, lub bufor 8 bit - przy rozwiazaniu dyskretnym calosc robi sie jeszcze wieksza, przy zespolonym dacu tez nie wyglada to najlepiej
dodatkowo komplikuje sie dekoder - i w imie czego?

komputer jest z lat 80', ale userzy chca wygody z lat wspolczesnych?
na rozwiazania typu isa pnp mowilo sie plug'n'pray, a w config.sys niesmiertelna linijka bylo nadal set blaster=...

przechodze na tumiwisizm

23 Ostatnio edytowany przez mono (2010-11-23 18:35:02)

Procedura do rozszerzenia wg pomysłu Pina:

covoxdetect:
  lda #%11111011  ;20ms
  and skctls  ;$232
  sta skctls  ;$232
  sta skctl   ;$d20f
  lda #%00010000
  sta potgo   ;$d20b
?wait:
  bit potst   ;$d208
  bne ?wait
  lda pot4    ;$d204 lub 5,6,7 co tam sobie wybierzemy
  ldx #6
?loop:
  cmp potvalue,x
  bcc ?addr
  dex
  bpl ?loop
?addr:
  lda baseadl,x
  ldy baseadh,x
  rts
potvalue dta b($70),b($60),b($50),b($40),b($30),b($20),b($10)
baseadl dta l($d500),l($d600),l($d700),l($d220),l($d240),l($d260),l($d280)
baseadh dta h($d500),h($d600),h($d700),h($d220),h($d240),h($d260),h($d280)

C=1 na wyjściu - nie ma covoxa wpp YA-adres bazowy, X-indeks urządzenia w tablicy (jeśli by do czegoś komuś był potrzebny).

@Candle: Oczywiście, bo każde inne rozwiązanie wymaga dołożenia już kawałka elektroniki. A jeśli już trzeba kostkę, to nie będzie przecież wisieć w powietrzu - więc trzeba płytkę. Płytkę na kołku dystansowym pasowałoby zamocować, albo przynajmniej na silikonie (:D:D) przykleić. Robi się z tego straszne rozszerzenie. Pomysł pina/epiego/xana wymaga przylutowania 1 kabelka, a zyskujemy możliwość zwykłej detekcji.

Edit: Zapomniałem o odpaleniu przetwarzania (uzupełniam wyżej).

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

24

Wątek w istocie dotyczy detekcji rozszerzenia o roboczej nazwie "detektor covoxa", a nie samego covoxa. ;)

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

25

Detekcja na opornikach  to wielka porażka !

PRZETESTOWAŁEM już taki manewr: http://atariarea.krap.pl/forum/viewtopic.php?id=7842

Wartości rezystorów oraz ich toleracja plus różne odczyty nie pozwalają na pewne wykorzystanie 4 najmłodszych bitów rejestrów PADDLE.

Ponadto, NALEŻY zmodyfikować procedurę przerwania VBI (część opóźnioną).
Ona to co ramkę RESETUJE stan odczytów Paddle by Pokey mógł wykonać następny pomiar. 
Przedtem przerzuca ich stany do rejestrów cieni, pobierając dane z PADDLE0-3 i wpisując dane do cieni 0-3 ..... i to samo do 4-7. Tak więc, te rejestry (4-7) są niedostępne przy włączonym VBI.

IMHO: detekcja? Ale boicie ajdzchajmera? Ja jeszcze pamiętam co jest po maską :)