Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: Screen 7 kuvanpakkauksesta

Juhko [21.08.2008 19:18:22]

#

Screen 7 kuvanpakkauksen olen jo saanut selville.

Yksi muistipaikka on siis 8x1 pikseliä ja pikseleitä piirretään muistipaikan arvosta otetun binääriluvun mukaan ("11111111"=kaikki pikselit valkoisina, "00000000"=kaikki pikselit mustia)

Mutta tietääkö kukaan, miten pikselien värit määritellään?

Grez [21.08.2008 20:06:19]

#

Siis hypistelet muistia suoraan? Olettaisin että siinä on 4 tasoa ja kukin alkaa peräkkäisistä muistiosoitteista. Pika-arvauksella seuraava taso on 8000 tavua suuremmassa osoitteessa. Tai sitten 8192..

Juhko [02.09.2008 17:06:12]

#

Voisitko antaa jonkin esimerkin? Itse en saanut toimimaan.

Grey [02.09.2008 17:40:53]

#

Itseasiassa värin määritys ei mene tuollain muistipaikan mukaan, vaan se täytyy säätää porttien kautta. Kutakuinkin alla olevan esimerkin mukaisesti:

DEFINT A-Z
'also download http://www.ocf.berkeley.edu/~horie/bitplane.bas
'for a more useful SCREEN 7-12 pixel plotting code (using OUT and POKE)
'this is the fastest version of my EGA direct output program in QBASIC.
'of course it's slow, but hack it all you want, and enjoy.  Provided by TRS.
SCREEN 7: DEF SEG = &HA000: 'set EGA video segment
OUT &H3CE, 5: OUT &H3CF, 0: 'EGA write mode 0
t1# = TIMER
FOR S = 0 TO 4000 - 1
      '-------------------main loop-------------------
        OUT &H3C4, 2: OUT &H3C5, 1: 'plane 1, BLUE
        POKE S, 512: 'write dots
        OUT &H3C4, 2: OUT &H3C5, 2: 'plane 1, GREEN
        POKE S, 512: 'write dots
        OUT &H3C4, 2: OUT &H3C5, 4: 'plane 1, RED
        POKE S, 512: 'write dots
        OUT &H3C4, 2: OUT &H3C5, 8: 'plane 1, INTENSITY
        POKE S, 255: 'write dots
        IF INKEY$ > "" THEN STOP
        '--------------------------------------------
NEXT S
OUT &H3C4, &H2: OUT &H3C5, &HF: 'reset
t2# = TIMER - t1#
LOCATE 1, 1: PRINT USING "Time to fill EGA screen: ####.##s"; t2#
END

-Grey-

Juhko [02.09.2008 20:03:11]

#

Ok, nyt pitää vain opetella käyttämään tuota. :)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta