home *** CD-ROM | disk | FTP | other *** search
- section lame,code_c
-
- >EXTERN"df0:DOUBLE",FONTY
-
- FONTY=$54000
- ;PLANE $68000-$70000
-
- Trap_vec0 = $80
- Execbase = $4
- Oldopen = -$198
- Intenar = $01c
- Intena = $09a
- Dmaconr = $002
- Dmacon = $096
- Cop1lch = $080
- Copjmp1 = $088
- Vposr = $004
-
- Move.l #Start,$80.w ; Trap vector 0
- Trap #0 ; Execute trap 0 to give full control of the
- Rts ; 68000, needs an RTE to return.
-
- Start:
- bsr KillSys
- bsr main
- bsr setupsys
-
- Rte ; Return from exception
-
-
- *****************************************************************************
- ;Killsys - Disable operating system and interrupts
- *****************************************************************************
- Killsys:
- Move.l $4.w,a6 ; Execbase vector
- Lea Gfxname(pc),a1 ; Pointer to "graphics.library" into a1
- Jsr Oldopen(a6) ; Open this library
- Lea $dff000,a6 ; Pointer to custom chips
- Move.l d0,a0 ; Address of the graphics library
- Move.l 38(a0),Sys_copl ; Remember the System copperlist
- Move Intenar(a6),Int_set ; System interrupts
- Move #$7fff,Intena(a6) ; Now switch off all interrupts
- Move.l $6c.w,Vbl_vec ; System vertical blanking int.
- Move Dmaconr(a6),Dma_set ; System DMA
- Move #$7fff,Dmacon(a6) ; Clear all DMA
- Move #$87c0,Dmacon(a6) ; Now set the required DMA channels
-
- Move.l #COP,Cop1lch(a6) ; Init. our own copperlist
- Clr Copjmp1(a6)
-
- Rts
-
- Gfxname: dc.b "graphics.library",0
- Even
- *****************************************************************************
- ;Sysreturn - Re-enable operating system and interrupts
- *****************************************************************************
- Setupsys:
- Lea $dff000,a6
- Move #$7fff,Intena(a6) ; Clear all interrupts
- Move.l Vbl_vec,$6c.w ; Restore VBL interrupt
- Move Int_set,d0
- Or #$c000,d0
- Move d0,Intena(a6) ; Restore system interrupts
- Move #$7fff,Dmacon(a6)
- Move Dma_set,d0
- Or #$8200,d0
- Move d0,Dmacon(a6) ; Restore system DMA
- Move.l Sys_copl,Cop1lch(a6) ; Restore system copperlist
- Clr Copjmp1(a6)
- Rts
-
- Vbl_vec: dc.l 0
- Int_set: dc.l 0
- Dma_set: dc.l 0
- Sys_copl: dc.l 0
-
-
- Main:
- Move.l 4(A6),d0
- And.l #$1ff00,d0
- Cmp.l #$04100,d0 ; Wait for vertical position 1
- Bne.s Main
-
- BSR UPDOWN
- BSR LEFT
- ; ROUTINE ;
- Btst #6,$bfe001 ; Check the left mouse button
- Bne.s Main
-
- Rts
-
- BACK=$68000 ;+$2000
-
- PLANE1: dc.L $6A000
- PLANE2: dc.L $6D000
-
- TEXTPO: dc.L TEXT
- SINPOI: dc.L SINUS
-
- TA: dc.W $0000
- TC: dc.W $0020
-
-
- TEXT: dc.B "TRAX IS PROUD TO PRESENT: "
- dc.B "MEGACRACK s ",0
- EVEN
-
-
- UPDOWN: MOVE.L PLANE1(PC),D0
- MOVE.L PLANE2(PC),PLANE1
- MOVE.L D0,PLANE2
- MOVE.W D0,COPPLANE ;IN COPPER (BUFFER)
- MOVE.L PLANE2(PC),D0
- MOVE.L D0,D1
- SUB.L #[48*4],D1
- MOVE.W D1,COPPLANE2
- ADD.L #$00000400,D0
- BSR WAITBLIT
- MOVE.L D0,$54(A6)
- MOVE.L #$01000000,$40(A6)
- MOVE.L #0,$44(A6)
- MOVE.L #0,$64(A6)
- MOVE.W #$1000,$58(A6)
- MOVE.L #2,D0
- ADDQ.L #1,D0
- MOVE.L #$00000020,D1
- MOVE.L #$00000030,D2
- CLR.L D3
- MOVE.W TC,D3
- MOVE.L #0,D4
- LEA BACK+2,A0 ;zwisch
- MOVE.L #11,D7
- LSL.W #6,D1
- OR.W D0,D1
- MOVE.L SINPOI(PC),A4
- MOVE.L #SINEND,A5
- BSR WAITBLIT
- MOVE.L #$002A002A,$62(A6)
- MOVE.W #$002A,$66(A6)
- MOVE.L #$FFFF0000,$44(A6)
- MOVE.W #0,$42(A6)
- DATALOOP:
- MOVE.L PLANE2(PC),A1
- SUBQ.L #1,A1
- MOVE.L #0,D4
- CMP.L A4,A5
- BGT NEXT
- SUB.L #$00000168,A4
- NEXT: MOVE.W (A4),D4
- AND.W #$00FF,D4
- ADD.W #$0047,D4
- LSR.W #1,D4
- ADD.L #$00000010,A4
- MOVE.W D3,D5
- MOVE.W D3,D6
- ASR.W #4,D5
- ASL.W #1,D5
- MULU D2,D4
- ADD.W D5,D4
- AND.W #15,D6
- ADD.L D4,A1
- ROR.W #4,D6
- OR.W #$0DFC,D6
- BSR WAITBLIT
- MOVE.W D6,$40(A6)
- MOVE.L A0,$50(A6)
- MOVE.L A1,$54(A6)
- MOVE.L A1,$4C(A6)
- MOVE.W D1,$58(A6)
- ADD.L #4,A0
- ADD.W #$0020,D3
- DBRA D7,DATALOOP
- ADDQ.L #2,SINPOI ;inpointer
- MOVE.L SINPOI(PC),A0
- LEA SINEND,A1
- CMP.L A0,A1
- BGT l162
- SUB.L #$00000168,SINPOI
- l162: RTS
-
-
- LEFT: TST.W TA ;---
- BEQ YEP
- SUB.W #1,TA ;---
- RTS
-
- YEP: SUB.W #2,TC ;---
- BNE ZERONOW
- MOVE.W #$0020,TC ;---
- ADD.L #$00000010,SINPOI
- LEA SINEND(PC),A0
- MOVE.L SINPOI(PC),A1
- CMP.L A1,A0
- BGT SINOLD
- MOVE.L #SINUS,SINPOI ;sintab
- SINOLD: BSR WAITBLIT
- MOVE.L #BACK,$50(A6) ;zwisch
- MOVE.L #BACK-4,$54(A6)
- MOVE.L #0,$64(A6)
- MOVE.L #$09F00000,$40(A6)
- MOVE.L #$FFFFFFFF,$44(A6)
- MOVE.W #$0340,$58(A6)
- MOVE.L TEXTPO(PC),A0
- MOVE.L #0,D3
- ADDQ.L #1,TEXTPO ;textpoint
- MOVE.B (A0),D3
- BNE OLDTEXT
- MOVE.L #TEXT,TEXTPO
- MOVE.B #$20,D3
- OLDTEXT:
- CMP.B #$73,D3
- BNE SSTOP
- MOVE.W #$00C0,TA ;---
- MOVE.B #$20,D3
- SSTOP: SUB.B #$20,D3
- MOVE.L D3,D4
- ASL.W #2,D3
- DIVU #10,D4
- MULU #$04D8,D4
- ADD.L D3,D4
- ADD.L #FONTY,D4 ;font
- BSR WAITBLIT
- MOVE.L D4,$50(A6)
- MOVE.L #BACK+$2E,$54(A6) ;zwisch
- MOVE.L #$09F00000,$40(A6)
- MOVE.L #$FFFFFFFF,$44(A6)
- MOVE.L #$0024002C,$64(A6)
- MOVE.W #$0802,$58(A6)
- ZERONOW:
- RTS
-
- WAITBLIT:
- BTST #$E,$DFF002
- BNE WAITBLIT
- RTS
-
-
- COP: dc.W $0102,$0037,$00E0,$0006,$00E2
- COPPLANE:
- dc.W $D000
- dc.W $00e4,$0006,$00e6
- COPPLANE2:
- dc.W $D000+[48*4]
- dc.W $0180,$0000,$0182,$00F0,$0108,$0002
- dc.W $0184,$0080,$0186,$00F0
- dc.W $010A,$0002,$0092,$0028,$0094,$00DC
- dc.W $008E,$2181,$0090,$7FC7,$0100,$2200
- dc.W $E001,$FFFE
- dc.W $0180,$0000,$0182,$0080
- dc.W $0184,$0040,$0186,$0080
- dc.W $010A,-94-48,$0108,-94-48
- dc.W $EC01,$FFFE
- dc.W $0180,$0000,$0182,$0070
- dc.W $0184,$0040,$0186,$0070
- dc.W $010A,-94,$0108,-94
- dc.W $F801,$FFFE
- dc.W $0180,$0000,$0182,$0060
- dc.W $0184,$0030,$0186,$0060
- dc.W $010A,-94-48,$0108,-94-48
- dc.W $FFDF,$FFFE,$0001,$FFFE
- dc.W $0180,$0000,$0182,$0050
- dc.W $0184,$0030,$0186,$0050
- dc.W $010A,-94,$0108,-94
- dc.W $1001,$FFFE
- dc.W $0180,$0000,$0182,$0040
- dc.W $0184,$0020,$0186,$0040
- dc.W $010A,-94-48,$0108,-94-48
- dc.W $1801,$FFFE
- dc.W $0180,$0000,$0182,$0030
- dc.W $0184,$0020,$0186,$0030
- dc.W $010A,-94,$0108,-94
- dc.W $2401,$FFFE
- dc.W $0180,$0000,$0182,$0020
- dc.W $0184,$0010,$0186,$0020
- dc.W $010A,-94-48,$0108,-94-48
- dc.W $3201,$FFFE
- dc.W $0180,$0000,$0182,$0010
- dc.W $0184,$0000,$0186,$0010
- dc.W $010A,-94,$0108,-94
- dc.W $FFFF,$FFFE
-
- SINUS:
- dc.L $008B008E,$00910095,$0098009B,$009F00A2,$00A500A8,$00AB00AE
- dc.L $00B200B5,$00B800BB,$00BE00C0,$00C300C6,$00C900CB,$00CE00D0
- dc.L $00D300D5,$00D700D9,$00DB00DD,$00DF00E1,$00E200E4,$00E500E7
- dc.L $00E800E9,$00EA00EA,$00EB00EC,$00EC00EC,$00EC00EC,$00EC00EC
- dc.L $00EC00EC,$00EB00EA,$00EA00E9,$00E800E7,$00E500E4,$00E200E1
- dc.L $00DF00DD,$00DB00D9,$00D700D5,$00D300D0,$00CE00CB,$00C900C6
- dc.L $00C300C0,$00BE00BB,$00B800B5,$00B200AE,$00AB00A8,$00A500A2
- dc.L $009F009B,$00980095,$0091008E,$008B0088,$00850081,$007E007B
- dc.L $00770074,$0071006E,$006B0068,$00640061,$005E005B,$00580056
- dc.L $00530050,$004D004B,$00480046,$00430041,$003F003D,$003B0039
- dc.L $00370035,$00340032,$0031002F,$002E002D,$002C002C,$002B002A
- dc.L $002A002A,$002A002A,$002A002A,$002A002A,$002B002C,$002C002D
- dc.L $002E002F,$00310032,$00340035,$00370039,$003B003D,$003F0041
- dc.L $00430046,$0048004B,$004D0050,$00530056,$0058005B,$005E0061
- dc.L $00640068,$006B006E,$00710074,$0077007B,$007E0081,$00850088
- SINEND:
-