
****************************************************************************
*                                                                          *
*                       *-*-*   READ.ME   *-*-*                            *
*                                                                          *
****************************************************************************
*                                                                          *
*                     iRMX III.1.3 Operating System                        *
*                                                                          *
*                             9 May 1991                                   *
*                                                                          *
*   This READ.ME file describes workarounds for problems discovered in     *
*   the iRMX III.1.3 Operating System software or in the iRMX III.1.3      *
*   documentation.   All items in this file are temporary.  An item        *
*   remains in the READ.ME file only as long as the associated             *
*   problem is unfixed.  Once a fix is available, the description of the   *
*   workaround is removed.                                                 *
*                                                                          *
*   Items added or modified since the last Update are marked with the      *
*   following banner:                                                      *
*                                                                          *
*                        *** New in III.1.3 ***                            *
*                                                                          *
*                                                                          *
*   The items in this READ.ME file are organized by bus type, and then,    *
*   if applicable across all buses, by layer of the iRMX III Operating     *
*   System.  The cateGories are as follows:                                *
*                                                                          *
*   Multibus I (MB1)          Multibus II (MB2)               PC Bus (AT)  *
*   Nucleus (Nuc)             BIOS (IOS)                      EIOS (EIO)   *
*   Application Loader (AL)   Human Interface (HI)            UDI (UDI)    *
*   iSDM III (SDM)            Human Interface Commands (HIC)  SDB (SDB)    *
*   Terminal Support (TSC)    Demonstration Software (DS)     ICU (ICU)    *
*   Networking (NET)          DOS Utilities (DOS)             Other (OTH)  *
*   Languages (LNG)                                                        *
*                                                                          *
*                          Class B Software (CBS)                          *
*                                                                          *
****************************************************************************


                               MULTIBUS I

MB1-1. Booting using a Multibus I device driver

       The first stage of the iRMX boot loader fails when bootloading is
       attempted on the hard disk before the disk has completed its
       spin-up/recalibration initialization.

MB1-2. Differences in the OMF 386 Third Stage for iRMX III

       The OMF 386 third stage does not issue the messages
       'Now in Protected Mode' and 'Target File Loaded'.  These
       messages were useful for debugging purposes.  If you need
       this type of debug information, use the debug switch of the
       bootstrap loader to cause a break to the monitor upon entry
       into the iRMX III Nucleus.  Failure to get this far in the
       booting process is equivalent to NOT seeing the 'Target File Loaded'
       message in an iRMX II booting scenario.
   
MB1-3. ESDI Hard Disk Support

      The various ICU definition files for Multibus I CPU boards all
      specify the number of sectors per track on the 170 and 380 Megabyte
      ESDI drives to be 18 and on the 760 Megabyte ESDI drive to be 27.
      These are overly conservative numbers and can safely be changed
      to 19 and 28 respectively, thus increasing the effective disk size
      by about 4%.

      If such a change is made via the ICU, be sure to also increase
      the Device Size (DSZ) of the affected devices' Device-Unit
      Information Blocks (DUIBs) using the following formula:

         DSZ = (Total Cylinders - Alternate Cylinders) * 
                  Heads * Sectors/Track * Sector Size (Device Granularity)

      Using the 38620.def definition file as an example, suppose one
      wanted to change the MMD0 device (380 Megabyte drive) to use
      19 sectors per track instead of the default value of 18 sectors
      per track.  The 'Number of Sectors/Track' (NS) field on the
      'UINFO_MMD' Mass Storage Controller Unit Information screen would
      be changed from 12H to 13H.  The 'Device Size' (DSZ) field on
      both the 'MMD0' and 'MMD1' Mass Storage Controller Device-Unit
      Information screens would be changed from 013AD3000H to
      014C50800H.

*                        *** New in III.1.3 ***                            *

MB1-4. iSBC 486/12 ROM Support missing

      ROM Support has not yet been provided for the iSBC 486/12 CPU board.
      This support will be added in a future Update or release.

MB1-5. iSBC 486/12 Short Interrupt signal hangs system.

      If an interrupt signal occurs and is removed too quickly on early
      versions of the iSBC 486/12 board, incorrect instructions are executed
      usually causing a General Protection fault.

      To workaround this problem, connect jumpers E63-E64 on the 486/12S.

