/* Definitions of element sizes for DMA transfers - to allow byte-swapping */
 #define ESZBYTES              0           /* BYTE element size value        */
-#define ESZWORDS              1           /* WORD element size value        */
+#define ESZWORDS              1           /* unsigned short element size value        */
 #define ESZLONGS              2           /* long element size value        */
 #define ESZUNKNOWN            0           /* unknown element size value     */
 
 U14API(short)  U14Reset1401(short hand);
 U14API(short)  U14ForceReset(short hand);
 U14API(short)  U14TypeOf1401(short hand);
-U14API(short)  U14NameOf1401(short hand, char *pBuf, WORD wMax);
+U14API(short)  U14NameOf1401(short hand, char *pBuf, unsigned short wMax);
 
 U14API(short)  U14Stat1401(short hand);
 U14API(short)  U14CharCount(short hand);
 U14API(short)  U14LineCount(short hand);
 
 U14API(short)  U14SendString(short hand, const char *pString);
-U14API(short)  U14GetString(short hand, char *pBuffer, WORD wMaxLen);
+U14API(short)  U14GetString(short hand, char *pBuffer, unsigned short wMaxLen);
 U14API(short)  U14SendChar(short hand, char cChar);
 U14API(short)  U14GetChar(short hand, char *pcChar);
 
 U14API(short)  U14LdCmd(short hand, const char *command);
 U14API(DWORD) U14Ld(short hand, const char *vl, const char *str);
 
