Qbasicnews.com

Full Version: I Need help!
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Help! I've been working on an icon editor based on Chris Rennie's work. But when I try to test the LOAD.ICON subroutine, it hangs up on the put statement [Illeagal Function Call]. Everything else seems to work fine. What am I doing wrong????
'ikondraw.bas [DarkAges SoftWare]

DECLARE SUB END.HELP ()
DECLARE SUB ACTIVE.HELP (TR%, LC%, FC%, TEXT$)
DECLARE SUB SAVE.ICON ()
DECLARE SUB CUR.TIME (TR%, LC%, FC%, BC%, FOR.MAT%)
DECLARE SUB PRINT.HELP (TR%, LC%, FC%, BC%, STYLE%, TEXT$)
DECLARE FUNCTION ASKITG$ (TR%, LC%, FC%, BC%, MAX%, STYLE%)
DECLARE SUB MAKE.A.NEW.ICON ()
DECLARE SUB UPDATE.COORDINATES ()
DECLARE SUB MENU ()
DECLARE SUB CHECK.GRID (STYLE%)
DECLARE SUB INI.STARTUP ()
DECLARE SUB DRAW.SCREEN (STYLE%)
DECLARE SUB CREATE.LINE (TR%, LC%, BR%, RC%, STYLE%)
DECLARE SUB CREATE.BOX (TR%, LC%, BR%, RC%, BC%)
DECLARE SUB CREATE.COLORBOX ()
DECLARE SUB TEXT.BUTTON (TR%, LC%, FC%, BC%, TEXT$, UOD%)
DECLARE SUB CREATE.WINDOW (TR%, LC%, BR%, RC%, FC%, BC%, WC%, SHADOW%, STATUSBAR%, TEXT%, TEXT$)
DECLARE SUB PAUSE ()
DECLARE SUB PRINT.IT (FONT.FILE$, TR%, LC%, HT%, WD%, BLD AS SINGLE, FC%, TSP%, TEXT$)
DECLARE SUB CREATE.FONT (F.FILE$)
DECLARE SUB COLORS (ORIGINAL.COLOR&, RED&, GRN&, BLU&)
DECLARE SUB MOUSEON ()
DECLARE SUB MOUSEOFF ()
DECLARE SUB MOUSESETHOR (Min%, MAX%)
DECLARE SUB MOUSESETVERT (Min%, MAX%)
DECLARE SUB MOUSELOCATE (XPOS%, YPOS%)
DECLARE SUB MOUSESTATUS (VERT%, HORI%, MBUTTONS$)
DECLARE FUNCTION MOUSEINSTALLED% ()


REM $INCLUDE: 'QB.BI' '*** use QBX.BI in PDS7

DEFINT A-Z

COMMON SHARED TR%, LC%, BR%, RC%, WC%, FC%, BC%, SHADOW%, GRID.NUM%, G.M%
COMMON SHARED TEXT%, TEXT$, F.FILE$, ICON$, LFT.COLOR%, RGT.COLOR%, HELP.TEXT$
COMMON SHARED GTR%, GLC%, GBR%, GRC%, D.FILE$, G.TEXT$, D.VERT%, D.HORI%
DIM SHARED REGX AS RegTypeX, FONT.STR$(255), WORD.ARRAY$(255)
DIM SHARED BUTTON.TEXT$(100), STAMP%(1 TO 3400), HELP.IT$(25), WIN%(1 TO 3400)

SCREEN 12
LOCATE 2, 20: PRINT "Mouse Tester By Chris Wagner";
LOCATE 4, 20
IF MOUSEINSTALLED% THEN
PRINT "Mouse found and reset."
ELSE
PRINT "Mouse not found."
END
END IF

F.FILE$ = "LINE9X7.FNT": CALL CREATE.FONT(F.FILE$)
CALL INI.STARTUP
FOR D% = 1 TO 5
CALL DRAW.SCREEN(D%)
NEXT D%
CALL MENU
'====[ EOF ]====
KILL F.FILE$
CLS : SCREEN 0: COLOR 7, 0
CALL END.HELP
END

SUB ACTIVE.HELP (TR%, LC%, FC%, TEXT$)
V.RANGE% = VERT%: H.RANGE% = HORI%: DIM HELP.ACTIVE(6400): MAX% = LEN(TEXT$) * 7 + 7
FONTSIZE% = 1
CALL MOUSEOFF
TEXT$ = UCASE$(TEXT$): TIMER ON
'############################################################################
MAX% = LEN(TEXT$) * 7
GET (LC% - 5, TR% - 5)-(LC% + MAX% + 5 * FONTSIZE%, TR% + 13 * FONTSIZE%), HELP.ACTIVE
CALL MOUSEON
LINE (LC% - 4, TR% - 4)-(LC% + MAX% + 4 * FONTSIZE%, TR% + 10 * FONTSIZE%), 15, BF
FOR Y% = (LC% - 3) TO (LC% + MAX% + 3 * FONTSIZE%) STEP 2
FOR X% = (TR% - 3) TO (TR% + 10 * FONTSIZE%) STEP 2
PSET (Y%, X%), 14
NEXT X%
NEXT Y%
LINE (LC% - 4, TR% - 4)-(LC% + MAX% + 4 * FONTSIZE%, TR% + 10 * FONTSIZE%), 0, B
OLDLC% = LC%: OLDTR% = TR%

CALL PRINT.IT(F.FILE$, TR%, LC%, 1, 1, 0, FC%, -1, TEXT$)

DO
CALL MOUSESTATUS(VERT%, HORI%, MBUTTONS$)
CALL CUR.TIME(447, 509, 1, 7, 0)
LOOP WHILE VERT% = V.RANGE% AND HORI% = H.RANGE% AND MBUTTONS$ = " "

CALL MOUSEOFF
PUT (OLDLC% - 5, OLDTR% - 5), HELP.ACTIVE, PSET
'############################################################################
CALL MOUSEON
EXIT SUB
END SUB

FUNCTION ASKITG$ (TR%, LC%, FC%, BC%, MAX%, STYLE%)
N$ = "": LN% = LC% + MAX% * 7 + 7
CALL CREATE.BOX(TR% - 2, LC% - 4, TR% + 10, LN%, BC%)
DO
GOSUB CURSOR
G$ = INKEY$
IF G$ <> "" THEN
SELECT CASE G$
CASE CHR$(8)
IF LEN(N$) > 0 THEN
N$ = MID$(N$, 1, (LEN(N$) - 1))
CALL PRINT.IT(F.FILE$, TR%, LC% + LEN(N$) * 7, 1, 1, 0, FC%, BC%, " ")
END IF 'LC% + LEN(N$) * 8
CASE CHR$(13)
PRESSED = 1
CASE CHR$(27)
PRESSED = 2
CALL PRINT.IT(F.FILE$, TR%, LC%, 1, 1, 0, FC%, BC%, SPACE$(MAX%))
EXIT DO
END SELECT
IF LEN(N$) < MAX% THEN
SELECT CASE STYLE%
CASE 0
IF ASC(UCASE$(G$)) >= 65 AND ASC(UCASE$(G$)) <= 90 THEN
N$ = N$ + UCASE$(G$): CALL PRINT.IT(F.FILE$, TR%, LC%, 1, 1, 0, FC%, BC%, N$)
END IF
IF ASC(UCASE$(G$)) >= 48 AND ASC(UCASE$(G$)) <= 57 THEN
N$ = N$ + G$: CALL PRINT.IT(F.FILE$, TR%, LC%, 1, 1, 0, FC%, BC%, N$)
END IF
IF ASC(UCASE$(G$)) = 95 OR ASC(UCASE$(G$)) = 45 THEN
N$ = N$ + G$: CALL PRINT.IT(F.FILE$, TR%, LC%, 1, 1, 0, FC%, BC%, N$)
END IF
CASE 1
IF ASC(UCASE$(G$)) >= 32 AND ASC(UCASE$(G$)) <= 127 THEN
N$ = N$ + G$: CALL PRINT.IT(F.FILE$, TR%, LC%, 1, 1, 0, FC%, BC%, N$)
END IF
CASE 2
IF ASC(UCASE$(G$)) >= 48 AND ASC(UCASE$(G$)) <= 57 THEN
N$ = N$ + G$: CALL PRINT.IT(F.FILE$, TR%, LC%, 1, 1, 0, FC%, BC%, N$)
END IF
END SELECT
END IF
END IF
LOOP UNTIL PRESSED = 1
IF PRESSED = 2 THEN
CALL PRINT.IT(F.FILE$, TR%, LC%, 1, 1, 0, BC%, BC%, SPACE$(MAX%))
ELSE
CALL PRINT.IT(F.FILE$, TR%, LC%, 1, 1, 0, FC%, BC%, N$)
ASKITG$ = N$
END IF
EXIT FUNCTION
CURSOR:
FL$ = CHR$(32)
CALL PRINT.IT(F.FILE$, TR%, LC% + LEN(N$) * 7, 1, 1, 0, FC%, BC%, "|")
PAUSE
CALL PRINT.IT(F.FILE$, TR%, LC% + LEN(N$) * 7, 1, 1, 0, FC%, BC%, FL$)
FOR X% = 0 TO 1: PAUSE: NEXT X%
RETURN
END FUNCTION