MB1-6. A Faulty SCSI Subsystem can cause a GP error in the PCI Server.

      If the SCSI subsystem is incorrectly setup, and you boot from
      floppy and use the form_disk.csd submit file to format a hard disk,
      the PCI server will fail to re-initialize which causes a GP error.
      Reset the system and boot from the hard disk you just formatted.



                               MULTIBUS II

MB2-1. IC command has problems rebooting other agents

      In order to successfully reboot an agent in a System 520 using
      the aliases AGENTRESET and REBOOT, you will often need to issue the
      commands twice.  The IC command has a problem which allows the
      REBOOT command to only succeed every other time.


                        *** New in III.1.3 ***

MB2-2. DMA Support for memory whose Physical Address is above 16 Megabytes
       has limitations

      The DAG component on Intel Multibus II CPU boards allows the on-board
      DMA controller to access memory whose physical address is above 16
      Megabytes.  It can only do this, however, for data transfer amounts
      which are multiples of 16 Bytes, and which begin (and end) on a 16
      Byte boundary.  Since the iRMX III Operating System creates all
      segments on a 16 Byte boundary, you can structure your code to adhere
      to these transfer restrictions to access memory whose physical address
      is up to 128 Megabytes.

MB2-3. MST and MSM parameters on NCOM screen are low for most applications.

      The values for the Maximum Number of Simultaneous Transactions (MST)
      and the Maximum Number of Simultaneous Messages (MSM) parameters
      on the NCOM screen of the ICU are too low for many applications.
      MST should be set to 500H and MSM should be set to 800H.  These 
      values may need to be increased further if message passing performance
      is degraded or message passing causes the system to hang.

MB2-4. Performance of the ATCS/450 Server.

      The performance numbers for the ATCS/450 server running on the
      MIX 386/020 board with the MIX 450 module were derived using the
      MIX board in an I/O controller mode which only includes the Nucleus.
      A 6 second recovery time is required for processing a 2 Kbyte data
      burst input at 19.2K baud.  A 2 second recovery time is required
      if the MIX board uses an i486 CPU.

      If the iRMX configuration on the MIX board also hosts other iRMX
      sub-systems or application code, the performance will be effected.
      The ATCS/450 service task runs at priority 129 so other interrupt
      tasks at higher priorities effect the server by decreasing through
      put and requires increasing the recovery time allowed and/or decreasing
      the number of serial channels used.

MB2-5. ATCS Driver Timeout tuned for large systems.

      The ATCS Driver has an attachdevice timeout of 100 seconds.
      This allows most boards which boot early in an MSA scenario
      to attach to terminal controller boards which boot late
      in an MSA scenario.  This has the side effect of causing an
      attach of a non-existent board to take 100 seconds to return an
      error.  This length of this timeout is not configurable.

MB2-6. A Faulty SCSI Subsystem can cause a GP fault in the PCI Server.

      If the SCSI subsystem is incorrectly set up, and you boot from
      floppy and use the form_disk.csd submit file to format a hard disk,
      the PCI server will fail to re-initialize which causes a GP error.
      Reset the system and boot from the hard disk you just formatted.

MB2-7. Boot Parameters cannot be entered after Warm Reset

      The facility that manipulates the System Parameter Strings (SPS)
      that are entered in the BPS file will generate a GP error if the
      system is warm reset, the Master Test Handler is used to increase
      the number of parameters entered and then the system is rebooted.
      The system must be cold reset to avoid this problem.

MB2-8. The MSA Firmware Communication Record overwritten

      The MSA Firmware Communication Record is written to by both
      the MSA Bootserver and by the ATCS/450 Server.
      This prevents you from examining this record to determine the
      actions of your system.

MB2-9. Large systems can fail to boot properly.

      Multibus II systems with more than 4 CPU boards attempting to
      Dependently boot (*rsd.def) fail in several different ways.

      1.  When a name is added to the Name Server, iNA queries the
      network to find out if the name already exists.  iRMX-NET assumes
      the name is added immediately.  If many boards are booting,
      iNA may not have entered the name when iRMX-NET requires it causing
      iRMX-NET to time out with an error condition and the system
      initialization fails.

      2.  If a Get Value Name Server function is requested while a name
      is being added, an error is returned.

      These problems will be fixed in a later release or update.

