Home » Personal collection » Commodore disks » disk32a_commodore_disk_user_3_7.d64 » pointers
pointers
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
| Tape/disk: | Home » Personal collection » Commodore disks » disk32a_commodore_disk_user_3_7.d64 |
| Filename: | pointers |
| Read OK: | ✔ |
| File size: | 139F bytes |
| Load address: | 0801 |
| Exec address: | 0000 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- Arnold website » magazines_cdu » magazines_cdu_cdu307_cdu307.d64 » pointers
- Personal collection » Commodore disks » disk32a_commodore_disk_user_3_7.d64 » pointers
File contents
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$>"♦"THEN590
620 IFLEN(F$)<13THENF$=F$+A$
630 GOTO580
640 POKE204,1:IFF$=""THEN800
660 M%=35:GOSUB5320
670 R%=0:GETA$:IFA$="🭰"ORA$="T"THENR%=1:F$=CHR$(5)+CHR$(14)+CHR$(8)+F$
680 IFA$="🭷"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$="🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹🭹"
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)"'🭾REFERENCES' PROGRAM BY ○. 🭾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)" 🭾REFERENCES │ ♥TORAGE │";
5230 PRINT" ●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%)"┌"LEFT$(Z$,L%)"┐"
5380 IFQ%=1THENPRINTTAB(Y%)"│"CHR$(30)RIGHT$(M$(M%),L%)CHR$(B%)"│"
5390 IFQ%=1THENPRINTTAB(Y%)"├"LEFT$(Z$,L%)"┤"
5400 FORI=1TOD%
5410 PRINTTAB(Y%)"│"CHR$(V%)M$(M%+I)LEFT$(Y$,L%-LEN(M$(M%+I)))CHR$(B%)"│":NEXT
5420 PRINTTAB(Y%)"└"LEFT$(Z$,L%)"┘"
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)"┌"LEFT$(Z$,2*(16-L%))"┐"
5700 PRINTTAB(2)"│"CHR$(18);:FORI=L%TO15:PRINTCHR$(C%(I))" ";:NEXT
5710 PRINTCHR$(146)CHR$(158)"│"
5720 PRINTTAB(2)"│"CHR$(18);:FORI=L%TO15:PRINTCHR$(C%(I))" ";:NEXT
5730 PRINTCHR$(146)CHR$(158)"│"
5740 PRINTTAB(2)"└"LEFT$(Z$,2*(16-L%))"┘":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," 🭾REFERENCES "
8020 DATA"♠CCELERATION","╮NITIAL VELOCITY","╲AXIMUM VELOCITY","🭸ONTROL DEVICE"
8025 DATA"♠TTRIBUTES","🭶XIT"
8030 DATA6,5,15,4,1,158,153,"♠CCELERATION "
8040 DATA"♠CCELERATION +1","♠CCELERATION -1","╱ORMAL ACCEL.","🭶XIT"
8050 DATA7,5,19,4,1,158,153,"╮NITIAL ╳ELOCITY "
8060 DATA"╮NITIAL VELOCITY +1","╮NITIAL VELOCITY -1","╱ORMAL VELOCITY","🭶XIT"
8070 DATA8,5,19,4,1,158,153,"╲AXIMUM ╳ELOCITY "
8080 DATA"╲AXIMUM VELOCITY +1","╲AXIMUM VELOCITY -1","╱ORMAL MAXIMUM","🭶XIT"
8090 DATA9,5,14,4,1,158,154,"🭸ONTROL 🭷EVICE"
8100 DATA"╰OYSTICK 1","╰OYSTICK 2","╯EYBOARD","🭶XIT"
8110 DATA10,5,19,4,1,159,155," ♠TTRIBUTES "
8120 DATA"🭰OP LINE TEXT","🭰OP LINE BACKGROUND","🭾OINTER COLOUR","🭶XIT"
8130 DATA2,9,22,2,1,159,154,"♥AVE 🭾ROGRAM AND 🭸ODE ","🭾LEASE ENTER FILENAME:",""
8140 DATA6,13,19,2,0,155,154,"","🭾LEASE ENTER DEVICE","(🭰)APE OR (🭷)ISK"
8150 DATA8,15,22,2,0,154,155,"","♥TART TAPE,","THEN PRESS ANY KEY"
- �Z%�0�Z%�1:�631,32:�198,1:�"P.CODE",8,1 K � *** PREFERENCES PROGRAM k � *** TO DEMONSTRATE USE OF � � *** POINTER CODE. �( � *** BY WILLIAM PHILLIPS 1988. �2 : �<