home *** CD-ROM | disk | FTP | other *** search
/ Go64! / Go64_1998-01_1998_CSW_Side_B.d64 / hyperlink (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  2KB  |  97 lines

  1. 10 rem hyperlink v2.0
  2. 20 rem by myke carter
  3. 30 rem december 7, 1997
  4. 40 rem for use with ramlink & jiffydos
  5. 50 rem supports c128 40/80-columns and c64 mode
  6. 60 rem optimized for supercpu 64
  7. 100 :
  8. 110 : rem initialization
  9. 120 :
  10. 130 @#16:m1=64:m2=0:cp=214:sw=37:ifpeek(65533)=252then160
  11. 140 cp=235:m2=48:if(peek(215)and128)thenm1=80:sw=77:(NULL)%:(NULL)m1=40:(NULL)&
  12. 150 goto200
  13. 160 scpu=abs((peek(53433)and128)=128)
  14. 170 ifscpu=1then200
  15. 180 poke53374,0:poke53366,0
  16. 190 poke53375,0:poke53371,0
  17. 200 poke53280,0:poke53281,0
  18. 210 dimx$(21,5):dimx(21,3)
  19. 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]"
  20. 230 ndx=1:lx=0
  21. 240 :
  22. 250 : rem display
  23. 260 :
  24. 270 print"[147]"chr$(142);
  25. 280 forx=1to21
  26. 290 fory=1to5:readx$(x,y):nexty
  27. 300 fory=1to3:readx(x,y):nexty
  28. 310 ifx$(x,1)="0"thenqt=x-1:x=21:goto340
  29. 320 ifx(x,3)<>m1andx(x,3)<>m2andx(x,3)<>0then290
  30. 330 iflen(x$(x,1))>lxthenlx=len(x$(x,1))
  31. 340 nextx
  32. 350 bl=int((sw-lx)/2):br=bl+lx+3
  33. 360 b2$=left$(b$,(br-bl-1))
  34. 370 vp=int((24-(qt+4))/2)-1
  35. 380 pokecp,vp:print:printtab(bl);"[154][213]";b2$;"[201]":gosub910
  36. 390 forx=1toqt
  37. 400 printtab(bl);b1$"[152] "x$(x,1);
  38. 410 printtab(br);b1$
  39. 420 nextx
  40. 430 gosub910
  41. 440 printtab(bl);"[202]";b2$"[203]";
  42. 450 gosub920
  43. 460 printtab(bl);" "x$(ndx,1)
  44. 470 :
  45. 480 : rem input and response
  46. 490 :
  47. 500 geta$
  48. 510 a=-1*(a$=chr$(13))
  49. 520 a=a-2*(a$="8"ora$="9")
  50. 530 a=a-3*(a$=""andndx<qt)
  51. 540 a=a-4*(a$="[145]"andndx>1)
  52. 550 a=a-5*(a$="_")
  53. 560 a=a-6*(a$="^"andm1<>64)
  54. 570 a=a-7*(a$=" "andm1<>64)
  55. 580 onagoto750,590,650,660,610,620,640:goto500
  56. 590 open15,val(a$),15:close15:ifst=-128then500
  57. 600 @#val(a$):print"[147]":@"$",val(a$):end
  58. 610 print"[147]":@"$=p":print:end
  59. 620 (NULL):ifm1=40then(NULL)5:run
  60. 630 (NULL)0:run
  61. 640 (NULL):(NULL)64
  62. 650 z=1:goto680
  63. 660 z=-1
  64. 670 :
  65. 680 gosub920
  66. 690 printtab(bl);"[152] "x$(ndx,1)
  67. 700 ndx=ndx+z
  68. 710 gosub920
  69. 720 printtab(bl);" "x$(ndx,1)
  70. 730 goto500
  71. 740 :
  72. 750 ifscpuorx(ndx,1)thenpoke53370,0
  73. 760 :
  74. 770 onx(ndx,2)gosub930,940
  75. 780 :
  76. 790 ifscputhen810
  77. 800 poke53374,0:poke53367,0:poke53375,0
  78. 810 ifx$(ndx,2)="\"then850
  79. 820 @"cp"+x$(ndx,3)
  80. 830 @"cd//"+x$(ndx,4)
  81. 840 ^x$(ndx,5)
  82. 850 @"cp"+x$(ndx,3)
  83. 860 @"cd//"+x$(ndx,4)
  84. 870 \x$(ndx,5)
  85. 880 :
  86. 890 : rem subroutines
  87. 900 :
  88. 910 printtab(bl);b1$;tab(br);b1$:return
  89. 920 pokecp,vp+ndx+1:print:return
  90. 930 @"s-8",16:@#8:fori=1to500:next:return
  91. 940 print"[147]"chr$(14):poke53280,6:poke53281,6:return
  92. 1000 :
  93. 1010 : rem data (files info)
  94. 1020 :
  95. 1030 rem "menuname","prgtype","part#","subdir","filename",scpu,gosub,mode
  96. 2000 data "0","0","0","0","0",0,0,0:         rem end of data
  97.