Aktualności: C64 Power - online od stycznia 2000 !

Autor Wątek: Poprawny wzór na prędkość RS-232  (Przeczytany 555 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline qus

  • Level 3
  • ***
  • Wiadomości: 201
Poprawny wzór na prędkość RS-232
« dnia: 18 Stycznia 2019, 14:24 »
Cześć,

Bawię się modemem wifi dla c64 i próbuję zobaczyć, czy da się z niego coś więcej wycisnąć niż 19200, które jest jedną z domyślnych wartości rejestru kontrolnego przy otwieraniu kanału, składnia jest jak wiadomo taka:

open <rejestr kontrolny><rejestr komend><opcjonalna szybkość lo><opcjonalna szybkość hi>

Wyżej wymienione starożytne dzieło pokazuje na lo i hi poniższy wzór, który, jak łatwo zauważyć, nie tylko zawiera błędy drukarskie, ale też daje wartości z dupy:

   <opt baud low>=<system frequency/rate/2-100-<opt baud high>*256
   <opt baud high>=INT((system frequency/rate/2-100)/256

Czy jest na forum ktoś, kto rozwiązał tę łamigłówkę i ma prawidłowe formuły na oba bajty?

Jak łatwo zauważyć, autor wzoru spodziewa się, działanie "system frequency/rate/2-100" może dać więcej niż 256 :D, w dodatku, nawet podstawiając 255 pod lo/hi i rozwiązując dla baud otrzymujemy coś co raczej szybkością nie jest...
« Ostatnia zmiana: 18 Stycznia 2019, 14:36 wysłana przez qus »



Offline qus

  • Level 3
  • ***
  • Wiadomości: 201
Re: Poprawny wzór na prędkość RS-232
« Odpowiedź #1 dnia: 18 Stycznia 2019, 14:44 »
Wzór mógłby mieć sens w takiej postaci:

   <opt baud low>=<system frequency>/(rate/2-100)-<opt baud high>*256
   <opt baud high>=INT(<system frequency>/(rate/2-100))/256

Daje wtedy
51, 0 dla 38400 w PALu
34, 0 dla 57600 w PALu


Ale czy to prawidłowe?
« Ostatnia zmiana: 18 Stycznia 2019, 14:48 wysłana przez qus »

Offline KB777

  • Level 6
  • ******
  • Wiadomości: 2430
  • -profil nieaktywny-
Re: Poprawny wzór na prędkość RS-232
« Odpowiedź #2 dnia: 18 Stycznia 2019, 15:07 »
Od kiedy to C64 bez karta z Uartem albo bez dedykowanego kodu wyciągnie więcej niż 1200 ? ;)
-profil nieaktywny-

Offline qus

  • Level 3
  • ***
  • Wiadomości: 201
Re: Poprawny wzór na prędkość RS-232
« Odpowiedź #3 dnia: 18 Stycznia 2019, 15:16 »
1) Istnieje kod UP9600

2) A tutaj mamy, ehm... "Using the WiModem at 38K Baud with CommodoreServer"

https://www.commodoreserver.com/BlogEntryView.asp?EID=6C07EB1F8BB048CB877597985D9FD026

3) i fragment instrukcji samego modemu:

The well known “UP9600” hack is built into the WiModem. You will
need to enable the hardware handshaking to use this feature at 9600 baud.
COMMODORESERVER.COM's V1541 38400 baud driver is also supported, but
requires that the CTS, RTS, and DCD polarities to be reversed as this driver
uses normal RS-232 polarity levels (Commodore polarities are actually
backwards from the industry standard).
« Ostatnia zmiana: 18 Stycznia 2019, 15:25 wysłana przez qus »

Offline qus

  • Level 3
  • ***
  • Wiadomości: 201
Re: Poprawny wzór na prędkość RS-232
« Odpowiedź #4 dnia: 19 Stycznia 2019, 15:28 »
No, cóż. Wzór i tak na nic się nie przyda, bo całkiem wyczerpującą odpowiedź znalazłem tu:

Cytuj
So it seems there's no port speed limitations on the CIA side, and the theoretical
maximum transmit speed is around 356 kbps, because one Hz (one cycle between low
and high levels) represents two bits in this case.
This square wave can be considered as a start bit + 8 data bits (carrying
85 decimal value) + a stop bit.
Of course this speed can't be reached in the real life, since processing the input
string (bytes to series of bits) will consume considerable amount of CPU time.

(...)

In my last post I've mentioned the screen wasn't disabled during the tests. Well... disabling it drastically changed the results.
Even without using the timer interrupts generated by CIA2, the bit-times became very accurate up to 9600 bps transmit speed.

No i po co było dawać predefiniowane szybkości do 19200 i jeszcze rozbudzać wyobraźnię jakimiś wzorami, skoro max co się da wyciągnąć to 9600 i to samemu pisząc kod?

Offline KB777

  • Level 6
  • ******
  • Wiadomości: 2430
  • -profil nieaktywny-
Re: Poprawny wzór na prędkość RS-232
« Odpowiedź #5 dnia: 19 Stycznia 2019, 15:59 »
A o czym pisałem ? 1200 max pod bejzolem.

