Welcome, Guest. Please login or register.


Author Topic: Magnós frekvenciák (Read 39622 times)

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Magnós frekvenciák
« Reply #90 on: 2009.November.14. 20:36:19 »
Olyat nem csináltak régen hogy sztereo magnós programtárolás? 2x-ére gyorsulhatna a betöltés!
Vigyázat! Szektás vagyok! :)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Magnós frekvenciák
« Reply #91 on: 2009.November.14. 20:47:48 »

Hat barmit is csinaltak, vagy nem csinaltak, egy biztos: az EP- nek egyetlen bite van mindossze, es ahhoz hogy egszerre ket bit jojjon be ( mondjuk 1 sztereo magnorol, vagy sztereo hangkartyarol ) a z80- nak, ahhoz 2 bit kene. De sajna csak 1 van.

Z80 System

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Magnós frekvenciák
« Reply #92 on: 2009.November.15. 00:23:57 »
Egy megleheto"sen kezdetleges próbálkozás gyors PC->EP másolásra:
 [ Guests cannot view attachments ]
 [ Guests cannot view attachments ]
 [ Guests cannot view attachments ]
 [ Guests cannot view attachments ]
 [ Guests cannot view attachments ]
A sebessége elvileg 8770 bit/s körül van - ami kb. 2-szer lassabb a DTF betöltésnél :razz: - ha a 0 és 1 bitek azonos számban fordulnak elo" (az 1 bit kétszer lassabb, mint a 0: 38/250000 másodperc 19/250000 másodperc helyett).
Mivel ez csak egy teszt program, nem érdemes EXOS kompatibilis bo"víto" interface-t vagy felhasználóbarát mu"ködést várni :oops: Mindenesetre nekem háromszor kipróbálva mindig sikeresen átmásolta a "blue.com" file-t igazi gépre.
Valószínu"leg lehetne még gyorsítani is rajta, a kód optimalizálásán kívül a memória várakozások letiltásával (ez a verzió a "szabványos" 04H-t írja a BFH portra), vagy a lényegtelen részek (pl. keretcsíkozás) törlésével, illetve az elleno"rzo" összeg törlésével (ez talán nem annyira jó ötlet) vagy 16 bites helyett 8 bitesre való cseréjével. Az ido"zítés a mentésnél és a töltésnél is DAVE hanggenerátor megszakítással történik.

Azzal is próbálkoztam, hogy FM helyett közvetlenül a bit értékeket írja a hangkimenetre (de minden byte elején szinkronizálva) fix sebességgel és egy byte-ot 10 bitre növelve a szinkronizáció miatt, de ezt a megoldást csak emulátoron lehetett betölteni, így egyelo"re maradt a hagyományos FM, csak fél négyszögjelekkel.
« Last Edit: 2009.November.15. 01:07:21 by IstvanV, Reason: Újabb ido\"zítés javítás :oops: »

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Magnós frekvenciák
« Reply #93 on: 2009.November.15. 00:38:46 »

uff... hat csak a loadot neztem ( igazabol az az ami mozgatna ), es nem mondanam hogy ertem ...
tokmasnak nez ki mint az enyem, es nem ertem mi ez a sok bonyesz dolog ...
aze meg nezegetem, de akar el is mondhatnad az elvet hogyan mukodik, meg h melyik kodresz mit csinal,
hatha ugy megertem ...


Z80 System

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Magnós frekvenciák
« Reply #94 on: 2009.November.15. 00:41:40 »
uff... hat csak a loadot neztem ( igazabol az az ami mozgatna ), es nem mondanam hogy ertem ...
tokmasnak nez ki mint az enyem, es nem ertem mi ez a sok bonyesz dolog ...
aze meg nezegetem, de akar el is mondhatnad az elvet hogyan mukodik, meg h melyik kodresz mit csinal,
hatha ugy megertem ...

Igazán csak a sendByte és a receiveByte rutin érdekes, azok végzik a tényleges adatátvitelt, a többi csak a "keretprogram": inicializálás, fejléc küldése/feldolgozása, másoló ciklus (elleno"rzo" összeg frissítésével), stb.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Magnós frekvenciák
« Reply #95 on: 2009.November.15. 00:55:09 »
na de itt vmi dave resetelesek vannak, meg moindenfele rst hivasok... azok vlaami megszakitasok nem ? hat minek kellenek azok ?

an valami olyan egszeru dolognak hittem idaig a toltorutint, mint ahogy irtam is:

betolt nyolc bit
latrol bajt
ujra betolt nyolc bit

8 bit betoltese meg hogy az ember nezi hogy valami ciklussal hanyat tud szamoltatni mig bejon egy valtozas, az input biten es a leszamolt ciklusszamok kulonbsegebol kijon hogy a bit 1 vagy 0 es ezt az ember nyolcszor megismetli.

csak elakadtam ott, hogy nem voltak allandoak a leszamolt ciklusszamaim...

esetleg nem proci ciklust kell hasznalni ido meresre, mert az ilyen veletlenszeruen valtozo idoket ad, hanem valami nagyfrekis hangmegszakitast ? volt valami ha jol emlekszem szaz vagy tobbszaz kiloherces hangmegszak, lehet azzal kell idot merni ?


