Welcome, Guest. Please login or register.


Author Topic: Assembly programozás (Read 254531 times)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Assembly programozás
« Reply #570 on: 2013.November.02. 22:39:22 »
Quote from: Z80System
Az in és out utasítás mechanizmusában nincs ilyen külső hardvertől függő lefutási idő ?

Tehát in/out -nál a proci kiteszi az értéket az adatbuszra, vár egy kicsit, a külső eszköz meg vagy lekapta onnan, vagy nem,

vagy pedig kirakja, és ott vár mindaddig, míg a külső eszköz nem jelez, hogy levette az anyagot ?
Ilyet tud a Z80-as rendszer, de az EP-ben nincs használva.
Azonban a videó portoknál ugyanúgy várnia kell a Z80-nak, mint a videó RAM-nál.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #571 on: 2013.November.02. 22:44:53 »
Quote
Úgy vettem észre, hogy a 4. bit 1-be billen, amikor eléri a megszakításbájtot tartalmazó LPB-t a NICK, és törlődik, amikor áttér a következő LPB-re.

Hát ezt most nem értem. Beszéljünk video megszakról. Ott 2 bit van, az egyik a 16 a másik meg a 32. A 16 -ot kikapcsoltan kell tartani ezekszerint, hogy az a CPU -t ne szakítsa meg, és te azt állítod, hogy a 32 ettől függően, főprogramban is ugyanúgy kezelhető és ellátja a funkcióját, mintha megszakból birizgálnám, nem ?

Ha egyszer a 32 beallt egyre, akkor az már magától ne törlődjön ! Én majd reszetelem (1 -essel) és addig várok, míg legközelebb be nem áll. De ne törlődgessen magától! (Mondjuk persze elég gyorsan észre fogom venni ... úgyhogy még törlődhet is ... igaz.)

Quote
Én is ezt használom időzítésre, csak tiltott megszakítás mellett.
Hát a videot akkor én is tiltanám. Arra gondolsz, hogy neked egyáltalán nincs semmilyen megszak, hang sem, és az hátha bekavar ?
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #572 on: 2013.November.02. 22:46:52 »
Quote
tehát giga mennyiségű és minőségű grafika és effekt lesz benne
Hat 150X150 -es képernyőfelbontásnál nehéz giga mennyiségről beszélni ... de amit találok belekonvertálom. Mit veszíthetek vele.
« Last Edit: 2013.November.02. 22:50:41 by Z80System »
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #573 on: 2013.November.02. 22:49:38 »
Quote
giga mennyiségű és minőségű
Minőség ... 4KHz hang ... :)

De lesz valami. Az bizti. Ha előbb meg nem halok.
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #574 on: 2013.November.02. 22:54:46 »
Quote
Ennek ellenére lehet hogy mégis alkalmazni fogom. Megnézem mennyit gyorsít a hangképzésen, és ha eleget, akkor hozok egy olyan kompromisszumot, ho
Ááááá mégsem ... :(

A hangkeltés épp azon alapul, hogy a hangok végén lesz annyi üres hely, hogy 50 Hz -en belül nem fut ki belőle a lejátszó ...

Most akkor ha le akarnám a játékot tudni lassítani 10 frame -re, akkor tíz frame -nyi csendet kéne tudjak letárolni a hangok mögé ... az már 1 kilóbájt plussz hangonként ... :)

Na ezt végig kell még gondolni ... nagyon sokat kell gyorsítson, hogy ennek ellenére már bevállaljam ...
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #575 on: 2013.November.02. 23:07:38 »
Quote
Egyszerű a megoldás (nem tökélestes), ha 25fps-t akarsz, akkor két helyre teszel wait50hz-et, csak jól kell kiválasztani a második helyét, ha meg át akarsz térni 50-re, akkor önmódosító kóddal törlöd a 2-dikat.
Nem én 1-5, vagy még jobb lenne 1-10 frame között tetszőlegesen beállíthatót akarok. Úgyhogy ez nem lesz így esetenként megcsinálva. Általános kód lesz, max kisebb kompromisszumokkal ...

De azért mindenesetre megnézem mennyit gyorsítana a gyakorlatban.
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #576 on: 2013.November.02. 23:11:21 »
Igazából ezt a három utasítást spórolná meg ...

 
Code: [Select]
in a, (0xb4)
and #0x2

jr z, IRQ_NoAudio


