--------------- FIDO MESSAGE AREA==> TOPIC: 125 QUICK BASIC Ref: F4G00001 Date: 04/11/98 From: KURT KUZBA Time: 03:10am \/To: TERRY RETT (Read 2 times) Subj: QUIKTERM.BAS - 2/3 '_|_|_| QUIKTERM.BAS (part 2 of 3) '_|_|_| This program will operate in ANSI emulation with ANSI '_|_|_| auto-detect. Must be compiled for high speeds. '_|_|_| No warrantee or guarantee is given or implied. '_|_|_| Released to PUBLIC DOMAIN by Kurt Kuzba. (6/5/96) SUB ansi (A$) DEFINT A-Z: DEF SEG = &HB800 STATIC W, e, L, C, O, M, F, B, V, e$: SHARED ANSIDetect$ IF W < 99 THEN W = 100: C = 0: F = 7: B = 0: A = 0: M = F + 16 * B IF A$ = "" THEN LOCATE C \ 80 + 1, C MOD 80 + 1, 1: EXIT SUB IF e <> 27 THEN IF ASC(A$) <> 27 THEN GOSUB CHRout: ELSE e = 27: e$ = A$ EXIT SUB END IF IF O <> 27 AND ASC(A$) = 34 THEN O = e: EXIT SUB IF O = 27 THEN IF ASC(A$) = 34 THEN O = 0 EXIT SUB END IF: e$ = e$ + A$ IF LEN(e$) = 2 AND A$ <> "[" THEN e = 0: e$ = "": EXIT SUB S = INSTR("HfABCDsuJKmhlpn", A$) SELECT CASE S CASE 0: EXIT SUB CASE 1: GOSUB CursorA CASE 2: GOSUB CursorA CASE 3: L = -1: GOSUB CursorL CASE 4: L = 1: GOSUB CursorL CASE 5: L = 1: GOSUB CursorC CASE 6: L = -1: GOSUB CursorC CASE 7: V = C CASE 8: C = V CASE 9: COLOR F, B: CLS : C = 0 CASE 10: FOR L = C TO C + 79 - (C MOD 80) POKE L * 2, 32: POKE L * 2 + 1, M: NEXT CASE 11: GOSUB Colorz CASE 15: A$ = CHR$(27) + "[" + MID$(STR$(C \ 80 + 1), 2) + ";" ANSIDetect$ = A$ + MID$(STR$((C MOD 80) + 1), 2) + "R" END SELECT: e = 0: e$ = "": EXIT SUB CursorA: L = VAL(MID$(e$, INSTR(e$, "[") + 1)) C = VAL(MID$(e$, INSTR(e$, ";") + 1)) IF C > 0 THEN C = (C - 1): IF C > 79 THEN C = 79 IF L > 0 THEN L = (L - 1): IF L > 24 THEN L = 24 C = L * 80 + C: RETURN CursorL: p = VAL(MID$(e$, INSTR(e$, "[") + 1)) p = p - (p < 1): L = INT(C \ 80) + p * L IF L < 0 THEN L = 0: ELSE IF L > 24 THEN L = 24 C = (C MOD 80) + L * 80: RETURN CursorC: p = VAL(MID$(e$, INSTR(e$, "[") + 1)) p = p - (p < 1): L = (C MOD 80) + p * L: C = INT(C \ 80) * 80 IF L < 1 THEN L = 0: ELSE IF L > 79 THEN L = 79 C = C + L: RETURN Colorz: e$ = MID$(e$, INSTR(e$, "[") + 1) DO: e = VAL(e$) SELECT CASE e CASE 0: F = 15: B = 0 CASE 1: F = F OR 8 CASE 5: B = B OR 8 CASE 8: F = B CASE 30 TO 37: p = e - 29 e = ASC(MID$("@DBFAECG", p)) AND 7: F = (F AND 248) + e CASE 40 TO 47: p = e - 39 e = ASC(MID$("@DBFAECG", p)) AND 7: B = (B AND 248) + e END SELECT: p = INSTR(e$, ";"): e$ = MID$(e$, p + 1) LOOP WHILE p > 0: M = F + 16 * B: RETURN CHRout: p = ASC(A$) IF p = 7 THEN FOR t% = 800 TO 1111 STEP 20: SOUND t%, .1: NEXT: RETURN IF p = 8 THEN IF (C MOD 80) > 0 THEN FOR t% = C * 2 TO (C \ 80) * 160 + 159 POKE t% - 2, PEEK(t%) NEXT: C = C - 1 END IF: RETURN END IF IF p = 13 THEN C = C - (C MOD 80): RETURN IF p = 10 THEN C = C + 80 IF p <> 10 THEN POKE C * 2, p: POKE C * 2 + 1, M: C = C + 1 IF C >= 2000 THEN C = C - 80: LOCATE 30, 80: PRINT DIM PK%(2): PK%(0) = 32: PK%(1) = M FOR L = 3680 TO 3839 POKE L, PEEK(L + 160): POKE L + 160, PK%(L AND 1) NEXT END IF: RETURN END SUB '_|_|_| end QUIKTERM.BAS (part 2 of 3) > ] Happiness is a Porsche. LUNCH is a warm puppy............... --- * Origin: *YOPS ]I[* 8.4 GIG * RA/FD/FE * Milwaukee, WI (1:154/750) --------------- FIDO MESSAGE AREA==> TOPIC: 125 QUICK BASIC Ref: F4G00002 Date: 04/11/98 From: KURT KUZBA Time: 03:10am \/To: TERRY RETT (Read 2 times) Subj: QUIKTERM.BAS - 3/3 '_|_|_| QUIKTERM.BAS (part 3 of 3) '_|_|_| This program will operate in ANSI emulation with ANSI '_|_|_| auto-detect. Must be compiled for high speeds. '_|_|_| No warrantee or guarantee is given or implied. '_|_|_| Released to PUBLIC DOMAIN by Kurt Kuzba. (6/5/96) SUB QuikCFG (d() AS STRING) SHARED port% DIM buf(4000) AS STRING * 1: DEF SEG = &HB800: F$ = SPACE$(80) FOR t% = 0 TO 3999: buf(t%) = CHR$(PEEK(t%)): NEXT csr% = LEN(d(0)) + 1: macro% = 0: COLOR 10, 0: CLS : COLOR 14, 4 PRINT " COM "; : COLOR 10, 0: PRINT LEFT$(d(0) + F$, 75); FOR t% = 1 TO 12 COLOR 14, 4: LOCATE t% + 1, 1: PRINT " F"; RIGHT$(STR$(t%), 2); " "; COLOR 10, 0: PRINT LEFT$(d(t%) + F$, 75); : NEXT PRINT : PRINT : PRINT "RETURN exits: ALT/S saves" DO: LOCATE macro% + 1, 6: COLOR 15, 1: PRINT LEFT$(d(macro%) + F$, 75); LOCATE , csr% + 5: DO: k$ = INKEY$: LOOP WHILE k$ = "" k% = ASC(k$): IF k% = 0 THEN k% = -ASC(MID$(k$, 2)) SELECT CASE k% CASE 8 IF csr% > 1 THEN csr% = csr% - 1 MID$(d(macro%), csr%) = MID$(d(macro%), csr% + 1) d(macro%) = LEFT$(d(macro%), LEN(d(macro%)) - 1) ELSE SOUND 999, .7 END IF CASE 13: FOR t% = 0 TO 3999: POKE t%, ASC(buf(t%)): NEXT: EXIT SUB CASE 32 TO 255 L$ = LEFT$(d(macro%), csr% - 1): r$ = MID$(d(macro%), csr%) d(macro%) = LEFT$(L$ + k$ + r$, 70) IF csr% < 75 THEN csr% = csr% + 1: ELSE SOUND 999, .7 CASE -31 FError$ = "ok": OPEN "quikterm.cfg" FOR OUTPUT AS #2 IF FError$ = "ok" THEN FOR t% = 0 TO 13: PRINT #2, d(t%): NEXT: port% = VAL(d(0)) END IF: CLOSE 2 CASE -71: csr% = 1 CASE -72 IF macro% > 0 THEN LOCATE macro% + 1, 6: COLOR 10, 0 PRINT LEFT$(d(macro%) + F$, 75); macro% = macro% - 1: csr% = LEN(d(macro%)) + 1 ELSE SOUND 999, .7 END IF CASE -75 IF csr% > 1 THEN csr% = csr% - 1: ELSE SOUND 999, .7 CASE -77 IF csr% < 70 THEN csr% = csr% + 1: ELSE SOUND 999, .7 CASE -79: csr% = LEN(d(macro%)) + 1 CASE -80 IF macro% < 12 THEN LOCATE macro% + 1, 6: COLOR 10, 0 PRINT LEFT$(d(macro%) + F$, 75); macro% = macro% + 1: csr% = LEN(d(macro%)) + 1 ELSE SOUND 999, .7 END IF CASE -83 IF LEN(d(macro%)) >= csr% THEN MID$(d(macro%), csr%) = MID$(d(macro%), csr% + 1) d(macro%) = LEFT$(d(macro%), LEN(d(macro%)) - 1) ELSE SOUND 999, .7 END IF END SELECT LOOP END SUB '_|_|_| end QUIKTERM.BAS (part 3 of 3) > ] A man has got to know his limits. [ Harry Callahan ] ...... --- * Origin: *YOPS ]I[* 8.4 GIG * RA/FD/FE * Milwaukee, WI (1:154/750) --------------- FIDO MESSAGE AREA==> TOPIC: 125 QUICK BASIC Ref: F4G00003 Date: 04/06/98 From: TYS ARMSTRONG Time: 05:32pm \/To: BILL WHITE (Read 2 times) Subj: Re: Qbasic -=> Quoting Bill White to Tys Armstrong <=- BW> Usually, they hang up in disgust before BW> it does! If they call back with the same name, they BW> get a further run-around. I just made a batch with .com's as my ansis: In the following example, the right answer is "B". :QUIZ TYPE QUIZ1.ASC CHOICE What's Your Answer? /C:ABC IF ERRORLEVEL 3 WRONG.COM IF ERRORLEVEL 2 RIGHT.COM IF ERRORLEVEL 1 WRONG.COM PAUSE TYPE QUIZ2.ASC ect.. And it works, but I don't know how to display a score, so i use the right/wrong screens. It get's the job done, it was for a Maths Project. The teacher was away the day it was due so we got a double free! hehehe! I knew the rat poise-- Uhum, sorry. hehe..I better go now.. Regards, Tyson ... Anarchy is better than no government at all. ___ Blue Wave/QWK v2.12 # PDQWK 2.1 #3 --- * Origin: NetComm BBS 303-730-7045 (1:104/603.0) --------------- FIDO MESSAGE AREA==> TOPIC: 125 QUICK BASIC Ref: F4G00004 Date: 04/10/98 From: THOMAS MATYSIK Time: 05:47pm \/To: ALL (Read 2 times) Subj: GUI apps A lot of people have asked for this GUI generator, so here it is. All the .TMP files need to be in the current directory for GUI_GEN to work. The applications generated by GUI_GEN are just very simple and will not work by themselves - you at least need to put one control in. The IDE program requires an editor by the name of Q (any text editor will do - if it is not called Q then just edit the SHELL statement in the .BAS file). At the moment, the only control available is a pushbutton - if you need others, you will need to define a TYPE and a draw sub for that control in the main file. If you want it in all GUI_GEN apps, put them in the MAIN.TMP template file. I can't remember if I tried out ALL the routines in the MOUSE library, but the most important ones definately work. The programs require the routines from MOUSE.BAS - either in a LIB or added to the MAIN.TMP file. I hope you find this software useful - change it as much as you like. The files come up in the following messages. ___ X SLMR 2.1a X Press any key to continue or any other key to quit --- Maximus/2 3.01 * Origin: === NZMC Maxie BBS. Ak, NZ +64 9 444-0989 === (3:772/1) --------------- FIDO MESSAGE AREA==> TOPIC: 125 QUICK BASIC Ref: F4G00005 Date: 04/10/98 From: THOMAS MATYSIK Time: 05:47pm \/To: ALL (Read 2 times) Subj: GUI apps - IDE.BAS - 1/2 '>>> Page 1 of IDE.BAS begins here. TYPE:BAS DECLARE SUB AddSub () DECLARE SUB RemoveSub () DECLARE SUB SaveProj (filename$) DECLARE SUB center (row%, text$) DECLARE FUNCTION InitMouseDriver% (Numbuttons%) DECLARE FUNCTION GetPosButtons% (x%, y%) DECLARE SUB ShowMouseCursor DECLARE SUB HideMouseCursor DIM SHARED fileinfo$(1 TO 13, 1 TO 2) COMMON SHARED NextSub% IF COMMAND$ = "" THEN PRINT "QuickBasic GUI interface" PRINT "By Thomas Matysik" PRINT PRINT "USAGE: IDE .gui" PRINT END END IF COLOR 11, 1 CLS x% = InitMouseDriver%(y%) center 2, "QuickBasic GUI interface" center 3, STRING$(74, "-") COLOR 14 center 6, "Add a sub" center 7, "Remove sub" IF LEN(COMMAND$) > 4 AND MID$(COMMAND$, LEN(COMMAND$) - 3, 1) = "." THEN filename$ = COMMAND$ ELSE filename$ = LEFT$(COMMAND$, 8) + ".gui" END IF OPEN filename$ FOR INPUT AS #1 DO NextSub% = NextSub% + 1 IF EOF(1) THEN EXIT DO LINE INPUT #1, line$ fileinfo$(NextSub%, 1) = RTRIM$(LTRIM$(line$)) IF fileinfo$(NextSub%, 1) = "" THEN EXIT DO LINE INPUT #1, line$ fileinfo$(NextSub%, 2) = RTRIM$(LTRIM$(line$)) LOOP UNTIL EOF(1) CLOSE #1 drawem: COLOR 15, 1 center 9, fileinfo$(1, 1) COLOR 7 FOR i = 2 TO 13 center i + 8, fileinfo$(i, 1) NEXT i COLOR 0, 7 center 25, "Choose an option or a sub to edit" ShowMouseCursor DO xxx% = GetPosButtons%(x%, y%) y% = y% \ 8 y% = y% + 1 IF xxx% = 1 THEN IF y% >= 9 AND y% <= 13 THEN HideMouseCursor IF fileinfo$(y% - 8, 1) <> "" THEN SHELL "Q " + fileinfo$(y% - 8,_ 2) ShowMouseCursor ELSEIF y% = 6 THEN AddSub GOTO drawem ELSEIF y% = 7 THEN RemoveSub GOTO drawem '>>> Page 1 of IDE.BAS ends here. Continued on next page. ___ X SLMR 2.1a X Press any key to continue or any other key to quit --- Maximus/2 3.01 * Origin: === NZMC Maxie BBS. Ak, NZ +64 9 444-0989 === (3:772/1) --------------- FIDO MESSAGE AREA==> TOPIC: 125 QUICK BASIC Ref: F4G00006 Date: 04/10/98 From: THOMAS MATYSIK Time: 05:47pm \/To: ALL (Read 2 times) Subj: GUI apps - IDE.BAS - 2/2 '>>> Page 2 of IDE.BAS begins here. END IF END IF LOOP UNTIL INKEY$ = CHR$(27) SaveProj filename$ END SUB AddSub COLOR 1, 7 LOCATE 25, 1 HideMouseCursor PRINT SPACE$(80); LOCATE 25, 1 IF NextSub% > 13 THEN center 25, "Too many subs" SLEEP 2 EXIT SUB END IF PRINT "Enter sub description: "; ShowMouseCursor INPUT ; "", fileinfo$(NextSub%, 1) LOCATE 25, 1 HideMouseCursor PRINT SPACE$(80); LOCATE 25, 1 PRINT "Enter filename: "; ShowMouseCursor INPUT ; "", fileinfo$(NextSub%, 2) NextSub% = NextSub% + 1 END SUB SUB center (row%, text$) LOCATE row%, 1 HideMouseCursor PRINT SPACE$(80); LOCATE row%, 41 - (LEN(text$) \ 2) PRINT text$; ShowMouseCursor END SUB SUB RemoveSub COLOR 0, 7 startofdo: center 25, "Select sub to remove or press Esc to abort" DO: LOOP WHILE GetPosButtons%(x%, y%) = 1 DO xxx% = GetPosButtons%(x%, y%) IF INKEY$ = CHR$(27) THEN EXIT SUB LOOP UNTIL xxx% = 1 y% = y% \ 8 y% = y% + 1 IF y% <= 9 OR y% > 22 THEN GOTO startofdo ' center 25, "Are you sure you would like to remove this sub? Y|N " ' DO: xxx$ = INKEY$: LOOP WHILE xxx$ = "" ' IF UCASE$(xxx$) <> "Y" THEN EXIT SUB y% = y% - 7 FOR i = y% TO 13 fileinfo$(i - 1, 1) = fileinfo$(i, 1) fileinfo$(i - 1, 2) = fileinfo$(i, 2) NEXT i NextSub% = NextSub% - 1 DO: LOOP WHILE GetPosButtons%(x%, y%) = 1 END SUB SUB SaveProj (filename$) KILL filename$ OPEN filename$ FOR OUTPUT AS #1 FOR i = 1 TO NextSub% PRINT #1, fileinfo$(i, 1) PRINT #1, fileinfo$(i, 2) NEXT i CLOSE #1 END SUB '>>> Page 2 of IDE.BAS ends here. Last page. ___ X SLMR 2.1a X This tagline stolen by Silly Little Mail Reader! --- Maximus/2 3.01 * Origin: === NZMC Maxie BBS. Ak, NZ +64 9 444-0989 === (3:772/1) --------------- FIDO MESSAGE AREA==> TOPIC: 125 QUICK BASIC Ref: F4G00007 Date: 04/10/98 From: THOMAS MATYSIK Time: 05:47pm \/To: ALL (Read 2 times) Subj: Gui - Mouse.Bas - 1/3 '>>> Page 1 of MOUSE.BAS begins here. TYPE:BAS DECLARE SUB LoadGraphicsCursor (filename$) DECLARE SUB HideMouseCursor () DECLARE SUB SetHorzRange (x1%, x2%) DECLARE SUB SetMousePos (x%, y%) DECLARE SUB SetTextCursor (CursorType%, cxreg%, dxreg%) DECLARE SUB SetVertRange (y1%, y2%) DECLARE SUB ShowMouseCursor () DECLARE SUB SetGraphicsCursor (HotSpotX%, HotSpotY%, Bitmaps AS ANY) DECLARE FUNCTION GetButtonRelease% (ButtonNumber%, x%, y%) DECLARE FUNCTION GetButtonPress% (ButtonNumber%, x%, y%) DECLARE FUNCTION GetPosButtons% (x%, y%) DECLARE FUNCTION InitMouseDriver% (NumButtons AS INTEGER) ' MOUSE.BAS ' QuickBasic v4.5 library that enables the mouse to be used in QB_ ' programs. ' ' Section taken from QB.BI ' ' Define the type needed for INTERRUPT ' TYPE RegType ax AS INTEGER bx AS INTEGER cx AS INTEGER dx AS INTEGER bp AS INTEGER si AS INTEGER di AS INTEGER flags AS INTEGER END TYPE ' ' Define the type needed for INTERUPTX ' TYPE RegTypeX ax AS INTEGER bx AS INTEGER cx AS INTEGER dx AS INTEGER bp AS INTEGER si AS INTEGER di AS INTEGER flags AS INTEGER ds AS INTEGER es AS INTEGER END TYPE ' ' Generate a software interrupt, loading all but the segment registers ' DECLARE SUB interrupt (intnum AS INTEGER, inreg AS RegType, outreg AS_ RegType) ' ' Generate a software interrupt, loading all registers ' DECLARE SUB InterruptX (intnum AS INTEGER, inreg AS RegTypeX, outreg AS_ RegTypeX) TYPE MaskString Bitmaps AS STRING * 64 END TYPE DEFINT A-Z FUNCTION GetButtonPress (ButtonNumber, x, y) DIM regs AS RegType regs.ax = &H5 regs.bx = ButtonNumber CALL interrupt(&H33, regs, regs) x = regs.cx y = regs.dx GetButtonPress = regs.bx END FUNCTION FUNCTION GetButtonRelease (ButtonNumber, x, y) DIM regs AS RegType regs.ax = &H6 regs.bx = ButtonNumber CALL interrupt(&H33, regs, regs) x = regs.cx y = regs.dx GetButtonRelease = regs.bx END FUNCTION FUNCTION GetPosButtons (x, y) DIM regs AS RegType '>>> Page 1 of MOUSE.BAS ends here. Continued on next page. ___ X SLMR 2.1a X I'm in shape ... round's a shape isn't it? --- Maximus/2 3.01 * Origin: === NZMC Maxie BBS. Ak, NZ +64 9 444-0989 === (3:772/1) --------------- FIDO MESSAGE AREA==> TOPIC: 125 QUICK BASIC Ref: F4G00008 Date: 04/10/98 From: THOMAS MATYSIK Time: 05:47pm \/To: ALL (Read 2 times) Subj: Gui - Mouse.Bas - 2/3 '>>> Page 2 of MOUSE.BAS begins here. regs.ax = &H3 CALL interrupt(&H33, regs, regs) x = regs.cx y = regs.dx GetPosButtons = regs.bx END FUNCTION DEFSNG A-Z SUB HideMouseCursor DIM regs AS RegType regs.ax = &H2 CALL interrupt(&H33, regs, regs) END SUB DEFINT A-Z FUNCTION InitMouseDriver (NumButtons AS INTEGER) DIM regs AS RegType CALL interrupt(&H33, regs, regs) NumButtons = regs.bx InitMouseDriver = regs.ax END FUNCTION DEFSNG A-Z SUB LoadGraphicsCursor (filename$) DIM ptr AS MaskString filenum% = FREEFILE OPEN filename$ FOR BINARY ACCESS READ AS filenum% GET #filenum%, , x% GET #filenum%, , y% GET #filenum%, , ptr SetGraphicsCursor x%, y%, ptr CLOSE filenum% END SUB DEFINT A-Z SUB SetGraphicsCursor (HotSpotX, HotSpotY, Bitmaps AS MaskString) DIM regs AS RegTypeX regs.ax = &H9 regs.bx = HotSpotX regs.cx = HotSpotY regs.es = VARSEG(Bitmaps.Bitmaps) regs.dx = VARPTR(Bitmaps.Bitmaps) CALL InterruptX(&H33, regs, regs) END SUB SUB SetHorzRange (x1, x2) DIM regs AS RegType regs.ax = &H7 regs.cx = x1 regs.dx = x2 CALL interrupt(&H33, regs, regs) END SUB SUB SetMousePos (x, y) DIM regs AS RegType regs.ax = &H4 regs.cx = x regs.dx = y CALL interrupt(&H33, regs, regs) END SUB SUB SetTextCursor (CursorType, cxreg, dxreg) DIM regs AS RegType regs.ax = &HA regs.bx = CursorType regs.cx = cxreg regs.dx = dxreg CALL interrupt(&H33, regs, regs) END SUB SUB SetVertRange (y1, y2) DIM regs AS RegType regs.ax = &H8 regs.cx = y1 regs.dx = y2 '>>> Page 2 of MOUSE.BAS ends here. Continued on next page. ___ X SLMR 2.1a X Backup not found: (A)bort (R)etry (P)anic --- Maximus/2 3.01 * Origin: === NZMC Maxie BBS. Ak, NZ +64 9 444-0989 === (3:772/1) --------------- FIDO MESSAGE AREA==> TOPIC: 125 QUICK BASIC Ref: F4G00009 Date: 04/10/98 From: THOMAS MATYSIK Time: 05:47pm \/To: ALL (Read 2 times) Subj: GUI - Mouse.BAS - 3/3 '>>> Page 3 of MOUSE.BAS begins here. CALL interrupt(&H33, regs, regs) END SUB DEFSNG A-Z SUB ShowMouseCursor DIM regs AS RegType regs.ax = &H1 CALL interrupt(&H33, regs, regs) END SUB '>>> Page 3 of MOUSE.BAS ends here. Last page. ___ X SLMR 2.1a X Nothing is so smiple that it can't get screwed up. --- Maximus/2 3.01 * Origin: === NZMC Maxie BBS. Ak, NZ +64 9 444-0989 === (3:772/1) --------------- FIDO MESSAGE AREA==> TOPIC: 125 QUICK BASIC Ref: F4G00010 Date: 04/10/98 From: THOMAS MATYSIK Time: 05:47pm \/To: ALL (Read 2 times) Subj: Gui - Gui_Gen.Bas '>>> Page 1 of GUI_GEN.BAS begins here. TYPE:BAS ' GUI project generator INPUT ".GUI project file name: ", projectfile$ INPUT "Main module file name: ", mainfile$ INPUT "Event handler file name: ", eventhandler$ INPUT "MouseClick handler filename: ", mouseclickhandler$ INPUT "KeyPress handler filename: ", keypress$ INPUT "DrawScreen filename: ", drawscreen$ IF LEN(projectfile$) < 5 THEN projectfile$ = projectfile$ + ".gui" ELSEIF NOT MID$(projectfile$, LEN(projectfile$) - 4, 1) = "." THEN projectfile$ = projectfile$ + ".gui" END IF OPEN projectfile$ FOR OUTPUT AS #1 PRINT #1, "Main File ("; mainfile$; ")" PRINT #1, mainfile$ PRINT #1, "Event handler ("; eventhandler$; ")" PRINT #1, eventhandler$ PRINT #1, "MouseClick handler ("; mouseclickhandler$; ")" PRINT #1, mouseclickhandler$ PRINT #1, "Keypress handler ("; keypress$; ")" PRINT #1, keypress$ PRINT #1, "DrawScreen routine ("; drawscreen$; ")" PRINT #1, drawscreen$ PRINT #1, CLOSE #1 OPEN "Main.tmp" FOR INPUT AS #1 OPEN mainfile$ FOR OUTPUT AS #2 DO LINE INPUT #1, a$ PRINT #2, a$ LOOP UNTIL EOF(1) CLOSE #1 CLOSE #2 OPEN "event.tmp" FOR INPUT AS #1 OPEN eventhandler$ FOR OUTPUT AS #2 DO LINE INPUT #1, a$ PRINT #2, a$ LOOP UNTIL EOF(1) CLOSE #1 CLOSE #2 OPEN "mousclik.tmp" FOR INPUT AS #1 OPEN mouseclickhandler$ FOR OUTPUT AS #2 DO LINE INPUT #1, a$ PRINT #2, a$ LOOP UNTIL EOF(1) CLOSE #1 CLOSE #2 OPEN "keypress.tmp" FOR INPUT AS #1 OPEN keypress$ FOR OUTPUT AS #2 DO LINE INPUT #1, a$ PRINT #2, a$ LOOP UNTIL EOF(1) CLOSE #1 CLOSE #2 OPEN "drawscrn.tmp" FOR INPUT AS #1 OPEN drawscreen$ FOR OUTPUT AS #2 DO LINE INPUT #1, a$ PRINT #2, a$ LOOP UNTIL EOF(1) CLOSE #1 CLOSE #2 '>>> Page 1 of GUI_GEN.BAS ends here. Last page. ___ X SLMR 2.1a X My reality check just bounced. --- Maximus/2 3.01 * Origin: === NZMC Maxie BBS. Ak, NZ +64 9 444-0989 === (3:772/1)