Welcome, Guest. Please login or register.


Author Topic: Fileok atvitele a sorosporton (Read 14339 times)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Fileok atvitele a sorosporton
« Reply #30 on: 2023.May.07. 17:42:59 »
Mert a COPY karakter írás/olvasást használ, a LOAD meg blokk olvasást.

Offline Czo

  • User
  • *
  • Posts: 94
  • Country: hu
Re: Fileok atvitele a sorosporton
« Reply #31 on: 2023.May.13. 16:16:07 »
Le a kalappal az IS fejlesztoi elott. Igencsak meglepodtem a block read mukodesen, mert eddig ahhoz voltam szokva, hogy fizikai block eszkozrol meg csak-csak kap az ember annyi byteot, amennyit ker, de sorosportnal leginkabb a 2-32 byte kozotti adat jon ki egyszerre. No, itt nem :) Siman kerek a 4k-t a serial portrol az EXOS 06h hivasaval es bumm, annyit is kapok. Azt mar latom, hogy ugy lesz celszeru megvalositani, ha a soros iranybol 1k/2k szeletekben olvasok (igy lehet majd kirakni erdemben progressbart pl), mig floppyra ossze kell varni tobb szeletet es azt egyben kitolni. A file a notebookomon futo FTP szerverrol jon :)

Fel is raktam egy mini, techdemo videot jutubra :)

z88dk-val keszult, sdcc -t compilernek hasznalva es tartalmaz nehany assembly betetet is. Ezen kivul, bele kellett nyulnom a gyari crt0-ba is. Eddig soha nem irtam Basicen kivul semit ide, ugyhogy ez lett az elso C + ASM programom.

Offline Dr.OG

  • Global Moderator
  • EP lover
  • *
  • Posts: 742
  • Country: hu
  • dr.
Re: Fileok atvitele a sorosporton
« Reply #32 on: 2023.May.13. 18:30:13 »
Le a kalappal!
Számomra meglepően gyorsnak tűnik az adatátvitel, kb. összehasonlítható a sebessége a Commodore IEC porttal...
ÉN ekelek, TE keregsz, Ő gyeleg,
MI ákolunk, TI vornyáztok, ŐK lendeznek.

Offline Czo

  • User
  • *
  • Posts: 94
  • Country: hu
Re: Fileok atvitele a sorosporton
« Reply #33 on: 2023.May.13. 18:36:53 »
Koszi. 0.57-0.58 kByte/s, azaz kb 4800 bps, amit igy hirtelenjeben el tudtam erni (ez ugyonaz a sebesseg, mint a load "serial:" parancs). Egyelore megirom magamnak a koritest igy (helyi, tavoli file tallozo, wifi listazo, csatlakozas kezelo, ftp/windows megosztas kezelo), aztan megnezem majd a korabban linkelt doksit, azzal tudok-e valahogy gyorsitani, vagy egyaltalan kezdeni vele valamit. Illetve, mivel mind a ketto hardvert en kontrollalom, igy ki lehetne hasznalni azt, hogy "2" Rx es Tx vonal van (a sima rx/tx illetve a status ki/be labak). De ez meg a jovo zeneje. Egyelore ennek is orulok :)

Offline Dr.OG

  • Global Moderator
  • EP lover
  • *
  • Posts: 742
  • Country: hu
  • dr.
Re: Fileok atvitele a sorosporton
« Reply #34 on: 2023.May.13. 18:45:36 »
Apropó: az EP printer/párhuzamos portja fogadni is tud adatot, vagy csak küldeni? Lehet, hogy az még gyorsabb volna...
ÉN ekelek, TE keregsz, Ő gyeleg,
MI ákolunk, TI vornyáztok, ŐK lendeznek.

Offline Dr.OG

  • Global Moderator
  • EP lover
  • *
  • Posts: 742
  • Country: hu
  • dr.
