danielbair

Amiga Boing Ball Demo on C64

Jul 14th, 2025
865
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
GwBasic 11.01 KB | Source Code | 0 0
  1.     1 : rem     moving and spinning ball
  2.     4 rem 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-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-R}{CBM-R}{CBM-S}{wht}{rvon}           ";
  94.  8005 for bx=1to11
  95.  8010 print"{wht}{rvon}   {rvof}{blu}{CBM-Q}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{CBM-W}{wht}{rvon}           ";:next
  96.  8013 print"{wht}{rvon}   {blu}{rvof}{CBM-Q}{SHIFT-+} Amiga Computer, Inc. {SHIFT-+}{CBM-W}{wht}{rvon}           ";
  97.  8015 for bx=1to3
  98.  8020 print"{wht}{rvon}   {rvof}{blu}{CBM-Q}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{SHIFT-+}{CBM-W}{wht}{rvon}           ";:next
  99.  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-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-E}{CBM-E}{CBM-X}{wht}{rvon}           ";
  100.  8100 print "                                        ";
  101.  8105 print "                                        ";
  102.  8110 print"{rvon}  Demonstration of what the new Amiga   ";
  103.  8120 print"{rvon}  can do that no other computer can do. ";
  104.  8130 print"{rvon}        ( except maybe the c-64 )      ";
  105.  8140 poke 2023,160:poke56295,1
  106.  8900 return
  107.  9999 end
  108. 10000 rem
  109. 10001 data000,000,000,000,000,000,000,000
  110. 10002 data143,000,002,112,000,024,224,000
  111. 10003 data099,192,000,207,192,000,112,063
  112. 10004 data000,224,063,001,192,127,003,192
  113. 10005 data127,007,128,255,015,128,255,048
  114. 10006 data127,000,048,127,000,032,127,000
  115. 10007 data096,127,000,096,127,000,064,127
  116. 10008 data000,192,127,000,192,127,000,239
  117. 10009 data000,000,000,000,000,000,014,000
  118. 10010 data000,241,128,000,248,224,000,252
  119. 10011 data056,000,252,012,000,003,241,128
  120. 10012 data003,248,192,001,252,096,001,252
  121. 10013 data048,000,254,024,000,254,012,255
  122. 10014 data001,240,255,001,240,255,001,248
  123. 10015 data255,001,248,255,001,248,255,001
  124. 10016 data252,255,001,252,255,001,252,016
  125. 10017 data063,128,255,063,128,255,063,128
  126. 10018 data255,031,128,255,031,128,255,031
  127. 10019 data128,255,015,128,255,015,128,255
  128. 10020 data048,127,000,024,127,000,012,063
  129. 10021 data128,006,063,128,003,031,192,001
  130. 10022 data143,192,000,048,063,000,028,063
  131. 10023 data000,007,031,000,001,143,000,000
  132. 10024 data112,000,000,000,000,000,000,016
  133. 10025 data000,254,003,000,254,003,000,254
  134. 10026 data002,000,254,006,000,254,006,000
  135. 10027 data254,004,000,254,012,000,254,012
  136. 10028 data255,001,240,255,001,224,254,003
  137. 10029 data192,254,003,128,252,007,000,252
  138. 10030 data014,000,003,243,000,003,198,000
  139. 10031 data007,024,000,014,064,000,241,000
  140. 10032 data000,000,000,000,000,000,000,239
  141. 10033 data000,000,000,000,000,000,000,000
  142. 10034 data199,000,002,056,000,028,240,000
  143. 10035 data113,240,000,227,224,000,028,031
  144. 10036 data000,120,031,000,248,031,001,240
  145. 10037 data031,003,240,063,007,224,063,056
  146. 10038 data031,192,056,031,192,056,031,192
  147. 10039 data112,031,192,112,031,192,112,031
  148. 10040 data192,240,031,192,240,031,192,239
  149. 10041 data000,000,000,000,000,000,142,000
  150. 10042 data000,112,192,000,120,120,000,124
  151. 10043 data062,000,126,031,000,129,240,000
  152. 10044 data192,252,000,192,254,000,192,127
  153. 10045 data000,192,127,128,192,063,196,063
  154. 10046 data192,120,063,192,120,063,192,120
  155. 10047 data063,192,124,063,192,124,063,192
  156. 10048 data124,063,192,126,063,192,126,239
  157. 10049 data015,224,063,015,224,063,015,224
  158. 10050 data063,015,224,063,015,224,063,007
  159. 10051 data224,063,007,224,063,007,224,063
  160. 10052 data056,031,192,028,015,192,014,015
  161. 10053 data224,007,007,224,003,135,224,001
  162. 10054 data227,224,000,028,031,000,014,015
  163. 10055 data000,003,015,000,001,199,000,000
  164. 10056 data056,000,000,000,000,000,000,016
  165. 10057 data192,063,129,192,063,129,192,063
  166. 10058 data130,192,063,130,192,063,130,192
  167. 10059 data063,132,192,063,132,192,063,132
  168. 10060 data063,192,056,063,128,120,063,128
  169. 10061 data240,063,001,224,063,003,192,126
  170. 10062 data015,128,129,224,000,131,192,000
  171. 10063 data135,128,000,143,000,000,113,000
  172. 10064 data000,000,000,000,000,000,000,016
  173. 10065 data000,000,000,000,000,000,000,000
  174. 10066 data227,000,003,156,000,031,060,000
  175. 10067 data124,120,000,240,248,000,015,007
  176. 10068 data000,062,007,000,124,007,000,248
  177. 10069 data015,001,248,015,003,240,015,060
  178. 10070 data015,240,060,015,240,060,015,240
  179. 10071 data120,015,240,120,015,240,120,015
  180. 10072 data240,248,015,240,248,015,240,239
  181. 10073 data000,000,000,000,000,000,199,000
  182. 10074 data000,057,192,000,060,248,000,030
  183. 10075 data062,000,031,015,000,224,240,000
  184. 10076 data224,124,000,224,062,000,240,031
  185. 10077 data000,240,031,128,240,015,192,015
  186. 10078 data240,060,015,240,060,015,240,060
  187. 10079 data015,240,030,015,240,030,015,240
  188. 10080 data030,015,240,031,015,240,031,239
  189. 10081 data007,240,015,007,240,015,007,240
  190. 10082 data015,007,240,015,007,240,015,003
  191. 10083 data240,015,003,240,015,003,240,015
  192. 10084 data060,015,240,030,007,240,015,007
  193. 10085 data240,007,131,248,003,193,248,001
  194. 10086 data240,248,000,015,007,000,003,135
  195. 10087 data000,000,195,000,000,099,000,000
  196. 10088 data028,000,000,000,000,000,000,016
  197. 10089 data240,015,224,240,015,224,240,015
  198. 10090 data224,240,015,224,240,015,224,240
  199. 10091 data015,192,240,015,192,240,015,192
  200. 10092 data015,240,060,015,224,120,015,224
  201. 10093 data240,031,193,224,031,131,192,031
  202. 10094 data015,128,224,240,000,225,192,000
  203. 10095 data195,000,000,198,000,000,056,000
  204. 10096 data000,000,000,000,000,000,000,016
  205. 10097 data000,000,000,000,000,000,000,000
  206. 10098 data113,000,003,014,000,030,030,000
  207. 10099 data124,062,000,248,126,000,015,129
  208. 10100 data000,063,003,000,127,003,000,254
  209. 10101 data003,001,254,003,035,252,003,030
  210. 10102 data003,252,030,003,252,030,003,252
  211. 10103 data062,003,252,062,003,252,062,003
  212. 10104 data252,126,003,252,126,003,252,239
  213. 10105 data000,000,000,000,000,000,227,000
  214. 10106 data000,028,064,000,015,056,000,015
  215. 10107 data142,000,007,199,000,248,056,000
  216. 10108 data248,030,000,248,031,000,248,015
  217. 10109 data128,252,015,192,252,007,224,003
  218. 10110 data248,028,003,248,028,003,248,028
  219. 10111 data003,248,014,003,248,014,003,248
  220. 10112 data014,003,248,015,003,248,015,239
  221. 10113 data129,252,003,129,252,003,065,252
  222. 10114 data003,065,252,003,065,252,003,033
  223. 10115 data252,003,033,252,003,033,252,003
  224. 10116 data028,003,252,030,001,252,015,001
  225. 10117 data252,007,128,252,003,192,252,001
  226. 10118 data240,126,000,007,129,000,003,193
  227. 10119 data000,001,225,000,000,241,000,000
  228. 10120 data142,000,000,000,000,000,000,016
  229. 10121 data252,007,240,252,007,240,252,007
  230. 10122 data240,252,007,240,252,007,240,252
  231. 10123 data007,224,252,007,224,252,007,224
  232. 10124 data003,248,028,003,240,056,007,240
  233. 10125 data112,007,224,224,007,225,192,007
  234. 10126 data199,128,248,056,000,240,112,000
  235. 10127 data240,192,000,227,128,000,028,000
  236. 10128 data000,000,000,000,000,000,000,016
  237. 10129 data000,000,000,000,000,000,000,255
  238. 10130 data000,001,255,128,003,255,192,007
  239. 10131 data255,224,015,255,240,015,255,240
  240. 10132 data031,255,248,031,255,248,063,255
  241. 10133 data252,063,255,252,127,255,254,127
  242. 10134 data255,254,127,255,254,127,255,254
  243. 10135 data127,255,254,127,255,254,127,255
  244. 10136 data254,255,255,255,255,255,255,239
  245. 10137 data255,255,255,255,255,255,127,255
  246. 10138 data254,127,255,254,127,255,254,127
  247. 10139 data255,254,127,255,254,127,255,254
  248. 10140 data127,255,254,063,255,252,063,255
  249. 10141 data252,031,255,248,031,255,248,015
  250. 10142 data255,240,015,255,240,007,255,224
  251. 10143 data003,255,192,001,255,128,000,255
  252. 10144 data000,000,000,000,000,000,000,239
  253. 19999 :
  254. 20000 rem shadow sprite data
  255. 20061 data000,000,000,000,000,000,000,000
  256. 20062 data000,000,000,000,000,000,000,021
  257. 20063 data080,000,170,170,000,085,085,000
  258. 20064 data170,170,128,085,085,064,170,170
  259. 20065 data160,085,085,080,170,170,168,085
  260. 20066 data085,084,170,170,168,085,085,084
  261. 20067 data170,170,170,085,085,084,170,170
  262. 20068 data170,085,085,085,170,170,170,239
  263. 20069 data170,170,170,085,085,085,170,170
  264. 20070 data170,085,085,084,170,170,170,085
  265. 20071 data085,084,170,170,168,085,085,084
  266. 20072 data170,170,168,085,085,080,170,170
  267. 20073 data160,085,085,064,170,170,128,085
  268. 20074 data085,000,170,170,000,021,080,000
  269. 20075 data000,000,000,000,000,000,000,000
  270. 20076 data000,000,000,000,000,000,000,239
  271. 29999 :
  272. 30000 rem corner offset data
  273. 30001 :
  274. 30010 data 0,0
  275. 30020 data 24,0
  276. 30030 data 0,21
  277. 30040 data 24,21
  278. 30050 data 0,0
  279. 30060 data 0,21
  280. 30070 data 40,0
  281. 30080 data 40,21
Tags: C= BASIC
Advertisement
Add Comment
Please, Sign In to add comment