Welcome, Guest. Please login or register.


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

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Magnós frekvenciák
« Reply #45 on: 2009.November.11. 09:10:21 »
Tehat azt mondod hogy amit a leirasban talalok orajelet, ahhoz mindig adjak hozza 1 -et ?
Igen.

Quote
Es az, hogy az ld (hl),e az maga is irja a memoriat, az nem noveli tovabb ?
Alapértelmezésben nem. De be lehet olyat is állítani :-)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Magnós frekvenciák
« Reply #46 on: 2009.November.11. 09:10:43 »
ld (hl),e

utasaitasra azt irjak, hogy 1.75 orajel alatt fut le.

Az valójában nem 1.75 órajel, hanem 1.75 us 4 MHz-es órajelnél, azaz 7 ciklus :) Ebből 4 ciklus az utasításkód olvasása + DRAM frissítés, és 3 ciklus a byte tárolása a (HL) címen.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Magnós frekvenciák
« Reply #47 on: 2009.November.11. 09:15:23 »

Aham, es videoram sima ram kozott sincs alapesetben kulonbseg ? Mert en anno sztm mertem olyat hogy egyik ramunk lassbb volt ( minden allitas nelkul, en nem tudtam hogy lehet ilyet allitani ) mint a masik ...

Es ha beallitom esetleg, akkor az mennyit tesz ra, csak valahogy nagysagrendileg hogy tudjak vele szamolni ?

Oh, na mindjart megnezem igy mikroszekkel is ... valszeg igy szarabb a helyzet ... es miert irja E.T. -nek ? Becsult ? Es akkor mennyi a valosagban ?


Z80 System

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Magnós frekvenciák
« Reply #48 on: 2009.November.11. 09:19:16 »
Es az, hogy az ld (hl),e az maga is irja a memoriat, az nem noveli tovabb ?

Nem, mert az alapértelmezés szerint csak M1-nél (utasításkód olvasás) van várakozás, ami a következőket jelenti:
 - az utasítás első byte-ja, ha nincs prefix byte
 - minden prefix byte (CBh, DDh, EDh, vagy FDh)
 - a prefix byte(oka)t követő első byte, kivéve a DDh CBh vagy FDh CBh esetét, amikor csak a prefixek számítanak M1 műveletnek
A BFh I/O porton egyébként be lehet állítani azt is, hogy minden memória műveletnél legyen várakozás, vagy egyiknél sem. Annak, hogy csak M1-nél legyen, azért van értelme, mert ebben az esetben kevesebb idő van a memória olvasására (normál esetben 2.5 ciklus a művelet kezdetétől számítva, M1-nél csak 2 ciklus, mert a DRAM frissítéshez is kell idő).

Az LD (HL), E tehát EP-n alapértelmezés szerint 8 ciklus (4+1+3). Érdekesség, hogy turbós gépeken már 9 ciklus lenne, mert ott 2 ciklus a várakozás.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Magnós frekvenciák
« Reply #49 on: 2009.November.11. 09:20:44 »
A videó RAM az jóval lassabb, és a program szempontjából vehetjük nagyjából véletlenszerûnek, hogy mikor jön be a várakozás...
Talán István tud egy átlagos idõt mondani rá.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Magnós frekvenciák
« Reply #50 on: 2009.November.11. 09:23:44 »
Aham, es videoram sima ram kozott sincs alapesetben kulonbseg ? Mert en anno sztm mertem olyat hogy egyik ramunk lassbb volt ( minden allitas nelkul, en nem tudtam hogy lehet ilyet allitani ) mint a masik ...

A video RAM lassabb, mert a hozzáférést szinkronizálni kell egy 889846 Hz-es frekvenciához (= 1 NICK karakter, amelyen belül 2 byte-ot olvashat a NICK, és 1-et a Z80). Ez 4 MHz-es gépen 1 és 5.5 ciklus közötti várakozást jelent (a várakozás fél Z80 ciklus egységekben történik). A BFh porton beállítható várakozási módnak azonban a video RAM-ra nincs hatása.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Magnós frekvenciák
« Reply #51 on: 2009.November.11. 09:30:28 »
Ez 4 MHz-es gépen 1 és 5.5 ciklus közötti várakozást jelent (a várakozás fél Z80 ciklus egységekben történik).
És ez ha jól sejtem a Z80 órajelének felfüggesztésével történik. A TVC esetén konkrétan írják is, hogy így van.
Quote
A BFh porton beállítható várakozási módnak azonban a video RAM-ra nincs hatása.
Ez pedig szabályosan a Z80 WAIT lábát használja. Ha erre a vezetékre rakunk egy kapcsolót, akkor kézzel ki lehet iktatni a várakozást, attól függetlenül, hogy a programok éppen mit állítgatnak. (Ennek 6 Mhz gép + 1.44 floppy esetén van értelme, 6 Mhz-es Z80 csak úgy tudja követni a 16 Mhz-es WD-t, ha nincs várakozás, legalábbis az EXDOS jelenlegi programkódjával.)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Magnós frekvenciák
« Reply #52 on: 2009.November.11. 09:33:38 »
A videó RAM az jóval lassabb, és a program szempontjából vehetjük nagyjából véletlenszerûnek, hogy mikor jön be a várakozás...
Talán István tud egy átlagos idõt mondani rá.

