!*! Updated on 29-Sep-92 at 8:08 AM by Jim Randazzo; edit time: 0:00:41
!
!  this program will be used for display purposes at a convention.
!
!

++INCLUDE DSK0:AMGSYM.BSI[7,6]  ! AMIGOS XCALL library

MAP1 BLACK,F,6,0
MAP1 WHITE,F,6,1
MAP1 BLUE,F,6,2
MAP1 MAGENTA,F,6,3
MAP1 RED,F,6,4
MAP1 YELLOW,F,6,5
MAP1 GREEN,F,6,6
MAP1 CYAN,F,6,4
MAP1 COLOR,F,6

MAP1 X,F,6
MAP1 Y,F,6
MAP1 WORDS,S,80
MAP1 FONT,F,6

MAP1 GCB,X,80000
MAP1 STATUS,F,6
MAP1 POINT'ARRAY
 MAP2 POINT'COUNT,B,2          ! total count of points
 MAP2 POINTS(64)               ! max number of points
   MAP3 X'POINT,B,2            ! X coordinate
   MAP3 Y'POINT,B,2            ! Y coordinate

ON ERROR GOTO EXIT

PRINT TAB(-1,29);TAB(-3,0); TAB(-2,1);
XCALL AMGSBR, G'OPWK, GCB, STATUS       ! OPEN THE WORKSTATION
XCALL AMGSBR, G'CLRW, GCB, STATUS


WORDS="AMIGOS"
XCALL AMGSBR, G'STXF, GCB, 13, STATUS
XCALL AMGSBR, G'SCHH, GCB, 2000, STATUS
XCALL AMGSBR, G'STXC, GCB, 1, STATUS
XCALL AMGSBR, G'TX, GCB, 12250, 10000, WORDS, STATUS
PRINT TAB(16,1);
PRINT
PRINT "           AMIGOS is organized as a collection of subroutines which may be "
PRINT "    utilized by an application program to perform graphical input, output,"
PRINT "    and transformation.   AMIGOS provides a standardized interface between"
PRINT "    the  various  types  of  graphical input and output devices (printers, "
PRINT "    plotters, CRTs, etc.) and the applications software.  "

POINT'COUNT = 4
X'POINT(1)=5000
X'POINT(2)=7500
X'POINT(3)=2500
X'POINT(4)=5000
Y'POINT(1)=22000
Y'POINT(2)=17000
Y'POINT(3)=17000
Y'POINT(4)=22000
COLOR = GREEN
XCALL AMGSBR, G'SFAI, GCB, 12, STATUS
XCALL AMGSBR, G'SFAS, GCB, 3, STATUS
!NO'LINES=1
CALL RECT

POINT'COUNT=5
WHITE=1
COLOR=9
X'POINT(1)=11000
X'POINT(2)=19000
X'POINT(3)=19000
X'POINT(4)=11000
X'POINT(5)=11000
Y'POINT(1)=23000
Y'POINT(2)=23000
Y'POINT(3)=17000
Y'POINT(4)=17000
Y'POINT(5)=23000
XCALL AMGSBR, G'SFAI, GCB, 24, STATUS
XCALL AMGSBR, G'SFAS, GCB, 3, STATUS
CALL RECT
XCALL AMGSBR, G'SFAS, GCB, 2, STATUS


COLOR=RED
X'POINT(1)=12000
X'POINT(2)=14000
X'POINT(3)=14000
X'POINT(4)=12000
X'POINT(5)=12000
Y'POINT(1)=19000
Y'POINT(2)=19000
Y'POINT(3)=17000
Y'POINT(4)=17000
Y'POINT(5)=19000
CALL RECT
COLOR=MAGENTA
X'POINT(1)=14000
X'POINT(2)=16000
X'POINT(3)=16000
X'POINT(4)=14000
X'POINT(5)=14000
Y'POINT(1)=20000
Y'POINT(2)=20000
Y'POINT(3)=17000
Y'POINT(4)=17000
Y'POINT(5)=20000
CALL RECT
COLOR=BLUE
X'POINT(1)=16000
X'POINT(2)=18000
X'POINT(3)=18000
X'POINT(4)=16000
X'POINT(5)=16000
Y'POINT(1)=22000
Y'POINT(2)=22000
Y'POINT(3)=17000
Y'POINT(4)=17000
Y'POINT(5)=22000
CALL RECT

FONT=1
X = 3000
LOOP:
XCALL AMGSBR, G'SFAC, GCB, FONT, STATUS
XCALL AMGSBR, G'SFAS, GCB, 2, STATUS
XCALL AMGSBR, G'GCIR, GCB, 24750, 17250+(X/1.1), X, 125, STATUS
X = X - 150
FONT=FONT+1 :IF FONT>15 FONT=1
IF X > 200  GOTO LOOP
XCALL AMGSBR, G'SFAC, GCB, BLACK, STATUS
XCALL AMGSBR, G'SFAS, GCB, 2, STATUS
XCALL AMGSBR, G'GCIR, GCB, 24750, 17250+(X/1.1), X, 125, STATUS

CLOSER: XCALL AMGSBR, G'CLWK, GCB, STATUS
EXIT:   XCALL SLEEP, 5 : PRINT TAB(23,1); TAB(-1,37); : END
RECT:   XCALL AMGSBR, G'SFAC, GCB, COLOR,STATUS
       XCALL AMGSBR, G'FA, GCB, POINT'ARRAY, STATUS
       IF NO'LINES=1 THEN NO'LINES=0 : RETURN
LINES:  XCALL AMGSBR, G'SPLC, GCB, WHITE, STATUS
       XCALL AMGSBR, G'PL, GCB, POINT'ARRAY, STATUS:   RETURN