home *** CD-ROM | disk | FTP | other *** search
- /*************************************************************************\
- * *
- * bestand: *
- * Demo.ProANSI *
- * *
- * auteur: *
- * Marcel Offermans *
- * *
- * NB: *
- * Dit is een demonstratie, waarin een aantal ARexx commando's van *
- * ProANSI te zien zijn. Dit programma kun je gebruiken om de werking van *
- * de commando's te bekijken, of als basis voor je eigen ARexx scripts. *
- * *
- \*************************************************************************/
-
- /* een paar variabelen: */
-
- /* een lijstje met de namen van de kleuren in `normaal nederlands' */
- col.0 = "zwart"
- col.1 = "rood"
- col.2 = "groen"
- col.3 = "geel"
- col.4 = "blauw"
- col.5 = "paars"
- col.6 = "cyaan"
- col.7 = "lichtgrijs"
- col.8 = "donkergrijs"
- col.9 = "lichtrood"
- col.10 = "lichtgroen"
- col.11 = "lichtgeel"
- col.12 = "lichtblauw"
- col.13 = "lichtpaars"
- col.14 = "lichtcyaan"
- col.15 = "wit"
-
- /* ARexx even melden dat we met ProANSI willen praten. */
- address 'REXX_ProANSI'
-
- /* En dat we ook antwoord willen! */
- options results
-
- /* Toon ProANSI's versie string. Dit kan trouwens ook via de Shell met het
- * volgende commando:
- * > version ProANSI FULL
- * of:
- * > ProANSI ?
- */
- version
- progversion = result
- say 'ProANSI programmaversie: ' || progversion || '0a'x
-
- /* even laten zien dat we het begrepen hebben... */
- get_fcol
- fcol = result
- get_bcol
- bcol = result
-
- 'select_col' 7 0
-
- 'set_pos' 0 0
-
- print_string 'Als je ook even niet oplet...' || '0a'x
- 'print_string' 'De voorgrond was net ' || col.fcol || ', de achtergrond ' || col.bcol
-
- call simple_box(2,6,77,21)
-
- /* Een beetje dollen met de cursor... */
-
- 'select_col' 15 1
- call simple_box(17,9,59,11)
- 'set_pos' 18 10
- 'print_string' ' Welkom bij ProANSI, dit is een demo '
-
- 'select_col' 15 2
- call simple_box(19,12,57,14)
- 'set_pos' 20 13
- 'print_string' ' van het ingebouwde ARexx interface. '
-
- 'go_down' 5
- 'select_col' 9 0
- 'print_string' 'Marcel Offermans'
- 'set_pos' 0 0
- 'select_col' 15 0
-
- 'select_col' 3 0
- call simple_box(3,7,76,20)
-
- 'save_ansi' 'ram:testing'
-
- exit 0
-
- /* En nu een beetje geavanceerder, zo hoef je in het programma geen
- * box functie te bouwen, je doet het gewoon in ARexx, veel flexibeler!
- * Wel een beetje langzamer, maar dat moet je dan maar op de koop toe
- * nemen! Deze box functie werkt ook in de anim mode, da's het hele verschil.
- */
- simple_box:
- arg xmin, ymin, xmax, ymax
-
- 'set_pos' xmin ymin
-
- if ((xmax <= xmin) || (ymax <= ymin)) then do
- return
- end
-
- /* Maak een string met lengte xmax-xmin */
- topline = 'da'x || Copies('c4'x, xmax-xmin-1) || 'bf'x
- 'print_string' topline
-
- do y = ymin+1 to ymax-1
- 'set_pos' xmin y
- 'print_string' 'b3'x
- 'set_pos' xmax y
- 'print_string' 'b3'x
- end
-
- 'set_pos' xmin ymax
-
- /* Maak een string met lengte xmax-xmin */
- bottomline = 'c0'x || Copies('c4'x, xmax-xmin-1) || 'd9'x
- 'print_string' bottomline
-
- return
-
- /* Verlaten zou zijn:
- * 'quit'
- */
-