****************************** UD5:[GPLOT.ULTRIX]CURSON.FOR;379 INTEGER SMG$CREATE_VIRTUAL_KEYBOARD,SMG$READ_KEYSTROKE INTEGER SMG$CREATE_PASTEBOARD,SMG$ENABLE_UNSOLICITED_INPUT INTEGER SMG$DISABLE_UNSOLICITED_INPUT INTEGER SMG$DELETE_VIRTUAL_KEYBOARD,SMG$DELETE_PASTEBOARD CALL SMG$CREATE_PASTEBOARD(PB_ID,'SYS$INPUT') CALL SMG$CREATE_VIRTUAL_KEYBOARD(KB_ID,'SYS$INPUT') CALL SMG$ENABLE_UNSOLICITED_INPUT(PB_ID,ASTCURS,KB_ID) CALL SMG$DISABLE_UNSOLICITED_INPUT(PB_ID) CALL SMG$ENABLE_UNSOLICITED_INPUT(PB_ID,ASTCURS,KB_ID) CALL SMG$DISABLE_UNSOLICITED_INPUT(PB_ID) CALL SMG$DISABLE_UNSOLICITED_INPUT(PB_ID) CALL SMG$ENABLE_UNSOLICITED_INPUT(PB_ID,ASTCURS,KB_ID) CALL SMG$DISABLE_UNSOLICITED_INPUT(PB_ID) CALL SMG$CREATE_VIRTUAL_KEYBOARD(KB_ID2) CALL SMG$READ_KEYSTROKE(KB_ID2,TERM_CODE) CALL SMG$READ_KEYSTROKE(KB_ID2,CODE2) CALL SMG$DELETE_VIRTUAL_KEYBOARD(KB_ID2) CALL SMG$ENABLE_UNSOLICITED_INPUT(PB_ID,ASTCURS,KB_ID) CALL SMG$DELETE_VIRTUAL_KEYBOARD(KB_ID) CALL SMG$DELETE_PASTEBOARD(PB_ID) INTEGER SMG$READ_KEYSTROKE CALL SMG$READ_KEYSTROKE(KB_ID,TERM_CODE) c- uses SYS$QIO with necessary WAITFR and READEF routines INTEGER*4 SYS$QIO,SYS$ASSIGN,SYS$WAITFR,SYS$READEF CHARACTER*9 INPUT/'sys$input'/,MODE*12 ICODE = SYS$ASSIGN (INPUT,CHANNEL,,) 19 ICODE = SYS$QIO (%VAL(1),%VAL(CHANNEL), 20 ICODE = SYS$WAITFR (%VAL(1)) 110 ICODE = SYS$READEF (%VAL(1),IDS) ****************************** UD5:[GPLOT.ULTRIX]DISSPLA_DEVICES.FOR;6 ! The rest of the devices send output to SYS$OUTPUT ****************************** UD5:[GPLOT.ULTRIX]GDREAD.FOR;17 fname(1:) = 'sys$login:gdinit.dat' ****************************** UD5:[GPLOT.ULTRIX]GMENU.FOR;130 INTEGER SMG$CREATE_VIRTUAL_DISPLAY, SMG$CREATE_PASTEBOARD INTEGER SMG$PASTE_VIRTUAL_DISPLAY, 1 SMG$CREATE_VIRTUAL_KEYBOARD INTEGER SMG$READ_KEYSTROKE, SMG$PUT_LINE INTEGER SMG$PUT_CHARS,SMG$ERASE_DISPLAY,SMG$ERASE_PASTEBOARD INTEGER SMG$CREATE_MENU,SMG$DELETE_MENU INTEGER SMG$SELECT_FROM_MENU, SMG$FLUSH_BUFFER ISTATUS = LIB$GETDVI(DVI$_TT_DECCRT2,,'SYS$COMMAND',IFCRT2,,) C ISTATUS = SMG$CREATE_PASTEBOARD (PASTE1) ISTATUS = SMG$CREATE_PASTEBOARD (PASTE1) ISTAT = SMG$ERASE_PASTEBOARD(PASTE1) ISTATUS = SMG$CREATE_VIRTUAL_KEYBOARD (KEYBOARD1) ISTATUS = SMG$CREATE_VIRTUAL_DISPLAY 1 (ROWS, COLUMNS, DS1, SMG$M_BORDER) ISTATUS = SMG$PASTE_VIRTUAL_DISPLAY ISTATUS = SMG$CREATE_VIRTUAL_DISPLAY CALL LIB$SYS_TRNLOG('GKS$VERSION',LVER,GKVER) ISTATUS = SMG$PUT_CHARS (IDIS, HEAD1,1,IC1,,SMG$M_BOLD) ISTATUS = SMG$PUT_CHARS (IDIS, HEAD2,2,IC2,,SMG$M_BOLD) ISTATUS = SMG$PUT_CHARS (IDIS, COMPID,3,IC3,,SMG$M_BOLD) ISTATUS = SMG$PUT_CHARS (IDIS, INSTRUCT,4,IC4,, 1 SMG$M_REVERSE) ISTATUS = SMG$PUT_CHARS (IDIS, INSTRUCT2,5,IC5,,SMG$M_REVERSE) ISTAT = SMG$CREATE_MENU (IDIS, CHOICE,, 1 SMG$M_FIXED_FORMAT,6) 2 ISTAT =SMG$SELECT_FROM_MENU(KEYBOARD1,IDIS,N,NDEF(NSEL+1), 1 SMG$_REMOVE_ITEM, 2 'SYS$HELP:GPLOT.HLB') ISTAT = SMG$ERASE_LINE(IDIS,4,1) ISTAT = SMG$ERASE_LINE(IDIS,5,1) ISTATUS = SMG$PUT_CHARS (IDIS, INSTRUCT(1:LINST),4,IC4,, 1 SMG$M_REVERSE) ISTATUS = SMG$PUT_CHARS (IDIS, INSTRUCT2(1:LI2),5,IC5,, 1 SMG$M_REVERSE) ISTATUS = SMG$PASTE_VIRTUAL_DISPLAY ISTAT = SMG$CREATE_MENU (DS2, CHOICE,, 1 SMG$M_FIXED_FORMAT,1) ISTAT = SMG$FLUSH_BUFFER(PASTE1) ISTAT = SMG$ERASE_PASTEBOARD(PASTE1) ****************************** UD5:[GPLOT.ULTRIX]PNAME.FOR;28 CALL SET_LOGICAL('GKS$CONID','SYS$OUTPUT') TRIMFILE(1:) = 'SYS$SCRATCH:GPLOT_'// ****************************** UD5:[GPLOT.ULTRIX]STR_TRIM.FOR;7 ! Subroutine STR_TRIM (similar to DEC VMS STR$TRIM) ****************************** UD5:[GPLOT.ULTRIX]STR_UPCASE.FOR;3 ! Subroutine STR_UPCASE (similar to DEC VMS STR$UPCASE) ****************************** UD5:[GPLOT.ULTRIX]VMSLIB.FOR;3 call lib$set_logical(name,value) call lib$delete_logical(name) call lib$sys_trnlog(name,lval,value) call lib$spawn(command) EXTERNAL SYS$GETJPI STATUS = SYS$GETJPI(%VAL(1),,,JPI_LIST,,,) IF (.NOT. STATUS) CALL LIB$STOP(%VAL(STATUS)) STATUS = SYS$WAITFR (%VAL(1)) IF (.NOT. STATUS) CALL LIB$STOP(%VAL(STATUS)) EXTERNAL SYS$GETJPI STATUS = SYS$GETJPI(%VAL(1),,,JPI_LIST,,,) IF (.NOT. STATUS) CALL LIB$STOP(%VAL(STATUS)) STATUS = SYS$WAITFR (%VAL(1)) IF (.NOT. STATUS) CALL LIB$STOP(%VAL(STATUS)) EXTERNAL SYS$GETJPI STATUS = SYS$GETJPI(%VAL(1),,,JPI_LIST,,,) IF (.NOT. STATUS) CALL LIB$STOP(%VAL(STATUS)) STATUS = SYS$WAITFR (%VAL(1)) IF (.NOT. STATUS) CALL LIB$STOP(%VAL(STATUS))