-U14API(short)  U14SetTransArea(short hand, WORD wArea, void *pvBuff,
+U14API(short)  U14SetTransArea(short hand, unsigned short wArea, void *pvBuff,
                                        DWORD dwLength, short eSz);
-U14API(short)  U14UnSetTransfer(short hand, WORD wArea);
-U14API(short)  U14SetTransferEvent(short hand, WORD wArea, BOOL bEvent,
+U14API(short)  U14UnSetTransfer(short hand, unsigned short wArea);
+U14API(short)  U14SetTransferEvent(short hand, unsigned short wArea, BOOL bEvent,
                                        BOOL bToHost, DWORD dwStart, DWORD dwLength);
-U14API(int)   U14TestTransferEvent(short hand, WORD wArea);
-U14API(int)   U14WaitTransferEvent(short hand, WORD wArea, int msTimeOut);
+U14API(int)   U14TestTransferEvent(short hand, unsigned short wArea);
+U14API(int)   U14WaitTransferEvent(short hand, unsigned short wArea, int msTimeOut);
 U14API(short)  U14GetTransfer(short hand, TGET_TX_BLOCK *pTransBlock);
 
 U14API(short)  U14ToHost(short hand, char *pAddrHost, DWORD dwSize, DWORD dw1401,
 U14API(short)  U14To1401(short hand, const char *pAddrHost, DWORD dwSize, DWORD dw1401,
                                                                short eSz);
 
-U14API(short)  U14SetCircular(short hand, WORD wArea, BOOL bToHost, void *pvBuff,
+U14API(short)  U14SetCircular(short hand, unsigned short wArea, BOOL bToHost, void *pvBuff,
                                                        DWORD dwLength);
 
-U14API(int)   U14GetCircBlk(short hand, WORD wArea, DWORD *pdwOffs);
-U14API(int)   U14FreeCircBlk(short hand, WORD wArea, DWORD dwOffs, DWORD dwSize,
+U14API(int)   U14GetCircBlk(short hand, unsigned short wArea, DWORD *pdwOffs);
+U14API(int)   U14FreeCircBlk(short hand, unsigned short wArea, DWORD dwOffs, DWORD dwSize,
                                                        DWORD *pdwOffs);
 
 U14API(short)  U14StrToLongs(const char *pszBuff, U14LONG *palNums, short sMaxLongs);
 U14API(int)   U14BaseAddr1401(short hand);
 U14API(int)   U14DriverVersion(short hand);
 U14API(int)   U14DriverType(short hand);
-U14API(short)  U14DriverName(short hand, char *pBuf, WORD wMax);
+U14API(short)  U14DriverName(short hand, char *pBuf, unsigned short wMax);
 U14API(short)  U14GetUserMemorySize(short hand, DWORD *pMemorySize);
 U14API(short)  U14KillIO1401(short hand);
 
 U14API(short)  U14StartSelfTest(short hand);
 U14API(short)  U14CheckSelfTest(short hand, U14LONG *pData);
 U14API(short)  U14TransferFlags(short hand);
-U14API(void)  U14GetErrorString(short nErr, char *pStr, WORD wMax);
+U14API(void)  U14GetErrorString(short nErr, char *pStr, unsigned short wMax);
 U14API(int)   U14MonitorRev(short hand);
 U14API(void)  U14CloseAll(void);
 
 
 typedef struct CmdHead          // defines header block on command
 {                               // for PC commands
    char   acBasic[5];           // BASIC information - needed to align things
-   WORD   wBasicSz;             // size as seen by BASIC
-   WORD   wCmdSize;             // size of the following info
+   unsigned short   wBasicSz;             // size as seen by BASIC
+   unsigned short   wCmdSize;             // size of the following info
 } __packed CMDHEAD;
 #pragma pack()                  // back to normal
 
 ****************************************************************************/
 U14API(short) U14StrToLongs(const char* pszBuff, U14LONG *palNums, short sMaxLongs)
 {
-    WORD wChInd = 0;                // index into source
+    unsigned short wChInd = 0;                // index into source
     short sLgInd = 0;               // index into result longs
 
     while (pszBuff[wChInd] &&       // until we get to end of string...
 ** U14DriverName
 ** Returns the driver type as 3 character (ISA, PCI, USB or HSS))
 ****************************************************************************/
-U14API(short) U14DriverName(short hand, char* pBuf, WORD wMax)
+U14API(short) U14DriverName(short hand, char* pBuf, unsigned short wMax)
 {
     char* pName;
     *pBuf = 0;                             // Start off with a blank string
 ** U14NameOf1401
 ** Returns the type of the 1401 as a string, blank if unknown
 ****************************************************************************/
-U14API(short) U14NameOf1401(short hand, char* pBuf, WORD wMax)
+U14API(short) U14NameOf1401(short hand, char* pBuf, unsigned short wMax)
 {
     short sErr = CheckHandle(hand);
     if (sErr == U14ERR_NOERROR)
         U14Reset1401(hand);                     // in case an active transfer running
         for (j = 0; j < MAX_TRANSAREAS; ++j)    // Locate locked areas
             if (iAreaMask & (1 << j))           // And kill off any transfers
-                U14UnSetTransfer(hand, (WORD)j);
+                U14UnSetTransfer(hand, (unsigned short)j);
     }
 
 #ifdef _IS_WINDOWS_
 **          error code. Any error from the device causes us to set up for
 **          a full reset.
 ****************************************************************************/
-U14API(short) U14GetString(short hand, char* pBuffer, WORD wMaxLen)
+U14API(short) U14GetString(short hand, char* pBuffer, unsigned short wMaxLen)
 {
     short sErr = CheckHandle(hand);
     if (sErr != U14ERR_NOERROR)             // If an error...
             if (asLastRetCode[hand] == U14ERR_NOERROR)     /* all ok so far */
             {
                 DWORD       dwBytes = 0;
-                *((WORD *)pBuffer) = wMaxLen;       /* set up length */
+                *((unsigned short *)pBuffer) = wMaxLen;       /* set up length */
 #ifndef _WIN64
                 if (!USE_NT_DIOC(hand))             /* Win 95 DIOC here ? */
                 {
                     if (wMaxLen > MAXSTRLEN)        /* Truncate length */
                         wMaxLen = MAXSTRLEN;    
 
-                    *((WORD *)tstr) = wMaxLen;      /* set len */
+                    *((unsigned short *)tstr) = wMaxLen;      /* set len */
 
                     iOK = DeviceIoControl(aHand1401[hand],(DWORD)U14_GETSTRING,
                                     NULL, 0, tstr, wMaxLen+sizeof(short),
 **       other functions after getting an error and before using
 **       this function.
 ****************************************************************************/
-U14API(void)  U14GetErrorString(short nErr, char* pStr, WORD wMax)
+U14API(void)  U14GetErrorString(short nErr, char* pStr, unsigned short wMax)
 {
     char    wstr[150];
 
         break;
 
     }
-    if ((WORD)strlen(wstr) >= wMax-1)  /* Check for string being too long */
+    if ((unsigned short)strlen(wstr) >= wMax-1)  /* Check for string being too long */
         wstr[wMax-1] = 0;                          /* and truncate it if so */
     strcpy(pStr, wstr);                       /* Return the error string */
 }
 ** U14UnSetTransfer  Cancels a transfer area
 ** wArea    The index of a block previously used in by SetTransfer
 *****************************************************************************/
-U14API(short) U14UnSetTransfer(short hand, WORD wArea)
+U14API(short) U14UnSetTransfer(short hand, unsigned short wArea)
 {
     short sErr = CheckHandle(hand);
 #ifdef _IS_WINDOWS_
 
 /****************************************************************************
 ** U14SetTransArea      Sets an area up to be used for transfers
-** WORD  wArea     The area number to set up
+** unsigned short  wArea     The area number to set up
 ** void *pvBuff    The address of the buffer for the data.
 ** DWORD dwLength  The length of the buffer for the data
 ** short eSz       The element size (used for byte swapping on the Mac)
 ****************************************************************************/
-U14API(short) U14SetTransArea(short hand, WORD wArea, void *pvBuff,
+U14API(short) U14SetTransArea(short hand, unsigned short wArea, void *pvBuff,
                                           DWORD dwLength, short eSz)
 {
     TRANSFERDESC td;
 ** Returns 1 if an event handle exists, 0 if all OK and no event handle or
 ** a negative code for an error.
 ****************************************************************************/
-U14API(short) U14SetTransferEvent(short hand, WORD wArea, BOOL bEvent,
+U14API(short) U14SetTransferEvent(short hand, unsigned short wArea, BOOL bEvent,
                                   BOOL bToHost, DWORD dwStart, DWORD dwLength)
 {
 #ifdef _IS_WINDOWS_
 ** Would a U14WaitTransferEvent() call return immediately? return 1 if so,
 ** 0 if not or a negative code if a problem.
 ****************************************************************************/
-U14API(int) U14TestTransferEvent(short hand, WORD wArea)
+U14API(int) U14TestTransferEvent(short hand, unsigned short wArea)
 {
 #ifdef _IS_WINDOWS_
     int iErr = CheckHandle(hand);
 ** Returns   If no event handle then return immediately. Else return 1 if
 **           timed out or 0=event, and a negative code if a problem.
 ****************************************************************************/
-U14API(int) U14WaitTransferEvent(short hand, WORD wArea, int msTimeOut)
+U14API(int) U14WaitTransferEvent(short hand, unsigned short wArea, int msTimeOut)
 {
 #ifdef _IS_WINDOWS_
     int iErr = CheckHandle(hand);
 
 /****************************************************************************
 ** U14SetCircular    Sets an area up for circular DMA transfers
-** WORD  wArea          The area number to set up
+** unsigned short  wArea          The area number to set up
 ** BOOL  bToHost        Sets the direction of data transfer
 ** void *pvBuff        The address of the buffer for the data
 ** DWORD dwLength       The length of the buffer for the data
 ****************************************************************************/
-U14API(short) U14SetCircular(short hand, WORD wArea, BOOL bToHost,
+U14API(short) U14SetCircular(short hand, unsigned short wArea, BOOL bToHost,
                                                                        void *pvBuff, DWORD dwLength)
 {
     short sErr = CheckHandle(hand);
 ** Function  GetCircBlk returns the size (& start offset) of the next
 **           available block of circular data.
 ****************************************************************************/
-U14API(int) U14GetCircBlk(short hand, WORD wArea, DWORD *pdwOffs)
+U14API(int) U14GetCircBlk(short hand, unsigned short wArea, DWORD *pdwOffs)
 {
     int lErr = CheckHandle(hand);
     if (lErr != U14ERR_NOERROR)
 **           resuse for circular transfers and returns the size (& start
 **           offset) of the next available block of circular data.
 ****************************************************************************/
-U14API(int) U14FreeCircBlk(short hand, WORD wArea, DWORD dwOffs, DWORD dwSize,
+U14API(int) U14FreeCircBlk(short hand, unsigned short wArea, DWORD dwOffs, DWORD dwSize,
                                         DWORD *pdwOffs)
 {
     int lErr = CheckHandle(hand);