10 REM******************** * * * PAINTER * * ------- * * * 20 REM* (c) 1983 * * * *Diomidis Spinellis* * * * for DISPISOFT * 30 REM* ------- * * * *Please dont accept* *a pirate copy ! * * * 40 REM* * * * * CASSETE VERSION * * I.2 * ******************** 50 GOSUB 1100 60 DIM SC$(32) 70 DEF P=POS("123456",CHR$(RET),1)+1 80 DEF CY=-(RET=88)-(RET=90)-(RET=67)+(RET=69)+(RET=82)+(RET=87) 90 DEF CX=(RET=83)+(RET=87)+(RET=90)-(RET=68)-(RET=82)-(RET=67) 100 CALL CHAR(64,"3C4299A1A199423C") 110 DEF CTR$(A$)=SEG$(" ",1,(28-LEN(A$))/2)&A$ 120 PRINT CTR$("PAINTER"):CTR$("-------"): : : : : : : :CTR$("@ 1983 DIOMIDIS SPINELLIS"): : : : : : : : :CTR$("VERSION I.2"): : : 130 PRINT CTR$("PRESS ANY KEY TO BEGIN") 140 CALL KEY(5,RET,STA) 150 IF STA=0 THEN 140 160 CALL SOUND(100,1000,0) 170 CALL VCHAR(1,3,32,672) 180 PRINT CTR$("PAINTER"): : : : : : :" PRESS TO": : :" 1. DRAW A PICTURE": :" 2. LOAD A PICTURE": : 190 PRINT " 3. INSTRUCTIONS": :" 4. EXIT": : : : : 200 CALL KEY(5,RET,STA) 210 IF (STA=0)+(RET>52)+(RET<49)THEN 200 220 CALL SOUND(100,1000,0) 230 ON RET-48 GOTO 240,570,670,1210 240 CALL CLEAR 250 W=1 260 Q=1 270 X=1 280 Y=1 290 FOR I=1 TO 16 300 CALL COLOR(I,I,I) 310 NEXT I 320 C=40 330 IF L=10 THEN 840 340 CALL KEY(5,RET,STA) 350 IF STA=0 THEN 370 360 ON P GOTO 370,460,490,530,240,920,1180 370 X=X+CX 380 X=X-(X=0)+(X=33) 390 Y=Y+CY 400 Y=Y-(Y=0)+(Y=25) 410 CALL HCHAR(Y,X,C) 420 CALL SOUND(-10,-3,0) 430 IF Q=1 THEN 340 440 CALL HCHAR(Y,X,32) 450 GOTO 340 460 Q=-Q 470 CALL SOUND(100,1000,0) 480 GOTO 370 490 C=C+8 500 CALL SOUND(100,1000,0) 510 C=-C*(C<159)-32*(C>159) 520 GOTO 370 530 W=(W*ABS(W<16))+1 540 CALL SOUND(100,1000,0) 550 CALL SCREEN(W) 560 GOTO 340 570 REM 580 CALL VCHAR(1,3,32,672) 590 INPUT "ENTER LOAD DEVICE NAME ":D$ 600 OPEN #1:D$,INPUT ,INTERNAL,FIXED 170 610 FOR R=1 TO 24 STEP 5 620 INPUT #1:SC$(R),SC$(R+1),SC$(R+2),SC$(R+3),SC$(R+4) 630 NEXT R 640 CLOSE #1 650 L=10 660 GOTO 240 670 REM 680 CALL CHAR(129,"1038549210101010") 690 CALL CHAR(130,"1010101092543810") 700 CALL CHAR(131,"00080402FF020408") 710 CALL CHAR(132,"1F03050911204080") 720 CALL CHAR(133,"F8C0A09088040201") 730 CALL CHAR(134,"804020110905031F") 740 CALL CHAR(135,"0102048890A0C0F8") 750 CALL CHAR(136,"00102040FF402010") 760 CALL VCHAR(1,3,32,672) 770 PRINT CTR$("INSTRUCTIONS"): : : :" W E R … „": :" S D ˆ ƒ": :" Z X C ‡ ‚ †": : : : : 780 PRINT " 1. PEN UP":" 2. CHANGE PEN COLOR":" 3. CHANGE SCREEN COLOR":" 4. CLEAR SCREEN":" 5. SAVE PICTURE" 790 PRINT " 6. RETURN TO MAIN INDEX": : : : 800 PRINT "PRESS ANY KEY" 810 CALL KEY(5,RET,STA) 820 IF STA=0 THEN 810 830 GOTO 160 840 REM 850 L=0 860 FOR R=1 TO 24 870 FOR C=1 TO 32 880 CALL HCHAR(R,C,ASC(SEG$(SC$(R),C,1))) 890 NEXT C 900 NEXT R 910 GOTO 330 920 REM 930 FOR R=1 TO 24 940 SC$(R)="" 950 FOR C=1 TO 32 960 CALL GCHAR(R,C,U) 970 SC$(R)=SC$(R)&CHR$(U) 980 NEXT C 990 NEXT R 1000 GOSUB 1100 1010 PRINT CTR$("SAVE A PICTURE"): : : : : : : 1020 INPUT "PLEASE ENTER SAVE DEVICE ":DEV$ 1030 OPEN #1:DEV$,OUTPUT,INTERNAL,FIXED 170 1040 FOR R=1 TO 24 STEP 5 1050 PRINT #1:SC$(R),SC$(R+1),SC$(R+2),SC$(R+3),SC$(R+4) 1060 NEXT R 1070 CLOSE #1 1080 PRINT "SAVING ENDED" 1090 GOTO 160 1100 REM 1110 CALL CLEAR 1120 CALL SCREEN(5) 1130 CALL VCHAR(1,31,31,96) 1140 FOR I=1 TO 16 1150 CALL COLOR(I,2,8) 1160 NEXT I 1170 RETURN 1180 REM 1190 GOSUB 1100 1200 GOTO 160 1210 REM 1220 CALL SCREEN(8) 1230 CALL CLEAR 1240 END