Guest User

Amiga Boing Ball Demo on C64

a guest
Jul 12th, 2025
621
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
GwBasic 11.04 KB | Source Code | 0 0
  1.     1 : rem     moving and spinning ball
  2.     4 ifpeek(49152)+peek(49153)+peek(49154)<>367then:load"shelp",8,1
  3.     5 print"{clr}"; : poke 53281,14:poke 53280,1
  4.     9 :
  5.    10 poke 56,48:clr:rem lower memtop
  6.    17 :
  7.    18 rem  read in the sprite data
  8.    19 :
  9.    20 sb=12288
  10.    26 n1=1:n2=2:n3=3:n4=4:n5=5:n6=6:n7=7
  11.    27 o1=192:o2=193:o3=194:o4=195:o5=208:o6=209:o7=210:o8=211
  12.    28 v=53265:r=128
  13.    30 for rd = sb to sb + 20*64 -1
  14.    40 read dt
  15.    50 poke rd,dt
  16.    60 next rd
  17.    97 :
  18.    98 rem  clear all sprites
  19.    99 :
  20.   100 poke 53269,0
  21.   117 :
  22.   118 rem establish corner offsets
  23.   119 :
  24.   120 dim xl(7),yl(7)
  25.   130 for co = 0 to 7
  26.   140 : read xl(co),yl(co)
  27.   150 next co
  28.   160 print"{blu}";: rem print background
  29.   165 gosub 8000
  30.   170 print"{home}";
  31.   180 poke 53269,255:
  32.   181 a1=53008: a2=52992 : a3=  52993
  33.   182 a4=53031: a5=53035 : a6 = 53036
  34.   183 a7=53293: a8=53294 : a9 = 53056
  35.   184 b0=53057: b1=53058 : b2 = 53059
  36.   185 b3=2044 : b4=2045  : b5 = 2046
  37.   186 b6=2047 : b7=49152
  38.   199 :
  39.   200 rem  turn on the first sprites
  40.   201 :
  41.   210 xp=75 :yp= 85:ng=0:fc=1:bc=2
  42.   220 gosub 7000
  43.   230 forl=54272to54296:pokel,0:next
  44.   240 v=54296:w=54283:h=54280:l=54279:a=54284
  45.   245 poke h,20:pokel,200:sx=0
  46.   250 print "{swlc}{dish}";
  47.   299 :
  48.   300 rem   test spin and move
  49.   301 :
  50.   305 dx=1:dy=1
  51.   310 for mv =1 to 2e22
  52.   320 for ph=0to7
  53.   325 gosub 4000 :rem move sprite
  54.   330 gosub 6000
  55.   340 next ph
  56.   350 next mv
  57.   360 end
  58.  4000 rem move the sprite and bounce
  59.  4005 ifsx>0thengosub4120
  60.  4010 xp=xp+dx : yp=yp+dy
  61.  4020 ifxp>202then dx=-dx:gosub 4100
  62.  4030 ifxp<52 then dx=-dx:gosub 4100
  63.  4040 ifyp>166 then dy=-dy:gosub 4100:return
  64.  4045 ifyp<78 then dy=-dy :gosub 4100
  65.  4050 return
  66.  4099 rem make a crash sound
  67.  4100 sx=15:pokea,15:pokew,129:return
  68.  4120 poke v,sx:sx=sx-1:ifsx<1thenpokea,0:pokew,0:sx=0:pokev,sx
  69.  4125 return
  70.  4997 :
  71.  4998 rem display sprites
  72.  4999 :
  73.  5050 stopdspr n5,o6,1,.,xl(n5)+xp,yl(n5)+yp,.,bc
  74.  6000 :
  75.  6010 poke49664,xp
  76.  6020 poke49665,yp
  77.  6030 poke49667,ph
  78.  6200 sys b7
  79.  6210 return
  80.  7000 rem initialize sprites
  81.  7010 poke 53275,0
  82.  7015 poke a7,n6:pokea8,n6:poke b3,o5:pokeb4,o6:pokeb5,o7:pokeb6,o8
  83.  7020 poke 53276,0
  84.  7025 poke 49668,bc  : poke 49669,fc
  85.  7030 poke 53277,48
  86.  7040 poke 53271,0
  87.  7045 poke 53264,0
  88.  7050 return
  89.  7999 rem print background
  90.  8000 print "{clr}{wht}{rvon}                                        ";
  91.  8001 print "                                        ";
  92.  8002 print "                                        ";
  93.  8004 print"{wht}{rvon}   {rvof}{blu}{CBM-A}{CBM-R}{CBM-R}{CBM-R}{CBM-R}{CBM-R}{CBM-R}{CBM-R}{CBM-R}{CBM-
  94.  
  95. R}{CBM-R}{CBM-R}{CBM-R}{CBM-R}{CBM-R}{CBM-R}{CBM-R}{CBM-R}{CBM-R}{CBM-R}{CBM-R}{CBM-R}{CBM-R}{CBM-
  96.  
  97. R}{CBM-R}{CBM-S}{wht}{rvon}           ";
  98.  8005 for bx=1to11
  99.  8010 print"{wht}{rvon}   {rvof}{blu}{CBM-Q}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-
  100.  
  101. +}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}
  102.  
  103. {SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{CBM-W}{wht}{rvon}           ";:next
  104.  8013 print"{wht}{rvon}   {blu}{rvof}{CBM-Q}{SHIFT-+} Amiga Computer, Inc. {SHIFT-+}{CBM-W}{wht}{rvon}          
  105.  
  106. ";
  107.  8015 for bx=1to3
  108.  8020 print"{wht}{rvon}   {rvof}{blu}{CBM-Q}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-
  109.  
  110. +}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}
  111.  
  112. {SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{CBM-W}{wht}{rvon}           ";:next
  113.  8030 print"{wht}{rvon}   {blu}{rvof}{CBM-Z}{CBM-E}{CBM-E}{CBM-E}{CBM-E}{CBM-E}{CBM-E}{CBM-E}{CBM-E}{CBM-
  114.  
  115. E}{CBM-E}{CBM-E}{CBM-E}{CBM-E}{CBM-E}{CBM-E}{CBM-E}{CBM-E}{CBM-E}{CBM-E}{CBM-E}{CBM-E}{CBM-E}{CBM-
  116.  
  117. E}{CBM-E}{CBM-X}{wht}{rvon}           ";
  118.  8100 print "                                        ";
  119.  8105 print "                                        ";
  120.  8110 print"{rvon}  Demonstration of what the new Amiga   ";
  121.  8120 print"{rvon}  can do that no other computer can do. ";
  122.  8130 print"{rvon}        ( except maybe the c-64 )      ";
  123.  8140 poke 2023,160:poke56295,1
  124.  8900 return
  125.  9999 end
  126. 10000 rem
  127. 10001 data000,000,000,000,000,000,000,000
  128. 10002 data143,000,002,112,000,024,224,000
  129. 10003 data099,192,000,207,192,000,112,063
  130. 10004 data000,224,063,001,192,127,003,192
  131. 10005 data127,007,128,255,015,128,255,048
  132. 10006 data127,000,048,127,000,032,127,000
  133. 10007 data096,127,000,096,127,000,064,127
  134. 10008 data000,192,127,000,192,127,000,239
  135. 10009 data000,000,000,000,000,000,014,000
  136. 10010 data000,241,128,000,248,224,000,252
  137. 10011 data056,000,252,012,000,003,241,128
  138. 10012 data003,248,192,001,252,096,001,252
  139. 10013 data048,000,254,024,000,254,012,255
  140. 10014 data001,240,255,001,240,255,001,248
  141. 10015 data255,001,248,255,001,248,255,001
  142. 10016 data252,255,001,252,255,001,252,016
  143. 10017 data063,128,255,063,128,255,063,128
  144. 10018 data255,031,128,255,031,128,255,031
  145. 10019 data128,255,015,128,255,015,128,255
  146. 10020 data048,127,000,024,127,000,012,063
  147. 10021 data128,006,063,128,003,031,192,001
  148. 10022 data143,192,000,048,063,000,028,063
  149. 10023 data000,007,031,000,001,143,000,000
  150. 10024 data112,000,000,000,000,000,000,016
  151. 10025 data000,254,003,000,254,003,000,254
  152. 10026 data002,000,254,006,000,254,006,000
  153. 10027 data254,004,000,254,012,000,254,012
  154. 10028 data255,001,240,255,001,224,254,003
  155. 10029 data192,254,003,128,252,007,000,252
  156. 10030 data014,000,003,243,000,003,198,000
  157. 10031 data007,024,000,014,064,000,241,000
  158. 10032 data000,000,000,000,000,000,000,239
  159. 10033 data000,000,000,000,000,000,000,000
  160. 10034 data199,000,002,056,000,028,240,000
  161. 10035 data113,240,000,227,224,000,028,031
  162. 10036 data000,120,031,000,248,031,001,240
  163. 10037 data031,003,240,063,007,224,063,056
  164. 10038 data031,192,056,031,192,056,031,192
  165. 10039 data112,031,192,112,031,192,112,031
  166. 10040 data192,240,031,192,240,031,192,239
  167. 10041 data000,000,000,000,000,000,142,000
  168. 10042 data000,112,192,000,120,120,000,124
  169. 10043 data062,000,126,031,000,129,240,000
  170. 10044 data192,252,000,192,254,000,192,127
  171. 10045 data000,192,127,128,192,063,196,063
  172. 10046 data192,120,063,192,120,063,192,120
  173. 10047 data063,192,124,063,192,124,063,192
  174. 10048 data124,063,192,126,063,192,126,239
  175. 10049 data015,224,063,015,224,063,015,224
  176. 10050 data063,015,224,063,015,224,063,007
  177. 10051 data224,063,007,224,063,007,224,063
  178. 10052 data056,031,192,028,015,192,014,015
  179. 10053 data224,007,007,224,003,135,224,001
  180. 10054 data227,224,000,028,031,000,014,015
  181. 10055 data000,003,015,000,001,199,000,000
  182. 10056 data056,000,000,000,000,000,000,016
  183. 10057 data192,063,129,192,063,129,192,063
  184. 10058 data130,192,063,130,192,063,130,192
  185. 10059 data063,132,192,063,132,192,063,132
  186. 10060 data063,192,056,063,128,120,063,128
  187. 10061 data240,063,001,224,063,003,192,126
  188. 10062 data015,128,129,224,000,131,192,000
  189. 10063 data135,128,000,143,000,000,113,000
  190. 10064 data000,000,000,000,000,000,000,016
  191. 10065 data000,000,000,000,000,000,000,000
  192. 10066 data227,000,003,156,000,031,060,000
  193. 10067 data124,120,000,240,248,000,015,007
  194. 10068 data000,062,007,000,124,007,000,248
  195. 10069 data015,001,248,015,003,240,015,060
  196. 10070 data015,240,060,015,240,060,015,240
  197. 10071 data120,015,240,120,015,240,120,015
  198. 10072 data240,248,015,240,248,015,240,239
  199. 10073 data000,000,000,000,000,000,199,000
  200. 10074 data000,057,192,000,060,248,000,030
  201. 10075 data062,000,031,015,000,224,240,000
  202. 10076 data224,124,000,224,062,000,240,031
  203. 10077 data000,240,031,128,240,015,192,015
  204. 10078 data240,060,015,240,060,015,240,060
  205. 10079 data015,240,030,015,240,030,015,240
  206. 10080 data030,015,240,031,015,240,031,239
  207. 10081 data007,240,015,007,240,015,007,240
  208. 10082 data015,007,240,015,007,240,015,003
  209. 10083 data240,015,003,240,015,003,240,015
  210. 10084 data060,015,240,030,007,240,015,007
  211. 10085 data240,007,131,248,003,193,248,001
  212. 10086 data240,248,000,015,007,000,003,135
  213. 10087 data000,000,195,000,000,099,000,000
  214. 10088 data028,000,000,000,000,000,000,016
  215. 10089 data240,015,224,240,015,224,240,015
  216. 10090 data224,240,015,224,240,015,224,240
  217. 10091 data015,192,240,015,192,240,015,192
  218. 10092 data015,240,060,015,224,120,015,224
  219. 10093 data240,031,193,224,031,131,192,031
  220. 10094 data015,128,224,240,000,225,192,000
  221. 10095 data195,000,000,198,000,000,056,000
  222. 10096 data000,000,000,000,000,000,000,016
  223. 10097 data000,000,000,000,000,000,000,000
  224. 10098 data113,000,003,014,000,030,030,000
  225. 10099 data124,062,000,248,126,000,015,129
  226. 10100 data000,063,003,000,127,003,000,254
  227. 10101 data003,001,254,003,035,252,003,030
  228. 10102 data003,252,030,003,252,030,003,252
  229. 10103 data062,003,252,062,003,252,062,003
  230. 10104 data252,126,003,252,126,003,252,239
  231. 10105 data000,000,000,000,000,000,227,000
  232. 10106 data000,028,064,000,015,056,000,015
  233. 10107 data142,000,007,199,000,248,056,000
  234. 10108 data248,030,000,248,031,000,248,015
  235. 10109 data128,252,015,192,252,007,224,003
  236. 10110 data248,028,003,248,028,003,248,028
  237. 10111 data003,248,014,003,248,014,003,248
  238. 10112 data014,003,248,015,003,248,015,239
  239. 10113 data129,252,003,129,252,003,065,252
  240. 10114 data003,065,252,003,065,252,003,033
  241. 10115 data252,003,033,252,003,033,252,003
  242. 10116 data028,003,252,030,001,252,015,001
  243. 10117 data252,007,128,252,003,192,252,001
  244. 10118 data240,126,000,007,129,000,003,193
  245. 10119 data000,001,225,000,000,241,000,000
  246. 10120 data142,000,000,000,000,000,000,016
  247. 10121 data252,007,240,252,007,240,252,007
  248. 10122 data240,252,007,240,252,007,240,252
  249. 10123 data007,224,252,007,224,252,007,224
  250. 10124 data003,248,028,003,240,056,007,240
  251. 10125 data112,007,224,224,007,225,192,007
  252. 10126 data199,128,248,056,000,240,112,000
  253. 10127 data240,192,000,227,128,000,028,000
  254. 10128 data000,000,000,000,000,000,000,016
  255. 10129 data000,000,000,000,000,000,000,255
  256. 10130 data000,001,255,128,003,255,192,007
  257. 10131 data255,224,015,255,240,015,255,240
  258. 10132 data031,255,248,031,255,248,063,255
  259. 10133 data252,063,255,252,127,255,254,127
  260. 10134 data255,254,127,255,254,127,255,254
  261. 10135 data127,255,254,127,255,254,127,255
  262. 10136 data254,255,255,255,255,255,255,239
  263. 10137 data255,255,255,255,255,255,127,255
  264. 10138 data254,127,255,254,127,255,254,127
  265. 10139 data255,254,127,255,254,127,255,254
  266. 10140 data127,255,254,063,255,252,063,255
  267. 10141 data252,031,255,248,031,255,248,015
  268. 10142 data255,240,015,255,240,007,255,224
  269. 10143 data003,255,192,001,255,128,000,255
  270. 10144 data000,000,000,000,000,000,000,239
  271. 19999 :
  272. 20000 rem shadow sprite data
  273. 20061 data000,000,000,000,000,000,000,000
  274. 20062 data000,000,000,000,000,000,000,021
  275. 20063 data080,000,170,170,000,085,085,000
  276. 20064 data170,170,128,085,085,064,170,170
  277. 20065 data160,085,085,080,170,170,168,085
  278. 20066 data085,084,170,170,168,085,085,084
  279. 20067 data170,170,170,085,085,084,170,170
  280. 20068 data170,085,085,085,170,170,170,239
  281. 20069 data170,170,170,085,085,085,170,170
  282. 20070 data170,085,085,084,170,170,170,085
  283. 20071 data085,084,170,170,168,085,085,084
  284. 20072 data170,170,168,085,085,080,170,170
  285. 20073 data160,085,085,064,170,170,128,085
  286. 20074 data085,000,170,170,000,021,080,000
  287. 20075 data000,000,000,000,000,000,000,000
  288. 20076 data000,000,000,000,000,000,000,239
  289. 29999 :
  290. 30000 rem corner offset data
  291. 30001 :
  292. 30010 data 0,0
  293. 30020 data 24,0
  294. 30030 data 0,21
  295. 30040 data 24,21
  296. 30050 data 0,0
  297. 30060 data 0,21
  298. 30070 data 40,0
  299. 30080 data 40,21
Advertisement
Add Comment
Please, Sign In to add comment