home *** CD-ROM | disk | FTP | other *** search
- 10 ifpeek(49152)+peek(49156)<>103then2000
- 20 poke53269,0:poke53277,255:poke53271,0:fori=0to3:poke53287+i,4
- 30 poke2040+i,248+i:next:fori=4to7:poke53287+i,11:poke2040+i,252:next
- 40 fori=0to3:sys49155,i,152+i*48,12:sys49155,i+4,152+i*48,12:next:poke2,1
- 50 poke53280,5:poke53281,0:sys49152
- 60 print"[147][155] [194][207][210][196][197][210] [211][208][210][201][212][197][211] and [211][208][210][201][212][197] [204][207][195][193][212][197][210]"
- 70 print" [215]ritten by [202].[198]inch [211]ept. 1988"
- 80 print"[150] ![204]et your sprites break free!"
- 90 print"[159] [212]he machine code routines will allow"
- 100 print" you to place sprites in the upper and"
- 110 print" and lower borders as well as being"
- 120 print" able to position sprites without [217][207][213]"
- 130 print" having to change the appropriate bits"
- 140 print" in the [205][211][194] register. [212]o utilise the"
- 150 print" routines first set the variable [154][195][210][159] to"
- 160 print" the start address of the code which"
- 170 print" resides between [154]49152[159] and [154]49467[159] incl."
- 180 gosub1000
- 190 print"[147][155] [194][207][210][196][197][210] [211][208][210][201][212][197][211] and [211][208][210][201][212][197] [204][207][195][193][212][197][210]"
- 200 print" [215]ritten by [202].[198]inch [211]ept. 1988"
- 210 print"[150] ![204]et your sprites break free!"
- 220 print"[154] [211][217][211] [195][210] [159]will activate the code allowing"
- 230 print" you to give your sprites any [217]-coord."
- 240 print" between [154]0 [159]and [154]255[159]. [193] message will"
- 250 print" appear to indicate that it is now"
- 260 print" active. [217]ou can disable this message"
- 270 print" with a [154][208][207][203][197] 2,1[159]. [210]emember: [201]t is only"
- 280 print" the upper and lower borders that are"
- 290 print" accessible with this routine."
- 300 gosub1000
- 310 print"[147][155] [194][207][210][196][197][210] [211][208][210][201][212][197][211] and [211][208][210][201][212][197] [204][207][195][193][212][197][210]"
- 320 print" [215]ritten by [202].[198]inch [211]ept. 1988"
- 330 print"[150] ![204]et your sprites break free!"
- 340 print"[154] [211][217][211] [195][210]+3,sn,x,y [159]will enable you to"
- 350 print" position sprite [160][154]sn[159] at a location on"
- 360 print" the screen specified by [154]x[159] and [154]y[159]. [212]his"
- 370 print" will automatically set or clear the"
- 380 print" appropriate bits in the [205][211][194] register."
- 390 print"[154] "chr$(34)"sn"chr$(34)"[159] should be between 0 and 7, [154]"chr$(34);
- 400 print"x"chr$(34):print"[159] between 0 and 360, and [154]"chr$(34)"y"chr$(34);
- 410 print"[159] should be a value between 0 and 255.":gosub1000
- 420 print"[147][155] [194][207][210][196][197][210] [211][208][210][201][212][197][211] and [211][208][210][201][212][197] [204][207][195][193][212][197][210]"
- 430 print" [215]ritten by [202].[198]inch [211]ept. 1988"
- 440 print"[150] ![204]et your sprites break free!"
- 450 print"[159] [196]o you wish to relocate code?"
- 460 print"[154] [208]lease press [217] or [206]"
- 470 geta$:ifa$="n"thens=49152:goto570
- 480 ifa$<>"y"then470
- 490 print"[159] [197]nter start address:";:open1,0:input#1,a$:close1
- 500 s=val(a$):if(s<0)or(s>65535)or(s>48800ands<49511)thenprint"[145][145][145]":goto490
- 510 sa=s:print:print"[145][159] [210]elocating code at[154]"sa
- 520 fori=0to315:pokesa+i,peek(49152+i):next
- 530 fori=1to9:readpl,ex:e=sa+ex:el=e-(256*int(e/256)):eh=int(e/256)
- 540 pokesa+pl,el:pokesa+pl+1,eh:next
- 550 data1,89,4,27,28,9,42,35,47,9,65,82,83,9,111,124,122,169
- 560 e=sa+223:pokesa+178,e-(256*int(e/256)):pokesa+180,int(e/256)
- 570 print"[147][155] [194][207][210][196][197][210] [211][208][210][201][212][197][211] and [211][208][210][201][212][197] [204][207][195][193][212][197][210]"
- 580 print" [215]ritten by [202].[198]inch [211]ept. 1988"
- 590 print"[150] ![204]et your sprites break free!"
- 600 print" [201]mportant information:"
- 610 print"[159] [195]ode lies between[154]"s"[159]&[154]"s+315"[159]incl."
- 620 print"[154] [195][210][159] should be set to[154]"s"[157][159]."
- 630 print"[159] [210]outine has been initiated."
- 640 print" [201]f you wish to save the code, press"
- 650 print"[154] [210][213][206]/[211][212][207][208][159] and [154][210][197][211][212][207][210][197][159] and then type:"
- 660 print"[154] [210][213][206] 5000"
- 670 a$="[145][210][197][193][196][217]":fori=1to6:poke630+i,asc(mid$(a$,i,1)):next:poke637,141:poke198,7
- 680 end
- 1000 c=1:a=0:poke53269,255
- 1010 a=a+1:ifa=20thenforj=0to3:poke53291+j,c:next:c=12-c:a=0
- 1020 geta$:ifa$<>chr$(13)then1010
- 1030 poke53269,0:return
- 2000 poke52,62:poke56,62:clr:poke56334,peek(56334)and254:poke1,peek(1)and251
- 2010 a$="press[160]return":x=0:fori=0to11:sn=248+int(i/3)
- 2020 sa=sn*64+x:a=asc(mid$(a$,i+1,1))-64+128:forj=1to8
- 2030 pokesa+j*3,peek(53247+a*8+j):next:forj=9to20:pokesa+j*3,0:next
- 2040 pokesa,255:x=x+1:ifx=3thenx=0
- 2050 next
- 2060 poke1,peek(1)or4:poke56334,peek(56334)or1
- 2070 fori=0to63:a=0:ifi<27thena=255
- 2080 poke16128+i,a:next
- 2090 load"mcode",8,1
- 5000 x=peek(53280)and15:y=peek(53281)and15:ifx=14andy=6then5030
- 5010 print"before saving code, interrupts must be disabled - restore the screen"
- 5020 end
- 5030 poke53280,5:poke53281,0
- 5040 print"[147][155] [194][207][210][196][197][210] [211][208][210][201][212][197][211] and [211][208][210][201][212][197] [204][207][195][193][212][197][210]"
- 5050 print" [215]ritten by [202].[198]inch [211]ept. 1988"
- 5060 print"[150] ![204]et your sprites break free!"
- 5070 print," [205][193][195][200][201][206][197] [195][207][196][197] [211][193][214][197][210]"
- 5080 print,"[159][211]ave to [154][196][146]isk [159]or [154][212][146]ape":dv=8:d$="[196][201][211][203]"
- 5090 geta$:ifa$="t"thendv=1:d$="[212][193][208][197]":goto5110
- 5100 ifa$<>"d"then5090
- 5110 print,"[145] [159][211]aving to [154]"d$" "
- 5120 print"[159] [197]nter start address:[154] ";:open1,0:input#1,a$:close1
- 5130 a=val(a$):if(a<0ora>65535)thenprint"[145][145][145][145]":goto5120
- 5140 print:s=a:e=s+315:print"[145] [159][211]tart address:[154]"s"[157] "
- 5150 print"[159] [197]nd address: [154]"e:a$="bord.spr."+str$(s)
- 5160 sys49468 a$,dv,2,s,e+1
- 5170 print"[147][154][142]code saved ok";:poke53280,14:poke53281,6:end
- 5160 sys49468 a$,dv,2,s,e+1
- 5170 print"[147][142][154]code saved ok";:poke53280,14:poke53281,6:end
-