SUB CHECK.GRID (STYLE%)
SELECT CASE STYLE%
CASE 1: GTR% = 28: GLC% = 12: GBR% = 116: GRC% = 100: G.TEXT$ = "12X12": G.M% = 12
CASE 2: GTR% = 28: GLC% = 12: GBR% = 148: GRC% = 132: G.TEXT$ = "16X16": G.M% = 16
CASE 3: GTR% = 28: GLC% = 12: GBR% = 212: GRC% = 196: G.TEXT$ = "24X24": G.M% = 24
CASE 4: GTR% = 28: GLC% = 12: GBR% = 276: GRC% = 260: G.TEXT$ = "32X32": G.M% = 32
CASE 5: GTR% = 28: GLC% = 12: GBR% = 340: GRC% = 329: G.TEXT$ = "40X40": G.M% = 40
END SELECT
END SUB

SUB COLORS (ORIGINAL.COLOR&, RED&, GRN&, BLU&)
OUT &H3C8, ORIGINAL.COLOR&

OUT &H3C9, RED&
OUT &H3C9, GRN&
OUT &H3C9, BLU&
END SUB

SUB CREATE.BOX (TR%, LC%, BR%, RC%, BC%)
GOSUB COLOR.VALUES
LINE (LC%, TR%)-(RC%, BR%), BC%, BF
LINE (LC%, TR%)-(RC%, TR%), BSC%: LINE (LC%, TR%)-(LC%, BR%), BSC%
LINE (LC% + 1, BR%)-(RC%, BR%), BHC%: LINE (RC%, TR% + 1)-(RC%, BR%), BHC%
EXIT SUB
COLOR.VALUES:
SELECT CASE BC%
CASE 0: BHC% = 15: BSC% = 0
CASE 1 TO 7: BHC% = 15: BSC% = 0
CASE 8: BHC% = 15: BSC% = 0
CASE 9 TO 14: BHC% = 15: BSC% = 0
CASE 15: BHC% = 15: BSC% = 0
END SELECT
RETURN
RETURN
END SUB

SUB CREATE.COLORBOX
COLORS.TEXT$ = " COLORS "
CALL CREATE.BOX(131, 550, 151, 590, 0)
CALL CREATE.BOX(152, 550, 172, 590, 1)
CALL CREATE.BOX(173, 550, 193, 590, 2)
CALL CREATE.BOX(194, 550, 214, 590, 3)
CALL CREATE.BOX(215, 550, 235, 590, 4)
CALL CREATE.BOX(236, 550, 256, 590, 5)
CALL CREATE.BOX(257, 550, 277, 590, 6)
CALL CREATE.BOX(278, 550, 298, 590, 7)

CALL CREATE.BOX(131, 591, 151, 631, 8)
CALL CREATE.BOX(152, 591, 172, 631, 9)
CALL CREATE.BOX(173, 591, 193, 631, 10)
CALL CREATE.BOX(194, 591, 214, 631, 11)
CALL CREATE.BOX(215, 591, 235, 631, 12)
CALL CREATE.BOX(236, 591, 256, 631, 13)
CALL CREATE.BOX(257, 591, 277, 631, 14)
CALL CREATE.BOX(278, 591, 298, 631, 15)
END SUB

SUB CREATE.FONT (F.FILE$)
OPEN F.FILE$ FOR OUTPUT AS #1
PRINT #1, "9"
PRINT #1, "7"
PRINT #1, "0"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000011111010000000000000000000000000000"
PRINT #1, "000000000001000000010000000001000000010000000000000000000000000"
PRINT #1, "000000000000101000011111110000101000011111110000101000000000000"
PRINT #1, "000000000000100000001010100011010110001010100000001000000000000"
PRINT #1, "000000000010000110000001000000010000000100000011000010000000000"
PRINT #1, "000000000000101000001000100011010110001010100000101000000000000"
PRINT #1, "000000000001000000010000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000111000001000100010000010010000010000000000"
PRINT #1, "000000000010000010010000010001000100000111000000000000000000000"
PRINT #1, "000000000001010100000111000001111100000111000001010100000000000"
PRINT #1, "000000000000010000000010000001111100000010000000010000000000000"
PRINT #1, "000000000000000001000000010000000000000000000000000000000000000"
PRINT #1, "000000000000010000000010000000010000000010000000010000000000000"
PRINT #1, "000000000000000000000000010000000000000000000000000000000000000"
PRINT #1, "000000010000000100000001000000010000000100000001000000010000000"
PRINT #1, "000000000001111100010001010010010010010100010001111100000000000"
PRINT #1, "000000000000000000001000010011111110000000010000000000000000000"
PRINT #1, "000000000001000110010001010010010010010100010001000010000000000"
PRINT #1, "000000000010000100010000010010100010010100010011011100000000000"
PRINT #1, "000000000011110000000010000000010000001111110000010000000000000"
PRINT #1, "000000000011100100010100010010100010010100010010011100000000000"
PRINT #1, "000000000001111100010010010010010010010010010001001100000000000"
PRINT #1, "000000000010000000010000000010011110010100000011000000000000000"
PRINT #1, "000000000001101100010010010010010010010010010001101100000000000"
PRINT #1, "000000000001100100010010010010010010010010010001111100000000000"
PRINT #1, "000000000000000000001000100000000000000000000000000000000000000"
PRINT #1, "000000000000000001000100010000000000000000000000000000000000000"
PRINT #1, "000000000000010000000101000001000100010000010000000000000000000"
PRINT #1, "000000000000101000000101000000101000000101000000101000000000000"
PRINT #1, "000000000000000000010000010001000100000101000000010000000000000"
PRINT #1, "000000000001000000010000000010011010001100000000000000000000000"
PRINT #1, "000000000001111100010000010010010010010101010001110010000000000"
PRINT #1, "000000110000011000001110000010010000001110000000011000000000110"
PRINT #1, "000000000011111110010010010010010010010010010001101100000000000"
PRINT #1, "000000000001111100010000010010000010010000010001000100000000000"
PRINT #1, "000000000011111110010000010010000010010000010001111100000000000"
PRINT #1, "000000000011111110010010010010010010010000010010000010000000000"
PRINT #1, "000000000011111110010010000010010000010000000010000000000000000"
PRINT #1, "000000000001111100010000010010000010010010010001011110000000000"
PRINT #1, "000000000011111110000010000000010000000010000011111110000000000"
PRINT #1, "000000000000000000010000010011111110010000010000000000000000000"
PRINT #1, "000000100000000010010000010011111100010000000000000000000000000"
PRINT #1, "000000000011111110000010000000101000001000100010000010000000000"
PRINT #1, "000000000011111110000000010000000010000000010000000000000000000"
PRINT #1, "000000000011111110001000000000100000001000000011111110000000000"
PRINT #1, "000000000011111110000100000000010000000001000011111110000000000"
PRINT #1, "000000000001111100010000010010000010010000010001111100000000000"
PRINT #1, "000000000011111110010010000010010000010010000001100000000000000"
PRINT #1, "000000000001111100010000010010001010010000110001111100000000001"
PRINT #1, "000000000011111110010010000010010000010010000001101110000000000"
PRINT #1, "000000000001100100010010010010010010010010010001001100000000000"
PRINT #1, "000000000010000000010000000011111110010000000010000000000000000"
PRINT #1, "000000000011111100000000010000000010000000010011111100000000000"
PRINT #1, "000000000011110000000001100000000010000001100011110000000000000"
PRINT #1, "000000000011111110000000100000001000000000100011111110000000000"
PRINT #1, "000000000011000110000101000000010000000101000011000110000000000"
PRINT #1, "000000000010000000001000000000111110001000000010000000000000000"
PRINT #1, "000000000010000110010001010010010010010100010011000010000000000"
PRINT #1, "000000000000000000000000000011111110010000010010000010000000000"
PRINT #1, "010000000001000000000100000000010000000001000000000100000000010"
PRINT #1, "000000000010000010010000010011111110000000000000000000000000000"
PRINT #1, "000000000000100000001000000010000000001000000000100000000000000"
PRINT #1, "000000010000000010000000010000000010000000010000000010000000010"
PRINT #1, "000000000000000000000000000000000000010000000001000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000010000001101100010000010010000010000000000"
PRINT #1, "000000000000000000000000000011101110000000000000000000000000000"
PRINT #1, "000000000010000010010000010001101100000010000000000000000000000"
PRINT #1, "000000000001000000010000000001000000010000000000000000000000000"
PRINT #1, "000000110000011010001100010010000010001100010000011010000000110"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000100000001010000010101000001010000010001000000000000"
PRINT #1, "000000000001000100000101000001010100000101000000010000000000000"
PRINT #1, "010101010000000000101010100000000000010101010000000000101010100"
PRINT #1, "010101010101010100010101010101010100010101010101010100000000000"
PRINT #1, "110101010111111111101010101111111111110101010111111111111111111"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
PRINT #1, "000000000000000000000000000000000000000000000000000000000000000"
CLOSE
END SUB

