Window Drawing (1/4)

 BBS: Inland Empire Archive
Date: 10-16-93 (12:57)             Number: 3
From: EDWARD SCHLUNDER             Refer#: NONE
  To: ALL                           Recvd: NO  
Subj: Window Drawing (1/4)           Conf: (2) Quik_Bas
      Well, someone wanted some Window drawing routines that would
   explode a window. Well, its been quite a while since I said I would
   post it, but here it is... The delay was due to the HD crash I had and
   then the HD upgrade to IDE (was using RLL). Oh yeah, and the BBS I
   picked mail up at went down for good, so I went found a new one a
   couple weeks later..

      These routines are now being placed into the public domain, I don't
   need 'em, I don't use 'em much.. I'm moving more and more to pure
   Assembler programming, now that I have to write some MOD/ROL playing
   routines that run real fast and in the background supporting SB, SBPro
   (Stereo), AdLib, PC Internal Speaker, LPT DAC, GUS, etc...

      If someone would like to make improvements, overhauls, etc, feel
   free to post, trash, whatever.. As I said, I don't really want to have
   anything to do with this stuff, I wrote them in 4th/5th grade and it
   isn't my best peice of code.

       ___O_/____________________| SNIP |_____________________O_/___
   O \      | HERE |       O \
DECLARE SUB WaitSec (SEC!)
DECLARE SUB Blink (XBLINK%)
DECLARE SUB DrawBox (Row1%, Col1%, Row2%, Col2%, BORDER$, ATTR%)
DECLARE SUB OpenWindow (Row1%, Col1%, Row2%, Col2%, Fore%, Back%, ATTR%)
DECLARE FUNCTION COLAR% (Fore%, Back%)
DECLARE SUB SetColor (ATTR%)
DECLARE SUB PrintWindowTitle (Title$, Fore%, Back%, ATTR%)
DECLARE SUB PutShadow (Row1%, Col1%, Row2%, Col2%, ATTR%)
DECLARE SUB DrawWindow (Row1%, Col1%, Row2%, Col2%, Fore%, Back%, ATTR%)
COMMON SHARED /WINDOWZ/ WindowNum AS INTEGER
COMMON SHARED /WINDOWZ/ WindowRow1() AS INTEGER
COMMON SHARED /WINDOWZ/ WindowCol1() AS INTEGER
COMMON SHARED /WINDOWZ/ WindowRow2() AS INTEGER
COMMON SHARED /WINDOWZ/ WindowCol2() AS INTEGER
COMMON SHARED /WINDOWZ/ WindowFore() AS INTEGER
COMMON SHARED /WINDOWZ/ WindowBack() AS INTEGER
COMMON SHARED /WINDOWZ/ WindowAttr()  AS INTEGER
COMMON SHARED /WINDOWZ/ WindowShadow() AS STRING
COMMON SHARED /WINDOWZ/ WindowTitle() AS STRING
DIM WindowFore(10) AS INTEGER
DIM WindowBack(10) AS INTEGER
DIM WindowAttr(10) AS INTEGER
DIM WindowTitle(10) AS STRING
DIM WindowShadow(10, 10) AS STRING
DIM WindowRow1(10) AS INTEGER
DIM WindowCol1(10) AS INTEGER
DIM WindowRow2(10) AS INTEGER
DIM WindowCol2(10) AS INTEGER
 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

CONST TRUE = -1, FALSE = 0, VIDEOTYPE = 2
'Blink 0
DO
OpenWindow 10, 10, 20, 20, 15, 2, 200
DrawBox 1, 1, 10, 40, "۟߇۟.x^ۘ", 200
SLEEP
LOOP UNTIL UCASE$(INKEY$) = "X"

DEFINT A-Z
FUNCTION COLAR (Fore, Back)
COLAR = (Fore * 8 AND 128) + (Back * 16) + (Fore AND 15)
END FUNCTION

SUB DrawBox (Row1, Col1, Row2, Col2, BORDER$, ATTR)
IF Row1 > Row2 THEN SWAP Row1, Row2
IF Col1 > Col2 THEN SWAP Col1, Col2
WWIDTH = Col2 - Col1
WHEIGHT = Row2 - Row1
'Here are some good windows! Place them in the BORDER$ parameter:
'
' "۟ߟ߇۟ xܘۘ"  ;This gives the look of having a 3-D window on_
' screen.
ULC$ = MID$(BORDER$, 1, 1)     '**
TOP$ = MID$(BORDER$, 3, 1)     '**
URC$ = MID$(BORDER$, 5, 1)     '**
LFT$ = MID$(BORDER$, 7, 1)     '**
FIL$ = MID$(BORDER$, 9, 1)     '* *
RGT$ = MID$(BORDER$, 11, 1)    '**
LLC$ = MID$(BORDER$, 13, 1)    '**
BOT$ = MID$(BORDER$, 15, 1)    '**
LRC$ = MID$(BORDER$, 17, 1)    '**

CULC = ASC(MID$(BORDER$, 2, 1))     '**
CTOP = ASC(MID$(BORDER$, 4, 1))     '**
CURC = ASC(MID$(BORDER$, 6, 1))     '**
CLFT = ASC(MID$(BORDER$, 8, 1))     '**
CFIL = ASC(MID$(BORDER$, 10, 1))    '* *
CRGT = ASC(MID$(BORDER$, 12, 1))    '**
CLLC = ASC(MID$(BORDER$, 14, 1))    '**
CBOT = ASC(MID$(BORDER$, 16, 1))    '**


--- WM v3.01/93-0966
 * Origin: 1:114/289 POWER SURGE - Phoenix, Arizona 602/548-
9020  (1:114/289.0)
Outer Court
Echo Basic Postings

Books at Amazon:

Back to BASIC: The History, Corruption, and Future of the Language

Hackers: Heroes of the Computer Revolution (including Tiny BASIC)

Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution

The Advent of the Algorithm: The Idea that Rules the World

Moths in the Machine: The Power and Perils of Programming

Mastering Visual Basic .NET