/* * xtsdtn.lit * * Terminal Support cdata, udata, and bddata structures as available * to the user for the purpose of writing a terminal driver which is * compatible with the Terminal Support Code. This file has the same * structure as xtsdat.lit but only defines that portion of the structure * which is visible to the user. * * Modified 1/5/87 to define RECV$INFO$STRUCT for MBII drivers * * Modified 1/6/87 to define a substructure TS$BDDATA4 which is the same as * TS$BDDATA3 minus driver$user$only. This enables drivers to overlay a * different structure over TS$UDATA (TS$UDATA1 + TS$UDATA2 + TS$BDDATA1 + * TS$BDDATA2 + TS$BDDATA4 + a driver specific structure) * * Modified 1/16/89 to add 32 bit conditional support. */ DECLARE TS$CDATA LITERALLY 'STRUCTURE( ios$data$segment SEGMENT, status WORD_16, interrupt$type BYTE, interrupting$unit BYTE, dinfo$p POINTER, driver$cdata$p POINTER, $IF r_32 reserved(46) BYTE, $ELSE reserved(34) BYTE, $ENDIF udata(1) BYTE)'; /* * CDATA STRUCTURE duplicated here for use with UDATA members for * single structure overlay */ DECLARE TS$CDATA$INC LITERALLY 'ios$data$segment SEGMENT, status WORD_16, interrupt$type BYTE, interrupting$unit BYTE, dinfo$p POINTER, driver$cdata$p POINTER, $IF r_32 reserved1(46) BYTE'; $ELSE reserved1(34) BYTE'; $ENDIF DECLARE TS$UDATA LITERALLY 'STRUCTURE( TS$UDATA1, TS$UDATA2, TS$BDDATA1, TS$BDDATA2, TS$BDDATA3)'; DECLARE TS$UDATA1 LITERALLY 'uinfo$p POINTER, term$flags WORD_16, $IF r_32 in$rate WORD_32, out$rate WORD_32, $ELSE in$rate WORD_16, out$rate WORD_16, $ENDIF scroll$number WORD_16, x$y$size WORD_16, x$y$offset WORD_16', TS$UDATA2 LITERALLY 'raw$size WORD_16, raw$data$p POINTER, raw$in WORD_16, raw$out WORD_16, output$scroll$count WORD_16, unit$number BYTE, $IF r_32 reserved(1099) BYTE', $ELSE reserved(890) BYTE', $ENDIF TS$BDDATA1 LITERALLY 'buffered$device BYTE, buff$input$state WORD_16, buff$output$state WORD_16, select(2) BYTE, line$ram$p POINTER, function$id BYTE, $IF r_32 in$count WORD_16, $ELSE in$count BYTE, $ENDIF out$count WORD_16', TS$BDDATA2 LITERALLY 'units$available WORD_16, output$buffer$size WORD_16, user$buffer$p POINTER, echo$count BYTE, echo$buffer$p POINTER, received$special WORD_16, special$modes WORD_16, high$water$mark WORD_16', TS$BDDATA3 LITERALLY 'low$water$mark WORD_16, fc$on$char WORD_16, fc$off$char WORD_16, link$parameter WORD_16, spc$hi$water$mark WORD_16, special$char(4) BYTE, $IF r_32 bd$reserved(41) BYTE, driver$use$only(48) BYTE'; $ELSE bd$reserved(25) BYTE, driver$use$only(32) BYTE'; $ENDIF /* Note! TS$BDDATA4 must be same as TS$BDDATA3 minus driver$use$only */ DECLARE TS$BDDATA4 LITERALLY 'low$water$mark WORD_16, fc$on$char WORD_16, fc$off$char WORD_16, link$parameter WORD_16, spc$hi$water$mark WORD_16, special$char(4) BYTE, $IF r_32 bd$reserved(41) BYTE'; $ELSE bd$reserved(25) BYTE'; $ENDIF DECLARE $IF r_32 TS$UDATA$SIZE LITERALLY '1280', TS$CDATA$SIZE LITERALLY '40H'; $ELSE TS$UDATA$SIZE LITERALLY '1024', TS$CDATA$SIZE LITERALLY '30H', TS$UDATA$FACTOR LITERALLY '10'; $ENDIF DECLARE INPUT$ONLINE LITERALLY '0001H', INPUT$CMD$PENDING LITERALLY '0002H', INPUT$FULL LITERALLY '0008H', RAW$BUFF$FULL LITERALLY '0010H'; DECLARE OUTPUT$SEMAPHORE LITERALLY '001H', OUTPUT$STOPPED LITERALLY '002H', OUTPUT$SCROLL LITERALLY '004H', OUTPUT$CONTROL LITERALLY '008H'; DECLARE FLOW$CONTROL LITERALLY '001H', SPECIAL$CHAR$MODE LITERALLY '002H'; DECLARE NON$BUF$DEV$RAW$SIZE LITERALLY '100H'; /* Structure for passing MBII messages to term$check */ DECLARE RECV$INFO$STRUCT LITERALLY 'STRUCTURE( data$p POINTER, flags WORD_16, status WORD_16, trans$id WORD_16, data$length WORD_32, forwarding$port TOKEN, remote$socket WORD_32, control$msg(20) BYTE, reserved(4) BYTE)'; /* Structure for passing Mailbox messages to term$check */ DECLARE MBOX$RECV$INFO$STRUCT LITERALLY 'STRUCTURE( object$t TOKEN, resp$mbox$t TOKEN)';