Re: Fileok atvitele a sorosporton
« Reply #35 on: 2023.May.13. 18:50:45 »
Koszi. 0.57-0.58 kByte/s, azaz kb 4800 bps, amit igy hirtelenjeben el tudtam erni (ez ugyonaz a sebesseg, mint a load "serial:" parancs). ...
Jól saccoltam, Wiki szerint:
Quote
In standard operation (LOAD, unmodified KERNAL-routines) the serial bus is capable to transmit 400 byte/second using a 1541 and approx. 650 bytes/second using an SD2IEC.
ÉN ekelek, TE keregsz, Ő gyeleg,
MI ákolunk, TI vornyáztok, ŐK lendeznek.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Fileok atvitele a sorosporton
« Reply #36 on: 2023.May.13. 19:21:37 »
Apropó: az EP printer/párhuzamos portja fogadni is tud adatot, vagy csak küldeni? Lehet, hogy az még gyorsabb volna...
Csak küldeni.

Offline Czo

  • User
  • *
  • Posts: 94
  • Country: hu
Re: Fileok atvitele a sorosporton
« Reply #37 on: 2023.May.15. 11:50:23 »
Azon gondolkodom, hogy kell-e cheksumoznom az atvitelt. Raktam bele egy lookup tablas CRC16-ot, amit jelenleg a 4k-s segmensekben tolok a cuccra, de ezt tulzasnak erzem (bar at kell majd irni C-bol assemblyre, az gyorsit valamit). Eleve, a TCP-n csak nagyon minimalis "cheksum" van, ehhez az FTP pl. nem is ad hozza semmit. Szoval nem tudom. Lehet, hogy inkabb a 8N2 atvitelhez adjak hozza pl. paritasbitet (amit, igy az EXOS szamolna, ha ez a resze mukodik, mert a 8N1 sem megy neki)? Bar itt meg kell meg nezni, hogy mi tortenik, ha paritasbit hiba van. Mert az elveszett byteot/szegmenst ujra kell kerni a kuldotol.

Szoval, valszeg a CRC16 repul, helyette egyszerubb lenne a TCP-nel alkalmazott cheksum 8 bites verzioja. A TCP/UDP cheksum az 16 bites szavakra szabdalja a packetbol a forras/cel ip cimet, nehany mezot meg a headerbol, illetve az adatbyteokat, majd ezeket sumolja (nem torodik a tulcsordulassal), majd az osszeadas vegen keletkezett 16 bites szamnak kepzi a komplemenset, es ez lesz a cheksum. Az ellenorzes is ugyonilyen egyszeru, a 16 bites wordoket egyszeruen ossze kell adni, majd a vegen hozzaadva a cheksumot, minden bitnek 1-nek kell lennie. Mivel az egesz cucc, max 2 centire van az EP soros portjatol, igy arra nem szamitok, hogy zavar keletkezik, igy lehet, hogy az egesz ellenorzes folosleges? Illetve, mivel nem zavarra, hanem pl bit elcsuszasra szamitok, lehet, hogy eleg lenne, az elso es az utolso 16/32/64 byteot cheksumolni csak?

A jelenlegi "probalkozasaim" egyebkent azt mutatjak, hogy minden egyes byte tokeletes allapotban beerkezik a gepre. De nyilvan, 1 meres nem meres, 1 minta pedig nem minta.

Minden egyes extra "ellenorzes" ugye az atviteli sebesseget rontja, mert amig a Z80 cheksumot szamol, nem tud fogadni a sorosporton. Itt gondolkodtam olyanban is, hogy eloszor fel kene irni diszkre az egesz filet, majd ha a felhasznalo bekapcsolta az ellenorzest, akkor lehetne ellenorizni az allomanyt (ugyonugy 2k/4k-s darabokban, a hibas darabot pedig itt, ezen a ponton lehetne korigalni es ujrakerni, ha van ra lehetoseg).

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Fileok atvitele a sorosporton
« Reply #38 on: 2023.May.17. 15:44:42 »
Úgy tűnik jók kis bugot fogtál az EXOS-ban :oops:

Mondtad, hogy néztél scopot... tudnál ábrát vagy leírást betenni, hogyan néz ki az átvitel 8N1 meg 8N2 módban?

Offline Czo

  • User
  • *
  • Posts: 94
  • Country: hu
Re: Fileok atvitele a sorosporton
« Reply #39 on: 2023.May.19. 21:29:19 »
Úgy tűnik jók kis bugot fogtál az EXOS-ban :oops:

Mondtad, hogy néztél scopot... tudnál ábrát vagy leírást betenni, hogyan néz ki az átvitel 8N1 meg 8N2 módban?

Hogy is mondjam, minden "jol" nez ki. A veteli oldalon van a hiba. A hetvefgen szerintem lesz idom foglalkozni vele, igy tudok majd egy slow motion felvetelt kesziteni a jatekscop kijelzojerol.

Tippre valami olyan lehet a problema, hogy nincd "megirva" a branching a bit erteketol fuggoen. Gondolkodtam rajtam, hogy disassemblelni kene az EXOS kodjat (nem tudom, van valami tomorites a romon?) es akkor meg lehetne keresni azt a rutint, ami olvasgatja a B6h portot.

Viszont, ujabb "problemaba" utkoztem. Az 1-es csatorna megnyitas funkcioval meg tudom nyitni a sorosportot, ez tok jol mukodik, viszont nem tudom, hogy honann tudom, hogy olvashatok-e belole. A 9-es csatornaolvasasi allapot hivassal le tudom ugyan kerezni de ez latszolag nincs implementalva. Ha magat a csatornat nem nyitom meg, akkor rendre 01h kerul a 'C'-be, ha viszont nyitva van a 'SERIAL:', akkor mindig 00h kerul bele (az 'A'-ba is 00h van, tehat a hivas "ertelmes"). Erre ugye boldogan hivok is egy 5-os karakter olvasasa hivast, amire konstans blokkolodik a kod. Ha ekkor kuldok be valami byteot, akkor minden megy tovabb. Itt viszont, az szerpel, hogy ha nem jon startbit, akkor egy nem definialt idotullepes utan a kodnak vissza kene ternie az alkalmazoi programhoz. Viszont ez sem tortenik meg.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Fileok atvitele a sorosporton
« Reply #40 on: 2023.May.19. 21:46:52 »
Hogy is mondjam, minden "jol" nez ki. A veteli oldalon van a hiba.
Igen, a vételi oldal javításához szeretném látni, hogyan is néz ki a dolog, mit hogyan kéne lekezelni.

Quote

 A hetvefgen szerintem lesz idom foglalkozni vele, igy tudok majd egy slow motion felvetelt kesziteni a jatekscop kijelzojerol.
Köszi! Ha nem túl extra kérés, akkor parítás bites variációk is lehetnének?

Offline Czo

  • User
  • *
  • Posts: 94
  • Country: hu
Re: Fileok atvitele a sorosporton
« Reply #41 on: 2023.May.22. 01:43:23 »
Igen, a vételi oldal javításához szeretném látni, hogyan is néz ki a dolog, mit hogyan kéne lekezelni.
Köszi! Ha nem túl extra kérés, akkor parítás bites variációk is lehetnének?

Ah, keptelen vagyok ertekelheto videokat loni a szkoprol. Egszeruen, ehhez ez nem a jo eszkoz. Ami latszik, az ez egyebkent:
Code: [Select]
______-_----__-__--_---__-__-__---__-______
Ez a jel megy a kabelen, ami a bal oldalan van, az erkezik meg eloszor. A soros kommunikacio nyugalmi allapota, a -12V, tehat az "1"-es bitnek megfelelo allapot. A start bit, az egy olyan atmenet, ami a -12-rol +12-re ugrast jelent, ez lathato, balrol a 7. karakterpozicioban, majd ezutan jon a 8 adatbit, +12V jelzi a 0-t, -12V az 1-et, tehat a "start bit",az tulajdonkeppen, egy "0". A stop bit pedig az "1"-nek megfelelo allapot, es azt a minimalis nyugalmi idot jelenti, ami utan kovetkezhet a kovetkezo startbit.

