home *** CD-ROM | disk | FTP | other *** search
/ Commodore Disk User Volume 4 #10 / Commodore_Disk_User_Vol.4_10_1991_-.d64 / c64analyser (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  11KB  |  189 lines

  1. 10 gosub900:clr:rem set load addr
  2. 15 gosub980    :rem setup variables
  3. 20 gosub800    :rem load the analyser
  4. 30 gosub500    :rem relocation setup
  5. 40 :
  6. 50 rem  chk op-codes for relocation
  7. 60 :
  8. 70 ifca>eathenprint"relocation ok":goto150
  9. 80 i=peek(ca):ifoc(i)=0thenprint"invalid op-code":end
  10. 90 ifoc(i)=1thenca=ca+1:goto70
  11. 100 ifoc(i)=2thenca=ca+2:goto70
  12. 110 ad=peek(ca+1)+peek(ca+2)*256:ifad<a3orad>a4thenca=ca+3:goto70
  13. 115 ad=ad-rf:hb=int(ad/256):lb=ad-hb*256
  14. 120 pokeca+1,lb:pokeca+2,hb:ca=ca+3:goto70
  15. 150 print"1. start analyser = sys";la
  16. 160 print"2. stop  analyser = sys";la+3
  17. 170 print"3. display data   = sys";la+6
  18. 180 print
  19. 190 end
  20. 500 :
  21. 510 rem  relocation setup
  22. 520 :
  23. 530 ifla=38912thenca=1:ea=0:return
  24. 540 print"relocating analyser"
  25. 550 ca=la:ea=la+1651:rf=38912-ca
  26. 560 print"building op-code table"
  27. 565 oc(109)=3:oc(105)=2:oc(97)=2:oc(113)=2:oc(125)=3:oc(121)=3:oc(101)=2
  28. 567 oc(117)=2
  29. 570 oc(45)=3:oc(41)=2:oc(33)=2:oc(49)=2:oc(61)=3:oc(57)=3:oc(37)=2:oc(53)=2
  30. 580 oc(14)=3:oc(10)=1:oc(30)=3:oc(6)=3:oc(22)=2
  31. 590 oc(144)=2:oc(176)=2:oc(240)=2:oc(44)=3:oc(36)=2:oc(48)=2:oc(208)=2
  32. 600 oc(16)=2:oc(0)=1:oc(80)=2:oc(112)=2:oc(24)=1:oc(216)=1:oc(88)=1:oc(184)=1
  33. 610 oc(205)=3:oc(201)=2:oc(193)=2:oc(209)=2:oc(221)=3:oc(217)=3:oc(197)=2
  34. 620 oc(213)=2:oc(236)=3:oc(224)=2:oc(228)=2:oc(204)=3:oc(192)=2:oc(196)=2
  35. 630 oc(206)=3:oc(222)=3:oc(198)=2:oc(214)=2:oc(202)=1:oc(136)=1
  36. 640 oc(77)=3:oc(73)=2:oc(65)=2:oc(81)=2:oc(93)=3:oc(89)=3:oc(69)=2:oc(85)=2
  37. 650 oc(238)=3:oc(254)=3:oc(230)=2:oc(246)=2:oc(232)=1:oc(200)=1
  38. 660 oc(76)=3:oc(108)=3:oc(32)=3:oc(173)=3:oc(169)=2:oc(161)=2:oc(177)=2
  39. 670 oc(189)=3:oc(185)=3:oc(165)=2:oc(181)=2:oc(174)=3:oc(162)=2:oc(190)=3
  40. 680 oc(166)=2:oc(182)=2:oc(172)=3:oc(160)=2:oc(188)=3:oc(164)=2:oc(180)=2
  41. 690 oc(78)=3:oc(74)=1:oc(94)=3:oc(70)=2:oc(86)=2:oc(234)=1:oc(13)=3:oc(9)=2
  42. 700 oc(1)=2:oc(17)=2:oc(29)=3:oc(25)=3:oc(5)=2:oc(21)=2:oc(72)=1:oc(8)=1
  43. 710 oc(104)=1:oc(40)=1:oc(46)=3:oc(42)=1:oc(62)=3:oc(38)=2:oc(54)=2
  44. 720 oc(110)=3:oc(106)=1:oc(126)=3:oc(102)=2:oc(118)=2:oc(64)=1:oc(96)=1
  45. 730 oc(237)=3:oc(233)=2:oc(225)=2:oc(241)=2:oc(253)=3:oc(249)=3:oc(229)=2
  46. 740 oc(245)=2:oc(56)=1:oc(248)=1:oc(120)=1:oc(141)=3:oc(129)=2:oc(145)=2
  47. 745 oc(157)=3:oc(153)=3:oc(133)=2:oc(149)=2:oc(142)=3:oc(134)=2:oc(150)=2
  48. 750 oc(140)=3:oc(132)=2:oc(148)=2:oc(170)=1:oc(168)=1:oc(186)=1:oc(138)=1
  49. 760 oc(154)=1:oc(152)=1
  50. 770 print"starting relocation"
  51. 780 return
  52. 800 :
  53. 810 rem  load the analyser
  54. 820 :
  55. 830 la=peek(55)+peek(56)*256
  56. 840 print"[147] loading the analyser at";la
  57. 850 fori=latola+2047:readq:pokei,q:x=x+q:next
  58. 860 ifx<>244880thenprint"load failed":end
  59. 870 print"load ok":return
  60. 900 :
  61. 910 rem  setup analyser load addr
  62. 920 :
  63. 925 dimoc(255):i=0:ca=0:ad=0:lb=0:hb=0
  64. 930 ha=peek(55)+peek(56)*256:ha=ha-2048
  65. 940 hb=int(ha/256):lb=ha-hb*256
  66. 950 poke51,lb:poke52,hb:poke55,lb:poke56,hb:poke643,lb:poke644,hb
  67. 960 return
  68. 970 :
  69. 980 dimoc(255):i=0:ca=0:ad=0:lb=0:hb=0: a3=38912:a4=40959:return
  70. 1000 data 76,9,152,76,27,152,76,39,152,32,162,152,208,9,32,166,152,32,196
  71. 1010 data 152,32,212,152,32,223,152,96,32,162,152,240,3,32,4,153,32,223
  72. 1020 data 152,96,32,22,153,240,3,32,48,152,96,32,96,157,32,177,153,32
  73. 1030 data 231,153,32,5,154,32,106,157,32,83,154,32,230,154,32,255,154
  74. 1040 data 32,10,155,32,21,155,32,243,157,32,212,154,32,158,155,32,167
  75. 1050 data 155,32,200,155,32,243,157,32,209,155,32,32,158,32,247,155,32
  76. 1060 data 228,155,32,32,158,32,3,156,32,12,188,32,15,156,32,221,189,32
  77. 1070 data 135,180,32,33,171,32,29,156,32,121,156,32,60,157,240,197,32
  78. 1080 data 64,157,32,96,157,32,116,157,32,159,157,32,189,157,32,106,157
  79. 1090 data 32,237,157,96,173,116,158,96,206,116,158,162,1,173,8,3,141
  80. 1100 data 117,158,173,9,3,157,117,158,173,119,158,141,8,3,189,119,158
  81. 1110 data 141,9,3,96,165,160,141,123,158,165,161,141,124,158,165,162
  82. 1120 data 141,125,158,96,165,57,141,121,158,165,58,141,122,158,96,165
  83. 1130 data 58,201,250,144,30,173,116,158,208,14,162,1,173,177,158,188
  84. 1140 data 177,158,32,30,171,76,3,153,162,1,173,175,158,188,175,158,32
  85. 1150 data 30,171,96,238,116,158,162,1,173,117,158,141,8,3,189,117,158
  86. 1160 data 141,9,3,96,173,166,153,208,21,173,167,153,201,160,208,14,162
  87. 1170 data 1,173,193,158,188,193,158,32,30,171,169,0,96,169,255,96,173
  88. 1180 data 121,158,197,57,208,10,173,122,158,197,58,208,3,108,117,158
  89. 1190 data 173,128,158,56,233,1,141,128,158,176,20,173,129,158,56,233
  90. 1200 data 1,141,129,158,176,9,32,129,153,32,48,152,32,147,153,160,5,162
  91. 1210 data 0,189,121,158,32,165,153,232,136,208,246,165,57,141,121,158
  92. 1220 data 165,58,141,122,158,32,196,152,108,117,158,162,4,189,121,158
  93. 1230 data 157,142,158,202,208,247,173,121,158,141,142,158,96,162,4,189
  94. 1240 data 142,158,157,121,158,202,208,247,173,142,158,141,121,158,96
  95. 1250 data 141,0,160,238,166,153,208,3,238,167,153,96,162,0,189,0,0,157
  96. 1260 data 0,224,189,0,1,157,0,225,189,0,2,157,0,226,189,0,3,157,0,227
  97. 1270 data 189,0,4,157,0,228,189,0,5,157,0,229,189,0,6,157,0,230,189,0
  98. 1280 data 7,157,0,231,232,208,205,96,162,0,189,0,216,157,0,232,189,0
  99. 1290 data 217,157,0,233,189,0,218,157,0,234,189,0,219,157,0,235,232,208
  100. 1300 data 229,96,173,32,208,141,0,236,173,33,208,141,1,236,173,134,2
  101. 1310 data 141,2,236,173,21,208,141,3,236,173,17,208,141,4,236,173,22
  102. 1320 data 208,141,5,236,173,24,208,141,6,236,169,254,141,32,208,169,246
  103. 1330 data 141,33,208,169,14,141,134,2,169,0,141,21,208,169,27,141,17
  104. 1340 data 208,169,200,141,22,208,169,21,141,24,208,96,32,243,157,32,212
  105. 1350 data 154,32,228,155,32,32,158,32,247,155,173,166,153,174,167,153
  106. 1360 data 56,233,5,141,0,158,176,1,202,142,1,158,32,243,157,32,228,155
  107. 1370 data 32,32,158,32,3,156,32,12,188,32,15,156,162,1,173,60,159,188
  108. 1380 data 60,159,170,32,212,187,169,0,141,0,158,169,160,141,1,158,173
  109. 1390 data 166,153,56,237,0,158,141,45,159,173,167,153,237,1,158,141,44
  110. 1400 data 159,169,0,141,43,159,32,32,158,32,247,155,32,12,188,162,1,173
  111. 1410 data 118,159,188,118,159,162,0,32,7,187,32,170,177,141,54,159,140
  112. 1420 data 53,159,96,162,4,189,121,158,157,46,159,202,208,247,173,121
  113. 1430 data 158,141,46,159,96,162,0,169,32,157,0,4,157,0,5,157,0,6,232
  114. 1440 data 208,244,162,232,157,255,6,202,208,250,96,169,0,141,196,158
  115. 1450 data 169,9,141,197,158,96,24,174,196,158,172,197,158,32,240,255
  116. 1460 data 96,162,8,188,34,159,202,189,34,159,142,195,158,32,30,171,238
  117. 1470 data 196,158,32,10,155,174,195,158,202,208,231,169,23,141,196,158
  118. 1480 data 32,10,155,162,1,173,108,159,188,108,159,32,30,171,238,196,158
  119. 1490 data 32,10,155,162,1,173,110,159,188,110,159,32,30,171,169,4,141
  120. 1500 data 196,158,32,10,155,169,194,32,210,255,169,17,141,197,158,32
  121. 1510 data 10,155,169,194,32,210,255,169,30,141,197,158,32,10,155,169
  122. 1520 data 194,32,210,255,169,9,141,197,158,238,196,158,173,196,158,201
  123. 1530 data 23,240,6,32,10,155,76,92,155,169,4,141,196,158,169,9,141,197
  124. 1540 data 158,32,10,155,96,169,10,141,197,158,32,10,155,96,173,121,158
  125. 1550 data 141,45,159,173,122,158,141,44,159,169,0,141,43,159,32,32,158
  126. 1560 data 32,247,155,32,221,189,32,135,180,32,33,171,96,169,18,141,197
  127. 1570 data 158,32,10,155,96,173,48,159,141,43,159,173,49,159,141,44,159
  128. 1580 data 173,50,159,141,45,159,96,173,123,158,141,43,159,173,124,158
  129. 1590 data 141,44,159,173,125,158,141,45,159,96,162,1,173,140,158,188
  130. 1600 data 140,158,32,162,187,96,162,1,173,140,158,188,140,158,32,80,184
  131. 1610 data 96,162,1,173,51,159,188,51,159,162,0,32,7,187,96,169,9,141
  132. 1620 data 197,158,238,196,158,173,196,158,201,23,176,4,32,10,155,96,169
  133. 1630 data 0,32,228,255,240,251,201,136,240,45,201,135,240,7,201,133,240
  134. 1640 data 50,76,48,156,173,0,158,56,233,195,176,3,206,1,158,141,0,158
  135. 1650 data 173,1,158,201,160,176,10,169,0,141,0,158,169,160,141,1,158
  136. 1660 data 32,243,157,32,230,154,32,255,154,32,10,155,32,21,155,96,238
  137. 1670 data 112,159,96,173,1,158,205,167,153,144,10,208,9,173,0,158,205
  138. 1680 data 166,153,176,1,96,32,158,155,32,167,155,32,200,155,169,32,32
  139. 1690 data 210,255,169,48,32,210,255,32,29,156,169,194,32,210,255,162
  140. 1700 data 7,169,45,32,210,255,202,208,248,169,194,32,210,255,162,12,169
  141. 1710 data 45,32,210,255,202,208,248,238,196,158,32,10,155,173,196,158
  142. 1720 data 201,23,144,12,32,230,154,32,255,154,32,10,155,32,21,155,173
  143. 1730 data 53,159,141,121,158,173,54,159,141,122,158,32,158,155,32,167
  144. 1740 data 155,32,200,155,162,1,173,60,159,188,60,159,32,162,187,32,221
  145. 1750 data 189,32,135,180,32,33,171,169,0,32,228,255,240,251,201,133,240
  146. 1760 data 41,201,135,240,33,201,136,240,3,76,4,157,169,0,141,0,158,169
  147. 1770 data 160,141,1,158,32,230,154,32,255,154,32,10,155,32,21,155,32
  148. 1780 data 101,156,96,32,70,156,96,169,255,141,112,159,96,173,112,159
  149. 1790 data 96,169,102,141,128,158,169,6,141,129,158,169,0,141,166,153
  150. 1800 data 141,0,158,169,160,141,167,153,141,1,158,169,0,141,112,159,96
  151. 1810 data 120,173,1,0,41,253,141,1,0,96,173,1,0,9,2,141,1,0,88,96,173
  152. 1820 data 6,236,141,24,208,173,5,236,141,22,208,173,4,236,141,17,208
  153. 1830 data 173,3,236,141,21,208,173,2,236,141,134,2,173,1,236,141,33,208
  154. 1840 data 173,0,236,141,32,208,96,162,0,189,0,232,157,0,216,189,0,233
  155. 1850 data 157,0,217,189,0,234,157,0,218,189,0,235,157,0,219,232,208,229
  156. 1860 data 96,162,0,189,0,224,157,0,0,189,0,226,157,0,2,189,0,227,157
  157. 1870 data 0,3,189,0,228,157,0,4,189,0,229,157,0,5,189,0,230,157,0,6,189
  158. 1880 data 0,231,157,0,7,232,208,211,96,32,228,255,208,251,96,173,1,0
  159. 1890 data 41,254,141,1,0,162,0,160,5,189,0,160,157,121,158,232,136,208
  160. 1900 data 246,173,0,158,24,105,5,141,0,158,144,3,238,1,158,173,1,0,9
  161. 1910 data 1,141,1,0,96,173,43,159,141,131,158,173,44,159,141,132,158
  162. 1920 data 173,45,159,141,133,158,169,0,141,134,158,169,152,141,130,158
  163. 1930 data 32,94,158,14,131,158,176,22,206,130,158,14,132,158,144,3,238
  164. 1940 data 131,158,14,133,158,144,235,238,132,158,24,144,229,78,131,158
  165. 1950 data 96,24,173,131,158,109,132,158,208,12,176,10,109,133,158,208
  166. 1960 data 5,176,3,238,133,158,96,0,117,158,51,153,0,0,0,0,0,0,160,102
  167. 1970 data 6,0,0,0,0,0,134,112,0,0,0,130,158,0,0,0,0,0,84,82,65,67,69
  168. 1980 data 32,83,84,65,82,84,69,68,0,84,82,65,67,69,32,83,84,79,80,80
  169. 1990 data 69,68,0,147,158,161,158,78,79,32,84,82,65,67,69,32,68,65,84
  170. 2000 data 65,0,179,158,0,0,0,176,195,195,195,195,195,195,195,178,195
  171. 2010 data 195,195,195,195,195,195,195,195,195,195,195,174,0,194,32,76
  172. 2020 data 73,78,69,32,32,194,32,69,76,65,80,83,69,68,32,32,32,32,194
  173. 2030 data 0,194,32,32,78,79,32,32,32,194,32,84,73,77,69,32,40,83,69,67
  174. 2040 data 41,32,194,0,171,195,195,195,195,195,195,195,219,195,195,195
  175. 2050 data 195,195,195,195,195,195,195,195,195,179,0,0,11,159,244,158
  176. 2060 data 221,158,198,158,0,0,0,0,0,0,0,0,135,158,0,0,0,0,0,0,0,55,159
  177. 2070 data 19,173,195,195,195,195,195,195,195,177,195,195,195,195,195
  178. 2080 data 195,195,195,195,195,195,195,189,0,32,70,49,61,69,78,68,32,70
  179. 2090 data 53,61,85,80,32,70,55,61,68,79,87,78,0,63,159,86,159,0,131,32
  180. 2100 data 0,0,0,113,159,0,0,117,85,0,1,247,245,138,138,255,255,138,138
  181. 2110 data 255,255,138,138,251,255,138,138,255,255,138,138,255,255,138
  182. 2120 data 138,255,255,138,138,255,255,138,138,255,255,0,0,117,117,0,0
  183. 2130 data 117,117,0,0,117,117,0,0,117,117,0,0,117,117,0,0,117,117,0,0
  184. 2140 data 117,117,0,0,117,117,138,138,255,255,138,138,255,255,138,138
  185. 2150 data 255,255,138,138,255,255,138,138,255,139,202,138,255,254,138
  186. 2160 data 138,255,255,138,138,255,155,0,0,117,117,0,0,117,117,0,0,117
  187. 2170 data 117,0,130,117,119,0,0,117,117,0,0,247,117,0,0,117,117,0,3,245
  188. 2180 data 247
  189.