 ;  DevPac 2.14 !!

SetVBI       = -30
InitVBOBs    = -36
OpenVScreen  = -42
CloseVScreen = -48
UseJoy       = -54
DoAnim       = -60
RotateX      = -66
RotateY      = -72
RotateZ      = -78
FreeVBOBs    = -84
AutoScaleOn  = -90
AutoScaleOff = -96
FreeJoy      = -102
SetColors    = -108

 move.l 4.w,a6
 lea    vecname(pc),a1
 jsr    -408(a6)            ; vector.library öffnen
 move.l d0,vecbase
 beq.s  end
 
 lea    NewVScreen(pc),a1
 move.l vecbase(pc),a6
 jsr    OpenVScreen(a6)     ; VScreen öffnen
 move.l d0,viewstruc
 
 move.l viewstruc(pc),a0
 lea    coltab(pc),a1
 jsr    SetColors(a6)       ; Farben setzen

 move.w NewVScreen+12(pc),d0
 jsr    AutoScaleOn(a6)     ; Entzerrung für evtl. höhere Auflösungen an
 
 lea    anim(pc),a1
 jsr    SetVBI(a6)          ; VBI-Teil einbinden
 
 lea    World(pc),a1
 jsr    DoAnim(a6)          ; Animation laufen lassen

 jsr    CloseVScreen(a6)    ; VScreen schließen

 move.l 4.w,a6
 move.l vecbase(pc),a1
 jsr    -414(a6)            ; vector.library schließen

end:
 rts

vecbase   dc.l 0
viewstruc dc.l 0

NewVScreen:
 dc.w 0,0
 dc.w 320,256
 dc.w 3
 dc.b 0,0
 dc.w $00
 dc.l 0
 dc.l title

 dc.w 0
 dc.w 0,0
 dc.w 320,256
 dc.w 3
  
title: dc.b "vector.library   ©1991 by A. Lippert"
 even

World:
 dc.w 0,1
 dc.l object1

object1:
 dc.l mepd
 dc.l mead
 dc.l memv
 dc.w 0
 dc.w 0,0,-13500
 dc.w 0,0,0

mepd:           ; Eckpunkt-Tabelle
 dc.w 48+7
 dc.w 115,-15,-18,0
 dc.w 115,15,-18,0
 dc.w 94,15,-18,0
 dc.w 94,-15,-18,0
 dc.w 94,-15,-25,0
 dc.w 94,15,-25,0
 dc.w -20,-15,-25,0
 dc.w -20,15,-25,0
 dc.w -193,0,0,0
 dc.w -135,0,15,0  ;10
 dc.w -26,-7,22,0
 dc.w -26,7,22,0
 dc.w -14,-15,6,0
 dc.w -14,15,6,0
 dc.w 11,-7,22,0
 dc.w 11,7,22,0
 dc.w 11,-15,6,0
 dc.w 11,15,6,0
 dc.w 23,-7,15,0
 dc.w 23,7,15,0    ;20
 dc.w 113,-7,15,0
 dc.w 113,7,15,0
 dc.w 113,-15,0,0
 dc.w 113,15,0,0
 dc.w -155,0,48,0
 dc.w -172,0,48,0
 dc.w 60,15,-25,0
 dc.w 48,15,-13,0
 dc.w 23,15,-13,0
 dc.w 48,190,-13,0
 dc.w 23,190,-13,0
 dc.w 60,-15,-25,0
 dc.w 48,-15,-13,0
 dc.w 23,-15,-13,0
 dc.w 48,-190,-13,0
 dc.w 23,-190,-13,0
 dc.w 137,0,-5,0
 dc.w -145,0,24,0
 dc.w -160,62,24,0
 dc.w -177,62,24,0   ;40
 dc.w -180,13,24,0
 dc.w -170,0,24,0
 dc.w -160,-62,24,0
 dc.w -177,-62,24,0
 dc.w -180,-13,24,0
 dc.w -155,0,27,0
 dc.w -165,0,27,0
 dc.w -185,0,35,0
 dc.w 113,0,0,0