MB2-10.  iLBX II Memory boards are not supported by iRMX III.1.3.


                               PC BUS

 AT-1. iRMX II.41 Boot files reset the system during the boot
       process

      If you have installed both the iRMX II.41 and iRMX III Operating
      Systems on your System 120, this read.me file entry applies to you.
      The upper memory address used by iRMX III Bootstrap Loader Third
      Stage for AT systems is now 0EFFFH.  Since iRMX II.41 default boot
      files begin at 6000H, booting such files will fail with a system
      reset.  In order to boot iRMX II.41 systems using the iRMX III
      Bootstrap Loader Third Stage for AT systems, regenerate them after
      changing the starting memory location on the Memory for System
      screen (MEMS) in the II.41 ICU to a value of 0F000H or higher.

 AT-2. CTRL-ALT-DEL handling by the iRMX III Operating System

      In order to reboot an iRMX III system on an PC Bus platform,
      you must simultaneously depress both the CTRL and ALT
      keys and then, with both keys still depressed, depress the DEL key.

 AT-3. Installation problem when installing the iRMX III Operating System

       The STARTUP Utility is no longer supported and installation must
       be done manually.

 AT-4. iRMX III support for the SYP 300SX

       The iRMX III Operating System has been fully evaluated
       using the SYP 300SX AT-based system built by Intel.  When
       adding a PCLINK-2 networking board to the SYP 300SX system
       to achieve iRMX-NET functionality, the following changes need
       to be made:

       Hardware:

          Remove the connector block from Jumpers E11-E12 on the PCLINK-2
          board and add a connector block to Jumpers E10-E11.

       Software:

          Change the Interrupt Level (IL) entry on the MIP Configuration
          for AT bus systems (MIPAT) screen in the ICU definition file
          ATNET.DEF to 58H.

       Generate a new version of the iRMX III Operating System
       incorporating these changes and iRMX-NET service will be
       be available.

 AT-5. Can't include NPX in ROM AT configurations.                           

      The 80387 cannot be configured into a ROM-based system for AT
      bus-based systems.  The system hangs when the NPX initialization
      code in the Nucleus is executed.  Apparently the ROM BIOS is needed
      to perform some HW initialization before the 80387 may be accessed.

 AT-6. Can't include System 120 console driver in ROM configuration          

      The video HW requires that its on-board ROM initialization code be
      executed (in Real Mode) before the video console may be used.  This
      is normally done by the ROM BIOS.  In configurations that don't
      include the ROM BIOS (i.e., ROM-based iRMX III configurations), the
      video board initialization code is not executed.  Thus, the iRMX BIOS
      console driver doesn't work.  There is support in the ICU and Nucleus
      for executing a user-supplied initialization routine in Real Mode
      during system start up, but no default routine is supplied.  Also,
      note that the iRMX BIOS won't fit in the standard 128K of EPROM
      available on PC bus platforms.

 AT-7. Can't use Debug-on-boot using Installation Diskettes

      The PC bus Installation bootfiles for the iRMX III Operating
      System do not contain the iM III/iSDM III monitor and therefore
      does not support Debug-on-boot.


 AT-8. Presence of a Serial Mouse can prevent User Logon

      When an IBM Serial Mouse is attached to a serial port which is
      specified in :CONFIG:TERMINALS as an Human Interface terminal,
      all Human Interface user logon activity is blocked.  The reason
      for the problem is the Mouse's echoing of Human Interface logon
      banner and logon prompt.  Since the Dynamic Logon task runs at a
      priority higher than Human Interface users, the perpetual echoing
      by the Mouse keeps the Dynamic Logon task continuously running,
      thus blocking other users from running.  To prevent this problem
      from occurring, remove the Mouse when installing the iRMX III
      Operating System on an AT bus system, and then remove the terminal
      to which the Mouse was attached from :CONFIG:TERMINALS.  After
      iRMX III is rebooted, the Mouse can be reattached.

                         *** New in III.1.3 ***

 AT-9. Serial terminal is needed to test example ROMmable application

      In the "Guide To The iRMX III ICU," the section containing the
      ROM configuration example describes how to generate a ROMmable
      application system and put the system in EPROMs.  The example
      application prints "Hello World" on the user terminal.  The
      output is directed to a serial terminal even for a PC Bus platform.
      For the PC Bus platform, the output goes to the COM1 serial port.



                               NUCLEUS

