!*! 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