home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1987-01-11 | 7.9 KB | 100 lines |
- 1 CLEAR,,1024 : ON ERROR GOTO 30000 : SCREEN 2 : KEY OFF : CLS
- 2 DEF SEG=&HB800 : BLOAD "LOGO.BIN",0
- 3 LOCATE 25,30 : PRINT " Hit ANY key to start"; : FOR I=1 TO 200 : NEXT I
- 4 S$=INKEY$ : IF S$="" THEN LOCATE 25,30 : PRINT" ";:GOTO 3
- 5 CLS : BLOAD "INFO.BIN",0
- 6 LOCATE 25,30 : PRINT "Hit ANY key to procede"; : FOR I=1 TO 200 : NEXT I
- 7 S$=INKEY$ : IF S$="" THEN LOCATE 25,30 : PRINT " "; : GOTO 6
- 9 DEFINT A-Y : INC=1 : PENCIL=1 : C=0 : SCREEN 2 : CLS : FUNC=3 : PASS=0
- 10 R=4 : R$(1)="PSET" : R$(2)="PRESET" : R$(3)="XOR" : R$(4)="OR" : R$(5)="AND"
- 11 DIM IMAGE(10,10) : S=3 : ZPI=3.14159
- 12 REM DIGIDRAW IS THE PROPERTY OF AUTUMN SOFTWARE. YOU ARE ENCOURAGED TO COPY
- 13 REM AND SHARE DIGIDRAW WITH OTHER PC USERS. MAKE SURE THE FOLLOWING FOUR
- 14 REM FILES ARE COPIED : DIGIDRAW.BAS, LOGO.BIN, INFO.BIN, AND DIGIDRAW.DOC
- 15 REM DIGIDRAW.DOC CONTAINS PROGRAM DIRECTIONS.
- 16 REM IF YOU FIND DIGIDRAW USEFUL, A CONTRIBUTION ($15. SUGGESTED) WILL BE
- 17 REM GREATLY APPRECIATED. THANK YOU!!
- 18 REM AUTUMN SOFTWARE BOX 253C GREENPOINT RD. LAVALE, MD. 21502
- 19 REM ******************************************************************
- 20 ON KEY(1) GOSUB 1000 : ON KEY(2) GOSUB 2000 : ON KEY(3) GOSUB 3000
- 30 ON KEY(4) GOSUB 4000 : ON KEY(5) GOSUB 5000 : ON KEY(6) GOSUB 6000
- 40 ON KEY(7) GOSUB 7000 : ON KEY(8) GOSUB 8000 : ON KEY(9) GOSUB 9000
- 50 ON KEY(10) GOSUB 10000 : ON KEY(11) GOSUB 900 : ON KEY(12) GOSUB 910
- 60 ON KEY(13) GOSUB 920 : ON KEY(14) GOSUB 930
- 70 FOR I=1 TO 14 : KEY(I) ON : NEXT I
- 75 GOSUB 1000 : GOSUB 2000 : GOSUB 3000 : GOSUB 9000 : GOSUB 10000
- 80 X=320 : Y=100 : NX=X : NY=Y : OP=0
- 90 PSET (X,Y) : PRESET (X,Y)
- 100 K$=INKEY$ : IF K$="" GOTO 90
- 101 IF ASC(K$) = 27 THEN PASS=0
- 102 IF LEN(K$)=2 THEN K$=RIGHT$(K$,1) : GOSUB 950
- 110 GOTO 90
- 900 KEY(11) OFF
- 901 NY=Y-INC : NX=X : GOSUB 20000 : GOSUB 990
- 902 KEY(11) ON : RETURN
- 910 KEY(12) OFF
- 911 NX=X-INC : NY=Y : GOSUB 20000 : GOSUB 990
- 912 KEY(12) ON : RETURN
- 920 KEY(13) OFF
- 921 NX=X+INC : NY=Y : GOSUB 20000 : GOSUB 990
- 922 KEY(13) ON : RETURN
- 930 KEY(14) OFF
- 931 NY=Y+INC : NX=X : GOSUB 20000 : GOSUB 990
- 932 KEY(14) ON : RETURN
- 950 IF K$="G" THEN NX=X-INCX : NY=Y-INC : GOSUB 21000 : GOSUB 990 :RETURN
- 960 IF K$="I" THEN NX=X+INCX : NY=Y-INC : GOSUB 21000 : GOSUB 990 : RETURN
- 970 IF K$="O" THEN NX=X-INCX : NY=Y+INC : GOSUB 21000 : GOSUB 990 : RETURN
- 980 IF K$="Q" THEN NX=X+INCX : NY=Y+INC : GOSUB 21000 : GOSUB 990 :RETURN
- 981 IF K$="R" THEN GOSUB 11000 : RETURN
- 982 IF ASC(K$)= 25 THEN KEY OFF : LOCATE 25,3 : PRINT " Present Pencil Position = " X;Y; : FOR I=1 TO 2500 : NEXT I : KEY ON
- 983 IF ASC(K$)= 18 THEN CLS :OP=0 : RETURN
- 984 IF ASC(K$)= 19 THEN GOTO 985 ELSE RETURN
- 985 KEY OFF : LOCATE 25,1 : PRINT "Present RECALL= "; R$(R); " PSET=1 PRESET=2 XOR=3 OR=4 AND=5 Enter new number ";
- 986 K$=INKEY$ : IF K$="" THEN GOTO 986
- 987 IF ASC(K$) >48 AND ASC(K$) <54 THEN LOCATE 25,78 : PRINT K$; ELSE GOTO 986
- 988 R=ASC(K$)-48 :KEY ON : RETURN
- 990 IF PENCIL=0 THEN GOTO 992
- 991 LINE (X,Y)-(NX,NY),C : OP=C : X=NX : Y=NY : RETURN
- 992 PSET (X,Y),OP : OP=POINT(NX,NY) : X=NX : Y=NY : PSET(X,Y),C : RETURN
- 1000 KEY(1) OFF
- 1010 IF PENCIL=0 THEN PENCIL=1 ELSE PENCIL=0
- 1020 IF PENCIL=0 THEN KEY 1,"Pen up"
- 1030 IF PENCIL=1 THEN KEY 1,"Pen dn"
- 1040 KEY(1) ON : RETURN
- 2000 KEY(2) OFF
- 2010 IF C=0 THEN C=1 ELSE C=0
- 2020 IF C=0 THEN KEY 2,"Erase"
- 2030 IF C=1 THEN KEY 2,"Point"
- 2040 KEY(2) ON : RETURN
- 3000 KEY(3) OFF
- 3010 INC=INC+1 : INCX=INC*3 : IF INC=23 THEN BEEP
- 3015 IF INC=26 THEN INC=1 : INCX=3
- 3020 KEY 3,"pm="+STR$(INC)
- 3030 KEY(3) ON : RETURN
- 4000 KEY(4) OFF
- 4010 PASS=PASS+1
- 4020 IF PASS=1 THEN FX=X : FY=Y : GOTO 4900
- 4030 IF PASS=2 THEN SX=X : SY=Y : PASS=0 : ON FUNC GOTO 4040,4050
- 4040 LINE (FX,FY)-(SX,SY),C : OP=C : GOTO 4900
- 4050 LINE (FX,FY)-(SX,SY),C,B : OP=C
- 4900 KEY(4) ON : RETURN
- 5000 KEY(5) OFF : ON FUNC GOTO 5010,5200
- 5010 PASS=PASS+1 : IF PASS=1 THEN FX=X : FY=Y : OP=1 : GOTO 5900
- 5020 IF PASS=2 THEN SX=X : SY=Y : OP=1 : GOTO 5900
- 5030 IF PASS=3 THEN PASS=0
- 5100 LINE(X,Y)-(SX,SY),C : OP=C
- 5110 LINE(SX,SY)-(FX,FY),C
- 5120 LINE(FX,FY)-(X,Y),C : GOTO 5900
- 5200 PASS=PASS+1
- 5210 IF PASS=1 THEN FX=X : FY=Y : GOTO 5900
- 5220 IF PASS=2 THEN GOTO 5300
- 5230 IF PASS=3 THEN PASS=0 : GOTO 5900
- 5300 ZBX=ABS((FX-X)^2) : ZBY=ABS(((FY-Y)*2.4)^2) : RA=INT(SQR(ZBX+ZBY))
- 5310 DX=X-FX : DY=2.4*(Y-FY) : IF DX=0 OR DY=0 THEN GOTO 5341 ELSE ZANG=ATN(ABS(DY/DX))
- 5311 IF DX >= 0 AND DY <= 0 THEN ZQUAD = 0 : GOTO 5350
- 5320 IF DX <= 0 AND DY <= 0 THEN ZQUAD = -1*ZPI : GOTO 5350
- 5330 IF DX <= 0 AND DY >= 0 THEN ZQUAD = ZPI : GOTO 5350
- 5340 IF DX >= 0 AND DY >= 0 THEN ZQUAD = -2*ZPI : GOTO 5350
- 5341 IF DX= 0 AND DY> 0 THEN ZANG=3*ZPI/2
- 5342 IF DY= 0 AND DX> 0 THEN ZANG=0
-