Tehat, ha a fenti mintat felirom, akkor ezt kapom:
Code: [Select]
______-_----__-__--_---__-__-__---__-______
xxxxxxS10000110TTS01000110TTS11000110Txxxxx

Ahol:
- 'x' a nyugalmi allapot
- 'S' a 'start bit', tehat a nyugalmi allapotbol az elso felugro jel
- '1'/'0' egyertelmu
- 'T' pedig a stop bit, tehat kb a nyugalmi allapot

Az atvitel LSB, tehat az elso byte, ami beerkezik balrol nezve, az 01100001, azaz 97, majd jon a 98 es a 99. Ez lenne az 'abc'. Ez volt a helyzet 2 stopbit eseten.

No, ha kiveszek 1 stopbitet, akkor az alabbi jelsalak van
Code: [Select]
______-_----__-_--_---__-_-__---__-______
xxxxxxS10000110TS01000110TS11000110Txxxxx
00110111
Ebben az esetben, hiaba allitom at, az EXOS ezt elrontja. Kozben nezegettem ezt a mintat, tobbfajta sebessegnel, de alapvetoen ugy latom, hogy nem a kezelese/nem kezelese a hiba, hanem nem "er oda idoben". Mutatom, hogy mit lattam:

Code: [Select]
______-_----__-_--_---__-_-__---__-______
xxxxxxS10000110TS01000110TS11000110Txxxxx
      ..........XS||||||||TS???????????

Az elso startbit, majd a 8 adatbit vegul az elso stopbit rendben van (itt nincs is meg mindek elromlania), majd az eredeti startbit 'S' elromlik (ezt a hibat jelzem 'X'-vel), az ezutan erkezo 0 lesz startbitnek ertelmezve ('S' betu), majd megerkezik a 8 adatbit ('|'). Ami ezutan tortenik a bitekkel, azt nem teljesen ertem.

Az megvan, hogy 97 erkezik meg elsonek, a masodik minden probalkozasnal 177, azaz 1011 0001, azaz a kabelen 1000 1101. A harmadik byte tobabbi kavar es elcsuszas aldozata lesz, mert, nem teljesen ertem, hogy miert tortenik es pontosan mi tortenik.

Amit at akarnek kuldeni:
97, 98,99 azaz 0x61, 0x62 es 0x63, de vegul, 97, 177 es 236 lesz belole, azaz 0x62, 0xB1, 0xEC.

Ja, ilyen 300 baud kornyeken, meg jol mukodik, tehat tuti, hogy a kod "jo", csak valszeg van valami, ami miatt lassu. Illetve, miel a stopbit megfelel a nyugalmi allapotnak, ezert egy 8N2-vel adott jelet, a 8N1-re allitott gep kepes dekodolni, hiszen minden idozites egyezik, csak 8N2 eseteben, nagyobb a szunet, a byte utolso bitje, es a kovetkezo byte startbitje kozott.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Fileok atvitele a sorosporton
« Reply #42 on: 2023.May.22. 10:04:48 »
Köszi, kezdem érteni...
Tisztázzuk még a vezetékeket. EP oldalon értelmesen vannak elnevezve Data In/Out, Status In/Out, míg ezeken a soros vackokon mindenféle értelmetlen betűkombináció van :evil:

EP Data In, az a RxD vagy manapság csak RX, amit a túloldalon a TxD (TX)-hez kell kötni.
EP Data Out az a TxD (TX) amit a túl oldalon az RxD (RX)-hez kell kötni.
EP Status In a CTS, ami túloldalon DCD, DTR, DSR-re van kötve... ??? Miért nem RTS-re?
EP Status Out a RTS, ami a túloldalon CTS-re van kötve.

