home *** CD-ROM | disk | FTP | other *** search
- 5 IFZ%=0THENZ%=1:POKE631,32:POKE198,1:LOAD"P.CODE",8,1
- 10 REM *** PREFERENCES PROGRAM
- 20 REM *** TO DEMONSTRATE USE OF
- 30 REM *** POINTER CODE.
- 40 REM *** BY WILLIAM PHILLIPS 1988.
- 50 :
- 60 GOSUB5010
- 70 GOSUB5220
- 80 GOSUB5180
- 90 GOSUB5260
- 95 IFPEEK(49886)>0THEN90
- 100 X%=PEEK(49872)+256*(PEEK(49873)AND1)
- 110 IFX%>25ANDX%<162THEN150
- 120 IFX%>164ANDX%<259THEN550
- 130 IFX%>260ANDX%<341THENSYS49274:PRINTCHR$(147):END
- 140 GOTO90
- 150 M%=0:GOSUB5320
- 160 POKE684,7:POKE679,1
- 170 GOSUB5260:IFPEEK(710)=0THEN170
- 180 GOSUB5470
- 190 Y%=S%-4
- 200 ONY%GOTO210,250,290,330,390,540
- 210 M%=7:GOSUB5320
- 220 A%=PEEK(49413)
- 230 X%=7:Y%=19:L%=31:N%=19:GOSUB5560
- 240 POKE49413,A%:GOTO90
- 250 M%=12:GOSUB5320
- 260 A%=PEEK(49408)
- 270 X%=8:Y%=23:L%=7:N%=1:GOSUB5560
- 280 POKE49408,A%:GOTO90
- 290 M%=17:GOSUB5320
- 300 A%=PEEK(49396)
- 310 X%=9:Y%=23:L%=7:N%=5:GOSUB5560
- 320 POKE49396,A%:GOTO90
- 330 M%=22:GOSUB5320
- 340 POKE684,3:POKE679,1
- 350 GOSUB5260:IFPEEK(710)=0THEN350
- 360 GOSUB5470:GOSUB5520
- 370 DC%=S%-12:IFDC%=3THEN540
- 380 DV%=DC%:IFDV%=2THEN80
- 385 DV%=1-DV%:GOTO80
- 390 M%=27:GOSUB5320
- 400 POKE684,14:POKE679,1
- 410 GOSUB5260:IFPEEK(710)=0THEN410
- 420 GOSUB5470
- 430 G%=S%-13:IFG%=3THEN540
- 440 L%=0:IFG%=2THENL%=1
- 450 X%=14+G%:GOSUB5680
- 460 GOSUB5260
- 470 Y%=PEEK(49886)
- 480 IFY%<(X%+1)ORY%>(X%+2)THENGOTO460
- 490 Y%=PEEK(49885)
- 495 IFY%<3ORY%>2*(17-L%)THENGOTO460
- 500 P%=INT((Y%-3)/2)+L%
- 510 IFG%=0THENTL%=P%
- 520 IFG%=1THENPOKE49332,P%
- 530 IFG%=2THENPOKE53287,P%
- 540 GOSUB5520:GOTO70
- 550 M%=32:GOSUB5320
- 560 POKE781,6:POKE782,10:SYS58634:PRINTCHR$(158)"]"LEFT$(Y$,13):POKE53269,0
- 565 T%=PEEK(49408):T1%=PEEK(49396):POKE49396,0:POKE49408,0
- 570 F$=""
- 580 POKE781,6:POKE782,11:SYS58634:PRINTF$;" ";CHR$(157);:POKE204,0
- 590 GETA$:IFA$=CHR$(13)THEN640
- 600 IFA$=CHR$(20)ANDLEN(F$)>0THENPOKE204,1:PRINT" "
- 605 IFA$=CHR$(20)ANDLEN(F$)>0THENF$=LEFT$(F$,LEN(F$)-1):GOTO580
- 610 IFA$<" "ORA$>"[218]"THEN590
- 620 IFLEN(F$)<13THENF$=F$+A$
- 630 GOTO580
- 640 POKE204,1:IFF$=""THEN800
- 660 M%=35:GOSUB5320
- 670 R%=0:GETA$:IFA$="[212]"ORA$="T"THENR%=1:F$=CHR$(5)+CHR$(14)+CHR$(8)+F$
- 680 IFA$="[196]"ORA$="D"THENR%=8:GOTO710
- 690 IFR%=0THEN670
- 700 M%=38:GOSUB5320
- 705 IF(PEEK(1)AND16)=16THEN705
- 706 GETA$:IFA$=""THEN705
- 710 SYS49274:SAVEF$,R%,1
- 720 POKE186,R%:POKE184,1:POKE185,1
- 740 F$="P.CODE":FORI=1TO6:POKE53230+I,ASC(MID$(F$,I,1)):NEXT
- 750 POKE183,6:POKE187,239:POKE188,207
- 760 POKE251,0:POKE252,192
- 770 POKE781,93:POKE782,195
- 780 POKE780,251
- 790 SYS65496:SYS65484
- 800 SYS49152
- 810 POKE49408,T%:POKE49396,T1%:GOTO540
- 3999 END
- 5000 REM *** INITIALISE
- 5010 POKE679,0:POKE710,0:PRINTCHR$(147)CHR$(14)CHR$(8)
- 5020 POKE53280,0:POKE53281,0
- 5030 FORI=685TO709:POKEI,1:NEXT
- 5040 POKE49332,1:POKE49413,19
- 5045 POKE49396,5:POKE49408,1
- 5050 POKE49872,128:POKE49874,128
- 5060 POKE49873,0:POKE53287,1
- 5070 DV%=2:TL%=6
- 5080 DIMC%(15),M$(40)
- 5090 FORI=0TO15:READC%(I):NEXT
- 5100 Z$="[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
- 5110 Y$=" "
- 5115 K%=0:FORI=0TO8
- 5120 READX%,Y%,L%,D%,Q%,B%,V%,T$:M$(K%)=CHR$(X%)+CHR$(Y%)+CHR$(L%)+CHR$(D%)
- 5130 M$(K%)=M$(K%)+CHR$(Q%)+CHR$(B%)+CHR$(V%)+T$:FORD=1TOD%:READM$(K%+D):NEXT
- 5140 K%=K%+1+D%:NEXT
- 5150 POKE781,24:POKE782,1:POKE783,48:POKE658,1:SYS58634
- 5155 PRINTCHR$(153)"'[208]REFERENCES' PROGRAM BY [215]. [208]HILLIPS"
- 5160 SYS49152:RETURN
- 5170 REM *** SET DEVICE
- 5180 POKE49884,DV%AND2
- 5190 POKE49337,DV%AND1
- 5200 RETURN
- 5210 REM *** PRINT TOP LINE
- 5220 PRINTCHR$(19)CHR$(C%(TL%))CHR$(18)CHR$(165)" [208]REFERENCES [221] [211]TORAGE [221]";
- 5230 PRINT" [209]UIT "CHR$(167)CHR$(146)
- 5240 RETURN
- 5250 REM *** CHECK FIRE
- 5260 IFDV%=2THEN5290
- 5270 F%=PEEK(56320+DV%)AND16:IFF%=16THEN5270
- 5280 RETURN
- 5290 GETA$:IFA$<>CHR$(13)THEN5290
- 5300 RETURN
- 5310 REM *** PRINT MENU
- 5320 X%=ASC(LEFT$(M$(M%),1)):Y%=ASC(MID$(M$(M%),2,1))
- 5330 L%=ASC(MID$(M$(M%),3,1)):D%=ASC(MID$(M$(M%),4,1))
- 5340 Q%=ASC(MID$(M$(M%),5,1)):B%=ASC(MID$(M$(M%),6,1))
- 5350 V%=ASC(MID$(M$(M%),7,1))
- 5360 POKE781,X%:POKE782,0:POKE783,48:SYS58634
- 5370 PRINTTAB(Y%)CHR$(B%)"[176]"LEFT$(Z$,L%)"[174]"
- 5380 IFQ%=1THENPRINTTAB(Y%)"[221]"CHR$(30)RIGHT$(M$(M%),L%)CHR$(B%)"[221]"
- 5390 IFQ%=1THENPRINTTAB(Y%)"[171]"LEFT$(Z$,L%)"[179]"
- 5400 FORI=1TOD%
- 5410 PRINTTAB(Y%)"[221]"CHR$(V%)M$(M%+I)LEFT$(Y$,L%-LEN(M$(M%+I)))CHR$(B%)"[221]":NEXT
- 5420 PRINTTAB(Y%)"[173]"LEFT$(Z$,L%)"[189]"
- 5430 POKE680,Y%+1:POKE681,Y%+L%
- 5440 POKE682,X%+1+2*Q%:POKE683,PEEK(682)+D%-1
- 5450 RETURN
- 5460 REM *** FLASH BAR
- 5470 T%=PEEK(49408):T1%=PEEK(49396):POKE49396,0:POKE49408,0:POKE49871,0
- 5480 FORI=0TO14:POKE679,1-PEEK(679)
- 5490 FORD=0TO18:NEXT
- 5500 NEXT:S%=PEEK(49886):POKE679,0:POKE49408,T%:POKE49396,T1%:RETURN
- 5510 REM *** CLEAR WINDOW SPACE
- 5520 PRINTCHR$(19)CHR$(17)
- 5530 FORI=0TO17:PRINTY$:NEXT
- 5540 RETURN
- 5550 REM *** HANDLE ACCEL & VELOC
- 5560 POKE684,15
- 5570 POKE679,1:POKE781,X%:POKE782,Y%:SYS58634
- 5580 A$=STR$(A%)+" ":PRINTCHR$(150)MID$(A$,2,2)
- 5590 GOSUB5260:IFPEEK(710)=0THEN5590
- 5600 GOSUB5470
- 5610 P%=S%-(X%+1)
- 5620 ONP%GOTO5630,5640,5650,5660
- 5630 A%=A%+1:A%=A%ANDL%:GOTO5570
- 5640 A%=A%-1:A%=A%ANDL%:GOTO5570
- 5650 A%=N%:GOTO5570
- 5660 GOSUB5520:RETURN
- 5670 REM *** PRINT COLOUR BLOCKS
- 5680 POKE781,X%:POKE782,0:SYS58634
- 5690 PRINTTAB(2)CHR$(158)"[176]"LEFT$(Z$,2*(16-L%))"[174]"
- 5700 PRINTTAB(2)"[221]"CHR$(18);:FORI=L%TO15:PRINTCHR$(C%(I))" ";:NEXT
- 5710 PRINTCHR$(146)CHR$(158)"[221]"
- 5720 PRINTTAB(2)"[221]"CHR$(18);:FORI=L%TO15:PRINTCHR$(C%(I))" ";:NEXT
- 5730 PRINTCHR$(146)CHR$(158)"[221]"
- 5740 PRINTTAB(2)"[173]"LEFT$(Z$,2*(16-L%))"[189]":RETURN
- 8000 DATA144,5,28,159,156,30,31,158,129,149,150,151,152,153,154,155
- 8010 DATA2,1,16,6,1,154,155," [208]REFERENCES "
- 8020 DATA"[193]CCELERATION","[201]NITIAL VELOCITY","[205]AXIMUM VELOCITY","[195]ONTROL DEVICE"
- 8025 DATA"[193]TTRIBUTES","[197]XIT"
- 8030 DATA6,5,15,4,1,158,153,"[193]CCELERATION "
- 8040 DATA"[193]CCELERATION +1","[193]CCELERATION -1","[206]ORMAL ACCEL.","[197]XIT"
- 8050 DATA7,5,19,4,1,158,153,"[201]NITIAL [214]ELOCITY "
- 8060 DATA"[201]NITIAL VELOCITY +1","[201]NITIAL VELOCITY -1","[206]ORMAL VELOCITY","[197]XIT"
- 8070 DATA8,5,19,4,1,158,153,"[205]AXIMUM [214]ELOCITY "
- 8080 DATA"[205]AXIMUM VELOCITY +1","[205]AXIMUM VELOCITY -1","[206]ORMAL MAXIMUM","[197]XIT"
- 8090 DATA9,5,14,4,1,158,154,"[195]ONTROL [196]EVICE"
- 8100 DATA"[202]OYSTICK 1","[202]OYSTICK 2","[203]EYBOARD","[197]XIT"
- 8110 DATA10,5,19,4,1,159,155," [193]TTRIBUTES "
- 8120 DATA"[212]OP LINE TEXT","[212]OP LINE BACKGROUND","[208]OINTER COLOUR","[197]XIT"
- 8130 DATA2,9,22,2,1,159,154,"[211]AVE [208]ROGRAM AND [195]ODE ","[208]LEASE ENTER FILENAME:",""
- 8140 DATA6,13,19,2,0,155,154,"","[208]LEASE ENTER DEVICE","([212])APE OR ([196])ISK"
- 8150 DATA8,15,22,2,0,154,155,"","[211]TART TAPE,","THEN PRESS ANY KEY"
-