SUB CREATE.LINE (TR%, LC%, BR%, RC%, STYLE%)
SELECT CASE STYLE%
CASE 1
LINE (LC%, TR%)-(LC%, BR% - 1), 15
PSET (LC% + 1, TR%), 15
LINE (LC% + 1, TR% + 1)-(LC% + 1, BR% - 1), 7
LINE (LC% + 2, TR%)-(LC% + 2, BR%), 8
LINE (LC%, BR%)-(LC% + 2, BR%), 8
CASE 2
LINE (LC%, TR%)-(LC%, BR%), 8
LINE (LC% + 1, TR%)-(LC% + 1, BR%), 15
CASE 3
LINE (LC%, TR%)-(RC%, TR%), 8
LINE (LC%, TR% + 1)-(RC%, TR% + 1), 15
CASE 4
LINE (LC%, TR%)-(LC%, BR%), 8
LINE (LC% + 1, TR%)-(LC% + 1, BR%), 15

LINE (LC% + 4, TR%)-(LC% + 4, BR% - 1), 15
PSET (LC% + 5, TR%), 15
LINE (LC% + 5, TR% + 1)-(LC% + 5, BR% - 1), 7
LINE (LC% + 6, TR%)-(LC% + 6, BR%), 8
LINE (LC% + 4, BR%)-(LC% + 6, BR%), 8
END SELECT
END SUB

SUB CREATE.WINDOW (TR%, LC%, BR%, RC%, FC%, BC%, WC%, SHADOW%, STATUSBAR%, TEXT%, TEXT$)
GOSUB GRAB.COLORS
FOR X% = 1 TO 3
LINE (LC% + X%, TR% + X%)-(RC% - X%, BR% - X%), 0, B
NEXT X%
TR% = TR% + 3: LC% = LC% + 3: BR% = BR% - 3: RC% = RC% - 3
LINE (LC%, TR%)-(RC%, BR%), WC%, BF
LINE (LC%, TR% + 16)-(RC%, TR% + 16), WSC%: LINE (LC%, TR% + 16)-(LC%, BR%), WSC%
LINE (LC% + 1, BR%)-(RC%, BR%), WHC%: LINE (RC%, TR% + 17)-(RC%, BR%), WHC%
LINE (LC%, TR%)-(RC%, TR% + 15), BC%, BF
LINE (LC%, TR%)-(RC%, TR%), HBC%: LINE (LC%, TR%)-(LC%, TR% + 15), HBC%
LINE (LC% + 1, TR% + 15)-(RC%, TR% + 15), SBC%: LINE (RC%, TR% + 1)-(RC%, TR% + 15), SBC%
SELECT CASE TEXT%
CASE 1
TEXT$ = UCASE$(TEXT$)
CALL PRINT.IT(F.FILE$, TR% + 3, LC% + 10, 1, 1, 0, FC%, -1, TEXT$)
END SELECT
SELECT CASE STATUSBAR%
CASE 1
LINE (LC% + 1, BR% - 16)-(RC% - 1, BR% - 1), 7, BF
LINE (LC% + 1, BR% - 16)-(RC% - 1, BR% - 16), 8: LINE (LC% + 1, BR% - 16)-(LC% + 1, BR%), 8

LINE (LC% + 2, BR% - 15)-(RC% - 2, BR% - 15), 8: LINE (LC% + 2, BR% - 16)-(LC% + 2, BR% - 1), 8
LINE (LC% + 3, BR%)-(RC% - 1, BR%), 15: LINE (RC% - 1, BR% - 14)-(RC% - 1, BR%), 15
END SELECT
EXIT SUB
GRAB.COLORS:
SELECT CASE BC%
CASE 0: HBC% = 7: SBC% = 8
CASE 1 TO 7: HBC% = BC% + 8: SBC% = 8
CASE 8: HBC% = 7: SBC% = 0
CASE 9 TO 14: HBC% = 15: SBC% = BC% - 8
CASE 15: HBC% = 7: SBC% = 8
END SELECT
SELECT CASE WC%
CASE 0: WHC% = 7: WSC% = 8
CASE 1 TO 7: WHC% = WC% + 8: WSC% = 8
CASE 8: WHC% = 7: WSC% = 0
CASE 9 TO 14: WHC% = 15: WSC% = WC% - 8
CASE 15: WHC% = 7: WSC% = 8
END SELECT
RETURN
END SUB