NUC-1. Incorrect Error Message from rq$delete$buffer$pool system call
   
      Deleting a bufferpool while it is attached to a port should
      generate an E$BUSY exception.  Instead, the bufferpool is
      deleted and an E$OK exception is returned.
   
NUC-2. Semaphore Management Problem with Priority Queueing
   
      A problem exists with the iRMX III semaphore manager when a
      semaphore is configured to use priority queueing.  If the
      priority queue is re-ordered (due to the need of a high priority
      task to access a region controlled by a lower priority task who
      happens to be waiting on the semaphore queue), the semaphore
      manager does not check to see if the new highest priority task
      on the queue can now have his request fulfilled.  This will
      will cause a deadlock condition.  This condition shows up when
      multiple tasks make unequal requests for units in a priority-based
      semaphore.


                                BIOS

IOS-1. IORS differences

      The IORS segment returned by the iRMX III Basic I/O System
      is larger than the one returned by the iRMX II Basic I/O
      System.  This size difference is due to the size difference
      between the POINTER data type in iRMX III (48 bit) and the
      POINTER data type in iRMX II (32 bit).  Also, in the iRMX III
      IORS, the actual and count structure elements are 32 bit values
      instead of 16 bit values as they are in the iRMX II IORS.  This
      data size change had no effect, however, on the overall IORS
      size increase since the 16 bit actual$fill and count$fill
      elements in an iRMX II IORS have been eliminated from the
      iRMX III IORS.

IOS-2. The Rq$Encrypt system call results in a General Protection error

      If there is not enough memory in the user's job to make a rq$encrypt
      system call, a General Protection error is generated.

IOS-3. The Rq$Encrypt system call results in a General Protection error
       when it trys to return an E$LIMIT exception

      If a call is made to rq$encrypt when the calling job has reached
      its object limit, a General Protection error is generated instead
      of the expected E$LIMIT error message.

IOS-4. Invalid Volume Label information may result in a General Protection
       error

      Attaching a floppy diskette as a named volume may cause a General
      Protection error if the diskette has no iRMX volume label, or has
      a corrupted iRMX volume label.

      If the initial reason for attaching the floppy diskette is to format
      it, you can completely avoid the no/corrupted iRMX volume label
      issue by using the "delay" option of the ATTACHDEVICE command.  If,
      for example, one entered "attachdevice wdf0 as f d", the floppy drive
      whose DUIB name is wdf0 will be logically attached as :f:.  The actual
      physical attachment of the device will occur at the time of the first
      access of the disk.  Since the FORMAT command detaches the device it
      is commanded to format, and then re-attaches it as a physical device,
      the missing or corrupted iRMX volume label is never accessed.


                                EIOS

EIO-1. Passing a NIL Pointer results in a General Protection error

      The following system calls result in a General Protection error
      if a NIL Pointer is passed as a parameter:

      1) GET$LOGICAL$DEVICE$STATUS
      2) GET$USER$IDS
      3) LOGICAL$ATTACH$DEVICE
      4) ATTACH$FILE
      5) CATALOG$CONNECTION
      6) CHANGE$ACCESS
      7) GET$DIRECTORY$ENTRY
      8) LOOKUP$CONNECTION
      9) UNCATALOG$CONNECTION
     10) VERIFY$USER
     11) GET$FILE$STATUS
     12) RENAME$FILE
     13) GET$CONNECTION$STATUS


                            HUMAN INTERFACE

                         *** New in III.1.3 ***

HI-1. Deeply nested SUBMIT files could result in GP trap

      Use of deeply nested SUBMIT files could result in GP trap if the
      resident (CLI) version of SUBMIT is invoked.  A simple workaround
      is to invoke ESUBMIT (instead of SUBMIT) when nested SUBMIT files
      are executed.

HI-2. :config:termcap Parsing Error

      The TV950 entry in the :config:termcap file cannot be found due
      to a parsing bug unless the entry is preceded by a blank line. 



                       HUMAN INTERFACE COMMANDS

