home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d7xx / d743 / turbodex.lha / TurboDEX / ExampleSources / Vector.dex < prev   
Text File  |  1992-10-11  |  2KB  |  102 lines

  1. /* vectordemo */
  2.  
  3. PROC init()
  4.   DEF screenx=400:LONG, screeny=320:LONG, maxframe=49:INT, maxline=26:INT
  5.   DEF coordinates=10400:ARRAY, screenadr1:LONG, screenadr2:LONG, ret:LONG
  6.   DEF rast1:LONG, rast2:LONG, out:LONG
  7.   VOID makedata()
  8.   VOID view(90,13)
  9.   screenadr1 := OpenS(screenx,screeny,2,0,' ')
  10.   rast1 := screenadr1+84
  11.   VOID setcolours(screenadr1)
  12.   screenadr2 := OpenS(screenx,screeny,2,0,' ')
  13.   rast2 := screenadr2+84
  14.   VOID setcolours(screenadr2)
  15.   ret := MUL(screenadr1,screenadr2)
  16. ENDPROC ret
  17.  
  18. PROC main()
  19.   DEF frame:INT, line:REGINT, actual=0:LONG, rast:LONG, screen:LONG
  20.   DEF x:REGINT, y:REGINT, colour:REGLONG, frameoffset:REGLONG
  21.   DEF lineoffset:REGLONG, suxxes:LONG
  22.   suxxes := init()
  23.   IF suxxes=0
  24.     WRITE 'Could not open screens!\n'
  25.   ELSE
  26.     MOUSE
  27.       FOR frame,maxframe,0,-1
  28.         rast := rast1
  29.         screen := screenadr1
  30.         IF actual=1
  31.           rast := rast2
  32.           screen := screenadr2
  33.         ENDIF
  34.         VOID SetRast(rast,0) 
  35.         colour := 1
  36.         frameoffset := maxline*frame*8+coordinates
  37.         DOWN line,maxline
  38.           lineoffset := line*8+frameoffset
  39.           VOID SetAPen(rast,colour)
  40.           x := MINT(lineoffset)
  41.           y := MINT(lineoffset+2)
  42.           VOID Move(rast,x,y)
  43.           x := MINT(lineoffset+4)
  44.           y := MINT(lineoffset+6)
  45.           VOID Draw(rast,x,y)
  46.           INC 1,colour
  47.           IF colour>3
  48.             colour := 1
  49.           ENDIF
  50.         ENDDOWN
  51.         JUMPMOUSE exit
  52.         VOID ScreenToFront(screen)
  53.         DMACON := 32
  54.         actual := 1-actual
  55.       ENDFOR
  56.     ENDMOUSE
  57.   ENDIF
  58.   exit:
  59.   VOID cleanup()
  60. ENDPROC
  61.  
  62. PROC cleanup()
  63.   IF screenadr1?NIL
  64.     VOID CloseScreen(screenadr1)
  65.   ENDIF
  66.   IF screenadr2?NIL
  67.     VOID CloseScreen(screenadr2)
  68.   ENDIF
  69.   VOID view(129,44)
  70. ENDPROC
  71.  
  72. PROC makedata()
  73.   LOCAL adr:REGLONG, count:REGLONG, dummy:REGINT
  74.   adr := {vectordata}
  75.   dummy := 0
  76.   FOR count,0,5199
  77.     dummy := MCHAR(adr+count)
  78.     AND 255,dummy
  79.     MINT count*2+coordinates,dummy*2
  80.   ENDFOR
  81.   STRUCT vectordata
  82.     INCLUDE dex:vector/TDEX.BIN
  83.   ENDSTRUCT
  84. ENDPROC
  85.  
  86. PROC view( x, y)
  87.   LOCAL x:INT, y:INT, viewadr:LONG
  88.   viewadr := ViewAddress()
  89.   MINT viewadr+14, x
  90.   MINT viewadr+12, y
  91.   VOID RemakeDisplay()
  92. ENDPROC
  93.  
  94. PROC setcolours( rastport)
  95.   LOCAL rastport:LONG, viewadr:LONG
  96.   viewadr := rastport+44
  97.   VOID SetRGB4(viewadr,0,0,0,0)
  98.   VOID SetRGB4(viewadr,1,5,5,15)
  99.   VOID SetRGB4(viewadr,2,15,5,5)
  100.   VOID SetRGB4(viewadr,3,15,15,5)  
  101. ENDPROC
  102.