home *** CD-ROM | disk | FTP | other *** search
- >EXTERN "DF1:OBJECTS/KORDS",KORDS
- HOWMANY2 = 80
- PICX=320 ; PIXELS
- PICY=200 ; PIXELS
- ANTAL_BPL=1
- PICXWORD=PICX/16
- PICXBYTE=PICX/8
- BPLSIZE=PICXBYTE*PICY
- PICSIZE=BPLSIZE*ANTAL_BPL
-
- START:
- JSR INITIALIZE
- MOVE.L #SCREENBUFFER1+[60*40],BAKSCR
- JSR SETUP_COPPERLIST1
- JSR SETUPSCREEN
-
- MOVE.L #0,STATUSPOS
- MAIN_LOOP:
- CMP.B #$FF,$DFF006
- BNE MAIN_LOOP
- JSR DOT2(PC)
- BTST #6,$BFE001
- BNE MAIN_LOOP
- JSR RESTORE
- RTS
-
- CLOSELIB=-414
- EXECBASE=4
- FORBID=-132
- OPENLIB=-408
- PERMIT=-138
-
- ;;; DOS.LIBRARY
-
- CLOSE=-36
- OPEN=-30
- READ=-42
-
-
- SETUP_COPPERLIST1:
-
- MOVE.L #BPL11,D0
- MOVE.W D0,LO1+2
- LSR.L #8,D0
- LSR.L #8,D0
- MOVE.W D0,HI1+2
- RTS
-
- SETUP_COPPERLIST2:
-
- MOVE.L #BPL12,D0
- MOVE.W D0,LO1+2
- LSR.L #8,D0
- LSR.L #8,D0
- MOVE.W D0,HI1+2
- RTS
-
- CHANGEPIC:
- CMP.L #0,STATUSSCR
- BEQ SECOND_FRONT
- CMP.L #1,STATUSSCR
- BEQ FIRST_FRONT
- CONT:
- RTS
- FIRST_FRONT:
- MOVE.L #0,STATUSSCR
- LEA RESSCR(PC),A0
- MOVE.L (A0),D0
- MOVE.L 4(A0),(A0)
- MOVE.L D0,4(A0)
- JSR SETUP_COPPERLIST1(PC)
- BRA CONT
- SECOND_FRONT:
- MOVE.L #1,STATUSSCR
- LEA RESSCR(PC),A0
- MOVE.L (A0),D0
- MOVE.L 4(A0),(A0)
- MOVE.L D0,4(A0)
- JSR SETUP_COPPERLIST2(PC)
- BRA CONT
- SETUPSCREEN:
- MOVE.W #$8100,DMACON ;ENABLE BPL DMA
- MOVE.W #$8040,DMACON ;ENABLE BLITTER DMA
- MOVE.W #$0020,DMACON ;DISABLE SPRITE DMA
-
- MOVE.W #ANTAL_BPL,D0 ;ANTAL BIT PLANER
- MULU #$1000,D0 ;LORES
- ORI.W #$0280,D0 ;EXTRA_HALFBRITE
- MOVE.W D0,BPLCON0
- MOVE.W #0,BPLCON1
- MOVE.W #0,BPL1MOD
- MOVE.W #$0080,DMACON ;SETUP COPPER
- MOVE.L #COPPERLIST,COP1LCH
- MOVE.W COPJMP1,D0
- MOVE.W #$8080,DMACON
- RTS
- STARTLIST=38
-
- INITIALIZE:
- MOVE.L EXECBASE,A6
- RESTORE_COPPER:
- LEA GRAPHICS_LIBRARY,A1
- CLR.L D0
- JSR OPENLIB(A6)
- MOVE.L D0,A1
- MOVE.L STARTLIST(A1),OLDCOPPER
- JSR CLOSELIB(A6)
- JSR FORBID(A6)
-
- MOVE.L EXECBASE,A6
- RTS
-
- RESTORE:
- MOVE.L EXECBASE,A6
- RESTORE_SOUND:
- MOVE.W #$000F,DMACON
- MOVE.L OLDCOPPER,$DFF080
- CLR.W COPJMP1
- MOVE.W #$83E0,DMACON
- JSR PERMIT(A6)
-
- RTS
-
- OLDCOPPER: DC.L 0
- GRAPHICS_LIBRARY:
- DC.B 'graphics.library',0
- BLTCPTH=$DFF048
- BLTBPTH=$DFF04C
- BLTAPTH=$DFF050
- BLTDPTH=$DFF054
-
- BLTCMOD=$DFF060
- BLTBMOD=$DFF062
- BLTAMOD=$DFF064
- BLTDMOD=$DFF066
-
- BLTCON0=$DFF040
- BLTCON1=$DFF042
- BLTSIZE=$DFF058
-
- BPL1MOD=$DFF108
- BPLCON0=$DFF100
- BPLCON1=$DFF102
-
- COP1LCH=$DFF080
- COPJMP1=$DFF088
-
- DDFSTRT=$DFF092
- DDFSTOP=$DFF094
- DIWSTRT=$DFF08E
- DIWSTOP=$DFF090
- DMACON=$DFF096
- DMACONR=$DFF002
-
- INTREQR=$DFF01E
-
- JOYXDAT=$DFF00C
-
- VHPOSR=$DFF006
- VPOSR=$DFF004
-
- EVEN
-
- STATUSSCR: DC.L 0
- RESSCR: DC.L SCREENBUFFER1
- BAKSCR: DC.L SCREENBUFFER2
- STATUSPOS: DC.L 0
- COPPERLIST:
- DC.W $1001,$FFFE
- DC.W $0100,$0200
- DC.W $2001,$FFFE
- DC.W $008E,$1C61
- DC.W $0090,$10F1
- DC.W $0092,$0038
- DC.W $0094,$00D0
- DC.W $0108,$0000
- DC.W $0100,$1200
- HI1: DC.W $00E0,0
- LO1: DC.W $00E2,0
- COLOUR1:
- DC.W $0180,$0000
- DC.W $0182,$0FFF
- DC.W $F601,$FFFE
- DC.W $0100,$0200
- DC.W $FFFF,$FFFE ;END COPPER LIST
-
- DOT2:
- CLR.L D0
- CLR.L D1
- CLR.L D2
- CLR.L D3
- CLR.L D4
- CLR.L D5
- CLR.L D6
- LEA USEKORDS2(PC),A0
- LEA KORDPOS2(PC),A2
- MOVE.B #HOWMANY2,D6
- LEA GETX2(PC),A5
- MOVE.B (A5),D0
- MOVE.B 1(A5),D1
- MOVE.B 2(A5),D2
- MOVE.B 3(A5),D3
- MAKELOOP12:
- MOVE.L (A2),A1
- ADDA.L D0,A1
- MOVE.B (A1),D4
- LSR.B #1,D4
- MOVE.L (A2),A1
- ADDA.L D1,A1
- MOVE.B (A1),D7
- LSR.B #1,D7
- ADD.B D7,D4
- MOVE.W D4,(A0)+
- MOVE.L (A2),A1
- ADDA.L D2,A1
- MOVE.B (A1),D5
- LSR.B #1,D5
- MOVE.L (A2),A1
- ADD.L D3,A1
- MOVE.B (A1),D7
- LSR.B #1,D7
- ADD.B D7,D5
- LSR.B #1,D5
- ADDI.B #$05,D5
- MOVE.W D5,(A0)+
- LEA SINUSPARMS2(PC),A6
- MOVE.L (A6),A6
- ADD.B 2(A6),D0
- ADD.B 3(A6),D1
- SUB.B 4(A6),D2
- SUB.B 5(A6),D3
- DBF D6,MAKELOOP12
- LEA SPEED222(PC),A1
- MOVE.L (A1),A1
- MOVE.B #$04,D0
- MAKELOOP22:
- MOVE.B (A5),D1
- MOVE.B (A1)+,D2
- ADD.B D2,D1
- MOVE.B D1,(A5)+
- DBF D0,MAKELOOP22
- BRA.L WRITEDOT
-
- GETX2: DC.L $00000000
- SPEEDPARMS2:
- SPEED12:DC.B $01 ; SPEED X1
- SPEED22:DC.B $02 ; SPEED X2
- SPEED32:DC.B $02 ; SPEED Y1
- SPEED42:DC.B $01 ; SPEED Y2
- SINUSPARAMETERS2:
- PARM12: DC.W $00 ; UNUSED
- PARM22: DC.B $04 ; WITH BETWEEN DOTS X1
- PARM32: DC.B $05 ; WITH BETWEEN DOTS X2
- PARM42: DC.B $06 ; WITH BETWEEN DOTS Y1
- PARM52: DC.B $05 ; WITH BETWEEN DOTS Y2
- PARM62: DC.B $00 ; UNUSED
- EVEN
- DUMMY2: DC.L $00000000
-
- SPEED222: DC.L SPEEDPARMS2
- SINUSPARMS2: DC.L SINUSPARAMETERS2
- KORDPOS2: DC.L KORDS
- USEKORDS2:
- BLK.W HOWMANY2*8+4,$0004
- WRITEDOT:
- CLR.L D0
- LEA USEKORDS2+[HOWMANY2*4+4](PC),A0
- MOVE.B #HOWMANY2,D0
- LOOP1: MOVE.L (A0)+,A1
- CLR.W (A1)
- DBF D0,LOOP1
- LEA USEKORDS2(PC),A0
- LEA USEKORDS2+[HOWMANY2*4+4](PC),A3
- CLR.L D6
- MOVE.B #HOWMANY2-7,D6
- LOOP2: MOVE.W (A0)+,D0
- DIVU #$0010,D0
- MOVE.W D0,D4
- LSL.W #1,D4
- ADDI.W #$0006,D4
- SWAP D0
- CLR.L D1
- MOVE.W D0,D1
- CLR.L D0
- MOVE.B D1,D0
- CLR.L D0
- MOVE.W (A0)+,D0
- MULU #$0028,D0
- MOVE.W D0,D5
- MOVE.L BAKSCR(PC),A2
- ADDA.L D5,A2
- ADDA.L D4,A2
- MOVE.L A2,(A3)+
- CLR.L D2
- MOVE.B #$0F,D2
- SUB.B D1,D2
- CLR.L D3
- BSET D2,D3
- OR.W D3,(A2)
- DBF D6,LOOP2
- RTS
-
- KORDS: BLK.B 260,0
- SCREENBUFFER1:
- BPL11: BLK.B BPLSIZE,0
- SCREENBUFFER2:
- BPL12: BLK.B BPLSIZE,0