SECTION TutDemo,CODE JUMPPTR Start INCDIR "" INCLUDE "PhotonsMiniStartup/PhotonsMiniWrapper1.04!.S" INCLUDE "Blitter-Register-List.S" INCLUDE "P61-Options.S" ;; --- screen buffer dimensions --- w =352 h =256 bplsize =w*h/8 ScrBpl =w/8 ;; --- logo dimensions --- logow =320 logoh =99 logomargin =(320-logow)/2 logobpl =logow/8 logobwid =logobpl*3 skybpl =logobpl skybwid =logobwid ;; --- font dimensions --- fontw =288 fonth =100 fontbpls =3 FontBpl =fontw/8 plotY =110 plotX =w-32 logobgcol =$44f bgcol =$225 ******************** MACROS ******************** logocolors:macro dc.w $068e,$0adf,$0dff dc.w $09bf,$056d,$044b,$033a endm ******************** DEMO ******************** Demo: move.w #$87e0,$dff096 bsr Init move.l #Copper,$dff080 move.l #VBint,$6c(a4) ;set vertb interrupt vector compatibly. move.w #$c020,$dff09a ;enable interrupts generally ;and vertb specifically. ;; --- Call P61_Init --- movem.l d0-a6,-(sp) lea Module1,a0 sub.l a1,a1 sub.l a2,a2 moveq #0,d0 jsr P61_Init movem.l (sp)+,d0-a6 bsr Main movem.l d0-a6,-(sp) jsr P61_End movem.l (sp)+,d0-a6 rts ;go back to system friendly wrapper exit. ********** ROUTINES ********** Main: movem.l d0-a6,-(sp) ************************** WaitMouse: btst #6,$bfe001 bne.w WaitMouse ************************** movem.l (sp)+,d0-a6 rts ******************** Effect 1 subroutine ******************** Part1: movem.l d0-a6,-(sp) bsr BounceScroller lea StarSpr+1,a1 moveq #$2c,d0 moveq #26-1,d7 .skyl: addq.b #1,(a1) ;add speed to hpos addq.w #8,a1 ;skip to next sprite control words addq.b #2,(a1) ;add speed to hpos addq.w #8,a1 ;skip to next sprite control words addq.b #1,(a1) ;add speed to hpos addq.w #8,a1 ;skip to next sprite control words addq.b #3,(a1) ;add speed to hpos addq.w #8,a1 ;skip to next sprite control words dbf d7,.skyl addq.b #1,(a1) ;add speed to hpos addq.w #8,a1 ;skip to next sprite control words addq.b #2,(a1) ;add speed to hpos addq.w #8,a1 ;skip to next sprite control words *--- below line $ff ---* moveq #%00000110,d6 addq.b #1,(a1) ;add speed to hpos addq.w #8,a1 addq.b #3,(a1) ;add speed to hpos addq.w #8,a1 moveq #5-1,d7 .floorl: addq.b #1,(a1) ;add speed to hpos addq.w #8,a1 addq.b #2,(a1) ;add speed to hpos addq.w #8,a1 addq.b #1,(a1) ;add speed to hpos addq.w #8,a1 addq.b #3,(a1) ;add speed to hpos addq.w #8,a1 dbf d7,.floorl *--- odd lines sprites ---* lea StarSpr2+1,a1 moveq #$2d,d0 moveq #26-1,d7 .skyl2: addq.b #1,(a1) ;add speed to hpos addq.w #8,a1 ;skip to next sprite control words addq.b #2,(a1) ;add speed to hpos addq.w #8,a1 ;skip to next sprite control words addq.b #1,(a1) ;add speed to hpos addq.w #8,a1 ;skip to next sprite control words addq.b #3,(a1) ;add speed to hpos addq.w #8,a1 ;skip to next sprite control words dbf d7,.skyl2 addq.b #1,(a1) ;add speed to hpos addq.w #8,a1 ;skip to next sprite control words addq.b #2,(a1) ;add speed to hpos addq.w #8,a1 ;skip to next sprite control words *--- below line $ff ---* moveq #%00000110,d6 addq.b #1,(a1) ;add speed to hpos addq.w #8,a1 addq.b #3,(a1) ;add speed to hpos addq.w #8,a1 moveq #5-1,d7 .floorl2: addq.b #1,(a1) ;add speed to hpos addq.w #8,a1 addq.b #2,(a1) ;add speed to hpos addq.w #8,a1 addq.b #1,(a1) ;add speed to hpos addq.w #8,a1 addq.b #3,(a1) ;add speed to hpos addq.w #8,a1 dbf d7,.floorl2 ;; --- sine lookup for raster bar vert. pos. --- lea Sine,a0 move.w SineCtr,d6 move.w #$4d-6+37,d7 add.w (a0,d6.w),d7 addq.w #2,d6 cmp.w #SineEnd-Sine,d6 blt.s .nowrap2 moveq #0,d6 .nowrap2: move.w d6,SineCtr ;; --- in front or behind flag --- lea BarInFront,a2 ;default source address for RGB color values cmp.w #50*2,d6 blt.s .behind cmp.w #150*2,d6 bge.s .behind bra.s .cont .behind: lea BarBehind,a2 .cont: lea waitras1,a0 move d7,d0 moveq #6-1,d1 .l: move.b d0,(a0) add.w #1,d0 move.w (a2)+,d2 ;background color from list move.w d2,6(a0) move.w (a2)+,6+4*1(a0) move.w (a2)+,6+4*2(a0) move.w (a2)+,6+4*3(a0) move.w (a2)+,6+4*4(a0) move.w (a2)+,6+4*5(a0) move.w (a2)+,6+4*6(a0) move.w (a2)+,6+4*7(a0) add.w #4*9,a0 ;step to next. DBF d1,.l bsr Scrollit moveq #32,d2 move.b LastChar(PC),d0 cmp.b #'I',d0 bne.s .noi moveq #16,d2 .noi: move.w ScrollCtr(PC),d0 addq.w #4,d0 cmp.w d2,d0 blo.s .nowrap move.l ScrollPtr(PC),a0 cmp.l #ScrollTextWrap,a0 blo.s .noplot lea ScrollText(PC),a0 .noplot: bsr PlotChar ;preserves a0 addq.w #1,a0 move.l a0,ScrollPtr clr.w d0 .nowrap: move.w d0,ScrollCtr movem.l (sp)+,d0-a6 rts VBint: ;Blank template VERTB interrupt movem.l d0-a6,-(sp) ;Save used registers lea $dff000,a6 btst #5,$1f(a6) ;INTREQR check if it's our vertb int. beq.s .notvb bsr Part1 moveq #$20,d0 ;poll irq bit move.w d0,$9c(a6) ;$dff09c=INTREQ move.w d0,$9c(a6) .notvb: movem.l (sp)+,d0-a6 ;restore rte row =288*3*20/8 col =4 PlotChar: ;a0=scrollptr movem.l d0-a6,-(sp) lea $dff000,a6 bsr BlitWait moveq #0,d0 move.b (a0)+,d0 ;ASCII value move.b d0,LastChar sub.w #32,d0 lea FontTbl(PC),a0 move.b (a0,d0.w),d0 divu #9,d0 ;row move.l d0,d1 swap d1 ;remainder (column) mulu #row,d0 mulu #col,d1 add.l d1,d0 ;offset into font bitmap add.l #Font,d0 move.l #$09f00000,BLTCON0(a6) move.l #$ffffffff,BLTAFWM(a6) move.l d0,BLTAPTH(a6) move.l #Screen+ScrBpl*3*plotY+plotX/8,BLTDPTH(a6) move.w #FontBpl-col,BLTAMOD(a6) move.w #ScrBpl-col,BLTDMOD(a6) move.w #20*3*64+2,BLTSIZE(a6) movem.l (sp)+,d0-a6 rts Scrollit: ;; --- scroll! --- bltoffs =plotY*ScrBpl*3 blth =20 bltw =w/16 bltskip =0 ;modulo brcorner=blth*ScrBpl*3-2 movem.l d0-a6,-(sp) lea $dff000,a6 bsr BlitWait move.l #$49f00002,BLTCON0(a6) move.l #$ffffffff,BLTAFWM(a6) move.l #Screen+bltoffs+brcorner,BLTAPTH(a6) move.l #Screen+bltoffs+brcorner,BLTDPTH(a6) move.w #bltskip,BLTAMOD(a6) move.w #bltskip,BLTDMOD(a6) move.w #blth*3*64+bltw,BLTSIZE(a6) movem.l (sp)+,d0-a6 rts Init: movem.l d0-a6,-(sp) moveq #0,d1 lea Screen,a1 move.w #bplsize*fontbpls/2-1,d0 .l: move.w #0,(a1)+ addq.w #1,d1 dbf d0,.l lea Sky,a1 moveq #0,d0 move.w #(SkyE-Sky)/8-1,d7 .l7: move.l d0,(a1)+ move.l d0,(a1)+ dbf d7,.l7 *--- playfield 1 ptrs ---* lea Logo,a0 ;ptr to first bitplane of logo lea CopBplP,a1 ;where to poke the bitplane pointer words. move #3-1,d0 .bpll: move.l a0,d1 swap d1 move.w d1,2(a1) ;hi word swap d1 move.w d1,6(a1) ;lo word addq #8,a1 ;point to next bpl to poke in copper lea logobpl(a0),a0 dbf d0,.bpll *--- playfield 2 ptrs ---* lea Sky,a0 ;ptr to first bitplane of logo move #3-1,d0 .bpll2: move.l a0,d1 swap d1 move.w d1,2(a1) ;hi word swap d1 move.w d1,6(a1) ;lo word addq #8,a1 ;point to next bpl to poke in copper lea skybpl(a0),a0 dbf d0,.bpll2 lea SprP,a1 lea StarSpr,a0 move.l a0,d1 moveq #2-1,d0 .sprpl: swap d1 move.w d1,2(a1) swap d1 move.w d1,6(a1) addq.w #8,a1 add.l #(StarSpr2-StarSpr),d1 dbf d0,.sprpl lea NullSpr,a0 move.l a0,d1 moveq #6-1,d0 .sprpl2: swap d1 move.w d1,2(a1) swap d1 move.w d1,6(a1) addq.w #8,a1 DBF d0,.sprpl2 lea FontE-7*2,a0 lea FontPalP+2,a1 moveq #7-1,d0 .coll: move.w (a0)+,(a1)+ addq.w #2,a1 DBF d0,.coll *--- initialize sprites ---* lea StarSpr,a1 moveq #$2c,d0 moveq #26-1,d7 .skyl: move.b d0,(a1)+ ;vstart addq.b #1,(a1)+ ;add speed to hpos addq.b #1,d0 ;increase vstop value move.b d0,(a1)+ ;vstop addq.b #1,d0 ;increase vstop value addq.w #5,a1 ;skip to next sprite control words move.b d0,(a1)+ addq.b #2,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value addq.w #5,a1 move.b d0,(a1)+ addq.b #1,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value addq.w #5,a1 move.b d0,(a1)+ addq.b #3,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value addq.w #5,a1 dbf d7,.skyl move.b d0,(a1)+ ;vstart addq.b #1,(a1)+ ;add speed to hpos addq.b #1,d0 ;increase vstop value move.b d0,(a1)+ ;vstop addq.b #1,d0 ;increase vstop value addq.w #5,a1 ;skip to next sprite control words move.b d0,(a1)+ addq.b #2,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value addq.w #5,a1 *--- below line $ff ---* moveq #%00000110,d6 move.b d0,(a1)+ addq.b #1,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value move.b d6,(a1)+ addq.w #4,a1 ;skip to next sprite control words move.b d0,(a1)+ addq.b #3,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value move.b d6,(a1)+ addq.w #4,a1 ;skip to next sprite control words moveq #5-1,d7 .floorl: move.b d0,(a1)+ ;vstart addq.b #1,(a1)+ ;add speed to hpos addq.b #1,d0 ;increase vstop value move.b d0,(a1)+ ;vstop addq.b #1,d0 ;increase vstop value move.b d6,(a1)+ addq.w #4,a1 ;skip to next sprite control words move.b d0,(a1)+ addq.b #2,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value move.b d6,(a1)+ addq.w #4,a1 ;skip to next sprite control words move.b d0,(a1)+ addq.b #1,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value move.b d6,(a1)+ addq.w #4,a1 ;skip to next sprite control words move.b d0,(a1)+ addq.b #3,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value move.b d6,(a1)+ addq.w #4,a1 ;skip to next sprite control words dbf d7,.floorl *--- odd lines sprites ---* lea StarSpr2,a1 moveq #$2d,d0 moveq #26-1,d7 .skyl2: move.b d0,(a1)+ ;vstart addq.b #1,(a1)+ ;add speed to hpos addq.b #1,d0 ;increase vstop value move.b d0,(a1)+ ;vstop addq.b #1,d0 ;increase vstop value addq.w #5,a1 ;skip to next sprite control words move.b d0,(a1)+ addq.b #2,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value addq.w #5,a1 move.b d0,(a1)+ addq.b #1,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value addq.w #5,a1 move.b d0,(a1)+ addq.b #3,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value addq.w #5,a1 dbf d7,.skyl2 move.b d0,(a1)+ ;vstart addq.b #1,(a1)+ ;add speed to hpos addq.b #1,d0 ;increase vstop value move.b d0,(a1)+ ;vstop addq.b #1,d0 ;increase vstop value addq.w #5,a1 ;skip to next sprite control words move.b d0,(a1)+ addq.b #2,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value move.b #2,(a1)+ addq.w #4,a1 ;skip to next sprite control words *--- below line $ff ---* moveq #%00000110,d6 move.b d0,(a1)+ addq.b #1,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value move.b d6,(a1)+ addq.w #4,a1 ;skip to next sprite control words move.b d0,(a1)+ addq.b #3,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value move.b d6,(a1)+ addq.w #4,a1 ;skip to next sprite control words moveq #5-1,d7 .floorl2: move.b d0,(a1)+ ;vstart addq.b #1,(a1)+ ;add speed to hpos addq.b #1,d0 ;increase vstop value move.b d0,(a1)+ ;vstop addq.b #1,d0 ;increase vstop value move.b d6,(a1)+ addq.w #4,a1 ;skip to next sprite control words move.b d0,(a1)+ addq.b #2,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value move.b d6,(a1)+ addq.w #4,a1 ;skip to next sprite control words move.b d0,(a1)+ addq.b #1,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value move.b d6,(a1)+ addq.w #4,a1 ;skip to next sprite control words move.b d0,(a1)+ addq.b #3,(a1)+ addq.b #1,d0 move.b d0,(a1)+ addq.b #1,d0 ;increase vstop value move.b d6,(a1)+ addq.w #4,a1 ;skip to next sprite control words dbf d7,.floorl2 movem.l (sp)+,d0-a6 rts CopyB: ;d0,a0,a1=count,source,destination .l: move.b (a0)+,(a1)+ subq.l #1,d0 bne.s .l rts BlitWait: tst DMACONR(a6) ;for compatibility .waitblit: btst #6,DMACONR(a6) bne.s .waitblit rts BounceScroller: MOVEM.L D0-A6,-(SP) lea Screen,a0 ;ptr to first bitplane of font move.w BounceY(PC),d0 move.w BounceYaccel(PC),d1 add.w d1,BounceYspeed add.w BounceYspeed(PC),d0 bpl.s .nobounce move.w #32,BounceYspeed clr.w d0 .nobounce: move.w d0,BounceY lsr.w #3,d0 mulu #3*scrbpl,d0 add.l d0,a0 lea ScrBplP,a1 ;where to poke the bitplane pointer words. moveq #fontbpls-1,d0 .bpll2: move.l a0,d1 swap d1 move.w d1,2(a1) ;hi word swap d1 move.w d1,6(a1) ;lo word addq #8,a1 ;point to next bpl to poke in copper lea ScrBpl(a0),a0 dbf d0,.bpll2 MOVEM.L (SP)+,D0-A6 RTS even ********** PLAYROUTINE CODE ********** ;Note: if this is put in its own section (or compiled as separate binary), then ;jsr +P61_InitOffset,P61_MusicOffset,P61_EndOffset,P61_SetPositionOffset ;to call the routines. Playrtn: include "P6112/P6112-Play.i" ********** DATA ********** FontTbl: dc.b 43,38 dcb.b 5,0 dc.b 42 dcb.b 4,0 dc.b 37,40,36,41 dc.b 26,27,28,29,30,31,32,33,34,35 dcb.b 5,0 dc.b 39,0 dc.b 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 dc.b 22,23,24,25 EVEN ScrollPtr: dc.l ScrollText ScrollText: dc.b "JUST FOR THE RETRO FEELING OF IT! YOU DIG??" dcb.b w/32,' ' ScrollTextWrap: LastChar:dc.b 0 EVEN ScrollCtr: dc.w 0 BounceY: dc.w 48*8 BounceYspeed: dc.w 0 BounceYaccel: dc.w -1 SineCtr: dc.w 0 gfxname: dc.b "graphics.library",0 EVEN Sine: INCBIN "Sine.37.200.w" SineEnd: SECTION TutData,DATA_C StarSpr: .x: SET 1 REPT 32 .tmpx: SET ((.x*$751+$deadbeef)/(.x&$55))&$ff dc.w $2c00+.tmpx,$2d00 ;Vstart.b,Hstart/2.b,Vstop.b,%A0000SEH dc.w $8000,$0000 .x: SET (.x+2)&$ffff .tmpx: SET ((.x*$753+$eadbeefd)/(.x&$55))&$ff dc.w $2c00+.tmpx,$2d00 ;Vstart.b,Hstart/2.b,Vstop.b,%A0000SEH dc.w $0000,$8000 .x: SET (.x+4)&$ffff .tmpx: SET ((.x*$755+$adbeefde)/(.x&$55))&$ff dc.w $2c00+.tmpx,$2d00 ;Vstart.b,Hstart/2.b,Vstop.b,%A0000SEH dc.w $8000,$0000 .x: SET (.x+8)&$ffff .tmpx: SET ((.x*$757+$dbeefdea)/(.x&$55))&$ff dc.w $2c00+.tmpx,$2d00 ;Vstart.b,Hstart/2.b,Vstop.b,%A0000SEH dc.w $c000,$c000 .x: SET (.x+16)&$ffff ENDR dc.w 0,0 StarSpr2: .x: SET $77 REPT 32 .tmpx: SET ((.x*$751+$deadbeef)/(.x&$55))&$ff dc.w $2c00+.tmpx,$2d00 ;Vstart.b,Hstart/2.b,Vstop.b,%A0000SEH dc.w $8000,$0000 .x: SET (.x+2)&$ffff .tmpx: SET ((.x*$753+$eadbeefd)/(.x&$55))&$ff dc.w $2c00+.tmpx,$2d00 ;Vstart.b,Hstart/2.b,Vstop.b,%A0000SEH dc.w $0000,$8000 .x: SET (.x+4)&$ffff .tmpx: SET ((.x*$755+$adbeefde)/(.x&$55))&$ff dc.w $2c00+.tmpx,$2d00 ;Vstart.b,Hstart/2.b,Vstop.b,%A0000SEH dc.w $8000,$0000 .x: SET (.x+8)&$ffff .tmpx: SET ((.x*$757+$dbeefdea)/(.x&$55))&$ff dc.w $2c00+.tmpx,$2d00 ;Vstart.b,Hstart/2.b,Vstop.b,%A0000SEH dc.w $c000,$c000 .x: SET (.x+16)&$ffff ENDR dc.w 0,0 NullSpr: dc.w $2a20,$2b00 dc.w 0,0 dc.w 0,0 BarBehind: dc.w $558 ;color00 value logocolors dc.w $99d ;color00... logocolors dc.w $fff logocolors dc.w $99d logocolors dc.w $558 logocolors dc.w logobgcol logocolors BarInFront: dc.w $558 dc.w $558 dc.w $558 dc.w $558 dc.w $558 dc.w $558 dc.w $558 dc.w $558 dc.w $99d dc.w $99d dc.w $99d dc.w $99d dc.w $99d dc.w $99d dc.w $99d dc.w $99d dc.w $fff dc.w $fff dc.w $fff dc.w $fff dc.w $fff dc.w $fff dc.w $fff dc.w $fff dc.w $99d dc.w $99d dc.w $99d dc.w $99d dc.w $99d dc.w $99d dc.w $99d dc.w $99d dc.w $558 dc.w $558 dc.w $558 dc.w $558 dc.w $558 dc.w $558 dc.w $558 dc.w $558 dc.w logobgcol logocolors Copper: dc.w $1fc,0 ;slow fetch mode, AGA compatibility dc.w $100,$0200 dc.b 0,$8e,$2c,$81 dc.b 0,$90,$2c,$c1 dc.w $92,$38 dc.w $94,$d0 dc.w $108,logobwid-logobpl dc.w $10a,skybwid-skybpl dc.w $102,0 dc.w $104,0 dc.w $1a2,$99b ;sprite colors dc.w $1a4,$cce dc.w $1a6,$fff SprP: dc.w $120,0 dc.w $122,0 dc.w $124,0 dc.w $126,0 dc.w $128,0 dc.w $12a,0 dc.w $12c,0 dc.w $12e,0 dc.w $130,0 dc.w $132,0 dc.w $134,0 dc.w $136,0 dc.w $138,0 dc.w $13a,0 dc.w $13c,0 dc.w $13e,0 CopBplP: dc.w $e0,0 ;playfield 1 dc.w $e2,0 dc.w $e8,0 dc.w $ea,0 dc.w $f0,0 dc.w $f2,0 dc.w $e4,0 ;playfield 2 dc.w $e6,0 dc.w $ec,0 dc.w $ee,0 dc.w $f4,0 dc.w $f6,0 dc.w $0180,logobgcol dc.w $100,$6600 dc.w $2c07,$fffe LogoPal: dc.w $0180,$044f,$0182,$068e,$0184,$0adf,$0186,$0dff dc.w $0188,$09bf,$018a,$056d,$018c,$044b,$018e,$033a dc.w $0192,$0000,$0194,$0adf,$0196,$0dff dc.w $0198,$09bf,$019a,$056d,$019c,$044b,$019e,$033a waitras1: dc.w $8007,$fffe dc.w $180,$558 dc.w $182,0 dc.w $184,0 dc.w $186,0 dc.w $188,0 dc.w $18a,0 dc.w $18c,0 dc.w $18e,0 waitras2: dc.w $8107,$fffe dc.w $180,$99d dc.w $182,0 dc.w $184,0 dc.w $186,0 dc.w $188,0 dc.w $18a,0 dc.w $18c,0 dc.w $18e,0 waitras3: dc.w $8207,$fffe dc.w $180,$fff dc.w $182,0 dc.w $184,0 dc.w $186,0 dc.w $188,0 dc.w $18a,0 dc.w $18c,0 dc.w $18e,0 waitras4: dc.w $8307,$fffe dc.w $180,$99d dc.w $182,0 dc.w $184,0 dc.w $186,0 dc.w $188,0 dc.w $18a,0 dc.w $18c,0 dc.w $18e,0 waitras5: dc.w $8407,$fffe dc.w $180,$558 dc.w $182,0 dc.w $184,0 dc.w $186,0 dc.w $188,0 dc.w $18a,0 dc.w $18c,0 dc.w $18e,0 waitras6: dc.w $8507,$fffe dc.w $180,logobgcol dc.w $182,0 dc.w $184,0 dc.w $186,0 dc.w $188,0 dc.w $18a,0 dc.w $18c,0 dc.w $18e,0 dc.w $96bf,$fffe FontPalP: dc.w $0182,$0ddd,$0184,$0833,$0186,$0334 dc.w $0188,$0a88,$018a,$099a,$018c,$0556,$018e,$0633 ScrBplP: dc.w $e0,0 dc.w $e2,0 dc.w $e8,0 dc.w $ea,0 dc.w $f0,0 dc.w $f2,0 dc.w $108,ScrBpl*FontBpls-320/8 dc.w $92,$38 dc.w $94,$d0 dc.w $9707,$fffe dc.w $180,$44e dc.w $9807,$fffe dc.w $180,$44f dc.w $9907,$fffe dc.w $180,$44e dc.w $9d07,$fffe dc.w $180,$44d dc.w $9e07,$fffe dc.w $180,$44e dc.w $9f07,$fffe dc.w $180,$44d dc.w $a407,$fffe dc.w $180,$44c dc.w $a507,$fffe dc.w $180,$44d dc.w $a607,$fffe dc.w $180,$44c dc.w $ab07,$fffe dc.w $180,$43c dc.w $ac07,$fffe dc.w $180,$44c dc.w $ad07,$fffe dc.w $180,$43c dc.w $b207,$fffe dc.w $180,$33b dc.w $b307,$fffe dc.w $180,$43c dc.w $b407,$fffe dc.w $180,$33b dc.w $b907,$fffe dc.w $180,$33a dc.w $ba07,$fffe dc.w $180,$33b dc.w $bb07,$fffe dc.w $180,$33a dc.w $c007,$fffe dc.w $180,$339 dc.w $c107,$fffe dc.w $180,$33a dc.w $c207,$fffe dc.w $180,$339 dc.w $c707,$fffe dc.w $180,$329 dc.w $c807,$fffe dc.w $180,$339 dc.w $c907,$fffe dc.w $180,$329 dc.w $ce07,$fffe dc.w $180,$228 dc.w $cf07,$fffe dc.w $180,$329 dc.w $d007,$fffe dc.w $180,$228 dc.w $d507,$fffe dc.w $180,$227 dc.w $d607,$fffe dc.w $180,$228 dc.w $d707,$fffe dc.w $180,$227 dc.w $dc07,$fffe dc.w $180,$226 dc.w $dd07,$fffe dc.w $180,$227 dc.w $de07,$fffe dc.w $180,$226 dc.w $e307,$fffe dc.w $180,bgcol dc.w $e407,$fffe dc.w $180,$226 dc.w $e507,$fffe dc.w $180,bgcol dc.w $ffdf,$fffe ;; --- bottom plate start --- dc.w $0807,$fffe dc.w $180,$236 dc.w $0a07,$fffe dc.w $180,$247 dc.w $0b07,$fffe dc.w $180,$236 dc.w $0e07,$fffe dc.w $180,$258 dc.w $0f07,$fffe dc.w $180,$236 dc.w $1507,$fffe dc.w $180,$269 dc.w $1607,$fffe dc.w $180,$236 ;; --- mirror split --- dc.w $17df,$fffe dc.w $182,$0468 dc.w $184,$0235 dc.w $186,$0358 dc.w $188,$0689 dc.w $18a,$069a dc.w $18c,$07bc dc.w $18e,$08dd dc.w $108,(ScrBpl*FontBpls-320/8)-(ScrBpl*FontBpls*2) dc.w $2007,$fffe dc.w $180,$27a dc.w $182,$27a dc.w $184,$27a dc.w $186,$27a dc.w $188,$27a dc.w $18a,$27a dc.w $18c,$27a dc.w $18e,$27a dc.w $2107,$fffe dc.w $180,$236 dc.w $182,$0468 dc.w $184,$0235 dc.w $186,$0358 dc.w $188,$0689 dc.w $18a,$069a dc.w $18c,$07bc dc.w $18e,$08dd ;; --- bottom plate stop --- dc.w $2c07,$fffe dc.w $180,$38b dc.w $2d07,$fffe dc.w $180,$235 dc.w $2e07,$fffe dc.w $180,$247 dc.w $2f07,$fffe dc.w $180,$258 ;; --- bottom plate thickness --- dc.w $3007,$fffe dc.w $180,bgcol dc.w $ffff,$fffe CopperE: Font: INCBIN "media/FastCarFont.284x100x3" FontE: Logo: INCBIN "sky3centered.raw" LogoE: dcb.b logobwid*6,0 Module1: incbin "P61.new_ditty" ;usecode $c00b43b SECTION TutBSS,BSS_C Screen: ds.b bplsize*fontbpls ScreenE: Sky: ds.b skybwid*h SkyE: END Bit Channel 1001 ABCD -> D 0 000 0 1 001 0 2 010 0 3 011 0 4 100 1 5 101 1 6 110 1 7 111 1 %11110000 =$f0