9600 (z podpiętym Up9600 pod kernelowe funkcje) - nie sądzę, żeby zmiana prędkości przez "open" coś w ogóle dawała (typu ustawienie 4800), a większe prędkości - tu mnie zastanawiało jak chcesz bejzolowym "open" zmieniać prędkość, kiedy tylko dedykowany soft (i to z cudami typu wyłączone przerwania i ekran) wyciska te 38400 (co do punktu 2 - wystarczyło przeczytać "Using the WiModem at 38K Baud with CommodoreServer").
« Ostatnia zmiana: 19 Stycznia 2019, 16:04 wysłana przez KB777 »
-profil nieaktywny-

Offline hobocti77x

  • Level 5
  • *****
  • Wiadomości: 731
Re: Poprawny wzór na prędkość RS-232
« Odpowiedź #6 dnia: 19 Stycznia 2019, 17:44 »
Co to dokladnie za modem WiFi ?
Na swojej "protezie" na CIA wyciagam 115 200 (teoretycznie bylo mozliwe 230400 choc nie testowalem praktycznie).
Tak sobie mysle ze spokojnie moznaby ja dostosowac aby nie potrzeba bylo przerabiac tego modemu.
Sa gdzis w sieci jakies informacje o tym WiFi ?

Offline qus

  • Level 3
  • ***
  • Wiadomości: 201
Re: Poprawny wzór na prędkość RS-232
« Odpowiedź #7 dnia: 19 Stycznia 2019, 18:44 »
@hobocti77x No, właśnie - w międzyczasie znalazłem post, w którym sam Jim Drew pisze, że:

Cytuj
Besides 300 baud support, the WiModem also supports 38400 baud for the Commodore Server software (along with handshaking polarity inversion, required for the V1541 driver).

I komu tu wierzyć... Modem jest chyba klonem WiModemu, pochodzi z Norwegii, jeśli się nie mylę.O, od tego pana: https://retrozonesite.wordpress.com

@KB777 nigdzie nie pisałem o bejzolu, czy ja się nazywam Kubuś Literka? ;)

Póki co wydawało mi się, że wiem wszystko - potrzebuję up9600 żeby wycisnąć 9600. A tu nagle ktoś, kogo bym nie podejrzewał o niewiedzę, pisze jednak o 38400. Ki czort? Próbuję podpytać kolesia od Commodore Servera...
« Ostatnia zmiana: 19 Stycznia 2019, 18:52 wysłana przez qus »

Offline KB777

  • Level 6
  • ******
  • Wiadomości: 2430
  • -profil nieaktywny-
Re: Poprawny wzór na prędkość RS-232
« Odpowiedź #8 dnia: 19 Stycznia 2019, 20:28 »
A o co pierwotnie pytałeś Kubusiu ? O otwieranie RS z bejzola ;)

38400 pewnie z wymienionym softem jest możliwe. To, że to ma szanse działać udowodnił lata temu TLR, jego Over5 z Amigą komunikowało się na 38400.
-profil nieaktywny-

Offline qus

  • Level 3
  • ***
  • Wiadomości: 201
Re: Poprawny wzór na prędkość RS-232
« Odpowiedź #9 dnia: 20 Stycznia 2019, 10:29 »
Moje pytanie było w pseudokodzie ;) open/chkin - jeden chuj.

W każdym razie Jim mi to wyjaśnił, jak dziecku:

- maksymalna prędkość dla TERMINALA na C64 to 9600, wymaga podłubania przy porcie (wimodem dłubie sobie sam i można to przestawić software'owo) + własny sterownik

- ALE nie ma najmniejszych problemów, żeby niemodyfikowany C64 uciągnął 38400 albo nawet 57600 na samym sofcie... Sprzeczność? Nie, bo robi to tylko na półdupleksie, przy wygaszonym ekranie!

Offline hobocti77x

  • Level 5
  • *****
  • Wiadomości: 731
Re: Poprawny wzór na prędkość RS-232
« Odpowiedź #10 dnia: 20 Stycznia 2019, 13:51 »
Czy mozesz podac jaki chip jest w tym modemie ?
Czy to ESP8266 ?

Offline KB777

  • Level 6
  • ******
  • Wiadomości: 2430
  • -profil nieaktywny-
Re: Poprawny wzór na prędkość RS-232
« Odpowiedź #11 dnia: 20 Stycznia 2019, 14:53 »
Czy mozesz podac jaki chip jest w tym modemie ?
Czy to ESP8266 ?

No ba, wujek Gógiel szybko podpowiada:
https://1200baud.wordpress.com/2017/03/04/build-your-own-9600-baud-c64-wifi-modem-for-20/

Tak, 8266.
-profil nieaktywny-

Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Re: Poprawny wzór na prędkość RS-232
« Odpowiedź #12 dnia: 21 Stycznia 2019, 12:21 »
ale czemu UP9600, skoro sa chipy takie jak 6551 czy 6850 i sa one wspierane przez programy terminalowe?
"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"

Offline KB777

  • Level 6
  • ******
  • Wiadomości: 2430
  • -profil nieaktywny-
Re: Poprawny wzór na prędkość RS-232
« Odpowiedź #13 dnia: 21 Stycznia 2019, 17:11 »
ale czemu UP9600, skoro sa chipy takie jak 6551 czy 6850 i sa one wspierane przez programy terminalowe?

Albo lepiej nawet:
http://mycpu.selfhost.it/otherprojects/c64terminal/index.htm

Uarty natywne dla 65xx/68xx słabe trochę są...
-profil nieaktywny-