    ifnd EXEC_IO_I
EXEC_IO_I set 1

    ifnd    EXEC_PORTS_I
    include "asm:include/exec/ports.i"
    endif

    ifnd    EXEC_LIBRARIES_I
    include "asm:include/exec/libraries.i"
    endif

IO         set 0
IO_DEVICE  set IO+MN_SIZE
IO_UNIT    set IO_DEVICE+4
IO_COMMAND set IO_UNIT+4
IO_FLAGS   set IO_COMMAND+2
IO_ERROR   set IO_FLAGS+1
IO_SIZE    set IO_ERROR+1
IO_ACTUAL  set IO_SIZE
IO_LENGTH  set IO_ACTUAL+4
IO_DATA    set IO_LENGTH+4
IO_OFFSET  set IO_DATA+4
IOSTD_SIZE set IO_OFFSET+4

IOB_QUICK equ 0
IOF_QUICK equ 1<<0

            LIBINIT

            LIBDEF  DEV_BEGINIO
            LIBDEF  DEV_ABORTIO


BEGINIO macro
        LINKLIB DEV_BEGINIO,IO_DEVICE(A1)
        endm

ABORTIO macro
        LINKLIB DEV_ABORTIO,IO_DEVICE(A1)
        endm

DEVINIT     macro  \1
CMD_COUNT   set    \1
            endm

DEVCMD      macro \1
\1          equ   CMD_COUNT
CMD_COUNT   set   CMD_COUNT+1
            endm

            DEVINIT 0

            DEVCMD  CMD_INVALID
            DEVCMD  CMD_RESET
            DEVCMD  CMD_READ
            DEVCMD  CMD_WRITE
            DEVCMD  CMD_UPDATE
            DEVCMD  CMD_CLEAR
            DEVCMD  CMD_STOP
            DEVCMD  CMD_START
            DEVCMD  CMD_FLUSH
            DEVCMD  CMD_NONSTD

    endif


