' +-------------------------------------------------------------------+ ' | | ' | M e g a. B A S | ' | | ' | (Written with QuickBASIC 4.5) | ' | | ' | Public Domain - FreeWare | ' +-------------------------------------------------------------------+ ' +-------------------------------------------------------------------+ ' | - ABOUT THE AUTHOR - | ' +-------------------------------------------------------------------+ ' | | ' |Hello. My name is Don Smith and I am a thirty-year retired teacher | ' |of Math/History/Spanish residing in Orange County, California. I | ' |am also a former six-year Sergeant of Marines. Who-Rah! On certain | ' |forums I am known as MarineDon.My email is: smithdonb@earthlink.net| ' | | ' +-------------------------------------------------------------------+ ' | - COPYING AND DISTIBUTING - | ' +-------------------------------------------------------------------+ ' |Since this code is public domain and freeware, anyone may freely | ' |copy and distribute it. If you use the QuickBasic code in one of | ' |your own programs, you do not have to cite my name as the author, | ' |and you may even change its name. | ' +-------------------------------------------------------------------+ ' | Mega.BAS is declared Public Domain, FreeWare. Date: 07/01/2005. | ' | The user accepts and assumes all liability resulting from the | ' | use or misuse of this program. The author makes no claim as to | ' | the value of using this software program in an actual lottery | ' | situation, nor does the author make any claim as to the random | ' | value of the numbers generated. The author does not give | ' | warrenty nor guarantee of this Mega program. | ' +-------------------------------------------------------------------+ ' | Hi, my name is Don Smith (Donald Bernard Smith) and I am the | ' | author of this QuickBASIC 4.5 program. You are welcome to use | ' | and/or modify this program you see fit. You need not give my | ' | name as the author. My email is: smithdonb@earthlink.net | ' +-------------------------------------------------------------------+ ' | Compile: BC: Mega.Bas | ' | LINK: Mega | ' | LIB: BCom45.Lib | ' +-------------------------------------------------------------------+ DECLARE SUB SaveRestScrn (ReadLine$(), ReadColr%(), SR.UL.Row%, SR.UL.Col%, SR.LR.Row%, SR.LR.Col%, SaveOrRest%) DECLARE SUB TinyBox (ULRow, ULCol, LRRow, LRCol, BoxFGColr, BoxBGColr, SingOrDoub) begin: SpecialNote% = 0 OPEN "LottoPrn.Txt" FOR OUTPUT AS #1 FOR TopNotch% = 1 TO 10 PRINT #1, SPACE$(40) NEXT PRINT #1, SPACE$(39); "Mega Millions" PRINT #1, SPACE$(33); STRING$(24, CHR$(196)) COLOR 15, 1: CLS LOCATE 2, 27: PRINT "ÛßßßßßßßßßßßßßßßßßßßßßßßßßßÛ" LOCATE 3, 27: PRINT "Û MEGA MILLIONS Û" LOCATE 3, 34: COLOR 11, 1, 0: PRINT "MEGA MILLIONS" COLOR 15, 1 LOCATE 4, 27: PRINT "ÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛ" LOCATE 6, 1: PRINT SPACE$(20); "ÛßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßÛ" PRINT SPACE$(20); "Û Û" LOCATE 7, 26: PRINT "$5.00 Five Dollar Quick Pick." LOCATE 7, 26: COLOR 11, 1: PRINT "$": COLOR 15, 1 PRINT SPACE$(20); "Û Û" LOCATE 8, 26: PRINT "Random Results Of Five Cards." PRINT SPACE$(20); "ÛßßßßßßßßßÛßßßßßßßßßßßßßßßßßßßßßßßßßßßÛ" midriff: COLOR 15, 1 PRINT SPACE$(20); "Û Card #1 Û Û" LOCATE 10, 23: COLOR 14, 1: PRINT "Card": COLOR 15, 1 PRINT SPACE$(20); "ÛÍÍÍÍÍÍÍÍÍÛÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÛ" PRINT SPACE$(20); "Û Card #2 Û Û" LOCATE 12, 23: COLOR 14, 1: PRINT "Card": COLOR 15, 1 PRINT SPACE$(20); "ÛÍÍÍÍÍÍÍÍÍÛÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÛ" PRINT SPACE$(20); "Û Card #3 Û Û" LOCATE 14, 23: COLOR 14, 1: PRINT "Card": COLOR 15, 1 PRINT SPACE$(20); "ÛÍÍÍÍÍÍÍÍÍÛÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÛ" PRINT SPACE$(20); "Û Card #4 Û Û" LOCATE 16, 23: COLOR 14, 1: PRINT "Card": COLOR 15, 1 PRINT SPACE$(20); "ÛÍÍÍÍÍÍÍÍÍÛÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÛ" PRINT SPACE$(20); "Û Card #5 Û Û" LOCATE 18, 23: COLOR 14, 1: PRINT "Card": COLOR 15, 1 PRINT SPACE$(20); "ÛÜÜÜÜÜÜÜÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛ" COLOR 15, 1 LOCATE 7, 62: PRINT "Mega draws are" LOCATE 8, 62: PRINT "Tuesdays/Fridays" COLOR 11, 1 LOCATE 10, 62: PRINT "Light blue numbers"; LOCATE 11, 62: PRINT "are regular picks"; COLOR 14, 1 LOCATE 13, 62: PRINT "Yellow numbers"; LOCATE 14, 62: PRINT "are mega numbers."; COLOR 15, 1: LOCATE 16, 62: PRINT "Reg. Picks = 1-56"; LOCATE 17, 62: PRINT "Mega = 1-46"; COLOR 12, 1: LOCATE 16, 75: PRINT "1-56"; LOCATE 17, 75: PRINT "1-46"; COLOR 11, 1 LOCATE 19, 62: PRINT " Info"; COLOR 15, 1: LOCATE 19, 63: PRINT "F1"; COLOR 11, 1 LOCATE 20, 62: PRINT " Print"; COLOR 15, 1: LOCATE 20, 63: PRINT "F10"; COLOR 15, 0 LOCATE 21, 27, 0: PRINT "ÛßßßßßßßßßßßßßßßßßßßßßßßßßßÛ"; LOCATE 22, 27, 0: PRINT "Û - Go Again Û"; LOCATE 23, 27, 0: PRINT "Û - Exit Û"; LOCATE 24, 27, 0: PRINT "ÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛ"; COLOR 11, 0 LOCATE 22, 32, 0: PRINT "Enter"; LOCATE 23, 32, 0: PRINT "Esc"; first.line.5dolloar.quickpick: GOSUB randomizer REDIM Array%(6) FOR A% = 1 TO 6 GOSUB pick.random.number IF RandomNumber% = 0 THEN RANDOMIZE TIMER GOSUB pick.random.number END IF Array%(A%) = RandomNumber% NEXT GOSUB shell.sort IF Array%(2) = Array%(1) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(2) = RandomNumber% ELSEIF Array%(3) = Array%(2) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(3) = RandomNumber% ELSEIF Array%(4) = Array%(3) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(4) = RandomNumber% ELSEIF Array%(5) = Array%(4) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(5) = RandomNumber% END IF GOSUB shell.sort Row% = 10 GOSUB print.array ERASE Array% second.line.5dolloar.quickpick: GOSUB randomizer REDIM Array%(6) FOR A% = 1 TO 6 GOSUB pick.random.number IF RandomNumber% = 0 THEN RANDOMIZE TIMER GOSUB pick.random.number END IF Array%(A%) = RandomNumber% NEXT GOSUB shell.sort IF Array%(2) = Array%(1) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(2) = RandomNumber% ELSEIF Array%(3) = Array%(2) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(3) = RandomNumber% ELSEIF Array%(4) = Array%(3) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(4) = RandomNumber% ELSEIF Array%(5) = Array%(4) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(5) = RandomNumber% END IF GOSUB shell.sort Row% = 12 GOSUB print.array ERASE Array% third.line.5dolloar.quickpick: GOSUB randomizer REDIM Array%(6) FOR A% = 1 TO 6 GOSUB pick.random.number IF RandomNumber% = 0 THEN RANDOMIZE TIMER GOSUB pick.random.number END IF Array%(A%) = RandomNumber% NEXT GOSUB shell.sort IF Array%(2) = Array%(1) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(2) = RandomNumber% ELSEIF Array%(3) = Array%(2) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(3) = RandomNumber% ELSEIF Array%(4) = Array%(3) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(4) = RandomNumber% ELSEIF Array%(5) = Array%(4) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(5) = RandomNumber% END IF GOSUB shell.sort Row% = 14 GOSUB print.array ERASE Array% fourth.line.5dolloar.quickpick: GOSUB randomizer REDIM Array%(6) FOR A% = 1 TO 6 GOSUB pick.random.number IF RandomNumber% = 0 THEN RANDOMIZE TIMER GOSUB pick.random.number END IF Array%(A%) = RandomNumber% NEXT GOSUB shell.sort IF Array%(2) = Array%(1) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(2) = RandomNumber% ELSEIF Array%(3) = Array%(2) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(3) = RandomNumber% ELSEIF Array%(4) = Array%(3) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(4) = RandomNumber% ELSEIF Array%(5) = Array%(4) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(5) = RandomNumber% END IF GOSUB shell.sort Row% = 16 GOSUB print.array ERASE Array% fifth.line.5dolloar.quickpick: GOSUB randomizer REDIM Array%(6) FOR A% = 1 TO 6 GOSUB pick.random.number IF RandomNumber% = 0 THEN RANDOMIZE TIMER GOSUB pick.random.number END IF Array%(A%) = RandomNumber% NEXT GOSUB shell.sort IF Array%(2) = Array%(1) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(2) = RandomNumber% ELSEIF Array%(3) = Array%(2) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(3) = RandomNumber% ELSEIF Array%(4) = Array%(3) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(4) = RandomNumber% ELSEIF Array%(5) = Array%(4) THEN RANDOMIZE TIMER GOSUB pick.random.number Array%(5) = RandomNumber% END IF SpecialNote% = 1 GOSUB shell.sort Row% = 18 GOSUB print.array ERASE Array% CLOSE #1 DO DO LOCATE , , 0, 0, 0 Q$ = INKEY$ LOOP UNTIL LEN(Q$) > 0 QKey% = CVI(Q$ + CHR$(0)) IF QKey% = 13 THEN ' GOTO begin 'midriff ELSEIF QKey% = 27 THEN ' GOTO leave ELSEIF QKey% = 15104 THEN ' GOSUB message ELSEIF QKey% = 17408 THEN ' SHELL "MetaPad.Exe" + " " + "LottoPrn.Txt" LOCATE 1, 1: COLOR 1, 1: PRINT " " END IF LOCATE , , 0, 0, 0 LOOP UNTIL Q$ = "Q" randomizer: RANDOMIZE TIMER RETURN pick.random.number: RandomNumber% = INT(RND * 56) Pad% = LEN(STR$(RandomNumber%)) - 1 IF Pad% = 2 THEN Pad% = 0 ELSEIF Pad% = 1 THEN Pad% = 1 END IF 'this picks the mega number IF A% = 6 THEN 'Mega Number so only 27 numbers to try GOSUB randomizer RandomNumber% = INT(RND * 46) RETURN END IF RETURN leave: COLOR 7, 0: CLS : LOCATE 1, 1, 1, 6, 7: END message: REDIM ReadLine$(25): REDIM ReadColr%(25, 80) CALL SaveRestScrn(ReadLine$(), ReadColr%(), 1, 1, 25, 80, 1) COLOR 15, 1: CLS CALL TinyBox(2, 21, 4, 59, 15, 1, 2) LOCATE 3, 24, 0: PRINT "California Lottery - Mega Millions"; CALL TinyBox(6, 11, 20, 69, 15, 1, 2) REDIM M$(12) M$(1) = "The Mega Millions program is a public domain, freeware" M$(2) = "program. You may use the Mega Millions program at your" M$(3) = "own risk. The author, Don Smith, does not guarantee nor" M$(4) = "warranty anything about the program. In addition, the" M$(5) = "author accepts no liability for damages resulting from" M$(6) = "its use or misuse." M$(7) = "" M$(8) = " Author: Don Smith" M$(9) = " Email: smithdonb@earthlink.net" M$(10) = " Date: June 19, 2005" M$(11) = "" M$(12) = " (Press Any Key To Continue)" FOR Plunk% = 1 TO 12 LOCATE Plunk% + 7, 13, 0 PRINT M$(Plunk%) NEXT DO: LOOP WHILE INKEY$ = "" CALL SaveRestScrn(ReadLine$(), ReadColr%(), 1, 1, 25, 80, 2) ERASE ReadLine$: ERASE ReadColr% RETURN shell.sort: Num% = 5 Span% = Num% \ 2 DO WHILE Span% > 0 FOR I% = Span% TO Num% - 1 J% = I% - Span% + 1 FOR J% = (I% - Span% + 1) TO 1 STEP -Span% IF Array%(J%) <= Array%(J% + Span%) THEN EXIT FOR ' ' Swap array elements that are out of order. ' SWAP Array%(J%), Array%(J% + Span%) NEXT J% NEXT I% Span% = Span% \ 2 LOOP RETURN print.array: REDIM Array$(6) Array$(1) = RTRIM$(LTRIM$(STR$(Array%(1)))) Array$(2) = RTRIM$(LTRIM$(STR$(Array%(2)))) Array$(3) = RTRIM$(LTRIM$(STR$(Array%(3)))) Array$(4) = RTRIM$(LTRIM$(STR$(Array%(4)))) Array$(5) = RTRIM$(LTRIM$(STR$(Array%(5)))) Array$(6) = RTRIM$(LTRIM$(STR$(Array%(6)))) COLOR 11, 1 IF LEN(Array$(1)) = 1 THEN LOCATE Row%, 34, 0: PRINT Array$(1); LArray1 = 2 ELSEIF LEN(Array$(1)) = 2 THEN LOCATE Row%, 33, 0: PRINT Array$(1); LArray1 = 1 END IF IF LEN(Array$(2)) = 1 THEN LOCATE Row%, 38, 0: PRINT Array$(2); LArray2 = 2 ELSEIF LEN(Array$(2)) = 2 THEN LOCATE Row%, 37, 0: PRINT Array$(2); LArray2 = 1 END IF IF LEN(Array$(3)) = 1 THEN LOCATE Row%, 42, 0: PRINT Array$(3); LArray3 = 2 ELSEIF LEN(Array$(3)) = 2 THEN LOCATE Row%, 41, 0: PRINT Array$(3); LArray3 = 1 END IF IF LEN(Array$(4)) = 1 THEN LOCATE Row%, 46, 0: PRINT Array$(4); LArray4 = 2 ELSEIF LEN(Array$(4)) = 2 THEN LOCATE Row%, 45, 0: PRINT Array$(4); LArray4 = 1 END IF IF LEN(Array$(5)) = 1 THEN LOCATE Row%, 50, 0: PRINT Array$(5); LArray5 = 2 ELSEIF LEN(Array$(5)) = 2 THEN LOCATE Row%, 49, 0: PRINT Array$(5); LArray5 = 1 END IF COLOR 14, 1 IF LEN(Array$(6)) = 1 THEN LOCATE Row%, 56, 0: PRINT Array$(6); LArray6 = 2 ELSEIF LEN(Array$(6)) = 2 THEN LOCATE Row%, 55, 0: PRINT Array$(6); LArray6 = 1 END IF 'make: LottoPrn.Txt PRINT #1, SPACE$(33); SPACE$(LArray1) + Array$(1); SPACE$(LArray2); " "; Array$(2); SPACE$(LArray3); " "; Array$(3); SPACE$(LArray4); " "; Array$(4); SPACE$(LArray5); " "; Array$(5); " ³"; SPACE$(LArray6); Array$(6) IF SpecialNote% = 0 THEN PRINT #1, SPACE$(53); CHR$(179) END IF ERASE Array$ COLOR 1, 1 LOCATE , , 0, 0, 0 RETURN SUB SaveRestScrn (ReadLine$(), ReadColr%(), SR.UL.Row%, SR.UL.Col%, SR.LR.Row%, SR.LR.Col%, SaveOrRest%) ' +---------------------------------------------------------------------+ ' | SUB SaveRestScrn | ' +---------------------------------------------------------------------+ ' | Not counting REM (') lines, SUB SaveRestScrn has 34 lines. | ' +---------------------------------------------------------------------+ ' | SUB written by Don Smith on 03/25/02 - Public Domain FreeWare. | ' | No need to name Don as the author. EMail: smithdonb@earthlink.net | ' | SUB SaveRestScrn will save a designated portion of the screen and | ' | later restore the same. | ' +---------------------------------------------------------------------+ ' +---------------------------------------------------------------------+ ' | PROGRAM SETS NUMBERS 1 AND 2 -> | ' +------------------+--------------------------------------------------+ ' | (1) ReadLine$() | Program self reads data at each Row and Column | ' +------------------+--------------------------------------------------+ ' | (2) ReadColr%() | Program self reads color at each Row and Column | ' +------------------+--------------------------------------------------+ ' | THE PROGRAMMER MUST SET NUMBERS 3 TO 9 -> | ' +---------------------------------------------------------------------+ ' | (Note: The "SR" below means "Save" Or "Restore") | ' +------------------+--------------------------------------------------+ ' | (3) SR.UL.Row% | Screen to save or restore at upper left row. | ' | (4) SR.UL.Col% | Screen to save or restore at upper left column. | ' | (5) SR.LR.Row% | Screen to save or restore at lower right row. | ' | (6) SR.LR.Col% | Screen to save or restore at lower right column | ' | +--------------------------------------------------+ ' | | SPECIAL CAUTION: | ' | | --------------- | ' | | When you call the SUB to restore the underlying | ' | | screen, use MUST use the same row and column | ' | | numbers as you used when you first called the | ' | | SUB to save the screen. | ' +------------------+--------------------------------------------------+ ' | (7) SaveOrRest% | SaveOrRest% = 1 (1 means save the screen) | ' | | SaveOrRest% = 2 (2 means restore the screen) | ' +------------------+----------+---------------------------------------+ ' | (8) REDIM ReadLine$(25) | The REDIM for ReadLine$ and ReadColr% | ' | REDIM ReadColr%(25, 80) | must be placed in the main module | ' | | before calling the SUB. The 25 and 80| ' | | reflects a screen of 25 lines and 80 | ' | | columns. You may use smaller amounts | ' | | of memory if you do not need all 25 | ' | | lines and 80 columns. | ' +-----------------------------+---------------------------------------+ ' | (9) ERASE ReadLine$ | Reclaim memory after calling the SUB | ' | ERASE ReadColr% | to restore the screen. Use REDIM and | ' | | ERASE in main module please! | ' +-----------------------------+---------------------------------------+ ' | +-----------------------------------------------------+ | ' | | Example of how to use SaveRestScrn in main module. | | ' | +-----------------------------------------------------+ | ' | | ' | REDIM ReadLine$(25): REDIM ReadColr%(25, 80) 'REDIMs full screen. | ' | CALL SaveRestScrn(1, 1, 25, 80, 1) 'The last 1 means | ' | 'save the screen. | ' | | ' | 'The last 2 means | ' | Call SaveRestScrn(1, 1, 25, 80, 2) 'restore the screen. | ' | ERASE ReadLine$: ERASE ReadColr% 'Reclaim memory. | ' | | ' +---------------------------------------------------------------------+ ' | SPECIAL NOTE: | ' +---------------------------------------------------------------------+ ' | NOTE: If there is an additional screen to save/restore, at the | ' | same time that another screen is in the SAVE mode, that is not | ' | a problem - just use another name. | ' | | ' | +-------------------------------------------------+ | ' | | EXAMPLE using DaBigScreen$ instead of ReadLine$:| | ' | +-------------------------------------------------+ | ' | | ' | Example to SAVE: | ' | --------------- | ' | REDIM DaBigScreen$(25): REDIM DaBigColor%(25, 80) | ' | CALL SaveRestScrn(DaBigScreen$(), DaBigColor%(), 1, 1, 25, 80, 1) | ' | | ' | Example to RESTORE: | ' | ------------------ | ' | CALL SaveRestScrn(DaBigScreen$(), DaBigColor%(), 1, 1, 25, 80, 2) | ' | ERASE DaBigScreen$: ERASE DaBigColor% | ' +---------------------------------------------------------------------+ IF SR.LR.Col% > 80 THEN SR.LR.Col% = 80 END IF IF SR.LR.Row% > 25 THEN SR.LR.Row% = 25 END IF IF SaveOrRest% = 1 OR SaveOrRest% = 3 THEN GOSUB save.scrn ELSEIF SaveOrRest% = 2 THEN GOSUB restore.scrn END IF EXIT SUB save.scrn: FOR ViewIt% = SR.UL.Row% TO SR.LR.Row% FOR Horizon% = SR.UL.Col% TO SR.LR.Col% ReadLine$(ViewIt%) = ReadLine$(ViewIt%) + CHR$(SCREEN(ViewIt%, Horizon%)) ReadColr%(ViewIt%, Horizon%) = SCREEN(ViewIt%, Horizon%, 1) NEXT NEXT RETURN restore.scrn: FOR FindRow% = SR.UL.Row% TO SR.LR.Row% FOR ScrnCol% = SR.UL.Col% TO SR.LR.Col% LOCATE FindRow%, ScrnCol%, 0 OneColr% = ReadColr%(FindRow%, ScrnCol%) FGScrnColr% = OneColr% MOD 16 BGScrnColr% = OneColr% \ 16 COLOR FGScrnColr%, BGScrnColr% PRINT MID$(ReadLine$(FindRow%), ScrnCol% - (SR.UL.Col% - 1)); NEXT NEXT RETURN END SUB SUB TinyBox (ULRow, ULCol, LRRow, LRCol, BoxFGColr, BoxBGColr, SingOrDoub) ' +----------------------------------------------------------------------+ ' | SUB TinyBox | ' +----------------------------------------------------------------------+ ' | ULRow = Upper Left Row. ULCol = Upper Left Column. | ' | LRRow = Lower Right Row. LRCol = Lower Right Column. | ' | BoxFGColr = The Foreground Color The Box. | ' | BoxBGColr = The Back Ground Color Of The Box. | ' | SingOrDoub = 0 (No line around box) | ' | SingOrDoub = 1 (Single Line Box). SingOrDoub = 2 (Double Line Box). | ' +----------------------------------------------------------------------+ COLOR BoxFGColr, BoxBGColr IF SingOrDoub = 0 THEN FOR BoxY = ULRow + 1 TO LRRow - 1 LOCATE BoxY, ULCol, 0 PRINT STRING$(LRCol + 1 - ULCol - 1, " "); NEXT ELSEIF SingOrDoub = 1 THEN LOCATE ULRow, ULCol PRINT CHR$(218) + STRING$(LRCol - ULCol, CHR$(196)) + CHR$(191); FOR BoxY = ULRow + 1 TO LRRow - 1 LOCATE BoxY, ULCol, 0 PRINT CHR$(179) + STRING$(LRCol - ULCol, " ") + CHR$(179); NEXT LOCATE LRRow, ULCol PRINT CHR$(192) + STRING$(LRCol - ULCol, CHR$(196)) + CHR$(217); ELSEIF SingOrDoub = 2 THEN LOCATE ULRow, ULCol, 0 PRINT CHR$(201) + STRING$(LRCol - ULCol, CHR$(205)) + CHR$(187); FOR BoxY = ULRow + 1 TO LRRow - 1 LOCATE BoxY, ULCol, 0 PRINT CHR$(186) + STRING$(LRCol - ULCol, " ") + CHR$(186); NEXT LOCATE LRRow, ULCol, 0 PRINT CHR$(200) + STRING$(LRCol - ULCol, CHR$(205)) + CHR$(188); END IF END SUB