home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Go64!
/
Go64_1998-01_1998_CSW_Side_B.d64
/
hyperlink
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
2KB
|
97 lines
10 rem hyperlink v2.0
20 rem by myke carter
30 rem december 7, 1997
40 rem for use with ramlink & jiffydos
50 rem supports c128 40/80-columns and c64 mode
60 rem optimized for supercpu 64
100 :
110 : rem initialization
120 :
130 @#16:m1=64:m2=0:cp=214:sw=37:ifpeek(65533)=252then160
140 cp=235:m2=48:if(peek(215)and128)thenm1=80:sw=77:(NULL)%:(NULL)m1=40:(NULL)&
150 goto200
160 scpu=abs((peek(53433)and128)=128)
170 ifscpu=1then200
180 poke53374,0:poke53366,0
190 poke53375,0:poke53371,0
200 poke53280,0:poke53281,0
210 dimx$(21,5):dimx(21,3)
220 b1$="[154][194]":b$="[195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]"
230 ndx=1:lx=0
240 :
250 : rem display
260 :
270 print"[147]"chr$(142);
280 forx=1to21
290 fory=1to5:readx$(x,y):nexty
300 fory=1to3:readx(x,y):nexty
310 ifx$(x,1)="0"thenqt=x-1:x=21:goto340
320 ifx(x,3)<>m1andx(x,3)<>m2andx(x,3)<>0then290
330 iflen(x$(x,1))>lxthenlx=len(x$(x,1))
340 nextx
350 bl=int((sw-lx)/2):br=bl+lx+3
360 b2$=left$(b$,(br-bl-1))
370 vp=int((24-(qt+4))/2)-1
380 pokecp,vp:print:printtab(bl);"[154][213]";b2$;"[201]":gosub910
390 forx=1toqt
400 printtab(bl);b1$"[152] "x$(x,1);
410 printtab(br);b1$
420 nextx
430 gosub910
440 printtab(bl);"[202]";b2$"[203]";
450 gosub920
460 printtab(bl);" "x$(ndx,1)
470 :
480 : rem input and response
490 :
500 geta$
510 a=-1*(a$=chr$(13))
520 a=a-2*(a$="8"ora$="9")
530 a=a-3*(a$=""andndx<qt)
540 a=a-4*(a$="[145]"andndx>1)
550 a=a-5*(a$="_")
560 a=a-6*(a$="^"andm1<>64)
570 a=a-7*(a$=" "andm1<>64)
580 onagoto750,590,650,660,610,620,640:goto500
590 open15,val(a$),15:close15:ifst=-128then500
600 @#val(a$):print"[147]":@"$",val(a$):end
610 print"[147]":@"$=p":print:end
620 (NULL):ifm1=40then(NULL)5:run
630 (NULL)0:run
640 (NULL):(NULL)64
650 z=1:goto680
660 z=-1
670 :
680 gosub920
690 printtab(bl);"[152] "x$(ndx,1)
700 ndx=ndx+z
710 gosub920
720 printtab(bl);" "x$(ndx,1)
730 goto500
740 :
750 ifscpuorx(ndx,1)thenpoke53370,0
760 :
770 onx(ndx,2)gosub930,940
780 :
790 ifscputhen810
800 poke53374,0:poke53367,0:poke53375,0
810 ifx$(ndx,2)="\"then850
820 @"cp"+x$(ndx,3)
830 @"cd//"+x$(ndx,4)
840 ^x$(ndx,5)
850 @"cp"+x$(ndx,3)
860 @"cd//"+x$(ndx,4)
870 \x$(ndx,5)
880 :
890 : rem subroutines
900 :
910 printtab(bl);b1$;tab(br);b1$:return
920 pokecp,vp+ndx+1:print:return
930 @"s-8",16:@#8:fori=1to500:next:return
940 print"[147]"chr$(14):poke53280,6:poke53281,6:return
1000 :
1010 : rem data (files info)
1020 :
1030 rem "menuname","prgtype","part#","subdir","filename",scpu,gosub,mode
2000 data "0","0","0","0","0",0,0,0: rem end of data