home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Elysian Archive
/
AmigaElysianArchive.iso
/
wp_dtp
/
proan111.lha
/
Demo.ProANSI
< prev
next >
Wrap
Text File
|
1992-05-28
|
3KB
|
128 lines
/*************************************************************************\
* *
* 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'
*/