SUB CUR.TIME (TR%, LC%, FC%, BC%, FOR.MAT%)
'CALL PRINT.IT (FONT.F.FILE$, TR%, LC%, 1, 1, 0, FC%, BC%, TEXT$)
SELECT CASE FOR.MAT%
CASE 0
HOUR% = VAL(LEFT$(TIME$, 2))
SELECT CASE HOUR%
CASE IS > 12
HOUR% = HOUR% - 12
HOUR$ = STR$(HOUR%)
HOUR$ = RIGHT$(HOUR$, LEN(HOUR$) - 1)
HOUR$ = RIGHT$(" " + HOUR$, 2)
CALL PRINT.IT(FONT.F.FILE$, TR%, LC%, 1, 1, 0, FC%, BC%, HOUR$ + RIGHT$(TIME$, 6) + " P.M.")
'PRINT HOUR$ + RIGHT$(TIME$, 6) + " P.M.";
CASE IS = 12
CALL PRINT.IT(FONT.F.FILE$, TR%, LC%, 1, 1, 0, FC%, BC%, TIME$ + " P.M.")
'PRINT TIME$ + " P.M.";
CASE IS = 0
HOUR% = 12
CALL PRINT.IT(FONT.F.FILE$, TR%, LC%, 1, 1, 0, FC%, BC%, "12" + RIGHT$(TIME$, 6) + " A.M.")
'PRINT "12" + RIGHT$(TIME$, 6) + " A.M.";
CASE IS < 12
HOUR$ = STR$(HOUR%)
HOUR$ = RIGHT$(HOUR$, LEN(HOUR$) - 1)
HOUR$ = RIGHT$(" " + HOUR$, 2)
CALL PRINT.IT(FONT.F.FILE$, TR%, LC%, 1, 1, 0, FC%, BC%, HOUR$ + RIGHT$(TIME$, 6) + " A.M.")
'PRINT HOUR$ + RIGHT$(TIME$, 6) + " A.M.";
END SELECT
CASE 1
CALL PRINT.IT(FONT.F.FILE$, TR%, LC%, 1, 1, 0, FC%, BC%, TIME$)
'PRINT TIME$;
END SELECT
END SUB

SUB DRAW.SCREEN (STYLE%)
SELECT CASE STYLE%
CASE 1: GOSUB PROGRAM.WINDOW
CASE 2: GOSUB DRAW.GRID
CASE 3: GOSUB TOOL.WINDOW
CASE 4: GOSUB COLOR.WINDOW
CASE 5: GOSUB STATUS.WINDOW
END SELECT
EXIT SUB
PROGRAM.WINDOW:
PROGRAM.TEXT$ = "IKONDRAW - VER. 1.0 [C]" + MID$(DATE$, 7, 4) + " COPYRIGHT DARKAGES SOFTWARE"
PTR% = 1: PLC% = 1: PBR% = 479: PRC% = 639 'PTR%, PLC%, PBR%, PRC%
LINE (1, 1)-(639, 479), 3, BF
CALL CREATE.WINDOW(PTR%, PLC%, PBR%, PRC%, 15, 1, 7, 0, 1, 1, PROGRAM.TEXT$)
CALL CREATE.LINE(463, 402, 474, 0, 4): CALL CREATE.LINE(463, 502, 474, 0, 2)
CALL PRINT.IT(F.FILE$, 464, 413, 1, 1, 0, 0, 7, D.FILE$)
RETURN
DRAW.GRID:
CALL CREATE.BOX(27, 11, 349, 333, 1)
CALL CHECK.GRID(GRID.NUM%)
FOR Y% = 28 TO 340 STEP 8
FOR X% = 12 TO 329 STEP 8
LINE (X%, Y%)-(X% + 8, Y% + 8), 4, B
LINE (X% + 2, Y% + 2)-(X% + 6, Y% + 6), 4
LINE (X% + 2, Y% + 6)-(X% + 6, Y% + 2), 4
NEXT X%
NEXT Y%
FOR Y% = GTR% TO GBR% STEP 8
FOR X% = GLC% TO GRC% STEP 8
LINE (X%, Y%)-(X% + 8, Y% + 8), 7, B
LINE (X% + 2, Y% + 2)-(X% + 6, Y% + 6), 7
LINE (X% + 2, Y% + 6)-(X% + 6, Y% + 2), 7
NEXT X%
NEXT Y%
CALL PRINT.IT(F.FILE$, 464, 509, 1, 1, 0, 0, 7, "GRID:" + G.TEXT$)
RETURN
TOOL.WINDOW:
TOOLS.TEXT$ = "DRAW MENU"
TTR% = 20: TLC% = 546: TBR% = 110: TRC% = TLC% + LEN(TOOLS.TEXT$) * 9 + 7
CALL CREATE.WINDOW(TTR%, TLC%, TBR%, TRC%, 15, 3, 7, 0, 0, 1, TOOLS.TEXT$)
BUTTON.TEXT$(1) = " NEW ": BUTTON.TEXT$(2) = " OPEN ": BUTTON.TEXT$(3) = " SAVE ": BUTTON.TEXT$(4) = " EXIT "
CALL TEXT.BUTTON(40, 550, 15, 7, BUTTON.TEXT$(1), 0): CALL TEXT.BUTTON(57, 550, 15, 7, BUTTON.TEXT$(2), 0)
CALL TEXT.BUTTON(74, 550, 15, 7, BUTTON.TEXT$(3), 0): CALL TEXT.BUTTON(91, 550, 15, 7, BUTTON.TEXT$(4), 0)
RETURN
COLOR.WINDOW:
COLORS.TEXT$ = " COLORS "
CTR% = 111: CLC% = 546: CBR% = 318: CRC% = CLC% + LEN(COLORS.TEXT$) * 9 + 7
CALL CREATE.WINDOW(CTR%, CLC%, CBR%, CRC%, 15, 3, 7, 0, 1, 1, COLORS.TEXT$)
CALL CREATE.LINE(302, 590, 313, 0, 2): CALL CREATE.COLORBOX
LINE (556, 303)-(586, 312), LFT.COLOR%, BF: LINE (596, 303)-(625, 312), RGT.COLOR%, BF
RETURN
STATUS.WINDOW:
DRAWWN.TEXT$ = " STATUS "
DTR% = 321: DLC% = 546: DBR% = 421: DRC% = DLC% + LEN(DRAWWN.TEXT$) * 9 + 7
CALL CREATE.WINDOW(DTR%, DLC%, DBR%, DRC%, 15, 3, 15, 0, 1, 1, DRAWWN.TEXT$)
CALL CREATE.LINE(405, 590, 416, 0, 2)
LINE (553, 345)-(553 + G.M% - 1, 345 + G.M% - 1), 7, BF
FOR Y% = 553 TO (553 + G.M% - 1) STEP 2
FOR X% = 345 TO (345 + G.M% - 1) STEP 2
PSET (Y%, X%), 0
NEXT X%
NEXT Y%
RETURN
END SUB

SUB END.HELP
LOCATE 2, 14: PRINT "Alot of thanks go out to a few";
LOCATE 3, 12: PRINT "people. The first person to thank";
LOCATE 4, 12: PRINT "would be Chris Rennie for writing";
LOCATE 5, 12: PRINT "such a great program as TILEDX.";
LOCATE 6, 12: PRINT "Looking at it taught me alot of stuff";
LOCATE 7, 12: PRINT "for this program. Still a few bugs though...";
LOCATE 8, 14: PRINT "Next would be Chris Wagner for the mouse routines.";
LOCATE 9, 12: PRINT "I don't remember where I got the Cur.Time routine.";
LOCATE 10, 12: PRINT "I am working on a better version of IkonDraw and";
LOCATE 11, 12: PRINT "hope to have it finished soon. Any ideas or comments?;"
LOCATE 12, 12: PRINT "Please write to: mrx1994@yahoo.com";
END SUB

SUB INI.STARTUP
LFT.COLOR% = 0: RGT.COLOR% = 15: GRID.NUM% = 1
D.FILE$ = "UNTITLED" + ".ICO": G.M% = 12
CALL COLORS(1, 0, 0, 100): CALL COLORS(9, 0, 0, 254)
END SUB

SUB LOAD.ICON (TR%, LC%, ICON$)
ICON$ = ICON$ + ".ICO"

DEF SEG = (VARSEG(STAMP%(1)))
BLOAD ICON$, VARPTR(STAMP%(1))
DEF SEG ' Restore default BASIC segment.
PUT (LC%, TR%), STAMP%, PSET ' Put the drawing on the screen.
END SUB

SUB MAKE.A.NEW.ICON
NEW.TEXT$ = "NEW ICON"
TTR% = 20: TLC% = 388: TBR% = 127: TRC% = TLC% + LEN(NEW.TEXT$) * 9 + 7
SAVE.TTR% = TTR% - 2: SAVE.TLC% = TLC% - 2

GET (TLC% - 2, TTR% - 2)-(TRC% + 2, TBR% + 2), WIN%

