* * Centipede * * (c) 1982, Atari * (s) 2020, Antoine Vignau * * Made from LoGo's crack * mx %11 org $9000 lst off *---------------------------- L02FC = $02FC L05F0 = $05F0 L0600 = L05F0+$10 L0610 = L0600+$10 L0800 = $0800 L1020 = $1020 L1560 = $1560 HGR1 = $2000 HGR2 = $4000 L6000 = $6000 L7800 = $7800 L8000 = $8000 L8080 = L8000+$80 L8B00 = $8B00 L8F00 = $8F00 SOFTEV EQU $03F2 PWREDUP EQU $03F4 KBD EQU $C000 KBDSTROBE EQU $C010 SPKR EQU $C030 TXTCLR EQU $C050 MIXCLR EQU $C052 TXTPAGE1 EQU $C054 TXTPAGE2 EQU $C055 HIRES EQU $C057 BUTN0 EQU $C061 BUTN1 EQU $C062 ROMIN2 EQU $C081 RDROM2 EQU $C082 LCBANK2 EQU $C083 PREAD EQU $FB1E INIT EQU $FB2F VTAB EQU $FC22 CRLEOP EQU $FC42 HOME EQU $FC58 WAIT EQU $FCA8 RDKEY EQU $FD0C PRBYTE EQU $FDDA COUT EQU $FDED SETKBD EQU $FE89 SETVID EQU $FE93 RESETV EQU $FFFC *---------------------------- * KEYS * * Up : A * Down : Z * Left : left arrow * Right : right arrow * J : joystick * K : keyboard * Butns : shoot * *---------------------------- *---------------------------- * ZERO PAGE * * $A0..$A1 : pointer * $A2..$A3 : pointer * $A4 : length * $A5..$A5 : offset within buffer area $0800 *---------------------------- fgINPUT = $f8 ; 0: joystick, 1: keyboard whichDIR = $fc ; 0: none, 1: up, 2: down, 4: left, 8: right *---------------------------- *--- Font and friends L9000 hex 0000000000000000 hex 02BB5A305FEE3DA8 hex 0A0A0A0000000000 hex 0A0A1F0A1F0A0A00 hex 041E050E140F0400 hex 00130B041A190000 hex 02050502150F1600 hex 0404040000000000 hex 0402010101020400 hex 0408101010080400 hex 04150E040E150400 hex 0004041F04040000 hex 0000000006040200 hex 0000001F00000000 hex 0000000000060600 hex 1010080402010100 hex 040A11110A040000 hex 04060404040E0000 hex 0E11100C061F0000 hex 0E11100C110E0000 hex 0109091F08080000 hex 1F010F10100F0000 hex 0E01010F110E0000 hex 1F10080402010000 hex 0E110E11110E0000 hex 1E111E10100E0000 hex 0006060006060000 hex 0006060006040200 hex 0804020102040800 hex 00001F001F000000 hex 0204081008040200 hex 0E11100C04000400 hex 0E111D0D05011E00 hex 040A111F11110000 hex 0F110F11110F0000 hex 0E110101110E0000 hex 0F111111110F0000 hex 1F010701011F0000 hex 1F01070101010000 hex 0F11011D111E0000 hex 11111F1F11110000 hex 1F040404041F0000 hex 10101010110E0000 hex 1109070509110000 hex 01010101011F0000 hex 111B151111110000 hex 1113151911110000 hex 0E111111110E0000 hex 0F11110F01010000 hex 0E11111509160000 hex 0F11110F09110000 hex 1F011F10101F0000 hex 1F04040404040000 hex 11111111110E0000 hex 111111111A040000 hex 111111151B110000 hex 110A040A11110000 hex 11110A0404040000 hex 1F080402011F0000 hex 0000000000000000 hex 0000000000000000 hex 0000000000000000 hex 0000000000000000 hex 0000000000000000 hex 082A2A2A08080800 hex 082A2A2A08000000 hex 082A2A2200000000 hex 082A280000000000 hex 0000000000000000 hex 1054545410101000 hex 1054545410000000 hex 1054544400000000 hex 1054500000000000 hex 0000000000000000 hex 8184A8AAAAA88481 hex 838C9EBFBF9E8C83 hex 90848AAAAA8A8490 hex E098BAFEFEBA98E0 hex 9084A9AAAAA88490 hex B08C9EBFBF9E8CB0 hex 81848AAAAA8A8481 hex 8698BAFEFEBA9886 hex 7E66666666667E00 hex 1818181818181800 hex 7E60607E06067E00 hex 7E60607E60607E00 hex 6666667E60606000 hex 7E06067E60607E00 hex 0606067E66667E00 hex 7E60606060606000 hex 7E66667E66667E00 hex 7E66667E60606000 hex 888888AAAAAAAAAA hex 888888AAAAAAAAAA hex 888888AAAAAAAAAA hex 0000000000000000 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0001020304050607 hex 08090A0B0C0D0E0F hex 1011121314151617 hex 18191A1B1C1D1E1F hex 2021222324252627 hex 0000FFFF0000FFFF hex 0000FFFF0000FFFF hex 0000FFFF0000FFFF hex 0000FFFF0000FFFF hex 0000FFFF0000FFFF hex 0000FFFF0000FFFF hex 0000FFFF0000FFFF hex 0000FFFF0000FFFF hex 0000000000000000 hex 0000000000000000 hex 0000000000000000 hex 0000000000000000 hex 0000000000000000 hex 0808080808080808 hex 0808080808080808 hex 0808080808080808 hex 0808080808080808 hex 0808080808080808 hex 1010101010101010 hex 1010101010101010 hex 1010101010101010 hex 1010101010101010 hex 1010101010101010 hex 1818181818181818 hex 1818181818181818 hex 1818181818181818 hex 1818181818181818 hex 1818181818181818 hex 2020202020202020 hex 2020202020202020 hex 2020202020202020 hex 2020202020202020 hex 2020202020202020 hex 2828282828282828 hex 2828282828282828 hex 2828282828282828 hex 2828282828282828 hex 2828282828282828 hex 3030303030303030 hex 3030303030303030 hex 3030303030303030 hex 3030303030303030 hex 3030303030303030 hex 3838383838383838 hex 3838383838383838 hex 3838383838383838 hex 3838383838383838 hex 3838383838383838 hex 4040404040404040 hex 4040404040404040 hex 4040404040404040 hex 4040404040404040 hex 4040404040404040 hex 4848484848484848 hex 4848484848484848 hex 4848484848484848 hex 4848484848484848 hex 4848484848484848 hex 5050505050505050 hex 5050505050505050 hex 5050505050505050 hex 5050505050505050 hex 5050505050505050 hex 5858585858585858 hex 5858585858585858 hex 5858585858585858 hex 5858585858585858 hex 5858585858585858 hex 6060606060606060 hex 6060606060606060 hex 6060606060606060 hex 6060606060606060 hex 6060606060606060 hex 6868686868686868 hex 6868686868686868 hex 6868686868686868 hex 6868686868686868 hex 6868686868686868 hex 7070707070707070 hex 7070707070707070 hex 7070707070707070 hex 7070707070707070 hex 7070707070707070 hex 7878787878787878 hex 7878787878787878 hex 7878787878787878 hex 7878787878787878 hex 7878787878787878 hex 8080808080808080 hex 8080808080808080 hex 8080808080808080 hex 8080808080808080 hex 8080808080808080 hex 8888888888888888 hex 8888888888888888 hex 8888888888888888 hex 8888888888888888 hex 8888888888888888 hex 9090909090909090 hex 9090909090909090 hex 9090909090909090 hex 9090909090909090 hex 9090909090909090 hex 9898989898989898 hex 9898989898989898 hex 9898989898989898 hex 9898989898989898 hex 9898989898989898 hex A0A0A0A0A0A0A0A0 hex A0A0A0A0A0A0A0A0 hex A0A0A0A0A0A0A0A0 hex A0A0A0A0A0A0A0A0 hex A0A0A0A0A0A0A0A0 hex A8A8A8A8A8A8A8A8 hex A8A8A8A8A8A8A8A8 hex A8A8A8A8A8A8A8A8 hex A8A8A8A8A8A8A8A8 hex A8A8A8A8A8A8A8A8 hex B0B0B0B0B0B0B0B0 hex B0B0B0B0B0B0B0B0 hex B0B0B0B0B0B0B0B0 hex B0B0B0B0B0B0B0B0 hex B0B0B0B0B0B0B0B0 hex B8B8B8B8B8B8B8B8 hex B8B8B8B8B8B8B8B8 hex B8B8B8B8B8B8B8B8 hex B8B8B8B8B8B8B8B8 hex B8B8B8B8B8B8B8B8 hex 0000FFFF0000FFFF hex 0000FFFF0000FFFF hex 0000FFFF0000FFFF hex 0000FFFF0000FFFF hex 0000FFFF0000FFFF hex 0000FFFF0000FFFF hex 0000FFFF0000FFFF hex 0000FFFF0000FFFF L9B00 hex 00000000000000008080808080808080 hex 00000000000000008080808080808080 hex 00000000000000008080808080808080 hex 00000000000000008080808080808080 hex 2828282828282828A8A8A8A8A8A8A8A8 hex 2828282828282828A8A8A8A8A8A8A8A8 hex 2828282828282828A8A8A8A8A8A8A8A8 hex 2828282828282828A8A8A8A8A8A8A8A8 hex 5050505050505050D0D0D0D0D0D0D0D0 hex 5050505050505050D0D0D0D0D0D0D0D0 hex 5050505050505050D0D0D0D0D0D0D0D0 hex 5050505050505050D0D0D0D0D0D0D0D0 L9BC0 hex 2024282C3034383C2024282C3034383C hex 2125292D3135393D2125292D3135393D hex 22262A2E32363A3E22262A2E32363A3E hex 23272B2F33373B3F23272B2F33373B3F hex 2024282C3034383C2024282C3034383C hex 2125292D3135393D2125292D3135393D hex 22262A2E32363A3E22262A2E32363A3E hex 23272B2F33373B3F23272B2F33373B3F hex 2024282C3034383C2024282C3034383C hex 2125292D3135393D2125292D3135393D hex 22262A2E32363A3E22262A2E32363A3E hex 23272B2F33373B3F23272B2F33373B3F L9C80 hex 00000000000000010101010101010202 hex 02020202020303030303030304040404 hex 04040405050505050505060606060606 hex 06070707070707070808080808080809 hex 0909090909090A0A0A0A0A0A0A0B0B0B hex 0B0B0B0B0C0C0C0C0C0C0C0D0D0D0D0D hex 0D0D0E0E0E0E0E0E0E0F0F0F0F0F0F0F hex 10101010101010111111111111111212 hex 12121212121313131313131314141414 hex 14141415151515151515161616161616 hex 16171717171717171818181818181819 hex 1919191919191A1A1A1A1A1A1A1B1B1B hex 1B1B1B1B1C1C1C1C1C1C1C1D1D1D1D1D hex 1D1D1E1E1E1E1E1E1E1F1F1F1F1F1F1F hex 20202020202020212121212121212222 hex 22222222222323232323232324242424 L9D80 hex 24242425252525252525262626262626 hex 26272727272727270000000000000000 L9DA0 hex 8182848890A0C08182848890A0C08182 hex 848890A0C08182848890A0C081828488 hex 90A0C08182848890A0C08182848890A0 hex C08182848890A0C08182848890A0C081 hex 82848890A0C08182848890A0C0818284 hex 8890A0C08182848890A0C08182848890 hex A0C08182848890A0C08182848890A0C0 hex 8182848890A0C08182848890A0C08182 hex 848890A0C08182848890A0C081828488 hex 90A0C08182848890A0C08182848890A0 hex C08182848890A0C08182848890A0C081 hex 82848890A0C08182848890A0C0818284 hex 8890A0C08182848890A0C08182848890 hex A0C08182848890A0C08182848890A0C0 hex 8182848890A0C08182848890A0C08182 hex 848890A0C08182848890A0C081828488 L9EA0 hex 90A0C08182848890A0C08182848890A0 hex C08182848890A0C00000000000000000 L9EC0 hex 00010203040506000102030405060001 hex 02030405060001020304050600010203 hex 04050600010203040506000102030405 hex 06000102030405060001020304050600 hex 01020304050600010203040506000102 hex 03040506000102030405060001020304 hex 05060001020304050600010203040506 hex 00010203040506000102030405060001 hex 02030405060001020304050600010203 hex 04050600010203040506000102030405 hex 06000102030405060001020304050600 hex 01020304050600010203040506000102 hex 03040506000102030405060001020304 hex 05060001020304050600010203040506 hex 00010203040506000102030405060001 hex 02030405060001020304050600010203 L9FC0 hex 04050600010203040506000102030405 hex 06000102030405060000000000000000 DS \ *--- Entry point LA000 LDA #$00 ; A000 STA fgINPUT STA $60 STA $61 STA $62 STA $63 JSR LBF37 JSR LADE1 JSR LBF61 LDA #HGR1 STA $58+1 LDX #$40 LDY #$00 TYA LA022 STA ($58),Y INY BNE LA022 INC $58+1 DEX BNE LA022 LDA TXTCLR LDA HIRES LDA MIXCLR LDA TXTPAGE1 LDA #$00 STA $B7 STA $0A STA $0C LDA #$A0 STA $0B STA $0D LDA #$C0 STA $10 LDA #$10 STA $6A JSR LB3C0 LDX #$F8 ; Copy sprites LA053 LDA LA65F,X * STA L91FF,X lda $91FF,X ; patch patch DEX BNE LA053 LDA #$00 STA $D6 LDA #$38 ; LOGO? STA $D7 LDY #$20 LA066 LDA LA769,Y STA L7800-1,Y DEY BNE LA066 LSR LA76E LDA LA76E NOP NOP LDY #$AB STY $FF LDY #$D8 STY $FE NOP NOP LDY #$B6 STY $FF LDY #$41 STY $FE NOP NOP LA08B JSR LA447 LDA #$00 STA $86 STA $80 STA $90 STA $91 STA $92 STA $93 STA $94 STA $95 STA $96 STA $8C STA $81 STA $85 STA $83 STA $84 STA $D201 ; souvenir STA $D203 ; from STA $D205 ; another STA $D207 ; 8-bit STA $D208 ; computer... POKEY LDA #$07 STA $99 LDY #$04 LDA L7800,Y STA $58 STA $64 INY LDA L7800,Y STA $58+1 STA $64+1 JSR LB3C0 LDA $60 STA $E0 LDA $61 STA $E1 LDA $62 STA $E2 LDA $63 STA $E3 JSR LA536 JSR LA4A1 JSR LAEC9 JSR LBC22 LDX #$0C LDY #$00 LA0F3 DEY BNE LA0F3 DEX BNE LA0F3 JSR LAEC9 LDA #$06 STA $99 JSR LA198 LDA #$00 STA $8F STA $BC STA $BD STA $BE STA $BF LA10F JSR LAEC9 JSR LBC22 LDX #$06 LDY #$00 LA119 DEY BNE LA119 DEX BNE LA119 JSR LAEC9 LDA KBD BIT KBDSTROBE CMP #$8D ; RET = play BEQ LA13E LDX $BC BEQ LA137 CMP #"1" ; 1 player mode BEQ LA145 * JMP (L0408) jmp LA10F LA137 CMP #"2" ; 2 player mode BEQ LA145 * JMP (L040A) jmp LA10F LA13E LDA #$06 STA $99 * JMP (L040C) jmp LA1D3 LA145 LDA #$05 ; Switch player mode STA $99 LDA $8F EOR #$01 STA $BD STA $8F STA $BC JSR LA159 * JMP (L040E) jmp LA10F LA159 LDA $BC BEQ LA198 LDY #$24 STY $A4 LDA #>LAC50 STA $A0+1 LDA #LAAD0 STA $A0+1 LDA #LAC20 STA $A0+1 LDA #LAA70 STA $A0+1 LDA #LAC80 STA $A0+1 LDA #LA8EA ; PLAYER TWO UP STA $A0+1 LDA #LA8F9 ; PLAYER ONE UP STA $A0+1 LDA #LA8DC ; EMPTY STRING STA $A0+1 LDA #LA78A ; CENTIPEDE STA $A0+1 LDA #LA7D3 STA $A0+1 LDA #L0800 STA $A0+1 LDA #L1020 STA $A2+1 LDX #$03 LA5BE INC $A0+1 ; 8_9_A_B INC $A2+1 ; 10_11_12_13 DEX BNE LA5BE LDX #$03 LDY #$C0 LA5C9 LDA ($A0),Y ; BC0 PHA LDA ($A2),Y ; 13E0 STA ($A0),Y PLA STA ($A2),Y DEY BNE LA5C9 DEC $A2+1 DEC $A0+1 DEX BNE LA5C9 RTS LA5DE LDY #$00 STY $CB LA5E2 LDX #$00 LA5E4 STX $CA LDY $CB JSR LB3D8 LDY $CA LDA ($64),Y LDX #$64 JSR LBE71 LDX $CA INX CPX #$28 BNE LA5E4 LDY $CB INY STY $CB CPY #$18 BNE LA5E2 RTS LA605 LDA L02FC CMP #$21 BNE LA635 INC $8C LDA #$00 STA $D207 STA $D205 STA $D203 STA $D201 STA $96 LDA #$FF STA L02FC STA $81 LA625 LDA L02FC CMP #$21 BNE LA625 LDA #$FF STA L02FC INC $81 DEC $8C LA635 RTS DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $26 DB $84 DB $3A DB $A6 LA654 DB $44 ; A bug LA655 DB $D4 ; The real address DB $64 DB $E8 DB $26 DB $84 DB $3A DB $A6 DB $44 DB $D4 DB $64 LA65F DB $E8 *--- Sprites DB $08 DB $2A DB $2A DB $2A DB $08 DB $08 DB $08 DB $00 DB $08 DB $2A DB $2A DB $2A DB $08 DB $00 DB $00 DB $00 DB $08 DB $2A DB $2A DB $22 DB $00 DB $00 DB $00 DB $00 DB $08 DB $2A DB $28 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $10 DB $54 DB $54 DB $54 DB $10 DB $10 DB $10 DB $00 DB $10 DB $54 DB $54 DB $54 DB $10 DB $00 DB $00 DB $00 DB $10 DB $54 DB $54 DB $44 DB $00 DB $00 DB $00 DB $00 DB $10 DB $54 DB $50 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $81 DB $84 DB $A8 DB $AA DB $AA DB $A8 DB $84 DB $81 DB $83 DB $8C DB $9E DB $BF DB $BF DB $9E DB $8C DB $83 DB $90 DB $84 DB $8A DB $AA DB $AA DB $8A DB $84 DB $90 DB $E0 DB $98 DB $BA DB $FE DB $FE DB $BA DB $98 DB $E0 DB $90 DB $84 DB $A9 DB $AA DB $AA DB $A8 DB $84 DB $90 DB $B0 DB $8C DB $9E DB $BF DB $BF DB $9E DB $8C DB $B0 DB $81 DB $84 DB $8A DB $AA DB $AA DB $8A DB $84 DB $81 DB $86 DB $98 DB $BA DB $FE DB $FE DB $BA DB $98 DB $86 DB $7E DB $66 DB $66 DB $66 DB $66 DB $66 DB $7E DB $00 DB $18 DB $18 DB $18 DB $18 DB $18 DB $18 DB $18 DB $00 DB $7E DB $60 DB $60 DB $7E DB $06 DB $06 DB $7E DB $00 DB $7E DB $60 DB $60 DB $7E DB $60 DB $60 DB $7E DB $00 DB $66 DB $66 DB $66 DB $7E DB $60 DB $60 DB $60 DB $00 DB $7E DB $06 DB $06 DB $7E DB $60 DB $60 DB $7E DB $00 DB $06 DB $06 DB $06 DB $7E DB $66 DB $66 DB $7E DB $00 DB $7E DB $60 DB $60 DB $60 DB $60 DB $60 DB $60 DB $00 DB $7E DB $66 DB $66 DB $7E DB $66 DB $66 DB $7E DB $00 DB $7E DB $66 DB $66 DB $7E DB $60 DB $60 DB $60 DB $00 DB $88 DB $88 DB $88 DB $AA DB $AA DB $AA DB $AA DB $AA DB $88 DB $88 DB $88 DB $AA DB $AA DB $AA DB $AA DB $AA DB $88 DB $88 DB $88 DB $AA DB $AA DB $AA DB $AA DB $AA *--- From $A660 to $A200 until $A2F7 LA758 DB $10 DB $10 DB $10 DB $10 DB $7C DB $7C DB $38 DB $38 LA760 DB $52 DB $53 DB $54 DB $55 LA764 DB $56 DB $57 DB $58 DB $59 DB $5A LA769 DB $5B DB $70 DB $70 DB $70 DB $44 LA76E DB $00 DB $08 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $04 DB $41 DB $00 DB $38 LA78A DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $23 ; CENTIPEDE DB $25 DB $2E DB $34 DB $29 DB $30 DB $25 DB $24 DB $25 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $82 DB $88 DB $D4 DB $D5 DB $D5 DB $D4 DB $88 DB $82 DB $83 DB $8C DB $9E DB $BF DB $BF DB $9E DB $8C DB $83 DB $A0 DB $88 DB $95 DB $D5 DB $D5 DB $95 DB $88 DB $A0 DB $E0 DB $98 DB $BA DB $FE DB $FE DB $BA DB $98 DB $E0 DB $A0 DB $88 DB $D4 LA7D3 DB $D5 DB $D5 DB $D4 DB $88 DB $A0 DB $B0 DB $8C DB $9E DB $BF DB $BF DB $9E DB $8C DB $B0 DB $82 DB $88 DB $95 DB $D5 DB $D5 DB $95 DB $88 DB $82 DB $86 DB $98 DB $BA DB $FE DB $FE DB $BA DB $98 DB $86 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $30 ; PRESS DB $32 DB $25 DB $33 DB $33 DB $00 DB $33 ; SPACE DB $30 DB $21 DB $23 DB $25 DB $00 DB $00 DB $00 DB $00 DB $00 DB $2F ; ONE DB $2E DB $25 DB $00 DB $30 ; PLAYER DB $2C DB $21 DB $39 DB $25 DB $32 DB $00 DB $27 ; GAME DB $21 DB $2D DB $25 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $30 ; PRESS DB $32 DB $25 DB $33 DB $33 DB $00 DB $02 ; "2" DB $12 DB $02 DB $00 DB $00 DB $26 ; FOR DB $2F DB $32 DB $00 DB $34 ; TWO DB $37 DB $2F DB $00 DB $30 ; PLAYERS DB $2C DB $21 DB $39 DB $25 DB $32 DB $33 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $30 ; PRESS DB $32 DB $25 DB $33 DB $33 DB $00 DB $32 ; RETURN DB $25 DB $34 DB $35 DB $32 DB $2E DB $00 DB $34 ; TO DB $2F DB $00 DB $30 ; PLAY DB $2C DB $21 DB $39 DB $00 DB $00 DB $00 DB $00 DB $00 DB $34 ; TWO DB $37 DB $2F DB $00 DB $30 ; PLAYER DB $2C DB $21 DB $39 DB $25 DB $32 DB $00 DB $27 ; GAME DB $21 DB $2D DB $25 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $30 ; PRESS DB $32 DB $25 DB $33 DB $33 DB $00 DB $02 ; "1" DB $11 DB $02 DB $00 DB $00 DB $26 ; FOR DB $2F DB $32 DB $00 DB $2F ; ONE DB $2E DB $25 DB $00 DB $30 ; PLAYER DB $2C DB $21 DB $39 DB $25 DB $32 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $30 ; PRESS DB $32 DB $25 DB $33 DB $33 DB $00 DB $32 ; RETURN DB $25 DB $34 DB $35 DB $32 DB $2E DB $00 DB $34 ; TO DB $2F DB $00 DB $30 ; PLAY DB $2C DB $21 DB $39 LA8DC DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 LA8EA DB $30 ; PLAYER TWO UP DB $2C DB $21 DB $39 DB $25 DB $32 DB $00 DB $34 DB $37 DB $2F DB $00 DB $35 DB $30 DB $00 DB $00 LA8F9 DB $30 ; PLAYER UP ONE DB $2C DB $21 DB $39 DB $25 DB $32 DB $00 DB $2F DB $2E DB $25 DB $00 DB $35 DB $30 DB $00 DB $00 DB $3C DB $7E DB $7E DB $FF DB $FF DB $7E DB $7E LA90F DB $3C DB $0A DB $05 DB $0F DB $0F DB $0E DB $0E DB $06 LA917 DB $00 DB $42 DB $DB DB $66 DB $3C DB $D8 DB $58 DB $78 LA91F DB $30 DB $21 DB $DB DB $66 DB $3C DB $1B DB $1A DB $1E LA927 DB $0C DB $22 DB $5D DB $1C DB $08 DB $1C DB $36 DB $5D DB $00 LA930 DB $E0 DB $A0 DB $A0 DB $A0 DB $E0 DB $00 DB $7F DB $54 DB $57 DB $54 DB $7F DB $00 DB $7D DB $55 DB $57 DB $55 DB $7F DB $00 DB $7F DB $55 DB $57 DB $54 DB $7C DB $00 DB $02 DB $BB DB $5A DB $30 DB $5F DB $EE DB $3D DB $A8 ASC 'COPYRIGHT 1982 ATARI, INC.' DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 LA970 DB $20 DB $00 DB $20 DB $00 DB $20 DB $00 DB $20 DB $00 DB $20 DB $00 DB $20 DB $00 DB $00 DB $00 DB $00 DB $00 LA980 LDA fgINPUT BEQ LA987 JMP LAA09 LA987 LDA KBD CMP #"K" BNE LA991 JMP LAA09 LA991 LDX $FA BNE LA9CF LDA $FB EOR whichDIR STA $FB JSR PREAD LDA $FB CPY #$A0 BCS LA9B4 CPY #$40 BCC LA9BE LDA $FB AND #$F3 STA $FB LDA #$00 STA whichDIR BEQ LA9C6 LA9B4 ORA #$08 STA $FB LDA #$08 STA whichDIR BNE LA9C6 LA9BE ORA #$04 STA $FB LDA #$04 STA whichDIR LA9C6 LDA $FA EOR #$01 STA $FA LDA $FB RTS LA9CF LDA $FB EOR $FD STA $FB JSR PREAD LDA $FB CPY #$A0 BCS LA9F8 CPY #$40 BCC LA9EE LDA $FB AND #$FC STA $FB LDA #$00 STA $FD BEQ LAA00 LA9EE ORA #$01 STA $FB LDA #$01 STA $FD BNE LAA00 LA9F8 ORA #$02 STA $FB LDA #$02 STA $FD LAA00 LDA $FA EOR #$01 STA $FA LDA $FB RTS LAA09 LDA KBD CMP #"K" ; K BEQ LAA3D CMP #"J" ; J BEQ LAA44 CMP #"A" BEQ LAA33 CMP #"Z" BEQ LAA38 CMP #$88 ; LEFT ARROW BEQ LAA2E CMP #$95 ; RIGHT ARROW BEQ LAA29 LDA #$00 STA whichDIR RTS LAA29 LDA #$08 ; go right STA whichDIR RTS LAA2E LDA #$04 ; go left STA whichDIR RTS LAA33 LDA #$01 ; go up STA whichDIR RTS LAA38 LDA #$02 ; go down STA whichDIR RTS LAA3D LDA #$01 STA fgINPUT LDA #$00 RTS LAA44 LDA #$00 STA fgINPUT RTS DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $01 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 LAA70 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $30 ; PRESS DB $32 DB $25 DB $33 DB $33 DB $00 DB $02 ; "2" DB $12 DB $02 DB $00 DB $26 ; FOR DB $2F DB $32 DB $00 DB $34 ; TWO DB $37 DB $2F DB $00 DB $30 ; PLAYER DB $2C DB $21 DB $39 DB $25 DB $32 DB $00 DB $27 ; GAME DB $21 DB $2D DB $25 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $08 ; (C) DB $23 DB $09 DB $11 ; 1983 DB $19 DB $18 DB $13 DB $00 DB $21 ; ATARI DB $34 DB $21 DB $32 DB $29 DB $00 DB $00 DB $00 DB $00 DB $21 ; ALL DB $2C DB $2C DB $00 DB $32 ; RIGHTS DB $29 DB $27 DB $28 DB $34 DB $33 DB $00 DB $32 ; RESERVED DB $25 DB $33 DB $25 DB $32 DB $36 DB $25 DB $24 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 LAAD0 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $30 ; PRESS DB $32 DB $25 DB $33 DB $33 DB $00 DB $02 ; "1" DB $11 DB $02 DB $00 DB $26 ; FOR DB $2F DB $32 DB $00 DB $2F ; ONE DB $2E DB $25 DB $00 DB $30 ; PLAYER DB $2C DB $21 DB $39 DB $25 DB $32 DB $00 DB $27 ; GAME DB $21 DB $2D DB $25 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $08 ; (C) DB $23 DB $09 DB $11 ; 1983 DB $19 DB $18 DB $13 DB $00 DB $21 ; ATARI DB $34 DB $21 DB $32 DB $29 DB $00 DB $00 DB $00 DB $00 DB $21 ; ALL DB $2C DB $2C DB $00 DB $32 ; RIGHTS DB $29 DB $27 DB $28 DB $34 DB $33 DB $00 DB $32 ; RESERVED DB $25 DB $33 DB $25 DB $32 DB $36 DB $25 DB $24 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $08 DB $09 DB $0A DB $0B DB $0C DB $0D DB $0E DB $0F DB $10 DB $11 DB $12 DB $13 DB $14 DB $15 DB $16 DB $17 DB $18 DB $19 DB $1A DB $1B DB $1C DB $1D DB $1E DB $1F DB $20 DB $21 DB $22 DB $23 DB $24 DB $25 DB $26 DB $27 DB $00 DB $01 DB $02 DB $03 DB $04 DB $05 DB $06 DB $07 DB $08 DB $09 DB $0A DB $0B DB $0C DB $0D DB $0E DB $0F LAB60 DB $70 DB $07 DB $7C DB $1F DB $7E DB $3F DB $7F DB $7F DB $7F DB $7F DB $7E DB $3F DB $7C DB $1F DB $70 DB $07 LAB70 DB $7C DB $00 DB $7E DB $01 DB $7B DB $03 DB $5F DB $03 DB $22 DB $01 DB $11 DB $01 DB $49 DB $00 DB $00 DB $00 LAB80 DB $0C DB $18 DB $4F DB $79 DB $3C DB $1E DB $7C DB $0F DB $47 DB $03 DB $4C DB $03 DB $78 DB $01 DB $70 DB $00 LAB90 DB $0C DB $18 DB $4F DB $79 DB $3C DB $1E DB $78 DB $07 DB $60 DB $71 DB $60 DB $19 DB $40 DB $0F DB $00 DB $07 LABA0 DB $00 DB $00 DB $00 DB $00 DB $02 DB $20 DB $45 DB $51 DB $68 DB $0B DB $70 DB $07 DB $56 DB $35 DB $68 DB $4B LABB0 DB $46 DB $31 DB $29 DB $4A DB $28 DB $4A DB $24 DB $4A DB $28 DB $4A DB $29 DB $4A DB $46 DB $31 DB $00 DB $00 LABC0 DB $46 DB $31 DB $29 DB $4A DB $21 DB $4A DB $27 DB $4A DB $29 DB $4A DB $29 DB $4A DB $46 DB $31 DB $00 DB $00 LABD0 DB $46 DB $31 DB $29 DB $4A DB $29 DB $4A DB $2E DB $4A DB $28 DB $4A DB $24 DB $4A DB $43 DB $31 DB $00 DB $00 LABE0 DB $20 DB $00 DB $70 DB $00 DB $2C DB $03 DB $7E DB $07 DB $04 DB $02 DB $78 DB $01 DB $78 DB $01 DB $20 DB $00 LABF0 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 LAC00 DB $06 DB $30 DB $09 DB $48 DB $10 DB $04 DB $52 DB $25 DB $65 DB $53 DB $74 DB $17 DB $58 DB $0D DB $60 DB $03 LAC10 DB $7C DB $00 DB $7E DB $01 DB $7B DB $03 DB $5F DB $03 DB $22 DB $01 DB $24 DB $01 DB $48 DB $02 DB $00 DB $00 LAC20 DB $2F DB $2E DB $25 DB $00 DB $30 DB $2C DB $21 DB $39 DB $25 DB $32 DB $00 DB $27 DB $21 DB $2D DB $25 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $32 DB $25 DB $34 DB $35 DB $32 DB $2E DB $00 DB $34 DB $2F DB $00 DB $30 DB $2C DB $21 DB $39 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 LAC50 DB $34 ; TWO DB $37 DB $2F DB $00 DB $30 ; PLAYER DB $2C DB $21 DB $39 DB $25 DB $32 DB $00 DB $27 ; GAME DB $21 DB $2D DB $25 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $32 ; RETURN DB $25 DB $34 DB $35 DB $32 DB $2E DB $00 DB $34 ; TO DB $2F DB $00 DB $30 ; PLAYER DB $2C DB $21 DB $39 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 LAC80 DB $00 DB $00 DB $27 ; GAME DB $21 DB $2D DB $25 DB $00 DB $2F ; OVER DB $35 DB $25 DB $32 DB $00 DB $00 DB $00 DB $00 DB $00 LAC90 LDA $58 PHA LDA $58+1 PHA LDA #HGR1 ; LOGO STA $58+1 LDX #$40 LDY #$00 TYA LACA3 STA ($58),Y INY BNE LACA3 INC $58+1 DEX BNE LACA3 PLA STA $58+1 PLA STA $58 RTS LACB4 LDA TXTPAGE2 LDA #HGR1 ; LOGO STA $02+1 LDA #>HGR2 ; LOGO STA $04+1 LDX #$20 LDY #$00 LACC9 LDA ($04),Y STA ($02),Y INY BNE LACC9 INC $02+1 INC $04+1 DEX BNE LACC9 LDA TXTPAGE1 RTS RTS LACDC LDA $08 PHA TXA PHA TYA PHA LDA #$00 STA $07 LDX $06 LDA L8F00,X SEC SBC #$26 ASL STA $06 ROL $07 LDA $08 SEC SBC #$20 STA $08 LDA $07 BEQ LAD0B LDY $06 LDA L9D80,Y STA $14 LDA L9FC0,Y BPL LAD15 LAD0B LDY $06 LDA L9C80,Y STA $14 LDA L9EC0,Y LAD15 CLC ADC #>L8000 ; LOGO STA LAD58+2 STA LAD5F+2 LDA $13 ASL TAY LDA LADB5,Y STA LAD52+1 LDA LADB5+1,Y STA LAD52+2 LDA #$08 STA $17 LDA $15 BEQ LAD89 LDA #$00 STA $16 LAD3A LDY $08 LDA L9B00,Y STA $02 LDA L9BC0,Y STA $02+1 LDA #$02 STA $1A LDA #$00 STA $18 LDX $16 LDY $14 LAD52 LDA L6000,X LAD55 AND #$7F TAX LAD58 LDA L6000,X ORA $18 STA $19 LAD5F LDA L6000+$80,X STA $18 LDA ($02),Y ORA $19 STA ($02),Y INY INC $16 LDX $16 DEC $1A BMI LAD7B BNE LAD52 DEC $16 LDA #$00 BEQ LAD55 LAD7B INC $08 DEC $17 BNE LAD3A PLA TAY PLA TAX PLA STA $08 RTS LAD89 LDX #$03 LDY $08 LDA L9B00,Y STA $02 STA $04 LDA L9BC0,Y STA $02+1 EOR #$60 STA $04+1 LDY $14 LAD9F LDA ($04),Y STA ($02),Y INY DEX BNE LAD9F INC $08 DEC $17 BNE LAD89 PLA TAY PLA TAX PLA STA $08 RTS LADB5 DA LABE0 DA LAB70 DA LABA0 DA LAB80 DA LA970 DA LAB90 DA LABB0 DA LABF0 DA LABB0 DA LABB0 DA LABB0 DA LABB0 DA LABC0 DA LABC0 DA LABC0 DA LABC0 DA LABC0 DA LABC0 DA LABD0 DA LABD0 DA LAC00 DA LAC10 LADE1 LDA #L8000 STA $02+1 STA $04+1 LDA #$01 STA $09 LADF3 LDY #$00 LADF5 TYA STA $06 LDA #$00 STA $07 LDX $09 LADFE ASL $06 ROL $07 DEX BNE LADFE LSR $06 LDA $06 STA ($02),Y LDA $07 STA ($04),Y INY CPY #$80 BNE LADF5 INC $02+1 INC $04+1 INC $09 LDA $09 CMP #$09 BNE LADF3 LDA #L8F00 ; LOGO STA $02+1 LDY #$00 STY $09 LAE2C LDX #$00 LAE2E LDA $09 STA ($02),Y INY BEQ LAE3E INX CPX #$07 BEQ LAE2C INC $09 BNE LAE2E LAE3E RTS LDA $BB SEC SBC #$10 STA $BB BCC LAE4C CMP #$04 BCS LAE50 LAE4C LDA #$04 STA $BB LAE50 RTS *------------------------------- * * $A0: source pointer * $A2: dest pointer (storage area) * $A4: length * $A5..$A6: offset * LAE51 LDA #>L0800 CLC ADC $A6 STA $A2+1 LDA #L8B00 ; LOGO STA $11+1 LDA #$00 STA $09 LDA ($11),Y STA $06 LDA $11+1 PHA CLC ADC #$04 ; 8B+4 = 8F STA $11+1 LDA ($11),Y STA $08 PLA STA $11+1 PLA PHA ASL ROL $09 ASL ROL $09 ASL ROL $09 STA LBF08+1 LDA $09 CLC ADC #>L9000 ; LOGO STA LBF08+2 PLA CMP #$40 ; ALL CHARS BCC LBEED CMP #$45 ; GREEN CACTUS BCC LBEE5 CMP #$4A ; PINK CACTUS BCC LBEDC CMP #$52 ; CENTIPEDE SPRITES BCS LBEED LDA $06 LSR BCC LBEED LDA LBF08+1 CLC ADC #L1560 ; LOGO STA LBF08+2 BNE LBEED LBEDC LDA $06 LSR BCC LBEED LDA #$4A ; LSR BNE LBEEF LBEE5 LDA $06 LSR BCC LBEED LDA #$0A ; ASL DB $2C LBEED LDA #$EA ; NOP LBEEF STA LBF0B LDX #$00 LBEF4 LDY $08 LDA L9B00,Y STA $02 STA $04 LDA L9BC0,Y STA $02+1 EOR #$60 STA $04+1 LDY $06 LBF08 LDA $1000,X LBF0B LSR STA ($02),Y STA ($04),Y INC $08 INX CPX #$08 BNE LBEF4 LDY $0F ; RESTORE Y RTS LBF1A INC $F6 DEC $F7 LDA $F6 ROL ROL ROL ROL STA $00 LDA $F7 ROR ROR ROR ROR EOR $00 ADC $F7 ADC $00 BCC LBF36 DEC $F7 LBF36 RTS LBF37 LDA #$00 STA $C8 STA $C9 LDX #$60 LDA #$00 LBF41 STA $00,X INX BNE LBF41 LDX #$0F LBF48 LDA LBF51,X STA $70,X DEX BPL LBF48 RTS LBF51 DA L9B00 DA L9BC0 DA L9C80 DA L9DA0 DA L9EC0 DA L9D80 DA L9EA0 DA L9FC0 LBF61 LDA #$00 STA $FA STA $FB STA whichDIR STA $FD STA $D0 STA $D1 RTS DB $58 DB $0D DB $03 DB $AD DB $00 DB $0D DB $03 DB $A2 DB $00 DB $0D DB $03 DB $AC DB $00 DB $0D DB $03 DB $B1 LBF80 STA LBF9A STY LBF99 STX LBF98 LDA #$00 STA LBF9B SEC INC LBF99 LDX LBF9A JMP LBFC7 LBF98 DB $00 LBF99 DB $00 LBF9A DB $00 LBF9B DB $00 LBF9C DB $00 LBF9D DB $00 LBF9E PHP LDA LBF9B BEQ LBFBB DEY BNE LBFBB TAY BMI LBFB5 LDA LBF9A BEQ LBFBB DEC LBF9A TYA BNE LBFBB LBFB5 INC LBF9A AND #$7F TAY LBFBB PLP DEC LBF98 BNE LBFC7 DEC LBF99 BNE LBFC7 RTS LBFC7 ROL LBF9C ROL LBF9D TXA BEQ LBFD1 DEX LBFD1 BNE LBFDB BCC LBFDB LDA SPKR LDX LBF9A LBFDB ROR ROR ROR EOR LBF9D ASL ASL ASL JMP LBF9E RTS DB $00 DB $00 DB $4C DB $39 DB $41 DB $0D DB $08 DB $CB DB $01 DB $4C DB $42 DB $33 DB $44 DB $38 DB $0D DB $08 DB $87 DB $01 DB $4C DB $41 DB $46 DB $34 DB $37 DB $0D