HIC-1. iRMX III support for Pre-Loaded RAM disks

      The ADDLOC Command in the iRMX III product does not currently
      support OMF386 and therefore will not work in allowing a user of
      the iRMX III Operating System to add a pre-loaded RAM disk to
      a iRMX III boot file.

HIC-2. FORMAT Command does not properly support device granularity > 1K

      If a disk is formatted with > 1K granularity (e.g. 4K), only the
      first 1K of the bitmap sectors is cleared. This results in potential
      disk corruption above 512 Megabytes.  As a temporary workaround,
      use only the first 512 Megabytes of the disk.

HIC-3. DISKVERIFY fix command can destroy extension data

      If you specify more than three bytes of extension data on an
      iRMX volume and you encounter a checksum error on some file,
      do not use the FIX option in the DISKVERIFY command to fix the
      checksum error.  If you do, any extension data past the first 3
      bytes will be destroyed.

HIC-4. AEDIT causes a GP error if network connection lost.

     If Aedit is editting a file on a remote system and the network
     connection is lost, a GP error results when Aedit attempts to
     access the file again.


                              iSDM III

SDM-1. iSDM III occassionally executes the last command from the
       previous iSDM session

     When debugging with iSDM III using brackets and commas (such as
     "10<nrp;vs>,") it is possible to step past the end of the Human
     Interface command being debugged and return to the CLI prompt.
     In this case, iSDM III is left with a pending command.  If
     iSDM III is now re-entered due to hardware trap such as a
     General Protection error, the standard trap/fault message and
     address will be displayed, and the uncompleted iSDM command
     from the previous session will be executed.


SDM-2. A system configured with an 82530 channel on an iSBX 354 as the
       monitor console will hang if no iSBX 354 is present.


SDM-3. Length parameter not recognized by iSDM III

     The command "dwds:0#20" as well as any other command which uses
     iSDM II style length termination information (#NN) fails with a syntax
     error.  iSDM III does not support length termination information.   
   


                                     SDB  

SDB-1. "E" not displayed with VS of certain 32-bit RQE$ calls

      The iRMX III Operating System makes no distinction between
      the RQ and RQE versions of certain system calls.  Thus, the
      'E' is not displayed with VS on the following calls:
   
      1) rqe$get$pool$attributes
      2) rqe$create$job
   
      A display of

         get pool attributes
         create job

      is seen instead of
   
         E get pool attributes
         E create job.

SDB-2. The iRMX III SDB doesn't clear the unused portion of each stack
       entry before displaying the entry

      The VS command displays the stack at a system call and shows
      the call's parameter structure.  These stack entries are
      displayed based on the type of code being executed, i.e.,
      16 bit code will have its stack displayed as 16 bit values,
      and 32 bit code will have its stack displayed as 32 bit
      values.  In either case, the unused portion of the stack is
      displayed as well as the used portion.  In other words, a
      BYTE parameter will have 8 valid bits of data displayed as
      well as 8 bits of unused data on a 16 bit stack; it will
      have 8 valid bits of data displayed as well as 24 bits of
      unused data on a 32 bit stack.  Although this might be
      confusing at first, a design decision was made to show the
      full stack rather than to arbitrarily 'scrub' the stack before
      displaying it, thereby potentially preventing the display of
      an actual stack problem.
       
SDB-3. VMI and VMO commands do not recognize the limits of
       the messages in the trace buffers

      The VMI and VMO commands are used to display input and output
      messages in a set of user-configured trace buffers.  These
      trace buffers are circular in nature and contain the last 'x'
      number of messages sent/received, where 'x' varies based on the
      configured size of the trace buffers.  If the user chooses to
      display a number of messages which is larger than the number
      currently contained in these buffers, the SDB uses the circular
      nature of the buffers to try to display the messages within the
      range you specified.  For example, if the input trace buffer
      only holds 100 messages, and 8000 messages have been received,
      using the VMI command to display messages 6000 to 6100 will
      result in the display of messages 7900 to 8000.  It is up to
      the user of these commands to know the size of the trace buffers
      configured into the system via the Nucleus Communications Service
      screen in the ICU (NTM parameter) and use this knowledge when
      querying the trace buffers.

SDB-4. VT display of priority-based signal service port is incorrect
   
      The display of a priority signal service port using the SDB VT
      command shows FIFO queuing.  This is ONLY a display error; the
      Nucleus treats the same signal service port correctly as a
      priority-based port.

