; Musics done by TAO of ACF ; with some C64-conversions... pea 0.w move #$20,-(sp) trap #1 addq.l #6,sp moveq #0,d0 bsr music move.l #music+8,$4e2.w jmp raster move #7,-(sp) trap #1 addq.l #2,sp clr.l $4e2.w moveq #1,d0 bsr music move.b #7,$484.w move #$20,-(sp) trap #1 addq.l #6,sp clr -(sp) trap #1 music: incbin SANXION.MUS ;incbin SPELL.MUS ;incbin CATS.MUS ;incbin MASTER.MUS even raster: TEXT OPT X- modulflag EQU 0 ; das wichtigste Flag fr die Final-Version ! *********************************************** * >PART 'init_keys_etc' clr.l $4e2 ; DEFAULT 5 ; IF modulflag=0 ;DEFAULT 1 pea anfang(pc) move.w #$0026,-(sp) trap #14 addq.l #6,sp clr.w -(sp) ;Mu durch eine einfaches RTS ersetzt werden trap #1 ; ENDC anfang: lea bssstart(pc),a6 lea bssende,a5 moveq #0,d7 clr_bss: move.w d7,(a6)+ cmpa.l a5,a6 blt.s clr_bss bsr retten move.w #$0012,$fffffc02.w move.w #0,$00000484.w move.l #screen,d0 clr.b d0 move.l d0,log lsr.w #8,d0 move.l d0,$ffff8200.w bsr clear_cols bsr.s cls ; bsr.s vsync move.b #0,$ffff8260.w bsr.s vsync move #$2300,sr clr.b $fffffa07.w clr.b $fffffa09.w ori.b #$21,$fffffa07.w ori.b #$21,$fffffa13.w move.l #nix,$00000120.w move.l #vbl0,$00000070.w bclr #6,$fffffa09.w move.l #nix,$00000118.w bset #6,$fffffa09.w bclr #3,$fffffa17.w wait: move.b waitvbl(pc),d0 www0: cmp.b waitvbl(pc),d0 beq.s www0 cmpi.b #$39,$fffffc02.w bne.s wait bsr backretten ;IF modulflag=0 clr.w -(sp) trap #1 ; ELSE move.l #$deadface,d0 ;jetzt mu wieder destalliert werden! rts ;ENDC * ENDPART *********************************************** * >PART 'cls' cls: movea.l log(pc),a0 move.l #40*260-1,d0 moveq #0,d1 cls2: move.l d1,(a0)+ dbra d0,cls2 rts * ENDPART *********************************************** * >PART 'vsync' vsync: movem.l d0-d1/a0,-(sp) lea $ffff8209.w,a0 movep.w -8(a0),d0 vsync1: tst.b (a0) beq.s vsync1 vsync2: tst.b (a0) bne.s vsync2 movep.w -4(a0),d1 cmp.w d0,d1 bne.s vsync2 movem.l (sp)+,d0-d1/a0 rts * ENDPART *********************************************** * >PART 'retten' retten: move usp,a0 move.l a0,old_usp move sr,old_sr move #$2700,sr movem.l $ffff8240.w,d0-d7 movem.l d0-d7,oldcols move.l $00000068.w,old_68 move.l $00000070.w,old_70 move.l $00000110.w,old_110 move.l $00000114.w,old_114 move.l $00000118.w,old_118 move.l $00000120.w,old_120 move.l $00000134.w,old_134 move.b $00000484.w,old_484 move.b $fffffa03.w,mfp_03 move.b $fffffa07.w,mfp_07 move.b $fffffa09.w,mfp_09 move.b $fffffa11.w,mfp_11 move.b $fffffa13.w,mfp_13 move.b $fffffa15.w,mfp_15 move.b $fffffa17.w,mfp_17 move.b $fffffa19.w,mfp_19 move.b $fffffa1b.w,mfp_1b move.b $fffffa1d.w,mfp_1d move.b $fffffa1f.w,mfp_1f move.b $fffffa21.w,mfp_21 bsr vsync move.l $ffff8200.w,old8200 bsr vsync move.b $ffff820a.w,old_sync bsr vsync move.b $ffff8260.w,oldres bsr vsync rts * ENDPART *********************************************** * >PART 'backretten' backretten: move #$2700,sr move.l old_68(pc),$00000068.w move.l old_70(pc),$00000070.w move.l old_110(pc),$00000110.w move.l old_114(pc),$00000114.w move.l old_118(pc),$00000118.w move.l old_120(pc),$00000120.w move.l old_134(pc),$00000134.w move.b old_484(pc),$00000484.w ;Soundchip durchpusten: lea $ffff8800.w,a0 move.l #$08000000,(a0) move.l #$09000000,(a0) move.l #$0a000000,(a0) move.b mfp_03(pc),$fffffa03.w move.b mfp_07(pc),$fffffa07.w move.b mfp_09(pc),$fffffa09.w move.b mfp_11(pc),$fffffa11.w move.b mfp_13(pc),$fffffa13.w move.b mfp_15(pc),$fffffa15.w move.b mfp_17(pc),$fffffa17.w move.b mfp_19(pc),$fffffa19.w move.b mfp_1b(pc),$fffffa1b.w move.b mfp_1d(pc),$fffffa1d.w move.b mfp_1f(pc),$fffffa1f.w move.b mfp_21(pc),$fffffa21.w movem.l oldcols(pc),d0-d7 movem.l d0-d7,$ffff8240.w bsr vsync move.b oldres(pc),$ffff8260.w bsr vsync move.l old8200(pc),$ffff8200.w bsr vsync move.b old_sync(pc),$ffff820a.w bsr vsync move.w #$0008,$fffffc02.w move old_sr(pc),sr movea.l old_usp(pc),a0 move a0,usp rts * ENDPART *********************************************** * >PART 'vbl & raster' vbl0: clr.b $fffffa1b.w move.b #30,$fffffa21.w move.b #8,$fffffa1b.w move.l #hbl01,$00000120.w move.b #0,$ffff8260.w movem.l d0-a6,-(sp) addq.b #1,waitvbl movem.l (sp)+,d0-a6 rte hbl01: move.l #$00230777,$ffff8240.w clr.b $fffffa1b.w move.b #1,$fffffa21.w move.b #8,$fffffa1b.w move.l #hbl01b,$00000120.w rte hbl01b: move.w #$0045,$ffff8240.w move.l #hbl01c,$00000120.w rte hbl01c: move.w #$0067,$ffff8240.w move.l #hbl01d,$00000120.w rte hbl01d: move.w #$0045,$ffff8240.w move.l #hbl01e,$00000120.w rte hbl01e: move.w #$0023,$ffff8240.w move.l #hbl01f,$00000120.w rte hbl01f: move.w #$0001,$ffff8240.w clr.b $fffffa1b.w move.b #160,$fffffa21.w move.b #8,$fffffa1b.w move.l #hbl02,$00000120.w rte hbl02: move.l #$00230023,$ffff8240.w clr.b $fffffa1b.w move.b #1,$fffffa21.w move.b #8,$fffffa1b.w move.l #hbl02b,$00000120.w rte hbl02b: move.l #$00450045,$ffff8240.w move.l #hbl02c,$00000120.w rte hbl02c: move.l #$00670067,$ffff8240.w move.l #hbl02d,$00000120.w rte hbl02d: move.l #$00350035,$ffff8240.w move.l #hbl02e,$00000120.w rte hbl02e: move.l #$00230023,$ffff8240.w move.l #hbl02f,$00000120.w rte hbl02f: move.l #$00010001,$ffff8240.w clr.b $fffffa1b.w move.b #40,$fffffa21.w move.b #8,$fffffa1b.w rte nix: rte clear_cols: move.l #$00000000,$ffff8240.w move.l #$00000000,$ffff8244.w move.l #$00000000,$ffff8248.w move.l #$00000000,$ffff824c.w move.l #$00000000,$ffff8250.w move.l #$00000000,$ffff8254.w move.l #$00000000,$ffff8258.w move.l #$00000000,$ffff825c.w rts * ENDPART *********************************************** * >PART 'data' DATA old_68: DC.L 0 old_70: DC.L 0 old_110: DC.L 0 old_114: DC.L 0 old_118: DC.L 0 old_120: DC.L 0 old_134: DC.L 0 old_484: DC.B 0 EVEN old8200: DC.L 0 old_sync: DC.B 0 oldres: DC.B 0 EVEN mfp_03: DC.B 0 mfp_07: DC.B 0 mfp_09: DC.B 0 mfp_11: DC.B 0 mfp_13: DC.B 0 mfp_15: DC.B 0 mfp_17: DC.B 0 mfp_19: DC.B 0 mfp_1b: DC.B 0 mfp_1d: DC.B 0 mfp_1f: DC.B 0 mfp_21: DC.B 0 EVEN old_sr: DC.L 0 old_usp: DC.L 0 oldstack: DC.L 0 EVEN BSS bssstart: waitvbl: DS.B 1 EVEN log: DS.L 1 oldcols: DS.L 8 EVEN DS.B 256 screen: DS.B 160*260 bssende: * ENDPART *********************************************** END