Twist again by Orb [web]
***************************************************************************** * twist again * * a small 256 byte twister (including file header) * for amiga ocs with sound... * * ultra^orb 20110526 * ***************************************************************************** release equ 1 plane equ $1f10 sinus equ $2000 bgcolor equ (79>>4)<<8+(111>>4)<<4+151>>4 barcolor1 equ (223>>4)<<8+(189>>4)<<4+135>>4 barcolor2 equ (143>>4)<<8+(121>>4)<<4+87>>4 section shortig, code_c ***************************************************************************** start ;create sin lea copper+sinus(pc),a5 move #$385>>1,d4 clr.l d1 ;stuff for the gfx generation move #plane,a4 moveq #-8,d0 clr.l d5 moveq #127,d3 createsin add d4,d1 move.l d1,d2 asr #7,d2 move.b d2,(a5)+ neg d2 move.b d2,128-1(a5) ;gfx generation move.l d5,(a4)+ move.l d0,(a4)+ add.l d0,d0 addx.l d5,d5 subq #7,d4 dbf d3,createsin mainloop: moveq #$3b,d7 clr d6 move d5,d3 drawloop: lea $dff000+$e0,a6 lea copper(pc),a0 move.l a0,$80-$e0(a6) ;get sin value for the current line ext.w d3 move.b (a5,d3),d2 add d6,d2 ;set audio buffer ptr... creates some kind of bassline ;ok nearly ;) ext.w d2 lea (a5,d2),a4 move.l a4,$a0-$e0(a6) sync cmp.b $06-$e0(a6),d7 bne.s sync move #plane,d0 ;calc which of pregenerated gfx part ;should be used move.b (a4),d1 asr.b #3,d1 ;sub -$10 this is a bit tricky bitplane is at xx10 sub.b d0,d1 bpl.s ispos neg.b d1 ispos lsl #3,d1 ;set bitplane pointers add d1,d0 move.l d0,(a6)+ move #plane+(31*8),d0 sub d1,d0 move.l d0,(a6) ;handle priority of the bars via the color reg ;this reuses the colors which are set in the copper list ;to save some space addq #2,a0 add.b #$44,d2 bmi.s isneg addq #4,a0 isneg move (a0),$186-$e4(a6) addq.b #2,d6 subq.b #1,d3 addq.b #1,d7 bcc.s drawloop ;some sin movement subq #2,d5 if release bra.s mainloop else btst #6,$bfe001 bne.s mainloop illegal endc ***************************************************************************** ; dc.w barcolor1,barcolor2 copper dc.w $0182,barcolor1 dc.w $0184,barcolor2 dc.w $009a,$7fff ; irqs off ; audio stuff dc.w $00a4,$0010 ; len dc.w $00a6,$0220 ; period dc.w $00a8,$0030 ; volume dc.w $0096,$8001 ; chan 1 on ; colors ; screen setup dc.w $0096,$0020 ; sprites off dc.w $008e,$3b81 ; window start dc.w $0090,$ffd1 ; window stop dc.w $0092,$0060-6 ; fetch start dc.w $0094,$0060+84-6 ; fetch stop dc.w $0100,$2200 ; 2 bitplanes ; bg color rasterlines dc.w $3b01,$fffe dc.w $0180,bgcolor dc.w $ff01,$fffe dc.w $0180,$0000 dc.l -2 ***************************************************************************** printt "size:" printv *-start ***************************************************************************** end
[ back to the prod ]