home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1985-04-19 | 6.3 KB | 87 lines
100 '************************************************************************** 110 '* * 120 '* SCROLL * 130 '* * 140 '* WRITTEN BY: * 150 '* * 160 '* JOHN BOURG * 170 '* 13614 CHERRYDOWN * 180 '* SUGAR LAND, TX. 77478 * 190 '* (713) 494-7687 * 200 '* * 210 '************************************************************************** 220 '* * 230 '* This routine will Scroll a window up and down. The direction of the * 240 '* scrolling window is controled by the value in register AH to change * 250 '* the value in AH after the program is running use MID$(A$,2,1)=CHR$(n)* 260 '* where n is the direction to scroll, 6 = up and 7 = down. * 270 '* To change the number of lines to blank at the top or bottom of the * 280 '* window change the value in register AL to a number between 0 and 24, * 290 '* (0 will blank the entire window). After the program is running use * 300 '* MID$(A$,4,1)=CHR$(n). To set the size of the window to be scrolled * 310 '* change the values in registers CX and DX. To set the upper left hand * 320 '* corner of the window a number between 0 and 18H in CH for the row, * 330 '* and a number between 0 and 4FH for the column. After the program is * 340 '* running use MID$(A$,6,1)=CHR$(n) for CH, MID$(A$,8,1)=CHR$(n) for CL * 350 '* MID$(A$,10,1)=CHR$(n) for DH, and MID$(A$,12,1)=CHR$(n) for DL. * 360 '* To set the attribute of the blank line set the BX register to a value* 370 '* according to the table below. * 380 '* * 390 '************************************************************************** 400 ' 410 ' ATTRIBUTE TABLE 420 'VARPTRSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR CALL Attribute Byte CALL Monochrome CALL Color/Graphics CALL 430 'CALL7 6 5 4 3 2 1 0 CALL Display Adapter CALL Monitor Adapter CALL 440 'BLOADSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND<0xB4!> CALLB CALLR G B CALL I CALLR G B CALL CALL CALL CALL CALL 450 'BLOADSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND<0xB4!>BackgroundCALLCharacterCALLBackgroundCALLCharacterCALL 460 'CALLFGCALLBackgroundCALL ForegroundCALL Color CALL Color CALL Color CALL Color CALL 470 'BLOADSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND<0xB4!> CALLB CALL0 0 0 CALL I CALL1 1 1 CALL Black CALL White CALL Black CALL White CALL 480 'CALLB CALL1 1 1 CALL I CALL0 0 0 CALL White CALL Black CALL White CALL Black CALL 490 'CALLB CALL0 0 0 CALL I CALL0 0 0 CALL Black CALL Black CALL Black CALL Black CALL 500 'CALLB CALL1 1 1 CALL I CALL1 1 1 CALL White CALL White CALL White CALL White CALL 510 'CLSSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND' 520 ' 530 ' FOR THE COLOR/GRAPHICS ADAPTER 540 'VARPTRSOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR CALL R CALL G CALL B CALL I CALL COLOR CALL 550 'BLOADSOUNDSOUNDSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND<0xB4!> CALL 0 CALL 0 CALL 0 CALL 0 CALL Black CALL 560 'CALL 0 CALL 0 CALL 1 CALL 0 CALL Blue CALL CALL 0 CALL 1 CALL 0 CALL 0 CALL Green CALL 570 'CALL 0 CALL 1 CALL 1 CALL 0 CALL Cyan CALL CALL 1 CALL 0 CALL 0 CALL 0 CALL Red CALL 580 'CALL 1 CALL 0 CALL 1 CALL 0 CALL Magenta CALL CALL 1 CALL 1 CALL 0 CALL 0 CALL Brown CALL 590 'CALL 1 CALL 1 CALL 1 CALL 0 CALL White CALL CALL 0 CALL 0 CALL 0 CALL 1 CALL Gray CALL 600 'CALL 0 CALL 0 CALL 1 CALL 1 CALL Light Blue CALL CALL 0 CALL 1 CALL 0 CALL 1 CALL Light Green CALL 610 'CALL 0 CALL 1 CALL 1 CALL 1 CALL Light Cyan CALL CALL 1 CALL 0 CALL 0 CALL 1 CALL Light Red CALL 620 'CALL 1 CALL 0 CALL 1 CALL 1 CALL Light Magenta CALL CALL 1 CALL 1 CALL 0 CALL 1 CALL Yellow CALL 630 'CALL 1 CALL 1 CALL 1 CALL 1 CALL White (High Intensity) CALL 640 'CLSSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND' 650 ' 660 CLS 670 A$=STRING$(18," ") 680 FOR X = 1 TO 18 690 READ D:MID$(A$,X,1)=CHR$(D) 700 NEXT 710 T = VARPTR(A$) 720 START = PEEK(T+1)+PEEK(T+2)*256 730 LOCATE 8,1:PRINT"THIS LINE STAYS HERE"; 740 FOR X = 9 TO 22 750 LOCATE X,1:PRINT USING "##";X-8;:PRINT"*************************"X-8 760 NEXT 770 LOCATE 24,1:PRINT"THIS STAYS HERE"; 780 LOCATE 23,3:PRINT"HIT ANY KEY TO SCROLL UP"; 790 B$ = INKEY$: IF B$ ="" THEN 790 800 DEF SEG: CALL START 810 LOCATE 23,3:PRINT"HIT ANY KEY TO SCROLL DOWN"; 820 B$ = INKEY$: IF B$ ="" THEN 820 830 MID$(A$,2,1)=CHR$(7) 840 CALL START 850 LOCATE 9,3:PRINT"THIS IS AT THE TOP"; 860 MID$(A$,2,1)=CHR$(6):GOTO 780 870 DATA &HB4,&H06:' MOV AH,06 ;SCROLL ACTIVE PAGE UP 880 DATA &HB0,&H01:' MOV AL,01 ;NUMBER OF LINES TO BLANK 890 DATA &HB5,&H08:' MOV CH,08 ;ROW OF UPPER LEFT CORNER 900 DATA &HB1,&H02:' MOV CL,02 ;COLUMN OF UPPER LEFT CORNER 910 DATA &HB6,&H16:' MOV DH,17 ;ROW OF LOWER RIGHT CORNER 920 DATA &HB2,&H1B:' MOV DL,1B ;COLUMN OF LOWER RIGHT CORNER 930 DATA &HBB,&H07,&H00:' MOV BX,0007 ;ATTRIBUTE USED ON BLANK LINE 940 DATA &HCD,&H10:' INT 10 ;SCROLL THE WINDOW 950 DATA &HCB:' RETF ;RETURN TO SENDER