haupt5:        move.l  spriteadr,a0
               add.l   #68,a0
               move.l  a0,aud1lch(a5)
               move.w  #2,aud1len(a5)
               move.l  a0,aud2lch(a5)
               move.w  #2,aud2len(a5)
               move.l  a0,aud3lch(a5)
               move.w  #2,aud3len(a5)
               move.w  buchx+6,d0
               beq     hauptbo
               move.w  d7,d6
               and.w   #15,d6
               bne     haupt5r
               lea     buchx,a3
               bsr     weg
haupt5r:       lea     buchx,a0
               move.w  4(a0),d0
               beq     hauptbo
               btst    #0,d0
               beq     haupt5l
               move.w  (a0),d1
               addq    #1,d1
               move.w  d1,(a0)
               bra     haupt5v
haupt5l:       btst    #1,d0
               beq     haupt5u
               move.w  (a0),d1
               subq    #1,d1
               move.w  d1,(a0)
               bra     haupt5v
haupt5u:       btst    #2,d0
               beq     haupt5o
               move.w  2(a0),d1
               addq    #1,d1
               move.w  d1,2(a0)
               bra     haupt5v
haupt5o:       move.w  2(a0),d1
               subq    #1,d1
               move.w  d1,2(a0)
haupt5v:       move.l  buchx,d0
               cmp.l   pacx,d0
               beq     haupt5v1
               addq    #1,d0
               cmp.l   pacx,d0
               beq     haupt5v1
               subq    #2,d0
               cmp.l   pacx,d0
               beq     haupt5v1
               addq    #1,d0
               swap    d0
               addq    #1,d0
               swap    d0
               cmp.l   pacx,d0
               beq     haupt5v1
               swap    d0
               subq    #2,d0
               swap    d0
               cmp.l   pacx,d0
               bne     hauptbo
haupt5v1:      bsr     buchstabe
hauptbo:       move.w  d7,d6
               and.w   #63,d6
               bne     haupt6
               bsr     bonusab
               move.w  bonus,d0
               or.w    bonus+2,d0
               beq     verloren
haupt6:        move.w  d7,d6
               and.w   #7,d6
               cmpi.b  #7,d6
               bne     haupt7
               move.w  pacx,d0
               move.w  pacx+2,d1
               bsr     test
               cmpi.b  #4,d2
               bne     haupt7
               move.w  #8,dmacon(a5)
               move.l  sound3adr,aud3lch(a5)
               move.w  #(sound4-sound3)/2,aud3len(a5)
               move.w  #$8000+8,dmacon(a5)
               move.w  pacx,d0
               sub.w   #112,d0
               lsr.w   #4,d0
               move.w  pacx+2,d1
               sub.w   #32,d1
               lsr.w   #4,d1
               move.l  #leer,a0
               bsr     show
               moveq   #1,d0
               bsr     scoreup
               move.w  pzaehler,d0
               subq    #1,d0
               beq     geschafft
               move.w  d0,pzaehler
haupt7:        move.l  pacx,d3
               lea     geistx,a4
               move.w  ganzahl,d4
               subq    #1,d4
vergleichen:   cmp.l   (a4),d3
               bne     vergleichen1
               move.w  spunktz,d2
               beq     verloren
               move.l  #0,(a4)
               move.w  #0,4(a4)
               move.w  #4,dmacon(a5)
               move.l  sound2adr,aud2lch(a5)
               move.w  #(sound3-sound2)/2,aud2len(a5)
               move.w  #$8000+4,dmacon(a5)
               moveq   #10,d0
               bsr     scoreup
vergleichen1:  add.l   #6,a4
               dbra    d4,vergleichen
               move.w  d7,d6
               and.w   #7,d6
               bne     haupt73
               move.w  ganzahl,d2
               subq    #1,d2
               lea     geistx,a3
haupt71:       move.w  d2,speicher
               move.w  (a3),d2
               beq     haupt712
               move.w  spunktz,d2
               bne     haupt711
               bsr     wohin
               bra     haupt712
haupt711:      bsr     weg
haupt712:      add.l   #6,a3
               move.w  speicher,d2
               dbra    d2,haupt71
haupt73:       move.w  ganzahl,d2
               subq    #1,d2
               lea     geistx,a0
haupt7r:       move.w  4(a0),d0
               beq     haupt7e
               btst    #0,d0
               beq     haupt7l
               move.w  (a0),d1
               addq    #2,d1
               move.w  d1,(a0)
               bra     haupt7e
haupt7l:       btst    #1,d0
               beq     haupt7u
               move.w  (a0),d1
               subq    #2,d1
               move.w  d1,(a0)
               bra     haupt7e
haupt7u:       btst    #2,d0
               beq     haupt7o
               move.w  2(a0),d1
               addq    #2,d1
               move.w  d1,2(a0)
               bra     haupt7e
haupt7o:       move.w  2(a0),d1
               subq    #2,d1
               move.w  d1,2(a0)
