./tmp/_lbl/prd=fip/typ=n386/rel=1.4.2/vol=01 644 0 0 0 6052464611 12720 ./tmp/fip.inst 644 0 0 0 6052464612 6332 ./tmp/init.fip 744 0 3 142045 6052420454 6460 : # init.fip - installation script for SCO Unix # and 386ix, AT&T # Copyright 1991, 1992 Computone Corporation. - All Rights Reserved. # echos the next blip character SYM="\\|/-" NUM_SYM=4 ndx=1 blip() { ndx=`expr $ndx + 1` if [ $ndx -gt $NUM_SYM ] then ndx=1 fi CHAR=`echo $SYM | cut -c$ndx` echo -n "$CHAR" echo -n "" } # Pause for user input pause() { echo -n "press to continue " read yn } # Print an error message error() { echo "\nError: $*" >&2 return 1 } # Prompt for yes or no answer - returns non-zero for no getyn() { while read yn do case $yn in [yY]*) return 0 ;; [nN]*) return 1 ;; *) echo -n "please enter either y or n " ;; esac done } # perms list needed if link kit must be installed permschk () { if [ -f /etc/perms/extmd ]; then PERM=/etc/perms/extmd else error "Cannot locate /etc/perms/extmd. Needed to verify linkkit installation." exit 1 fi } # test to see if link kit is installed linkchk() { cd / until fixperm -i -d LINK $PERM do case $? in 4) echo "\nThe Link Kit is not installed." >&2 ;; 5) echo "\nThe Link Kit is only partially installed." >&2 ;; *) echo "\nError testing for Link Kit. Exiting." >&2 exit 1 ;; esac # Not fully installed. Do so here echo -n "Do you wish to install it now (y/n)? " getyn if [ $? -eq 1 ] # if no then echo " The link kit must be installed to run this program. Exiting ..." exit 1 fi # answered yes, so install link kit echo "\nInvoking /etc/custom\n" /etc/custom -o -i LINK || { # custom exited unsuccessfully error "custom failed to install Link Kit successfully. Please try again." exit 1 } done } CC_IP_detect() { #-------------------------------------------------------------------- # The ALC remove scripts must be careful to sniff for the presence # of a Computone Cluster Controller or a Computone Intelliport driver, # in order to NOT remove their device nodes from tty management files. # Warn the user if there is a restriction. # If the user proceeds (pause returns), save the information # for later merging in "/tmp/sav.XX" files. #-------------------------------------------------------------------- A="" # non-blank if there is potential name space conflict /etc/conf/bin/idcheck -p cc if [ $? -ne 0 -a $? -ne 100 ] ; then NSCREENS=4 A="${A}j" echo "\007The Computone Cluster Controller driver is installed in this system." fi /etc/conf/bin/idcheck -p zip if [ $? -ne 0 -a $? -ne 100 ] ; then NSCREENS=3 A="${A}im" echo "\007The Computone Intelliport driver is installed in this system." fi if [ "${A}x" != "x" ] ; then # Serious problem with the ALC: we are wont to save CC and IP # device files and setup where possible, since the name spaces collide. # Also, give the installer the option of exiting now. echo "\nThe ${NAME} Drivers can be configured for 8 screens." echo "At this time, no more than ${NSCREENS} ${NAME} screens can be configured." echo "If you wish to configure more than ${NSCREENS} ${NAME} screens," echo "the driver(s) mentioned must be removed before installing the ${NAME} Drivers." pause CC_IP_RESTORE=1 # flag we must restore what we have saved. for i in ttytype ; do if [ -f /etc/${i} ] ; then egrep "tty[${A}]" /etc/${i} > /tmp/sav.${i} fi done fi } # build_screen BOARD SCREEN # generates a Driver.o for screen modules. build_screen() { sed -e "s/BOARD/$1/g" -e "s/SCREEN/$2/g" screen.c > t.c /lib/idcpp t.c t.cpp -DM_KERNEL -D_KERNEL -DBOARD=$1 -DSCREEN=$2 -I/usr/include /lib/idcomp -i t.cpp -o t.s blip /bin/idas -dl t.s -o t.o blip /bin/idld -r -o Driver.o t.o blip rm -f t.* } # build_xpar BOARD # generates a Driver.o for xpar modules. build_xpar() { sed -e "s/BOARD/$1/g" xpar.c > t.c /lib/idcpp t.c t.cpp -DM_KERNEL -D_KERNEL -DBOARD=$1 -I/usr/include /lib/idcomp -i t.cpp -o t.s blip /bin/idas -dl t.s -o t.o blip /bin/idld -r -o Driver.o t.o blip rm -f t.* } #-------------------------------------------------------------------- # Install the ethernet driver. ALC specific. #-------------------------------------------------------------------- install_ethernet() { UPDATE_NETD=0 NETD_SAVED=0 A=0 # becomes a loop count for multiple EFM processing. cd ${DRV_OBJ_D} echo " /* * (C) Copyright 1991, 1992 Computone Corporation. * All Rights Reserved. */ #include \"config.h\" int ale_devlist [] = { ALE${A}_CMAJ, /*ADDITIONAL DEVICES HERE*/ (-1) }; " > Space.c echo "clone ${EFM_DNAME}${A} c ${EFM_DNAME}${A}" > Node echo "${EFM_DNAME}${A} I icoS ${EFM_DNAME}${A} 0 0 0 1 -1" > Master echo "${EFM_DNAME}${A} Y 1 5 0 0 0 0 0 0" > System if [ $A = "0" ] ; then mv Driver.${EFM_DNAME}${K} Driver.o fi /etc/conf/bin/idinstall -a ${EFM_DNAME}${A} if [ $SYS -eq 1 ] ; then # SCO UNIX cd $CONF #make a space.c file because SCO doesn't provide a major in config.h yet SE=`./configure -j ${EFM_DNAME}${A}` echo " /* * (C) Copyright 1991, 1992 Computone Corporation. * All Rights Reserved. */ #include \"config.h\" int ale_devlist [] = { ${SE} }; " > /etc/conf/pack.d/${EFM_DNAME}${A}/space.c # overwrite ancestor installation of EFM support, if any. fgrep alc /usr/lib/mkdev/tcp > /dev/null 2>&1 if [ $? -eq 0 ] ; then cp ${DRV_OBJ_D}/tcp /usr/lib/mkdev/tcp fi fgrep ${EFM_DNAME} /usr/lib/mkdev/tcp > /dev/null 2>&1 if [ $? -ne 0 ] ; then mv /usr/lib/mkdev/tcp /usr/lib/mkdev/o_tcp cp ${DRV_OBJ_D}/tcp /usr/lib/mkdev/tcp fi echo "" /etc/mkdev tcp else # ATT UNIX #-------------------------------------------------------------------- # Update the tcp/ip config file. #-------------------------------------------------------------------- if [ -f /etc/netd.cf ] then echo "\nThere is a current TCP/IP configuration in /etc/netd.cf\n" echo "If the ALC EFM is not the first ethernet connection," echo "you should consult your TCP/IP Administrator's Guide for" echo "instructions on adding a second ethernet board." echo "\nConfigure the ALC EFM interface '${EFM_DNAME}${A}' now (y/n)? \c" getyn if [ $? -eq 0 ] # if yes then SAVE_NETD_FILE=/etc/netd.cf-preEFM if [ -f $SAVE_NETD_FILE ] then echo "\n $SAVE_NETD_FILE already exists." echo "The install script will not overwrite it." NETD_SAVED=0 else cp /etc/netd.cf $SAVE_NETD_FILE echo "/etc/netd.cf saved in $SAVE_NETD_FILE" NETD_SAVED=1 fi UPDATE_NETD=1 fi else # then normal route, no netd.cf exists. UPDATE_NETD=1 NETD_SAVED=0 fi # /etc/netd.cf if [ $UPDATE_NETD -eq 1 ] then # change /etc/netd.cf to use DNAME and hostname cp /usr/admin/menu/packagemgmt/tcpipmgmt/hbtcpmgmt/_netd.cf \ /etc/netd.cf LOCNAME=`uname -n` chmod 755 /etc/netd.cf /bin/ed -s /etc/netd.cf << EOF > /dev/null 2>&1 g/DEV0/s//${EFM_DNAME}${A}/g g/DEV/s//${EFM_DNAME}${A}/g g/local_site_name/s//$LOCNAME/ w q EOF fi #copy in script for sysadm to use if it wants to choose our card later. if [ -f ${DRV_OBJ_D}/efm.hbtcp ] then if [ -d /usr/admin/menu/packagemgmt/tcpipmgmt/hbtcpmgmt ] then cp ${DRV_OBJ_D}/efm.hbtcp /usr/admin/menu/packagemgmt/tcpipmgmt/hbtcpmgmt/alc fi fi fi # endif ATT UNIX } # end install_ethernet add_8bit_entries() { if [ -f ${DRV_OBJ_D}/8bit_gettys ] then grep cton_ /etc/gettydefs >/dev/null 2>&1 if [ $? -eq 1 ] #if file exists and doesn't have our entries then mv /etc/gettydefs /etc/o_gettydefs >/dev/null 2>&1 cat /etc/o_gettydefs ${DRV_OBJ_D}/8bit_gettys > /etc/gettydefs 2>/dev/null fi fi } ttys_update() { if [ $SYS -eq 1 ] ; then # SCO UNIX if [ -x /tcb/bin/ttys_update ] then clear echo "\n\n\n\n\n\tUpdating security database." echo -n "\tPlease wait ..." # # SCO UNIX 3.2.4: the wonders of system security. # the file below has an entry for /etc/default/*, which forces # checks in "fixmog" to barf on our directory. Fortunately, we # can circumvent this by adding a line for our directory ahead # of the offending line in the file. Here is the hack attack: # BBB=/etc/auth/system/files if [ -f ${BBB} ] # begin hack attack then grep ${LCNAME}.d ${BBB} > /dev/null 2>&1 if [ $? -eq 1 ] then /bin/ed - ${BBB} << EOF > /dev/null 2>&1 /\/etc\/default/ a /etc/default/${LCNAME}.d:f_owner=root:f_group=root:f_mode#0755:f_type=d:chkent: . w q EOF fi fi # end hack attack if /tcb/bin/ttys_update > /dev/null 2>&1 then echo # "\n\n\n\n\tSystem files successfully updated." else echo "\n\n\n\n\tError: /tcb/bin/ttys_update failed.\n\tYou must update the security database through sysadm" sleep 5 echo "\n\n\n\n\tError: /tcb/bin/ttys_update failed.\n\tYou must update the security database through sysadm" >> $ERROR_LOG fi fi fi #endif SCO UNIX } rebuild_kernel() { clear echo -n "\n\n\n\n\tDo you wish to relink the kernel now (y/n)? " getyn if [ $? -eq 0 ] # if yes then cd $CONF $IDBIN/idbuild if [ $? -ne 0 ] then echo "Error linking kernel." echo "This installation will continue, but will not be effective" echo "until the kernel is successfully built and rebooted." pause # exit 1 return 1 else if [ $SYS -eq 2 ] ; then # ATT UNIX # shouldn't need to do this but 386ix (ATT UNIX) will generate false # gettys if this is an "install downgrade" because it works # from an old inittab until fully multiuser if there were # a lot of ports enabled. ${IDBIN}/idmkinit if [ $? -eq 0 ] then mv ${CONF}/inittab /etc fi fi # endif ATT UNIX fi # endif idbuild test fi return 0 } #end rebuild_kernel scan_sdev_io() { #the purpose of this is to scan the sdevice file in unix to see if an ISA IP2 board is installed in order to trim the io list. #set BUS_TYPE="EISA", BUS_TYPE="ISA", or BUS_TYPE="MC" before calling to #indicate the bus_type you are searching for ENTRY_POINT_LIST="fi10 fi20 fi30 fi40" #first find existing boards for EP_NAME in $ENTRY_POINT_LIST do #NOTE the "{}" must start on the same line as the awk command. -TS awk '( ($1 == "'$EP_NAME'") && ($2 == "Y") && ($7 != 0) && ($8 != 0) ) { if ( (length($7) > 3) && (length($8) > 3) ) { if((substr($7, 2, 3) == "'$BEG_EISA_SUFFIX'") && (substr($8, 2, 3) == "'$END_EISA_SUFFIX'")) { #EISA slot address if("'$BUS_TYPE'" == "EISA") { print $7 " " $8 } } else { #must be a PS/2 address if("'$BUS_TYPE'" == "MC") { print $7 " " $8 } } } else { if(substr($7, 1, 1) <= 3) { #must be a ISA or PS/2 address if( ("'$BUS_TYPE'" == "MC") || ("'$BUS_TYPE'" == "ISA") ) { print $7 " " $8 } } else { #must be a PS/2 address if("'$BUS_TYPE'" == "MC") { print $7 " " $8 } } } }' $CONF/sdevice done } strip_io_choices() { while true do if read LOWER UPPER then blip >/dev/tty $IDBIN/idcheck -a -l $LOWER -u $UPPER 2>/dev/null if [ $? -eq 0 ] ; then # address is free echo "$LOWER $UPPER" #extra spaces will make sure all the fields will be the #same size when they are scanned in fi else break fi done } #returns 0 if we are sure we are not a MC bus type #returns 1 if we are a MC or don't know for sure is_bus_mc() { ( TMP_BUS_TYPE=`uname -X | grep -i "bustype"` if [ $? -eq 0 ] then echo $TMP_BUS_TYPE | grep "MC" if [ $? -eq 0 ] then TMP_NEED_MC=1 else TMP_NEED_MC=0 fi else #uname -X failed TMP_NEED_MC=1 fi return $TMP_NEED_MC ) >/dev/null 2>&1 } #returns 1 if we are sure we are a SCO 3.2.2 is_sco_322() { ( SCO_RELEASE_NUM=`uname -X | grep -i "release ="` if [ $? -eq 0 ] then echo $SCO_RELEASE_NUM | grep "3.2v2" if [ $? -eq 0 ] then IS_SCO_322=1 else IS_SCO_322=0 fi else #uname -X failed IS_SCO_322=0 fi return $IS_SCO_322 ) >/dev/null 2>&1 } ######################## # main ######################## if [ -f /xenix -o -f /o_xenix -o -f /xenix.old ] then # setup for XENIX installation B=/tmp/sco if [ -f /tmp/fip.inst ] ; then LCNAME=fip fi if [ -f /tmp/alc.inst ] ; then LCNAME=alc fi mv $B/${LCNAME}_rmv.x /usr/lib/custom/${LCNAME}.rmv mv $B/${LCNAME}_mkdev.x /usr/lib/mkdev/${LCNAME} exec $B/${LCNAME}_init.x fi TTYTYPE="/etc/ttytype" TMP_TTYTYPE="/tmp/tmp_ttytype" WHEREWESTARTED=`pwd` PATH=/bin:/usr/bin:/etc export PATH EFM_DNAME="" # ethernet feature module driver name # must be three characters or name[0-NBOARDS] fails !! #-------------------------------------------------------------------- # There had better be an fgrep and egrep and cut # Check in three reasonable places (usually in /bin) #-------------------------------------------------------------------- if [ \( ! -f /bin/cut \) -a \( ! -f /etc/cut \) -a \( ! -f /usr/bin/cut \) ] then echo "Unable to find cut: Please supply it before installing drivers." pause exit 1 fi if [ \( ! -f /bin/egrep \) -a \( ! -f /etc/egrep \) -a \( ! -f /usr/bin/egrep \) ] then echo "Unable to find egrep: Please supply it before installing drivers." pause exit 1 fi if [ \( ! -f /bin/fgrep \) -a \( ! -f /etc/fgrep \) -a \( ! -f /usr/bin/fgrep \) ] then echo "Unable to find fgrep: Please supply it before installing drivers." pause exit 1 fi ######-------------------------------------------------------------------- ###### if no /o_unix, make it ######-------------------------------------------------------------------- #####if [ ! -f /o_unix ] #####then ##### echo "Making the backup kernel /o_unix\n\n" ##### cp /unix /o_unix #####fi ######################## # determine which 3.2 UNIX O.S. environment (SCO or ATT derivative). # set $SYS: 1=SCO UNIX , 2=AT&T UNIX ######################## if [ -f /etc/perms/rts ] then # SCO UNIX presumed. SYS=1 INSTALLDIR="/tmp" else # must be ATT UNIX .. SYS=2 INSTALLDIR="`pwd`/tmp" ## echo ${INSTALLDIR}: ; ls -C ${INSTALLDIR} ; read ans ## DEBUGGING fi if [ $SYS -eq 1 ] then # SCO UNIX echo "\n\tYou may remove the disk now." # Check for the presence of the link kit. Install if it not present. permschk && linkchk fi LCNAME="None" ##### #These are the vars if we are installing an IntelliPort II # if [ -f /tmp/fip.inst ] then VECLIST="10 11 12 15 3 4 5 7" BEG_EISA_SUFFIX="C80" #this includes the EISA ID info, not just the comm area END_EISA_SUFFIX="C8F" ### #these are the mdevice field 2 and 3 entries for this board. # MDEV_F2_BASE="Iocrwip" #init, open, close, read, write, ioctl, poll MDEV_F2_OTHR="Iocrwi" #init, open, close, read, write, ioctl MDEV_F2_XLP="Iocrwi" #init, open, close, read, write, ioctl MDEV_F3_BASE="iHct" #installable, Hardware, character, tty MDEV_F3_OTHR="ict" #installable, character, tty MDEV_F3_XLP="ict" #installable, character, tty SL="1 2 3 4 5 6 7 8" #needed if we need to use SCREEN_LIST in a calc BOX_PER_BOARD="4" PORTS_PER_BOX="16" #assumptions are made that the below are single digit elements BOARD_LIST="1 2 3 4" SCREEN_LIST="s T U V W X Y Z" PORT_LIST="0 1 2 3 4 5 6 7 8 9 a b c d e f" BOX_LIST="0 1 2 3 4 5 6 7 8 9 a b c d e f" #assumptions are made that the above are single digit elements NMSCREENS_LIST="" #number of multiscreens including the default NBOARDS="" #number of boards to install NPORTS_PER_BOX="" #number of ports per cluster box IO="" #starting I/O location V1="" #IRQ LCNAME="fip" ERROR_LOG="/tmp/${LCNAME}_error_log" rm -f $ERROR_LOG MODEM_SCR="S" BASE_SCR="s" IT_CHR="c" # normal prefix to id field of inittab entry IM_CHR="C" # modem prefix to id field of inittab entry XLP_PRFX="xlp" TTY_PRFX="tty" TTY_PK_D="fi" XLP_PK_D="fiv" PKGINST="fi10" NAME="IntelliPort-II" NON_PCI_CARD_INSTALLED=0 PCI_CARD_INSTALLED=0 fi # ##### ##### #These are the vars if we are installing ALC boards # if [ -f /tmp/alc.inst ] then VECLIST="10 11 12 14 15 9 7 6 5 4 3" ### #these are the mdevice field 2 and 3 entries for this board. # MDEV_F2_BASE="Iocrwih" #init, open, close, read, write, ioctl, halt MDEV_F2_OTHR="Iocrwi" #init, open, close, read, write, ioctl MDEV_F2_XLP="Iocrwi" #init, open, close, read, write, ioctl MDEV_F3_BASE="iHct" #installable, Hardware, character, tty MDEV_F3_OTHR="ict" #installable, character, tty MDEV_F3_XLP="ict" #installable, character, tty SL="1 2 3 4 5 6 7 8" #needed if we need to use SCREEN_LIST in a calc BOX_PER_BOARD="3" PORTS_PER_BOX="16" NPORTS_PER_BOX="16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 " #number of ports per cluster box #assumptions are made that the below are single digit elements BOARD_LIST="1 2 3 4 5 6 7 8 9" SCREEN_LIST="f g h i j k l m" PORT_LIST="0 1 2 3 4 5 6 7 8 9 a b c d e f" BOX_LIST="0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q" #assumptions are made that the above are single digit elements NMSCREENS_LIST="" #number of multiscreens including the default NBOARDS="" #number of boards to install IO="" #starting I/O location (ie, EISA slot address list) V1="" #IRQ EFM_LIST="" #EFM attached list LCNAME="alc" EFM_DNAME="ale" ERROR_LOG="/tmp/${LCNAME}.err" rm -f $ERROR_LOG MODEM_SCR="F" BASE_SCR="f" IT_CHR="f" # normal prefix to id field of inittab entry IM_CHR="F" # modem prefix to id field of inittab entry XLP_PRFX="xlp" TTY_PRFX="tty" TTY_PK_D="ct" XLP_PK_D="alv" PKGINST="ct10" NAME="ALC" #----------------------------------------------------------------- # Remove previous driver modules greater than current selections #----------------------------------------------------------------- cd /etc/conf/init.d # smash (ahem, merge) older headers together. if [ -f ct10 ] ; then cat ct[1-9]* >> alc rm ct[1-9]* fi # remove old files from any previous installation attempt. rm -f << EOF > /dev/null 2>&1 /etc/alcon /etc/alcoff /etc/perms/alc.perms /usr/lib/installed/Files/efm.name /usr/lib/installed/Remove/efm.name /usr/options/efm.name /usr/admin/menu/packagemgmt/tcpipmgmt/hbtcpmgmt/efm EOF if [ $SYS -eq 1 ] then # SCO UNIX # get rid of the old perms file, if it exists. rm -f /etc/perms/alc.perms if [ ! -f /etc/perms/tcprt ] then echo " TCP/IP runtime not installed. The ALC ethernet module requires the TCP/IP runtime to be installed. If you wish to install support for the ALC Ethernet Feature Module, the TCP/IP runtime package must first be installed. " pause fi #-------------------------------------------------------------------- # Remove all references to 'alcs' in TCP/IP files #-------------------------------------------------------------------- for A in /etc/strcf /etc/tcp; do if [ -f $A ] ; then /bin/ed -s $A << EOF > /dev/null 2>&1 g/alcs/d g/${EFM_DNAME}/d w q EOF fi done else # ATT UNIX grep "TCP/IP" /usr/options/* > /dev/null 2>&1 if [ $? != 0 ] then echo "\n**WARNING** TCP/IP runtime not installed. The ALC ethernet module requires the TCP/IP runtime to be installed. If you wish to install support for the ALC Ethernet Feature Module, the TCP/IP runtime package must first be installed. " pause fi # copy new installation files, but don't overwrite existing ones. # CHECK THIS SECTION !!!!!!!!!!!!!!!!!!!!!! cd ${INSTALLDIR}/.. ## echo `pwd` ; exit 0 ## DEBUGGING find etc usr -print | cpio -pdm / > /dev/null 2>&1 rm -rf etc usr fi # endif ATT UNIX fi # endif /tmp/alc.inst exists # ##### if [ $SYS -eq 1 ] then # SCO UNIX GETTY_TOKEN="m" MODEM_GETTY_TOKEN="3" OS='SCO Unix V' if [ "${LCNAME}x" = "alcx" ] ; then K="v" else K="s" # FIP assumed fi CPU="386" DRV_OBJ_D="/tmp/sco" IDBIN="/etc/conf/bin" CONF="/etc/conf/cf.d" INIT="/etc/conf/init.d" NODE="/etc/conf/node.d" else # ATT UNIX GETTY_TOKEN="9600" MODEM_GETTY_TOKEN="2400H" OS="Unix System V" if [ "${LCNAME}x" = "alcx" ] ; then K="a" else K="att" # FIP assumed fi CPU="386" DRV_OBJ_D="/tmp/att" IDBIN="/etc/conf/bin" CONF="/etc/conf/cf.d" INIT="/etc/conf/init.d" NODE="/etc/conf/node.d" fi #-------------------------------------------------------------------- # Move utilities into place #-------------------------------------------------------------------- if [ $SYS -eq 2 ] then # ATT UNIX # Needed for ISC 386ix v3.0 ONLY # the command "mkdev fip" will call our menu stuff if [ -f /etc/mkdev ] then grep fip /etc/mkdev >/dev/null 2>&1 if [ $? -eq 1 ] # file exists and fip is not in it then # then it must not be ours echo "moving /etc/mkdev to /etc/mkdev.orig" mv /etc/mkdev /etc/mkdev.orig fi fi cp ${DRV_OBJ_D}/mkdev /etc && chmod 700 /etc/mkdev #----- # move tty managment script into the proper sysadm menu dir #----- rm -f /usr/admin/menu/ttymgmt/fip #remove old style if [ -d /usr/admin/menu/machinemgmt/ttys ] then cp ${DRV_OBJ_D}/ip2_ttymgmt /usr/admin/menu/machinemgmt/ttys/ip2_ttymgmt chmod 700 /usr/admin/menu/machinemgmt/ttys/ip2_ttymgmt else if [ -d /usr/admin/menu/ttymgmt ] then cp ${DRV_OBJ_D}/ip2_ttymgmt /usr/admin/menu/ttymgmt/ip2_ttymgmt chmod 700 /usr/admin/menu/ttymgmt/ip2_ttymgmt fi fi fi # end ATT UNIX #-------------------------------------------------------------------- # Move intelli??? files into place #-------------------------------------------------------------------- DEF_D="/etc/default/${LCNAME}.d" CURSES_D="${DEF_D}/curses" if [ -f ${DEF_D}/intellicap ] then mv ${DEF_D}/intellicap ${DEF_D}/o_intellicap fi cp ${DRV_OBJ_D}/intellicap ${DEF_D}/intellicap if [ ! -f ${DEF_D}/icap.site ] then cp ${DRV_OBJ_D}/icap.site ${DEF_D}/icap.site fi if [ -f ${DEF_D}/intellitype ] then cp ${DEF_D}/intellitype ${DEF_D}/o_intellitype else : > ${DEF_D}/intellitype fi #-------------------------------------------------------------------- # save original system files for later sorting #-------------------------------------------------------------------- #backup orig ttytype cp ${TTYTYPE} ${TTYTYPE}.old if [ -f ${INIT}/${LCNAME} ] then #copy the init.d/xxx file. it will be used later by sort and egrep cp ${INIT}/${LCNAME} /tmp/init.d.${LCNAME} else #sort and the egrep used in the install need some file here : > /tmp/init.d.${LCNAME} fi #-------------------------------------------------------------------- # Prompt for number of boards, screens, IRQ #-------------------------------------------------------------------- ##### # check to see if we are allready installed. If so, default to the # same IRQ as last time. ##### existing_dev="" list="" cd $CONF #$IDBIN/idcheck -p $PKGINST >/dev/null 2>&1 #RVAL=$? #R_TMP=`expr $RVAL / 8 \* 8` #R_TMP=`expr $RVAL - $R_TMP` # #if [ \( $R_TMP -ge 4 \) -a \( $RVAL -ne 100 \) ] #then # existing_dev=`$IDBIN/idinstall -s -g $PKGINST | cut -f6` #this can give result in octal # I'm not checking our file in sdevice.d because the sysadm may have # removed the driver but not re-link the kernel before installing # the new driver. In this is the case we can still see what IRQ they # used for the last install. existing_dev=`awk '($1 == "'$PKGINST'") && ($2 == "Y") { printf("%d\n", $6) }' sdevice` #fi VEC_0_INST=0 if [ "${existing_dev}x" != "x" ] then list="${existing_dev} " if [ ${existing_dev} -eq 0 ] then VEC_0_INST=1 # installation with IRQ=0 implies this is a PCI ONLY installation fi fi #build list of available IRQ's #note: the 0%d is used to prevent conflicts in greps between 5 and 15 ... USED_VECS=`awk '($1 != "*") && ($2 == "Y") { printf("0%d\n", $6) }' sdevice | sort -n -u | tr '\012' ' ' ` for irqvector in $VECLIST do echo $USED_VECS | grep "0$irqvector" >/dev/null 2>&1 if [ \( $? -eq 1 \) ] then list="${list}${irqvector} " fi done if [ ${VEC_0_INST} -eq 0 ] then list="${list}0 " #added IRQ 0 for PCI cards fi # Finding these and putting them first in the list will have the # effect of assigning proper delaults on a driver upgrade. This # will work ONLY for an ALL ISA install. Also, the user still has to # specify the proper number of boards (the install will currently # allways default to 1 board). #-------------------------------------------------------------- # build valid I/O list for ISAio_list[] and put in ISAio.avail #-------------------------------------------------------------- BUS_TYPE="ISA" scan_sdev_io >$CURSES_D/ISAio.avail BUS_TYPE="MC" scan_sdev_io >$CURSES_D/MCio.avail #-------------------------------------------------------------- #now strip choices if I/O range conflicts with other boards #-------------------------------------------------------------- echo -n "\n\tScanning sdevice for valid I/O choices\n\tThis may take a while. Please wait " is_bus_mc NEED_MC=$? strip_io_choices <$CURSES_D/ISAio.mas >>$CURSES_D/ISAio.avail if [ $NEED_MC -ne 0 ] then strip_io_choices <$CURSES_D/MCio.mas >>$CURSES_D/MCio.avail else # we think we are on an ISA/EISA/AT bus, but we should have all # the choices around just in case our test for MC is wrong cat $CURSES_D/MCio.mas >>$CURSES_D/MCio.avail fi #---------------------- # move in curses progs #---------------------- : > ${CURSES_D}/maxscr.txt #clear out the port:max_screens file if [ -n "$list" ] then NSCREENS=8 # theoretical maximum CC_IP_RESTORE=0 # usually, there is no conflict for A in ttytype ; do rm -f /tmp/sav.${A} # clear in preparation for fun below. done if [ "${LCNAME}x" = "alcx" ] ; then CC_IP_detect fi #generate valid vector list for menu0 cd ${DEF_D}/curses echo "${list}" >menu.txt #run the curses based install DO_MENU=1 while [ $DO_MENU -eq 1 ] do #init these in case we go through the menus more than once NMSCREENS_LIST="" #number of multiscreens including the default NBOARDS="" #number of boards to install NPORTS_PER_BOX="" #number of ports per cluster box IO="" #starting I/O location V1="" #IRQ PCI_CARD_INSTALLED=0 NON_PCI_CARD_INSTALLED=0 # save a copy of the existing setup in case we abort from menu0 if [ -s menu0.out ] then cp menu0.out /tmp fi ./menu0 -${LCNAME} RET=$? clear if [ $RET -eq 1 ] then echo "\n\n\n\tInstall files are missing or TERM type not supported" #0.11# echo "\tPlease compile terminfo entry /usr/lib/terminfo/*/$TERM\n\n\n\n" exit 1 fi if [ $RET -ne 0 ] #if they used F4 to abort out of forms then # restore the previous setup if we aborted from menu0 if [ -s /tmp/menu0.out ] then cp /tmp/menu0.out . fi echo "Installation forms aborted." echo "Driver installation will abort if the forms are not filled out" echo -n "Do you wish to try again (y/n)? " getyn if [ $? -eq 1 ] # if no then echo "\n\n\n\nInstallation aborting!\n\n" pause exit 2 else #menu0 was NOT successfull. try again. DO_MENU=1 continue #while DO_MENU fi else #menu0 was successfull DO_MENU=0 fi #set the variables generated by the install. chmod 744 menu0.out . ./menu0.out ### #cleanup any leading or trailing spaces in vars produced by menu0.out # NBOARDS=`echo $NBOARDS` NPORTS_PER_BOX=`echo $NPORTS_PER_BOX` IO=`echo $IO` V1=`echo $V1` NMSCREENS_LIST=`echo $NMSCREENS_LIST` # ### ### #split up IO list into beginning and ending io ranges # ORIG_VARS=$* #save orig prog args set `echo ${IO}` #set new $1, $2, $3, ... to be IO ranges NUM_IO_LOCS=`expr $# / 2` #2 IO locations for each board (beg, end) #should be equal to NBOARDS LOOP_CNT=0 BEG_IO_LIST="" END_IO_LIST="" BEG_IO_SDEV_LIST="" END_IO_SDEV_LIST="" while [ $LOOP_CNT -lt $NUM_IO_LOCS ] #for each IO pair do LOOP_CNT=`expr $LOOP_CNT + 1` if [ "${1}x" = "Slotx" ] then NON_PCI_CARD_INSTALLED=1 SLOT=$2 #EISA fields range from "Slot 1" to "Slot F" BEG_IO_LIST=`echo $BEG_IO_LIST $SLOT` END_IO_LIST=`echo $END_IO_LIST $SLOT` BEG_IO_SDEV_LIST=`echo $BEG_IO_SDEV_LIST "${SLOT}${BEG_EISA_SUFFIX}"` END_IO_SDEV_LIST=`echo $END_IO_SDEV_LIST "${SLOT}${END_EISA_SUFFIX}"` elif [ "${1}x" = "PCI_Cardx" ] then PCI_CARD_INSTALLED=1 BEG_IO_LIST=`echo $BEG_IO_LIST 0` END_IO_LIST=`echo $END_IO_LIST 0` BEG_IO_SDEV_LIST=`echo $BEG_IO_SDEV_LIST 0` END_IO_SDEV_LIST=`echo $END_IO_SDEV_LIST 0` else NON_PCI_CARD_INSTALLED=1 BEG_IO_LIST=`echo $BEG_IO_LIST $1` END_IO_LIST=`echo $END_IO_LIST $2` BEG_IO_SDEV_LIST=`echo $BEG_IO_SDEV_LIST $1` END_IO_SDEV_LIST=`echo $END_IO_SDEV_LIST $2` fi shift; shift #look at next two IO locations done #while NUM_IO_LOCS if [ "${ORIG_VARS}x" != "x" ] then #restore orig program args set `echo $ORIG_VARS` fi #if we install a PCI card ONLY, then we want to make sure the IRQ=0 if [ \( $PCI_CARD_INSTALLED -eq 1 \) -a \( $NON_PCI_CARD_INSTALLED -eq 0 \) ] then V1="0" fi #if a non-PCI card is installed make sure we have a non-zero IRQ if [ \( $NON_PCI_CARD_INSTALLED -eq 1 \) -a \( $V1 -eq 0 \) ] then echo "The choice of IRQ 0 is not supported for non-PCI boards." echo -n "Do you wish to try again (y/n)? " getyn if [ $? -eq 1 ] # if no then echo "\n\n\n\nInstallation aborting!\n\n" pause exit 2 else #menu0 was NOT successfull DO_MENU=1 fi fi done #while DO_MENU # ### if [ "${LCNAME}x" = "alcx" ] ; then EFM_LIST=`echo $EFM_LIST` SLOT_LIST=`echo ${IO} | sed 's/ /,/g'` EFM2_LIST=`echo ${EFM_LIST} | sed 's/ /,/g'` echo $EFM2_LIST | grep 1 > /dev/null 2>&1 if [ $? -eq 0 ] then ETHERNET=1 # do ethernet installation else ETHERNET=0 fi # add a zero screen count for boards not installed. for i in $BOARD_LIST ; do if [ $i -gt $NBOARDS ] ; then NMSCREENS_LIST="${NMSCREENS_LIST} 0" fi done else NMSCREENS_LIST="${NMSCREENS_LIST} 0 0 0 0" fi # ### if [ "${BEG_IO_LIST}x" = "x" -o "${V1}x" = "x" ] then echo "Installation forms aborted. Restart and use F3 to save forms" echo "Installation has failed." echo "" exit 2 fi else clear echo " Failure: no interrupt vectors are available. The ${NAME} board(s) can use only these interrupt vectors: ${VECLIST} An installed driver which uses one of these interrupt vectors must be removed before the ${NAME} driver can be installed. Installation has failed. " pause clear echo " Installed drivers using IRQ's are as follows driver IRQ used ------ --------" awk '($2 == "Y") && ($6 != "0") { print " " $1 " " $6 }' $CONF/sdevice echo " The ${NAME} board(s) can use only these interrupt vectors: ${VECLIST}" if [ $SYS -eq 1 ] # SCO unix then echo " Recomended choices for removal would be a serial (sio) or parallel (pa) IRQ unless other installed drivers are known to be unnescessary. " else # ISC or AT&T echo " Recomended choices for removal would be a serial (asy) or parallel (pa) IRQ unless other installed drivers are known to be unnescessary. " fi pause exit 2 fi ##### # at this point menu0.out (a script generated by menu0) will have # created and initialized the following variables # # V1 (the IRQ selected) # NBOARDS (the number of boards to install) # NSCREENS_LIST (the number of IntelliView screens per board) # NPORTS_PER_BOX (the number of ports per box for all boards installed) # ##### #----------------------------------------------------------------- # Remove previous driver modules greater than current selections #----------------------------------------------------------------- # remove nodes for all boards in the intellifeatures dir rm -f $DEF_D/${LCNAME}Node* rm -f $DEF_D/${TTY_PK_D}??.Node #remove old style inittab entries. rm -f ${INIT}/${TTY_PK_D}[1-4][0-7] # remove boards which were installed before but not now. # (e.g. went from 3 to 2 boards) clear cd ${CONF} # If the base driver is installed, cull previous installation. # Reasoning: it would exist for a good installation. # a bad installation would require complete removal anyway, # so it does no harm to pre-qualify this time-consuming operation. $IDBIN/idcheck -p ${TTY_PK_D}10 >/dev/null 2>&1 if [ \( $? -ne 0 \) -a \( $? -ne 100 \) ] then # cull previous installation echo "\n\n\n\n\n\tRemoving unused ${NAME} drivers/devices if present." echo -n "\tPlease wait " if [ "${LCNAME}x" = "alcx" ] ; then $IDBIN/idinstall -d alcs > /dev/null 2>&1 ## ancient for i in 0 1 2 3 4 5 6 7 8 ; do $IDBIN/idinstall -d ${EFM_DNAME}${i} > /dev/null 2>&1 blip done fi SCR_CNT2=1 for BRD in $BOARD_LIST do # echo -n "." SCR_CNT=0 NSCREENS=`echo $NMSCREENS_LIST | cut -d' ' -f$SCR_CNT2` D1="" for I in ${PORT_LIST}; do D1="${D1}${I}" done D2STR=`expr \( ${BRD} - 1 \) \* ${BOX_PER_BOARD} + 1` D2END=`expr ${BRD} \* ${BOX_PER_BOARD}` D2_LIST=`echo ${BOX_LIST} | cut -d ' ' -f${D2STR}-${D2END}` D2="" for I in ${D2_LIST}; do D2="${D2}${I}" done # at this point # D1 is a string which contains the range of ports for a box and # D2 is a string which contains the range of boxes for this board for SCR in $SCREEN_LIST; do blip if [ \( $SCR_CNT -ge $NSCREENS \) -o \( $BRD -gt $NBOARDS \) ] then $IDBIN/idcheck -p ${TTY_PK_D}${BRD}${SCR_CNT} >/dev/null 2>&1 if [ \( $? -ne 0 \) -a \( $? -ne 100 \) ] then #shouldn't have to do this but..... #it seems as though idmknod will not remove the nodes in SCO rm -f /dev/${TTY_PRFX}${SCR}[${D2}][${D1}] $IDBIN/idinstall -d ${TTY_PK_D}${BRD}${SCR_CNT} blip if [ ${SCR} = ${BASE_SCR} ] then #shouldn't have to do this but..... #it seems as though idmknod will not remove the nodes in SCO rm -f /dev/${TTY_PRFX}${MODEM_SCR}[${D2}][${D1}] #intellitype allways has the BASE_SCR prefix for the port #so no need to grep -v for the modem port egrep -v ${TTY_PRFX}${SCR}[${D2}][${D1}] ${DEF_D}/intellitype >${DEF_D}/intellitype.1 mv ${DEF_D}/intellitype.1 ${DEF_D}/intellitype #but /etc/ttytype MAY have the MODEM entry for the port #so we need to strip it # remove unused MODEM entries out of $TTYTYPE egrep -v ${TTY_PRFX}${MODEM_SCR}[${D2}][${D1}] ${TTYTYPE} >${TTYTYPE}.1 mv ${TTYTYPE}.1 ${TTYTYPE} fi # remove unused entries out of $TTYTYPE egrep -v ${TTY_PRFX}${SCR}[${D2}][${D1}] ${TTYTYPE} >${TTYTYPE}.1 mv ${TTYTYPE}.1 ${TTYTYPE} # also remove entries out of base /tmp/init.d.$LCNAME # we don't have to do MODEM_SCR here because it's not used egrep -v "${IT_CHR}${SCR}[${D2}][${D1}]:" /tmp/init.d.${LCNAME} >/tmp/init.d.${LCNAME}.1 mv /tmp/init.d.${LCNAME}.1 /tmp/init.d.${LCNAME} fi fi SCR_CNT=`expr $SCR_CNT + 1` done SCR_CNT2=`expr $SCR_CNT2 + 1` blip if [ \( $BRD -gt $NBOARDS \) ] then $IDBIN/idcheck -p ${XLP_PK_D}${BRD} >/dev/null 2>&1 if [ \( $? -ne 0 \) -a \( $? -ne 100 \) ] then #shouldn't have to do this but..... #it seems as though idmknod will not remove the nodes in SCO rm -f /dev/${XLP_PRFX}${BASE_SCR}[${D2}][${D1}] $IDBIN/idinstall -d ${XLP_PK_D}${BRD} fi fi done echo "" if [ $CC_IP_RESTORE -ne 0 ] ; then # more ALC fun ! for A in ttytype ; do cat /tmp/sav.${A} >> /etc/${A} rm -f /tmp/sav.${A} done fi fi # endif cull previous installation ###### ##-------------------------------------------------------------------- ## Check for the number of boards to install and put the object ## modules in the appropriate directories. Each one is a stub that ## becomes the Driver.o module. ##-------------------------------------------------------------------- ##### #--------------------------------------------------------------- # This loop will create the Node and Init files in the proper pack.d dir. # It will also build a tmp_ttytype file and merge/sort with /etc/ttytype. #--------------------------------------------------------------- : > ${TMP_TTYTYPE} clear echo -n "\n\n\n\n\tBuilding installation files. Please wait " #--------------------------------------------------------------- # link main driver code from the proper components #--------------------------------------------------------------- cd ${DRV_OBJ_D} # build the main Driver.o file build_screen 1 0 ; mv Driver.o D1 # patch in IO and V1. IO1=`echo $BEG_IO_LIST | sed -e "s/^/0x/" -e "s/ /, 0x/g" ` sed -e "s/IOVEC/${IO1}/g" space.c > t.c echo "#define NB ${NBOARDS}\n#define IVECTOR ${V1}" > t0.c cat t0.c t.c > Space.c #leave it here and the install of board1 screen 0 #will find it and move it in place. If we move it #in now we may need to create a dir and 3.2.4 idinstall #wouldn't like that. is_sco_322 if [ $? -eq 1 ] then echo " int add_intr_handler() { return (-1); } int sc_isscancode() { return (0); } " >> Space.c fi rm -f t.c t0.c /bin/idld -r -o Driver.o D1 ${LCNAME}1_${K}${CPU}.o rm -f D1 mv Driver.o ${TTY_PK_D}10_${K}${CPU}.o blip #+++++++++++++++++++++++++++++++ # Create the Node and Init files in their proper pack.d dir #+++++++++++++++++++++++++++++++ BRD_CNT=0 ##### #for every board installed (we assume boardlist is a numeric starting with 1) #REMEMBER: did not use "r" in third field of Master so devices will be cleared # if not installed. # for BRD in `echo ${BOARD_LIST} | cut -d' ' -f1-${NBOARDS}`; do blip NMSCREENS=`echo $NMSCREENS_LIST | cut -d' ' -f$BRD` BEG_IO=`echo $BEG_IO_SDEV_LIST | cut -d' ' -f$BRD` END_IO=`echo $END_IO_SDEV_LIST | cut -d' ' -f$BRD` ##### #for every screen driver and every board entered # SCR_CNT=0 for SCR in `echo $SCREEN_LIST | cut -d' ' -f1-$NMSCREENS`; do START=`expr \( \( $BRD - 1 \) \* $BOX_PER_BOARD \) + 1` END=`expr \( $BRD \* $BOX_PER_BOARD \)` NPORTS_LIST=`echo $NPORTS_PER_BOX | cut -d' ' -f$START-$END` #echo "\nnports_list = $NPORTS_LIST" OFFSET=`expr \( \( $BRD - 1 \) \* $BOX_PER_BOARD \) + 1` : > Node # we will add nodes only for installed ports. If there # was a downgrade of the number of ports then the # devices will be removed so long as the major number # didn't change (which it shouldn't because we are doing # a idinstall upgrade instead of a idinstall delete & add.) : > Init ##### #if this is screen 0 # if [ ${SCR} = ${BASE_SCR} ] then : > Node.xlp echo "${TTY_PK_D}${BRD}${SCR_CNT} fip_diag${BRD_CNT} c 255" >> Node BRD_CNT=`expr $BRD_CNT + 1` fi # ##### ##### #for every box, screen, and board entered # PORT_OFFSET=0 for PORTS in $NPORTS_LIST; do #for each box/cluster BOX=`echo $BOX_LIST | cut -d' ' -f$OFFSET` OFFSET=`expr $OFFSET + 1` PORT_CNT=`expr ${PORT_OFFSET} \* 16` PORT_OFFSET=`expr ${PORT_OFFSET} + 1` MID=`expr $PORTS + 1` END=$PORTS_PER_BOX if [ $MID -lt $END ] then RLIST="" for PORT in `echo $PORT_LIST | cut -d" " -f${MID}-${END}`; do RLIST="${RLIST}${PORT}" done # also remove entries out of base /tmp/init.d.$LCNAME egrep -v "${IT_CHR}${SCR}${BOX}[${RLIST}]:" /tmp/init.d.${LCNAME} >/tmp/init.d.${LCNAME}.1 mv /tmp/init.d.${LCNAME}.1 /tmp/init.d.${LCNAME} egrep -v ${TTY_PRFX}${SCR}${BOX}[${RLIST}] ${TTYTYPE} >${TTYTYPE}.1 mv ${TTYTYPE}.1 ${TTYTYPE} if [ ${SCR} = ${BASE_SCR} ] then #intellitype allways has the BASE_SCR prefix for the port #so no need to grep -v for the modem port egrep -v ${TTY_PRFX}${SCR}${BOX}[${RLIST}] ${DEF_D}/intellitype >${DEF_D}/intellitype.1 mv ${DEF_D}/intellitype.1 ${DEF_D}/intellitype #but /etc/ttytype MAY have the MODEM entry for the port #so we need to strip it # remove unused MODEM entries out of $TTYTYPE egrep -v ${TTY_PRFX}${MODEM_SCR}${BOX}[${RLIST}] ${TTYTYPE} >${TTYTYPE}.1 mv ${TTYTYPE}.1 ${TTYTYPE} fi fi if [ $PORTS -lt 1 ] #0ports on this box/cluster then continue fi ##### #for every port, box, screen, board entered # for PORT in `echo $PORT_LIST | cut -d' ' -f1-$PORTS`; do #echo -n "." blip #create an login entry egrep "${IT_CHR}${SCR}${BOX}${PORT}:" /tmp/init.d.${LCNAME} >/dev/null || echo "${IT_CHR}${SCR}${BOX}${PORT}:234:off:/etc/getty ${TTY_PRFX}${SCR}${BOX}${PORT} $GETTY_TOKEN" >> Init #make the node echo "${TTY_PK_D}${BRD}${SCR_CNT} ${TTY_PRFX}${SCR}${BOX}${PORT} c ${PORT_CNT}" >> Node #create a ttytype entry if not present if [ ${SCR} = ${BASE_SCR} ] #if we are on the base screen then #we need to check for modem port also egrep ${TTY_PRFX}${SCR}${BOX}${PORT} ${TTYTYPE} >/dev/null || egrep ${TTY_PRFX}${MODEM_SCR}${BOX}${PORT} ${TTYTYPE} >/dev/null || echo "dumb\t${TTY_PRFX}${SCR}${BOX}${PORT}" >> ${TMP_TTYTYPE} else #we only need to check for the alternate screen egrep ${TTY_PRFX}${SCR}${BOX}${PORT} ${TTYTYPE} >/dev/null || echo "dumb\t${TTY_PRFX}${SCR}${BOX}${PORT}" >> ${TMP_TTYTYPE} fi ##### # once per physical port. # if [ ${SCR} = ${BASE_SCR} ] then #make a intellitype entry for this port egrep ${TTY_PRFX}${SCR}${BOX}${PORT} ${DEF_D}/intellitype >/dev/null || echo "${TTY_PRFX}${SCR}${BOX}${PORT}:= \$dumb" >>${DEF_D}/intellitype #log the max screens for this port. echo "${TTY_PRFX}${SCR}${BOX}${PORT} ${NMSCREENS}" >>${CURSES_D}/maxscr.txt MODEM_PORT_CNT=`expr $PORT_CNT + 128` echo "${TTY_PK_D}${BRD}${SCR_CNT} ${TTY_PRFX}${MODEM_SCR}${BOX}${PORT} c ${MODEM_PORT_CNT}" >> Node # also the xlp devices if [ "${LCNAME}x" = "alcx" ] then echo "${XLP_PK_D}${BRD} ${XLP_PRFX}${BOX}${PORT} c ${PORT_CNT}" >> Node.xlp else echo "${XLP_PK_D}${BRD} ${XLP_PRFX}${SCR}${BOX}${PORT} c ${PORT_CNT}" >> Node.xlp fi fi PORT_CNT=`expr $PORT_CNT + 1` done # #with the ports ##### done # #with the box ##### #idinstall the Driver.o if [ \( ${BRD} = 1 \) -a \( ${SCR_CNT} = 0 \) ] then # this is the first driver and needs an irq and type of hardware mv ${TTY_PK_D}${BRD}${SCR_CNT}_${K}${CPU}.o Driver.o if [ ${V1} -eq 0 ] then #PCI only installed echo "${TTY_PK_D}${BRD}${SCR_CNT} Y 1 0 0 ${V1} ${BEG_IO} ${END_IO} 0 0" > System else echo "${TTY_PK_D}${BRD}${SCR_CNT} Y 1 5 4 ${V1} ${BEG_IO} ${END_IO} 0 0" > System fi echo "${TTY_PK_D}${BRD}${SCR_CNT} ${MDEV_F2_BASE} ${MDEV_F3_BASE} ${TTY_PK_D}${BRD}${SCR_CNT} 0 0 1 1 -1" > Master if [ "${LCNAME}x" = "alcx" ] then echo " /* * (C) Copyright 1991, 1992 Computone Corporation. * All Rights Reserved. */ int alc_slt_list[] = { ${SLOT_LIST} }; int alc_efm_list[] = { ${EFM2_LIST} }; unsigned int alc_irq_used = ${V1};" > Space.c fi else # this is NOT board 1, screen 0. build_screen ${BRD} ${SCR_CNT} if [ \( ${SCR_CNT} = 0 \) ] then #this is a base screen for a board echo "${TTY_PK_D}${BRD}${SCR_CNT} Y 1 0 0 0 ${BEG_IO} ${END_IO} 0 0" > System else #this is a pseudo driver w/o any hardware echo "${TTY_PK_D}${BRD}${SCR_CNT} Y 1 0 0 0 0 0 0 0" > System fi echo "${TTY_PK_D}${BRD}${SCR_CNT} ${MDEV_F2_OTHR} ${MDEV_F3_OTHR} ${TTY_PK_D}${BRD}${SCR_CNT} 0 0 1 1 -1" > Master fi $IDBIN/idcheck -p ${TTY_PK_D}${BRD}${SCR_CNT} 2>> $ERROR_LOG RVAL=$? R_TMP=`expr $RVAL / 8 \* 8` R_TMP=`expr $RVAL - $R_TMP` # The -u (upgrade) option to idinstall is IMPORTANT. It will prevent the major # number from changing during a driver upgrade if [ \( $R_TMP -ge 4 \) -a \( $RVAL -ne 100 \) ] then $IDBIN/idinstall -u ${TTY_PK_D}${BRD}${SCR_CNT} 2>> $ERROR_LOG if [ $? -ne 0 ] then error "IDINSTALL failed. see $ERROR_LOG \c" exit 1 fi else if [ \( $RVAL -ne 0 \) ] #if partially installed then $IDBIN/idinstall -d ${TTY_PK_D}${BRD}${SCR_CNT} 2>> $ERROR_LOG fi $IDBIN/idinstall -a ${TTY_PK_D}${BRD}${SCR_CNT} 2>> $ERROR_LOG if [ $? -ne 0 ] then error "IDINSTALL failed. see $ERROR_LOG \c" exit 1 fi fi rm -f Space.c >/dev/null 2>&1 # IUS 4.1 will not remove for us rm -f Init >/dev/null 2>&1 # IUS 4.1 will not remove for us #now install the xlp driver if we are on the main screen (once per port) if [ ${SCR} = ${BASE_SCR} ] then # Node file is now installed in it's final destination # Copy the base screen entries from the node file # to the intellifeatures directory. grep ${TTY_PRFX}${BASE_SCR} ${NODE}/${TTY_PK_D}${BRD}${SCR_CNT} > ${DEF_D}/${LCNAME}Node.${TTY_PK_D}${BRD}${SCR_CNT} mv Node.xlp Node echo "${XLP_PK_D}${BRD} Y 1 0 0 0 0 0 0 0" > System echo "${XLP_PK_D}${BRD} ${MDEV_F2_XLP} ${MDEV_F3_XLP} ${XLP_PK_D}${BRD} 0 0 1 1 -1" > Master build_xpar ${BRD} 8 $IDBIN/idcheck -p ${XLP_PK_D}${BRD} 2>> $ERROR_LOG RVAL=$? R_TMP=`expr $RVAL / 8 \* 8` R_TMP=`expr $RVAL - $R_TMP` if [ \( $R_TMP -ge 4 \) -a \( $RVAL -ne 100 \) ] then $IDBIN/idinstall -u ${XLP_PK_D}${BRD} 2>> $ERROR_LOG if [ $? -ne 0 ] then error "IDINSTALL failed. see $ERROR_LOG \c" exit 1 fi else $IDBIN/idinstall -a ${XLP_PK_D}${BRD} 2>> $ERROR_LOG if [ $? -ne 0 ] then error "IDINSTALL failed. see $ERROR_LOG \c" exit 1 fi fi fi SCR_CNT=`expr $SCR_CNT + 1` done # #with screen_list ##### done # #with board_list ##### #sort on first field and collate all the files into one file sort -t: +1 -2 /tmp/init.d.${LCNAME} ${INIT}/${TTY_PK_D}?? -o ${INIT}/${LCNAME} #remove the temp init.d files rm -f ${INIT}/${TTY_PK_D}?? #============================= #============================= #sort the ttytype file for cosmetic reasons sort +1b -2 ${TTYTYPE} ${TMP_TTYTYPE} -o${TTYTYPE} chmod 644 ${TTYTYPE} rm -f ${TMP_TTYTYPE} #finish the Please wait ... line echo "" rebuild_kernel REBUILD_FAILED=$? #-------------------------------------------------------------------- # KERNEL LINK: SUCCESSFUL #-------------------------------------------------------------------- ttys_update if [ $SYS -eq 2 ] # if ATT, ISC then we need 8 bit entries in gettydefs then add_8bit_entries # add if not already there fi #-------------------------------------------------------------------- # Move rc.d scripts into place #-------------------------------------------------------------------- ISCRIPT=/etc/rc2.d/S35${LCNAME}_init echo "sh /etc/${LCNAME}_reinit" > $ISCRIPT chmod 744 $ISCRIPT chown bin $ISCRIPT chgrp bin $ISCRIPT # display message about the files being installed # /etc/defaults directory was created earlier clear echo "\n\n\n\n\tMoving installation files, please wait...\c" #-------------------------------------------------------------------- # Remove any extra object modules #-------------------------------------------------------------------- # remove any files that we don't need anymore rm -f $ERROR_LOG rm -rf ${DRV_OBJ_D} rm -f /tmp/${LCNAME}.inst cd $WHEREWESTARTED #-------------------------------------------------------------------- # display message about the files that were installed #-------------------------------------------------------------------- clear echo " The following files have been installed on your system -" # find the largest alt screen index CNT=1 for C in $NMSCREENS_LIST ; do if [ $C -gt $CNT ] ; then CNT=$C fi done # print screen list, stopping at largest alt screen index CN=1 for I in $SCREEN_LIST do echo " /dev/${TTY_PRFX}$I?? . . . . . . . . . . device nodes for terminals screen $CN" if [ $CN -ge $CNT ] ; then break ; fi CN=`expr $CN + 1` done echo " /dev/${TTY_PRFX}${MODEM_SCR}?? . . . . . . . . . . device nodes for modems" if [ "${LCNAME}x" = "alcx" ] ; then echo " /dev/${XLP_PRFX}?? . . . . . . . . . . device nodes for pass-through printers" else echo " /dev/${XLP_PRFX}${BASE_SCR}?? . . . . . . . . . . device nodes for pass-through printers" fi if [ "${LCNAME}x" = "alcx" ] ; then if [ $ETHERNET -eq 1 ] ; then echo " /dev/${EFM_DNAME}? . . . . . . . . . . . device node(s) for ethernet" if [ $NETD_SAVED -eq 1 ] ; then echo " /etc/netd.cf-preEFM . . . . . . old version of /etc/netd.cf" fi fi # endif ETHERNET fi # endif alc echo " The following files have been modified on your system - /etc/inittab . . . . . . . . . . System initialization table /etc/ttytype . . . . . . . . . . Terminal type table /etc/conf/* . . . . . . . . . . Link kit files for new kernels ${DEF_D}/*/* . . . . IntelliFeatures files" if [ $SYS -eq 2 ] ; then echo " /etc/gettydefs . . . . . . . . . Getty token definitions" fi if [ "${LCNAME}x" = "alcx" ] ; then if [ $ETHERNET -eq 1 ] ; then if [ $SYS -eq 1 ] ; then # SCO UNIX echo " /etc/tcp . . . . . . . . . . . TCP/IP configuration file" echo " /etc/strcf . . . . . . . . . . . streams configuration file" fi # endif SCO UNIX if [ $UPDATE_NETD -eq 1 ] ; then echo " /etc/netd.cf . . . . . . . . . . TCP/IP Configuration file" fi fi # endif ETHERNET fi # endif ALC echo " Press Enter to continue ...\c" read RESPONSE #display msg about man pages if SCO UNIX if [ $SYS -eq 1 ] then # SCO UNIX # can't test for NOTES in $* like xenix because $* is NULL clear echo "\n\ The release notes are in the file /etc/default/fip.d/FIP_NOTES\n\ \n\ The following man pages have been installed\n\ \n\ fip_hot\n\ fip_reinit\n\ fip_report\n\ rj45\n\ " echo "\n\ Press Enter to continue... \c" read RESPONSE fi # display message about remaining installation steps clear echo " STEPS TO COMPLETE INSTALLATION Shutdown your system and reboot to activate the new system. Setup your terminals to match the baud rate, parity, data bits, and stop bits as defined in the /etc/gettydefs entry." # NOTE: # this is also the way we do it for 386ix NOW because we can't merge # our curses install stuff with the sysadm stuff in isc 386/ix v 3.0 # echo " AFTER rebooting, you need to type \"/etc/mkdev ${LCNAME}\" in order to setup baud rates, terminal types, ... and IntelliView screens." if [ "${LCNAME}x" = "alcx" ] ; then if [ $ETHERNET -ne 0 ] ; then echo " Refer to your TCP/IP Administrator's Guide for instructions on how to configure a network and activate TCP/IP." fi # endif ETHERNET fi # endif ALC echo " Installation complete. Press Enter to continue ...\c" read RESPONSE clear #0.11# #0.11#exit 0 #ISC and AT&T will see this as an abort and not make an #0.11# #entry in /usr/options and not call the fipnote setup script. if [ $REBUILD_FAILED -eq 1 -a $SYS -eq 2 ] then exit 0 fi # Version Notes ##### # 0.13 TLS 04/15/92 -- # see release notes for driver 1.2.6 ##### # onfigure a network and activate TCP/IP." fi # endif ETHERNET fi # endif ALC echo " Installation complete. Press Enter to continue ...\c" read RESPONSE clear #0.11# #0.11#exit 0 #ISC and AT&T will see this as an abort and not make an #0.11# #entry in /usr/options and not call the fipnote setup script. if [ $REBUILD_FAILED -eq 1 -a $SYS -eq 2 ] then exit 0 fi # Version Notes ##### # 0.13 TLS 04/15/92 -- # see re./tmp/perms/fip 644 0 3 6330 6052466006 6602 # # /etc/perms/fip # #prd=fip #typ=n386 #rel=1.4.2 #set="IntelliPort-II Driver" uid root 0 uid bin 3 gid root 0 gid bin 3 # #!ALL 1652 Driver and Release notes #!FIP 1534 IntelliPort-II SCO Drivers #!NOTES 118 Release notes and man pages # PERM F644 bin/bin 1 ./tmp/perms/fip 01 # FIP d755 root/root 1 ./etc/default/fip.d FIP d755 root/root 1 ./etc/default/fip.d/curses FIP D755 root/root 1 ./tmp/sco # FIP F750 root/root 1 ./tmp/init.fip 01 FIP f750 bin/bin 1 ./usr/lib/custom/fip.rmv 01 FIP f750 bin/bin 1 ./usr/lib/mkdev/fip 01 # FIP x755 root/root 1 ./etc/fipInit 01 FIP f755 root/root 1 ./etc/fip_reinit 01 FIP x755 bin/bin 1 ./etc/default/fip.d/ccut 01 FIP f644 root/root 1 ./etc/default/fip.d/curses/copyright 01 FIP f640 root/root 1 ./etc/default/fip.d/curses/menu.yesno 01 FIP f640 root/root 1 ./etc/default/fip.d/curses/menu.iview 01 FIP f640 root/root 1 ./etc/default/fip.d/curses/ISAio.mas 01 FIP f640 root/root 1 ./etc/default/fip.d/curses/MCio.mas 01 FIP x711 root/bin 1 ./etc/fip_hot 01 FIP x711 root/bin 1 ./etc/fip_report 01 FIP x744 root/root 1 ./etc/default/fip.d/curses/gen1 01 FIP x744 root/root 1 ./etc/default/fip.d/curses/gen2 01 FIP x744 root/root 3 ./etc/default/fip.d/curses/menu0 01 ./etc/default/fip.d/curses/menu2 01 ./etc/default/fip.d/curses/menu3 01 FIP f644 root/root 1 ./etc/default/fip.d/doc.intellicap 01 FIP f644 root/root 1 ./etc/default/fip.d/example/makefile 01 FIP f644 root/root 1 ./etc/default/fip.d/example/ioctl_ip2.h 01 FIP f644 root/root 1 ./etc/default/fip.d/example/fip_vp_lstat.c 01 FIP X711 root/root 1 ./etc/default/fip.d/example/fip_vp_lstat 01 FIP f644 root/root 1 ./etc/default/fip.d/example/fip_lstat.c 01 FIP X711 root/root 1 ./etc/default/fip.d/example/fip_lstat 01 FIP f644 root/root 1 ./etc/default/fip.d/example/fip_vp_rts.c 01 FIP X711 root/root 1 ./etc/default/fip.d/example/fip_vp_rts 01 # FIP F644 root/root 1 ./tmp/fip.inst 01 FIP F644 root/root 1 ./tmp/sco/intellicap 01 FIP F644 root/root 1 ./tmp/sco/icap.site 01 FIP F644 root/root 1 ./tmp/sco/fip1_s386.o 01 #FIP X744 root/root 1 ./tmp/sco/fip_patch 01 FIP F644 root/root 1 ./tmp/sco/screen.c 01 FIP F644 root/root 1 ./tmp/sco/xpar.c 01 FIP F644 root/root 1 ./tmp/sco/space.c 01 # FIP F750 bin/bin 1 ./tmp/sco/fip_mkdev.x 01 FIP F755 root/root 1 ./tmp/sco/fip_init.x 01 FIP F755 bin/bin 1 ./tmp/sco/fip_rmv.x 01 #FIP F644 bin/bin 1 ./tmp/sco/fip_perms.x 01 FIP F644 root/root 1 ./tmp/sco/fip1_v386.o 01 FIP F644 root/root 1 ./tmp/sco/ansi_cton 01 #FIP F644 root/root 1 ./tmp/sco/fipspace.S 01 #FIP F644 root/root 1 ./tmp/sco/8bit_gettys 01 FIP F644 root/root 1 ./tmp/sco/screen.S 01 FIP F644 root/root 1 ./tmp/sco/xpar.S 01 FIP F644 root/root 1 ./tmp/sco/space.S 01 # #FIP f644 root/root 1 ./etc/default/fip.d/FIP_NOTES 01 # NOTES d755 root/root 1 ./etc/default/fip.d NOTES f644 root/root 1 ./etc/default/fip.d/FIP_NOTES 01 NOTES d755 root/root 1 ./usr/man/cat.IP2 NOTES f644 root/root 1 ./usr/man/cat.IP2/fip_hot.IP2 01 NOTES f644 root/root 1 ./usr/man/cat.IP2/fip_reinit.IP2 01 NOTES f644 root/root 1 ./usr/man/cat.IP2/fip_report.IP2 01 NOTES f644 root/root 1 ./usr/man/cat.IP2/rj45.IP2 01 NOTES f750 bin/bin 1 ./usr/lib/custom/fip.rmv 01 oot 1 ./tmp/sco/space.S 01 # #FIP f644 root/root 1 ./etc/default/fip.d/FIP_NOTES 01 # NOTES d755 root/root 1 ./etc/default/fip.d NOTES f644 root/root 1 ./etc/default/fip.d/FIP_NOTES 01 NOTES d755 root/root 1 ./usr/man/cat.IP2 NOTES f644 root/root 1 ./usr/man/cat.IP2/fip_hot.IP2 01 NOTES f64./tmp/sco/intellicap 644 145 1 61365 6050252264 7704 #----------------------------------------------------- # /etc/default/XXX.d/intellicap # # Computone-supplied profiles to support IntelliFeatures. # # DO NOT EDIT THIS FILE: # # If you have site-dependent profiles you want to add, put them # in the file "icap.site", found in the same directory as this. # # Changes made to this file will be lost when you upgrade your # drivers, but we do not replace icap.site once it exists. # #----------------------------------------------------- # Revision history: # 3/04/91 MAG First draft # 5/8/91 TLS Added more help # 7/12/91 TLS Added Televideo 955 entries and modified demo entry # to use ^An for toggle keys # 12/5/91 MJS Added flow control locked profiles for printers. # 4/17/92 TLS Added flow control locked profiles for Wyse WY-60 and # Televideo 955. # 4/20/92 MJS Added profiles for Wyse WY-50/75/85/150/160/370, # IBM 3161/3163/3164/3151, DEC VT52/100, Link 125, # Tandy 100, TI-931. Sequences defined as hexadecimal # numbers. Re-arranged profile help and descriptions # to be more consistent and informative. All print # select/de-select codes are hexadecimal numbers. # (These mostly have come in from the field). # 4/21/92 MAG Changed profile descriptions and helps for better # clarity. # 10/7/92 DEJ Corrected help and desc for wyse60.3t entries. # 7/22/93 TLS Corrected errors in some of the help fields. # Corrected a232.2pt entry to support 2 screens. # Added entries for modems w/ locked bauds and HW flow #----------------------------------------------------- # # The following describes some of the labels used in the # profile entries. # desc. is displayed by the choices menu when setting up profiles. # help is displayed by the help popup for each profile while in the # choices menu. Each new line is delimited by a "#" sign. # logins is used to determine how many IntelliView screens to # to enable for login. The actual number allowed will be the # lesser of the logins number and the maximum number of screens # per terminal which was supplied during the driver installation. # gotoX is the string of characters, generated by the keys the # user selects, which will signify a request to switch to screen X. # screenX is the corresponding string which will be sent to the # terminal in order to switch the the screen to page X. ######################################################## # The labels are usually entered in the following order # but any order will work # baud = # size = # stop = # parity = # printon = printoff = # paddcr = # startdelay = pause = # escdelay = maxesclen = # screen? = # goto? = # nextscreen = # timeout = # outflow = # inflow = # noflush = # tab = # onlcr = # logins = # desc. = # help = ######################################################## #-------------------------------------- # DUMB TERMINALS and DEMOS #-------------------------------------- $dumb: # Any terminal without IntelliPrint logins = 1 desc. = "Any terminal, 1 I-View screen" help = " For a terminal with no IntelliPrint or IntelliView support" $dumbcts: = $dumb outflow=cts! desc. = "Any terminal, CTS flow ctl." help = " Terminal with no IntelliPrint or IntelliView support# Forces CTSFLOW# Connect terminal busy signal (DTR or RTS) to our CTS." $demo.8t: # Any terminal, to demonstrate IntelliView on # a terminal with only display page. The # screens are not saved when the virtual screen # is changed. Instead, the messages "Scr1", "Scr2" # indicate which virtual screen we are on. #these are the characters which will be sent to the terminal screen1 = '\nScr1\n' # activate main screen screen2 = '\nScr2\n' # activate screen 2 screen3 = '\nScr3\n' # activate screen 3 screen4 = '\nScr4\n' # activate screen 4 screen5 = '\nScr5\n' # activate screen 5 screen6 = '\nScr6\n' # activate screen 6 screen7 = '\nScr7\n' # activate screen 7 screen8 = '\nScr8\n' # activate screen 8 #these are the characters from the keyboard goto1 = '^A1' #hit the keys ^An where n is the screen number goto2 = '^A2' # ... goto3 = '^A3' # ... goto4 = '^A4' # ... goto5 = '^A5' # ... goto6 = '^A6' # ... goto7 = '^A7' # ... goto8 = '^A8' # ... nextscreen = '^A0' # hit the keys A 0 for next screen timeout = 0 # wait forever for keys. logins = 8 desc. = "Any terminal 8 I-View screens, (Demo/Testing)" help = " Terminal, 8 screens, no IntelliPrint# A 0 - next screen# A 1 - screen 1# A 2 - screen 2 (etc)" #----------------------------------- # WY60 variations #----------------------------------- $wy60.2t: # Wyse WY-60 2 screen and toggle. Good choice for VP/ix screen1 = '^[w0' # select main screen screen2 = '^[w1' # select alt screen nextscreen = '^AK^M' # sent by F12 key --> toggle between screens timeout = 1 # wait 1/10 sec for screen switch key timeout. logins = 2 desc. = "Wyse WY-60, 2 I-View screens" help = " Wyse WY-60 terminal with two IntelliView screens# F12 - next screen# (only one hot-key used)." $wy50.p: # Wyse WY-50 with IntelliPrint printon = 0x18 printoff = 0x14 paddcr = y startdelay = 2 pause = 5 escdelay = 2 maxesclen = 12 logins = 1 desc. = "Wyse WY-50, single screen, I-Print" help = " Wyse WY-50 terminal with IntelliPrint" $link125.p: # Link 125 with IntelliPrint =$wy50.p desc. = "Link 125, single screen, I-Print" help = " Link 125 terminal with IntelliPrint" $wy60.p: # Wyse WY-60 with IntelliPrint printon = 0x1b,0x64,0x23 printoff = 0x14 paddcr = y startdelay = 2 pause = 5 escdelay = 2 maxesclen = 12 logins = 1 desc. = "Wyse WY-60, single screen, I-Print" help = " Wyse WY-60 terminal with IntelliPrint" $wy150.p: # Wyse WY-150 with IntelliPrint =$wy60.p desc. = "Wyse WY-150, single screen, I-Print" help = " Wyse WY-150 terminal with IntelliPrint" $wy160.p: # Wyse WY-160 with IntelliPrint =$wy60.p desc. = "Wyse WY-160, single screen, I-Print" help = " Wyse WY-160 terminal with IntelliPrint" $wy60.p.xon: = $wy60.p outflow = xonxoff! desc. = "Wyse WY-60, single screen, XON/XOFF" help = " Wyse WY-60 terminal with IntelliPrint# Forces XON/XOFF flow control so it cannot be disabled." $wy60.p.cts: = $wy60.p outflow = cts! desc. = "Wyse WY-60, single screen, CTS flow ctl." help = " Wyse WY-60 terminal with IntelliPrint# Forces CTS flow control so it cannot be disabled." $wy60.2pt: # Wyse WY-60 with IntelliPrint + main & alternate screens # using single F12 key to toggle between screens. = $wy60.p screen1 = '^[w0' # select main screen screen2 = '^[w1' # select alt screen goto1 = '\200' # F1 goto2 = '\201' # F2 nextscreen = '^AK^M' # sent by F12 key --> toggle between screens timeout = 1 # wait 1/10 sec for screen switch key timeout. logins = 2 desc. = "Wyse WY-60, 2 I-View screens, I-Print" help = " Wyse WY-60 with IntelliPrint and 2 IntelliView screens# F1 - screen 1# F2 - screen 2# F12 - next screen" $wy60.2pt.xon: # Wyse WY-60 with IntelliPrint + main & alternate screens # using single F12 key to toggle between screens. = $wy60.2pt outflow = xonxoff! desc. = "Wyse WY-60, 2 I-View screens, XON/XOFF" help = " Wyse WY-60 IntelliPrint and 2 I-View screens# F1 - screen 1# F2 - screen 2# F12 - next# Forces XON/XOFF." $wy60.2pt.cts: # Wyse WY-60 with IntelliPrint + main & alternate screens # using single F12 key to toggle between screens. = $wy60.2pt outflow = cts! desc. = "Wyse WY-60, 2 I-view screens, I-Print, CTS flow ctl." help = " Wyse WY-60 IntelliPrint and 2 I-View screens# F1 - screen 1# F2 - screen 2# F12 - next# Forces CTSFLOW on." $wy60.3t: # Wyse WY-60 3 screen and toggle. Good choice for VP/ix screen1 = '^[w0' # select main screen screen2 = '^[w1' # select 2nd screen screen3 = '^[w2' # select 3rd screen nextscreen = '^AK^M' # sent by F12 key --> toggle between screens timeout = 1 # wait 1/10 sec for screen switch key timeout. logins = 3 desc. = "Wyse WY-60, 3 I-View screens" help = " Wyse WY-60 in ECON-80 mode with 3 screens# F12 - next screen# (only one hot-key used)." $wy60.3pt: # Wyse WY-60 with IntelliPrint + alternate screens # using single F12 key to toggle between screens. = $wy60.p screen1 = '^[w0' # select main screen screen2 = '^[w1' # select 2nd screen screen3 = '^[w2' # select screen 3 (requires econ-80 mode) goto1 = '\200' #F1 goto2 = '\201' #F2 goto3 = '\202' #F3 nextscreen = '^AK^M' # sent by F12 key --> toggle between screens timeout = 1 # wait 1/10 sec for screen switch key timeout. logins = 3 desc. = "Wyse WY-60, 3 I-View screens, I-Print, (ECON-80 mode)" help = " Wyse WY-60, ECON-80 w/I-Print, 3 screens# F1, F2, F3 to select screens# F12 - next screen" $wy60.3pt.xon: # Wyse WY-60 with IntelliPrint + alternate screens # using single F12 key to toggle between screens. = $wy60.3pt outflow = xonxoff! desc. = "Wyse WY-60, 3 I-View screens, I-Print, (ECON-80) XON" help = " Wyse WY-60, ECON-80 w/I-Print,3 screens# F1, F2, F3 to select screens# F12 - next screen# Forces XON/XOFF" $wy60.3pt.cts: # Wyse WY-60 with IntelliPrint + alternate screens # using single F12 key to toggle between screens. = $wy60.3pt outflow = cts! desc. = "Wyse WY-60, 3 I-View screens, I-Print, (ECON-80) CTS" help = " Wyse WY-60, ECON-80 w/I-Print,3 screens# F1, F2, F2 to select screens# F12 - next screen# Forces CTSFLOW" $wy60_50.7p: # Wyse WY-60 with IntelliPrint + alternate screens = $wy60.p screen1 = '^[w0' # select main screen screen2 = '^[w1' # select 2nd screen screen3 = '^[w2' # select screen 3 (requires wyse50 & econ-80 mode) screen4 = '^[w3' # select screen 4 (requires wyse50 & econ-80 mode) screen5 = '^[w4' # select screen 5 (requires wyse50 & econ-80 mode) screen6 = '^[w5' # select screen 6 (requires wyse50 & econ-80 mode) screen7 = '^[w6' # select screen 7 (requires wyse50 & econ-80 mode) goto1 = '\200' #F1 goto2 = '\201' #F2 goto3 = '\202' #F3 goto4 = '\203' #F4 goto5 = '\204' #F5 goto6 = '\205' #F6 goto7 = '\206' #F7 timeout = 1 # wait 1/10 sec for screen switch key timeout. logins = 7 desc. = "Wyse WY-60, 7 I-View screens, I-Print, wy50 ECON-80" help = " Wyse WY-60 in WY-50 emulation, ECON-80 mode# with IntelliPrint and 7 screens.# F1, F2...to select screens." $wy60_50.7p.xon: # Wyse WY-60 with IntelliPrint + alternate screens = $wy60_50.7p outflow = xonxoff! desc. = "Wyse WY-60, 7 I-View screens, I-Print, wy50/ec80, XON" help = " Wyse WY-60 in WY-50, ECON-80 mode# with IntelliPrint and 7 screens.# F1, F2...to select# Forces XON/XOFF" $wy60_50.7p.cts: # Wyse WY-60 with IntelliPrint + alternate screens = $wy60_50.7p outflow = cts! desc. = "Wyse WY-60, 7 I-View screens, I-Print, wy50/ec80, CTS" help = " Wyse WY-60 in WY-50, ECON-80 mode# with IntelliPrint and 7 screens.# F1, F2...to select# Forces CTSFLOW" #------------------------------------- # VT100 (& wyse equivalents) #------------------------------------- $vt100.p: # DEC VT100 with IntelliPrint printon = 0x1b,0x5b,0x35,0x69 printoff = 0x1b,0x5b,0x34,0x69 paddcr = y startdelay = 2 pause = 5 escdelay = 2 maxesclen = 12 logins = 1 desc. = "DEC VT100, single sceeen, I-Print" help = " DEC VT100 terminal with IntelliPrint" $vt52.p: # DEC VT52 with IntelliPrint printon = 0x1b,0x57 printoff = 0x1b,0x58 paddcr = y startdelay = 2 pause = 5 escdelay = 2 maxesclen = 12 logins = 1 desc. = "DEC VT52, single sceeen, I-Print" help = " DEC VT52 terminal with IntelliPrint" $ansi.p: # ANSI with IntelliPrint = $vt100.p desc. = "ANSI terminal, single screen, I-Print" help = " ANSI terminal with IntelliPrint" $wy75.p: # Wyse-75 with IntelliPrint = $vt100.p desc. = "Wyse WY-75, single screen, I-Print" help = " Wyse WY-75 terminal with IntelliPrint" $wy85.p: # Wyse-85 with IntelliPrint = $vt100.p desc. = "Wyse WY-85, single screen, I-Print" help = " Wyse WY-85 terminal with IntelliPrint" $wy370.p: # Wyse WY-370 with IntelliPrint = $vt100.p desc. = "Wyse WY-370, single screen, I-Print" help = " Wyse WY-370 terminal with IntelliPrint" $tandy100.p: # Tandy 100 with IntelliPrint = $vt100.p desc. = "Tandy 100, single screen, I-Print" help = " Tandy 100 terminal with IntelliPrint" #--------------------------- # IBM 31xx and variants #--------------------------- $ibm3161.p: # IBM 3161 with IntelliPrint printon = 0x10,0x12 printoff = 0x10,0x14 paddcr = y startdelay = 2 pause = 5 escdelay = 2 maxesclen = 12 logins = 1 desc. = "IBM 3161, single screen, I-Print" help = " IBM 3161 terminal with IntelliPrint" $ibm3163.p: # IBM 3163 with IntelliPrint = $ibm3161.p desc. = "IBM 3163, single screen, I-Print" help = " IBM 3163 terminal with IntelliPrint" $ibm3164.p: # IBM 3164 with IntelliPrint = $ibm3161.p desc. = "IBM 3164, single screen, I-Print" help = " IBM 3164 terminal with IntelliPrint" $ibm3151.2: # IBM 3151 no IntelliPrint + main & alternate screens # F11 selects screen 1, F12 selects screen 2 screen1 = 0x1b,0x20,0x70,0x41 # select main screen screen2 = 0x1b,0x20,0x70,0x42 # select alt screen goto1 = 0x1b,0x6b,0x0d # F11 goto2 = 0x1b,0x6c,0x0d # F12 timeout = 1 # wait 1/10 sec for screen switch key timeout. logins = 2 desc. = "IBM 3151, 2 I-View screens" help = " IBM 3151 with 2 IntelliView screens# F11 - screen 1# F12 - screen 2" #------------------------- # Texas Instruments #------------------------- $ti931.p: # Texas Instruments 931 with IntelliPrint printon = 0x1b,0x46,0x31,0x1b,0x28 printoff = 0x1b,0x29 paddcr = y startdelay = 2 pause = 5 escdelay = 2 maxesclen = 12 logins = 1 desc. = "TI-931, single screen, I-Print" help = " TI-931 terminal with IntelliPrint" #------------------------- # Ampex 230/2 and similar #------------------------- $a230.p: # Ampex 230 PLUS with IntelliPrint printon = 0x1b,0x60 printoff = 0x1b,0x61 paddcr = y startdelay = 2 pause = 5 escdelay = 2 maxesclen = 12 logins = 1 desc. = "Ampex 230 PLUS, single screen, I-Print" help = " Ampex 230 PLUS terminal with IntelliPrint" $a232.p: # Ampex 232 PLUS with IntelliPrint = $a230.p desc. = "Ampex 232 PLUS, single screen, I-Print" help = " Ampex 230 PLUS terminal with IntelliPrint" $a230.2pt: # Ampex 230 PLUS with two screens, # using Shift-F1 to toggle between = $a230.p nextscreen = '^A`^M' # shift-F1 screen1 = '^[J' screen2 = '^[K' timeout = 1 # wait 1/10 sec for screen switch key timeout. logins = 2 desc. = "Ampex 230 PLUS,2 I-View screens, I-Print" help = " Ampex 230 PLUS with IntelliPrint and 2 IntelliView screens# F1 - toggle between screens." $a232.2pt: # Ampex 232 PLUS in TVI 925 mode same as Ampex 230 = $a230.2pt desc. = "Ampex 232 PLUS,2 I-View screens, I-Print, (TVI 925 mode)" help = " Ampex 232 PLUS in TVI 925 mode# with IntelliPrint and 2 IntelliView screens# F1 - toggle between screens." $tvi925.2pt: # Televideo 925, 2 screens = $a230.2pt desc. = "Televideo 925, 2 I-View screens, I-Print" help = " Televideo 925 with IntelliPrint and 2 IntelliView screens# F1 - toggle between screens." #------------------------- # Microterm and compatible #------------------------- $microterm.2p: printon = 0x10,0x40 printoff = 0x10,0x5a paddcr = y startdelay = 2 pause = 5 escdelay = 2 maxesclen = 12 screen1 = 0x10,'A' screen2 = 0x10,'B' goto1 = 0x10,'A' goto2 = 0x10,'B' timeout = 1 # wait 1/10 sec for screen switch key timeout. logins = 2 desc. = "Microterm 6600,2 I-View screens, I-Print, (rev 3.1 f/w)" help = " Microterm terminal with IntelliPrint and 2 IntelliView screens.# Set the printer assignment switch to 0." #---------------------------------- # Relisys ansi compatible terminals #---------------------------------- # Relisys TR170 terminal # NOTE: some of these can go up to 8 screens. $tr170.3pt: = $ansi.p screen1 = '^[[0z' # codes to switch terminal to main screen screen2 = '^[[1z' # codes to switch terminal to 2nd screen screen3 = '^[[2z' # codes to switch terminal to 3rd screen goto1 = '^[[k' # F1 key to goto screen 1 goto2 = '^[[l' # F2 key to goto screen 2 goto3 = '^[[m' # F3 key to goto screen 3 nextscreen='^[[X' timeout = 1 logins = 3 desc. = "Relisys TR170 terminal with 3 screens and IntelliPrint" help = " F1 - screen 1# F2 - screen 2# f3 - screen 3# F12 - next screen" #---------------------------------- # Popular Televideo 955 variations #---------------------------------- # Televideo 955 using IntelliPrint. $tv955.p: printon = 0x1b,0x60 printoff = 0x1b,0x61 paddcr = y startdelay = 2 pause = 5 escdelay = 2 maxesclen = 12 logins = 1 desc. = "Televideo 955, single screen, I-Print" help = " Televideo 955 terminal with IntelliPrint" $tv955.p.xon: = $tv955.p outflow = xonxoff! desc. = "Televideo 955, single screen, I-Print, XON/XOFF" help = " Televideo 955 terminal with IntelliPrint# Forces XON/XOFF output flow control enabled." $tv955.p.cts: = $tv955.p outflow = cts! desc. = "Televideo 955, single screen, I-Print, CTS flow ctl." help = " Televideo 955 terminal with IntelliPrint# Forces CTS output flow control enabled." # Televideo 955 as above, using also Shift-F10 and Shift-F11 # to select directly screens 1 and 2 $tv955.2p: = $tv955.p screen1 = '^[1;0}' screen2 = '^[1;1}' goto1 = '^Ai^M' goto2 = '^Aj^M' timeout = 1 # wait 1/10 sec for screen switch key timeout. logins = 2 desc. = "Televideo 955, 2 I-View screens, I-Print" help = " Televideo 955 with IntelliPrint, and 2 screens # F10 - screen 1 # F11 - screen 2" $tv955.2p.xon: = $tv955.2p outflow = xonxoff! desc. = "Televideo 955, 2 I-View screens, I-Print, XON/XOFF" help = " IntelliPrint, 2 screens # F10 - screen 1 # F11 - screen 2# Forces XON/XOFF output flow control" $tv955.2p.cts: = $tv955.2p outflow = cts! desc. = "Televideo 955, 2 I-View screens, I-Print, CTS flow ctl." help = " IntelliPrint, 2 screens # F10 - screen 1 # F11 - screen 2# Forces CTSFLOW output flow control" # Televideo 955 using IntelliPrint and alternate screens. # Use Shift-F12 to toggle between screens. $tv955.2pt: = $tv955.2p nextscreen = '^Ak^M' desc. = "Televideo 955, 2 I-View /toggle, I-Print" help = " IntelliPrint, 2 screens # F10 - screen 1 # F11 - screen 2# F12 - next screen" $tv955.2pt.xon: = $tv955.2pt outflow = xonxoff! desc. = "Televideo 955, 2 I-View /toggle, I-Print, XON/XOFF" help = " I-Print, 2 screens # F10 - screen 1 # F11 - 2# F12 - next# Forces XON/XOFF output flow control" $tv955.2pt.cts: = $tv955.2pt outflow = cts! desc. = "Televideo 955, 2 I-View /toggle, I-Print, CTS flow ctl." help = " IntelliPrint, 2 screens # F10 - screen 1 # F11 - 2# F12 - next# Forces CTSFLOW output flow control" #--------------------------------------- # Printers and other non-login devices. #--------------------------------------- $pr9600cts: # serial printer using CTS output flow control = $dumb baud=9600! size=8! stop=1! parity=none! outflow=cts! noflush=yes! # don't flush on close - allow output to drain desc. = "Serial Printer 9600 baud 8/1/n, CTS flow ctl." help = " 9600 baud# 8 bits, 1 stop bit, no parity# CTS output flow control# connect CTS to printer busy (may be DTR or RTS)" $pr9600cts.c: # serial printer using CTS output flow control w/ tab and NL to NL-CR expansion = $pr9600cts tab=yes! onlcr=yes! desc. = "Serial Printer 9600 baud, 8/1/n, CTS flow, TAB3, ONLCR" help = " 9600 baud# 8 bits, 1 stop bit, no parity# TAB3, ONLCR# CTS output flow control# connect CTS to printer busy (DTR or RTS)" $pr9600xon: # serial printer using XON/XOFF output flow control = $dumb baud=9600! size=8! stop=1! parity=none! outflow=xonxoff! noflush=yes! # don't flush on close - allow output to drain desc. = "Serial Printer 9600 baud 8/1/n, XON/XOFF" help = " 9600 baud# 8 bits, 1 stop bit, no parity# XON/XOFF output flow control# don\'t flush output on close" $pr9600xon.c: # serial printer using XON/XOFF output flow control w/ tab and NL to NL-CR expansion = $pr9600xon tab=yes! onlcr=yes! desc. = "Serial Printer 9600 baud, 8/1/n, XON/XOFF, TAB3, ONLCR" help = " 9600 baud# 8 bits, 1 stop bit, no parity# TAB3 and ONLCR cooking# XON/XOFF output flow control# don\'t flush output on close" $pr19200cts: =$pr9600cts baud=19200! desc. = "Serial Printer 19200 baud 8/1/n, CTS flow ctl." help = " 19200 baud# 8 bits, 1 stop bit, no parity# CTS output flow control# connect CTS to printer busy (may be DTR or RTS)" $pr19200cts.c: =$pr9600cts.c baud=19200! desc. = "Serial Printer 19200 baud, 8/1/n, CTS flow, TAB3, ONLCR" help = " 19200 baud# 8 bits, 1 stop bit, no parity# TAB3, ONLCR# CTS output flow control# connect CTS to printer busy (DTR or RTS)" $pr19200xon: =$pr9600xon baud=19200! desc. = "Serial Printer 19200 baud 8/1/n, XON/XOFF" help = " 19200 baud# 8 bits, 1 stop bit, no parity# XON/XOFF output flow control# don\'t flush output on close" $pr19200xon.c: =$pr9600xon.c baud=19200! desc. = "Serial Printer 19200 baud, 8/1/n, XON/XOFF, TAB3, ONLCR" help = " 19200 baud# 8 bits, 1 stop bit, no parity# TAB3 and ONLCR cooking# XON/XOFF output flow control# don\'t flush output on close" $pr38400cts: =$pr9600cts baud=38400! desc. = "Serial Printer 38400 baud 8/1/n, CTS flow ctl." help = " 38400 baud# 8 bits, 1 stop bit, no parity# CTS output flow control# connect CTS to printer busy (may be DTR or RTS)" $pr38400cts.c: =$pr9600cts.c baud=38400! desc. = "Serial Printer 38400 baud, 8/1/n, CTS flow, TAB3, ONLCR" help = " 38400 baud# 8 bits, 1 stop bit, no parity# TAB3, ONLCR# CTS output flow control# connect CTS to printer busy (DTR or RTS)" $pr38400xon: =$pr9600xon baud=38400! desc. = "Serial Printer 38400 baud 8/1/n, XON/XOFF" help = " 38400 baud# 8 bits, 1 stop bit, no parity# XON/XOFF output flow control# don\'t flush output on close" $pr38400xon.c: =$pr9600xon.c baud=38400! desc. = "Serial Printer 38400 baud, 8/1/n, XON/XOFF, TAB3, ONLCR" help = " 38400 baud# 8 bits, 1 stop bit, no parity# TAB3 and ONLCR cooking# XON/XOFF output flow control# don\'t flush output on close" #--------------------------------------- # modem with locked in baud rates #--------------------------------------- $modem_81n: size=8! stop=1! parity=none! logins = 1 desc. = "Modem locked in at 8/1/N" help = " 8 bits, 1 stop bit, no parity" $mod2400: =$modem_81n baud=2400! desc. = "Modem locked in at 2400 baud, 8/1/N" help = " 2400 baud# 8 bits, 1 stop bit, no parity" $mod9600: =$modem_81n baud=9600! desc. = "Modem locked in at 9600 baud, 8/1/N" help = " 9600 baud# 8 bits, 1 stop bit, no parity" $mod19200: =$modem_81n baud=19200! desc. = "Modem locked in at 19200 baud, 8/1/N" help = " 19200 baud# 8 bits, 1 stop bit, no parity" $mod38400: =$modem_81n baud=38400! desc. = "Modem locked in at 38400 baud, 8/1/N" help = " 38400 baud# 8 bits, 1 stop bit, no parity" $mod57600: =$modem_81n baud=57600! desc. = "Modem locked in at 57600 baud, 8/1/N" help = " 57600 baud# 8 bits, 1 stop bit, no parity" $mod115200: =$modem_81n baud=115200! desc. = "Modem locked in at 115200 baud, 8/1/N" help = " 115200 baud# 8 bits, 1 stop bit, no parity" #----------------------------------------------------------- # modem with locked in baud rates and locked in RTS/CTS flow #----------------------------------------------------------- $modem_81n.hw: =$modem_81n outflow = cts! inflow = rts! desc. = "Modem locked in at 8/1/N and RTS/CTS flow" help = " 8 bits, 1 stop bit, no parity# RTSFLOW/CTSFLOW locked in" $mod2400.hw: =$modem_81n.hw baud=2400! desc. = "Modem locked in at 2400 baud, 8/1/N and RTS/CTS flow" help = " 2400 baud# 8 bits, 1 stop bit, no parity# RTSFLOW/CTSFLOW locked in" $mod9600.hw: =$modem_81n.hw baud=9600! desc. = "Modem locked in at 9600 baud, 8/1/N and RTS/CTS flow" help = " 9600 baud# 8 bits, 1 stop bit, no parity# RTSFLOW/CTSFLOW locked in" $mod19200.hw: =$modem_81n.hw baud=19200! desc. = "Modem locked in at 19200 baud, 8/1/N and RTS/CTS flow" help = " 19200 baud# 8 bits, 1 stop bit, no parity# RTSFLOW/CTSFLOW locked in" $mod38400.hw: =$modem_81n.hw baud=38400! desc. = "Modem locked in at 38400 baud, 8/1/N and RTS/CTS flow" help = " 38400 baud# 8 bits, 1 stop bit, no parity# RTSFLOW/CTSFLOW locked in" $mod57600.hw: =$modem_81n.hw baud=57600! desc. = "Modem locked in at 57600 baud, 8/1/N and RTS/CTS flow" help = " 57600 baud# 8 bits, 1 stop bit, no parity# RTSFLOW/CTSFLOW locked in" $mod115200.hw: =$modem_81n.hw baud=115200! desc. = "Modem locked in at 115200 baud, 8/1/N and RTS/CTS flow" help = " 115200 baud# 8 bits, 1 stop bit, no parity# RTSFLOW/CTSFLOW locked in" locked in at 38400 baud, 8/1/N and RTS/CTS flow" help = " 38400 baud# 8 bits, 1 stop bit, no parity# RTSFLOW/CTSFLOW locked in" $mod57600.hw: =$modem_81n.hw baud=57600! desc. = "Modem locked in at 57600 baud, 8/1/N and RTS/CTS flow" help = " 57600 baud# 8 bits,./tmp/sco/icap.site 644 145 1 11722 6001564027 7426 ########################################################################### # # icap.site # Site-dependent IntelliFeature Profiles # #------------------------------------------------------------ # Revision History: # 4/21/92 MAG First release #------------------------------------------------------------ # At installation time, this file is copied to # /etc/default/???.d/icap.site # if that file does not already exist. # # If you have new profiles you want to define, put them here # and future idriver upgrades will not touch them. The Computone-supplied # profiles are in the file "intellicap", which is automatically # updated with the drivers. # # To simplify support, please do not change the profiles we supply. # Instead, define one of your own here. You may use "=" to initialize # your profile from an existing profile, even though it is in a different # file. # # Refer to the file doc.intellicap for detailed advice on creating profile # entries. # # We welcome your suggestions for additional profiles to add to our # standard list. Fax them to our Customer Support department and we # may include them in future releases. # # To avoid conflicts with future revisions, please follow these guides: # # Each profile has a label, which may be up to 15 characters, # and must begin with a $ (dollar) sign. # # For terminals, our pre-defined labels use a standard format: # For example, the profile $wy60.2pt.cts represents a Wyse WY-60 # ("wy60") using two IntelliView screens (".2"), IntelliPrint ("p"), # an IntelliView screen toggle key ("t"), and with IntelliSet locking # in CTS flow control ("cts"). In general, the first part shows the # terminal model, the second indicates any IntelliFeatures used, and # the third indicates any special features. # # Profiles for printers are less standardized, but should indicate # the baud rate and flow control parameters at least. # # When the profiles and descriptions are displayed by the installation # menu, they are sorted by profile name. For that reason, all the # profile names for printers begin with "pr", so they will all be # together in alphabetical order. # # To keep all your profiles together, and ensure their names # do not conflict with some profile we might generate, begin them # with an exclamation point (!); then they will all appear first # on the menus. If you begin them with a '~', they will all be # last. We guarantee we won't release any profile names # that begin with "!" or a "~". # # Instead of keeping your profiles together on the menu screen # you may want to merge them in with the standard ones. Then # follow our labelling conventions, but end the profile name # with ".s" (stands for "site"). We guarantee we won't # release any standard profile names that end with ".s". # # Descriptions are limited to a single line of 56 characters. # Help information is limited to 126 characters total. They are # displayed on multiple lines of up to 70 characters per line. # You must indicate the line breaks by using the '#' character # where the new line should begin. # # The help or description must not contain a '#' except to indicate # line breaks in the help string. Neither can contain a colon (:), # as this character has special significance to the menu program. # The description or the help strings should not contain any TAB # characters: use spaces instead. # # ########################################################################### # The following is a template for creating description fields # for terminals. It keeps them nicely aligned for the menu # program. # desc. = "TTTTTTTTTTTTTT N I-View screens, I-Print, xxxxxxxxxxxxxx" # help = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456" ## ##EXAMPLE profile ## #$dumb.2t: # Any terminal without IntelliPrint # =$dumb # inherit profile "dumb" defined in # # the intellicap file # # hence the "2" in the name extension # # #these are the characters which will be sent to the terminal # screen1 = '\nScr1\n' # activate main screen # screen2 = '\nScr2\n' # activate screen 2 # # #these are the characters from the keyboard # goto1 = '^A1' # hit the keys ^An where n is the screen number # goto2 = '^A2' # ... # # nextscreen = '^A0' # hit the keys ^A and 0 to goto (toggle) # # the next screen # # hence the "t" in the name extension # # timeout = 0 # wait forever for keys. # logins = 2 # used to determine how many screens # # to enable if ALL are enabled. # desc. = "Any terminal 2 I-View screens, (Demo/Testing)" # # # the "#" char IN the help string is for a NL # help = " Terminal with no IntelliPrint support# A 0 - next screen# A 1 - screen 1# A 2 - screen 2 " # # ## -- ADD YOUR CUSTOM PROFILES HERE -- ^A and 0 to goto (toggle) # # the next scre./tmp/sco/fip_mkdev.x 644 0 0 7575 6052464611 7705 : LINES=25 ; export LINES LCNAME="fip" NAME="IntelliPort-II" if [ "${LCNAME}x" = "fipx" ] ; then PAT1="tty[sS][0-9a-f][0-9a-f]" PAT2="tty[sS-Z][0-9a-f][0-9a-f]" else # alc, of course PAT1="tty[Ff][0-9a-q][0-9a-f]" PAT2="tty[Ff-m][0-9a-q][0-9a-f]" fi WORK_DIR="/etc/default/${LCNAME}.d/curses" START_DIR=`pwd` M_TTYPE="/etc/ttytype" M_ITAB="/etc/inittab" TTYPE="ttype.txt" TTYPE_BASE="ttype.base" ITAB="inittab.txt" M_ITYPE="/etc/default/${LCNAME}.d/intellitype" OM_ITYPE="/etc/default/${LCNAME}.d/o_intellitype" M_ICAP="/etc/default/${LCNAME}.d/intellicap" M_ISITE="/etc/default/${LCNAME}.d/icap.site" ITYPE="itype" ICAP="icap" TTYS="/tmp/ttys.${LCNAME}" TTYS_BASE="ttys.base" M_TTYS="/etc/ttys" #reset term type on completion of a good install reset_term() { if [ "${TERM}x" = "ansi_ctonx" ] then TERM=ansi export TERM fi } ORIG_TERM=$TERM if [ "${TERM}x" = "ansix" ] then TERM=ansi_cton export TERM fi if [ "${TERM}x" = "x" ] then echo "TERM variable is blank. Setting TERM=ansi_cton temporarily." pause ORIG_TERM=${TERM} TERM="ansi_cton" export TERM fi cd $WORK_DIR #make itype cat ${M_ITYPE} | egrep ${PAT1} > ${ITYPE} sort -f -t: +0 -1 ${ITYPE} -o ${ITYPE} #sort is folding to uppercase and checking only the first field (delim by a :) #make icap rm -f ${ICAP} /etc/${LCNAME}Init -t -vp ${M_ICAP} ${M_ISITE} >${ICAP} 2>/tmp/${LCNAME}Init.log if [ ! -s ${ICAP} ] ; then cat /tmp/${LCNAME}Init.log echo "\tAborting!" reset_term exit 1 fi sort -t: +0 -1 ${ICAP} -o ${ICAP} #sort is checking only the first field (delim by a :) #make /tmp/ttys.${LCNAME} cat ${M_TTYS} | egrep ${PAT2} > ${TTYS} cat ${M_TTYS} | egrep -v ${PAT2} > ${TTYS_BASE} sort -f +0.2 -1 ${TTYS} -o ${TTYS} #sort is folding to uppercase and skipping the enable and gettydefs entry #we are doing this here so that any manual edits to the ttys file do not #put an alt screen before a base screen so gen1 can see an ALL condition. ./gen1 -${LCNAME} -x RET=$? if [ $RET -gt 0 ] then echo "\n\n\tAborting!" reset_term exit 1 fi #make ttype.txt cat ${M_TTYPE} | egrep ${PAT1} > ${TTYPE} cat ${M_TTYPE} | egrep -v ${PAT2} > ${TTYPE_BASE} ./menu3 -${LCNAME} -x # modifies icap and itype in ${LCNAME}.d/curses RET=$? #clear #will give error if using ansi_cton echo "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" if [ $RET -gt 0 ] then echo "\n\n\tAborting!" if [ $RET -eq 1 ] then echo "\n\n\tPlease install /usr/lib/terminfo/*/$TERM\n\n\n\n" fi reset_term exit 1 fi ./menu2 -${LCNAME} -x # modifies ttytype.txt and inittab.txt in ${LCNAME}.d/curses RET=$? #clear #will give error if using ansi_cton echo "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" if [ $RET -gt 0 ] then echo "\n\n\tAborting!" if [ $RET -eq 1 ] then echo "\n\n\tPlease install /usr/lib/terminfo/*/$TERM\n\n\n\n" fi reset_term exit 1 fi ./gen2 -${LCNAME} -x # this will create /tmp/inittab.out and /tmp/ttytype.out RET=$? if [ $RET -gt 0 ] then echo "\n\n\tAborting!" reset_term exit 1 fi #make /etc/default/${LCNAME}.d/intellitype file cp ${M_ITYPE} ${OM_ITYPE} cp ${ITYPE} ${M_ITYPE} #make the /etc/ttytype file echo " Updating ${M_TTYPE}, leaving original in /tmp/ttytype" cp ${M_TTYPE} /tmp/ttytype sort -f +1b -2 ${WORK_DIR}/${TTYPE_BASE} /tmp/ttytype.out -o ${M_TTYPE} #folding to uppercase and sorting the second field (port) skipping blanks echo " Updating /etc/ttys, leaving original in /tmp/ttys" cp /etc/ttys /tmp/ttys sort -f +0.2 -1 /tmp/inittab.out -o /tmp/inittab.out cat ${WORK_DIR}/${TTYS_BASE} /tmp/inittab.out > ${M_TTYS} chmod 664 ${M_TTYS} ${M_TTYPE} TERM=$ORIG_TERM export TERM /etc/rc.d/6/${LCNAME}_init #update the profile information if [ $? -ne 0 ] then echo " The MAIN screen on the first port of each board must be the active screen before the changes can be sent to each board. /etc/${LCNAME}Init will continue to hang until this is true." reset_term exit 1 fi kill -2 1 #this will fire of new gettys and kill old ones tmp/inittab.out -o /tmp/inittab.out cat ${WORK_DIR}/${TTYS_BASE} /tmp/inittab.out > ${M_TTYS} chmod 664 ${M_TTYS} ${M_TTYPE} TERM=./tmp/sco/fip_rmv.x 744 0 3 16443 5727650272 7431 : # fip.rmv - script to remove drivers VERSION=1.01.05 # Version 1.01.05 -- Feb 26, 1992 -- TLS # Added 1992 to copyright notice. # Don't echo NL char in the getyn() routine # PATH=$PATH:/usr/bin:/etc TICKSTATE=1 CCUT="/etc/default/fip.d/ccut" OS='SCO XENIX' K=v CPU=386 BOARD_LIST="1 2 3 4" BOX_PER_BOARD="4" SCREEN_LIST="s T U V W X Y Z" BOX_LIST="0 1 2 3 4 5 6 7 8 9 a b c d e f" PORT_LIST="0 1 2 3 4 5 6 7 8 9 a b c d e f" BASE_SCR="s" MODEM_SCR="S" TTY_PK_D="fi" XLP_PK_D="fiv" XLP_PRFX="xlp" TTY_PRFX="tty" IDBIN="/etc/conf/bin" CONF="/usr/sys/conf" TINFO="/usr/lib/terminfo" blip() { case $TICKSTATE in 1) TICKSTATE=2 echo -n "|" echo -n "\010" ;; 2) TICKSTATE=3 echo -n "\\" echo -n "\010" ;; 3) TICKSTATE=4 echo -n "-" echo -n "\010" ;; *) TICKSTATE=1 echo -n "/" echo -n "\010" ;; esac } # Pause for user input pause() { echo -n "press to continue " read yn < /dev/tty } # Print an error message error() { echo "\nError: $*" >&2 return 1 } # Prompt for yes or no answer - returns non-zero for no getyn() { while read yn < /dev/tty do case $yn in [yY]*) return 0 ;; [nN]*) return 1 ;; *) echo -n "please enter either y or n " ;; esac done } #----------------------------------------------------------------- # If we are only removing NOTES then abort so we don't remove # the driver. fixperm will remove the release notes file for us. #----------------------------------------------------------------- # Test for presence of ONLY notes package if [ "$#" = "1" -a "$1" = "NOTES" ] then exit 0 fi #----------------------------------------------------------------- # Announce ourselves, determine # of boards & maybe set up /etc/ttys... #----------------------------------------------------------------- echo " Computone de-installation script - version ${VERSION} Operating System: ${OS}, $CPU processor (c) Copyright 1991, 1992 Computone Inc -- all rights reserved THIS WILL REMOVE THE COMPUTONE INTELLIPORT-II DRIVERS FROM YOUR SYSTEM All Computone Intelliport-II devices will be removed, and the kernel re-linked. Do you wish to continue with driver removal (y/n)? \c" getyn if [ $? = 0 ] # if yes then echo "-- proceeding to remove drivers..." else #All this is needed because SCO will remove the fip.rmv script #and perms file if all the packages (FIP and NOTES) are selected #for removal. #tell them what to do in an abort condition echo " Drivers will NOT be removed from the kernel.\07 SCO custom will still attempt to remove the utility files for this package after this script exits. After you exit custom you will need to enter the command \"/tmp/fip_unremove\" in order to fully restore the driver. " # make a tarfile cd / /etc/fixperm -f /etc/perms/fip >/tmp/fip_permlist tar cvfF /tmp/fip_tarfile /tmp/fip_permlist >/dev/error 2>&1 # and gen the unremove script echo ": #bourne shell script cd / tar xvf /tmp/fip_tarfile rm -f /tmp/fip_tarfile rm -f /tmp/fip_permlist " >/tmp/fip_unremove #and only give root execute permissions chmod 700 /tmp/fip_unremove exit 1 fi #----------------------------------------------------------------- # save some system files #----------------------------------------------------------------- if [ ! -f /etc/o_ttytype ] then cp /etc/ttytype /etc/o_ttytype fi if [ ! -f /etc/o_ttys ] then cp /etc/ttys /etc/o_ttys fi #----------------------------------------------------------------- # Remove driver module #----------------------------------------------------------------- cd ${CONF} clear echo -n "\n\n\n\n\tPlease wait " BRD_CNT=0 for BRD in $BOARD_LIST do SCR_CNT=0 SCR_CNT2=1 D1="" for I in ${PORT_LIST}; do D1="${D1}${I}" done D2STR=`expr \( \( ${BRD} - 1 \) \* ${BOX_PER_BOARD} \) + 1` D2END=`expr ${BRD} \* ${BOX_PER_BOARD}` D2_LIST=`echo ${BOX_LIST} | $CCUT -d" " -f${D2STR} -l${D2END}` D2="" for I in ${D2_LIST}; do D2="${D2}${I}" done for SCR in $SCREEN_LIST; do blip MAJ=`./configure -j ${TTY_PK_D}${BRD}${SCR_CNT}` if [ $? -eq 0 ] then ./configure -m ${MAJ} -c -d #remove the nodes in SCO rm -f /dev/${TTY_PRFX}${SCR}[${D2}][${D1}] grep -v ${TTY_PRFX}${SCR}[${D2}][${D1}] /etc/ttytype >/tmp/rm.ttytype mv /tmp/rm.ttytype /etc/ttytype grep -v ${TTY_PRFX}${SCR}[${D2}][${D1}] /etc/ttys >/tmp/rm.ttys mv /tmp/rm.ttys /etc/ttys #remove modem devices if [ "${SCR}" = "${BASE_SCR}" ] then rm -f /dev/${LCNAME}_diag${BRD_CNT} BRD_CNT=`expr $BRD_CNT + 1` rm -f /dev/${TTY_PRFX}${MODEM_SCR}[${D2}][${D1}] grep -v ${TTY_PRFX}${MODEM_SCR}[${D2}][${D1}] /etc/ttytype >/tmp/rm.ttytype mv /tmp/rm.ttytype /etc/ttytype grep -v ${TTY_PRFX}${MODEM_SCR}[${D2}][${D1}] /etc/ttys >/tmp/rm.ttys mv /tmp/rm.ttys /etc/ttys fi ## $IDBIN/idinstall -d ${TTY_PK_D}${BRD}${SCR_CNT} fi SCR_CNT=`expr $SCR_CNT + 1` done SCR_CNT2=`expr $SCR_CNT2 + 1` MAJ=`./configure -j ${XLP_PK_D}${BRD}` if [ $? -eq 0 ] then ./configure -m ${MAJ} -c -d #remove IntelliPrint devices rm -f /dev/${XLP_PRFX}${BASE_SCR}[${D2}][${D1}] grep -v ${XLP_PRFX}${BASE_SCR}[${D2}][${D1}] /etc/ttytype >/tmp/rm.ttytype mv /tmp/rm.ttytype /etc/ttytype fi done echo "" #----------------------------------------------------------------- # remove the default Intelliport-II files #----------------------------------------------------------------- rm -f -r /etc/default/fip.d #----------------------------------------------------------------- # remove the Intelliport-II system files before linking kernel #----------------------------------------------------------------- rm -f /etc/conf/node.d/fi[1-4][0-7] > /dev/null 2>&1 ##rm -f /etc/conf/init.d/fip > /dev/null 2>&1 #--------------------------------------------------------------- # attempt to build a new kernel #-------------------------------------------------------------------- cd ${CONF} grep -v "/fip/" link_xenix >link_xenix.tmp mv link_xenix.tmp link_xenix chmod 744 link_xenix NEW_KERN=0 #assume we will not have a new kernel echo -n "\n\tDo you wish to relink the kernel now (y/n)? " getyn if [ $? = 0 ] # if yes then clear echo "\n\n\n\n\tLinking the kernel..." cd $CONF ./link_xenix if [ $? -ne 0 ] then echo "\n\n\n\n\tError linking kernel." pause exit 1 else ./hdinstall sleep 2 NEW_KERN=1 #a new kernel was built fi fi #----------------------------------------------------------------- # Remove any other programs and files no longer needed #----------------------------------------------------------------- rm -f /etc/fipInit > /dev/null 2>&1 rm -f /etc/rc.d/6/fip_init > /dev/null 2>&1 rm -f /etc/fip_reinit > /dev/null 2>&1 rm -f /etc/fip_hot > /dev/null 2>&1 rm -f /etc/fip_report > /dev/null 2>&1 rm -r /usr/sys/fip > /dev/null 2>&1 rm -f ${TINFO}/a/ansi_cton rm -f /tmp/rm.ttytype rm -f /tmp/rm.ttys rm -f /tmp/${LCNAME}.inst if [ $NEW_KERN = 1 ] #a new kernel was linked and installed. then clear echo "\n\n\n\n\tComputone Intelliport-II Drivers are de-installed" echo "\tPlease re-boot the system to invoke new kernel" else clear echo "\n\n\n\n\tComputone Intelliport-II Drivers are de-installed" echo "\texcept for re-linking the kernel. Please re-link the kernel" echo "\tbefore re-booting." fi echo ": mv /etc/perms/fip /tmp 2>/dev/null mv /usr/lib/custom/fip.rmv /tmp 2>/dev/null mv \$0 /tmp 2>/dev/null " >/etc/rc.d/5/fip_rmv chmod 744 /etc/rc.d/5/fip_rmv linked and installed. then clear echo "\n\n\n\n\tComputone Intelliport-II Drivers are de-installed" echo "\tPlease re-boot the system to invoke new kernel" else clear echo "\n\n\n\n\tComputone Intelliport-II Drivers ./tmp/sco/fip_init.x 744 0 3 106031 6052420352 7563 #!/bin/sh # Bourne shell script # xenix only script. ############################################################### #REMEMBER: =, != are for string comparisons # -eq, -ne, -ge, -le are for integer comparisons ################################################################ #set -x #set -n #read commands but don't execute them #set -u # installation script for SCO xenix # Copyright 1991, 1992 Computone Corporation. - all rights reserved # echos the next blip character SYM="\\|/-" NUM_SYM=4 ndx=1 blip() { # activity indicator. A crude shot at the spinning wheel. case $TICKSTATE in 1) TICKSTATE=2 echo -n "|" echo -n "\010" ;; 2) TICKSTATE=3 echo -n "/" echo -n "\010" ;; 3) TICKSTATE=4 echo -n "-" echo -n "\010" ;; *) TICKSTATE=1 echo -n "\\" echo -n "\010" ;; esac } #backup up key files before starting backup() { cp /usr/sys/conf/master /usr/sys/conf/o_master cp /usr/sys/conf/xenixconf /usr/sys/conf/o_xenixconf cp /usr/sys/conf/link_xenix /usr/sys/conf/o_link_xenix } #reset term type on completion of a good install reset_term() { if [ "${TERM}x" = "ansi_ctonx" ] then TERM=ansi export TERM fi } # cleanup before an exit cleanup() { reset_term cd /usr/sys/conf [ -f o_master ] && mv o_master master [ -f o_xenixconf ] && mv o_xenixconf xenixconf [ -f o_link_xenix ] && mv o_link_xenix link_xenix cd /etc [ -f ttys.old ] && mv ttys.old ttys [ -f ttytype.old ] && mv ttytype.old ttytype } # Pause for user input pause() { echo -n "press to continue " # read yn < /dev/tty read yn } # Print an error message error() { echo "\nError: $*" >&2 return 1 } # Prompt for yes or no answer - returns non-zero for no getyn() { while read yn do case $yn in [yY]*) return 0 ;; [nN]*) return 1 ;; *) echo -n "please enter either y or n " ;; esac done } # perms list needed if link kit must be installed permschk () { if [ -f /etc/perms/inst ]; then PERM=/etc/perms/inst else error "Cannot locate /etc/perms/inst. Needed to verify linkkit installation." reset_term exit 1 fi } # test to see if link kit is installed linkchk() { cd / until fixperm -i -d LINK $PERM do case $? in 4) echo "\nThe Link Kit is not installed." >&2 ;; 5) echo "\nThe Link Kit is only partially installed." >&2 ;; *) echo "\nError testing for Link Kit. Exiting." >&2 reset_term exit 1 ;; esac # Not fully installed. Do so here echo -n "Do you wish to install it now (y/n)? " getyn if [ $? -eq 1 ] # if no then echo " The link kit must be installed to run this program. Exiting ..." reset_term exit 1 fi # answered yes, so install link kit echo "\nInvoking /etc/custom\n" /etc/custom -o -i LINK || { # custom exited unsuccessfully error "custom failed to install Link Kit successfully. Please try again." reset_term exit 1 } done } # build_screen BOARD SCREEN # generates a Driver.o for screen modules. build_screen() { sed -e "s/BOARD/$1/g" -e "s/SCREEN/$2/g" screen.S > t.s /usr/lib/storel t.s ; mv t.o Driver.o blip rm -f t.* } # build_xpar BOARD # generates a Driver.o for xpar modules. build_xpar() { sed -e "s/BOARD/$1/g" xpar.S > t.s /usr/lib/storel t.s ; mv t.o Driver.o blip rm -f t.* } # build_space BOARD # generates a Space.o for main modules. build_space() { sed -e "s/NB/$1/g" space.S > t.s /usr/lib/storel t.s ; mv t.o Space.o blip rm -f t.* } # #main() # #PATH=$PATH:/bin:/usr/bin:/etc:. PATH=/bin:/usr/bin:/etc export PATH echo "\n\tYou may remove the disk now." #--------------------------------------------------------------- #backup important system files in case of a premature exit #--------------------------------------------------------------- backup #--------------------------------------------------------------- # Check for the presence of the link kit. Install if it not present. #--------------------------------------------------------------- permschk && linkchk LCNAME="None" if [ -f /tmp/alc.inst ] then LCNAME="alc" fi ##### #These are the vars if we are installing an IntelliPort II # if [ -f /tmp/fip.inst ] then VECLIST="10 11 12 15 3 4 5 7" #BEG_EISA_SUFFIX="C80" #this includes the EISA ID info, not just the comm area #END_EISA_SUFFIX="C8F" ### #these are the mdevice field 2 and 3 entries for this board. # MDEV_F2_BASE="Iocrwip" #init, open, close, read, write, ioctl, poll MDEV_F2_OTHR="Iocrwi" #init, open, close, read, write, ioctl MDEV_F2_XLP="Iocrwi" #init, open, close, read, write, ioctl MDEV_F3_BASE="iHct" #installable, Hardware, character, tty MDEV_F3_OTHR="ict" #installable, character, tty MDEV_F3_XLP="ict" #installable, character, tty SL="1 2 3 4 5 6 7 8" #needed if we need to use SCREEN_LIST in a calc BOX_PER_BOARD="4" PORTS_PER_BOX="16" #assumptions are made that the below are single digit elements BOARD_LIST="1 2 3 4" SCREEN_LIST="s T U V W X Y Z" PORT_LIST="0 1 2 3 4 5 6 7 8 9 a b c d e f" BOX_LIST="0 1 2 3 4 5 6 7 8 9 a b c d e f" #assumptions are made that the above are single digit elements NMSCREENS_LIST="" #number of multiscreens including the default NBOARDS="" #number of boards to install NPORTS_PER_BOX="" #number of ports per cluster box IO="" #starting I/O location V1="" #IRQ TICKSTATE=1 LCNAME="fip" ERROR_LOG="/tmp/${LCNAME}_error_log" DEF_D="/etc/default/${LCNAME}.d" CURSES_D="${DEF_D}/curses" TINFO="/usr/lib/terminfo" MODEM_SCR="S" BASE_SCR="s" XLP_PRFX="xlp" TTY_PRFX="tty" TTY_PK_D="fi" XLP_PK_D="fiv" PKGINST="fi10" NAME="FIP" NON_PCI_CARD_INSTALLED=0 PCI_CARD_INSTALLED=0 fi # ##### TMP_MKNOD="/tmp/mknod.${LCNAME}" TTYTYPE="/etc/ttytype" TTYS="/etc/ttys" TMP_TTYTYPE="/tmp/tmp_ttytype" TMP_TTYS="/tmp/tmp_ttys" SCRIPT_VER="0.14" PACK="/tmp/pack.d" LNK="/tmp/lnk.${LCNAME}" # Later, test for o/s and assign properly. #####if [ -d /tmp/sco.xenix ] #####then # xenix only script. VERIFY!!!!!!!!!! -ts CCUT="/etc/default/fip.d/ccut" GETTY_TOKEN="m" MODEM_GETTY_TOKEN="3" OS='SCO XENIX' K="v" CPU="386" ##### INST="/tmp/sco.xenix" INST="/tmp/sco" IDBIN="/etc/conf/bin" CONF="/usr/sys/conf" INIT="/etc/conf/init.d" TARGET="/usr/sys/fip" #####fi # main WHEREWESTARTED=`pwd` #-------------------------------------------------------------------- # There had better be an fgrep and egrep # Check in three reasonable places (usually in /bin) #-------------------------------------------------------------------- if [ \( ! -f /bin/egrep \) -a \( ! -f /etc/egrep \) -a \( ! -f /usr/bin/egrep \) ] then echo "Unable to find egrep: Please supply it before installing drivers." pause reset_term exit 1 fi if [ \( ! -f /bin/fgrep \) -a \( ! -f /etc/fgrep \) -a \( ! -f /usr/bin/fgrep \) ] then echo "Unable to find fgrep: Please supply it before installing drivers." pause reset_term exit 1 fi #-------------------------------------------------------------------- # if no /o_xenix, make it #-------------------------------------------------------------------- if [ ! -f /o_xenix ] then echo "Making the backup kernel /o_xenix\n\n" cp /xenix /o_xenix fi #--------------------------------------------------------------- # make the temp pack.d dir #--------------------------------------------------------------- if [ ! -d $TARGET ] then mkdir $TARGET fi #-------------------------------------------------------------------- # Move utilities into place #-------------------------------------------------------------------- #-------------------------------------------------------------------- # Move intelli??? files into place #-------------------------------------------------------------------- if [ -f ${DEF_D}/intellicap ] then mv ${DEF_D}/intellicap ${DEF_D}/o_intellicap fi cp ${INST}/intellicap ${DEF_D}/intellicap if [ ! -f ${DEF_D}/icap.site ] then cp ${INST}/icap.site ${DEF_D}/icap.site fi if [ -f ${DEF_D}/intellitype ] then cp ${DEF_D}/intellitype ${DEF_D}/o_intellitype else : > ${DEF_D}/intellitype fi #--------------------- # move in curses progs #--------------------- #-------------------------------------------------------------------- # save original system files for later sorting #-------------------------------------------------------------------- #backup orig ttytype and ttys cp ${TTYTYPE} ${TTYTYPE}.old cp ${TTYS} ${TTYS}.old #-------------------------------------------------------------------- # find out which interrupt vectors are available, and # prompt the user to select one. # allow the user to re-use the existing vector, if any. # NOTE: this COULD be a place where the user can know if the # vector is being reused. Something like "(vector)" COULD print first. #-------------------------------------------------------------------- cd /usr/sys/conf list="" existing_dev="" USEDLIST=`cd /usr/sys/conf;./vectorsinuse` # # Since XENIX likes to add 16, then display octal values for # interrupt vectors greater than 7, reverse the tables to get vector in use. # existing_dev=`fgrep ${PKGINST} /usr/sys/conf/master | awk '{printf("8 i\n%d 20 - p c\n",$11);}' | dc` VEC_0_INST=0 if [ "${existing_dev}x" != "x" ] then if [ $existing_dev -le 0 ] then existing_dev=`expr $existing_dev + 16` fi #just in case the last install had errors and we got an irq=0 if [ $existing_dev -ge 0 ] then if [ $existing_dev -eq 0 ] then VEC_0_INST=1 # installation with IRQ=0 implies this is a PCI ONLY installation fi list="${existing_dev} " fi fi # make sure each vector in VECLIST does not match the vectors in use. # include the existing vector used by any previous installation of ALC. for irqvector in $VECLIST ; do USED=0 for used in $USEDLIST ; do if [ $used -gt 7 ] ; then used=`expr $used - 16` ; fi if [ $irqvector = $used ] ; then USED=1 ; break ; fi done if [ $USED != 1 -a "${irqvector}x" != "${existing_dev}x" ] ; then list="${list}${irqvector} " fi done if [ ${VEC_0_INST} -eq 0 ] then list="${list}0 " #added IRQ 0 for PCI cards fi #-------------------------------------------------------------------- # Make sure we have a GOOD terminfo entry for ansi_cton #-------------------------------------------------------------------- #make sure that the directories exist [ -d ${TINFO} ] || mkdir ${TINFO} [ -d ${TINFO}/a ] || mkdir ${TINFO}/a #make sure that a couple terminfo entries exist if [ ! -f ${TINFO}/a/ansi_cton ] then mv ${INST}/ansi_cton ${TINFO}/a fi #-------------------------------------------------------------------- # Make sure we have a GOOD termcap entry for ansi_cton # this is so that the clear cmd will work if TERM=ansi_cton #-------------------------------------------------------------------- grep ansi_cton /etc/termcap >/dev/null 2>&1 if [ $? -eq 1 ] then echo "# -- ansi_cton entry nescessary for Computone Intelliport-II install script\nansi_cton|ansi_cton|Ansi standard crt::tc=ansi:" >>/etc/termcap fi #-------------------------------------------------------------------- # Make sure we are using the GOOD ansi entry #-------------------------------------------------------------------- if [ "${TERM}x" = "ansix" ] then ORIG_TERM=${TERM} TERM="ansi_cton" export TERM fi if [ "${TERM}x" = "x" ] then echo "TERM variable is blank. Setting TERM=ansi_cton for installation." pause ORIG_TERM=${TERM} TERM="ansi_cton" export TERM fi #-------------------------------------------------------------------- # Make sure we have copies of the system files in case of an error #-------------------------------------------------------------------- backup #--------------------------- # prep input files for menu0 #--------------------------- # can't trim io list in xenix because we can't tell what is in use cp ${CURSES_D}/ISAio.mas ${CURSES_D}/ISAio.avail cp ${CURSES_D}/MCio.mas ${CURSES_D}/MCio.avail #---------------------- # run curses progs #---------------------- : > ${CURSES_D}/maxscr.txt #clear out the port:max_screens file #any IRQ's avaliable? if [ -n "$list" ] then cd /etc/default/fip.d/curses #generate valid vector list for menu0 echo "${list}" >menu.txt #run the curses based install DO_MENU=1 while [ $DO_MENU -eq 1 ] do #init these in case we go through the menus more than once NMSCREENS_LIST="" #number of multiscreens including the default NBOARDS="" #number of boards to install NPORTS_PER_BOX="" #number of ports per cluster box IO="" #starting I/O location V1="" #IRQ PCI_CARD_INSTALLED=0 NON_PCI_CARD_INSTALLED=0 # save a copy of the existing setup in case we abort from menu0 if [ -s menu0.out ] then cp menu0.out /tmp fi ./menu0 -x -fip RET=$? clear if [ $RET -eq 1 ] then echo "\n\n\n\tInstall files are missing or TERM type not supported" #0.11# echo "\n\n\tPlease install /usr/lib/terminfo/*/$TERM\n" echo "\tChange directories to /usr/lib/terminfo and enter" echo "\tthe command tic terminfo.src" echo "\tNOTE: tic will take a few minutes to run." cleanup exit 1 fi if [ $RET -ne 0 ] #if they used F4 to abort out of forms then # restore the previous setup if we aborted from menu0 if [ -s /tmp/menu0.out ] then cp /tmp/menu0.out . fi echo "Installation forms aborted." echo "Driver installation will abort if the forms are not filled out" echo -n "Do you wish to try again (y/n)? " getyn if [ $? -eq 1 ] # if no then echo "\n\n\n\nInstallation aborting!\n\n" pause cleanup exit 2 else #menu0 was NOT successfull. try again. DO_MENU=1 continue #while DO_MENU fi else #menu0 was successfull DO_MENU=0 fi #set the variables generated by the install. chmod 744 menu0.out . ./menu0.out ### #cleanup any leading or trailing spaces in vars produced by menu0.out # NBOARDS=`echo $NBOARDS` NPORTS_PER_BOX=`echo $NPORTS_PER_BOX` IO=`echo $IO` V1=`echo $V1` NMSCREENS_LIST=`echo $NMSCREENS_LIST` NMSCREENS_LIST="${NMSCREENS_LIST} 0 0 0 0" # ### ### #split up IO list into beginning and ending io ranges # ORIG_VARS=$* #save orig prog args set `echo ${IO}` #set new $1, $2, $3, ... to be IO ranges NUM_IO_LOCS=`expr $# / 2` #2 IO locations for each board (beg, end) #should be equal to NBOARDS LOOP_CNT=0 BEG_IO_LIST="" END_IO_LIST="" # BEG_IO_SDEV_LIST="" # END_IO_SDEV_LIST="" while [ $LOOP_CNT -lt $NUM_IO_LOCS ] #for each IO pair do LOOP_CNT=`expr $LOOP_CNT + 1` if [ "${1}x" = "Slotx" ] then NON_PCI_CARD_INSTALLED=1 SLOT=$2 #EISA fields range from "Slot 1" to "Slot F" BEG_IO_LIST=`echo $BEG_IO_LIST $SLOT` END_IO_LIST=`echo $END_IO_LIST $SLOT` # BEG_IO_SDEV_LIST=`echo $BEG_IO_SDEV_LIST "${SLOT}${BEG_EISA_SUFFIX}"` # END_IO_SDEV_LIST=`echo $END_IO_SDEV_LIST "${SLOT}${END_EISA_SUFFIX}"` elif [ "${1}x" = "PCI_Cardx" ] then PCI_CARD_INSTALLED=1 BEG_IO_LIST=`echo $BEG_IO_LIST 0` END_IO_LIST=`echo $END_IO_LIST 0` # BEG_IO_SDEV_LIST=`echo $BEG_IO_SDEV_LIST 0` # END_IO_SDEV_LIST=`echo $END_IO_SDEV_LIST 0` else NON_PCI_CARD_INSTALLED=1 BEG_IO_LIST=`echo $BEG_IO_LIST $1` END_IO_LIST=`echo $END_IO_LIST $2` # BEG_IO_SDEV_LIST=`echo $BEG_IO_SDEV_LIST $1` # END_IO_SDEV_LIST=`echo $END_IO_SDEV_LIST $2` fi shift; shift #look at next two IO locations done #while NUM_IO_LOCS if [ "${ORIG_VARS}x" != "x" ] then #restore orig program args set `echo $ORIG_VARS` fi #if we install a PCI card ONLY, then we want to make sure the IRQ=0 if [ \( $PCI_CARD_INSTALLED -eq 1 \) -a \( $NON_PCI_CARD_INSTALLED -eq 0 \) ] then V1="0" fi #if a non-PCI card is installed make sure we have a non-zero IRQ if [ \( $NON_PCI_CARD_INSTALLED -eq 1 \) -a \( $V1 -eq 0 \) ] then echo "The choice of IRQ 0 is not supported for non-PCI boards." echo -n "Do you wish to try again (y/n)? " getyn if [ $? -eq 1 ] # if no then echo "\n\n\n\nInstallation aborting!\n\n" pause exit 2 else #menu0 was NOT successfull DO_MENU=1 fi fi done #while DO_MENU # ### if [ "${BEG_IO_LIST}x" = "x" -o "${V1}x" = "x" ] then echo "Installation forms aborted. Restart and use F3 to save forms" echo "Installation has failed." echo "" cleanup exit 2 fi else echo " Failure: no interrupt vectors are available. The ${NAME} board(s) must use only one of these interrupt vectors: ${VECLIST} Another package which uses one of these interrupt vectors must be removed before the ${NAME} driver can be installed. Installation has failed." pause clear echo " You may want to use the SCO configure(ADM) command, located in the /usr/sys/conf directory to remove IRQ 5 from the pa (printer) driver. IRQ 5 is normally used for the second parallel port. The hardware is not normally installed so it is usually a good first choice for removal if an IRQ is needed. As an example of how you could free up IRQ 5 ..... You could enter the following commands while logged in as root. First, enter the command cd /usr/sys/conf Second, enter the command ./configure -j pa This should display the major number used by the pa driver. If it says \"No such device\" STOP and do NOT proceed. Replacing MAJ_NUM in the following command with the number printed, and enter the command ./configure -c -d -v 5 -m MAJ_NUM NOTE: The above can be used as a guide but you should refer to the SCO system administrator section (ADM) for more details on the configure command BEFORE proceeding." pause cleanup exit 2 fi ##### # at this point menu0.out (a script generated by menu0) will have # created and initialized the following variables # # V1 (the IRQ selected) # NBOARDS (the number of boards to install) # NSCREENS_LIST (the number of IntelliView screens per board) # NPORTS_PER_BOX (the number of ports per box for all boards installed) # ##### #----------------------------------------------------------------- # Remove previous driver modules greater than current selections #----------------------------------------------------------------- # Remove all device nodes because of the way we update drivers. # Idmknod will fail to remove previous devices if the major changes # during an update of an existing driver module. rm -f /dev/${TTY_PRFX}[sS-Z][0-9a-f][0-9a-f] rm -f /dev/${XLP_PRFX}${BASE_SCR}[0-9a-f][0-9a-f] # remove nodes for all boards in the intellifeatures dir rm -f $DEF_D/${LCNAME}Node.* rm -f $DEF_D/${TTY_PK_D}??.Node #clean out any old Space and other files rm -f ${TARGET}/* # remove boards which were installed before but not now. # (e.g. went from 3 to 2 boards) clear cd ${CONF} echo "\n\n\n\n\n\tRemoving unused IntelliPort II drivers/devices if present." echo -n "\tPlease wait " SCR_CNT2=1 for BRD in $BOARD_LIST do # echo -n "." SCR_CNT=0 NSCREENS=`echo $NMSCREENS_LIST | $CCUT -d" " -f$SCR_CNT2` #build a packed list of last digit in tty name D1="" for I in ${PORT_LIST}; do D1="${D1}${I}" done #build a packed list of next to last (boards) digits in tty name D2STR=`expr \( ${BRD} - 1 \) \* ${BOX_PER_BOARD} + 1` D2END=`expr ${BRD} \* ${BOX_PER_BOARD}` D2_LIST=`echo ${BOX_LIST} | $CCUT -d " " -f${D2STR} -l${D2END}` D2="" for I in ${D2_LIST}; do D2="${D2}${I}" done for SCR in $SCREEN_LIST; do blip if [ \( $SCR_CNT -ge $NSCREENS \) -o \( $BRD -gt $NBOARDS \) ] then MAJ=`./configure -j ${TTY_PK_D}${BRD}${SCR_CNT}` if [ $? -eq 0 ] then ./configure -m ${MAJ} -c -d blip if [ ${SCR} = ${BASE_SCR} ] then #remove old devices if decreasing num of brds rm -f /dev/${TTY_PRFX}${MODEM_SCR}[${D2}][${D1}] #intellitype allways has the BASE_SCR prefix for the port #so no need to grep -v for the modem port egrep -v ${TTY_PRFX}${SCR}[${D2}][${D1}] ${DEF_D}/intellitype >${DEF_D}/intellitype.1 mv ${DEF_D}/intellitype.1 ${DEF_D}/intellitype #but /etc/ttytype MAY have the MODEM entry for the port #so we need to strip it # remove unused MODEM entries out of $TTYTYPE egrep -v ${TTY_PRFX}${MODEM_SCR}[${D2}][${D1}] ${TTYTYPE} >${TTYTYPE}.1 mv ${TTYTYPE}.1 ${TTYTYPE} fi #remove old devices if decreasing num of brds rm -f /dev/${TTY_PRFX}${SCR}[${D2}][${D1}] # remove old ${TTY_PK_D}?? entries out of $TTYTYPE egrep -v ${TTY_PRFX}${SCR}[${D2}][${D1}] ${TTYTYPE} >${TTYTYPE}.1 mv ${TTYTYPE}.1 ${TTYTYPE} egrep -v ${TTY_PRFX}${SCR}[${D2}][${D1}] ${TTYS} >${TTYS}.1 mv ${TTYS}.1 ${TTYS} fi fi SCR_CNT=`expr $SCR_CNT + 1` done SCR_CNT2=`expr $SCR_CNT2 + 1` blip if [ \( $BRD -gt $NBOARDS \) ] then MAJ=`./configure -j ${XLP_PK_D}${BRD}` if [ $? -eq 0 ] then ./configure -m ${MAJ} -c -d # D2 and D1 should still be valid rm -f /dev/${XLP_PRFX}${BASE_SCR}[${D2}][${D1}] fi fi done echo "" #set +x ###### ##-------------------------------------------------------------------- ## Check for the number of boards to install and put the object ## modules in the appropriate directories. Each one is a stub that ## becomes the Driver.o module. ##-------------------------------------------------------------------- ##### #--------------------------------------------------------------- # This loop will create the Node and Init files in the proper pack.d dir. # It will also build a tmp_ttytype file and merge/sort with /etc/ttytype. #--------------------------------------------------------------- : > ${TMP_TTYTYPE} : > ${TMP_TTYS} echo ":\n" > ${TMP_MKNOD} clear echo -n "\n\n\n\n\tBuilding installation files. Please wait " #--------------------------------------------------------------- # link main driver code from the proper components #--------------------------------------------------------------- echo "../fip/fip1_v386.o ../fip/fipS${NBOARDS}_v386.o \\" >${LNK} blip cd ${INST} cp ./fip1_v386.o ${TARGET} # incorporate IRQ (V1) and IO addresses (IO) into space.S first. IO1=`echo $BEG_IO_LIST | sed -e "s/^/0/" -e "s/ /H, 0/g" `H sed -e "s/IVECTOR/${V1}/g" -e "s/IOVEC/${IO1}/g" space.S > t.s ; mv t.s space.S build_space ${NBOARDS} cp Space.o ${TARGET}/fipS${NBOARDS}_v386.o cp screen.S xpar.S ${CONF} blip #+++++++++++++++++++++++++++++++ # Create the Node and Init files in their proper pack.d dir #+++++++++++++++++++++++++++++++ cd ${CONF} BRD_CNT=0 #used to create the diag device (board number 0 based) ##### #for every board installed (we assume boardlist is a numeric starting with 1) # for BRD in `echo ${BOARD_LIST} | $CCUT -d" " -f1 -l${NBOARDS}`; do blip NMSCREENS=`echo $NMSCREENS_LIST | $CCUT -d" " -f$BRD` SCR_CNT=0 LP_MAJ=`./configure -j ${XLP_PK_D}${BRD}` if [ $? -eq 1 ] then LP_MAJ=`./configure -j NEXTMAJOR` fi blip ./configure -m $LP_MAJ -d -c > /dev/null 2>&1 # delete first blip ./configure -c -m $LP_MAJ -a ${XLP_PK_D}${BRD}open ${XLP_PK_D}${BRD}close ${XLP_PK_D}${BRD}read \ ${XLP_PK_D}${BRD}write ${XLP_PK_D}${BRD}ioctl ${XLP_PK_D}${BRD}init ${XLP_PK_D}${BRD}_tty || { echo "Error adding '${XLP_PK_D}${BRD}' entry points." pause cleanup exit 1 } echo -n " ../fip/${XLP_PK_D}${BRD}_v386.o " >>${LNK} build_xpar ${BRD} mv Driver.o ${TARGET}/${XLP_PK_D}${BRD}_v386.o ##### #for every screen driver and every board entered # for SCR in `echo $SCREEN_LIST | $CCUT -d" " -f1 -l$NMSCREENS`; do blip MAJ=`./configure -j ${TTY_PK_D}${BRD}${SCR_CNT}` if [ $? -eq 1 ] then MAJ=`./configure -j NEXTMAJOR` fi blip ./configure -m $MAJ -d -c > /dev/null 2>&1 # delete first blip ./configure -c -m $MAJ -a ${TTY_PK_D}${BRD}${SCR_CNT}open \ ${TTY_PK_D}${BRD}${SCR_CNT}close ${TTY_PK_D}${BRD}${SCR_CNT}read \ ${TTY_PK_D}${BRD}${SCR_CNT}write ${TTY_PK_D}${BRD}${SCR_CNT}ioctl \ ${TTY_PK_D}${BRD}${SCR_CNT}init ${TTY_PK_D}${BRD}${SCR_CNT}_tty || { echo "Error adding '${TTY_PK_D}${BRD}${SCR_CNT}' entry points." pause cleanup exit 1 } echo -n " ../${LCNAME}/${TTY_PK_D}${BRD}${SCR_CNT}_v386.o " >>${LNK} build_screen ${BRD} ${SCR_CNT} mv Driver.o ${TARGET}/${TTY_PK_D}${BRD}${SCR_CNT}_v386.o START=`expr \( \( $BRD - 1 \) \* $BOX_PER_BOARD \) + 1` END=`expr \( $BRD \* $BOX_PER_BOARD \)` NPORTS_LIST=`echo $NPORTS_PER_BOX | $CCUT -d" " -f$START -l$END` #echo "\nnports_list = $NPORTS_LIST" OFFSET=`expr \( \( $BRD - 1 \) \* $BOX_PER_BOARD \) + 1` if [ ${SCR} = ${BASE_SCR} ] then : > ${DEF_D}/${LCNAME}Node.${TTY_PK_D}${BRD}${SCR_CNT} echo "mknod /dev/${LCNAME}_diag${BRD_CNT} c ${MAJ} 255" >> ${TMP_MKNOD} BRD_CNT=`expr $BRD_CNT + 1` fi ##### #for every box, screen, and board entered # PORT_OFFSET=0 for PORTS in $NPORTS_LIST; do #for each box/cluster blip BOX=`echo $BOX_LIST | $CCUT -d" " -f$OFFSET` OFFSET=`expr $OFFSET + 1` PORT_CNT=`expr ${PORT_OFFSET} \* 16` PORT_OFFSET=`expr ${PORT_OFFSET} + 1` MID=`expr $PORTS + 1` END=$PORTS_PER_BOX if [ $MID -lt $END ] then RLIST="" for PORT in `echo $PORT_LIST | $CCUT -d" " -f${MID} -l${END}`; do RLIST="${RLIST}${PORT}" done egrep -v ${TTY_PRFX}${SCR}${BOX}[${RLIST}] ${TTYS} >${TTYS}.1 mv ${TTYS}.1 ${TTYS} egrep -v ${TTY_PRFX}${SCR}${BOX}[${RLIST}] ${TTYTYPE} >${TTYTYPE}.1 mv ${TTYTYPE}.1 ${TTYTYPE} if [ ${SCR} = ${BASE_SCR} ] then egrep -v ${TTY_PRFX}${MODEM_SCR}${BOX}[${RLIST}] ${TTYS} >${TTYS}.1 mv ${TTYS}.1 ${TTYS} #intellitype allways has the BASE_SCR prefix for the port #so no need to grep -v for the modem port egrep -v ${TTY_PRFX}${SCR}${BOX}[${RLIST}] ${DEF_D}/intellitype >${DEF_D}/intellitype.1 mv ${DEF_D}/intellitype.1 ${DEF_D}/intellitype #but /etc/ttytype MAY have the MODEM entry for the port #so we need to strip it # remove unused MODEM entries out of $TTYTYPE egrep -v ${TTY_PRFX}${MODEM_SCR}${BOX}[${RLIST}] ${TTYTYPE} >${TTYTYPE}.1 mv ${TTYTYPE}.1 ${TTYTYPE} fi fi if [ $PORTS -lt 1 ] #0ports on this box/cluster then continue fi ##### #for every port, box, screen, board entered # for PORT in `echo $PORT_LIST | $CCUT -d" " -f1 -l$PORTS`; do blip #create an login entry if [ ${SCR} = ${BASE_SCR} ] #if we are on the base screen then #we need to check for modem port also egrep ${TTY_PRFX}${SCR}${BOX}${PORT} ${TTYS} >/dev/null || egrep ${TTY_PRFX}${MODEM_SCR}${BOX}${PORT} ${TTYS} >/dev/null || echo "0${GETTY_TOKEN}${TTY_PRFX}${SCR}${BOX}${PORT}" >> ${TMP_TTYS} else egrep ${TTY_PRFX}${SCR}${BOX}${PORT} ${TTYS} >/dev/null || echo "0${GETTY_TOKEN}${TTY_PRFX}${SCR}${BOX}${PORT}" >> ${TMP_TTYS} fi #make the node echo "mknod /dev/${TTY_PRFX}${SCR}${BOX}${PORT} c ${MAJ} ${PORT_CNT}" >> ${TMP_MKNOD} #create a ttytype entry if not present if [ ${SCR} = ${BASE_SCR} ] #if we are on the base screen then #we need to check for modem port also egrep ${TTY_PRFX}${SCR}${BOX}${PORT} ${TTYTYPE} >/dev/null || egrep ${TTY_PRFX}${MODEM_SCR}${BOX}${PORT} ${TTYTYPE} >/dev/null || echo "dumb\t${TTY_PRFX}${SCR}${BOX}${PORT}" >> ${TMP_TTYTYPE} else #we only need to check for the alternate screen egrep ${TTY_PRFX}${SCR}${BOX}${PORT} ${TTYTYPE} >/dev/null || echo "dumb\t${TTY_PRFX}${SCR}${BOX}${PORT}" >> ${TMP_TTYTYPE} fi ##### # once per physical port. # if [ ${SCR} = ${BASE_SCR} ] then echo "${TTY_PK_D}${BRD}${SCR_CNT} ${TTY_PRFX}${SCR}${BOX}${PORT} c ${PORT_CNT}" >> ${DEF_D}/${LCNAME}Node.${TTY_PK_D}${BRD}${SCR_CNT} #make a intellitype entry for this port egrep ${TTY_PRFX}${SCR}${BOX}${PORT} ${DEF_D}/intellitype >/dev/null || echo "${TTY_PRFX}${SCR}${BOX}${PORT}:= \$dumb" >>${DEF_D}/intellitype #log the max screens for this port. echo "${TTY_PRFX}${SCR}${BOX}${PORT} ${NMSCREENS}" >>${CURSES_D}/maxscr.txt MODEM_PORT_CNT=`expr $PORT_CNT + 128` echo "mknod /dev/${TTY_PRFX}${MODEM_SCR}${BOX}${PORT} c ${MAJ} ${MODEM_PORT_CNT}" >> ${TMP_MKNOD} # also the xlp devices if [ "${LCNAME}x" = "alcx" ] then echo "mknod /dev/${XLP_PRFX}${BOX}${PORT} c ${LP_MAJ} ${PORT_CNT}" >> ${TMP_MKNOD} else echo "mknod /dev/${XLP_PRFX}${SCR}${BOX}${PORT} c ${LP_MAJ} ${PORT_CNT}" >> ${TMP_MKNOD} fi fi PORT_CNT=`expr $PORT_CNT + 1` done # #with the ports ##### done # #with the box ##### SCR_CNT=`expr $SCR_CNT + 1` done # #with screen_list ##### echo " \\" >>${LNK} done # #with board_list ##### #NOTE: XENIX requires 16 added to the vector to address the 2nd PIC. # therefore, add 16 to the vector if it is greater than 7. if [ ${V1} -gt 7 ] ; then V2=`expr ${V1} + 16` else V2=${V1} fi MAJ=`./configure -j ${TTY_PK_D}10` if [ ${V2} -eq 0 ] then #PCI only ./configure -c -m $MAJ -a ${TTY_PK_D}10poll || { echo "Error adding '${TTY_PK_D}10' poll entry point." pause cleanup exit 1 } else ./configure -c -m $MAJ -v $V2 -a ${TTY_PK_D}10intr ${TTY_PK_D}10poll -l 5 || { echo "Error adding '${TTY_PK_D}10' interrupt & poll entry points." pause cleanup exit 1 } fi #============================= #============================= #sort the ttytype file for cosmetic reasons sort +1b -2 ${TTYTYPE} ${TMP_TTYTYPE} -o${TTYTYPE} sort +0.2 -2 ${TTYS} ${TMP_TTYS} -o${TTYS} chmod 664 ${TTYS} ${TTYTYPE} #finish the Please wait ... line echo "" #____________________________ #---------------------------- #--------------------------------------------------------------- # attempt to build a new kernel #-------------------------------------------------------------------- chown bin ${TARGET}/*; chgrp bin ${TARGET}/* ; chmod 644 ${TARGET}/* cd ${CONF} # backup() takes care of this # cp link_xenix o_link_xenix # backup() takes care of this # cp master o_master # backup() takes care of this # cp xenixconf o_xenixconf VER=`uname -r` if [ $VER = "2.3.0" -o $VER = "2.3.1" ] then # we now change xenix load address to above 1Meg ONLY for # VERSIONS 2.3.0 and 2.3.1 # THESE VERSIONS need patch to load kernel above 1 MEG. # This patch will cause problems booting Ver. 2.3.4 in some cases. # It has also been seen to cause problems with vpix while using the # floppy disk which result in panics. #start w/o any ${LCNAME} entries grep -v "/${LCNAME}/" link_xenix | sed -e 's/Rd 1000 /Rd 100000 /' >link_xenix.tmp else #just remove old link line for fip grep -v "/${LCNAME}/" link_xenix >link_xenix.tmp fi #and add in all those logged during the install sed -n -e "p s/kid.o/kid.o/ t add b end :add r ${LNK} :end" link_xenix.tmp >link_xenix rm -f link_xenix.tmp chmod 744 link_xenix;chown bin link_xenix;chgrp bin link_xenix clear echo -n "\n\n\n\n\tDo you wish to relink the kernel now (y/n)? " getyn if [ $? = 0 ] # if yes then echo "Linking the kernel..." cd $CONF ./link_xenix if [ $? -eq 1 ] then echo "Error linking kernel." mv o_link_xenix link_xenix mv o_master master mv o_xenixconf xenixconf chmod 744 link_xenix chmod 644 master xenixconf pause cleanup exit 1 else ./hdinstall fi fi #-------------------------------------------------------------------- # KERNEL LINK: SUCCESSFULL #-------------------------------------------------------------------- #-------------------------------------------------------------------- # Move rc.d scripts into place #-------------------------------------------------------------------- #remove just in case were reinstalling after a remove without a reboot rm -f /etc/rc.d/5/fip_rmv ISCRIPT=/etc/rc.d/6/${LCNAME}_init echo "sh /etc/${LCNAME}_reinit" > $ISCRIPT chmod 744 $ISCRIPT chown bin $ISCRIPT chgrp bin $ISCRIPT #-------------------------------------------------------------------- # create our devices and set permissions and ownership #-------------------------------------------------------------------- echo "chown bin /dev/${XLP_PRFX}${BASE_SCR}[0-9a-f][0-9a-f]" >> ${TMP_MKNOD} echo "chgrp bin /dev/${XLP_PRFX}${BASE_SCR}[0-9a-f][0-9a-f]" >> ${TMP_MKNOD} echo "chmod 666 /dev/${XLP_PRFX}${BASE_SCR}[0-9a-f][0-9a-f]" >> ${TMP_MKNOD} chmod 700 ${TMP_MKNOD} ${TMP_MKNOD} #we need the device prefixes to be packed together SCRNS="" for I in ${MODEM_SCR} ${SCREEN_LIST} ; do SCRNS="${SCRNS}$I" done #add read write permissions to the user/group/other fields for our devices chmod ugo+rw /dev/tty[${SCRNS}][0-9a-f][0-9a-f] # display message about the files being installed # /etc/defaults directory was created earlier clear echo "\n\n\n\n\tMoving installation files, please wait...\c" #-------------------------------------------------------------------- # Remove any extra object modules #-------------------------------------------------------------------- # remove any files that we don't need anymore rm -f $ERROR_LOG rm -r -f ${INST} rm -f /tmp/tmp_* rm -f ${CONF}/screen.S ${CONF}/xpar.S mv ${TMP_MKNOD} ${DEF_D} rm -f /tmp/${LCNAME}.inst cd $WHEREWESTARTED #-------------------------------------------------------------------- # display message about the files that were installed #-------------------------------------------------------------------- clear echo " The following files have been installed on your system -" # find the largest alt screen index CNT=1 for C in $NMSCREENS_LIST ; do if [ $C -gt $CNT ] ; then CNT=$C fi done # print screen list, stopping at largest alt screen index CN=1 for I in $SCREEN_LIST do echo " /dev/${TTY_PRFX}$I?? . . . . . . . . . . device nodes for terminals screen $CN" if [ $CN -ge $CNT ] ; then break ; fi CN=`expr $CN + 1` done echo " /dev/${TTY_PRFX}${MODEM_SCR}?? . . . . . . . . . . device nodes for modems /dev/${XLP_PRFX}${BASE_SCR}?? . . . . . . . . . . device nodes for pass-through printers" echo " The following files have been modified on your system - /etc/ttys . . . . . . . . . . . Terminals enabled table /etc/ttytype . . . . . . . . . . Terminal type table /usr/sys/conf/* . . . . . . . . Link kit files for new kernels ${DEF_D}/*/* . . . . IntelliFeatures files" echo " Press Enter to continue... \c" read RESPONSE # Test for presence of notes package if [ "${1}x" = "NOTESx" -o "${2}x" = "NOTESx" -o "${1}x" = "ALLx" ] then clear echo "\n\ The release notes are in the file /etc/default/fip.d/FIP_NOTES\n\ \n\ The following man pages have been installed\n\ \n\ fip_hot\n\ fip_reinit\n\ fip_report\n\ rj45\n\ " echo "\n\ Press Enter to continue... \c" read RESPONSE fi # display message about remaining installation steps clear echo " STEPS TO COMPLETE INSTALLATION Shutdown your system and reboot to activate the new system. Setup your terminals to match the baud rate, parity, data bits, and stop bits as defined in the /etc/gettydefs entry. AFTER rebooting, you need to type \"/etc/mkdev ${LCNAME}\" in order to setup baud rates, terminal types, ... and IntelliView screens. Installation complete. Press Enter to continue... \c" read RESPONSE clear reset_term # Version Notes # 0.01 CEL 08/21/89 -- Support added for SCO Unix # 0.02 CEL 2/19/90 -- Support for 9 boards # 0.03 CEL 3/21/90 -- Added provision for o_unix # 0.04 AKM 9/28/90 -- Added support for Ethernet device driver # 0.05 AKM 12/10/90 -- Fixed bug by removing all ALC references from TCP files # 0.06 AKM 3/18/91 -- Added feature support with revised architecture # 0.07 AKM 4/4/91 -- Fixed oversight: remove unwanted /etc/conf/pack.d/alc1 dir # 0.08 TLS generalized for sco/isc/at&t and added stuff from lynx # 0.09 TLS 5/6/91 -- added stuff for disk.scounix # 0.10 TLS 2/23/92 -- Removed unix commentes in order to make room for 720k disk # ##### # 0.11 TLS 02/27/92 -- # see release notes for driver 1.2.4 ##### # ##### # 0.12 TLS 06/02/92 -- # see release notes for driver 1.3.0 ##### # ##### # 0.13 TLS 11/12/92 -- # see release notes for driver 1.3.1 ##### # chitecture # 0.07 AKM 4/4/91 -- Fixed oversight: remove unwanted /etc/conf/pack.d/alc1 dir # 0.08 TLS generalized for sco/isc/at&t and added stuff from lynx # 0.09 TLS 5/6/91 -- added stuff for disk.scounix # 0.10 TLS 2/23/92 -- Removed unix commentes in order to make room for 720k disk # ##### # 0.11 TLS 02/27/92 -- # see release notes for driver 1.2.4 ##### # ##### # 0.12 TLS 06/02/92 -- # see release notes for driver 1.3.0 ##### # ##### # 0.13 TLS 11/12/92 -- # see release notes ./tmp/sco/ansi_cton 644 0 3 2152 5240302512 7422 %%kansi_cton|Ansi for Computone InstallP\+%;73C'`1hTXnws|d-)lansi_cton|Ansi for Computone Install [%i%p1%d;%p2%dH[@ k?lZm@jYnEwBvAuCt4qDx3ansi_cton|Ansi for Computone Install [%i%p1%d;%p2%dH[@ ./tmp/sco/screen.c 644 0 3 5554 5275322003 7163 /****************************************************************************** * * * screen.c * * * * per screen drivers for IP2 board * * * * Copyright (c) 1991 Computone Corporation * * All rights reserved * * Unauthorized use, duplication, or disclosure prohibited * * * * This Module contains Proprietary Information of * * Computone Corporation * * and should be treated as Confidential. * * * ******************************************************************************/ /*----------------------------------- * This module defines the * entry points for each alternate * screen, including the main screen. *----------------------------------- */ /* driver entry points */ #define INIT fiBOARDSCREENinit #define OPEN fiBOARDSCREENopen #define CLOSE fiBOARDSCREENclose #define READ fiBOARDSCREENread #define WRITE fiBOARDSCREENwrite #define IOCTL fiBOARDSCREENioctl #define PROC fiBOARDSCREENproc /* tty structures associated with driver */ #define TTYS fiBOARDSCREEN_tty /* array of tty structs */ #define TTYC fiBOARDSCREEN_cnt /* nbr of structs in TTYS */ /* used by "crash" program. */ #define HOWMANY_PHYSICAL 64 #include "sys/types.h" #include "sys/sysmacros.h" #include "sys/tty.h" /* clist structure */ #include "sys/conf.h" /* switch structures */ /* Define tty structures for each channel supported. */ /* Note that modem devices share structure with */ /* the main screen non-modem devices. */ /* Note also that the types are commented to reduce fiddling by compiler. */ /* The type usage is correct for the called routine. */ struct tty TTYS[HOWMANY_PHYSICAL]; int TTYC = HOWMANY_PHYSICAL; INIT() { fipMinit( BOARD-1, SCREEN, &TTYS[0]); } READ(dev) /* dev_t */ { fipMread( BOARD-1, SCREEN, dev); } WRITE(dev) /* dev_t */ { fipMwrite( BOARD-1, SCREEN, dev); } PROC(tp,cmd) /* struct tty * tp; int cmd; */ { fipMproc( BOARD-1, SCREEN, tp, cmd); } OPEN(dev, flag) /* dev_t dev; int flag; */ { fipMopen( BOARD-1, SCREEN, PROC, dev, flag); } CLOSE(dev) /* dev_t */ { fipMclose( BOARD-1, SCREEN, dev); } IOCTL(dev, cmd, arg, mode) /* dev_t dev; int cmd; caddr_t arg; int mode; */ { fipMioctl( BOARD-1, SCREEN, dev, cmd, arg, mode); } YS[0]); } READ(dev) /* dev_t */ { fipMread( BOARD-1, SCREEN, dev); } WRITE(dev) /* dev_t */ { fipMwrite( BOARD-1, SCREEN, dev); } PROC(tp,cmd) ./tmp/sco/xpar.c 644 0 3 5305 5275322042 6653 /****************************************************************************** * * * xpar.c * * * * per board drivers for IP2 board-transparent print * * * * Copyright (c) 1991 Computone Corporation * * All rights reserved * * Unauthorized use, duplication, or disclosure prohibited * * * * This Module contains Proprietary Information of * * Computone Corporation * * and should be treated as Confidential. * * * ******************************************************************************/ /* driver entry points */ #define INIT fivBOARDinit #define OPEN fivBOARDopen #define CLOSE fivBOARDclose #define READ fivBOARDread #define WRITE fivBOARDwrite #define IOCTL fivBOARDioctl #define PROC fivBOARDproc /* tty structures associated with driver */ #define TTYS fivBOARD_tty /* array of tty structs */ #define TTYC fivBOARD_cnt /* nbr of structs in TTYS */ /* used by "crash" program. */ #define LPR_SCREEN 8 #define HOWMANY_PHYSICAL 64 #include "sys/types.h" #include "sys/sysmacros.h" #include "sys/tty.h" /* clist structure */ #include "sys/conf.h" /* switch structures */ /* Define tty structures for each channel supported. */ /* Note that modem devices share structure with */ /* the main screen non-modem devices. */ /* Note also that the types are commented to reduce fiddling by compiler. */ /* The type usage is correct for the called routine. */ struct tty TTYS[HOWMANY_PHYSICAL]; int TTYC = HOWMANY_PHYSICAL; INIT() { fipMinit( BOARD-1, LPR_SCREEN, &TTYS[0]); } READ(dev) /* dev_t */ { fixMread( BOARD-1, LPR_SCREEN, dev); } WRITE(dev) /* dev_t */ { fixMwrite( BOARD-1, LPR_SCREEN, dev); } static void PROC(tp,cmd) /* struct tty * tp; int cmd; */ { fixMproc( BOARD-1, LPR_SCREEN, tp, cmd); } OPEN(dev, flag) /* dev_t dev; int flag; */ { fixMopen( BOARD-1, LPR_SCREEN, PROC, dev, flag); } CLOSE(dev) /* dev_t */ { fixMclose( BOARD-1, LPR_SCREEN, dev); } IOCTL(dev, cmd, arg, mode) /* dev_t dev; int cmd; caddr_t arg; int mode; */ { fixMioctl( BOARD-1, LPR_SCREEN, dev, cmd, arg, mode); } fixMread( BOARD-1, LPR_SCREEN, dev); } WRITE(dev) /* dev_t */ { fixMwrite( BOARD-1, LPR_SCREEN, dev); } static void PROC(tp,cmd) /* struct tty * tp; int cmd; */ { fixMproc( BOARD-1, LPR_SCREEN, tp, cmd); } OPEN(dev, flag) /* dev_t dev; int flag; */ { fixMopen( BOARD-1, LPR_SCREEN, PROC, dev, flag); } CLOSE(./tmp/sco/space.c 644 0 1 5256 6052463025 7000 /****************************************************************************** * * * fipspace.c * * * * Memory allocations for Computone IP2 drivers * * * * Copyright (c) 1991 Computone Corporation * * All rights reserved * * Unauthorized use, duplication, or disclosure prohibited * * * * This Module contains Proprietary Information of * * Computone Corporation * * and should be treated as Confidential. * * * ******************************************************************************/ #define IP2 1 #define PROFS_PER_BOARD 32 #define F_SPACE 1 #if defined(ALC) #define ifProfs alc_ifProfs #define ifProfsSize alc_ifProfSize #define nProfsInUse alc_nProfsInUse #define ifClearProfiles alc_ifClearProfiles #define getMatchingProfile alc_getMProfile #define profileIDof alc_profileIDof #define profilePtrOf alc_profilePtrOf #define reassignProfile alc_reassignProfile #elif defined(IP2) #define ifProfs ip2_ifProfs #define ifProfsSize ip2_ifProfSize #define nProfsInUse ip2_nProfsInUse #define ifClearProfiles ip2_ifClearProfiles #define getMatchingProfile ip2_getMProfile #define profileIDof ip2_profileIDof #define profilePtrOf ip2_profilePtrOf #define reassignProfile ip2_reassignProfile #else #include "Must define either ALC or IP2" #endif #define TOTAL_PROFS (NB * PROFS_PER_BOARD) int ifProfsSize = TOTAL_PROFS; int nProfsInUse = 0; #ifndef FIP_PATCH int fip_irq_vector = IVECTOR; /* set to something unusual for make_space_S */ unsigned int fip_address[] = { IOVEC, -1 }; int fip_nboards = NB; /* set to something unusual for make_space_S */ #endif /* not FIP_PATCH */ unsigned int inbs_per_msec = 5000; unsigned char fip_silo_timeout = 32; /* in msec */ unsigned char fip_silo_threshold = 64; /* in chars */ unsigned char ifProfs[NB*0x2b80]; /* 0x2b80 bytes per profile */ unsigned char fip[NB*0x136ec]; /* 0x136ec bytes per board */ /* Significant if we are installed for more than 1 IRQ (PCI boards). Set to 1 if we want to service all boards for every IRQ. */ unsigned char fip_share_irqs = 0; ; /* set to something unusual for make_space_S */ #endif /* not FIP_PATCH */ unsigned int inbs_per_msec = 5000; unsigned char fip_silo_timeout = 32; /* in msec */ unsigned char fip_silo_threshold = 64; /* in chars */ unsigned char ifProfs[NB*0x2b80]; /* 0x2b80 bytes per profile */ unsigned char fip[NB*0x136ec]; /* 0x136ec bytes per./tmp/sco/screen.S 644 0 3 5040 6052464302 7134 ; Static Name Aliases ; TITLE $t .386 DGROUP GROUP CONST, _BSS, _DATA PUBLIC _fiBOARDSCREEN_cnt PUBLIC _fiBOARDSCREENinit PUBLIC _fiBOARDSCREENread PUBLIC _fiBOARDSCREENwrite PUBLIC _fiBOARDSCREENproc PUBLIC _fiBOARDSCREENopen PUBLIC _fiBOARDSCREENclose PUBLIC _fiBOARDSCREENioctl _DATA SEGMENT DWORD USE32 PUBLIC 'DATA' _fiBOARDSCREEN_cnt DD 040H COMM _fiBOARDSCREEN_tty:BYTE:01800H _DATA ENDS _BSS SEGMENT DWORD USE32 PUBLIC 'BSS' _BSS ENDS CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS _TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' ASSUME CS: _TEXT, DS: DGROUP, SS: DGROUP, ES: DGROUP EXTRN _fipMinit:NEAR EXTRN _fipMread:NEAR EXTRN _fipMwrite:NEAR EXTRN _fipMproc:NEAR EXTRN _fipMopen:NEAR EXTRN _fipMclose:NEAR EXTRN _fipMioctl:NEAR ; Line 59 _fiBOARDSCREENinit PROC NEAR push ebp mov ebp, esp ; Line 60 push OFFSET _fiBOARDSCREEN_tty push SCREEN push BOARD-1 call _fipMinit ; Line 61 leave ret nop _fiBOARDSCREENinit ENDP ; Line 65 _fiBOARDSCREENread PROC NEAR push ebp mov ebp, esp ; dev = 8 ; Line 66 push DWORD PTR [ebp+8] push SCREEN push BOARD-1 call _fipMread ; Line 67 leave ret nop nop nop _fiBOARDSCREENread ENDP ; Line 71 _fiBOARDSCREENwrite PROC NEAR push ebp mov ebp, esp ; dev = 8 ; Line 72 push DWORD PTR [ebp+8] push SCREEN push BOARD-1 call _fipMwrite ; Line 73 leave ret nop nop nop _fiBOARDSCREENwrite ENDP ; Line BOARD _fiBOARDSCREENproc PROC NEAR push ebp mov ebp, esp ; tp = 8 ; cmd = 12 ; Line 78 push DWORD PTR [ebp+12] push DWORD PTR [ebp+8] push SCREEN push BOARD-1 call _fipMproc ; Line 79 leave ret _fiBOARDSCREENproc ENDP ; Line 83 _fiBOARDSCREENopen PROC NEAR push ebp mov ebp, esp ; dev = 8 ; flag = 12 ; Line 84 push DWORD PTR [ebp+12] push DWORD PTR [ebp+8] push OFFSET _fiBOARDSCREENproc push SCREEN push BOARD-1 call _fipMopen ; Line 85 leave ret nop nop nop _fiBOARDSCREENopen ENDP ; Line 89 _fiBOARDSCREENclose PROC NEAR push ebp mov ebp, esp ; dev = 8 ; Line 90 push DWORD PTR [ebp+8] push SCREEN push BOARD-1 call _fipMclose ; Line 91 leave ret nop nop nop _fiBOARDSCREENclose ENDP ; Line 95 _fiBOARDSCREENioctl PROC NEAR push ebp mov ebp, esp ; dev = 8 ; cmd = 12 ; arg = 16 ; mode = 20 ; Line 96 push DWORD PTR [ebp+20] push DWORD PTR [ebp+16] push DWORD PTR [ebp+12] push DWORD PTR [ebp+8] push SCREEN push BOARD-1 call _fipMioctl ; Line 97 leave ret nop nop _fiBOARDSCREENioctl ENDP _TEXT ENDS END ; Line 90 push DWORD PTR [ebp+8] push SCREEN push BOARD-1 call _fipMclose ; Line 91 leave ret nop nop nop _fiBOARDSCREENclose ENDP ; Line 95 _fiBOARDSCREENioctl PROC NEAR push ebp mov ebp, esp ; dev = 8 ; cmd = 12 ; arg = 16 ; mode = 20 ; Line 96 push DWORD PTR [ebp+20] push DWORD PTR [ebp+16] push DWORD PTR [ebp+12] push DWORD PTR [ebp+8] push SCREEN push BOARD-1 call _fipMioctl ; Line 97 leave ret nop nop _fiBOARDS./tmp/sco/xpar.S 666 0 3 4542 6052464302 6641 ; Static Name Aliases ; TITLE $t .386 DGROUP GROUP CONST, _BSS, _DATA PUBLIC _fivBOARD_cnt PUBLIC _fivBOARDinit PUBLIC _fivBOARDread PUBLIC _fivBOARDwrite PUBLIC _fivBOARDopen PUBLIC _fivBOARDclose PUBLIC _fivBOARDioctl _DATA SEGMENT DWORD USE32 PUBLIC 'DATA' _fivBOARD_cnt DD 040H COMM _fivBOARD_tty:BYTE:01800H _DATA ENDS _BSS SEGMENT DWORD USE32 PUBLIC 'BSS' _BSS ENDS CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS _TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' ASSUME CS: _TEXT, DS: DGROUP, SS: DGROUP, ES: DGROUP EXTRN _fipMinit:NEAR EXTRN _fixMread:NEAR EXTRN _fixMwrite:NEAR EXTRN _fixMproc:NEAR EXTRN _fixMopen:NEAR EXTRN _fixMclose:NEAR EXTRN _fixMioctl:NEAR ; Line 52 _fivBOARDinit PROC NEAR push ebp mov ebp, esp ; Line 53 push OFFSET _fivBOARD_tty push 8 push BOARD-1 call _fipMinit ; Line 54 leave ret nop _fivBOARDinit ENDP ; Line 58 _fivBOARDread PROC NEAR push ebp mov ebp, esp ; dev = 8 ; Line 59 push DWORD PTR [ebp+8] push 8 push BOARD-1 call _fixMread ; Line 60 leave ret nop nop nop _fivBOARDread ENDP ; Line 64 _fivBOARDwrite PROC NEAR push ebp mov ebp, esp ; dev = 8 ; Line 65 push DWORD PTR [ebp+8] push 8 push BOARD-1 call _fixMwrite ; Line 66 leave ret nop nop nop _fivBOARDwrite ENDP ; Line 71 fivBOARDproc PROC NEAR push ebp mov ebp, esp ; tp = 8 ; cmd = 12 ; Line 72 push DWORD PTR [ebp+12] push DWORD PTR [ebp+8] push 8 push BOARD-1 call _fixMproc ; Line 73 leave ret fivBOARDproc ENDP ; Line BOARD _fivBOARDopen PROC NEAR push ebp mov ebp, esp ; dev = 8 ; flag = 12 ; Line 78 push DWORD PTR [ebp+12] push DWORD PTR [ebp+8] push OFFSET fivBOARDproc push 8 push BOARD-1 call _fixMopen ; Line 79 leave ret nop nop nop _fivBOARDopen ENDP ; Line 83 _fivBOARDclose PROC NEAR push ebp mov ebp, esp ; dev = 8 ; Line 84 push DWORD PTR [ebp+8] push 8 push BOARD-1 call _fixMclose ; Line 85 leave ret nop nop nop _fivBOARDclose ENDP ; Line 89 _fivBOARDioctl PROC NEAR push ebp mov ebp, esp ; dev = 8 ; cmd = 12 ; arg = 16 ; mode = 20 ; Line 90 push DWORD PTR [ebp+20] push DWORD PTR [ebp+16] push DWORD PTR [ebp+12] push DWORD PTR [ebp+8] push 8 push BOARD-1 call _fixMioctl ; Line 91 leave ret nop nop _fivBOARDioctl ENDP _TEXT ENDS END mov ebp, esp ; dev = 8 ; Line 84 push DWORD PTR [ebp+8] push 8 push BOARD-1 call _fixMclose ; Line 85 leave ret nop nop nop _fivBO./tmp/sco/space.S 644 0 3 2167 6052464301 6756 ; Static Name Aliases ; ; $S1080_ip_siobaud EQU ip_siobaud TITLE $make_space .386 DGROUP GROUP CONST, _BSS, _DATA PUBLIC _fip_irq_vector PUBLIC _fip_address PUBLIC _fip_nboards PUBLIC _inbs_per_msec PUBLIC _fip_silo_timeout PUBLIC _fip_silo_threshold PUBLIC _fip_share_irqs PUBLIC _ip2_ifProfs PUBLIC _ip2_ifProfSize PUBLIC _ip2_nProfsInUse PUBLIC _fip _DATA SEGMENT DWORD USE32 PUBLIC 'DATA' $S1080_ip_siobaud DW 00H DW 0900H DW 0600H DW 0417H DW 0359H DW 0300H DW 0240H DW 0180H DW 0c0H DW 060H DW 040H DW 030H DW 018H DW 0cH DW 06H DW 03H _fip_irq_vector DD IVECTOR _fip_address DD IOVEC DD 0ffffffffH _fip_nboards DD NB _inbs_per_msec DD 01388H _fip_silo_timeout DB NB*020H ALIGN 4 _fip_silo_threshold DB 040H ALIGN 4 _fip_share_irqs DB 00H ALIGN 4 _ip2_ifProfs DD 00H ORG $+NB*11136 _ip2_ifProfSize DD NB*020H _ip2_nProfsInUse DD 00H _fip DD 00H ORG $+NB*79596 _DATA ENDS _BSS SEGMENT DWORD USE32 PUBLIC 'BSS' _BSS ENDS CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS _TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' ASSUME CS: _TEXT, DS: DGROUP, SS: DGROUP, ES: DGROUP _TEXT ENDS END ffffH _fip_nboards DD NB _inbs_per_msec DD 01388H _fip_silo_timeout DB NB*020H ALIGN 4 _fip_silo_threshold DB 040H ALIGN 4 _fip_share_irqs DB 00H ALIGN 4 _ip2_ifProfs DD 00H ORG $+NB*11136 _ip2_ifProfSize DD NB*020H _ip2_nProfsInUse DD 00H _fip DD 00H ORG $+NB*79596 _DATA ENDS _BSS SEGMENT DWORD USE32 PUBLIC 'BSS' _BSS ENDS CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ./tmp/sco/fip1_s386.o 755 0 3 260142 6052462715 7412 Le0M  @h @.text@8) .data @ @ZM@.bss@@h.comment#USWVh_32_;FV~ +~ !~ QV 2F^YF^YR@$PCI3<?S PCI   ^_[USWVfMfUfu  Mf^_[USWVMfu  Mf^_[USWV f]f}  E^_[USWVf]f}  E^_[USWV f]f} M^_[ÐÐUEE}|USV] u 0Wu  0WCu 0WCu 0WCC^[ÐUE-@ÐUuuu uUÐUS]ff+fHfEf })9uff-ffEEE[ÐU,S]EfE f%fEf}uEEfE fEf)fffEiÃEEf}ttfEfEffEEfMf9ns4} thnPR tu<+[ËEfMf)nEfMflPEft>fE fEfEEfMf9ns} thnP t널fEȮ9ĮuXͮtOƃ̮} tḫP tEfMfnEfMf)lS fEfE fEffEfEf9EȮM UʉȮEƃͮȮ9Ȯv Ȯ} dhu t$EfMfnEfMf)lhSZfE[E؉EfM fMfEf}E܊ME܋E܊M$E܋EfMfEEME܉9v }Ef6EPuu @uff6E9u4E؉EfMfnEfMf)lkEPuETf6KE3E ME܉9v E Puu; f6u ƃf}t*}$t E\E^@E uE[ÐUS]E Eft(9tffEM;}BE } uff9t$} }1$tfEfP30EP3 fEf)EE@ @t h@EH@ @t4E$@PE$@Ph@ EEE;E@ @t h@sfuE E9~m$@tBs$$t$hhsRjss u<$js$t$hhsȮ9Įu ͮSfE{Ȯ9Įu ͮtyĮ6Įff)EĮ9Įv Įƃ̮ͮtƃ̮̮PĮM;p9u;Ȯ9Įu-ͮu$̮uƃ} tff[U4SV]uEE@@Eȋh9ddEf@8t28u-Ep8tEppEp0EI0R2+H,EttDMfI:fvEf@:juE@DEMfvfH:juE@DEf@<@t/8~'@@u!jPP4E@@t`@u)Ed E|MxffEf@$fESM;|]EnM;|Hf}tJj jE PEPjE|MxPEPS u E^[ÐE܉EEU MEAMEjjM QjjPjS< t&Ef@8fEEf@>fEEf@t tf}Ef^f;EEEEU܈MEBMEMjjMQjjPjS} E~E~EEEU܈MEMEMjjMQjjPjS( E~E~F@VEF4fF:fF8fF>E^@Efff@f}EpE؊NYHE؊NZH E܈EEE?E؊@EE E؊@EE@E؊@ EE E؊@ EjjEPjjEPj SG E\uh0SEP Ef^f;EEtt4EЈEEE(jjEPjjEPjS EƀtExt&xfR0tExR$<t{~Dt*FD 9 u`FD 9uK~[uEEЈEEE'F:EfF:fEjjEPjjEPjS0 Eƀt}u3Ext#xf<0tEx<tN=}tfF<u E]tN@}t F P}E F@tEN@EHhF Pt tEfH Efx }f@ Efx E f@EEfMfff!EEEU܈MEMEME8MEjjMQjjPjS E~E f@fE tGDE}uEtf}j.uSR f (M E}Ɂ EfH Efx }f@ VFDf}t E\f}KEDEEHE(uUhSV] fEE*fEE$?Ef}~f}f}f}eEEiÃEM IEExtx,+EtƃPEEE0fF8fEfF>fEfFw ff G<O< G<$}tE@t E@FF}tE@t E@FF}t.E@t#E@Fg<~fff%@f G<G<@t*F}teE@tZE@FF'g=_O=WO=g=KO=Cw<.$p@<@D@L@X@X@fG<tfG<t*F}t-E@ t"E@ Fg<ϋEf@ f%ff G< fGMEME8MEIEEM+E,EjjEPjjQEPu  EEEMEEuE~^_[ÐEEE~>t ~t~uCEE6EEMA( UUE@(ME>t ~t~uCEE7EEMA* UUE@*MEEEEE~tEE+EEN~tEE*EENEE EENEE EENEEEENEE EEMpIEE EEMpI EE?}tEfxtEEMIEEMpIEE@}tEfxtEEMIEEMpI }t"E@tE@$<u EE0 EE1EEA}tE@tEEMI EE肻EEM+E,EjjEPjjQEPu X /EEEMEEu*FuEEEEFtEEEEFt EE2 EE3Ft EE EE!F$HtHHt8EEEEEEEEFt EEEEEEڋEEFt EEF EEGFt EEH EEIG8t EE'EEG8t EE EEEE"G8 t EE EEEE;G8t EE EEG8tEE$EE /G8tEE$EEEE$EEUEEM+E,EE?t)jjEPjjQEPu % uu ^_[ÐUS]EE*fEE$?EEiÃlM IElxt x,+xEEЋEEEE؋lpEċEЊ@YEEЊ@ZEE =?AD-k$?Phf@v͐f}jdPuK @fdtfdf-ff#ffddPDPu @G$?<@}G$?<@mG$?iÃl I\<褯ElffHlf~fJlLlPlTldXdPu؍DP pdf}(jDPu @fDtfDf-ff#ffDDP\Pu蜮 @F_$?iÃl \_$?dƅeBƅfEƅg)9Ejj_$?PjjdPjS `^lff<ƅ@@@lh t6<t-@@t'@BPh@蟭j h@BP芭@fѭ<@v_$?Ph@f}|j.jjl~Pjj-jjl~PjjfEEf@ufMf9H8u@<uSEP>lf^f;E`Eftf9H:u@DM;uE@[M;1lttCEƅƅ(jjEPjjPjSB lƀtlxt-xfR0tlxR$<EЀxDt1@D 9 E@D 9uiEЀx[u`Eƅƅ'EЊ@:Ef@:fjjEPjjPjSc lƀt[U8fEE~EEjh@u  =@ti@EEE~@E\umf@ju h@ɟ ÐhXh@u 誟 1+-w.$t`D`D`__`_EEx>,f@x@PExP, uf@MEExx@ E~EE͂E>Ex$EjjEPjjEPju迢 ExffEf E~E̊E EE&EEȈEEE!EMxM芉LEEE;E}jjEPjjEPEȃPu EEMxfD\fEEffEE~E̊E EE&EEϊEȈEEPEPEMx]P蠝 jjE~PjjEPEȃPuz EE0;EQh uE~P u:lEfǀPEfǀREfǀTEfǀVEfǀXEfǀZEfǀ\Efǀ^EfǀbEfǀtEfǀxEfǀzEfǀvEfǀ`EfǀnEfǀpEfǀfEfǀhEfǀjEfǀlhXu E(\hXu @i\>h@'E uf@hXu h@hXu EP-.$Ldcc``b:`US]EEEEp]␋p]@Wp]p]p#(p`E܋ppE؋Ef@8f%f=IE؃x<E܃x,/fx0$@,E@,E܋@,E@,E܋@,E@,Efh0Ef@8t8uE؃8t p0ԎE܋I0R2+H,pttFMfI:fvEf@:ju܋E@DE܋pfvfH:ju܋E@DEf@<@t/8~'@@u!jPP4E@@t`@upd ju܋E@Dp`E܋pdE䋅p^@pߋpfzpfz}h@pfǀzpfzuzPRE܃xuE@E܃$Ep^@pffEp^@puuuEPpuRf u2E܃xt)p^@pfMf9p^@pfMfEPpu p^@p p^@p p^@pf t'E܀`Aߋp^@pߋE܃:P轋-fm}t%E0裋dE0萋OE0~dE0k dE0U dE0? dppdfm}t%E0dE0OE0ҊdE0迊 dE0詊 dE0蓊 dppdfm}t%E0KdE08OE0&dE0 dE0 dE0 dppd\fm}t-E0蟉fhE0苉fd[E0rfhE0^ff hE0FfdE02ff dEȀ6 }N6EPh@dPhPh@ EȀ6 u h-@͈EPu良l$<Oltp~p~ltp~ p~ltp~p~ltp~p~p~Pp!.$0xnnn8op,p$u5EMiÃEEMPuS E} rE}r$$HbtHVHS襎 $@t j@xjs.~j@[ÐUS]E iÃE M  E % j EpP}  9w  Eftrft[ÐEfǀt[ÐUS]EjjEPjjjS4 t&9w [U EP|E M uÐUE ~E|EE |u tu|+ÐE ~EEEEjjEPjjEPjuo uu\|ÐUiE6EE%?iEEjEP|EM uuu uuuÐUiE6EE%?iEEfM ff u uu٬ EfM fff!EPm{ÐUiE6uPuu ÐUiE6Pu ÐUu iE6PuuuEPUS]zEiM6U R+hPu iE6PuS>uz[ÐUSiE6M IfEf%?khSCD[USWViE6M IE$?EE$?EEkhiu6EizExt!xfR0tR$<<{Dt2CD 9 CD 9{[=fC<u C@^;E u^8|tj^PKy봐fn w jnfffn +#fEM;~fEf%u jEPEPj5EPV| t+E)ESCD ux^_[ÐÐUSiE6M IfEf%?kh؊E$?SCD [US]xEiM6U R+hPiE6PuS!uw[U SViE6M IE$?EEkhiu6E ^[Ð-tuuuSfw^[ÐU$ExE= @tEPhȐ@/wEE= @EPh@v= @hF@v= @EPh_@뺐= @tkh@ƃ= @t[EPh@뒐= @tChƑ@랃= @t3h@뎃w.$ ,HXp}v>h@4v/EPuuh @vuhb@vEPjMQx EHuEM8H=uh@*uhÒ@uh@uÐuh@uEE6E9E8u߀}thhu܍EPwHu= @tEPhِ@AuE܍EPjMQWw EHR= @tuh@ueEPj<MQQw EH= @tEPh@t}}EMEMjhdEPjxEÐÐU SWV]u HǙ9Ct+^_[ËO u^_[ÐUSWVi\ÉEEp E;u]\9]vm9suEfKf9HufK f9HufKf9H ufK f9HuCPEP5 t;u-\fC^_[Ð}t]$9}7i\EV{V^fC|u뗐+^_[ÐU}tE-\E |9 ÐEÐUE=t E;~+ÐEi\ÐUSVE =tE ;|+^[ÐE PE;u ^[Ð t u fC t>ufE fFE0뻐U(S]E*fE8u [ÐfEf%iÃEqEE؋xE t@u `EE܋E؋EE؋DEEEEHE4Ehuqq tE E EtċEf@>t8q u E@@ugPqEMH4EMfIfP8EM܀y8ffffH:E8P9tEH;Ef@:tH:E@@tEH@Et  M uE@DE`@E؀uYp[ÐU SV] E*fEf%iÃEDHEpEf?E E\t fF@f@E􀠁VFDuo^[ÐUSV]uoEE c@EiƃE\x EElE\t0Mf fhE\(fC(f)C*fC(cA눋EMfIfh&M(E\f&f&f uaj Vhn OKAFK@>fc@4w/.$\hd4ڐ<D̐uxn^[ÐUS]E(E&EE:EfǀhExPSx t8}uEEf&EE9Es2EEfhvfh}tՋEEM Őf&tj Shm [ÐUlSVfEfEE}uE \E ^[ÐE lEEfxtf@ffE܋Efxt@E<@vEE \t\E Mf fh+^[ÐE dEEf@fE̋Ef@fEEMM n;C$EE P9 t;E8tfxuwE8tI)SCDuOEE PEE PE PuEE܋M ;s\EEE@PE0E Po fEf >EMEfMf)HE K@ E;E} EM++EPE9EtEuE PE8uۃ}gE `fC8fEfC>fEfCfEfCjTjjjj&.6 > FNV^fnv !~#%& ()+,./"12*45278::;B=>J@ARCDZFGbIJjLMrOPzRSUWXZ[]^`a&cd.fgPGfGgXÐGfGg `  RVWt= v wX[|t3.;vFF.ǃ._^ZÐ>3M %&`_X..jt ..t.;3s .~*..a.Њ*"*,", u $ Ê* *, , `__"Ċ t*.` yj|o:aÐwHG0t;G2w$؁wHÐ ؃wHÅGFt$#GFGFuGfGg u$  $  ÅEFt#EFEFu  u$  $  GFGF $ Ð`+ێ=|&}΀>|t|K0 | r// t//Ou/뷐I&G;@sÐBRPZÐ`+؎t5>|u|@utaj|1j|@ċ?E{+>{Ð $V%^ÐGH%~u GHËD+GTGVGHt"gHG8;G0tOHyyyÐM t Ð M IÐ'I:ìIQȰ*Y GZ t$GJ%GJuGJuW_ÐGFu OF`ÐGFt tOF_ tI8# Ð`ȋGF@t 3 ttt$ t@u u *t@GHt بuʀ;GuGFtGj;GnuG;G"u ;uGHtt 4aÐ`ȋW` q4aÐ`ȋWb ]4aÐ`р>|tK&r;{Ȁr+{r{Ѐr {4aú ъ`.3ɋ,t)txDt .>t;GGuFFAra I<w.t t t t ÁOH $ ËGH%߉GHu  Ð|Sg_؃.)l3[2I|I|Ð\\jrz\\\\\\\&\\\\\\\*\@JT^\\\p\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\$8JN\d&:< \B b >|u+ t&|ð &|Āu6||Ðt&|Ð |u ||ÉGZtOFÃgFÐGPGP;GRr s+GRGPÐ>|s8WP3>|G_ GLG+G-;>|s>||X_ÿpPE8+E0uXQMHE0EE"  t-u't t t8# MHYXÐSQ+KuY[ð+؎м"3|{{|| *kl%[؉|,D.t G*B  9 *kb `fR V+ؾD.t#G u j|G*0'ϰ@ $9V="D=C|+|>|ut ; 2>w$tu  @{t{+ë@dxyx4y@Dt yyyzz{D{+؎{|EXEXFX~|V|,X||||||||{ |||||{+{-{|@|2% p>|4yy,>^_ë+{->|p+>||j|||3||| |{xy,n|>^|u,n|_>^|u⻋yxtGGGGjGnGlGpGG"G G${GGrG&G GtG(LJG GvG*GGxG,LJHHGG|G0GLJPG2kG4GRXGG8__6GNGFE<>|uE0E4 uIE8 B>uE03>u E0E4>u E0"E4 E0"E4(>|t(>|t'&0>0u| u| u~||?t j| }<u}r| |@>|u L(+؎z*VQSU{tG'а486:( tN Gi t <*>*,ڰBP.6t.&7 XMuItm][Y^ÐSQWyx_X.6t.&7_Y[Ð>246>|u8:<ø8:<À>|u*{** u  u-&u uu   u uFк Ð>|t&0>0u>!;>);>=>=>f<DLDwJJJ,O@;Ox<ln>|u"*{{{ú@{- {-{ШШ  VR3t tZ^Ð+؎xDuGfGgа $   tL ?10?  gF" t+=w ;tG`Gb|=2r |)|S_XGGGG[3GGG"{-G0GfGgа C $$  tL `>|u>|uj|#                                                                                                rjbZ RJ@6,"`+ء{"t2.Z.Zr{"u"aϡ{`+ء{"t2.Z.jr{"u"aϡ{`+ؐ{"u{"t>2.Z.zr(2.Z.Zr{"uӡ{"uڡ{{"aϐ`+ؐ{"u{"t>2.Z.r(2.Z.jr{"uӡ{"uڡ{{"a      VWUwGHuF||;Q2)L<ϋl ;YsE&-GtyyGG>y]_^Í봋| | | &-G;tt;tĪ;tЋ%x}䘊؊ȋEJtFS. t5PQ.).)"؀$  ߰YX[jO(jIjCi=i7i1i+i%ixibiLi {Ð6iGքyЋ%Y$<u`mH*GG;wd+GŀtkMb?w +;s5l?u>yGyGG>y_oH$?Tl +l뽐ȅu $ ː;Gwt$t t$ k]_2EHut|t|t|t-EJtπEJtQPߊmeEJtĊXYt@EJ@t_EJt}EJ t#QP߸EJt EJtXY`+ؐ*Ψt6id"aϐuΨtLi?ɐj<jj8Tj4>j0(j,j(i$i iii|itxi lbidLi\6iTPSA[XuYÐ@t $ $ j|"oj| a䐃@{ÊGΨutЋ%8]oFFuuuM u<;5tu&t%t UȉEEFF;u s}Gd;rȋ֋E ;wt)Mt?u,O`&n;sVu}u F;sQuoF$?ËU#WZtѐuUWPWP;WRrPX랐u }u 륐+놋u 몐u $  뙐 $ @t6zzFF6zt̀i u,u$ G^ $  D2ưƃ6u *ư*ưƊG\*ư  g^ 2ư $ `+ؐ*Ψt6i)됸"aϐt6iϐ`+ؐΨtLi됸"aϐtLiϐj|  $(,048<<w!.|uy4y>|t Gfr*GgrH?r4UyrдpGG⪸뙐+ظU+؋^^.dG`Z]U+؋^^.dGbZ]USQRVW؋^&GY*&Gxƅ7s'^&tʄus<ʘ_^ZY[]DFu"LF DFuƅWS狝ˊDfDgкGGGGGG4G6G$$ ĈG [&DZ&Ds&D &DGi$$=&D$<rw46  @ &t &t     tN tVWtXʹ_^WVlXDg*DC^_&G#<uƅUƅ !ƅ d̋ʇDDDD D D DDDDDDtDjDnDlDpDtDv Dr D|DŽDxDŽD~DŽDD"D D$D(D* D& D0D8D,D:D2D4t6DŽDŽDŽDŽ DŽ DŽDŽDŽDŽDŽDŽDEDLDPDTDVDŽrDŽpDZDŽvDFDHD_ADJDbD`Dd ƄDeDiDƆUVW|X>ʹ_^S>ˊDfDgЊGGGGGG4G6G G tN t[޸ۇÐWVSt拜ʋ;Gu܊<t<ˋ ǀNrt Ps  ؀|!2|! ̈ˋ?˫˫?Ƅ[^_Ð&tkWV狵ۋ|";|u+=r#>Ɔ&G|"D0:u ^_Ð>>Ɔ^_Ðƅ&GZu33Ð_#"_4 t j|$_O t j|ڀ>|t_*P6|~3j*||3ۊ|{t!$_!| t j|1||u{x 6z;6zu{ᐋzFF6zGFu{wD GBD G@|SPOXȃ?F6|9*ZwS.) u|Gw>;@s]|gitGiP t != u@=j| VفOF6zzFF6zB랐***********+ +++ +8+++++++++++>,H,*^,h,r,x,,,,*-<-.*P.Z.d....//00*0`0~000**01161D1L1V1p111*111222J2****\2*****2*2**j| qؐ5*-ð%*øo 4Ð6Ð3iߐƇyr| úa<w' u"$$?t t ÐP Xt $? @Ð b@}ְ@W֐OJk֋GJ%GJu7ÃOJKb֋GJ%GJuð /Fְ ֐UoJרtt t$<tr<w#t@ @oJ<$ <]< $ >ÐֈG\OF`GfGg g^ ÐRWJքutt ʀPֈGeX@tʀWJ<$ >|t|u> >|@tG]|tG]|ugFdGFu[OFLJ~GtGjGnGjSVwh拴{_g*^[ GjG<>|t`_= at Ð>$>$GFt*GjGngFG t $>|$ |*t@t̀$? $t  $t t |%|% |%4 |u * &|* |@tGH%~u GH| t $Ð $$ *$ **$*$ Í+QF@YS.6_Xt.&7[Ð9ӊ4Ӏs<s ӊӆшӊӆЈ*k vOF҉x>|u`_2 at | u$ OiB`__ a<v2 t $$ OiDc*k rÐU҈M:ÐC$ t $)*= w =ZrZQȋGdGRYQȰ*Y GZؐQȰ*Y#GZؐOJAبtи0ѐGJ%GJuиАOJ بtиАGJ%GJuϸАg$u< v GdÐOфtOJÃgJÐ=P9ъ4цP{XZtt X]R<r< w % ЄtB()*+89:;89:;89:; ()*+89:;89:; ()*+89:; ()*++؎4yy|vu>|t |"|m+x;vrLJvc Ð@`32t4t@a`3ÿ4t2tt2ta`34t2tu OO 2ta`333WtBOx 8tOyF_ Arى|za+؎ 2t4tt0rTGH ult@t t;gHr L0r(gHLJpwXGg*GB%^YFFWw";wugHt*QVtߩuu;u3ptrtP+t;rrpLJp0pu&|t0r ;u_pFpP퉇tzp:u WGȍ_tO Mu鋯zp:s WGȍ_t Mu鍷pIpu󤋏p땐G;G"t OHtOH@z+Ƈt gHLJpG;G"tLJpOHgHwXGg*荇Bj;uÎ&F;sGHu ËP@;sXQROHGfGgt t t8# OHYZXÐWO0;&s$GHuOH>yyGG>y_Ð(אYHAAWAAANW-+'!o[QQmQQQbm861)PQVWPQVW PQVW<wC*s8.6S_Xt. 7[tt_^YXw ӊɠ$<@u.>u j|Iˠ& |y|?,|ty|y|PD2>|t2*+ҽ.7tDDDT. LGBMuֻdD2>|t2ȘX|.7tDDDD. Lf*|Lg+͈LhLgL_W. LX_|uGMu>|uÀ>u {({,À>u{{({ {,À>u"{{{({{ {,{{{{({{{ {,P<w$ OiBXÐPV.999999999@ $ OiB^XÐP<w$ OiBXPEfEgXÐj6ʉ>ʣʉʉʉʉ.ʋ|ʃtqzSl [ʌʉ&ʍG+ɎыLJ ʉPʉ Pʋʋʋʋ.ʋ6ʋ>`ʉʋ&ʝ+ːˋyyÐUVtNMH;ytݡ{9|syMHE8+E0t;{v{m*u"+;wŃ;EVwE0@u ET)EVtg2ҋE_Q@%|]$o+Ɏك+;u*s#u"Yt u ~  uS>u(ؐtuU0;U4rOt ؋t t8# Pyyy>|tR>|u|.|t;|2.|t>|u.|t;.|s .|;.|rË{+|6|@|@̓<|<|+;|3̀+@@|+o;6|rpu6|.|Á>|s)WP3Nj>|G_«;>|s>||X_ÿp됁>|s|W>|];>|s>|_ÿj|;{s86|>|;st;{r|6|.|Ðjސ~ʸ|D z`+ێۋ~ʉ t u~aːj|+؎|y:4y|GFt-FFIt GFuFF>|t |."V|GFu&w;7tQ_<w Y^t j|"ċ &Gn&+Gj&Gr-;&OFQ&Wr&o&jtj|!Đ;r;rY+G;rjF;rwFuN)N;~rÄt+;~r;~rĪ;~rFnt j|" &GrF&GF&F&~F&G]F&FF&Gn&+Gj&Gr=Zw-F %FN&jt j|!3F;r+FnFt+;vr+v;vr+vFS+.Cs);vrFIt+.Cs ;vrF[+؋F-y j|t+ FWj_G;~rjF~F;FuLJF;vrw@%&Ð^|:;~r3FK^FHxFF uÐF@u2%QYË^~F;~r3FK^Ë^~;~r3FK^ÐÐ^|~uFu ;~r3FK^Fu΋VuF@t,Qʁtt QY$%=t=t dFHFÐ^~6F$u;;~r3FK^Fu ÐFt F@u dQYF t;~r3FK^1Ft~t ;~r3FK^ ;~r3FK^^~0FFu;~r3FK^Ð;~r3FK^ÐË^Fu~3;~r3FK^Ã~;~r3FK^Q2Yð;~rV+ª;~rFFnË^~ʋVt;~r3FK^V+FFuÐF@t QYÐFuF$,ðdÐ^~;~r;~rF^Ë^F@u~3;~r3FK^Ã|;~r3FK^Q*Y@C@@@@@@@t@BAhC`B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|&|* &|~ʅt&عå9Out;t9Ou t;uj|$( ||(%~˃>|t( |(%~ː`+؀>|u:+~|t ~|t"aϐV|~|VQ|Y^ي&|뺜zʁ|+7;t&5|>v؋t7>v>^/lÐ>Fۉ/݉_ Terminals supported: 1) ANSI compatible 2) Wyse 30 Please select: code segment= Monitor v2.5 > Pardon? No address specified : Loc= FATAL ERROR= Monitor commands:- D,d[[xxxx:]xxxx] - dump memory L,l[[xxxx:]xxxx] - dump single line E,e[[xxxx:]xxxx] - edit memory F,f[[xxxx ]xxxx] - fill memory paragraphs I[xxxx] - word input from port i[xxxx] - byte input from port Oxxxx xx - output word to port oxxxx xx - output byte to port G[[xxxx:]xxxx] - goto address W[[xxxx:]xxxx] - watch a word C - interrupts off S - interrupts on s - single step Bxxxx - breakpoint set b - breakpoint clear R - restart breakpoint r - registers at brkpt X,x n - examine channel n H,? - this messageANSI Terminal  z+ z. z-z, z"Wyse 30 Terminal TY =F ?DdEeFfGgHhIiOoCcSsBbRrWwXxLlWQQ6R6RSSSSWWRQ.Q QPvQvQ~Q"VU2V VVQQSSQQbXrXXXXXXXP$Y2Y@S flags= ax= bx= cx= dx= cs= ds= es= ss= di= si= bp= sp= ip= head= tail= nbuf= buf_beg= buf_end= out_count= this_tag= room_left= ring_lowater= ring_hiwater= ring_chan= ring_capacity= receive_flow_state= receive_flow= this_block=ds= channel= host_ring_out raw_ring_out host_ring_in raw_ring_in uart_out_ring= channel_exists= channel_open= command_pending= command_pointer= as_of_out= room_for_out= update_out= hiwater= as_of_in= room_for_in= chip_struc= flush_flags= rcv_buffer_mode= my_1400_mapper= my_1400_channel= my_1400_chip= ch_tx_flags= ch_rc_flags= channel_number= pause_wait= pause_init= alt_nseq= opost_column= opost_bookmark= opost_oflag= tx_char_cnt= rc_char_cnt= alt_enable= acked_sequence= doing_break= break_time= opost_active= opost_cmd_pend= opost_fill= break_etc_save= xmit_int_type= ch_shutdown=+؎PM FUMUM>|txG |_ 7 tH< t.<t<t ሇ&CHs tKH΋6fƇ& t&οKuA+.;K3HξGGþKG|UHu'(Ь<,t< tÐ>Hu'Ь<,t< tÐV΃>Ht 'УVΰ SVkËV΃>Ht 'УVΰ /VcFÐFÐL &C$uۺXXL΋>J >JΌLÐpGpXR3۹&C3۹&< r<~v.CpG*ZJuP΋>N>NΌPW6^X_sG9:/x t< u< u< uG<u$O6N΋+=r=r 6NW<.ujZ2ɐ<0rL<9v $_,,0PXZt) t& #< r<~v.p &vvuR6jZRtvu 26lZuvuy26nÐT΋>R6>RΌTRþUGːW'`[+xÿQY_Ð'9.dLpGLLGKKGKGpGLLG ~KGrKxG"fKlG&ZpG`LZLTAKG4K:'K-pG 5MGLAMGNPMGP]MGRgMGTrMGVMGFMGH_NG`mNGbÐ`NFt؎.}fzU{]>zt Nzaϐ`Ft؎.}΁fzU{>zt Nzaϐ&{ΐÐSV>yt?'%أw.yΰ.^[zU{Ð.}+zU{ÐW>yt>wΠy.y_ÐpGKvXGKvX:KvX-KvX Kv XKv XKvXpGKvXKvXKvXKxvXKkvXK^vXKQvXGGDÐG<<t<tY\΋J^ήJ`ΦJbΪJdβJfιJhJjJlJnJpJrJtuv\J^ K`KbKd KfKhKjKlKnKpKrKt u váHHt'<<:u0Ð+NΊ$Ѐ =Ì:Q3ɐ< t t&,0r"< v<r,<v <*r, <w ȬאNYÐȎ&F tÐ tzQ3ҹYd Ę P t0XXÆÐÐSP$Y.0X[ÐÐP20XÐ0ð V6 Έ F$Ή6 ΁>$uV^^ú$tÐ>Ft>|u `at(6"΃>$t F6"$κuܡ$RZÐRPtXZÐXZRPtXZ0123456789ABCDEFSPY..X[ÆÐP.<tXVWvFFF~uVY u[FF u3PV YYF^v+.[&~tFDXPDYPYY~t FVY~uu~u~u^v.[3|Xt"~uDXjV~ YYDXPVr YYF~t FVYB|Xt"~uLXjVA YYDXPV5 YYF~t FVY1,FjV YY|X }PV YY_^ZA[A[A[A[Z[/[VZZZt[ZH[H[M[PZVWv~jV YYFPV YYF~F^F?u~}%+FFF j Vb YYFF;F| GPVI YY=ujV< YY_^VW~F ^+ߊ DZDXFDYDDDDD DDD D!D[D]D^D_D`F ^@0F~|F ^@PF~|DTDVDZ#и ‰FF$F~uJvz Yh5V2 YY u4h8V% YY u'hBV YY uhLV YY u hVV YY tFb9~}_^VWFb~tDFD\VYYljDVDTD]D/ uhjVjVGYY u~a.;FtCC.g DD^㋇D 3DTVYD]D`o|u0|\uD]VYYD]VYY.|\uD]VYYD]VYYjVYY؃w*.aD]D^D]$D] D]$D]D]VcYYhVZYYjV/YY؃w6.aD]D_$D]T"ˆD]D]T"ˆD]k\@wjV\K@D\wjVjjVYY؃v.a\GD\?Du \G;D}F؋DG\KD@\GD\?Du \G;D}F؋DG\KD@\F a.;FtCCw.gF\؋G\D@t\GWڈ@@L:\GWڈ@%\GWڈ@L \GW0@DTD_D]D=t=tF+DiVkYYjV@YYF~t~u~tbDmV:YYV YF^w3.wahVYY#hV YYhuVYY hVYYjVYY8hVYYjVYY"0DTD`D] DTD^D]A_^`a aaABCD_2aXa`0`r`HaE`0`]`E`*`_T___^^^^{^^^{^ 0_]^^]VWvDYFj FPYY%=uU%=uK%FD;F}3%+;Vt3D FD_D]^LJ %= uR%=uH%F~~3%+;Vt3D FD^D]^LJ `%=0uR%=uH%FD;F}35%+;Vt3"D FD`D]^LJ 03_^VvjV5YYDXPV)YYDT;DVu D]:D/udDTDV\GD/D]TT ЊD]+ ӉVjDY@RPTVFF FNjvvs^VW^GY^G]F~} ^GHF^G;FF^FG]㋟YG ㋟YG0㋟aG ㋟aG0FF~tF 30㋟YW F3F~tF 30㋟YWFF~tF 30㋟aW F3F~tF 30㋟aW^jvhjvvVýYYVFvVԽYYVF^&F^&FPFFzPFF+F=sPFF+FF^&+FF^&F^&+FF^&FPF~vvvvYYFvvhYYF㋟Y ㋟a Gv㋟YG 0㋟aG 0~ w &~cw~w~'w%F 30㋟YO F3F~uՃ~ w &~cw~w~'w%F 30㋟aO F3F~uՋYvnYYav^YYjv1YY؃w.f"FN FF~t*_^fffffUFN]UVvFPv3YY<u^]UVvFPvEYY t<u^]VvDZFFtF^VvDZFF+F= v#FtԺٺF3^VWv~tVYVYF~wF~vyF- ؃wg.haVkY%FV^YVUYЋ^x0.V;YD[$V1YDPV)YDQV!YDRVYDS[_^$hh(hXhbhVvDZFFuFF^VvDZFF2$^VvDZF藹F葹+F= v$FutںFF^UVVF3PXF|^]VVF3PXF|F^VWv> uj jh0} j PYY %F%V ;u!%V;u%V ;t jV8YYFF3ƺbV؈lh2ƺbPYY_^Vv փ  ‹փ ‹փ ‰FjjF@RPk FRP%^UVW3jhYY*Nf3.~rPhYYjhwYYjhmYYfF;v|3$jhTYYjhJYYh\Y% F|jh-YY_^]UVW~jhYY +PvvVF3G~r u~rPhYYjhYYjhYYjvvXVFF;|jhYYjhYY_^]UVjhYY3hYuF=d|jheYY^]FVNFVVFPrevious MenuBeginPort 0Port 1Port 2Port 3Port 4Port 5Port 6Port 7Port 8Port 9Port 10Port 11Port 12Port 13Port 14Port 15    * > R w   Test Passed  Press  Missing Rx Data Press  Bad Rx Data  Press  Xmtr Busy Press  not currently implemented$ / : E P [ f q | S,2TD S,3DTR S,3RTS S,2RD S,2CD S,3CTS S,3DSR S,2RI' DCD - pin 20'S.1c' DSR - pin 11'S.1c' CTS - pin 4'S.1c' RI - pin 22'S.1c' DTR - pin 6/8'S.1c' RTS - pin 5'S.1c' RxD - pin 2'S.0SMc' TxD - pin 3'S.0SMc' DCD - pin 5'S.1c' DSR - pin 5'S.1c' CTS - pin 1'S.1c' RI - (n.c.)'S.1c' DTR - pin 2'S.1c' RTS - pin 7'S.1c' RxD - pin 6'S.0SMc' TxD - pin 3'S.0SMc' DCD - pin 5 'S.1c' DSR - pin 5 'S.1c' CTS - pin 1 'S.1c' RI - (n.c.) 'S.1c' DTR - pin 2 'S.1c' RTS - pin 7 'S.1c' RxD - pin 6 'S.0SMc' TxD - pin 3 'S.0SMc' DCD - pin 20 'S.1c' DSR - pin 11 'S.1c' CTS - pin 4 'S.1c' RI - pin 22 'S.1c' DTR - pin 6/8 'S.1c' RTS - pin 5 'S.1c' RxD - pin 2 'S.0SMc' TxD - pin 3 'S.0SMc'h<\`8ltHxB(P     B    C   , , , , < l t t t t L , -t t t t \ < =t t t t l L Mt t t t , \  ^  t h  r  |       , , , ,  t       $  ,  4 $  < ,  D 4 L <  T D \ L  d T l \  t d | l  t  |      & - 4 ? M Y c n z      $ $    D4 D< , DD 4 DL < DT D D\ L Dd T Dl \ Dt d D | l D t D | D D D D, /xx: tx cps *****xx: tx cps *****xx: tx cps *****xx: tx cps *****xx: rc cps *****xx: rc cps *****xx: rc cps *****xx: rc cps *****Install LoopbackPress to start Cable to RemotePress to start Local Loopback  Running ...Remote Loopback  Running ... Intrnl Loopback Running ...Transmit Pattern Running ... 0: 'C 1: 'C 2: 'C 3: 'C 4: 'C 5: 'C 6: 'C 7: 'C 8: 'C 9: 'C 10: 'C 11: 'C 12: 'C 13: 'C 14: 'C 15: 'C** Main Menu **Monitor a PortMonitor a SignalEstimate CPSDiagnosticsLocal LoopbackRemote LoopbackIntrnl LoopbackTransmit PatternBaud RateData BitsStop BitsParityData PatternTx Flow ControlPort Number5075110134.51502003006001200180020002400360048007200960019,20038,40056,00057,60064,00076,800115,2007 bits8 bits1 stop bit1.5 stop bits2 stop bitsno parityodd parityeven parityspace paritymark parityColumnsBarber PoleUUUUU...NoneXon/XoffCTSPress for menu(counting...)eNd Of CoDe0 1 2 3 4 5 6 7 1011121314151617l@o@r@u@x@{@~@@@@@@@@@@[%c%c ] 0123456789abcdefdo_vp chan_ptr = 0x%x: tp = 0x%x:  WARNING: EISA IntelliPort-II board installed for slot %d was found in slot %d. ERROR: scanning for EISA IntelliPort-II board (unit=%d) installed for slot %d. No unassigned EISA board was found in any slot. IntelliPort-II Board DISABLED ERROR: IRQ mismatch for IntelliPort-II board found in slot %d. Driver installed for irq %d EISA config set at irq %d . IntelliPort-II Board DISABLED IntelliPort-II Error, incorrect address: 0x%x board_error = %d Driver did not find IntelliPort-II board installed at I/O address 0x%x! bptr->por[] = : 0x%b Unable to download loadware to IntelliPort-II board %d at I/O address 0x%x! IntelliPort-II board at I/O address 0x%x not responding to loadware download! Unable to read success status for loadware download to IntelliPort-II board at I/O address 0x%x ! 9 xpar_ticks = 0x%b: ERROR!!!: The following IntelliPort-II board (in a 8 bit slot) is using IRQ %d. IRQ %d requires a 16 bit slot. IntelliPort-II in 8 bit expansion slot IntelliPort-II in 8-bit mode (SW-8) 1.4.2%%sserial - - - unit=%d type=IP-II DV=%s nports=0 !!! Computone Intelliport-II board #%d - NOT FOUND! 48 ZERO ports found!!!!ERROR1.4.2unit=%d type=IP-II DV=%s LV=%d.%d.%dserial FV=%d.%d.%d nports=%s Board %d (0 based) has reported a FATAL INTERRUPT!!!!!! The LED on the board should be blinking an error code. NOTE: A common error code is 30 (3 green flashes followed by 1 red flash). This is usually caused by a disconnected external box. You MUST re-connect the box with the power OFF! loading vector %d: unable to start a ITOOLS_SET_DIAG ioctl for port 0x%x killing tp->t_pgrp=%d unable to do a ITOOLS_UNCLOG_REQ ioctl for port 0x%x 1.4.2I:v%d: stat=0x%x: STAT=0x%x: Board %d (0 based) has reported a FATAL INTERRUPT!!!!!! The LED on the board should be blinking an error code. num_bytes=%d stat 0x%x: bookmarks went negative! IntelliPort-II board %d internal diagnostics is reporting a hardware error. ST_HWFAIL: rdwr = 0x%x addr = 0x%x IntelliPort-II hardware test error messages disabled. Error count exceeded. ERROR!!!! request for new_screen = 0x%xIgnoring request for invalid screen. PCI_BIOS = 0x%x val in pci_handle = 0x%x found_addr = 0x%x vector = 0x%x IntelliPort-II PCI interrupt %d (decimal) added Unknown interrupt type: Out-of-range interrupt vector %d (decimal): Out-of-range IPL: Vector %d (decimal) already occupied: Shared at a different IPL: Unknown error: add_intr_handler FAILED IntelliPort-II PCI card %d unable to get resource. Base addr = 0x%x IRQ = %d(decimal)ip2_pci_read_config_byte FAILED. retval = 0x%x ip2_pci_read_config_dword FAILED. retval = 0x%x ip2_pci_read_config_dword FAILED. retval = 0x%x IntelliPort-II PCI device %d not found IntelliPort-II card %d (installed as a PCI card) not supported in NON-PCI machine Y@`@0 @(#) devreg.h 25.4 92/09/07 @(#) ipl.h 23.1 91/03/03 @(#) types.h 23.14 91/11/23 @(#) param.h 25.2 92/08/03 @(#) s5param.h 23.4 91/03/16 @(#) conf.h 23.6 91/05/21 @(#) dir.h 23.1 91/03/03 @(#) s5dir.h 23.1 91/03/03 @(#) signal.h 23.15 91/12/05 @(#) errno.h 25.2 92/09/09 @(#) page.h 23.1 91/03/03 @(#) tty.h 23.7 91/11/03 @(#) cilock.h 23.6 91/07/25 @(#) file.h 23.4 91/09/13 @(#) termio.h 25.3 92/09/11 @(#) immu.h 23.8 91/10/30 @(#) sysmacros.h 25.2 92/10/26 @(#) user.h 25.1 92/04/15 @(#) select.h 25.1 92/07/31 @(#) systm.h 23.3 91/04/27 @(#) xmap.h 23.5 91/09/12 @(#) scankbd.h 23.4 91/10/28 @(#) sio.h 23.3 91/04/21 @(#) ioctl.h 23.2 91/04/26 @(#) region.h 25.1 92/07/01 @(#) proc.h 25.1 92/04/22 @(#) tss.h 23.1 91/03/03 @(#) v86.h 23.1 91/03/03 @(#) emap.h 23.2 91/03/16 @(#) types.h 23.14 91/11/23 @(#) param.h 25.2 92/08/03 @(#) s5param.h 23.4 91/03/16 @(#) conf.h 23.6 91/05/21 @(#) dir.h 23.1 91/03/03 @(#) s5dir.h 23.1 91/03/03 @(#) signal.h 23.15 91/12/05 @(#) errno.h 25.2 92/09/09 @(#) page.h 23.1 91/03/03 @(#) tty.h 23.7 91/11/03 @(#) cilock.h 23.6 91/07/25 @(#) file.h 23.4 91/09/13 @(#) termio.h 25.3 92/09/11 @(#) immu.h 23.8 91/10/30 @(#) sysmacros.h 25.2 92/10/26 @(#) user.h 25.1 92/04/15 @(#) sio.h 23.3 91/04/21 @(#) ioctl.h 23.2 91/04/26 @(#) region.h 25.1 92/07/01 @(#) proc.h 25.1 92/04/22 @(#) tss.h 23.1 91/03/03 @(#) v86.h 23.1 91/03/03 @(#) emap.h 23.2 91/03/16 8~x8PGA8 888y8n8f<^V8H8@<3<djgb$bkbn!bRnOG]f\eW   E* A V \ a Ey   E * p5 M pu p n ~ ~ l c c ~ n| U U4~Ucccc'U\pEEcc7~Sv]gn8rBrvZ@vE&+EF_t@EvK %E-2EQivpAp:?EavtEEE%*E<DIESeW1 EJEuAvAvE"3AP_v~EJ_"EEEE16E@ ( B \        !>!D!@Q!i!v!p!p!!!!v2";"a"i"""""E"""""E##E## $v!$t$$$I$|$A$v$$H$z$[$u$$$k$A$%r%6%A;%Ac%A%%r%%p%p%%r &&p(&8&pM&pb&pm&}&p&p&A&A'U2'gW'`''A''v''p'((E'(,(E=(B(EJ(O(E~(b() )Et)e)W)U)a**U(*N***s+U+U ,!,C,U,U,m-U-#.Uu.c{.c.c.c.UC/~/b/80U000c81~1g1~2c 3Un3U3UN4U444*5UV5~56U6U7c7c7c7cg7U7c<8U#9gh9U~99U9U :U#:Y:U:g:];U;gA;g;\<B<ch<c<~<!=9= @= D= H= L= P= T= X= \= `= d= h= l= =i@ p@ t@ x@ |@ @ AgAU BzDgDUDFgFUFFGLHUZHQHUHaIUoIQIIIOII+J;JEJgbJKU]KUKUKULU4LQbLULOLo-MOMsM6NMNONO%OgKOUgOOOEOOOOOXPgPoPQO`QOQgQUXR]RErRRRO SOS\S\T\QTOTOU\U\VO`VOV\VVW W\3WoWW;XcAXcSXcYXcYUY/YbHYonYOYUYZoZUZg9[Ug[b[[` \s\c\c\c\c]]F?][]j]2^Q^U _c&_c<_cB_c_U__O__`"`.`3`oJ`R`On` t` x` |` ` ` ` `L`````gAaUaU\b\bUbbccJccddFd Ld Pd Td Xd \d `d dU eeeE#e.ev]eieveepeeeeEeeEeeE f2fh;fHfMfEjffffHg^goggBggBgy0hOhyhicMici~iiynjjjjjkkEkckckckclw/l~GlXlnllllmnqmUmnmUn:n~n]no~Yoooqp(qzqcqcq~ rcxr}rEr~.s]sT?t~Ytlt~ttttuu*u=uSuiuuuuuuv]vqvvvvvvvEwwE*w/wE?wx~)x 0x 4x 8x !.3EeVqNJWpJiJJi0iGJfz{g5bĎCΎmcg,c7Sg#(U$\$`$d$h$l$p$t$x$|$ԑ>COcb̔nUcc ccRUU̖U KU]U UrcxcccϘU˙\=R\@@@@@@@ć@ȇ@̇@Ї@ԇ@؇@܇@@@.file gip2_pci.asm.text".data @.data @.bss@DGROUP @.file"gfip_driver.c.text;.data @_.datap@.bss@hDGROUP @'$;$fipIoctl_fip_initxIHto_hexXgtX%.file-gfix_driver.c.textԍd ;.datap@ .data@.bss@DGROUPp@.file8gct_ring.c.text8.data@.data@.bss@DGROUP@,ip2_ptokc+IVd@suserp@ @printf|fipmproc8Xeisa_irqdfip_firml @copyinfipparamt=D14ddfi10intrdrepoutsb @#3AbcopyO7Zfip_ctrlD @ttiocomisleeplineswzrepoutswfixmprocDspl5fipMreadd! ttinitcopyoutoutbGfip%4@repinsb/EV`fipMopenwakeupg`!xfixMreadselwaitrepinswinbsignal܄&ttyflushusplxinw=minbzerofixMopen܋init_iv@fipMinit@ fipmopen 'fipMproc.8,@D QbprintcfglP@H @( @fi10pollfixmopenԍfipminit#fixMproc؇8 timeoutfixxmit(fixxoutP8hFĚTfip_reset_structsfip_stuff_statusfip_msec_rc_timeoutfip_seq_checkout_mail_emptyfip_mark_existstructsMatchfip_msec_tx_timeoutfip_delayerip2_PCI_BIOS_Entry_Pointip2_pci_read_config_dwordip2_pci_write_config_dwordip2_check_pci_biosip2_pci_find_class_with_biosip2_pci_read_config_byteip2_pci_find_device_with_bioseisa_matchedfip_msec_tickfip_tempbuffip_dbg_lvlselfailurefip_scan_for_boardsfip_scan_for_eisaip2_ifProfsip2_profileIDofip2_add_intr_handlerfixMwritefipmclosefixMioctlsend_bmarkdo_meta_outsip2_pci_printffip_send_statustest_for_eisafip_dnload_lwdo_repoutsfip_watchpointfip_silo_timeoutadd_intr_handlerfip_share_irqsip2_ifProfSizefip_display_infofipMcloseroom_in_metado_nothing_dbginbs_per_msecsc_isscancodefipmioctlfip_read_dnload_statselwakeupnext_slotfip_scan_for_eisa_irqip2_profilePtrOffip_reset_boardsfip_set_irq_maskfip_silo_thresholdfipMwritefipMioctlip2_arm_hw_testfipmparamfip_msec_spinip2_getMProfileip2_ifClearProfilestry_scr_sw_if_neededfip_irq_vectorip2_nProfsInUsedo_vpix_deltasfixmcloseeisa_irq_rafind_an_eisaip2_scan_for_pciv86setintip2_reassignProfilefip_init_doneselsuccessfip_nboardsfip_addresstotal_irq_countdrain_metafixMcloseip2_printfxmapallocct_ring_roomct_ring_offset_ptrct_ring_end_ptrct_ring_usedct_ring_beg_ptrct_ring_stuffct_ring_flushffip_reset_boardsfip_set_irq_maskfip_silo_thresholdfipMwritefipMioctlip2_arm_hw_testfipmparamfip_msec_spinip2_getMProfileip2_ifClearProfilestry_scr_sw_if_neededfip_irq_vectorip2_nProfsInUsedo_vpix_deltasfixmcloseeisa_irq_rafind_an_eisaip2_scan_for_pciv86setintip2_reassignProfilefip_init_doneselsuccessfip_nboardsfip_addresstotal_irq_countdrain_metafixMcloseip2_printfxmapallocct_ring./tmp/sco/fip1_v386.o 644 0 3 231470 6052464250 7410 ../objects/fip1_v386.o+CV9._TEXTCODE_DATADATACONST_BSSBSSDGROUP? ( |I  d< O4 _eisa_matchedb_fip_msec_tickb _fip_tempbufb ƌ_copyin_wakeup_bzero_fip_share_irqs_bcopy _cvttoaddr _selsuccess _selfailure _selwakeup _xmapalloc_ttiocom_u_min_inbs_per_msec _repoutsw_spl5_fip_silo_timeout_fip_irq_vector_selwait_fip_silo_threshold _fip_address _repoutsb _fip_nboards _v86setint_sleep_inw_printf_splx_linesw_fip _vecintsw _vecintlev_copyout_repinsw_suser_repinsb_signal_ttinit _ttyflush_inb _ip2_ifProfs_outb_ip2_ifProfSize_ip2_nProfsInUse_timeoutip2_pci_stub.cMS Cn SLIBCE3s0CV7 fip_driver.cMS Cn SLIBCE3sOCV7 _fipMwrite|֐_ip2_getMProfile|%_fip_display_infoJ_test_for_eisa~_ip2_profileIDof#_ip2_reassignProfileѐ _room_in_meta_fip_dnload_lwǐ _find_an_eisaz _fipMopenz_fip_scan_for_eisa_irq;_fip_watchpoint _fip_send_statusy _fipMinit$ _do_meta_outsh _fipMcloseD{_try_scr_sw_if_neededH M_ip2_pci_printfQ _ip2_printf _drain_meta _fipminit !j_fip_read_dnload_stat _fip_dbg_lvl0G_fip_reset_boards _fip_ctrl4n _ip2_ptok+_total_irq_count8X_do_nothing_dbg2 _fixMopen{ _do_repouts 4[ _fixMread~a _fipmclose._ip2_add_intr_handlerG _send_bmark$^[ _fixMwrite~̐ _eisa_irq_ra|<_ip2_arm_hw_test $ _next_slot|א _fixMclose{ܐ_fip_scan_for_boardsx _fi10intr^_fip_msec_spin\" _fixMproc0 _fipmopenL$)_fip_init_done\| _fipMioctl0| _fipmioctltCw_ip2_profilePtrOfā\ _fipmproc$5>_init_ivd|% _fipparam9 _eisa_irq _fixMioctl? _fipMprocX|_fip_set_irq_maskXѐ_ip2_scan_for_pci_fip_scan_for_eisa _fi10pollv _fipMread| _fipmparam$:ڐ _fip_firm\M_do_vpix_deltas _ip2_ifClearProfiles ݡ 0  1 2  3 4 5 6 7  30С $31ˡ (32ơ ,33 034 435 836 <37@[ D%c%c ܡ L] Pdo_vp chan_ptr = 0x%x: tp = 0x%x: WARNING: EISA IntelliPort-II board installed for slot %d was found in slot %d. ERROR: scanning for EISA IntelliPort-II board (unit=%d) installed for slot %d. No unassigned EISA board was found in any slot. IntelliPort-II Board DISABLED PhERROR: IRQ mismatch for IntelliPort-II board found in slot %d. Driver installed for irq %d EISA config set at irq %d .' IntelliPort-II Board DISABLED H IntelliPort-II Error, incorrect address: 0x%x board_error = %d por[] = : 0x%b T Unable to download loadware to IntelliPort-II board %d at I/O address 0x%x! l IntelliPort-II board at I/O address 0x%x not responding to loadware download! Unable to read success status for loadware download to IntelliPort-II board at I/O address 0x%x ! 9 xpar_ticks = 0x%b: Y ERROR!!!: The following IntelliPort-II board (in a 8 bit slot) is using IRQ %d. ̡'$ IRQ %d requires a 16 bit slot. ^/H IntelliPort-II in 8 bit expansion slot ,t IntelliPort-II in 8-bit mode (SW-8) oL1.4.2%%sserial - - - unit=%d type=IP-II DV=%s nports=0 !!! ҡ<Computone Intelliport-II board #%d - NOT FOUND! 48z ZERO ports found!!!! 4ERRORi<1.4.2%%sserial 0x%s-0x%s %s - unit=%d type=IP-II DV=%s LV=%d.%d.%d FV=%d.%d.%d nports=%s g@ Board %d (0 based) has reported a FATAL INTERRUPT!!!!!! uAThe LED on the board should be blinking an error code. NOTE: A common error code is 30 (3 green flashes followed by 1 red flash). This is usually caused by a disconnected external box. You MUST re-connect the box with the power OFF! loading vector %d: unable to start a ITOOLS_SET_DIAG ioctl for port 0x%x 7killing tp->t_pgrp=%d k<0unable to do a ITOOLS_UNCLOG_REQ ioctl for port 0x%x h1.4.2 pI:Y tv%d: ||stat=0x%x: STAT=0x%x: Board %d (0 based) has reported a FATAL INTERRUPT!!!!!! The LED on the board should be blinking an error code.  num_bytes=%d stat 0x%x: (bookmarks went negative! ǡSDIntelliPort-II board %d internal diagnostics is reporting a hardware error. +ST_HWFAIL: rdwr = 0x%x addr = 0x%x RSIntelliPort-II hardware test error messages disabled. Error count exceeded. T ERROR!!!! request for new_screen = 0x%xIgnoring request for invalid screen. >\ IntelliPort-II PCI cards are not supported under XENIX '@(#)fip_driver.c 1.4.2.2k$11/15/950 Y@`@0 <=Wed Jun 14 11:01:35 1995, BeGiNnInG oF cOdE6iLibixiiiiiiij(j>jTjjjj&.6 > FNV^fnv !~#%& ()+,./"12*45278::;B=>J@ARCDZFGbIJjLMrOPzRSUWXZ[]^`a&cd.fgPGfGgXÐGfGg `  RVWt= v wX[|t3.;vFF.ǃ._^ZÐ>3M %&`_X..jt ..t.;3s .~*..a.Њ*"*,", u $ Ê* *, , `__"Ċ t*.` yj|o:aÐwHG0t;G2w$؁wHÐ ؃wHÅGFt$#GFGFuGfGg u$  $  ÅEFt#EFEFu  u$  $  GFGF $ Ð`+ێ=|&}΀>|t|K0 | r// ءt//Ou/뷐I&G;@sÐBRPZÐ`+؎t5>|u|@utaj|1j|@ċ?E{+>{Ð $V%^ÐGH%~u GHËD+GTGVGHt"gHG8;G0tOHyyyÐM t Ð M IÐ'I:ìIQȰ*Y GZ t$GJ%GJuGJuW_ÐGFu OF`ÐGFt tOF_ tI8# Ð`ȋGF@t 3 ttt$ t@u u *t@GHt بuʀ;GuGFtGj;GnuG;G"u ;uGHtt 4aÐ`ȋW` q4aÐ`ȋWb ]4aÐ`р>|tK&r;{Ȁr+{r{Ѐr {4aú ъ`.3ɋ,t)txDt .>t;GGuFFAra I<w.t t t t ÁOH $ ËGH%߉GHu  Ð|Sg_؃.)l3[2I|I|Ð\\jrz\\\\\\\&\\\\\\\*\@JT^\\\p\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\$8JN\d&:< \B b >|u+ t&|ð &|Āu6||Ðt&|Ð |u ||ÉGZtOFÃgFÐGPGP;GRr s+GRGPÐ>|s8WP3>|G_ GLG+G-;>|sI: >||X_ÿpPE8+E0uXQMHE0EE"  t-u't t t8# MHYXÐSQ+KuY[ð+؎м"3|{{|| *kl%[؉|,D.t G*B  9 *kb `fR V+ؾD.t#G u j|G*0'ϰ@ $9V="D=C|+|>|ut ; 2>w$tu  @{t{+ë@dxyx4y@Dt yyyzz{D{+؎{|EXEXFX~|V|,X||||||||{ |||||{+{-{|@|2% p>|4yy,>^_ë+{->|p+>||j|||3||| |{xy,n|>^|u,n|_>^|u⻋yxtGGGGjGnGlGpGG"G G${GGrG&G GtG(LJG GvG*GGxG,LJHHGG|G0GLJPG2kG4GRXGG8__6GNGFE<>|uE0E4 uIE8 B>uE03>u E0E4>u E0"E4 E0"E4(>|t(>|t'&0>0u| u| u~||?t j| }<u}r| |@>|u L(+؎z*VQSU{tG'а486:( tN Gi t <*>*,ڰBP.6t.&7 XMuItm][Y^ÐSQWyx_X.6t.&7_Y[Ð>246>|u8:<ø8:<À>|u*{** u  u-&u uu   u uFк Ð>|t&0>0u>!;>);>=>=>f<DLDwJJJ,O@;Ox<ln>|u"*{{{ú@{- {-{ШШ GD VR3t tZ^Ð+؎xDuGfGgа $   tL ?10?  gF" t+=w ;tG`Gb|=2r |)|S_XGGGG[3GGG"{-G0GfGgа C $$  tL `>|u>|uj|#                                                                                                rjbZ RJ@6,"`+ء{"t2.Z.Zr{"u"aϡ{`+ء{"t2.Z.jr{"u"aϡ{`+ؐ{"u{"t>2.Z.zr(2.Z.Zr{"uӡ{"uڡ{{"aϐ$`+ؐ{"u{"t>2.Z.r(2.Z.jr{"uӡ{"uڡ{{"a      VWUwGHuF||;Q2)L<ϋl ;YsE&-GtyyGG>y]_^Í봋| | | &-G;tt;tĪ;tЋ%x}䘊؊ȋEJtFS. t5PQ.).)"؀$  ߰YX[jO(jIjCi=i7i1i+i%ixibiLi {Ð6iGքyЋ%Y$<u`mH*GG;wd+GŀtkMb?w +;s5l?u>yGyGG>y_oH$?Tl +l뽐ȅu $ ː;Gwt$t t$ k]_2EHut|t|t|t-EJtπEJtܡQPߊmeEJtĊXYt@EJ@t_EJt}EJ t#QP߸EJt EJtXY`+ؐ*Ψt6id"aϐuΨtLi?ɐj<jj8Tj4>j0(j,j(i$i iii|itxi lbidLi\6iTPSA[XuYÐ@t $ $ j|"oj| a䐃@{ÊGΨutЋ%8]oFFuuuM u<;5tu&t%t UȉEEFF;u s}Gd;rȋ֋E ;wt)Mt?u,O`&n;sVu}u F;sQuoF$?ËU#WZtѐuUWPWP;WRrPX랐u }u 륐+놋u 몐u $  뙐 $ @t6zzFF6zt̀i u,u$ G^ $  D2ưƃ6u *ư*ưƊG\*ư  g^ 2ư $ `+ؐ*Ψt6i)됸"aϐt6iϐ`+ؐΨtLi N!"aϐtLiϐj|  $(,048<<w!.|uy4y>|t Gfr*GgrH?r4UyrдpGG⪸뙐+ظU+؋^^.dG`Z]U+؋^^.dGbZ]USQRVW؋^&GY*&Gxƅ7s'^&tʄus<ʘ_^ZY[]DFu"LF DFuƅWS狝ˊDfDgкGGGGGG4G6G$$ ĈG [&DZ&Ds&D &DGi$$=&D$<rw46  @ &t &t     tN tVWtXʹ_^WVlXDg$*DC^_&G#<uƅUƅ !ƅ d̋ʇDDDD D D DDDDDDtDjDnDlDpDtDv Dr D|DŽDxDŽD~DŽDD"D D$D(D* D& D0D8D,D:D2D4t6DŽDŽDŽDŽ DŽ DŽDŽDŽDŽDŽDŽDEDLDPDTDVDŽrDŽpDZDŽvDFDHD_ADJDbD`Dd ƄDeDiDƆUVW|X>ʹ_^S>ˊDfDgЊGGGGGG4G6G G tN t[޸ۇÐWVSt拜ʋ;Gu܊<t<ˋ ǀNrt Ps  ؀|!2|! ̈ˋ?˫˫?Ƅ[^_Ð&tkWV狵ۋ|";|u+=r#>Ɔ&G|"D0:u ^_Ð>>Ɔ^_Ðƅ&GZu3㡴(3Ð_#"_4 t j|$_O t j|ڀ>|t_*P6|~3j*||3ۊ|{t!$_!| t j|1||u{x 6z;6zu{ᐋzFF6zGFu{wD GBD G@|SPOXȃ?F6|9*ZwS.) u|Gw>;@s]|gitGiP t != u@=j| VفOF6zzFF6zB랐***********+ +++ +8+++++++++++>,H,*^,h,r,x,,,,*-<-.*P.Z.d....//00*0`0~000**01161D1L1V1p111*111222J2****\2*****2*2**j| qؐ5*-ð%*øo 4Ð6Ð3iߐƇyr| úa<w' u"$$?t t ÐP Xt $? @Ð b@}ְ@W֐OJk֋GJ%GJu7ÃOJKb֋GJ%GJuð /Fְ ֐UoJרtjX,t t$<tr<w#t@ @oJ<$ <]< $ >ÐֈG\OF`GfGg g^ ÐRWJքutt ʀPֈGeX@tʀWJ<$ >|t|u> >|@tG]|tG]|ugFdGFu[OFLJ~GtGjGnGjSVwh拴{_g*^[ GjG<>|t`_= at Ð>$>$GFt*GjGngFG t $>|$ |*t@t̀$? $t  $t t |%|% |%4 |u * 0&|* |@tGH%~u GH| t $Ð $$ *$ **$*$ Í+QF@YS.6_Xt.&7[Ð9ӊ4Ӏs<s ӊӆшӊӆЈ*k vOF҉x>|u`_2 at | u$ OiB`__ a<v2 t $$ OiDc*k rÐU҈M:ÐC$ t $)*= w =ZrZQȋGdGRYQȰ*Y GZؐQȰ*Y#GZؐOJAبtи0ѐGJ%GJuиАOJ بtиАGJ%GJuϸАg$u< v GdÐOфtOJÃgJÐ=P9ъ4цP{XZtt X]R<r< w % ЄtB()*+89:;89:;89:; ()*+89:;89:; ()*+89:; ()*++؎4yy|vu>|t |"|m+x;vrLJvc3 Ð@`32t4t@a`3ÿ4t2tt2ta`34t2tu OO 2ta`333WtBOx 8tOyF_ Arى|za+؎ 2t4tt0rTGH ult@t t;gHr L0r(gHLJpwXGg*GB%^YFFWw";wugHt*QVtߩuu;u3ptrtP+t;rrpLJp0pu&|t0r ;u_pFpP퉇tzp:u WGȍ_tO Mu鋯zp:s WGȍ_t Mu鍷pIpu󤋏p땐G;G"t OHtOH@z+Ƈt gHLJpG;G"tLJpOHgHwXGg*荇Bj;uÎ&F;sGHu ËP@;sXQROHGfGgt t t8# OHYZXÐWO0;&s$GHuOH>yyGG>y_Ð(אYHAAWAAANW-+塴b7'!o[QQmQQQbm861)PQVWPQVW PQVW<wC*s8.6S_Xt. 7[tt_^YXw ӊɠ$<@u.>u j|Iˠ& |y|?,|ty|y|PD2>|t2*+ҽ.7tDDDT. LGBMuֻdD2>|t2ȘX|.7tDDDD. Lf*|Lg+͈LhLgL_W. LX_|uGMu>|uÀ>u {({,À>u{{({ {,À>u"{{{({{ {,{{{{({{{ {,P<w$ OiBXÐPV.999999999@ $ OiB^XÐP<w$ OiBXPEfEgXÐj6ʉ>ʣʉʉʉʉ.ʋ|ʃtqzSl [ʌʉ&ʍG+ɎыLJ ʉPʉ Pʋʋʋʋ.ʋ6ʋ>`ʉʋ&ʝ+ːˋyyÐUVtN&;MH;ytݡ{9|syMHE8+E0t;{v{m*u"+;wŃ;EVwE0@u ET)EVtg2ҋE_Q@%|]$o+Ɏك+;u*s#u"Yt u ~  uS>u(ؐtuU0;U4rOt ؋t t8# Pyyy>|tR>|u|.|t;|2.|t>|u.|t;.|s .|;.|rË{+|6|@|@̓<|<|+;|3̀+@@|+o;6|rpu6|.|Á>|s)WP3Nj>|G_«;>|s>||X_ÿp됁>|s|W>|];>|s>|_ÿj|;{s86|>|;st;{r|6|.|Ðjސ~ʸ|D z`+ێۋ~ʉ t u~aːj|+؎|y:4y|GFt-FFIt GFuFF>|t |."V|GFu&w;7tQ_<w Y^t j|"ċ &Gn&+Gj&Gr-;&OFQ&WrQ>&o&jtj|!Đ;r;rY+G;rjF;rwFuN)N;~rÄt+;~r;~rĪ;~rFnt j|" &GrF&GF&F&~F&G]F&FF&Gn&+Gj&Gr=Zw-F %FN&jt j|!3F;r+FnFt+;vr+v;vr+vFS+.Cs);vrFIt+.Cs ;vrF[+؋F-y j|t+ FWj_G;~rjF~F;FuLJF;vrw@%&Ð^|:;~r3FK^FHxFF uÐF@u2%QYË^~F;~r3FK^Ë^~;~r3FK^ÐÐ^|~uFu ;~r3FK^Fu΋VuF@t,Qʁtt QY$%=t=t dFHFÐ^~6F$u;;~r3FK^Fu ÐFt F@u dQYF t;~r3FK^1Ft~t ;~r3FK존lB^ ;~r3FK^^~0FFu;~r3FK^Ð;~r3FK^ÐË^Fu~3;~r3FK^Ã~;~r3FK^Q2Yð;~rV+ª;~rFFnË^~ʋVt;~r3FK^V+FFuÐF@t QYÐFuF$,ðdÐ^~;~r;~rF^Ë^F@u~3;~r3FK^Ã|;~r3FK^Q*Y@C@@@@@@@t@BAhC`B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|&|* .F&|~ʅt&عå9Out;t9Ou t;uj|$( ||(%~˃>|t( |(%~ː`+؀>|u:+~|t ~|t"aϐV|~|VQ|Y^ي&|뺜zʁ|+7;t&5|>v؋t7>v>^/lÐ>Fۉ/݉_ Terminals supported: 1) ANSI compatible 2) Wyse 30 Please select: code segment= Monitor v2.5 > Pardon? No address specified : Loc= FATAL ERROR= Monitor commands:- D,d[[xxxx:]xxxx] - dump memory L,l[[xxxx:]xxxx] - dump single line E,e[[xxxx:]xxxx] - edit memory F,f[[xxxx ]xxxx] - fill memory paragraphs I[xxxx] - word input from port i[xxxx] - byte input from port Oxxxx xx - output word to port oxxxx xx - output byte to port G[[xxxx:]xxxx] - goto address W[[xxxx:]xxxx] - watch a word C - interrupts off S - i"Interrupts on s - single step Bxxxx - breakpoint set b - breakpoint clear R - restart breakpoint r - registers at brkpt X,x n - examine channel n H,? - this messageANSI Terminal  z+ z. z-z, z"Wyse 30 Terminal TY =F ?DdEeFfGgHhIiOoCcSsBbRrWwXxLlWQQ6R6RSSSSWWRQ.Q QPvQvQ~Q"VU2V VVQQSSQQbXrXXXXXXXP$Y2Y@S flags= ax= bx= cx= dx= cs= ds= es= ss= di= si= bp= sp= ip= head= tail= nbuf= buf_beg= buf_end= out_count= this_tag= room_left= ring_lowater= ring_hiwater= ring_chan= ring_capacity= receive_flow_state= receive_flow= this_block=ds= channel= host_ring_out raw_ring_out host_ring_in raw_ring_in uart_out_ring= channel_exists= channel_open= command_ʡvMpending= command_pointer= as_of_out= room_for_out= update_out= hiwater= as_of_in= room_for_in= chip_struc= flush_flags= rcv_buffer_mode= my_1400_mapper= my_1400_channel= my_1400_chip= ch_tx_flags= ch_rc_flags= channel_number= pause_wait= pause_init= alt_nseq= opost_column= opost_bookmark= opost_oflag= tx_char_cnt= rc_char_cnt= alt_enable= acked_sequence= doing_break= break_time= opost_active= opost_cmd_pend= opost_fill= break_etc_save= xmit_int_type= ch_shutdown=+؎PM FUMUM>|txG |_ 7 tH< t.<t<t ሇ&CHs tKH΋6fƇ& t&οKuA+.;K3HξGGþKG|UHu'(Ь<,t< tÐ>Hu'Ь<,t< tÐV΃>Ht 'УVΰ SVkËV΃>Ht 'УVΰ /VcFÐFÐL &C$uۺXXL΋>J >JΌLÐpGpXR3۹&C3۹&< r<~v.CpG*ZJuP΋>N>NΌPW6^X_sG9:/x t< u< u< uG<u$O6N΋+=r=r 6NW<.ujZ2ɐ<0rL<9v $_,,0PXZt) t& #< r<~v.p &vvuR6jZRtvu 26lZuvuy26nÐT΋>R6>RΌTRþUGːW'`[+xÿQY_Ð'9.dLpGLLGKKGKGpGLLG ~KGrKxG"fK蔡TlG&ZpG`LZLTAKG4K:'K-pG 5MGLAMGNPMGP]MGRgMGTrMGVMGFMGH_NG`mNGbÐ`NFt؎.}fzU{]>zt Nzaϐ`Ft؎.}΁fzU{>zt Nzaϐ&{ΐÐSV>yt?'%أw.yΰ.^[zU{Ð.}+zU{ÐW>yt>wΠy.y_ÐpGKvXGKvX:KvX-KvX Kv XKv XKvXpGKvXKvXKvXKxvXKkvXK^vXKQvXGGDÐG<<t<tY\΋J^ήJ`ΦJbΪJdβJfιJhJjJlJnJpJrJtuv\J^ K`KbKd KfKhKjKlKnKpKrKt u váHHt'<<:u0Ð+NΊ$Ѐ =Ì:Q3ɐ<X t t&,0r"< v<r,<v <*r, <w ȬאNYÐȎ&F tÐ tzQ3ҹYd Ę P t0XXÆÐÐSP$Y.0X[ÐÐP20XÐ0ð V6 Έ F$Ή6 ΁>$uV^^ú$tÐ>Ft>|u `at(6"΃>$t F6"$κuܡ$RZÐRPtXZÐXZRPtXZ0123456789ABCDEFSPY..X[ÆÐP.<tXVWvFFF~uVY u[FF u3PV YYF^v+.[&~tFDXPDYPYY~t FVY~uu~u~u^v.[3|Xt"~uDXjV~ YYDXPVr YYF~t FVYB|Xt"~uLXjVA YYDXPV5 YYF~t FVY1,FjV YY|X }PV YY_^ZA[A[A[A[Z[/[VZZZt[ZH[H[M[PZVWv~jV YYFPV YYF~F顴.\^F?u~}%+FFF j Vb YYFF;F| GPVI YY=ujV< YY_^VW~F ^+ߊ DZDXFDYDDDDD DDD D!D[D]D^D_D`F ^@0F~|F ^@PF~|DTDVDZ#и ‰FF$F~uJvz Yh5V2 YY u4h8V% YY u'hBV YY uhLV YY u hVV YY tFb9~}_^VWFb~tDFD\VYYljDVDTD]D/ uhjVjVGYY u~a.;FtCC.g DD^㋇D 3DTVYD]D`o|u0|\uD]VYYD]VYY.|\uD]VYYD]VYYjVYY؃w*.aD]D^D]$D] D]$D]D]VcYYhVZYYjV/YY؃w6.aD]D_$D]T"ˆD]D]T"ˆD]k\@wjV\K@D\wjVjjVYY؃v.a\GD\?Du \G;D}F؋DG_\KD@\GD\?Du \G;D}F؋DG\KD@\F a.;FtCCw.gF\؋G\D@t\GWڈ@@L:\GWڈ@%\GWڈ@L \GW0@DTD_D]D=t=tF+DiVkYYjV@YYF~t~u~tbDmV:YYV YF^w3.wahVYY#hV YYhuVYY hVYYjVYY8hVYYjVYY"0DTD`D] DTD^D]A_^`a aaABCD_2aXa`0`r`HaE`0`]`E`*`_T___^^^^{^^^{^ 0_]^^]VWvDYFj FPYY%=uU%=uK%FD;F}3%+;Vt3D FD_D]^LJ %= uR%=uH%F~~3%+;Vt3D FD^D]^LJ `%=0uR%=uH%FD;F}35%+;Vt3"D FD`D]^LJ 03_^VvjV5YYDXסcPV)YYDT;DVu D]:D/udDTDV\GD/D]TT ЊD]+ ӉVjDY@RPTVFF FNjvvs^VW^GY^G]F~} ^GHF^G;FF^FG]㋟YG ㋟YG0㋟aG ㋟aG0FF~tF 30㋟YW F3F~tF 30㋟YWFF~tF 30㋟aW F3F~tF 30㋟aW^jvhjvvVýYYVFvVԽYYVF^&F^&FPFFzPFF+F=sPFF+FF^&+FF^&F^&+FF^&FPF~vvvvYYFvvhYYF㋟Y ㋟a Gv㋟YG 0㋟aG 0~ w &~cw~w~'w%F 30㋟YO F3F~uՃ~ w &~cw~w~'w%F 30㋟aO F3F~uՋYvnYYav^YYjv1YY؃w.f"FN8g FF~t*_^fffffUFN]UVvFPv3YY<u^]UVvFPvEYY t<u^]VvDZFFtF^VvDZFF+F= v#FtԺٺF3^VWv~tVYVYF~wF~vyF- ؃wg.haVkY%FV^YVUYЋ^x0.V;YD[$V1YDPV)YDQV!YDRVYDS[_^$hh(hXhbhVvDZFFuFF^VvDZFF2$^VvDZF藹F葹+F= v$FutںFF^UVVF3PXF|^]VVF3PXF|F^VWv> uj jh0} j PYY %F%V ;u!%V;u%V ;t jV8YYFF3ƺbV؈lh2ƺbPYY_^Vv փ  ‹փ ‹փ ‰FjjF@RPk FRP%^ëjUVW3jhYY*Nf3.~rPhYYjhwYYjhmYYfF;v|3$jhTYYjhJYYh\Y% F|jh-YY_^]UVW~jhYY +PvvVF3G~r u~rPhYYjhYYjhYYjvvXVFF;|jhYYjhYY_^]UVjhYY3hYuF=d|jheYY^]FVNFVVFPrevious MenuBeginPort 0Port 1Port 2Port 3Port 4Port 5Port 6Port 7Port 8Port 9Port 10Port 11Port 12Port 13Port 14Port 15Ρn    * > R w   Test Passed  Press  Missing Rx Data Press  Bad Rx Data  Press  Xmtr Busy Press  not currently implemented$ / : E P [ f q | S,2TD S,3DTR S,3RTS S,2RD S,2CD S,3CTS S,3DSR S,2RI' DCD - pin 20'S.1c' DSR - pin 11'S.1c' CTS - pin 4'S.1c' RI - pin 22'S.1c' DTR - pin 6/8'S.1c' RTS - pin 5'S.1c' RxD - pin 2'S.0SMc' TxD - pin 3'S.0SMc' DCD - pin 5'S.1c' DSR - pin 5'S.1c' CTS - pin 1'S.1c' RI - (n.c.)'S.1c' DTR - pin 2'S.1c' RTS - pin 7'S.1c' RxD - Brpin 6'S.0SMc' TxD - pin 3'S.0SMc' DCD - pin 5 'S.1c' DSR - pin 5 'S.1c' CTS - pin 1 'S.1c' RI - (n.c.) 'S.1c' DTR - pin 2 'S.1c' RTS - pin 7 'S.1c' RxD - pin 6 'S.0SMc' TxD - pin 3 'S.0SMc' DCD - pin 20 'S.1c' DSR - pin 11 'S.1c' CTS - pin 4 'S.1c' RI - pin 22 'S.1c' DTR - pin 6/8 'S.1c' RTS - pin 5 'S.1c' RxD - pin 2 'S.0SMc' TxD - pin 3 'S.0SMc'h<\`8ltHxB(P     B    C   , , , , < l t t t t L , -t t t t \ < =t t t t l L Mt t t t , \  ^ u t h  r  |       , , , ,  t       $  ,  4 $  < ,  D 4 L <  T D \ L  d T l \  t d | l  t  |      & - 4 ? M Y c n z      $ $    D4 D< , DD 4 DL < DT D D\ L Dd T Dl \ Dt d D | l D t D | D D D D, /xx: tx cps *****xx: tx cps *****xx: tx cps *****xx: tx cps *****xx: rc cps *****xx: rc cps *****xx: rc cps *****xx: rc cps *****Install LoopbackPress to start Cable to RemotePress to start Local Loopback  Running ...Remote Loopback  Running ... Intrnl Loopback Running ...Transmit Pattern Running ... 0: 'C ,y 1: 'C 2: 'C 3: 'C 4: 'C 5: 'C 6: 'C 7: 'C 8: 'C 9: 'C 10: 'C 11: 'C 12: 'C 13: 'C 14: 'C 15: 'C** Main Menu **Monitor a PortMonitor a SignalEstimate CPSDiagnosticsLocal LoopbackRemote LoopbackIntrnl LoopbackTransmit PatternBaud RateData BitsStop BitsParityData PatternTx Flow ControlPort Number5075110134.51502003006001200180020002400360048007200960019,20038,40056,00057,60064,00076,800115,2007 bits8 bits1 stop bit1.5 stop bits2 stop bitsno parityodd parityeven parityspace paritymark parityColumnsBarber PoleUUUUU...NoneXon/XoffCTSPress for menu(counting...)eNd Of CoDeWWd|  $(,048<0123456789abcdefQ<840,($  r| ֡ÐUEUWVu E 0WE% 0WFE 0WFE% 0WFF^_ÐUEUV} ~E E 4 t%9uuEE^ÐEE^ÐE M MEE^ÐUVu+fHfEf }+9uff+fEE^ÐEE^ÐU(SWVuEfE f%fEf}uEEfE fEf)fffEiDE}$ul E䋀`EEf}fEfEffEEfMf9nsJ]} thnP tIS3^_[ÐfEf9nrEfMf)nfljEftZE MfEEfMf9ns]*hnP vfEf9ns} uefEȮ9Įut}f]耾ͮtdƆ̮} tGḫP tfnf)lIuȮ9Įufnf)lVfEfE fEffEf9EE ME܋}f]苆ȮM܉-jT9VVVGV@V3VVV#V"V"@EƆͮȮ9Ȯv Ȯ} uhu .VfEfEf9E|EEfM fMfEf}EE܊MEE܊M$EfMfEEME܉9v }Ef6EPuu @u\f69Eu*EEfMfnf)lIFEPuIETf6KE3E ME܉9v E Puu f6u Ɔf}t'}$t E䀈\M^ uE^_[ÐUSWVuE Eft2}􋆰9tffEff9EvEE }} uff9t$} }1$tEP6EP6 fEf)E0t h@EE ~MEEE]0t1%|P%|PhD GMu0t hLfuE E9v ]V{sdV_YG3V VV VV\VSV@VVOT>Vԡafq$@t>v$$t$hhvRjvv u<$jv$t$hhvȮ9Įu ͮVfEĮM;f]Ȯ9Įu ͮttĮĮf+Į9Įv ĮƆ̮ͮtƆ̮̮PĮ;uf]9u;Ȯ9Įu-ͮu$̮uƆ} tff^_[U,SWVu}EfE@@Eȋd9hdEf@8t)8u$Ep tEppSEI2R0+)H,Ett@MfI:fvEf@:jP@DEMfvfH:juE@DEf@<@t-8~%@@ujPP4E@@t `@PEd`E|ExffEf@$fEEEVM؃;rKEnM؃;r7f}t9EEj jE Puj5mT$VV V tVxV(VTV-V-V+uV-5V+ PEԃPVh u E^_[ÐEEEM EEAEEjjE PjjEPjVh tgEf@8fEEf@>fEEf@iÐpCiÐpCiÐpCiÐpCOuM]􊎏Et?iÐpCiÐpCiÐpCiÐpCOuM]^_[ÐE t#ށp} ÐG;w}^_[ÐUSWVE=3 h]荆(E}GGGGXG GGGGGZ\Z`GZhGZdfLJlfLJnfLJrfLJpfLJtLJxf~fLJfLJƇ\Ƈ^Ƈ|^PdfLJh=thPhLJlEƇtfLJfLJ~LJLJLJEEC;Ɔ6ή-؍ήήήήƆff.6.Į.Ȯԝ3V{VVV!GV&Ɔ̮Ɔͮ Ɔ$fdž&fdž0fdž,fdž.fdž2fdž(|uffƆVxE69E@]^_[ÐU SWVEjhu! tE^_[ÐE6EE0MEt u E uIu^_[Ðf}u(>tှthV\뾀TVdV[V6VTV+VV|VsV-aV-QV+FV-4V&V+ V-V-V+V-V+VV-V-VnV+SV%V VV V+V+VVVTTTTTTTTV!yV!nVhTcT^T VV7$~E-6E@tvt"vjvvEE t[Ɔ6EPhh@t hhƆ>ujPuf}~8EFEEăEEEEEEBEE=tPht-t$t t t u EEEEtjEP6jEP6 EEEMӈEEBEEEE jjjjjEPjVh EEEMӈEECEEZEE EE jjjjjEPjVh EPV $E t4pE]̋Et SVxEC;wۉ]ƆEiDEMkEċ8 E\EăEf}t"j-uV,z f tIuExtx,3EEfuhxtxfRf0t f$<tBfG:EӈEEE'EE o2V$TT}ToTWVIVTVV^VYIVVVVzrVmPV+EV--V+V!(jjEPjjEPjVh EƀtEfMff Ef@ Eu E@EEEEM݈EEEjjEPjjEPjVh E@u fE tt IOfG>t tf}Ef^f;EEEEM݈EEBEEE]jjSjjEPjVh E~~EEEM݈EEEEEjjSjjEPjVh E~~G@WEG4fG:fG8fG>M^ffg@f}pE@@ E݈EEE?EE EE@EE EjjEPjjEPj Vh E\uh0VEP$: Ef^f;EEtt4EӈEEE(jjEPjjEPjVh EƀtExtxfRf0t f$<tqDt!_D 9 uW9uJFuDEӈEEE'G:EG:EjjEPjjEPjVh Eƀt}u+Extxf<f0tfètO=}tfG<u E]tO@}t G P}AV2TV V V V TMT.TV)oT TV&VTT:,E E݉EfMfffE]G@tEfO@EHhG P tIEfH yf@ Efx u_E`g@fuMEfMf!݃E݈CCC8CCjjujjEPjVh E~u]^_[Ð]E`g@fE tJDH}uEftIf}$j.uV,z f  M }tM EfH yf@ WGDf}t E\f}EDEEHEuxUdSWVu fEE$?Ef}~f}f}f}f}EEiDEMkEExt x,3EtƆPEEE8fG8fEfG>fEfGuE8t p0F2N0+)F,tt2fF:fvfF:jVFDfvfF:jVFDfF<@t*>~"F@ujVV4F@t f@Vd`h9du)ftruWx\dhd9hVuuE%?PWH o%75767775p79999^_[ÐUWVu E$?EEEiDEE8h VEP$: ^_UhSWVu}EE$?EE%?iE EEExt x,3EE}E@t5E@tf f3f Ct tuBEE6E@( +MEE@( +ME?t tuBEE7E@* +MEE@* +MEEEEEtEE+EEOtEE*EEOEE EEOEE EEOEEEEOEE EEMpIEE EEMpI EE?}tEfxtEEMIEEMpIEE@}tEfxtEEMIEEMpI }t"E@tE@$<u EE0 EE1EEA}tE@tEEMI EEEE+f\E,EjjEPjjEPEPu h 'EEEMEEuGuEEEEGtEEEEGt EE2 EE3Gt EE EE!G% t tt8EEEEEEEEGt EEEEEEڋEEGt EEF EEGGt EEH EEI VrT@V㡸QBC8t EE'EEC8t EE EEEE"C8 t EE EEEE;C8t EE EEC8tEE$EE /C8tEE$EEEE$EEEE+f\E,EE?t)jjEPjjEPEPu h u^_[ÐUSWVuEE$?EEiDEMkEExtx,3EEE؋EEEE $ < tuEEpEЊ@EEЊ@ EE -jVV$VTvTTTTTTpTVVOV VSIjjEPjjEPj I8DDEH@IEE =q=p=f}t I fjtPu @fttftf=rffttPxPu @{?@_@V{?iǐDE 4\'{$?lƅmDƅnQƅoYƅpRƅqSEjjWjjlPjVh tEuK{%?PhIːf}jtPu @fttftf=rffttPTPu @FW?@@ W%?iDE \EȋEffXEf~fZE\E`EdEdhtPuTP If}[jTPu @=fTtfTf=rffTTPlPu @o%?iDE \o$?PƅQBke^VVVV$jVVVVVVkTPVVVkV2.*&"ɡaMƅREƅS)Ejjo%?PjjPPjVh pEffJƅ EDfDžB L!VVVVVVTjuE|P @4E|uҊ~<ƅ=ƅ>.jjE~Pjj-jjE~PjjfEEf@ufMf9H8u@<uVEP9Ef^f;E5EfMf9H:uf@Df;EuEf@Ff;E Ett@Eƅƅ(jjEPjjPjVh EƀtExt!xfRf0t f$<E؀xDt)xD 9 q9`E؀xFSE<ƅ=ƅ>'E؊@:?E@:@jj=aV [V PV JV TzTVVViT-VTsVfTV$ˡqXEPjjEx$EjjEPjjEPjuh ExffEf E~E̊E EE&EEʈEEEEʃ|0EʉEċEMxM荑Mč|̋EEEjjEPjjEPEʃPuh EE0 TTVseTVJATVV$wkbVZSTVV VV V V V yV sV T"\EuExEĉEf@\fبffEE~Ef EE&ƈEfÈEWEPE]P jjE~PjjEPGPuh EFE0;cuf]h uE~P$: u7EfǀPfǀRfǀTfǀVfǀXfǀZfǀ\fǀ^fǀbfǀtfǀxfǀzfǀvfǀ`fǀnfǀpfǀffǀhfǀjfǀlhXu (PdhXu i\h |E ufhXu h hXu EUWVuEEEEE6E̋E@t$pE=tIEPh|5jEpEpE=tEPh7VV+{V-k^RV+!V+VVV!V4TTV,VTTcVV_E tFEԀ6ƀ6EPhhEvEԃ8hEN}t"E0fEʊEʈEEE0EϋE0EEiEԃEpEE`EE% t'=_=O}tE0fExE0fEދE0ff EMfEf@$fEċE@VkVfV VV V HVTNV*AV(TVT%TMjE$EM^ffE^uuuEPQu 4f u,Ext#M^fMfM^fMfEPuu$^ M^ M^ ^f tE`A߰^ߋE:Pfm}t%E0|E0OE0|E0 |E0 |E0 |E|5fm}t%E0xE0OE0xE0 xE0 xE0 xExfm}t%E0tE0OE0tE0 tE0 tE0 tEtfm}t-E0fpE0fr[E0fpE0ff pE0frE0ff rEԀ6 }N6EmV+uV+]V+IV+0VVV+V+V+V+V|V@V+*V+V+V+VVV+V+tV+aV+OVt‾tً9 t Vy u倾u$u jVEE܋E܃8tY2EEEE܉E}Et'$u}iǐDEWPV$^ À rˆ]EE}r$%atSV  $@t j@vjvj@^_[ÐUVuE iDE M  E %j EpP  9 r  Eftrft^ÐEfǀt^ÐUVuMAVV-TQTTTVV-fV-NV+CV-V+V!VV-V-ZTEV-V-_yEjjEPjjjVh u3^Ã9r ^ÐUSVE M tu] VK u] ^[U E ~EEE |u tu3ÐE ~EEEEjjEPjjEPjuh uuÐU SViE6EE%?iEEM Mt+M ]jPuuu uuuL$^[UViE6EE%?iEEfM ff u uu. Efff!P^UiE6EE%?iEEuuuu|ÐUiE6EE%?iEEuuLÐUu iE6PuuuEPtCUWVuEiE6kM +9`Pu PuV$5u^_UViE6kM E%?k`VFD^U,SWViE6EkE E܋E$?EE`e}܁Ei߃x,E+qVV!jV!DV (V!VTV!V!VTV!TdV!OT$V! VTV!TyV*V! VTVVyV+"T!N}E샻xt!xfR0tR$<I~Dt.FDE܋ 9 ' 9~F =hEEfF<u F@^;E u^8|tj^Pfn w jnfffn ;hrhfEM;|fEf%fEEEu juPj5dPWh t5EE)hd=ht VFD u^_[ÐÐU ViE6kM E%?k`E$?EVFD ^UWVuEiE6kM +9`PPuVԄu^_ÐUSWViE6kE E$?E`eEiDEEEE=u I^_[uuuV^_[ÐU$Eh\ ÐUÐUSWVu} HEÙ}؋K t9Ft3^_[Ð^_[ÐUSWVi\ƉEEx E9uv|9~ubfFf9CuXfF f9CuNfFf9C uDfF f9Cu:FPCP0 t&>u-V,T>V/8V,V/VVVmV!SV!,V!TV!V!VV V!VV gVaV[VGT=VVVVmVWV QV EV ?V \fF^_[Ð>uu\9uw}tu(9}?i\EVW~V_^fF|u{3^_[ÐU}t!E-\E | 9E|EÐUVut95}3^Ð\E^ÐUSWV] t93^_[E PāE0;u ^_[Ð tu fF t?ufE fGE8뻐A-"TV/V,V.V.V,VV,HV/BV/;V/5V. fix_driver.cMS Cn SLIBCE3sOCV7_fixxoutІ _fixmcloseL[ _fixmprocԄ7_fixxmitV _fixmopen|&| Y@`@0 |U,SWVuuI^_[ÐE%iDEEE؋xE t@u I[EE܋E؋EE؋DEEEEHEEu6$Eԋ}] hu t #W#}t׋Ef@>t uIE@@ucPEMH4MfIfP8E܀x8tff3MfA:E܀x9tH;Ef@:tH:E@@tEH@Eft  M uE@DE`@E؀u^_[ÐUWVu E%iDEDHEEg?Ef E\t fG@g@EWGDu^_ÐUWVu}EE  .$f@EiDE\xE EEl\t-Mf fh\(fF(f)F*fF(fA댋EMfIfh&M(\f&f&f uNjWh TTgVKV@V VVV V)VV&VZV;VVQ-E&EE9Esj}fhv fh3fǃhxSVІ t}u}f&}t EE;}r}]f&tjVh ^_[ÐUhSWVfEfEE}uE \^_[ÐE lEEfxtf@ffE܋Efxt@E<@vEE \t\Mf fh3^_[ËE dEEf@fEҋEf@fEEMnM n;r E MfI말F$EE P谎 t5];tf{up;tC)VFDfuNEE PĎEE PE PlEE܋M ;scEECP3E P蜍 fEf tEfEf)CE N@ E P谎 e.E;Es EM+3EPE PlE8t&;]tEuE Pl؀;u߉]}E `fF8fEfF>fEfFTTTV TV0TET?߉E tt6EֈEEE(jjEPjjEPjuh E ƀtE xtxfRf0t f$<ts~Dt!^D 9 uY9uL~FuFEֈEEE'F:EF:EjjEPjjEPjuh E ƀt]E։EjjPSjE PCPuh jE PlEuE PlE}tc9Er^E PЎE+EEjjuPjuPuh u؋E PE)EE P܎E}t5jjEPujuEPuh uE P]jjEPSjEPCPuh fF8fEfF>fEfF to continue " # read yn < /dev/tty read yn } # Print an error message error() { echo "\nError: $*" >&2 return 1 } # Prompt for yes or no answer - returns non-zero for no getyn() { # while read yn < /dev/tty while read yn do case $yn in [yY]*) return 0 ;; [nN]*) return 1 ;; *) echo -n "please enter either y or n " ;; esac done } #----------------------------------------------------------------- # If we are only removing NOTES then abort so we don't remove # the driver. fixperm will remove the release notes file for us. #----------------------------------------------------------------- rm -r -f /usr/man/cat.IP2 # Test for presence of ONLY notes package if [ "$#" = "1" -a "$1" = "NOTES" ] then exit 0 fi #----------------------------------------------------------------- # Announce ourselves, determine # of boards & maybe set up /etc/ttys... #----------------------------------------------------------------- echo " Computone de-installation script - version ${VERSION} Operating System: ${OS}, $CPU processor (c) Copyright 1991, 1992 Computone Inc -- all rights reserved THIS WILL REMOVE THE COMPUTONE INTELLIPORT-II DRIVERS FROM YOUR SYSTEM All Computone Intelliport-II devices will be removed, and the kernel re-linked. Do you wish to continue with driver removal (y/n)? \c" getyn if [ $? = 0 ] # if yes then echo "-- proceeding to remove drivers..." else #All this is needed because SCO will remove the fip.rmv script #and perms file if all the packages (FIP and NOTES) are selected #for removal. #tell them what to do in an abort condition echo " Drivers will NOT be removed from the kernel.\07 SCO custom will still attempt to remove the utility files for this package after this script exits. After you exit custom you will need to enter the command \"/tmp/fip_unremove\" in order to fully restore the driver. " # make a tarfile cd / /etc/fixperm -f /etc/perms/fip >/tmp/fip_permlist tar cvfF /tmp/fip_tarfile /tmp/fip_permlist >/dev/error 2>&1 # and gen the unremove script echo ": #bourne shell script cd / tar xvf /tmp/fip_tarfile rm -f /tmp/fip_tarfile rm -f /tmp/fip_permlist " >/tmp/fip_unremove #and only give root execute permissions chmod 700 /tmp/fip_unremove exit 1 fi #----------------------------------------------------------------- # save some system files #----------------------------------------------------------------- if [ ! -f /etc/o_ttytype ] then cp /etc/ttytype /etc/o_ttytype fi #----------------------------------------------------------------- # Remove driver module #----------------------------------------------------------------- cd ${CONF} clear echo -n "\n\n\n\n\tPlease wait " BRD_CNT=0 for BRD in $BOARD_LIST do SCR_CNT=0 SCR_CNT2=1 D1="" for I in ${PORT_LIST}; do D1="${D1}${I}" done D2STR=`expr \( \( ${BRD} - 1 \) \* ${BOX_PER_BOARD} \) + 1` D2END=`expr ${BRD} \* ${BOX_PER_BOARD}` D2_LIST=`echo ${BOX_LIST} | cut -d ' ' -f${D2STR}-${D2END}` D2="" for I in ${D2_LIST}; do D2="${D2}${I}" done for SCR in $SCREEN_LIST; do blip $IDBIN/idcheck -p ${TTY_PK_D}${BRD}${SCR_CNT} >/dev/null 2>&1 if [ \( $? != 0 \) -a \( $? != 100 \) ] then #shouldn't have to do this but..... #it seems as though idmknod will not remove the nodes in SCO rm -f /dev/${TTY_PRFX}${SCR}[${D2}][${D1}] grep -v ${TTY_PRFX}${SCR}[${D2}][${D1}] /etc/ttytype >/tmp/rm.ttytype mv /tmp/rm.ttytype /etc/ttytype #remove modem devices #do this here so were sure this board was installed if [ "${SCR}" = "${BASE_SCR}" ] then rm -f /dev/${LCNAME}_diag${BRD_CNT} BRD_CNT=`expr $BRD_CNT + 1` #shouldn't have to do this but..... #it seems as though idmknod will not remove the nodes in SCO rm -f /dev/${TTY_PRFX}${MODEM_SCR}[${D2}][${D1}] grep -v ${TTY_PRFX}${MODEM_SCR}[${D2}][${D1}] /etc/ttytype >/tmp/rm.ttytype mv /tmp/rm.ttytype /etc/ttytype fi $IDBIN/idinstall -d ${TTY_PK_D}${BRD}${SCR_CNT} fi SCR_CNT=`expr $SCR_CNT + 1` done SCR_CNT2=`expr $SCR_CNT2 + 1` $IDBIN/idcheck -p ${XLP_PK_D}${BRD} >/dev/null 2>&1 if [ \( $? != 0 \) -a \( $? != 100 \) ] then $IDBIN/idinstall -d ${XLP_PK_D}${BRD} #remove IntelliPrint devices #shouldn't have to do this but..... #it seems as though idmknod will not remove the nodes in SCO rm -f /dev/${XLP_PRFX}${BASE_SCR}[${D2}][${D1}] fi done echo "" #----------------------------------------------------------------- # remove the default Intelliport-II files #----------------------------------------------------------------- rm -f -r /etc/default/fip.d #----------------------------------------------------------------- # remove the Intelliport-II system files before linking kernel #----------------------------------------------------------------- rm -f /etc/conf/node.d/fi[1-4][0-7] > /dev/null 2>&1 rm -f /etc/conf/init.d/fip > /dev/null 2>&1 #--------------------------------------------------------------- # attempt to build a new kernel #-------------------------------------------------------------------- NEW_KERN=0 #assume we will not have a new kernel echo -n "\n\tDo you wish to relink the kernel now (y/n)? " getyn if [ $? = 0 ] # if yes then clear echo "\n\n\n\n\tLinking the kernel..." cd $CONF $IDBIN/idbuild if [ $? -ne 0 ] then echo "\n\n\n\n\tError linking kernel." pause exit 1 fi NEW_KERN=1 #a new kernel was built fi if [ -x /tcb/bin/ttys_update ] then echo "\n\n\n\n\n\tUpdating security database." echo -n "\tPlease wait ..." # SCO UNIX 3.2.4: the wonders of system security. # when we "fixed" /etc/auth/system/files for our directory, # we must now back out that fix, if it exists. Here is the hack attack: # BBB=/etc/auth/system/files if [ -f ${BBB} ] # begin hack attack then grep ${LCNAME}.d ${BBB} > /dev/null 2>&1 if [ $? -eq 0 ] then /bin/ed - ${BBB} << EOF > /dev/null 2>&1 /\/etc\/default\/${LCNAME}.d/ d . w q EOF fi fi # end hack attack if /tcb/bin/ttys_update >/dev/null 2>&1 then echo "\n\n\n\n\tSystem files successfully updated." else echo "\n\n\n\n\tError: /tcb/bin/ttys_update failed.\n\tYou must update the security database through sysadm" fi fi #-------------------------------------------------------------------- # KERNEL LINK: SUCCESSFULL #-------------------------------------------------------------------- #----------------------------------------------------------------- # Remove any other programs and files no longer needed #----------------------------------------------------------------- rm -f /etc/fipInit > /dev/null 2>&1 rm -f /etc/rc2.d/*S35fip_init > /dev/null 2>&1 rm -f /etc/fip_reinit > /dev/null 2>&1 rm -f /tmp/rm.ttytype > /dev/null 2>&1 chmod 664 /etc/ttytype rm -f /etc/fip_hot > /dev/null 2>&1 rm -f /etc/fip_report > /dev/null 2>&1 if [ $NEW_KERN = 1 ] #a new kernel was linked and installed. then clear echo "\n\n\n\n\tComputone Intelliport-II Drivers are de-installed" echo "\tPlease re-boot the system to invoke the new kernel" else clear echo "\n\n\n\n\tComputone Intelliport-II Drivers are de-installed" echo "\texcept for re-linking the kernel. Please re-link the kernel" echo "\tbefore re-booting." fi rm.ttytype > /dev/null 2>&1 chmod 664 /etc/ttytype rm -f /etc/fip_hot > /dev/null 2>&1 rm -f /etc/fip_report > /dev/null 2>&1 if [ $NEW_KERN = 1 ] #a new kernel was linked and installed. then clear echo "\n\n\n\n\tComputone Intelliport-II Drivers are de-installed" echo "\tPlease re./usr/lib/mkdev/fip 644 0 0 7366 6052464611 7350 : LINES=25 ; export LINES LCNAME="fip" NAME="IntelliPort-II" if [ "${LCNAME}x" = "fipx" ] ; then PAT1="tty[sS][0-9a-f][0-9a-f]" PAT2="tty[sS-Z][0-9a-f][0-9a-f]" else # alc, of course PAT1="tty[Ff][0-9a-q][0-9a-f]" PAT2="tty[Ff-m][0-9a-q][0-9a-f]" fi WORK_DIR="/etc/default/${LCNAME}.d/curses" START_DIR=`pwd` M_TTYPE="/etc/ttytype" M_ITAB="/etc/inittab" TTYPE="ttype.txt" TTYPE_BASE="ttype.base" ITAB="inittab.txt" M_ITYPE="/etc/default/${LCNAME}.d/intellitype" OM_ITYPE="/etc/default/${LCNAME}.d/o_intellitype" M_ICAP="/etc/default/${LCNAME}.d/intellicap" M_ISITE="/etc/default/${LCNAME}.d/icap.site" ITYPE="itype" ICAP="icap" CONF="/etc/conf/cf.d" IDBIN="/etc/conf/bin" INIT_D="/etc/conf/init.d" cd $WORK_DIR #make itype cat ${M_ITYPE} | egrep ${PAT1} > ${ITYPE} sort -f -t: +0 -1 ${ITYPE} -o ${ITYPE} #sort is folding to uppercase and checking only the first field (delim by a :) #make icap rm -f ${ICAP} /etc/${LCNAME}Init -t -vp ${M_ICAP} ${M_ISITE} >${ICAP} 2>/tmp/${LCNAME}Init.log if [ ! -s ${ICAP} ] ; then cat /tmp/${LCNAME}Init.log echo "\tAborting!" exit 1 fi sort -t: +0 -1 ${ICAP} -o ${ICAP} #sort is checking only the first field (delim by a :) #make sure ports are in order before we display form (in case of manual edits) sort -f -t: +0 -1 ${INIT_D}/${LCNAME} -o ${INIT_D}/${LCNAME} #sort is folding to uppercase and checking only the first field (delim by a :) #make inittab.txt ./gen1 -${LCNAME} RET=$? if [ $RET -gt 0 ] then echo "\n\n\tAborting!" exit 1 fi #make ttype.txt cat ${M_TTYPE} | egrep ${PAT1} > ${TTYPE} cat ${M_TTYPE} | egrep -v ${PAT2} > ${TTYPE_BASE} ./menu3 -${LCNAME} # modifies icap and itype in ${LCNAME}.d/curses RET=$? clear if [ $RET -gt 0 ] then echo "\n\n\tAborting!" if [ $RET -eq 1 ] then echo "\n\n\tPlease install /usr/lib/terminfo/*/$TERM\n\n\n\n" fi exit 1 fi ./menu2 -${LCNAME} # modifies ttytype.txt and inittab.txt in ${LCNAME}.d/curses RET=$? clear if [ $RET -gt 0 ] then echo "\n\n\tAborting!" if [ $RET -eq 1 ] then echo "\n\n\tPlease install /usr/lib/terminfo/*/$TERM\n\n\n\n" fi exit 1 fi ./gen2 -${LCNAME} # this will create /tmp/inittab.out and /tmp/ttytype.out RET=$? if [ $RET -gt 0 ] then echo "\n\n\tAborting!" exit 1 fi #make /etc/default/${LCNAME}.d/intellitype file cp ${M_ITYPE} ${OM_ITYPE} cp ${ITYPE} ${M_ITYPE} #make our /etc/conf/init.d/${LCNAME} file echo " Updating ${NAME} init.d file, leaving original in /tmp/init.d.${LCNAME}" cp ${INIT_D}/${LCNAME} /tmp/init.d.${LCNAME} sort -f -t: +0 -1 /tmp/inittab.out -o ${INIT_D}/${LCNAME} #sort is folding to uppercase and checking only the first field (delim by a :) #egrep ${PAT1} /tmp/inittab.out >/tmp/inittab.out.1 #egrep -v ${PAT1} /tmp/inittab.out >/tmp/inittab.out.2 #cat /tmp/inittab.out.1 /tmp/inittab.out.2 >/etc/conf/init.d/${LCNAME} #make the /etc/ttytype file echo " Updating ${M_TTYPE}, leaving original in /tmp/ttytype" cp ${M_TTYPE} /tmp/ttytype sort -f +1b -2 ${WORK_DIR}/${TTYPE_BASE} /tmp/ttytype.out -o ${M_TTYPE} #folding to uppercase and sorting the second field (port) skipping blanks #update inittab echo "\n\tUpdating /etc/inittab" cd /etc/conf/bin ./idmkinit -o /etc #update the security database if [ -x /tcb/bin/ttys_update ] then clear echo "\n\n\n\n\n\tUpdating security database." echo -n "\tPlease wait ..." if /tcb/bin/ttys_update >/dev/null 2>&1 then echo "\n\n\n\n\tSystem files successfully updated." else echo "\n\n\n\n\tError: /tcb/bin/ttys_update failed.\n\tYou must update the security database through sysadm" fi fi /etc/rc2.d/S35${LCNAME}_init #update the profile information if [ $? -ne 0 ] then echo " The MAIN screen on the first port of each board must be the active screen before the changes can be sent to each board. /etc/${LCNAME}Init will continue to hang until this is true." exit 1 fi init q bin/ttys_update >/dev/null 2>&1 then echo "\n\n\n\n\tSystem files successfully updated." else echo "\n\n\n\n\tError: /tcb/bin/ttys_update failed.\n\tYou must update the security database through sysadm" fi fi /etc/rc2.d/S35${LCNAME}_init #update the profile ./usr/man/cat.IP2/fip_hot.IP2 644 0 0 2525 5452704030 10635 9/30/93 FIP_HOT(IP2) Computone IntelliPort-II FIP_HOT(IP2) Name fip_hot - gets or sets the state of hot-key scanning Syntax /etc/fip_hot [ [-b|-n] [-s] | -h ] [ < /dev/device_name ] Description While using a profile which has support for multiple screens (if more than just the MAIN screen is open) the IntelliPort-II board will scan the incoming data looking for screen-switch requests. The fip_hot command will temporarily disable (then later re-enable) the scanning for screen-switch requests. This could be nescessary if the key sequence selected conflicts with a sequence needed by an application. -b block hot-key scanning -n not block hot-key scanning (this will NOT enable hot-key scanning if it was not enabled before) -s run silent and not print the current status -h prints this help The command will act on the standard input device. The option "< /dev/device_name" is only nescessary if the command is being run from some port other than the one which needs to be affected. FIP_HOT(IP2) Computone IntelliPort-II FIP_HOT(IP2) ock hot-key scanning (this will NOT enable hot-key scanning if it was not enabled before) -s run silent and not print the current statu./usr/man/cat.IP2/fip_reinit.IP2 644 0 0 2055 5452706322 11341 9/30/93 FIP_REINIT(IP2) Computone IntelliPort-II FIP_REINIT(IP2) Name fip_reinit - downloads profile information to the board Syntax /etc/fip_reinit [-v | -vp] [ -d ] Description This will cause the intellicap, icap.site, and intellitype files to be read and the nescessary profiles downloaded (unless one of the -v options are used.) This program is automatically run during system boot and after a "mkdev fip". It should only need to be run manually if changes to the above files have been made. -vp verify Intellicap profile syntax only. -v verify Intellicap syntax and driver support levels only. -d turn on debug mode. Use more than one -d for more info. Files /etc/default/fip.d/intellicap /etc/default/fip.d/icap.site /etc/default/fip.d/intellitype FIP_REINIT(IP2) Computone IntelliPort-II FIP_REINIT(IP2) ip". It should only need to be run manually if changes to the above files have been made. -vp verify Intellicap profile syntax only. -v verify Intellicap syntax and driver support levels only. -d turn on debug mode. Use more than one -d for more info. Files /etc/default/fip.d/intellicap /etc/default/fip.d/icap.site /etc/default/fip.d/intellitype FIP_REINIT(IP2) C./usr/man/cat.IP2/fip_report.IP2 644 0 0 5007 5452704030 11354 9/30/93 FIP_REPORT(IP2) Computone IntelliPort-II FIP_REPORT(IP2) Name fip_report - IntelliPort-II diagnostics tool. Syntax /etc/fip_report [-?] [-m] [-x] [-i] [-q] [-u[k]] [-s] [-l sec] [-z msec] [[[-p ports ] [-b boxes] [-c cards]]|[-d dev]] Description The fip_report utility will give information on a card or range of cards. It can give port signal status, xmit and rcv rates, flow control status. It can flush and kill processes on a port which may be clogged (due to flow control, etc...). It can give information on the state of the IntelliPrint and IntelliView features. Security Use of fip_report is restricted to users with access to the /dev/fip_debug? device (where ? is the board number) WRITE permission gives access to all options. READ permission gives access to all options except -u and -uk. Information on a board (-i option) is available to all users with EXECUTE permission for /etc/fip_report. -? Gives this help screen. -m Gives information on multiscreens. -x Gives information on transparent print. -i Gives information on the card specified -q Be quiet (no error messages) for ports not found. -u Will unclog a port waiting on flow control (CTS, XON, ..) -uk Unclog port and send a SIGKILL to the process group. -s Gives a port summary. -l sec Loops every sec seconds until the DEL key is pressed. -z msec Override the 100 millisecond default response timeout for the card. -p ports Specifies the ports to display. -b boxes Specifies the boxes to display. -c cards Specifies the cards to display. NOTE: The option argument(s) (ports, boxes, cards) can be a number, a range in the format nn-nn (where nn is a decimal number) or the keyword ALL. -d dev Specifies the port(s) by device name (/dev/ttysnn, nn, or use shell wildcard expansion) NOTE: -d must be the LAST option on the command line. Files /dev/fip_debug0 /dev/fip_debug1 /dev/fip_debug2 /dev/fip_debug3 FIP_REPORT(IP2) Computone IntelliPort-II FIP_REPORT(IP2) be a number, a range in the format nn-nn (where nn is a decimal number) or the keyword ALL. -d dev Specifies the port(s) by device name (/dev/ttysnn, nn, or use shell wildcard expansion) NOTE: -d must be the LAST option on the command line. Files /dev/fip_debug0 /dev/fip_debug1 /dev/fip_debug2 /dev/fip_debug3 FIP_REPORT(IP2) Computone IntelliPort-II FIP_REPOR./usr/man/cat.IP2/rj45.IP2 644 0 0 3720 5452704030 7767 9/30/93 RJ45(IP2) Computone IntelliPort-II RJ45(IP2) Description - IntelliPort-II RJ-45 pinouts and cable connections NOTE: The characters in this document may not display properly on ALL terminals. If you are having trouble then view this document on the console. First we need to identify the "pin 1" on our connector. View the computone FEMALE RJ-45 connector with the pins on top and the RJ-45 clip notch on bottom. The connector should look like the following... Female ݳ 87654321 ... where pin 1 is on the right. Given the above RJ-45 pinout, the wiring would be as follows For a TERMINAL, PRINTER, or standard DTE device. ------------------------------------------------ Computone RJ-45 (pin) DB-25 (pin) CTS (1) <-------------- (4) DTR (2) --------------> (8 and 6) TX (3) --------------> (3) GND (4) <-------------> (7) DCD (5) <-------------- (20) RX (6) <-------------- (2) RTS (7) --------------> (5) (8) --- UNUSED For a TERMINAL, PRINTER, or standard DTE device (using DTR for HARDWARE FLOW CONTROL). ----------------------------------------------- Computone RJ-45 (pin) DB-25 (pin) CTS (1) <-------------- (20) DTR (2) --------------> (8 and 6) TX (3) --------------> (3) GND (4) <-------------> (7) DCD (5) <-------------- (4) RX (6) <-------------- (2) RTS (7) --------------> (5) (8) --- UNUSED For a MODEM, or standard DCE device. ------------------------------------ Computone RJ-45 (pin) DB-25 (pin) CTS (1) <-------------- (5) DTR (2) --------------> (20) TX (3) --------------> (2) GND (4) <-------------> (7) DCD (5) <-------------- (8) RX (6) <-------------- (3) RTS (7) --------------> (4) (8) --- UNUSED 9/30/93 RJ45(IP2) Computone IntelliPort-II RJ45(IP2) -------- (2) RTS (7) --------------> (5) ./etc/default/fip.d/curses/menu.iview 644 0 3 21 5240302516 12607 None: Main: All: 67386/rel=E@@@0@AY./etc/default/fip.d/curses/menu.yesno 644 0 3 11 5240302516 12620 Yes: No: n: All: 67386/rel=E@x@@@AY./etc/default/fip.d/curses/ISAio.mas 640 0 3 1120 5306775145 12320 308 30F 310 317 318 31F 320 327 328 32F 330 337 338 33F 340 347 348 34F 350 357 358 35F 370 377 390 397 398 39F 3D0 3D7 3E0 3E7 3E8 3EF 208 20F 210 217 218 21F 220 227 228 22F 230 237 238 23F 240 247 248 24F 250 257 258 25F 260 267 268 26F 270 277 280 287 288 28F 290 297 298 29F 2A0 2AF 2A8 2AF 2B0 2B7 2B8 2BF 2C0 2C7 2C8 2CF 2D0 2D7 2D8 2DF 2E0 2E7 2E8 2EF 2F0 2F7 108 10F 110 117 118 11F 120 127 128 12F 130 137 138 13F 140 147 148 14F 150 157 158 15F 160 167 168 16F 178 17F 180 187 188 18F 190 197 198 19F 1A0 1A7 1A8 1AF 1B0 1B7 1B8 1BF 1C0 1C7 1C8 1CF 1D0 1D7 1D8 1DF 1E0 1E7 1E8 1EF 358 35F 370 377 390 397 398 39F 3D0 3D7 3E0 3E7 3E8 3EF 208 20F 210 217 218 21F 220 227 228 22F 230 237 238 23F 240 247 248 24F 250 257 258 25F 260 267 268 26F 270 277 280 287 288 28F 290 297 298 29F 2A0 2AF 2A8 2AF 2B0 2B7 2B8 2BF 2C0 2C7 2C8 2CF 2D0 2D7 2D8 2DF 2E0 2E7 2E8 2EF 2F0 2F7 108 10F 110 117 118 11F 120 127 128 12F 130 137 138 13F 140 147 148 14F 150 157 158 15F 160 167 168 16F 178 17F 180 187 188 18F 190 197 198 19F ./etc/default/fip.d/curses/MCio.mas 644 0 3 4536 5415067255 12222 308 30F 310 317 318 31F 340 347 348 34F 350 357 358 35F 208 20F 210 217 218 21F 240 247 248 24F 250 257 258 25F 108 10F 110 117 118 11F 140 147 148 14F 150 157 158 15F 2020 2027 2028 202F 2030 2037 2038 203F 2060 2067 2068 206F 2070 2077 2078 207F 2120 2127 2128 212F 2130 2137 2138 213F 2160 2167 2168 216F 2170 2177 2178 217F 2220 2227 2228 222F 2230 2237 2238 223F 2260 2267 2268 226F 2270 2277 2278 227F 2320 2327 2328 232F 2330 2337 2338 233F 2360 2367 2368 236F 2370 2377 2378 237F 5400 5407 5408 540F 5410 5417 5418 541F 5440 5447 5448 544F 5450 5457 5458 545F 5500 5507 5508 550F 5510 5517 5518 551F 5540 5547 5548 554F 5550 5557 5558 555F 5600 5607 5608 560F 5610 5617 5618 561F 5640 5647 5648 564F 5650 5657 5658 565F 5700 5707 5708 570F 5710 5717 5718 571F 5740 5747 5748 574F 5750 5757 5758 575F 7420 7427 7428 742F 7430 7437 7438 743F 7460 7467 7468 746F 7470 7477 7478 747F 7520 7527 7528 752F 7530 7537 7538 753F 7560 7567 7568 756F 7570 7577 7578 757F 7620 7627 7628 762F 7630 7637 7638 763F 7660 7667 7668 766F 7670 7677 7678 767F 7720 7727 7728 772F 7730 7737 7738 773F 7760 7767 7768 776F 7770 7777 7778 777F 8880 8887 8888 888F 8890 8897 8898 889F 88C0 88C7 88C8 88CF 88D0 88D7 88D8 88DF 8980 8987 8988 898F 8990 8997 8998 899F 89C0 89C7 89C8 89CF 89D0 89D7 89D8 89DF 8A80 8A87 8A88 8A8F 8A90 8A97 8A98 8A9F 8AC0 8AC7 8AC8 8ACF 8AD0 8AD7 8AD8 8ADF 8B80 8B87 8B88 8B8F 8B90 8B97 8B98 8B9F 8BC0 8BC7 8BC8 8BCF 8BD0 8BD7 8BD8 8BDF A8A0 A8A7 A8A8 A8AF A8B0 A8B7 A8B8 A8BF A8E0 A8E7 A8E8 A8EF A8F0 A8F7 A8F8 A8FF A9A0 A9A7 A9A8 A9AF A9B0 A9B7 A9B8 A9BF A9E0 A9E7 A9E8 A9EF A9F0 A9F7 A9F8 A9FF AAA0 AAA7 AAA8 AAAF AAB0 AAB7 AAB8 AABF AAE0 AAE7 AAE8 AAEF AAF0 AAF7 AAF8 AAFF ABA0 ABA7 ABA8 ABAF ABB0 ABB7 ABB8 ABBF ABE0 ABE7 ABE8 ABEF ABF0 ABF7 ABF8 ABFF DC80 DC87 DC90 DC97 DC98 DC9F DCC0 DCC7 DCC8 DCCF DCD0 DCD7 DCD8 DCDF DD80 DD87 DD88 DD8F DD90 DD97 DD98 DD9F DDC0 DDC7 DDC8 DDCF DDD0 DDD7 DDD8 DDDF DE80 DE87 DE88 DE8F DE90 DE97 DE98 DE9F DEC0 DEC7 DEC8 DECF DED0 DED7 DED8 DEDF DF80 DF87 DF88 DF8F DF90 DF97 DF98 DF9F DFC0 DFC7 DFC8 DFCF DFD0 DFD7 DFD8 DFDF FCA0 FCA7 FCA8 FCAF FCB0 FCB7 FCB8 FCBF FCE0 FCE7 FCE8 FCEF FCF0 FCF7 FCF8 FCFF FDA0 FDA7 FDA8 FDAF FDB0 FDB7 FDB8 FDBF FDE0 FDE7 FDE8 FDEF FDF0 FDF7 FDF8 FDFF FEA0 FEA7 FEA8 FEAF FEB0 FEB7 FEB8 FEBF FEE0 FEE7 FEE8 FEEF FEF0 FEF7 FEF8 FEFF FFA0 FFA7 FFA8 FFAF FFB0 FFB7 FFB8 FFBF FFE0 FFE7 FFE8 FFEF FFF0 FFF7 FFF8 FFFF 7 DDC8 DDCF DDD0 DDD7 DDD8 DDDF DE80 DE87 DE88 DE8F DE90 DE97 DE98 DE9F DEC0 DEC7 DEC8 DECF DED0 DED7 DED8 DEDF DF80 DF87 DF88 DF8F DF90 DF97 DF98 DF9F DFC0 DFC7 ./etc/default/fip.d/curses/gen1 755 0 1 61270 6050245740 11456 , D Jd`@?H? D DDGL#~ã3P.USWVE 8$EMEEM E E^_[USWV5ThX]1u uO1h]B1^_[USWVu2E=^i#-EmE9#+uEKPu3 E^_[USWVEEEE}5E8#EM 8 EEM EE^_[USWVDž#E E9*uPn1h_P0EPP0haPx0E PPb0hcPN0EPP80heP$0EKPP0hgP/EZPP/hiP/EkPP/Phku_- ^_[USWV#Euhh8+ E=Hj ujuE P jE@PEZP jhoEPX1PEKPt jhqub jhsEPL jhuEP6 E@k=8#h{u0Ejuu h}j0EjuEP hjn0Ej uE Pz qhj50Ej1uEPA 8h.MQ.;Uh.PEP|.hm.+]Sh. hj|/EjuEKP EjhEKPp. EKP-1؋MQ-;/hEP,EKPEP, EBhj.EjuEKP E:}hjj.EjuEZPv mhj1.Ej@uEkP= E@kEKP, j5EKP-  j5EKP, 5#S,P5#E P, hE P+A5 ,P5E P{, hE P+E=@h@iP5#E}jh@j&E#i#EE 8HNE 08HN5#+P5#E P+ dE $HNEKPE}E HNEKPE}hE PD* ^_[USWV5Tuh$5Th(^_[USWV}hEj$M}E h[E 0) Hh^E 0g) PhcE 0B) PhhE 0) PV=H#mo#qyPXh}j#=H   F$fg0m=H    /4S$sT0Z9=Hh_j"  rS$sT0ZHHHt^_[USWVE Tu uMh+n#=#jh(j!5 P&Phn%hP"!cPhjd!h$5P^&Ph$hP!![Phj hFg$j ^_[USWV=uA}u3^_[áX9E=PugPXTPdEE ET@9E|T-\XE\H+5\-\+5\  tt{tnCEC 9EsE$C uC+HDK ;vC ljC C CG+5\ EˀHPlE  tEKHECE@M EȋЉQGE+5\ UEEEȋЍTQ PEMEMHE^_[Ð}=LG<ǃ w vEEE@MIHE@MIHE9Huhhh$ E9Huhh(h4} EEEEt9Er5EE+;s PGj!ء ;G E EùU t+EED@;uW!@EDEùU t+؋EEˀEaf%ED@;bu @Nù thh8hD EEM55E++؉E ED@;ù thhHhT} u@EE졸M E5FNHFNH9vuhhXhd  9vhhhhtFNHFNH9vuhhxh 9vuhhh FE= H HE@@E@E@E9Huhhh0 E9Huhhh ++ǃ ruދ CCX9[uhhh 9[uhhh 95u L^_[ÐUSWVE@$9whhh? whhh  3ƨa$F ^F=\EE8;00NHF>GFwF0^_[Ð]+LEE$ECCX9[uh3hhc 9[uh3hhG EEE@MIHE@MIHE9Huh7hh$ E9Huh7h(h4 EEEt9EuE^_[ÐUSWV} u 3^_[ÐE@t#u CE t9E u u+5LEEuQFNHFNH9vuhdh8hD% 9vuhdhHhT  E E$EE@MIHE@MIHE9HuhkhXhd E9Huhkhhht EEt 9Er5} =LG<ǃ w ]+;+ǃ ƉEME E@E HMHE9Huhhxh E9Huhhh 95uE裸EE9E ;rËu ME SuP uE^_[ÐUSWVu} V u3^_[ÐVjS ^_[ÐUWVu} =Pt ^_Ðƃtt<tGtv |ء\H=\T\-TX3^_Ð~=H됐 ~G\T\H=\-\롐L U@WVj(jEP $E tL+EEċE.EȋE+EEEt EEEEEEE$E=uƃ=tf5TZE tI@EEu}EE܋E-H+EEءHE̋EEM9 uN E̙=HkEԋE)EȋEEE)EE)EEVuĹ ^^_ÐUSWVu3ۋF$FEF $E9}t ]$ uE-H+E؋^_[UueÐU WVu 54E#V==dh`jrBWVu EUE^_ÐUWVu>~u;u^_ÐUVu^Ðu^UVu^Ðu^UWVj*ju  3U}#E kME 8GEU u؋E8u3^_Ð t t5$EE8_u F}/3뼐Ex.t ^_ÐFܐEE8.t䐐^_UWV3%kE<8ujE PEP F|^_ÐUjh j u Pu j jh j E.$0E $u Pu jc j"h,jR jhPj: jhՐjh`j jhj  j hdjhj jhp륐jh낐jhsj hgwp jhjU4hu) uEuu t ÐE8txt xFu \E t1EPub tu j5EPuE8txt xhE t0EPu tu jEPuE8txt xh t$E8uxu xu j EhE EPud tu j7}t}t߀}tًE8tEPu tvExtEPEPZ tFExtEPEP* tEPuGE}jP}u u jUE8t xtxu EPhLEPu3ÐU=t5y }t ju } Ð3Ujj5/ EuEhh5& E ~3EEEE8 t EM}u}u2}u3Ðju5 }tEEÐEE+E@Euuu tME@EwUVEPkEHu $ t3^hEPrE-hEPjkEDPEP Ẽ}|hEPmkEHDEPWjEPqE@u(}tkEHj1T^jEPu |kEHM8@t'kEHjuW ukEH8Eu1 }tkEHjikEHjEPV hkEHPbjEPkEHPv hkEHP3jEPkEHPG HE^ÐUWVEE} }3g^_ÐhhkHPhkHLt!PPP tEFkHu}t^_Ð3kHE9u ^_ÐFkHu3^_Ð}hu h =/uEEE3juV E tF}u$}t*EEj/P E tEkHuE ^_Ð3FkHDkHM9uju VV ^_ÐUV}|+EERkH^Ð^U}uuj t3ÐUÐUh=huF DuV3 u>F D>V>xFFMVEP F t^E^ÐUSWVu^~+؉~F Dt3F ,+FF ,+F 3;} VX ~!SWF Pa ;tN ^_[3^_[ÐUVuF $<tF u ^ÐF $ F ~u VJF9Fu9F Du3F ,+FF ,+F 3;} V3^ÐUWVu~ F tF,Y}F `N6hF tN F N֐F N ,FFW t F uN @^_ÐUSWVuF ,+F } ^^_[Ð9>~>^_[ÐUhPu =|hPua =}hPhT 6 hPhX 3Ðr3ãU\SuwÐU SWVu }EEG u 3^_[ÐNoO;|ƋSj wuE t+]])_G ,+G 3;} W}tEE^_[Ð+ ~?W@yE9Eu_UPu u(ÐUVuVVu u ^ÐU SWVu t}tE8u 3^_[ÐE x+E at:rtQwu t؀hSu  E }2 tf̐ t3븐EF tE 8ruF E 8au ujju *F 3ɉNN ,^_[ÐUVEEE@ u @ t H uuu  E@ t^Ë^ÐUSWVu=d?twV u u3^_[ÐUWVu} G8Gu F~=u^_À>u=t3^_ÐrãUVWUߎNj}Nju ~%tt ك+ ~_^UWSUߎNj}E ~!ك+  ~E[_ørãUVE Eut% hxuu2  t^Ë^ÐrãUWVu u ^_Ë=P @u ^_Ð^_ÐUVWߎNj} +ы}8ѹO~%tt ك+E_^UWߎNj}+ыE uH+_UVWߎNj}׋u +ыtHw_^UVWߎNj} +ы}ǃ~)tt ك+_^UWߎNj}+H_UVWU ~OߎNj} +A+ы}O~%tt ك+󤪋E_^UVW+M ~ ߎNj}+ыʋu tHw_^UVWSU zߎNj} ++ыڋ}~%tt ك+U+~.~%tt ك+E[_^U SWV}u 5u u 3^_[Ðu V ?tu W  u %u S ;vFCã^_[ÐrãUE%EE%EMEE0ÐUSWVu} ]{ EPK*EEEEEE E @E܃}XuPdE]]E܉E uE@u6EEЀM%KE#EEE%ME uE@tEM++E ~ EEЀME}EXt;ot xtfEEEEꐐE E E @E]@'E E X uE@uSaÉE7]EE8tMyEHߐt8W<W<|8W<|;W<W<W<W<8d8W<l88W<8i-XtN N F tf ^_ÐUVh95(v F u^Ð3^ÐUjjYE tPjG=ujPÐr D$3ãUEEPhTuy }E3ÐÐUVW+M ~UߎNj} ыEt++ы}~'tt ك+ t_^USWVu} C;t8u;t^_[F~u3^_[ÐUSWVu ] G?t8u?u +E^_[ÐC;tېUSWVu} ~<}~6F $<u~tF9Fu>uF DuV3 t 3^_[ÐF ,EEE F9FrdF urVWuF P ;t N 3؋Ù} ^_[ÐV@uE H+u ȋE+^_[Ð]ENM+ ~ȋ;rËSuu )^F ,+F 3;} V+uF Dt!F uSj vl t VE^_[ørã6rã%r3ãUWM ~ߎNj}E uH+_80Cr;u ÃD$%sT$ X(C) Copyright 1991,1992,1993 Computone Corporation%s: ::: %s xxgetty::: gettygettygettygetty tty MainNonecan't realloc itab_recsAll%s Version %s: %s. usage: %s product [-x] where product is -alc|-fip|-ip2 @(#)computone_curses_menus 1.4.4product name required-x-alc-fip-ip210respawnoffproduct name required/etc/default/alc.d/curses/inittab.txt/tmp/ttys.alc/etc/conf/init.d/alcttyFttyf/etc/default/fip.d/curses/inittab.txt/tmp/ttys.fip/etc/conf/init.d/fipttySttys/etc/default/ip2.d/curses/inittab.txtuse FIP with XENIX/etc/conf/init.d/ip2ttySttyscan't malloc itab_recsPlease wait -- scanning %s file ...rERROR: can not open %s file for input. Please wait -- writing %s file ...wERROR: can not open %s file for output. dLC_CTYPEctypeLC_NUMERICnumericLC_TIMEtimeLC_COLLATEcollateLC_MESSAGESmessagesLC_MONETARYcurrency/etc/default/langLANG=henglish_us.ascii .8&t|english_us.asciih''english_us.ascii' (english_us.asciiD&8&english_us.ascii'@'english_us.ascii&&english_us.asciilibc: setlocale: : LANG environment variable syntax errorunable to open no line in syntax error in cannot open locale filecorrupt locale fileunknown error CLANG/usr/lib/lang//_./      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-$yn +29AKT[dhlptx|%m/%d/%y%H:%M:%SAMPM%a %b %d %X %Z %YSundayMondayTuesdayWednesdayThursdayFridaySaturdaySunMonTueWedThuFriSatJanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecemberJanFebMarAprMayJunJulAugSepOctNovDecAssertion failed: , file , line NNNNN ((((( H   !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~.,( 000000000000000000000123456789ABCDEF0123456789abcdefnan0xNAN0XinfINFmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEX-+ 0x0X(null)-+ malloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.c./etc/default/fip.d/curses/gen2 755 0 1 66020 6050245743 11460 ,NJd`@?H?NNDGT,~ã3$P8USWV5hK0<u u"<hP<^_[USWVE 8$EMEEM E E^_[U SWVEEu7E@LE}  E8EE $E9E E E MEE^_[USWVjuEP EEP<E=xWx Em E9+uEPu=  E^_[USWVuK<E="c}Y"EmE9*uuuu<  E^_[USWVju;u ;E @EDžE EHEEEEHEE9EM8EEE+@u ; EE=EuP :u9Pu09;^_[U SWVu:@PhEu9@PPEu9@P8Eu9@P Eu 9@PEu uG9uu99uu+9uu9uu9uRPP23EEuEEEE9EpE8&EMHuuu1 EMIHEMHuuu EMIHuhub5 ~uuuuu^_[U SWV= Dž(E E9jhE P8 5E P7xjhE PM8 5(E PW7?jhE P8  (5(E P7=GE PP6EZPP"6EKPP 6uP6hP5EPP5hP5E PP5hP5EPPw5hPc5EKPPM5hP95EZPP#5hP5EkPP4Phu2 E P5=eE PPb5EZPP4EKPP~4hEKPPuB*uP5hP54EPP4hP 4E PP3hP3EPP3hP3EKPP3hP3EZPPw3hPc3EkPPM3uEKPPu^_[USWV=DžE E9vuP3hP2EPP2PhuE0 hEPPuMo^_[USWV++EuhtP- E'jhua4Pu4 jhjD4PEP EP2j5EP=3  j5EP3 E=@n@++P5Cppjhp++E^_[USWV(EuhpPx, Ejhu2Pu jhj2PEP j hj2PE P j1hj2PEPn jhj~2PEKPM jhEKP1 EP0-Wh EP/EKP01؋MQ0+SEKPEP0 mjhj1PEKP Gjhj1PEZPs hj1Ej@uEkPD E@kEKP/j5EKPb0  j5EKPB0 E=@g@iP5(hlljhBl(i(EB^_[USWVxtuhxP) E3jh/u0Pt h2j/jh4j/PtP t.j5t. j5t. xt p=p@ex@P5ppjh8pxtp^_[USWV"xhj$|Pujj:xuhj:|Puhj:|Pujj xPuv"x"="@k"@P5ttjhQt"x"^_[USWV5uh5hiz*^_[USWV}hj|&M}E hE 0m+ hE 0H+ hE 0#+ hE 0* V=(( Xhjw%'=M [putFfugmz= tSsuTZ=hj$  tSsuTZHHHt^_[USWVE u uM%""h=jh1"pxhv=jhLh9=jhhh+(=(jhkh5#Eu5h)j"h5#Eu5hjS"h58#EuS5hj"h5"Euy5hEj!hG5"Eu5hIjo!hr5T"Eu5htj#!j!^_[USWV=uA@4@0  4(}u3^_[á9E=ugPd,EE ,E衬@9E|⡬-EH+5-+5 , tt{tnCEC 9EsE$C uC+DK ;vC ljC C CG+5 ,EˀPlE  tEKHECE@M EȋЉQGE+5 ,UEEEȋЍTQ PEMEMHE^_[Ð}=G<ǃ w vEEE@MIHE@MIHE9Huhhph| E9Huhhh} EEEEt09Er5EE+;s P Gj<"ء0 ;G E EùU t+EED@;u!@EDEùU t+؋E@E0ˀE0af%ED@;buM!@Nù thhh E0E@0M505E00++؉E ED@;ù thhh} u @E0EM 0E@5FNHFNH9vuhhh  9vhhhFNHFNH9vuhhh 9vuhhh FE= ( H (HE@@ E@(E@E9Huhhh0 E9Huhhh  ++ǃ ruދ CCX9[uhhh 9[uhh h, 95u ^_[ÐUSWVE@$90whh0h<? 4whh@hL  3ƨa$F ^F=E,E8;00NHF>GFwF0^_[Ð]+EE$ECCX9[uh3hPh\c 9[uh3h`hlG EEE@MIHE@MIHE9Huh7hph| E9Huh7hh EEEt09EuE^_[ÐUSWV} u 3^_[ÐE@t#u CE t9E u u+5EEuQFNHFNH9vuhdhh% 9vuhdhh  E E$EE@MIHE@MIHE9Huhkhh E9Huhkhh EEt 09Er5} =G<ǃ w ]+;+ǃ ƉEME E@E HMHE9Huhhh E9Huhhh 95uEEE9E ;rËu ME SuPa uE^_[ÐUSWVu} V u3^_[ÐVjS_ ^_[ÐUWVu} =t ^_Ðƃtt<tGtv |ءH=-3^_Ð~=됐 ~GH=-롐 U@WVj(jEP @$E tL0+EEċE.EȋE+EEEt EEEEEEE$E=@uƃ=,tf5Z,E tI@EEu}EE܋E-+EEءE̋EE,M9 uN E̙=kEԋE)EȋEEE)EE)EEVuĹ ^^_ÐUSWVu3ۋF$FEF $E9}t ]$ uE-+E؋^_[UueÐU WVu 5E(V==hjrBWVuP EUE^_ÐUWVu>~u;u^_ÐUVppu^Ðpu^UVppu^Ðpu^UWVj*ju 0 3U}#E kME 8GEu؋E8u3^_Ð t t5$EE8_u F}/3뼐Ex.t ^_ÐFܐEE8.t䐐^_UWV3%kE<8ujE PEPS F|^_ÐUjhdjO u pPu j6 jhxj% E.$4(E |u %Pu j j"hj jhj jh<Րjhj jhPj j hjhPjz jh륐jh낐jhsj hg{'t''''(((jhjU4hu uEPuu t ÐE8txt xFu E t1EPub tu j5EPuE8txt xhE t0EPu tu jEPuE8txt xh< t$E8uxu xu j EhPE EPud tu j7}t}t߀}tًE8tEPu tvExtEPEP tFExtEPEP tEPuGE}jP}u u jUE8t xtxu EPhPLEPu3ÐU=Lt5L }t juL } Ð3Ujj5L Eu=EhhP5L E ~3EPEEE8 t EM}u}u2}Pu3Ðju5L< }tEEÐEE+E@Euuu" tME@EwUVEPkEH\u $ t3^h$EPE-h2EP&jkEDPEP; Ẽ}|h4EPkEHEPjEPE@u(}tkEH\j1T6^jEPu* |kEHM8t'kEH\ju ukEHEu }tkEH\jikEH`jEPV- h8kEH`PjEPkEH`P h:kEH`PjEPkEH`P HE`^ÐUWVEEP} }3gP^_Ðh<hP9kH`PhP#kHt!P`P tEFkH\u}t`^_Ð3kHE9Xu `^_ÐFkH\u3^_Ð}hu hPH ^=P/uEEQEP3juV E tF}u$}t*EEj/PE tEkH\uE ^_Ð3FkH\DkHM9Xuju VV ^_ÐUV}|+EERkHL^Ð>^U}uuj t3ÐU?ÐUh=huF DuV3 u>F D>V>xFFMVEP F t^E^ÐUSWVu^~+؉~F Dt3F +FF +F 3;} VX ~!SWF P ;tN ^_[3^_[ÐUVuF $<tF u ^ÐF $ F ~u VJF9Fu9F Du3F +FF +F 3;} V3^ÐUWVu~ F t"FY}F N6hF tN F N֐F "N FFW t F uN @^_ÐUSWVuF +F } ^^_[Ð9>~>^_[ÐUhPu =|hPu =}hPh hPh 3ÐUSWVu3F t t+t-uCk +0Fu t ^_[Ð^_[Ðr3ãUuÐUVux FF^ÐV^U SWVu }EEG u 3^_[ÐNoO;|ƋSj wuE t+]])_G +G 3;} W }tEE^_[Ð+ ~?W@yE9Eu_UPu u(ÐUVuVVu u ^ÐU SWVu t}tE8u 3^_[ÐE x+E at:rtQwu t؀hSu  E }2 tf̐ t3븐EF tE 8ruF E 8au ujju *F 3ɉNN ^_[ÐUVEEE@ u @ t H uuu  E@ t^Ë^ÐUSWVu=?twV u u3^_[ÐUWVu} G8Gu F~=u^_À>u=t3^_ÐrãUVWUߎNj}Nju ~%tt ك+ ~_^UWSUߎNj}E ~!ك+  ~E[_ørãUVE Eut% huu2  t^Ë^ÐrãUWVu u ^_Ë=P @u ^_Ð^_ÐUVWߎNj} +ы}8ѹO~%tt ك+E_^UWߎNj}+ыE uH+_UVWߎNj}׋u +ыtHw_^UVWߎNj} +ы}ǃ~)tt ك+_^UWߎNj}+H_UVWU ~OߎNj} +A+ы}O~%tt ك+󤪋E_^UVW+M ~ ߎNj}+ыʋu tHw_^UVWSU zߎNj} ++ыڋ}~%tt ك+U+~.~%tt ك+E[_^U SWV}u 5`u u 3^_[Ðu V ?tu W  u `%u S ;vFCã`^_[ÐrãUE%EE%EMEE0ÐUSWVu} ]{ EPK*EEEEEE E @E܃}XuE]]E܉E uE@u6EEЀM%KE#EEE%ME uE@tEM++E ~ EEЀME}EXt;ot xtfEEEEꐐE E E @E]@'E E X uE@uSaÉE7]EE8tMyEHߐCFFCFFFFFF CBFBCF\Ci-XtN N F tf ^_ÐUV95v F u^Ð3^ÐUjjYE tPjG=ujPÐr D$3ãUEEPhTuy }E3ÐÐUVW+M ~UߎNj} ыEt++ы}~'tt ك+ t_^USWVu} C;t8u;t^_[F~u3^_[ÐUSWVu ] G?t8u?u +E^_[ÐC;tېUSWVu} ~<}~6F $<u~tF9Fu>uF DuV3 t 3^_[ÐF EEE F9FrdF urVWuF P ;t N 3؋Ù} ^_[ÐV @uE H+u ȋE+^_[Ð]ENM+ ~ȋ;rËSuu )^F +F 3;} VF+uF Dt!F uSj vl t VoE^_[ørã6rã%r3ãUWM ~ߎNj}E uH+_80sNr;u ÃD$%sT$ Xicapitypettype.txt/tmp/inittab.out/tmp/ttytype.out%s: (C) Copyright 1991 Computone Corporation):1%s NoneMainAll::: %s ::: %s can't realloc ttype_recs::: tty can't realloc itab_recs :$ can't realloc itype_recscan't realloc icap_recs%s Version %s: %s. usage: %s product [-x] where product is -alc|-fip|-ip2 @(#)computone_curses_menus 1.4.4product name required-x-alc-fip-ip210respawnoffproduct name required/etc/default/alc.d/curses/inittab.txt/tmp/ttys.alc/etc/conf/init.d/alcttyFttyf/etc/default/fip.d/curses/inittab.txt/tmp/ttys.fip/etc/conf/init.d/fipttySttys/etc/default/ip2.d/curses/inittab.txtuse FIP with XENIX/etc/conf/init.d/ip2ttySttysinittab.txtfailed to malloc icap_recsfailed to malloc itype_recsfailed to malloc ttype_recsfailed to malloc itab_recsrERROR: can not open %s file for input. rERROR: can not open %s file for input. rERROR: can not open %s file for input. rERROR: can not open %s file for input. wERROR: can not open %s file for output. wERROR: can not open %s file for output. dLC_CTYPEctypeLC_NUMERICnumericLC_TIMEtimeLC_COLLATEcollateLC_MESSAGESmessagesLC_MONETARYcurrency/etc/default/langLANG=english_us.ascii8<0english_us.asciil11english_us.ascii1$2english_us.asciiH0<0 english_us.ascii1D1$english_us.ascii000english_us.asciilibc: setlocale: : LANG environment variable syntax errorunable to open no line in syntax error in cannot open locale filecorrupt locale fileunknown error CLANG/usr/lib/lang//_./      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-$yn +29AKT[dhlptx|%m/%d/%y%H:%M:%SAMPM%a %b %d %X %Z %YSundayMondayTuesdayWednesdayThursdayFridaySaturdaySunMonTueWedThuFriSatJanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecemberJanFebMarAprMayJunJulAugSepOctNovDecAssertion failed: , file , line NNNNN ((((( H   !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~.,$""" 000000000000000000000123456789ABCDEF0123456789abcdefnan0xNAN0XinfINFmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEX-+ 0x0X(null)-+ malloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEXmalloc.cEX-+ 0x0X./etc/default/fip.d/curses/menu0 755 0 1 500114 6050245733 11665 LK0  to @.text  .data @ @to @.bss |@ |@ .comment@ |ÐET @RU RPh @jOt{@= P jUSWVE 8$EMEEM E E^_[USWVum E}EEx/MEE^_[USWV]u C8; []EE85]u C8F> E+E^_[USWVE}1EEE8EM 8E E^_[USWVEEEE}5E8#EM 8 EEM EE^_[USWV}.u]K9]8E  K^_[USWV];"; ;  ; FC^_[USWVE} `EE}BE<Ą@,EM Ą@EM <@EM @?EE}&EM9 Ą@EĄ@^_[USWVEEE}E<Ą@<j5xI躔E4Ą@(E<@(xIxIE4Ą@ E<@82jjE4Ą@ E4<@E4Ą@E4Ą@LC^_[USWVhxIhTjM hxIhTj9 <@_iXf%xIf%xIf%xIxIhxIhTj 5xIC5xI)h=@jj5xI|5^_[USWVhxIhTj 5xI5xIh=@jj5xI=<@ <@^_[USWV58@h=@ru udh=@W^_[USWVA58@h=@.u u h=@^_[USWVuEE  yoe[QG= 3)rH.$o5 V mV +YV !V wV V V V V V V V = u,-HHHHJ=R- ;HR"-Sa bE^_[USWVuiEEO{qg]SI?5 + !''     wmc/Y0O"E!;.fH.$  k   M / %  W   a = 1P=$!WHH5- v-HHX=  - HH)-DH'FE^_[USWVEjjE pE p E pPj;EFu u5Cjh=@nE pjuB juCNjjE pE p E pE pt;E @|@9 @|@) @ju@u uBjh=@ju A}h>@5Xa@u? jjE p5(a@u?E x.@huBhuBE p$ju@ E p$ju@ !HGHHHHE^_[USWVMuEh >@uEEEE}} Eƀ@jPuE@P E@P[EE9EEEƀ@EEE;EEEh>@jEUE MEMu{^_[U(SWVEuExIPEPMQu u;EuyE}xI+E+ExI+E+Eܙ+EEPEPEPEE܃P菖EEHPEHPEPEE܃PiEuuEPEE܃PGExI+E PxI+E+E܃PEPEE܃P ExI+EPxI+E+E܃PEPEE܃PԕEءxI+EPxI+E+E܃PEPEE܃P蝕Eh>@jjuujjuh>@jjuuUu蚼u?u47juҋEEE9E1jE@Pu E@Pu苿jE@Pu贻 hu蘱uuVhuj uu^uSu5EuZuOuDu艻u~ush>@jjuYh>@jjuEh>@jju1uuuE^_[USWVERu&ExIPEPMQu u;EuExI+E PxI+E+EPEPEEP ExI+EPxI+E+EPEPEEPҒExI+EPxI+E+EPEPEEP蛒Eh>@jjuh>@jjuh!>@jjuuQu薹u;u0jju jju xIxIu聄 xIxIu` jju豸 h">@uajuTEEE9E1jE@Pug E@Pu jE@Pu6 huuuػhuxj uCuuջuu蓴u܃uуuƃu uuh+>@jjuh,>@jjuh->@jjuu芃uut^_[USWVh.>@jj5xIhJ>@jj5xIhf>@jj5xI5xI/h5xI谬h>@jj5xI譈h5xIh>@jj5xI胈h>@jj5xIl5xIF^_[USWVh?@jj5xI6h9?@jj5xIhp?@jj5xIh5xIh?@jj5xIއh5xI3h?@jj5xI贇h@@jj5xI蝇5xIw^_[USWVhH@@jj5xIgh@@jj5xIPh@@jj5xI9h5xIh@@jj5xIh5xIdh$A@jj5xIhYA@jj5xIΆ5xI訸^_[USWVEEPMQEPMQu @E @E} @E 84u ;Eu EEE  EEE;xIxI+EEEE;xIxI+EEuuEPEEP躌E}#E8ujjuhA@jjupuu.jE@Puuu6PunjuقuR} #E 8u hA@jjujE@PuƲ u諶EjhA@=^_[USWVuEuEu6u~u\~u衲hA@jjuu^~^_[UtSWVEE}dE8XE8!LEEE}O(E8 EEME LED}EEEE8}} >E 82E 0E0 M$:IE xE hA@E0 M$:IE0E4$:I`}tE EE EE 8QE8E}8E 0E0& M$:IE0E4$:IU}EEEE EE 8]E8QE8E}8E 0E0 M$:IE0E4$:IE$:Ih$:IEjhA@9hA@u j u3  @ @jxI+ @Pu  EPuu E} j uuF EEEEuuXhA@uE}}uE}7uuE}u7PNEpuu FXuuE}uPE!%- @- @uZueEu'E8EE0E^_[USWV F4D@u &4H@u4H@E^_[U<SWV= @ hA@Pnƅ:hA@PNƅ#fEhA@5pE"5pEhA@}xj.EknìeEf=EOHhpP hp#pP2PpPhPq a8P<pP.-PPpPp Lj pPPhϽP*jh5pEhA@jԳhCPaj CPIPjbPjQPC$PjPj1PCPh h3B@jhhjhCP2 C#j CPfEEknìeEƅpFh5B@pPrFE;knìeEh7B@C

C$h:B@C EEELPEP( EBhD@j[EjuELP E:}ahD@j EjuE[P. (hD@jѢEj@uElP E@lELPj52IELP>  j52IELP eEE E= E@heE@iP5eEVE}jhD@jEeEieEeEE E^_[U SWVhOEEE @;E kE8|EPuKj|uE`jh E@u@PEȍ+0@Ph j7h E@jPEȍ+?@P; @juEȍ+0@P hE@Eȍ+?@P蒦EMэ +ʁ0@ DEMэ +ʁ?@ EuT^_[USWV- @- @u NEu 7u EuD} u^_[U SWVu u&E @ @E}u8E}Euu E}%= @u uuu vYkuu lE}%= @u u:&W^_[USWVE@@   ^_[USWVE@@  ^_[USWVE.@hE@u@PCM ;A&EpuE0١ EE8E^_[U SWVu EEE88E0u (h.u  u EEEE9E|@mEjEM4 PM|@EjEM4 Ps~EuuhE@h6I{h2Ih6IhwF@ EM4u 'u =2In =2IN =2Iy =2IY ZU}EEE9E|@m@E= @4jEM4 Pw}E} EEE@EEE9E(|@m@E= @EjEM4( P}E}PE9E EE9jEM4 PjEM4 P^= @,jhF@jEM4 P՞  EF@EF@hF@juhF@EM4u &%u \^_[U SWVh2IhF@hsG@; u_ h2I{E} DS}jhG@h2I jhG@h2Iӝ EEJ6jhG@h2I覝 h2IH!uE u%EE=|@-|@Eu+|@EE=|@ UEEE |@EEE9EE9EvEE|@H;E2jEEM 4lPjEEM 4 }E|@EEg^_[UhSWVuEE85E0JEE@ E} E8jE0PEPj EPXE@EE@,E} } E`*@?E83E8'E0EP EEE8.E0hG@u蔗PhG@5xI({(EPhG@ugPhG@5xIzE^_[UtSWVhG@hG@˘EPhG@hG@螘Eu胼OYEEEEEEEuE̋Ẽ8}EE}E9eEjjE0PEP茷 j EPEj jE0PEP\ j EPEj jE0uPEP, j EP谸EjjE0EPEP j EP耸EjjE0PEP̶ j EPPE}Y 6IE6IEEPWj52IEP j52IEP٘ GEPEЃE t; ;| X> >| <8(8 l^_[USWVEEEEuEuEurttjEjtk|@MtBpEP蟊 E؋@pE؋@E܋E؋@EE؋@0EE؋@ EE؋@(EE u#hP@jphP@uh.u$5hEtuuh.uEEu|EE8}Dž|||ZhE9E;jjE0PEPI j EP͊EjjE0bPEP j EP蝊EEP辶EEP5EE PIxEp HEx9EEPxhP@h6I_hQ@jh6IhQ@`EEm|@9EE0ueuE E|@E^h+Q@h-Q@YhEEEuEE8}Dž|||hE9EjjE0PEP^ j EPEjjE0wPEP. j EP貈EEPEPh5Q@uhIE EN|@Eu,{jjtP P蟆 ƅj P Ph?Q@ P] h^Q@j PhfQ@2uh.u+h,EuEPhQ@ub]jjt4PuuuuE貛u}BEM EE0jt E0jt A--HHzHHH.^_[USWVEE,@EEE}EE}yhE9EZEȍ+dEEEPEEE@E@EMH E@ E PEHE TEHE XEH0E 2IHE@ Q@E@( @}EM H$jMA$E@$E4EE@E@EMH E@EMHE@Q@E@0Q@E@Q@E@ Q@E@(Q@E@$Q@E4E EzEE@$Q@E@(Q@EMQPE@ E@E@Q@E@Q@E@0Q@E@Q@E@ Q@E4EE@$Q@E@(Q@EMQPE@ E@ E@Q@E@Q@E@0Q@E@Q@E@ Q@E4qEE@$Q@E@(Q@EMQPEMQ PE@E@Q@E@0Q@E@Q@E@ Q@^_[U`SWVDE@EEujPEPB EjhQ@ut`Pu謁 jhQ@jW`PEP苁 uHj52Iuc j52Iuc DEEHE=HE@gDE@P5@EE}jhQ@諆j谋E@EDE@EEHE^_[USWVhEȍ+dEEujPEP@A EjhR@u_PuR hR@j^jhR@j^PEP" EP\OuEPh R@PDWjhRR@EP hWR@jPhaR@蜍uxj52Iub j52Iua ju1PE PO hEE#lE=lE@zhE@ȍ+P5dEjh}R@谄j赉dEhEȍ+dEElE&^_[USWV\ELEhj$Pu莣ujj jj:0u\j9A Aj8j:pu1j Aj~j:puj A jj p uۢ\E PE\E TER\E XER\E`E=`E@b\E@P5LEjhR@jLE\ELE`E\E@P5TEQjhR@tjyTE\E@P5PEjhR@#j(PE\E@P5XEjhR@ҁj׆XEi\E PE\E TE\E XE^_[USWVE|@|@HEDEh@E=@EjhS@ڀjlEhEh:dE=dEjh S@蓀jׅ`E\EhLE=LEjhuhh2I?9 u|htT@jh2IhuT@8{5xIhhEhE@-|@@PL|@=L|@jhT@}j趂5hE5L|@5,@ PEjhT@i}jnu |@ ;<:@T@ <:@U@u5<:@RE}uyE}uuETuu*<uuE&lu耻Eu肺u聛{5 @X^_[USWV58@uhxV@58@h+V@f8^_[USWV}hV@jM}E hV@E 0M | @hV@E 0M  @hV@E 0M  @hV@E 0fM  @hV@E 0AM  @1 @MhV@j8:@V@<:@W@h4X@h@:@Y2IWX@2IX@2IX@6IF6If:Ig:ImpEX@ :IX@2IX@2IY@2IY@6IS6Is:IT:IZpEY@= @pE(Y@ pE5Y@ :IDY@2IPY@2IY@2IY@6IS6Is:IT:IZHH+Hw^_[USWVE 8@u umhY@58@sPsKu uhY@58@sP;Ku uKhY@58@sPKu u_58@hY@5^_[USWV=`|@uA|@||@|@x|@X|@`|@h|@h|@||@p|@\|@}u+^_[áY@9E=Y@ucY@Y@Y@@Pft|@EE t|@EY@@;EY@-Y@Y@EY@H+5Y@%Y@+5Y@ t|@< t<t6GE%G F+5Y@ t|@Y@PE NHY@HEEEEMEE)uE;Ev t!E8EOHEGE@M EȋЉQ}F+5Y@ t|@<ƍ@GGEEπE^_[Ëu5Y@F% # \|@[EEuGE@MIHE@MIHEEEEtΡx|@9ErX|@EE+;sh|@uh|@jyx|@+ǃF  Eǹ t Ǚ+MEǃ@;Kufy5Eǃ Eǹ t Ǚ+ȋE|@Ex|@πEx|@=X|@tX|@tk%Eǃ@;uxEx|@E|@x|@Mx|@X|@Ex|@+x|@X|@ Eǃ@;/uJxEx|@EX|@MX|@x|@E|@X|@CKHCKHhCKHCKHCE=h|@tFp|@ `|@H`|@ p|@HE@@h|@E@p|@E@\|@E`|@++ƃ r< G\|@`|@G`|@x=`|@9X|@u=X|@ Y@^_[ÐUSWV}E@tq%؋C {C=Y@E t|@4;KHC 3FC^C^_[Ë}+=Y@EEt|%EG\|@`|@G`|@x=`|@EEuFE@MIHE@MIHEEEtЋE9x|@u=X|@E^_[U SWV} u +^_[Ð}uu f^_[ÐE@t$u HE t9ELu -]+Y@EEuCKHCKHE E%EuBE@MIHE@MIHEEt x|@9ErX|@u 5Y@F% # }+;r[+ƃ rIÉEME E@\|@E `|@H`|@MHE`|@9X|@uX|@EEu\V\ǃ=f$[@VP6P[/FEF/FuVw6jPz5=t{@ |Uh4[@P 6P=[EFuV5jP4r=t{@ f$[@BjhI[@D3f$[@f$[@} Euh Ie5hP3 Xf$[@of$[@LHyIS8E}SESSSSEE= [@h[@=[@j&[@=[@\j>}[@=[@-hY[@=[@c5[@5[@w5[@if$[@}b $[@PY }C [@[@@I[@I[@,I[@lI}xEyI}:uE#=[@lI5[@} Eju[@P& [@ƀ[@ [@[@ [@[@ [@[@M[@ǀ[@ [@} u VE [@fM fl5[@[@fǀ@[@ [@@[@ [@B[@ [@B[@ [@[@ƀ[@ǀ[@ [@[@ [@j4j[@PU [@ [@Vnf^uSVU ][@%5[@%C9 $F9+PjVOU C=[@[@<JS9' f ff9+%PhWT t{@Phju S @@.![@ffH[@ff t{@h][@*hc[@n*E- [@ffH})u [@ff=[@[@LS9)E9+%PjWR uSuR [@$<[@f|[@x[@[@ [@ j5[@5[@SR j5[@[@P:R hD5[@[@(PR [@L[@EDž Hl[@}[@ Z@ p[@4[@[@f@f@*[@x[@fx [@f@Džhx[@<(04[@ Z@ [@ǀDž|[@}m(048E4[@[@ Z@!6[@ [@I\t[@ [@Ihx[@ [@Ix|^_[UEǀEǀEf+ffEfffhjEPDOÐ[@t PhT[@lPN +Ð[@nPhT[@lPVN +h|\@hq@h I$[@4\@hq@ h\@hq@ÐU[@M[@ǀÐUjE@Pju%:ÐU SWV]++EE[@ |@9H,t9uEl@tCC 0l@u;.u&Cl@t 0Cl@u;/u E ;*u EC␃}tE ;>u C u(GGPU^_[Ð[@xt }u^_[uV;됐US] t;|@.;$u{C&;Eu)jS2@uEC;OE+EK }uS8^_[ËE^_[U$SWV]u CHEECECDECECEE*CC}}EF~ EM  E9ECMH;E~ CfUfHC MH;E} C fUfH uC0ljE~t C,%C,M EMM<= yIt$ f3f% f3KU UfQEfEfCWS9@u?EfEfCK EC t S2EC t#S^_[ÐECEE^_[UE ~tyItE@,3E ~te E u ÐEM с!H,E ~t܋E@03E ~t̋EȋI0~ H,빐UE ~t#yItE`, e EM H,ÐU4SWV]{OCE؋CDEԋE EEEEEEEEEE EE$EE(E+ADED~t C,%C,E̋D%MЁ ẺDF}-Du\@ xID| uC0뗐uuEԋEP; mE܋ME؋E؋M܋UMuuEԋEP; mE܋ME؋E؋M܋U= yIjjEujS yIjWuMjS yIlEԋMEԋM؋U= yItICM f3MfU f3fCU f3UfM f3ыMfO jCPjS0^_[USWV]ECE9@yIts{*CCC$;EC&;E| fC& fCfHffCS^f ;EfEfCSB9@yIt/LjC t S/K ƈC tS ^_[Ð+^_[ÐUSWV]3{CE+Ps0CDP9 = yItWVE+PjS yI9@yI@yI@p;|@yI@fMf p@yI@ p;|0@yI@p;~@yI@ fp@yI@ Of pyI@щ yIx4x@4ExI@ȡxIȉMǙ@E EEEE9EǙEǹU u=EyIEǙ@E+E}}‹EM 琐EEEE9EǙEǹU u EgE}}[EM 琐Cp;~ Cf pC fMfIf pK {t S,{tS^_[+^_[ÐUS]CEjSw4u SEECE[ÐUSV]EyIt[@u=.E[@@t[@C4P/SC tC u S[@f@u3[@\t%h8j\ yIp(t<C(tC(%@+PCyIt} |C u VS uyIu }tA^[ÐUhu u ÐU,SWV]u+E yI%E[@259u,}tJyI CCC*CCCSm~N;}>}t=C=St t t=WuRu?}yIfCC& A;jS(;t+tt; ;u+E !O}t=)}=P=PS% j S`=P=PS Sq}f]\}ꋅ}tg | Ƅ=7 u#==4yI*4yIڈ= Ƅ==SGfCCCS^_[ÐUSWV]u } | |C;~C; ^_[ÐfCfK {tS^_[Ð+^_[ÐUTSWV]{@t S\&CEءyI@ExIEE@yI@EС@yI@ECKEC EyI@KH{tC tDEE |7E9E}/CEE |!E9E}yIfMfyIfMfHC(u yI`(C(t yIH({tyI@CK C BCEEȋE9E| E9E}9E}E9E~EȋE)EECEE;E~EE̋E@)E̋s{ CDEE yIA EyI@MEġyI@ MEE yIADE@yIxtfMfH:yIf@t;E~EEE9E}REEEEEEE9E}uf>>tʀ}uf>t;E}E놐f>t Ef8u Ef?EE܋M ;}EfMfMfEEM ;~EfMfMfyI@:MM;~yIfMfMfH:yI@fEMEEEMEE+E@Puue9 EyIH c +^_[USVEEEEE0uVS ^[ÐU SWVE+@yI؉E t@yIxt +^_[Ð}uyI9Et u$& [@[@u}t@yI@뫃}u @yIxt yI@@yIff|@@yIf@f|@yI@4|@yI|@@yIf@f|@@yIf@f|@yIx0DyI*ff%f=yIfxth8j[@ t$yIyIth8j[@j [@t(h8j[@ [@t3 h8j[@ h8j[@l [@th8jH?Ph8hjOI yI h]@yIx[@xth8|@P[@pfEE9E~Mff9|@~ك}#B! [@[@yIfMfH: tHu ?u yIyIEyI@E|@;Eu |@;Et2uu|@P|@Pu)fEf|@fEf|@@yI@yI`(yIH([@ƀyIf |@fH:yIf@<@yIf |@f@yIf |@fHyIp(y.DyI^_[USWV]|@;|@~D=|@t5|@赻|@PV|@ t |@+|@=|@uyI@D^_[E=|@yI@D4yI@EyIEEEb}~f u% G&E9E9]uE% E%EE|@;E~%;Etf> uF% 됐=|@=|@}uu|@+HuBGt9}t '|@+Hu}t G g9]u&|@;E f|@fHfE yIfA|@^_[UlSWVyI@MfEܹfȋEܙUE|@EtZ}|=|@t=EʸȋEUE|@E#+ ,@yI@,EEE}}EܹfȋEܙUE|@EEuRuRdh8yI@DMM܋D%PyI@DMM܋%P^9 @yI yIIDU U܋ H,juug E}}=|@t?EʸȋEUE|@E#+ E8EtEEE9EtuuPuZh8yI@DMMD%~PyI@DMM%~PT8 @yI yIIDU U ~H,juu Euu}tEEPu@yIMH,h8@yIp,E%P7 @yIM؁H,}tVuu }tVuu |@+EHuuH[@xt-xt'f}_u j uuE@Pu[@xtf}~u E`E؉EuE؉Ef|@E|@;E~> t@yI@MfUfH|@;Eu@yI@ MfHK|@HE@yI@DM4EM}|> t@yI@ MfUfH@yI@Mf|@f9H|+ yIIU^_[ÐUSWVyIEf8 EPE+Puu uE ~<[@tyI@XyI@>mEyI@:EEE>E9Ey[@xt yI@t0uth8j[@ yIHOyIt%h8j[@ yI h8j[@_ [@t&h8ju*P0 $+h8j[@p| C9]yI@t(t h8j[@ +ۋuCF9u~E M 됐C9]~E  EMىE^_[ÐyIt E f8 u +^_[ÐE+E;E}EEPuuuu E ~+G9}~ E< t+yI@EE9E ~ff9|@f>u؋E@;E v@yIXE E |@;E ~ff9|@~^[Ð}uR[@xt.h8|@P[@p< f+f|@f|@5@yI?[@xDux ju|@P|@PfEf|@f|@[@xt[@xDt@D |@+EP[@Eh8|@+EPuK @yIfMf5@yI)j|@Pu5yI(^[Ð[@tHyIfxz~tW+EE }EE+EE;E~EE܋E9E|$}|;E~fEf;E}fEfEEEE9EK E@<EE@:EE؋@@E t5@ ftًs{ @MEE؋@ MEE롐^_[ÐU$SWV]eEEEE9E~Gf>>tEEEEE;E~ EfMfE;E}EfMf뢐]܋C@E tOCEE` EM ~}tf;tffEf֐}uExt P'}uExtP^_[Ð+^_[Ð[@fxÐ[@tP[@[@[@ƀ[@ƀ[@ƀ[@ǀ+ÐU S[@tB t }+[á[@Bt [ÐjjEPs [@ [@ڙf˺ TEEEPjjEPhE [h-]@hq@ hxIY@4<]@hq@ h5]@hq@ÐUSWV][@xus[@ff%E ~| ^_[ËE4EH]@ƙ+ء[@t8+ÙWU K +^_[ÐUEx$t p$Ext pExt pExt pEx0t$@08tE@00ϟEp0貙Ex4t$@48tE@40蒙Ep4腙Ext prEt YEt @u6US] u [ÐSF+@Iu [@yItI9ۘ͘还S趘+[Ð=yItyIff%f=u Ð+ÐyIff%f=uá[@tj>!yIth8j[@ j@yI@HP@yI@P@yIPyIfxth8j[@ [@th8j[@ph_ @yI`,@yIx,t5[@fx})xu#h8@yIp,j @yI@,yIt%h8j[@ yI yIȋ h]@@yI@衬h8j[@ [@th8j{ [@th8jPO yIp( +ÐU[@BE[@ƀB 裞E[@MBEÐ[@yÐU} tE@yI ËE@ÐU SWVh踐 [@H[@H uf$[@^_[Ðhj+S }l]@ }m]@ O [@H t' FFEFFEEM >u܉xI= yIt`h [@D[@DE H+ f3f% f3MfyG|ًEyI+^_[ÐUSWVyI85[@+[@@E[@@[@9t89t0W4W [@EfEff[@t:t1jj [@EfE"fjGE]@4f |,jj GE]@4Ppf|jj j[@pP PFfjj[@$P f[@MH^_[Ð]@ÐU}u]@hu u]@Ð[@zÐUSWV]u }sO ^_[ÐUSWVE9EuE9E u+^_[áyIt ^_[Ð[@xu9@yIx,t.yIx4u#h8@yIp,j @yI@,[@x u2yIt%h8j[@ yI fEf|@yI@bEߋ;(yIfx` } @yI@;E} @yI@;E [@xTt\E+E@uSE9E t uG[@x0tC MfH@yI;u @yI@;t'WV@yI@P@yIP@yIf@yIOfHyI@} t<@yI@ p;}@yI@ f p@yI@p;~@yI@f p@yI@DM @yI@D yIID @yIM9H,th8p,Qt @yIMH,yIt%h8j[@貯 yI u谚yIp(lDyI^_[ÐUSEE[@[@BE[@f@~f@؉EUE8u}EuEE}t&E[@tEPEHP EEEEM(EMf Kf CEEE9EE[ÐU SV[@jjEP [@ [@κ T[@E[@iEEPjjEPj  ^[ÐjEP[@B ~E^[ÐU,SWV]u [@E[@E[@BE[@EEEt E[@EEEE;Eu5E t[wMUfJEMA@@t'HPEEfMUf;JtQ'EE![@]CEEE9EE;uEE} }EE87EE u EEE8uE9EEEء[@;E}[@ [@E;E}EfEMEEEMEEMԉMMԋE9EM؉ E@E^_[ULSjjEP jjEP jjEP [@ [@ڙf˺ TEEEPEPEPEPjE  [ÐjEP[@R EȃuE[ø[UjEP[@ HuEøÐU SWVE],}@EE EEE[@E u +^_[Ð|@ %t LjFE\C{PEPP%:uC{DžXX+PPψC{DžXx w.$PllPlllllllPlPPlPPPPPPPPPP DǃXt t tt PPψPEPV@ F>uM tt%t DžFMe}t [@@T[@@lT}t1 t-[@@H;~[@xtt@tTTt[@M9HPuTh|@eE\TMPEEC{{EEM\EEMEEMڐEEMΐEEMEEM 붐EEM$몐EEM(랐EEM,뒐1.$Tlxǃ1؉E;ar#;zwM\dMC;A;ZMUf\fA>ɐ;ar;zwEECKd*;AW;ZNEECKUJ>\,EECK\C{'DžE;-u EC#;+u9 ǃ0C{0}ۃ}mE\ME\MEE9E\ME\MEE+E\ME\M#E\ME\MEwE\ME\MEM\E\ME\MEE#IE\ME\MEE E\ME\MEE3E\ME\MEE+σE\ME\MEE92E\ME\MEE9M\gE\ME\ME t u@EDŽ\&E\ME\ME u tEDŽ\Eȃ\E\EM\jeSj; ^c.$t <LHX\p<H4p C{ h|@V,}@^_[ÐUSV]+/}%u(CE:E t<;u u^[Ð}?uF};uNCE u+^[ÐU[@}Ã}}E[@M9t[@M+USWV]u }yIE%E%E}f%?fEf%?fEE~f}uE!E[@f@f@t[@@ Ef}tE!Ef}t_E!EE9Et-jWuP@uyIxfEfffPfEf9EtYWEPEP8 ^_[fEf9EtWEPEP E9EtjWuP jWuu ^_[ÐU(SWV]u }E[@4[@@E[@+ƃE]uED [@#E tEM!LELEE |LE ~7EE} }%EM Z@LtEZ@ EMuҋEM܉LEM n]u;uE^_[á[@4tvWj%P%P%@P% P%P%P%P%P%P[@4'(P貝 EV[@xufx|#ÉE #ƉE Eu[@#E;Et,Wj[@P4 E+WEE؋M Z@t6Wj [@eP E؋Z@#EE؃}|#ÉE t[EE؃} }HE؋M܅ Z@tWj [@LP肜 EE؋Z@!Eu[@fx~Wjp`P [@USWVf]uyIxEf uJVj[@oP [@Ef@Ef^_[Ð[@t*VjP[@P螛 ^_[ÐÍ@MfIf9LtAVjÍ@DP[@PT Eˍ IfLfHÍ@Mf f9 t>VjÍ@P[@uP Eˍ If f^_[ÐU8SWV]= yIt yIE yI Eff9C$f9C&| C&@CE} }/+EE;E ~E E+E E؋E+E؉EE3+E؉E;E }E EHE+E E+E@EEf{8{@u E ECEC ECEEPE؋KD4E4 9@yIuJE؋MfAM܋UfJE؋MfAM܋UfJyI@M؋ yIIU܉E܋MfAE܋MfUfJfAMԋEEE؃}}TE܋KDE̋E؋KDM܋SDE؋KDỦ9@yI<yIx4-E܋ yII4EȋE؋ yII4M܋yIR4E؋ yII4UȉyIE܋ yIEȡyIM؋M܋yIyIM؋Uȉ} } E+E +E@E ~^CECE*CCs;fCfEfS'MԋEE܃}fCfECECK }tE yIjWuE+PS yI{t S9@yIt}tS諫^_[Ð+^_[ÐUSVEEE3+ƃ@u VmEM ߋEt(|mEtbmu謔^[UWVhjpE tJ]@ ȋIHEȋIH }t+E8tPu uul+^_ÐE^_ÐUS] u [ÐC|t [Ð{@t SHSl+[ÐUSWVjtV  tDC|t9{ t ^_[Ést{ C|tS# SS^54^@=]@+^_[ÐUS] t Ë@t[Ð]@@t[ÐUSV] txC|t ^[ÐCx3E tCLC@CHssS( E CxCxt{@ts@@>uSE 8^@+^[ÐUSV]u t]@E@x#PS<^[ÐUSV]u t]@E@x PS^[ÐUS] t Ë@x[Ð]@@x[ÐUSEx@tE@@8t=EXX @xt xt@@؋EX$E@ ؋E@ H؋EX[ÐUSWV]u } u ^_[Ð{@tC@8tC+^_[Ð^_[ÐU}t+E@|tËEM H8u/ E ]@+US] t Ë@8[Ð]@@8[ÐU}t+E@|tËEM HuS){`tK|SS`c|{htK|SShc|S+^[Ð^[ÐUSWV]u }G(;}G(G( ;| G(+@^_[ÐUSWV]u }G(;}G(G( ;|C+O(;~^_[ÐUSWV]C|CHp(+sL@*K$ACxt{,t C,C H{8tC8xIE{<tC<{8tC8xIEWVP E9EtP蓿u贾uS^_[ÐU}uËE@|uÐu +U SWV]u }CxtC>tC?t>FFP耬GOQEo9Et+^_[À?tFG8Fu>u>u^_[ÐUSWV]u }@E t<t7C,@;C~ ^_[ÐC,C(ΈC,C,C(MyCDHEEEEEuMyCDHEEE9CDEC@M0s(S t EEE9Eu}t#M9Hu }GC@M& 0'K,C,C(+^_[ÐUS] t{(tC([Ð]@[+[ÐUSV]u t u ^[Ð{@u ^[ÐC|t ^[ÐC(C,>uS+^[ÐC|t SCLECHEF>t6EPPS tC(C,S^[ÐuEPSO uuS( wUSV]u u ^[ t>tC|t ^[Ð{@t Sx tVSz u^[Ðs@+^[ÐUS] u+[ËC@[ÐUSWV+ۋEx@9X~X9p ~p ?uEXEp^_[ÐUSWV]u ?txt+^_[ÐEB?t@@Cxt @MHEX?txtE몐ECDs@SC@PPSC( fC,ssS C@CHCL^_[USV]s@@>us(3XC(C@CD^[ÐUS] tv} tpE 9XuhC|t [ÐE 9CHtTC|t S CLEu EPS C,C,C(u uS [+[ÐUS] t {@tCH[Ð+[ÐUS] t {tC[Ð[US] t E C+[ÐE \^@+[ÐUS] t Ë@[Ð@^@@[ÐU SWV]u }+EEC|9{Ht9CltK|SSlc|E9sLt{dtK|SSdc|ECHEsL{H}t{`tK|SS`c|}t$uS{htK|SShc|}u}tS^_[SvsL{H^_[ÐUSWV]EEC@0+w+F,C;CD| F0CNjK@F0}t C@D+F4C+EHu+ C@DF8EE9Cu EEC@G4 t*fEfF*fEfF(}p+CK@b}tC@D+KS@ H8Cx CD{kE+8EljE9CDC)EC@MS@ H,EK@ H0G9{+&C@MS@ H4EK@ H8{9{D~#CHE9CDɋC@K@LH4ؐ^_[ÐUSWV]E+C@E++MA,C +HtCD+Hu E@0 EK@LH0}t +C K@+MA4C ;CD}EK ΋S@ 'C+EHuE@8EKDS@LH8G9{ u+EC@FE}t)EfH*EfMfH( 9C@D/Cx +Et@E0u Ep uEpu Ep t Ð+ËEx tuu P U}t Eu+ËEt=E0u Ep uEpu Ep tÐuu EP$ÐU}t Eu+ËEt=E0u Ep uEpu Ep tÐuu EP(ÐUjW E tUM EM HEM HEEEE8uEM+ H EÐUWVj E t E}E^_U}tuÐUSE 8 uE E 8uE8 u EE8uE 8uE8%[Ð}t"EEM 8uRE E 8u[ËEEPm`M  Q\`;uE E 8uċE 8 u E E 8uE 8t+[ME8%[ÐU E EEE@EE@EjuEuuu E ttEE}t7}t1EEE t!uuP E tڃuEE}u+ÐE빐uju ÐEEE `ÐUE EEE@EE@ EjuEEM tuuEE0 uڃ}EE}}uuh`@ uE0ju Ð+UE E@ ME@E@ EjuIEEM tuuEm0A uڃ}E@ ME}}uuh`@ uE0ju +UjE1<*ÐUu.@PdE t uP_EU}tu ÐUju_Pu H"@UjuÐUju ÐU4SWV]u E +E@EЋFDECDEC0EF,EE$+E@E9@yIuFE}(t E*~,u~0 t E EEE}u EEԋEE܋EEEEO ~hEM9tEM M؃EEO ~@EM M␐uԋE܋MMPE؋MMP FMH;E~ FfUfHF MH;E$} F fU$fHEE؋EM ~A}tE܋MMEE؋MME}}: = yIt uuE$+E@PE +E@PV yIN ~t V#m~tV I^_[+^_[ÐUE@UE@U} | E@;E ËE@M fu+ÐÐUSWVE@@E tOE@<;E uE@:;Eu +^_[ÐEpNxOE@M;~E@M ; ^_[Ðu8lEfMfH:EfM fHd@jha@jw jhHd@륐jhZd@널jhrd@uj!hd@jw u wPu Pj hd@AHw.$ܒ$00<jhd@jVwUDhd@u5E uEd@uud t ÐE8txt x1u LE t1EPu tu jEPuE8txt xhd@sLE t0EPu tu jEPudE8txt xz| t,E8uxu xu j^EE EPu- tu j }t}t}t܋E8tEPuC tvExtEPEPvC tFExtEPEPFC tEPu/E}}uu jKE8t xtxuEPhc@EPu+Ð=d@tC0@d@=,@~,@-8@ 8@+Ðjha@@N4@ }Ðd@0@8@,@밐UE=d@t =d@uEu+d@)0@ u}u d@}t0@Ð=0@u4@Ð0@8t0@=0@4@r0@=0@4@s 0@8u+Ð0@ÐUhd@IsDž4@Dž,@hP54@K }Ðu3=8@t惽tjj54@M ,@뛐,@Ehd@u@K EE+E8 t*4@sME E8u΁4@sME9wᐋ+++,@j5,@54@L 4@s 9,@h,@98@u++ÐE8 t EE8uE8tEÐUEPEa@u | t+Ðhd@EPKDžxhd@EPKjx+DPEPG xx|hd@EP?KE(b@EP$KjEPZJt@u.}t Ea@j7d@ÐjEPtH |EM8$b@t/Ea@jMtntEb@xtOnxtEa@jBhd@u = Eƀa@jEPEa@PE hd@Ea@PIjEPEa@PuE hd@Ea@PIjEPEa@P<=h