home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-05-03 | 64.1 KB | 2,421 lines |
- ;Retina burn source code written by S.Smith (CYLON/DIMENSION X) hope you
- ;like the demo.
- ;If you like any routine in this demo please use it your self I don't mind.
- ;A credit in your demo would not go amiss if you do.
- ;the demo is currently configed for a 1200 to set it back to 500 config
- ;just set dmawait in ptplay1200.i to 300.
- ;As you will discover some of my code is commented (shock horror) I hope it
- ;helps.
- ;
- ;Anyone wishing to swap source code PLEASE NOTE SEND ONLY YOUR OWN SOURCE
- ;I DO NOT WANT ANY RIPPED OFF SOURCE OR RESOURCED STUFF THANK YOU VERY MUCH
- ;I BELIEVE IN SHARING ANY KNOWLEDGE I GAIN, BUT I RESPECT ANY CODERS WISH
- ;TO KEEP THEIR CODE PRIVATE OK.
- ;
- ;PS yes some of the coding is not optimised and maybe some of it could be done
- ;better but in the end it does work and doesn't crash on any machine I've
- ;tried it on which is more than I can say for many other demos.
- ;
- ;Message to VECTOR DEMO CODERS boooooooorrrrrrrrrrrrrrinnnnggggggggg
- ;no more please I really do not want to see a 1200000000445475457 face
- ;wobbly glenz, the prospect of seeing one makes me reboot my machine.
- ;DO SOMETHING LIVELY SOME THING WITH A BIT OF GO IN IT AND NO MORE BLOODY
- ;SPACESHIPS.
- ;
- ;Possible influences on this demo
- ;
- ;hypnotic hammer, bubrain, kgb megademo.
- ;
- ;jesus on e's wasn't written when this demo was released.
-
-
-
-
-
- incdir "scode:"
- ;*-------------------------------------------------------------------------------*
- include include/hardware/custom.i
- include include/hardware/dmabits.i
- include include/libraries/dos_lib.i
- include include/libraries/dos.i
- include include/exec/exec_lib.i
- include include/exec/nodes.i
- include include/exec/memory.i
- ;*-------------------------------------------------------------------------------*
- ; USER DEFINES
- ;*-------------------------------------------------------------------------------*
- custom equ $dff000
- ;*-------------------------------------------------------------------------------*
- ; PROGRAMME START
- ;*-------------------------------------------------------------------------------*
- section startup_code,code
- ;*-------------------------------------------------------------------------------*
- move.l #text,textpos set text pos to start
- move.l #backdr1,back_ptr set back drop to start pic
- move.l #fl1,ack_ptr set back drop to start pic
- move.l #collist,x_ptr
- move.l #introg+10240,screenpos
- move.l #greets,greet_ptr
- ;*-------------------------------------------------------------------------------*
- move.l 4.w,a6 move exec.lib base addr a6
- move.l #anim_data,anim_ptr move start of data in to the anim ptr
-
- jsr _LVOForbid(a6) suspend all tasks
- ;*-------------------------------------------------------------------------------*
- lea glib,a1 point a1 2 text for graphic lib
- moveq #0,d0 clr d0
- move.l 4.w,a6 move exec.lib base addr a6
-
- jsr _LVOOpenlibrary(a6) open library
-
- tst d0
- beq.w errorgfx zero retcode=error opening
-
- move.l d0,gfxlib store gfx lib address
- ;*-------------------------------------------------------------------------------*
- lea dlib,a1 point a1 2 text for dos lib
- moveq #0,d0
- move.l 4.w,a6 move exec.lib base addr a6
-
- jsr _LVOOpenlibrary(a6) open library
-
- tst d0
- beq.w errordos zero retcode=error opening
-
- move.l d0,doslib store dos lib address
- ;*-------------------------------------------------------------------------------*
- ; lea introp,a0 move address of colour table into a0
- ; lea intro_list,a1 move addr colour list in copper int a1
- ; move.w #31,d0 there are 16 colours in colour table
- ;
- ;intro_again:
- ; move.w (a0)+,2(a1) move a color in col tab into copper
- ; addq.l #4,a1 add 4 2 addr in copper 4 next color
- ; dbf d0,intro_again do it again if less than 16 cols done
- ;*-------------------------------------------------------------------------------*
- move.l #dummysprite,d0 move address of blank sprite into d0
- move.w d0,sprite+6 put lo word of addr in copper
- move.w d0,mirsprite+6 put lo word of addr in copper
- move.w d0,intro_sprite+6 put lo word of addr in copper
-
- swap d0
- move.w d0,sprite+2 put high word of addr in copper
- move.w d0,mirsprite+2 put high word of addr in copper
- move.w d0,intro_sprite+2 put high word of addr in copper
-
- bsr bass_off
- ;*-------------------------------------------------------------------------------*
- move.l #TEXT_screen,d0 put addr of you ilbm graphic in d0
-
- move.w d0,bitplanes+p0l put lo word of first bp in to bppointer
- move.w d0,replanes+p0l put lo word of first bp in to bppointer
- swap d0 in copper list
- move.w d0,bitplanes+p0h put hi word of first bp into bppointer
- move.w d0,replanes+p0h put hi word of first bp into bppointer
-
- move.l #back_pic,d0 put addr of you ilbm graphic in d0
-
- move.w d0,bitplanes+p1l put lo word of first bp in to bppointer
- swap d0 in copper list
- move.w d0,bitplanes+p1h put hi word of first bp into bppointer
-
- move.l #blank,d0 fill in blanks.
-
- move.w d0,blank1+p0l put lo word of first bp in to bppointer
- move.w d0,blank2+p0l put lo word of first bp in to bppointer
- swap d0 in copper list
- move.w d0,blank1+p0h put hi word of first bp into bppointer
- move.w d0,blank2+p0h put hi word of first bp into bppointer
-
- move.l #screen,d0 put addr of you ilbm graphic in d0
-
- move.w d0,gfxplanes+p0l put lo word of first bp in to bppointer
- swap d0 in copper list
- move.w d0,gfxplanes+p0h put hi word of first bp into bppointer
- swap d0
-
- move.l #xxxx,d0 put addr of you ilbm graphic in d0
-
- move.w d0,mirror_plane+p0l
- swap d0
- move.w d0,mirror_plane+p0h scn address in copperlist
- ;*-------------------------------------------------------------------------------*
- move.l #introg,d0 put addr of you ilbm graphic in d0
-
- move.w d0,intro_planes+p0l put lo word of first bp in to bppointer
- swap d0 in copper list
- move.w d0,intro_planes+p0h put hi word of first bp into bppointer
- swap d0
-
- add.l #40,d0
- move.w d0,intro_planes+p1l
- swap d0
- move.w d0,intro_planes+p1h scn address in copperlist
- swap d0
-
- add.l #40,d0
- move.w d0,intro_planes+p2l
- swap d0
- move.w d0,intro_planes+p2h scn address in copperlist
- swap d0
-
- add.l #40,d0
- move.w d0,intro_planes+p3l
- swap d0
- move.w d0,intro_planes+p3h scn address in copperlist
- swap d0
-
- add.l #40,d0
- move.w d0,intro_planes+p4l
- swap d0
- move.w d0,intro_planes+p4h scn address in copperlist
- ;*-------------------------------------------------------------------------------*
- move.l gfxlib,a6 gfx lib address
- add.l #$32,a6 address of old copper
- move.l a6,cgfxlib
- move.w #$80,$dff096 dma ctrl (disable copper)
- move.l (a6),oldcopper save old copper address
- move.l #intro_copper,(a6) replace old copper address with my
- ; copper list (lower down in my code)
-
- move.w #$8080,$dff096 dma ctrl (enable copper)
- move.w #$8010,$dff09a copper interupt enabled
-
- move.l $6c.w,into_interupt store old level 3 interupt
- move.l $6c.w,fred_interupt store old level 3 interupt
- move.l $6c.w,old_interupt store old level 3 interupt
-
- move.l #intro_interupt,$6c.w point to my interupt rountine
- ;*-------------------------------------------------------------------------------*
- lea black1,a1
- lea introp,a0
- lea intro_list,a3
- move.l #31,d7
- bsr fade
-
- move.w #200,Intro_counter
- iouse:
- btst #6,$bfe001 test mousebutton
- beq.w jmouse
- tst.w intro_counter
- bne.w iouse
- jmouse
-
- lea black1,a1
- lea black2,a0
- lea intro_list,a3
- move.l #31,d7
- bsr fade
-
- ;*-------------------------------------------------------------------------------*
- lea mt_data,a0
- bsr.w mt_init setup play routine
- ;*-------------------------------------------------------------------------------*
- move.w #$80,$dff096 dma ctrl (disable copper)
- move.l #my_copper,(a6) replace old copper address with my
- ; copper list (lower down in my code)
-
- move.w #$8080,$dff096 dma ctrl (enable copper)
- move.w #$8010,$dff09a copper interupt enabled
-
-
- move.l #new_interupt,$6c.w point to my interupt rountine
- ;*-------------------------------------------------------------------------------*
- move.w #100,Intro_counter
- imouse: tst.w intro_counter
- bne.w imouse
-
- mouse btst #6,$bfe001 test mousebutton
- bne.w mouse
-
- bsr.w mt_end music end routine
- jsr bass_off turn off sprites
- move.w #$80,$dff096 dma ctrl (disable copper)
- move.l #my_copper,(a6) replace old copper address with my
- ; copper list (lower down in my code)
- move.w #$F00,colourlist+6 red anim colour
- move.w #$8080,$dff096 dma ctrl (enable copper)
- move.w #$8010,$dff09a copper interupt enabled
-
-
- move.l #fredinterupt,$6c.w point to my interupt rountine
- move.w #1,gfxcmp
- move.l #spin_data,spin_ptr
- move.w #$00,bdr1+2 red anim colour
- move.w #$00,bdr1+6 red anim colour
- move.w #$00,colourlist+2 red anim colour
- move.w #$0,text_cols+2 red anim colour
- move.w #$0,text_cols+6 red anim colour
- move.w #$0,lowcol+2 red anim colour
- move.w #$00,bdr2+2 red anim colour
-
- waitend:
- tst.w spindone
- beq waitend
- waitnextblank:
- tst.w vbl
- beq waitnextblank
- eor.w #$ffff,vbl
- sub.w #$100,colourlist+6
- tst.w colourlist+6
- bne waitnextblank
-
- lea mt_data2,a0
- bsr.w mt_init setup play routine
-
-
- move.w #0,moddulo+2
- move.w #0,moddulo+6
- lea plane_start,a1
- lea plane_store,a0
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
-
- move.l #backdr1,a0 move the address of first screen
- lea.l introg,a1 dest address
- move.l #2559,d1 size -1
- a_loop:
- move.l (a0)+,(a1)+ move a longword
- dbr d1,a_loop do it until all done
-
- move.l #introg+10240,d0 put addr of you ilbm graphic in d0
- move.l d0,a1 put addr of you ilbm graphic in d0
-
- move.l #(2559*2)+1,d1 size -1
- b_loop:
- move.l #0,(a1)+ move a longword
- dbr d1,b_loop do it until all done
-
-
- move.w d0,intro_planes+p1l
- swap d0
- move.w d0,intro_planes+p1h scn address in copperlist
-
- move.w #$00,intro_list+6 blue fg
- eor.w #$ccc,intro_list+38 change colour
- bsr plonk
- eor.w #$FFFF,toggle
-
- move.l gfxlib,a6 gfx lib address
- add.l #$32,a6 address of old copper
- move.w #$80,$dff096 dma ctrl (disable copper)
- move.l #intro_copper,(a6) replace old copper address with my
- ; copper list (lower down in my code)
-
- move.w #$8080,$dff096 dma ctrl (enable copper)
- move.w #$8010,$dff09a copper interupt enabled
-
- move.l #intro_interupt,$6c.w point to my interupt rountine
-
- ;*-------------------------------------------------------------------------------*
- wnextblank:
- tst.w vbl
- beq wnextblank
- eor.w #$ffff,vbl
- add.w #$001,intro_list+6
- cmp.w #$009,intro_list+6
- bne wnextblank
- ;*-------------------------------------------------------------------------------*
- move.w #100,Intro_counter
- hmouse: tst.w intro_counter
- bne.w hmouse
-
-
- fmouse btst #6,$bfe001 test mousebutton
- bne.w fmouse
-
- wxtblank:
- tst.w vbl
- beq wxtblank
- eor.w #$ffff,vbl
- sub.w #$111,intro_list+38
- tst.w intro_list+38
- bne wxtblank
-
- wextblank:
- tst.w vbl
- beq wextblank
- eor.w #$ffff,vbl
- sub.w #$001,intro_list+6
- tst.w intro_list+6
- bne wextblank
-
- bchg #1,$bfe001 audio filter toggle
-
- ;*-------------------------------------------------------------------------------*
- move.l old_interupt,$6c.w restore old level 3 interupt
- move.w #$10,$dff09a disable level 3 interupt
-
- move.l gfxlib,a6 put the base address of gfx library >a6
-
- add.l #$32,a6 add $32 to base addr of lib as this is
- ; the mem location that points to active
- ; copper list
-
- move.w #$0080,$dff096 dma ctrl disable copper must be done
- ; before restoring old copper
-
- move.l oldcopper,(a6) retore old copper
- move.w #$8080,$dff096 dma enable copper
-
- move.l doslib,a1 close dos lib
- move.l 4.w,a6
- jsr _LVOCloselibrary(a6)
- bsr.w mt_end music end routine
-
- ;*-------------------------------------------------------------------------------*
- errordos:
- move.l gfxlib,a1 close graphics lib
- move.l 4.w,a6
- jsr _LVOCloselibrary(a6)
- ;*-------------------------------------------------------------------------------*
- errorgfx:
- move.l 4.w,a6 enable multitasking again
- jsr _LVOpermit(a6)
- ;*-------------------------------------------------------------------------------*
- error moveq #0,d0
- rts
- ;*-------------------------------------------------------------------------------*
-
-
- fade
- swap d7
- move #14,d0
- bright
- moveq #2,d1
- nibble
- swap d7
- move d7,d2
- swap d7
- col
- move d2,d3
- lsl #1,d3
- move 0(a0,d3.w),d4
- move 0(a1,d3.w),d5
- cmp #2,d1
- bne.w not2
-
- and #$f00,d4
- and #$f00,d5
- cmp d5,d4
- beq.w doneadd
- blo.w sub2
- add #$100,0(a1,d3.w)
- bra.w doneadd
- sub2
- sub #$100,0(a1,d3.w)
- bra.w doneadd
- not2
- cmp #1,d1
- bne.w not1
- and #$f0,d4
- and #$f0,d5
- cmp d5,d4
- beq.w doneadd
- blo.w sub1
- add #$10,0(a1,d3.w)
- bra.w doneadd
- sub1
- sub #$10,0(a1,d3.w)
- bra.w doneadd
- not1
- cmp #0,d1
- bne.w doneadd
- and #$f,d4
- and #$f,d5
- cmp d5,d4
- beq.w doneadd
- blo.w sub0
- addq #$1,0(a1,d3.w)
- bra.w doneadd
- sub0
- subq #$1,0(a1,d3.w)
- doneadd
- dbra d2,col
- ; change immediate value in d6 the higher it is the slower the fade
- moveq #1,d6
- bsr.w pause
-
- move.l a1,a2
- swap d7
- move.w d7,d2
- swap d7
- move.l a3,-(sp)
-
- copy3 move.w (a2)+,2(a3)
- addq.l #4,a3
- dbra d2,copy3
-
- move.l (sp)+,a3
-
- dbra d1,nibble
-
- dbra d0,bright
- rts
-
-
- ;================================================
- ; pause
- ; d6.w = pause time in 1/50 sec
- ;================================================
-
- pause
- move.w vbl,d7
- waitframe
- cmp vbl,d7
- beq.w waitframe
-
- dbra d6,pause
- rts
-
-
-
-
- **************************************************
- ; in interupt routine put:-
-
-
- ; in variables put:-
-
-
- **************************************************
-
-
-
- ;*-------------------------------------------------------------------------------*
-
- plonk:
- move.l greet_ptr,a1 move address of next char into a1
- cmp.b #"@",(a1)
- bne no_scroll_pause
- addq.l #1,a1
- move.w #100,scroll_wait
- no_scroll_pause:
- moveq.l #0,d2
-
- move.l screenpos,a0 load LINE pos on screen.
- add.l #10240,a0
-
- bsr.w wblit clear line
- move.l #$ffffffff,BLTAFWM+Custom
- MOVE.W #0,BLTADAT+CUSTOM
- move.w #0,BLTDMOD+Custom
- move.l a0,BLTDPT+Custom
- move.w #%0000000111110000,BLTCON0+Custom
- move.w #0,BLTCON1+Custom
- move.w #(64*32)+20,BLTSIZE+Custom 32lines by 1 word
-
- get_next_l:
- move.b (a1)+,d1 get char from scrolltext
- add.w #1,d2 add one line length counter
- cmp.b #10,d1 are we at eol
- bne.w get_next_l no read another ltr
-
- subq.l #1,d2 remove cr from counter for disp loop
- move.l #20,d4 1/2 scrn size in bytes
- sub.l d2,d4 1/2 txt len - 1/2 scrn width = offset
-
- add.l d4,a0 add offset to the base addr of screen
-
- move.l greet_ptr,a1 move address of next char into a1
- cmp.b #"@",(a1)
- bne no_scroll_paus
- addq.l #1,a1
- no_scroll_paus:
- moveq.l #0,d1
- moveq.l #0,d5
- nextchar:
- move.b (a1)+,d1 char into d1
- tst.b d1 if val in d0 is 0
- beq textended it is the end of the text
- move.l a1,greet_ptr
- cmp.b #10,d1 is it eol
- beq.w eol end of line exit routine
- sub.l #32,d1 remove ctrl codes from ascii char value
- lsl.l d1 mult by two to get off. in font.
- lea font16,a2 load base address of font.
- add.l d1,a2 add offset to base address.
- bsr.w doblt go blit char from font to screen.
- addq.l #2,a0 add 2 bytes for pos of next char.
- bra.w nextchar
- eol:
- rts
-
- textended:
- move.l #greets,greet_ptr
- rts
-
- doblt
-
- bsr.w wblit
- move.l #$ffffffff,BLTAFWM+Custom
- move.w #39,BLTDMOD+Custom
- move.w #(91*2)-1,BLTAMOD+Custom
- move.l a0,BLTDPT+Custom
- move.l a2,BLTAPT+Custom
- move.w #%0000100111110000,BLTCON0+Custom
- move.w #0,BLTCON1+Custom
- move.w #(64*32)+1,BLTSIZE+Custom 32lines by 1 word
-
- rts
- copyline:
-
- move.l screenpos,a3 load pos on screen.
- move.l a3,a4 used for copy blit
- sub.l #40*32,a3
- add.l #10240,a4
-
- bsr.w wblit
- move.l #$ffffffff,BLTAFWM+Custom
- move.w #0,BLTDMOD+Custom
- move.w #0,BLTAMOD+Custom
- move.l a3,BLTDPT+Custom
- move.l a4,BLTAPT+Custom
- move.w #%0000100111110000,BLTCON0+Custom
- move.w #0,BLTCON1+Custom
- move.w #(64*32)+20,BLTSIZE+Custom 32lines by 20 words
- rts
-
-
-
-
- wblit:
- btst.b #DMAB_BltDone-8,DMAConR+custom
- BlitWait1:
- btst.b #DMAB_BltDone-8,DMAConR+Custom
- bne.w BlitWait1
- rts
- ;*-------------------------------------------------------------------------------*
- ; MY INTERUPT ROUTINE
- ;*-------------------------------------------------------------------------------*
- fredinterupt:
- movem.l d0-d7/a0-a6,-(sp) store registers
-
-
- and.w #$10,$dff01e is the interupt a copper interupt?
- beq.w no_fred if not skip copper routines
- move.w #$10,$dff09c acknowledge interupt
-
- eor.w #$ffff,vbl
- cmp.w #13,gfxcmp
- bgt still
- sub.w #1,gfxcount
- tst.w gfxcount
- bne.b no_spin
- bsr.w dospin2
- sub.w #1,acounter
- tst.w acounter
- bne notslow
- move.w #2,acounter
- still:
- add.w #1,gfxcmp
- speedslow:
- cmp.w #50,gfxcmp
- blt notslow
- move.w #$FFFF,spindone
- notslow:
- move.w gfxcmp,gfxcount
- no_spin:
- no_fred:
- movem.l (sp)+,d0-d7/a0-a6 restore registers so code out of
- ; interupt does not cock up
-
- fred_interupt: equ *+2
- jmp $12345678 jump to old routine
- ;*------------------------------------------------------------------------------
- ; GFX spin routine
- ;*------------------------------------------------------------------------------
- dospin2:
- move.l spin_ptr,a0 put ptr to anim sequ > a0
- move.l A0,d0 clr d0
- cmp.l #spin_fin,d0
- blt .inrange1
- move.l #spin_data,a0 move start of data in to the anim ptr
- move.l #spin_data,anim_ptr move start of data in to the anim ptr
- .inrange1:
- moveq.l #0,d0 clr d0
- move.b (a0)+,d0 put anim sequ into d0
- tst.b d0 is it end of anim char?(0)
- bne.w .not_last_anim no so skip next three insts
- move.l #spin_data,a0 move start of data in to the anim ptr
- .goforit:
- move.b (a0)+,d0 move fresh char to d0
- .not_last_anim:
- move.l a0,spin_ptr store new ptr addr
- move.l #screen,d1 base addr of anims
- sub.b #1,d0 remove extra from d0
- mulu #5600,d0 multiply frame no. by frame size
- add.l d1,d0 add base addr to frame offset
- .put_new_bm:
- move.w d0,gfxplanes+p0l put lo word of first bp in to bppointer
- swap d0 in copper list
- move.w d0,gfxplanes+p0h put hi word of first bp into bppointer
- swap d0
- rts
- ;*-------------------------------------------------------------------------------*
- ; MY INTERUPT ROUTINE
- ;*-------------------------------------------------------------------------------*
- intro_interupt:
- movem.l d0-d7/a0-a6,-(sp) store registers
-
-
- and.w #$10,$dff01e is the interupt a copper interupt?
- beq.w no_int if not skip copper routines
- move.w #$10,$dff09c acknowledge interupt
-
- eor.w #$FFFF,vbl
- sub.w #1,intro_counter
- tst.w toggle are we at the second usage
- bne no_int no then bog off
- sub.w #1,scroll_wait
- tst.w scroll_wait
- bne no_greet
- move.w #1,scroll_wait
-
- add.l #40,screenpos add a line
- move.l screenpos,d0 move current screen pos in
- move.w d0,intro_planes+p1l and bop it to copper list
- swap d0
- move.w d0,intro_planes+p1h scn address in copperlist
-
- moveQ.l #0,d0
- sub.w #1,scrollcount dec line scrolled by 1
- tst.w scrollcount have we scrolled 32 pix lines
- bne no_greet no then no need to reset counter
-
- move.w #32,scrollcount restore line pix lines scrolled
-
- sub.b #1,linecount sub one from no lines scrolled
- tst.b linecount has the screen reached its end yet?
- bne not_BOT no then bog off
-
- bsr.w copyline copy line
- move.l #introg+10240,screenpos set to screen start
-
- move.b #9,linecount
- bsr plonk write line to be scrolled
- bra no_greet
- not_bot:
-
- bsr plonk
- bsr.w copyline go blit char from font to screen.
-
- no_greet:
-
- bsr.w mt_music call music player
- no_int
- movem.l (sp)+,d0-d7/a0-a6 restore registers so code out of
- ; interupt does not cock up
-
- into_interupt: equ *+2
- jmp $12345678 jump to old routine
-
- ;*-------------------------------------------------------------------------------*
- new_interupt
- movem.l d0-d7/a0-a6,-(sp) store registers
-
-
- and.w #$10,$dff01e is the interupt a copper interupt?
- beq.w no_music if not skip copper routines
- move.w #$10,$dff09c acknowledge interupt
-
- sub.w #1,intro_counter
- cmp.w #$fff,equalizer3
- bne.b no_beat
- addq.w #2,beatcount
- no_beat:
- cmp.w #10,beatcount
- bgt.b ten
- move.w #1,wait
- move.w #$0,colourlist+2
- jsr strobe2
- bsr.w clang
- jsr hitthebass
- bsr.w bdrstrobe
- jsr Do_text
- jmp out
- ten:
- cmp.w #20,beatcount
- bgt.b twenty
- jsr strobe3
- bsr.w clang
- jsr hitthebass
- bsr.w bdrstrobe
- jsr Do_text
- jmp out
- twenty:
- cmp.w #30,beatcount
- bgt.b thirty
- jsr strobe4
- move.w #$FFF,bdr1+6
- bsr.w clang
- jsr hitthebass
- jsr strobe2
- jsr Do_text
- jmp out
- thirty:
- cmp.w #40,beatcount
- bgt.b forty
- jsr strobe5
- jsr strobe2
- bsr.w clang
- jsr hitthebass
- move.w #3,wait
- jsr Do_text
- jmp out
- forty:
- cmp.w #50,beatcount
- bgt.b fifty
- jsr strobe6
- bsr.w clang
- jsr hitthebass
- jsr Do_text
- jmp out
- fifty:
- cmp.w #60,beatcount
- bgt.b sixty
- jsr strobe8
- bsr.w bdrstrobe
- bsr.w clang
- jsr hitthebass
- move.w #$FFF,bdr1+6
- jsr strobe2
- jsr Do_text
- jmp out
- sixty:
- cmp.w #70,beatcount
- bgt.b seventy
- move.w #$FFF,bdr1+6
- bsr.w clang
- jsr hitthebass
- move.w #7,wait
- jsr strobe9
- jsr Do_text
- jmp out
- seventy:
- cmp.w #80,beatcount
- bgt.b eighty
- move.l cgfxlib,a6
- move.l #mirror_cop,(a6) replace old copper address with my
- jsr xbounce
- jsr hitthebass
- jmp no_gfx
- eighty:
- cmp.w #90,beatcount
- bgt.b ninety
- jsr hitthebass
- tst.w cytog
- bne rightcop
- jsr cyclemap
- eor.w #$FFFF,cytog
- rightcop:
- jsr cycle
- jmp no_gfx
- ninety:
- eor.w #$FFFF,cytog
- move.l a6,cgfxlib
- move.l #my_copper,(a6) replace old copper address with my
- move.w #$0,colourlist+2
- move.w #$0,Text_cols+2
- move.w #0,beatcount
- sub.b #1,cycount change cycle routine
- tst.b cycount check if 3 routine done
- bne out no
- move.b #3,cycount reset to routine 3
- out:
- bsr.w strobe1
- bsr.w back_strobe
-
- sub.w #1,gfxcount
- tst.w gfxcount
- bne.b no_gfx
- bsr.w gfxchange
- move.w gfxcmp,gfxcount
- no_gfx:
-
- bsr.w mt_music call music player
-
-
- no_music
- movem.l (sp)+,d0-d7/a0-a6 restore registers so code out of
- ; interupt does not cock up
-
- old_interupt equ *+2
- jmp $12345678 jump to old routine
-
- ;*-------------------------------------------------------------------------------*
- include include/pt-playa1200.s yep good old pt-play
- ;*-------------------------------------------------------------------------------*
- clang:
- cmp.w #$8,chan1
- bne.w nobass1
- bsr.w change_back
- move.w #0,chan1
- rts
- nobass1:
- cmp.w #$8,chan2
- bne.w nobass2
- bsr.w change_back
- move.w #0,chan2
- rts
- nobass2:
- cmp.w #$8,chan3
- bne.w nobass3
- bsr.w change_back
- move.w #0,chan3
- rts
- nobass3:
- cmp.w #$8,chan4
- bne.w nobass4
- bsr.w change_back
- move.w #0,chan4
- rts
- nobass4:
- bra nothin_doin
- ;*-------------------------------------------------------------------------------*
- ; backdrop swap
- ;*-------------------------------------------------------------------------------*
-
- change_back:
-
- move.l back_ptr,d0 move current screen
- cmp.l #back_end,d0 are we past the last screen ?
- bne.w back_ok no lets move on
- move.l #backdr1,D0 move the address of first screen
- move.l d0,back_ptr and store it.
- back_ok:
- move.l d0,a0 source address
- lea.l back_pic,a1 dest address
- move.l #2559,d1 size -1
- bdr_loop:
- move.l (a0)+,(a1)+ move a longword
- dbr d1,bdr_loop do it until all done
- add.l #10240,back_ptr set ptr to next screen
- move.w #100,bored
- rts
-
-
- nothin_doin:
- sub.w #1,bored
- tst.w bored
- bne not_bored
-
- move.l ack_ptr,d0 move current screen
- cmp.l #fl_rend,d0 are we past the last screen ?
- bne.w back_okay no lets move on
- move.l #fl1,D0 move the address of first screen
- move.l d0,ack_ptr and store it.
- back_okay:
- move.l d0,a0 source address
- lea.l back_pic,a1 dest address
- move.l #2559,d1 size -1
- acopy_loop:
- move.l (a0)+,(a1)+ move a longword
- dbr d1,acopy_loop do it until all done
- add.l #10240,ack_ptr set ptr to next screen
- move.w #3,bored
- not_bored:
- rts
-
- ;*-------------------------------------------------------------------------------*
- ; Text display test
- ;*-------------------------------------------------------------------------------*
- do_text:
- sub.w #1,textcount
- tst.w textcount
- bne.w no_ext1
- bsr.w bigtext
- move.w #50,textcount
- no_ext1:
- rts
-
- ;*-------------------------------------------------------------------------------*
- ; Test for let the bass kick sample.
- ;*-------------------------------------------------------------------------------*
-
- hitthebass:
- cmp.w #$9,chan1
- bne.w .nobass1
- bsr.w bass_on
- move.w #0,chan1
- rts
- .nobass1:
- cmp.w #$9,chan2
- bne.w .nobass2
- bsr.w bass_on
- move.w #0,chan2
- rts
- .nobass2:
- cmp.w #$9,chan3
- bne.w .nobass3
- bsr.w bass_on
- move.w #0,chan3
- rts
- .nobass3:
- cmp.w #$9,chan4
- bne.w .nobass4
- bsr.w bass_on
- move.w #0,chan4
- rts
- .nobass4:
- sub.w #1,bass_wait
- tst.w bass_wait
- bne no_bass_off
- move.w #$ffff,bass_wait
- bsr bass_off
- no_bass_off:
- Rts
- bass_off:
- move.l #dummysprite,d0 move address of blank sprite into d0
- move.w d0,d_sprite1+6 put lo word of addr in copper
- move.w d0,d_sprite2+6 put lo word of addr in copper
- move.w d0,d_sprite3+6 put lo word of addr in copper
- move.w d0,d_sprite4+6 put lo word of addr in copper
- swap d0
- move.w d0,d_sprite1+2 put high word of addr in copper
- move.w d0,d_sprite2+2 put high word of addr in copper
- move.w d0,d_sprite3+2 put high word of addr in copper
- move.w d0,d_sprite4+2 put high word of addr in copper
- rts
- bass_on:
- move.l #ltbk_sprite1,d0 move address of blank sprite into d0
- move.w d0,d_sprite1+6 put lo word of addr in copper
- swap d0
- move.w d0,d_sprite1+2 put high word of addr in copper
- move.l #ltbk_sprite2,d0 move address of blank sprite into d0
- move.w d0,d_sprite2+6 put lo word of addr in copper
- swap d0
- move.w d0,d_sprite2+2 put high word of addr in copper
- move.l #ltbk_sprite3,d0 move address of blank sprite into d0
- move.w d0,d_sprite3+6 put lo word of addr in copper
- swap d0
- move.w d0,d_sprite3+2 put high word of addr in copper
- move.l #ltbk_sprite4,d0 move address of blank sprite into d0
- move.w d0,d_sprite4+6 put lo word of addr in copper
- swap d0
- move.w d0,d_sprite4+2 put high word of addr in copper
- move.w #30,bass_wait
- rts
- ;*-------------------------------------------------------------------------------*
- cyclemap:
- move.l #dummysprite,d0 move address of blank sprite into d0
- move.w d0,cyclesprite+6 put lo word of addr in copper
- swap d0
- move.w d0,cyclesprite+2 put high word of addr in copper
-
- move.l #cyclescreen,d0 put addr of you ilbm graphic in d0
-
- move.w d0,cycleplanes+p0l put lo word of first bp in to bppointer
- swap d0 in copper list
- move.w d0,cycleplanes+p0h put hi word of first bp into bppointer
- swap d0
-
- add.l #40,d0
- move.w d0,cycleplanes+p1l
- swap d0
- move.w d0,cycleplanes+p1h scn address in copperlist
- swap d0
-
- add.l #40,d0
- move.w d0,cycleplanes+p2l
- swap d0
- move.w d0,cycleplanes+p2h scn address in copperlist
- swap d0
-
- add.l #40,d0
- move.w d0,cycleplanes+p3l
- swap d0
- move.w d0,cycleplanes+p3h scn address in copperlist
-
- move.l gfxlib,a6 gfx lib address
- add.l #$32,a6 address of old copper
- move.w #$80,$dff096 dma ctrl (disable copper)
- move.l #cycle_copper,(a6) replace old copper address with my
- ; copper list (lower down in my code)
-
- move.w #$8080,$dff096 dma ctrl (enable copper)
- move.w #$8010,$dff09a copper interupt enabled
-
- rts
- ;*-------------------------------------------------------------------------------*
- cycle:
- cmp.b #1,cycount
- beq forwards
- cmp.b #2,cycount
- beq forandequ
- forwards:
- moveq.l #0,d2
- move.l #15,d0
- move.l #cyclelist+2,a0
- move.l #cyclelist+6,a4
- cpy_down:
- move.w (a4),(a0)
- addq.l #4,a0
- addq.l #4,a4
- dbr d0,cpy_down
-
- lea collist,a1
- move.w tabpos,d2
- addq.w #2,d2
- cmp.w #217,d2
- blt no_pob
- move.w #0,d2
- no_pob:
- move.w d2,tabpos
- move.w (a1,d2.w),(a0)
- eor.w #$FFFF,direction
- rts
- forandequ:
- moveq.l #0,d2
- move.l #15,d0
- move.l #cyclelist+2,a0
- move.l #cyclelist+6,a4
- cy_down:
- move.w (a4),(a0)
- addq.l #4,a0
- addq.l #4,a4
- dbr d0,cy_down
-
- move.w equalizer1,d2
- add.w equalizer2,d2
- tst.b direction
- bne noadd
- add.w equalizer4,d2
- noadd:
- move.w d2,(a0)
- eor.w #$FFFF,direction
- rts
- ;*------------------------------------------------------------------------------
- ; GFX CHANGE routine
- ;*------------------------------------------------------------------------------
- gfxchange:
- move.l anim_ptr,a0 put ptr to anim sequ > a0
- move.l A0,d0 clr d0
- cmp.l #an_fin,d0
- blt inrange1
- move.l #anim_data,a0 move start of data in to the anim ptr
- move.l #anim_data,anim_ptr move start of data in to the anim ptr
- inrange1:
- moveq.l #0,d0 clr d0
- move.b (a0)+,d0 put anim sequ into d0
- tst.b d0 is it end of anim char?(0)
- bne.w not_last_anim no so skip next three insts
- move.l #anim_data,a0 move start of data in to the anim ptr
- goforit:
- move.b (a0)+,d0 move fresh char to d0
- move.w wait,gfxcmp move 5 into frame counter for anims
- not_last_anim:
- move.l a0,anim_ptr store new ptr addr
- move.l #screen,d1 base addr of anims
- sub.b #1,d0 remove extra from d0
- mulu #5600,d0 multiply frame no. by frame size
- add.l d1,d0 add base addr to frame offset
- put_new_bm:
- move.w d0,gfxplanes+p0l put lo word of first bp in to bppointer
- swap d0 in copper list
- move.w d0,gfxplanes+p0h put hi word of first bp into bppointer
- swap d0
- rts
- ;*------------------------------------------------------------------------------
- ; TEXT routine
- ;*-------------------------------------------------------------------------------*
- bigTEXT:
-
- moveq.l #0,d1 make sure d1 is clear
- moveq.l #0,d2 make sure d1 is clear
- move.l textpos,a1 move start of scroll text a1
- move.l #TEXT_screen,a3 base addr of screen
-
- move.b (a1),d1 get char from scrolltext
- cmp #$0,d1 is it the last letter
- bne.w notend if not skip to setting blitter up
-
- lea text,a1 get start addr of text
- move.l a1,textpos move to start of scroll text
- notend:
-
- nextltr:
- move.b (a1)+,d1 get char from scrolltext
- add.w #1,d2 add one line length counter
- cmp.b #13,d1 are we at eol
- bne.w nextltr no read another ltr
-
- move.l d2,d3 d3 is temp work reg
- subq.l #2,d2 remove cr from counter for disp loop
- subq.l #1,d3 remove cr from counter for disp loop
- lsl.l #1,d3 1/2 txt length in bytes
- move.l #20,d4 1/2 scrn size in bytes
- sub.l d3,d4 1/2 txt len - 1/2 scrn width = offset
- add.l d4,a3 add offset to the base addr of screen
-
- move.l textpos,a2 move start of scroll text a2
- move.l a1,textpos and store for next time
- readchar:
- moveq.l #0,d1 make sure d1 is clear
- move.b (a2)+,d1 get char from scrolltext
-
- sub.b #$20,d1 remove 32 from ascii val to get offset
- ; in font eg spc=32 so spc first char
- tst.b d1 if d1 = 0 then spc is at end of this
- ; char set
- bne.w not_spc it`s not space
- move.b #92-33,d1 set to correct pos for space
- not_spc:
- sub.b #32,d1 a is char 0 in this fnt so remove crap
- lsl #$2,d1 multiply by 4 as font is 32 pixels
- ; wide
- lea font32,a1 base addr of font into a1
- add.l d1,a1 add char offset to a1
-
-
- btst.b #DMAB_BltDone-8,DMAConR+custom
- BlitWait2:
- btst.b #DMAB_BltDone-8,DMAConR+Custom
- bne.w BlitWait2
-
- move.l #$ffffffff,BLTAFWM+Custom
- move.w #36,BLTDMOD+Custom
- move.w #(27-1)*4,BLTAMOD+Custom
- move.l a3,BLTDPT+Custom
- move.l a1,BLTAPT+Custom
- move.w #%0000100111110000,BLTCON0+Custom
- move.w #0,BLTCON1+Custom
- move.w #(40*64)+2,BLTSIZE+Custom 40lines by 2 word
-
- addq.l #4,a3
- dbr d2,readchar have we done a full line
- rts
-
- ;*------------------------------------------------------------------------------
- ; strobe routine 1
- ;*-------------------------------------------------------------------------------*
-
- strobe1:
- sub.w #1,count add 1 to counter
- tst.w count are no. counts the same as amount in
- bne.w noflash count amount?
-
- tst.w upordown change flash speed up or down
- beq.w countdown if 0 then count = down
-
- bsr.w Text_flash flash screen
-
- add.w #1,countamount add 1 to amount of time to wait
- move.w countamount,count reset counter
- cmp.w #10,countamount is delay at maximum
-
- bne.w noflash no don`t change direction
- eor.w #$FFFF,upordown yes change direction
- bra.w noflash
- countdown:
- bsr.w Text_flash flaash screen
-
- sub.w #1,countamount add 1 to amount of time to wait
- move.w countamount,count reset counter
- tst.w countamount is delay at maximum
-
- bne.w noflash no don`t change direction
- move.w #1,countamount
- move.w #1,count
- eor.w #$FFFF,upordown yes change direction
- noflash:
- RTS
-
- Text_flash:
- tst.w Text_cols+6
- bne.w .setzero
- move.w #$FFF,Text_cols+6
- move.w #$FFF,lowcol+2
- bra.w .skipzero
- .setzero:
- move.w #$0,Text_cols+6
- move.w #$0,lowcol+2
- .skipzero:
- rts
-
- flash:
- tst.w colourlist+2
- bne.w setzero
- move.w #$fff,Text_cols+2
- move.w #$fff,colourlist+2
- bra.w skipzero
- setzero:
- move.w #$0,Text_cols+2
- move.w #$0,colourlist+2
- skipzero:
- rts
- dflash:
- tst.w colourlist+2
- bne.w .setzero
- move.w #$fff,Text_cols+2
- move.w #$fff,colourlist+2
- move.w #$0,colourlist+6
- bra.w .skipzero
- .setzero:
- move.w #$0,Text_cols+2
- move.w #$0,colourlist+2
- move.w #$fff,colourlist+6
- .skipzero:
- rts
- cflash:
- tst.w colourlist+2
- bne.w .sezero
- lea strobelist,a0
- moveq.l #0,d0
- move.b strobecount,d0
- add.l d0,d0
- add.l d0,a0
- move.w (a0),Text_cols+2
- move.w (a0),colourlist+2
- bra.w .sipzero
- .sezero:
- move.w #$0,Text_cols+2
- move.w #$0,colourlist+2
- .sipzero:
- rts
- ;*-------------------------------------------------------------------------------*
- ; strobe routine 2
- ;*-------------------------------------------------------------------------------*
- strobe2:
- move.w equalizer2,colourlist+6
- rts
- ;*-------------------------------------------------------------------------------*
- ; strobe routine 3
- ;*-------------------------------------------------------------------------------*
- strobe3:
- sub.w #1,counts3
- tst.w counts3 are no. counts the same as amount in
- bne.w .noflas count amount?
- bsr.w flash change scrn colour
- move.w #3,counts3 reset counter
- .noflas:
- rts
- ;*-------------------------------------------------------------------------------*
- ; strobe routine 4
- ;*-------------------------------------------------------------------------------*
- strobe4:
- sub.w #1,counts3
- tst.w counts3 are no. counts the same as amount in
- bne.w .noflash count amount?
- bsr.w flash change scrn colour
- move.w #2,counts3 reset counter
- .noflash:
- rts
- ;*-------------------------------------------------------------------------------*
- ; strobe routine 5
- ;*-------------------------------------------------------------------------------*
- strobe5:
- sub.w #1,counts3
- tst.w counts3 are no. counts the same as amount in
- bne.w .nflash count amount?
- bsr.w flash change scrn colour
- move.w #1,counts3 reset counter
- .nflash:
- rts
- ;*-------------------------------------------------------------------------------*
- ; strobe routine 6
- ;*-------------------------------------------------------------------------------*
- strobe6:
- sub.w #1,counts3
- tst.w counts3 are no. counts the same as amount in
- bne.w .oflash count amount?
- bsr.w dflash change scrn colour
- move.w #3,counts3 reset counter
- .oflash:
- rts
- ;*-------------------------------------------------------------------------------*
- ; strobe routine 7
- ;*-------------------------------------------------------------------------------*
- strobe7:
- move.w equalizer3,Text_cols+2
- move.w equalizer3,colourlist+2
- move.w equalizer1,colourlist+6
- rts
- ;*-------------------------------------------------------------------------------*
- ; strobe routine 8
- ;*-------------------------------------------------------------------------------*
- strobe8:
- sub.w #1,counts3
- tst.w counts3 are no. counts the same as amount in
- bne.w n count amount?
- sub.b #1,strobecount
- tst.b strobecount
- bne.w notstrobing
- move.b #7,strobecount
- notstrobing:
- bsr.w cflash change scrn colour
- move.w #6,counts3 reset counter
- n:
- rts
- ;*-------------------------------------------------------------------------------*
- ; strobe routine 9
- ;*-------------------------------------------------------------------------------*
- strobe9:
- move.w equalizer3,colourlist+6
- move.w equalizer2,Text_cols+2
- move.w equalizer2,colourlist+2
- rts
- ;*-------------------------------------------------------------------------------*
- ; strobe routine border
- ;*-------------------------------------------------------------------------------*
- bdrstrobe:
- move.w equalizer4,bdr1+2
- move.w equalizer4,bdr2+2
- rts
- ;*-------------------------------------------------------------------------------*
- ; strobe routine back pic
- ;*-------------------------------------------------------------------------------*
- back_strobe:
- move.w equalizer4,bdr1+6
- rts
- ;*-------------------------------------------------------------------------------*
- ; xbounce routine
- ;*-------------------------------------------------------------------------------*
- xbounce:
- move.l x_ptr,d0
- move.l #bar_top+6,a0
- move.l #13,d1
- next_bar:
- move.w 8(a0),(a0)+
- addq.l #6,a0
- dbr d1,next_bar
- addq.l #2,d0
- cmp.l #coll_finish,d0
- blt.w not_fin_list
- move.l #collist,d0
- not_fin_list:
- move.l d0,x_ptr
- move.l d0,a1
- move.w (a1),(a0)
-
- move.l #5,d1
- move.l #bar_bottom-2,a0
- wtrye:
- move.w (a0),8(a0)
- subq.l #8,a0
- dbr d1,wtrye
- move.w bar_mid1-2,bar_mid2+6
-
- move.l #7,d1
- move.l #bar_mid1-2,a0
- trye:
- move.w (a0),8(a0)
- subq.l #8,a0
- dbr d1,trye
- move.w (a1),bar_bot+6
-
-
- moveq.l #0,d0
- move.w equalizer3,d0
- and.l #$f,d0
- cmp.w #$c,d0
- bgt x1
- cmp.w #$7,d0
- bgt x2
- cmp.w #$3,d0
- bgt x3
- move.l #xxx1,d0 put addr of you ilbm graphic in d0
- move.w d0,mirror_plane+p0l
- swap d0
- move.w d0,mirror_plane+p0h scn address in copperlist
- rts
- x1:
- move.l #xxxx,d0 put addr of you ilbm graphic in d0
- move.w d0,mirror_plane+p0l
- swap d0
- move.w d0,mirror_plane+p0h scn address in copperlist
- rts
- x2:
- move.l #xxx3,d0 put addr of you ilbm graphic in d0
- move.w d0,mirror_plane+p0l
- swap d0
- move.w d0,mirror_plane+p0h scn address in copperlist
- rts
- x3:
- move.l #xxx2,d0 put addr of you ilbm graphic in d0
- move.w d0,mirror_plane+p0l
- swap d0
- move.w d0,mirror_plane+p0h scn address in copperlist
- rts
- ;*-------------------------------------------------------------------------------*
- ;this is a copper list consult hw ref manual for explanation of copper cmds
- ;*-------------------------------------------------------------------------------*
- section copperlist,data_c
-
- my_copper
- dc.w BPLCON0,$0200 0 bp - lores bitplane control reg 0
- dc.w BPLCON2,%00100100 bp ctrl reg
- dc.w BPL1MOD,0 bp modulo odd
- dc.w BPL2MOD,0 bp modulo even
- bdr1: dc.w COLOR,$428 colour reg 0 (background)
- dc.w COLOR+18,0 colour reg 0 (background)
-
- scroll:
- dc.w BPLCON1,$0 this is the bitplane contol register 1
- ; see hardware ref for details.
-
- sprite:
- dc.w SPRPT,0 this tells sprite 0 where to look
- dc.w SPRPT+2,0 for it's graphic and pos data set by
-
- d_sprite1:
- dc.w SPRPT+8,0 this tells sprite 0 where to look
- dc.w SPRPT+10,0 for it's graphic and pos data set by
- d_sprite2:
- dc.w SPRPT+12,0 this tells sprite 0 where to look
- dc.w SPRPT+14,0 for it's graphic and pos data set by
- d_sprite3:
- dc.w SPRPT+16,0 this tells sprite 0 where to look
- dc.w SPRPT+18,0 for it's graphic and pos data set by
- d_sprite4:
- dc.w SPRPT+20,0 this tells sprite 0 where to look
- dc.w SPRPT+22,0 for it's graphic and pos data set by
-
- dc.w DDFSTRT,$38 start of display horiz
- dc.w DDFSTOP,$d0 stop of display horiz
- dc.w DIWSTRT,$2c81 visible window top left
- dc.w DIWSTOP,$2cc1 visible window bottom right
-
- ; this loads the pointers that tell custom chips where in mem you bps are
- ; the section near start of code fill in the addresses after
- bitplanes
- dc.w BPLPT,0
- dc.w BPLPT+2,0
- dc.w BPLPT+4,0
- dc.w BPLPT+6,0
- p0h equ 2
- p0l equ 6
- p1h equ 10
- p1l equ 14
- p2h equ 18
- p2l equ 22
- p3h equ 26
- p3l equ 30
- p4h equ 34
- p4l equ 38
-
-
- dc.w $2b01,$ff00
- spritepall:
- dc.w color+40,0
- dc.w color+42,$ff0
- dc.w color+44,$880
- dc.w color+46,$440
- dc.w color+48,0
- dc.w color+50,$FF0
- dc.w color+52,$880
- dc.w color+54,$440
-
-
- dc.w $2c01,$ff00 start gfx (text1)
- dc.w BPLCON0,$2600
- text_cols:
- dc.w color,$0
- dc.w color+2,$FFF
- dc.w $5401,$ff00 end gfx
- blank1:
- dc.w BPLPT,0
- dc.w BPLPT+2,0
-
- dc.w $6601,$ff00 start gfx (anims)
- gfxplanes
- dc.w BPLPT,0
- dc.w BPLPT+2,0
-
- ColourList:
- dc.w color,$0
- dc.w color+2,$0
-
- dc.w $f201,$ff00 end gfx
- blank2:
- dc.w BPLPT,0
- dc.w BPLPT+2,0
-
- dc.w $ffe1,$fffe end ntsc
-
- dc.w $0401,$ff00 start gfx (text2)
- replanes
- dc.w BPLPT,0
- dc.w BPLPT+2,0
- lowcol:
- dc.w color+2,$000
- dc.w $2c01,$ff00 end gfx
- dc.w BPLCON0,$0200
- bdr2: dc.w COLOR,$428 colour reg 0 (background)
-
- dc.w $2d01,$ff00 end pal
- dc.w INTREQ,$8010 strobe for interupt
- dc.w $ffff,$fffe end copper
- ;*-------------------------------------------------------------------------------*
- ;copper list 2 consult hw ref manual for explanation of copper cmds
- ;*-------------------------------------------------------------------------------*
-
- mirror_cop:
- dc.w BPLCON0,$0200 0 bp - lores bitplane control reg 0
- dc.w BPLCON2,$a bp ctrl reg
- dc.w BPL1MOD,0 bp modulo odd
- dc.w BPL2MOD,0 bp modulo even
- dc.w COLOR,$428 colour reg 0 (background)
-
- dc.w BPLCON1,$0 this is the bitplane contol register 1
- ; see hardware ref for details.
-
- mirsprite:
- dc.w SPRPT,0 this tells sprite 0 where to look
- dc.w SPRPT+2,0 for it's graphic and pos data set by
- ; the code higher up
-
- dc.w DDFSTRT,$38 start of display horiz
- dc.w DDFSTOP,$d0 stop of display horiz
- dc.w DIWSTRT,$2c81 visible window top left
- dc.w DIWSTOP,$2cc1 visible window bottom right
-
- ; this loads the pointers that tell custom chips where in mem you bps are
- ; the section near start of code fill in the addresses after
- mirror_plane:
- dc.w BPLPT,0
- dc.w BPLPT+2,0
- dc.w $2b01,$ff00
-
-
- dc.w $2c01,$ff00 start gfx
- dc.w BPLCON0,$1200
- dc.w color+2,$a70
- bar_top:
- f: set $2d
- c: set $FFF
- rept 15
- dc.b f,01,$ff,00
- dc.w color,c
- f: set f+6
- c: set c-$111
- endr
-
- dc.w $ab01,$ff00 mirror gfx
- dc.w BPL1MOD,-80 bp modulo odd
- dc.w BPL2MOD,-80 bp modulo even
- bar_bot:
- dc.w $d001,$ff00
- dc.w color,$FFF
- dc.w $d601,$ff00
- dc.w color,$EEE
- dc.w $dc01,$ff00
- dc.w color,$ddd
- dc.w $e201,$ff00
- dc.w color,$ccc
- dc.w $e801,$ff00
- dc.w color,$bbb
- dc.w $ee01,$ff00
- dc.w color,$aaa
- dc.w $f401,$ff00
- dc.w color,$999
- dc.w $fa01,$ff00
- dc.w color,$888
- bar_mid1:
- dc.w $ffe1,$fffe end ntsc
- bar_mid2:
- dc.w $0101,$ff00
- dc.w color,$777
- dc.w $0701,$ff00
- dc.w color,$666
- dc.w $0d01,$ff00
- dc.w color,$555
- dc.w $1301,$ff00
- dc.w color,$444
- dc.w $1901,$ff00
- dc.w color,$333
- dc.w $1f01,$ff00
- dc.w color,$222
- bar_bottom:
- dc.w $2501,$ff00
- dc.w color,$111
-
- dc.w $2b01,$ff00
- dc.w color,0
- dc.w $2c01,$ff00 end gfx
- dc.w BPLCON0,$0200
- dc.w COLOR,$428 colour reg 0 (background)
- dc.w $2d01,$ff00 end pal
- dc.w INTREQ,$8010 strobe for interupt
- dc.w $ffff,$fffe end copper
- ;*-------------------------------------------------------------------------------*
- ;this is copper list 3 consult hw ref manual for explanation of copper cmds
- ;*-------------------------------------------------------------------------------*
- cycle_copper
- dc.w BPLCON0,$0200 0 bp - lores bitplane control reg 0
- dc.w BPLCON2,$a bp ctrl reg
- dc.w BPL1MOD,120 bp modulo odd
- dc.w BPL2MOD,120 bp modulo even
- dc.w COLOR,0 colour reg 0 (background)
-
- dc.w BPLCON1,$0 this is the bitplane contol register 1
- ; see hardware ref for details.
-
- cyclesprite:
- dc.w SPRPT,0 this tells sprite 0 where to look
- dc.w SPRPT+2,0 for it's graphic and pos data set by
- ; the code higher up
-
- dc.w DDFSTRT,$38 start of display horiz
- dc.w DDFSTOP,$d0 stop of display horiz
- dc.w DIWSTRT,$2c81 visible window top left
- dc.w DIWSTOP,$2cc1 visible window bottom right
-
- ; this loads the pointers that tell custom chips where in mem you bps are
- ; the section near start of code fill in the addresses after
- cycleplanes
- dc.w BPLPT,0
- dc.w BPLPT+2,0
- dc.w BPLPT+4,0
- dc.w BPLPT+6,0
- dc.w BPLPT+8,0
- dc.w BPLPT+10,0
- dc.w BPLPT+12,0
- dc.w BPLPT+14,0
- dc.w BPLPT+16,0
- dc.w BPLPT+18,0
-
- dc.w $2b01,$ff00
- cycleList:
- c: set COLOR
- rept 32
- dc.w c,0
- c: set c+2
- endr
- listend:
-
- dc.w $2c01,$ff00 start gfx
-
- dc.w BPLCON0,$4200
-
- dc.w $ac01,$ff00
- dc.w BPL1MOD,-200 bp modulo odd
- dc.w BPL2MOD,-200 bp modulo even
-
- dc.w $ffe1,$fffe end ntsc
-
- dc.w $2c01,$ff00 end gfx
- dc.w BPLCON0,$0200
-
- dc.w $2d01,$ff00 end pal
- dc.w INTREQ,$8010 strobe for interupt
-
- dc.w $ffff,$fffe end copper
-
- ;*-------------------------------------------------------------------------------*
- ;intro copper list consult hw ref manual for explanation of copper cmds
- ;*-------------------------------------------------------------------------------*
- intro_copper
- dc.w BPLCON0,$0200 0 bp - lores bitplane control reg 0
- dc.w BPLCON2,$4a bp ctrl reg
- moddulo:
- dc.w BPL1MOD,160 bp modulo odd
- dc.w BPL2MOD,160 bp modulo even
- dc.w COLOR,0 colour reg 0 (background)
-
- dc.w BPLCON1,$0 this is the bitplane contol register 1
- ; see hardware ref for details.
-
- intro_sprite:
- dc.w SPRPT,0 this tells sprite 0 where to look
- dc.w SPRPT+2,0 for it's graphic and pos data set by
- ; the code higher up
-
- dc.w DDFSTRT,$38 start of display horiz
- dc.w DDFSTOP,$d0 stop of display horiz
- dc.w DIWSTRT,$2c81 visible window top left
- dc.w DIWSTOP,$2cc1 visible window bottom right
-
- ; this loads the pointers that tell custom chips where in mem you bps are
- ; the section near start of code fill in the addresses after
- intro_planes
- dc.w BPLPT,0
- dc.w BPLPT+2,0
- dc.w BPLPT+4,0
- dc.w BPLPT+6,0
- dc.w BPLPT+8,0
- dc.w BPLPT+10,0
- dc.w BPLPT+12,0
- dc.w BPLPT+14,0
- dc.w BPLPT+16,0
- dc.w BPLPT+18,0
-
- dc.w $2b01,$ff00
-
- intro_List:
- c: set COLOR
- rept 32
- dc.w c,0
- c: set c+2
- endr
-
-
- dc.w $2c01,$ff00 start gfx
- plane_start:
- dc.w BPLCON0,$5200
- dc.w $f401,$ff00
- dc.w BPLCON0,$0200
-
- dc.w $ffe1,$fffe end ntsc
-
- dc.w $2c01,$ff00 end gfx
-
- dc.w INTREQ,$8010 strobe for interupt
-
- dc.w $ffff,$fffe end copper
- ;*-------------------------------------------------------------------------------*
- ; DATA SECTION
- ;*-------------------------------------------------------------------------------*
- section spritedata,data_c
-
- dummysprite:
- dc.w 0,0,0,0
-
- ltbk_sprite1:
- dc.b 83,128,8,2
-
- dc.w $0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$001e,$0000
- dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
- dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
- dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
- dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
- dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
- dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
- dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
- dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
- dc.w $001e,$0000,$001f,$0000,$001f,$0000,$001f,$0000
- dc.w $001f,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$00ff,$0000,$00ff,$0000,$00ff,$0000
- dc.w $00ff,$0000,$0007,$0000,$0007,$0000,$0007,$0000
- dc.w $0007,$0000,$0007,$0000,$0007,$0000,$0007,$0000
- dc.w $0007,$0000,$0007,$0000,$0007,$0000,$0007,$0000
- dc.w $0007,$0000,$0007,$0000,$0007,$0000,$0007,$0000
- dc.w $0007,$0000,$0007,$0000,$0007,$0000,$0007,$0000
- dc.w $0007,$0000,$0007,$0000,$0007,$0000,$0007,$0000
- dc.w $0007,$0000,$0007,$0000,$0007,$0000,$0007,$0000
- dc.w $0007,$0000,$0007,$0000,$0007,$0000,$0007,$0000
- dc.w $0007,$0000,$0007,$0000,$0007,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$07f0,$080c,$0ffe,$0002
- dc.w $0ffe,$0001,$0ffe,$0001,$0f2f,$00b0,$0f17,$0018
- dc.w $0f0f,$0008,$0f07,$0000,$0f07,$0000,$0f07,$0000
- dc.w $0f07,$0000,$0f07,$0000,$0f07,$0000,$0f0f,$0008
- dc.w $0f07,$0008,$0f1e,$0091,$0fff,$0001,$0fff,$0001
- dc.w $0ffe,$0001,$0fff,$0000,$0f17,$0098,$0f03,$0004
- dc.w $0f03,$0000,$0f03,$0000,$0f03,$0000,$0f03,$0000
- dc.w $0f03,$0000,$0f03,$0000,$0f03,$0000,$0f03,$0000
- dc.w $0f07,$0004,$0f03,$0004,$0f0f,$0008,$0f0f,$0090
- dc.w $0fff,$0000,$0ffe,$0001,$0ffe,$0002,$07f8,$0804
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0181,$0242,$03c3,$0004,$03c7,$0000,$03c7,$0008
- dc.w $03cf,$0000,$03cf,$0010,$03df,$0000,$03df,$0020
- dc.w $03fe,$0001,$03fe,$0000,$03fc,$0002,$03fc,$0000
- dc.w $03f8,$0004,$03f8,$0000,$03f0,$0008,$03f0,$0000
- dc.w $03e0,$0010,$03e0,$0010,$03f0,$0000,$03f0,$0008
- dc.w $03f8,$0000,$03f8,$0004,$03fc,$0000,$03fc,$0002
- dc.w $03fe,$0000,$03fe,$0001,$03df,$0020,$03df,$0000
- dc.w $03cf,$0010,$03cf,$0000,$03c7,$0008,$03c7,$0000
- dc.w $03c3,$0004,$03c3,$0000,$03c1,$0002,$03c1,$0000
- dc.w $03c0,$0001,$0180,$0240,$0000,$0000,$0000,$0000
- dc.w $0000,$0000
- dc.w 0,0
-
- ltbk_sprite2:
-
- dc.b 83,136,8,2
- dc.w $0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$00ff,$0000
- dc.w $00ff,$0000,$00ff,$0000,$00ff,$0000,$00f0,$0000
- dc.w $00f0,$0000,$00f0,$0000,$00f0,$0000,$00f0,$0000
- dc.w $00f0,$0000,$00f0,$0000,$00f0,$0000,$00f0,$0000
- dc.w $00f0,$0000,$00f0,$0000,$00f0,$0000,$00ff,$0000
- dc.w $00ff,$0000,$00ff,$0000,$00ff,$0000,$00f0,$0000
- dc.w $00f0,$0000,$00f0,$0000,$00f0,$0000,$00f0,$0000
- dc.w $00f0,$0000,$00f0,$0000,$00f0,$0000,$00f0,$0000
- dc.w $00f0,$0000,$00f0,$0000,$00f0,$0000,$00f0,$0000
- dc.w $00f0,$0000,$fcff,$0000,$fcff,$0000,$fcff,$0000
- dc.w $fcff,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$ffc0,$0000,$ffc0,$0000,$ffc0,$0000
- dc.w $ffc0,$0000,$83c0,$0000,$83c0,$0000,$83c0,$0000
- dc.w $83c0,$0000,$83c0,$0000,$83c0,$0000,$83c0,$0000
- dc.w $83c0,$0000,$83c0,$0000,$83c0,$0000,$83c0,$0000
- dc.w $83c0,$0000,$83ff,$0000,$83ff,$0000,$83ff,$0000
- dc.w $83ff,$0000,$83c0,$0000,$83c0,$0000,$83c0,$0000
- dc.w $83c0,$0000,$83c0,$0000,$83c0,$0000,$83c0,$0000
- dc.w $83c0,$0000,$83c0,$0000,$83c0,$0000,$83c0,$0000
- dc.w $83c0,$0000,$83c0,$0000,$83c0,$0000,$83c0,$0000
- dc.w $83c0,$0000,$83c0,$0000,$83c0,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $00f0,$0090,$00f0,$0000,$80f0,$8000,$81f8,$8108
- dc.w $00f0,$8108,$80f0,$0108,$83fc,$0204,$83fc,$0204
- dc.w $81f8,$0204,$81f8,$0204,$81f8,$0204,$07fe,$8402
- dc.w $87fe,$8402,$07fe,$0402,$039c,$0462,$039c,$0402
- dc.w $039c,$0402,$879e,$8000,$079e,$8000,$cf9f,$4861
- dc.w $8fff,$4801,$cfff,$0801,$c7fe,$0801,$c7fe,$0801
- dc.w $cf0f,$0090,$cf0f,$0000,$cf0f,$0000,$cf0f,$0000
- dc.w $cf0f,$0000,$8f0f,$4000,$cf0f,$4000,$0f0f,$8000
- dc.w $8f0f,$8000,$0f0f,$0000,$0f0f,$0000,$0f0f,$0909
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $c180,$2240,$e3c0,$0000,$c3c0,$2001,$c3c3,$0002
- dc.w $83c1,$4002,$83c3,$0000,$03c7,$8004,$03c7,$0004
- dc.w $03c3,$0004,$03c7,$0000,$03c7,$0000,$03c7,$0000
- dc.w $03c7,$0000,$03c7,$0000,$03c7,$0000,$03c7,$0000
- dc.w $03c7,$0000,$03c7,$0000,$03c7,$0000,$03c7,$0000
- dc.w $03c7,$0000,$03c7,$0000,$03c7,$0000,$03c7,$0000
- dc.w $03c7,$0000,$03c7,$0000,$03c7,$0000,$03c7,$8000
- dc.w $83c7,$0000,$83c3,$4004,$c3c7,$0004,$c3c7,$2004
- dc.w $e3c3,$0000,$e3c1,$1002,$f3c3,$0002,$f3c0,$0001
- dc.w $f3c0,$0000,$6180,$9240,$0000,$0000,$0000,$0000
- dc.w $0000,$0000
- dc.w 0,0
-
- ltbk_sprite3:
- dc.b 83,144,8,2
- dc.w $0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$f3ff,$0000
- dc.w $f3ff,$0000,$f3ff,$0000,$f3ff,$0000,$001e,$0000
- dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
- dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
- dc.w $001e,$0000,$001e,$0000,$001e,$0000,$e01e,$0000
- dc.w $e01e,$0000,$e01e,$0000,$e01e,$0000,$001e,$0000
- dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
- dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
- dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
- dc.w $001e,$0000,$f01e,$0000,$f01e,$0000,$f01e,$0000
- dc.w $f01e,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$f1ff,$0000,$f1ff,$0000,$f1ff,$0000
- dc.w $f1ff,$0000,$f1e0,$0000,$f1e0,$0000,$f1e0,$0000
- dc.w $f1e0,$0000,$f1e0,$0000,$f1e0,$0000,$f1e0,$0000
- dc.w $f1e0,$0000,$f1e0,$0000,$f1e0,$0000,$f1e0,$0000
- dc.w $f1e0,$0000,$f1ff,$0000,$f1ff,$0000,$f1ff,$0000
- dc.w $f1ff,$0000,$f1e0,$0000,$f1e0,$0000,$f1e0,$0000
- dc.w $f1e0,$0000,$f1e0,$0000,$f1e0,$0000,$f1e0,$0000
- dc.w $f1e0,$0000,$f1e0,$0000,$f1e0,$0000,$f1e0,$0000
- dc.w $f1e0,$0000,$f1e0,$0000,$f1e0,$0000,$f1ff,$0000
- dc.w $f1ff,$0000,$f1ff,$0000,$f1ff,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$01e0,$0210,$03f8,$0408
- dc.w $07f8,$0804,$0ffe,$0002,$1ffe,$00c0,$1e1e,$2120
- dc.w $3f3e,$0120,$3c1e,$0200,$3e1e,$0200,$3c1e,$0012
- dc.w $3c00,$0000,$3e00,$0200,$3c00,$0200,$3e00,$0100
- dc.w $3fc0,$2040,$0fe0,$1020,$0fe0,$0810,$03f8,$0408
- dc.w $02f8,$0304,$01fc,$0100,$00fe,$0080,$003f,$0041
- dc.w $003e,$0021,$001f,$0000,$000f,$0010,$001f,$0010
- dc.w $000f,$0000,$000f,$0000,$3c1f,$2410,$3c0f,$0010
- dc.w $3c1f,$0000,$3e3e,$0221,$1e3f,$2101,$3ffe,$20c0
- dc.w $1ffe,$0002,$0ff8,$1004,$0ff8,$0808,$03e0,$0410
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $3c03,$4204,$ff07,$8100,$ff07,$0080,$ffc7,$0040
- dc.w $ff87,$1840,$c3e7,$2420,$e7c7,$2420,$81e7,$4200
- dc.w $c3e7,$4200,$c1e7,$4000,$c1e7,$4000,$80c7,$0120
- dc.w $8007,$0000,$8007,$0000,$8007,$0000,$8007,$0000
- dc.w $8007,$0000,$8007,$0000,$8007,$0000,$8007,$0000
- dc.w $8007,$0000,$8007,$0000,$8007,$0000,$8007,$0000
- dc.w $8007,$0000,$8007,$0000,$80c7,$0120,$c1e7,$4000
- dc.w $c1e7,$4000,$c3e7,$4200,$81e7,$4200,$e7c7,$2420
- dc.w $c3e7,$2420,$ff87,$1840,$ffc7,$0040,$ff07,$0080
- dc.w $ff07,$8100,$3c03,$4204,$0000,$0000,$0000,$0000
- dc.w $0000,$0000
- dc.w 0,0
-
- ltbk_sprite4:
- dc.b 83,152,8,2
- dc.w $0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$f000,$0000
- dc.w $f000,$0000,$f000,$0000,$f000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$e000,$0000,$e000,$0000,$e000,$0000
- dc.w $e000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$c000,$0000,$c000,$0000,$c000,$0000
- dc.w $c000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$e000,$0000
- dc.w $e000,$0000,$e000,$0000,$e000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$03c0,$0420,$07f0,$0810
- dc.w $0ff0,$1008,$1ffc,$0004,$3ffc,$0180,$3c3c,$4240
- dc.w $7e7c,$0240,$783c,$0400,$7c3c,$0400,$783c,$0024
- dc.w $7800,$0000,$7c00,$0400,$7800,$0400,$7c00,$0200
- dc.w $7f80,$4080,$1fc0,$2040,$1fc0,$1020,$07f0,$0810
- dc.w $05f0,$0608,$03f8,$0200,$01fc,$0100,$007e,$0082
- dc.w $007c,$0042,$003e,$0000,$001e,$0020,$003e,$0020
- dc.w $001e,$0000,$001e,$0000,$783e,$4820,$781e,$0020
- dc.w $783e,$0000,$7c7c,$0442,$3c7e,$4202,$7ffc,$4180
- dc.w $3ffc,$0004,$1ff0,$2008,$1ff0,$1010,$07c0,$0820
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0380,$8440,$87c0,$0800,$8f80,$0040,$8f80,$1000
- dc.w $9f00,$0080,$9f00,$2000,$be00,$0100,$be00,$4000
- dc.w $fc00,$0200,$fc00,$0000,$f800,$0400,$f800,$0000
- dc.w $f000,$0800,$f000,$0000,$e000,$1000,$e000,$0000
- dc.w $c000,$2000,$c000,$2000,$e000,$0000,$e000,$1000
- dc.w $f000,$0000,$f000,$0800,$f800,$0000,$f800,$0400
- dc.w $fc00,$0000,$fc00,$0200,$be00,$4000,$be00,$0100
- dc.w $9f00,$2000,$9f00,$0080,$8f80,$1000,$8f80,$0040
- dc.w $87c0,$0800,$87c0,$0020,$83e0,$0400,$83e0,$0000
- dc.w $81e0,$0200,$00c0,$8120,$0000,$0000,$0000,$0000
- dc.w $0000,$0000
- dc.w 0,0
-
-
-
-
-
- ;*-------------------------------------------------------------------------------*
- section musicdata,data_c
- incdir data:
- mt_data:
- incbin mod.rave3
- even
- MT_DATA2:
- incbin mod.menu
- ;*-------------------------------------------------------------------------------*
- section variables,data
-
- glib dc.b "graphics.library",0
- dlib dc.b "dos.library",0
- even
- greet_ptr dc.l 0
- screenpos dc.l 0
- textpos dc.l 0
- x_ptr dc.l 0
- gfxlib dc.l 0
- cgfxlib dc.l 0
- doslib dc.l 0
- oldcopper dc.l 0
- anim_ptr dc.l 0
- spin_ptr dc.l 0
- back_ptr dc.l 0
- ack_ptr dc.l 0
- scroll_wait dc.w 1
- bass_wait dc.w 1
- textcount dc.w 10
- gfxcount dc.w 5
- gfxcmp dc.w 5
- count dc.w 10
- counts3 dc.w 10
- alternator dc.w 100
- countamount dc.w 6
- BEATcount dc.w 4
- acounter dc.w 4
- upordown dc.w 0
- direction dc.w 0
- stselect dc.w 0
- delay dc.w 1
- cytog dc.w 0
- toggle dc.w $ffff
- scrollcount dc.w 32
- vbl dc.w 0
- spindone dc.w 0
- bored dc.w 100
- intro_counter dc.w $200
- wait dc.w 5
- strobelist dc.w $FFF
- dc.w $f00
- dc.w $ff0
- dc.w $0f0
- dc.w $0ff
- dc.w $00f
- dc.w $f0f
-
- plane_store:
- dc.w BPLCON0,$2600
- dc.w $ffe1,$fffe end ntsc
- dc.w $2c01,$ff00 end gfx
- dc.w BPLCON0,$0200
- dc.w $2d01,$ff00 end copper
-
- strobecount dc.b 6
- linecount dc.b 9
- cycount dc.b 2
- greets:
- ; 12345678901234567890
- dc.b " ",10
- dc.b " ",10
- dc.b " ",10
- dc.b " ",10
- dc.b "THANK YOU FOR",10
- dc.b "WATCHING OUR LITTLE",10
- dc.b "RAVE DEMO",10
- dc.b " ",10
- dc.b " ",10
- dc.b " ",10
- dc.b "@ ",10
-
- dc.b "This demo is",10
- dc.b "dedicated to a",10
- dc.b "scene member who",10
- dc.b "died this week",10
- dc.b " ",10
- dc.b " ",10
- dc.b "@ ",10
- dc.b " ",10
- dc.b " Master of the",10
- dc.b " Puppets",10
- dc.b " Rest in Peace",10
- dc.b " ",10
- dc.b " ",10
- dc.b " ",10
- dc.b "@ ",10
- dc.b "CREDITS AND GREETS",10
- dc.b " ",10
- dc.b " ",10
- dc.b "====================",10
- dc.b "PROGRAMMING",10
- dc.b "====================",10
- dc.b 10
- dc.b "*CYLON (DMX)*",10
- dc.b 10,10,10,"@",10
- dc.b "====================",10
- dc.b "GRAPHICS",10
- dc.b "====================",10
- dc.b "GIG (DMX)",10
- dc.b "Title picture",10
- dc.b "Font1",10
- dc.b "Small still GFX",10
- dc.b " ",10
- dc.b "@ ",10
- dc.b "*CYLON (DMX)*",10
- dc.b "Back drops",10
- dc.b "This font lowercase",10
- dc.b "Animated GFX",10
- dc.b "Cycle GFX",10
- dc.b "ZADD (DMX)",10
- dc.b "This font uppercase",10
- dc.b " ",10
- dc.b "@====================",10
- dc.b "MUSIC",10
- dc.b "====================",10
- dc.b 10
- dc.b "ZADD (DMX) RAVE",10
- dc.b "ACCEL (DMX) END.",10
- dc.b 10,10
- dc.b "@====================",10
- dc.b "UNUSED MUSIC",10
- dc.b "====================",10
- dc.b 10,10
- dc.b "THE ASSASSIN (DMX)",10
- dc.b 10,10
- dc.b "@====================",10
- dc.b "INSPIRATION AND",10
- dc.b "MORAL SUPPORT",10
- dc.b "====================",10
- dc.b 10
- dc.b "Andy Jim",10
- dc.b "Stuart Lee",10
- dc.b 10
- dc.b "@====================",10
- dc.b "THE SHORT GREETINGS",10
- dc.b "====================",10
- dc.b "DJ RAZ FUTURE SOUNDS",10
- dc.b "DISCO KICKIN",10
- dc.b "ANDY MICHELLE",10
- dc.b "JOFF DARYL",10
- dc.b "CLAIRE CHRIS",10
- dc.b "ROSY PHIL",10
- dc.b "LES EMMA",10
- dc.b "PAUL ALAN",10
- dc.b "LISA KELLY",10
- dc.b "SARAH PHILIP",10
- dc.b "VICKY ALAN",10
- dc.b "KEVIN JOSHUA",10
- dc.b " ",10
- incbin greets.i
- dc.b " ",10
- dc.b "====================",10
- dc.b "ADDRESSES FOLLOW",10
- dc.b "====================",10
- dc.b " ",10
- dc.b " ",10
- dc.b " ",10
- dc.b " ",10
- dc.b " ",10
- dc.b " ",10
- dc.b " ",10
- dc.b "Cylon ",10
- dc.b "@46 Willingham Road ",10
- dc.b "@Knaith Park ",10
- dc.b "@Lincs ",10
- dc.b "@DN21 5ES ",10
- dc.b "@ ",10
- dc.b "Zadd ",10
- dc.b "(Deadlock Arts) ",10
- dc.b "@31 Coroners Lane ",10
- dc.b "@Farnsworth ",10
- dc.b "@Widnes ",10
- dc.b "@Cheshire ",10
- dc.b "@WA8 9JN ",10
- dc.b "@ ",10
- dc.b "Mint sauce ",10
- dc.b "(Deadlock Arts) ",10
- dc.b "@46 Churncote ",10
- dc.b "@Stirchley ",10
- dc.b "@Telford ",10
- dc.b "@Shropshire ",10
- dc.b "@TF3 1YL ",10
- dc.b "@ ",10
- dc.b "R9 Sorry I couldn't ",10
- dc.b "find your addr. ",10
- dc.b " ",10
- dc.b "====================",10
- dc.b "THE BORING WAFFLE",10
- dc.b " ",10
- dc.b "Stu sorry no logo",10
- dc.b "my brain stalled at",10
- dc.b "the last minute",10
- dc.b "@ ",10
- dc.b "Minty it's all going",10
- dc.b "in AR4 matey 50 quid",10
- dc.b "and I'll take it out",10
- dc.b "100 quid and I'll",10
- dc.b "give you the",10
- dc.b "negatives and the",10
- dc.b "sheeps statement.",10
- dc.b "@ ",10
- dc.b "Tango OH NO!!!",10
- dc.b "Sorry for the delay",10
- dc.b "@ ",10
- dc.b "Speed a parcel is",10
- dc.b "comming.",10
- dc.b " ",10
- dc.b "Ghost where are you?",10
- dc.b " ",10
- dc.b "Rotox giz a call",10
- dc.b "@ ",10
- dc.b "mUb now I wonder",10
- dc.b "when the modem is",10
- dc.b "comming back HINT",10
- dc.b "HINT!",10
- dc.b "@====================",10
- dc.b " ",10
- dc.b " ",10
-
- dc.b "!text ends!",10
- dc.b " ",10
- dc.b " ",10
- dc.b " ",10
- dc.b " ",10
- dc.b " ",10
- dc.b " ",10
- dc.b " ",10
- dc.b " ",10
- dc.b " ",10
-
- dc.b 0
- text:
- ; 1234567890
- dc.b "WELCOME",13
- DC.B " ",13
- DC.B "TO RETINA",13
- DC.B " ",13
- DC.B "BURN ONE",13
- DC.B " ",13
- DC.B "BY CYLON",13
- DC.B " ",13
- DC.B "DIMENSION",13
- DC.B " ",13
- DC.B "X",13
- DC.B " ",13
- DC.B "RAVE MUSIC",13
- DC.B " ",13
- DC.B "BY ZADD",13
- DC.B " ",13
- DC.B "NOW",13
- DC.B " ",13
- DC.B "RAVE",13
- DC.B " ",13
- DC.B "ON",13
- DC.B " ",13
- DC.B "THE",13
- DC.B " ",13
- DC.B "EXTASY",13
- DC.B " ",13
- DC.B "OF",13
- DC.B " ",13
- DC.B "DIMENSION",13
- DC.B " ",13
- DC.B "X",13
- DC.B " ",13
- DC.B "SOURCECODE",13
- DC.B " ",13
- DC.B "SIZE",13
- DC.B " ",13
- DC.B "SIXTY FOUR",13
- DC.B " ",13
- DC.B "KILO BYTES",13
- DC.B " ",13
- DC.B "HI ARE YOU",13
- DC.B " ",13
- DC.B "HAPPY GUYZ",13
- DC.B " ",13
- DC.B "I AM DEAD",13
- DC.B " ",13
- DC.B "TIRED I",13
- DC.B " ",13
- DC.B "HAVE BEEN",13
- DC.B " ",13
- DC.B "CODING FOR",13
- DC.B " ",13
- DC.B "EIGHTEEN",13
- DC.B " ",13
- DC.B "HOURS NOW",13
- DC.B " ",13
- DC.B "AND STU",13
- DC.B " ",13
- DC.B "HAS BEEN",13
- DC.B " ",13
- DC.B "ON THE",13
- DC.B " ",13
- DC.B "PHONE FOR",13
- DC.B " ",13
- DC.B "AN HOUR",13
- DC.B " ",13
- DC.B "OR MORE",13
- DC.B " ",13
- DC.B "I NEED",13
- DC.B " ",13
- DC.B "SLEEP",13
- DC.B " ",13
- DC.B "LET ME GO",13
- DC.B " ",13
- DC.B "TO BED ITS",13
- DC.B " ",13
- DC.B "TWO AM",13
- DC.B " ",13
- DC.B "GOOD",13
- DC.B " ",13
- DC.B "NIGHT",13
- DC.B "ZZZZZZZZZZ",13
- DC.B " ",13
- DC.B " ",13
- DC.B " ",13
- DC.B " ",13
- DC.B " ",13
- DC.B 0
-
- anim_data:
- dc.b 1,3,1,3,1,3,1,3,1,3,3,3,8,9,10,11,8,9,10,11,8,9,10,11
- dc.b 12,12,12,4,5,6,7,4,5,6,7,4,5,6,7,2,2,12,12
- dc.b 7,6,5,4,7,6,5,4,7,6,5,4,2,2,13,14,15,16,13,14,15,16
- dc.b 2,2,2,2,2,16,16,16,13,13,13,14,14,14,15,15,15,16,16,16
- dc.b 1,1,3,3,12,12,12,12
- dc.b 0
- an_fin:
- spin_data:
- dc.b 4,5,6,7,0
- spin_fin:
- even
-
- black1:
- dc.w 0,0,0,0
- dc.w 0,0,0,0
- dc.w 0,0,0,0
- dc.w 0,0,0,0
- dc.w 0,0,0,0
- dc.w 0,0,0,0
- dc.w 0,0,0,0
- dc.w 0,0,0,0
- black2:
- dc.w 0,0,0,0
- dc.w 0,0,0,0
- dc.w 0,0,0,0
- dc.w 0,0,0,0
- dc.w 0,0,0,0
- dc.w 0,0,0,0
- dc.w 0,0,0,0
- dc.w 0,0,0,0
-
- block1: dc.w 0
- tabpos: dc.w 0
- block2: dc.w 0
- collist:
- dc.w $f,$c,$a,7,5,2,0,0,0,0,0,0,0,0,0
- dc.w $f0,$c0,$a0,$70,$50,$20,0,0,0,0,0,0,0,0,0
- dc.w $f00,$c00,$a00,$700,$500,$200,0,0,0,0,0,0,0,0,0
- dc.w $ff0,$cc0,$aa0,$770,$550,$220,0,0,0,0,0,0,0,0,0
- dc.w $ff,$77,$22,0,0,0,0,0,0,0,0,0,0,0,0
- dc.w $ff0,$550,$220,0,0,0,0,0,0,0,0,0,0,0,0
- dc.w $f0f,$707,$505,$202,0,0,9,0,0,0,0,0,0,0,0
- dc.w $fff,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- dc.w $fff,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- coll_finish:
- ;*-------------------------------------------------------------------------------*
-
- section screendata,data_c
- even
-
- TEXT_SCREEN:
- ds.b 40*40
- screen:
- incbin graf1.BIN
- incbin TEKNO.BIN
- incbin graf2.BIN
- cog:
- incbin frame.BIN
- cogend:
- incbin spin.bin
- incbin dmx.bin
- incbin arrow001.bin
- incbin arrow002.bin
- incbin arrow003.bin
- incbin arrow004.bin
- animend:
- xxxx: incbin xxxx001
- xxx3: incbin xxxx002
- xxx2: incbin xxxx003
- xxx1: incbin xxxx004
-
- section screendata2,data_c
- even
- cyclescreen: incbin halfCYcLepic
- even
- blank: ds.b 40*18 ;16 blank lines
- font32:
- incbin oval_font.bin
- font16:
- incbin testfont.bin 16*32-1456 91 chars
- section screendata3,data_c
- even
- introp: incbin roundx.bin
- introg: equ introp+64
- back_pic:
- incbin xpic.bin
- ;*-------------------------------------------------------------------------------*
- section nonechipgfx,data
-
- backdr1: incbin xpic.bin
- backdr2: incbin back2.bin
- backdr3: incbin back3.bin
- backdr4: incbin back4.bin
- backdr5: incbin back5.bin
- back_end:
-
- fl1: incbin flare001
- fl2: incbin flare002
- fl3: incbin flare003
- fl4: incbin flare004
- fl5: incbin flare005
- fl_rend:
-