haupt7e:       add.l   #6,a0
               dbra    d2,haupt7r
haupt8:        cmp.b   fruchtzahl,d7
               bne     haupt81
               bsr     fruchta
haupt81:       move.l  fruchtxg,d0
               cmp.l   pacx,d0
               bne     haupt9
               move.w  fruchtz,d0
               beq     haupt9
               move.w  #2,dmacon(a5)
               move.l  sound1adr,aud1lch(a5)
               move.w  #(sound2-sound1)/2,aud1len(a5)
               move.w  #$8000+2,dmacon(a5)
               moveq   #5,d0
               bsr     scoreup
               bsr     fruchtl
haupt9:        move.l  spunktxg,d0
               cmp.l   pacx,d0
               bne     haupt91
               move.w  #8,dmacon(a5)
               move.l  sound3adr,aud3lch(a5)
               move.w  #(sound4-sound3)/2,aud3len(a5)
               move.w  #$8000+8,dmacon(a5)
               moveq   #2,d0
               bsr     scoreup
               move.w  spunktx,d0
               move.w  spunktx+2,d1
               lea     leer,a0
               bsr     show
               bsr     grausprite
               move.l  #0,spunktxg
               move.w  #2,spunktz
               move.w  d7,d0
               add.w   #480,d0
               move.w  d0,spunktzahl
haupt91:       move.w  spunktz,d0
               beq     haupt10
               cmpi.w  #2,d0
               bne     haupt92
               cmp.w   spunktzahl,d7
               bne     haupt10
               move.w  #1,spunktz
               move.w  d7,d0
               add.w   #240,d0
               move.w  d0,spunktzahl
               bra     haupt10
haupt92:       cmp.w   spunktzahl,d7
               bne     haupt93
               move.w  #0,spunktz
               bsr     farbsprite
               move.w  ganzahl,d0
               subq    #1,d0
               lea     geistx,a0
haupt921:      move.w  (a0),d1
               bne     haupt922
               move.l  geistnull,(a0)
haupt922:      add.l   #6,a0
               dbra    d0,haupt921
               bra     haupt10
haupt93:       btst    #3,d7
               bne     haupt94
               bsr     farbsprite
               bra     haupt10
haupt94:       bsr     grausprite
haupt10:       move.l  pacx,d3
               lea     geistx,a4
               move.w  ganzahl,d4
               subq    #1,d4
vergleichen2:  cmp.l   (a4),d3
               bne     vergleichen3
               move.w  spunktz,d2
               beq     verloren
               move.l  #0,(a4)
               move.w  #0,4(a4)
               move.w  #4,dmacon(a5)
               move.l  sound2adr,aud2lch(a5)
               move.w  #(sound3-sound2)/2,aud2len(a5)
               move.w  #$8000+4,dmacon(a5)
               moveq   #10,d0
               bsr     scoreup
vergleichen3:  add.l   #6,a4
               dbra    d4,vergleichen2
               move.w  d7,d6
               and.w   #7,d6
               cmpi.b  #7,d6
               bne     haupt12
               move.w  sprung,d0
               beq     haupt12
               btst    #7,$bfe001
               bne     haupt12
               move.w  #4,dmacon(a5)
               move.l  sound6adr,aud2lch(a5)
               move.w  #(sound7-sound6)/2,aud2len(a5)
               move.w  #$8000+4,dmacon(a5)
haupt11:       move.w  vhpos(a5),d0
               and.w   #15,d0
               addq    #3,d0
               lsl.w   #4,d0
               add.w   #112,d0
               move.w  d0,d3
               move.w  vhpos(a5),d1
               and.w   #7,d1
               addq    #5,d1
               lsl.w   #4,d1
               add.w   #32,d1
               move.w  d1,d4
               bsr     test
               cmpi.b  #2,d2
               beq     haupt11
               move.w  d3,pacx
               move.w  d4,pacx+2
               move.w  #0,sprung
haupt12:       move.b  $bfec01,d0
               cmpi.b  #$cd,d0
               bne     haupt122
               move.w  #%1110,dmacon(a5)
               move.w  #$4,$dff180
haupt121:      move.b  $bfec01,d0
               cmpi.b  #$dd,d0
               bne     haupt121
               move.w  #0,$dff180
               bra     haupte
haupt122:      cmpi.b  #$75,d0
               bne     haupt123
               move.w  #%1110,dmacon(a5)
               bra     verloren2
haupt123:      cmpi.b  #$93,d0
               bne     haupt124
               move.w  #0,aud0vol(a5)
               bra     haupte
haupt124:      cmpi.b  #$91,d0
               bne     haupte
               move.w  #32,aud0vol(a5)
haupte:        lea     spritex,a0
               move.l  pacx,(a0)+
               move.l  buchx,(a0)+
               lea     geistx,a1
               moveq   #5,d0
haupte1:       move.l  (a1),(a0)+
               add.l   #6,a1
               dbra    d0,haupte1
               bsr     vertikal
               bra     hauptschleife
               end

