home *** CD-ROM | disk | FTP | other *** search
- 100 ' ==== APAINT ====
- 110 '
- 120 ' Copyright 1985 Colin French
- 130 ' Last Revision: 24/02/86 CJF
- 140 '
- 150 ' Although this program is copyrighted,
- 160 ' please feel free to pass on copies to
- 170 ' friends and user groups, so long as
- 180 ' you don't do it for profit. All other
- 190 ' rights are reserved by the author.
- 200 '
- 210 ' This program will do the initialization
- 220 ' for APaint and then chain in the main
- 230 ' program. Please look under the 'Extras'
- 240 ' menu in APaint for information on making
- 250 ' copies. For more information on APaint,
- 260 ' and how to use the pictures you create
- 270 ' in your own programs, run APAINT.HINTS.
- 280 '
- 290 ' If you find any bugs, or make improvements
- 300 ' to APaint, I'd like to hear from you. Write:
- 310 '
- 320 ' Colin French
- 330 ' 2144 Iris Street
- 340 ' Ottawa, Ontario
- 350 ' K2C 1B3
- 360 '
- 370 ' Note: Please do not remove these comments.
- 380 ' It will not increase execution speed at all.
- 390 '
- 400 '
- 410 ' +----------------------+
- 420 ' | INITIALIZATION |
- 430 ' +----------------------+
- 440 '
- 450 SCREEN 0,5:FONT 1:GRAPHIC 1:DRAWMODE 0
- 460 DIM STDCLR%(31,2),ACLR%(31,2),TCLR%(31,2),CCLR%(95)
- 470 FOR N=0 TO 31 'save standard colors
- 480 ASK RGB N,STDCLR%(N,0),STDCLR%(N,1),STDCLR%(N,2)
- 490 FOR N2=0 TO 2:READ ACLR%(N,N2):TCLR%(N,N2)=ACLR%(N,N2):NEXT N2
- 500 RGB N,ACLR%(N,0),ACLR%(N,1),ACLR%(N,2):NEXT N
- 510 ' APAINT STARTING PALETTE
- 520 DATA 0,0,0,0,10,0,0,7,0,0,4,0
- 530 DATA 0,6,0,0,14,0,0,10,8,0,13,11
- 540 DATA 15,2,14,10,2,12,8,0,9,0,0,6
- 550 DATA 1,2,9,2,5,14,3,8,15,5,12,15
- 560 DATA 14,10,10,11,0,0,0,0,0,15,15,15
- 570 DATA 11,11,11,8,8,8,10,6,5,15,15,9
- 580 DATA 7,0,0,11,0,0,15,0,0,15,6,2
- 590 DATA 15,8,4,15,15,15,13,13,0,0,3,0
- 600 WINDOW #1,0,0,320,200,"Project Tools Color Extras Undo ":CMD #1
- 610 DIM PROJMENU%(352),TOOLMENU%(1289),CLR1MENU%(1010)
- 620 DIM CLR2MENU%(377),EXTRMENU%(106),UNDOMENU%(29)
- 630 DIM MTITLFT%(4),MTITRGT%(4),NUMITEM%(4)
- 640 DIM MENULFT%(4),MENURGT%(4),MENUBOT%(4)
- 650 DIM ITEMLFT%(4,15),ITEMRGT%(4,15)
- 660 DIM ITEMTOP%(4,15),ITEMBOT%(4,15),ITEMHIGH%(4,15)
- 670 DIM PAT0%(1),PAT1%(3),PAT2%(1),PAT3%(1),PAT4%(1),PAT5%(3)
- 680 DIM PAT6%(3),PAT7%(3),PAT8%(15),PAT9%(15),PAT10%(15),PAT11%(1)
- 690 DIM UNDOBUF%(8980),EDITBUF%(8980),TPIC%(9100)
- 700 DIM XOFF(35),YOFF(35),CIR%(71),PTS%(63),LINPAT%(1)
- 710 DIM SMLBUF%(117),T%(9)
- 720 ' TRY TO LOAD TITLE SCREEN
- 730 ON ERROR GOTO 760 'if trouble, skip
- 740 BLOAD "APAINT.TITLE.APIC",VARPTR(TPIC%(0))
- 750 GSHAPE(0,0),TPIC%():GOTO 780
- 760 PENA 30:PRINT AT(116,70);"APAINT"
- 770 RESUME 780
- 780 ON ERROR GOTO 0 'cancel error trap
- 790 ' GET MENU IMAGES FROM DISK
- 800 BLOAD "PROJMENU",VARPTR(PROJMENU%(0))
- 810 BLOAD "TOOLMENU",VARPTR(TOOLMENU%(0))
- 820 BLOAD "CLR1MENU",VARPTR(CLR1MENU%(0))
- 830 BLOAD "CLR2MENU",VARPTR(CLR2MENU%(0))
- 840 BLOAD "EXTRMENU",VARPTR(EXTRMENU%(0))
- 850 BLOAD "UNDOMENU",VARPTR(UNDOMENU%(0))
- 860 ' SET UP MENU DATA
- 870 NUMMENU=4:FOR N=0 TO NUMMENU
- 880 READ MTITLFT%(N),MTITRGT%(N),NUMITEM%(N)
- 890 READ MENULFT%(N),MENURGT%(N),MENUBOT%(N)
- 900 FOR N2=0 TO NUMITEM%(N)
- 910 READ ITEMLFT%(N,N2),ITEMRGT%(N,N2)
- 920 READ ITEMTOP%(N,N2),ITEMBOT%(N,N2),ITEMHIGH%(N,N2)
- 930 NEXT N2,N
- 940 ' Project menu data
- 950 DATA 0,55,5,0,79,69
- 960 DATA 3,76,3,12,1,3,76,12,21,1
- 970 DATA 3,76,21,30,1,3,76,30,39,1
- 980 DATA 3,76,39,48,1,3,76,56,65,1
- 990 ' Tools menu data
- 1000 DATA 72,111,2,8,296,142
- 1010 DATA 14,287,14,37,0,14,287,52,75,0
- 1020 DATA 14,287,91,135,0
- 1030 ' Color menu data
- 1040 DATA 128,167,14,8,296,111
- 1050 DATA 17,68,21,28,1,17,68,29,36,1
- 1060 DATA 17,68,37,44,1,17,68,45,52,1
- 1070 DATA 17,68,53,60,1,17,68,61,68,1
- 1080 DATA 81,152,14,45,0,209,290,14,45,0
- 1090 DATA 97,158,52,57,0,97,158,60,65,0
- 1100 DATA 97,158,68,73,0,225,286,52,57,0
- 1110 DATA 225,286,60,65,0,225,286,68,73,0
- 1120 DATA 92,289,86,106,0
- 1130 ' Extras menu data
- 1140 DATA 184,231,1,176,299,25
- 1150 DATA 179,295,3,12,1,179,295,12,21,1
- 1160 ' Undo menu data
- 1170 DATA 248,279,0,240,287,17
- 1180 DATA 246,281,3,14,1
- 1190 '
- 1200 ' SET UP LINE PATTERNS USED
- 1210 LINPAT%(0)=65535:LINPAT%(1)=61680
- 1220 '
- 1230 ' SET UP AREA FILL PATTERNS
- 1240 PAT0%(0)=65535:PAT0%(1)=65535
- 1250 FOR N=0 TO 3:READ PAT1%(N):NEXT
- 1260 DATA 48059,65535,61166,65535
- 1270 PAT2%(0)=48059:PAT2%(1)=61166
- 1280 PAT3%(0)=43690:PAT3%(1)=21845
- 1290 PAT4%(0)=17476:PAT4%(1)=4369
- 1300 FOR N=0 TO 3:READ PAT5%(N):NEXT
- 1310 DATA 17476,0,4369,0
- 1320 FOR N=0 TO 3:READ PAT6%(N):NEXT
- 1330 DATA 52428,39321,13107,26214
- 1340 FOR N=0 TO 3:READ PAT7%(N):NEXT
- 1350 DATA 8738,4369,34952,17476
- 1360 FOR N=0 TO 15:READ PAT8%(N):NEXT
- 1370 DATA 1285,2570,7453,15934,32639,15934,23644,10280
- 1380 DATA 20560,41120,53713,58339,63479,58339,50629,33410
- 1390 FOR N=0 TO 15:READ PAT9%(N):NEXT
- 1400 DATA 3036,5742,60471,59603,59859,60851,63075,15300
- 1410 DATA 56331,28182,14316,54248,54249,46061,25590,50235
- 1420 FOR N=0 TO 15:READ PAT10%(N):NEXT
- 1430 DATA 65503,65503,92,65503,65503,65503,23644,23644
- 1440 DATA 23644,57343,23552,57343,57343,57343,23644,23644
- 1450 PAT11%(0)=61166:PAT11%(1)=61166
- 1460 '
- 1470 ' CALCULATE CIRCLE OFFSETS
- 1480 FOR N=0 TO 35:N2=(N*10)/180*PI
- 1490 XOFF(N)=COS(N2):YOFF(N)=SIN(N2)
- 1500 NEXT
- 1510 '
- 1520 ' VARIOUS VARIABLES
- 1530 PROJNAME$=""
- 1540 TOOL=1:BRUSH=0:PAT=0
- 1550 FCLR=9:BCLR=(-1):DRWMD=0
- 1560 PENA FCLR:DRAWMODE DRWMD
- 1570 PENO 29:OUTLINE 0
- 1580 DRIVE$="DF0:"
- 1582 DIM NAME$(3,30),NUMNAME%(3),SUFF$(3),FILTYP$(3),DSKBLK%(9)
- 1584 FILTYP$(1)="Picture":SUFF$(1)=".APIC"
- 1586 FILTYP$(2)="Palette":SUFF$(2)=".APAL"
- 1588 FILTYP$(3)="Clipping":SUFF$(3)=".ACLP"
- 1590 '
- 1600 ' CHAIN TO MAIN PROGRAM
- 1610 '
- 1612 PENA 0:BOX(35,162;261,172),1
- 1620 PENA 1:PRINT AT(64,170);"Loading main program..."
- 1630 CHAIN "APAINT.MAIN",600,ALL
-