CALL CREATE.WINDOW(TTR%, TLC%, TBR%, TRC%, 15, 3, 15, 0, 0, 1, NEW.TEXT$)

BUTTON.TEXT$(5) = " 12X12 ": BUTTON.TEXT$(6) = " 16X16 "
BUTTON.TEXT$(7) = " 24X24 ": BUTTON.TEXT$(8) = " 32X32 "
BUTTON.TEXT$(9) = " 40X40 ":

CALL TEXT.BUTTON(40, 392, 15, 7, BUTTON.TEXT$(5), 0)
CALL TEXT.BUTTON(57, 392, 15, 7, BUTTON.TEXT$(6), 0)
CALL TEXT.BUTTON(74, 392, 15, 7, BUTTON.TEXT$(7), 0)
CALL TEXT.BUTTON(91, 392, 15, 7, BUTTON.TEXT$(8), 0)
CALL TEXT.BUTTON(108, 392, 15, 7, BUTTON.TEXT$(9), 0)
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-DRAW: L. BUTTON
CALL MOUSESETHOR(393, 463)
CALL MOUSESETVERT(41, 123)
CALL MOUSELOCATE(47, 425)
CALL MOUSEON
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-DRAW: L. BUTTON
DO
CALL MOUSESTATUS(VERT%, HORI%, MBUTTONS$)
A$ = UCASE$(INKEY$)
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-CHOOSE: 12 X 12
IF MBUTTONS$ = "L " THEN
IF VERT% >= 42 AND VERT% <= 55 THEN
IF HORI% >= 393 AND HORI% <= 462 THEN
CALL MOUSEOFF
CALL TEXT.BUTTON(40, 392, 15, 7, BUTTON.TEXT$(5), 1)
CALL TEXT.BUTTON(40, 392, 15, 7, BUTTON.TEXT$(5), 0)
GRID.NUM% = 1: CALL DRAW.SCREEN(2): CALL DRAW.SCREEN(5)

EXIT DO
END IF
END IF
ELSE IF MBUTTONS$ = " " THEN CALL UPDATE.COORDINATES
END IF
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-CHOOSE: 16 X 16
IF MBUTTONS$ = "L " THEN
IF VERT% >= 58 AND VERT% <= 72 THEN
IF HORI% >= 393 AND HORI% <= 462 THEN
CALL MOUSEOFF
CALL TEXT.BUTTON(57, 392, 15, 7, BUTTON.TEXT$(6), 1)
CALL TEXT.BUTTON(57, 392, 15, 7, BUTTON.TEXT$(6), 0)
GRID.NUM% = 2: CALL DRAW.SCREEN(2): CALL DRAW.SCREEN(5)

EXIT DO
END IF
END IF
ELSE IF MBUTTONS$ = " " THEN CALL UPDATE.COORDINATES
END IF
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-CHOOSE: 24 X 24
IF MBUTTONS$ = "L " THEN
IF VERT% >= 75 AND VERT% <= 89 THEN
IF HORI% >= 393 AND HORI% <= 462 THEN
CALL MOUSEOFF
CALL TEXT.BUTTON(74, 392, 15, 7, BUTTON.TEXT$(7), 1)
CALL TEXT.BUTTON(74, 392, 15, 7, BUTTON.TEXT$(7), 0)
GRID.NUM% = 3: CALL DRAW.SCREEN(2): CALL DRAW.SCREEN(5)

EXIT DO
END IF
END IF
ELSE IF MBUTTONS$ = " " THEN CALL UPDATE.COORDINATES
END IF
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-CHOOSE: 32 X 32
IF MBUTTONS$ = "L " THEN
IF VERT% >= 92 AND VERT% <= 106 THEN
IF HORI% >= 393 AND HORI% <= 462 THEN
CALL MOUSEOFF
CALL TEXT.BUTTON(91, 392, 15, 7, BUTTON.TEXT$(8), 1)
CALL TEXT.BUTTON(91, 392, 15, 7, BUTTON.TEXT$(8), 0)
GRID.NUM% = 4: CALL DRAW.SCREEN(2): CALL DRAW.SCREEN(5)

EXIT DO
END IF
END IF
ELSE IF MBUTTONS$ = " " THEN CALL UPDATE.COORDINATES
END IF
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-CHOOSE: 40 X 40
IF MBUTTONS$ = "L " THEN
IF VERT% >= 109 AND VERT% <= 123 THEN
IF HORI% >= 393 AND HORI% <= 462 THEN
CALL MOUSEOFF
CALL TEXT.BUTTON(108, 392, 15, 7, BUTTON.TEXT$(9), 1)
CALL TEXT.BUTTON(108, 392, 15, 7, BUTTON.TEXT$(9), 0)
GRID.NUM% = 5: CALL DRAW.SCREEN(2): CALL DRAW.SCREEN(5)
EXIT DO
END IF
END IF
ELSE IF MBUTTONS$ = " " THEN CALL UPDATE.COORDINATES
END IF
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-DRAW: R. BUTTON
LOOP
PUT (SAVE.TLC%, SAVE.TTR%), WIN%, PSET 'SAVE.TTR% = TTR% - 2: SAVE.TLC% = TLC% - 2
END SUB

