home *** CD-ROM | disk | FTP | other *** search
/ World of Shareware - Software Farm 2 / wosw_2.zip / wosw_2 / QBAS / WNDTOOL5.ZIP / DEMO2.BAS < prev    next >
BASIC Source File  |  1989-07-04  |  25KB  |  868 lines

  1. 'DEMO OF BASWIND5 MODULES AND BWTOOLS
  2. '
  3. '  MODULE : DEMO2.BAS
  4. '
  5. '  BY : James P. Morgan, 5226 Via Hacienda #115 Orlando FL, 32809
  6. '
  7. '                Version 5.0, July 4, 1989
  8. '
  9.        KEY OFF
  10.        COLOR 7,1
  11.        CLS
  12.        OPTION BASE 0
  13.        YES=1
  14.        NO=0
  15.  
  16.        DIM SCRN%(2000),ITEM$(100),TAGGED%(100),TAG$(100),MSGDAT$(5)
  17.        DIM ITEMDESC$(10)
  18.  
  19. '
  20.        RANDOMIZE TIMER
  21.  
  22.        FOR I=1 TO 30
  23.           ULR%=RND*17
  24.           WHILE ULR% = 0:ULR%=RND*17:WEND
  25.  
  26.           LRR%=RND*23
  27.           WHILE LRR% < ULR%:LRR%=RND*23:WEND
  28.  
  29.           ULC%=RND*60
  30.           WHILE ULC% = 0:ULC%=RND*60:WEND
  31.  
  32.           LRC%=RND*79
  33.           WHILE LRC% < ULC%:LRC%=RND*79:WEND
  34.  
  35.           FORE%=RND*15
  36.           BACK%=RND*7
  37.  
  38.           CALL MAKEWIND(ULR%,ULC%,LRR%,LRC%,2,FORE%,BACK%,0,1,"")
  39.  
  40.           SECONDS!=0.2
  41.           CALL WAITTIME(SECONDS!)
  42.  
  43.        NEXT
  44.  
  45.        SECONDS!=3.0
  46.        CALL WAITTIME(SECONDS!)
  47.  
  48.        CALL MAKEWIND(9,15,16,65,2,0,7,0,1,"")
  49.  
  50.         COLOR 0,7
  51.         CALL SCROLL(9,15,16,65,1,1,"     Introducing ...")
  52.         GOSUB SCROLL.WAIT
  53.  
  54.         CALL SCROLL(9,15,16,65,1,1," ")
  55.         GOSUB SCROLL.WAIT
  56.  
  57.         CALL SCROLL(9,15,16,65,1,1,"                  Window Tools")
  58.         GOSUB SCROLL.WAIT
  59.  
  60.         CALL SCROLL(9,15,16,65,1,1," ")
  61.         GOSUB SCROLL.WAIT
  62.  
  63.         CALL SCROLL(9,15,16,65,1,1,"     A collection of useful routines based on")
  64.         GOSUB SCROLL.WAIT
  65.  
  66.         CALL SCROLL(9,15,16,65,1,1,"     BASWIND5 and designed to perform powerful")
  67.         GOSUB SCROLL.WAIT
  68.  
  69.         CALL SCROLL(9,15,16,65,1,1,"     windowing functions in your programs ...")
  70.         GOSUB SCROLL.WAIT
  71.  
  72.         CALL SCROLL(9,15,16,65,1,1," ")
  73.  
  74.         SECONDS!=10.0
  75.         CALL WAITTIME(SECONDS!)
  76.  
  77.         CALL SCROLL(9,15,16,65,1,-1," ")
  78.         GOSUB SCROLL.WAIT
  79.  
  80.         CALL SCROLL(9,15,16,65,1,-1," ")
  81.         GOSUB SCROLL.WAIT
  82.  
  83.         CALL SCROLL(9,15,16,65,1,-1," ")
  84.         GOSUB SCROLL.WAIT
  85.  
  86.         CALL SCROLL(9,15,16,65,1,-1," ")
  87.         GOSUB SCROLL.WAIT
  88.  
  89.         CALL SCROLL(9,15,16,65,1,-1,"      ...  Stand by FOR a complete demo ...")
  90.         GOSUB SCROLL.WAIT
  91.  
  92.         CALL SCROLL(9,15,16,65,1,-1," ")
  93.         GOSUB SCROLL.WAIT
  94.  
  95.         CALL SCROLL(9,15,16,65,1,-1," ")
  96.         GOSUB SCROLL.WAIT
  97.  
  98.         CALL SCROLL(9,15,16,65,1,-1," ")
  99.  
  100.        SECONDS!=4.0!
  101.        CALL WAITTIME(SECONDS!)
  102.  
  103.  
  104. '
  105. '---------------------------------------------------------------------------------
  106. DEMO:
  107.        COLOR 7,1
  108.        CLS
  109.        CALL MAKEWIND(5,5,22,55,2,0,7,1,1,"")
  110.        COLOR 15,0
  111.        LOCATE  5,5:PRINT "               ***    POPMENU   ***                ";
  112.        COLOR 1,7
  113.  
  114.        LOCATE  7,5:PRINT " -This demo will be used to select the other demos-";
  115.        LOCATE  9,5:PRINT "You will be presented with a number of items from  ";
  116.        LOCATE 10,5:PRINT "which to select one. ALL selection items are shown.";
  117.  
  118.        GOSUB DISPLAY.HELP
  119.  
  120.        SECONDS!=3.0
  121.        CALL WAITTIME(SECONDS!)
  122.  
  123.        COLOR 7,1
  124.        item$(0)= "  Popmenu"
  125.        item$(1)= "  Poplist"
  126.        item$(2)= "  Taglist"
  127.        item$(3)= "  Popdir"
  128.        item$(4)= "  Tagdir"
  129.        item$(5)= "  Barmenu"
  130.        item$(6)= "  Menu123"
  131.        item$(7)= "  Calendar"
  132.        item$(8)= "  Calendr3"
  133.        item$(9)= "  Keycal"
  134.        item$(10)="  Caution"
  135.        item$(11)="  Question"
  136.        item$(12)="  Warning"
  137.        item$(13)="  end demo"
  138.  
  139.        select.%=7
  140.        CALL popmenu("Select Demo ...",14,item$(),4,0,7,15,1,"2:61",0,select.%)
  141.  
  142. '
  143.        SELECT CASE SELECT.%
  144.               CASE 1
  145.                     GOTO DEMO
  146.               CASE 2
  147.                     GOSUB DOPOPL
  148.               CASE 3
  149.                     GOSUB DOTAGL
  150.               CASE 4
  151.                     GOSUB DOPOPD
  152.               CASE 5
  153.                     GOSUB DOTAGD
  154.               CASE 6
  155.                     GOSUB DOBAR
  156.               CASE 7
  157.                     GOSUB DO123
  158.               CASE 8
  159.                     GOSUB DOCAL
  160.               CASE 9
  161.                     GOSUB DOCAL3
  162.               CASE 10
  163.                     GOSUB DOKEY
  164.               CASE 11
  165.                     GOSUB DOCAU
  166.               CASE 12
  167.                     GOSUB DOQUE
  168.               CASE 13
  169.                     GOSUB DOWARN
  170.               CASE 14
  171.                     GOTO ENDIT
  172.               CASE ELSE
  173.                     GOTO DEMO
  174.               END SELECT
  175.  
  176.        GOTO DEMO
  177.  
  178. '
  179. '--------------------------------------------------------------------------------
  180. DOPOPL:
  181.        CALL MAKEWIND(5,5,22,55,2,1,7,1,1,"")
  182.        COLOR 15,0
  183.        LOCATE  5,5:PRINT "               ***    POPLIST   ***                ";
  184.        COLOR 1,7
  185.  
  186.        LOCATE  7,5:PRINT "You will be presented with a number of items from  ";
  187.        LOCATE  8,5:PRINT "which to select one. If there are more items than  ";
  188.        LOCATE  9,5:PRINT "will fit in the POPLIST window, you can scroll the ";
  189.        LOCATE 10,5:PRINT "window to view the additional items.               ";
  190.  
  191.        SECONDS!=15.0
  192.        CALL WAITTIME(SECONDS!)
  193.  
  194.        QUADRANT=0
  195.        FOR QUADRANT=0 TO 4
  196.  
  197.        COLOR 7,1
  198.        CLS
  199.  
  200.        FOR I=0 TO 100
  201.            ITEM$(I)=SPACE$(18)
  202.            temp$="  "+CHR$(I)+"- Item # "+str$(i)
  203.            MID$(ITEM$(I),1,LEN(TEMP$))=TEMP$
  204.        NEXT
  205.  
  206.        SELECT CASE QUADRANT
  207.               CASE 0
  208.                    SELECT.%=1
  209.               CASE 1
  210.                    SELECT.%=43
  211.               CASE 2
  212.                    SELECT.%=78
  213.               CASE 3
  214.                    SELECT.%=95
  215.               CASE ELSE
  216.                    SELECT.%=51
  217.        END SELECT
  218.  
  219.        QUADRANT$=RIGHT$(STR$(QUADRANT),1)
  220.  
  221.        CALL poplist("Choose an Item ...",10,100,item$(),0,3,15,5,QUADRANT$,1,select.%)
  222.  
  223.        LOCATE 25,10
  224.  
  225.        IF SELECT.%<1 THEN
  226.            PRINT "The Item Number you selected was ";"NONE";"   ";"NO item selected";
  227.        ELSE
  228.            PRINT "The Item Number you selected was ";select.%-1;"   ";item$(select.%-1);
  229.        ENDIF
  230.  
  231.        ERASE ITEM$
  232.  
  233.        SECONDS!=4.0!
  234.        CALL WAITTIME(SECONDS!)
  235.        NEXT QUADRANT
  236.  
  237.        RETURN
  238.  
  239. '
  240. '------------------------------------------------------------------------------
  241. dotagl:
  242.        CALL MAKEWIND(5,5,22,55,2,1,7,1,1,"")
  243.        COLOR 15,0
  244.        LOCATE  5,5:PRINT "               ***    TAGLIST   ***                ";
  245.        COLOR 1,7
  246.  
  247.        LOCATE  7,5:PRINT "You will be presented with a number of items from  ";
  248.        LOCATE  8,5:PRINT "which to select one or more. To select a group of  ";
  249.        LOCATE  9,5:PRINT "items, 'tag' each one by pressing 'Ins' key next to";
  250.        LOCATE 10,5:PRINT "the item. You may  'untag' an item by pressing the ";
  251.        LOCATE 11,5:PRINT " 'Del' key. To select all taged items press Enter. ";
  252.        LOCATE 13,5:PRINT "If there are more items than will fit in the window";
  253.        LOCATE 14,5:PRINT "you can scroll the window to view the other items. ";
  254.  
  255.        SECONDS!=15.0
  256.        CALL WAITTIME(SECONDS!)
  257.  
  258.        QUADRANT=0
  259. '      FOR QUADRANT=0 TO 4
  260.        COLOR 7,1
  261.        CLS
  262.        FOR i=0 to 99
  263.            item$(i)=space$(18)
  264.            tagged%(i)=0
  265.            temp$="  "+CHR$(I)+ "- Item # "+str$(i)
  266.            mid$(item$(i),1,len(temp$))=temp$
  267.        NEXT
  268.  
  269.        numtagged%=5                                     'dont allow more than 5
  270.  
  271.        QUADRANT$=RIGHT$(STR$(QUADRANT),1)
  272.        CALL taglist("Tag or Untag",10,99,numtagged%,item$(),tagged%(),5,0,0,7,QUADRANT$,0)
  273.  
  274.        LOCATE 2,3
  275.        IF numtagged%<1 THEN
  276.             PRINT "The 0 Items you tagged were: NONE "
  277.           GOTO dotagl.cont
  278.        ELSE
  279.             PRINT "The ";numtagged%;" Items you tagged were: "
  280.        ENDIF
  281.  
  282.        LOCATE 4,5
  283.  
  284.        FOR I=0 TO 99
  285.            LOCATE ,5
  286.            IF TAGGED%(I)=1 THEN PRINT ITEM$(I)
  287.        NEXT
  288.  
  289. dotagl.cont:
  290.        SECONDS!=4.0!
  291.        CALL WAITTIME(SECONDS!)
  292.  
  293.        ERASE ITEM$
  294.        ERASE TAGGED%
  295.  
  296. '      NEXT QUADRANT
  297.  
  298.        RETURN
  299.  
  300. '
  301. '-----------------------------------------------------------------------------
  302. DOPOPD:
  303.  
  304.        CALL MAKEWIND(5,5,22,55,2,1,7,1,1,"")
  305.        COLOR 15,0
  306.        LOCATE  5,5:PRINT "               ***    POPDIR    ***                ";
  307.        COLOR 1,7
  308.  
  309.        LOCATE  7,5:PRINT "This is a special case of the POPLIST routine. Here";
  310.        LOCATE  8,5:PRINT "items to be selected are from the directory of the ";
  311.        LOCATE  9,5:PRINT "disk. You specify the filespec , may include the   ";
  312.        LOCATE 10,5:PRINT "wildcard characters '?' and '*', and a directory   ";
  313.        LOCATE 11,5:PRINT "search is performed on the filespec.               ";
  314.        LOCATE 13,5:PRINT "If there are more items than will fit in the window";
  315.        LOCATE 14,5:PRINT "you can scroll the window to view the other items. ";
  316.  
  317.        SECONDS!=15.0
  318.        CALL WAITTIME(SECONDS!)
  319.  
  320.        QUADRANT=0
  321. '      FOR QUADRANT=0 TO 4
  322.        COLOR 7,1
  323.        CLS
  324.        input "Enter File Spec: ";SEARCH$
  325.  
  326.        QUADRANT$=RIGHT$(STR$(QUADRANT),1)
  327.        CALL POPDIR(SEARCH$,10,0,7,5,7,QUADRANT$,1,NUMFILES%,SELECTFILE$)
  328.  
  329.        LOCATE 25,30
  330.        PRINT "Returned Value is: ";selectfile$;
  331.  
  332.        SECONDS!=4.0!
  333.        CALL WAITTIME(SECONDS!)
  334. '      NEXT QUADRANT
  335.  
  336.        RETURN
  337.  
  338. '
  339. '-----------------------------------------------------------------------------
  340. dotagd:
  341.  
  342.        CALL MAKEWIND(5,5,22,55,2,1,7,1,1,"")
  343.        COLOR 15,0
  344.        LOCATE  5,5:PRINT "               ***    TAGDIR    ***                ";
  345.        COLOR 1,7
  346.  
  347.        LOCATE  7,5:PRINT "This is a special case of the POPDIR routine. Here ";
  348.        LOCATE  8,5:PRINT "items to be selected are from the directory of the ";
  349.        LOCATE  9,5:PRINT "disk. You specify the filespec , may include the   ";
  350.        LOCATE 10,5:PRINT "wildcard characters '?' and '*', and a directory   ";
  351.        LOCATE 11,5:PRINT "search is performed on the filespec.               ";
  352.        LOCATE 13,5:PRINT "You will be presented with a number of items from  ";
  353.        LOCATE 14,5:PRINT "which to select one or more. To select a group of  ";
  354.        LOCATE 15,5:PRINT "items,  'tag'  each one by pressing 'Ins' key next ";
  355.        LOCATE 16,5:PRINT "to the item. To  'untag' an item , you press the   ";
  356.        LOCATE 17,5:PRINT " 'Del'  key. To select all taged items press Enter.";
  357.        LOCATE 19,5:PRINT "This would be useful for FILE MANAGER type function";
  358.        LOCATE 21,5:PRINT "If there are more items than will fit in the window";
  359.        LOCATE 22,5:PRINT "you can scroll the window to view the other items. ";
  360.  
  361.        SECONDS!=15.0
  362.        CALL WAITTIME(SECONDS!)
  363.  
  364.        QUADRANT=0
  365. '      FOR QUADRANT=0 TO 4
  366.        COLOR 7,1
  367.        CLS
  368.        input "Enter File Spec: ";SEARCH$
  369.  
  370.        numtagged%=0
  371.  
  372.        QUADRANT$=RIGHT$(STR$(QUADRANT),1)
  373.        CALL TAGDIR(SEARCH$,10,6,0,0,7,QUADRANT$,0,numtagged%,tag$())
  374.  
  375.        LOCATE 2,3
  376.        IF numtagged%<1 THEN
  377.            PRINT "The 0 Items you tagged were: NONE "
  378.        ELSE
  379.            PRINT "The ";numtagged%;" Items you tagged were: "
  380.        ENDIF
  381.  
  382.        LOCATE 4,5
  383.  
  384. '
  385. '  should this be -1 after numtagged
  386. '
  387.        FOR i=0 to numtagged%-1
  388.            LOCATE ,5
  389.            PRINT tag$(i)
  390.        NEXT
  391.  
  392.        SECONDS!=4.0!
  393.        CALL WAITTIME(SECONDS!)
  394.  
  395.        ERASE tag$
  396.  
  397. '      NEXT QUADRANT
  398.  
  399.        RETURN
  400.  
  401. '
  402. '------------------------------------------------------------------------------
  403. dobar:
  404.  
  405.        CALL MAKEWIND(5,5,22,55,2,1,7,1,1,"")
  406.        COLOR 15,0
  407.        LOCATE  5,5:PRINT "               ***    BARMENU   ***                ";
  408.        COLOR 1,7
  409.  
  410.        LOCATE  7,5:PRINT "This is similar to the user interface of QuickBasic";
  411.        LOCATE  8,5:PRINT "2.0. A highlighted menu bar is display, consisting ";
  412.        LOCATE  9,5:PRINT "of various options. When a menu option is selected ";
  413.        LOCATE 10,5:PRINT "on the menu bar, a 'drop-down' menu of additional  ";
  414.        LOCATE 11,5:PRINT "options is also displayed.                         ";
  415.  
  416.        SECONDS!=15.0
  417.        CALL WAITTIME(SECONDS!)
  418.  
  419.        COLOR 7,1
  420.        CLS
  421.        DIM MAXSIZE%(15),MAXITEMS%(15),items.array$(5,15)
  422.  
  423.        FOR i=0 TO 4
  424.            FOR j=0 TO 9
  425.                items.array$(I,J)=CHR$(J+ASC("A"))+ "-Menu"+str$(i+1)+" Item"+str$(j+1)+" "
  426.            NEXT
  427.        NEXT
  428.  
  429.        FOR I=0 TO 4
  430.            MAXSIZE%(I)=15
  431.            MAXITEMS%(I)=10
  432.        NEXT
  433.  
  434.        MAXITEMS%(0)=2
  435.        MAXITEMS%(1)=3
  436.        MAXITEMS%(2)=5
  437.        MAXITEMS%(3)=3
  438.        MAXITEMS%(4)=1
  439.  
  440.        MENULINE$="| MENU#1   | MENU#2    | MENU#3    | MENU#4    | MENU#5    |"
  441.        CALL BARMENU(MENULINE$,0,7,12,5,MAXSIZE%(),MAXITEMS%(),ITEMS.ARRAY$(),MENUSLCT%,ITEMSLCT%)
  442.  
  443.        LOCATE 25,20
  444.        PRINT "Returned Value is MENU: ";MENUSLCT%;" ITEM: ";ITEMSLCT%;"   ";
  445.  
  446.        ERASE MAXSIZE%
  447.        ERASE MAXITEMS%
  448.        ERASE ITEMS.ARRAY$
  449.  
  450.  
  451.        SECONDS!=4.0!
  452.        CALL WAITTIME(SECONDS!)
  453.  
  454.        RETURN
  455.  
  456. '
  457. '-----------------------------------------------------------------------------
  458. DO123:
  459.  
  460.        CALL MAKEWIND(5,5,22,55,2,1,7,1,1,"")
  461.        COLOR 15,0
  462.        LOCATE  5,5:PRINT "               ***    MENU123   ***                ";
  463.        COLOR 1,7
  464.  
  465.        LOCATE  7,5:PRINT "This is an imitation of the Lotus 1-2-3 user inter-";
  466.        LOCATE  8,5:PRINT "face. A  menu bar of various options is display.   ";
  467.        LOCATE  9,5:PRINT "On the line below the menu bar,a description of the";
  468.        LOCATE 10,5:PRINT "function of the currently highlighted option select";
  469.        LOCATE 11,5:PRINT "-ed is also displayed.                             ";
  470.  
  471.        SECONDS!=15.0
  472.        CALL WAITTIME(SECONDS!)
  473.  
  474.        COLOR 7,1
  475.        CLS
  476.  
  477.        MENULINE$="Format Copy Rename Delete Erase Move Discard Pop Push BigBadBillybob"
  478.        MENUFG%=7
  479.        MENUBG%=1
  480.        ITEMNUM%=10
  481.  
  482.        FOR I=0 TO ITEMNUM%
  483.          ITEMDESC$(I)="This is Menu Item Number"+str$(i+1)
  484.        NEXT
  485.  
  486.        COLOR 7,1
  487.        CLS
  488.        LOCATE 3,1
  489.        PRINT STRING$(80,205)
  490.  
  491.        ITEMSLCT%=0
  492.  
  493.        CALL MENU123(MENULINE$,1,MENUFG%,MENUBG%,ITEMNUM%,ITEMDESC$(),ITEMSLCT%)
  494.  
  495.        LOCATE  25,20
  496.        PRINT "ITEM SELECTED WAS: ";ITEMSLCT%;
  497.  
  498.        ERASE ITEMDESC$
  499.  
  500.        SECONDS!=4.0!
  501.        CALL WAITTIME(SECONDS!)
  502.  
  503.        RETURN
  504.  
  505. '
  506. '-----------------------------------------------------------------------------
  507. DOCAL:
  508.        CALL MAKEWIND(5,5,22,55,2,1,7,1,1,"")
  509.        COLOR 15,0
  510.        LOCATE  5,5:PRINT "               ***   CALENDAR   ***                ";
  511.        COLOR 1,7
  512.  
  513.        LOCATE  7,5:PRINT "This routine displays a calendar in a window, for a";
  514.        LOCATE  8,5:PRINT "given month and year.                              ";
  515.  
  516.        SECONDS!=8.0
  517.        CALL WAITTIME(SECONDS!)
  518.        QUADRANT=0
  519. '      FOR QUADRANT=0 TO 4
  520.        COLOR 7,1
  521.        CLS
  522.        input "Month (1-12)",month%
  523.        input "Year (4 digit)",year%
  524.  
  525.        QUADRANT$=RIGHT$(STR$(QUADRANT),1)
  526.        CALL CALENDAR(MONTH%,YEAR%,QUADRANT$,0,7,1)
  527.  
  528.        SECONDS!=4.0!
  529.        CALL WAITTIME(SECONDS!)
  530.  
  531. '      NEXT QUADRANT
  532.  
  533.        RETURN
  534.  
  535. '
  536. '------------------------------------------------------------------------------
  537. docal3:
  538.        CALL MAKEWIND(5,5,22,55,2,1,7,1,1,"")
  539.        COLOR 15,0
  540.        LOCATE  5,5:PRINT "               ***   CALENDR3   ***                ";
  541.        COLOR 1,7
  542.  
  543.        LOCATE  7,5:PRINT "This routine displays a calendar in a window, for a";
  544.        LOCATE  8,5:PRINT "given month and year. In addition, the calendars   ";
  545.        LOCATE  9,5:PRINT "for the previous and following month is displayed. ";
  546.  
  547.        SECONDS!=10.0
  548.        CALL WAITTIME(SECONDS!)
  549.  
  550.        COLOR 7,1
  551.        CLS
  552.        input "Month (1-12)",month%
  553.        input "Year (4 digit)",year%
  554.  
  555.        CALL CALENDR3(MONTH%,YEAR%,12,0,7,1)
  556.  
  557.        SECONDS!=20.0!
  558.        CALL WAITTIME(SECONDS!)
  559.        RETURN
  560.  
  561. '
  562. '----------------------------------------------------------------------------
  563. dokey:
  564.        CALL MAKEWIND(5,5,22,55,2,1,7,1,1,"")
  565.        COLOR 15,0
  566.        LOCATE  5,5:PRINT "               ***     KEYCAL   ***                ";
  567.        COLOR 1,7
  568.  
  569.        LOCATE  7,5:PRINT "This routine displays a calendar in a window, for a";
  570.        LOCATE  8,5:PRINT "given month and year.  However, using the cursor   ";
  571.        LOCATE  9,5:PRINT "keys, you can advance or backup months and years.  ";
  572.  
  573.        SECONDS!=10.0
  574.        CALL  WAITTIME(SECONDS!)
  575.  
  576.        QUADRANT=0
  577. '      FOR QUADRANT=0 TO 4
  578.        COLOR 7,1
  579.        CLS
  580.        input "Month (1-12)",month%
  581.        input "Year (4 digit)",year%
  582.  
  583.        PRINT "Press [ESC] or [RETURN] to exit ..."
  584.  
  585.        QUADRANT$=RIGHT$(STR$(QUADRANT),1)
  586.        CALL KEYCAL(MONTH%,YEAR%,QUADRANT$,0,7,1)
  587.  
  588.        SECONDS!=4.0!
  589.        CALL WAITTIME(SECONDS!)
  590. '      NEXT QUADRANT
  591.  
  592.        RETURN
  593.  
  594. '
  595. '-----------------------------------------------------------------------------
  596. docau:
  597.        CALL MAKEWIND(5,5,22,55,2,1,7,1,1,"")
  598.        COLOR 15,0
  599.        LOCATE  5,5:PRINT "               ***    CAUTION   ***                ";
  600.        COLOR 1,7
  601.  
  602.        LOCATE  7,5:PRINT "This is an implementation of the new QUERY function";
  603.        LOCATE  8,5:PRINT "The windows from the 'old' BASWIND for the function";
  604.        LOCATE  9,5:PRINT "WARNING/CAUTION/QUESTION all had a common basis, so";
  605.        LOCATE 10,5:PRINT "a general purpose function was created to handle   ";
  606.        LOCATE 11,5:PRINT "this type of requirement.                          ";
  607.        LOCATE 13,5:PRINT " CAUTION displays a 'yellow' caution window and one";
  608.        LOCATE 14,5:PRINT "or more of lines of informative text. You then use ";
  609.        LOCATE 15,5:PRINT "the window to make a 'Cancel' or 'Continue' type of";
  610.        LOCATE 16,5:PRINT "decision.                                          ";
  611.  
  612.        SECONDS!=15.0
  613.        CALL WAITTIME(SECONDS!)
  614.  
  615.        QUADRANT=0
  616.  
  617. '      FOR QUADRANT=0 TO 4
  618.        COLOR 7,1
  619.        CLS
  620.        MSGDAT$(0)="You are about to convert your COLOR Monitor"
  621.        MSGDAT$(1)="into a Monochrome Monitor."
  622.        MSGDAT$(3)="ARE YOU ABSOLUTELY SURE YOU WANT TO DO THIS?"
  623.  
  624.        RETURN.CODE%=0
  625.  
  626.        QUADRANT$=RIGHT$(STR$(QUADRANT),1)
  627.  
  628.        CALL CAUTION(4,MSGDAT$(),QUADRANT$,RETURN.CODE%)
  629.  
  630.        LOCATE 25,38
  631.  
  632.        SELECT CASE RETURN.CODE%
  633.            CASE 0
  634.                 PRINT "CANCEL";
  635.            CASE 1
  636.                 PRINT "CONTINUE";
  637.            CASE ELSE
  638.                 PRINT "ESC";
  639.        END SELECT
  640.  
  641.        SECONDS!=4.0!
  642.        CALL WAITTIME(SECONDS!)
  643. '      NEXT QUADRANT
  644.  
  645.        RETURN
  646.  
  647. '
  648. '-----------------------------------------------------------------------------
  649. doque:
  650.        CALL MAKEWIND(5,5,22,55,2,1,7,1,1,"")
  651.        COLOR 15,0
  652.        LOCATE  5,5:PRINT "               ***   QUESTION   ***                ";
  653.        COLOR 1,7
  654.  
  655.        LOCATE  7,5:PRINT "This is an implementation of the new QUERY function";
  656.        LOCATE  8,5:PRINT "The windows from the 'old' BASWIND for the function";
  657.        LOCATE  9,5:PRINT "WARNING/CAUTION/QUESTION all had a common basis, so";
  658.        LOCATE 10,5:PRINT "a general purpose function was created to handle   ";
  659.        LOCATE 11,5:PRINT "this type of requirement.                          ";
  660.        LOCATE 13,5:PRINT " QUESTION displays a 'yellow' question window and 1";
  661.        LOCATE 14,5:PRINT "or more of lines of informative text. You then use ";
  662.        LOCATE 15,5:PRINT "the window to make a 'Yes' or 'No' type of decision";
  663.  
  664.        SECONDS!=15.0
  665.        CALL WAITTIME(SECONDS!)
  666.  
  667.        QUADRANT=0
  668.  
  669. '      FOR QUADRANT=0 TO 4
  670.        COLOR 7,1
  671.        CLS
  672.        MSGDAT$(0)="You are about to convert your COLOR Monitor"
  673.        MSGDAT$(1)="into a Monochrome Monitor."
  674.        MSGDAT$(3)="ARE YOU ABSOLUTELY SURE YOU WANT TO DO THIS?"
  675.  
  676.        RETURN.CODE%=1
  677.  
  678.        QUADRANT$=RIGHT$(STR$(QUADRANT),1)
  679.  
  680.        CALL QUESTION(4,MSGDAT$(),QUADRANT$,RETURN.CODE%)
  681.  
  682.        LOCATE 25,38
  683.  
  684.        SELECT CASE RETURN.CODE%
  685.            CASE 0
  686.                 PRINT "NO ";
  687.            CASE 1
  688.                 PRINT "YES ";
  689.            CASE ELSE
  690.                 PRINT "ESC";
  691.        END SELECT
  692.  
  693.        SECONDS!=4.0!
  694.        CALL WAITTIME(SECONDS!)
  695.  
  696. '      NEXT QUADRANT
  697.  
  698.        RETURN
  699.  
  700. '
  701. '-----------------------------------------------------------------------------
  702. dowarn:
  703.        CALL MAKEWIND(5,5,22,55,2,1,7,1,1,"")
  704.        COLOR 15,0
  705.        LOCATE  5,5:PRINT "               ***    WARNING   ***                ";
  706.        COLOR 1,7
  707.  
  708.        LOCATE  7,5:PRINT "This is an implementation of the new QUERY function";
  709.        LOCATE  8,5:PRINT "The windows from the 'old' BASWIND for the function";
  710.        LOCATE  9,5:PRINT "WARNING/CAUTION/QUESTION all had a common basis, so";
  711.        LOCATE 10,5:PRINT "a general purpose function was created to handle   ";
  712.        LOCATE 11,5:PRINT "this type of requirement.                          ";
  713.        LOCATE 13,5:PRINT "  WARNING displays a  'red'  warning window and one";
  714.        LOCATE 14,5:PRINT "or more of lines of informative text. You then use ";
  715.        LOCATE 15,5:PRINT "the window to make a 'Cancel' or 'Continue' type of";
  716.        LOCATE 16,5:PRINT "decision.                                          ";
  717.  
  718.        SECONDS!=15.0
  719.        CALL WAITTIME(SECONDS!)
  720.  
  721.        QUADRANT=0
  722.        FOR QUADRANT=0 TO 4
  723.        COLOR 7,1
  724.        CLS
  725.        MSGDAT$(0)="You are about to convert your house AC voltage"
  726.        MSGDAT$(1)="from 110 volts to 440 volts."
  727.        MSGDAT$(3)="ARE YOU ABSOLUTELY SURE YOU WANT TO DO THIS?"
  728.  
  729.        RETURN.CODE%=0
  730.  
  731.        QUADRANT$=RIGHT$(STR$(QUADRANT),1)
  732.  
  733.        CALL WARNING(4,MSGDAT$(),QUADRANT$,RETURN.CODE%)
  734.  
  735.        LOCATE 25,38
  736.  
  737.        SELECT CASE RETURN.CODE%
  738.            CASE 0
  739.                 PRINT "CANCEL";
  740.            CASE 1
  741.                 PRINT "CONTINUE";
  742.            CASE ELSE
  743.                 PRINT "ESC";
  744.        END SELECT
  745.  
  746.        SECONDS!=4.0!
  747.        CALL WAITTIME(SECONDS!)
  748.        NEXT QUADRANT
  749.  
  750.        RETURN
  751.  
  752. DISPLAY.HELP:
  753.        COLOR 15,7
  754.  
  755.        LOCATE 12,5
  756.        PRINT " Function        Keyboard      Mouse";
  757.  
  758.        COLOR 9,7
  759.  
  760.        LOCATE 14,5
  761.        PRINT " Select item     ";
  762.        COLOR 6,7
  763.        PRINT "Enter         click on item":
  764.  
  765.        COLOR 9,7
  766.        LOCATE 15,5
  767.        PRINT " Abort function  ";
  768.  
  769.        COLOR 6,7
  770.        PRINT "ESC           click outside window";
  771.  
  772.        COLOR 9,7
  773.        LOCATE 16,5
  774.        PRINT " Another item    ";
  775.  
  776.        COLOR 6,7
  777.        PRINT "Cursor keys   move mouse pointer";
  778.        LOCATE 17,22
  779.        PRINT "First letter
  780.  
  781.        COLOR 9,7
  782.        LOCATE 19,5
  783.        PRINT " More items      ";
  784.        COLOR 6,7
  785.        PRINT "PgUp/PgDn     click on top/bottom";
  786.        LOCATE 20,5
  787.        PRINT "                               window frame"
  788.  
  789.        COLOR 9,7
  790.        LOCATE 21,5
  791.        PRINT " First items     ";
  792.  
  793.        COLOR 6,7
  794.        PRINT "Home";
  795.  
  796.        COLOR 9,7
  797.        LOCATE 22,5
  798.        PRINT " Last items      ";
  799.        COLOR 6,7
  800.        PRINT "End";
  801.  
  802.        RETURN
  803.  
  804.  
  805.  
  806. SCROLL.WAIT:
  807.        SECONDS!=0.2
  808.        CALL WAITTIME(SECONDS!)
  809.        RETURN
  810.  
  811.  
  812. '
  813. '-----------------------------------------------------------------------------
  814. endit:
  815.        COLOR 7,1
  816.        CLS
  817.  
  818.        CALL MAKEWIND(9,15,16,65,2,0,7,0,1,"")
  819.  
  820.        COLOR 0,7
  821.        CALL SCROLL(9,15,16,65,1,-1,"         !!  NOW with MS Mouse support !!")
  822.        GOSUB SCROLL.WAIT
  823.  
  824.        CALL SCROLL(9,15,16,65,1,-1," ")
  825.        GOSUB SCROLL.WAIT
  826.  
  827.        CALL SCROLL(9,15,16,65,1,-1,"                   QuickBasic 4.5")
  828.        GOSUB SCROLL.WAIT
  829.  
  830.        CALL SCROLL(9,15,16,65,1,-1," ")
  831.        GOSUB SCROLL.WAIT
  832.  
  833.        CALL SCROLL(9,15,16,65,1,-1,"                        for")
  834.        GOSUB SCROLL.WAIT
  835.  
  836.        CALL SCROLL(9,15,16,65,1,-1," ")
  837.        GOSUB SCROLL.WAIT
  838.  
  839.        CALL SCROLL(9,15,16,65,1,-1,"                *  Window Tools  *")
  840.  
  841.        SECONDS!=8.0
  842.        CALL WAITTIME(SECONDS!)
  843.  
  844.        CALL SCROLL(9,15,16,65,1,1,"             BY: James P. Morgan")
  845.        GOSUB SCROLL.WAIT
  846.  
  847.        CALL SCROLL(9,15,16,65,1,1,"                 5226 Via Hacienda #115")
  848.        GOSUB SCROLL.WAIT
  849.  
  850.        CALL SCROLL(9,15,16,65,1,1,"                 Orlando, FL 32809")
  851.        GOSUB SCROLL.WAIT
  852.  
  853.        CALL SCROLL(9,15,16,65,1,1," ")
  854.        GOSUB SCROLL.WAIT
  855.  
  856.        CALL SCROLL(9,15,16,65,1,1," ")
  857.        GOSUB SCROLL.WAIT
  858.  
  859.        CALL SCROLL(9,15,16,65,1,1,"   * based on original PD works by Dave Evers *")
  860.  
  861.        SECONDS!=30.0
  862.        CALL WAITTIME(SECONDS!)
  863.  
  864.        COLOR 7,1
  865.        LOCATE 22,9:PRINT "Please see accompanying file BWT-DOC.ZIP for more information"
  866.  
  867.        SYSTEM
  868.