Az EXOS leírásból az jön ki nekem, hogy alapból mind a Data mind a Status vezetékek alapból alacsonyban vannak.
A fogadó fél kezdeményez, Status Out (RTS) magasba húzásával, amire várja, hogy a Data In-je is magasba menjen, azaz Start bit.

Ami még nem tiszta, hogy itt a leírásban az alacsony/magas alatt a vezeték állapotára gondol, vagy a Dave bitek állapotáról. A te leírásod alapján a vezetékről beszél, vagyis amikor a B6h/B7h port bitjeit nézzük, akkor pont invertálva kell értelmezni. Jól gondolom?
Amikor olvasod a B6-ról a biteket, ott a valódi bitek érkeznek meg?

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1291
  • Country: hu
  • Stray cat from Commodore alley
Re: Fileok atvitele a sorosporton
« Reply #43 on: 2023.May.22. 10:47:35 »
EP Status In a CTS, ami túloldalon DCD, DTR, DSR-re van kötve... ??? Miért nem RTS-re?
Azért, mert – ismereteim szerint – a soros kommunikáció alapvetően távolsági adatátvitelre lett kitalálva, oda meg szükség van valami további eszközre (annak idején leggyakrabban modem), ami tényleg elviszi messzire az adatot. Ezért a soros kábel egyik felén van Data Terminal Equipment, a másikon meg Data Communication (vagy Carrier?) Equipment. Nyilván a kettőt logikailag nem ugyan úgy kell madzagolni, mert a távközlő berendezés máshogyan viselkedik mint egy (felhasználói) terminál. Az EP-nek valamelyiket el kell játszania ahhoz, hogy működhessen a PC-vel a kommunikáció. Tippem szerint DCE-t, ezért a furcsának ható bekötés.

Offline Czo

  • User
  • *
  • Posts: 94
  • Country: hu
Re: Fileok atvitele a sorosporton
« Reply #44 on: 2023.May.22. 10:49:19 »
Köszi, kezdem érteni...
Tisztázzuk még a vezetékeket. EP oldalon értelmesen vannak elnevezve Data In/Out, Status In/Out, míg ezeken a soros vackokon mindenféle értelmetlen betűkombináció van :evil:

EP Data In, az a RxD vagy manapság csak RX, amit a túloldalon a TxD (TX)-hez kell kötni.
EP Data Out az a TxD (TX) amit a túl oldalon az RxD (RX)-hez kell kötni.
EP Status In a CTS, ami túloldalon DCD, DTR, DSR-re van kötve... ??? Miért nem RTS-re?
EP Status Out a RTS, ami a túloldalon CTS-re van kötve.

Az EXOS leírásból az jön ki nekem, hogy alapból mind a Data mind a Status vezetékek alapból alacsonyban vannak.
A fogadó fél kezdeményez, Status Out (RTS) magasba húzásával, amire várja, hogy a Data In-je is magasba menjen, azaz Start bit.

Ami még nem tiszta, hogy itt a leírásban az alacsony/magas alatt a vezeték állapotára gondol, vagy a Dave bitek állapotáról. A te leírásod alapján a vezetékről beszél, vagyis amikor a B6h/B7h port bitjeit nézzük, akkor pont invertálva kell értelmezni. Jól gondolom?
Amikor olvasod a B6-ról a biteket, ott a valódi bitek érkeznek meg?

Igen, a sorosporti vonal invertalt. A B6h/B7h portokat egyetlen egyszer probaltam olvasni (de azt is csak Basicben), amikor kerestem, hogy melyik USB-s soros atalakitomon mukodnek az Rx/Tx vonalakon tuli status vonalak (4 adapterbol osszesen egyetlen egy darabbal!). De ott nem emlekszem, hogy 0 vagy 1 volt, de ha fogadnom kene, azt mondanam, hogy invertalt, mert a mikrovezerlovel ugy hasznalom). Megnezem neked este, mert ez az info "latszik" a szkopon. A tobbi infohoz tobb lassitottfelveteles videot, videobol screenshotokat, a screenshotoknal meg screenrulert alkalmazva nyertem ki a dolgokat, majd mindezek "feldolgozasa" utan, eszembejutott, hogy bakker, meg kene nezni, hogy mit ir a specko. Szerencsere a screenruleres meregetes es a specko "egybevag" :D.

Alapvetoen a megvalositott flow control faek egyszeru (semmi koze, a tobbvezetekes, PC-n megszokott RTS/CTS/stb megoldashoz, azert kell ilyen hulyen osszekotni, ha PC-zik az ember). Az EP nekem ossze van kotve egy MAX232 -vel, az EP iranybol jovo "Data Out" es "Status Out" van bekotve az R1IN, R2IN vonalra, az EP fele meno, az EP-n "Data In" es "Status in" szovegekkel ellatott vonal pedig be van kotve a T1OUT es T2OUT labaira a MAX-nak, a mikrovezerlonel a mikrovezerlo ado-vevo laba van bekotve az R1OUT (ez megy arra a labra, amin a mikrovezerlo vesz) illetve T1IN (ez ugye oda, ahol ad a mikrovezerlo) vonalakra, majd a kimarado R2OUT es T2IN pedig 1-1 szabadon valasztott GPIO-ra, amit szoftverbol vezerlek (most attol tekintsunk el, hogy a mikrovezerlo 3V3-as logikaval megy, a MAX232 pedig 5V-vel, igy a MAX-tol a mikrovezerlo labai koze be kellett raknom egy egyszeru ellenalasos feszultsegosztot, visszairanyba viszont egyenesen kothettem, mert a MAX-nal 2V felett mar megvan a magas szint). Itt a mikrovezerlonel invertalnom kell a labakat, tehat a 0 lesz a magas, es 1 lesz az alacsony ertek. A tenyleges flow control pedig abbol all, hogy az EXOS byte irasa csatornara, illetve blokk irasa csatornara kodja nem kezd el addig dolgozni, amig nincs magasra (tipp, este megnezem) huzva a "Status In" vezetek. Amikor pedig adatot kuldok az EP-be arra kell figyelnem, hogy a "Status Out" vonalat az EP magasra (tipp, megnezem este) huzza, amikor elkezdem a kommunikaciot.

A betukombinaciok tenyleg ertelmetlenek, ossze vissza cimkezik, igy mindig meg kell nezni, ha valamit osszekotok, hogy ott az Rx az, ahol az eszkoz vesz, vagy az Rx az, ahova a forrasgep vevo labat kell kotnom (agyrem). Az "eredeti" PC-s megvalositast "nem epitettem meg". Marmint, ott is csak azt neztem, hogy ha az EP "Status Out" vonalat bkotom pl az RS232 RD (ring detect) vonalara, akkor azt latja-e a PC.

Nekem is eszembejutott, hogy mivan, ha az EXOS 9-es hivasa (csatornaolvasasi allapot) a "Status In" vonaltol fuggoen mondja azt, hogy olvashatsz. Mert ha "Status In" alacsony, akkor elvileg a tuloldal "ad", ha pedig a "status in" magas, akkor te adhatsz a tuloldalnak, de ilyen logikat nem fedeztem fel. De siman lehet, hogy a 9-es hivas nincs a serialnal megvalositva.

Te disassemblelted az EXOS-t? :) vagy sikerult megszerezni a forrast?

A "Status Out" vonal egyebkent csak kimenet, nincs ertelme PC iranybol rangatni. Az eredeti kezfogasos kommunikacional, mind a ketto felnel tobb statusz vonal van, igy mind a ketto fel tud adast kezdemenyezni a megfelelo lab meghuzasaval, majd el tudja kezdeni az adast, amikor megjott a tuloldalrol az engedelyezo jel egy masik statuszlabon. Ennek a tobblabas kezfogasnak van az egyszerusitett implementacioja megcsinalva a gepen.