execbase=4
allocmem=-198
forbid=-132
diwstrt=$8e
diwstop=$90
ddfstrt=$92
ddfstop=$94
bpl1pth=$e0
bplcon0=$100
bplcon1=$102
bplcon2=$104
bpl1mod=$108
bpl2mod=$10a
dmacon=$96
cop1lc=$80
copjmp1=$88
spr0pth=$120
vpos=$4
vhpos=$6
aud0lch=$a0
aud1lch=$b0
aud2lch=$c0
aud3lch=$d0
aud0len=$a4
aud1len=$b4
aud2len=$c4
aud3len=$d4
aud0vol=$a8
aud1vol=$b8
aud2vol=$c8
aud3vol=$d8
aud0per=$a6
aud1per=$b6
aud2per=$c6
aud3per=$d6
joy1dat=$c
color15=$19e
ciab=$bfd100
timer=$bfe801
planesize=40*256
clsize=4+8*4+8*8
               bra     start
spriteadr:     dc.l    0
planeadr:      dc.l    0
cladr:         dc.l    0
musikadr:      dc.l    0
sound1adr:     dc.l    0
sound2adr:     dc.l    0
sound3adr:     dc.l    0
sound4adr:     dc.l    0
sound5adr:     dc.l    0
sound6adr:     dc.l    0
sound7adr:     dc.l    0
spritex:       ds.w    16
pzaehler:      dc.w    0
spunktx:       dc.w    0,0
spunktxg:      dc.w    0,0
spunktz:       dc.w    0
spunktzahl:    dc.w    0
fruchtx:       dc.w    0,0
fruchtxg:      dc.w    0,0
fruchtz:       dc.w    0
fruchtzahl:    dc.w    0
pacx:          dc.w    0,0
buchx:         ds.w    4
buchxo:        dc.w    0,0
buchxu:        dc.w    0,0
ganzahl:       dc.w    0
geistnull:     dc.l    0
geistx:        ds.w    36
joy:           dc.w    0
joymemo:       dc.w    0
bildnummer:    dc.w    0
leben:         dc.w    0
bonus:         dc.w    0,0
score:         ds.w    5
high:          ds.w    5
sprung:        dc.w    0
speicher:      dc.w    0
               include "pac0"
start:         move.l  execbase,a6
               lea     $dff000,a5
               jsr     forbid(a6)
               move.w  #%10000,dmacon(a5)
               move.w  #%10001000,ciab
               move.w  #%10000000,ciab
               move.l  #0,high
               move.l  #0,high+4
               move.w  #0,high+8
               include "pac1"
               move.w  #1,bildnummer
               move.w  #4,leben
               move.w  #2,ganzahl
               move.l  #0,score
               move.l  #0,score+4
               move.w  #0,score+8
               lea     geistx,a0
               moveq   #5,d0
anfang:        move.l  #0,(a0)
               add.l   #6,a0
               dbra    d0,anfang
schleife:      move.w  #$0d5d,color15(a5)
               moveq   #1,d0
               moveq   #16,d1
               lea     sc,a0
               bsr     show
               moveq   #2,d0
               moveq   #16,d1
               lea     op,a0
               bsr     show
               moveq   #3,d0
               moveq   #16,d1
               lea     ep,a0
               bsr     show
               moveq   #11,d0
               moveq   #16,d1
               lea     pa,a0
               bsr     show
               moveq   #12,d0
               moveq   #16,d1
               lea     cp,a0
               bsr     show
               moveq   #16,d0
               moveq   #16,d1
               lea     bo,a0
               bsr     show
               moveq   #17,d0
               moveq   #16,d1
               lea     nu,a0
               bsr     show
               moveq   #18,d0
               moveq   #16,d1
               lea     ss,a0
               bsr     show
               lea     streifen,a2
               lea     stein,a3
               bsr     loopshow
               move.l  #bild1-2*(bild2-bild1),a2
               move.w  bildnummer,d0
bildloop:      add.l   #(bild2-bild1),a2
               dbra    d0,bildloop
               bsr     loopshow
               lea     punkt,a3
               bsr     loopshow
               move.w  d2,pzaehler
               move.w  (a2)+,d0
               move.w  d0,d2
               lsl.w   #4,d2
               add.w   #112,d2
               move.w  d2,spunktxg
               move.w  d0,spunktx
               move.w  (a2)+,d1
               move.w  d1,d2
               lsl.w   #4,d2
               add.w   #32,d2
               move.w  d2,spunktxg+2
               move.w  d1,spunktx+2
               move.w  (a2)+,fruchtx
               move.w  fruchtx,d2
               lsl.w   #4,d2
               add.w   #112,d2
               move.w  d2,fruchtxg
               move.w  (a2)+,fruchtx+2
               move.w  fruchtx+2,d2
               lsl.w   #4,d2
               add.w   #32,d2
               move.w  d2,fruchtxg+2
               move.l  (a2)+,buchxo
               move.l  (a2)+,buchxu
               move.l  (a2)+,geistnull
               lea     spunkt,a0
               bsr     show
               moveq   #19,d0
               moveq   #16,d1
               lea     neun,a0
               bsr     show
               moveq   #20,d0
               moveq   #16,d1
               lea     neun,a0
               bsr     show
               move.w  #9,bonus
               move.w  #9,bonus+2
               bsr     showscore
               move.l  #null-(eins-null),a0
               move.w  leben,d0
bildloop1:     add.l   #(eins-null),a0
               dbra    d0,bildloop1
               moveq   #13,d0
               moveq   #16,d1
               bsr     show
               move.l  spriteadr,a0
               add.l   #76,a0
               lea     bb,a1
               moveq   #15,d0
bildloop2:     move.l  (a1)+,(a0)+
               dbra    d0,bildloop2
               move.l  fruchtxg,pacx
               move.l  buchxo,buchx
               move.w  #0,buchx+4
               move.l  pacx,spritex
               move.l  buchx,spritex+4
               move.w  ganzahl,d0
               subq    #1,d0
               move.l  #spritex+8,a0
               lea     geistx,a1
bildloop3:     move.l  geistnull,(a0)+
               move.l  geistnull,(a1)+
               move.w  #0,(a1)+
               dbra    d0,bildloop3
               move.l  spriteadr,a0
               add.l   #2*72+4,a0
               move.w  ganzahl,d1
               subq    #1,d1
bildloop4:     lea     geist1,a1
               moveq   #15,d0
bildloop5:     move.l  (a1)+,(a0)+
               dbra    d0,bildloop5
               add.l   #4,a0
               dbra    d1,bildloop4
               move.l  spriteadr,a0
               add.l   #4,a0
               lea     paczu,a1
               moveq   #15,d0
bildloop6:     move.l  (a1)+,(a0)+
               dbra    d0,bildloop6
               bsr     farbsprite
               move.w  #0,joy
               move.w  #0,joymemo
               move.w  #1,buchx+6
               move.w  #0,fruchtz
               move.w  vhpos(a5),d0
               and.w   %11111000,d0
               move.w  d0,fruchtzahl
               move.w  #0,spunktz
               move.w  #1,sprung
               moveq   #15,d7
               bsr     vertikal
               moveq   #50,d6
               bsr     verzoegerung
               include "pac2"
               include "pac21"
               include "pac3"
               include "pacdaten"
               end