Z80 System

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Magnós frekvenciák
« Reply #96 on: 2009.November.15. 01:04:11 »
na de itt vmi dave resetelesek vannak

A daveReset csak a DAVE regisztereit állítja alaphelyzetbe, hogy a kód akkor is mu"ködjön, ha azok egyébként valami másra lettek volna állítva.
A receiveByte-ban az A7H portra való írás a 0. hanggenerátor számlálóját indítja újra 25-ro"l (a 19 és a 38 átlaga 28.5 lenne, de néhány ciklust levontam a megszakítás tesztelése és az A7H port írása között eltelt ido" miatt).

Quote
, meg moindenfele rst hivasok... azok vlaami megszakitasok nem ? hat minek kellenek azok ?
Azok csak rövidebb és gyorsabb CALL utasítások fix címre :) :oops:

Quote
volt valami ha jol emlekszem szaz vagy tobbszaz kiloherces hangmegszak, lehet azzal kell idot merni ?

Én azzal mértem.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Magnós frekvenciák
« Reply #97 on: 2009.November.15. 01:08:06 »

Ugh... es miert valasztottad azt ?

Mert en ugy jartam ahogy jartam a procival, vagy pedig kapasbol arra gondoltal valamiert, hogy megszakkal kell, esetleg te tudtad hogy a z80 ciklusai nem kiszamithatoak, es valahogy osszevissza fut a proci ?

Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14732
  • Country: hu
    • http://enterprise.iko.hu/
Re: Magnós frekvenciák
« Reply #98 on: 2009.November.15. 09:33:12 »
Egy megleheto"sen kezdetleges próbálkozás gyors PC->EP másolásra:
De ez elvileg 2 valódi EP között is menne, igaz?
Most kipróbáltam egyszer, betöltödött!

Magnóhang ki lett kapcsolva, vagy már átment ultrahangba? :-)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Magnós frekvenciák
« Reply #99 on: 2009.November.15. 10:57:37 »
De ez elvileg 2 valódi EP között is menne, igaz?

Igen.

Quote
Magnóhang ki lett kapcsolva, vagy már átment ultrahangba? :-)

Kikapcsoltam, mert a normál magnóhangnál jóval magasabb és zajszerűbb a hang, de egy byte módosításával visszaállítható :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Magnós frekvenciák
« Reply #100 on: 2009.November.15. 11:09:01 »
Ugh... es miert valasztottad azt ?

Mert így nem függ az időzítés attól, hogy két bit olvasás között mi történik (pl. byte feldolgozása), feltéve, hogy a kód elég gyors ahhoz, hogy a következő bit olvasásáig ne teljen el túl sok idő (ebben az esetben legfeljebb 304 Z80 ciklus, azaz 4000000 * 19 / 250000, mert a mentésnél a DAVE hanggenerátor frekvenciakódja 18). Az egyszerű ciklusszámlálással jóval kisebb lenne a mért érték egy byte elején, mint a byte két bitje között. Ezen kívül a sebesség egyszerűen egy byte módosításával állítható a mentésnél és a töltésnél is.
De talán megoldható az is, hogy a csak Z80-at használó megoldásnál várakozások legyenek beépítve a stabilabb sebességhez, csak az nehezebb (viszont elvileg gyorsabb lehet, mint a DAVE számlálók használata).

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Magnós frekvenciák
« Reply #101 on: 2009.November.15. 11:52:07 »
Es ezzel a hangmegszakos modszernel mi limitalja a sebesseget az altalad megnevezett 8770 bit/s -ses sebessegre ? Nem lehet eleg finoman allitani a megszakot, vagy pedig mi az ami miatt nem lehet 11 vagy 15 KHz ? Vagy lehet hogy lehet csak nem lotted meg be a tetejet ?

En is ugy gondoltam, hogy majd a byte letarolasanal lesz kihagyva a hangban egy kis szunet, ami utan majd ujraindul a bitek beolvasasa. Es akkor szerinted is teljes hulyeseg az, hogy ciklussal merve iszonyatos nagy inkonzisztenciakat tapasztalok ? Tehat hogy nagyon- nagyon kulonbozoek a mert idok. Tehat ha egy fix frekit merek, akkor a kulonbozo valtozasok kozott ( amiknek kb. azonos idejenek kene lennie ) akkor osszevissza ertekek jonnek ki. Tehat a frekitol fuggoen, mondjuk 1-5 vagy 1-10 kozotti ertekek...
Tehat ez szerinted is teljes hulyeseg, a z80 fix idokkel fut, nem lehet, hogy valami ilyen pontossag mellett determinalhatatlanna, randomma teszi a fuasat ? zozo szerint nem lehet, de hat en megis ezt tapasztalom ...

Nincs kedved kiprobalni procival is a szamolast, csak azert hogy kideruljon hogy tenyleg van ilyen random a procival mert ciklusszamokban ?

Mivel forditasz egyebkent, mik ezeke a forrasok, amiket attacsolsz ?


« Last Edit: 2009.November.15. 13:06:50 by Z80System »
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14732
  • Country: hu
    • http://enterprise.iko.hu/
