function long init_smg !labels !constants %include "$smgdef" %from %library "sys$library:basic$starlet.tlb" %include "smg$routines" %from %library "sys$library:basic$starlet.tlb" %include "$smgtrmptr" %from %library "sys$library:basic$starlet.tlb" %include "$ssdef" %from %library "sys$library:basic$starlet.tlb" !types !variables declare long sys_status, dp_attr declare byte recall_lines %include "que_struct.bas" !procedures !functions recall_lines = 0% dp_attr = smg$m_border sys_status = smg$create_pasteboard( pbid by ref,, & tt_rows by ref, & tt_cols by ref, ) if (sys_status and 1%) = 0% then call lib$signal( sys_status by value ) end if sys_status = smg$set_broadcast_trapping( pbid by ref,, ) if (sys_status and 1%) = 0% then call lib$signal( sys_status by value ) end if dplines = tt_rows - 2% sys_status = smg$create_virtual_display( dplines by ref, & tt_cols - 2% by ref, & dpid by ref, & dp_attr by ref,, ) if (sys_status and 1%) = 0% then call lib$signal( sys_status by value ) end if sys_status = smg$create_virtual_keyboard( kbid by ref,,,, & recall_lines by ref ) if (sys_status and 1%) = 0% then call lib$signal( sys_status by value ) end if init_smg = sys_status end function