SUB MENU
HELP.IT$(1) = "CREATE NEW ICON"
HELP.IT$(2) = "OPEN EXISTING ICON FILE [DISABLED]"
HELP.IT$(3) = "SAVE CURRENT ICON FILE"
HELP.IT$(4) = "EXIT THE PROGRAM"
CALL MOUSESETHOR(1, 634)
CALL MOUSESETVERT(1, 474)
CALL MOUSELOCATE(200, 200)
CALL MOUSEON
DO
CALL MOUSESTATUS(VERT%, HORI%, MBUTTONS$)
CALL CUR.TIME(447, 509, 1, 7, 0)
A$ = UCASE$(INKEY$)
T.MULT% = INT((VERT% - 29) \ 8): L.MULT% = INT((HORI% - 13) \ 8)
A% = L.MULT% + (T.MULT% * G.M%) '40
D.VERT% = T.MULT% + 1: D.HORI% = L.MULT% + 1
L.TR% = ((T.MULT% + 1) * 8) + 20: L.LC% = ((L.MULT% + 1) * 8) + 4 'L.TR% = ((T.MULT% + 1) * 8) + 21: L.LC% = ((L.MULT% + 1) * 8) + 20
P.TR% = (T.MULT% + 1) + 344: P.LC% = (L.MULT% + 1) + 552
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-DRAW: L. BUTTON
IF VERT% >= GTR% AND VERT% <= GBR% + 8 THEN
IF HORI% >= GLC% AND HORI% <= GRC% + 8 THEN
IF MBUTTONS$ = "L " THEN
D.VERT% = T.MULT% + 1: D.HORI% = L.MULT% + 1
CALL MOUSEOFF
LINE (L.LC% + 1, L.TR% + 1)-(L.LC% + 7, L.TR% + 7), LFT.COLOR%, BF
PSET (P.LC%, P.TR%), LFT.COLOR%
CALL UPDATE.COORDINATES
CALL MOUSEON
ELSE IF MBUTTONS$ = " " THEN CALL UPDATE.COORDINATES
END IF
END IF
END IF
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-DRAW: R. BUTTON
IF VERT% >= GTR% AND VERT% <= GBR% + 8 THEN
IF HORI% >= GLC% AND HORI% <= GRC% + 8 THEN
IF MBUTTONS$ = " R" THEN
CALL MOUSEOFF
LINE (L.LC% + 1, L.TR% + 1)-(L.LC% + 7, L.TR% + 7), RGT.COLOR%, BF
PSET (P.LC%, P.TR%), RGT.COLOR%
CALL UPDATE.COORDINATES
CALL MOUSEON
ELSE IF MBUTTONS$ = " " THEN CALL UPDATE.COORDINATES
END IF
END IF
END IF
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-MENU: SELECT NEW
IF VERT% >= 41 AND VERT% <= 55 OR A$ = "N" THEN
IF HORI% >= 552 AND HORI% <= 631 OR A$ = "N" THEN
IF MBUTTONS$ = "L " OR A$ = "N" THEN
T% = VERT%: L% = HORI%
CALL MOUSEOFF
CALL TEXT.BUTTON(40, 550, 15, 7, BUTTON.TEXT$(1), 1)
CALL TEXT.BUTTON(40, 550, 15, 7, BUTTON.TEXT$(1), 0)
'CODE FOR CREATING A NEW ICON
CALL MAKE.A.NEW.ICON
CALL MOUSESETHOR(1, 634)
CALL MOUSESETVERT(1, 474)
CALL MOUSELOCATE(T%, L%)
CALL MOUSEON
ELSE IF MBUTTONS$ = " " THEN CALL ACTIVE.HELP(VERT% - 15, HORI% - LEN(HELP.IT$(1)) * 7 - 9, 1, HELP.IT$(1))
END IF
END IF
END IF
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-MENU: SELECT OPEN
IF VERT% >= 58 AND VERT% <= 72 OR A$ = "O" THEN
IF HORI% >= 552 AND HORI% <= 631 OR A$ = "O" THEN
IF MBUTTONS$ = "L " OR A$ = "O" THEN
T% = VERT%: L% = HORI%
CALL MOUSEOFF
CALL TEXT.BUTTON(57, 550, 15, 7, BUTTON.TEXT$(2), 1)
CALL TEXT.BUTTON(57, 550, 15, 7, BUTTON.TEXT$(2), 0)
'CODE FOR OPENING AN ICON
CALL MOUSESETHOR(1, 634) 'T% = VERT%: L% = HORI%
CALL MOUSESETVERT(1, 474)
CALL MOUSELOCATE(T%, L%)
CALL MOUSEON
ELSE IF MBUTTONS$ = " " THEN CALL ACTIVE.HELP(VERT% - 15, HORI% - LEN(HELP.IT$(2)) * 7 - 9, 1, HELP.IT$(2))
END IF
END IF
END IF
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-MENU: SELECT SAVE
IF VERT% >= 75 AND VERT% <= 89 OR A$ = "S" THEN
IF HORI% >= 552 AND HORI% <= 631 OR A$ = "S" THEN
IF MBUTTONS$ = "L " OR A$ = "S" THEN
T% = VERT%: L% = HORI%
CALL MOUSEOFF
CALL TEXT.BUTTON(74, 550, 15, 7, BUTTON.TEXT$(3), 1)
CALL TEXT.BUTTON(74, 550, 15, 7, BUTTON.TEXT$(3), 0)
'CODE FOR SAVING CURRENT ICON
CALL SAVE.ICON
CALL MOUSESETHOR(1, 634) 'T% = VERT%: L% = HORI%
CALL MOUSESETVERT(1, 474)
CALL MOUSELOCATE(T%, L%)
CALL MOUSEON
ELSE IF MBUTTONS$ = " " THEN CALL ACTIVE.HELP(VERT% - 15, HORI% - LEN(HELP.IT$(3)) * 7 - 9, 1, HELP.IT$(3))
END IF
END IF
END IF
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-MENU: SELECT EXIT
IF VERT% >= 92 AND VERT% <= 106 OR A$ = "Q" THEN
IF HORI% >= 552 AND HORI% <= 631 OR A$ = "Q" THEN
IF MBUTTONS$ = "L " OR A$ = "Q" THEN
CALL MOUSEOFF
CALL TEXT.BUTTON(91, 550, 15, 7, BUTTON.TEXT$(4), 1)
CALL TEXT.BUTTON(91, 550, 15, 7, BUTTON.TEXT$(4), 0)
CLS
EXIT DO
'SYSTEM
ELSE IF MBUTTONS$ = " " THEN CALL ACTIVE.HELP(VERT% - 15, HORI% - LEN(HELP.IT$(4)) * 7 - 9, 1, HELP.IT$(4))
END IF
END IF
END IF
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-MENU: SELECT L COLOR
IF VERT% >= 132 AND VERT% <= 296 THEN
IF HORI% >= 551 AND HORI% <= 630 THEN
IF MBUTTONS$ = "L " THEN
CALL MOUSEOFF
GOSUB SELECT.LEFT.COLOR
IF LFT.COLOR% = 7 THEN
LINE (556, 303)-(586, 312), LFT.COLOR%, BF: LINE (556, 303)-(586, 312), 0, B
ELSE
LINE (556, 303)-(586, 312), LFT.COLOR%, BF
END IF
CALL MOUSEON
ELSE IF MBUTTONS$ = " " THEN GOSUB COLOR.HELP: CALL ACTIVE.HELP(VERT% - 15, HORI% - LEN(H.TEXT$) * 7 - 9, 1, H.TEXT$)
END IF
END IF
END IF
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-MENU: SELECT R COLOR
IF VERT% >= 132 AND VERT% <= 296 THEN
IF HORI% >= 551 AND HORI% <= 630 THEN
IF MBUTTONS$ = " R" THEN
CALL MOUSEOFF
GOSUB SELECT.RIGHT.COLOR
IF RGT.COLOR% = 7 THEN
LINE (596, 303)-(625, 312), RGT.COLOR%, BF: LINE (596, 303)-(625, 312), 0, B
ELSE
LINE (596, 303)-(625, 312), RGT.COLOR%, BF
END IF
CALL MOUSEON
ELSE IF MBUTTONS$ = " " THEN GOSUB COLOR.HELP: CALL ACTIVE.HELP(VERT% - 15, HORI% - LEN(H.TEXT$) * 7 - 9, 1, H.TEXT$)
END IF
END IF
END IF
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-EXIT: LOOP
LOOP
EXIT SUB
SELECT.LEFT.COLOR:
SELECT CASE HORI%
CASE 551 TO 588
SELECT CASE VERT%
CASE 132 TO 149: LFT.COLOR% = 0: H.TEXT$ = "CHANGE COLOR TO BLACK"
CASE 153 TO 170: LFT.COLOR% = 1: H.TEXT$ = "CHANGE COLOR TO BLUE"
CASE 174 TO 191: LFT.COLOR% = 2: H.TEXT$ = "CHANGE COLOR TO GREEN"
CASE 195 TO 212: LFT.COLOR% = 3: H.TEXT$ = "CHANGE COLOR TO CYAN"
CASE 216 TO 233: LFT.COLOR% = 4: H.TEXT$ = "CHANGE COLOR TO RED"
CASE 237 TO 254: LFT.COLOR% = 5: H.TEXT$ = "CHANGE COLOR TO MAGENTA"
CASE 258 TO 275: LFT.COLOR% = 6: H.TEXT$ = "CHANGE COLOR TO BROWN"
CASE 279 TO 296: LFT.COLOR% = 7: H.TEXT$ = "CHANGE COLOR TO LIGHT GREY"
END SELECT
CASE 592 TO 630
SELECT CASE VERT%
CASE 132 TO 149: LFT.COLOR% = 8: H.TEXT$ = "CHANGE COLOR TO DARK GREY"
CASE 153 TO 170: LFT.COLOR% = 9: H.TEXT$ = "CHANGE COLOR TO BRIGHT BLUE"
CASE 174 TO 191: LFT.COLOR% = 10: H.TEXT$ = "CHANGE COLOR TO BRIGHT GREEN"
CASE 195 TO 212: LFT.COLOR% = 11: H.TEXT$ = "CHANGE COLOR TO BRIGHT CYAN"
CASE 216 TO 233: LFT.COLOR% = 12: H.TEXT$ = "CHANGE COLOR TO BRIGHT RED"
CASE 237 TO 254: LFT.COLOR% = 13: H.TEXT$ = "CHANGE COLOR TO PINK"
CASE 258 TO 275: LFT.COLOR% = 14: H.TEXT$ = "CHANGE COLOR TO YELLOW"
CASE 279 TO 296: LFT.COLOR% = 15: H.TEXT$ = "CHANGE COLOR TO BRIGHT WHITE"
END SELECT
END SELECT
HELP.TEXT$ = H.TEXT$
RETURN
SELECT.RIGHT.COLOR:
SELECT CASE HORI%
CASE 551 TO 588
SELECT CASE VERT%
CASE 132 TO 149: RGT.COLOR% = 0: H.TEXT$ = "CHANGE COLOR TO BLACK"
CASE 153 TO 170: RGT.COLOR% = 1: H.TEXT$ = "CHANGE COLOR TO BLUE"
CASE 174 TO 191: RGT.COLOR% = 2: H.TEXT$ = "CHANGE COLOR TO GREEN"
CASE 195 TO 212: RGT.COLOR% = 3: H.TEXT$ = "CHANGE COLOR TO CYAN"
CASE 216 TO 233: RGT.COLOR% = 4: H.TEXT$ = "CHANGE COLOR TO RED"
CASE 237 TO 254: RGT.COLOR% = 5: H.TEXT$ = "CHANGE COLOR TO MAGENTA"
CASE 258 TO 275: RGT.COLOR% = 6: H.TEXT$ = "CHANGE COLOR TO BROWN"
CASE 279 TO 296: RGT.COLOR% = 7: H.TEXT$ = "CHANGE COLOR TO LIGHT GREY"
END SELECT
CASE 592 TO 630
SELECT CASE VERT%
CASE 132 TO 149: RGT.COLOR% = 8: H.TEXT$ = "CHANGE COLOR TO DARK GREY"
CASE 153 TO 170: RGT.COLOR% = 9: H.TEXT$ = "CHANGE COLOR TO BRIGHT BLUE"
CASE 174 TO 191: RGT.COLOR% = 10: H.TEXT$ = "CHANGE COLOR TO BRIGHT GREEN"
CASE 195 TO 212: RGT.COLOR% = 11: H.TEXT$ = "CHANGE COLOR TO BRIGHT CYAN"
CASE 216 TO 233: RGT.COLOR% = 12: H.TEXT$ = "CHANGE COLOR TO BRIGHT RED"
CASE 237 TO 254: RGT.COLOR% = 13: H.TEXT$ = "CHANGE COLOR TO PINK"
CASE 258 TO 275: RGT.COLOR% = 14: H.TEXT$ = "CHANGE COLOR TO YELLOW"
CASE 279 TO 296: RGT.COLOR% = 15: H.TEXT$ = "CHANGE COLOR TO BRIGHT WHITE"
END SELECT
END SELECT
HELP.TEXT$ = H.TEXT$
RETURN
COLOR.HELP:
SELECT CASE HORI%
CASE 551 TO 588
SELECT CASE VERT%
CASE 132 TO 149: H.TEXT$ = "CHANGE COLOR TO BLACK"
CASE 153 TO 170: H.TEXT$ = "CHANGE COLOR TO BLUE"
CASE 174 TO 191: H.TEXT$ = "CHANGE COLOR TO GREEN"
CASE 195 TO 212: H.TEXT$ = "CHANGE COLOR TO CYAN"
CASE 216 TO 233: H.TEXT$ = "CHANGE COLOR TO RED"
CASE 237 TO 254: H.TEXT$ = "CHANGE COLOR TO MAGENTA"
CASE 258 TO 275: H.TEXT$ = "CHANGE COLOR TO BROWN"
CASE 279 TO 296: H.TEXT$ = "CHANGE COLOR TO LIGHT GREY"
END SELECT
CASE 592 TO 630
SELECT CASE VERT%
CASE 132 TO 149: H.TEXT$ = "CHANGE COLOR TO DARK GREY"
CASE 153 TO 170: H.TEXT$ = "CHANGE COLOR TO BRIGHT BLUE"
CASE 174 TO 191: H.TEXT$ = "CHANGE COLOR TO BRIGHT GREEN"
CASE 195 TO 212: H.TEXT$ = "CHANGE COLOR TO BRIGHT CYAN"
CASE 216 TO 233: H.TEXT$ = "CHANGE COLOR TO BRIGHT RED"
CASE 237 TO 254: H.TEXT$ = "CHANGE COLOR TO PINK"
CASE 258 TO 275: H.TEXT$ = "CHANGE COLOR TO YELLOW"
CASE 279 TO 296: H.TEXT$ = "CHANGE COLOR TO BRIGHT WHITE"
END SELECT
END SELECT
RETURN
END SUB

