home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 15
/
CD_ASCQ_15_070894.iso
/
vrac
/
dnalib7a.zip
/
CALCBOX.BAS
< prev
next >
Wrap
BASIC Source File
|
1994-05-14
|
15KB
|
404 lines
DECLARE SUB Popwind(Title$,Toprow%,Leftcolumn%,Bottomrow%,Rightcolumn%,Attr%,Shadow%,Border%)
DECLARE SUB RestoreScreen(ScreenID$,TopRow%,LeftColumn%)
DECLARE SUB SaveScreen(ScreenID$,TopRow%,LeftColumn%,BottomRow%,RightColumn%,Shadow%)
DECLARE SUB CalcByte(Attr%,LowByte%,HiByte%)
DECLARE SUB Clicked(Rgt%,Lft%,Row%,Col%)
DECLARE SUB HideCursor()
DECLARE SUB ShowCursor()
DECLARE FUNCTION LeftButtonReleased%()
SUB CalcBox(Mouse%,Fill%,TopRow%,LeftColumn%,ButtonAttr%,TextAttr%,Attr%,Shadow%,Border%)PUBLIC
$CODE SEG "DNASEG2"
CalcByte Attr%,FGround%,BGround%
CalcByte ButtonAttr%,BtFG%,BtBG%
Math$ = ""
NoPoint% = 1
IF Mouse% THEN HideCursor
RightColumn% = LeftColumn% + 25
SaveScreen CalcScreen$,TopRow%,LeftColumn%,TopRow% + 13,RightColumn%,Shadow%
Popwind Title$,TopRow%,LeftColumn%,TopRow% + 13,RightColumn%,Attr%,Shadow%,Border%
IF Mouse% THEN
COLOR FGround%,BGround%
LOCATE TopRow%,LeftColumn% + 2,0
PRINT CHR$(91,254,93);
END IF
DO
COLOR 14,0
LOCATE TopRow% + 1,LeftColumn% + 2,0: PRINT LEFT$(Math$ + STRING$(22,176),22);
COLOR BtFG%,BtBG%
LOCATE TopRow% + 3,LeftColumn% + 2,0: PRINT "NUM";
LOCATE TopRow% + 3,LeftColumn% + 8,0: PRINT " / ";
LOCATE TopRow% + 3,LeftColumn% + 14,0: PRINT " * ";
LOCATE TopRow% + 3,LeftColumn% + 20,0: PRINT " - ";
LOCATE TopRow% + 5,LeftColumn% + 2,0: PRINT " 7 ";
LOCATE TopRow% + 5,LeftColumn% + 8,0: PRINT " 8 ";
LOCATE TopRow% + 5,LeftColumn% + 14,0: PRINT " 9 ";
LOCATE TopRow% + 5,LeftColumn% + 20,0: PRINT " ";
LOCATE TopRow% + 6,LeftColumn% + 20,0: PRINT " + ";
LOCATE TopRow% + 7,LeftColumn% + 2,0: PRINT " 4 ";
LOCATE TopRow% + 7,LeftColumn% + 8,0: PRINT " 5 ";
LOCATE TopRow% + 7,LeftColumn% + 14,0: PRINT " 6 ";
LOCATE TopRow% + 7,LeftColumn% + 20,0: PRINT " ";
LOCATE TopRow% + 9,LeftColumn% + 2,0: PRINT " 1 ";
LOCATE TopRow% + 9,LeftColumn% + 8,0: PRINT " 2 ";
LOCATE TopRow% + 9,LeftColumn% + 14,0: PRINT " 3 ";
LOCATE TopRow% + 9,LeftColumn% + 20,0: PRINT " ";
LOCATE TopRow% + 10,LeftColumn% + 20,0: PRINT " = ";
LOCATE TopRow% + 11,LeftColumn% + 2,0: PRINT " 0 ";
LOCATE TopRow% + 11,LeftColumn% + 14,0: PRINT " . ";
LOCATE TopRow% + 11,LeftColumn% + 20,0: PRINT " ";
COLOR 0,BGround%
LOCATE TopRow% + 3,LeftColumn% + 5,0: PRINT "▄";
LOCATE TopRow% + 3,LeftColumn% + 11,0: PRINT "▄";
LOCATE TopRow% + 3,LeftColumn% + 17,0: PRINT "▄";
LOCATE TopRow% + 3,LeftColumn% + 23,0: PRINT "▄";
LOCATE TopRow% + 5,LeftColumn% + 5,0: PRINT "▄";
LOCATE TopRow% + 5,LeftColumn% + 11,0: PRINT "▄";
LOCATE TopRow% + 5,LeftColumn% + 17,0: PRINT "▄";
LOCATE TopRow% + 5,LeftColumn% + 23,0: PRINT "▄";
LOCATE TopRow% + 6,LeftColumn% + 23,0: PRINT "█";
LOCATE TopRow% + 7,LeftColumn% + 5,0: PRINT "▄";
LOCATE TopRow% + 7,LeftColumn% + 11,0: PRINT "▄";
LOCATE TopRow% + 7,LeftColumn% + 17,0: PRINT "▄";
LOCATE TopRow% + 7,LeftColumn% + 23,0: PRINT "█";
LOCATE TopRow% + 9,LeftColumn% + 5,0: PRINT "▄";
LOCATE TopRow% + 9,LeftColumn% + 11,0: PRINT "▄";
LOCATE TopRow% + 9,LeftColumn% + 17,0: PRINT "▄";
LOCATE TopRow% + 9,LeftColumn% + 23,0: PRINT "▄";
LOCATE TopRow% + 11,LeftColumn% + 11,0: PRINT "▄";
LOCATE TopRow% + 11,LeftColumn% + 17,0: PRINT "▄";
LOCATE TopRow% + 11,LeftColumn% + 23,0: PRINT "█";
LOCATE TopRow% + 10,LeftColumn% + 23,0: PRINT "█";
LOCATE TopRow% + 4,LeftColumn% + 3,0: PRINT "▀▀▀";
LOCATE TopRow% + 4,LeftColumn% + 9,0: PRINT "▀▀▀";
LOCATE TopRow% + 4,LeftColumn% + 15,0: PRINT "▀▀▀";
LOCATE TopRow% + 4,LeftColumn% + 21,0: PRINT "▀▀▀";
LOCATE TopRow% + 6,LeftColumn% + 3,0: PRINT "▀▀▀";
LOCATE TopRow% + 6,LeftColumn% + 9,0: PRINT "▀▀▀";
LOCATE TopRow% + 6,LeftColumn% + 15,0: PRINT "▀▀▀";
LOCATE TopRow% + 8,LeftColumn% + 3,0: PRINT "▀▀▀";
LOCATE TopRow% + 8,LeftColumn% + 9,0: PRINT "▀▀▀";
LOCATE TopRow% + 8,LeftColumn% + 15,0: PRINT "▀▀▀";
LOCATE TopRow% + 8,LeftColumn% + 21,0: PRINT "▀▀▀";
LOCATE TopRow% + 10,LeftColumn% + 3,0: PRINT "▀▀▀";
LOCATE TopRow% + 10,LeftColumn% + 9,0: PRINT "▀▀▀";
LOCATE TopRow% + 10,LeftColumn% + 15,0: PRINT "▀▀▀";
LOCATE TopRow% + 12,LeftColumn% + 3,0: PRINT "▀▀▀▀▀▀▀▀▀";
LOCATE TopRow% + 12,LeftColumn% + 15,0: PRINT "▀▀▀";
LOCATE TopRow% + 12,LeftColumn% + 21,0: PRINT "▀▀▀";
WHILE NOT INSTAT
IF Mouse% THEN
ShowCursor
Rgt% = 0:Lft% = 0:MRow% = 0:MCol% = 0
Clicked Rgt%,Lft%,MRow%,MCol%
IF Lft% AND MRow% >= TopRow% AND MRow% < TopRow% + 14_
AND MCol% >= LeftColumn% AND MCol% =< RightColumn% THEN
SELECT CASE MRow%
CASE TopRow%
IF MCol% = LeftColumn% + 3 THEN
IF LeftButtonReleased% THEN
Ky$ = CHR$(27): HideCursor: GOTO MouseJump
END IF
END IF
CASE TopRow% + 3
SELECT CASE MCol%
CASE LeftColumn% + 8 to LeftColumn% + 10 '/
IF LeftButtonReleased% THEN
Ky$ = "/": HideCursor: GOTO MouseJump
END IF
CASE LeftColumn% + 14 to LeftColumn% + 16 '*
IF LeftButtonReleased% THEN
Ky$ = "*": HideCursor: GOTO MouseJump
END IF
CASE LeftColumn% + 20 to LeftColumn% + 22 '-
IF LeftButtonReleased% THEN
Ky$ = "-": HideCursor: GOTO MouseJump
END IF
END SELECT
CASE TopRow% + 5
SELECT CASE MCol%
CASE LeftColumn% + 2 to LeftColumn% + 6 '7
IF LeftButtonReleased% THEN
Ky$ = "7": HideCursor: GOTO MouseJump
END IF
CASE LeftColumn% + 8 to LeftColumn% + 10 '8
IF LeftButtonReleased% THEN
Ky$ = "8": HideCursor: GOTO MouseJump
END IF
CASE LeftColumn% + 14 to LeftColumn% + 16 '9
IF LeftButtonReleased% THEN
Ky$ = "9": HideCursor: GOTO MouseJump
END IF
CASE LeftColumn% + 20 to LeftColumn% + 22 '+
IF LeftButtonReleased% THEN
Ky$ = "+": HideCursor: GOTO MouseJump
END IF
END SELECT
CASE TopRow% + 6
SELECT CASE MCol%
CASE LeftColumn% + 20 to LeftColumn% + 22 '+
IF LeftButtonReleased% THEN
Ky$ = "+": HideCursor: GOTO MouseJump
END IF
END SELECT
CASE TopRow% + 7
SELECT CASE MCol%
CASE LeftColumn% + 2 to LeftColumn% + 4 '4
IF LeftButtonReleased% THEN
Ky$ = "4": HideCursor: GOTO MouseJump
END IF
CASE LeftColumn% + 8 to LeftColumn% + 10 '5
IF LeftButtonReleased% THEN
Ky$ = "5": HideCursor: GOTO MouseJump
END IF
CASE LeftColumn% + 14 to LeftColumn% + 16 '6
IF LeftButtonReleased% THEN
Ky$ = "6": HideCursor: GOTO MouseJump
END IF
CASE LeftColumn% + 20 to LeftColumn% + 22 '+
IF LeftButtonReleased% THEN
Ky$ = "+": HideCursor: GOTO MouseJump
END IF
END SELECT
CASE TopRow% + 9
SELECT CASE MCol%
CASE LeftColumn% + 2 to LeftColumn% + 4 '1
IF LeftButtonReleased% THEN
Ky$ = "1": HideCursor: GOTO MouseJump
END IF
CASE LeftColumn% + 8 to LeftColumn% + 10 '2
IF LeftButtonReleased% THEN
Ky$ = "2": HideCursor: GOTO MouseJump
END IF
CASE LeftColumn% + 14 to LeftColumn% + 16 '3
IF LeftButtonReleased% THEN
Ky$ = "3": HideCursor: GOTO MouseJump
END IF
CASE LeftColumn% + 20 to LeftColumn% + 22 'Enter
IF LeftButtonReleased% THEN
Ky$ = CHR$(13): HideCursor: GOTO MouseJump
END IF
END SELECT
CASE TopRow% + 10
SELECT CASE MCol%
CASE LeftColumn% + 20 to LeftColumn% + 22 'Enter
IF LeftButtonReleased% THEN
Ky$ = CHR$(13): HideCursor: GOTO MouseJump
END IF
END SELECT
CASE TopRow% + 11
SELECT CASE MCol%
CASE LeftColumn% + 2 to LeftColumn% + 10 '0
IF LeftButtonReleased% THEN
Ky$ = "0": HideCursor: GOTO MouseJump
END IF
CASE LeftColumn% + 14 to LeftColumn% + 16 '.
IF LeftButtonReleased% THEN
Ky$ = ".": HideCursor: GOTO MouseJump
END IF
CASE LeftColumn% + 20 to LeftColumn% + 22 'Enter
IF LeftButtonReleased% THEN
Ky$ = CHR$(13): HideCursor: GOTO MouseJump
END IF
END SELECT
END SELECT
ELSE
IF LeftButtonReleased% THEN
Ky$ = CHR$(27): HideCursor: GOTO MouseJump
END IF
END IF
END IF
WEND
Ky$ = INKEY$
MouseJump:
IF LEN(Ky$) = 1 THEN
Choice% = ASC(Ky$)
ELSE
Choice% = -ASC(RIGHT$(Ky$,1))
END IF
SELECT CASE Choice%
CASE 13 'EnterKey
COLOR BtFG%,BtBG%
LOCATE TopRow% + 9,LeftColumn% + 21,0: PRINT " ";
LOCATE TopRow% + 10,LeftColumn% + 21,0: PRINT " = ";
LOCATE TopRow% + 11,LeftColumn% + 21,0: PRINT " ";
COLOR 0,BGround%
LOCATE TopRow% + 12,LeftColumn% + 21,0: PRINT " ";
LOCATE TopRow% + 9,LeftColumn% + 20,0: PRINT " ";
LOCATE TopRow% + 10,LeftColumn% + 20,0: PRINT " ";
LOCATE TopRow% + 11,LeftColumn% + 20,0: PRINT " ";
Math$ = ""
CASE 27 'Esc
EXIT LOOP
CASE 42 '*
COLOR BtFG%,BtBG%
LOCATE TopRow% + 3,LeftColumn% + 15,0: PRINT " * ";
COLOR 0,BGround%
LOCATE TopRow% + 4,LeftColumn% + 15,0: PRINT " ";
LOCATE TopRow% + 3,LeftColumn% + 14,0: PRINT " ";
GOSUB Multiplication
CASE 43 '+
COLOR BtFG%,BtBG%
LOCATE TopRow% + 5,LeftColumn% + 21,0: PRINT " ";
LOCATE TopRow% + 6,LeftColumn% + 21,0: PRINT " + ";
LOCATE TopRow% + 7,LeftColumn% + 21,0: PRINT " ";
COLOR 0,BGround%
LOCATE TopRow% + 8,LeftColumn% + 21,0: PRINT " ";
LOCATE TopRow% + 5,LeftColumn% + 20,0: PRINT " ";
LOCATE TopRow% + 6,LeftColumn% + 20,0: PRINT " ";
LOCATE TopRow% + 7,LeftColumn% + 20,0: PRINT " ";
GOSUB Addition
CASE 45 '-
COLOR BtFG%,BtBG%
LOCATE TopRow% + 3,LeftColumn% + 21,0: PRINT " - ";
COLOR 0,BGround%
LOCATE TopRow% + 4,LeftColumn% + 21,0: PRINT " ";
LOCATE TopRow% + 3,LeftColumn% + 20,0: PRINT " ";
GOSUB Subtraction
CASE 46 '.
COLOR BtFG%,BtBG%
LOCATE TopRow% + 11,LeftColumn% + 15,0: PRINT " . ";
COLOR 0,BGround%
LOCATE TopRow% + 12,LeftColumn% + 15,0: PRINT " ";
LOCATE TopRow% + 11,LeftColumn% + 14,0: PRINT " ";
IF NoPoint% THEN Math$ = Math$ + Ky$ :NoPoint% = 0
CASE 47 '/
COLOR BtFG%,BtBG%
LOCATE TopRow% + 3,LeftColumn% + 9,0: PRINT " / ";
COLOR 0,BGround%
LOCATE TopRow% + 4,LeftColumn% + 9,0: PRINT " ";
LOCATE TopRow% + 3,LeftColumn% + 8,0: PRINT " ";
GOSUB Division
CASE 48 '0
COLOR BtFG%,BtBG%
LOCATE TopRow% + 11,LeftColumn% + 3,0: PRINT " 0 ";
COLOR 0,BGround%
LOCATE TopRow% + 12,LeftColumn% + 3,0: PRINT " ";
LOCATE TopRow% + 11,LeftColumn% + 2,0: PRINT " ";
Math$ = Math$ + Ky$
CASE 49 '1
COLOR BtFG%,BtBG%
LOCATE TopRow% + 9,LeftColumn% + 3,0: PRINT " 1 ";
COLOR 0,BGround%
LOCATE TopRow% + 10,LeftColumn% + 3,0: PRINT " ";
LOCATE TopRow% + 9,LeftColumn% + 2,0: PRINT " ";
Math$ = Math$ + Ky$
CASE 50 '2
COLOR BtFG%,BtBG%
LOCATE TopRow% + 9,LeftColumn% + 9,0: PRINT " 2 ";
COLOR 0,BGround%
LOCATE TopRow% + 10,LeftColumn% + 9,0: PRINT " ";
LOCATE TopRow% + 9,LeftColumn% + 8,0: PRINT " ";
Math$ = Math$ + Ky$
CASE 51 '3
COLOR BtFG%,BtBG%
LOCATE TopRow% + 9,LeftColumn% + 15,0: PRINT " 3 ";
COLOR 0,BGround%
LOCATE TopRow% + 10,LeftColumn% + 15,0: PRINT " ";
LOCATE TopRow% + 9,LeftColumn% + 14,0: PRINT " ";
Math$ = Math$ + Ky$
CASE 52 '4
COLOR BtFG%,BtBG%
LOCATE TopRow% + 7,LeftColumn% + 3,0: PRINT " 4 ";
COLOR 0,BGround%
LOCATE TopRow% + 8,LeftColumn% + 3,0: PRINT " ";
LOCATE TopRow% + 7,LeftColumn% + 2,0: PRINT " ";
Math$ = Math$ + Ky$
CASE 53 '5
COLOR BtFG%,BtBG%
LOCATE TopRow% + 7,LeftColumn% + 9,0: PRINT " 5 ";
COLOR 0,BGround%
LOCATE TopRow% + 8,LeftColumn% + 9,0: PRINT " ";
LOCATE TopRow% + 7,LeftColumn% + 8,0: PRINT " ";
Math$ = Math$ + Ky$
CASE 54 '6
COLOR BtFG%,BtBG%
LOCATE TopRow% + 7,LeftColumn% + 15,0: PRINT " 6 ";
COLOR 0,BGround%
LOCATE TopRow% + 8,LeftColumn% + 15,0: PRINT " ";
LOCATE TopRow% + 7,LeftColumn% + 14,0: PRINT " ";
Math$ = Math$ + Ky$
CASE 55 '7
COLOR BtFG%,BtBG%
LOCATE TopRow% + 5,LeftColumn% + 3,0: PRINT " 7 ";
COLOR 0,BGround%
LOCATE TopRow% + 6,LeftColumn% + 3,0: PRINT " ";
LOCATE TopRow% + 5,LeftColumn% + 2,0: PRINT " ";
Math$ = Math$ + Ky$
CASE 56 '8
COLOR BtFG%,BtBG%
LOCATE TopRow% + 5,LeftColumn% + 9,0: PRINT " 8 ";
COLOR 0,BGround%
LOCATE TopRow% + 6,LeftColumn% + 9,0: PRINT " ";
LOCATE TopRow% + 5,LeftColumn% + 8,0: PRINT " ";
Math$ = Math$ + Ky$
CASE 57 '9
COLOR BtFG%,BtBG%
LOCATE TopRow% + 5,LeftColumn% + 15,0: PRINT " 9 ";
COLOR 0,BGround%
LOCATE TopRow% + 6,LeftColumn% + 15,0: PRINT " ";
LOCATE TopRow% + 5,LeftColumn% + 14,0: PRINT " ";
Math$ = Math$ + Ky$
END SELECT
DELAY .05
LOOP
IF Mouse% THEN HideCursor
RestoreScreen CalcScreen$,TopRow%,LeftColumn%
EXIT SUB
'----------------------------------------------------------------------------
Multiplication:
RETURN
'----------------------------------------------------------------------------
Addition:
RETURN
'----------------------------------------------------------------------------
Subtraction:
RETURN
'----------------------------------------------------------------------------
Division:
RETURN
'----------------------------------------------------------------------------
END SUB