home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1984-08-01 | 14.9 KB | 429 lines |
- 20 ' BOOTSTRAPS: CHARACTER GRAPHICS
- 30 ' Copyright (C) 1983 ,1984 Stan W. Merrill -- All Rights Reserved
- 60 ' -- Declare Global Constants
- 80 DEFINT A-Z
- 90 NO = -1 : YES = 1 : ESC$ = CHR$(27)
- 100 BLACK = 0 : BLUE = 1 : CYAN = 3
- 110 GRAY = 8 : LT.BLUE = 9 : GREEN = 10
- 120 RED = 12 : YELLOW = 14 : WHITE = 15 : BROWN = 6
- 130 BUTTON$ = "o" : MONO.SEG = &HB000 : COLOR.SEG = &HB800
- 140 BLINK = 16 : NO.CURSOR = 0 : MONO = &H30
- 190 ' -- Main Control Section
- 210 GOSUB 1210 ' -- reset function keys
- 220 GOSUB 1380 ' -- get display type
- 240 WIDTH 80 ' -- set screen width
- 250 SCREEN 0,0,0 ' -- set text mode
- 260 GOSUB 3540 ' -- title screen
- 270 COLOR WHITE, BLACK
- 280 WHILE (YES)
- 290 CLS
- 300 GOSUB 460 ' -- Menu title
- 310 GOSUB 630 ' -- Show menu
- 320 GOSUB 1050 ' -- Get choice (FKEY)
- 330 IF FKEY = 1 THEN GOSUB 1460 ' -- Character set
- 340 IF FKEY = 2 THEN GOSUB 2030 ' -- Mondrian art
- 350 IF FKEY = 3 THEN GOSUB 2300 ' -- Graph paper
- 360 IF FKEY = 4 THEN GOSUB 2560 ' -- Mug shot
- 370 IF FKEY = 5 THEN GOSUB 2950 ' -- Color swatches
- 380 IF FKEY = 6 THEN GOSUB 3230 ' -- Math/Non-English
- 390 ' -- Wait for acknowledgement
- 400 LOCATE 25,24 : COLOR YELLOW,BLACK
- 410 PRINT "Press any key to return to menu...";
- 420 IF INKEY$ = "" THEN 420
- 430 WEND
- 460 ' -- Subroutine: MENU TITLE REQUIRES: (NOTHING) RETURNS: (NOTHING)
- 470 CLS
- 490 TITLE$ = "> > > BOOTSTRAPS: CHARACTER GRAPHICS < < <"
- 500 AUTHOR$ = "Copyright (C) 1984 by Stan W. Merrill -- All Rights Reserved"
- 510 '-- Draw a box
- 520 COLOR WHITE,BLACK,BLACK
- 530 TOP.OF.BOX = 1 : BOTTOM.OF.BOX = 6
- 540 LEFT.OF.BOX = 1 : RIGHT.OF.BOX = 80
- 550 GOSUB 1740 ' -- Draw box
- 560 ' -- Print title
- 570 LOCATE TOP.OF.BOX + 2,(40 - (LEN(TITLE$)/2)) : COLOR GREEN,BLACK
- 580 PRINT TITLE$;
- 590 LOCATE TOP.OF.BOX + 3,(40 - (LEN(AUTHOR$)/2)) : COLOR CYAN,BLACK
- 600 PRINT AUTHOR$;
- 610 RETURN
- 630 ' -- Subroutine: SELECTION MENU REQUIRES: (NOTHING) RETURNS: (NOTHING)
- 660 COLOR WHITE,BLACK
- 670 TOP.OF.BOX = 9 : BOTTOM.OF.BOX = 11
- 680 LEFT.OF.BOX = 10 : RIGHT.OF.BOX = 70
- 690 GOSUB 1740 ' -- Draw box
- 700 RESTORE 930
- 710 READ MENU.NAME$
- 720 LOCATE TOP.OF.BOX - 1,(40 - (LEN(MENU.NAME$)/2))
- 730 PRINT MENU.NAME$;
- 740 READ COLUMN.TITLE$
- 750 LOCATE TOP.OF.BOX + 1,(40 - (LEN(COLUMN.TITLE$)/2))
- 760 PRINT COLUMN.TITLE$;
- 770 READ NUMBER.OF.ENTRIES
- 780 LOCATE BOTTOM.OF.BOX + 2
- 790 FOR ENTRY = 1 TO NUMBER.OF.ENTRIES
- 800 READ FKEY$,DESCRIPTION$,STARTING.LINE$
- 810 COLOR WHITE,BLACK
- 820 PRINT TAB(17); FKEY$; " - ";
- 830 COLOR GREEN,BLACK
- 840 PRINT DESCRIPTION$;
- 850 COLOR WHITE,BLACK
- 860 PRINT TAB(60); STARTING.LINE$
- 870 NEXT 'ENTRY
- 880 COLOR WHITE,BLACK
- 890 TOP.OF.BOX = BOTTOM.OF.BOX + 1
- 900 BOTTOM.OF.BOX = BOTTOM.OF.BOX + NUMBER.OF.ENTRIES + 3
- 910 GOSUB 1740 ' -- Draw box
- 920 PRINT TAB(LEFT.OF.BOX); "CHOOSE:";
- 930 DATA "SUBROUTINE MENU"
- 940 DATA " Fkey Description Line #"
- 950 DATA 7 : ' -- Number of lines in menu
- 960 DATA "F1 ","Characters I have met . . . . . .","1460"
- 970 DATA "F2 ","Boxes . . . . . . . . . . . . . .","1740"
- 980 DATA "F3 ","Make your own graph paper . . . .","2290"
- 990 DATA "F4 ","Mug Shot . . . . . . . . . . . .","2550"
- 1000 DATA "F5 ","Color Swatches . . . . . . . . .","2950"
- 1010 DATA "F6 ","Mathematics/Non-English . . . . .","3230"
- 1020 DATA "ESC","Stop! (Back to BASIC...)"," "
- 1030 RETURN
- 1050 ' -- Subroutine: GET USER'S CHOICE (using Function keys)
- 1060 ' -- Requires: (nothing) Returns: FKEY
- 1080 VALID.KEY = NO
- 1090 CHOICE$ = INKEY$
- 1100 WHILE ((LEN(CHOICE$) < 2) AND (VALID.KEY = NO))
- 1110 CHOICE$ = INKEY$
- 1120 IF CHOICE$ = ESC$ THEN GOTO 11250
- 1130 WHILE (LEN(CHOICE$) >= 2)
- 1140 CHOICE$ = RIGHT$(CHOICE$,1)
- 1150 FKEY = ASC(CHOICE$) - 58 ' -- See BASIC manual, App. G
- 1160 IF (FKEY >= 1 AND FKEY <= NUMBER.OF.ENTRIES - 1) THEN VALID.KEY = YES
- 1170 WEND
- 1180 WEND
- 1190 RETURN
- 1210 ' -- Subroutine: FUNCTION KEYS REQUIRES: (NOTHING) RETURNS: (NOTHING)
- 1240 KEY OFF ' -- turn off function key menu
- 1250 FOR FKEY = 1 TO 10 ' -- reset function keys so they
- 1260 KEY FKEY,"" ' -- can be used as regular keys
- 1270 NEXT 'FKEY ' -- (See BASIC manual, App. G)
- 1280 RETURN
- 1380 ' -- Subroutine: DISPLAY TYPE REQUIRES: (NOTHING) RETURNS: DISPLAY.TYPE
- 1410 EQUIP.FLAG = &H410
- 1420 DEF SEG = 0
- 1430 DISPLAY.TYPE = (PEEK(EQUIP.FLAG) AND &H30)
- 1440 DEF SEG
- 1450 RETURN
- 1460 ' -- Subroutine: CHARACTER SET REQUIRES: DISPLAY.TYPE RETURNS: (NOTHING)
- 1500 CLS
- 1510 COLOR YELLOW,BLACK
- 1520 PRINT TAB(22); "IBM Personal Computer Character Set"
- 1530 PRINT TAB(14); "(Numbers are for use with PRINT and POKE statements.)";
- 1540 IF DISPLAY.TYPE = MONO THEN DEF SEG = MONO.SEG ELSE DEF SEG = COLOR.SEG
- 1550 ' -- Show the characters
- 1560 OFFSET = 480 + 6 ' -- Skip first three lines and indent 6 cells
- 1570 FOR CHARACTER% = 0 TO 255
- 1580 IF (CHARACTER% MOD 13) = 0 THEN OFFSET = OFFSET + 4
- 1590 POKE (CHARACTER% * 12) + OFFSET + 1, RED ' -- set attribute to red
- 1600 POKE (CHARACTER% * 12) + OFFSET,CHARACTER% ' -- show character
- 1610 NEXT 'CHARACTER%
- 1620 DEF SEG
- 1630 ' -- Show their numbers
- 1640 CHARACTER% = 0
- 1650 COLOR WHITE,BLACK
- 1660 FOR ROW = 4 TO 23
- 1670 FOR COL = 1 TO 78 STEP 6
- 1680 LOCATE ROW,COL
- 1690 IF (CHARACTER% < 256) THEN PRINT CHARACTER%;
- 1700 CHARACTER% = CHARACTER% + 1
- 1710 NEXT 'COL
- 1720 NEXT 'ROW
- 1730 RETURN
- 1740 ' -- Subroutine: DRAW A BOX
- 1760 ' -- Requires: TOP.OF.BOX, BOTTOM.OF.BOX, LEFT.OF.BOX, RIGHT.OF.BOX
- 1770 ' -- Returns: (nothing)
- 1790 LEFT.TOP$ = CHR$(218) : RIGHT.TOP$ = CHR$(191)
- 1800 LEFT.BOTTOM$ = CHR$(192) : RIGHT.BOTTOM$ = CHR$(217)
- 1810 HORIZONTAL$ = CHR$(196) : VERTICAL$ = CHR$(179)
- 1820 LOCATE BOTTOM.OF.BOX,LEFT.OF.BOX
- 1830 PRINT LEFT.BOTTOM$;
- 1840 LOCATE TOP.OF.BOX,LEFT.OF.BOX
- 1850 PRINT LEFT.TOP$;
- 1860 FOR ROW = TOP.OF.BOX + 1 TO BOTTOM.OF.BOX - 1
- 1870 LOCATE ROW,LEFT.OF.BOX,NO.CURSOR
- 1880 PRINT VERTICAL$;
- 1890 LOCATE ROW,RIGHT.OF.BOX,NO.CURSOR
- 1900 PRINT VERTICAL$;
- 1910 NEXT 'ROW
- 1920 LOCATE BOTTOM.OF.BOX,RIGHT.OF.BOX
- 1930 PRINT RIGHT.BOTTOM$;
- 1940 LOCATE TOP.OF.BOX,RIGHT.OF.BOX
- 1950 PRINT RIGHT.TOP$;
- 1960 FOR COL = LEFT.OF.BOX + 1 TO RIGHT.OF.BOX - 1
- 1970 LOCATE TOP.OF.BOX,COL,NO.CURSOR
- 1980 PRINT HORIZONTAL$;
- 1990 LOCATE BOTTOM.OF.BOX,COL,NO.CURSOR
- 2000 PRINT HORIZONTAL$;
- 2010 NEXT 'COL
- 2020 RETURN
- 2030 ' -- Subroutine: MONDRIAN ART REQUIRES: (NOTHING) RETURNS:(NOTHING)
- 2070 CLS
- 2080 BOXES = INT(RND(1) * 15) + 10 ' -- Decide how many boxes
- 2090 FOR BOX = 1 TO BOXES
- 2100 TOP.OF.BOX = INT(RND(1) * 21) + 1
- 2110 BOTTOM.OF.BOX = INT(RND(1) * 22) + 1
- 2120 WHILE (BOTTOM.OF.BOX <= TOP.OF.BOX)
- 2130 BOTTOM.OF.BOX = INT(RND(1) * 22) + 1
- 2140 WEND
- 2150 LEFT.OF.BOX = INT(RND(1) * 78) + 1
- 2160 RIGHT.OF.BOX = INT(RND(1) * 79) + 1
- 2170 WHILE (RIGHT.OF.BOX <= LEFT.OF.BOX)
- 2180 RIGHT.OF.BOX = INT(RND(1) * 79) + 1
- 2190 WEND
- 2200 FORE = INT(RND(1) * 16) ' -- Choose a color
- 2210 IF (FORE = BLACK OR FORE = GRAY) THEN FORE = WHITE
- 2220 IF (FORE = BLUE OR FORE = LT.BLUE) THEN FORE = WHITE
- 2230 COLOR FORE,BLACK
- 2240 GOSUB 1740 ' -- Draw a box
- 2250 NEXT 'BOX
- 2260 LOCATE 23,30
- 2270 PRINT "I.B.Mondrian [-- in appreciation of Piet Mondrian]";
- 2280 RETURN
- 2300 ' -- Subroutine: GRAPH PAPER REQUIRES: (NOTHING) RETURNS:(NOTHING)
- 2330 ' -- Set symbols for graph pattern
- 2340 MARK1$ = "#" : MARK2$ = "+"
- 2350 ' -- Give User a chance to get ready
- 2360 CLS
- 2370 LOCATE 10,15 : COLOR GREEN,BLACK
- 2380 PRINT "Make SURE the printer is ready. Then press a key."
- 2390 LOCATE 11,21
- 2400 PRINT "(Press <ESC> to interrupt printing.)";
- 2410 CHOICE$ = INKEY$
- 2420 IF CHOICE$ = "" THEN 2410 ELSE IF CHOICE$ = ESC$ THEN RETURN
- 2430 ' -- Print the pattern
- 2435 ON ERROR GOTO 10000
- 2440 LPRINT : LPRINT
- 2450 FOR ROW = 1 TO 25
- 2460 IF INKEY$ = ESC$ THEN RETURN
- 2470 LOCATE 15,32,NO.CURSOR
- 2480 PRINT "Printing row "; ROW;
- 2490 IF (ROW MOD 5) = 0 THEN MARK$ = MARK2$ ELSE MARK$ = MARK1$
- 2500 FOR COL = 1 TO 80
- 2510 IF (COL MOD 5) = 0 THEN LPRINT MARK2$; ELSE LPRINT MARK$;
- 2520 NEXT 'COL
- 2530 NEXT 'ROW
- 2540 RETURN
- 2560 ' -- Subroutine: MUG REQUIRES: DISPLAY.TYPE RETURNS: (NOTHING)
- 2590 CLS
- 2600 IF DISPLAY.TYPE = MONO THEN DEF SEG = MONO.SEG ELSE DEF SEG = COLOR.SEG
- 2610 CELL = 1
- 2620 RESTORE 2720
- 2630 READ COUNT,LETTER,ATTRIBUTE
- 2640 WHILE (COUNT > 0)
- 2650 FOR R = 1 TO COUNT
- 2660 POKE CELL,ATTRIBUTE
- 2670 POKE CELL - 1,LETTER
- 2680 CELL = CELL + 2
- 2690 NEXT 'R
- 2700 READ COUNT,LETTER,ATTRIBUTE
- 2710 WEND
- 2720 DATA 99, 176,7, 22, 178,6, 7, 219,6, 50, 176,7, 23, 178,6, 8, 219,6
- 2730 DATA 49, 176,7, 19, 178,6, 9, 219,6, 1, 178,6, 11, 219,6, 41, 176,7
- 2740 DATA 15, 178,6, 11, 219,6, 2, 178,6, 4, 219,6, 5, 176,7, 4, 219,6
- 2750 DATA 39, 176,7, 13, 178,6, 12, 219,6, 4, 178,6, 2, 219,6, 7, 176,7
- 2760 DATA 4, 219,6, 38, 176,7, 13, 178,6, 12, 219,6, 4, 178,6, 2, 219,6
- 2770 DATA 8, 176,7, 4, 219,6, 37, 176,7, 15, 178,6, 9, 219,6, 4, 178,6
- 2780 DATA 2, 219,6, 10, 176,7, 3, 219,6, 37, 176,7, 14, 178,6, 10, 219,6
- 2790 DATA 3, 178,6, 3, 219,6, 10, 176,7, 4, 219,6, 36, 176,7, 15, 178,6
- 2800 DATA 11, 219,6, 2, 178,6, 3, 219,6, 9, 176,7, 4, 219,6, 36, 176,7
- 2810 DATA 12, 178,6, 13, 219,6, 2, 178,6, 4, 219,6, 9, 176,7, 4, 219,6
- 2820 DATA 36, 176,7, 11, 178,6, 14, 219,6, 3, 178,6, 3, 219,6, 8, 176,7
- 2830 DATA 4, 219,6, 37, 176,7, 11, 178,6, 14, 219,6, 3, 178,6, 3, 219,6
- 2840 DATA 8, 176,7, 4, 219,6, 37, 176,7, 12, 178,6, 13, 219,6, 3, 178,6
- 2850 DATA 3, 219,6, 7, 176,7, 4, 219,6, 38, 176,7, 12, 178,6, 13, 219,6
- 2860 DATA 3, 178,6, 4, 219,6, 5, 176,7, 4, 219,6, 38, 176,7, 10, 178,6
- 2870 DATA 17, 219,6, 2, 178,6, 4, 219,6, 4, 176,7, 4, 219,6, 39, 176,7
- 2880 DATA 10, 178,6, 17, 219,6, 2, 178,6, 4, 219,6, 2, 176,7, 5, 219,6
- 2890 DATA 40, 176,7, 8, 178,6, 18, 219,6, 3, 178,6, 10, 219,6, 41, 176,7
- 2900 DATA 8, 178,6, 18, 219,6, 3, 178,6, 8, 219,6, 43, 176,7, 7, 178,6
- 2910 DATA 20, 219,6, 2, 178,6, 6, 219,6, 45, 176,7, 7, 178,6, 20, 219,6
- 2920 DATA 2, 178,6, 3, 219,6, 51, 176,7, 4, 178,6, 24, 219,6, 57, 176,7
- 2930 DATA 19, 219,6,115, 176,7, 0, 0,0
- 2940 RETURN
- 2950 ' -- Subroutine: COLOR SWATCHES REQUIRES: (NOTHING) RETURNS: (NOTHING)
- 2990 COLOR WHITE, BLACK
- 3000 CLS
- 3010 LENGTH = 8
- 3020 START.COL = 10
- 3030 LOCATE 1,30 : PRINT "COLORS FOR THE IBM PC"
- 3040 LOCATE 4,1 : PRINT "Foreground"
- 3050 LOCATE 3,35 : PRINT "Background"
- 3060 FOR BACK = 0 TO 7
- 3070 COLOR BACK, 0
- 3080 LOCATE 4, START.COL + (LENGTH * BACK) + INT(LENGTH/2)
- 3090 PRINT BACK;
- 3100 FOR FORE = 0 TO 15
- 3110 COLOR FORE, 0
- 3120 LOCATE FORE + 5, 1
- 3130 PRINT FORE;
- 3140 COLOR FORE, BACK
- 3150 LOCATE FORE + 5, START.COL + (LENGTH * BACK)
- 3160 FOR L = 1 TO LENGTH
- 3170 PRINT CHR$(177);
- 3180 NEXT 'L
- 3190 PRINT
- 3200 NEXT 'FORE
- 3210 NEXT 'BACK
- 3220 RETURN
- 3230 ' -- Subroutine: MATH/NON-ENGLISH CHARACTERS REQUIRES: (NOTHING) RETURNS:(NOTHING)
- 3270 PRINT "MATH CHARACTERS"
- 3280 COLOR WHITE, CYAN
- 3290 CLS
- 3300 LOCATE 3, 23
- 3310 PRINT "MATHEMATICS AND NON-ENGLISH LANGUAGES"
- 3320 PRINT
- 3330 PRINT " MATHEMATICS:"
- 3340 PRINT
- 3350 PRINT " \<UNK! {00FC}>"
- 3360 PRINT " <0xE3!> <UNK! {00F5}>c [f(y)]<UNK! {FD64}>y"
- 3370 PRINT
- 3380 PRINT " FINNISH:"
- 3390 PRINT
- 3400 PRINT " RETURNlykDATAs ja sNEWpNEW tyttNEW, hDATAn vastasi rehellisesti."
- 3410 PRINT " (A bright and pretty girl, he answered honestly.)"
- 3420 PRINT
- 3430 PRINT " SPANISH:"
- 3440 PRINT
- 3450 PRINT " RESUMEComo estINPUT Usted?"
- 3460 PRINT " (How are you?)"
- 3470 PRINT
- 3480 PRINT " NEW TESTAMENT GREEK:"
- 3490 PRINT
- 3500 PRINT " <0xE0!><0xE2!><0xE0!>+o<0xE3!>oios"
- 3510 PRINT " (a well-doer)"
- 3520 RETURN
- 3540 ' -- Subroutine: TITLE REQUIRES:(NOTHING) RETURNS:(NOTHING)
- 3570 COLOR YELLOW, BLACK, NO.CURSOR
- 3580 CLS
- 3590 GOSUB 4080 ' -- Draw Computer
- 3600 START.COL = 7
- 3610 START.ROW = 8
- 3620 COLOR BROWN, BLACK, NO.CURSOR
- 3630 RESTORE 4920 ' -- Boot data
- 3640 GOSUB 3890 ' -- Draw boot
- 3650 GOSUB 3690 ' -- Explode and beep
- 3660 GOSUB 4580 ' -- Label everything
- 3662 FOR I = 1 TO 2500 :NEXT I
- 3670 RETURN
- 3690 ' -- Subroutine: EXPLODE AND BEEP REQUIRES: (NOTHING) RETURNS:(NOTHING)
- 3720 COLOR RED, BLACK, NO.CURSOR
- 3730 SOUND 800, 2 ' -- Beep
- 3740 SOUND 32767, 3 ' -- Rest
- 3750 LOCATE 17, 27 : PRINT "\";
- 3760 LOCATE 18, 27 : PRINT "-";
- 3770 LOCATE 19, 27 : PRINT "-";
- 3780 LOCATE 20, 27 : PRINT "/";
- 3790 GOSUB 4830 ' -- Delay
- 3800 DELAYLENGTH = 500
- 3810 FOR ROW = 17 TO 20 ' -- Erase explosion
- 3820 LOCATE ROW, 27
- 3830 PRINT SPC(1);
- 3840 NEXT 'ROW
- 3850 SOUND 800, 4 ' -- Beep
- 3860 LOCATE 18, 39 : PRINT ".";
- 3870 RETURN
- 3890 ' -- Subroutine: DRAW OBJECT REQUIRES: START.ROW, START.COL RETURNS: (NOTHING)
- 3920 J = 1
- 3930 ROW = START.ROW
- 3940 COL = START.COL
- 3950 WHILE (J > 0)
- 3960 READ J
- 3970 WHILE ((J <> 36) AND (J > 0))
- 3980 COL = COL + 1
- 3990 LOCATE ROW, COL, NO.CURSOR
- 4000 PRINT CHR$(J);
- 4010 READ J
- 4020 WEND
- 4030 ROW = ROW + 1
- 4040 COL = START.COL
- 4050 WEND
- 4060 RETURN
- 4080 ' -- Subroutine: DRAW COMPUTER REQUIRES: (NOTHING) RETURNS: (NOTHING)
- 4130 ' -- Outer screen
- 4140 TOP.OF.BOX = 2 : LEFT.OF.BOX = 30
- 4150 BOTTOM.OF.BOX = 16 : RIGHT.OF.BOX = 77
- 4160 GOSUB 1740 ' -- Draw a box
- 4170 ' -- Inner screen
- 4180 TOP.OF.BOX = 3 : LEFT.OF.BOX = 31
- 4190 BOTTOM.OF.BOX = 15 : RIGHT.OF.BOX = 75
- 4200 GOSUB 1740 ' -- Draw a box
- 4220 ' -- System unit
- 4230 TOP.OF.BOX = 16 : LEFT.OF.BOX = 28
- 4240 BOTTOM.OF.BOX = 20 : RIGHT.OF.BOX = 79
- 4250 GOSUB 1740 ' -- Draw a box
- 4260 ' -- Left drive
- 4270 TOP.OF.BOX = 17 : LEFT.OF.BOX = 37
- 4280 BOTTOM.OF.BOX = 19 : RIGHT.OF.BOX = 57
- 4290 GOSUB 1740 ' -- Draw a box
- 4310 ' -- Right drive
- 4320 TOP.OF.BOX = 17 : LEFT.OF.BOX = 57
- 4330 BOTTOM.OF.BOX = 19 : RIGHT.OF.BOX = 77
- 4340 GOSUB 1740 ' -- Draw a box
- 4350 ' -- Keyboard
- 4360 TOP.OF.BOX = 20 : LEFT.OF.BOX = 29
- 4370 BOTTOM.OF.BOX = 24 : RIGHT.OF.BOX = 78
- 4380 GOSUB 1740 ' -- Draw a box
- 4390 ' -- Function keys
- 4400 TOP.OF.BOX = 21 : LEFT.OF.BOX = 30
- 4410 BOTTOM.OF.BOX = 23 : RIGHT.OF.BOX = 32
- 4420 GOSUB 1740 ' -- Draw a box
- 4430 ' -- Typewriter keypad
- 4440 TOP.OF.BOX = 21 : LEFT.OF.BOX = 33
- 4450 BOTTOM.OF.BOX = 23 : RIGHT.OF.BOX = 67
- 4460 GOSUB 1740 ' -- Draw a box
- 4480 ' -- Numeric keypad
- 4490 TOP.OF.BOX = 21 : LEFT.OF.BOX = 68
- 4500 BOTTOM.OF.BOX = 23 : RIGHT.OF.BOX = 77
- 4510 GOSUB 1740 ' -- Draw a box
- 4520 ' -- Display buttons
- 4530 LOCATE 8, 76 : PRINT BUTTON$;
- 4540 LOCATE 10, 76 : PRINT BUTTON$;
- 4550 LOCATE 12, 76 : PRINT BUTTON$;
- 4560 RETURN
- 4580 ' -- Subroutine: LABEL EVERYTHING REQUIRES: (NOTHING) RETURNS: (NOTHING)
- 4610 COLOR BLACK, BROWN
- 4620 LOCATE 12, 9 : PRINT " System ";
- 4630 LOCATE 13, 9 : PRINT " Boot ";
- 4640 DELAYLENGTH = 1000
- 4650 GOSUB 4830 ' -- Delay
- 4660 COLOR RED, BLACK
- 4680 LOCATE 5, 46 : PRINT "PC Disk Magazine";
- 4690 LOCATE 6, 50 : PRINT "Presents";
- 4700 GOSUB 4830 ' -- Delay
- 4720 LOCATE 8, 49 : PRINT "BOOTSTRAPS";
- 4730 LOCATE 9, 35 : PRINT "Copyright (C) 1984 by Stan W. Merrill";
- 4740 LOCATE 10, 45 : PRINT "All Rights Reserved";
- 4750 GOSUB 4830 ' -- Delay
- 4770 LOCATE 13, 41 : PRINT "Topic: Character Graphics";
- 4780 DELAYLENGTH = 2500
- 4810 RETURN
- 4830 ' -- Subroutine: DELAY REQUIRES: DELAYLENGTH RETURNS: (NOTHING)
- 4860 FOR I = 1 TO DELAYLENGTH
- 4870 NEXT I
- 4880 RETURN
- 4900 ' -- Data: BOOT DATA
- 4920 DATA 032, 032, 032, 176, 176, 036
- 4930 DATA 178, 178, 178, 176, 176, 178, 178, 178, 178, 178, 036
- 4940 DATA 178, 178, 178, 176, 176, 178, 178, 178, 178, 178, 036
- 4950 DATA 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 036
- 4960 DATA 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 036
- 4970 DATA 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 036
- 4980 DATA 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 036
- 4990 DATA 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 036
- 5000 DATA 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 036
- 5010 DATA 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 036
- 5020 DATA 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 176, 036
- 5030 DATA 032, 176, 176, 176, 176, 176, 032, 032, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 036
- 5040 DATA 0, 0, 0, 0
- 5060 COLOR 7,0
- 10000 IF ERR = 25 THEN RESUME 10010
- 10010 LOCATE 15,10: PRINT ">>>>>>>>>> PROBLEM WITH PRINTER. RETURNING TO MAIN MENU. <<<<<<<<<<" : FOR X = 1 TO 3000 : NEXT X :GOTO 300
- 11250 CLS:KEY ON:KEY 1,"LIST":KEY 2,"RUN"+CHR$(13):KEY 3,"LOAD"+CHR$(34):KEY 4,"SAVE"+CHR$(34):KEY 5,"CONT"+CHR$(13):KEY 6,",LPT1:"+CHR$(13):KEY 7,"TRON"+CHR$(13):KEY 8,"TROFF"+CHR$(13):KEY 9,"KEY ":KEY 10,"SCREEN 0,0,0"+CHR$(13) :COLOR 7,0:END
-