home *** CD-ROM | disk | FTP | other *** search
-
- INCLUDE "exec/types.i"
- INCLUDE "exec/ports.i"
- INCLUDE "exec/io.i"
- INCLUDE "exec/memory.i"
- INCLUDE "devices/audio.i"
- INCLUDE "libraries/dosextens.i"
- INCLUDE "intuition/intuition.i"
- INCLUDE "intuition/screens.i"
- INCLUDE "graphics/gfx.i"
-
- xref _AbsExecBase
- xref _BeginIO
- xref _LVOAbortIO
- xref _LVOAddPort
- xref _LVOAllocMem
- xref _LVOAllocSignal
- xref _LVOChangeSprite
- xref _LVOCheckIO
- xref _LVOClose
- xref _LVOCloseDevice
- xref _LVOCloseLibrary
- xref _LVOCloseScreen
- xref _LVOCloseWindow
- xref _LVODisplayAlert
- xref _LVODisplayBeep
- xref _LVODoIO
- xref _LVODrawImage
- xref _LVOFindPort
- xref _LVOFindTask
- xref _LVOFreeMem
- xref _LVOFreeSprite
- xref _LVOFreeSignal
- xref _LVOGetMsg
- xref _LVOGetSprite
- xref _LVOInitBitMap
- xref _LVOInitRastPort
- xref _LVOLoadRGB4
- xref _LVOMove
- xref _LVOMoveSprite
- xref _LVOOpen
- xref _LVOOpenDevice
- xref _LVOOpenLibrary
- xref _LVOOpenScreen
- xref _LVOOpenWindow
- xref _LVOOutput
- xref _LVOPolyDraw
- xref _LVOPutMsg
- xref _LVORead
- xref _LVOReadPixel
- xref _LVORectFill
- xref _LVORemPort
- xref _LVOReplyMsg
- xref _LVOSendIO
- xref _LVOSetAPen
- xref _LVOSetPointer
- xref _LVOSetRast
- xref _LVOText
- xref _LVOViewPortAddress
- xref _LVOWait
- xref _LVOWaitIO
- xref _LVOWaitPort
- xref _LVOWrite
- xref _LVOWritePixel
-
- section game,CODE
-
- movea.l #intname,a1
- moveq #31,d0
- movea.l 4,a6
- jsr _LVOOpenLibrary(a6)
- move.l d0,intbase
- beq abort
- movea.l #dosname,a1
- moveq #0,d0
- ; movea.l 4,a6
- jsr _LVOOpenLibrary(a6)
- move.l d0,dosbase
- beq abort
- movea.l #grname,a1
- moveq #0,d0
- ; movea.l 4,a6
- jsr _LVOOpenLibrary(a6)
- move.l d0,grbase
- beq abort
-
- suba.l a1,a1
- jsr _LVOFindTask(a6)
- movea.l d0,a4
- tst.l pr_CLI(a4)
- bne yes_cli
-
- lea pr_MsgPort(a4),a0
- jsr _LVOWaitPort(a6)
- lea pr_MsgPort(a4),a0
- jsr _LVOGetMsg(a6)
- move.l d0,returnmsg
-
- yes_cli
- ;**************
-
- bsr init_audio
- tst.l d0
- beq vapautukset ; ei vapauteta spritejä
-
- bsr alusta_kentta
- tst.l d0
- beq vapautukset ;
- bsr avaa_ruutu
- tst.l d0
- beq vapautukset ;
-
- bsr muuta_varit
- bsr tee_spritet
- tst.l d0
- beq vapauta_spritet
-
- bsr game_info_screen
-
- actual_game
-
- move.b #0,nkentta
- lea msg9,a0
- moveq #msglen9,d7
- move.l #186,d0
- move.l #244,d1
- moveq #9,d6
- bsr kirjoita
- lea msg10,a0
- moveq #msglen10,d7
- move.l #100,d0
- move.l #254,d1
- moveq #14,d6
- bsr kirjoita
- bsr kirjoita_taso
-
- bsr do_voice_bell
-
- lea maps,a0
- move.l #mapslen,d1
- move.l #2940,d6
- move.l kenttac,d7
- bsr Lataa ; ladataan kartat muistiin
- tst.l d0
- beq vapauta_spritet ; karttaa ei löytynyt
-
- move.w #17,c_spritex
- move.w #17,c_spritey
- bsr tee_kentta
- bsr energia_mittari
- bsr pallo_piirto
- move.l intbase,a6 ;hävitetään hiiren pointteri näkyvistä
- move.l cwindow,a0
- move.l #pointer,a1
- moveq #1,d0
- moveq #1,d1
- jsr _LVOSetPointer(a6)
-
- move.b #4,henget
- move.b #0,lopetus
- move.w #255,energia
- move.b #0,kanto
- move.w #0,jekut
- move.b #0,kivet
- move.b #0,hlaskuri
- move.l #0,a0
- move.l #sprite1,a1
- move.w c_spritex,d0
- move.w c_spritey,d1
- move.l grbase,a6
- jsr _LVOMoveSprite(a6)
-
- ;************* PELI SILMUKKA **********
-
- loop1
- bsr spriteliikku_ohjaus
- cmp.l #0,d0
- beq no_click
- ei_lopeteta
- bsr ota_esine
- no_click
- tst.b lopetus
- bne pelin_loppu
- sub.b #1,txlaskuri
- bsr jekku_ohjaus
- bra loop1
-
- ;**************
- pelin_loppu
- move.l #0,a0
- move.l grbase,a6
- move.w #321,d0
- move.l #sprite1,a1
- jsr _LVOMoveSprite(a6)
-
- move.l #$7ffff,d0
- oloop
- sub.l #1,d0
- bne oloop
-
- sub.b #1,henget
- beq no_lives
- bsr pallo_poisto
- lea maps,a0
- move.l #mapslen,d1
- move.l #2940,d6
- move.l kenttac,d7
- bsr Lataa
- sub.b #1,nkentta
- move.w a_spritex,c_spritex
- move.w a_spritey,c_spritey
- bsr uusi_kentta
- move.b #0,lopetus
- move.l #0,a0
- move.l #sprite1,a1
- move.w c_spritex,d0
- move.w c_spritey,d1
- move.l grbase,a6
- jsr _LVOMoveSprite(a6)
- move.b #0,c_suunta
- bra loop1
- no_lives
- move.l #$cffff,d0
- loppuloop
- sub.l #1,d0
- bne loppuloop
-
- bsr game_over_screen
- tst.b d0
- bne actual_game
-
- ;********* Lopetetaan **************
-
- bsr do_voice_aaah
- move.l #180000,d0
- loppu_test_loop1
- subi.l #1,d0
- bne loppu_test_loop1
- move.l 4,a6
- move.l aumsg,a1
- jsr _LVOAbortIO(a6)
-
- vapauta_spritet
- lea numsprite,a5
- movea.l grbase,a6
- moveq #3,d7
- loop2
- moveq #0,d0
- move.b -1(a5,d7.w),d0
- cmpi.b #-1,d0
- beq.s loop3
- jsr _LVOFreeSprite(a6)
- loop3
- subq #1,d7
- bne loop2
-
- vapautukset
- bsr free_audio
-
- bsr VapautaMuistit
-
- close_gr
- movea.l 4,a6
- movea.l grbase,a1
- jsr _LVOCloseLibrary(a6)
- close_dos
- movea.l 4,a6
- movea.l dosbase,a1
- jsr _LVOCloseLibrary(a6)
- close_int
- movea.l 4,a6
- movea.l intbase,a1
- jsr _LVOCloseLibrary(a6)
- abort
- tst.l returnmsg
- beq abort_2
- movea.l 4,a6
- movea.l returnmsg,a1
- jsr _LVOReplyMsg(a6)
- abort_2
- rts ;**** Palataan CLI:hin ( tai WB:hen )
-
- ;*************************
-
- avaa_ruutu
- movea.l #newscreen,a0 ;newscreen structure
- movea.l intbase,a6
- jsr _LVOOpenScreen(a6)
- move.l d0,cscreen
- beq.s ei_nayttoa ; ei ruutua
- move.l d0,rport
- add.l #84,rport
- move.l d0,vport
- add.l #44,vport
- move.l #newwindow,a0 ;avataan myös ikkuna
- move.l cscreen,nw_Screen(a0)
- movea.l intbase,a6
- jsr _LVOOpenWindow(a6)
- move.l d0,cwindow
- beq.s ei_nayttoa ; ei ruutua
- avaa_ruutu_pois
- rts
-
- ei_nayttoa
- lea msg4,a1
- move.l #msglen4,d3
- bsr valitukset_ei_tiedosto
- bsr GURU
- moveq #0,d0
- bra.s avaa_ruutu_pois
-
- muuta_varit
- movea.l grbase,a6
- movea.l vport,a0
- movea.l #colormap,a1
- moveq #32,d0
- jsr _LVOLoadRGB4(a6) ; LoadRGB4; muoto: $0RGB
- rts
-
- tee_spritet
- lea numsprite,a5 ; sisältää kolmen spriten numerot
- moveq #1,d0
- lea sprite0,a0
- bsr.s init_sprite
- move.b d0,2(a5)
- ; cmpi.b #-1,d0
- ; beq.s ei_spriteja ; itse asiassa tätä spriteä ei tarvita
-
- moveq #-1,d0
- lea sprite1,a0
- bsr.s init_sprite
- move.b d0,(a5)
- cmpi.b #-1,d0
- beq.s ei_spriteja
-
- moveq #-1,d0
- lea sprite2,a0
- bsr.s init_sprite
- move.b d0,1(a5)
- cmpi.b #-1,d0
- beq.s ei_spriteja
-
- moveq #-1,d0
-
- rts
-
- ei_spriteja
- lea msg8,a1
- move.l #msglen8,d3
- bsr valitukset_ei_tiedosto
- bsr GURU
- moveq #0,d0
- rts
-
- init_sprite
- move.l grbase,a6
- jsr _LVOGetSprite(a6)
- rts
-
- tee_kentta
- move.w c_spritex,a_spritex
- move.w c_spritey,a_spritey
- tee_kentta_b
- ;ruudut (20*14) muuttujissa x ja y
- move.l rport,a1 ;... mutta ensin siivotaan...
- move.l grbase,a6
- moveq #0,d0
- jsr _LVOSetAPen(a6)
- moveq #0,d0
- moveq #0,d1
- move.w #319,d2
- move.w #224,d3
- move.l rport,a1
- jsr _LVORectFill(a6)
- bsr etsi_kenttaos
- ;nkenttaos on kentän osoite
- ; - ainoa enää ulkoa tarvittava vakio
- move.b #13,y
- loopy
- move.b #19,x
- loopx
- ; kenttien syvyys on 4 bittiä
- ; haetaan menossa olevan ruudun arvo
- moveq #0,d0
- move.b y,d0
- mulu #10,d0
- moveq #0,d1
- move.b x,d1
- lsr.b #1,d1
- add.w d1,d0
- move.l nkenttaos,a0
- move.b 0(a0,d0.w),d0
- move.b d0,dloop
- and.b #$f,d0
- bsr draw_box
- move.b dloop,d0
- lsr.b #4,d0
- subi.b #1,x
- bsr draw_box
- cmp.b #0,x
- beq.s looppo
- subi.b #1,x
- bra loopx
- looppo
- subi.b #1,y
- cmp.b #-1,y
- bne loopy
- rts
-
- draw_box
- move.l rport,a0
- move.l intbase,a6
- moveq #0,d2
- move.b d0,d2
- moveq #0,d1
- move.b y,d1
- lsl.w #4,d1
- moveq #0,d0
- move.b x,d0
- lsl.w #4,d0
- cmp.b #0,d2
- beq draw_pois
- move.l #box_images,a1
- lsl.w #2,d2
- move.l -4(a1,d2),a1
- jsr _LVODrawImage(a6)
- draw_pois
- rts
-
- ;**********************
- hextodec ; muutettava luku d1:ssä
- move.l d1,d2 ; vain kaksinumeroinen, 0-99
- divu #10,d1
- andi.l #$f,d1
- move.l d1,d3
- lsl.w #4,d3 ; d3:ssa BCD luku , kymmenet
- mulu #10,d1
- sub.b d1,d2 ; d2:ssa BCD luku , ykköset
- move #4,CCR ; Extended bit = 0, Zero bit =1
- abcd d3,d2 ; BCD yhteenlasku
- modify ;muutettava luku d2:ssa
- move.l #string,addr
- move.l #string,a5 ;merkkijonon osoite, joho luku tulee
- moveq #8,d1
- loopnum
- move.l d2,d0
- lsr.l #4,d2
- bsr muuta
- move.b d0,-1(a5,d1.l)
- subi.b #1,d1
- bne loopnum
- rts
- muuta ;muutettava luku d0:ssa
- and.b #$f,d0
- or.b #$30,d0
- cmp.b #$3a,d0
- blt poisnum
- add.b #7,d0
- poisnum
- rts
- type
- move.l grbase,a6
- move.l rport,a1
- move.b #9,d0
- jsr _LVOSetAPen(a6)
- move.l rport,a1
- move.l addr,a0
- move.l lenght,d0
- jsr _LVOText(a6)
- rts
-
- kirjoita_happo
- move.l d0,-(sp)
- moveq #0,d1
- move.b hlaskuri,d1
- bsr hextodec
- add.l #6,a5
- move.l a5,a0
- moveq #2,d7
- moveq #16,d0
- move.w #236,d1
- moveq #9,d6
- bsr kirjoita
- move.l (sp)+,d0
- rts
-
- kirjoita_taso
- move.l d0,-(sp)
- moveq #0,d1
- move.b nkentta,d1
- addq #1,d1
- bsr hextodec
- add.l #6,a5
- move.l a5,a0
- moveq #2,d7
- move.w #252,d0
- move.w #244,d1
- moveq #9,d6
- bsr kirjoita
- move.l (sp)+,d0
- rts
-
- report_mouse
- moveq #0,d7
- bsr intuimessage
- tst.l d0
- beq report_mouse_pois ; ei viestejä
- move.b #0,suunta
- move.w d7,d3
- swap d7
- move.w d7,d2
- move.b d3,d0
- bsr abs_muunnos
- move.b d0,d1
- move.b d2,d0
- bsr abs_muunnos
- move.b #1,suunta
- cmp.b d1,d0
- bgt.s report_a
- move.b #2,suunta
- move.b d1,d0
- move.b d3,d2
- report_a
- cmp.b #2,d0
- bgt.s report_b
- move.b #0,suunta
- bra.s report_c
- report_b
- and.b #$80,d2
- or.b d2,suunta
- report_c
- moveq #3,d0
- cmp.l #RAWKEY,d5
- beq report_keys
- cmp.l #MOUSEBUTTONS,d5
- bne.s report_mouse_pois2
- cmp.w #$c000,d6
- beq.s report_mouse_pois
- moveq #0,d0
- cmp.w #$a000,d6
- bne.s report_mouse_pois
- bsr ota_kr
- report_mouse_pois2
- moveq #0,d0
- report_mouse_pois
- rts
-
- intuimessage
- move.l cwindow,a0
- move.l $56(a0),a0
- movea.l 4,a6
- jsr _LVOGetMsg(a6)
- tst.l d0
- beq.s intuimessage_pois
- move.l d0,a1
- move.l im_MouseX(a1),d7
- move.w im_Qualifier(a1),d6
- move.l im_Class(a1),d5
- move.w im_Code(a1),d4
- jsr _LVOReplyMsg(a6) ;d0:ssa on 0, jos viestejä ei ole saapunut
- moveq #-1,d0
- intuimessage_pois
- rts
-
- passed
- lea msg13,a0
- move.w #msglen13,d7
- moveq #16,d0
- moveq #124,d1
- moveq #9,d6
- bsr kirjoita
- rts
-
- report_keys
- ; d4:ssa näppäimen numero
- moveq #0,d0
- cmp.w #$45,d4
- beq report_esc
- cmp.w #$58,d4
- beq report_sanct
- cmp.w #$2e,d4
- beq report_acid
- cmp.w #$5f,d4
- beq report_info
- cmp.w #$19,d4
- beq report_pause
- rts
- report_esc
- move.b #-1,lopetus
- move.b #1,henget
- rts
- report_sanct
-
- cmp.b #$9a,d6 ; RSHIFT+CONTROL+LALT+RCOMMAND
- bne report_sanct_pois
- move.b #4,henget
- bsr pallo_piirto
- moveq #0,d0
- report_sanct_pois
- rts
- report_acid
- cmp.b #$e1,d6 ; LSHIFT+RALT+LCOMMAND+RCOMMAND
- bne report_acid_pois
- move.b #90,hlaskuri
- moveq #0,d0
- move.w #224,d1
- move.l #happo_i,a1
- bsr piirra_image
- bsr kirjoita_happo
-
- bset.b #0,kanto
- moveq #16,d0
- move.w #240,d1
- move.l #kranaatti_i,a1
- bsr piirra_image
-
- bset.b #2,kanto
- moveq #0,d0
- move.w #240,d1
- move.l #myrkky_i,a1
- bsr piirra_image
-
- moveq #0,d0
- report_acid_pois
- rts
- report_info
- movem d1-d7/a0-a6,-(sp)
- bsr game_info_screen
- bsr info_clear
- movem (sp)+,d1-d7/a0-a6
- moveq #0,d0
- rts
- report_pause
- movea.l rport,a1
- movea.l grbase,a6
- moveq #0,d0
- jsr _LVOSetAPen(a6)
- movea.l rport,a1
- movea.l grbase,a6
- moveq #100,d0
- move.w #246,d1
- move.w #319,d2
- move.w #255,d3
- jsr _LVORectFill(a6)
- lea msg11,a0
- move.w #msglen11,d7
- moveq #116,d0
- move.l #254,d1
- moveq #13,d6
- bsr kirjoita
- report_pause_loop
- bsr intuimessage
- tst.l d0
- beq report_pause_loop
- cmp.l #RAWKEY,d5
- bne report_pause_loop
- cmp.b #$19,d4
- bne report_pause_loop
- ; puhdistetaan jäljet
- movea.l rport,a1
- movea.l grbase,a6
- lea msg10,a0
- moveq #msglen10,d7
- moveq #100,d0
- move.l #254,d1
- moveq #14,d6
- bsr kirjoita
- rts
-
- etsi_kenttaos
- move.l #kentat,a0 ;kentat os. kenttien osoitteiden alkuun
- moveq #0,d0
- move.b nkentta,d0
- lsl.b #2,d0
- move.l 0(a0,d0.w),nkenttaos
- rts
-
- etsi_ruutu
- ;etsittävän ruudun koordinaatit muuttujissa x ja y
- ;kentän osoite valmiina vakiossa nkenttaos
- move.l nkenttaos,a0
- moveq #0,d1
- move.b y,d1
- mulu #10,d1
- moveq #0,d0
- move.b x,d0
- lsr.b #1,d0
- add.w d1,d0 ;ruudun tavun offset-arvo d0:ssa
- move.b 0(a0,d0.w),d0 ;d0:ssa on ruudun tavu
- move.b x,d1
- and.b #1,d1
- cmp.b #1,d1
- beq.s etsi_ruutu_pois
- lsr.b #4,d0 ;parilliselle x:arvolle 4 ylintä bittiä
- etsi_ruutu_pois
- and.b #$f,d0 ;lopullinen arvo on d0:ssa
- ; cmp.b #15,d0
- ; bne etsi_ruutu_pois2
- ; move.b #1,d0
- etsi_ruutu_pois2
- rts
-
- spriteliikku_ohjaus
- moveq #0,d0
- sub.w #1,solaskuri ;määrätään, kuinka usein spriteä liikutetaan
- and.w #$7f,solaskuri
- bne spriteliikku_pois2
- bsr jekku_testit
- bsr report_mouse
- tst.l d0
- bne spriteliikku_pois2
- spriteliikku
- bsr energy_loss
- bsr gaboom
- cmp.b #0,suunta
- beq.s spriteliikku_pois
- move.b suunta,c_suunta
- move.b #9,v_sprite
- spriteliikku_pois
- tst.b c_suunta
- beq spriteliikku_b
- move.w c_spritex,d0
- move.w c_spritey,d1
- move.b c_suunta,sprite_suunta
- bsr suunta_lupa
- move.l #0,a0
- move.l #sprite1,a1
- move.w c_spritex,d0
- move.w c_spritey,d1
- move.l grbase,a6
- jsr _LVOMoveSprite(a6)
- bsr sprite_paikka
- bsr etsi_ruutu
- cmp.b #3,d0
- bne.s spriteliikku_a
- cmp.b #5,kivet
- bne.s spriteliikku_b
- bsr uusi_kentta
- spriteliikku_a
- cmp.b #5,d0
- bne.s spriteliikku_b
- bsr kallot
- spriteliikku_b
- clr.l d0
- spriteliikku_pois2
- rts
-
- sprite_paikka
- move.w c_spritex,d0
- add.w #7,d0
- lsr.w #4,d0
- move.b d0,x
- move.w c_spritey,d0
- add.w #7,d0
- lsr.w #4,d0
- move.b d0,y
- rts
-
- suunta_ruudut
- ;ruudut paikoissa x,y ja xm,ym
- ;move.w c_spritex,d0
- ;move.w c_spritey,d1
- move.w d0,d2
- move.w d1,d3
- cmp.b #1,sprite_suunta
- bne.s suuntar_a
- ;suunta oikealle
- add.w #15,d0
- add.w #1,d1
- add.w #15,d2
- add.w #14,d3
- rts
- suuntar_a
- cmp.b #$81,sprite_suunta
- bne.s suuntar_b
- ;suunta vasemmalle
- add.w #1,d1
- add.w #14,d3
- rts
- suuntar_b
- cmp.b #2,sprite_suunta
- bne.s suuntar_c
- ;suunta alas
- add.w #15,d1
- add.w #14,d2
- add.w #15,d3
- add.w #1,d0
- rts
- suuntar_c
- ;suunta ylös
- add.w #1,d0
- add.w #14,d2
- rts
-
- suunta_xy
- bsr suunta_ruudut
- lsr.w #4,d0
- move.b d0,x
- lsr.w #4,d1
- move.b d1,y
- lsr.w #4,d2
- move.b d2,xm
- lsr.w #4,d3
- move.b d3,ym
- bsr etsi_ruutu
- rts
-
- suunta_lupa
- bsr suunta_xy
- bsr pompotus
- cmp.b #1,d0
- beq.s suunta_loppu
- move.b xm,x
- move.b ym,y
- bsr etsi_ruutu
- bsr pompotus
- cmp.b #1,d0
- beq.s suunta_loppu
- move.w c_spritex,d1
- move.w c_spritey,d2
- move.b c_suunta,d0
- bsr vars_sliikku
- move.w d1,c_spritex
- move.w d2,c_spritey
- suunta_loppu
- bsr spritehidastuvuus
- rts
-
- pompotus
- cmp.b #$a,d0
- bne.s pompotus_loppu
- bsr do_voice_boing
- bchg.b #7,suunta
- move.b c_suunta,d1
- andi.b #$7f,d1
- andi.b #$80,suunta
- add.b d1,suunta
- move.b #$c,v_sprite
- move.b #1,d0
- pompotus_loppu
- rts
-
- vars_sliikku
- sub.b #1,nlaskuri ;vähennetään nopeuslaskuria
- bne.s vars_sloppu ;ellei nollautunut, mennään y:hyn
- bsr spriten_liike
- move.b v_sprite,d0
- move.b #$b,nlaskuri
- sub.b d0,nlaskuri
- vars_sloppu
- rts
-
- spriten_liike
- ;suunta d0:ssa, x-paikka d1:ssä, y-paikka d2:ssä
- move.w #-1,d4
- btst #7,d0
- bne spriten_x
- move.w #1,d4
- spriten_x
- btst #0,d0
- beq spriten_y
- add.w d4,d1
- rts
- spriten_y
- add.w d4,d2
- rts
-
- spritehidastuvuus
- bsr sprite_paikka ;nopeuden pudotus 'suossa'
- bsr etsi_ruutu
- cmp.b #2,d0
- bne.s spriteh_a
- and.b #3,v_sprite
- spriteh_a
- sub.b #1,vhlaskuri ;määritellään spriten automaattinen hidastuvuus
- and.b #$3f,vhlaskuri
- bne spriteh_loppu
-
- tst.b v_sprite
- beq.s spriteh_stop
- sub.b #1,v_sprite
- rts
- spriteh_stop
- move.b #0,c_suunta
- spriteh_loppu
- rts
-
- uusi_kentta
- add.b #1,nkentta
- bsr kirjoita_taso
- bsr tee_kentta
- cmp.b #$14,nkentta
- bne uusi_kentta_2
- bsr passed
- uusi_kentta_2
- move.b #0,kivet
- move.b #0,kanto
- move.b #0,hlaskuri
- bsr esine_poisto
- move.w #255,energia
- bsr energia_mittari
- move.w #0,jekut
- move.w #321,d0
- move.l #0,a0
- move.l #sprite2,a1
- move.l grbase,a6
- jsr _LVOMoveSprite(a6)
- rts
-
- ota_esine
- move.b #0,v_sprite ; pysäytetään sprite
- bsr sprite_paikka
- bsr etsi_ruutu
- cmp.b #3,d0
- bls ei_esinetta
- cmp.b #5,d0
- beq ei_esinetta
- cmp.b #8,d0
- beq ei_esinetta
- move.l d0,-(sp)
- bsr do_voice_bell
- bsr pyyhi_ruutu
- move.l (sp)+,d0
- cmp.b #4,d0
- bne.s ota_pullo
- add.b #1,kivet
- rts
- ota_pullo
- cmp.b #6,d0
- bne.s ota_kranaatti
- addi.w #127,energia
- cmp.w #$ff,energia
- bls.s ota_pallo_a
- move.w #$ff,energia
- ota_pallo_a
- bsr energia_mittari
- rts
- ota_kranaatti
- cmp.b #7,d0
- bne.s ota_myrkky
- btst.b #0,kanto
- bne.s ota_myrkky
- bset.b #0,kanto
- moveq #16,d0
- move.w #240,d1
- move.l #kranaatti_i,a1
- bsr piirra_image
- rts
- ota_myrkky
- cmp.b #9,d0
- bne.s ota_happo
- bset.b #2,kanto
- moveq #0,d0
- move.w #240,d1
- move.l #myrkky_i,a1
- bsr piirra_image
- rts
- ota_happo
- cmp.b #$b,d0
- bne.s ota_pois
- addi.b #4,hlaskuri
- moveq #0,d0
- move.w #224,d1
- move.l #happo_i,a1
- bsr piirra_image
- bsr kirjoita_happo
- rts
- ota_pois
- rts
-
- piirra_image
- movea.l rport,a0
- movea.l intbase,a6
- jsr _LVODrawImage(a6)
- rts
-
- ei_esinetta
- bsr do_voice_hit
- rts
-
- ota_kr
- bsr sprite_paikka
- btst.b #0,kanto
- beq.s ota_kr_pois
- moveq #0,d0
- move.l rport,a1
- move.l grbase,a6
- jsr _LVOSetAPen(a6)
- moveq #16,d0
- move.w #240,d1
- moveq #31,d2
- move.w #255,d3
- move.l rport,a1
- move.l grbase,a6
- jsr _LVORectFill(a6)
- bclr.b #0,kanto
- bset.b #1,kanto
- move.b x,kpaikkax
- move.b y,kpaikkay
- moveq #7,d0
- bsr draw_box
- ota_kr_pois
- rts
-
- pyyhi_ruutu
- move.l grbase,a6
- move.l rport,a1
- moveq #0,d0
- jsr _LVOSetAPen(a6)
- moveq #0,d0 ; nollataan ensin rekisteri, koska x tyyppiä byte
- moveq #0,d1 ; nollataan ensin rekisteri, koska y tyyppiä byte
- move.b x,d0
- move.b y,d1
- lsl.w #4,d0
- lsl.w #4,d1
- move.w d0,d2
- add.w #15,d2
- move.w d1,d3
- add.w #15,d3
- move.l rport,a1
- jsr _LVORectFill(a6)
- bsr nollaa_taulukko
- rts
- nollaa_taulukko
- bsr etsi_kenttaos
- move.l nkenttaos,a0
- moveq.l #0,d0
- move.b x,d0
- lsr.b #1,d0
- moveq.l #0,d1
- move.b y,d1
- mulu #10,d1
- add.b d1,d0
- btst.b #0,x
- beq.s nollaa_p
- and.b #$f0,0(a0,d0.w)
- bra nollaa_pois
- nollaa_p
- and.b #$f,0(a0,d0.w)
- nollaa_pois
- rts
-
- energia_mittari
- ;piirretään muuttujassa energia oleva luku palkkina
- movea.l rport,a1
- moveq #12,d0
- move.l grbase,a6
- jsr _LVOSetAPen(a6)
- move.l rport,a1
- moveq #40,d0
- move.w #226,d1
- jsr _LVOMove(a6)
- move.l rport,a1
- moveq #4,d0
- move.l #epoints,a0
- jsr _LVOPolyDraw(a6)
- moveq #0,d0
- move.l rport,a1
- jsr _LVOSetAPen(a6)
- moveq #41,d0
- move.w #227,d1
- move.w #296,d2
- move.w #233,d3
- move.l rport,a1
- jsr _LVORectFill(a6)
- moveq #1,d0
- move.l rport,a1
- jsr _LVOSetAPen(a6)
- moveq #41,d0
- move.w #227,d1
- move.w d0,d2
- move.w #233,d3
- add.w energia,d2
- move.l rport,a1
- jsr _LVORectFill(a6)
- move.l rport,a1
- moveq #0,d0
- jsr _LVOSetAPen(a6)
- rts
-
- kallot
- move.b #0,v_sprite
- move.b #0,suunta
- sub.b #1,elaskuri
- and.b #$f,elaskuri
- bne.s kallot_pois
- tst.b hlaskuri
- bne happo_laskut
- lsr.w energia
- lsr.w energia
- bsr do_voice_aaah
- bsr energia_mittari
- move.l intbase,a6
- move.l cscreen,a0
- jsr _LVODisplayBeep(a6)
- kallot_pois
- rts
- happo_laskut
- subi.b #1,hlaskuri
- bsr kirjoita_happo
- bsr do_voice_chiump
- rts
-
- energy_loss
- tst.w energia
- beq.s energy_loppu
- sub.w #1,evlaskuri
- and.w #$1ff,evlaskuri
- bne kallot_pois
- sub.w #1,energia
- bsr energia_mittari
- rts
- energy_loppu
- move.b #1,lopetus
- rts
-
- gaboom
- btst.b #1,kanto
- beq gaboom_loppu
- sub.b #1,klaskuri
- and.b #$7f,klaskuri
- bne gaboom_loppu
- bsr do_voice_buum
- move.l rport,a1
- move.b #0,d0
- move.l grbase,a6
- jsr _LVOSetAPen(a6)
- move.b kpaikkax,x
- move.b kpaikkay,y
- bsr pyyhi_ruutu
- add.b #1,x
- bsr pyyhi_ruutu
- sub.b #2,x
- bsr pyyhi_ruutu
- add.b #1,x
- add.b #1,y
- bsr pyyhi_ruutu
- sub.b #2,y
- bsr pyyhi_ruutu
- bclr.b #1,kanto
- gaboom_loppu
- rts
-
- j1_kohtaaminen
- btst #0,jekut
- beq j1_kohtaaminen_loppu
- bsr sprite_paikka
- move.w j1_spritex,d0
- add.w #7,d0
- lsr.w #4,d0
- cmp.b x,d0
- bne j1_kohtaaminen_loppu
- move.w j1_spritey,d0
- add.w #7,d0
- lsr.w #4,d0
- cmp.b y,d0
- bne j1_kohtaaminen_loppu
- move.b #0,v_sprite
- btst.b #2,kanto
- beq.s j1_koht_jatko
- moveq #0,d0
- move.l rport,a1
- move.l grbase,a6
- jsr _LVOSetAPen(a6)
- moveq #0,d0
- move.w #240,d1
- moveq #15,d2
- move.w #255,d3
- move.l rport,a1
- move.l grbase,a6
- jsr _LVORectFill(a6)
- bsr do_voice_chiump
- bclr.b #2,kanto
- bclr #0,jekut
- move.l #0,a0
- move.l #sprite2,a1
- move.w #321,d0
- move.l grbase,a6
- jsr _LVOMoveSprite(a6)
- rts
- j1_koht_jatko
- sub.b #1,elaskuri
- and.b #$f,elaskuri
- bne.s j1_kohtaaminen_loppu
- lsr.w energia
- bsr do_voice_aaah
- bsr energia_mittari
- move.l intbase,a6
- move.l cscreen,a0
- jsr _LVODisplayBeep(a6)
- j1_kohtaaminen_loppu
- rts
-
- j1_suunta_lupa
- move.w j1_spritex,d0
- move.w j1_spritey,d1
- bsr suunta_xy
- cmp.b #1,d0
- beq.s j1_suunta_lloppu
- cmp.b #5,d0
- beq.s j1_suunta_lloppu
- cmp.b #8,d0
- beq.s j1_suunta_lloppu
- cmp.b #10,d0
- beq.s j1_suunta_lloppu
- move.b xm,x
- move.b ym,y
- bsr etsi_ruutu
- cmp.b #1,d0
- beq.s j1_suunta_lloppu
- cmp.b #5,d0
- beq.s j1_suunta_lloppu
- cmp.b #8,d0
- beq.s j1_suunta_lloppu
- cmp.b #10,d0
- beq.s j1_suunta_lloppu
- clr.l d0
- j1_suunta_lloppu
- rts
- jekku_testit
- btst #0,jekut
- bne.s jekku_loppu
- sub.w #1,j1laskuri
- and.w #$3ff,j1laskuri
- bne.s jekku_loppu
- bset #0,jekut
- move.l #j1_koord,a0
- moveq #0,d0
- move.b nkentta,d0
- lsl.w #2,d0
- move.w 0(a0,d0.w),d1
- move.w 2(a0,d0.w),d0
- move.w d1,j1_spritex
- move.w d0,j1_spritey
- jekku_loppu
- rts
-
- jekku_ohjaus
- sub.w #1,jekkulaskuri
- and.w #$1ff,jekkulaskuri
- bne jekku_loppu
- bsr j1_kohtaaminen
- btst #0,jekut
- beq jekku_loppu
- bsr jekku1
- rts
-
- jekku1
- sub.w #1,animlaskuri ; animlaskuri määrää, kuinka usein haukotellaan
- and.w #$ff,animlaskuri
- bne jekku1_apois1
- move.b #-1,frames ; asetetaan animaatio päälle
- move.b #0,frame ; frame antaa imagen numeron
- move.w #2,framelaskuri ; määrätään haukotuksen nopeus
- bsr do_voice_roar
- jekku1_apois1
- cmp.b #0,frames
- beq jekku1_apois2
- bsr jekku_animaatio
- jekku1_apois2
- bsr j1_suunta_valinta
- move.b sprite_suunta,d0
- tst.b d0
- beq.s jekku1_loppu
- move.w j1_spritex,d1
- move.w j1_spritey,d2
- bsr spriten_liike
- move.w d1,j1_spritex
- move.w d2,j1_spritey
- move.w d1,d0
- move.w d2,d1
- move.l #0,a0
- move.l grbase,a6
- move.l #sprite2,a1
- jsr _LVOMoveSprite(a6)
- jekku1_loppu
- rts
-
- jekku_animaatio
- subq.w #1,framelaskuri ; framelaskuri määrää, kuinka kauan framea näytetään
- bne jekku_animaatio_pois
- move.w #2,framelaskuri ; määrätään haukotuksen nopeus
- moveq #0,d0
- move.b frame,d0
- lea spritedata2,a2
- move.l 0(a2,d0.w),a2 ; haettiin spritedatan osoite
- cmp.l #0,a2
- beq jekku_animaatio_stop ; viimeinen frame on jo piirretty
- move.l #0,a0
- move.l #sprite2,a1
- move.l grbase,a6
- jsr _LVOChangeSprite(a6)
- add.b #4,frame
- jekku_animaatio_pois
- rts
- jekku_animaatio_stop
- move.b #0,frames
- rts
-
- j_c_sprite_erotus
- move.w c_spritey,d0
- sub.w j1_spritey,d0
- bsr abs_wmuunnos
- move.w d0,d1
- move.w c_spritex,d0
- sub.w j1_spritex,d0
- bsr abs_wmuunnos
- rts
- j1_suunta_valinta
- bsr j_c_sprite_erotus
- cmp.w d0,d1
- bls.s j1_suunta_py
- move.b #$81,sprite_suunta
- move.w c_spritex,d0
- cmp.w j1_spritex,d0
- beq.s j1_suunta_py
- bls.s j1_suunta_a
- move.b #1,sprite_suunta
- j1_suunta_a
- bsr j1_suunta_lupa
- tst.w d0
- bne.s j1_suunta_py
- rts
- j1_suunta_py
- move.w c_spritey,d1
- move.b #$82,sprite_suunta
- cmp.w j1_spritey,d1
- beq.s j1_suunta_va
- bls.s j1_suunta_b
- move.b #2,sprite_suunta
- j1_suunta_b
- bsr j1_suunta_lupa
- tst.w d0
- bne.s j1_suunta_va
- j1_suunta_pois
- rts
- j1_suunta_va
- move.w c_spritex,d0
- move.b #$81,sprite_suunta
- cmp.w j1_spritex,d0
- beq.s j1_suunta_d
- bls.s j1_suunta_c
- move.b #1,sprite_suunta
- j1_suunta_c
- bsr j1_suunta_lupa
- tst.w d0
- beq j1_suunta_pois
- j1_suunta_d
- move.b #0,sprite_suunta
- rts
-
- abs_muunnos
- ;otetaan itseisarvo d0:sta
- tst.b d0
- bmi.s abs_m
- bra.s abs_p
- abs_m
- neg.b d0
- abs_p
- rts
-
- abs_wmuunnos
- ;otetaan itseisarvo d0:sta
- tst.w d0
- bmi.s abs_wm
- bra.s abs_wp
- abs_wm
- neg.w d0
- abs_wp
- rts
-
- pallo_poisto
- move.l rport,a1
- move.b #0,d0
- move.l grbase,a6
- jsr _LVOSetAPen(a6)
- moveq #0,d0
- move.b henget,d0
- mulu #18,d0
- add.b #28,d0
- move.w #240,d1
- move.w d0,d2
- add.w #16,d2
- move.w #255,d3
- move.l rport,a1
- jsr _LVORectFill(a6)
- rts
-
- pallo_piirto
- move.b #46,x
- pploop
- moveq #0,d0
- move.b x,d0
- move.w #240,d1
- move.l #pallo_i,a1
- bsr piirra_image
- add.b #18,x
- cmp.b #100,x
- blt pploop
- bsr esine_poisto
- rts
-
- esine_poisto
- move.l rport,a1
- move.l grbase,a6
- moveq #0,d0
- jsr _LVOSetAPen(a6)
- move.l rport,a1
- move.l grbase,a6
- moveq #0,d0
- move.w #224,d1
- moveq #31,d2
- move.w #255,d3
- jsr _LVORectFill(a6)
- rts
-
- game_over_screen
- move.l intbase,a6 ;hiiren pointteri näkyviin
- move.l cwindow,a0
- move.l #pointer2,a1
- moveq #16,d0
- moveq #16,d1
- moveq #0,d2
- moveq #0,d3
- jsr _LVOSetPointer(a6)
- move.l #0,a0
- move.l grbase,a6
- move.w #321,d0
- move.l #sprite2,a1
- jsr _LVOMoveSprite(a6)
- move.l grbase,a6
- move.l rport,a1
- moveq #0,d0
- jsr _LVOSetAPen(a6)
- move.l rport,a1
- moveq #0,d0
- moveq #0,d1
- move.w #319,d2
- move.w #255,d3
- jsr _LVORectFill(a6)
- move.l rport,a1
- moveq #9,d0
- jsr _LVOSetAPen(a6)
- move.l #msg1,a0
- move.w #27,d7
- move.w #52,d0
- move.w #80,d1
- moveq #9,d6
- bsr kirjoita
- move.l #msg2,a0
- moveq #3,d7
- move.w #68,d0
- move.w #140,d1
- moveq #9,d6
- bsr kirjoita
- move.l #msg3,a0
- move.w #6,d7
- move.w #216,d0
- move.w #140,d1
- moveq #9,d6
- bsr kirjoita
- wait_for_click
- bsr intuimessage
- tst.l d0
- beq wait_for_click
- cmp.w #$c000,d6
- bne wait_for_click
- move.l cwindow,a0
- move.l $c(a0),d6
- move.w d6,d7
- swap d6
- cmp.w #122,d6
- blt wait_for_click
- cmp.w #150,d6
- bgt wait_for_click
- cmp.w #208,d7
- blt yes
- cmp.w #272,d7
- bgt wait_for_click
- moveq #0,d0
- rts
- yes
- cmp.w #104,d7
- bgt wait_for_click
- cmp.w #56,d7
- blt wait_for_click
- moveq #1,d0
- rts
-
- game_info_screen
- move.l #0,a0
- move.l grbase,a6
- move.w #321,d0
- move.l #sprite2,a1
- jsr _LVOMoveSprite(a6)
- move.l #0,a0
- move.l grbase,a6
- move.w #321,d0
- move.l #sprite1,a1
- jsr _LVOMoveSprite(a6)
- move.l grbase,a6
- move.l rport,a1
- moveq #0,d0
- jsr _LVOSetAPen(a6)
- move.l grbase,a6
- move.l rport,a1
- moveq #0,d0
- moveq #0,d1
- move.w #319,d2
- move.w #223,d3
- jsr _LVORectFill(a6)
- ;*** seuraavaksi kirjoitetaan tekstit
- moveq #108,d4
- lea info,a4
- lea infolen,a3
- moveq #0,d7
- info_loop
- subq #4,d4
- move.l d4,d5
- lsr.w #2,d5
- move.l 0(a4,d4.w),a0 ; tekstin osoite
- move.b 0(a3,d5.w),d7 ; tekstin pituus
- moveq #0,d0
- moveq #8,d1
- move.l d4,d5
- lsl.l #1,d5
- add.l d5,d1
- moveq #11,d6
- bsr kirjoita
- tst.b d4
- bne info_loop
- ;***
- wait_for_key
- bsr intuimessage
- tst.l d0
- beq wait_for_key
- cmp.w #RAWKEY,d5
- bne wait_for_key
- btst.l #7,d4
- bne wait_for_key
- rts
-
- info_clear
- ;*** palataan peliin
- bsr tee_kentta_b
- move.l #0,a0
- move.l #sprite1,a1
- move.w c_spritex,d0
- move.w c_spritey,d1
- move.l grbase,a6
- jsr _LVOMoveSprite(a6)
- move.w j1_spritex,d0
- move.w j1_spritey,d1
- move.l #0,a0
- move.l grbase,a6
- move.l #sprite2,a1
- jsr _LVOMoveSprite(a6)
- rts
-
- kirjoita
- ;d7:ssa on tekstin pituus
- ;d6:ssa on väri
- ;a0:ssa on tekstin osoite
- ;d0:ssa on x-koord.
- ;d1:ssa on y-koord.
- move.l grbase,a6
- move.l rport,a1
- jsr _LVOMove(a6)
- move.l rport,a1
- move.l d6,d0
- jsr _LVOSetAPen(a6)
- move.l rport,a1
- move.w d7,d0
- jsr _LVOText(a6)
- rts
-
- alusta_kentta
- ;muistin varaus
- move.l #2940,d0 ; 21 kenttää
- moveq.l #0,d1
- movea.l 4,a6
- jsr _LVOAllocMem(a6)
- ;muistin osoite on d0:ssa
- tst.l d0
- beq.s ei_kartta_muistia
- move.l d0,kenttac
-
- lea kentat,a0
- moveq #20,d1
- alusta_kentta_loop
- move.l d0,(a0)
- add.l #140,d0
- add.l #4,a0
- dbra d1,alusta_kentta_loop
- alusta_kentta_pois
- rts
-
- ei_kartta_muistia
- lea msg6,a1
- move.l #msglen6,d3
- bsr valitukset_ei_tiedosto
- bsr GURU
- moveq #0,d0
- bra.s alusta_kentta_pois
-
- Lataa
- move.l a6,-(sp)
-
- ; Argumentit : (name,buffer,length)
- ; tiedoston nimen osoite a0:ssa
- ; nimen pituus d1:ssä
- ; tiedoston koko d6:ssa
- ; muistin osoite d7:ssa
- ; avataan tiedosto
- ; lea maps,a0
- move.l d1,nimipituus ; nimen pituus myhempää kirjoittamista varten
- move.l a0,tiedosto ; myöhempää nimen kirjoittamista varten
- move.l a0,d1 ; Nimen osoite : name
- move.l #MODE_OLDFILE,d2 ; accessMode
- movea.l dosbase,a6
- jsr _LVOOpen(a6)
- tst.l d0 ; jos tulos on nolla, tiedostoa ei ole
- beq.s ei_tiedostoa
-
- ; tiedosto saatiin avattua
- move.l d0,filehandle ;tiedoston tunnus muistiin
- move.l d0,d1
- move.l d7,d2 ; osoite muistiin, jonne kirjoitetaan : buffer
- move.l d6,d3 ; muistiblokin koko : length
- movea.l dosbase,a6
- jsr _LVORead(a6)
- cmp.l d6,d0
- bne.s ei_tiedostoa
-
- ; suljetaan tiedosto
- move.l filehandle,d1
- movea.l dosbase,a6
- jsr _LVOClose(a6)
- moveq #-1,d0
- lataa_loppu
- move.l (sp)+,a6
- rts
-
- ei_tiedostoa
- move.l tiedosto,a1
- move.l nimipituus,d3
- bsr valitukset
- bsr GURU
- moveq #0,d0
- bra.s lataa_loppu
-
- valitukset
- ; a1:ssa tiedoston nimi, d3:ssa nimenpituus
- moveq #0,d5
- lea valitus,a0
- lea msg7b,a2 ; "Tiedosto "
- move.w #msglen7b,d0
- move.w d0,d5
- valitukset_loop1
- move.b -1(a2,d0.w),-1(a0,d0.w)
- subq #1,d0
- bne valitukset_loop1
-
- add.w d3,d5
- move.l d5,d4
- valitukset_loop2
- move.b -1(a1,d3.w),-1(a0,d4.w)
- subq #1,d4
- subq #1,d3
- bne valitukset_loop2
-
- lea msg7,a2 ; " ei avaudu."
- move.w #msglen7,d0
- add.w d0,d5
- move.l d5,d4
- valitukset_loop3
- move.b -1(a2,d0.w),-1(a0,d4.w)
- subq #1,d4
- subq #1,d0
- bne valitukset_loop3
-
- bsr lisaa_hiiri
- rts
-
- valitukset_ei_tiedosto
- ; a1:ssa teksti, d3:ssa tekstinpituus
- moveq #0,d5
- lea valitus,a0
- move.w d3,d5
- valitukset_et_loop1
- move.b -1(a1,d3.w),-1(a0,d3.w)
- subq #1,d3
- bne valitukset_et_loop1
-
- bsr lisaa_hiiri
- rts
-
- lisaa_hiiri
- lea msg12,a2
- move.w #msglen12,d0
- add.w d0,d5
- move.l d5,d4
- valitukset_loop4
- move.b -1(a2,d0.w),-1(a0,d4.w)
- subq #1,d4
- subq #1,d0
- bne valitukset_loop4
- rts
-
- GURU
- ; d0:ssa AlertNumber,a0:ssa String, d1:ssä Height
- movea.l intbase,a6
- moveq #0,d0
- moveq #28,d1
- jsr _LVODisplayAlert(a6)
- rts
-
- ;******
-
- init_audio
-
- move.l #ioa_SIZEOF,d0
- move.l #(MEMF_CLEAR!MEMF_CHIP),d1
- move.l 4,a6
- jsr _LVOAllocMem(a6)
- move.l d0,aumsg
- beq ei_chip_muistia
-
- move.l #39912,d0
- move.l #MEMF_CHIP,d1
- move.l 4,a6
- jsr _LVOAllocMem(a6)
- move.l d0,audiodata
- beq ei_chip_muistia
-
- lea bell,a0
- move.l #belllen,d1
- move.l #16462,d6
- move.l audiodata,d7
- move.l d7,voice_bell
- bsr Lataa
- tst.l d0
- beq init_audio_pois
-
- lea aaah,a0
- move.l #aaahlen,d1
- add.l d6,d7
- move.l d7,voice_aaah
- move.l #2792,d6
- bsr Lataa
- tst.l d0
- beq init_audio_pois
-
- lea hit,a0
- move.l #hitlen,d1
- add.l d6,d7
- move.l d7,voice_hit
- move.l #720,d6
- bsr Lataa
- tst.l d0
- beq init_audio_pois
-
- lea buum,a0
- move.l #buumlen,d1
- add.l d6,d7
- move.l d7,voice_buum
- move.l #7738,d6
- bsr Lataa
- tst.l d0
- beq init_audio_pois
-
- lea boing,a0
- move.l #boinglen,d1
- add.l d6,d7
- move.l d7,voice_boing
- move.l #3648,d6
- bsr Lataa
- tst.l d0
- beq init_audio_pois
-
- lea chiump,a0
- move.l #chiumplen,d1
- add.l d6,d7
- move.l d7,voice_chiump
- move.l #5016,d6
- bsr Lataa
- tst.l d0
- beq init_audio_pois
-
- lea roar,a0
- move.l #roarlen,d1
- add.l d6,d7
- move.l d7,voice_roar
- move.l #3536,d6
- bsr Lataa
- tst.l d0
- beq init_audio_pois
-
- move.l aumsg,a1
- lea allocbits,a0
- move.l a0,ioa_Data(a1)
- move.l #4,ioa_Length(a1)
- move.l #0,MN_REPLYPORT(a1)
- move.b #127,LN_PRI(a1)
- move.b #ADIOF_NOWAIT,IO_FLAGS(a1)
-
- lea audioname,a0
- moveq #0,d0
- moveq #0,d1
- move.l 4,a6
- jsr _LVOOpenDevice(a6)
- tst.l d0
- bne ei_audiota
-
- move.l aumsg,a0
- move.l IO_UNIT(a0),unit
- ; move.l #0,MN_REPLYPORT(a0)
- move.l IO_DEVICE(a0),audev
- move.l ioa_AllocKey(a0),allockey
- moveq #-1,d0
- init_audio_pois
- rts
-
- ei_audiota
- lea amsg1,a1
- move.l #amsglen1,d3
- bsr valitukset_ei_tiedosto
- bsr GURU
- moveq #0,d0
- bra.s init_audio_pois
-
- ei_chip_muistia
- lea msg5,a1
- move.l #msglen5,d3
- bsr valitukset_ei_tiedosto
- bsr GURU
- moveq #0,d0
- bra.s init_audio_pois
-
- voice_out
- ; annetaan a0:ssa osoite messagedataan
- moveq #13,d1
- move.l aumsg,a1
- voice_out_loop
- move.b 0(a0,d1.w),ioa_Data(a1,d1.w)
- dbra d1,voice_out_loop
-
- ; move.l audiodata,ioa_Data(a1)
- ; move.w allockey,ioa_AllocKey(a1)
- move.w #CMD_WRITE,IO_COMMAND(a1)
- ; move.l unit,IO_UNIT(a1)
- move.b #(ADIOF_NOWAIT!ADIOF_PERVOL),IO_FLAGS(a1)
-
- move.l aumsg,a1
- move.l a1,-(sp)
- jsr _BeginIO
- move.l (sp)+,a1
-
- rts
-
- do_voice_bell
- move.l aumsg,a1
- move.l 4,a6
- jsr _LVOAbortIO(a6)
- lea voice_bell,a0
- bsr voice_out
- rts
-
- do_voice_aaah
- move.l aumsg,a1
- move.l 4,a6
- jsr _LVOAbortIO(a6)
- lea voice_aaah,a0
- bsr voice_out
- rts
-
- do_voice_hit
- move.l aumsg,a1
- move.l 4,a6
- jsr _LVOAbortIO(a6)
- lea voice_hit,a0
- bsr voice_out
- rts
-
- do_voice_buum
- move.l aumsg,a1
- move.l 4,a6
- jsr _LVOAbortIO(a6)
- lea voice_buum,a0
- bsr voice_out
- rts
-
- do_voice_boing
- move.l aumsg,a1
- move.l 4,a6
- jsr _LVOAbortIO(a6)
- lea voice_boing,a0
- bsr voice_out
- rts
-
- do_voice_chiump
- move.l aumsg,a1
- move.l 4,a6
- jsr _LVOAbortIO(a6)
- lea voice_chiump,a0
- bsr voice_out
- rts
-
- do_voice_roar
- move.l aumsg,a1
- move.l 4,a6
- jsr _LVOAbortIO(a6)
- lea voice_roar,a0
- bsr voice_out
- rts
-
- free_audio
- move.l aumsg,a1
- move.l audev,d1
- tst.l d1
- beq free_audio_pois
- move.l 4,a6
- ; jsr _LVOAbortIO(a6)
-
- ; move.w allockey,ioa_AllocKey(a1)
- move.w #ADCMD_FREE,IO_COMMAND(a1)
- move.b #IOF_QUICK,IO_FLAGS(a1)
- ; move.l unit,IO_UNIT(a1)
- move.l 4,a6
- jsr _LVODoIO(a6)
-
- move.l aumsg,a1
- move.l 4,a6
- jsr _LVOCloseDevice(a6)
-
- free_audio_pois
- rts
-
- ;******
- VapautaMuistit
- move.l cwindow,a0
- cmpa.l #0,a0
- beq VM0
- move.l intbase,a6
- jsr _LVOCloseWindow(a6)
- VM0
- move.l cscreen,a0
- cmpa.l #0,a0
- beq VM1
- ; move.l intbase,a6
- jsr _LVOCloseScreen(a6)
- VM1
- move.l kenttac,a1
- cmpa.l #0,a1
- beq VM2
- move.l #2940,d0
- move.l 4,a6
- jsr _LVOFreeMem(a6)
- VM2
- move.l aumsg,a1
- move.l #ioa_SIZEOF,d0
- cmpa.l #0,a1
- beq VM7
- ; move.l 4,a6
- jsr _LVOFreeMem(a6)
- VM7
- move.l audiodata,a1
- move.l #39912,d0
- cmpa.l #0,a1
- beq VM8
- ; move.l 4,a6
- jsr _LVOFreeMem(a6)
- VM8
- rts
-
- ;**************************************************
-
- ; DATA ALUE
- henget dc.b 0
- addr dc.l 0
- lenght dc.l 0
- kanta dc.l 0
- returnmsg dc.l 0
- string dc.b '********',32,10
- intname dc.b 'intuition.library',0
- dosname dc.b 'dos.library',0
- grname dc.b 'graphics.library',0
- audioname dc.b 'audio.device',0
- valitus dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- dc.l 0,0 ; mahtuu 128 merkkiä
-
- intbase ds.l 1
-
- newwindow
- dc.w 0
- dc.w 0
- dc.w 320
- dc.w 256
- dc.b -1
- dc.b -1
- dc.l MOUSEBUTTONS!MOUSEMOVE!RAWKEY!DELTAMOVE
- dc.l REPORTMOUSE!BORDERLESS!ACTIVATE!RMBTRAP
- dc.l 0
- dc.l 0
- dc.l 0
- dc.l 0 ;screen addr
- dc.l 0
- dc.w 0
- dc.w 0
- dc.w 0
- dc.w 0
- dc.w $f
-
- newscreen
- dc.w 0
- dc.w 0
- dc.w 320
- dc.w 256
- dc.w 4
- dc.b 0
- dc.b 1
- dc.w 0
- dc.w $f
- dc.l 0
- dc.l 0
- dc.l 0
- dc.l 0
-
- suo_i ;kynät 0 ja 2
- dc.w 0,0
- dc.w 16,16,1
- dc.l suo_id
- dc.b 2,0
- dc.w 0,0
- exit_i ;kynät 0, 1, 4 ja 5
- dc.w 0,0
- dc.w 16,16,2
- dc.l exit_id
- dc.b 5,0
- dc.w 0,0
- muuri_i ;kynät 1, 3, 5 ja 7
- dc.w 0,0
- dc.w 16,16,2
- dc.l muuri_id
- dc.b 6,1
- dc.w 0,0
- kivi_i ;kynät 0, 4, 8 ja 12
- dc.w 0,0
- dc.w 16,16,2
- dc.l kivi_id
- dc.b 12,0
- dc.w 0,0
- kallo_i ;kynät 0, 4, 8 ja 12
- dc.w 0,0
- dc.w 16,16,2
- dc.l kallo_id
- dc.b 12,0
- dc.w 0,0
- pullo_i ;kynät 0, 2, 8 ja 10
- dc.w 0,0
- dc.w 16,16,2
- dc.l pullo_id
- dc.b 10,0
- dc.w 0,0
- kranaatti_i ;kynät 0, 2, 4 ja 6
- dc.w 0,0
- dc.w 16,16,2
- dc.l kranaatti_id
- dc.b 6,0
- dc.w 0,0
- portti_i ;kynät 0, 1, 4 ja 5
- dc.w 0,0
- dc.w 16,16,2
- dc.l portti_id
- dc.b 5,0
- dc.w 0,0
- pallo_i ;kynät 0, 4, 8 ja 12
- dc.w 0,0
- dc.w 16,16,2
- dc.l pallo_id
- dc.b 12,0
- dc.w 0,0
- myrkky_i ;kynät 0, 1, 8 ja 9
- dc.w 0,0
- dc.w 16,16,2
- dc.l myrkky_id
- dc.b 9,0
- dc.w 0,0
- linko_i ;kynät 12, 13, 14 ja 15
- dc.w 0,0
- dc.w 16,16,2
- dc.l linko_id
- dc.b 3,12
- dc.w 0,0
- happo_i ;kynät 9, 11, 13 ja 15
- dc.w 0,0
- dc.w 16,16,2
- dc.l happo_id
- dc.b 6,9
- dc.w 0,0
-
- spritedata2
- dc.l spritedata2b
- dc.l spritedata2c
- dc.l spritedata2d
- dc.l spritedata2e
- dc.l spritedata2d
- dc.l spritedata2c
- dc.l spritedata2b
- dc.l spritedata2a
- dc.l 0
-
- sprite1
- dc.l spritedata1
- dc.w 16
- dc.w 20,20,2
-
- cnop 0,2
-
- sprite2
- dc.l spritedata2a
- dc.w 16
- dc.w 20,20,3
- sprite0
- dc.l pointer
- dc.w 1
- dc.w 20,20,1
-
- kentat
- dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- colormap
- dc.w $0333,$0d86,$0111,$0a64
- dc.w $0000,$0742,$0353,$0420
- dc.w $023f,$0ff3,$081f,$01f6
- dc.w $0fff,$0800,$0f70,$0333
- dc.w $0a64,$0cff,$019e,$0f90
- dc.w $0444,$0002,$0779,$0ddf
- dc.w $0555,$0002,$0779,$0ddf
- dc.w $0999,$0002,$0779,$0ddf
-
- epoints
- dc.w 297,226
- dc.w 297,234
- dc.w 40,234
- dc.w 40,226
-
- box_images
- dc.l muuri_i ; image n:o $1
- dc.l suo_i ; image n:o $2
- dc.l exit_i ; image n:o $3
- dc.l kivi_i ; image n:o $4
- dc.l kallo_i ; image n:o $5
- dc.l pullo_i ; image n:o $6
- dc.l kranaatti_i ; image n:o $7
- dc.l portti_i ; image n:o $8
- dc.l myrkky_i ; image n:o $9
- dc.l linko_i ; image n:o $A
- dc.l happo_i ; image n:o $B
- j1_koord
- dc.w 18,18
- dc.w 144,128
- dc.w 18,80
- dc.w 288,160
- dc.w 192,18
- dc.w 160,192
- dc.w 192,64
- dc.w 144,48
- dc.w 160,48
- dc.w 16,128
- dc.w 16,16
- dc.w 32,32
- dc.w 192,80
- dc.w 64,160
- dc.w 208,192
- dc.w 240,96
- dc.w 176,112
- dc.w 240,32
- dc.w 160,48
- dc.w 16,176
- dc.w 16,128
- kenttac ds.l 1
- filehandle dc.l 0
- tiedosto dc.l 0
- nimipituus dc.l 0
- dosbase ds.l 1
- grbase ds.l 1
- cscreen ds.l 1
- cwindow ds.l 1
- rport ds.l 1
- vport ds.l 1
- dloop dc.l 0
- x dc.b 0
- y dc.b 0
- nkentta dc.b 0
- numsprite dc.b 0,0,0
- nkenttaos dc.l 0
- ym dc.l 0
- xm dc.l 0
- kivet dc.b 0
- energia dc.w 255
- msg1 dc.b 'Do you want to play again ?'
- msg2 dc.b 'YES'
- msg3 dc.b '..no..'
- ;********** GAME CONTROL DATA ************
- suunta dc.b 0
- sprite_suunta dc.b 0
- c_suunta dc.b 0
- c_spritex dc.w 321
- c_spritey dc.w 0
- a_spritex dc.w 0
- a_spritey dc.w 0
- j1_spritex dc.w 321
- j1_spritey dc.w 0
- v_sprite dc.b 0
- nlaskuri dc.b 1
- vhlaskuri dc.b 0
- solaskuri dc.w 0
- txlaskuri dc.b 0
- elaskuri dc.b 0
- hlaskuri dc.b 0
- evlaskuri dc.w 0
- klaskuri dc.b 0
- j1laskuri dc.w 0
- jekkulaskuri dc.w 0
- jekut dc.w 0
- kpaikkax dc.b 0
- kpaikkay dc.b 0
- lopetus dc.b 0
- kanto dc.b 0
-
- ;********************
-
- audiodata dc.l 0
- audev dc.l 0
- unit dc.l 0
- aumsg dc.l 0
- allockey dc.w 0
- allocbits dc.b 1,2,4,8
-
- animlaskuri dc.w 0
- framelaskuri dc.w 0
- frames dc.b 0
- frame dc.b 0
-
- voice_bell
- dc.l 0 ; ioa_Data
- dc.l 16462 ; ioa_Length
- dc.w 300 ; ioa_Period
- dc.w 63 ; ioa_Volume
- dc.w 1 ; ioa_Cycles
-
- voice_aaah
- dc.l 0 ; ioa_Data
- dc.l 2792 ; ioa_Length
- dc.w 300 ; ioa_Period
- dc.w 63 ; ioa_Volume
- dc.w 1 ; ioa_Cycles
-
- voice_hit
- dc.l 0 ; ioa_Data
- dc.l 720 ; ioa_Length
- dc.w 300 ; ioa_Period
- dc.w 63 ; ioa_Volume
- dc.w 1 ; ioa_Cycles
-
- voice_buum
- dc.l 0 ; ioa_Data
- dc.l 7738 ; ioa_Length
- dc.w 300 ; ioa_Period
- dc.w 63 ; ioa_Volume
- dc.w 1 ; ioa_Cycles
-
- voice_boing
- dc.l 0 ; ioa_Data
- dc.l 3648 ; ioa_Length
- dc.w 300 ; ioa_Period
- dc.w 63 ; ioa_Volume
- dc.w 1 ; ioa_Cycles
-
- voice_chiump
- dc.l 0 ; ioa_Data
- dc.l 5016 ; ioa_Length
- dc.w 300 ; ioa_Period
- dc.w 63 ; ioa_Volume
- dc.w 1 ; ioa_Cycles
-
- voice_roar
- dc.l 0 ; ioa_Data
- dc.l 3536 ; ioa_Length
- dc.w 300 ; ioa_Period
- dc.w 63 ; ioa_Volume
- dc.w 1 ; ioa_Cycles
-
- amsg1 dc.b 0,208,11,'Can''t open audio.device !',0,1
- amsglen1 equ *-amsg1
-
- ;**
- msg0 dc.b 'DekaQuest V1.0 © Leo Puolamaa May 1991',$0a
- msglen0 equ *-msg0
- dc.b 0
- msg4 dc.b 0,216,11,'Screen won''t open.',0,1
- msglen4 equ *-msg4
- msg5 dc.b 0,216,11,'Out of CHIP_MEM !',0,1
- msglen5 equ *-msg5
- msg6 dc.b 0,216,11,'Map memory won''t open.',0,1
- msglen6 equ *-msg6
- msg7 dc.b ' won''t open.',0,1
- msglen7 equ *-msg7
- msg7b dc.b 0,172,11,'File '
- msglen7b equ *-msg7b
- msg8 dc.b 0,216,11,'No sprites !',0,1
- msglen8 equ *-msg8
- msg9 dc.b 'Level :'
- msglen9 equ *-msg9
- dc.b 0
- msg10 dc.b 'DiamondQuest © Leo Puolamaa'
- msglen10 equ *-msg10
- dc.b 0
- msg11 dc.b 'GAME PAUSED'
- msglen11 equ *-msg11
- dc.b 0
- msg12 dc.b 0,172,21,'Press a mouse button to continue...',0,0
- msglen12 equ *-msg12
- msg13 dc.b 'Amazing,how on earth did you do it?!'
- msglen13 equ *-msg13
- dc.b 0
- cnop 0,2
- info
- dc.l info0
- dc.l info1
- dc.l info2
- dc.l info3
- dc.l info4
- dc.l info5
- dc.l info6
- dc.l info7
- dc.l info8
- dc.l info9
- dc.l info10
- dc.l info11
- dc.l info12
- dc.l info13
- dc.l info14
- dc.l info15
- dc.l info16
- dc.l info17
- dc.l info18
- dc.l info19
- dc.l info20
- dc.l info21
- dc.l info22
- dc.l info23
- dc.l info24
- dc.l info25
- dc.l info26
-
- infolen
- dc.b infolen0
- dc.b infolen1
- dc.b infolen2
- dc.b infolen3
- dc.b infolen4
- dc.b infolen5
- dc.b infolen6
- dc.b infolen7
- dc.b infolen8
- dc.b infolen9
- dc.b infolen10
- dc.b infolen11
- dc.b infolen12
- dc.b infolen13
- dc.b infolen14
- dc.b infolen15
- dc.b infolen16
- dc.b infolen17
- dc.b infolen18
- dc.b infolen19
- dc.b infolen20
- dc.b infolen21
- dc.b infolen22
- dc.b infolen23
- dc.b infolen24
- dc.b infolen25
- dc.b infolen26
-
- info0 dc.b ' «** DiamondQuest **»'
- infolen0 equ *-info0
- info1 dc.b ' --------------------'
- infolen1 equ *-info1
- info2 dc.b ' Welcome to the world of games. This'
- infolen2 equ *-info2
- info3 dc.b 'time you are a grey ball and have just'
- infolen3 equ *-info3
- info4 dc.b 'entered a great maze to pick up some'
- infolen4 equ *-info4
- info5 dc.b 'diamonds and get rich. There are 20'
- infolen5 equ *-info5
- info6 dc.b 'levels each containing five diamonds.'
- infolen6 equ *-info6
- info7 dc.b 'Exit to the next level becomes available'
- infolen7 equ *-info7
- info8 dc.b 'after you have collected all diamonds'
- infolen8 equ *-info8
- info9 dc.b 'on the current level. Although you are'
- infolen9 equ *-info9
- info10 dc.b 'not immortal, you still have four lives.'
- infolen10 equ *-info10
- info11 dc.b 'To roll around you drag the mouse to the'
- infolen11 equ *-info11
- info12 dc.b 'desired direction. To perform some'
- infolen12 equ *-info12
- info13 dc.b 'important actions you may use these'
- infolen13 equ *-info13
- info14 dc.b 'commands :'
- infolen14 equ *-info14
- info15 dc.b ' '
- infolen15 equ *-info15
- info16 dc.b ' - Left mouse button to pick up things'
- infolen16 equ *-info16
- info17 dc.b ' - Right button to drop a handgrenade'
- infolen17 equ *-info17
- info18 dc.b ' - Esc for suicide'
- infolen18 equ *-info18
- info19 dc.b ' - "p" to start and end pause mode'
- infolen19 equ *-info19
- info20 dc.b ' - Help for this information'
- infolen20 equ *-info20
- info21 dc.b ' - Left & right Amiga + ctrl to reset'
- infolen21 equ *-info21
- info22 dc.b ' '
- infolen22 equ *-info22
- info23 dc.b ' © Leo Puolamaa June 1991 ,Oulu Finland'
- infolen23 equ *-info23
- info24 dc.b ' '
- infolen24 equ *-info24
- info25 dc.b ' '
- infolen25 equ *-info25
- info26 dc.b ' HIT A KEY...'
- infolen26 equ *-info26
-
- maps dc.b 'DQ:maps'
- mapslen equ *-maps
- dc.b 0
- bell dc.b 'DQ:Bell.sound'
- belllen equ *-bell
- dc.b 0
- aaah dc.b 'DQ:Aaah.sound'
- aaahlen equ *-aaah
- dc.b 0
- hit dc.b 'DQ:Hit.sound'
- hitlen equ *-hit
- dc.b 0
- buum dc.b 'DQ:Buum.sound'
- buumlen equ *-buum
- dc.b 0
- boing dc.b 'DQ:Boing.sound'
- boinglen equ *-boing
- dc.b 0
- chiump dc.b 'DQ:Chiump.sound'
- chiumplen equ *-chiump
- dc.b 0
- roar dc.b 'DQ:Roar.sound'
- roarlen equ *-roar
- dc.b 0
-
- SECTION sprites,DATA ; ladataan CHIP -muistiin
-
- pointer
- dc.w 0,0,0,0,0,0
-
- spritedata1
- dc.w 0,0
- dc.w $07e0,$0000
- dc.w $1db8,$0240
- dc.w $285c,$17a0
- dc.w $502e,$2fd0
- dc.w $478a,$3ff4
- dc.w $9fe3,$7ffc,$bff1,$7ffe,$bff3,$7ffc
- dc.w $7ffd,$fffa,$7ffb,$fffc,$7ffd,$fffa
- dc.w $7ffa,$7ffc
- dc.w $3ff2,$7ffc
- dc.w $3ff4,$3ff8
- dc.w $1ff8,$1fe0
- dc.w $07e0,$0780
- dc.w 0,0
-
- spritedata2a
- dc.w 0,0
- dc.w $03e0,$0000
- dc.w $1018,$0fe0
- dc.w $066c,$3990
- dc.w $4e72,$718c
- dc.w $4e72,$718c
- dc.w $8c31,$f3ce
- dc.w $8001,$fffe
- dc.w $a005,$fffe
- dc.w $a185,$fe7e
- dc.w $a3c5,$fc3e
- dc.w $b00d,$fffe
- dc.w $581a,$7ffc
- dc.w $4ff2,$7ffc
- dc.w $27e4,$3ff8
- dc.w $1008,$1ff0
- dc.w $07c0,$07e0
- dc.w 0,0
-
- spritedata2b
- dc.w 0,0
- dc.w $03e0,$0000
- dc.w $1018,$0fe0
- dc.w $066c,$3990
- dc.w $4e72,$718c
- dc.w $4e72,$718c
- dc.w $8c31,$f3ce
- dc.w $8001,$fffe
- dc.w $a185,$fe7e
- dc.w $a3c5,$fc3e
- dc.w $b00d,$fffe
- dc.w $b81d,$fffe
- dc.w $5ffa,$7ffc
- dc.w $4ff2,$7c3c
- dc.w $27e4,$3ff8
- dc.w $1008,$1ff0
- dc.w $07c0,$07e0
- dc.w 0,0
-
- spritedata2c
- dc.w 0,0
- dc.w $03e0,$0000
- dc.w $1018,$0fe0
- dc.w $066c,$3990
- dc.w $4e72,$718c
- dc.w $4e72,$718c
- dc.w $8c31,$f3ce
- dc.w $8181,$fe7e
- dc.w $a3c5,$fc3e
- dc.w $b00d,$fffe
- dc.w $b81d,$eff6
- dc.w $bffd,$f7ee
- dc.w $5ffa,$781c
- dc.w $4ff2,$7c3c
- dc.w $27e4,$3ff8
- dc.w $1008,$1ff0
- dc.w $07c0,$07e0
- dc.w 0,0
-
- spritedata2d
- dc.w 0,0
- dc.w $03e0,$0000
- dc.w $1018,$0fe0
- dc.w $066c,$3990
- dc.w $4e72,$718c
- dc.w $4e72,$718c
- dc.w $8c31,$f3ce
- dc.w $e3c7,$fc3e
- dc.w $f00f,$fffe
- dc.w $f81f,$cff2
- dc.w $bffd,$e7e6
- dc.w $bffd,$f00e
- dc.w $5ffa,$781c
- dc.w $4ff2,$7c3c
- dc.w $27e4,$3c38
- dc.w $17e8,$1ff0
- dc.w $07c0,$07e0
- dc.w 0,0
-
- spritedata2e
- dc.w 0,0
- dc.w $03e0,$0000
- dc.w $1018,$0fe0
- dc.w $066c,$3990
- dc.w $4e72,$718c
- dc.w $4e72,$718c
- dc.w $8db1,$f24e
- dc.w $e247,$fdbe
- dc.w $f81f,$9ff8
- dc.w $ffff,$c7e2
- dc.w $bffd,$e006
- dc.w $bffd,$f00e
- dc.w $5ffa,$781c
- dc.w $4ff2,$781c
- dc.w $27e4,$3c38
- dc.w $17e8,$1c30
- dc.w $07c0,$07e0
- dc.w 0,0
-
- pointer2
- dc.w 0,0
- dc.w $8000,$0000,$8000,$4000
- dc.w $c000,$2000,$4000,$3000
- dc.w $6000,$1800,$3000,$0c00
- dc.w $1800,$0600,$0c00,$0300
- dc.w $0604,$0184,$030e,$00ce
- dc.w $019c,$007c,$00e8,$0038
- dc.w $0058,$0068,$00fc,$0004
- dc.w $018e,$0146,$0086,$0006
- dc.w 0,0
-
- suo_id
- dc.w $6262,$1919,$9898,$4646
- dc.w $6262,$1919,$9898,$4646
- dc.w $6262,$1919,$9898,$4646
- dc.w $6262,$1919,$9898,$4646
- exit_id
- dc.w $0000,$0f60,$3ff8,$2ff8
- dc.w $7ff4,$f83e,$f39e,$f21e
- dc.w $f31e,$f21e,$f39e,$683c
- dc.w $7ff6,$3ff8,$1ff8,$07e0
-
- dc.w $07e0,$17f8,$1f7c,$5f76
- dc.w $200e,$77cf,$7c6f,$0def
- dc.w $7ce1,$7def,$7c6f,$37c6
- dc.w $0ef8,$1efc,$06e0,$0000
- muuri_id
- dc.w $7fff,$3fff,$1fff,$0fff
- dc.w $0fff,$081f,$0a1f,$0b9f
- dc.w $0b9f,$0bdf,$081f,$0fff
- dc.w $1007,$2003,$4001,$8000
-
- dc.w $ffff,$7fff,$3fff,$1fff
- dc.w $000f,$07ef,$062f,$062f
- dc.w $062f,$07ef,$07ef,$000f
- dc.w $000f,$0007,$0003,$0001
- kivi_id
- dc.w $0000,$0000,$03c0,$07f0
- dc.w $07f8,$03f8,$01fc,$01fc
- dc.w $3f00,$3f80,$1fc0,$1fe0
- dc.w $0fe0,$03c0,$0000,$0000
-
- dc.w $0000,$0000,$03c0,$0fe0
- dc.w $1fe0,$1fc0,$3f80,$3f80
- dc.w $00fc,$01fc,$03f8,$07f8
- dc.w $07f0,$03c0,$0000,$0000
- kallo_id
- dc.w $0380,$3f60,$7fd0,$6fe8
- dc.w $f5f8,$fedc,$fffc,$ffdc
- dc.w $7ff4,$1ffe,$03fd,$03fe
- dc.w $0195,$01ff,$00fe,$007c
-
- dc.w $03c0,$3ff0,$7ff8,$7ff8
- dc.w $fffc,$fff0,$ffe0,$fff0
- dc.w $7ffe,$1fff,$027f,$027f
- dc.w $0115,$0195,$00ff,$007e
- pullo_id
- dc.w $0000,$0180,$0720,$0340
- dc.w $0340,$0340,$0340,$0340
- dc.w $0fb0,$1fe8,$3f64,$3e24
- dc.w $3f44,$1fb8,$03c0,$0000
-
- dc.w $0000,$0000,$07c0,$0380
- dc.w $0380,$0380,$0380,$0380
- dc.w $0fc0,$1ff0,$3ef8,$3df8
- dc.w $3ef8,$1fc0,$0300,$0000
- kranaatti_id
- dc.w $0000,$0000,$6000,$3000
- dc.w $1800,$3e00,$37e0,$27f0
- dc.w $27f8,$27f8,$27f8,$33fc
- dc.w $11fc,$08fc,$0418,$0200
-
- dc.w $1800,$2800,$1000,$0800
- dc.w $0400,$05e0,$0610,$07e8
- dc.w $07f4,$06f4,$0774,$039a
- dc.w $09ea,$04f8,$0200,$01c0
- portti_id
- dc.w $0490,$e00e,$e00e,$e24e
- dc.w $0000,$0000,$4924,$0000
- dc.w $0000,$2492,$0000,$0000
- dc.w $0240,$e00e,$e00e,$e92e
-
- dc.w $f49f,$7007,$7007,$1241
- dc.w $0000,$0000,$4924,$0000
- dc.w $0000,$2492,$0000,$0000
- dc.w $f24f,$7007,$7007,$1921
- pallo_id
- dc.w $07e0,$1db8,$285c,$502e
- dc.w $478a,$9fe3,$bff1,$bff3
- dc.w $7ffd,$7ffb,$7ffd,$7ffa
- dc.w $3ff2,$3ff4,$1ff8,$07e0
-
- dc.w $0000,$0240,$17a0,$2fd0
- dc.w $3ff4,$7ffc,$7ffe,$7ffc
- dc.w $fffa,$fffc,$fffa,$7ffc
- dc.w $7ffc,$3ff8,$1fe0,$0780
- myrkky_id
- dc.w $0000,$07e0,$07e0,$03c0
- dc.w $03c0,$03c0,$0ff0,$3ffc
- dc.w $7bbe,$7d7e,$7efe,$7d7e
- dc.w $3bbc,$1ff8,$07e0,$0000
-
- dc.w $0000,$07c0,$07c0,$0300
- dc.w $0380,$0380,$0fc0,$3ff0
- dc.w $7ff8,$6ff8,$7ff8,$6ff8
- dc.w $3ff0,$1fe0,$0780,$0000
- linko_id
- dc.w $ffff,$fcff,$ffff,$fe7f
- dc.w $f01f,$f0df,$e34f,$c065
- dc.w $a021,$a007,$f00f,$f00f
- dc.w $fc3f,$feff,$fe7f,$ffff
-
- dc.w $f00f,$ed37,$de7b,$bdbd
- dc.w $7fee,$7f2e,$3cb4,$3b9a
- dc.w $59dc,$2d3c,$74fe,$77fe
- dc.w $bdbd,$de7b,$ecb7,$f00f
- happo_id
- dc.w $ffff,$fcff,$fcff,$fcff
- dc.w $fe7f,$feff,$f1ff,$c7ff
- dc.w $ce6f,$cdaf,$cc2f,$e5bf
- dc.w $e7df,$f3ff,$f87f,$ffff
-
- dc.w $ffff,$fc3f,$fc3f,$fc3f
- dc.w $fe7f,$fe7f,$f00f,$c003
- dc.w $c183,$c243,$c3c3,$e247
- dc.w $e007,$f00f,$f81f,$ffff
- end
-
-