DEFSNG A-Z
FUNCTION MOUSEINSTALLED%
DEF SEG = 0
MOUSESEG& = 256& * PEEK(207) + PEEK(206)
MOUSEOFS& = 256& * PEEK(205) + PEEK(204) + 2
DEF SEG = MOUSESEG&
IF (MOUSESEG& = 0 AND MOUSEOFS& = 0) OR PEEK(MOUSEOFS&) = 207 THEN
MOUSEINSTALLED% = 0
EXIT FUNCTION
ELSE
MOUSEINSTALLED% = -1
END IF
DEF SEG
REGX.ax = 0
CALL INTERRUPTX(&H33, REGX, REGX)
IF REGX.ax = -1 THEN
MOUSEINSTALLED% = -1
ELSE
MOUSEINSTALLED% = 0
END IF
END FUNCTION

SUB MOUSELOCATE (XPOS%, YPOS%)
REGX.dx = (XPOS%) '* 8) - 1
REGX.cx = (YPOS%) '* 8) - 1
REGX.ax = 4
CALL INTERRUPTX(&H33, REGX, REGX)
END SUB

SUB MOUSEOFF
REGX.ax = 2
CALL INTERRUPTX(&H33, REGX, REGX)
END SUB

SUB MOUSEON
REGX.ax = 1
CALL INTERRUPTX(&H33, REGX, REGX)
END SUB

SUB MOUSESETHOR (Min%, MAX%)
REGX.cx = (Min%) '* 8) - 1
REGX.dx = (MAX%) '* 8) - 1
REGX.ax = 7
CALL INTERRUPTX(&H33, REGX, REGX)
END SUB

SUB MOUSESETVERT (Min%, MAX%)
REGX.cx = (Min%) '* 8) - 1
REGX.dx = (MAX%) '* 8) - 1
REGX.ax = 8
CALL INTERRUPTX(&H33, REGX, REGX)
END SUB

SUB MOUSESTATUS (VERT%, HORI%, MBUTTONS$)
REGX.ax = 3
CALL INTERRUPTX(&H33, REGX, REGX)
VERT% = (REGX.dx) '\ 8) + 1
HORI% = (REGX.cx) '\ 8) + 1
SELECT CASE REGX.bx
CASE 0
MBUTTONS$ = " "
CASE 1
MBUTTONS$ = "L "
CASE 2
MBUTTONS$ = " R"
CASE 3
MBUTTONS$ = "L R"
CASE 4
MBUTTONS$ = " C "
END SELECT
END SUB

DEFINT A-Z
SUB PAUSE
T! = TIMER: WHILE T! = TIMER: WEND
END SUB