SDB-5. VT command causes a GP error

      If the VT command is used to display the token of a segment that
      is 7 bytes or less in length, a GP error results.
   


                            TERMINAL SUPPORT CODE

TSC-1. When a Human Interface-configured terminal is taken off line for
       use with a modem via the LOCK and CONNECT commands, the user should
       be careful to note the terminal's current attributes before changing
       them to meet his or her needs.  If the user changes these attributes,
       he or she must restore them before returning the terminal to the Human
       Interface via the DISCONNECT and UNLOCK commands.  Otherwise, the
       terminal will be unusable by the Human Interface.


                            DEMONSTRATION SOFTWARE

                        *** New in III.1.3 ***

 DS-1. PC Bus driver demo programs do not generate.



                 INTERACTIVE CONFIGURATION UTILITY (ICU)

ICU-1. UDS doesn't support STACK and DATA sizes > 64K                        

      The User Device Support utility (UDS) for the iRMX III Operating
      System doesn't allow RANDOM ACCESS devices to have stack and data
      sizes greater than 64K, and TERMINAL SUPPORT devices to have stack
      sizes greater than 64K.

ICU-2. Adding DUIBs for New SCSI hard drives

      Two ICU screens per new hard drive are required in order to add
      new DUIB support to an ICU definition file - the unit information screen,
      and the device-unit information screen.  The screens have the following
      names in the various definition files:

              .def file              unit info      device-unit info

            Multibus II                UPCI               IPCI
            Multibus I                 UPCI               IPCI  
            PC Bus                     U120A              I120A

      Key entries in the unit information screen that must be specified
      for each new drive include NAM (unit-info name), NC (number of
      cylinders), NH (number of heads), NS (number of sectors per track),
      TZ (tracks per zone), and ASZ (alternate sectors per zone).  The number
      of sectors per track is calculated using 512 Byte sectors for AT-bus
      device drivers, and 1024 Byte sectors for MultiBus drivers.  The TZ
      entry should be set to the number of heads for the drive.  The ASZ
      entry should be approximately 1/4 of the TZ entry.  For a further
      explanation of the TZ and ASZ entries, consult the SCSI specification's
      description of "mode select."

      Key entries in each new DUIB (device-unit information) screen that must
      be specified include NAM (device-unit name), UIN (unit info name), UN
      in Multibus definition files (unit number is the SCSI ID of this
      device), and SID in AT-bus definition files (SID is the SCSI ID of
      this device).  The UIN must match the NAM entry in the related unit
      information screen (one unit information screen can be referenced by
      several device-unit information screens).  The UN and SID are set to
      the drive ID to which the drive is jumpered.

   
                             NETWORKING

NET-1. User Job Priority causes a General Protection error

      Adjusting the priority of an iRMX III Human Interface user on a
      diskless (remote :SD:) system (via the :config:user/<user-name>
      file) to a value less than or equal to 128 will result in a General
      Protection error in the Remote File Driver.

                         *** New in III.1.3 ***

NET-2. Problems with INA961.39.

      The preconfigured iNA download binary that is configured with the ES-IS
      network layer for the PCL2 Network Interface Adapter does not work
      correctly.  Data corruption is possible when tranfering files to and/or
      from a remote system via iRMX-NET that is configured with this iNA
      Transport Layer.
        
NET-3. PCL2A is not supported.

      The PCL2A Network Interface Adapter is not currently supported by
      iRMX-NET.  The PCL2 Network Interface Adapter is supported. 

NET-4. Generation of COMMputer ES-IS configuration fails.

      Generation of an ES-IS COMMputer system for an iSBC 486/12 with an iSBC
      586 module, an iSBC 486/133SE or a MIX 386/020 with a MIX/560 module
      will fail during iRMX-NET generation.  The following table defines the
      ICU parameters that must be changed in the File Sever Configuration (FS)
      ICU screen and in the AFA User (AFAU) ICU screen.  Two sets of values
      will generate a system with no errors.

      ICU screen parameter    Value set 1     Value set 2     Default values
      -------------------     -----------     -----------     --------------
      (FS)   (VC)                 10              15                20
      (FS)   (SC)                 10              15                20
      (FS)   (UVC)                 4               2                 4
      (FS)   (BVC)                50              30                50
      (FS)   (OFV)                40              30                40
      (AFAU) (NSB)                15              16                25

