[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/db/driver/mysqli.php on line 264: mysqli_fetch_assoc(): Couldn't fetch mysqli_result
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/db/driver/mysqli.php on line 326: mysqli_free_result(): Couldn't fetch mysqli_result
Pete's QBASIC Site Discuss QBasic, Freebasic, QB64 and more 2011-04-04T16:10:19-05:00 http://www.petesqbsite.com/phpBB3/app.php/feed/topic/3438 2011-04-04T16:10:19-05:00 2011-04-04T16:10:19-05:00 http://www.petesqbsite.com/phpBB3/viewtopic.php?p=21451#p21451 <![CDATA[Here is some modex code I found]]>

Code:

DEFINT A-ZDECLARE SUB modex ()DECLARE SUB page (active, visual)DECLARE SUB pixel (x, y, c)modexpage 0, 0COLOR 12OUT &H3C4, &H2OUT &H3C5, &HFFFOR i! = 0 TO 2 * 3.1415926# STEP .01   pixel 160 + COS(i!) * 100, 120 + SIN(i!) * 100, 50 + INT(i!)NEXTSLEEPSYSTEMSUB modex   SCREEN 13   OUT &H3C4, &H4: OUT &H3C5, &H6: OUT &H3C4, &H0   OUT &H3C5, &H1: OUT &H3C2, &HE3: OUT &H3C4, &H0   OUT &H3C5, &H3: OUT &H3D4, &H11: x = INP(&H3D5) AND &H7F   OUT &H3D5, x: OUT &H3D4, &H6: OUT &H3D5, &HD   OUT &H3D4, &H7: OUT &H3D5, &H3E: OUT &H3D4, &H9   OUT &H3D5, &H41: OUT &H3D4, &H10: OUT &H3D5, &HEA   OUT &H3D4, &H11: OUT &H3D5, &HAC: OUT &H3D4, &H12   OUT &H3D5, &HDF: OUT &H3D4, &H14: OUT &H3D5, &H0   OUT &H3D4, &H15: OUT &H3D5, &HE7: OUT &H3D4, &H16   OUT &H3D5, &H6: OUT &H3D4, &H17: OUT &H3D5, &HE3END SUBSUB page (active, visual)   OUT &H3D4, &HC   OUT &H3D5, &H4B * visual   OUT &H3D4, &HD   OUT &H3D5, 0   DEF SEG = &HA000 + &H4B0 * activeEND SUBSUB pixel (x, y, c)   OUT &H3C4, &H2   OUT &H3C5, 2 ^ (x AND 3)   POKE x \ 4 + y * 80, cEND SUB

This is my demo using the hardware scrolling capabilities of modex

Code:

DEFINT A-ZDECLARE SUB modex ()modexOUT &H3C4, &H2OUT &H3C5, &HFFFOR i = 383 TO 550   k& = (i - 383) * 320&   DEF SEG = &HFFA6   x = PEEK(14 + i)   DEF SEG = &HA000   FOR j = 0 TO 16      d = ((x AND (2 ^ (16 - j))) <> 0) * -14      POKE k& + j, d      POKE k& + j + 79.99999999999998, d      POKE k& + j + 160&, d      POKE k& + j + 240&, d   NEXTNEXTj = 1i = 0DO  i = i + 80 * j  j = j XOR 2 * ((i = 32000) XOR (i = 0))  OUT &H3D4, &HC  OUT &H3D5, i \ 256  OUT &H3D4, &HD  OUT &H3D5, i  WAIT &H3DA, 8  WAIT &H3DA, 8, 8LOOP UNTIL INP(&H60) = 1SYSTEMDEFSNG A-ZSUB modex   SCREEN 13   OUT &H3C4, &H4: OUT &H3C5, &H6: OUT &H3C4, &H0   OUT &H3C5, &H1: OUT &H3C2, &HE3: OUT &H3C4, &H0   OUT &H3C5, &H3: OUT &H3D4, &H11: x = INP(&H3D5) AND &H7F   OUT &H3D5, x: OUT &H3D4, &H6: OUT &H3D5, &HD   OUT &H3D4, &H7: OUT &H3D5, &H3E: OUT &H3D4, &H9   OUT &H3D5, &H41: OUT &H3D4, &H10: OUT &H3D5, &HEA   OUT &H3D4, &H11: OUT &H3D5, &HAC: OUT &H3D4, &H12   OUT &H3D5, &HDF: OUT &H3D4, &H14: OUT &H3D5, &H0   OUT &H3D4, &H15: OUT &H3D5, &HE7: OUT &H3D4, &H16   OUT &H3D5, &H6: OUT &H3D4, &H17: OUT &H3D5, &HE3END SUB

I have also made a MODEX bitmap loarder that utilises VGA hardware to quickly and smoothly pan the image on mouse click & drag.

Code:

DEFINT A-ZDECLARE SUB modex ()DIM yy AS LONGDIM a(10) AS LONGa(0) = &H8BE58955a(1) = &H33CD0C46a(2) = &H890A768Ba(3) = &H8768B1Ca(4) = &H768B0C89a(5) = &H5D148906a(6) = &H8CADIM r AS STRING * 1, g AS STRING * 1, b AS STRING * 1DIM s AS LONGSCREEN 0'PRINT "Enter filename of 8bit bmp less then 512x495 in size"'LINE INPUT f$modexOUT &H3D4, &H13OUT &H3D5, 64DEF SEG = &HA000f$ = "city7.bmp"k = 1OPEN f$ FOR BINARY AS #1GET #1, 1, xGET #1, 29, yIF x <> &H4D42 AND y <> 8 THEN SYSTEMGET #1, 19, xGET #1, 23, y'GET #1, 35, sizeGET #1, 54, bOUT &H3C8, 0FOR i = 0 TO 255   GET #1, , b   GET #1, , g   GET #1, , r   OUT &H3C9, ASC(r) \ 4   OUT &H3C9, ASC(g) \ 4   OUT &H3C9, ASC(b) \ 4   GET #1, , bNEXTIF x MOD 4 THEN z$ = SPACE$(4 - (x MOD 4))OUT &H3C4, &H2FOR i = 0 TO y - 1   yy = (y - i - 1) * 128&   FOR j = 0 TO x - 1      GET #1, , b      k = k * 2 MOD 15      OUT &H3C5, k      POKE j \ 4 + yy, ASC(b)   NEXT   GET #1, , z$_MOUSEX = 0y = 0DEF SEG = VARSEG(a(0))CALL absolute(BYVAL 0, mb, mx, my, VARPTR(a(0)))DO   CALL absolute(BYVAL 3, mb, mx, my, VARPTR(a(0)))   IF mb = 1 THEN      ox = mx + x      oy = my + y      DO         CALL absolute(BYVAL 3, mb, mx, my, VARPTR(a(0)))         x = ox - mx         y = oy - my         IF x < 1 THEN x = 0         IF y < 1 THEN y = 0         IF x > 384 THEN x = 384         IF y > 250 THEN y = 250         s = y * 128& + x \ 8         OUT &H3D4, &HC         OUT &H3D5, s \ 256         OUT &H3D4, &HD         OUT &H3D5, s         i = INP(&H3DA)         OUT &H3C0, &H33         OUT &H3C0, (x AND &HFFFE) MOD 8      LOOP WHILE mb = 1   END IFLOOP UNTIL INP(&H60) = 1OUT &H3D4, &H13OUT &H3D5, 40SCREEN 0SYSTEMSUB modexSCREEN 13OUT &H3C4, &H4: OUT &H3C5, &H6: OUT &H3C4, &H0OUT &H3C5, &H1: OUT &H3C2, &HE3: OUT &H3C4, &H0OUT &H3C5, &H3: OUT &H3D4, &H11: x = INP(&H3D5) AND &H7FOUT &H3D5, x: OUT &H3D4, &H6: OUT &H3D5, &HDOUT &H3D4, &H7: OUT &H3D5, &H3E: OUT &H3D4, &H9OUT &H3D5, &H41: OUT &H3D4, &H10: OUT &H3D5, &HEAOUT &H3D4, &H11: OUT &H3D5, &HAC: OUT &H3D4, &H12OUT &H3D5, &HDF: OUT &H3D4, &H14: OUT &H3D5, &H0OUT &H3D4, &H15: OUT &H3D5, &HE7: OUT &H3D4, &H16OUT &H3D5, &H6: OUT &H3D4, &H17: OUT &H3D5, &HE3END SUB
you can use any image that is of size, but this demo uses this sample image: http://qbasic.orgfree.com/city7.bmp

Statistics: Posted by Guest — Mon Apr 04, 2011 4:10 pm


]]>
2011-04-04T13:48:16-05:00 2011-04-04T13:48:16-05:00 http://www.petesqbsite.com/phpBB3/viewtopic.php?p=21448#p21448 <![CDATA[Here is some modex code I found]]>

