; THE DEMO CLUB INTRO BY MIKE ; DISTRIBUTE THIS SOURCE UPON PAIN ; OF DEATH, OR EVEN WORSE, HARD DISK ; ERASURE. ; ; SIMPLY ADD YOUR TEXT ABOVE MINE, ; SOMEWHERE TOWARDS THE END OF THE ; PROGRAM. ; ; I WOULD APPRECIATE IT IF YOU WOULD ; FINISH YOURS IN SUCH A WAY THAT IT ; 'FLOWED' INTO MINE NEATLY! ; ; THEN ASSEMBLE TO DISK (CALL IT ; INTRO.PRG OR SOMETHING), AND THEN ; PACK IT USING AUTOMATION 1.3 OR ; GREATER (THIS OFFERS SOME DEGREE ; OF PROTECTION FROM THE CASUAL ; HACKER!) ; ; CHEAR'S JOHN - YOU OWE ME A DRINK! ; (OR MANY JUST A FEW DISKS!) ; ; BYE-BYE! OPT O+,OW- VSYNC MACRO MOVE.L D0,-(A7) MOVE.W SYNC,D0 .VLP\@ CMP.W SYNC,D0 BEQ .VLP\@ MOVE.L (A7)+,D0 ENDM ; START OF PROGRAM BSR INIT BSR RANDGEN BSR SHIFTLOGO BSR SFTSMILE BSR CLEARBUF LEA $FF8240,A0 LEA NWPAL,A1 MOVEM.L (A1),D0-D7 MOVEM.L D0-D7,(A0) BSR ON CONT2 VSYNC BSR DLOGO BSR SMILEY BSR BARS ; MOVE.W #$606,$FF8240 CMPI.B #$39,$FFFC02 BNE CONT2 BSR FLUSH BRA OUT FLUSH BTST.B #0,$FFFC00 BEQ FLUSH2 MOVE.B $FFFC02,D0 BRA FLUSH FLUSH2 RTS INIT DC.W $A00A CLR.L -(SP) MOVE.W #$20,-(SP) TRAP #1 ADD.L #6,SP MOVE.L D0,SSP MOVE.B #$12,$FFFFFC02.W MOVE.L #$FF8240,A0 MOVE.L #PALETTE,A1 MOVEM.L (A0),D0-D7 MOVEM.L D0-D7,(A1) MOVE.W #2,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.L D0,PBASE MOVE.W #3,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.L D0,LBASE MOVE.W #4,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.W D0,RES CLR.B $FF8260 MOVE.L #SCREENS,D0 ADD.L #512,D0 AND.L #$FFFFFF00,D0 MOVE.L D0,SCREENA ADD.L #$B000,D0 MOVE.L D0,SCREENB MOVE.W #1,TOGGLE MOVE.L SCREENB,SCREENW MOVE.L SCREENA,A0 MOVE.W #($16000/4),D0 MOVEQ #0,D1 CLRLOOP MOVE.L D1,(A0)+ DBRA D0,CLRLOOP MOVE.L #BARDAT,BARPOS MOVE.L #LWAVE,WAVE ;LOGO MOVE.L #SWAVE,WAVE2 ;SMILEY MOVEQ #1,D0 BSR MUSIC RTS OUT BSR OFF BSR SOUNDOFF MOVE.B #$8,$FFFFFC02.W MOVE.L #$FF8240,A0 MOVE.L #PALETTE,A1 MOVEM.L (A1),D0-D7 MOVEM.L D0-D7,(A0) MOVE.W RES,-(SP) MOVE.L LBASE,-(SP) MOVE.L PBASE,-(SP) MOVE.W #5,-(SP) TRAP #14 ADD.L #12,SP DC.W $A009 MOVE.L SSP,-(SP) MOVE.W #$20,-(SP) TRAP #1 ADD.L #6,SP CLR.W -(SP) TRAP #1 SOUNDOFF MOVEQ #0,D0 JSR MUSIC MOVE.B #7,$FFFFF8800 MOVE.B #-1,$FFFF8802 RTS ;DIST CODE SHIFTLOGO LEA LOGOCOPY,A1 MOVE.L #15,D0 SHIFT3 LEA LOGO,A0 MOVE.W #76,D1 SHIFT2 MOVE.W #7,D2 CLR.W 0(A1) CLR.W 2(A1) CLR.W 4(A1) CLR.W 6(A1) SHIFT1 MOVEQ #0,D3 MOVEQ #0,D4 MOVEQ #0,D5 MOVEQ #0,D6 MOVE.W 0(A0),D3 MOVE.W 2(A0),D4 MOVE.W 4(A0),D5 MOVE.W 6(A0),D6 LSL.L D0,D3 LSL.L D0,D4 LSL.L D0,D5 LSL.L D0,D6 MOVE.W D3,$8(A1) MOVE.W D4,$A(A1) MOVE.W D5,$C(A1) MOVE.W D6,$E(A1) SWAP D3 SWAP D4 SWAP D5 SWAP D6 OR.W D3,0(A1) OR.W D4,2(A1) OR.W D5,4(A1) OR.W D6,6(A1) LEA 8(A0),A0 LEA 8(A1),A1 DBRA D2,SHIFT1 LEA 8(A1),A1 DBRA D1,SHIFT2 DBRA D0,SHIFT3 LEA XTABLE,A0 MOVE.L #0,D0 MOVE.W #19,D2 XT2 MOVE.W #15,D1 XT1 MOVE.L D0,(A0)+ DBRA D1,XT1 ADD.L #8,D0 DBRA D2,XT2 RTS DLOGO LEA LOGOTAB,A0 LEA XTABLE,A1 LEA XADDR,A2 MOVE.L SCREENW,A3 MOVE.W #76,D0 MOVEQ #0,D2 ;YPOS MOVE.L WAVE,A4 MOVEQ #0,D1 ENDRET1 MOVE.W (A4)+,D1 BMI ENDWAVE1 MOVE.L A4,WAVE DISTLP LSL.L #2,D1 MOVE.L (A0,D1.L),D7 ADD.L D2,D7 ADD.L #LOGOCOPY,D7 MOVE.L D7,(A2)+ MOVE.L (A1,D1.L),D7 ADD.L A3,D7 ADD.L #($A0*15),D7 ;HPOS MOVE.L D7,(A2)+ LEA $A0(A3),A3 ADD.L #72,D2 MOVEQ #0,D1 ENDRET2 MOVE.W (A4)+,D1 BMI ENDWAVE2 DBRA D0,DISTLP LEA XADDR,A4 MOVEQ #0,D7 OFFSET SET $4B00+($A0*10) REPT 38 ;18 REG NEEDED MOVE.L (A4)+,A0 MOVE.L (A4)+,A1 MOVE.L D7,-8(A1) MOVE.L D7,-4(A1) MOVEM.L (A0),D0-D6/A2-A3 MOVEM.L D0-D6/A2-A3,(A1) MOVEM.L 36(A0),D0-D6/A2-A3 MOVEM.L D0-D6/A2-A3,36(A1) MOVE.L D7,72(A1) MOVE.L D7,76(A1) MOVE.L (A4)+,A0 MOVE.L (A4)+,A1 MOVE.L D7,-8(A1) MOVE.L D7,-4(A1) MOVE.L D7,-8+OFFSET(A1) MOVE.L D7,-4+OFFSET(A1) MOVEM.L (A0),D0-D6/A2-A3 MOVEM.L D0-D6/A2-A3,(A1) MOVEM.L D0-D6/A2-A3,OFFSET(A1) MOVEM.L 36(A0),D0-D6/A2-A3 MOVEM.L D0-D6/A2-A3,36(A1) MOVEM.L D0-D6/A2-A3,36+OFFSET(A1) MOVE.L D7,72(A1) MOVE.L D7,76(A1) MOVE.L D7,72+OFFSET(A1) MOVE.L D7,76+OFFSET(A1) OFFSET SET OFFSET-($A0*3) ENDR MOVE.L (A4)+,A0 MOVE.L (A4)+,A1 MOVE.L D7,-8(A1) MOVE.L D7,-4(A1) MOVEM.L (A0),D0-D6/A2-A3 MOVEM.L D0-D6/A2-A3,(A1) MOVEM.L 36(A0),D0-D6/A2-A3 MOVEM.L D0-D6/A2-A3,36(A1) MOVE.L D7,72(A1) MOVE.L D7,76(A1) RTS ENDWAVE1 MOVE.L #LWAVE,A4 BRA ENDRET1 ENDWAVE2 MOVE.L #LWAVE,A4 BRA ENDRET2 ;SMILE CODE SFTSMILE LEA SMILE,A0 LEA SMILEROT,A1 MOVE.L A1,A2 MOVE.W #31,D0 ROTLP4 MOVE.L (A0)+,(A2)+ MOVE.L #0,(A2)+ DBRA D0,ROTLP4 MOVE.L A1,A0 MOVE.L A2,A1 MOVE.W #30,D0 ROTLP3 MOVE.W #31,D1 ROTLP2 MOVE.L (A0),(A1) MOVE.L 4(A0),4(A1) ROXR.W (A1) ROXR.W 2(A1) ROXR.W 4(A1) ROXR.W 6(A1) ADDQ.L #8,A0 ADDQ.L #8,A1 DBRA D1,ROTLP2 DBRA D0,ROTLP3 RTS SMILEY LEA SMILETAB,A0 LEA SMILEROT,A1 LEA BOX,A5 MOVE.L SCREENW,A3 CMP.W #0,SDIREC2 BEQ SMDOWN SUB.L #$A0,SPOS2 CMP.L #($A0*170),SPOS2 BNE SMOKAY1 MOVE.W #0,SDIREC2 BRA SMOKAY1 SMDOWN ADD.L #$A0,SPOS2 CMP.L #($A0*228),SPOS2 BNE SMOKAY1 MOVE.W #1,SDIREC2 SMOKAY1 ADD.L SPOS2,A3 MOVEQ #0,D1 COUNT SET 0 REPT 20 MOVE.W D1,(-$A0+COUNT)(A3) COUNT SET COUNT+8 ENDR MOVE.W #31,D0 MOVE.L WAVE2,A4 SMILELP MOVEQ #0,D1 DRET1 MOVE.W (A4)+,D1 BMI DENDWAVE1 LSL.L #2,D1 MOVE.L (A0,D1.L),D7 MOVE.L A1,A2 ADD.L D7,A2 MOVE.W (A2),D1 MOVE.W 2(A2),D2 MOVE.W 4(A2),D3 MOVE.W 6(A2),D4 MOVE.W D1,$08(A3) MOVE.W D2,$10(A3) MOVE.W D3,$18(A3) MOVE.W D4,$20(A3) MOVE.W D1,$78(A3) MOVE.W D2,$80(A3) MOVE.W D3,$88(A3) MOVE.W D4,$90(A3) MOVE.W (A5)+,$28(A3) MOVE.W (A5)+,$30(A3) MOVE.W (A5)+,$38(A3) MOVE.W (A5)+,$40(A3) MOVE.W (A5)+,$48(A3) MOVE.W (A5)+,$50(A3) MOVE.W (A5)+,$58(A3) MOVE.W (A5)+,$60(A3) MOVE.W (A5)+,$68(A3) MOVE.W (A5)+,$70(A3) ADDQ.L #8,A1 LEA $A0(A3),A3 DBRA D0,SMILELP MOVE.L WAVE2,A4 MOVEQ #0,D1 DRET2 MOVE.W (A4)+,D1 BMI DENDWAVE2 MOVE.L A4,WAVE2 RTS DENDWAVE1 MOVE.L #SWAVE,A4 BRA DRET1 DENDWAVE2 MOVE.L #SWAVE,A4 BRA DRET2 CLEARBUF MOVE.W #(20*$A0),D0 LEA SCBUF1,A0 CLBUF1 MOVE.L #0,(A0)+ DBRA D0,CLBUF1 MOVE.L #MESSAGE,MESPOS MOVE.L #FONT+$88,CHARADDR ; SPACE MOVE.L #(225*$A0),SPOS MOVE.W #0,SDIREC MOVE.L #(225*$A0),SPOS2 MOVE.W #1,SDIREC2 RTS SCROLL CMP.W #0,SDIREC BEQ SCDOWN SUB.L #$A0,SPOS CMP.L #($A0*202),SPOS BNE SOKAY1 MOVE.W #0,SDIREC BRA SOKAY1 SCDOWN ADD.L #$A0,SPOS CMP.L #($A0*260),SPOS BNE SOKAY1 MOVE.W #1,SDIREC SOKAY1 MOVE.W SCROLLX,D0 ADDQ.W #2,SCROLLX CMP.W #$54,SCROLLX BLT.S SCOK1 CLR.W SCROLLX SCOK1 MOVE.W D0,D1 ANDI.W #3,D0 ADD.W D0,D0 ADD.W D0,D0 ;=0,8 MOVE.W D0,NSHIFTS LEA SCRTABLE(PC),A0 MOVE.L (A0,D0.W),A1 ANDI.W #$FFFC,D1 ADD.W D1,D1 ADD.W D1,A1 ;ADD OFFSET OT BUF ADDR TST.W D0 BNE SCRSKIP CMPI.W #2,CHARCNT BNE LETOK MOVEQ #0,D1 MOVE.W D1,CHARCNT ;GETLET MOVE.L MESPOS,A2 TRYAGAIN MOVE.B (A2)+,D1 BPL.S SCOK2 LEA MESSAGE,A2 BRA TRYAGAIN SCOK2 MOVE.L A2,MESPOS CMP.B #32,D1 BLT TRYAGAIN SUB.B #32,D1 ADD.W D1,D1 LEA CHARTAB,A2 MOVE.W (A2,D1),D1 MOVE.L #FONT+128,CHARADDR ADD.L D1,CHARADDR BRA SCRCONT LETOK ADDQ.L #8,CHARADDR SCRCONT ADDQ.W #1,CHARCNT SCRSKIP MOVE.L CHARADDR,A0 MOVE.L A1,A2 ; BUF ADDR MOVEQ #31,D1 ; HEIGHT MOVE.W NSHIFTS,D2 UPDATE MOVEQ #0,D0 MOVE.W (A0),D0 LSL.L D2,D0 MOVE.W D0,$08(A2) MOVE.W D0,$B0(A2) SWAP D0 OR.W D0,$00(A2) OR.W D0,$A8(A2) MOVEQ #0,D0 MOVE.W 2(A0),D0 LSL.L D2,D0 MOVE.W D0,$0A(A2) MOVE.W D0,$B2(A2) SWAP D0 OR.W D0,$02(A2) OR.W D0,$AA(A2) MOVEQ #0,D0 MOVE.W 4(A0),D0 LSL.L D2,D0 MOVE.W D0,$0C(A2) MOVE.W D0,$B4(A2) SWAP D0 OR.W D0,$04(A2) OR.W D0,$AC(A2) MOVEQ #0,D0 MOVE.W 6(A0),D0 LSL.L D2,D0 MOVE.W D0,$0E(A2) MOVE.W D0,$B6(A2) SWAP D0 OR.W D0,$06(A2) OR.W D0,$AE(A2) LEA $A0(A0),A0 LEA $150(A2),A2 DBRA D1,UPDATE ;NOTE A1 ADDR, A0=DEST MOVE.L SCREENW,A0 ADD.L SPOS,A0 LEA 16(A1),A1 ;$150 BYTES/ROW OFFSET SET $28B0 LEA BLANK,A2 MOVEM.L (A2),D0-D7/A2-A6 MOVE.L D0,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) REPT 32 MOVE.L $9C+OFFSET(A1),-(A0) MOVEM.L $68+OFFSET(A1),D0-D7/A2-A6 MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L $34+OFFSET(A1),D0-D7/A2-A6 MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L OFFSET(A1),D0-D7/A2-A6 MOVEM.L D0-D7/A2-A6,-(A0) ;LEA -$A0(A0),A0 OFFSET SET OFFSET-$150 ENDR LEA BLANK,A2 MOVEM.L (A2),D0-D7/A2-A6 MOVEM.L D0-D1,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) RTS BARS MOVEQ #0,D0 MOVEQ #0,D1 MOVEQ #0,D2 MOVE.B #$8,$FF8800 MOVE.B $FF8800,D1 MOVE.B #$9,$FF8800 MOVE.B $FF8800,D0 MOVE.B #$A,$FF8800 MOVE.B $FF8800,D2 MOVE.B #14,$FF8800 MOVE.B $FF8800,D7 ;CMP.B #14,D0 ;BHI AON ;BSET #1,D7 ;BRA AOK AON ;BCLR #1,D7 AOK ;CMP.B #14,D1 ;BHI BON ;BSET #2,D7 ;BRA BOK BON ;BCLR #2,D7 BOK ;MOVE.B D7,$FF8802 MOVE.L SCREENW,A1 ADD.L #(100*$A0+8*5+6),A1 MOVE.L #0,BAR11 MOVE.L #0,BAR21 MOVE.L #0,BAR31 MOVE.L BARPOS,A0 MOVE.L (A0),D3 ADD.L #4,BARPOS CMP.L #BAREND,BARPOS BNE BARPOSOK MOVE.L #BARDAT,BARPOS BARPOSOK MOVE.W #16,D7 BARLP CMP.B D0,D7 BNE NB1 MOVE.L D3,BAR11 NB1 CMP.B D1,D7 BNE NB2 MOVE.L D3,BAR21 NB2 CMP.B D2,D7 BNE NB3 MOVE.L D3,BAR31 NB3 MOVE.W BAR11,$00(A1) MOVE.W BAR12,$08(A1) MOVE.W BAR21,$20(A1) MOVE.W BAR22,$28(A1) MOVE.W BAR31,$40(A1) MOVE.W BAR32,$48(A1) MOVE.W BAR11,$140(A1) MOVE.W BAR12,$148(A1) MOVE.W BAR21,$160(A1) MOVE.W BAR22,$168(A1) MOVE.W BAR31,$180(A1) MOVE.W BAR32,$188(A1) LEA $A0*4(A1),A1 DBRA D7,BARLP RTS NSTARS EQU 100 STARFIELD LEA OLDPOS,A0 MOVE.L (A0),D0 MOVE.L 4(A0),A0 MOVE.L D0,4(A0) MOVE.L OLDPOS,A0 MOVE.W #(NSTARS/4)-1,D0 MOVEQ #0,D1 CLEARLP MOVEM.L (A0)+,A1-A4 MOVE.W D1,(A1) MOVE.W D1,(A2) MOVE.W D1,(A3) MOVE.W D1,(A4) DBF D0,CLEARLP FIRSTPLOT LEA NEWPOS,A0 MOVE.L OLDPOS,A1 MOVE.W #NSTARS-1,D0 MOVE.L SCREENW,D1 ADD.L #6,D1 MOVEQ #0,D3 PLOTSTAR MOVE.L (A0),A2 MOVE.L (A2)+,D2 BEQ.S RESET MOVE.L D1,A3 ADD.W (A2)+,A3 MOVE.L A3,(A1)+ OR.W D2,(A3) MOVE.L A2,(A0) LEA $308(A0),A0 DBF D0,PLOTSTAR RTS RESET LEA 4(A0),A2 MOVE.L A2,(A0) LEA $308(A0),A0 DBF D0,PLOTSTAR RTS RAND MOVEM.L D1-D2/A0-A2,-(A7) MOVE.W #$11,-(A7) TRAP #14 ADD.L #2,A7 LSR.L #8,D0 LSR.L #8,D0 MOVEM.L (A7)+,D1-D2/A0-A2 RTS RANDGEN LEA NEWPOS,A0 LEA SINTAB,A2 LEA $80+SINTAB,A3 MOVE.W #NSTARS-1,D1 SLOOP2 LEA 4(A0),A1 MOVE.L A1,(A0) BSR RAND LSR.L #2,D0 MOVE.W D0,A6 BSR RAND LSR.L #2,D0 MOVE.L D0,D3 BSR RAND MOVE.W D0,D4 MOVE.W #$7F,D7 LEA RADIUS,A4 BSR RAND LSR.W #3,D0 ADDA.W D0,A4 SLOOP MOVEQ #0,D0 MOVE.B (A4)+,D0 ADD.W D0,D3 MOVE.L D3,D5 MOVE.L D3,D6 MOVE.W D4,D0 ADD.W D0,D0 MULS 0(A3,D0.W),D5 ADD.L D5,D5 SWAP D5 ADDI.W #$A0,D5 MULS 0(A2,D0.W),D6 ADD.L D6,D6 SWAP D6 ADDI.W #100,D6 SUBQ.B #1,D4 LSR.W #1,D6 CMP.W #320,D5 BCC.S OFFSCR CMP.W #0,D5 BCS.S OFFSCR CMP.W #100,D6 BCC.S OFFSCR CMP.W #0,D6 BCS.S OFFSCR MOVE.W D5,D0 ANDI.W #$F,D0 MOVE.W A6,D2 ADD.W D3,D2 LSR.W #5,D2 ADD.W D2,D2 ADD.W D2,D2 LEA STARTAB,A5 MOVE.L (A5,D2.W),D2 ROR.L D0,D2 MOVE.L D2,(A1)+ MOVE.W D6,D0 MULU #$A0,D0 MOVE.W D5,D2 ANDI.W #$FFF0,D2 LSR.W #1,D2 ADD.W D2,D0 MOVE.W D0,(A1)+ DBF D7,SLOOP OFFSCR CLR.L (A1)+ LEA $308(A0),A0 DBF D1,SLOOP2 BSR FIRSTPLOT RTS ON LEA MFPSTORE,A0 MOVE.B $FFFFFA07.W,(A0)+ MOVE.B $FFFFFA09.W,(A0)+ MOVE.B $FFFFFA13.W,(A0)+ MOVE.B $FFFFFA15.W,(A0)+ MOVE.B $FFFFFA19.W,(A0)+ MOVE.B $FFFFFA1B.W,(A0)+ MOVE.B $FFFFFA1F.W,(A0)+ MOVE.B $FFFFFA21.W,(A0)+ MOVE.L $68.W,(A0)+ MOVE.L $70.W,(A0)+ MOVE.L $120.W,(A0)+ MOVE.L $134.W,(A0)+ CLR.B $FFFFFA1B.W CLR.B $FFFFFA19.W MOVE.B #$21,$FFFFFA07.W CLR.B $FFFFFA09.W MOVE.B #$21,$FFFFFA13.W CLR.B $FFFFFA15.W BCLR.B #3,$FFFFFA17.W MOVE.L #TOPBORD,$134.W MOVE.L #BOTTOM,$120.W MOVE.L #VBLANK,$70.W MOVE #$2300,SR RTS OFF MOVE #$2700,SR LEA MFPSTORE,A0 MOVE.B (A0)+,$FFFFFA07.W MOVE.B (A0)+,$FFFFFA09.W MOVE.B (A0)+,$FFFFFA13.W MOVE.B (A0)+,$FFFFFA15.W MOVE.B (A0)+,$FFFFFA19.W MOVE.B (A0)+,$FFFFFA1B.W MOVE.B (A0)+,$FFFFFA1F.W MOVE.B (A0)+,$FFFFFA21.W MOVE.L (A0)+,$68.W MOVE.L (A0)+,$70.W MOVE.L (A0)+,$120.W MOVE.L (A0)+,$134.W BSET.B #3,$FFFFFA17.W MOVE #$2300,SR RTS SWAPSCR CMP.W #1,TOGGLE BEQ SWP1 BNE SWP2 SWP1 MOVE.L SCREENB,SCREENW MOVE.W #2,TOGGLE RTS SWP2 MOVE.L SCREENA,SCREENW MOVE.W #1,TOGGLE RTS TOGSCR CMP.W #2,TOGGLE BEQ TOG1 BNE TOG2 TOG1 MOVE.L SCREENB,D0 LSR.W #8,D0 MOVE.B D0,$FF8203 SWAP D0 MOVE.B D0,$FF8201 RTS TOG2 MOVE.L SCREENA,D0 LSR.W #8,D0 MOVE.B D0,$FF8203 SWAP D0 MOVE.B D0,$FF8201 RTS TOPBORD MOVE #$2100,SR STOP #$2100 CLR.B $FFFFFA19.W DCB.W 78,$4E71 ;78 NOPS CLR.B $FFFF820A.W DCB.W 18,$4E71 ;18 NOPS MOVE.B #2,$FFFF820A.W RTE PHBL RTE BOTTOM MOVE D0,-(SP) DCB.W 32,$4e71 CLR D0 .syncb MOVE.B $ffff8209.w,D0 NEG.B D0 ADD.B #64+128,D0 LSL.B D0,D0 MOVE #18,D0 .wait DBF D0,.wait ;101 nops! MOVE.B #0,$FF820A DCB.W 12,$4E71 MOVE.B #2,$FF820A MOVE.W (SP)+,D0 RTE HBLANK1 MOVE.W #$001,$FFF8240 MOVE.W #$300,$FFF8240+(7*2) CLR.B $FFFFFA1B.W MOVE.L #HBLANK1B,$120 MOVE.B #7,$FFFFFA21.W MOVE.B #8,$FFFFFA1B.W MOVE.L D0,-(SP) MOVE.L #$07000700,D0 MOVE.L D0,$FFF8250 MOVE.L D0,$FFF8254 MOVE.L D0,$FFF8258 MOVE.L D0,$FFF825C MOVE.L (SP)+,D0 RTE HBLANK1B MOVE.W #$002,$FFF8240 MOVE.L #HBLANK2,$120 MOVE.L D0,-(SP) MOVE.L #$00700070,D0 MOVE.L D0,$FFF8250 MOVE.L D0,$FFF8254 MOVE.L D0,$FFF8258 MOVE.L D0,$FFF825C MOVE.L (SP)+,D0 RTE HBLANK2 MOVE.W #$003,$FFF8240 MOVE.L #HBLANK3,$120 RTE HBLANK3 MOVE.W #$004,$FFF8240 MOVE.L #HBLANK4,$120 RTE HBLANK4 MOVE.W #$005,$FFF8240 MOVE.L #HBLANK5,$120 RTE HBLANK5 MOVE.W #$006,$FFF8240 MOVE.L #HBLANK6,$120 RTE HBLANK6 MOVE.W #$007,$FFF8240 MOVE.L #HBLANK7,$120 RTE HBLANK7 MOVE.W #$227,$FFF8240 MOVE.L #HBLANK8,$120 RTE HBLANK8 MOVE.W #$777,$FFF8240 MOVE.L #HBLANK9,$120 CLR.B $FFFFFA1B.W MOVE.B #3,$FFFFFA21.W MOVE.B #8,$FFFFFA1B.W RTE HBLANK9 MOVE.W #$666,$FFF8240 MOVE.L #HBLANKA,$120 RTE HBLANKA MOVE.W #$555,$FFF8240 MOVE.L #HBLANKB,$120 RTE HBLANKB MOVE.W #$444,$FFF8240 MOVE.L #HBLANKF,$120 RTE HBLANKF MOVE.W #$0,$FFF8240 CLR.B $FFFFFA1B.W MOVE.L #BOTTOM,$120 MOVE.B #60,$FFFFFA21.W MOVE.B #8,$FFFFFA1B.W MOVEM.L D0-D6/A0-A1,-(SP) LEA FONT+6,A0 LEA $FF8242,A1 MOVEM.L 2(A0),D0-D6 MOVEM.L D0-D6,2(A1) MOVE.W (A0),(A1) MOVEM.L (SP)+,D0-D6/A0-A1 RTE VBLANK CLR.B $FFFFFA19.W MOVE.B #100,$FFFFFA1F.W MOVE.B #4,$FFFFFA19.W CLR.B $FFFFFA1B.W MOVE.B #100,$FFFFFA21.W MOVE.L #HBLANK1,$120 MOVE.B #8,$FFFFFA1B.W MOVE.L #PHBL,$68.W CLR.W $FF8240 MOVEM.L D0-D7/A0-A5,-(SP) BSR STARFIELD BSR SWAPSCR LEA $FF8240,A0 LEA NWPAL,A1 MOVEM.L (A1),D0-D7 MOVEM.L D0-D7,(A0) NOT.S SYNC BSR MUSIC+8 BSR SCROLL BSR TOGSCR MOVEM.L (SP)+,D0-D7/A0-A5 RTE NWPAL DC.W $000,$012,$056,$045,$034,$023,$067,$500 DC.W $555,$555,$555,$555,$555,$555,$555,$555 SCROLLX DC.W 0 CHARCNT DC.W 0 NSHIFTS DC.W 0 CHARADDR DC.L 0 BLANK DC.L 0,0,0,0,0,0,0,0,0,0,0,0,0 LOGOTAB REPT 20 DC.L $15A8*0,$15A8*1,$15A8*2,$15A8*3,$15A8*4,$15A8*5,$15A8*6,$15A8*7 DC.L $15A8*8,$15A8*9,$15A8*10,$15A8*11,$15A8*12,$15A8*13,$15A8*14,$15A8*15 ENDR EVEN WIDTH EQU $100 SMILETAB DC.L WIDTH*00,WIDTH*01,WIDTH*02,WIDTH*03,WIDTH*04,WIDTH*05,WIDTH*06,WIDTH*07 DC.L WIDTH*08,WIDTH*09,WIDTH*10,WIDTH*11,WIDTH*12,WIDTH*13,WIDTH*14,WIDTH*15 DC.L WIDTH*16,WIDTH*17,WIDTH*18,WIDTH*19,WIDTH*20,WIDTH*21,WIDTH*22,WIDTH*23 DC.L WIDTH*24,WIDTH*25,WIDTH*26,WIDTH*27,WIDTH*28,WIDTH*29,WIDTH*30,WIDTH*31 BARDAT DC.L %11111111111111111111111111111111 DC.L %11111111111111111111111111111111 DC.L %11111111111111111111111111111111 DC.L %01111111111111111111111111111110 DC.L %01111111111111111111111111111110 DC.L %01111111111111111111111111111110 DC.L %00111111111111111111111111111100 DC.L %00011111111111111111111111111000 DC.L %00001111111111111111111111110000 DC.L %00000111111111111111111111100000 DC.L %00000011111111111111111111000000 DC.L %00000001111111111111111110000000 DC.L %00000000111111111111111100000000 DC.L %00000000011111111111111000000000 DC.L %00000000000111111111100000000000 DC.L %00000000000011111111000000000000 DC.L %00000000000000111100000000000000 DC.L %00000000000000011000000000000000 DC.L %00000000000000111100000000000000 DC.L %00000000000011111111000000000000 DC.L %00000000000111111111100000000000 DC.L %00000000011111111111111000000000 DC.L %00000000111111111111111100000000 DC.L %00000001111111111111111110000000 DC.L %00000011111111111111111111000000 DC.L %00000111111111111111111111100000 DC.L %00001111111111111111111111110000 DC.L %00011111111111111111111111111000 DC.L %00111111111111111111111111111100 DC.L %01111111111111111111111111111110 DC.L %01111111111111111111111111111110 DC.L %01111111111111111111111111111110 DC.L %11111111111111111111111111111111 DC.L %11111111111111111111111111111111 DC.L %11111111111111111111111111111111 BAREND ;NOTE USE ; ;/ FOR RIGHT HAND " ;& FOR ' ;MAY ALSO USE !,.;?-"() MESSAGE ;PUT YOUR TEXT HERE, JOHN. DC.B ' ........ ' DC.B 'HELLO, GOODEVENING AND WELCOME, AND THANKS FOR READING THIS FAR INTO THE SCROLL! ' DC.B 'THIS IS THE SECOND DEMO SCREEN I&VE WRITTEN - AND IT AIN&T BAD - (BUT THEN I&M BIASED! ) ' DC.B 'THE GREAT MUSIX IS BY MAD MAX, AND THIS FONT WAS PINCHED FROM AN EARLY OVERLANDERS SCREEN. ' DC.B 'WELL, MEMORY IS SHORT, AND IF THIS IS TO RUN ON A 520 MACHINE, I HAD BETTER GET ON WITH IT, AS I DON&T KNOW HAVE MUCH HAS BEEN WRITTEN BEFORE THIS! ' DC.B '(PROBABLY TOO MUCH!). SO, ONTO ' DC.B 'THE BORING BIT; A FEW GREETINGS .. ' DC.B 'SPECIAL GREATING TO STALIN OF FLEXIBLE FRONT, I&M GLAD YOU&S STILL CODING GREAT DEMOS. ' DC.B 'ALSO TO GRIFF OF THE RESISTANCE, I&M IMPROVING NO? ' DC.B 'HI TO JUST ABOUT EVERBODY ELSE IN THE ST WORLD, INCLUDING TCB, ALL MEMBERS OF THE UNION, OVERLANDERS, ALLIENCE, AND OF COURSE INNER CIRCLE. ' DC.B 'WELL, THAT WAS QUICK! ' DC.B 'IF YOU WANT TO TALK TO ME, AND PLEASE (PLEASE) DO, THE ' DC.B 'CONTACT ADDRESS IS ' DC.B 'M I K E, 7 F I N C H D A L E C L O S E, ' DC.B 'C A R T E R T O N, O X F O R D S H I R E, ' DC.B 'O X 8 3 B T, E N G L A N D. ' DC.B 'AND ONCE AGAIN ....... ' DC.B 'M I K E, 7 F I N C H D A L E C L O S E, ' DC.B 'C A R T E R T O N, O X F O R D S H I R E, ' DC.B 'O X 8 3 B T, E N G L A N D. ' DC.B ' WELL, THE TIME HAS COME TO DO WHAT ALL SCROLLERS MUST EVENTUALLY DO, ' DC.B ' WRAP .. (DOES ANYBODY ACTUALLY READ THESE THINGS? OBVIOUSLY!) BYE BYE ..... ' DC.B $FF EVEN SCRTABLE DC.L SCBUF1,SCBUF1,SCBUF2,SCBUF2 CHARTAB DC.W $0010,$0080,$0000 DC.W $0010,$0010,$0010,$0040,$0040,$0050,$0060,$0070,$0080,$2850 DC.W $1400,$1410,$0090,$1430,$1440,$1450,$1460,$1470,$1480,$1490 DC.W $2800,$2810,$2820,$2830,$2840,$2850,$2860,$2870,$2880,$2890 DC.W $3C00,$3C10,$3C20,$3C30,$3C40,$3C50,$3C60,$3C70,$3C80,$3C90 DC.W $5000,$5010,$5020,$5030,$5040,$5050,$5060,$5070,$5080,$5090 DC.W $6400,$6410,$6420,$6430,$6440,$6450,$6460,$6470,$6480,$6490 RADIUS DC.B 0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1 DC.B 0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1 DC.B 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DC.B 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,0 DC.B 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DC.B 2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3 DC.B 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 DC.B 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 DC.B 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 DC.B 4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5 DC.B 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 DC.B 5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6 STARTAB DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 SINTAB INCBIN SINTAB.DAT OLDPOS DC.L OLDPOS1,OLDPOS2 MUSIC INCBIN SWSPRITE.MUS LOGO INCBIN DEMOLOGO.DAT LWAVE INCBIN LOGOSINE.DAT DC.L $FFFFFFFF SMILE INCBIN SMILE.DAT SWAVE INCBIN BACKSINE.DAT DC.L $FFFFFFFF BOX INCBIN BOX.DAT FONT INCBIN FONT.NEO ; END OF STORED 0DATA SECTION BSS EVEN RES DS.W 1 LBASE DS.L 1 PBASE DS.L 1 PALETTE DS.W 16 SSP DS.L 1 SYNC DS.L 1 WAVE DS.L 1 WAVE2 DS.L 1 BARPOS DS.L 1 BAR11 DS.W 1 BAR12 DS.W 1 BAR21 DS.W 1 BAR22 DS.W 1 BAR31 DS.W 1 BAR32 DS.W 1 MESPOS DS.L 1 SDIREC DS.W 1 SPOS DS.L 1 SDIREC2 DS.W 1 SPOS2 DS.L 1 SCREENW DS.L 1 SCREEND DS.L 1 TOGGLE DS.W 1 SCREENA DS.L 1 SCREENB DS.L 1 MFPSTORE DS.L 7 XADDR DS.L (77*2) XTABLE DS.L (320) SMILEROT DS.B WIDTH*32 LOGOCOPY DS.B (8*77*9*16) ;$15A8 SCBUF1 DS.B $150*32 SCBUF2 DS.B $150*32 DS.L 100 OLDPOS1 DS.L NSTARS OLDPOS2 DS.L NSTARS NEWPOS DS.B (NSTARS+1)*6*128 SCREENS DS.B $16000