NET-5. iRMX-NET cannot consume from a DOS server.

      Attempting to attachdevice to a DOS server from an iRMX consumer, may
      result in a General Protection error.

NET-6. Using the iSBC 186/530 with high performance CPU boards

      Do not use the iSBC 486/133SE, 486/125 or 386/133 as a diskless CPU
      in system configurations where the iSBC 186/530 is acting as the
      Ethernet Controller.  This configuration may cause the 186/530 to
      hang when the the diskfull board is doing networking operation
      while the diskless board is accessing the file system.  The
      186/530 will work with the above CPU boards if there is not a
      disk-less board in the system and networking loads are light.

NET-7. A spurious name is loaded in the Name Server if the /net/data
      file ends carriage-return/line-feed.



                           DOS UTILITIES

DOS-1. RMXDISK has problems with very large files

      The DOS-hosted utility RMXDISK can not handle 'long' files found
      on an iRMX partition.  If you need to transfer large files from
      the iRMX partition to the DOS partition of a hard disk, make sure
      the files being transfered are not "long" (see Disk Verification
      program documentation for a description of "long" files).

DOS-2. RMXDISK only functions with low density floppies

      The DOS-hosted utility RMXDISK can only read/write 360K 5 1/4"
      floppies and 720K 3 1/2" floppies.

DOS-3. RMXDISK can not detect E$SPACE condition on an iRMX volume

      The DOS-hosted utility RMXDISK can not detect that a diskette or
      hard disk partition has become full.  Always check disk capacity
      on the iRMX volume before transferring files using the RMXDISK
      utility.


                          OTHER INFORMATION

OTH-1. Keyboard lockup using the iSBX 279

      Early versions of the iSBX 279 Firmware have a problem with some
      keyboards.  These keyboards 'lock up' whenever the NUM LOCK, SCROLL
      LOCK, or CAPS LOCK keys are pressed.  A new version of the iSBX 279
      Firmware and a replacement PAL are available which fix this problem.
      This problem is fixed in the iSBX 279A firmware.
  
OTH-2. Additional Porting Guidelines - LARGE to COMPACT models of compilation

      The iRMX III Operation System only provides COMPACT interface
      libraries.  This requires 32 bit application code to reside in the
      same code segment as these system interface procedures.  The simplest
      way to accomplish this is to structure your application as one or
      more COMPACT subsystems.  When porting an existing 16 bit LARGE model
      application to a 32 bit COMPACT model application, consider the
      following:

      1) COMPACT model code runs faster than LARGE model code.  It takes
         26 clocks for each segment register load.  NEAR (COMPACT) calls
         require no segment register loads where as FAR (LARGE) calls
         require at least 4 register loads (CS and DS going and returning)
         per call.  This register loading time adds up quickly, especially
         if nested calls are made.  A simple LARGE model 16 bit test program
         which made recursive calls to just four system calls experienced a 6%
         performance boost when changed to COMPACT.

      2) When moving from LARGE to COMPACT, take steps to insure that a
         valid DS value is available to jobs and tasks created by the
         RQ$CREATE$JOB, RQE$CREATE$JOB, RQ$CREATE$IO$JOB, RQE$CREATE$IO$JOB,
         RQ$LOAD$IO$JOB, RQE$LOAD$IO$JOB, and RQ$CREATE$TASK system calls.
         In LARGE model code which made one of these system calls, one
         typically specified a NULL data segment value along with a pointer
         to a publically declared procedure.  This worked fine since LARGE
         model procedures always load DS upon entry.  This is not the case,
         however, in COMPACT model code.  DS is assumed to have been set up
         previously.  To avoid getting a General Protection error due to a
         NULL DS, the programmer has two choices; 1) change the code to pass
         a valid selector for the data segment of created jobs and tasks, or
         2) use the EXPORT compiler directive to produce public procedures
         which continue to load DS upon entry.  An example of the second
         option is as follows:

            $COMPACT(my_code -CONST IN CODE- HAS my_proc;
            $EXPORTS task$1)
               .
               .
            my_proc:
            DO;
                 .
                 .
                 task$1: PROCEDURE PUBLIC;
                    .
                    .
                 END task$1;
            END my_proc;

         The EXPORTS directive causes the compiler to provide a FAR interface
         for the procedure task$1.  This interface includes setting up DS
         upon procedure entry.


                        *** New in III.1.3 ***