Code:

DECLARE SUB ModeX () 'DECLARE SUB OutPort (PortAddr&, vh%, vl%) 'DECLARE SUB Standard () 'DECLARE SUB SetVOffset (Offset&) ''SCREEN 13: DEF SEG = &HA000: CALL ModeX''FOR count% = 0 TO 63'redval& = count%'greenval& = 256 * count%'blueval& = 65536 * count%'rgbval& = blueval& + greenval& + redval&'PALETTE count%, redval&'PALETTE count% + 64, greenval& 'PALETTE count% + 128, blueval& 'PALETTE count% + 192, rgbval& 'NEXT count%''FOR Offset& = 0 TO 15999'rgbbase% = Offset& MOD 64'POKE Offset&, rgbbase%'POKE Offset& + 16000, rgbbase% + 64 'POKE Offset& + 32000, rgbbase% + 128'POKE Offset& + 48000, rgbbase% + 192'NEXT Offset&''Offset& = 0: OffsetInc% = 80: Frame% = 0''DO'Offset& = Offset& + OffsetInc%'CALL SetVOffset(Offset&): WAIT &H3DA, 8'Frame% = Frame% + 1'IF Frame% = 99 THEN OffsetInc% = 81'IF Frame% = 199 THEN OffsetInc% = 79'IF Frame% = 299 THEN OffsetInc% = 80'IF Frame% = 499 THEN OffsetInc% = -80'IF Frame% = 599 THEN OffsetInc% = -79'IF Frame% = 699 THEN OffsetInc% = -81'IF Frame% = 799 THEN OffsetInc% = -80'IF Frame% = 899 THEN 'CLS : PALETTE'CALL SetVOffset(0): CALL Standard'END'END IF'FOR delay% = 1 TO 10: NEXT delay%'LOOP''' Regarding the example code... Change the delay% value to'accommodate your CPU's speed. The TIMER function is'relatively inaccurate when dealing with fractions of a'second, and I had insufficient space to include my own timer'routine.'' If you have any questions, feel free to ask.'Happy coding! Jason Plackey'''SUB ModeX 'CALL OutPort(&H3C4, 6, 4): CLS 'CALL OutPort(&H3D4, 227, 23)'CALL OutPort(&H3D4, 0, 20)'CALL OutPort(&H3C4, 15, 2)'END SUB''SUB OutPort (PortAddr&, vh%, vl%) 'OUT PortAddr&, vl%: OUT PortAddr& + 1, vh%'END SUB''SUB SetVOffset (Offset&) 'V& = Offset&'CALL OutPort(&H3D4, V& \ 256, 12)'CALL OutPort(&H3D4, V& AND 255, 13)'END SUB''SUB Standard 'CALL OutPort(&H3C4, 14, 4)'CALL OutPort(&H3D4, 163, &H17)'CALL OutPort(&H3D4, 64, &H14)'CALL OutPort(&H3C4, 15, &H2)'END SUB'
Hope this helps with modex. :roll:

Statistics: Posted by TRANERAECK — Mon Apr 04, 2011 1:48 pm


]]>