5 GRAPHICS 2:? #6;"GRAPHICS 10/7":? #6;"please stand by..."›6 POKE 752,1:GOSUB 400›10 REM   ÇÒÁÐÈÉÃÓ ±°¯· ÐÁÉÎÔÅÒ   ›11 REM   ÉÎÃÌÕÄÉÎÇ ÆÉÌÌ ÒÏÕÔÉÎÅ  ›12 REM   Ð® ÂÕÄÇÅÌÌ   ±¹¸³       ›13 REM ›14 DIM A$(256),B$(256),C$(256),D$(256):REM THE BUFFERS›15 DIM XSTICK(15),YSTICK(15),NAME$(15),MOVE$(6)›16 REM ›17 REM STICK DIRECTIONS›18 REM ›19 RESTORE 20:FOR H=1 TO 15:READ I:XSTICK(H)=I:READ I:YSTICK(H)=I:NEXT H›20 DATA 0,0,0,0,0,0,0,0,1,1,1,-1,1,0,0,0,-1,1,-1,-1,-1,0,0,0,0,1,0,-1,0,0›21 REM ›22 REM THE FILL SUBROUTINE. LIMITS SET AT 80 PIXELS ACROSS, 80 DOWN.›23 REM WE USE PAGE 6›24 REM ›25 RESTORE 26:FOR I=1536 TO 1791:READ H:POKE I,H:NEXT I›26 DATA 104,104,104,133,209,173,254,6›27 DATA 133,212,173,255,6,133,213,169›28 DATA 0,133,231,160,1,165,85,145›29 DATA 203,133,233,133,214,165,84,145›30 DATA 205,133,234,133,215,132,232,32›31 DATA 184,6,133,230,197,209,208,1›32 DATA 96,32,221,6,177,203,133,214›33 DATA 177,205,133,215,230,214,165,214›34 DATA 201,80,176,8,32,184,6,208›35 DATA 3,32,164,6,198,214,198,214›36 DATA 165,214,201,255,240,8,32,184›37 DATA 6,208,3,32,164,6,230,214›38 DATA 230,215,165,215,201,80,176,8›39 DATA 32,184,6,208,3,32,164,6›40 DATA 198,215,198,215,165,215,201,255›41 DATA 240,8,32,184,6,208,3,32›42 DATA 164,6,198,232,240,4,200,76›43 DATA 52,6,164,231,240,95,132,232›44 DATA 177,212,145,205,177,207,145,203›45 DATA 136,208,245,160,1,169,0,133›46 DATA 231,76,52,6,32,221,6,230›47 DATA 231,240,75,164,231,165,214,145›48 DATA 207,165,215,145,212,164,235,96›49 DATA 32,200,6,169,7,157,66,3›50 DATA 32,86,228,164,235,197,230,96›51 DATA 132,235,165,214,133,85,165,215›52 DATA 133,84,162,96,169,0,157,72›53 DATA 3,157,73,3,96,32,200,6›54 DATA 169,11,157,66,3,165,209,32›55 DATA 86,228,164,235,96,165,234,133›56 DATA 84,165,233,133,85,96,32,237›57 DATA 6,104,104,96,0,0,0,0›58 REM ›59 REM SET UP BUFFER ADDRESSES FOR ML ROUTINE ACCESS›60 REM ›61 J=INT(ADR(A$)/256):I=ADR(A$)-J*256:POKE 203,I:POKE 204,J›62 J=INT(ADR(B$)/256):I=ADR(B$)-J*256:POKE 205,I:POKE 206,J›63 J=INT(ADR(C$)/256):I=ADR(C$)-J*256:POKE 207,I:POKE 208,J›64 J=INT(ADR(D$)/256):I=ADR(D$)-J*256:POKE 1790,I:POKE 1791,J›65 REM ›66 REM   ÇÒÁÐÈÉÃÓ ±°¯· ÓÅÔÕР ›67 DIM DLI$(32)›68 DIM C(6):C(0)=0:C(1)=2:C(2)=3:C(3)=9:C(4)=10:C(5)=11:C(6)=8›69 GRAPHICS 7:POKE 752,1›70 REM ›71 POKE 623,128:REM GTIA GR.10›72 POKE 87,10:REM FOOL SCREEN HANDLER›73 REM ›74 POKE 704,0:REM COLOR 0›75 POKE 705,12:REM COLOR 2›76 POKE 706,38:REM COLOR 3›77 POKE 708,100:REM COLOR 9›78 POKE 709,148:REM COLOR 10›79 POKE 710,202:REM COLOR 11›80 POKE 712,252:REM COLOR 8›81 REM ›82 RESTORE 92:FOR X=0 TO 31:READ I:POKE ADR(DLI$)+X,I:NEXT X›83 POKE PEEK(560)+256*PEEK(561)+84,141›84 POKE 513,INT(ADR(DLI$)/256):POKE 512,ADR(DLI$)-PEEK(513)*256›85 POKE 54286,192:REM ENABLE DLI›86 ? " THIS IS GRAPHICS 10/7":? " P. BUDGELL 1983":FOR I=1 TO 250:NEXT I›87 OPEN #2,4,0,"K:"›88 REM   ÄÉÓÁÂÌÅ ÂÒÅÁË ËÅÙ  ›89 REM ›90 D=PEEK(16)-128:IF D<0 THEN 92›91 POKE 16,D:POKE 53774,D›92 DATA 72,169,0,141,10,212,141,27,208,141,26,208,169,144,69,79,37›93 DATA 78,141,24,208,169,10,69,79,37,78,141,23,208,104,64›94 REM ›95 RESTORE 96:FOR I=1 TO 6:READ A:MOVE$(I,I)=CHR$(A):NEXT I›96 DATA 104,162,16,76,86,228›97 X=40:Y=40:COLOR C(1):CWORK=C(1):CVAL=1:CUNDER=0›98 GOSUB 500:REM INTRODUCTION›99 A=PEEK(764):IF A<255 THEN GOSUB 200›100 GOSUB 170:GOSUB 101:GOTO 99›101 LOCATE X,Y,CUNDER:COLOR CWORK:PLOT X,Y:INVC=(CWORK=0)*C(1):FOR WAIT=1 TO 3:NEXT WAIT›110 COLOR INVC:PLOT X,Y:FOR WAIT=1 TO 2:NEXT WAIT›120 COLOR CUNDER:PLOT X,Y›130 IF STRIG(0)=0 THEN COLOR CWORK:PLOT X,Y›140 RETURN ›170 I=STICK(0):X=X+XSTICK(I):IF X=80 THEN X=79›175 IF X=-1 THEN X=0›180 Y=Y+YSTICK(I):IF Y=80 THEN Y=79›185 IF Y=-1 THEN Y=0›186 IF I<15 THEN LOCATE X,Y,CUNDER2›190 RETURN ›200 GET #2,CHAR:POKE 764,255›210 IF CHAR=ASC("D") THEN GOSUB 1000:GOTO 500›220 IF CHAR=ASC("F") THEN GOSUB 2000:GOTO 500›230 IF CHAR=ASC("C") THEN GOSUB 3000:GOTO 500›240 IF CHAR=ASC("X") THEN PRINT CHR$(125):PRINT #6;CHR$(125):GOTO 400›250 IF CHAR=ASC("L") THEN GOSUB 4000:GOTO 500›260 IF CHAR=ASC("S") THEN GOSUB 5000:GOTO 500›270 IF CHAR=ASC("R") THEN GOSUB 6000:GOTO 500›400 ? CHR$(125);" ÇÒÁÐÈÉÃÓ ±°¯· ÐÁÉÎÔÅÒ ÍÅÎÕ º "›410 ? " D=DRAWTO MODE F=FILL C=COLORCHANGE"›420 ? " X=NEW SCREEN L=LOAD S=SAVE SCREEN"›430 ? " R=COLOR REG. SPACE=REGULAR MODE";›440 RETURN ›500 ? " REGULAR DRAW MODE - PRESS TRIGGER"›510 ? "  ÃÏÌÏÒ   ";CVAL›520 ? " (TO ERASE USE COLOR 0 )"›525 D=PEEK(16)-128:IF D<0 THEN 530›526 POKE 16,D:POKE 53774,D›530 RETURN ›1000 ? CHR$(125);"ÄÒÁ×ÔÏ ÍÏÄÅ: PRESS TRIGGER TO DEFINE"›1010 ? "NEW STARTPOINT; PRESS AGAIN TO DRAWTO":? "PRESS ANY KEY TO EXIT"›1015 GOSUB 101:IF STRIG(0)=0 THEN POKE 53279,0:X0=X:Y0=Y:GOSUB 1099›1020 A=PEEK(764):IF A<255 THEN RETURN ›1030 GOSUB 170:GOTO 1015›1099 IF STRIG(0)=0 THEN 1099›1100 GOSUB 170:IF STRIG(0)=0 THEN COLOR CWORK:PLOT X0,Y0:DRAWTO X,Y:POKE 53279,0:GOTO 1500›1110 A=PEEK(764):IF A<255 THEN POP :RETURN ›1111 GOSUB 101:GOTO 1100›1500 IF STRIG(0)=0 THEN 1500›1599 RETURN ›2000 COLOR CUNDER2:PLOT X,Y:POSITION X,Y:I=USR(1536,CWORK):CUNDER2=CWORK:RETURN ›3000 CVAL=CVAL+1:IF CVAL=7 THEN CVAL=0›3010 COLOR C(CVAL):CWORK=C(CVAL):? "  ÃÏÌÏÒ   = ";CWORK›3020 RETURN ›4000 ? CHR$(125);"  ÌÏÁÄ ×ÈÁÔ ÆÉÌÅ¿  ":TRAP 4070›4010 ? "GIVE NAME SUCH AS D1:XX.Y OR C:"›4020 ? " FILE NAME ";:INPUT NAME$:IF NAME$="C:" OR NAME$="C" THEN GOTO 4100›4030 OPEN #1,4,0,NAME$›4040 POKE 850,7:POKE 852,PEEK(88):POKE 853,PEEK(89):POKE 856,128:POKE 857,12:REM SET UP IOCB #1›4050 I=USR(ADR(MOVE$))›4060 FOR I=0 TO 8:GET #1,A:POKE 704+I,A:NEXT I›4070 CLOSE #1:POKE 54286,192:TRAP 40000:RETURN ›4100 ? "   ÈÉÔ ÒÅÔÕÒΠ ":OPEN #1,4,129,"C:":GOTO 4040:REM SHORT IRG FOR CASSETTE›5000 ? CHR$(125);"  ÓÁÖÅ ÔÏ ×ÈÁÔ ÆÉÌÅ¿  ?":TRAP 5070›5010 ? " GIVE NAME eg. D1:XX.Y or C:"›5020 ? "FILE NAME ";:INPUT NAME$:IF NAME$="C:" OR NAME$="C" THEN GOTO 5100›5030 OPEN #1,8,0,NAME$›5040 POKE 850,11:POKE 852,PEEK(88):POKE 853,PEEK(89):POKE 856,128:POKE 857,12:REM SET UP IOCB #1›5050 I=USR(ADR(MOVE$)):REM MULTIPLE OF 128 BYTES MUST BE MOVED›5060 FOR I=0 TO 8:PUT #1,PEEK(704+I):NEXT I:REM COLOR REGISTERS LAST›5070 CLOSE #1:POKE 54286,192:TRAP 40000:RETURN ›5100 ? " ÈÉÔ ÒÅÔÕÒΠÁÆÔÅÒ ÐÒÅÐÁÒÉÎÇ ÓÁÖÅ ÔÁÐÅ ";›5101 TRAP 5120:LPRINT :REM INITIALIZE›5120 TRAP 5070›5130 OPEN #1,8,128,"C:":REM SHORT IRG›5150 GOTO 5040›6000 ? CHR$(125);"GIVE REGISTER # TO CHANGE":TRAP 6090›6010 ? "BETWEEN 704 AND 712 INCLUSIVE"›6020 ? " REGISTER ";:INPUT REG›6030 IF REG<704 OR REG>712 THEN 6010›6040 ? " GIVE BRIGHTNESS 0 - 15 ";:INPUT BRIGHT›6050 IF BRIGHT<0 OR BRIGHT>15 THEN 6040›6060 ? " GIVE COLOR 0 - 15 ";:INPUT COL›6070 IF COL<0 OR COL>15 THEN 6060›6080 POKE REG,COL*15+BRIGHT›6090 TRAP 40000:RETURN ›