home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1984-04-13 | 4.3 KB | 101 lines |
- 10 '***************************************************************************
- 20 '* *
- 30 '* A PROGRAM TO DEMOSTRATE PRINT_SCREEN *
- 40 '* *
- 50 '* (C) COPYRIGHT 1984 *
- 60 '* by *
- 70 '* Michael L Hoyt *
- 80 '* *
- 90 '***************************************************************************
- 100 '
- 110 '*************************** CHECK FOR COLOR CARD *************************
- 120 '
- 130 DEF SEG=&H40 'address of display information
- 140 MODE=PEEK(&H49) 'offset of current mode
- 150 DEF SEG 're-establish BASIC'S data seg
- 160 IF MODE=7 GOTO 610 'see if color card is in use
- 170 '
- 180 '******************************* INITIALIZE *******************************
- 190 '
- 200 DEF SEG 'establish BASIC'S data segment
- 210 GOSUB 840 'load interface to PRINT_SCREEN
- 220 SCREEN 0,1,0,0: WIDTH 40: COLOR 7,0,0: CLS
- 230 '
- 240 '***************************** OPENING SCREEN *****************************
- 250 '
- 260 LOCATE 3,11,0: 'cursor off
- 270 PRINT "DEMONSTRATION PROGRAM"
- 280 PRINT " for"
- 290 COLOR 15: PRINT
- 300 PRINT " PRINT_SCREEN"
- 310 COLOR 7: PRINT " with the"
- 320 COLOR 15: PRINT
- 330 PRINT " NEC 8023A"
- 340 COLOR 7: PRINT " dot matrix printer"
- 350 LOCATE 18,1
- 360 PRINT "(c) Copyright 1984"
- 370 PRINT " by"
- 380 PRINT " Michael L Hoyt"
- 390 LOCATE 24,8: COLOR 23
- 400 PRINT "Press any key to continue"; 'prompt user to begin
- 410 A$=INKEY$: IF A$="" THEN 410 'wait for response
- 420 '
- 430 '**************************** LOAD GRAPHICS SCREEN ************************
- 440 '
- 450 SCREEN 1,0: COLOR 0,1: CLS 'set medium graphics screen
- 460 DEF SEG=&HB800 'address of graphics board
- 470 BLOAD"USMAP.PIC",0
- 480 DEF SEG 're-establish BASIC'S data seg
- 490 '
- 500 '***************************** GET USER RESPONSE **************************
- 510 '
- 520 LOCATE 1,17
- 530 PRINT "Press P)rint or E)nd"; 'print prompt
- 540 A$=INKEY$: IF A$="" THEN 540 'wait for response
- 550 IF A$="E" OR A$="e" GOTO 740
- 560 IF A$="P" OR A$="p" THEN GOSUB 940: GOTO 740
- 570 BEEP: GOTO 540
- 580 GOTO 740
- 590 '******************************* ERROR ************************************
- 600 '
- 610 COLOR 23,0,0: WIDTH 80: CLS
- 620 LOCATE 2,36,0 'cursor off
- 630 PRINT "HOLD IT!"
- 640 COLOR 7: PRINT
- 650 PRINT :PRINT " You must have the color/graphics monitor adapter installed and in operation"
- 660 PRINT " to run this demonstration program."
- 670 COLOR 15: LOCATE 5,21
- 680 PRINT "COLOR/GRAPHICS MONITOR ADAPTER";
- 690 LOCATE 10,1,1: COLOR 7,0,0
- 700 END
- 710 '
- 720 '******************************* END **************************************
- 730 '
- 740 SCREEN 0,1,0,0
- 750 IF MODE=0 OR MODE=1 OR MODE=4 OR MODE=5 THEN WIDTH 40 ELSE WIDTH 80
- 760 COLOR 7,0,0: CLS
- 770 LOCATE 3,10:
- 780 PRINT "End of demonstration..."
- 790 LOCATE 5,1,1: 'cursor back on
- 800 END
- 810 '
- 820 '********************** INTERFACE TO PRINT_SCREEN *************************
- 830 '
- 840 DEF SEG
- 850 DIM PRTSC%(3) 'define variable to hold code
- 860 FOR X=0 TO 3 'load the code into the string
- 870 READ PRTSC%(X) 'read data statement
- 880 NEXT X 'loop until odne
- 890 RETURN 'done. so return
- 900 DATA &H8955,&HCDE5,&H5D05,&H00CB: 'interface code
- 910 '
- 920 '********************* CALL PRINT_SCREEN INTERFACE ************************
- 930 '
- 940 LOCATE 1,17
- 950 PRINT " ";
- 960 DEF SEG 'set BASIC'S data segment
- 970 SUBRT%=VARPTR(PRTSC%(0)) 'point to code string (variable
- 980 CALL SUBRT% 'call the code interface
- 990 LPRINT CHR$(12) 'eject graphics print
- 1000 RETURN 'done, so retINPUTENDn
-