Re: Magnós frekvenciák
« Reply #102 on: 2009.November.15. 13:02:02 »
A Dave-s módszernek viszont az a elönye, hogy nem függ a memóriavárakozások állítgatásától. És ha lehetne berakni hasonló órajel detectálást, mint a hanglejátszóba, akkor mindenféle turbós géppel is müködne.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Magnós frekvenciák
« Reply #103 on: 2009.November.15. 13:12:59 »
Igen, csak meg nem tudom hogy mi a limitacio a sebessegben, mert ha cpu- val sokkal nagyobb sebesseget lehet elerni, akkor engem inkabb a sebesseg erdekel mint a kompatibilitas, nekem az EP az egy 128kb- os 4MHz- es ep, persze jo az ha minden tuning geppel kompatibilis valami ( plane egy ilyen funkcio ), de ha 15 vagy 20 kb/s -set el lehet erni egyikkel, es csak 9kb/s -set a masikkal, akkor en inkabb a standard gepre tvikelt modszert preferalnam.

A mondatod masik reszet viszont total nem ertem, ha egyszer megszak, akkor az mar proci orajel fuggetlen, nem ? Tehat nem kell mar bele egyeb orajel detektalas, ha egyszer nem prociorajellel, hanem megszakkal merunk, akkor az nem lesz orajelfuggo. Nem ?

Akkor kene bele orajeldetektalas, ha procival akarnank betolteni, ES kompatibilisse akarnank tenni a tuning gepekkel, nem ?


Z80 System

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Magnós frekvenciák
« Reply #104 on: 2009.November.15. 13:42:56 »
Es ezzel a hangmegszakos modszernel mi limitalja a sebesseget az altalad megnevezett 8770 bit/s -ses sebessegre ?

Az, hogy a legrosszabb esetben a betöltő két bit feldolgozása között kb. 300 Z80 ciklust használ fel, ezért a legnagyobb frekvencia 250000 / 19, azaz ~13158 Hz lett, ami 304 Z80 ciklus. Ez az időtartam egy '0' bit hossza, az '1' bit két időegység, így lesz az átlagos sebesség (50-50% eloszlást feltételezve) 8770 bit/s körüli érték.
A további gyorsításra, mint említettem, több lehetőség is van:
 - várakozások letiltása (ezzel talán 15% körüli javulást lehetne elérni, esetleg valamivel többet is, ha sok az M1 olvasás)
 - keretcsíkozás letiltása (~15 ciklus a NICK port miatti várakozást is figyelembe véve)
 - az ellenőrző összeg számításának egyszerűsítése (jelenleg 47 ciklus várakozással, 39 ciklus várakozás nélkül)
 - lassabb időzítés vagy várakozás a byte határokon - bonyolultabb, de nem lenne minden bit a legrosszabb esetnek megfelelően lassú

A csak Z80-as időzítés a DAVE programozásra fordított idő elkerülése miatt lehetne valamivel gyorsabb, de nehezebb jól megoldani.

Quote
Mivel forditasz egyebkent, mik ezeke a forrasok, amiket attacsolsz ?

Ebben a csomagban taláható egy "sjasm.exe" (illetve Linuxra "sjasm-linux") nevű file. Ezzel lefordítható a forráskód: a használata a parancssorban "sjasm FORRÁSFILE KIMENETI_FILE" (az utóbbi nem kell, ha a forráskód tartalmaz "output" direktívát - ha nincs egyik sem, akkor a forrásfile kiterjesztését ".out"-ra cserélve írja a lefordított file-t). Fordításkor létrejön egy .lst kiterjesztésű lista file is, amely a debugger használatakor lehet hasznos.

A Dave-s módszernek viszont az a elönye, hogy nem függ a memóriavárakozások állítgatásától. És ha lehetne berakni hasonló órajel detectálást, mint a hanglejátszóba, akkor mindenféle turbós géppel is müködne.

Memóriavárakozás nélkül a betöltőben a DAVE frekvenciakódot talán célszerű lenne 24-ről 25-re növelni a gyorsabb utasítások miatt; elvileg 28.5/250000 másodperc után kellene megszakításnak lennie, de ebből levontam a megszakítás állapot olvasása és a számláló újraindítása közötti időt, és még egyet mert a számláló futásideje nem N/250000, hanem (N+1)/250000 másodperc.
Az viszont tény, hogy ennél a módszernél egyszerűbben lehet állítani a sebességet, legalábbis a program lehetőségeinek a határáig.
Már csak valami jól használható EXOS bővítőt kellene írni :) :oops:

A mondatod masik reszet viszont total nem ertem, ha egyszer megszak, akkor az mar proci orajel fuggetlen, nem ? Tehat nem kell mar bele egyeb orajel detektalas, ha egyszer nem prociorajellel, hanem megszakkal merunk, akkor az nem lesz orajelfuggo. Nem ?

A turbós gépeken a DAVE (és így a megszakítás) is ugyanolyan arányban gyorsul, csak a NICK órajele marad fix.
« Last Edit: 2009.November.15. 14:04:21 by IstvanV »