Full Source for VisualQB v2.0 Copyright 2004 Mike Maset. All Rights Reserved. This code may not be copied in whole or in part without consent of the author. ----------------------------- DECLARE SUB HandleClick (button%) DECLARE SUB DrawVQBButton (number%, dir%) DECLARE SUB StoreButton (number%, x1%, y1%, x2%, y2%) DECLARE SUB OptionsMenu () DECLARE SUB EditMenu () DECLARE SUB MonitorMouse () DECLARE SUB FileMenu () DECLARE SUB WaitForLButton () DECLARE SUB SetCursor (cursor$) DECLARE FUNCTION BinToChar$ (bin$) DECLARE SUB HideMouse () DECLARE FUNCTION DoPopout% () DECLARE SUB AddPopoutItem (text$) DECLARE SUB InitiatePopout (x1%, y1%, text$) DECLARE SUB Status (stat$) DECLARE SUB InitAllVQB () DECLARE SUB SetVQBPalette () DECLARE SUB DrawCheck (x1%, y1%, inout%) DECLARE SUB DrawRadio (x1%, y1%, inout%) DECLARE SUB SetMousePos (x1%, y1%) DECLARE SUB MouseStatus () DECLARE SUB DrawVisualQB () DECLARE SUB ShowMouse () DECLARE SUB ResetMouse () DECLARE SUB PrintText (x1%, y1%, text$, fgclr%, bgclr%, spacing%) DECLARE SUB Draw3D (x1%, y1%, x2%, y2%, inout%, fill%) '$INCLUDE: 'd:\qb45\qb.bi' TYPE button x1 AS INTEGER y1 AS INTEGER x2 AS INTEGER y2 AS INTEGER END TYPE COMMON SHARED vqbbutton() AS button COMMON SHARED x%, y%, lb%, rb% COMMON SHARED inregs AS RegTypeX, outregs AS RegTypeX COMMON SHARED laststatus$ COMMON SHARED curtool%, curicon% COMMON SHARED fgclr%, bgclr%, paletteopt% COMMON SHARED menux%, menuy%, menulength% COMMON SHARED getscreen%() COMMON SHARED menuhilite%() COMMON SHARED curs AS STRING * 256 COMMON SHARED currentcur$ DIM SHARED vqbbutton(1 TO 34) AS button DIM SHARED getscreen%(32001) DIM SHARED menuhilite%(317) 'to add/modify tools: search #TOOL.SPECIFIC SCREEN 13 InitAllVQB SetVQBPalette DrawVisualQB ResetMouse ShowMouse menuitem = -1 DO MouseStatus inarea = 0 IF x% > 36 AND y% > 19 AND x% < 317 AND y% < 189 THEN SetCursor "plus": inarea = 1 IF x% > 17 AND y% > 159 AND x% < 34 AND y% < 176 THEN SetCursor "drawicon": inarea = 1 IF inarea = 0 AND currentcur$ <> "arrow" THEN SetCursor "arrow" overitem = 0 IF x% >= 2 AND y% >= 10 AND x% <= 26 AND y% <= 18 THEN overitem = 1 IF lb% = -1 THEN HideMouse Draw3D 2, 10, 26, 18, 1, -1 ShowMouse FileMenu menuitem = -1 END IF IF menuitem <> 1 THEN menuitem = 1 HideMouse LINE (2, 10)-(26, 18), 7 + 32, B LINE (30, 10)-(54, 18), 7 + 32, B LINE (58, 10)-(100, 18), 7 + 32, B Draw3D 2, 10, 26, 18, 0, -1 ShowMouse END IF END IF IF x% >= 30 AND y% >= 10 AND x% <= 54 AND y% <= 18 THEN overitem = 1 IF lb% = -1 THEN HideMouse Draw3D 30, 10, 54, 18, 1, -1 ShowMouse EditMenu menuitem = -1 END IF IF menuitem <> 2 THEN menuitem = 2 HideMouse LINE (2, 10)-(26, 18), 7 + 32, B LINE (30, 10)-(54, 18), 7 + 32, B LINE (58, 10)-(100, 18), 7 + 32, B Draw3D 30, 10, 54, 18, 0, -1 ShowMouse END IF END IF IF x% >= 58 AND y% >= 10 AND x% <= 100 AND y% <= 18 THEN overitem = 1 IF lb% = -1 THEN HideMouse Draw3D 58, 10, 100, 18, 1, -1 ShowMouse OptionsMenu menuitem = -1 END IF IF menuitem <> 3 THEN menuitem = 3 HideMouse LINE (2, 10)-(26, 18), 7 + 32, B LINE (30, 10)-(54, 18), 7 + 32, B LINE (58, 10)-(100, 18), 7 + 32, B Draw3D 58, 10, 100, 18, 0, -1 ShowMouse END IF END IF IF overitem = 0 AND menuitem <> -1 THEN menuitem = -1 HideMouse LINE (2, 10)-(26, 18), 7 + 32, B LINE (30, 10)-(54, 18), 7 + 32, B LINE (58, 10)-(100, 18), 7 + 32, B ShowMouse END IF IF lb% = -1 THEN hitone% = -1 FOR z% = 1 TO 34 IF x% >= vqbbutton(z%).x1 AND y% >= vqbbutton(z%).y1 AND x% <= vqbbutton(z%).x2 AND y% <= vqbbutton(z%).y2 THEN DrawVQBButton z%, 1 hitone% = z% WaitForLButton EXIT FOR END IF NEXT z% IF hitone% <> -1 THEN HandleClick hitone% 'PRINT hitone% END IF LOOP FUNCTION BinToChar$ (bin$) value& = 0 power = 0 FOR a = 8 TO 1 STEP -1 value& = value& + ((2 ^ power) * VAL(MID$(bin$, a, 1))) power = power + 1 NEXT a BinToChar$ = CHR$(value&) END FUNCTION FUNCTION DoPopout% OUT 967, 6 r = INP(969) g = INP(969) B = INP(969) PALETTE 6, 65536 * 63 + 256 * 63 + 63 OUT 967, 1 r2 = INP(969) g2 = INP(969) B2 = INP(969) PALETTE 1, 65536 * 42 current = -1 DO MouseStatus IF x% > menux% AND x% < menux% + 90 AND y% > (menuy% - (menulength% * 7) + 7) AND y% < menuy% + 8 THEN FOR a = 1 TO menulength% IF x% >= (menux% + 1) AND y% >= (a * 7 + (menuy% - (menulength% * 7)) + 1) AND x% <= (menux% + 89) AND y% <= (a * 7 + (menuy% - (menulength% * 7)) + 7) AND a <> current THEN HideMouse FOR c = 1 TO menulength% IF c = current THEN PUT (menux% + 1, c * 7 + (menuy% - (menulength% * 7)) + 1), menuhilite% NEXT c current = a PUT (menux% + 1, a * 7 + (menuy% - (menulength% * 7)) + 1), menuhilite% ShowMouse END IF NEXT a END IF LOOP UNTIL lb% = -1 WaitForLButton current = -1 IF x% > menux% AND x% < menux% + 90 AND y% > (menuy% - (menulength% * 7) + 7) AND y% < menuy% + 8 THEN FOR a = 1 TO menulength% IF x% >= (menux% + 1) AND y% >= (a * 7 + (menuy% - (menulength% * 7)) + 1) AND x% <= (menux% + 89) AND y% <= (a * 7 + (menuy% - (menulength% * 7)) + 7) AND a <> current THEN current = a NEXT a END IF OUT 968, 6 OUT 969, r OUT 969, g OUT 969, B OUT 968, 1 OUT 969, r2 OUT 969, g2 OUT 969, B2 HideMouse PUT (0, 0), getscreen%, PSET ShowMouse DoPopout% = current END FUNCTION SUB DrawVisualQB Draw3D 0, 0, 319, 199, 0, 7 + 32 'main window Draw3D 1, 1, 318, 9, 1, 1 + 32 'title bar PrintText 12, 3, "VisualQB Development Environment v2.0", 15 + 32, -1, 0 Draw3D 295, 2, 301, 8, 0, 7 + 32 '? button PrintText 297, 3, "?", 0 + 32, -1, 0 Draw3D 304, 2, 310, 8, 0, 7 + 32 '_ button PrintText 306, 3, "?", 0 + 32, -1, 0 Draw3D 311, 2, 317, 8, 0, 7 + 32 'X button PrintText 312, 3, "X", 0 + 32, -1, 0 PrintText 4, 12, "FILE EDIT OPTIONS", 0 + 32, -1, 0 Draw3D 105, 10, 215, 18, 1, 7 + 32 'drop down Draw3D 208, 11, 214, 17, 0, 7 + 32 'drop down button PrintText 209, 12, "?", 0 + 32, -1, 0 PrintText 107, 12, "LAYER (1=BOTTOM)", 0 + 32, -1, 0 LINE (217, 10)-(316, 18), 15 + 32, BF 'inside of input box LINE (217, 10)-(316, 18), 0 + 32, B 'border of input box Draw3D 36, 19, 317, 189, 1, 20 + 32 'main editor window box Status "" Draw3D 160, 190, 259, 198, 1, 7 + 32 'window selector Draw3D 252, 191, 258, 197, 0, 7 + 32 'window selector button PrintText 253, 192, "?", 0 + 32, -1, 0 PrintText 162, 192, "WINDOW_NAME_BOX", 0 + 32, -1, 0 Draw3D 261, 190, 276, 198, 0, 7 + 32 'go button Draw3D 278, 190, 317, 198, 0, 7 + 32 'editpos button PrintText 264, 192, "Go EditPos", 0 + 32, -1, 0 Draw3D 1, 19, 35, 20, 1, 0 + 32 'divider Draw3D 1, 23, 35, 87, 1, 7 + 32 'tools box PrintText 7, 25, "Tools", 0 + 32, -1, 0 Draw3D 2, 31, 14, 42, 0, 7 + 32 'big arrow button IF curtool% = 0 THEN Draw3D 2, 31, 14, 42, 1, 7 + 32 'big arrow button Draw3D 16, 31, 34, 41, 0, 7 + 32 'add win button PrintText 18, 33, "?", 0 + 32, -1, 0 '"add win" butn = 1 FOR y = 0 TO 3 FOR x = 0 TO 2 Draw3D x * 11 + 2, y * 11 + 43, x * 11 + 12, y * 11 + 53, 0, 7 + 32 IF curtool% = butn THEN Draw3D x * 11 + 2, y * 11 + 43, x * 11 + 12, y * 11 + 53, 1, 7 + 32 butn = butn + 1 NEXT x NEXT y '#TOOL.SPECIFIC 'arrow DIM char$(1 TO 10) ' char$(1) = "0????077777" ' char$(2) = "0?????07777" ' char$(3) = "0??????0777" ' char$(4) = "0???????077" ' char$(5) = "0????????07" ' char$(6) = "0?????00000" ' char$(7) = "0??0??07777" ' char$(8) = "0?070??0777" ' char$(9) = "00770??0777" 'char$(10) = "777770??077" char$(1) = "0777777" char$(2) = "0077777" char$(3) = "0?07777" char$(4) = "0??0777" char$(5) = "0???077" char$(6) = "0????07" char$(7) = "0?0?000" char$(8) = "000?077" char$(9) = "0770?07" char$(10) = "7770007" FOR y = 1 TO 10 FOR x = 1 TO 7 PSET (x + 4, y + 31), ASC(MID$(char$(y), x, 1)) - 48 + 32 NEXT x NEXT y 'slider Draw3D 5, 44, 9, 48, 0, 7 + 32 LINE (6, 44)-(8, 44), 7 PSET (9, 44), 8 + 32 PSET (9, 48), 7 + 32 PSET (7, 48), 7 + 32 PSET (7, 49), 8 + 32 LINE (4, 51)-(4, 52), 8 + 32 LINE (6, 51)-(6, 52), 8 + 32 LINE (8, 51)-(8, 52), 8 + 32 LINE (10, 51)-(10, 52), 8 + 32 'button Draw3D 14, 45, 22, 51, 0, 7 + 32 PrintText 15, 46, "Y", 0 + 32, -1, 0 'icon char$(1) = "<<<<<<4" char$(2) = "<19<194" char$(3) = "<19<194" char$(4) = "<19<194" char$(5) = "<<19944" char$(6) = "<<41444" char$(7) = "4444444" FOR y = 1 TO 7 FOR x = 1 TO 7 PSET (x + 25, y + 44), ASC(MID$(char$(y), x, 1)) - 48 + 32 PSET (x + 2, y + 1), ASC(MID$(char$(y), x, 1)) - 48 + 32 NEXT x NEXT y 'radio DrawRadio 7, 59, 1 'check DrawCheck 15, 56, 1 'togglebtn Draw3D 26, 56, 32, 58, 0, 7 + 32 Draw3D 26, 60, 32, 62, 1, 7 + 32 'text PrintText 4, 68, "?", 0 + 32, -1, 0 'box LINE (15, 68)-(21, 72), 0 + 32, B 'line LINE (26, 68)-(32, 72), 0 + 32 'frame LINE (5, 79)-(10, 84), 15 + 32, B LINE (4, 78)-(9, 83), 8 + 32, B LINE (6, 78)-(7, 79), 7 + 32, BF 'textbox PrintText 14, 78, "?", 0 + 32, -1, 0 'valbox PrintText 25, 78, "?", 0 + 32, -1, 0 '------ Draw3D 1, 90, 35, 148, 1, 7 + 32 'color box PrintText 4, 92, "Colors", 0 + 32, -1, 0 FOR y = 0 TO 7 FOR x = 1 TO 4 clr = (y * 4) + (x - 1) 'draw colors LINE (x * 6 - 4, y * 4 + 98)-(x * 6 + 5 - 4, y * 4 + 3 + 98), clr, BF NEXT x NEXT y LINE (26, 89 + 9)-(28, 120 + 9), 0 + 32, BF 'r LINE (29, 89 + 9)-(31, 120 + 9), 0 + 32, BF 'g LINE (32, 89 + 9)-(34, 120 + 9), 0 + 32, BF 'b LINE (26, 89 + 9)-(28, 120 + 9), 12 + 32, B 'r LINE (29, 89 + 9)-(31, 120 + 9), 10 + 32, B 'g LINE (32, 89 + 9)-(34, 120 + 9), 9 + 32, B 'b LINE (3, 131)-(12, 138), fgclr%, BF 'fg color LINE (3, 131)-(12, 138), 52, B 'fg color LINE (24, 131)-(33, 138), bgclr%, BF 'bg color LINE (24, 131)-(33, 138), 52, B 'bg color Draw3D 14, 131, 22, 138, 0, 7 + 32 'FG<->BG PrintText 16, 132, "?", 0 + 32, -1, 0 Draw3D 2, 140, 17, 147, ABS(paletteopt% <> 1), 7 + 32 '<-> button PrintText 7, 141, "?", 0 + 32, -1, 0 LINE (3, 142)-(5, 145), 4 + 32, BF LINE (14, 142)-(16, 145), 1 + 32, BF Draw3D 19, 140, 34, 147, ABS(paletteopt% <> 0), 7 + 32 '--> button PrintText 24, 141, "?", 0 + 32, -1, 0 LINE (3 + 17, 142)-(5 + 17, 145), 4 + 32, BF LINE (14 + 17, 142)-(16 + 17, 145), 4 + 32, BF Draw3D 1, 151, 35, 187, 1, 7 + 32 PrintText 3, 153, "Icon#0", 0 + 32, -1, 0 Draw3D 17, 161 - 2, 34, 178 - 2, 0, 0 + 32 'icon viewer Draw3D 17, 180 - 2, 25, 188 - 2, 0, 7 + 32 'left but PrintText 19, 180, "?", 0 + 32, -1, 0 '151 Draw3D 26, 180 - 2, 34, 188 - 2, 0, 7 + 32 'right but PrintText 28, 180, "?", 0 + 32, -1, 0 '152 butns$ = "????????" '143-150 locatn = 1 FOR x = 0 TO 1 FOR y = 0 TO 3 Draw3D x * 7 + 2, y * 7 + 159, x * 7 + 6 + 2, y * 7 + 6 + 159, 0, 7 + 32 PrintText x * 7 + 3, y * 7 + 160, MID$(butns$, locatn, 1), 0 + 32, -1, 0 locatn = locatn + 1 NEXT y NEXT x END SUB SUB EditMenu InitiatePopout 30, 18, "CUT " AddPopoutItem "COPY " 'IF object copied in mem THEN... AddPopoutItem "PASTE " 'END IF AddPopoutItem "**horizontal rule**" AddPopoutItem "DEFAULTS..." AddPopoutItem "WINDOW POS..." AddPopoutItem "**horizontal rule**" AddPopoutItem "LOAD FILE ? ICO." AddPopoutItem "SAVE ICO. ? FILE" AddPopoutItem "LOAD ICON STACK" AddPopoutItem "SAVE ICON STACK" WaitForLButton edit = DoPopout% END SUB SUB FileMenu InitiatePopout 2, 18, "NEW... " AddPopoutItem "OPEN... " AddPopoutItem "SAVE " AddPopoutItem "SAVE AS..." AddPopoutItem "**horizontal rule**" AddPopoutItem "IMPORT... O" AddPopoutItem "EXPORT... " AddPopoutItem "COMPILE...O" AddPopoutItem "**horizontal rule**" AddPopoutItem "FILE INFO " AddPopoutItem "EXIT " WaitForLButton file = DoPopout% END SUB SUB HandleClick (button%) IF NOT ((button% >= 7 AND button% <= 18) OR (button% >= 20 AND button% <= 21) OR button% = 5) THEN DrawVQBButton button%, 0 END IF SELECT CASE button% CASE 1 'help CASE 2 'minimize CASE 3 'quit CASE 4 'drop down properties CASE 5 'select arrow IF curtool% <> 0 THEN curtool% = 0 butn = 1 FOR y = 0 TO 3 FOR x = 0 TO 2 DrawVQBButton butn + 6, 0 butn = butn + 1 NEXT x NEXT y DrawVQBButton 5, 1 END IF CASE 6 'add win CASE 7 TO 18 'select tool IF curtool% <> button% - 6 THEN curtool% = button% - 6 DrawVQBButton 5, 0 butn = 1 FOR y = 0 TO 3 FOR x = 0 TO 2 DrawVQBButton butn + 6, 0 IF curtool% = butn THEN DrawVQBButton butn + 6, 1 butn = butn + 1 NEXT x NEXT y END IF CASE 19 'swap FG/BG SWAP fgclr%, bgclr% HideMouse LINE (3, 131)-(12, 138), fgclr%, BF 'fg color LINE (3, 131)-(12, 138), 52, B 'fg color LINE (24, 131)-(33, 138), bgclr%, BF 'bg color LINE (24, 131)-(33, 138), 52, B 'bg color ShowMouse CASE 20 'select switch CASE 21 'select overwrite CASE 22 TO 29 'do icon edit button CASE 30 'select icon left CASE 31 'select icon right CASE 32 'drop down window list CASE 33 'go CASE 34 'editpos END SELECT END SUB SUB InitAllVQB laststatus$ = "Welcome to the VDE!" 'last status displayed curtool% = 0 'current tool selected curicon% = -1 'current icon selected fgclr% = 15 'current foreground color bgclr% = 8 'cur. background color paletteopt% = 0 'which copy mode is picked for colors currentcur$ = "arrow" 'current cursor image LINE (0, 0)-(88, 6), 6 + 32, BF '\___ the drop-down GET (0, 0)-(88, 6), menuhilite% '/ menu highlighter 'store all editor button coordinates! StoreButton 1, 295, 2, 301, 8 '? StoreButton 2, 304, 2, 310, 8 '_ StoreButton 3, 311, 2, 317, 8 'X StoreButton 4, 208, 11, 214, 17 'top dropdown 'tools StoreButton 5, 2, 31, 14, 42 'arrow StoreButton 6, 16, 31, 34, 41 'add win butn% = 7 FOR y = 0 TO 3 'all the tool buttons FOR x = 0 TO 2 StoreButton butn%, x * 11 + 2, y * 11 + 43, x * 11 + 12, y * 11 + 53 butn% = butn% + 1 NEXT x NEXT y StoreButton 19, 14, 131, 22, 138 'swap FG/BG StoreButton 20, 2, 140, 17, 147 'switch colors StoreButton 21, 19, 140, 34, 147 'copy color butn% = 22 FOR x = 0 TO 1 'all the icon edit buttons FOR y = 0 TO 3 StoreButton butn%, x * 7 + 2, y * 7 + 159, x * 7 + 6 + 2, y * 7 + 6 + 159 butn% = butn% + 1 NEXT y NEXT x StoreButton 30, 17, 180 - 2, 25, 188 - 2 'left icon StoreButton 31, 26, 180 - 2, 34, 188 - 2 'right icon StoreButton 32, 252, 191, 258, 197 'window selector StoreButton 33, 261, 190, 276, 198 'go StoreButton 34, 278, 190, 317, 198 'editpos END SUB SUB OptionsMenu InitiatePopout 58, 18, "RUN/TEST... " AddPopoutItem "**horizontal rule**" AddPopoutItem "MOVE OBJ. UP" AddPopoutItem "MOVE OBJ. DOWN" AddPopoutItem "MOVE TO TOP" AddPopoutItem "MOVE TO BOTTOM" AddPopoutItem "**horizontal rule**" 'IF locked THEN char$ = "?" 'IF locked THEN char$ = "?" AddPopoutItem "? OBJS ? WINDOW" '153 unlocked / 154 locked AddPopoutItem "**horizontal rule**" AddPopoutItem "MORE OPTIONS..." WaitForLButton options = DoPopout% END SUB SUB SetVQBPalette FOR a = 0 TO 31 OUT 967, a r = INP(969) g = INP(969) B = INP(969) OUT 968, a + 32 OUT 969, r OUT 969, g OUT 969, B NEXT a END SUB SUB Status (stat$) IF stat$ <> "" THEN laststatus$ = stat$ Draw3D 1, 190, 158, 198, 1, 7 + 32 PrintText 3, 192, UCASE$(laststatus$), 0 + 32, -1, 0 END SUB SUB StoreButton (number%, x1%, y1%, x2%, y2%) vqbbutton(number%).x1 = x1% vqbbutton(number%).y1 = y1% vqbbutton(number%).x2 = x2% vqbbutton(number%).y2 = y2% END SUB SUB WaitForLButton DO MouseStatus LOOP UNTIL lb% = 0 END SUB DECLARE SUB HideMouse () DECLARE SUB SetMousePos (x1%, y1%) DECLARE SUB ShowMouse () DECLARE SUB ResetMouse () DECLARE FUNCTION BinToChar$ (bin$) '$INCLUDE: 'visualqb.bi' SUB HideMouse inregs.ax = 2 CALL INTERRUPTX(&H33, inregs, outregs) END SUB SUB MouseStatus inregs.ax = 3 CALL INTERRUPTX(&H33, inregs, outregs) lb% = (outregs.bx AND 1) <> 0 rb% = (outregs.bx AND 2) <> 0 x% = outregs.cx / 2 y% = outregs.dx END SUB SUB ResetMouse inregs.ax = 0 CALL INTERRUPTX(&H33, inregs, outregs) END SUB SUB SetCursor (cursor$) IF cursor$ = currentcur$ THEN EXIT SUB cursor$ = LCASE$(cursor$) currentcur$ = cursor$ DIM cursm(1 TO 16) AS STRING * 16 DIM curcm(1 TO 16) AS STRING * 16 IF cursor$ = "arrow" THEN ResetMouse SetMousePos x%, y% ShowMouse EXIT SUB END IF IF cursor$ = "plus" THEN cursm(1) = "1111110001111111": curcm(1) = "0000000100000000" cursm(2) = "1111110001111111": curcm(2) = "0000000100000000" cursm(3) = "1111110001111111": curcm(3) = "0000000100000000" cursm(4) = "1111110001111111": curcm(4) = "0000000100000000" cursm(5) = "1111110001111111": curcm(5) = "0000000100000000" cursm(6) = "1111110101111111": curcm(6) = "0000000000000000" cursm(7) = "0000001110000001": curcm(7) = "0000000000000000" cursm(8) = "0000011111000001": curcm(8) = "1111100100111110" cursm(9) = "0000001110000001": curcm(9) = "0000000000000000" cursm(10) = "1111110101111111": curcm(10) = "0000000000000000" cursm(11) = "1111110001111111": curcm(11) = "0000000100000000" cursm(12) = "1111110001111111": curcm(12) = "0000000100000000" cursm(13) = "1111110001111111": curcm(13) = "0000000100000000" cursm(14) = "1111110001111111": curcm(14) = "0000000100000000" cursm(15) = "1111110001111111": curcm(15) = "0000000100000000" cursm(16) = "1111111111111111": curcm(16) = "0000000000000000" hotx = 7: hoty = 7 END IF IF cursor$ = "drawicon" THEN cursm(1) = "1111111111111111": curcm(1) = "1000000000000000" cursm(2) = "1111111111111111": curcm(2) = "0000000000000000" cursm(3) = "1111111111111111": curcm(3) = "0000000000000000" cursm(4) = "1111111111111111": curcm(4) = "0000000000000000" cursm(5) = "1111111111111111": curcm(5) = "0000000000000000" cursm(6) = "1111111111111111": curcm(6) = "0000000000000000" cursm(7) = "1111111111111111": curcm(7) = "0000000000000000" cursm(8) = "1111111111111111": curcm(8) = "0000000000000000" cursm(9) = "1111111111111111": curcm(9) = "0000000000000000" cursm(10) = "1111111111111111": curcm(10) = "0000000000000000" cursm(11) = "1111111111111111": curcm(11) = "0000000000000000" cursm(12) = "1111111111111111": curcm(12) = "0000000000000000" cursm(13) = "1111111111111111": curcm(13) = "0000000000000000" cursm(14) = "1111111111111111": curcm(14) = "0000000000000000" cursm(15) = "1111111111111111": curcm(15) = "0000000000000000" cursm(16) = "1111111111111111": curcm(16) = "0000000000000000" hotx = 0: hoty = 0 END IF DEF SEG = VARSEG(curs) location = 0 FOR x = 1 TO 16 POKE location, ASC(BinToChar$(MID$(cursm(x), 9, 8))) POKE location + 32, ASC(BinToChar$(MID$(curcm(x), 9, 8))) location = location + 1 POKE location, ASC(BinToChar$(MID$(cursm(x), 1, 8))) POKE location + 32, ASC(BinToChar$(MID$(curcm(x), 1, 8))) location = location + 1 NEXT x HideMouse inregs.ax = 9 inregs.bx = hotx inregs.cx = hoty inregs.es = VARSEG(curs) inregs.dx = 0 CALL INTERRUPTX(&H33, inregs, outregs) ShowMouse END SUB SUB SetMousePos (x1%, y1%) inregs.ax = 4 inregs.cx = x1% * 2 inregs.dx = y1% CALL INTERRUPTX(&H33, inregs, outregs) END SUB SUB ShowMouse inregs.ax = 1 CALL INTERRUPTX(&H33, inregs, outregs) END SUB DECLARE SUB Draw3D (x1%, y1%, x2%, y2%, inout%, fill%) DECLARE SUB HideMouse () DECLARE SUB ShowMouse () DECLARE SUB PrintText (x1%, y1%, text$, fgclr%, bgclr%, spacing%) '$INCLUDE: 'visualqb.bi' SUB AddPopoutItem (text$) spacer% = 0 IF LCASE$(text$) = "**horizontal rule**" THEN text$ = "----------------------" spacer% = -1 END IF menuy% = menuy% + 7 HideMouse LINE (menux%, menuy%)-(menux% + 90, menuy% + 8), 7 + 32, BF LINE (menux%, menuy%)-(menux%, menuy% + 7), 15 + 32 'left LINE (menux% + 1, menuy% + 8)-(menux% + 90, menuy% + 8), 8 + 32 'bottom LINE (menux% + 90, menuy% + 8)-(menux% + 90, menuy%), 8 + 32 'right PrintText menux% + 2 + spacer%, menuy% + 2, text$, 0 + 32, -1, spacer% ShowMouse menulength% = menulength% + 1 END SUB SUB CenterText (text$, fg%, bg%, spcs%, x1%, y1%, x2%, y2%, cvert%, choriz%) locx% = 320 locy% = 200 SELECT CASE cvert% CASE IS = 1: locy% = y1% CASE IS = 2: locy% = ((y1% + y2%) / 2) - 3 CASE IS = 3: locy% = y2% - 6 END SELECT SELECT CASE choriz% CASE IS = 1: locx% = x1% CASE IS = 2: locx% = ((x1% + x2%) / 2) - ((LEN(text$) * (5 + spcs%)) / 2) CASE IS = 3: locx% = x2% - (LEN(text$) * (5 + spcs%)) END SELECT PrintText locx%, locy%, text$, fg%, bg%, spcs% END SUB SUB Draw3D (x1%, y1%, x2%, y2%, inout%, fill%) IF fill% <> -1 THEN LINE (x1%, y1%)-(x2%, y2%), fill%, BF PSET (x2%, y1%), 7 + 32 PSET (x1%, y2%), 7 + 32 END IF light = 15 + 32: dark = 8 + 32 IF inout% <> 0 THEN SWAP light, dark LINE (x1%, y1%)-(x2% - 1, y1%), light 'top LINE (x1%, y1%)-(x1%, y2% - 1), light 'left LINE (x1% + 1, y2%)-(x2%, y2%), dark 'bottom LINE (x2%, y1% + 1)-(x2%, y2%), dark 'right END SUB SUB DrawVQBButton (number%, dir%) HideMouse Draw3D vqbbutton(number%).x1, vqbbutton(number%).y1, vqbbutton(number%).x2, vqbbutton(number%).y2, dir%, -1 ShowMouse END SUB SUB InitiatePopout (x1%, y1%, text$) HideMouse GET (0, 0)-(319, 199), getscreen% Draw3D x1%, y1%, x1% + 90, y1% + 8, 0, 7 + 32 PrintText x1% + 2, y1% + 2, text$, 0 + 32, -1, 0 ShowMouse menulength% = 1 menux% = x1% menuy% = y1% END SUB SUB PrintText (x1%, y1%, text$, fgclr%, bgclr%, spacing%) DEF SEG = &HA000 x1% = x1% - 1 y1% = y1% - 1 DIM char$(1 TO 7) FOR a = 1 TO LEN(text$) char$(1) = "............." char$(2) = "............." char$(3) = "............." char$(4) = "............." char$(5) = "............." char$(6) = "............." char$(7) = "............." wide = 1 SELECT CASE MID$(text$, a, 1) 'Uppercase CASE IS = "A" char$(1) = ".111." char$(2) = "1...1" char$(3) = "11111" char$(4) = "1...1" char$(5) = "1...1" wide = 5 CASE IS = "B" char$(1) = "1111." char$(2) = "1...1" char$(3) = "1111." char$(4) = "1...1" char$(5) = "1111." wide = 5 CASE IS = "C" char$(1) = ".111." char$(2) = "1...1" char$(3) = "1...." char$(4) = "1...1" char$(5) = ".111." wide = 5 CASE IS = "D" char$(1) = "1111." char$(2) = "1...1" char$(3) = "1...1" char$(4) = "1...1" char$(5) = "1111." wide = 5 CASE IS = "E" char$(1) = "11111" char$(2) = "1...." char$(3) = "1111." char$(4) = "1...." char$(5) = "11111" wide = 5 CASE IS = "F" char$(1) = "11111" char$(2) = "1...." char$(3) = "1111." char$(4) = "1...." char$(5) = "1...." wide = 5 CASE IS = "G" char$(1) = ".111." char$(2) = "1...." char$(3) = "1.111" char$(4) = "1...1" char$(5) = ".111." wide = 5 CASE IS = "H" char$(1) = "1...1" char$(2) = "1...1" char$(3) = "11111" char$(4) = "1...1" char$(5) = "1...1" wide = 5 CASE IS = "I" char$(1) = "111" char$(2) = ".1." char$(3) = ".1." char$(4) = ".1." char$(5) = "111" wide = 3 CASE IS = "J" char$(1) = "....1" char$(2) = "....1" char$(3) = "....1" char$(4) = "1...1" char$(5) = ".111." wide = 5 CASE IS = "K" char$(1) = "1...1" char$(2) = "1..1." char$(3) = "111.." char$(4) = "1..1." char$(5) = "1...1" wide = 5 CASE IS = "L" char$(1) = "1...." char$(2) = "1...." char$(3) = "1...." char$(4) = "1...." char$(5) = "11111" wide = 5 CASE IS = "M" char$(1) = "1...1" char$(2) = "11.11" char$(3) = "1.1.1" char$(4) = "1...1" char$(5) = "1...1" wide = 5 CASE IS = "N" char$(1) = "1...1" char$(2) = "11..1" char$(3) = "1.1.1" char$(4) = "1..11" char$(5) = "1...1" wide = 5 CASE IS = "O" char$(1) = ".111." char$(2) = "1...1" char$(3) = "1...1" char$(4) = "1...1" char$(5) = ".111." wide = 5 CASE IS = "P" char$(1) = "1111." char$(2) = "1...1" char$(3) = "1111." char$(4) = "1...." char$(5) = "1...." wide = 5 CASE IS = "Q" char$(1) = ".111." char$(2) = "1...1" char$(3) = "1.1.1" char$(4) = "1..1." char$(5) = ".11.1" wide = 5 CASE IS = "R" char$(1) = "1111." char$(2) = "1...1" char$(3) = "1111." char$(4) = "1..1." char$(5) = "1...1" wide = 5 CASE IS = "S" char$(1) = ".1111" char$(2) = "1...." char$(3) = ".111." char$(4) = "....1" char$(5) = "1111." wide = 5 CASE IS = "T" char$(1) = "11111" char$(2) = "..1.." char$(3) = "..1.." char$(4) = "..1.." char$(5) = "..1.." wide = 5 CASE IS = "U" char$(1) = "1...1" char$(2) = "1...1" char$(3) = "1...1" char$(4) = "1...1" char$(5) = ".111." wide = 5 CASE IS = "V" char$(1) = "1...1" char$(2) = "1...1" char$(3) = "1...1" char$(4) = ".1.1." char$(5) = "..1.." wide = 5 CASE IS = "W" char$(1) = "1...1" char$(2) = "1...1" char$(3) = "1.1.1" char$(4) = "1.1.1" char$(5) = ".1.1." wide = 5 CASE IS = "X" char$(1) = "1...1" char$(2) = ".1.1." char$(3) = "..1.." char$(4) = ".1.1." char$(5) = "1...1" wide = 5 CASE IS = "Y" char$(1) = "1...1" char$(2) = ".1.1." char$(3) = "..1.." char$(4) = "..1.." char$(5) = "..1.." wide = 5 CASE IS = "Z" char$(1) = "11111" char$(2) = "...1." char$(3) = "..1.." char$(4) = ".1..." char$(5) = "11111" wide = 5 'Lowercase CASE IS = "a" char$(1) = "....." char$(2) = ".111." char$(3) = "1...1" char$(4) = "1..11" char$(5) = ".11.1" wide = 5 CASE IS = "b" char$(1) = "1...." char$(2) = "1111." char$(3) = "1...1" char$(4) = "1...1" char$(5) = "1111." wide = 5 CASE IS = "c" char$(1) = "....." char$(2) = ".111." char$(3) = "1...." char$(4) = "1...1" char$(5) = ".111." wide = 5 CASE IS = "d" char$(1) = "....1" char$(2) = ".1111" char$(3) = "1...1" char$(4) = "1...1" char$(5) = ".1111" wide = 5 CASE IS = "e" char$(1) = "....." char$(2) = ".111." char$(3) = "11111" char$(4) = "1...." char$(5) = ".111." wide = 5 CASE IS = "f" char$(1) = "..11" char$(2) = ".1.." char$(3) = "111." char$(4) = ".1.." char$(5) = ".1.." wide = 4 CASE IS = "g" char$(1) = "....." char$(2) = ".1111" char$(3) = "1...1" char$(4) = "1...1" char$(5) = ".1111" char$(6) = "....1" char$(7) = ".111." wide = 5 CASE IS = "h" char$(1) = "1..." char$(2) = "111." char$(3) = "1..1" char$(4) = "1..1" char$(5) = "1..1" wide = 4 CASE IS = "i" char$(1) = ".1." char$(2) = "..." char$(3) = "11." char$(4) = ".1." char$(5) = "111" wide = 3 CASE IS = "j" char$(1) = "...1" char$(2) = "...." char$(3) = "...1" char$(4) = "...1" char$(5) = "...1" char$(6) = "1..1" char$(7) = ".11." wide = 4 CASE IS = "k" char$(1) = "1.." char$(2) = "1.1" char$(3) = "11." char$(4) = "1.1" char$(5) = "1.1" wide = 3 CASE IS = "l" char$(1) = "11." char$(2) = ".1." char$(3) = ".1." char$(4) = ".1." char$(5) = "111" wide = 3 CASE IS = "m" char$(1) = "....." char$(2) = "11.1." char$(3) = "1.1.1" char$(4) = "1.1.1" char$(5) = "1.1.1" wide = 5 CASE IS = "n" char$(1) = "...." char$(2) = "111." char$(3) = "1..1" char$(4) = "1..1" char$(5) = "1..1" wide = 4 CASE IS = "o" char$(1) = "...." char$(2) = ".11." char$(3) = "1..1" char$(4) = "1..1" char$(5) = ".11." wide = 4 CASE IS = "p" char$(1) = "....." char$(2) = "1111." char$(3) = "1...1" char$(4) = "1...1" char$(5) = "1111." char$(6) = "1...." char$(7) = "1...." wide = 5 CASE IS = "q" char$(1) = "....." char$(2) = ".1111" char$(3) = "1...1" char$(4) = "1...1" char$(5) = ".1111" char$(6) = "....1" char$(7) = "....1" wide = 5 CASE IS = "r" char$(1) = "...." char$(2) = "1.11" char$(3) = "11.." char$(4) = "1..." char$(5) = "1..." wide = 4 CASE IS = "s" char$(1) = "..." char$(2) = ".11" char$(3) = "11." char$(4) = "..1" char$(5) = "11." wide = 3 CASE IS = "t" char$(1) = ".1." char$(2) = "111" char$(3) = ".1." char$(4) = ".1." char$(5) = "..1" wide = 3 CASE IS = "u" char$(1) = "...." char$(2) = "1..1" char$(3) = "1..1" char$(4) = "1..1" char$(5) = ".111" wide = 4 CASE IS = "v" char$(1) = "....." char$(2) = "1...1" char$(3) = "1...1" char$(4) = ".1.1." char$(5) = "..1.." wide = 5 CASE IS = "w" char$(1) = "....." char$(2) = "1...1" char$(3) = "1.1.1" char$(4) = "1.1.1" char$(5) = ".1.1." wide = 5 CASE IS = "x" char$(1) = "..." char$(2) = "1.1" char$(3) = ".1." char$(4) = "1.1" char$(5) = "1.1" wide = 3 CASE IS = "y" char$(1) = "....." char$(2) = "1...1" char$(3) = "1...1" char$(4) = "1...1" char$(5) = ".1111" char$(6) = "....1" char$(7) = ".111." wide = 5 CASE IS = "z" char$(1) = "..." char$(2) = "111" char$(3) = "..1" char$(4) = "1.." char$(5) = "111" wide = 3 'Numbers CASE IS = "0" char$(1) = ".111." char$(2) = "1..11" char$(3) = "1.1.1" char$(4) = "11..1" char$(5) = ".111." wide = 5 CASE IS = "1" char$(1) = ".1." char$(2) = "11." char$(3) = ".1." char$(4) = ".1." char$(5) = "111" wide = 3 CASE IS = "2" char$(1) = ".111." char$(2) = "1...1" char$(3) = "..11." char$(4) = ".1..." char$(5) = "11111" wide = 5 CASE IS = "3" char$(1) = "1111." char$(2) = "....1" char$(3) = ".111." char$(4) = "....1" char$(5) = "1111." wide = 5 CASE IS = "4" char$(1) = ".1.1." char$(2) = "1..1." char$(3) = "11111" char$(4) = "...1." char$(5) = "...1." wide = 5 CASE IS = "5" char$(1) = "11111" char$(2) = "1...." char$(3) = "1111." char$(4) = "....1" char$(5) = "1111." wide = 5 CASE IS = "6" char$(1) = ".111." char$(2) = "1...." char$(3) = "1111." char$(4) = "1...1" char$(5) = ".111." wide = 5 CASE IS = "7" char$(1) = "11111" char$(2) = "....1" char$(3) = "...1." char$(4) = "..1.." char$(5) = "..1.." wide = 5 CASE IS = "8" char$(1) = ".111." char$(2) = "1...1" char$(3) = ".111." char$(4) = "1...1" char$(5) = ".111." wide = 5 CASE IS = "9" char$(1) = ".111." char$(2) = "1...1" char$(3) = ".1111" char$(4) = "....1" char$(5) = ".111." wide = 5 'Punctuation CASE IS = " " wide = 5 CASE IS = "!" char$(1) = "1" char$(2) = "1" char$(3) = "1" char$(4) = "." char$(5) = "1" wide = 1 CASE IS = CHR$(34) '" char$(1) = "1.1" char$(2) = "1.1" char$(3) = "..." char$(4) = "..." char$(5) = "..." wide = 3 CASE IS = "#" char$(1) = ".1.1." char$(2) = "11111" char$(3) = ".1.1." char$(4) = "11111" char$(5) = ".1.1." wide = 5 CASE IS = "$" char$(1) = "..1.." char$(2) = ".1111" char$(3) = "1.1.." char$(4) = "..1.1" char$(5) = "1111." char$(6) = "..1.." wide = 5 CASE IS = "%" char$(1) = "11..1" char$(2) = "11.1." char$(3) = "..1.." char$(4) = ".1.11" char$(5) = "1..11" wide = 5 CASE IS = "&" char$(1) = ".1..." char$(2) = "1.1.." char$(3) = ".11.1" char$(4) = "1..1." char$(5) = ".11.1" wide = 5 CASE IS = "'" char$(1) = "1" char$(2) = "1" char$(3) = "." char$(4) = "." char$(5) = "." wide = 1 CASE IS = "(" char$(1) = "..1" char$(2) = ".1." char$(3) = "1.." char$(4) = "1.." char$(5) = ".1." char$(6) = "..1" wide = 3 CASE IS = ")" char$(1) = "1.." char$(2) = ".1." char$(3) = "..1" char$(4) = "..1" char$(5) = ".1." char$(6) = "1.." wide = 3 CASE IS = "*" char$(1) = "1.1.1" char$(2) = ".111." char$(3) = "1.1.1" char$(4) = "....." char$(5) = "....." wide = 5 CASE IS = "+" char$(1) = "..." char$(2) = ".1." char$(3) = "111" char$(4) = ".1." char$(5) = "..." wide = 3 CASE IS = "," char$(1) = ".." char$(2) = ".." char$(3) = ".." char$(4) = ".1" char$(5) = ".1" char$(6) = "1." wide = 2 CASE IS = "-" char$(1) = "...." char$(2) = "...." char$(3) = "1111" char$(4) = "...." char$(5) = "...." wide = 4 CASE IS = "." char$(1) = "." char$(2) = "." char$(3) = "." char$(4) = "." char$(5) = "1" wide = 1 CASE IS = "/" char$(1) = "....1" char$(2) = "...1." char$(3) = "..1.." char$(4) = ".1..." char$(5) = "1...." wide = 5 CASE IS = ":" char$(1) = "." char$(2) = "1" char$(3) = "." char$(4) = "1" char$(5) = "." wide = 1 CASE IS = ";" char$(1) = ".." char$(2) = ".1" char$(3) = ".." char$(4) = ".1" char$(5) = "1." wide = 2 CASE IS = "<" char$(1) = "....1" char$(2) = "..11." char$(3) = "11..." char$(4) = "..11." char$(5) = "....1" wide = 5 CASE IS = "=" char$(1) = "...." char$(2) = "1111" char$(3) = "...." char$(4) = "1111" char$(5) = "...." wide = 4 CASE IS = ">" char$(1) = "1...." char$(2) = ".11.." char$(3) = "...11" char$(4) = ".11.." char$(5) = "1...." wide = 5 CASE IS = "?" char$(1) = "11." char$(2) = "..1" char$(3) = ".1." char$(4) = "..." char$(5) = ".1." wide = 3 CASE IS = "@" char$(1) = ".111." char$(2) = "1...1" char$(3) = "1.111" char$(4) = "1...." char$(5) = ".1111" wide = 5 CASE IS = "[" char$(1) = "11" char$(2) = "1." char$(3) = "1." char$(4) = "1." char$(5) = "11" wide = 2 CASE IS = "\" char$(1) = "1...." char$(2) = ".1..." char$(3) = "..1.." char$(4) = "...1." char$(5) = "....1" wide = 5 CASE IS = "]" char$(1) = "11" char$(2) = ".1" char$(3) = ".1" char$(4) = ".1" char$(5) = "11" wide = 2 CASE IS = "^" char$(1) = ".1." char$(2) = "1.1" char$(3) = "..." char$(4) = "..." char$(5) = "..." wide = 3 CASE IS = "_" char$(1) = "....." char$(2) = "....." char$(3) = "....." char$(4) = "....." char$(5) = "11111" wide = 5 CASE IS = "`" char$(1) = "1." char$(2) = "1." char$(3) = ".1" char$(4) = ".." char$(5) = ".." wide = 2 CASE IS = "{" char$(1) = "..1" char$(2) = ".1." char$(3) = "11." char$(4) = ".1." char$(5) = "..1" wide = 3 CASE IS = "|" char$(1) = "1" char$(2) = "1" char$(3) = "." char$(4) = "1" char$(5) = "1" wide = 1 CASE IS = "}" char$(1) = "1.." char$(2) = ".1." char$(3) = ".11" char$(4) = ".1." char$(5) = "1.." wide = 3 CASE IS = "~" char$(1) = ".1.1" char$(2) = "1.1." char$(3) = "...." char$(4) = "...." char$(5) = "...." wide = 4 'Special Characters CASE IS = "?" '130 char$(1) = "..." char$(2) = "..." char$(3) = "..." char$(4) = "111" char$(5) = "..." wide = 3 CASE IS = "Y" '131 char$(1) = "......." char$(2) = "111.1.1" char$(3) = "1.1.11." char$(4) = "111.1.1" char$(5) = "......." char$(6) = "......." char$(7) = "......." wide = 7 CASE IS = "?" '132 char$(1) = "....." char$(2) = "11111" char$(3) = ".111." char$(4) = "..1.." char$(5) = "....." wide = 5 CASE IS = "?" '133 char$(1) = "....." char$(2) = "....." char$(3) = "..1.." char$(4) = ".111." char$(5) = "....." wide = 5 CASE IS = "?" '134 char$(1) = "....." char$(2) = "....." char$(3) = ".111." char$(4) = "..1.." char$(5) = "....." wide = 5 CASE IS = "?" '135 char$(1) = "....1" char$(2) = "...11" char$(3) = "1.11." char$(4) = "111.." char$(5) = ".1..." wide = 5 CASE IS = "?" '136 char$(1) = ".111..." char$(2) = "..1.1.." char$(3) = "..111.." char$(4) = ".1...1." char$(5) = "111.111" char$(6) = "......." char$(7) = "......." wide = 7 CASE IS = "?" '137 char$(1) = "......1.1" char$(2) = ".111...1." char$(3) = "1...1..1." char$(4) = "11111..1." char$(5) = "1...1..1." char$(6) = "1...1..1." char$(7) = "......1.1" wide = 9 CASE IS = "?" '138 char$(1) = "......1.1" char$(2) = ".111...1." char$(3) = "1...1..1." char$(4) = "..11...1." char$(5) = ".1.....1." char$(6) = "11111..1." char$(7) = "......1.1" wide = 9 CASE IS = "?" '139 char$(1) = ".....1..11..11." char$(2) = "....111.1.1.1.1" char$(3) = ".1..1.1.11..11." char$(4) = "111............" char$(5) = ".1..1...1.1.1.1" char$(6) = "....1.1.1.1.111" char$(7) = ".....1.1..1.1.1" wide = 15 CASE IS = "?" '140 char$(1) = ".1...." char$(2) = "111111" char$(3) = ".1...." char$(4) = "....1." char$(5) = "111111" char$(6) = "....1." wide = 6 CASE IS = "?" '141 char$(1) = "......" char$(2) = "....1." char$(3) = "111111" char$(4) = "....1." char$(5) = "......" char$(6) = "......" wide = 6 CASE IS = "?" '142 char$(1) = ".1..." char$(2) = "11111" char$(3) = ".1..." char$(4) = "...1." char$(5) = "11111" char$(6) = "...1." wide = 5 CASE IS = "?" '143 char$(1) = "..1.." char$(2) = ".1..." char$(3) = "11111" char$(4) = ".1..." char$(5) = "..1.." wide = 5 CASE IS = "?" '144 char$(1) = "..1.." char$(2) = "...1." char$(3) = "11111" char$(4) = "...1." char$(5) = "..1.." wide = 5 CASE IS = "?" '145 char$(1) = "..1.." char$(2) = ".111." char$(3) = "1.1.1" char$(4) = "..1.." char$(5) = "..1.." wide = 5 CASE IS = "?" '146 char$(1) = "..1.." char$(2) = "..1.." char$(3) = "1.1.1" char$(4) = ".111." char$(5) = "..1.." wide = 5 CASE IS = "?" '147 char$(1) = ".111." char$(2) = "..1.." char$(3) = "..1.." char$(4) = "..1.." char$(5) = ".111." wide = 5 CASE IS = "?" '148 char$(1) = "....." char$(2) = "1...1" char$(3) = "11111" char$(4) = "1...1" char$(5) = "....." wide = 5 CASE IS = "?" '149 char$(1) = "1.11." char$(2) = "11..1" char$(3) = "111.1" char$(4) = "....1" char$(5) = ".111." wide = 5 CASE IS = "?" '150 char$(1) = "1...1" char$(2) = ".1.1." char$(3) = "..1.." char$(4) = ".1.1." char$(5) = "1...1" wide = 5 CASE IS = "?" '151 char$(1) = "....1" char$(2) = "..111" char$(3) = "11111" char$(4) = "..111" char$(5) = "....1" wide = 5 CASE IS = "?" '152 char$(1) = "1...." char$(2) = "111.." char$(3) = "11111" char$(4) = "111.." char$(5) = "1...." wide = 5 CASE IS = "?" '153 char$(1) = ".111." char$(2) = "....1" char$(3) = "11111" char$(4) = "11111" char$(5) = "11111" wide = 5 CASE IS = "?" '154 char$(1) = ".111." char$(2) = "1...1" char$(3) = "11111" char$(4) = "11111" char$(5) = "11111" wide = 5 END SELECT FOR y = 1 TO 7 FOR x = 1 TO wide IF MID$(char$(y), x, 1) <> "." THEN POKE (x1% + x) + 320 * (y1% + y), fgclr% IF MID$(char$(y), x, 1) = "." AND bgclr% <> -1 THEN POKE (x1% + x) + 320 * (y1% + y), bgclr% NEXT x NEXT y x1% = x1% + wide + spacing% + 1 IF bgclr% <> -1 AND a <> LEN(text$) THEN LINE (x1% - ((spacing% + wide) - 6), y1% + 1)-(x1%, y1% + 7), bgclr%, BF IF x1% >= 315 THEN EXIT SUB NEXT a END SUB DECLARE SUB PrintText (x1%, y1%, text$, fgclr%, bgclr%, spacing%) DECLARE SUB Draw3D (x1%, y1%, x2%, y2%, inout%, fill%) '$INCLUDE: 'visualqb.bi' SUB DrawCheck (x1%, y1%, inout%) Draw3D x1%, y1%, x1% + 6, y1% + 6, 1, 7 + 32 IF inout% = 1 THEN PrintText x1% + 1, y1% + 1, "?", 0 + 32, -1, 0 END SUB SUB DrawRadio (x1%, y1%, inout%) LINE (x1% - 2, y1% - 2)-(x1% + 2, y1% + 2), 15 + 32, BF CIRCLE (x1%, y1%), 3, 0 + 32, , , .9 IF inout% = 1 THEN LINE (x1% - 1, y1% - 1)-(x1% + 1, y1% + 1), 0 + 32, BF END SUB