home *** CD-ROM | disk | FTP | other *** search
- ;------------------------------------------------------------------------
- ;- -
- ;- Vector-Stars -
- ;- -
- ;------------------------------------------------------------------------
-
- org $20000
- load $20000
-
- >EXTERN 'Perspektiv',Per
- >EXTERN 'VectorBob.RB',Bob
-
- ;------------------------------------------------------------------------
-
- S: movem.l d0-d7/a0-a6,-(sp)
- lea.l $dff000,a6
- bsr Startup
- bsr InitRutin
- bsr BlitWait
- bsr StartCop
- bsr MainLoop
- bsr RestoreCop
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- Startup: move.w 2(a6),d0
- bset #15,d0
- move.w d0,OldDma
- move.w $1c(a6),d0
- bset #15,d0
- move.w d0,OldIrq
- move.l $4,a6
- lea.l Lib(pc),a1
- moveq #0,d0
- jsr -408(a6)
- move.l d0,a0
- move.l $26(a0),OldCop
- lea.l $dff000,a6
- rts
-
- StartCop: move.l #CopperList,$80(a6)
- tst.w $88(a6)
- move.w #$7fff,$96(a6)
- move.w #$87c0,$96(a6)
- move.w #$7fff,$9a(a6)
- move.w #$c000,$9a(a6)
- rts
-
- RestoreCop: move.l OldCop(pc),$80(a6)
- tst.w $88(a6)
- move.w OldDma(pc),$96(a6)
- move.w OldIrq(pc),$9a(a6)
- rts
-
- ;-----------------------------------------------------
- OldCop: dc.l 0
- OldDma: dc.w 0
- OldIrq: dc.w 0
- Lib: dc.b 'graphics.library',0
- even
- ;-----------------------------------------------------
-
- ;------------------------------------------------------------------------
-
- BlitWait: btst #14,2(a6)
- bne.S BlitWait
- rts
-
- ClearScreen: bsr.S BlitWait
- move.l #-1,$44(a6)
- move.l #$01000000,$40(a6)
- move.w d2,$66(a6)
- move.l d0,$54(a6)
- move.w d1,$58(a6)
- rts
-
- ;------------------------------------------------------------------------
-
- InitRutin: move.l Screen(pc),d0
- move.w #128*2*64+24,d1
- moveq #0,d2
- bsr ClearScreen
- move.l Screen+4(pc),d0
- bsr ClearScreen
- bsr BlitWait
-
- lea.l MulsList,a0
- moveq #0,d0
- move.w #300-1,d7
- MulsLoop: move.w d0,(a0)+
- add.w #44*2,d0
- dbra d7,MulsLoop
-
- move.l MatrisAdr(pc),a0
- lea Sinus(pc),a1
- move.w #360-1,d7
- moveq #0,d4
- MatLoop1: move.w #127,d6
- move.w (a1)+,d4
- move.l #-63,d0
- MatLoop2: move.l d4,d3
- muls d0,d3
- asl.l #2,d3
- swap d3
- move.b d3,(a0)+
- addq.w #1,d0
- dbra d6,MatLoop2
- dbra d7,MatLoop1
- rts
-
- MulsList: = $7b000
-
- Screen: dc.l $60000
- dc.l $60000+[128*44]
-
- MatrisAdr: dc.l $40000
- dc.l $60000+[256*44]
-
- ;------------------------------------------------------------------------
-
- MainLoop: cmp.b #-1,$6(a6)
- bne.S MainLoop
- btst #10,$16(a6)
- beq.S MainLoop
-
- move.w #$4,$180(a6)
- bsr VectorBobs
- move.w #$40,$180(a6)
-
- btst #6,$bfe001
- bne.S MainLoop
- rts
-
- ;------------------------------------------------------------------------
-
- Vectorbobs: bsr Buffra
- bsr Rensa
- bsr VinkelAdd
- bsr Rakna
- bsr Plotta
- rts
-
- Buffra: move.l Screen(pc),d0
- move.l Screen+4(pc),Screen
- move.l d0,Screen+4
- lea.l BMap(pc),a0
- moveq #2-1,d7
- BMapLoop: swap d0
- move.w d0,2(a0)
- swap d0
- move.w d0,6(a0)
- addq.l #8,a0
- add.l #44,d0
- dbra d7,BMapLoop
- rts
-
- Rensa: move.l Screen(pc),d0
- moveq #44-40,d2
- move.w #128*64*2+20,d1
- bsr ClearScreen
- rts
-
- VinkelAdd: lea.l Vinklar(pc),a0
- lea.l VAdds(pc),a1
- move.w #720,d1
- moveq #3-1,d7
- VAddLoop: move.w (a0),d0
- add.w (a1)+,d0
- cmp.w d1,d0
- bls.S Nothing
- sub.w d1,d0
- Nothing: move.w d0,(a0)+
- dbra d7,VAddLoop
- rts
-
- Rakna: lea.l Vinklar(pc),a1
- lea.l Posses(pc),a4
- lea.l Per,a5
-
- lea CalcUp(pc),a0
- moveq #3-1,d7
- OllesBoll: move.w (a1)+,d0
- move.w d0,d1
- asl.w #6,d1
- move.w d1,2(a0)
- add.w #180,d0
- cmp.w #720,d0
- bls.S NoD2222
- sub.w #720,d0
- NoD2222: asl.w #6,d0
- move.w d0,(a0)
- addq.l #4,a0
- dbf d7,OllesBoll
-
- lea CalcUp(pc),a1
- lea.l MulsList,a6
- move.l a7,SPSave
- lea.l ObjX(pc),a0
- lea.l ObjY(pc),a2
- lea.l ObjZ(pc),a7
- move.l MatrisAdr(pc),a3
- move.w AntBobs,d7
-
- RakneLoop: move.w (a1)+,d1
- move.w (a1)+,d2
- move.b (a2),d2
- move.b (a3,d2.W),d3
- ext.w d3
- move.b (a7),d1
- move.b (a3,d1.W),d4
- ext.w d4
- sub.w d4,d3
- move.b (a2)+,d1
- move.b (a3,d1.W),d4
- ext.w d4
- move.b (a7)+,d2
- move.b (a3,d2.W),d5
- ext.w d5
- add.w d5,d4
-
- move.w (a1)+,d1
- move.w (a1)+,d2
- move.b (a0),d2
- move.b (a3,d2.W),d5
- ext.w d5
- move.b d3,d1
- move.b (a3,d1.W),d6
- ext.w d6
- sub.w d6,d5
- move.b (a0)+,d1
- move.b (a3,d1.W),d6
- ext.w d6
- move.b d3,d2
- move.b (a3,d2.W),d3
- ext.w d3
- add.w d6,d3
-
- move.w (a1)+,d1
- move.w (a1)+,d2
- move.b d5,d2
- move.b (a3,d2.W),d0
- ext.w d0
- move.b d4,d1
- move.b (a3,d1.W),d6
- ext.w d6
- sub.w d6,d0
- move.b d5,d1
- move.b (a3,d1.W),d5
- ext.w d5
- move.b d4,d2
- move.b (a3,d2.W),d4
- ext.w d4
- add.w d5,d4
-
- add.w #156,d4
- add.w d4,d4
- move.w (a5,d4.W),d2
- muls d2,d0
- muls d2,d3
- lsl.l #5,d0
- lsl.l #5,d3
- swap d0
- swap d3
-
- add.w #176,d0
- add.w #100,d3
-
- move.w d0,d1
- lsr.w #3,d0
- and.w #$f,d1
- ror.w #4,d1
- add.w d3,d3
- move.w (a6,d3.W),d3
- add.w d3,d0
-
- move.w d0,(a4)+
- move.w d1,(a4)+
- move.w d4,(a4)+
- lea -12(a1),a1
- dbra d7,RakneLoop
- lea.l $dff000,a6
- move.l SPSave(pc),a7
- rts
-
- SPSave: dc.l 0
-
- Plotta: lea.l Posses(pc),a0
- move.l Screen+4(pc),d0
- move.l #Bob,d1
- move.l d1,d2
- ;add.l #15*2*2,d2
- move.w #15*64*1+2,d3
- move.w #$fca,d6
-
- bsr BlitWait
- move.l #$ffff0000,$44(a6)
- move.w #2-4,$62(a6)
- move.w #2-4,$64(a6)
- move.w #44-4,$60(a6)
- move.w #44-4,$66(a6)
- move.l d0,$48(a6)
- move.l d0,$54(a6)
- move.l d1,$4c(a6)
- move.l d2,$50(a6)
-
- lea.l $40(a6),a1
- lea.l $4a(a6),a2
- lea.l $4e(a6),a3
- lea.l $52(a6),a4
- lea.l $56(a6),a5
- lea.l $58(a6),a6
-
- move.w AntBobs(pc),d7
-
- PlotLoop: move.w d0,d4
- add.w (a0)+,d4
- move.w (a0)+,d5
- move.w d5,2(a1)
- add.w d6,d5
- move.w d5,(a1)
- move.w d4,(a2)
- move.w d4,(a5)
- move.w d1,(a3)
- move.w d2,(a4)
- move.w d3,(a6)
- addq.w #2,a0
- dbra d7,PlotLoop
- lea.l $dff000,a6
- rts
-
- ;--------------------------------------------------
-
- BMapSize: = 280*44
-
- Posses: blk.w 400*3,0
- Posses2: blk.w 400*3,0
- CalcUp: blk.w 3*2,0
- BobAdr: dc.l 0
-
- Vinklar: dc.w 0
- dc.w 0
- dc.w 0
-
- VAdds: dc.w 0
- dc.w 0
- dc.w 0
-
- ;--------------------------------------------------
-
- ObjX:
- dc.b 5,10,15,0,10,20,0,10,20,0,20,0,20
-
- ObjY:
- dc.b 0,0,0,5,5,5,10,10,10,15,15,20,20
-
- ObjZ:
- dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0
-
- even
-
- AntBobs: dc.w 13-1
-
- ;------------------------------------------------------------------------
-
- CopperList: dc.l $008e6c66,$0090ecc6,$00920030,$009400d8
- dc.l $01020000,$01040000,$0108002c,$010a002c
-
- Cols: dc.l $01800000,$01820fff,$01840fff,$01860fff
- BMap: dc.l $00e00000,$00e20000,$00e40000,$00e60000
- dc.l $01002200
-
- dc.l -2
-
- ;------------------------------------------------------------------------
-
- Per: = $30000
- Bob: = $33000
-
- Sinus: dc.w 16384,16382,16374,16362,16344,16322,16294,16262
- dc.w 16225,16182,16135,16083,16026,15964,15897,15826
- dc.w 15749,15668,15582,15491,15396,15296,15191,15082
- dc.w 14967,14849,14726,14598,14466,14330,14189,14044
- dc.w 13894,13741,13583,13421,13255,13085,12911,12733
- dc.w 12551,12365,12176,11982,11786,11585,11381,11174
- dc.w 10963,10749,10531,10311,10087,9860,9630,9397
- dc.w 9162,8923,8682,8438,8192,7943,7692,7438
- dc.w 7182,6924,6664,6401,6137,5871,5603,5334
- dc.w 5063,4790,4516,4240,3963,3685,3406,3126
- dc.w 2845,2563,2280,1996,1712,1427,1142,857
- dc.w 571,285,0,-285,-571,-857,-1142,-1428
- dc.w -1712,-1996,-2280,-2563,-2845,-3126,-3406,-3685
- dc.w -3963,-4240,-4516,-4790,-5063,-5334,-5603,-5871
- dc.w -6137,-6401,-6664,-6924,-7182,-7438,-7692,-7943
- dc.w -8192,-8438,-8682,-8923,-9162,-9397,-9630,-9860
- dc.w -10087,-10311,-10531,-10749,-10963,-11174,-11381,-11585
- dc.w -11786,-11982,-12176,-12365,-12551,-12733,-12911,-13085
- dc.w -13255,-13421,-13583,-13741,-13894,-14044,-14189,-14330
- dc.w -14466,-14598,-14726,-14849,-14967,-15082,-15191,-15296
- dc.w -15396,-15491,-15582,-15668,-15749,-15826,-15897,-15964
- dc.w -16026,-16083,-16135,-16182,-16225,-16262,-16294,-16322
- dc.w -16344,-16362,-16374,-16382,-16384,-16382,-16374,-16362
- dc.w -16344,-16322,-16294,-16262,-16225,-16182,-16135,-16083
- dc.w -16026,-15964,-15897,-15826,-15749,-15668,-15582,-15491
- dc.w -15396,-15296,-15191,-15082,-14968,-14849,-14726,-14598
- dc.w -14466,-14330,-14189,-14044,-13894,-13741,-13583,-13421
- dc.w -13255,-13085,-12911,-12733,-12551,-12365,-12176,-11982
- dc.w -11786,-11585,-11381,-11174,-10963,-10749,-10531,-10311
- dc.w -10087,-9860,-9630,-9397,-9162,-8923,-8682,-8438
- dc.w -8192,-7943,-7692,-7438,-7182,-6924,-6664,-6402
- dc.w -6137,-5871,-5604,-5334,-5063,-4790,-4516,-4240
- dc.w -3963,-3685,-3406,-3126,-2845,-2563,-2280,-1996
- dc.w -1712,-1428,-1143,-857,-572,-286,0,285
- dc.w 571,857,1142,1427,1712,1996,2280,2562
- dc.w 2844,3126,3406,3685,3963,4240,4515,4790
- dc.w 5062,5334,5603,5871,6137,6401,6663,6924
- dc.w 7182,7438,7691,7943,8192,8438,8682,8923
- dc.w 9161,9397,9630,9860,10087,10310,10531,10748
- dc.w 10963,11173,11381,11585,11785,11982,12175,12365
- dc.w 12551,12732,12910,13085,13255,13421,13583,13740
- dc.w 13894,14044,14189,14330,14466,14598,14726,14849
- dc.w 14967,15081,15191,15296,15396,15491,15582,15668
- dc.w 15749,15826,15897,15964,16026,16083,16135,16182
- dc.w 16224,16262,16294,16322,16344,16361,16374,16382
-
- org $33000
- load $33000
-
- dc.w %1000000000000000
- blk.w 15,0
-
-
-