From: Didier Morandi [Didier.Morandi@gmx.ch]
Sent: Thursday, November 22, 2001 5:25 PM
To: Info-VAX@Mvb.Saic.Com
Subject: Re: DCL minute of the day: DCL$SMG routines

$! DCL_SMG_DEMO3.COM
$!
$! This code better demonstrates the unpaste fonction.
$ set noon
$ delete="delete"
$ say = "write sys$output"
$ if f$search("smg$debug.temp") .nes. "" then delete smg$debug.temp;*
$ if f$search("smg$debug.txt") .nes. "" then delete smg$debug.txt;*
$ step = "1. init"
$ gosub DEBUG
$ step = "2. create display 1 and put lines"
$ @dcl_routines dcl$smg_create_virtual_display 12 40 window_1 Y
$ @dcl_routines dcl$smg_put_line "This is line 1/7 in window 1." 1 1 window_1
$ @dcl_routines dcl$smg_put_line "This is line 2/7 in window 1." 2 1 window_1
$ @dcl_routines dcl$smg_put_line "This is line 3/7 in window 1." 3 1 window_1
$ @dcl_routines dcl$smg_put_line "This is line 4/7 in window 1." 4 1 window_1
$ @dcl_routines dcl$smg_put_line "(previous line should be blank :-)" 6 1 window_1
$ @dcl_routines dcl$smg_put_line "This is line 7/7 in window 1." 7 1 window_1
$ @dcl_routines dcl$smg_clear_screen
$ gosub DEBUG
$ step = "3. paste display 1"
$ @dcl_routines dcl$smg_paste_virtual_display window_1 5 10
$ gosub DEBUG
$ say ""
$ say ""
$ say ""
$ inq dummy "Hit RETURN"
$ step = "4. create display 2 and put lines"
$ @dcl_routines dcl$smg_create_virtual_display 8 30 window_2 Y
$ @dcl_routines dcl$smg_put_line "This is line 1 in window 2." 1 1 window_2
$ @dcl_routines dcl$smg_put_line "This is line 2 in window 2." 2 1 window_2
$ @dcl_routines dcl$smg_put_line "This is line 3 in window 2." 3 1 window_2
$ @dcl_routines dcl$smg_put_line "This is line 4 in window 2." 4 1 window_2
$ @dcl_routines dcl$smg_put_line "This is line 5 in window 2." 5 1 window_2
$ gosub DEBUG
$ step = "5. paste display 2"
$ @dcl_routines dcl$smg_paste_virtual_display window_2 center
$ gosub DEBUG
$ say ""
$ say ""
$ say ""
$ inq dummy "Hit RETURN"
$ step = "6. create display 3 and put lines"
$ @dcl_routines dcl$smg_create_virtual_display 5 20 window_3 Y
$ @dcl_routines dcl$smg_put_line "This is line 1 in window 3." 1 1 window_3
$ @dcl_routines dcl$smg_put_line "This is line 2 in window 3." 2 1 window_3
$ @dcl_routines dcl$smg_put_line "This is line 3 in window 3." 3 1 window_3
$ gosub DEBUG
$ step = "7. paste display 3"
$ @dcl_routines dcl$smg_paste_virtual_display window_3 center
$ gosub DEBUG
$ say ""
$ say ""
$ say ""
$ inq dummy "Hit RETURN"
$ step = "8. clear display 2"
$ @dcl_routines dcl$smg_clear_screen window_2
$ @dcl_routines dcl$smg_paste_virtual_display window_3 center
$ gosub DEBUG
$ say ""
$ say ""
$ say ""
$ inq dummy "Hit RETURN"
$ step = "8a. unpaste display 2"
$ @dcl_routines dcl$smg_unpaste_virtual_display window_2
$ @dcl_routines dcl$smg_paste_virtual_display window_1 5 10
$ @dcl_routines dcl$smg_paste_virtual_display window_3 center
$ gosub DEBUG
$ say ""
$ say ""
$ say ""
$ inq dummy "Hit RETURN"
$ step = "9. unpaste display 3"
$ @dcl_routines dcl$smg_unpaste_virtual_display window_3
$ @dcl_routines dcl$smg_paste_virtual_display window_1 5 10
$ gosub DEBUG
$ say ""
$ say ""
$ say ""
$ inq dummy "Hit RETURN" 
$ @sys$login:delete_symbols smg$* N
$ append/new smg$debug.temp;* smg$debug.txt
$ exit
$!
$DEBUG:
$ define sys$output smg$debug.temp
$ define sys$error nl:
$ write sys$output "----------------------------------------------"
$ write sys$output "Step: ",step," on ",f$time()
$ sh symb/global smg$*
$ deassign sys$output
$ deassign sys$error
$ return