'---------------------------------------------------------------------------- '------------------------------ Windows R-E-Z Demo -------------------------- '------------------------------ CONNECT Software ---------------------------- '------------------------------ Nov. 01, 1990 ------------------------------- '---------------------------------------------------------------------------- '------------------------------ Copyright 1988,1989,1990 -------------------- '------------------------------ By: CONNECT Software ------------------------ '------------------------------ All rights reserved ------------------------- '---------------------------------------------------------------------------- ' ' **** VER 4.00 ------- LAST UPDATE ------- 11/01/1990 **** ' '*************************************************************************** '**** THIS PROGRAM MUST BE USED ONE OF THE FOLLOWING LIBRARIES: **** '**** FOR QB4.+ UNENHANCED VERSION USE QB4UNEN.QLB **** '**** FOR BASIC 7.+ UNENHANCED VERSION USE PDSUNEN.QLB **** '**** FOR QB4.+ ENHANCED VERSION USE QB4ALL.QLB OR QB4NER.QLB **** '**** FOR BASIC 7.0 ENHANCED VERSION USE PDSALL70.QLB OR PDSNER70.QLB **** '**** FOR BASIC 7.1 ENHANCED VERSION USE PDSALL71.QLB OR PDSNER71.QLB **** '**** LOAD QB OR QBX WITH THE /L OPTION USING THE CORRECT LIBRARY **** '*************************************************************************** DECLARE SUB LINEW (ROW%, TYP%) DECLARE SUB CHNGPULL (BAR%, WIND%, ATTR%) DECLARE SUB GETANS (TEXT$, CHOICE$, ANS$, TR%, LC%, ATTR%, BORDER%) DECLARE SUB FINDPATH (PATH$) DECLARE SUB FINDDIR (PATH$, TYPE$, F%) DECLARE SUB DISKSIZE (DISK%, DISKSZE&, FREESPACE&) DECLARE SUB CLRWIND () DECLARE SUB DOSOUND () DECLARE SUB NEWCOLOR (ATTR%) DECLARE SUB PRINTW (TEXT$, TR%, LC%) DECLARE SUB INPTWIND (PROMPT$, CODE$, TR%, LC%, WD%, ATTR%, RESTRICT$, RTRN$, BRD%) DECLARE SUB MULTINPT (SCRN%, FLD%, EXIT$, AUTOEXIT%, RTRN$()) DECLARE SUB SETINPT (SCRN%, WD%, EXIT$, INPT%(), INPT$(), BACKCOL%) DECLARE SUB DELWIND (W%) DECLARE SUB PULLDOWN (A%, B%, ATTR%, HATTR%, BORDER%) DECLARE SUB SETPULL (BAR$, PWIND$()) DECLARE SUB SCRLWIND (LIST$(), ENTRIES%, RTRN$, RTRN%, HIATTR%) DECLARE SUB RSTRWIND (W%, DELFLAG%) DECLARE SUB MAKEWIND (W%, LABEL$, TR%, LC%, WD%, NR%, ATTR%, BORDER%) DECLARE SUB SETWIND (FAST%, SND%, SHADCOL%, NOHI%, DOT%) DECLARE SUB SAVEWIND (W%, TR%, LC%, WD%, NR%) DECLARE FUNCTION MARKED% (RTRN$, START%) DECLARE SUB GETDISK (DR%) DECLARE SUB WINDSTATUS () DECLARE SUB CHNGWIND (W%) '-------- MUST BE IN ANY MODULE USING "FINDDIR" DIRECTORY ROUTINE -------- TYPE DIREC SIZE AS LONG ' SIZE DATE AS STRING * 10 ' DATE TIME AS STRING * 6 ' TIME ATTR AS INTEGER ' ATTRIBUTE END TYPE COMMON SHARED /DIRECTORY/ DIREC$(), DIRINFO() AS DIREC '--------------------------------------------------------------------------- REALSTART: PREFLAG% = 1: A% = 15 ON ERROR GOTO DISKERROR CALL FINDPATH(PATH$) PREFLAG% = 0 ON ERROR GOTO 0 WIDTH 80 CLS '-------------------- SET DATA FOR MULTIPLE SCROLL WINDOWS ------------------ DIM SRTRN1$(4), SRTRN2$(5), SRTRN3$(4), SRTRN4$(1), SRTRN5$(1) DIM SWIND%(6), STR%(6), SLC%(6), SWID%(6), SNR%(6), SENTRIES%(6) DIM ST$(6) FOR y% = 1 TO 6 ' 5 SCROLL WINDOWS + TITLES READ SWIND%(y%) READ STR%(y%) READ SLC%(y%) READ SWID%(y%) READ SNR%(y%) READ SENTRIES%(y%) ' ENTRIES FOR EACH SCROLL WINDOW FOR X% = 1 TO SENTRIES%(y%) SELECT CASE y% CASE 1 READ SRTRN1$(X%) CASE 2 READ SRTRN2$(X%) CASE 3 READ SRTRN3$(X%) CASE 4 READ SRTRN4$(X%) CASE 5 READ SRTRN5$(X%) CASE 6 READ ST$(X%) CASE ELSE END SELECT NEXT NEXT ' DATA FOR EACH SCROLL WINDOW AND TITLES ' WINDOW#,TOPROW,LEFT COLUMN,WIDTH,ROWS,ENTRIES, ITEMS....... DATA 16,5,16,12,8,4,COLONIAL,SPLIT,BI-LEVEL,RANCH DATA 17,5,36,10,9,5,WHITE,BLUE,TAN,BROWN,YELLOW DATA 18,5,54,12,8,4,NORTH,SOUTH,EAST,WEST DATA 19,14,24,14,3,1,"----OK----" DATA 20,14,43,14,3,1,"--CANCEL--" DATA 0,0,0,0,0,3," TYPE"," COLOR"," LOCATION" '--------------------- SET DATA FOR SCROLL WINDOW DEMO ---------------------- DIM SCROLL$(20) ' READ DATA FOR SCROLL WINDOW DEMO FOR X% = 1 TO 20 ' " READ SCROLL$(X%) ' " NEXT ' " '***** DATA FOR SCROLL WINDOW DEMO ***** DATA This is a sample of a scroll window. DATA Us@e the UP and DOWN arrow keys to DATA scr@oll through the window or press DATA the d@ifferently colored letter to DATA to make@ a selection. Press RETURN DATA or ENTER t@o return the selected DATA item if the s@croll window is a REG- DATA ULAR scroll win@dow. If AUTO-EXIT is DATA ON the item will b@e returned auto- DATA matically provided t@he differently DATA colored letter of an i@tem was selec- DATA ted. Pressing the END K@EY or HOME DATA KEY moves the scroll bar to t@he last DATA or first item in the list. With@ the DATA MARK option ON the "+" or "-" key@s DATA mark or unmark individual items i@n DATA the scroll window. The PRINT@ key or DATA SPACE BAR marks or unmark@s all DATA items. Press ECS to retu@rn to the DATA pulldown menu@. '------------------ SET DATA FOR PULLDOWN WINDOWS ----------------------- BAR$ = "Windows Input Print Directory Sound Color Version" ' SET PULLDOWN B% = 200 ' WINDOWS MENUBAR REDIM PWIND$(B%) ' AND READ DATA TEMP% = 0 ' FOR PULLDOWN WHILE PWIND$(TEMP%) <> "ENDPULL" ' WINDOWS. TEMP% = TEMP% + 1 READ PWIND$(TEMP%) WEND '***** DATA FOR PULLDOWN WINDOW DEMO ***** DATA Window Management System,Window T@ypes,-,Multiple S@croll windows ( Single mark ),Regular Scroll window, Auto-exit Scroll window, Mark Scroll window,-,Get answer windows,-,Ex@it, *** DATA Multi-field input , Input window,*** DATA Print in a window, Print in M@ultiple windows,-,Slow print ( Eliminates screen snow or flicker ), Fast print,*** DATA Directory routines,*** DATA Beep,Click,No sound,*** DATA Black and white,Color,No hi-intensity (Black & white),*** DATA WINDOWS R-E-Z - Ver. 4.00,-, Last update = 11/01/1990,-,CONNECT Software,*** DATA ENDPULL CALL SETPULL(BAR$, PWIND$()) ' SET UP PULLDOWN WINDOWS ERASE PWIND$ ' ERASE TEMPORARY ARRAY HOLD- ' ING PULLDOWN WINDOW DATA. '------- ONE METHOD TO SET FIELD DATA FOR MULTI-FIELD INPUT SCREEN. --------- '------- THIS SETS THE FIRST 2 ROWS OF MULTI-FIELD INPUT SCREEN #1. -------- A% = 150: REDIM INPT%(A%) ' INPT%() AND INPT$ HOLD DATA A% = 25: REDIM INPT$(A%) ' FOR FIELDS y% = 1 ' Y% FOR INPT%() FLD% = 1 ' FLD% FOR INPT$() FOR Z% = 5 TO 65 STEP 15 ' COLUMNS FOR X% = 6 TO 8 STEP 2 ' ROWS INPT%(y%) = INT((Z% - 5) / 15) ' CODE IF X% = 8 THEN INPT%(y%) = INPT%(y%) + 10 ' PADDED INPT%(y% + 1) = X% ' TOP ROW INPT%(y% + 2) = Z% ' LEFT COLUMN INPT%(y% + 3) = 10 ' WIDTH INPT%(y% + 4) = 15 ' ATTRIBUTE INPT%(y% + 5) = 99 ' CHECK INPT$(FLD%) = "" ' RESTRICT$ y% = y% + 6: FLD% = FLD% + 1 NEXT NEXT '------------------- CONTINUE SETTING FIELD DATA ---------------------------- '---------- THIS TIME USING READ AND DATA STATEMENTS --------------------- DO READ INPT%(y%) IF INPT%(y%) = 9999 THEN EXIT DO y% = y% + 1 FOR X% = 1 TO 5 READ INPT%(y%) y% = y% + 1 NEXT READ INPT$(FLD%) FLD% = FLD% + 1 LOOP DATA 17,10,5,20,15,99,"" DATA 27,10,31,20,15,99,"" DATA 7,10,55,20,15,99,"" DATA 1017,14,22,1,15,99,"MF" DATA 1017,14,38,1,15,99,"YN" DATA 1010,14,60,3,15,99,"" DATA 1010,14,64,2,15,99,"" DATA 1010,14,67,4,15,99,"" DATA 21000,18,20,6,15,99,"" DATA 21000,20,20,6,15,99,"" DATA 100,22,20,7,15,99,"" DATA 21000,18,60,6,15,99,"" DATA 21000,20,60,6,15,99,"" DATA 100,22,60,7,15,99,"" DATA 9999 CALL SETINPT(1, 80, "120", INPT%(), INPT$(), 0) ' SET UP MULTI-INPUT SCREEN #1 '---------------------------------------------------------------------------- DIM MRTRN1$(25), MRTRN2$(15) ' FOR MULTI-FIELD INPUT DEMO FAST% = 1 ' FAST PRINT SND% = 1 ' "CLICK" SOUND SHADCOL% = 7 ' BLACK/WHITE WINDOW SHADOWS NOHI% = 0 ' HI-INTENSITY ON GOSUB SETPARAMETERS '----------------------------- INTRODUCTION SCREEN -------------------------- MAKEWIND 0, "", 2, 1, 80, 24, 112, 1 A$ = "WINDOWS R-E-Z ------ WINDOWS R-E-Z ------ WINDOWS R-E-Z ------ WINDOWS R-E-Z" B$ = "----------------------------------------------------------------------------" FOR X% = 1 TO 21 STEP 2 PRINTW A$, X%, 2 PRINTW B$, X% + 1, 2 NEXT INTRO: MAKEWIND 2, "@*** New for WINDOWS R-E-Z -- Version 4.00 ***", 3, 100, 75, 12, 15, 111 PRINTW "- Dynamically allocated window memory. No wasted memory!", 1, 2 PRINTW "- Expanded directory routine finds file size, date, time and attributes.", 2, 2 PRINTW "- Window shadows ( color selectable ) for all window routines.", 3, 2 PRINTW "- INPUT windows with title boxes. GET ANSWER routine without a window.", 4, 2 PRINTW "- Selectable borders for PULLDOWN, INPUT and GET ANSWER windows.", 5, 2 PRINTW "- Selectable color for active field in MULTI-FIELD INPUT routine.", 6, 2 PRINTW "- Foreign characters, optional comma as decimal point in input routines.", 7, 2 PRINTW "- Many other enhancements with LESS CODE! --- SEE READ.ME", 8, 2 MAKEWIND 1, "@WINDOWS R-E-Z Demonstration", 14, 100, 39, 6, 15, 112 PRINTW "CONNECT Software", 1, 100 PRINTW "Nov. 01, 1990", 2, 100 ONE: GETANS "Color or Monochrome? (C/M)", "CM", ANS$, 20, 100, 143, 12 IF ANS$ = CHR$(27) THEN GOTO ONE IF ANS$ = "M" THEN DEMOATTR% = 112 SHADCOL% = 7 ELSE CALL CHNGPULL(6, 1, 0) DEMOATTR% = 0 SHADCOL% = 8 END IF GOSUB SETPARAMETERS RSTRWIND 1, 1 RSTRWIND 2, 1 '----------------- SET DATA FOR SECOND MULTI-FIELD INPUT SCREEN ------------- PREMAIN.MENU: RESTORE PREMAIN.MENU A% = 72: REDIM INPT%(A%) ' INPT%() AND INPT$ HOLD DATA A% = 12: REDIM INPT$(A%) ' FOR FIELDS y% = 1: FLD% = 1: Z% = 112 DO READ INPT%(y%) IF INPT%(y%) = 9999 THEN EXIT DO y% = y% + 1 FOR X% = 1 TO 5 READ INPT%(y%) y% = y% + 1 NEXT READ INPT$(FLD%) FLD% = FLD% + 1 LOOP '***** DATA FOR SECOND MULTI-FIELD INPUT SCREEN ***** DATA 10007,9,25,40,112,99,"" DATA 10007,10,25,30,112,99,"" DATA 10007,11,25,30,112,99,"" DATA 10010,11,64,5,112,99,"" DATA 10008,13,27,10,112,99,"" DATA 11010,13,65,3,112,99,"" DATA 11010,13,69,2,112,99,"" DATA 10010,13,72,4,112,99,"" DATA 10001,16,36,8,112,99,"" DATA 10002,16,53,8,112,99,"" DATA 10003,16,70,8,112,99,"" IF DEMOATTR% = 0 THEN FOR X% = 5 TO 65 STEP 6 INPT%(X%) = 71 NEXT END IF DATA 9999 CALL SETINPT(2, 80, "120", INPT%(), INPT$(), 15) ' SET UP MULTI-INPUT SCREEN #2 AND ERASE INPT% ' ERASE TEMPORARY ARRAYS ERASE INPT$ '---------------------------------------------------------------------------- PREMAIN.MENU2: IF DEMOATTR% = 112 THEN A% = 112 ELSE A% = 120 '-------------- MAIN MENU WINDOW ---- USES PULLDOWN ROUTINE ----------------- MAIN.MENU: A% = 23: GOSUB COL MAKEWIND 1, "@***** Instructions *****", 12, 100, 65, 12, A%, 112 PRINTW " This is an example of PULLDOWN WINDOWS supplied with", 1, 3 PRINTW "WINDOWS R-E-Z. Use the pulldown windows to see all of the", 2, 3 PRINTW "features available. Strike the first letter of the menubar", 3, 3 PRINTW "item or use the arrow keys to make a choice. Then press the", 4, 3 PRINTW "differently colored letter of the pulldown window item or", 5, 3 PRINTW "or use the arrow keys to select the demonstration you would", 6, 3 PRINTW "like to see. If the arrow keys are used to select an item", 7, 3 PRINTW "press the key to finalize the selection.", 8, 3 A% = 113: GOSUB COL: IF A% = 15 THEN A% = 112: HATTR% = 127 ELSE HATTR% = 116 PULL: PULLDOWN BAR%, WIND%, A%, HATTR%, 11 ' PULLDOWN WINDOWS IF BAR% = 0 OR BAR% = 7 THEN GOTO PULL ' ESC OR VERSION RSTRWIND 1, 1 SELECT CASE BAR% '--------------------------- SCROLL WINDOW DEMO ----------------------------- CASE 1 'WINDOWS OPTION FROM PULLDOWN MENUBAR SELECT CASE WIND% CASE 4 'MULTIPLE SCROLL WINDOWS - SINGLE MARK A% = 116: GOSUB COL: IF A% = 15 THEN A% = 112 MAKEWIND 14, "@Multiple Scroll Windows", 1, 1, 80, 25, A%, 102 A% = 79: GOSUB COL MAKEWIND 15, "@[ Instructions ]", 17, 100, 54, 7, A%, 12 PRINTW "Use the UP ARROW or DOWN ARROW to select an item.", 1, 2 PRINTW "Press TAB to move to the next scroll window or to", 2, 2 PRINTW "move to OK or CANCEL. Press ENTER or RETURN with", 3, 2 PRINTW "the scroll bar on OK or CANCEL to finalize or can-", 4, 2 PRINTW "the selections. ESC cancels all selections.", 5, 2 A% = 116: GOSUB COL FOR X% = 1 TO 5 ' MAKE WINDOWS FOR SCROLL WINDOWS IF X% > 3 THEN BRD% = 11 ELSE BRD% = 111 CALL MAKEWIND(SWIND%(X%), ST$(X%), STR%(X%) - 1, SLC%(X%), SWID%(X%), SNR%(X%), A%, BRD%) NEXT KIND$ = "SV" ' FIRST PASS - ALL "VIEW" SCROLL ' WINDOWS ( PRINT AND EXIT ) MSCROLL: CHNGWIND 16 SCRLWIND SRTRN1$(), 4, KIND$, R1%, 0 ' TYPE SCROLL WINDOW IF R1% = 0 THEN GOTO NOCHANGE ' WAS ESC CHNGWIND 17 SCRLWIND SRTRN2$(), 5, KIND$, R2%, 0 ' COLOR SCROLL WINDOW IF R2% = 0 THEN GOTO NOCHANGE ' WAS ESC CHNGWIND 18 SCRLWIND SRTRN3$(), 4, KIND$, R3%, 0 ' LOCATION SCROLL WINDOW IF R3% = 0 THEN GOTO NOCHANGE ' WAS ESC CHNGWIND 19 SCRLWIND SRTRN4$(), 1, KIND$, R4%, 0 ' ----OK---- SCROLL WINDOW IF KIND$ = "S" THEN ' NOT "VIEW" IF R4% = 1 GOTO DSCRL ' WAS ENTER IF R4% = 0 THEN GOTO NOCHANGE ' WAS ESC ELSE ' KIND$ = "SV" FOR VIEW PR1% = R1%: PR2% = R2%: PR3% = R3% ' ONLY SCROLL WINDOWS. END IF CHNGWIND 20 SCRLWIND SRTRN5$(), 1, KIND$, R5%, 0 ' -CANCEL- SCROLL WINDOW IF KIND$ = "SV" OR R5% = -1 THEN ' WAS VIEW ONLY OR TAB KIND$ = "S" ' MAKE SINGLE MARK SCROLL GOTO MSCROLL ' WINDOWS FOR SUBSEQUENT END IF ' PASSES. ' GO TO NOCHANGE IF R5%=1 OR R5%=0 NOCHANGE: R3% = PR3%: R2% = PR2%: R1% = PR1% ' RETURN PREVIOUS VALUES GOTO CLRSCRL DSCRL: A% = 79: GOSUB COL RSTRWIND 15, 1: RSTRWIND 19, 1: RSTRWIND 20, 1 MAKEWIND 18, "@SELECTIONS:", 14, 100, 30, 7, A%, 111 PRINTW "TYPE: " + SRTRN1$(R1%), 1, 3 PRINTW "COLOR: " + SRTRN2$(R2%), 2, 3 PRINTW "LOCATION: " + SRTRN3$(R3%), 3, 3 GETANS "Press any key.....", "", "", 21, 100, A% + 128, 11 CLRSCRL: RSTRWIND 14, 1 FOR X% = 20 TO 15 STEP -1 DELWIND X% NEXT CASE 5 ' REGULAR SCROLL WINDOW RTRN$ = "": OP% = 3: MARK% = 0 OPT$ = "REGULAR" GOTO SCROLLDEMO CASE 6 ' AUTO-EXIT RTRN$ = "A": OP% = 1: MARK% = 0 OPT$ = "AUTO-EXIT (ON)" GOTO SCROLLDEMO CASE 7 ' MARK RTRN$ = "M": OP% = 2: MARK% = 1 OPT$ = "MARK (ON)" GOTO SCROLLDEMO SCROLLDEMO: RSTRWIND 1, 1 IF RTRN$ = CHR$(27) THEN GOTO MAIN.MENU ' ESC A% = 116: GOSUB COL: IF A% = 15 THEN : HIATTR% = 15 ELSE HIATTR% = 113 MAKEWIND 2, "@" + OPT$ + " SCROLL WINDOW", 6, 100, 40, 11, A%, 122 RTRN% = 0 IF A% = 15 THEN NEWCOLOR 7 SCRLWIND SCROLL$(), 20, RTRN$, RTRN%, HIATTR% IF RTRN% = 0 THEN GOTO DONESCROLL ' ESC A% = 71: GOSUB COL IF MARK% = 1 THEN TR% = 2: NR% = 22: TEXT$ = "@[ ** THE MARKED ITEM(S) WERE: ** ]": BR% = 21 RSTRWIND 2, 1 ELSE TR% = 19: NR% = 5: TEXT$ = "@The item selected was:": BR% = 121 END IF MAKEWIND 3, TEXT$, TR%, 100, 40, NR%, A%, BR% IF MARK% = 1 THEN IF RTRN$ = "" THEN PRINTW "NO ITEMS WERE MARKED!", 10, 100 ELSE TR% = 1: START% = 1 ' START SEARCH AT POSITION 1 DO B% = MARKED%(RTRN$, START%) ' B%= MARKED ITEM # IN SCROLL$() IF B% <> 0 THEN S$ = SCROLL$(B%): GOSUB NEWSTR: PRINTW S$, TR%, 2 ELSE EXIT DO END IF TR% = TR% + 1 LOOP END IF ELSE S$ = SCROLL$(RTRN%): GOSUB NEWSTR PRINTW S$, 1, 100 END IF GETANS "[ Press any key ]", "", ANS$, 23, 100, 240, 0 RSTRWIND 3, 1 DONESCROLL: RSTRWIND 2, 1 '---------------------------- GET ANSWER DEMO ------------------------------- CASE 9 'GET ANSWER DEMO A% = 87: GOSUB COL MAKEWIND 1, "@***** Get Answer Window Demonstration *****", 4, 100, 64, 10, A%, 132 PRINTW " Get answer windows can be used to ask a question and", 1, 100 PRINTW "wait for a valid single key from a selection of single keys", 2, 100 PRINTW "to be pressed as shown by this example. They can also be", 3, 100 PRINTW "used to pause a program and wait for any key to be pressed.", 4, 100 PRINTW "Prompts may be windowed or printed without a window. The", 5, 100 PRINTW "area under the prompt or window is restored upon exit.......", 6, 100 GETANS "[ Press A,B or C to continue.. ]", "ABC", ANS$, 13, 100, 240, 0 IF ANS$ = CHR$(27) THEN GOTO ENDGET GETANS "Are you sure? (Y/N)", "YN", ANS$, 16, 30, A%, 32 IF ANS$ = CHR$(27) THEN GOTO ENDGET IF ANS$ = "Y" THEN TEMP$ = "YES" ELSE TEMP$ = "NO" MAKEWIND 2, "", 16, 28, 25, 3, A%, 32 PRINTW "Your reply was: " + TEMP$, 1, 100 A% = 71: GOSUB COL GETANS "Press any key........", "", ANS$, 21, 28, A% + 128, 32 ENDGET: RSTRWIND 2, 1 RSTRWIND 1, 1 CASE 11 ' EXIT CLS END '---------------------------- WINDOW MANAGER DEMO --------------------------- CASE 1 'WINDOW MANAGER DEMO A% = 71: GOSUB COL MAKEWIND 20, "@***** Window Demonstration *****", 3, 4, 72, 14, A%, 111 PRINTW " Window memory is dynamically allocated. No extra memory has to be", 1, 2 PRINTW "reserved. The memory is outside of BASIC'S normal data storage", 2, 2 PRINTW "area leaving this area for the BASIC program's data. WINDOWS R-E-Z", 3, 2 PRINTW "manages the storage area when a window is made or saved. There is", 4, 2 PRINTW "no need for the programmer to place the saved window area in an", 5, 2 PRINTW "array or string with WINDOWS R-E-Z. A maximum of 20 windows may be", 6, 2 PRINTW "saved. WINDOWS R-E-Z reports any errors ( i.e. WINDOW WONT FIT ) it", 7, 2 PRINTW "encounters minimizing chances for programming mistakes. Windows may", 8, 2 PRINTW "have single lined, double lined, or no border. Window titles may be", 9, 2 PRINTW "on the top border or positioned in a box in the top of the window.", 10, 2 A% = A% + 128 GETANS "Press any key.......", "", ANS$, 16, 28, A%, 11 RSTRWIND 20, 1 A% = A% - 128 MAKEWIND 20, "@***** Window Demonstration Instructions *****", 3, 5, 71, 6, A%, 12 PRINTW " Press the UP ARROW to generate up to 19 windows at random", 1, 2 PRINTW "locations. The area covered by the window is saved in memory. Press", 2, 2 PRINTW "the DOWN ARROW to remove windows and restore the screen in reverse", 3, 2 PRINTW "order. Press ESC to return to the main menu. ", 4, 2 RANDOMIZE TIMER MAXWIND% = 19 WIND% = 0 GETMAKE: TEMP$ = INKEY$: IF TEMP$ = "" THEN GOTO GETMAKE IF TEMP$ = CHR$(27) THEN FOR X% = 20 TO 1 STEP -1 CALL RSTRWIND(X%, 1) NEXT 'CALL RSTRWIND(20, 1) GOTO MAIN.MENU END IF TR% = INT(13 * RND + 10): T% = TR% LC% = INT(60 * RND + 3): l% = LC% NR% = INT((25 - TR% - 3) * RND + 3) WI% = INT((80 - LC% - 16) * RND + 16) BO% = INT((2) * RND + 100) + 1 IF TEMP$ = CHR$(0) + "H" THEN IF WIND% < MAXWIND% THEN WIND% = WIND% + 1 ELSE CALL DOSOUND: GOTO GETMAKE A% = WIND% * 16: IF A% = 128 OR A% = 256 THEN A% = 135 IF A% > 127 THEN A% = A% - 128 GOSUB COL: IF A% = 15 THEN IF WIND% / 2 <> INT(WIND% / 2) THEN A% = 112 IF NR% < 8 OR BO% = 100 THEN BO% = BO% - 100 MAKEWIND WIND%, "@Demo Window" + STR$(WIND%), TR%, LC%, WI%, NR%, A%, BO% END IF IF TEMP$ = CHR$(0) + "P" THEN IF WIND% > 0 THEN RSTRWIND WIND%, 1 WIND% = WIND% - 1 ELSE CALL DOSOUND END IF END IF GOTO GETMAKE CASE 2 SAVEWIND 13, 3, 4, 74, 20 A% = 16: GOSUB COL MAKEWIND 14, "@*** Standard windows ****", 3, 100, 68, 6, A%, 111 PRINTW "Standard windows may have single lined, double lined or", 1, 100 PRINTW "blank borders. The window's title is printed on the top line.", 2, 100 PASS% = 0: GOSUB WINDTYPE MAKEWIND 0, "@*** Title box windows ****", 3, 100, 68, 6, A%, 111 PRINTW "Title box windows may have single lined, double lined or", 1, 100 PRINTW "blank borders. The window's title is printed in the title box.", 2, 100 PASS% = 1: GOSUB WINDTYPE MAKEWIND 0, "@*** Shadowed windows ****", 3, 100, 68, 6, A%, 111 PRINTW "Windows may be optionally shadowed.", 1, 100 PRINTW "The shadow can be in any of the four possible directions.", 2, 100 FOR SHAD% = 1 TO 4 SPASS% = 1 GOSUB WINDTYPE NEXT SHAD% = 0 GOTO ENDTYPE WINDTYPE: Z% = 0: IF SPASS% = 1 THEN PASS% = 1 FOR X% = 10 TO 54 STEP 22 IF A% <> 15 THEN A% = A% + 16 IF PASS% = 0 THEN A1$ = "[": A2$ = "]" ELSE A1$ = "": A2$ = "" T$ = A1$ + "Title" + A2$ CALL MAKEWIND(15 + Z%, "@" + T$, 12, X%, 16, 10, A%, PASS% * 100 + SHAD% * 10 + Z%) Z% = Z% + 1: IF SPASS% = 1 THEN y% = y% + 10 NEXT A% = 16: GOSUB COL GETANS "[ Press any key ]", "", "", 8, 100, 240, 0 IF SPASS% = 1 THEN RSTRWIND 17, 1 RSTRWIND 16, 1 RSTRWIND 15, 1 SPASS% = 0 END IF RETURN ENDTYPE: RSTRWIND 13, 1 FOR X% = 14 TO 17 DELWIND X% NEXT CASE ELSE END SELECT '------------------------- MULTI FIELD INPUT DEMO --------------------------- CASE 2 'MULTI-FIELD INPUT DEMO SELECT CASE WIND% CASE 1 A% = 71: GOSUB COL: IF A% = 15 THEN A% = 112 MAKEWIND 20, "@***** Multi-field Input Demonstration *****", 4, 4, 72, 9, A%, 112 PRINTW " Up to ten multi-field input screens may be defined using up to", 1, 2 PRINTW "100 input fields per screen. Each field may vary in length from", 2, 2 PRINTW "1 to 79 characters. Fields may be designated as alpha/numeric, num-", 3, 2 PRINTW "eric with 0 to 6 decimal places, date, or protected (no entry).", 4, 2 PRINTW "Complete editing features are incorporated.", 5, 2 GETANS "Press any key.......", "", ANS$, 13, 100, A% + 128, 11 RSTRWIND 20, 1 IF ANS$ = CHR$(27) THEN GOTO ALLDONE MAKEWIND 20, "@F1 - Next Input Screen F2 - Main Menu F10 - Help", 1, 1, 80, 25, A%, 102 IF MULTPASS% = 0 THEN MRTRN2$(1) = "CONNECT SOFTWARE" MRTRN2$(2) = "6192 FAWN MEADOW" MRTRN2$(3) = "FARMINGTON, NY" MRTRN2$(4) = "14425" MRTRN2$(5) = "10/01/1990" MRTRN2$(9) = "123,1" MRTRN2$(10) = "123,12" MRTRN2$(11) = "123,123" MULTPASS% = 1 END IF SCRN% = 1: FLD1% = 1: FLD2% = 1 MAKEINPT: AUTOEXIT% = 0 IF SCRN% = 1 THEN DECPOINT% = 1: Q% = 1: GOSUB SETPARAMETERS NEWCOLOR A% CLRWIND PRINTW "Decimal(0) Decimal(1) Decimal(2) Decimal(3) Decimal(4)", 2, 4 PRINTW "(---------------- Numeric and padded with leading zeros -------------) ", 4, 4 PRINTW "Alpha/num. Upper case Alpha/num. Lower case Alpha/numeric", 6, 4 PRINTW "*** Auto-advance fields -- Cursor moves to the next field automatically ***", 9, 100 PRINTW "(-- Restricted Input --)", 10, 14 PRINTW "A ( Fields are Decimal(0) ) D", 15, 17 PRINTW "+ +", 16, 17 PRINTW "B E", 17, 17 NEWCOLOR 15 PRINTW "*** PRESS F1 FOR MORE ***", 17, 28 PRINTW "*** AUTO-EXIT EXAMPLES. ***", 18, 28 NEWCOLOR A% PRINTW "=C =F", 19, 16 PRINTW "M or F: Y or N: SOC SECURITY #.. - -", 11, 100 PRINTW "** Auto-exit ( On change only ) and Auto-advance fields. (A,B,D,E) **", 13, 100 PRINTW "** Single field update (protected fields-C,F) allows fast exit and return **", 14, 100 PRINTW "If formatted number won't fit, field and input screen cannot be exited.", 21, 4 MAKE1: MULTINPT 1, FLD1%, EXIT$, AUTOEXIT%, MRTRN1$() IF AUTOEXIT% <> 0 THEN SELECT CASE AUTOEXIT% CASE 19, 20 AUTOEXIT% = 21 ' ONLY UPDATA THIS FIELD MRTRN1$(21) = STR$(VAL(MRTRN1$(19)) + VAL(MRTRN1$(20))) IF MRTRN1$(19) = "" AND MRTRN1$(20) = "" THEN MRTRN1$(21) = "" CASE 22, 23 AUTOEXIT% = 24 ' ONLY UPDATA THIS FIELD MRTRN1$(24) = STR$(VAL(MRTRN1$(22)) + VAL(MRTRN1$(23))) IF MRTRN1$(22) = "" AND MRTRN1$(23) = "" THEN MRTRN1$(24) = "" CASE ELSE END SELECT IF EXIT$ = "AUTO" GOTO MAKE1 END IF IF EXIT$ = "F10" THEN GOSUB HELP: GOTO MAKE1 END IF IF SCRN% = 2 THEN DECPOINT% = 0: Q% = 1: GOSUB SETPARAMETERS CLRWIND PRINTW "*** ---------- All fields are Auto-exit ( Always ) fields.---------- ***", 2, 100 PRINTW "*** The instruction line is made possible by using Auto-exit fields. ***", 3, 100 LINEW 4, 1 LINEW 11, 1 PRINTW "NAME..............", 6, 5 PRINTW "ADDRESS...........", 7, 5 PRINTW "CITY / STATE......", 8, 5 PRINTW "DATE...(mm/dd/yyyy).. SOC. SECURITY # ... - -", 10, 5 PRINTW "ZIP.....", 8, 56 PRINTW "Decimal 1 Decimal 2 Decimal 3", 12, 35 PRINTW "Comma as decimal ( foreign ):", 13, 5 LINEW 14, 1 PRINTW "*** In this example the active field is set as a different color ***", 15, 100 PRINTW "*** than the inactive fields. This option allows fields to be ***", 16, 100 PRINTW "*** placed on consecutive rows without blending into each other. ***", 17, 100 PRINTW "*** It draws the user's attention to the active field and cursor. ***", 18, 100 LINEW 20, 1 NEWCOLOR 15 PRINTW SPACE$(78), 21, 100 MAKE2: SELECT CASE FLD2% CASE 1 I$ = "INPUT YOUR NAME" CASE 2 I$ = "INPUT YOUR STREET ADDRESS" CASE 3 I$ = "INPUT YOUR CITY AND STATE" CASE 4 I$ = "INPUT YOUR ZIP CODE" CASE 5 I$ = "FIELD CAN NOT BE EXITED IF DATE FORMAT IS NOT CORRECT!" CASE 6, 7, 8 I$ = "INPUT YOUR SOC. SEC. NUMBER" CASE 9, 10, 11 I$ = "FIELD CAN NOT BE EXITED IF FORMATED NUMBER WILL NOT FIT!" CASE ELSE END SELECT PRINTW " ", 21, 30 PRINTW "INSTRUCTIONS: " + I$, 21, 2 MULTINPT 2, FLD2%, EXIT$, AUTOEXIT%, MRTRN2$() AUTOEXIT% = 1 IF EXIT$ = "F10" THEN GOSUB HELP: GOTO MAKE2 IF EXIT$ = "AUTO" THEN GOTO MAKE2 END IF IF EXIT$ = "F1" THEN IF SCRN% = 1 THEN SCRN% = 2 ELSE NEWCOLOR A% LINEW 4, 0: LINEW 13, 0: LINEW 20, 0 SCRN% = 1 END IF GOTO MAKEINPT END IF GOTO ALLDONE HELP: MAKEWIND 15, "@***** Multi-field Input Instructions *****", 100, 100, 76, 14, 15, 101 PRINTW "Key(s): Function:", 1, 2 PRINTW "CTRL END/ CTRL HOME Move to first or last field.", 1, 2 PRINTW "TAB/ SHIFT TAB Move from field to field horizontally.", 2, 2 PRINTW "UP/ DOWN ARROW /ENTER Move from field to field. ( user defined order )", 3, 2 PRINTW "BACKSPACE/ DELETE Erase character to left of or under cursor.", 4, 2 PRINTW "LEFT/ RIGHT ARROW Moves cursor from start to end of text.", 5, 2 PRINTW "INSERT Toggle between insert and overstrike mode.", 6, 2 PRINTW "ESC/ CTRL E Returns field to pre-edited state. / Erases field.", 7, 2 PRINTW "HOME/ END Moves cursor to start or end of text.", 8, 2 PRINTW "SPACE BAR Erases field if it this is the first key pressed.", 9, 2 GETANS "[ PRESS ANY KEY TO EXIT HELP ]", "", "", 19, 100, 240, 0 RSTRWIND 15, 1 CHNGWIND 20 RETURN ALLDONE: DECPOINT% = 1: GOSUB SETPARAMETERS RSTRWIND 20, 1 '------------------------------- INPUT WINDOW ------------------------------- CASE 2 'INPUT WINDOW DEMO A% = 32: GOSUB COL ' GREEN IF A% = 32 THEN AADD% = 1128 ELSE AADD% = 128 MAKEWIND 20, "@*** Input Window Demonstration ***", 3, 4, 72, 10, A%, 112 PRINTW " An input window can be used to prompt for, and receive an input", 1, 2 PRINTW "from the user. Input fields may be windowed, can have a length of", 2, 2 PRINTW "1 to 76 characters, and may be designated as alpha/numeric, date", 3, 2 PRINTW "or numeric with 0 to 6 decimal places. Full editing features are", 4, 2 PRINTW "incorporated. The area under the window is automatically saved.", 5, 2 PRINTW "It is restored upon exiting the procedure.", 6, 2 GETANS "Press any key.......", "", ANS$, 16, 100, A% + 128, 11 RSTRWIND 20, 1 MAKEWIND 20, "@[ Input Window Instructions ]", 2, 100, 72, 10, A%, 12 PRINTW "SPACE BAR Erases field if it is the first key pressed.", 1, 2 PRINTW "ENTER Exits the procedure. ( Returns the string )", 2, 2 PRINTW "BACKSPACE/ DELETE Erase character to left of or under cursor.", 3, 2 PRINTW "LEFT/ RIGHT ARROW Moves cursor from start to end of input text.", 4, 2 PRINTW "INSERT Toggle between insert and overstrike mode.", 5, 2 PRINTW "ESC Returns field to pre-edited state, and exits.", 6, 2 PRINTW "HOME/ END Move cursor to start or end of text.", 7, 2 PRINTW "CTRL E Erases (blanks) field .", 8, 2 START.EDIT: GETANS "Press for upper case - for lower case - for both.", "ULB", P$, 21, 100, A% + 128, 11 IF P$ = CHR$(27) THEN GOTO DONEIWIND IF P$ = "B" THEN P$ = "A" MAKEWIND 15, "", 20, 100, 70, 4, A%, 11 PRINTW "Input prompts can printed in a window title box....", 1, 100 INPTWIND "@** Input Your Name **", P$, 14, 100, 30, A% + AADD%, "", RTR$, 112 PRINTW " ...or printed in a window.... ", 1, 100 PRINTW "Instructions: Date format must be: mm/dd/yyyy (1980 to 2099)", 2, 100 INPTWIND "DATE:", "D", 15, 100, 10, A% + AADD%, "", RTR2$, 11 RSTRWIND 15, 1 IF DEC$ = "" THEN GETANS "Number of decimal places to return for next Input Window ( 0-6 ) ?", "0123456", ANS$, 21, 100, A% + 128, 11 DEC$ = ANS$ IF ANS$ = CHR$(27) THEN GOTO DONEIWIND END IF MAKEWIND 15, "", 19, 100, 74, 5, A%, 11 PRINTW " ......or printed without a window!!! ", 1, 100 PRINTW "INSTRUCTIONS: Enter any number. If the number with " + DEC$ + " decimals", 2, 2 PRINTW "places will not fit in the field the input routine can not be exited.", 3, 2 IF A% = 15 THEN ADD% = 97 ELSE ADD% = 0 INPTWIND "Now Input a Number:", DEC$, 15, 100, 15, A% + AADD% + ADD% + 1000, "", RTR1$, 0 RSTRWIND 15, 1 MAKEWIND 2, "@**** The Data Entered Was:****", 14, 100, 41, 5, A%, 12 PRINTW "NAME: " + RTR$, 1, 2 PRINTW "DATE: " + RTR2$, 2, 2 PRINTW "NUMBER: " + RTR1$, 3, 2 GETANS "Press (E) to Edit Data or (R) to Return to Main Menu.", "RE", ANS$, 21, 100, A% + 128, 11 RSTRWIND 2, 1 IF ANS$ = "E" THEN GOTO START.EDIT DONEIWIND: RSTRWIND 15, 1 RSTRWIND 20, 1 RTR$ = "": RTR1$ = "": DEC$ = "": RTR2$ = "" CASE ELSE END SELECT '----------------------------- WINDOW PRINT DEMO ---------------------------- CASE 3 'PRINT IN A WINDOW A% = 48: GOSUB COL SELECT CASE WIND% CASE 1 MAKEWIND 1, "@*** Window Printing Demonstration ***", 3, 100, 58, 20, A%, 112 PRINTW "Printing in a window is easy with WINDOWS R-E-Z. Text ", 1, 2 PRINTW "can printed at any location in the window or centered:", 2, 2 PRINTW "CENTERED TEXT", 4, 100 PRINTW "Changing the text's color is easy also!", 6, 100 FOR X% = 2 TO 4 y% = X% - 1: Z% = 128: IF A% = 15 THEN y% = 0: Z% = 225 IF y% = 3 THEN y% = 15 NEWCOLOR A% + y%: PRINTW "COLORED TEXT", 6 + X%, 15 NEWCOLOR A% + y% + Z%: PRINTW "COLORED TEXT", 6 + X%, 30 NEXT NEWCOLOR A% PRINTW "Single or double lines can be printed....", 11, 100 LINEW 12, 1 LINEW 13, 2 PRINTW "The text in all windows in this demonstration", 14, 100 PRINTW "was printed using the print routine supplied", 15, 100 PRINTW "with WINDOWS R-E-Z.", 16, 6 GETANS "[ ******* Press any key ******* ]", "", ANS$, 22, 100, 143, 0 RSTRWIND 1, 1 CASE 2 MAKEWIND 1, "@Window #1", 4, 6, 30, 15, A%, 142 PRINTW "(*** SAMPLE ****)", 11, 100 B% = 71: IF A% = 15 THEN B% = 112 MAKEWIND 2, "@Window #2", 4, 45, 30, 15, B%, 142 PRINTW "(*** SAMPLE ****)", 11, 100 GA$ = "to print in Window #1." GOSUB Press CHNGWIND 1 PRINTW " Text can be printed in", 2, 3 PRINTW "multiple windows. WIND-", 3, 3 PRINTW "OWS R-E-Z remembers the", 4, 3 PRINTW "color of text printed in", 5, 3 PRINTW "the window and uses the", 6, 3 PRINTW "same color the next time", 7, 3 PRINTW "text is printed.", 8, 3 GA$ = "to print in Window #2." GOSUB Press CHNGWIND 2 PRINTW "A window's interior can be", 2, 2 PRINTW "cleared with any color....", 3, 2 GA$ = "to clear Window #1 with a new color." GOSUB Press B% = 95: IF A% = 15 THEN B% = 112 CHNGWIND 1 NEWCOLOR B%: CLRWIND PRINTW "(* New print-to color *)", 11, 100 GA$ = "to print in Window #1 with the new print-to color" GOSUB Press PRINTW "When a window is cleared", 2, 3 PRINTW "The color of text subse-", 3, 3 PRINTW "quently printed, matches", 4, 3 PRINTW "the print-to color speci-", 5, 3 PRINTW "ied when the window was", 6, 3 PRINTW "cleared.", 7, 3 GA$ = "....." GOSUB Press B% = 92: IF A% = 15 THEN B% = 7 NEWCOLOR B% PRINTW "The text's color can be", 8, 100 PRINTW "changed at any time !!!!", 9, 100 GOSUB Press RSTRWIND 1, 1: RSTRWIND 2, 1 '---------------- TOGGLE FAST FROM ON TO OFF - OR OFF TO ON ----------------- CASE 4 B$ = "is set to SLOW" CALL CHNGPULL(3, 5, 0) FAST% = 0 GOTO PRINTSPEED CASE 5 B$ = "is set to FAST" CALL CHNGPULL(3, 4, 0) FAST% = 1 PRINTSPEED: A% = 113: GOSUB COL MAKEWIND 1, "@***** Print " + B$ + " *****", 100, 100, 67, 6, A%, 112 IF B$ = "is set to FAST" THEN PRINTW "Windowing and print speed are set to fast. This may cause snow", 1, 2 PRINTW "or screen flicker if certain CGA display adaptors are used....", 2, 2 ELSE PRINTW "Windowing and print speed are set to slow if a CGA display ad-", 1, 2 PRINTW "aptor is present. This will eliminate screen snow or flicker.", 2, 2 END IF A% = A% + 128 GETANS "Press any key.......", "", ANS$, 15, 28, A%, 12 RSTRWIND 1, 1 CASE ELSE END SELECT GOSUB SETPARAMETERS GOTO PREMAIN.MENU2 '--------------------------- DIRECTORY ROUTINES ----------------------------- CASE 4 A% = 23 GOSUB COL MAKEWIND 10, "@**** Directory Demonstration ****", 3, 100, 44, 16, A%, 111 PRINTW " Directory routines permit files from", 1, 100 PRINTW "any path to be placed in an array. All", 2, 100 PRINTW "files may be found or selected files can", 3, 100 PRINTW "can be found. Wildcards (*?) are permit-", 4, 100 PRINTW "ed. Searches can include files with any", 5, 100 PRINTW "combination of attributes ( hidden, read", 6, 100 PRINTW "only, system, or ordinary files ). Sub-", 7, 100 PRINTW "directory listings may also be found. To", 8, 100 PRINTW "suppliment functions included in QUICK-", 9, 100 PRINTW "BASIC routines to find disk size, free", 10, 100 PRINTW "disk space, the default drive and path", 11, 100 PRINTW "are included.", 12, 2 A% = A% + 128 GETANS "Press any key.....", "", "", 21, 100, A%, 11 A% = A% - 128 RSTRWIND 10, 1 DISKINST: MAKEWIND 10, "@[ Instructions ]", 3, 100, 45, 13, A%, 11 PRINTW "Input the path for the directory search.", 1, 100 PRINTW "When prompted input the file attributes", 2, 100 PRINTW "for the search.", 3, 2 PRINTW "Attributes are......", 4, 100 PRINTW "A - archived", 5, 6 PRINTW "H - hidden", 6, 6 PRINTW "R - read only", 7, 6 PRINTW "S - system", 8, 6 PRINTW "D - sub-directory", 9, 6 PRINTW "O - other - no attribute", 10, 6 PRINTW "V - volumn - must be root directory!", 11, 6 PATH2$ = PATH$ GETPATH: INPTWIND "PATH: FORMAT = DRIVE:\DIRECTORY\....( WILDCARDS PERMITTED )", "U", 19, 100, 63, A%, "1234567890QWERTYUIOPLKJHGFDSAZXCVBNM\:?*_.", PATH2$, 111 IF PATH2$ <> "" THEN PATH$ = PATH2$ ELSE DOSOUND RSTRWIND 10, 1 GOTO OVER END IF GETTYPE: TYPE$ = "" INPTWIND " FILE ATTRIBUTES (A/H/R/S/O/D/V):", "U", 19, 100, 7, A%, "AHRSODV", TYPE$, 111 IF TYPE$ = "" THEN RSTRWIND 10, 1: GOTO OVER IF MID$(PATH$, 2, 1) = ":" THEN 'DRIVE WAS SPECIFIED DR% = ASC(UCASE$(PATH$)) - 64 ELSE 'DRIVE NOT SPECIFIED - USE CURRENT DRIVE. GETDISK DR%: PATH$ = CHR$(DR% + 64) + ":" + PATH$ END IF ON ERROR GOTO DISKERROR 'ALWAYS TRAP FOR ERRORS WHEN 'ACESSING A DISK. FINDDIR PATH$, TYPE$ + "L", F% 'PUT DIRECTORY IN DIREC$. "L" FOR LONG DIR DISKSIZE DR%, SIZE&, FREE& 'GET DISK ROOM AND FREE ROOM. ON ERROR GOTO 0 RSTRWIND 10, 1 MAKEWIND 10, "@PATH: " + PATH$, 3, 100, 74, 17, A%, 111 PRINTW "DISK SIZE =" + STR$(SIZE&) + " BYTES", 11, 100 PRINTW "BYTES FREE =" + STR$(FREE&) + " BYTES", 12, 100 PRINTW "FILE ATTRIBUTES: " + TYPE$, 13, 100 IF F% = 0 THEN 'NO DIRECTORY ENTRIES A% = A% + 128 GETANS "NO ENTRIES. CONTINUE... (Y/N)?", "YN", ANS$, 21, 100, A%, 11 A% = A% - 128 RSTRWIND 10, 1 IF ANS$ <> "Y" THEN GOTO OVER GOTO DISKINST ELSE 'DIRECTORY ENTRIES EXISTED NEWCOLOR A% + 128 PRINTW "DIRECTIONS: SELECT FILE WITH SCROLL BAR AND PRESS ENTER.", 9, 100 NEWCOLOR A% RTRN$ = "A" MAKEWIND 11, "", 6, 100, 16, 6, 112, 11 HIATTR% = 0: RTRN% = 0 SCRLWIND DIREC$(), F%, RTRN$, RTRN%, HIATTR% 'PUT DIREC$() IN WINDOW #1 CHNGWIND 10 LINEW 9, 0 END IF RTRN$ = DIREC$(RTRN%) IF RTRN% = 0 THEN RSTRWIND 11, 1: RSTRWIND 10, 1: GOTO OVER FATTR% = DIRINFO(RTRN%).ATTR T$ = "File: ": IF FATTR% = 8 THEN T$ = "Volumn: " ELSE IF FATTR% = 16 THEN T$ = "Directory: " MAKEWIND 13, " " + T$ + RTRN$, 14, 100, 44, 7, 112, 112 PRINTW "SIZE:" + STR$(DIRINFO(RTRN%).SIZE) + " bytes", 1, 15 PRINTW "DATE: " + DIRINFO(RTRN%).DATE, 2, 15 PRINTW "TIME: " + DIRINFO(RTRN%).TIME, 3, 15 GETANS "[ Repeat directory search (Y/N)? ]", "YN", ANS$, 20, 100, 143, 0 RSTRWIND 13, 1 RSTRWIND 11, 1 RSTRWIND 10, 1 IF ANS$ <> "Y" THEN GOTO OVER GOTO DISKINST DISKERROR: IF PREFLAG% = 1 THEN PATH$ = CURRDISK$ SELECT CASE ERR CASE 75, 76 E$ = "PATH NOT FOUND" CASE 71 E$ = "DRIVE NOT READY" CASE 72 E$ = "DISK MEDIA ERROR" CASE 57 E$ = "I/O ERROR" CASE 68 E$ = "DRIVE NOT AVAILABLE" CASE ELSE E$ = "UNIDENTIFIED ERROR" END SELECT A% = A% + 128 GETANS "DRIVE " + LEFT$(PATH$, 2) + ". " + E$ + ". Press any key...", "", "", 21, 100, A%, 11 A% = A% - 128 IF PREFLAG% = 1 THEN RESUME REALSTART RSTRWIND 10, 1 RESUME DISKINST OVER: ERASE DIREC$: DIREC$ = "" 'GET MEMORY BACK ON ERROR GOTO 0 '----------------- ESC KEY PRESSED BACK-UP TO INTRO SCREEN ------------------ CASE 0 GOTO INTRO '------------------------------ COLOR --------------------------------------- CASE 6 CHNGPULL 6, 1, 0 ' ALL SELECTIONS ACTIVE CHNGPULL 6, 2, 0 CHNGPULL 6, 3, 0 DEMOATTR% = 112 ' DEFAULT B/W NOHI% = 0 ' DEFAULT IS HI-INTEN SHADCOL% = 7 IF WIND% = 2 THEN DEMOATTR% = 0 ' FLAG FOR COLOR SHADCOL% = 8 ' SHADOW DIM FOR COLOR ELSEIF WIND% = 3 THEN NOHI% = 1 ' SET NO HI-INTENSITY FLAG END IF GOSUB SETPARAMETERS GOTO PREMAIN.MENU '------------------------ SOUND = CLICK OR BEEP OR OFF -------------------- CASE 5 SELECT CASE WIND% CASE 1 ' TOGGLE SOUND B$ = "BEEP": SND% = 2 GOTO DOSOUND CASE 2 B$ = "CLICK": SND% = 1 GOTO DOSOUND CASE 3 B$ = "OFF": SND% = 0 GOTO DOSOUND CASE ELSE END SELECT DOSOUND: CALL CHNGPULL(5, 1, 0) CALL CHNGPULL(5, 2, 0) CALL CHNGPULL(5, 3, 0) GOSUB SETPARAMETERS A% = 23 GOSUB COL GETANS "The sound for all routines is set to " + B$ + ". Press any key.....", "", "", 100, 100, A%, 11 '----------------------------- NO CASE ELSE --------------------------------- CASE ELSE END SELECT GOTO MAIN.MENU '------ SUB FOR COLOR OR MONO DISPLAY \ SUB FOR PRESS ANY KEY --------------- COL: IF DEMOATTR% = 112 THEN A% = 15 RETURN Press: GETANS "Press any key " + GA$, "", ANS$, 22, 100, A% + 128, 41 RETURN NEWSTR: SA% = INSTR(S$, "@") IF SA% THEN S$ = LEFT$(S$, SA% - 1) + MID$(S$, SA% + 1) RETURN SETPARAMETERS: CALL SETWIND(FAST%, SND%, SHADCOL%, NOHI%, DECPOINT%) IF Q% = 1 THEN Q% = 0: RETURN IF DEMOATTR% = 112 THEN A% = 112 ELSE A% = 120 IF FAST% = 1 THEN W% = 5 ELSE W% = 4 CALL CHNGPULL(3, W%, A%) ' DISABLE SELECTION FOR FAST PRINT. IF SND% = 1 THEN W% = 2 ELSE IF SND% = 2 THEN W% = 1 ELSE W% = 3 CALL CHNGPULL(5, W%, A%) ' DISABLE SELECTION FOR "CLICK" SOUND. IF NOHI% = 1 THEN W% = 3 ELSE IF SHADCOL% = 8 THEN W% = 2 ELSE W% = 1 CALL CHNGPULL(6, W%, A%) ' DISAPLE SELECTION FOR COLOR OR B/W RETURN