Az emulátor így számítja a várakozást video RAM-nál:
 - kiszámítja az aktuális idő és a következő NICK karakter (889846 Hz-es frekvencia) közötti időt
 - hozzáad 359.4 ns-t (illetve M1-nél néhány ns-el kevesebbet, NICK I/O portnál pedig néhány ns-el többet) - ez valamivel több, mint 5 pixel 2 színű PIXEL módban
 - az eredményt 1/2 Z80 ciklusokra konvertálja, lefelé kerekítve
Bár ez a megoldás valószínűleg nem egészen pontos, de az igazi géphez közeli eredményeket ad.

A memória olvasás/írás időpontja az egyes műveleteken belül:
 - M1 olvasás: 2.0 ciklus
 - normál memória olvasás vagy írás: 2.5 ciklus
 - I/O port olvasás vagy írás: 3.5 ciklus

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Magnós frekvenciák
« Reply #53 on: 2009.November.11. 09:36:14 »
Szal ha eleg stabil lenne, akkor ha 100- bol egyszer nem toltene be egy jatekot jol, es nem szolna hogy CRC error, hanem csak szetfagyna, akkor az, ki banja, nem ?
Az egybõl szétfagyás az csak azt jelenti, hogy olyan helyre esett a hiba, hogy egybõl elõjön. De lehet, hogy máskor olyan helyre esik, hogy a második pályán fagy le. Vagy a harmadikon. Vagy akkor ha a zöld szörnyet a bal felsõ sarokban lövöd le. stb
Szerintem senki nem akarna olyan megoldást használni, ahol sose lehet tudni, hogy hibátlanul fog mûködni a gép vagy se.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Magnós frekvenciák
« Reply #54 on: 2009.November.11. 09:37:24 »
jááááááj.

na egyszerusitsunk, itt a kod, kiirtam melle az ertekeket:

NewByte:

Bit0:
   in      a,(0b6h);2.75
   and      b;1
   xor      c;1
   jr      nz,B0Change;1.75/3
   inc      d;1
   jr      Bit0;3
B0Change:
   ld      a,h;1
   cp      d;1
   rl      e;2

   ;ez itt ismetelve (ciklusmag kifejtes) 8x a 8 bitre, es utana:

   ld      a,e;1
   exx;1
   ld      (de),a;1.75
   inc      de;1.50
   xor      a;1
   sbc      hl,bc;3.75
   exx;1
   jr      nz,NewByte;1.75/3+1



A kommentig a ciklusmag olvas be egy bitet, a komment utani kis resz letarolja a bajtot.
Ez minden, ami az alap sebesseget meghatarozna.
Ami lapozas meg egyeb ilyen kell, arra kulon lenne ido, tehat 4K- nkent mi is masolnank, vagy ilyesmi, az majd rarakodik az idore, es ki lenne hagyva a csipogasban is, ott nem csipogna. Remeljuknem lesz nagyon sok. Illetve attol fuggoen hova akarnak tolteni, esetleg mukodhetnenk 2 fele keppen is, direkt toltessel es pufferes masolgatos modon, es a hivasban mi dontenenk el hogy melyiket alkalmazhatjuk most, milyenek a cimek amiket megadtak, mittudomen, nemismerem az exost. De ez majd kesobb jon. Most egyenlore mukodjon a direkt betoltes.
A direkt betoltes teljes kodja szerintem ott van fent. (Illetve az elejen majd ennek is lesz szinkron, de az is egyszeru lesz es csak az elso bit beolvasasaig fog tartani, szal az sebesseg szempontjabol nem szamit)

Szal kiirtam minden utasitas melle az E.T. ertekeket.

Akkor meg tudna mondani valaki kulon a ciklusmagra ( a legrosszabb esetben, de kb. azert azt neztem mindket aga a magnak majdnem egyforma hosszu ), es kulon a byte letarolasra, hogy az mennyi ido alatt futhat le mikroszekundumban ?
Es ha esetleg az exosnak az kovetelmeny lehet hogy videorambol fusson, es/vagy oda toltson, akkor abban az esetben milyenek lehetnek az idok mikroszekundumban ?



Ha valaki kivancsi a kod mukodesere is, akkor itt vannak a regiszter jelentesek:

   ld      b,80h;input mask
   ld      c,0;current input state
   ld      d,0;cycle counter
   ld      e,0;current byte
   ld      h,0;cycle counter limit
   exx
   ld      de,0;betoltesi cim
   ld      hl,0;beolvasando bajtok szama
   ld      bc,1;ezzel csokkentjuk hl- t
   exx

Ugyanis ha ismernenk a ciklusmag idejet, akkor arra egy kicsit rahagyva es megszorozva kettovel megkapnank hogy mennyi idobe tellene maximum egy bit beolvasasa ( az inverz bit ideje meg ennel is kevesebb lenne ),
es nyolc bitenkent a hangjelben lenne egy kis plusz ido, ami ido alatt a bajt letarolodna, tehat a bajt ideje nem adodna hozza minden bit idejehez.

