www.retrosoftware.co.uk
http://www.retrosoftware.co.uk/forum/

Here is the beginning of a centipede game from the 80s
http://www.retrosoftware.co.uk/forum/viewtopic.php?f=73&t=605
Page 1 of 1

Author:  tricky [ Fri Apr 01, 2011 7:42 pm ]
Post subject:  Here is the beginning of a centipede game from the 80s

Be inspired, or ignore it, just some more code from way back when.

Keys are Z,X and SHIFT to fire.

You will need PAGE=&1100 or there abouts.


10N%=18:*K.10O.|MREN.|ML.|M
20OSBYTE=&FFF4
30DIM PROGRAM 2000,CplT 20,Ch N%,CphT 20,ClT 20,CdT 400,Csn 0,timer 0,CSN 0
40DIM Xd N%,Yd N%,Xp N%,Yp N%,Yx 0,Yy 0,ay 0,ax 0
50?CSN=N%:?Yx=39:?Yy=248:?ay=?Yy
60REM Data for head right.
70CplT?01=(CdT+000)MOD256
80CphT?01=(CdT+000)DIV256
90ClT?01=24
100CdT!01=&30100030
110CdT!05=&30001030
120CdT!09=&10707030
130CdT!13=&10707030
140CdT!17=&10B0B010
150CdT!21=&10B0B010
160REM Data for mushroom.
170CplT?02=(CdT+024)MOD256
180CphT?02=(CdT+024)DIV256
190ClT?02=24
200CdT!25=&02030100
210CdT!29=&00000000
220CdT!33=&00030303
230CdT!37=&03030303
240CdT!41=&01030200
250CdT!45=&00000000
260REM Data for ship.
270CplT?03=(CdT+048)MOD256
280CphT?03=(CdT+048)DIV256
290ClT?03=24
300CdT!49=&04040000
310CdT!53=&00040C0C
320CdT!57=&0C0C0C0C
330CdT!61=&0C0C0C0C
340CdT!65=&08080000
350CdT!69=&00080C0C
360REM Data for head left.
370CplT?04=(CdT+072)MOD256
380CphT?04=(CdT+072)DIV256
390ClT?04=24
400CdT!73=&20707020
410CdT!77=&20707020
420CdT!81=&20B0B030
430CdT!85=&20B0B030
440CdT!89=&30200030
450CdT!93=&30002030
460REM Data for body right.
470CplT?05=(CdT+096)MOD256
480CphT?05=(CdT+096)DIV256
490ClT?05=24
500CdT!097=&30100010
510CdT!101=&10001030
520CdT!105=&F0302000
530CdT!109=&002030F0
540CdT!113=&B0302020
550CdT!117=&202030B0
560REM Data for shot.
570CplT?06=(CdT+120)MOD256
580CphT?06=(CdT+120)DIV256
590ClT?06=8
600CdT!121=&0F0F0F0F
610CdT!125=&0F0F0F0F
620REM Data for body left.
630CplT?08=(CdT+176)MOD256
640CphT?08=(CdT+176)DIV256
650ClT?08=24
660CdT!177=&70301010
670CdT!181=&10103070
680CdT!185=&F0301000
690CdT!189=&001030F0
700CdT!193=&30200020
710CdT!197=&20002030
720FOR Pass=0TO2STEP2
730P%=PROGRAM
740[OPT Pass:.XYtoMEM
750LDA #0:STA &72:TXA:ASL A
760ROL &72:ASL A:ROL &72:ASL A
770ROL &72:CLC:ADC #TLscrn MOD 256
780STA &70:LDA #TLscrn DIV 256
790ADC &72:STA &71:TYA:AND #7:CLC
800ADC &70:STA &70:LDA &71:ADC #0
810STA &71:LDA #0:STA &72:TYA
820AND #248:ASL A:ROL &72:ASL A
830ROL &72:ASL A:ROL &72:ASL A
840ROL &72:TAY:CLC:ADC &70:STA &70
850LDA &72:ADC &71:STA &71:TYA:ASL A
860ROL &72:ASL A:ROL &72:CLC:ADC &70
870STA &70:LDA &72:ADC &71:STA &71
880RTS:.PRNTchr:LDA CplT,X
890STA &72:LDA CphT,X
900STA &73:LDY ClT,X
910.prntLOOP:LDA (&72),Y:EOR (&70),Y
920STA (&70),Y:DEY:BNE prntLOOP:RTS
930.CHECKchr:LDA CplT,X
940STA &72:LDA CphT,X
950STA &73:LDY ClT,X
960TAY:.checkLOOP:LDA (&72),Y
970CMP (&70),Y:BEQ checkOUT:DEY
980BNE checkLOOP:.checkOUT:RTS
990.MOVyou:LDX Yx:LDY Yy:JSR XYtoMEM
1000LDA #129:LDX #189:LDY #255
1010JSR OSBYTE:TYA:CMP #0:BNE Ml1
1020LDA Yx:CMP #0:BEQ Ml1:DEC Yx:.Ml1
1030LDA #129:LDX #158:LDY #255
1040JSR OSBYTE:TYA:CMP #0:BNE Ml2
1050LDA Yx:CMP #77:BEQ Ml2
1060INC Yx:.Ml2:LDX #3:JSR PRNTchr
1070LDX Yx:LDY Yy:JSR XYtoMEM
1080LDX #3:JSR PRNTchr:RTS
1090.CENTmove:LDX CSN:STX Csn:.Cml
1100LDX Csn:LDA Ch,X:STA Ch
1110LDA Yp,X:CMP #192:BNE Cl01:LDA #8
1120STA Yd,X:.Cl01:LDA Yp,X
1130CMP #248:BNE Cl02:LDA #248
1140STA Yd,X:.Cl02:LDY Yp,X:LDA Xp,X
1150TAX:JSR XYtoMEM:LDX Csn
1160LDA Xd,X:CMP #1:BNE Cl03:LDY #32
1170LDA (&70),Y:AND #3
1180CMP #0:BEQ Cl03:LDA #255
1190STA Xd,X:LDA Yp,X:CLC:ADC Yd,X
1200STA Yp,X:LDA Ch,X:CLC:ADC #3
1210STA Ch,X:.Cl03
1220LDA Xd,X:CMP #255:BNE Cl04
1230LDY #0:LDA (&70),Y:AND #3:CMP #0
1240BEQ Cl04:LDA #1:STA Xd,X
1250LDA Yp,X:CLC:ADC Yd,X:STA Yp,X
1260LDA Ch,X:CLC:ADC #253:STA Ch,X
1270.Cl04:LDA Xp,X:CLC:ADC Xd,X
1280STA Xp,X:LDX Ch:JSR PRNTchr
1290LDX Csn:LDY Yp,X:LDA Xp,X:TAX
1300JSR XYtoMEM:LDY Csn:LDX Ch,Y
1310JSR PRNTchr:DEC Csn:BEQ Cl05
1320JMP Cml:.Cl05:JSR MOVyou:RTS
1330.SHOOT:LDA ay:CMP Yy:BNE SHcnt
1340LDA #129:LDX #255:LDY #255
1350JSR OSBYTE:TYA:CMP #0:BNE SH:RTS
1360.SH:LDX Yx:INX:STX ax:LDA Yy:CLC
1370ADC #248:STA ay:TAY:JSR XYtoMEM
1380LDX #6:JSR PRNTchr:RTS:.SHcnt
1390LDX ax:LDY ay:JSR XYtoMEM:LDA ay
1400CMP #16:BNE cnt:LDX #6:JSR PRNTchr
1410LDA Yy:STA ay:RTS:.cnt:CLC:LDX #6
1420ADC #248:STA ay:JSR PRNTchr:LDX ax
1430LDY ay:JSR XYtoMEM:LDX #6
1440JSR PRNTchr:RTS:.WAIT:LDA &251
1450CMP timer:BEQ WAIT:STA timer:RTS
1460.ANIMALS:LDX #255:.L:DEX:BNE L:RTS
1470.GAME:JSR WAIT:JSR MOVyou
1480JSR CENTmove:JSR SHOOT:JSR WAIT
1490JSR MOVyou:JSR ANIMALS:JSR SHOOT
1500JSR SHOOT:JSR MOVyou:JSR SHOOT
1510JMP GAME:]:MODE2:TLscrn=HIMEM-1
1520NEXT Pass:PRINTP%-PROGRAM
1530DATA4,6,3,1,2,6,6,7,7,4,10,11,3,6,14,7
1540FORA=0TO15:READ B:VDU19,A,B;0;0;0:NEXT
1550FORA=1TO50:X%=RND(24)*3+1:Y%=RND(27)*8+16:CALL XYtoMEM:X%=2:CALL PRNTchr:NEXT
1560FORA=16TO248:X%=0:Y%=A:CALL XYtoMEM:?(?&70+256*?&71+1)=195:X%=79:CALL XYtoMEM:?(?&70+256*?&71+1)=195:NEXT
1570X%=?Yx:Y%=?Yy:CALL XYtoMEM
1580X%=3:CALL PRNTchr:FORA=1TON%
1590Xd?A=1:Yd?A=8:Xp?A=2+N%*3-A*3:Yp?A=16:Ch?A=5:Ch?1=1
1600X%=Xp?A:Y%=Yp?A:CALL XYtoMEM:X%=Ch?A:CALL PRNTchr
1610NEXT
1620CALL GAME

Author:  DaveM [ Thu Jun 09, 2011 5:50 am ]
Post subject:  Re: Here is the beginning of a centipede game from the 80s

Thanks for sharing this, Ric.

I finally got round to EXECing the listing onto a disc image and giving it a whirl ...

Have to say I think it looked quite promising, and I especially like the animation of the centipede.

Maybe someone reading might be inclined to finish it off? ;)

Attachment:
RB_CentipedeDemo.png [3.4 KiB]
Downloaded 75 times


Disc image added below, for convenience.

Attachments:
RB_CentipedeDemo.zip [3.37 KiB]
Downloaded 9 times

Page 1 of 1 All times are UTC [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/