0 'PLP.BA by Martin Zimmerman Ver 1.04 1 ' [P]resentaion Designed by... [L]evel [P]rotocol Camz 72757,3076 2 '-------SUMMARY OF SHIFT CODES-------- -Code- ------Function------------- 3 ' ~* Enter PLP Mode 4 ' ~! Exit PLP Mode 5 ' ~A Use ASCII Subset 6 ' ~D Use Line Draw Mode 7 ' ~. Use Point Mode 8 ' ~B Use Box Mode 9 ' ~R Use Box Fill Mode 10 ' ~C Use Circle Mode 11 ' ~L Locate Cursor (Note:This command has two formats, one for ASCII Mode and one for 12 ' Line Draw Mode 13 ' ~W Wait Command 14 ' ~# Draw/Erase Select 15 ' ~% Clear Screen 16 ' ~M Musical Note Mode 17 ' ~I Inverse Video Mode 18 ' ~N Normal Video Mode 19 ' 20 'Program Initialization 21 DEFDBL A-Z 22 X=0:Y=0:R=0:C=0:S=1:Q=2:QQ=Q 23 DIMX(89),Y(89):FORN=0TO89:READX(N),Y(N):NEXTN 24 GOTO 28 25 'Presentation Level 26 GOSUB 30:IF D=94 THEN 36 27 IF D<0 OR D>93 THEN 26 28 ON Q GOSUB 41,43,46,50,53,57,61,75,65,72,68,70,87,90,92 29 GOTO 25 30 'Data Input (NOTE:Input as D$) 31 IF EOF(1) THEN D$=INPUT$(1):CLOSE:END ELSE D$=INPUT$(1,1) 32 D=ASC(D$)-32:RETURN 33 'Input (X,Y) 34 XX=D:GOSUB 30:XX=XX+93*D 35 GOSUB 30:YY=D:RETURN 36 'Code Translator 37 GOSUB 30:QQ=Q 38 D=INSTR("*!AD.BRCLW#%MIN",D$) 39 IF D THEN Q=D 40 ON Q GOTO 25,25,25,25,25,25,25,25,25,25,28,28,25,28,28 41 'Enter PLP 42 X=0:Y=0:R=0:C=0:S=1:Q=3:RETURN 43 'Exit PLP 44 GOSUB 30:IF D$<>"~" THEN PRINT D$;:GOTO 44 45 GOSUB 30:IF D$="*" THEN 41 ELSE PRINT "~"D$;:GOTO 44 46 'ASCII Mode 47 PRINT @R*40+C,CO$;D$;CF$; 48 C=POS(0):R=CSRLIN 49 RETURN 50 'Line Draw Mode 51 GOSUB 33:LINE (X,Y)-(XX,YY),S 52 X=XX:Y=YY:RETURN 53 'Point Mode 54 GOSUB 33:X=XX:Y=YY 55 IF S THEN PSET (X,Y) ELSE PRESET (X,Y) 56 RETURN 57 'Box Mode 58 GOSUB 33:X=XX:Y=YY 59 GOSUB 30:GOSUB 33:LINE (X,Y)-(XX,YY),S,B 60 RETURN 61 'Box Fill Mode 62 GOSUB 33:X=XX:Y=YY 63 GOSUB 30:GOSUB 33:LINE (X,Y)-(XX,YY),S,BF 64 RETURN 65 'Locate 66 IF QQ=3 THEN R=D:GOSUB 30:C=D:Q=QQ:RETURN 67 X=D:GOSUB 30:X=X+93*D:GOSUB 30:Y=D:Q=QQ:RETURN 68 'Draw/Erase Select 69 S=ABS(S-1):Q=QQ:RETURN 70 'Clear Screen 71 CLS:Q=QQ:RETURN 72 'Wait 73 T=D:GOSUB 30:T=T+93*D 74 FOR N=0 TO T:NEXT N:Q=QQ:RETURN 75 'Circle Mode 76 GOSUB 33:X=XX:Y=YY 77 GOSUB 30:RR=D:ST=1:IF R<36 THEN ST=36/RR 78 GOSUB 30:D1=D:GOSUB 30:D1=D1+93*D 79 GOSUB 30:D2=D:GOSUB 30:D2=D2+93*D 80 FOR N=D1 TO D2 STEP ST:DG=NMOD90:IF (N>90 AND N<180) OR (N>270 AND N<360) THEN DG=89-DG 81 SX=1:IF N>90 AND N<270 THEN SX=-1 82 SY=1:IF N>180 AND N<360 THEN SY=-1 83 XX=RR*X(DG)*SX+X:YY=RR*Y(DG)*SY+Y 84 IF XX>239 OR XX<0 OR YY>63 OR YY<0 THEN 86 85 IF S THEN PSET (XX,YY) ELSE PRESET (XX,YY) 86 NEXT N:RETURN 87 'Musical Note 88 SN=D:GOSUB 30:SN=SN+93*D:GOSUB 30:SN=SN+D*8650:GOSUB 30:DD=D:GOSUB 30:DD=DD+93*D 89 SOUND SN,DD:RETURN 90 'Inverse Video 91 PRINT CHR$(27);"p";:Q=QQ:RETURN 92 'Normal Video 93 PRINT CHR$(27);"q";:Q=QQ:RETURN 94 DATA 1,0,.9998,.0174,.9993,.0348,.9986,.0523,.9975,.0697,.9961,.0871,.9945,.1045,.9925,.1218,.9902,.1391,.9876,.1564 95 DATA .9848,.1736,.9816,.1908,.9781,.2079,.9743,.2249,.9702,.2419,.9659,.2588,.9612,.2756,.9563,.2923,.9510,.3090,.9455,.3255 96 DATA .9396,.3420,.9335,.3583,.9271,.3746,.9205,.3907,.9135,.4067,.9063,.4226,.8987,.4383,.8910,.4539,.8829,.4694,.8746,.4848 97 DATA .8660,.5000,.8571,.5150,.8480,.5299,.8386,.5446,.8290,.5591,.8191,.5735,.8090,.5877,.7986,.6018,.7880,.6156,.7771,.6293 98 DATA .7660,.6427,.7547,.6560,.7431,.6691,.7313,.6819,.7193,.6946,.7071,.7071,.6946,.7193,.6819,.7313,.6691,.7431,.6560,.7547 99 DATA .6427,.7660,.6293,.7771,.6156,.7880,.6018,.7986,.5877,.8090,.5735,.8191,.5591,.8290,.5446,.8386,.5299,.8480,.5150,.8571 100 DATA .4999,.8660,.4848,.8746,.4694,.8829,.4539,.8910,.4383,.8987,.4226,.9063,.4067,.9135,.3907,.9205,.3746,.9271,.3583,.9335 101 DATA .3420,.9396,.3255,.9455,.3090,.9510,.2923,.9563,.2756,.9612,.2588,.9659,.2419,.9702,.2249,.9743,.2079,.9781,.1908,.9816 102 DATA .1736,.9848,.1564,.9876,.1391,.9902,.1218,.9925,.1045,.9945,.0871,.9961,.0697,.9975,.0523,.9986,.0348,.9993,.0174,.9998