home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-01-01 | 32.3 KB | 1,897 lines |
-
-
-
- ;---------------------------------------
- ;
- ; - I M P E R O I D V 8 -
- ;
- ; - by Hannes Sommer -
- ;
- ; - (c) Markt & Technik '94 -
- ;
- ;---------------------------------------
-
- shlo = $50
- shhi = $51
- elo = $fa
- ehi = $fb
- v = 53248
- be = $47f8
- bord = 703
- score = $4400+970
- lifes = $4400+996
-
- *= $8000
-
- jmp title
-
- cols .byte 0,0,0,0,0,0,0,0
- .byte 0,0,0,0,0,0,0,0
- .byte 0,9,8,10,15,7,1,1
- .byte 1,1,13,3,14,4,6,0
-
- .byte 0,0,0,0,0,0,0,0
- .byte 0,0,0,0,0,0,0,0
-
- ;------------ F L I - Logo -------------
-
- fli
- lda #56
- sta $d011
-
- inc fly1+1
- fly1 lda #0
- lsr a
- and #31
- tay
-
- ldx #0
- fli0 lda cols,y
- sta $50,x
- iny
- inx
- cpx #15
- bne fli0
- lda #0
- sta $5f
-
- lda #49
- fli1 cmp $d012
- bcs fli1
-
- ldx #3
- fli2 dex
- bne fli2
-
- lda #63
- ldx #8
- sta $d011
- stx $d018
- lda $5f
- sta $d020
- sta $d021
- lda #56
- ldx #24
- sta $d011
- stx $d018
- lda $5f
- sta $d020
- sta $d021
- lda #57
- ldx #40
- sta $d011
- stx $d018
- lda $5f
- sta $d020
- sta $d021
- lda #58
- ldx #56
- sta $d011
- stx $d018
- lda $5f
- sta $d020
- sta $d021
- lda #59
- ldx #72
- sta $d011
- stx $d018
- lda $50
- sta $d020
- sta $d021
- lda #60
- ldx #88
- sta $d011
- stx $d018
- lda $51
- sta $d020
- sta $d021
- lda #61
- ldx #104
- sta $d011
- stx $d018
- lda $52
- sta $d020
- sta $d021
- lda #62
- ldx #120
- sta $d011
- stx $d018
- lda $50
- sta $d020
- sta $d021
-
- lda #63 ;Line #2
- ldx #8
- sta $d011
- stx $d018
- lda $51
- sta $d020
- sta $d021
- lda #56
- ldx #24
- sta $d011
- stx $d018
- lda $52
- sta $d020
- sta $d021
- lda #57
- ldx #40
- sta $d011
- stx $d018
- lda $53
- sta $d020
- sta $d021
- lda #58
- ldx #56
- sta $d011
- stx $d018
- lda $50
- sta $d020
- sta $d021
- lda #59
- ldx #72
- sta $d011
- stx $d018
- lda $51
- sta $d020
- sta $d021
- lda #60
- ldx #88
- sta $d011
- stx $d018
- lda $52
- sta $d020
- sta $d021
- lda #61
- ldx #104
- sta $d011
- stx $d018
- lda $53
- sta $d020
- sta $d021
- lda #62
- ldx #120
- sta $d011
- stx $d018
- lda $54
- sta $d020
- sta $d021
-
- lda #63 ;Line #3
- ldx #8
- sta $d011
- stx $d018
- lda $55
- sta $d020
- sta $d021
- lda #56
- ldx #24
- sta $d011
- stx $d018
- lda $50
- sta $d020
- sta $d021
- lda #57
- ldx #40
- sta $d011
- stx $d018
- lda $51
- sta $d020
- sta $d021
- lda #58
- ldx #56
- sta $d011
- stx $d018
- lda $52
- sta $d020
- sta $d021
- lda #59
- ldx #72
- sta $d011
- stx $d018
- lda $53
- sta $d020
- sta $d021
- lda #60
- ldx #88
- sta $d011
- stx $d018
- lda $54
- sta $d020
- sta $d021
- lda #61
- ldx #104
- sta $d011
- stx $d018
- lda $55
- sta $d020
- sta $d021
- lda #62
- ldx #120
- sta $d011
- stx $d018
- lda $56
- sta $d020
- sta $d021
-
- lda #63 ;Line #4
- ldx #8
- sta $d011
- stx $d018
- lda $57
- sta $d020
- sta $d021
- lda #56
- ldx #24
- sta $d011
- stx $d018
- lda $50
- sta $d020
- sta $d021
- lda #57
- ldx #40
- sta $d011
- stx $d018
- lda $51
- sta $d020
- sta $d021
- lda #58
- ldx #56
- sta $d011
- stx $d018
- lda $52
- sta $d020
- sta $d021
- lda #59
- ldx #72
- sta $d011
- stx $d018
- lda $53
- sta $d020
- sta $d021
- lda #60
- ldx #88
- sta $d011
- stx $d018
- lda $54
- sta $d020
- sta $d021
- lda #61
- ldx #104
- sta $d011
- stx $d018
- lda $55
- sta $d020
- sta $d021
- lda #62
- ldx #120
- sta $d011
- stx $d018
- lda $56
- sta $d020
- sta $d021
-
- lda #63 ;Line #5
- ldx #8
- sta $d011
- stx $d018
- lda $57
- sta $d020
- sta $d021
- lda #56
- ldx #24
- sta $d011
- stx $d018
- lda $58
- sta $d020
- sta $d021
- lda #57
- ldx #40
- sta $d011
- stx $d018
- lda $59
- sta $d020
- sta $d021
- lda #58
- ldx #56
- sta $d011
- stx $d018
- lda $52
- sta $d020
- sta $d021
- lda #59
- ldx #72
- sta $d011
- stx $d018
- lda $53
- sta $d020
- sta $d021
- lda #60
- ldx #88
- sta $d011
- stx $d018
- lda $54
- sta $d020
- sta $d021
- lda #61
- ldx #104
- sta $d011
- stx $d018
- lda $55
- sta $d020
- sta $d021
- lda #62
- ldx #120
- sta $d011
- stx $d018
- lda $56
- sta $d020
- sta $d021
-
- lda #63 ;Line #6
- ldx #8
- sta $d011
- stx $d018
- lda $57
- sta $d020
- sta $d021
- lda #56
- ldx #24
- sta $d011
- stx $d018
- lda $58
- sta $d020
- sta $d021
- lda #57
- ldx #40
- sta $d011
- stx $d018
- lda $59
- sta $d020
- sta $d021
- lda #58
- ldx #56
- sta $d011
- stx $d018
- lda $54
- sta $d020
- sta $d021
- lda #59
- ldx #72
- sta $d011
- stx $d018
- lda $55
- sta $d020
- sta $d021
- lda #60
- ldx #88
- sta $d011
- stx $d018
- lda $56
- sta $d020
- sta $d021
- lda #61
- ldx #104
- sta $d011
- stx $d018
- lda $57
- sta $d020
- sta $d021
- lda #62
- ldx #120
- sta $d011
- stx $d018
- lda $58
- sta $d020
- sta $d021
-
- lda #63 ;Line #7
- ldx #8
- sta $d011
- stx $d018
- lda $59
- sta $d020
- sta $d021
- lda #56
- ldx #24
- sta $d011
- stx $d018
- lda $56
- sta $d020
- sta $d021
- lda #57
- ldx #40
- sta $d011
- stx $d018
- lda $57
- sta $d020
- sta $d021
- lda #58
- ldx #56
- sta $d011
- stx $d018
- lda $58
- sta $d020
- sta $d021
- lda #59
- ldx #72
- sta $d011
- stx $d018
- lda $59
- sta $d020
- sta $d021
- lda #60
- ldx #88
- sta $d011
- stx $d018
- lda $57
- sta $d020
- sta $d021
- lda #61
- ldx #104
- sta $d011
- stx $d018
- lda $58
- sta $d020
- sta $d021
- lda #62
- ldx #120
- sta $d011
- stx $d018
- lda $59
- sta $d020
- sta $d021
- lda #63
- ldx #12
- sta $d011
- stx $d018
- lda #0
- sta $d020
- sta $d021
- lda #88
- sta $d011
-
- rts
-
-
-
-
-
- ;--------------- G A M E ---------------
-
-
- game
- lda #64
- sta $d011
- sta $d020
- sta $d021
-
- ldx #0
- in1 lda #255
- sta $4000,x
- lda #0
- sta $d800,x
- sta $d900,x
- sta $da00,x
- sta $db00,x
- dex
- bne in1
-
- ldx #6
- lda #255
- in2 sta backxh,x
- sta packxh,x
- dex
- bpl in2
-
- lda #$44 ;Aufbau des
- sta in6+2 ;Sterne-Himmels
- ldx #0
- stx in6+1
- ldy #0
- in5 tya
- clc
- adc starl,x
- and #31
- in6 sta $4400,y
- iny
- cpy #40
- bne in5
- lda in6+1
- clc
- adc #40
- sta in6+1
- bcc in7
- inc in6+2
- in7 inx
- cpx #24
- bne in5-2
-
- ldx #39
- in8 lda scoretext,x
- sta $4400+960,x
- dex
- bpl in8
-
- ldx #7
- lda #0
- in9 sta x,x
- sta y,x
- dex
- bpl in9
-
- lda #0
- sta end+1
- sta backpoint
- sta packpoint
- sta backspr
- sta packspr
- sta shhi
- sta stop
- sta add
- sta gover
-
- lda #1
- sta t20+1
- sta t15+1
- lda #15
- sta t30+1
-
- lda #14 ;Player-Init
- sta c
- lda #48
- sta b
- lda #80
- sta x
- lda #140
- sta y
- lda #0
- sta xh
- sta shotz
- lda #96
- sta shotp
-
- lda #<enemies
- sta elo
- lda #>enemies
- sta ehi
- lda #20
- sta t51+1
-
- lda #0
- jsr $1000 ;Music-Init!
-
- sei ;Irq+Grafik-Modi
- lda #<irq
- sta $fffe
- lda #>irq
- sta $ffff
- lda #129
- sta $d01a
- lda #235
- sta $d012
- lda #27
- sta $d011
- lda #198
- sta $dd00
- lda #16
- sta $d018
- lda #200
- sta $d016
-
- cli
-
- s1
-
- end lda #0 ;Ende ?
- beq noend
- lda #64
- sta $d011
- sta $d021
- sei
- jmp title
- noend
- jmp s1
-
-
- starl .byte 0,5,20,13,28
- .byte 14,3,9,23,18
- .byte 4,10,21,8,27
- .byte 11,2,26,15,6
- .byte 24,1,16,29,7
-
-
- nmi inc end+1 ;*** NMI ***
- rti
-
-
- irq pha ;*** IRQ ***
- txa
- pha
- tya
- pha
- lda $d019
- sta $d019
- bmi t1
- lda $dc0d
- cli
- irqend pla
- tay
- pla
- tax
- pla
- rti
-
- t1
- inc bord
-
- jsr $9d00 ;Sound-Call #1
-
- inc bord
-
- ldx #255
- lda flash
- beq tt1
- dec flash
- and #1
- bne tt1
- dex
- tt1 stx v+21
- stx v+28
- lda #11
- sta v+37
- lda #1
- sta v+38
- lda v+30
- sta spkoll
- lda #0
- sta v+30
-
- lda $dc01 ;Run/Stop-Taste ?
- and #128
- beq t2
- lda #0
- sta t2+1
- beq t3
- t2 lda #0
- bne t3
- inc t2+1
- lda stop
- eor #255
- sta stop
- t3
- lda #255
- sta $dc02
- lda #$37
- sta 1
- lda #0
- sta 198
- sta 631
- jsr $ea87 ;* Tastatur! *
- lda #$35
- sta 1
- lda 631
- cmp #"+" ;+
- bne taste1
- jsr $9d0c
- lda #98
- sta shotp
- bne taste3
- taste1 cmp #"-" ;-
- bne taste2
- jsr $9d0c
- lda #96
- sta shotp
- bne taste3
- taste2 cmp #49 ;1-4
- bcc taste3
- cmp #53
- bcs taste3
- sec
- sbc #49
- sta shotz
- jsr $9d0c
- taste3
- inc bord
-
- lda stop ;Run/Stop-Mode!
- beq nostop1
-
- t4 lda $d011
- bpl t4
- lda flash
- beq tostop1
- ora #2
- sta flash
- tostop1 jmp stop1
- nostop1
- ldx #15
- t5 lda starp,x ;Star-moving!
- and #248
- sta t6+1
- txa
- and #7
- tay
- lda #255
- t6 sta $4000,y
- lda starp,x
- sec
- sbc stars,x
- sta starp,x
- and #248
- sta t7+1
- lda starp,x
- and #7
- sta tt7+1
- tt7 lda und
- t7 sta $4000,y
- dex
- bpl t5
-
- inc t8+1 ;Star-Flashing!
- t8 lda #0
- lsr a
- and #15
- tax
- lda stflash,x
- sta $d021
-
- inc bord
-
- ldx #0 ;* Shot moving! *
- shot1 lda shhi,x
- beq shot9
- lda shsave,x
- sta (shlo,x)
- inc shlo,x
- bne shot3
- inc shhi,x
- shot3 lda shsave+1,x
- sta (shlo,x)
-
- lda shix,x
- clc
- adc #4
- sta shix,x
- cmp #160
- bcc shot5
- lda #0
- sta shhi,x
- beq shot9
- shot5
- lda shsave+1,x
- sta shsave,x
- lda shlo,x
- sta $fe
- lda shhi,x
- sta $ff
- ldy #0
- lda shotp
- sta ($fe),y
- iny
- lda ($fe),y
- sta shsave+1,x
- lda shotp
- clc
- adc #1
- sta ($fe),y
- shot9 inx
- inx
- cpx #8
- beq shot10
- jmp shot1
- shot10
- inc bord
-
- lda b
- cmp #44
- bcs t10
- jmp t18
- t10 lda $dc00 ;*Joystick-Control!*
- sta joyst
- and #1
- bne t11
- lda y
- cmp #52
- bcc t12
- sbc #2
- sta y
- t11 lda joyst
- and #2
- bne t12
- lda y
- cmp #224
- bcs t12
- adc #2
- sta y
- t12 lda joyst
- and #4
- bne t13
- lda ix
- cmp #13
- bcc t14
- lda x
- sbc #2
- sta x
- bcs t14
- dec xh
- t13 lda joyst
- and #8
- bne t14
- lda ix
- cmp #160
- bcs t14
- lda x
- adc #2
- sta x
- bcc t14
- inc xh
- t14 lda joyst ;Fire-Button!
- and #16
- beq t15
- lda #0
- sta t15+1
- to18 jmp t18
- t15 lda #0
- bne to18
- ldx #0
- lda shhi
- beq t16
- ldy shotz
- beq to18
- ldx #2
- lda shhi+2
- beq t16
- cpy #2
- bcc to18
- ldx #4
- lda shhi+4
- beq t16
- cpy #3
- bcc to18
- ldx #6
- lda shhi+6
- beq t16
- jmp t18
-
- t16 inc t15+1
- stx t17+1
- ldx ix
- ldy y
- jsr charpos
- t17 ldx #0
- lda $fe
- sta shlo,x
- lda $ff
- sta shhi,x
- lda ($fe),y
- sta shsave,x
- lda shotp
- sta ($fe),y
- iny
- lda ($fe),y
- sta shsave+1,x
- lda shotp
- clc
- adc #1
- sta ($fe),y
- lda ix
- sta shix,x
- lda y
- sta shy,x
- jsr $9d03 ;Lazer-Sound!
- t18
- lda x ;* Player-Sprite! *
- sta v
- lda y
- sta v+1
- lda xh
- sta v+16
- lda b
- sta be
- lda c
- sta v+39
-
-
- inc bord
-
-
- dec t20+1
- t20 lda #1 ;* New Back-Sprites *
- bne t22-2
- ldx backpoint
- ldy backspr
- lda backtime,x
- bne t21
- ldx #0
- stx backpoint
- lda backtime,x
- t21 sta t20+1
- lda backbdat,x
- sta backb,y
- lda #84
- sta backx,y
- lda #1
- sta backxh,y
- inc backpoint
- inc backspr
- lda backspr
- cmp #7
- bne t22-2
- lda #0
- sta backspr
-
- ldx #6
- t22 lda backx,x ;Back X-moving!
- sec
- sbc #4
- sta backx,x
- bcs t23
- dec backxh,x
- t23 dex
- bpl t22
-
- stop1 ldx #6
- tt24 lda backxh,x ;Back to Sprites!
- bmi t25
- beq t24
- lda v+16
- ora oder+1,x
- sta v+16
- t24 ldy mal2,x
- lda backx,x
- sta v+2,y
- lda #50
- sta v+3,y
- lda backb,x
- sta be+1,x
- lda #15
- sta v+40,x
- t25 dex
- bpl tt24
-
- lda stop
- beq nostop2
- jmp stop2
- nostop2
-
- dec t30+1
- t30 lda #1 ;* New Pack-Sprites *
- bne t32-2
- ldx packpoint
- ldy packspr
- lda packtime,x
- bne t31
- ldx #0
- stx packpoint
- lda packtime,x
- t31 sta t30+1
- lda packbdat,x
- sta packb,y
- lda #84
- sta packx,y
- lda #1
- sta packxh,y
- inc packpoint
- inc packspr
- lda packspr
- cmp #7
- bne t32-2
- lda #0
- sta packspr
-
- ldx #6
- t32 lda packx,x ;Back X-moving!
- sec
- sbc #4
- sta packx,x
- bcs t33
- dec packxh,x
- t33 dex
- bpl t32
-
- inc bord
-
- t40 lda #0 ;* 1/3-Action *
- bne t50
-
- lda b ;Ship circling
- cmp #44 ; & exploding!
- bcs tt40
- dec b
- lda b
- cmp #32
- bne t41
- lda lifes
- cmp #48
- bne tr40
- inc b
- lda #0
- sta x
- sta xh
- lda gover
- bne t41
- lda #1
- jsr $1000 ;Game-Over-Jingle!
- lda #110
- sta gover
- bne t41
- tr40 dec lifes
- lda #48
- sta b
- lda #14
- sta c
- lda #200
- sta flash
- bne t41
- tt40 inc b
- lda b
- cmp #56
- bne t41
- lda #48
- sta b
- t41
- ldx #7
- t42 lda b,x ;Blocks-Anim & Explo!
- cmp #48
- bcc t44
- inc b,x
- lda b,x
- and #7
- ora #64
- sta b,x
- t43 dex
- bne t42
- beq t45
- t44 cmp #32
- beq t43
- dec b,x
- dex
- bne t42
- t45
-
- jmp t70
-
-
- t50 cmp #1 ;* 2/3-Action *
- beq tt50
- jmp t60
- tt50
- dec t51+1
- t51 lda #20 ;Get Enemies!
- bne t55
- ldy #0
- lda (elo),y ;1.Sprite-Nr
- cmp #255
- bne tt51
- lda #<enemies
- sta elo
- lda #>enemies
- sta ehi
- lda (elo),y
- tt51 tax
- iny
- lda #0
- sta xh,x
- sta mirrx,x
- sta mirry,x
- sta wieder,x
- sta count,x
- lda (elo),y ;2.X-Pos
- sta ix,x
- asl a
- sta x,x
- bcc t52
- inc xh,x
- t52 iny
- lda (elo),y ;3.Y-Pos
- clc
- adc #110
- sta y,x
- iny
- lda (elo),y ;4.Block
- sta b,x
- iny
- lda (elo),y ;5.Colour
- sta c,x
- and #128
- beq t53
- inc mirrx,x ;& Xmirror
- t53 lda (elo),y
- and #64
- beq t54
- inc mirry,x ;& Ymirror
- t54 iny
- lda (elo),y ;6.Movement
- sta point,x
- iny
- lda (elo),y ;7.Delay
- sta t51+1
- lda elo
- clc
- adc #7
- sta elo
- bcc t55
- inc ehi
- t55
- lda t51+1
- cmp #10
- bcc t57
- ldx #7
- t56 lda b,x
- cmp #48
- bcs t57
- dex
- bne t56
- lda #8
- sta t51+1
- t57
-
-
- jmp t70
-
-
- t60 lda #255 ;* 3/3-Action *
- sta t40+1
-
- lda add ;* Scoring! *
- beq t61
- dec add
- ldx #58
- ldy #48
- inc score+4
- cpx score+4
- bne t61
- sty score+4
- inc score+3
- cpx score+3
- bne t61
- sty score+3
- inc score+2
- cpx score+2
- bne t61
- sty score+2
- inc score+1
- jsr $9d0f ;extra-life!
- inc lifes
- cpx score+1
- bne t61
- sty score+1
- inc score
- cpx score
- bne t61
- sty score
- t61
- lda gover ;Game Over ?
- beq nogover
- dec gover
- bne nogover
- inc end+1
- nogover
-
- t70 inc t40+1
-
- inc bord
-
- ;----------- Move Enemies! -------------
-
- ldx #7
- m1 lda y,x
- beq tm20
- lda b,x
- cmp #48
- bcc tm20
- lda wait,x
- beq m2
- dec wait,x
- tm20 jmp m20
- m2 lda count,x
- beq mm2
- jmp m10
- mm2 ldy point,x
- lda movedats,y
- cmp #128 ;Jumping
- beq m5 ; &
- cmp #129 ;Mirror?
- beq m4
- cmp #130
- bne m3
- lda mirrx,x
- eor #1
- sta mirrx,x
- jmp m5
- m3 cmp #131
- bne m7
- lda mirrx,x
- eor #1
- sta mirrx,x
- m4 lda mirry,x
- eor #1
- sta mirry,x
- m5 inc wieder,x
- lda wieder,x
- cmp movedats+1,y
- beq m6
- lda movedats+2,y
- sta point,x
- tay
- jmp m7
- m6 lda point,x
- clc
- adc #3
- sta point,x
- tay
- m7 lda mirry,x ;Move-Set!
- bne mm7
- lda movedats,y
- sta verti,x
- jmp m8
- mm7 lda #0
- sec
- sbc movedats,y
- sta verti,x
- m8 lda mirrx,x
- bne mm8
- lda movedats+1,y
- sta horiz,x
- jmp m9
- mm8 lda #0
- sec
- sbc movedats+1,y
- sta horiz,x
- m9 lda movedats+2,y
- sta count,x
- lda point,x
- clc
- adc #3
- sta point,x
-
- m10 dec count,x ;Koord.Moving!
- lda y,x
- clc
- adc verti,x
- sta y,x
- lda horiz,x
- bpl m11
- clc
- adc x,x
- sta x,x
- bcs m20
- bcc m12
- m11 clc
- adc x,x
- sta x,x
- bcc m20
- m12 lda xh,x
- eor #1
- sta xh,x
-
- m20 dex
- beq m21
- jmp m1
- m21
-
-
- ldx #7
- t80 lda x,x ;* x to ix *
- lsr a
- ldy xh,x
- beq t81
- ora #128
- t81 sta ix,x
- cmp #175
- bcc t82
- lda #0
- sta y,x
- t82 dex
- bpl t80
-
-
- stop2
-
- lda #0
- sta bord
-
- k1 lda $d011
- bmi k1
- lda #71
- k2 cmp $d012
- bcs k2
-
- inc bord
-
- lda v+16
- and #1
- sta v+16
- ldx #6
- k3 lda packxh,x ;Pack-Spr.oben!
- bmi k5
- beq k4
- lda v+16
- ora oder+1,x
- sta v+16
- k4 ldy mal2,x
- lda packx,x
- sta v+2,y
- lda #80
- sta v+3,y
- lda packb,x
- sta be+1,x
- lda #15
- sta v+40,x
- k5 dex
- bpl k3
-
- lda #0
- sta bord
-
- lda #101
- k20 cmp $d012
- bcs k20
- lda v+16
- and #1
- sta v+16
-
- inc bord
-
- ldx #7
- k21 ldy mal2,x ;* Enemy Sprites *
- lda x,x
- sta v,y
- lda y,x
- sta v+1,y
- lda b,x
- sta be,x
- lda c,x
- sta v+39,x
- lda xh,x
- beq k22
- lda v+16
- ora oder,x
- sta v+16
- k22 dex
- bne k21
-
- inc bord
-
- jsr $1003 ;Ingame-Music!
-
- inc bord
-
- jsr $9d00 ;Sound-Call #2
-
-
- ;-------- Kollisions-Abfragen ----------
-
- inc bord
-
- ldx #0
- ka30 lda shhi,x
- bne k30
- jmp k40
- k30 lda shy,x
- sec
- sbc #10
- sta k32+1
- adc #20
- sta k33+1
- lda shix,x
- sec
- sbc #8
- sta k34+1
- adc #8
- sta k35+1
-
- ldy #7
- k31 lda b,y
- cmp #64
- bcc k39
- lda y,y
- beq k39
- k32 cmp #0
- bcc k39
- k33 cmp #0
- bcs k39
- lda ix,y
- k34 cmp #0
- bcc k39
- k35 cmp #0
- bcs k39
-
- lda #12
- sta c,y
- lda #43
- sta b,y
- jsr $9d09 ;Explo-Sound!
- lda add
- clc
- adc #4
- sta add
- ldy #0
- lda shlo,x
- sta $fe
- lda shhi,x
- sta $ff
- lda shsave,x
- sta ($fe),y
- iny
- lda shsave+1,x
- sta ($fe),y
- lda #0
- sta shhi,x
- beq k40
- k37
-
- k39 dey
- bne k31
-
- k40 inx
- inx
- cpx #8
- beq kr40
- jmp ka30
-
- kr40 lda b
- cmp #44
- bcc kk49
- lda flash
- bne kk49
- lda y ;* Ship-Kolli! *
- cmp #95
- bcc kk40
- cmp #183
- bcc ka40
- kk40 lda spkoll
- and #1
- bne k46
- jmp kk49
- ka40 sec
- sbc #10
- sta k42+1
- adc #20
- sta k43+1
- lda ix
- sec
- sbc #8
- sta k44+1
- adc #16
- sta k45+1
-
- ldx #7
- k41 lda b,x
- cmp #64
- bcc k49
- lda y,x
- beq k49
- k42 cmp #0
- bcc k49
- k43 cmp #0
- bcs k49
- lda ix,x
- k44 cmp #0
- bcc k49
- k45 cmp #0
- bcs k49
-
- k46 lda #12
- sta c
- jsr $9d12 ;Ship-Explo-Sound!
- lda #43
- sta b
- bne kk49
-
- k49 dex
- bne k41
- kk49
-
- lda #0
- sta bord
-
- lda #190
- k50 cmp $d012 ;Pack-Spr.unten!
- bcs k50
-
- lda v+16
- and #1
- sta v+16
-
- inc bord
-
- ldx #6
- k51 ldy mal2,x
- lda packxh,x
- bmi kk52
- beq k52
- lda v+16
- ora oder+1,x
- sta v+16
- k52 lda #198
- sta v+3,y
- lda packx,x
- sta v+2,y
- lda packb,x
- ora #8
- sta be+1,x
- lda #15
- sta v+40,x
- kk52 dex
- bpl k51
-
- lda #0
- sta bord
-
- lda #220
- k53 cmp $d012 ;Back-Spr.unten!
- bcs k53
-
- lda v+16
- and #1
- sta v+16
-
- inc bord
-
- ldx #6
- k54 ldy mal2,x
- lda backxh,x
- bmi kk55
- beq k55
- lda v+16
- ora oder+1,x
- sta v+16
- k55 lda #228
- sta v+3,y
- lda backx,x
- sta v+2,y
- lda backb,x
- ora #8
- sta be+1,x
- lda #15
- sta v+40,x
- kk55 dex
- bpl k54
-
- lda #0
- sta bord
-
- jmp irqend
-
-
- starp .byte 220,10,140,200
- .byte 160,180,100,50
- .byte 40,90,80,240
- .byte 150,110,134,215
- stars .byte 1,2,1,3,1,4,1,3
- .byte 2,1,4,1,1,1,3,1
-
-
- stflash .byte 11,12,12,15,3,13,7,1
- .byte 1,1,7,13,3,15,12,12
-
-
- ;-------------- T I T L E --------------
-
-
- title
- sei
- lda #0
- sta $d020
- sta $d021
- sta $d01a
- sta $d011
- sta v+27
- sta v+23
- sta v+29
- sta fly1+1
- ldx #16
- ti0 sta $d000,x
- sta $d400,x
- sta $d408,x
- dex
- bpl ti0
-
- ldx #0
- lda #$35
- sta 1
- ti1 lda $bc00,x
- sta $d800,x
- lda $bc18,x
- sta $d818,x
- lda #0
- sta $d918,x
- lda #9
- sta $d940,x
- sta $da40,x
- sta $db00,x
- dex
- bne ti1
-
-
-
-
- lda #<nmi
- sta $fffa
- sta $fffe
- lda #>nmi
- sta $fffb
- sta $ffff
-
-
- lda #196
- sta 56576
- lda #27
- sta $d011
- lda #224
- sta 56322
-
- jsr $2048 ;Music-Init!
-
- ti20 lda $d011
- bmi ti20
- sei
- lda #120
- sta $d011
- lda #216
- sta 53270
- lda #24
- sta 53272
-
-
- jsr fli ;** FLI-Logo! **
-
-
- lda #24 ;Text-Mode
- sta $d011
-
- jsr $2021 ;Titel-Music!
-
- ldx #0 ;Colour-changing...
- ti25 lda tiwait,x
- cmp $d012
- bcs ti25
- lda ticol1,x
- sta $d022
- lda ticol2,x
- sta $d023
- inx
- cpx #4
- bne ti25
-
- ti26 lda $dc00 ;Joy-Button ?
- and #16
- bne ti28
- jmp game
-
- ti28
-
-
-
- ti99 lda $d011
- bpl ti99
- jmp ti20
-
-
- ;----------- Char-Position -------------
-
- charpos
- lda #0
- sta $ff
- tya
- sec
- sbc #40
- and #248
- tay
- sta $fe
- asl $fe
- rol $ff
- asl $fe
- rol $ff
- tya
- clc
- adc $fe
- sta $fe
- lda $ff
- adc #0
- sta $ff
- txa
- sec
- sbc #6
- lsr a
- lsr a
- clc
- adc $fe
- sta $fe
- lda $ff
- adc #>$4400
- sta $ff
- ldy #0
- rts
-
-
-
- joyst .byte 0
- stop .byte 0
- gover .byte 0
- add .byte 0
- flash .byte 0
- spkoll .byte 0
-
- x .byte 0,0,0,0,0,0,0,0
- xh .byte 0,0,0,0,0,0,0,0
- y .byte 0,0,0,0,0,0,0,0
- b .byte 0,0,0,0,0,0,0,0
- c .byte 0,0,0,0,0,0,0,0
- ix .byte 0,0,0,0,0,0,0,0
-
- shsave .byte 0,0,0,0,0,0,0,0
- shix .byte 0
- shy .byte 0,0,0,0,0,0,0
- shotp .byte 0
- shotz .byte 0
-
- scoretext .text " score: 000000 "
- .text " ships: 3 "
-
- verti .byte 0,0,0,0,0,0,0,0
- horiz .byte 0,0,0,0,0,0,0,0
- wait .byte 0,0,0,0,0,0,0,0
- count .byte 0,0,0,0,0,0,0,0
- point .byte 0,0,0,0,0,0,0,0
- mirry .byte 0,0,0,0,0,0,0,0
- mirrx .byte 0,0,0,0,0,0,0,0
- wieder .byte 0,0,0,0,0,0,0,0
-
- backx .byte 0,0,0,0,0,0,0
- backxh .byte 0,0,0,0,0,0,0
- backb .byte 0,0,0,0,0,0,0
-
- backpoint .byte 0
- backspr .byte 0
- backtime .byte 6,20,6,6,15
- .byte 6,40
- .byte 6,6,6,15
- .byte 6,6,40
- .byte 30,20,6,6,6,6,40
- .byte 0
- backbdat .byte 128,130,128,129,130
- .byte 128,130
- .byte 128,129,129,130
- .byte 128,129,130
- .byte 131,132
- .byte 128,129,129,129,130
-
- packx .byte 0,0,0,0,0,0,0
- packxh .byte 0,0,0,0,0,0,0
- packb .byte 0,0,0,0,0,0,0
-
- packpoint .byte 0
- packspr .byte 0
- packtime .byte 32,22,12,22
- .byte 6,32,38
- .byte 0
-
- packbdat .byte 131,131,132,131
- .byte 128,130,131
-
- oder .byte 1,2,4,8,16,32,64,128
- mal2 .byte 0,2,4,6,8,10,12,14
-
- tiwait .byte 100,134,158,188
- ticol1 .byte 9,6,9,4
- ticol2 .byte 5,14,10,12
-
-
- ;------------ Move-Daten ---------------
-
- movedats .byte 0,0,255
- .byte 128,255,0
-
- .byte 0,255,9 ;* 6 *
- .byte 1,255,1
- .byte 0,255,1
- .byte 1,255,5
- .byte 2,255,5
- .byte 3,255,5
- .byte 2,255,5
- .byte 1,255,5
- .byte 0,255,1
- .byte 1,255,1
- .byte 129,255,6
-
- .byte 1,248,4 ;* 39 *
- .byte 1,249,4
- .byte 1,250,4
- .byte 1,251,4
- .byte 1,252,3
- .byte 1,253,3
- .byte 1,254,2
- .byte 1,255,2
- .byte 1,0,3
- .byte 1,1,3
- .byte 1,2,4
- .byte 1,3,4
- .byte 1,4,4
- .byte 1,5,4
- .byte 1,6,4
- .byte 1,7,5
- .byte 1,8,10
-
-
- enemies .byte 1,170,0,64,7,6,3
- .byte 2,170,0,64,13,6,3
- .byte 3,170,0,64,10,6,3
- .byte 4,170,0,64,14,6,3
- .byte 5,170,0,64,5,6,3
- .byte 6,170,0,64,8,6,3
- .byte 7,170,0,64,9,6,98
-
- .byte 1,0,0,64,$87,6,3
- .byte 2,0,0,64,$8d,6,3
- .byte 3,0,0,64,$8a,6,3
- .byte 4,0,0,64,$8e,6,3
- .byte 5,0,0,64,$85,6,3
- .byte 6,0,0,64,$88,6,3
- .byte 7,0,0,64,$89,6,102
-
- .byte 1,170,0,64,7,39,1
- .byte 2,170,0,64,13,39,1
- .byte 3,170,0,64,10,39,1
- .byte 4,170,0,64,14,39,1
- .byte 5,170,0,64,5,39,1
- .byte 6,170,0,64,8,39,1
- .byte 7,170,0,64,9,39,20
-
- .byte 1,0,64,64,$c7,39,1
- .byte 2,0,64,64,$cd,39,1
- .byte 3,0,64,64,$ca,39,1
- .byte 4,0,64,64,$ce,39,1
- .byte 5,0,64,64,$c5,39,1
- .byte 6,0,64,64,$c8,39,1
- .byte 7,0,64,64,$c9,39,20
-
- .byte 255
-
- *= $4300 ;* Lazer-Grafik! *
-
- .byte 255,255,255
- .byte %01101001
- .byte %01101001
- .byte 255,255,255
-
- .byte 255,255,255,0,0
- .byte 255,255,255
-
- .byte %01101001
- .byte %01101001
- .byte 255,255,255,255
- .byte %01101001
- .byte %01101001
-
- .byte 0,0,255,255,255,255,0,0
-
-
- *= $9c00
-
- und .byte 127,191,223,239
- .byte 247,251,253,254
-
-