home *** CD-ROM | disk | FTP | other *** search
- section lame,code_c
-
- >EXTERN"df0:fonta",font
-
- ;tRAX oF fALCON iN 1991
-
- font=$60000
- plane=$50000
-
-
- 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.l #irq,$6c
- 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 #$0020,Dmacon(a6)
- move #$c020,$dff09a
-
- 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:
-
- Btst #6,$bfe001 ; Check the left mouse button
- Bne.s Main
-
- Rts
-
- irq:
-
-
- bsr left
- bsr sin
-
- move.w #$0020,$dff09c
- rte
-
- zhler: dc.w 8
- timer: dc.w 0
-
- LEFT: TST.W TIMER
- BEQ GOON
- SUBQ.W #1,TIMER
- RTS
- GOON:
- BSR blitwait
- MOVE.L #plane,$0054(A6)
- MOVE.L #plane+2,$0050(A6)
- MOVE.L #$E9F00000,$0040(A6)
- MOVE.L #$FFFFFFFF,$0044(A6)
- CLR.L $0064(A6)
- MOVE.W #$0555,$0058(A6)
- MOVE.W zhler(PC),D0
- SUBQ.W #1,D0
- BEQ TEXTOUT
- MOVE.W D0,zhler
- RTS
-
- TEXTOUT:
- MOVE.W #8,zhler
- MOVE.L textpointer(PC),A0
- MOVEQ #0,D0
- MOVE.B (A0)+,D0
- CMP.B #1,(A0)
- BNE.S LSD
- MOVE.W #200,TIMER
- MOVE.W #$20,D0
- ADDQ.L #1,A0
- LSD:
- CMP.B #0,(A0)
- BNE.S lbC22
-
- LEA text(PC),A0
- lbC22: MOVE.L A0,textpointer
-
- lbC34: CMP.B #$49,D0
- BNE.S lbC42
- MOVE.W #5,zhler
- lbC42: SUB.B #$20,D0
- DIVU #$14,D0
- MOVE.W D0,D1
- CLR.W D0
- SWAP D0
- MULU #$348,D1
- LSL.W #1,D0
- LEA font,A0 ;font
- ADD.L D0,A0
- ADD.L D1,A0
- LEA plane+$2a,A1 ;pos
- MOVE.W #$0013,D0
- lbC6A: MOVE.L (A0),(A1)
- LEA $002C(A1),A1
- LEA $0028(A0),A0
- DBRA D0,lbC6A
- RTS
-
-
- sin: BCHG #1,flag
- BNE.S lbC16
- MOVE.l #plane+$3000-84,D3 ;w
- MOVE.L #plane+$3000,D6
- BRA.S lbC20
-
- lbC16: MOVE.l #plane+$1000-84,D3 ;low
- MOVE.L #plane+$1000,D6 ;high
- lbC20: MOVE.W D3,cop1
- ADD.W #$0054,D3
- MOVE.W D3,cop2
- BSR blitwait
- MOVE.L D6,$0054(A6)
- SUBQ.L #2,D6
- MOVE.W #$0100,$0040(A6)
- MOVE.W #2,$0066(A6)
- MOVE.W #$2B94+256,$0058(A6)
- MOVEQ #$14,D3
- MOVE.L #plane,D2
- MOVE.L sinpointer(PC),A2
-
- BSR blitwait
-
- MOVE.W #$0DFC,$0040(A6)
- MOVE.W #$0028,$0066(A6)
- MOVE.L #$0028002A,$0062(A6)
- MOVE.W #$8400,$0096(A6)
- MOVE.L #tab2,D7
- MOVE.W #$0501,D1
- lbC90: MOVE.W #$8000,D0
- MOVEQ #15,D5
- lbC96: MOVEQ #0,D4
- MOVE.B (A2)+,D4
- MOVE.L D7,A0
- ADD.W D4,A0
- ADD.W D4,A0
- MOVE.W (A0),D4
- ADD.W D4,D6
- MOVE.L D6,$004C(A6)
- MOVE.L D2,$0050(A6)
- MOVE.L D6,$0054(A6)
- SUB.L D4,D6
- MOVE.W D0,$0046(A6)
- MOVE.W D1,$0058(A6)
- ROR.W #1,D0
- DBRA D5,lbC96
- ADDQ.L #2,D2
- ADDQ.L #2,D6
- DBRA D3,lbC90
- MOVE.W #$0400,$0096(A6)
- CMP.L #sintab,sinpointer ;sintab
- BEQ.S lbCE2
- SUBQ.L #1,sinpointer
- RTS
-
- lbCE2: ADD.L #$0000013F,sinpointer
- RTS
-
- blitwait:
- BTST #14,2(A6)
- BNE.S blitwait
- RTS
-
- textpointer: dc.l text
- sinpointer: dc.l sintab+$13f
- flag: dc.w 0
-
- text: dc.b" TRAX# (IN 1991) ",01," @948 10 69 SWITZERLAND !!!",0
- even
-
-
- sintab: DC.W $4E50,$5153,$5456,$5759,$5A5C,$5D5F,$6062,$6365
- DC.W $6668,$696B,$6C6D,$6F70,$7273,$7476,$7778,$7A7B
- DC.W $7C7D,$7F80,$8182,$8384,$8687,$8889,$8A8B,$8C8D
- DC.W $8E8E,$8F90,$9192,$9293,$9495,$9596,$9797,$9898
- DC.W $9999,$9A9A,$9A9B,$9B9B,$9C9C,$9C9C,$9C9C,$9D9D
- DC.W $9D9D,$9D9C,$9C9C,$9C9C,$9C9B,$9B9B,$9A9A,$9A99
- DC.W $9998,$9897,$9796,$9595,$9493,$9292,$9190,$8F8E
- DC.W $8E8D,$8C8B,$8A89,$8887,$8684,$8382,$8180,$7F7D
- DC.W $7C7B,$7A78,$7776,$7473,$7270,$6F6D,$6C6B,$6968
- DC.W $6665,$6362,$605F,$5D5C,$5A59,$5756,$5453,$5150
- DC.W $4E4C,$4B49,$4846,$4543,$4240,$3F3D,$3C3A,$3937
- DC.W $3634,$3331,$302F,$2D2C,$2A29,$2826,$2524,$2221
- DC.W $201F,$1D1C,$1B1A,$1918,$1615,$1413,$1211,$100F
- DC.W $0E0E,$0D0C,$0B0A,$0A09,$0807,$0706,$0505,$0404
- DC.W $0303,$0202,$0201,$0101,$0100,$0000,$0000,$0000
- DC.W $0000,$0000,$0000,$0000,$0101,$0101,$0202,$0203
- DC.W $0304,$0405,$0506,$0707,$0809,$0A0A,$0B0C,$0D0E
- DC.W $0E0F,$1011,$1213,$1415,$1618,$191A,$1B1C,$1D1F
- DC.W $2021,$2224,$2526,$2829,$2A2C,$2D2F,$3031,$3334
- DC.W $3637,$393A,$3C3D,$3F40,$4243,$4546,$4849,$4B4C
- DC.W $4E50,$5153,$5456,$5759,$5A5C,$5D5F,$6062,$6365
- DC.W $6668,$696B,$6C6D,$6F70,$7273,$7476,$7778,$7A7B
- DC.W $7C7D,$7F80,$8182,$8384,$8687,$8889,$8A8B,$8C8D
- DC.W $8E8E,$8F90,$9192,$9293,$9495,$9596,$9797,$9898
- DC.W $9999,$9A9A,$9A9B,$9B9B,$9C9C,$9C9C,$9C9C,$9D9D
- DC.W $9D9D,$9D9C,$9C9C,$9C9C,$9C9B,$9B9B,$9A9A,$9A99
- DC.W $9998,$9897,$9796,$9595,$9493,$9292,$9190,$8F8E
- DC.W $8E8D,$8C8B,$8A89,$8887,$8684,$8382,$8180,$7F7D
- DC.W $7C7B,$7A78,$7776,$7473,$7270,$6F6D,$6C6B,$6968
- DC.W $6665,$6362,$605F,$5D5C,$5A59,$5756,$5453,$5150
- DC.W $4E4C,$4B49,$4846,$4543,$4240,$3F3D,$3C3A,$3937
- DC.W $3634,$3331,$302F,$2D2C,$2A29,$2826,$2524,$2221
- DC.W $201F,$1D1C,$1B1A,$1918,$1615,$1413,$1211,$100F
- DC.W $0E0E,$0D0C,$0B0A,$0A09,$0807,$0706,$0505,$0404
- DC.W $0303,$0202,$0201,$0101,$0100,$0000,$0000,$0000
- DC.W $0000,$0000,$0000,$0000,$0101,$0101,$0202,$0203
- DC.W $0304,$0405,$0506,$0707,$0809,$0A0A,$0B0C,$0D0E
- DC.W $0E0F,$1011,$1213,$1415,$1618,$191A,$1B1C,$1D1F
- DC.W $2021,$2224,$2526,$2829,$2A2C,$2D2F,$3031,$3334
- DC.W $3637,$393A,$3C3D,$3F40,$4243,$4546,$4849,$4B4C
- DC.W $4E50,$5153,$5456,$5759,$5A5C,$5D5F,$6062,$6365
- DC.W $6668,$696B,$6C6D,$6F70,$7273,$7476,$7778,$7A7B
- DC.W $7C7D,$7F80,$8182,$8384,$8687,$8889,$8A8B,$8C8D
- DC.W $8E8E,$8F90,$9192,$9293,$9495,$9596,$9797,$9898
- DC.W $9999,$9A9A,$9A9B,$9B9B,$9C9C,$9C9C,$9C9C,$9D9D
- DC.W $9D9D,$9D9C,$9C9C,$9C9C,$9C9B,$9B9B,$9A9A,$9A99
- DC.W $9998,$9897,$9796,$9595,$9493,$9292,$9190,$8F8E
- DC.W $8E8D,$8C8B,$8A89,$8887,$8684,$8382,$8180,$7F7D
- DC.W $7C7B,$7A78,$7776,$7473,$7270,$6F6D,$6C6B,$6968
- DC.W $6665,$6362,$605F,$5D5C,$5A59,$5756,$5453,$5150
- DC.W $4E4C,$4B49,$4846,$4543,$4240,$3F3D,$3C3A,$3937
- DC.W $3634,$3331,$302F,$2D2C,$2A29,$2826,$2524,$2221
- DC.W $201F,$1D1C,$1B1A,$1918,$1615,$1413,$1211,$100F
- DC.W $0E0E,$0D0C,$0B0A,$0A09,$0807,$0706,$0505,$0404
- DC.W $0303,$0202,$0201,$0101,$0100,$0000,$0000,$0000
- DC.W $0000,$0000,$0000,$0000,$0101,$0101,$0202,$0203
- DC.W $0304,$0405,$0506,$0707,$0809,$0A0A,$0B0C,$0D0E
- DC.W $0E0F,$1011,$1213,$1415,$1618,$191A,$1B1C,$1D1F
- DC.W $2021,$2224,$2526,$2829,$2A2C,$2D2F,$3031,$3334
- DC.W $3637,$393A,$3C3D,$3F40,$4243,$4546,$4849,$4B4C
-
- tab2: DC.W $0000,$002A,$0054,$007E,$00A8,$00D2,$00FC,$0126
- DC.W $0150,$017A,$01A4,$01CE,$01F8,$0222,$024C,$0276
- DC.W $02A0,$02CA,$02F4,$031E,$0348,$0372,$039C,$03C6
- DC.W $03F0,$041A,$0444,$046E,$0498,$04C2,$04EC,$0516
- DC.W $0540,$056A,$0594,$05BE,$05E8,$0612,$063C,$0666
- DC.W $0690,$06BA,$06E4,$070E,$0738,$0762,$078C,$07B6
- DC.W $07E0,$080A,$0834,$085E,$0888,$08B2,$08DC,$0906
- DC.W $0930,$095A,$0984,$09AE,$09D8,$0A02,$0A2C,$0A56
- DC.W $0A80,$0AAA,$0AD4,$0AFE,$0B28,$0B52,$0B7C,$0BA6
- DC.W $0BD0,$0BFA,$0C24,$0C4E,$0C78,$0CA2,$0CCC,$0CF6
- DC.W $0D20,$0D4A,$0D74,$0D9E,$0DC8,$0DF2,$0E1C,$0E46
- DC.W $0E70,$0E9A,$0EC4,$0EEE,$0F18,$0F42,$0F6C,$0F96
- DC.W $0FC0,$0FEA,$1014,$103E,$1068,$1092,$10BC,$10E6
- DC.W $1110,$113A,$1164,$118E,$11B8,$11E2,$120C,$1236
- DC.W $1260,$128A,$12B4,$12DE,$1308,$1332,$135C,$1386
- DC.W $13B0,$13DA,$1404,$142E,$1458,$1482,$14AC,$14D6
- DC.W $1500,$152A,$1554,$157E,$15A8,$15D2,$15FC,$1626
- DC.W $1650,$167A,$16A4,$16CE,$16F8,$1722,$174C,$1776
- DC.W $17A0,$17CA,$17F4,$181E,$1848,$1872,$189C,$18C6
- DC.W $18F0,$191A,$1944,$196E,$1998,$19C2,$19EC,$1A16
- DC.W $1A40,$1A6A,$1A94,$1ABE,$1AE8,$1B12,$1B3C,$1B66
- DC.W $1B90,$1BBA,$1BE4,$1C0E,$1C38,$1C62,$1C8C,$1CB6
- DC.W $1CE0,$1D0A,$1D34,$1D5E,$1D88,$1DB2,$1DDC,$1E06
- DC.W $1E30,$1E5A,$1E84,$1EAE,$1ED8,$1F02,$1F2C,$1F56
- DC.W $1F80,$1FAA,$1FD4,$1FFE,$2028,$2052,$207C,$20A6
- DC.W $20D0,$20FA,$2124,$214E,$2178,$21A2,$21CC,$21F6
- DC.W $2220,$224A,$2274,$229E,$22C8,$22F2,$231C,$2346
- DC.W $2370,$239A,$23C4,$23EE,$2418,$2442,$246C,$2496
- DC.W $24C0,$24EA,$2514,$253E,$2568,$2592,$25BC,$25E6
- DC.W $2610,$263A,$2664,$268E,$26B8,$26E2,$270C,$2736
- DC.W $2760,$278A,$27B4,$27DE,$2808,$2832,$285C,$2886
- DC.W $28B0,$28DA,$2904,$292E,$2958,$2982,$29AC,$29D6
-
-
- cop: DC.W $008E,$2c81,$0090,$44c1,$0092,$0038
- DC.W $0094,$00d0,$0100,$0000,$0102,$0045
- DC.W $0108,2,$010A,2
- DC.W $0180,$0000,$0182,$000f,$0184,$0007
- DC.W $0186,$000b
- DC.W $00E0,$0005,$00E2
- cop1: DC.W $2000
- DC.W $00E4,$0005,$00E6
- cop2: DC.W $2054
- DC.W $2001,$FFFE,$0100,$2200
- DC.W $E001,$FFFE
- DC.W $0108,-82,$010a,-82
- DC.W $0182,$0008,$0184,$0003,$0186,$0006
- DC.W $FFFF,$FFFE
-