Test message to monitor system connectivity. Also a neat graphic! :)
'_|_|_| BIGPAL.BAS
'_|_|_| This program uses a 32K rotating palette.
'_|_|_| No warrantee or guarantee is given or implied.
'_|_|_| Released to PUBLIC DOMAIN by Kurt Kuzba. (8/25/96)
DECLARE SUB Vmode(a%)
DECLARE SUB BCircle (xc%, yc%, r%, c%)
DECLARE SUB PutDot (x%, y%, c%)
'$LIB -all
HIGH% = 200: WIDE% = 320
DIM RED(32767) AS STRING * 1
DIM BLU(32767) AS STRING * 1
DIM GRN(32767) AS STRING * 1
RANDOMIZE TIMER
Vmode 19
H% = 159
FOR CRCL% = 1 TO 200
BCircle H% , 99, (201 - CRCL%), (CRCL%)
BCircle H% + 1, 99, (201 - CRCL%), (CRCL%)
BCircle H% - 1, 99, (201 - CRCL%), (CRCL%)
IF (CRCL% AND 1) = 0 THEN H% = H% - 1
NEXT
RC% = RND * 63: GC% = RND * 63: BC% = RND * 63
RD% = 1: GD% = 1: BD% = 1
FOR PAL% = 0 TO 32766
R% = RC%: G% = GC%: B% = BC%
IF R% < 0 THEN R% = 0
IF G% < 0 THEN G% = 0
IF B% < 0 THEN B% = 0
RED(PAL%) = CHR$(R%): GRN(PAL%) = CHR$(G%): BLU(PAL%) = CHR$(B%)
IF RC% = 63 THEN RD% = -1
IF GC% = 63 THEN GD% = -1
IF BC% = 63 THEN BD% = -1
IF RC% < -1 THEN RD% = 1
IF GC% < -4 THEN GD% = 1
IF BC% < -7 THEN BD% = 1
RC% = RC% + RD%: GC% = GC% + GD%: BC% = BC% + BD%
NEXT
HUE% = 0: SOUND 999, 1
DO
WHILE (INP(&H3DA) AND 8) = 0: WEND
WHILE (INP(&H3DA) AND 8) > 0: WEND
FOR PAL% = 1 TO 200
OUT &H3C8, PAL%
OUT &H3C9, ASC(RED((PAL% + HUE%) MOD 32766))
OUT &H3C9, ASC(GRN((PAL% + HUE%) MOD 32766))
OUT &H3C9, ASC(BLU((PAL% + HUE%) MOD 32766))
NEXT
HUE% = (HUE% + 1) MOD 32766
WHILE (INP(&H3DA) AND 8) = 0: WEND
WHILE (INP(&H3DA) AND 8) > 0: WEND
LOOP WHILE INKEY$ = ""
Vmode 3
SUB BCircle (xc%, yc%, r%, c%)
'_|_|_| Bresenham Circle Drawing Algorithm
'_|_|_| Adapted from BRESNHAM.C in Bob Stout's SNIPPETS.
SHARED WIDE%, HIGH%
x% = 0: d% = 2 * (1 - r%): W% = 2 * WIDE% \ HIGH%
WHILE r% >= 0
PutDot xc% + x%, yc% + r%, c%
PutDot xc% + x%, yc% - r%, c%
PutDot xc% - x%, yc% + r%, c%
PutDot xc% - x%, yc% - r%, c%
IF (d% + r%) > 0 THEN r% = r% - 1: d% = d% - W% * r% - 1
IF x% > d% THEN x% = x% + 1: d% = d% + 2 * x% + 1
WEND
END SUB
SUB PutDot (x%, y%, c%)
SHARED WIDE%, HIGH%
IF (y% >= HIGH%) or (x% >= WIDE%) THEN EXIT SUB
IF (y% < 0) or (x% < 0) THEN EXIT SUB
DEF SEG = &HA000
POKE y% * WIDE% + x%, c%
END SUB
SUB Vmode(a%)
DIM m as STRING * 1
m = CHR$(a% AND 255)
! mov ah, &H00
! mov al, m
! int &H10
END SUB
'_|_|_| end BIGPAL.BAS
---
> ] Opossums on the Information Rustic Road.....................
---
---------------
* Origin: Exec-PC BBS > World's Largest BBS (414-789-4360) < (1:154/280)
|