meprop:
 dc.w 113,50,-5,0
 dc.w 113,50,5,0
 dc.w 113,-29,-5,0
 dc.w 113,-21,5,0
 dc.w 113,20,-5,0
 dc.w 113,20,5,0


mead:    ; Flächentabelle
 dc.w 54
 dc.w 4,1,0*4,1*4,2*4,3*4,0*4,0,0,0,0
 dc.w 4,1,4*4,5*4,7*4,6*4,4*4,0,0,0,0
 dc.w 3,1,6*4,7*4,8*4,6*4,0,0,0,0,0
 dc.w 6,3,1*4,23*4,13*4,7*4,5*4,2*4,1*4,0,0
 dc.w 3,3,7*4,13*4,8*4,7*4,0,0,0,0,0
 dc.w 3,3,8*4,13*4,11*4,8*4,0,0,0,0,0
 dc.w 4,3,0*4,3*4,12*4,22*4,0*4,0,0,0,0
 dc.w 3,3,3*4,8*4,12*4,3*4,0,0,0,0,0
 dc.w 4,3,3*4,4*4,6*4,8*4,3*4,0,0,0,0
 dc.w 4,3,8*4,9*4,10*4,12*4,8*4,0,0,0,0
 dc.w 3,4,8*4,11*4,9*4,8*4,0,0,0,0,0
 dc.w 3,4,8*4,9*4,10*4,8*4,0,0,0,0,0
 dc.w 3,4,9*4,11*4,10*4,9*4,0,0,0,0,0
 dc.w 4,6,10*4,11*4,15*4,14*4,10*4,0,0,0,0
 dc.w 4,7,14*4,15*4,19*4,18*4,14*4,0,0,0,0
 dc.w 4,1,18*4,19*4,21*4,20*4,18*4,0,0,0,0
 dc.w 3,6,15*4,17*4,19*4,15*4,0,0,0,0,0
 dc.w 3,6,14*4,18*4,16*4,14*4,0,0,0,0,0
 dc.w 4,7,11*4,13*4,17*4,15*4,11*4,0,0,0,0
 dc.w 4,7,10*4,14*4,16*4,12*4,10*4,0,0,0,0
 dc.w 5,4,13*4,23*4,21*4,19*4,17*4,13*4,0,0,0
 dc.w 4,4,16*4,18*4,20*4,22*4,16*4,0,0,0,0
 dc.w 3,4,12*4,16*4,22*4,12*4,0,0,0,0,0
 dc.w 5,3,8*4,9*4,24*4,25*4,47*4,8*4,0,0,0
 dc.w 5,3,8*4,47*4,25*4,24*4,9*4,8*4,0,0,0
 dc.w 4,1,7*4,26*4,29*4,30*4,7*4,0,0,0,0
 dc.w 3,5,26*4,27*4,29*4,26*4,0,0,0,0,0
 dc.w 4,3,27*4,28*4,30*4,29*4,27*4,0,0,0,0
 dc.w 3,5,7*4,30*4,28*4,7*4,0,0,0,0,0
 dc.w 4,1,6*4,35*4,34*4,31*4,6*4,0,0,0,0
 dc.w 3,5,31*4,34*4,32*4,31*4,0,0,0,0,0
 dc.w 4,3,32*4,34*4,35*4,33*4,32*4,0,0,0,0
 dc.w 3,5,6*4,33*4,35*4,6*4,0,0,0,0,0
 dc.w 3,1,20*4,21*4,36*4,20*4,0,0,0,0,0
 dc.w 3,4,21*4,23*4,36*4,21*4,0,0,0,0,0
 dc.w 3,4,1*4,36*4,23*4,1*4,0,0,0,0,0
 dc.w 3,1,0*4,36*4,1*4,0*4,0,0,0,0,0
 dc.w 3,4,0*4,22*4,36*4,0*4,0,0,0,0,0
 dc.w 3,4,20*4,36*4,22*4,20*4,0,0,0,0,0
 dc.w 5,1,37*4,41*4,44*4,43*4,42*4,37*4,0,0,0
 dc.w 5,1,37*4,38*4,39*4,40*4,41*4,37*4,0,0,0
 dc.w 3,5,37*4,45*4,38*4,37*4,0,0,0,0,0
 dc.w 4,5,38*4,45*4,46*4,39*4,38*4,0,0,0,0
 dc.w 4,5,39*4,46*4,41*4,40*4,39*4,0,0,0,0
 dc.w 3,5,37*4,42*4,45*4,37*4,0,0,0,0,0
 dc.w 4,5,42*4,43*4,46*4,45*4,42*4,0,0,0,0
 dc.w 4,5,41*4,45*4,43*4,44*4,41*4,0,0,0,0
 dc.w 4,2,2*4,5*4,4*4,3*4,2*4,0,0,0,0
 dc.w 3,1,48*4,50*4,49*4,48*4,0,0,0,0,0
 dc.w 3,1,48*4,52*4,51*4,48*4,0,0,0,0,0
 dc.w 3,1,48*4,54*4,53*4,48*4,0,0,0,0,0
 dc.w 3,1,48*4,49*4,50*4,48*4,0,0,0,0,0
 dc.w 3,1,48*4,51*4,52*4,48*4,0,0,0,0,0
 dc.w 3,1,48*4,53*4,54*4,48*4,0,0,0,0,0


