home *** CD-ROM | disk | FTP | other *** search
-
- ** X-MAS SURPRICE
- ** CODE AND GRAPHICS BY CRADON/MATRIX (ASM-ONE FORMAT)
-
- *******************************************************************************
-
- SECTION A,CODE_C
-
- START MOVEM.L D0-A6,-(A7)
- MOVE.W $DFF01C,INTENA
- MOVE.W $DFF002,DMACON
- MOVE.W $DFF010,ADKCON
- MOVE.W #%0111111111111111,$DFF096
- MOVE.W #%0111111111111111,$DFF09A
- MOVE.W #%0111111111111111,$DFF09C
- JSR FIELDS
- MOVE.L $6C,OLDIRQ
- MOVE.L #MYIRQ,$6C
- MOVE.W #%1000001111000000,$DFF096
- MOVE.W #%1100000000100000,$DFF09A
- LOOP BTST #6,$BFE001
- BNE.B LOOP
- ENDE MOVE.W #%0111111111111111,$DFF096
- MOVE.W #%0111111111111111,$DFF09A
- MOVE.W #%0111111111111111,$DFF09C
- MOVE.L OLDIRQ,$00006C
- MOVE.W DMACON,D0
- OR.W #$8000,D0
- MOVE.W D0,$DFF096
- MOVE.W ADKCON,D0
- OR.W #$8000,D0
- MOVE.W D0,$DFF09E
- MOVE.W INTENA,D0
- OR.W #$C000,D0
- MOVE.W #$7FFF,$DFF09C
- MOVE.W D0,$DFF09A
- CLR.W $DFF088
- MOVEM.L (A7)+,D0-A6
- RTS
-
- ** DUAL PLAYFIELDS ************************************************************
-
- FIELDS LEA FLD1,A0
- MOVE.L #SCREEN,D0
- MOVE.L #3,D1
- LOOP1 MOVE.W D0,6(A0)
- SWAP D0
- MOVE.W D0,2(A0)
- SWAP D0
- ADD.L #10240,D0
- ADD.L #8,A0
- SUBQ.L #1,D1
- BNE.S LOOP1
- LEA FLD2,A0
- MOVE.L #SCREEN2,D0
- MOVE.W D0,6(A0)
- SWAP D0
- MOVE.W D0,2(A0)
- SWAP D0
- RTS
-
- ** A SMALL 3D STARFIELD RUTINE ************************************************
-
- FIELD BTST #14,$DFF002
- BNE.S FIELD
- MOVE.W #$0100,$DFF040
- MOVE.L #$FFFFFFFF,$DFF044
- MOVE.L SCREEN_ADRESS(PC),$DFF054
- CLR.W $DFF066
- CLR.W $DFF042
- MOVE.W #[512*64+320/16],$DFF058
- LEA.L POINTS(PC),A1
- PLTLOOP CMP.W #$FFFF,(A1)
- BEQ.W PLOTOUT
- MOVE.W (A1),D0
- MOVE.W 2(A1),D1
- MOVE.W 4(A1),D2
- ADD.W XDELTA,D0
- ADD.W YDELTA,D1
- ADD.W ZDELTA,D2
- BORDER CMP.W #319,D0
- BLE.B .XHI_OK
- SUB.W #319,D0
- .XHI_OK CMP.W #0,D0
- BHI.B .XLO_OK
- ADD.W #319,D0
- .XLO_OK CMP.W #250,D1
- BLE.B .YLO_OK
- SUB.W #250,D1
- .YLO_OK CMP.W #0,D1
- BGE.B .YHI_OK
- ADD.W #250,D1
- .YHI_OK CMP.W #50,D2
- BHI.B .ZFR_OK
- ADD.W #69,D2
- .ZFR_OK CMP.W #120,D2
- BLS.B .ZBK_OK
- SUB.W #69,D2
- .ZBK_OK MOVE.W D0,(A1)
- MOVE.W D1,2(A1)
- MOVE.W D2,4(A1)
- SUB.W XCENTER,D0
- SUB.W YCENTER,D1
- MULS ZOOM,D0
- MULS ZOOM,D1
- DIVS D2,D0
- DIVS D2,D1
- ADD.W XCENTER,D0
- ADD.W YCENTER,D1
- MOVE.L SCREEN_ADRESS(PC),A0
- MOVE.W #256,D3
- SUBI.W D1,D3
- MULU.W #40,D3
- ADD.L D3,A0
- CMP.W #16,D0
- BLT.B .XREST
- MOVE.W D0,D1
- LSR.W #4,D1
- LSL.W #4,D1
- SUB.W D1,D0
- LSR.W #3,D1
- ADD.W D1,A0
- .XREST MOVE.W #$8000,D1
- ROR.W D0,D1
- .WAIT BTST #14,$DFF002
- BNE.S .WAIT
- CMP.W #100,D2
- BHI.B DARK1
- CMP.W #70,D2
- BHI.B DARK2
- LIGHT ORI.W D1,(A0)
- BRA.S PLOTFIN
- DARK1 ADDI.L #[256*40],A0
- ORI.W D1,(A0)
- BRA.S PLOTFIN
- DARK2 ORI.W D1,(A0)
- ADDI.L #[256*40],A0
- ORI.W D1,(A0)
- PLOTFIN ADDQ.L #6,A1
- JMP PLTLOOP
- PLOTOUT RTS
-
- ** FLIP BETWEEN FRAMESBUFFERS *************************************************
-
- FLIP_SCREEN
- CMP.L #SCREEN1,SCREEN_ADRESS
- BEQ.S FLIP_TO_SCREEN2
- LEA.L FLD2,A0
- MOVE.L #SCREEN2,D0
- MOVE.W D0,6(A0)
- SWAP D0
- MOVE.W D0,2(A0)
- MOVE.L #SCREEN2+[256*40],D0
- MOVE.W D0,14(A0)
- SWAP D0
- MOVE.W D0,10(A0)
- MOVE.L #SCREEN1,SCREEN_ADRESS
- RTS
- FLIP_TO_SCREEN2
- LEA.L FLD2,A0
- MOVE.L #SCREEN1,D0
- MOVE.W D0,6(A0)
- SWAP D0
- MOVE.W D0,2(A0)
- MOVE.L #SCREEN1+[256*40],D0
- MOVE.W D0,14(A0)
- SWAP D0
- MOVE.W D0,10(A0)
- MOVE.L #SCREEN2,SCREEN_ADRESS
- RTS
-
- ** THIRD LEVEL INTERRUPT ******************************************************
-
- MYIRQ MOVEM.L D0-A6,-(A7)
- MOVE.W $DFF01E,D0
- BTST #5,D0
- BNE.B RESTART
- MOVE.W D0,$DFF09C
- MOVEM.L (A7)+,D0-A6
- RTE
- RESTART MOVE.L #COPPER,$DFF084
- MOVE.B #$00,$DFF08A
- JSR FIELD
- JSR FLIP_SCREEN
- MOVE.W #$20,$DFF09C
- MOVEM.L (A7)+,D0-A6
- RTE
-
- ** DATA ***********************************************************************
-
- XDELTA DC.W 0
- YDELTA DC.W -1
- ZDELTA DC.W 0
- OLDIRQ DC.L 0
- INTENA DC.W 0
- DMACON DC.W 0
- ADKCON DC.W 0
- SCREEN_ADRESS
- DC.L SCREEN1
- XCENTER DC.W 159
- YCENTER DC.W 128
- ZOOM DC.W 50
-
- POINTS DC.W 1,1,50
- DC.W 319,2,63
- DC.W 20,249,76
- DC.W 200,180,88
- DC.W 316,171,91 ; 5
- DC.W 159,70,54
- DC.W 65,23,66
- DC.W 66,190,79
- DC.W 188,101,81
- DC.W 35,135,94 ; 10
- DC.W 269,221,56
- DC.W 176,167,69
- DC.W 44,96,71
- DC.W 312,120,84
- DC.W 149,49,96 ; 15
- DC.W 99,120,59
- DC.W 17,160,62
- DC.W 165,181,74
- DC.W 143,163,87
- DC.W 319,3,59 ; 20
- DC.W 205,128,62
- DC.W 142,129,65
- DC.W 255,179,68
- DC.W 37,70,71
- DC.W 12,244,74 ; 25
- DC.W 66,138,77
- DC.W 166,33,80
- DC.W 319,145,83
- DC.W 167,100,86
- DC.W 279,21,89 ; 30
- DC.W 55,40,92
- DC.W 1,67,95
- DC.W 240,250,98
- DC.W 50,3,50
- DC.W 2,30,63 ; 45
- DC.W 80,200,75
- DC.W 191,1,88
- DC.W 85,66,91
- DC.W 240,231,53
- DC.W 200,20,65 ; 50
- DC.W 132,240,78
- DC.W 170,185,51
- DC.W 36,101,54
- DC.W 3,1,56
- DC.W 312,158,58 ; 60
- DC.W 150,76,61
- DC.W 278,9,63
- DC.W 300,40,66
- DC.W 55,110,69
- DC.W 40,110,72 ; 65
- DC.W 1,128,75
- DC.W 30,240,78
- DC.W 100,3,81
- DC.W 180,109,84
- DC.W 240,20,87 ; 70
- DC.W 319,4,90
- DC.W 11,169,93
- DC.W 2,30,96
- DC.W 1,1,99
- DC.W 30,190,101 ; 85
- DC.W 50,249,103
- DC.W 316,249,106
- DC.W 167,115,109
- DC.W 40,100,111
- DC.W 179,99,115 ; 90
- DC.W $FFFF ; END SIGNAL
-
- ** COPPERLIST *****************************************************************
-
- SECTION B,DATA_C
-
- COPPER DC.W $0106,$0000,$01FC,$0000
- DC.W $008E,$2C81,$0090,$2CC1
- DC.W $0092,$0038,$0094,$00D0
- DC.W $0102,$0000,$0104,%0000000001000000
- DC.W $0108,$0000,$010A,$0000
- DC.W $0120,$0000,$0122,$0000
-
- COLOUR DC.W $0180,$0000,$0182,$0FFF
- DC.W $0184,$0CDE,$0186,$09BD
- DC.W $0188,$069C,$018A,$047B
- DC.W $018C,$025A,$018E,$0049
- DC.W $0190,$0000,$0192,$0FFF
- DC.W $0194,$0444,$0196,$0999
- DC.W $0198,$0500,$019A,$0400
- DC.W $019C,$0300,$019E,$0200
-
- ; DUAL PLAYFIELD
-
- FLD1: DC.W $00E0,$0000,$00E2,$0000 ;1
- DC.W $00E8,$0000,$00EA,$0000 ;3
- DC.W $00F0,$0000,$00F2,$0000 ;5
-
- FLD2: DC.W $00E4,$0000,$00E6,$0000 ;2
- DC.W $00EC,$0000,$00EE,$0000 ;4
- DC.W $00F4,$0000,$00F6,$0000 ;6
-
- DC.W $3001,$FF00;,$0100,$2200
- DC.W $3011,$FFFE,$0100,%0101010000000000
- DC.W $FFE1,$FFFE,$2901,$FF00
- DC.W $0100,$0200,$FFFF,$FFFE
-
- ** SCREEN *********************************************************************
-
- SCREEN1 BLK.B 20512,$00
- SCREEN2 BLK.B 20512,$00
-
- SCREEN INCBIN "DH0:CODING/SOURCE/SCROLLER/MOONSCAPE.BIT"
-
-