SUB PRINT.HELP (TR%, LC%, FC%, BC%, STYLE%, TEXT$)
V.RANGE% = VERT%: H.RANGE% = HORI%: DIM HELP.ACTIVE(16400): MAX% = LEN(TEXT$) * 7 + 7
FONTSIZE% = 1
CALL MOUSEOFF
TEXT$ = UCASE$(TEXT$)
'############################################################################
SELECT CASE STYLE%
CASE 1 'LN% = LC% + LEN(TEXT$) * 7 + 7
CALL MOUSEON
CALL PRINT.IT(F.FILE$, TR%, LC%, 1, 1, 0, FC%, 7, TEXT$)
DO
CALL MOUSESTATUS(VERT%, HORI%, MBUTTONS$)
CALL CUR.TIME(447, 509, 1, 7, 0)
LOOP WHILE VERT% = V.RANGE% AND HORI% = H.RANGE% AND CLICK% = 0
CALL MOUSEOFF
CASE ELSE
MAX% = LEN(TEXT$) * 7
GET (LC% - 5, TR% - 5)-(LC% + MAX% + 5 * FONTSIZE%, TR% + 13 * FONTSIZE%), HELP.ACTIVE
CALL MOUSEON
LINE (LC% - 4, TR% - 4)-(LC% + MAX% + 4 * FONTSIZE%, TR% + 10 * FONTSIZE%), 15, BF
FOR Y% = (LC% - 3) TO (LC% + MAX% + 3 * FONTSIZE%) STEP 2
FOR X% = (TR% - 3) TO (TR% + 10 * FONTSIZE%) STEP 2
PSET (Y%, X%), 14
NEXT X%
NEXT Y%
LINE (LC% - 4, TR% - 4)-(LC% + MAX% + 4 * FONTSIZE%, TR% + 10 * FONTSIZE%), 0, B
OLDLC% = LC%: OLDTR% = TR%

CALL PRINT.IT(F.FILE$, TR%, LC%, 1, 1, 0, FC%, -1, TEXT$)
FINISHED = FALSE
DO
CALL MOUSESTATUS(VERT%, HORI%, MBUTTONS$)
CALL CUR.TIME(447, 509, 1, 7, 0)
LOOP WHILE VERT% = V.RANGE% AND HORI% = H.RANGE% AND CLICK% = 0
CALL MOUSEOFF
PUT (OLDLC% - 5, OLDTR% - 5), HELP.ACTIVE, PSET
END SELECT
'############################################################################
CALL MOUSEON
END SUB

SUB PRINT.IT (FONT.F.FILE$, TR%, LC%, HT%, WD%, BLD AS SINGLE, FC%, TSP%, TEXT$)
' DIM SHARED FONT.STR$(255)
' DIM SHARED WORD.ARRAY$(255)
' Parameters:
' FONT.F.FILE$ - Name of your font file.
' TR% - Y coordinate of first letter in text.
' LC% - X coordinate of first letter in text.
' HT% - HT% of each character in pixels
' WD% - Width of each character in pixels
' BLD - Amount of BLDness. 0-2.5 best. Transparent background required.
' FC% - Color of the text. If -1, transparent text will be used.
' TSP%% - Color of background. If -1, a transparent backgound will be used.
' TEXT$ - Text to be printed on the screen.
CLOSE
IF BLD > 0 THEN TSP% = -1
IF WD% > 5 THEN PRINT "Width too big!": EXIT SUB
IF HT% > 10 THEN PRINT "HT% too big!": EXIT SUB
OPEN F.FILE$ FOR INPUT AS #1
INPUT #1, HI$
INPUT #1, WID$
FOR CTR = 0 TO 255
INPUT #1, FONT.STR$(CTR)
NEXT CTR
FOR CHARCOUNT = 1 TO LEN(TEXT$)
CHAR = ASC(MID$(TEXT$, CHARCOUNT, 1))
COUNT = 0
FOR J = 1 TO VAL(WID$) * WD% STEP WD%
FOR K = 1 TO VAL(HI$) * HT% STEP HT%
COUNT = COUNT + 1
SELECT CASE WD%
CASE 1
FX = ((J + (CHARCOUNT - 1) * VAL(WID$)) - 1)
CASE ELSE
FX = ((J + (CHARCOUNT - 1) * VAL(WID$)) - 1) + ((CHARCOUNT - 1) * WD% * (WD% + 3))
END SELECT
FY = K - 1
IF MID$(FONT.STR$(CHAR), COUNT, 1) = "1" THEN
IF FC% <> -1 THEN LINE (FX + LC%, FY + TR%)-(FX + LC% + (WD% - 1) + BLD, FY + TR% + (HT% - 1) + BLD), FC%, BF
ELSE
IF TSP% <> -1 THEN LINE (FX + LC%, FY + TR%)-(FX + LC% + (WD% - 1) + BLD, FY + TR% + (HT% - 1) + BLD), TSP%, BF
END IF
NEXT K
NEXT J
NEXT CHARCOUNT
CLOSE
END SUB

SUB SAVE.ICON
SAVE.TEXT$ = "SAVE ICON"
TTR% = 20: TLC% = 388: TBR% = 62: TRC% = TLC% + LEN(SAVE.TEXT$) * 9 + 7
SAVE.TTR% = TTR% - 2: SAVE.TLC% = TLC% - 2: GET.TTR% = 553: GET.TLC% = 345
GET (TLC% - 2, TTR% - 2)-(TRC% + 2, TBR% + 2), WIN%

CALL CREATE.WINDOW(TTR%, TLC%, TBR%, TRC%, 15, 3, 7, 0, 0, 1, SAVE.TEXT$)
ICON$ = ASKITG$(44, 398, 0, 15, 8, 0): IF ICON$ = "" THEN ICON$ = "UNTITLED"
ICON$ = ICON$ + ".ICO": CALL PRINT.IT(F.FILE$, 464, 413, 1, 1, 0, 0, 7, ICON$)

GET (GET.TLC%, GET.TTR%)-(GET.TLC% + G.M%, GET.TTR% + G.M%), STAMP%
DEF SEG = (VARSEG(STAMP%(1)))
BSAVE ICON$, VARPTR(STAMP%(1)), 1700
DEF SEG

PUT (SAVE.TLC%, SAVE.TTR%), WIN%, PSET
END SUB

SUB SELECT.COLORS
END SUB

SUB TEXT.BUTTON (TR%, LC%, FC%, BC%, TEXT$, UOD%)
GOSUB GRAB.BUTTON.COLORS
TEXT.LEN% = LEN(TEXT$): B.LEN% = LEN(TEXT$) * 8 + 1
BR% = TR% + 16: RC% = LC% + B.LEN%: TRC% = LC% + TEXT.LEN%

SELECT CASE UOD%
CASE 0
LINE (LC%, TR%)-(RC%, BR%), BC%, BF
CALL PRINT.IT(F.FILE$, TR% + 4, LC% + 3, 1, 1, 0, FC%, BC%, TEXT$)
'CALL PRINT.IT(F.FILE$, TR% + 4, LC% + 3, 1, 1, 0, 0, -1, TEXT$)
LINE (LC%, TR%)-(RC%, TR%), HBC%: LINE (LC%, TR%)-(LC%, TR% + 16), HBC%
LINE (RC%, TR% + 1)-(RC%, TR% + 16), SBC%: LINE (LC%, TR% + 16)-(RC%, TR% + 16), SBC%
FOR X% = 1 TO 2: CALL PAUSE: NEXT X%
CASE ELSE
LINE (LC%, TR%)-(RC%, BR%), BC%, BF
CALL PRINT.IT(F.FILE$, TR% + 4, LC% + 3, 1, 1, 0, FC%, BC%, TEXT$)
'CALL PRINT.IT(F.FILE$, TR% + 4, LC% + 3, 1, 1, 0, 0, -1, TEXT$)
LINE (LC%, TR%)-(RC%, TR%), SBC%: LINE (LC%, TR%)-(LC%, TR% + 16), SBC%
LINE (RC%, TR% + 1)-(RC%, TR% + 16), HBC%: LINE (LC%, TR% + 16)-(RC%, TR% + 16), HBC%
FOR X% = 1 TO 2: CALL PAUSE: NEXT X%
END SELECT
EXIT SUB
GRAB.BUTTON.COLORS:
SELECT CASE BC
If you're going to post code, please use the
Code:
...
tags.. that's so smiley faces in the code doesn't show up. (use the edit button) Better yet, give us a link where we can download your program.

With regards to your problem, I Don't Know.
also I have a funny feling that the program was cut short due to post length restrictions...
thats alot of zero's