OTH-3. iSBX 279A BIOS and Console Controller device drivers don't match.

       When you are using the iSBX 279A multimodule as the system console,
       a character is lost when exiting the iSDM monitor with the G command
       to return to the operating system.  The workaround requires you to type
       the first character twice.



                      LANGUAGES AND UTILITIES

LNG-1. ASM386 V4.0 does not work on iRMX III

       ASM386 V4.0 causes a General Protection error when invoked
       (using RUN86) on the file ITABL.A38 produced by the iRMX III
       ICU.  Do not upgrade to V4.0 but instead continue to use
       ASM386 V3.0 which was shipped with the iRMX III product.


LNG-2. Versions of BND386 prior to V1.5 on iRMX III do not properly
       support Call Gate IDs which are part of System Interface files
       produced by BLD386

       BLD386 can produce a file which contains system interfaces
       such as Call Gate IDs which can be used by BND386 to resolve
       external references to these interfaces.  The RCONFIGURE
       option in versions of BND386 prior to V1.5, however, cause such
       externally declared Call Gates to be referenced as Privilege Level
       3 gates.  Since iRMX III specifies all Call Gates as Privilege
       Level 0 gates, a General Protection fault will occur when such
       Privilege Level 0 gates are accessed by a Provilege Level 3
       call.  Instead of using BLD386-produced system interface files
       to resolve the Call Gates defined in the ICU as OS Extensions,
       Intel recommends use of user-written ASM interface procedures as
       shown below.

       This ASM module is a sample interface to Call Gate 441 which
       has been set up by the ICU.  The OS Extension procedure tied
       to the gate has the following FAR external interface:

       out$char: PROCEDURE(value, status$p) EXTERNAL;

                            ASM386 MODULE

       GATE_441     equ     441

       $GENONLY
       %*DEFINE(CALL_G(ARG))
       (DB    9AH
        DD    0, %ARG*8)

       Name    Interface

       Code    Segment   ER    PUBLIC

           Public Outchar
                
       Outchar Proc    Near

       ;
       ;      PLM CALL -  CALL  OUT$CHAR  (VALUE, @STATUS);
       ;
       ;              STACK  FRAME AFTER PUSHING EBP
       ;
       ;                ,__________________________,
       ;        ESP ->  |        OLD EBP           |  [EBP]
       ;                |__________________________|
       ;                |  OFFSET OF RET. ADD.     |  [EBP + 4]
       ;                |__________________________|  
       ;                |  OFFSET OF STATUS        |  [EBP + 8]
       ;                |__________________________|
       ;                |  SEGMENT OF STATUS       |  [EBP + 12]
       ;                |__________________________|
       ;                |     VALUE (PARAMTER)     |  [EBP + 16]
       ;                '__________________________'
       ;

           push    ebp
           mov     ebp, esp
           push    dword ptr ss:[ebp + 16]        ; value
           push    dword ptr ss:[ebp + 12]        ; selector of status$p
           push    dword ptr ss:[ebp + 8]         ; offset of status$p

           %call_g(GATE_441)

           ;CALL gate_441 - Invoke entry procedure through the call gate
           les     edi, pword ptr ss:[ebp + 8]    ; Load status$p in es:edi
           mov     cx,es:[edi]                    ; Load condition code in cx
           jcxz    done                           ; If CX=0, then no error
           ;
           ; Error processing code IF CX <> 0
           ;
       done:
           ;
           pop     ebp
           ret     12
           Outchar Endp

       Code    Ends
       End

      As can be seen from the code, the Outchar procedure is a near
      procedure which can be call from PL/M.  This same approach can
      be used for any OS Extension, thus eliminating the need for the
      BLD386-produced system interface file for Call Gates.

*                        *** New in III.1.3 ***                            *

LNG-3. Missing Numeric Libraries

      The null numeric support libraries nl387n.lib and nl387f.lib are
      missing from iRMX III.1 and iRMX III.1.3.