Valszeg nem éri meg ...
Z80 System

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: Assembly programozás
« Reply #577 on: 2013.November.02. 23:18:13 »
Lecsekkoltam, a programozható bekavarna, ha azt várná az ember, hogy mikor törlődik a 4. bit, ugyanis a megszakításban kiadott 03h a b4h portra, tröli a 4. bitet is, majd az visszaáll egybe, addig, amíg vagy nem nullázza újra a megszakítás, vagy el nem érjük a következő LPB-t.
Ez egy jó megoldás lehet így is, ha a videómegszakítást tartalmazó LPB max 3, nagyon max 4 sor hosszú, és ciklusban várakoztatod a cuccot, kb így:

Code: [Select]
     ld   b,0ffh
w50a  in   a,(0b4h)
      bit  4,a
      jr   z,w50a
      di
w50b  in   a,(0b4h)
      bit  4,a
      jr   nz,w50b
      ei
      djnz w50a

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: Assembly programozás
« Reply #578 on: 2013.November.02. 23:35:56 »
Quote from: Z80System
Igazából ezt a három utasítást spórolná meg ...

 
Code: [Select]
in a, (0xb4)
and #0x2

jr z, IRQ_NoAudio


Valszeg nem éri meg ...
Elméletileg ez 500 NOP lenne 1 frame-ben.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #579 on: 2013.November.02. 23:55:05 »
Quote
Elméletileg ez 500 NOP lenne 1 frame-ben.
Ebben biztos vagy ? Az valami 6-8 rasztersor, nem ? És a 60-80 raszterhez képest amit vinne ez egy egész frame esetén az olyan 10 % lenne akkor ...
Z80 System

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: Assembly programozás
« Reply #580 on: 2013.November.03. 00:10:05 »
Hát úgy számoltam, hogy a 3 utasítás 11+7+7=25 T-state megszakításonként, ami most másodpercenként 4000, két 50Hz-es megszakítás között 80 programozható esik be, 1 NOP 4 T-state, 80x25/4=500.
Ha jól számoltam, akkor több, mint 7.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #581 on: 2013.November.03. 00:17:32 »
Quote
Ha jól számoltam, akkor több, mint 7.
Ja, én is így számoltam. Csak én már a te 500 NOP -odból indulva.

Hát habozok a dolgon egyenlőre ... meglátjuk mennyi helyem lesz a hangok mögött ...

Még ezzel a gyorsulással is vagy 60 raszterbe kerül a digi hang ... elég súlyos ... lehet még kaparhatnám lefele 3KHz -re, és lehetne inkább csak egy csatorna monóban ...

Meglátom.

De azért tanx, jó kis tweak ...
Z80 System

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: Assembly programozás
« Reply #582 on: 2013.November.03. 00:18:48 »
Endinek igaza van, legalább az egyik lapozást meg lehetne spórolni a megszakításban, kevesebb lassulást okoz ha a 3 videólapot lapozgatod két szegmensen, mikor mi kell, az egyik szegmens lehetne fixen a digi hangé, az is kb 300 nopot jelentene.

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: Assembly programozás
« Reply #583 on: 2013.November.03. 00:23:15 »
Quote from: Z80System
Még ezzel a gyorsulással is vagy 60 raszterbe kerül a digi hang ... elég súlyos ... lehet még kaparhatnám lefele 3KHz -re, és lehetne inkább csak egy csatorna monóban ...
Sztem tök jó a 60 raszter, még marad egy csomó időd, most járok 60 raszternél, és 5 ojjektum mozog a képen, és amilyen ámátőr vagyok, tutter lehetne ezt gyorsabban is, szebben meg mega 1000% :lol:

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #584 on: 2013.November.03. 00:30:51 »
Quote
Endinek igaza van, legalább az egyik lapozást meg lehetne spórolni a megszakításban, kevesebb lassulást okoz ha a 3 videólapot lapozgatod két szegmensen, mikor mi kell, az egyik szegmens lehetne fixen a digi hangé, az is kb 300 nopot jelentene.

Endi nem hinném, hogy gyorsítani akart volna a lapozással,

de igazából ha lecsökkenteném a képet 16 normál rasztersorral (ami a játékban csak 8 raszter valójában a függőleges duplázás miatt) akkor át sem lógna a harmadik szegmensre ... :)

Csak nincs szívem megválni tőle. Inkább még kiraknék, csak akkor vas gépeken már nem biztos hogy látszana.

És pld. a függőleges csillagmozgásnál nem szívesen nézegetném a lapokat csillagonként ... úgyis az is olyan lassú mint a ...

De azért elmélkedek rajta .... lehet hogy ezt akkor most meg kéne tenni ...
Z80 System