memv:
 dc.w 1, 0,0,0, -90,0,0
 dc.w 1, 0,0,0, 0,-90,0
 dc.w 150, 0,0,42, 0,0,0
 dc.w 150, 0,0,42, 0,1,0
 dc.w 400, 0,0,0, 0,1,0
 dc.w 300, 0,0,0, 0,1,1
 dc.w 300, 0,0,-42, 1,1,0
 dc.w -1

coltab:
 dc.w 0,0,0,0
 dc.w 1,7,7,7
 dc.w 2,2,2,2
 dc.w 3,5,5,5
 dc.w 4,6,6,6
 dc.w 5,4,4,4
 dc.w 6,0,7,9
 dc.w 7,0,8,10
 dc.w -1


anim:       ; Hier erfolgt die Rotation des Propellers im VBI
 movem.l d2-d6/a2/a6,-(a7)
 move.l vecbase(pc),a6
 lea    meprop(pc),a2
 move.w animcnt(pc),d6
 moveq  #110,d0
 moveq  #50,d1
 moveq  #5,d2
 moveq  #0,d3
 moveq  #0,d4
 moveq  #0,d5
 jsr    RotateX(a6)
 movem.w d0-d2,(a2)
 moveq  #0,d3
 moveq  #0,d4
 moveq  #0,d5
 move.w #120,d6
 jsr    RotateX(a6)
 movem.w d0-d2,16(a2)
 moveq  #0,d3
 moveq  #0,d4
 moveq  #0,d5
 move.w #120,d6
 jsr    RotateX(a6)
 movem.w d0-d2,32(a2)
 move.w animcnt,d6
 moveq  #116,d0
 moveq  #50,d1
 moveq  #-5,d2
 moveq  #0,d3
 moveq  #0,d4
 moveq  #0,d5
 jsr    RotateX(a6)
 movem.w d0-d2,8(a2)
 move.w #120,d6
 moveq  #0,d3
 moveq  #0,d4
 moveq  #0,d5
 jsr    RotateX(a6)
 movem.w d0-d2,24(a2)
 move.w #120,d6
 moveq  #0,d3
 moveq  #0,d4
 moveq  #0,d5
 jsr    RotateX(a6)
 movem.w d0-d2,40(a2)
 subq.w #4,animcnt
 tst.w  animcnt
 bge.s  .ok
 add.w  #360,animcnt
.ok:
 movem.l (a7)+,d2-d6/a2/a6
 rts

animcnt dc.w 0

vecname dc.b "vector.library",0
gfxname dc.b "graphics.library",0
