************************************************************************* * * * The Xtra Bit by The 81st Track * * * ************************************************************************* org $20000 ; right on top of the menu! incdir "asrc:include/" include "libraries/dos_lib.i" include "exec/exec_lib.i" include "hardware/custom.i" include "hardware/blit.i" include "81/my_macros.i" Hardware equ $dff000 MemNeeded equ 7520 Mem2Alloc equ 9632 SystemCopper1 equ $26 SystemCopper2 equ $32 PortA equ $bfe001 ICRA equ $bfed01 LeftMouse equ 6 a1save equ $7f400 ************************************************************************* start move.l #Hardware,a6 move.w #$7fff,intena(a6) bsr KillSprDatBuff bsr MainCode move.l a1save,a1 move.l #$20000,40(a1) move.l #$8fa00,44(a1) ; offset move.l #$3fe00,36(a1) ; len move.l _SysBase,a6 jsr _LVODoIO(a6) jmp $20000 ************************************************************************* MainCode bsr SetupAll MainCodeLoop bsr WaitForFrame * bsr ClearMem jsr bobmain jsr do1616text jsr Roller * move.w #$0fd0,color(a6) jsr mt_music jsr crawlamiga btst #LeftMouse,PortA bne MainCodeLoop jsr mt_end rts ************************************************************************* ClearMem move.l MemBase,a0 move.l #MemNeeded/64-1,d0 ClearMemLoop clr.l (a0)+ clr.l (a0)+ clr.l (a0)+ clr.l (a0)+ clr.l (a0)+ clr.l (a0)+ clr.l (a0)+ clr.l (a0)+ clr.l (a0)+ clr.l (a0)+ clr.l (a0)+ clr.l (a0)+ clr.l (a0)+ clr.l (a0)+ clr.l (a0)+ clr.l (a0)+ dbf d0,ClearMemLoop rts SetupAll bsr ClearMem move.l #3519,d0 move.l #TextBitmap,a0 ClrTextLoop clr.l (a0)+ dbf d0,ClrTextLoop move.l MemBase,a0 add.l #7520,a0 move.l #527,d0 xyz1 clr.l (a0)+ dbf d0,xyz1 move.l #RollScreenData,d0 move.l #CopRSD,a1 move.w d0,6(a1) swap d0 move.w d0,2(a1) move.l MemBase,d0 move.l #CopVSD,a1 move.w d0,6(a1) swap d0 move.w d0,2(a1) move.l #TextBitmap,d0 move.l #CopTextPlane,a1 move.w d0,6(a1) swap d0 move.w d0,2(a1) swap d0 add.l #7040,d0 move.w d0,14(a1) swap d0 move.w d0,10(a1) move.l #NewCopper,cop1lc(a6) move.w #0,copjmp1(a6) move.w #$0020,dmacon(a6) move.w #$83c0,dmacon(a6) move.w #$7fff,intreq(a6) jsr mt_init jsr crawlamigainit jsr bobinit bsr WaitForBlit rts WaitForVBlank btst #5,intreqr+1(a6) beq WaitForVBlank move.w #$20,intreq(a6) rts KillSprDatBuff moveq.l #0,d0 move.l d0,$144(a6) move.l d0,$14c(a6) move.l d0,$154(a6) move.l d0,$15c(a6) move.l d0,$164(a6) move.l d0,$16c(a6) move.l d0,$174(a6) move.l d0,$17c(a6) rts WaitForFrame btst #4,intreqr+1(a6) beq WaitForFrame move.w #$10,intreq(a6) rts WaitForBlit btst #14,dmaconr(a6) WFBLoop btst #14,dmaconr(a6) bne.s WFBLoop rts ************************************************************************* even NewCopper cmove $0200,bplcon0 cmove $0000,bplcon1 cmove $2c81,diwstrt cmove $2cc1,diwstop cmove $0038,ddfstrt cmove $00d0,ddfstop cmove $0000,bpl1mod cmove $0000,bpl2mod cwait $2c,$09 cmove $1200,bplcon0 CopRSD cmove $0000,bplpt cmove $0000,bplpt+$02 cmove $0200,color cmove $0220,color+$02 cwait $2d,$09 cmove $0001,bplcon1 cmove $0300,color cmove $0330,color+$02 cwait $2e,$09 cmove $0002,bplcon1 cmove $0400,color cmove $0440,color+$02 cwait $2f,$09 cmove $0003,bplcon1 cmove $0500,color cmove $0550,color+$02 cwait $30,$09 cmove $0600,color cmove $0660,color+$02 cwait $31,$09 cmove $0004,bplcon1 cmove $0700,color cmove $0770,color+$02 cwait $32,$09 cmove $0800,color cmove $0880,color+$02 cwait $33,$09 cmove $0900,color cmove $0990,color+$02 cwait $34,$09 cmove $0005,bplcon1 cmove $0a00,color cmove $0aa0,color+$02 cwait $36,$09 cmove $0b00,color cmove $0bb0,color+$02 cwait $3a,$09 cmove $0a00,color cmove $0aa0,color+$02 cwait $3c,$09 cmove $0004,bplcon1 cmove $0900,color cmove $0990,color+$02 cwait $3d,$09 cmove $0800,color cmove $0880,color+$02 cwait $3e,$09 cmove $0700,color cmove $0770,color+$02 cwait $3f,$09 cmove $0003,bplcon1 cmove $0600,color cmove $0660,color+$02 cwait $40,$09 cmove $0500,color cmove $0550,color+$02 cwait $41,$09 cmove $0002,bplcon1 cmove $0400,color cmove $0440,color+$02 cwait $42,$09 cmove $0001,bplcon1 cmove $0300,color cmove $0330,color+$02 cwait $43,$09 cmove $0000,bplcon1 cmove $0200,color cmove $0220,color+$02 cwait $44,$09 cmove $0000,color cmove $0fff,color+$02 CopVSD cmove $0000,bplpt cmove $0000,bplpt+$02 cwait $4c,$09 cmove $3200,bplcon0 CopTextPlane cmove $0000,bplpt+$04 cmove $0000,bplpt+$06 cmove $0000,bplpt+$08 cmove $0000,bplpt+$0a cmove $0ed0,color+$04 ; 01 0 - text colour 1 cmove $0ed0,color+$06 ; 01 1 - bob plane behind text cmove $0db0,color+$08 ; 10 0 - text colour 2 cmove $0db0,color+$0a ; 10 1 - bob plane behind text cmove $0c90,color+$0c ; 11 0 - text colour 3 cmove $0c90,color+$0e ; 11 1 - bob plane behind text cwait $da,$09 cmove $8010,intreq cwait $fc,$09 cmove $1200,bplcon0 cwait $ff,$09 cmove $0000,color+$02 dc.w $ffdd,$fffe cwait $00,$09 cmove $0001,bplcon1 ; shift prop font crawler right a bit cmove $0fff,color+$02 cmove $0008,bpl1mod cmove $1200,bplcon0 cend ************************************************************************* Level2Vector dc.l 0 Level3Vector dc.l 0 SystemInts dc.w 0 SystemDMA dc.w 0 GraphicsBase dc.l 0 GraphicsName dc.b 'graphics.library',0 even ************************************************************************* mt_data incbin "sys:81mods/mod.z-space" include "asrc:demo/common/nt20play.s" include "roller.s" include "crawlamiga.s" include "asrc:font3.s" include "bob.s" include "1616text.s" MemBase dc.l MemForData MemForData ds.b Mem2Alloc TextBitmap ds.b 14080 end