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.