home *** CD-ROM | disk | FTP | other *** search
- ╒SE THESE FUNCTIONS LIKE ANY OTHERLIBRARY FUNCTIONS.
- ╘O INCLUDE THEM WITH YOUR OBJECT MODULE, LINKTHE LIBRARY WINDOW.L
- BEFORE YOU LINK THE STANDARD LIBRARIES. ╔F YOUR APPLIACATION IS TO RUN
- WITHOUT THE SHELL, LINK WITH WINDOW2.L INSTEAD.
-
- ╘HESE ROUTINES MAKE IT VERY EASY TO INCLUDE POP UP WINDOWS IN YOUR
- ╨OWER ├ APPLICATIONS. ╘HE POWER IS NOT WITHOUT A PRICE, THOUGH...
- USING THESE ROUTINES WILL ADD ABOUT 3K ON TO THE SIZE OF YOUR APPLICATION.
- ╘HERE MUST ALSO BE ENOUGH FREE MEMORY ABOVE THE RUNTIME STACK TO STORE
- THE SCREEN DATA YOUR WINDOWS COVER UP.
-
- ╘HE ROUTINES ARE FOR THE ├128 VERSION OF ╨OWER ├, 80 ├╧╠╒═╬ ═╧─┼ ╧╬╠┘!
-
- ┼╪┴═╨╠┼
-
-
- $ LINK
-
- > DEMO.O
- > WINDOW.L
- > ^
- >
-
- OUTPUT FILE NAME:DEMO
-
- ---------------------------------------------------------------
-
- ╞UNCTION DESCRIPTIONS
-
- ╬╧╘┼ * ╔ APOLOGIZE FOR THESE DESCRIPTIONS RIVALING THE FUNCTION
- DESCRIPTIONS IN THE ╨OWER ├ DOCUMENTATION FOR BEING
- CONFUSING. ╔F ONLY ╔ WAS A BETTER WRITER. ╧H ╫ELL.
-
-
-
- ╬┴═┼
-
- PLOT
-
- ╙┘╬╧╨╙╔╙
-
- PLOT(Y,X)
- INT Y,X;
-
- ─┼╙├╥╔╨╘╔╧╬
-
- ╨LOT MOVES THE CURSOR TO THE RELATIVE COORDINATES SPECIFIED BY
- THE INTEGER ARGUMENTS Y AND X. ╬OTE THAT THESE ARGUMENTS ARE IN
- SCREEN ╥╧╫ AND SCREEN ├╧╠╒═╬ ORDER, ONLY BECAUSE THAT IS THE WAY
- THE AUTHOR LIKES TO DEAL WITH SCREEN COORDINATES. ╥OW 0, ├OLUMN 0
- IS THE UPPER LEFT BOX IN THE WINDOW.
-
- ┼╪┴═╨╠┼
-
- /* PLOT EXAMPLE */
-
- PLOT(4,10);
- PRINTF("╘HIS TEXT WILL BE 5 ROWS DOWN AND 11 COLUMNS OVER");
-
-
- ╬┴═┼
-
- GETCH
-
- ╙┘╬╧╨╙╔╙
-
- CHAR GETCH()
-
- ─┼╙├╥╔╨╘╔╧╬
-
- ╟ETCH RETURNS A KEYSTROKE FROM THE KEYBOARD WITHOUT ECHOING
- THE CHARACTER OR TURNING ON THE CURSOR. ╔F NO KEYSTROKE IS
- READY, ZERO IS RETURNED.
-
- ┼╪┴═╨╠┼
-
- CHAR C, GETCH();
- WHILE ((C=GETCH()==0); /*WAIT FOR KEYSTROKE */
- PUTCHAR(C); /*ECHO KEYSTROKE */
-
-
- ╬┴═┼
-
- VDCPOKE, VDCPEEK
-
- ╙┘╬╧╨╙╔╙
-
- VDCPOKE(A,C)
- INT A;
- CHAR C;
-
- CHAR VDCPEEK(A)
- INT A;
-
- ─┼╙├╥╔╨╘╔╧╬
-
- ╓DCPOKE PLACES INFORMATION DIRECTLY INTO THE 8563 ╓─├ MEMORY.
-
- ╓DCPEEK READS INFORMATION FROM THE 8563 ╓─├ MEMORY.
-
- ┼╪┴═╨╠┼
- /* PUT AN "@" CHARACTER IN THE UPPER LEFT HAND CORNER OF SCREEN */
- INT A;
- CHAR C;
-
- C=0;
- A=0;
- VDCPOKE(A,C);
-
- /* READ THE VALUE OF THE BOTTOM LEFT HAND CHARACTER */
- CHAR C,VDCPEEK();
- INT A;
- A=2000;
- C=VDCPEEK(A);
-
- ╬┴═┼
-
- FRAMESET
-
- ╙┘╬╧╨╙╔╙
-
- FRAMESET()
-
- ─┼╙├╥╔╨╘╔╧╬
-
- ╞RAMESET REDFINES THE CMDR-C CHARACTER TO BE A HORIZONTAL BAR,
- AND REDEFINES THE CMDR-B CHARACTER TO BE A VERTICAL BAR. ╘HESE
- THE CHARACTERS ARE ONLY REDFINED IN 80 COLUMN MEMORY. ╔T HAS
- NO EFFECT ON THE 40 COLUMN SCREEN. ╔F YOU ARE GOING TO LINK
- YOUR PROGRAM TO RUN ╫╔╘╚╧╒╘ THE ╨OWER ├ SHELL, LINK WITH
- THE LIBRARY WINDOW2.L INSTEAD OF WINDOW.L.
-
-
- ╬┴═┼
-
- BORDER
-
- ╙┘╬╧╨╙╔╙
-
- BORDER(Y1,X1,Y2,X2)
- INT Y1,X1,Y2,X2;
-
- ─┼╙├╥╔╨╘╔╧╬
-
- ┬ORDER USES THE CHARACTERS REDEFINED BY FRAMESET TO DRAW A BOX
- WITH UPPER LEFT CORNER Y1, X1 AND BOTTOM RIGHT CORNER Y2,X2;
- ╒NLIKE PLOT, THE COORDINATE PAIRS ARE ┴┬╙╧╠╒╘┼ COORDINATES.
- ╘HE WINDOW SETTING(IF ANY) REMAINS UNCHANGED. ├HARACTERS INSIDE
- THE BOX ARE UNCHANGED.
-
- ┼╪┴═╨╠┼
-
- /* DRAW AN OUTLINE AROUND THE ENTIRE SCREEN */
-
- BORDER(0,0,24,79);
-
-
- ╬┴═┼
-
- OPENWINDOW, CLOSEWINDOW, REOPEN
-
- ╙┘╬╧╨╙╔╙
-
- CHAR *OPENWINDOW(Y1,X1,Y2,X2)
- INT Y1,X1,Y2,X2;
-
- CLOSEWINDOW(PTR)
- CHAR *PTR;
-
- REOPEN(PTR)
- CHAR *PTR;
-
- ─┼╙├╥╔╨╘╔╧╬
-
- ╧PENWINDOW, LIKE BORDER, DRAWS A BOX ON THE SCREEN, DEFINED BY
- THE CORDINATES PASSED TO IT. ╔T SAVES THE CONDITION OF THE
- SCREEN ╒╬─┼╥ THE AREA THE WINDOW WILL BE DRAWN ON. ┴FTER THE
- BORDER IS DRAWN, IT SIZES THE SCREEN TO ABSOLUTE COORDINATES:
- Y1+1,X1+1 Y2-1,X2-1. ┴ POINTER TO THE SCREEN SAVE DATA IS
- RETURNED TO THE CALLING PROGRAM. ╔F THERE IS NOT ENOUGH FREE
- MEMORY REMAINING, ╬╒╠╠ IS RETURNED.
-
- ├LOSEWINDOW RESTORES THE SCREEN TO THE CONDITION IT WAS IN
- BEFORE THE WINDOW DATA POINTED TO BY PTR WAS DRAWN. ╬╧╘┼:
- ╘╚┼ ╙├╥┼┼╬ ╔╘╙┼╠╞ ╔╙ ╬╧╘ ╥┼╙╔┌┼─, YOU MUST TAKE CARE OF
- DOING THAT YOURSELF. ├LOSEWINDOW FREES UP THE SPACE THAT WAS
- ALLOCATED BY OPENWINDOW.
-
- ╥EOPEN RESIZES THE SCREEN TO THE SIZE OF THE WINDOW POINTED
- TO BY PTR.
-
- ┼╪┴═╨╠┼
-
- #INCLUDE <STDIO.H>
-
- /* OPEN AND CLOSE SOME WINDOWS */
-
- CHAR *OPENWINDOW(), *WINDOW1, *WINDOW2;
-
- WINDOW1=OPENWINDOW(5,10,10,70); /*OPEN UP A SHORT WIDE WINDOW */
- IF(WINDOW1=╬╒╠╠)
- RETURN(-1); /* OH OH, OUT OF MEMORY */
- PRINTF("╘HIS IS SOME JUNK IN MY FIRST WINDOW");
-
- WINDOW2=OPENWINDOW(2,4,22,20); /* OPEN UP A LONG NARROW WINDOW*/
- IF(WINDOW2=╬╒╠╠)
- RETURN(-1); /* OH OH, OUT OF MEMORY */
-
- PRINTF("╙TUFF IN MY NARROW WINDOW");
-
- CLOSEWINDOW(WINDOW2); /* CLOSE WINDOW 2 */
- REOPEN(WINDOW1); /* REOPEN WINDOW 1 */
-
- ..... /* DO SOME OTHER STUFF */
-
- CLOSEWINDOW(WINDOW1); /* CLOSE WINDOW 1 */
-
-
-
- --------------------------------------------------------------------
-
- ╔F YOU HAVE ANY QUESTIONS ABOUT USING THESE ROUTINES, CONTACT
- USERNAME ┬├ ╨UCKETT ON ╤UANTUMLINK.
-
- ╘HE OBJECT MODULES: VDCPOKE.OBJ, GETCH.OBJ, PLOT.OBJ, SETCHAR.O SETCHARN.O
- OPENWINDOW.O, BORDER.O AND SAVE.OBJ
-
- ARE ├OPYRIGHT 1988 BY ╦EN ╫ALTHEW.
- ┴LL RIGHTS RESERVED.
-
- ┘OU MAY INCLUDE THEM IN YOUR COMPILED PROGRAMS WITHOUT RESTRICTION.
-
- ┘OU MAY FREELY DISTRIBUTE THE ORIGINAL WINDOW.SDA FILE.
-
- ┘OU ═┴┘ ╬╧╘ DISTRIBUTE THE INDIVIDUAL MODULES IN ANY FORM.
-
- ╔ HOPE YOU FIND THESE ROUTINES USEFUL.
-
- ╦EN ╫ALTHEW, ─ECEMBER 3, 1988.
-