Vagyis bitek szama * maximum bit beolvasasi ido + bajtok szama * bajt letarolasi ido = a file kozvetlen beolvasasanak ideje.

Ezt noveli kesobbiekben majd az exosos pufferbol masolas es/vagy CRC ellenorzes. Termeszetesen kikapcsolhatoan, hogy ha vannak elvetemultek akik megis biznak abban h ez stabil lesz (mert en igen, ti nem ?), akkor azoknak ne teljen az ido a CRC- zessel.

En tovabbra is ugy erzem, hogy a raw beolvasas ( masolas es CRC nelkul ) mehetne ugy 25 KBit/s -el, realisan szamolva, ami 21 masodperc alatt toltene be 64K- t.

Sztm ez mar megerne.

PC- n meg lenne elso korben egy command line exe, ami a bemenetere kapna fileneveket, ezeket lefutyulne on the fly.

Es akkor ugy nezne ki egy betoltes, hogy strat gomb az EP- n, es

SuperTape game.com game.scr game.dat

sor utan 2X 3X 4X tiz masodperc utan indulna az EP- n a cucc.


« Last Edit: 2009.November.11. 10:09:35 by Z80System »
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Magnós frekvenciák
« Reply #55 on: 2009.November.11. 21:39:56 »

Na egyenlore jegelem a temat.
Erdekes modon leszamolja a magasabb 40 ezer koruli valtozast ( 1 masodperc alatt ) az EP,
de szinten erdekes modon mikor azt nezem hogy hanyszor fut korbe a ciklusom 1 valtozason belul,
akkor nagyon pontatlan ertekeket kapok: hol 2- t, hol 4- et, hol hatot.

Tehat egy szekundum alatt mondjuk 20 ezret valtozik valami, ezt pontosan meri minden futtatasnal.
De azt hogy 1/20 ezred vagy 1/10 ezred szekundum alatt hanyszor tudok lefuttatni egy ciklust az olyan pontatlan ahogy fent irtam.

Szoval a dolog ha megvalosithato egyaltalan, akkor tul nagy munkanak tunik, tikkre be kene loni, szinkronizalni a dolgokat,
kulonfele felteteles elagazasokkal es az azokon talalhato mondjuk nopokkal ossze kene szinkronizalni a beolvaso ciklus elejet, a bemeneti jel elejevel,
raadasul szinkronban is kene tartani...

Ugy egyszeru csak ez a feladat, ha a mero ciklus frekije nagysagrendekkel nagyobb tud lenni, mind a mert jel frekije.
De ahhoz hogy ez igaz legyen, ahhoz le kene adni a 20KBit koruli atvitelrol, kevesebbert meg nem eri meg.

Ugyhogy azt hiszem ha legkozelebb nekifutok, akkor mivel a melo ugysem nagyobb, csak masmilyen,
akkor tenyleg inkabb valami floppy sebessegu EP/PC atvitelt erdemes csinalni, sajat elektronikaval,
amihez meg kulon tap sem kell.



Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Magnós frekvenciák
« Reply #56 on: 2009.November.11. 22:41:40 »

Zozosoft,

ha mar meglenne az atvitel mondjuk PC es EP kozott, tehat asmonban futtatva 1 kodot beolvasna a memoriaba egy rutin peldaul a PC- rol,
akkor abbol egy uj EXOS device- ot irni, amit alapertelmezesnek lehet allitani, es kompatibilis tud lenni a toltes erejeig az EXOS tolto hivasaival,
az egy komoly munka, vagy csak nehany sor ? Tehat ugy nagysagrendileg hogy kepzeljem el ? Kello ismeretek birtokaban irok 50 assembly sort,
es mar EXOS kompatibilis is a betoltes, vagy 2 hetig kodolok, mire kiszolgalok minden EXOS funkciot, igenyt ?


Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Magnós frekvenciák
« Reply #57 on: 2009.November.11. 22:54:14 »
Itt vannak a perfériakezelõ információk.

Én inkább a 2 hétnyi kódolásra tippelnék  :oops:

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Magnós frekvenciák
« Reply #58 on: 2009.November.11. 22:56:03 »
Jajj be szomoru is az en eletem ... :)
Pedig en megebben az eletemben be akarok tolteni Pc- rol ... :)
Tulajdonkepp nem is olyan rossze ez a magnos modszer... mar nem is olyan lassu... sot, tok gyors ... :)
Az alatt a 2-3 honap alatt mire vegigvernem a HW/SW oldalt, tok sok EP progit betolthetek a magnorol ... :) 2 ezer bauddal ... :)

« Last Edit: 2009.November.11. 23:06:55 by Z80System »
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Magnós frekvenciák
« Reply #59 on: 2009.November.11. 23:15:23 »
Szerintem fel kéne boncolni a gyári betöltõ rutint, hogy mit lehetne kihozni belõle! BAM-ék csináltak 4800-ast, de nyílván nem mentek el a maxig, hiszen magnó+kazetta eleve korlátoz.
Ha egy 7-8000-et ki lehetne hozni, az már elég szép gyorsulás lenne!