void port_in (pulong -&w target, ushort port_number)
{
  asm () [-w target, port_number] [R0, R24]
  {
    SETPTR R24, &port_number, DT_WORD; LOAD R0, R24, DT_WORD;        /* R0 = port_number; */
    INP R0, R0, DT_DWORD;                                            /* R0 = inp (R0);    */

    SETPTR R24, &target, DT_DWORD; LOADPTR R24, R24;                 /* R24 = target;     */
    STORE R24, R0, DT_DWORD;                                         /* R24^ = R0;        */
  }
}