📄 svgamod1.bas
字号:
IF Colr > 255 THEN
Colr = 16
END IF
NEXT A
DRWSTRING 1, 7, 0, TEXT$, X1 + SPCNG, Y1 + SPCNG
DRWSTRINGLT 1, 7, 0, TEXT$, X1 + SPCNG, Y1 + SPCNG
DRWSTRINGDN 1, 7, 0, TEXT$, X1 + SPCNG, Y1 + SPCNG
DRWSTRINGRT 1, 7, 0, TEXT$, X1 + SPCNG, Y1 + SPCNG
FOR A = 0 TO Num
SCROLLUP X1, Y1, X2, Y2, SKIP, 0 '* HERE IT IS!
NEXT A
GETKEY RET$
IF (RET$ = "S") OR (RET$ = "Q") THEN
SETVIEW 0, 0, GETMAXX, GETMAXY
EXIT SUB
END IF
'*************************************************************************
'* SHOW SCROLLLT
'*************************************************************************
SETVIEW 0, 0, GETMAXX, GETMAXY
A$ = "SCROLLLT (X1,Y1,X2,Y2,NumLines,FillColr)"
DRWSTRING 1, 7, 0, A$, 10, 16
SETVIEW X1, Y1, X2, Y2
FILLVIEW 0
NUMOF = GETMAXX \ 10
FOR A = 0 TO NUMOF
X = RND * GETMAXX
Y = RND * GETMAXY
I = RND * GETMAXX
J = RND * GETMAXY
DRWLINE 1, Colr, X, Y, I, J
Colr = Colr + 3
IF Colr > 255 THEN
Colr = 16
END IF
NEXT A
DRWSTRING 1, 7, 0, TEXT$, X1 + SPCNG, Y1 + SPCNG
DRWSTRINGLT 1, 7, 0, TEXT$, X1 + SPCNG, Y1 + SPCNG
DRWSTRINGDN 1, 7, 0, TEXT$, X1 + SPCNG, Y1 + SPCNG
DRWSTRINGRT 1, 7, 0, TEXT$, X1 + SPCNG, Y1 + SPCNG
FOR A = 0 TO Num
SCROLLLT X1, Y1, X2, Y2, SKIP, 0 '* HERE IT IS!
NEXT A
GETKEY RET$
IF (RET$ = "S") OR (RET$ = "Q") THEN
SETVIEW 0, 0, GETMAXX, GETMAXY
EXIT SUB
END IF
'*************************************************************************
'* SHOW SCROLLDN
'*************************************************************************
SETVIEW 0, 0, GETMAXX, GETMAXY
A$ = "SCROLLDN (X1,Y1,X2,Y2,NumLines,FillColr)"
DRWSTRING 1, 7, 0, A$, 10, 16
SETVIEW X1, Y1, X2, Y2
FILLVIEW 0
NUMOF = GETMAXX \ 10
FOR A = 0 TO NUMOF
X = RND * GETMAXX
Y = RND * GETMAXY
I = RND * GETMAXX
J = RND * GETMAXY
DRWLINE 1, Colr, X, Y, I, J
Colr = Colr + 3
IF Colr > 255 THEN
Colr = 16
END IF
NEXT A
DRWSTRING 1, 7, 0, TEXT$, X1 + SPCNG, Y1 + SPCNG
DRWSTRINGLT 1, 7, 0, TEXT$, X1 + SPCNG, Y1 + SPCNG
DRWSTRINGDN 1, 7, 0, TEXT$, X1 + SPCNG, Y1 + SPCNG
DRWSTRINGRT 1, 7, 0, TEXT$, X1 + SPCNG, Y1 + SPCNG
FOR A = 0 TO Num
SCROLLDN X1, Y1, X2, Y2, SKIP, 0 '* HERE IT IS!
NEXT A
GETKEY RET$
IF (RET$ = "S") OR (RET$ = "Q") THEN
SETVIEW 0, 0, GETMAXX, GETMAXY
EXIT SUB
END IF
'*************************************************************************
'* SHOW SCROLLRT
'*************************************************************************
SETVIEW 0, 0, GETMAXX, GETMAXY
A$ = "SCROLLRT (X1,Y1,X2,Y2,NumLines,FillColr)"
DRWSTRING 1, 7, 0, A$, 10, 16
SETVIEW X1, Y1, X2, Y2
FILLVIEW 0
NUMOF = GETMAXX \ 10
FOR A = 0 TO NUMOF
X = RND * GETMAXX
Y = RND * GETMAXY
I = RND * GETMAXX
J = RND * GETMAXY
DRWLINE 1, Colr, X, Y, I, J
Colr = Colr + 3
IF Colr > 255 THEN
Colr = 16
END IF
NEXT A
DRWSTRING 1, 7, 0, TEXT$, X1 + SPCNG, Y1 + SPCNG
DRWSTRINGLT 1, 7, 0, TEXT$, X1 + SPCNG, Y1 + SPCNG
DRWSTRINGDN 1, 7, 0, TEXT$, X1 + SPCNG, Y1 + SPCNG
DRWSTRINGRT 1, 7, 0, TEXT$, X1 + SPCNG, Y1 + SPCNG
FOR A = 0 TO Num
SCROLLRT X1, Y1, X2, Y2, SKIP, 0 '* HERE IT IS!
NEXT A
GETKEY RET$
IF (RET$ = "S") OR (RET$ = "Q") THEN
SETVIEW 0, 0, GETMAXX, GETMAXY
EXIT SUB
END IF
'*************************************************************************
'* SHOW PAGING
'*************************************************************************
SETVIEW 0, 0, GETMAXX, GETMAXY
'*************************************************************************
'* CHECK TO SEE IF CARD SUPPORTS CHANGING THE DISPLAY OFFSET
'*************************************************************************
X1 = GETMAXX + 1
Y1 = GETMAXY + 1
IF PAGEDISPLAY(0, 0, 0) = 0 THEN
FILLSCREEN 0
SOUND 100, 5
DRWSTRING 1, 7, 0, TITLE$, 10, 0
A$ = "Sorry, This Video Card Does Not Support"
DRWSTRING 1, 7, 0, A$, 10, 16
A$ = "Changing The Display Offset In This"
DRWSTRING 1, 7, 0, A$, 10, 32
A$ = "Video Mode...Can Not Do The Paging Demo."
DRWSTRING 1, 7, 0, A$, 10, 48
A$ = "Press A Key..."
DRWSTRING 1, 15, 0, A$, 10, 64
WHILE INKEY$ = ""
WEND
FILLSCREEN 0
EXIT SUB
END IF
'*************************************************************************
'* CHECK TO SEE IF THERE IS ENOUGH MEMORY FOR MULTIPLE PAGES
'*************************************************************************
NUMBANKS = WHICHMEM / 64
XSIZE& = GETMAXX + 1
YSIZE& = GETMAXY + 1
BANKSPERPAGE& = XSIZE& * YSIZE& / 65536
NUMPAGES = INT((NUMBANKS / BANKSPERPAGE&) - 1)
'* LIMIT THE TOTAL NUMBER OF PAGES TO 3 (0-2) FOR THIS DEMO
IF NUMPAGES > 2 THEN
NUMPAGES = 2
END IF
IF NUMPAGES = 0 THEN
FILLSCREEN 0
SOUND 100, 5
DRWSTRING 1, 7, 0, TITLE$, 10, 0
A$ = "Sorry, This Video Card Does Not Have Enough Video"
DRWSTRING 1, 7, 0, A$, 10, 16
A$ = "Memory To Support Multiple Video Pages In This Mode."
DRWSTRING 1, 7, 0, A$, 10, 32
A$ = "Press A Key..."
DRWSTRING 1, 15, 0, A$, 10, 48
WHILE INKEY$ = ""
WEND
FILLSCREEN 0
EXIT SUB
END IF
NUMOF = GETMAXX \ 6
FILLSCREEN 0
FOR Page = 0 TO NUMPAGES
SETVIEW 0, 0, GETMAXX, GETMAXY
DUMMY = PAGEACTIVE(Page)
DUMMY = PAGEDISPLAY(0, 0, Page)
FILLPAGE 0
DRWSTRING 1, 7, 0, TITLE$, 10, 0
A$ = "PAGEACTIVE(Page)"
DRWSTRING 1, 7, 0, A$, 10, 16
A$ = "PAGEDISPLAY(StartX,StartY,Page)"
DRWSTRING 1, 7, 0, A$, 10, 32
DRWBOX 1, 15, 0, 48, GETMAXX, GETMAXY
A$ = "THIS IS PAGE" + STR$(Page)
FOR I = 0 TO 20
DRWSTRING 1, 12 + Page, 0, A$, 10, 50 + I * 16
NEXT I
SETVIEW 150, 58, GETMAXX - 10, GETMAXY - 10
FOR I = 0 TO NUMOF
X1 = RND * GETMAXX
Y1 = RND * GETMAXY
X2 = RND * 100
Y2 = RND * 100
C = RND * 15
SELECT CASE Page
CASE IS = 0
DRWFILLCIRCLE 1, C, X1, Y1, X2
CASE IS = 1
DRWLINE 1, C, X1, Y1, X1 + X2, Y1 + Y2
DRWELLIPSE 1, C + 1, X1, Y1, X2 / 4, Y2 / 4
CASE IS = 2
DRWFILLBOX 1, C, X1, Y1, X1 + X2, Y1 + Y2
END SELECT
NEXT I
DRWBOX 1, 15, 150, 58, GETMAXX - 10, GETMAXY - 10
SDELAY 35
NEXT Page
DUMMY = PAGEACTIVE(0)
DUMMY = PAGEDISPLAY(0, 0, 0)
GETKEY RET$
IF (RET$ = "S") OR (RET$ = "Q") THEN
SETVIEW 0, 0, GETMAXX, GETMAXY
EXIT SUB
END IF
FOR I = 0 TO 1
FOR Page = 0 TO NUMPAGES
DUMMY = PAGEDISPLAY(0, 0, Page)
SDELAY 35
NEXT Page
NEXT I
FOR I = 0 TO 20
FOR Page = 0 TO NUMPAGES
DUMMY = PAGEDISPLAY(0, 0, Page)
SDELAY 1
NEXT Page
NEXT I
DUMMY = PAGEDISPLAY(0, 0, 0)
GETKEY RET$
IF (RET$ = "S") OR (RET$ = "Q") THEN
SETVIEW 0, 0, GETMAXX, GETMAXY
EXIT SUB
END IF
END SUB
SUB DOTEXT (RET$)
DEFINT A-Z
REM $DYNAMIC
'*************************************************************************
'* SET UP THE TITLE
'*************************************************************************
TITLE$ = "DEMO 6: Text functions"
PALSET PAL, 0, 255
'*************************************************************************
'* SHOW DRWSTRING
'*************************************************************************
FILLSCREEN 0
SETVIEW 0, 0, GETMAXX, GETMAXY
A$ = "DRWSTRING(Mode,ForeGndColr,BackGndColr,Text$,X,Y)"
DRWSTRING 1, 7, 0, TITLE$, 10, 0
DRWSTRING 1, 7, 0, A$, 10, 16
SETVIEW 0, 32, GETMAXX, GETMAXY
Colr = 16
A$ = "The Quick Brown Fox Jumped Over The Lazy Dog's Back! 0123456789"
FOR Y = 32 TO GETMAXY STEP 20
DRWSTRING 1, Colr, 0, A$, 0, Y
Colr = Colr + 5
IF Colr > 255 THEN
Colr = 16
END IF
NEXT Y
GETKEY RET$
IF (RET$ = "S") OR (RET$ = "Q") THEN
SETVIEW 0, 0, GETMAXX, GETMAXY
FILLSCREEN 0
EXIT SUB
END IF
'*************************************************************************
'* SHOW DRWSTRINGLT
'*************************************************************************
FILLVIEW 0
SETVIEW 0, 0, GETMAXX, GETMAXY
A$ = "DRWSTRINGLT(Mode,ForeGndColr,BackGndColr,Text$,X,Y)"
DRWSTRING 1, 7, 0, A$, 10, 16
SETVIEW 0, 32, GETMAXX, GETMAXY
A$ = "The Quick Brown Fox Jumped Over The Lazy Dog's Back! 0123456789"
FOR X = 0 TO GETMAXX STEP 20
DRWSTRINGLT 1, Colr, 0, A$, X, GETMAXY
Colr = Colr + 5
IF Colr > 255 THEN
Colr = 16
END IF
NEXT X
GETKEY RET$
IF (RET$ = "S") OR (RET$ = "Q") THEN
SETVIEW 0, 0, GETMAXX, GETMAXY
FILLSCREEN 0
EXIT SUB
END IF
'*************************************************************************
'* SHOW DRWSTRINGDN
'*************************************************************************
FILLVIEW 0
SETVIEW 0, 0, GETMAXX, GETMAXY
A$ = "DRWSTRINGDN(Mode,ForeGndColr,BackGndColr,Text$,X,Y)"
DRWSTRING 1, 7, 0, A$, 10, 16
SETVIEW 0, 32, GETMAXX, GETMAXY
A$ = "The Quick Brown Fox Jumped Over The Lazy Dog's Back! 0123456789"
Colr = 16
FOR Y = GETMAXY TO 32 STEP -20
DRWSTRINGDN 1, Colr, 0, A$, GETMAXX, Y
Colr = Colr + 5
IF Colr > 255 THEN
Colr = 16
END IF
NEXT Y
GETKEY RET$
IF (RET$ = "S") OR (RET$ = "Q") THEN
SETVIEW 0, 0, GETMAXX, GETMAXY
FILLSCREEN 0
EXIT SUB
END IF
'*************************************************************************
'* SHOW DRWSTRINGRT
'*************************************************************************
FILLVIEW 0
SETVIEW 0, 0, GETMAXX, GETMAXY
A$ = "DRWSTRINGRT(Mode,ForeGndColr,BackGndColr,Text$,X,Y)"
DRWSTRING 1, 7, 0, A$, 10, 16
SETVIEW 0, 32, GETMAXX, GETMAXY
A$ = "The Quick Brown Fox Jumped Over The Lazy Dog's Back! 0123456789"
FOR X = GETMAXX TO 0 STEP -20
DRWSTRINGRT 1, Colr, 0, A$, X, 32
Colr = Colr + 5
IF Colr > 255 THEN
Colr = 16
END IF
NEXT X
GETKEY RET$
IF (RET$ = "S") OR (RET$ = "Q") THEN
SETVIEW 0, 0, GETMAXX, GETMAXY
FILLSCREEN 0
EXIT SUB
END IF
END SUB
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -