Kirjoittaja |
Viesti |
JPQ
| Perjantaina, 7. marraskuuta, 2008 - klo 17.15: | | Blitzbasicin ohjeissa kaksi rutiinia jota haluaisin monipuolistaa eli asmilla tehty nopea ekan bittitason tilan kääntö 0=1 ja 1=0 ja sitten ekalle bittitasolle tapahtuva pikselin piirto ? miten voisin modata noita niin että saisin samat kakkos bittitasolle hommansa tekeviksi. vaikka niin että oletaan että resoluutio joku kiinteä vaikka 320x256. mietin onko blitzbasicilla ekan bittitason perässä heti toisen grafiikat jne jos on niin helpohko lisäys (320x256 tilan kanssa kait 10240... tämä muistikuvana tosin) ekan alkuosoitteeseen hoitanee homman.
|
JPQ
| Perjantaina, 7. marraskuuta, 2008 - klo 17.30: | | Ai niin voinen naputella koodit tänne jos joku tarvitsee....
|
allu
| Lauantaina, 8. marraskuuta, 2008 - klo 20.20: | | Bittitasot voipi olla myös "rinnakkain". Helpottaa blitterin käyttöä. Itseltä löytyy Blitzbasic 2.1 ohjekirja. Miltä sivulta mainitsemasi asmi löytyy? Tai pastee se pätkä tänne.
|
JPQ
| Maanantaina, 10. marraskuuta, 2008 - klo 0.18: | | allu: jos sama blitzbasic versio niin ohjeissa sivuilla (näyttäis olevan sama) eli bittikartan kääntö koodi on sivulla 62 ja nopea pikselipiirto 63. ps. rinnakkain tarkoitat kait lomittain no niin voi olla kyllä minä sen tiedän että kahdella tapaa voi olla. oletan blitzbasicin tapauksessa vaan koodin yksinkertaisuutta (jotain asmista tajuan kun ei ole intel...) ajatellen lienee tuolla sanomallani tavalla. ps. varsinkin pikselin piirto tarpeen mutta kyllä toinenkin täytyy katsoa jos sais blitzillä demoa väänettyä aikansa kuluksi... (piirisarja tuo omat haasteensa jne miksi kiinnostaa).
|
allu
| Maanantaina, 10. marraskuuta, 2008 - klo 1.28: | | Teen oletuksen että blitzin bitmap objekti on samanlainen kuin graphics.libraryn BitMap structure. Eli, seuraavanlainen: struct BitMap { UWORD BytesPerRow; // offset 0 UWORD Rows; // 2 UBYTE Flags; // 4 UBYTE Depth; // 5 UWORD pad; // 6 PLANEPTR Planes[8]; // 8 }; inverse: GetReg d0,Addr Bitmap(0) MOVE.l d0,a0 ; bitmap structuren osoite MOVEM (a0),d0-d1 MULU d0,d1 ; d1 <= BytesPerRow * Rows (lohkon koko tavuina) LSR.l #2,d1 ; jaetaan 4:llä, saadaan lohkon koko longeina SUBQ #1,d1 MOVEq #7,d2 AND.w 4(a0),d2 ; Depth SUBQ #1,d2 LEA 8(a0),a0 ; bittitaso osoitetaulukon alku bp_loop: MOVE.l (a0)+,a1 ; bittitason osoite MOVE.w d1,d0 inv_loop: NOT.l (a1)+ DBRA d0,inv_loop DBRA d2,bp_loop Return Rem HUOM! uutena parametrina asetettavan pikselin bitit(käytännössä väri) Statement qplot(bmap.l,x.w,y.w,p.w) ; d0 = bitmap ; d1 = x ; d2 = y ; d3 = p MOVE.l d0,a0 ; bitmap structuren osoite MOVEq #-1,d0 EOR.w d1,d0 ; d0 <= asetettavan bitin numero ; blitzin esimerkissä näyttäisi olevan bugi. Siksi tein ensin moveq:n ja sitten eorin. ; jollei siinä olekaan bugia, ja muistan jotain väärin, niin korvaa moveq ja eor käskyllä MOVE.w d1,d0 LSR.w #3,d1 MULU (a0),d2 ; d2 <= BytesPerRow * y ADD.w d1,d2 ; asetettavan pikselin tavuoffset MOVEq #7,d1 AND.w 4(a0),d1 ; Depth SUBQ #1,d1 LEA 8(a0),a0 ; bp taulukon alku bp_loop: MOVE.l (a0)+,a1 BTST #0,d3 BNE clear ; voi olla myös olla BEQ, en muista BSET.b d0,(a1,d2.w) BRA set clear: BCLR.b d0,(a1,d2.w) set: LSR #1,d3 DBRA d1,bp_loop End Statement
|
allu
| Maanantaina, 10. marraskuuta, 2008 - klo 1.33: | | prkl, heti huomasin optimoitavaa. Sen siitä saa kun kirjottaa kokeilematta :| Korvaa seuraava pätkä: BTST #0,d3 BNE clear ; voi olla myös olla BEQ, en muista BSET.b d0,(a1,d2.w) BRA set clear: BCLR.b d0,(a1,d2.w) set: LSR #1,d3 pätkällä: LSR #1,d3 BCC clear BSET.b d0,(a1,d2.w) BRA set clear: BCLR.b d0,(a1,d2.w) set:
|
JPQ
| Maanantaina, 10. marraskuuta, 2008 - klo 7.02: | | onkohan toi pikselin piirto nyt värillä toimiva kun bittitason numerolla toimivaa tarvitsin... ja sitten yksittäisten bittitasojen tilan kääntöä. ps. minusta blitzbasicin bittikartta strukti aika sama kun käyttiksessäkin näin muistelen. ps. blitzbasicin ohjekirjan koodeja olen käyttänyt niin että ongelmia ei ole tullut.
|
allu
| Maanantaina, 10. marraskuuta, 2008 - klo 15.13: | | Pikselin piirto tosiaankin on "värillä" toimiva. Mutta pystynet pikkuviilauksilla muokkaamaan haluamaksesi. Jos toi nyt toimii ollenkaan. Kokeile ja kerro.
|
JPQ
| Tiistaina, 11. marraskuuta, 2008 - klo 3.56: | | allu: katsotaan. ja asm ei ole heiniäni.
|
|