//////////////////////////////////////////////////////////////////////////////
//                                                                           /
// IAR ARM ANSI C/C++ Compiler V4.11A/W32              20/Jul/2004  18:58:51 /
// Copyright 1999-2004 IAR Systems. All rights reserved.                     /
//                                                                           /
//    Cpu mode        =  arm                                                 /
//    Endian          =  little                                              /
//    Stack alignment =  4                                                   /
//    Source file     =  C:\medusa\zl_rmon.c                                 /
//    Command line    =  -I "C:\Program Files\IAR Systems\Embedded           /
//                       Workbench 4.0\ARM\INC\" -lc C:\medusa\Debug\List\   /
//                       -la C:\medusa\Debug\List\ -o C:\medusa\Debug\Obj\   /
//                       -s2 --no_cse --no_unroll --no_inline                /
//                       --no_code_motion --no_tbaa --no_clustering          /
//                       --no_scheduling --debug --cpu_mode arm --endian     /
//                       little --cpu ARM7TDMI-S --stack_align 4 -e --fpu    /
//                       None "-D_DLIB_CONFIG_FILE=C:\Program Files\IAR      /
//                       Systems\Embedded Workbench                          /
//                       4.0\ARM\LIB\dl4tpannl8n.h" C:\medusa\zl_rmon.c      /
//    List file       =  C:\medusa\Debug\List\zl_rmon.s79                    /
//                                                                           /
//                                                                           /
//////////////////////////////////////////////////////////////////////////////

        NAME zl_rmon

        RTMODEL "ARMv4M", "USED"
        RTMODEL "StackAlign4", "USED"
        RTMODEL "__cpu_mode", "__pcs__arm"
        RTMODEL "__data_model", "absolute"
        RTMODEL "__dlib_file_descriptor", "0"
        RTMODEL "__endian", "little"
        RTMODEL "__rt_version", "6"

        RSEG CSTACK:DATA:NOROOT(2)

??DataTable0 EQU 0
??DataTable1 EQU 0
??DataTable10 EQU 0
??DataTable100 EQU 0
??DataTable101 EQU 0
??DataTable11 EQU 0
??DataTable12 EQU 0
??DataTable13 EQU 0
??DataTable14 EQU 0
??DataTable15 EQU 0
??DataTable16 EQU 0
??DataTable18 EQU 0
??DataTable19 EQU 0
??DataTable2 EQU 0
??DataTable20 EQU 0
??DataTable21 EQU 0
??DataTable22 EQU 0
??DataTable23 EQU 0
??DataTable24 EQU 0
??DataTable25 EQU 0
??DataTable26 EQU 0
??DataTable27 EQU 0
??DataTable28 EQU 0
??DataTable29 EQU 0
??DataTable3 EQU 0
??DataTable30 EQU 0
??DataTable31 EQU 0
??DataTable32 EQU 0
??DataTable33 EQU 0
??DataTable34 EQU 0
??DataTable35 EQU 0
??DataTable36 EQU 0
??DataTable37 EQU 0
??DataTable38 EQU 0
??DataTable39 EQU 0
??DataTable4 EQU 0
??DataTable40 EQU 0
??DataTable41 EQU 0
??DataTable42 EQU 0
??DataTable43 EQU 0
??DataTable44 EQU 0
??DataTable45 EQU 0
??DataTable46 EQU 0
??DataTable47 EQU 0
??DataTable48 EQU 0
??DataTable49 EQU 0
??DataTable5 EQU 0
??DataTable50 EQU 0
??DataTable51 EQU 0
??DataTable52 EQU 0
??DataTable53 EQU 0
??DataTable54 EQU 0
??DataTable55 EQU 0
??DataTable56 EQU 0
??DataTable57 EQU 0
??DataTable58 EQU 0
??DataTable59 EQU 0
??DataTable6 EQU 0
??DataTable60 EQU 0
??DataTable61 EQU 0
??DataTable62 EQU 0
??DataTable63 EQU 0
??DataTable64 EQU 0
??DataTable65 EQU 0
??DataTable66 EQU 0
??DataTable67 EQU 0
??DataTable68 EQU 0
??DataTable69 EQU 0
??DataTable7 EQU 0
??DataTable70 EQU 0
??DataTable71 EQU 0
??DataTable72 EQU 0
??DataTable73 EQU 0
??DataTable74 EQU 0
??DataTable75 EQU 0
??DataTable76 EQU 0
??DataTable77 EQU 0
??DataTable78 EQU 0
??DataTable79 EQU 0
??DataTable8 EQU 0
??DataTable80 EQU 0
??DataTable81 EQU 0
??DataTable82 EQU 0
??DataTable83 EQU 0
??DataTable84 EQU 0
??DataTable85 EQU 0
??DataTable86 EQU 0
??DataTable87 EQU 0
??DataTable88 EQU 0
??DataTable89 EQU 0
??DataTable9 EQU 0
??DataTable90 EQU 0
??DataTable91 EQU 0
??DataTable92 EQU 0
??DataTable93 EQU 0
??DataTable94 EQU 0
??DataTable95 EQU 0
??DataTable96 EQU 0
??DataTable97 EQU 0
??DataTable98 EQU 0
??DataTable99 EQU 0
        PUBWEAK ?init?tab?DATA_Z
        FUNCTION clearHandler,0603H
        LOCFRAME CSTACK, 32, STACK
        FUNCTION clearLocalStatsAll,0203H
        LOCFRAME CSTACK, 8, STACK
        FUNCTION clearLocalStatsPort,0203H
        MULTWEAK cliRegisterCommand??rA
        MULTWEAK clicharGetOutputBuffer??rA
        MULTWEAK clicharSendOutputBuffer??rA
        FUNCTION ctrlClearAll,0203H
        LOCFRAME CSTACK, 12, STACK
        FUNCTION ctrlClearPort,0203H
        LOCFRAME CSTACK, 16, STACK
        FUNCTION ctrlClearStats,0203H
        LOCFRAME CSTACK, 24, STACK
        FUNCTION ctrlRequestStats,0203H
        LOCFRAME CSTACK, 24, STACK
        FUNCTION ctrlRetrieveStats,0203H
        LOCFRAME CSTACK, 16, STACK
        FUNCTION decodeStats,0203H
        LOCFRAME CSTACK, 4, STACK
        MULTWEAK sprintf??rA
        FUNCTION statsHandler,0603H
        LOCFRAME CSTACK, 40, STACK
        MULTWEAK strtol??rA
        MULTWEAK zarlinkCommandWrite??rA
        MULTWEAK zarlinkCtrlBuffer1Write??rA
        MULTWEAK zarlinkCtrlBuffer2Read??rA
        MULTWEAK zarlinkInterruptRead??rA
        PUBLIC zarlinkRmonGet
        FUNCTION zarlinkRmonGet,0203H
        LOCFRAME CSTACK, 16, STACK
        PUBLIC zarlinkRmonInit
        FUNCTION zarlinkRmonInit,0203H
        LOCFRAME CSTACK, 4, STACK
        MULTWEAK zarlinkStatusRead??rA
        
        CFI Names cfiNames0
        CFI StackFrame CFA R13 HUGEDATA
        CFI Resource R0:32, R1:32, R2:32, R3:32, R4:32, R5:32, R6:32, R7:32
        CFI Resource R8:32, R9:32, R10:32, R11:32, R12:32, CPSR:32, R13:32
        CFI Resource R14:32, SPSR:32
        CFI VirtualResource ?RET:32
        CFI EndNames cfiNames0
        
        CFI Common cfiCommon0 Using cfiNames0
        CFI CodeAlign 4
        CFI DataAlign 4
        CFI ReturnAddress ?RET CODE
        CFI CFA R13+0
        CFI R0 Undefined
        CFI R1 Undefined
        CFI R2 Undefined
        CFI R3 Undefined
        CFI R4 SameValue
        CFI R5 SameValue
        CFI R6 SameValue
        CFI R7 SameValue
        CFI R8 SameValue
        CFI R9 SameValue
        CFI R10 SameValue
        CFI R11 SameValue
        CFI R12 Undefined
        CFI CPSR SameValue
        CFI R14 Undefined
        CFI SPSR SameValue
        CFI ?RET R14
        CFI EndCommon cfiCommon0
        
cliRegisterCommand  SYMBOL "cliRegisterCommand"
clicharGetOutputBuffer SYMBOL "clicharGetOutputBuffer"
clicharSendOutputBuffer SYMBOL "clicharSendOutputBuffer"
sprintf             SYMBOL "sprintf"
strtol              SYMBOL "strtol"
zarlinkCommandWrite SYMBOL "zarlinkCommandWrite"
zarlinkCtrlBuffer1Write SYMBOL "zarlinkCtrlBuffer1Write"
zarlinkCtrlBuffer2Read SYMBOL "zarlinkCtrlBuffer2Read"
zarlinkInterruptRead SYMBOL "zarlinkInterruptRead"
zarlinkStatusRead   SYMBOL "zarlinkStatusRead"
cliRegisterCommand??rA SYMBOL "??rA", cliRegisterCommand
clicharGetOutputBuffer??rA SYMBOL "??rA", clicharGetOutputBuffer
clicharSendOutputBuffer??rA SYMBOL "??rA", clicharSendOutputBuffer
sprintf??rA         SYMBOL "??rA", sprintf
strtol??rA          SYMBOL "??rA", strtol
zarlinkCommandWrite??rA SYMBOL "??rA", zarlinkCommandWrite
zarlinkCtrlBuffer1Write??rA SYMBOL "??rA", zarlinkCtrlBuffer1Write
zarlinkCtrlBuffer2Read??rA SYMBOL "??rA", zarlinkCtrlBuffer2Read
zarlinkInterruptRead??rA SYMBOL "??rA", zarlinkInterruptRead
zarlinkStatusRead??rA SYMBOL "??rA", zarlinkStatusRead

        EXTERN cliRegisterCommand
        FUNCTION cliRegisterCommand,0202H
        EXTERN clicharGetOutputBuffer
        FUNCTION clicharGetOutputBuffer,0202H
        EXTERN clicharSendOutputBuffer
        FUNCTION clicharSendOutputBuffer,0202H
        EXTERN sprintf
        FUNCTION sprintf,010202H
        EXTERN strtol
        FUNCTION strtol,010202H
        EXTERN zarlinkCommandWrite
        FUNCTION zarlinkCommandWrite,0202H
        EXTERN zarlinkCtrlBuffer1Write
        FUNCTION zarlinkCtrlBuffer1Write,0202H
        EXTERN zarlinkCtrlBuffer2Read
        FUNCTION zarlinkCtrlBuffer2Read,0202H
        EXTERN zarlinkInterruptRead
        FUNCTION zarlinkInterruptRead,0202H
        EXTERN zarlinkStatusRead
        FUNCTION zarlinkStatusRead,0202H


        RSEG DATA_Z:DATA:SORT:NOROOT(2)
portStats:
        DS8 1200

        RSEG DATA_Z:DATA:SORT:NOROOT(2)
request:
        DS8 8

        RSEG DATA_Z:DATA:SORT:NOROOT(2)
replyData16:
        DS8 40

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function ctrlRequestStats
   CODE32      
ctrlRequestStats:
   STMDB       SP!,{R4-R8,LR}     ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI R8 Frame(CFA, -8)
        CFI R7 Frame(CFA, -12)
        CFI R6 Frame(CFA, -16)
        CFI R5 Frame(CFA, -20)
        CFI R4 Frame(CFA, -24)
        CFI CFA R13+24
   MOV         R4,R0
   MOV         R5,R1
   MOV         R0,#+0x0
   MOV         R6,R0
??ctrlRequestStats_0:
   CMP         R6,#+0x8
   BGE         ??ctrlRequestStats_1
   LDR         R1,??DataTable17   ;; request
   MOV         R2,#+0x0
   STRB        R2,[R6, +R1]
   ADDS        R6,R6,#+0x1
   B           ??ctrlRequestStats_0
??ctrlRequestStats_1:
   LDR         R3,??DataTable17   ;; request
   MOV         R12,#+0x18
   STRB        R12,[R3, #+0]
   LDR         LR,??DataTable17   ;; request
   MOV         R0,#+0x0
   STRB        R0,[LR, #+1]
   MOV         R1,#+0x8
   MLAS        R2,R1,R4,R5
   MOV         R3,R2, LSL #+20
   MOVS        R3,R3, LSR #+20
   MOV         R8,R3
   LDR         R12,??DataTable17  ;; request
   MOV         LR,R8
   STRB        LR,[R12, #+2]
   LDR         R0,??DataTable17   ;; request
   MOV         R1,R8
   MOV         R1,R1, LSL #+16
   MOVS        R1,R1, LSR #+16
   MOV         R2,R1, LSR #+8
   STRB        R2,[R0, #+3]
   LDR         R3,??DataTable17   ;; request
   MOV         R12,R8, LSR #+16
   STRB        R12,[R3, #+4]
   LDR         LR,??DataTable17   ;; request
   MOV         R0,#+0x1
   STRB        R0,[LR, #+5]
   LDR         R1,??DataTable17   ;; request
   MOV         R2,R4
   MOV         R3,#+0x8
   MOV         R12,R5
   MLAS        LR,R3,R2,R12
   STRB        LR,[R1, #+6]
   MOV         R0,#+0x0
   MOV         R6,R0
??ctrlRequestStats_2:
   MOV         R1,#+0x10
   ORR         R1,R1,#+0x2700
   CMP         R6,R1
   BGE         ??ctrlRequestStats_3
   _BLF        zarlinkStatusRead,zarlinkStatusRead??rA
   MOV         R7,R0
   MOV         R2,R7
   ANDS        R2,R2,#+0xFF       ;; Zero extend
   TST         R2,#+0x1
   BNE         ??ctrlRequestStats_3
   ADDS        R6,R6,#+0x1
   B           ??ctrlRequestStats_2
??ctrlRequestStats_3:
   MOV         R3,R7
   ANDS        R3,R3,#+0xFF       ;; Zero extend
   TST         R3,#+0x1
   BNE         ??ctrlRequestStats_4
   MVN         R0,#+0x0
   B           ??ctrlRequestStats_5
??ctrlRequestStats_4:
   MOV         R12,#+0x0
   MOV         R6,R12
??ctrlRequestStats_6:
   CMP         R6,#+0x4
   BGE         ??ctrlRequestStats_7
   MOV         LR,#+0x2
   LDR         R0,??DataTable17   ;; request
   MLAS        R1,LR,R6,R0
   LDRH        R0,[R1, #+0]
   _BLF        zarlinkCtrlBuffer1Write,zarlinkCtrlBuffer1Write??rA
   ADDS        R6,R6,#+0x1
   B           ??ctrlRequestStats_6
??ctrlRequestStats_7:
   MOV         R0,#+0x1
   _BLF        zarlinkCommandWrite,zarlinkCommandWrite??rA
   MOV         R0,#+0x0
??ctrlRequestStats_5:
   LDMIA       SP!,{R4-R8,PC}     ;; return
        CFI EndBlock cfiBlock0

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock1 Using cfiCommon0
        CFI Function ctrlClearStats
   CODE32      
ctrlClearStats:
   STMDB       SP!,{R4-R8,LR}     ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI R8 Frame(CFA, -8)
        CFI R7 Frame(CFA, -12)
        CFI R6 Frame(CFA, -16)
        CFI R5 Frame(CFA, -20)
        CFI R4 Frame(CFA, -24)
        CFI CFA R13+24
   MOV         R4,R0
   MOV         R5,R1
   MOV         R0,#+0x0
   MOV         R6,R0
??ctrlClearStats_0:
   CMP         R6,#+0x8
   BGE         ??ctrlClearStats_1
   LDR         R1,??DataTable17   ;; request
   MOV         R2,#+0x0
   STRB        R2,[R6, +R1]
   ADDS        R6,R6,#+0x1
   B           ??ctrlClearStats_0
??ctrlClearStats_1:
   LDR         R3,??DataTable17   ;; request
   MOV         R12,#+0x28
   STRB        R12,[R3, #+0]
   LDR         LR,??DataTable17   ;; request
   MOV         R0,#+0x0
   STRB        R0,[LR, #+1]
   MOV         R1,#+0x8
   MLAS        R2,R1,R4,R5
   MOV         R3,R2, LSL #+20
   MOVS        R3,R3, LSR #+20
   MOV         R8,R3
   LDR         R12,??DataTable17  ;; request
   MOV         LR,R8
   STRB        LR,[R12, #+2]
   LDR         R0,??DataTable17   ;; request
   MOV         R1,R8
   MOV         R1,R1, LSL #+16
   MOVS        R1,R1, LSR #+16
   MOV         R2,R1, LSR #+8
   STRB        R2,[R0, #+3]
   LDR         R3,??DataTable17   ;; request
   MOV         R12,R8, LSR #+16
   STRB        R12,[R3, #+4]
   LDR         LR,??DataTable17   ;; request
   MOV         R0,#+0x1
   STRB        R0,[LR, #+5]
   LDR         R1,??DataTable17   ;; request
   MOV         R2,R4
   MOV         R3,#+0x8
   MOV         R12,R5
   MLAS        LR,R3,R2,R12
   STRB        LR,[R1, #+6]
   MOV         R0,#+0x0
   MOV         R6,R0
??ctrlClearStats_2:
   MOV         R1,#+0x10
   ORR         R1,R1,#+0x2700
   CMP         R6,R1
   BGE         ??ctrlClearStats_3
   _BLF        zarlinkStatusRead,zarlinkStatusRead??rA
   MOV         R7,R0
   MOV         R2,R7
   ANDS        R2,R2,#+0xFF       ;; Zero extend
   TST         R2,#+0x1
   BNE         ??ctrlClearStats_3
   ADDS        R6,R6,#+0x1
   B           ??ctrlClearStats_2
??ctrlClearStats_3:
   MOV         R3,R7
   ANDS        R3,R3,#+0xFF       ;; Zero extend
   TST         R3,#+0x1
   BNE         ??ctrlClearStats_4
   MVN         R0,#+0x0
   B           ??ctrlClearStats_5
??ctrlClearStats_4:
   MOV         R12,#+0x0
   MOV         R6,R12
??ctrlClearStats_6:
   CMP         R6,#+0x4
   BGE         ??ctrlClearStats_7
   MOV         LR,#+0x2
   LDR         R0,??DataTable17   ;; request
   MLAS        R1,LR,R6,R0
   LDRH        R0,[R1, #+0]
   _BLF        zarlinkCtrlBuffer1Write,zarlinkCtrlBuffer1Write??rA
   ADDS        R6,R6,#+0x1
   B           ??ctrlClearStats_6
??ctrlClearStats_7:
   MOV         R2,#+0x0
   MOV         R6,R2
??ctrlClearStats_8:
   CMP         R6,#+0x4
   BGE         ??ctrlClearStats_9
   MOV         R0,#+0x0
   _BLF        zarlinkCtrlBuffer1Write,zarlinkCtrlBuffer1Write??rA
   ADDS        R6,R6,#+0x1
   B           ??ctrlClearStats_8
??ctrlClearStats_9:
   MOV         R0,#+0x1
   _BLF        zarlinkCommandWrite,zarlinkCommandWrite??rA
   MOV         R0,#+0x0
??ctrlClearStats_5:
   LDMIA       SP!,{R4-R8,PC}     ;; return
        CFI EndBlock cfiBlock1

        RSEG CODE:CODE:NOROOT(2)
   DATA        
??DataTable17:
   DC32        request

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock2 Using cfiCommon0
        CFI Function ctrlRetrieveStats
   CODE32      
ctrlRetrieveStats:
   STMDB       SP!,{R4-R6,LR}     ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI R6 Frame(CFA, -8)
        CFI R5 Frame(CFA, -12)
        CFI R4 Frame(CFA, -16)
        CFI CFA R13+16
   MOV         R4,R0
   CMP         R4,#+0x0
   BNE         ??ctrlRetrieveStats_0
   MVN         R0,#+0x0
   B           ??ctrlRetrieveStats_1
??ctrlRetrieveStats_0:
   MOV         R0,#+0x0
   MOV         R5,R0
??ctrlRetrieveStats_2:
   CMP         R5,#+0x3E8
   BGE         ??ctrlRetrieveStats_3
   _BLF        zarlinkInterruptRead,zarlinkInterruptRead??rA
   MOV         R6,R0
   MOV         R1,R6
   ANDS        R1,R1,#+0xFF       ;; Zero extend
   TST         R1,#+0x4
   BNE         ??ctrlRetrieveStats_3
   ADDS        R5,R5,#+0x1
   B           ??ctrlRetrieveStats_2
??ctrlRetrieveStats_3:
   MOV         R2,R6
   ANDS        R2,R2,#+0xFF       ;; Zero extend
   TST         R2,#+0x4
   BEQ         ??ctrlRetrieveStats_4
   MOV         R3,#+0x0
   MOV         R5,R3
??ctrlRetrieveStats_5:
   CMP         R5,#+0x14
   BGE         ??ctrlRetrieveStats_6
   _BLF        zarlinkCtrlBuffer2Read,zarlinkCtrlBuffer2Read??rA
   MOV         R12,#+0x2
   MLAS        LR,R12,R5,R4
   STRH        R0,[LR, #+0]
   ADDS        R5,R5,#+0x1
   B           ??ctrlRetrieveStats_5
??ctrlRetrieveStats_6:
   MOV         R0,#+0x4
   _BLF        zarlinkCommandWrite,zarlinkCommandWrite??rA
   MOV         R0,#+0x0
   B           ??ctrlRetrieveStats_1
??ctrlRetrieveStats_4:
   MVN         R0,#+0x0
??ctrlRetrieveStats_1:
   LDMIA       SP!,{R4-R6,PC}     ;; return
        CFI EndBlock cfiBlock2

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock3 Using cfiCommon0
        CFI Function ctrlClearPort
   CODE32      
ctrlClearPort:
   STMDB       SP!,{R4-R6,LR}     ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI R6 Frame(CFA, -8)
        CFI R5 Frame(CFA, -12)
        CFI R4 Frame(CFA, -16)
        CFI CFA R13+16
   MOV         R4,R0
   MOV         R0,#+0x0
   MOV         R6,R0
   MOV         R1,#+0x0
   MOV         R5,R1
??ctrlClearPort_0:
   CMP         R5,#+0x8
   BGE         ??ctrlClearPort_1
   CMP         R6,#+0x0
   BNE         ??ctrlClearPort_1
   MOV         R1,R5
   MOV         R0,R4
   BL          ctrlClearStats
   MOV         R6,R0
   ADDS        R5,R5,#+0x1
   B           ??ctrlClearPort_0
??ctrlClearPort_1:
   MOV         R0,R6
   LDMIA       SP!,{R4-R6,PC}     ;; return
        CFI EndBlock cfiBlock3

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock4 Using cfiCommon0
        CFI Function ctrlClearAll
   CODE32      
ctrlClearAll:
   STMDB       SP!,{R4,R5,LR}     ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI R5 Frame(CFA, -8)
        CFI R4 Frame(CFA, -12)
        CFI CFA R13+12
   MOV         R0,#+0x0
   MOV         R5,R0
   MOV         R1,#+0x0
   MOV         R4,R1
??ctrlClearAll_0:
   CMP         R4,#+0xA
   BGE         ??ctrlClearAll_1
   CMP         R5,#+0x0
   BNE         ??ctrlClearAll_1
   MOV         R0,R4
   BL          ctrlClearPort
   MOV         R5,R0
   ADDS        R4,R4,#+0x1
   B           ??ctrlClearAll_0
??ctrlClearAll_1:
   MOV         R0,R5
   LDMIA       SP!,{R4,R5,PC}     ;; return
        CFI EndBlock cfiBlock4

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock5 Using cfiCommon0
        CFI Function decodeStats
   CODE32      
decodeStats:
   STMDB       SP!,{R4}           ;; Push
        CFI R4 Frame(CFA, -4)
        CFI CFA R13+4
   MOV         R3,R0
   MVN         R12,#+0x0
   MOV         R0,R12
   CMP         R3,#+0x0
   BEQ         ??decodeStats_0
??decodeStats_1:
   CMP         R1,#+0x0
   BLT         ??decodeStats_2
   CMP         R1,#+0xB
   BLT         ??decodeStats_3
??decodeStats_2:
   B           ??decodeStats_0
??decodeStats_3:
   CMP         R2,#+0x0
   BLT         ??decodeStats_4
   CMP         R2,#+0x9
   BLT         ??decodeStats_5
??decodeStats_4:
   B           ??decodeStats_0
??decodeStats_5:
   MOV         R12,R2
   CMP         R12,#+0x7
   BHI         ??decodeStats_6
   ADR         R4,`?<Jumptable for decodeStats>_0`
   LDRB        R4,[R4, R12]
   ADD         PC,PC,R4, LSL #+2
   DATA        
`?<Jumptable for decodeStats>_0`:
   DC8         +0x1,+0x18,+0x30,+0x3E
   DC8         +0x5F,+0x7F,+0xA1,+0xC9
   CODE32      
??decodeStats_7:
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDR         R12,[R3, #+0]
   STR         R12,[R4, #+0]
   ADDS        R3,R3,#+0x4
   MOV         R4,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        R12,R4,R1,R12
   LDR         R4,[R3, #+0]
   MOV         R4,R4, LSL #+20
   MOVS        R4,R4, LSR #+20
   STR         R4,[R12, #+4]
   ADDS        R3,R3,#+0x3
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDRB        R12,[R3, #+0]
   ANDS        R12,R12,#+0xFF     ;; Zero extend
   STR         R12,[R4, #+8]
   MOV         R4,#+0x0
   MOV         R0,R4
   B           ??decodeStats_6
??decodeStats_8:
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDRH        R12,[R3, #+0]
   MOV         R12,R12, LSL #+16
   MOVS        R12,R12, LSR #+16
   STR         R12,[R4, #+12]
   ADDS        R3,R3,#+0x2
   MOV         R4,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        R12,R4,R1,R12
   LDRH        R4,[R3, #+0]
   MOV         R4,R4, LSL #+16
   MOVS        R4,R4, LSR #+16
   STR         R4,[R12, #+16]
   ADDS        R3,R3,#+0x2
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDR         R12,[R3, #+0]
   STR         R12,[R4, #+20]
   MOV         R4,#+0x0
   MOV         R0,R4
   B           ??decodeStats_6
??decodeStats_9:
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDR         R12,[R3, #+0]
   STR         R12,[R4, #+24]
   ADDS        R3,R3,#+0x4
   MOV         R4,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        R12,R4,R1,R12
   LDR         R4,[R3, #+0]
   STR         R4,[R12, #+28]
   MOV         R12,#+0x0
   MOV         R0,R12
   B           ??decodeStats_6
??decodeStats_10:
   MOV         R4,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        R12,R4,R1,R12
   LDR         R4,[R3, #+0]
   MOV         R4,R4, LSL #+20
   MOVS        R4,R4, LSR #+20
   STR         R4,[R12, #+32]
   ADDS        R3,R3,#+0x3
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDRB        R12,[R3, #+0]
   ANDS        R12,R12,#+0xFF     ;; Zero extend
   STR         R12,[R4, #+36]
   ADDS        R3,R3,#+0x1
   MOV         R4,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        R12,R4,R1,R12
   LDRH        R4,[R3, #+0]
   MOV         R4,R4, LSL #+16
   MOVS        R4,R4, LSR #+16
   STR         R4,[R12, #+40]
   ADDS        R3,R3,#+0x2
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDRH        R12,[R3, #+0]
   MOV         R12,R12, LSL #+16
   MOVS        R12,R12, LSR #+16
   STR         R12,[R4, #+44]
   MOV         R4,#+0x0
   MOV         R0,R4
   B           ??decodeStats_6
??decodeStats_11:
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDR         R12,[R3, #+0]
   MOV         R12,R12, LSL #+20
   MOVS        R12,R12, LSR #+20
   STR         R12,[R4, #+48]
   ADDS        R3,R3,#+0x3
   MOV         R4,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        R12,R4,R1,R12
   LDRB        R4,[R3, #+0]
   ANDS        R4,R4,#+0xFF       ;; Zero extend
   STR         R4,[R12, #+52]
   ADDS        R3,R3,#+0x1
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDR         R12,[R3, #+0]
   MOV         R12,R12, LSL #+20
   MOVS        R12,R12, LSR #+20
   STR         R12,[R4, #+56]
   ADDS        R3,R3,#+0x3
   MOV         R4,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        R12,R4,R1,R12
   LDRB        R4,[R3, #+0]
   ANDS        R4,R4,#+0xFF       ;; Zero extend
   STR         R4,[R12, #+60]
   MOV         R12,#+0x0
   MOV         R0,R12
   B           ??decodeStats_6
??decodeStats_12:
   MOV         R4,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        R12,R4,R1,R12
   LDRH        R4,[R3, #+0]
   MOV         R4,R4, LSL #+16
   MOVS        R4,R4, LSR #+16
   STR         R4,[R12, #+64]
   ADDS        R3,R3,#+0x2
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDRH        R12,[R3, #+0]
   MOV         R12,R12, LSL #+16
   MOVS        R12,R12, LSR #+16
   STR         R12,[R4, #+68]
   ADDS        R3,R3,#+0x2
   MOV         R4,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        R12,R4,R1,R12
   LDRH        R4,[R3, #+0]
   MOV         R4,R4, LSL #+16
   MOVS        R4,R4, LSR #+16
   STR         R4,[R12, #+72]
   ADDS        R3,R3,#+0x2
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDRH        R12,[R3, #+0]
   MOV         R12,R12, LSL #+16
   MOVS        R12,R12, LSR #+16
   STR         R12,[R4, #+76]
   MOV         R4,#+0x0
   MOV         R0,R4
   B           ??decodeStats_6
??decodeStats_13:
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDRH        R12,[R3, #+0]
   MOV         R12,R12, LSL #+16
   MOVS        R12,R12, LSR #+16
   STR         R12,[R4, #+80]
   ADDS        R3,R3,#+0x2
   MOV         R4,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        R12,R4,R1,R12
   LDRB        R4,[R3, #+0]
   ANDS        R4,R4,#+0xFF       ;; Zero extend
   STR         R4,[R12, #+84]
   ADDS        R3,R3,#+0x1
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDRB        R12,[R3, #+0]
   ANDS        R12,R12,#+0xFF     ;; Zero extend
   STR         R12,[R4, #+88]
   ADDS        R3,R3,#+0x1
   MOV         R4,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        R12,R4,R1,R12
   LDRH        R4,[R3, #+0]
   MOV         R4,R4, LSL #+16
   MOVS        R4,R4, LSR #+16
   STR         R4,[R12, #+92]
   ADDS        R3,R3,#+0x2
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDRH        R12,[R3, #+0]
   MOV         R12,R12, LSL #+16
   MOVS        R12,R12, LSR #+16
   STR         R12,[R4, #+96]
   MOV         R4,#+0x0
   MOV         R0,R4
   B           ??decodeStats_6
??decodeStats_14:
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDRH        R12,[R3, #+0]
   MOV         R12,R12, LSL #+16
   MOVS        R12,R12, LSR #+16
   STR         R12,[R4, #+100]
   ADDS        R3,R3,#+0x2
   MOV         R4,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        R12,R4,R1,R12
   LDRH        R4,[R3, #+0]
   MOV         R4,R4, LSL #+16
   MOVS        R4,R4, LSR #+16
   STR         R4,[R12, #+104]
   ADDS        R3,R3,#+0x2
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDRH        R12,[R3, #+0]
   MOV         R12,R12, LSL #+16
   MOVS        R12,R12, LSR #+16
   STR         R12,[R4, #+108]
   ADDS        R3,R3,#+0x2
   MOV         R4,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        R12,R4,R1,R12
   LDRB        R4,[R3, #+0]
   ANDS        R4,R4,#+0xFF       ;; Zero extend
   STR         R4,[R12, #+112]
   ADDS        R3,R3,#+0x1
   MOV         R12,#+0x78
   LDR         R4,??DataTable102  ;; portStats
   MLAS        R4,R12,R1,R4
   LDRB        R12,[R3, #+0]
   ANDS        R12,R12,#+0xFF     ;; Zero extend
   STR         R12,[R4, #+116]
   MOV         R4,#+0x0
   MOV         R0,R4
??decodeStats_6:
??decodeStats_0:
   LDMIA       SP!,{R4}           ;; Pop
        CFI R4 SameValue
        CFI CFA R13+0
   MOV         PC,LR              ;; return
        CFI EndBlock cfiBlock5

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock6 Using cfiCommon0
        CFI Function zarlinkRmonGet
   CODE32      
zarlinkRmonGet:
   STMDB       SP!,{R4-R6,LR}     ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI R6 Frame(CFA, -8)
        CFI R5 Frame(CFA, -12)
        CFI R4 Frame(CFA, -16)
        CFI CFA R13+16
   MOV         R4,R0
   MOV         R0,#+0x0
   MOV         R6,R0
   MOV         R1,#+0x0
   MOV         R5,R1
??zarlinkRmonGet_0:
   CMP         R5,#+0x8
   BGE         ??zarlinkRmonGet_1
   CMP         R6,#+0x0
   BNE         ??zarlinkRmonGet_1
   MOV         R1,R5
   MOV         R0,R4
   BL          ctrlRequestStats
   MOV         R6,R0
   CMP         R6,#+0x0
   BEQ         ??zarlinkRmonGet_2
   MVN         R0,#+0x0
   B           ??zarlinkRmonGet_3
??zarlinkRmonGet_2:
   LDR         R0,??zarlinkRmonGet_4  ;; replyData16
   BL          ctrlRetrieveStats
   MOV         R6,R0
   CMP         R6,#+0x0
   BEQ         ??zarlinkRmonGet_5
   MVN         R0,#+0x1
   B           ??zarlinkRmonGet_3
??zarlinkRmonGet_5:
   MOV         R2,R5
   MOV         R1,R4
   LDR         R3,??zarlinkRmonGet_4  ;; replyData16
   ADDS        R0,R3,#+0x8
   BL          decodeStats
   MOV         R6,R0
   CMP         R6,#+0x0
   BEQ         ??zarlinkRmonGet_6
   MVN         R0,#+0x2
   B           ??zarlinkRmonGet_3
??zarlinkRmonGet_6:
   ADDS        R5,R5,#+0x1
   B           ??zarlinkRmonGet_0
??zarlinkRmonGet_1:
   MOV         R0,#+0x0
??zarlinkRmonGet_3:
   LDMIA       SP!,{R4-R6,PC}     ;; return
   DATA        
??zarlinkRmonGet_4:
   DC32        replyData16
        CFI EndBlock cfiBlock6

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock7 Using cfiCommon0
        CFI Function statsHandler
   CODE32      
statsHandler:
   STMDB       SP!,{R4-R9,LR}     ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI R9 Frame(CFA, -8)
        CFI R8 Frame(CFA, -12)
        CFI R7 Frame(CFA, -16)
        CFI R6 Frame(CFA, -20)
        CFI R5 Frame(CFA, -24)
        CFI R4 Frame(CFA, -28)
        CFI CFA R13+28
   SUB         SP,SP,#+0x4
        CFI CFA R13+32
   MOV         R6,R0
   MOV         R7,R1
   MOV         R8,R2
   MVN         R0,#+0x0
   MOV         R9,R0
   CMP         R6,#+0x2
   BGE         ??statsHandler_0
   MOV         R0,R9
   B           ??statsHandler_1
??statsHandler_0:
   MOV         R0,SP
   _BLF        clicharGetOutputBuffer,clicharGetOutputBuffer??rA
   MOV         R4,R0
   MOV         R2,#+0xA
   MOV         R1,#+0x0
   LDR         R0,[R7, #+4]
   _BLF        strtol,strtol??rA
   MOV         R5,R0
   MOV         R0,R5
   BL          zarlinkRmonGet
   MOV         R9,R0
   CMP         R9,#+0x0
   BNE         ??statsHandler_2
   MOV         R2,R5
   LDR         R1,??statsHandler_3  ;; `?<Constant "--- Zarlink port stat...">`
   MOV         R0,R4
   _BLF        sprintf,sprintf??rA
   LDR         R1,[SP, #+0]
   MOV         R0,R4
   _BLF        clicharSendOutputBuffer,clicharSendOutputBuffer??rA
   MOV         R2,#+0x78
   LDR         R3,??DataTable102  ;; portStats
   MLAS        R12,R2,R5,R3
   LDR         LR,[R12, #+8]
   STMDB       SP!,{LR}           ;; Push
        CFI CFA R13+36
   MOV         R0,#+0x78
   LDR         R1,??DataTable102  ;; portStats
   MLAS        R2,R0,R5,R1
   LDR         R3,[R2, #+4]
   MOV         R12,#+0x78
   LDR         LR,??DataTable102  ;; portStats
   MLAS        R0,R12,R5,LR
   LDR         R2,[R0, #+0]
   LDR         R1,??statsHandler_3+4  ;; `?<Constant "  TX: bytes[%u]  unic...">`
   MOV         R0,R4
   _BLF        sprintf,sprintf??rA
   ADD         SP,SP,#+0x4        ;; stack cleaning
        CFI CFA R13+32
   LDR         R1,[SP, #+0]
   MOV         R0,R4
   _BLF        clicharSendOutputBuffer,clicharSendOutputBuffer??rA
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R12,R1,R5,R2
   LDR         R1,[R12, #+32]
   MOV         LR,#+0x78
   LDR         R0,??DataTable102  ;; portStats
   MLAS        R3,LR,R5,R0
   LDR         R0,[R3, #+28]
   STMDB       SP!,{R0,R1}        ;; Push
        CFI CFA R13+40
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R12,R1,R5,R2
   LDR         R3,[R12, #+24]
   MOV         LR,#+0x78
   LDR         R0,??DataTable102  ;; portStats
   MLAS        R1,LR,R5,R0
   LDR         R2,[R1, #+20]
   LDR         R1,??statsHandler_3+8  ;; `?<Constant "  RX: bytes[%u]  fram...">`
   MOV         R0,R4
   _BLF        sprintf,sprintf??rA
   ADD         SP,SP,#+0x8        ;; stack cleaning
        CFI CFA R13+32
   LDR         R1,[SP, #+0]
   MOV         R0,R4
   _BLF        clicharSendOutputBuffer,clicharSendOutputBuffer??rA
   MOV         R2,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        LR,R2,R5,R12
   LDR         R1,[LR, #+96]
   MOV         R0,#+0x78
   LDR         R3,??DataTable102  ;; portStats
   MLAS        R2,R0,R5,R3
   LDR         R0,[R2, #+92]
   STMDB       SP!,{R0,R1}        ;; Push
        CFI CFA R13+40
   MOV         R1,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        LR,R1,R5,R12
   LDR         R3,[LR, #+88]
   MOV         R0,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R1,R0,R5,R2
   LDR         R2,[R1, #+84]
   LDR         R1,??statsHandler_3+12  ;; `?<Constant " ERR: align[%u]  runt...">`
   MOV         R0,R4
   _BLF        sprintf,sprintf??rA
   ADD         SP,SP,#+0x8        ;; stack cleaning
        CFI CFA R13+32
   LDR         R1,[SP, #+0]
   MOV         R0,R4
   _BLF        clicharSendOutputBuffer,clicharSendOutputBuffer??rA
   MOV         R12,#+0x78
   LDR         LR,??DataTable102  ;; portStats
   MLAS        R0,R12,R5,LR
   LDR         R3,[R0, #+12]
   MOV         R2,#+0x78
   LDR         R1,??DataTable102  ;; portStats
   MLAS        R12,R2,R5,R1
   LDR         R2,[R12, #+36]
   LDR         R1,??statsHandler_3+16  ;; `?<Constant "FLOW: flowCtrlFramesR...">`
   MOV         R0,R4
   _BLF        sprintf,sprintf??rA
   LDR         R1,[SP, #+0]
   MOV         R0,R4
   _BLF        clicharSendOutputBuffer,clicharSendOutputBuffer??rA
   MOV         LR,#+0x78
   LDR         R0,??DataTable102  ;; portStats
   MLAS        R2,LR,R5,R0
   LDR         R1,[R2, #+60]
   MOV         R12,#+0x78
   LDR         R3,??DataTable102  ;; portStats
   MLAS        LR,R12,R5,R3
   LDR         R0,[LR, #+52]
   STMDB       SP!,{R0,R1}        ;; Push
        CFI CFA R13+40
   MOV         R1,#+0x78
   LDR         R0,??DataTable102  ;; portStats
   MLAS        R2,R1,R5,R0
   LDR         R3,[R2, #+56]
   MOV         R12,#+0x78
   LDR         LR,??DataTable102  ;; portStats
   MLAS        R1,R12,R5,LR
   LDR         R2,[R1, #+48]
   LDR         R1,??statsHandler_3+20  ;; `?<Constant " PKT: len64[%u]  len6...">`
   MOV         R0,R4
   _BLF        sprintf,sprintf??rA
   ADD         SP,SP,#+0x8        ;; stack cleaning
        CFI CFA R13+32
   LDR         R1,[SP, #+0]
   MOV         R0,R4
   _BLF        clicharSendOutputBuffer,clicharSendOutputBuffer??rA
   MOV         R0,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R12,R0,R5,R2
   LDR         R1,[R12, #+76]
   MOV         LR,#+0x78
   LDR         R3,??DataTable102  ;; portStats
   MLAS        R0,LR,R5,R3
   LDR         R0,[R0, #+72]
   STMDB       SP!,{R0,R1}        ;; Push
        CFI CFA R13+40
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R12,R1,R5,R2
   LDR         R3,[R12, #+68]
   MOV         LR,#+0x78
   LDR         R0,??DataTable102  ;; portStats
   MLAS        R1,LR,R5,R0
   LDR         R2,[R1, #+64]
   LDR         R1,??statsHandler_3+24  ;; `?<Constant " LEN: 128-255[%u]  25...">`
   MOV         R0,R4
   _BLF        sprintf,sprintf??rA
   ADD         SP,SP,#+0x8        ;; stack cleaning
        CFI CFA R13+32
   LDR         R1,[SP, #+0]
   MOV         R0,R4
   _BLF        clicharSendOutputBuffer,clicharSendOutputBuffer??rA
   MOV         R2,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        LR,R2,R5,R12
   LDR         R1,[LR, #+112]
   MOV         R0,#+0x78
   LDR         R3,??DataTable102  ;; portStats
   MLAS        R2,R0,R5,R3
   LDR         R0,[R2, #+108]
   STMDB       SP!,{R0,R1}        ;; Push
        CFI CFA R13+40
   MOV         R1,#+0x78
   LDR         R12,??DataTable102  ;; portStats
   MLAS        LR,R1,R5,R12
   LDR         R3,[LR, #+104]
   MOV         R0,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R1,R0,R5,R2
   LDR         R2,[R1, #+80]
   LDR         R1,??statsHandler_3+28  ;; `?<Constant "OOPS: fragment[%u]  d...">`
   MOV         R0,R4
   _BLF        sprintf,sprintf??rA
   ADD         SP,SP,#+0x8        ;; stack cleaning
        CFI CFA R13+32
   LDR         R1,[SP, #+0]
   MOV         R0,R4
   _BLF        clicharSendOutputBuffer,clicharSendOutputBuffer??rA
??statsHandler_2:
   MOV         R0,R9
??statsHandler_1:
   ADD         SP,SP,#+0x4        ;; stack cleaning
        CFI CFA R13+28
   LDMIA       SP!,{R4-R9,PC}     ;; return
   DATA        
??statsHandler_3:
   DC32        `?<Constant "--- Zarlink port stat...">`
   DC32        `?<Constant "  TX: bytes[%u]  unic...">`
   DC32        `?<Constant "  RX: bytes[%u]  fram...">`
   DC32        `?<Constant " ERR: align[%u]  runt...">`
   DC32        `?<Constant "FLOW: flowCtrlFramesR...">`
   DC32        `?<Constant " PKT: len64[%u]  len6...">`
   DC32        `?<Constant " LEN: 128-255[%u]  25...">`
   DC32        `?<Constant "OOPS: fragment[%u]  d...">`
        CFI EndBlock cfiBlock7

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock8 Using cfiCommon0
        CFI Function clearLocalStatsPort
   CODE32      
clearLocalStatsPort:
   CMP         R0,#+0x0
   BLT         ??clearLocalStatsPort_0
   CMP         R0,#+0xA
   BGE         ??clearLocalStatsPort_0
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+0]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+4]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+8]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+12]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+16]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+20]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+24]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+28]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+32]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+36]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+40]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+44]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+48]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+52]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+56]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+60]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+64]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+68]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+72]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+76]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+80]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+84]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+88]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+92]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+96]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+100]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+104]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+108]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+112]
   MOV         R1,#+0x78
   LDR         R2,??DataTable102  ;; portStats
   MLAS        R3,R1,R0,R2
   MOV         R12,#+0x0
   STR         R12,[R3, #+116]
??clearLocalStatsPort_0:
   MOV         PC,LR              ;; return
        CFI EndBlock cfiBlock8

        RSEG CODE:CODE:NOROOT(2)
   DATA        
??DataTable102:
   DC32        portStats

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock9 Using cfiCommon0
        CFI Function clearLocalStatsAll
   CODE32      
clearLocalStatsAll:
   STMDB       SP!,{R4,LR}        ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI R4 Frame(CFA, -8)
        CFI CFA R13+8
   MOV         R0,#+0x0
   MOV         R4,R0
??clearLocalStatsAll_0:
   CMP         R4,#+0xA
   BGE         ??clearLocalStatsAll_1
   MOV         R0,R4
   BL          clearLocalStatsPort
   ADDS        R4,R4,#+0x1
   B           ??clearLocalStatsAll_0
??clearLocalStatsAll_1:
   LDMIA       SP!,{R4,PC}        ;; return
        CFI EndBlock cfiBlock9

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock10 Using cfiCommon0
        CFI Function clearHandler
   CODE32      
clearHandler:
   STMDB       SP!,{R4-R8,LR}     ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI R8 Frame(CFA, -8)
        CFI R7 Frame(CFA, -12)
        CFI R6 Frame(CFA, -16)
        CFI R5 Frame(CFA, -20)
        CFI R4 Frame(CFA, -24)
        CFI CFA R13+24
   SUB         SP,SP,#+0x8
        CFI CFA R13+32
   MOV         R4,R0
   MOV         R5,R1
   MOV         R6,R2
   MVN         R0,#+0x0
   MOV         R7,R0
   CMP         R4,#+0x2
   BNE         ??clearHandler_0
   MOV         R2,#+0xA
   MOV         R1,#+0x0
   LDR         R0,[R5, #+4]
   _BLF        strtol,strtol??rA
   MOV         R8,R0
   MOV         R0,R8
   BL          clearLocalStatsPort
   MOV         R0,R8
   BL          ctrlClearPort
   MOV         R7,R0
   B           ??clearHandler_1
??clearHandler_0:
   CMP         R4,#+0x1
   BNE         ??clearHandler_1
   BL          clearLocalStatsAll
   BL          ctrlClearAll
   MOV         R7,R0
??clearHandler_1:
   MOV         R0,R7
   ADD         SP,SP,#+0x8        ;; stack cleaning
        CFI CFA R13+24
   LDMIA       SP!,{R4-R8,PC}     ;; return
        CFI EndBlock cfiBlock10

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock11 Using cfiCommon0
        CFI Function zarlinkRmonInit
   CODE32      
zarlinkRmonInit:
   STMDB       SP!,{LR}           ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI CFA R13+4
   LDR         R2,??zarlinkRmonInit_0  ;; `?<Constant "stats [port] - retrie...">`
   LDR         R1,??zarlinkRmonInit_0+4  ;; statsHandler
   LDR         R0,??zarlinkRmonInit_0+8  ;; `?<Constant "stats">`
   _BLF        cliRegisterCommand,cliRegisterCommand??rA
   LDR         R2,??zarlinkRmonInit_0+12  ;; `?<Constant "clear [port] - clear ...">`
   LDR         R1,??zarlinkRmonInit_0+16  ;; clearHandler
   LDR         R0,??zarlinkRmonInit_0+20  ;; `?<Constant "clear">`
   _BLF        cliRegisterCommand,cliRegisterCommand??rA
   BL          clearLocalStatsAll
   BL          ctrlClearAll
   LDMIA       SP!,{PC}           ;; return
   DATA        
??zarlinkRmonInit_0:
   DC32        `?<Constant "stats [port] - retrie...">`
   DC32        statsHandler
   DC32        `?<Constant "stats">`
   DC32        `?<Constant "clear [port] - clear ...">`
   DC32        clearHandler
   DC32        `?<Constant "clear">`
        CFI EndBlock cfiBlock11

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock12 Using cfiCommon0
        CFI NoFunction
   CODE32      
zarlinkStatusRead??rA:
   LDR         R12,??Subroutine0_0  ;; zarlinkStatusRead
   MOV         PC,R12
   DATA        
??Subroutine0_0:
   DC32        zarlinkStatusRead
        CFI EndBlock cfiBlock12

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock13 Using cfiCommon0
        CFI NoFunction
   CODE32      
zarlinkCtrlBuffer1Write??rA:
   LDR         R12,??Subroutine1_0  ;; zarlinkCtrlBuffer1Write
   MOV         PC,R12
   DATA        
??Subroutine1_0:
   DC32        zarlinkCtrlBuffer1Write
        CFI EndBlock cfiBlock13

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock14 Using cfiCommon0
        CFI NoFunction
   CODE32      
zarlinkCommandWrite??rA:
   LDR         R12,??Subroutine2_0  ;; zarlinkCommandWrite
   MOV         PC,R12
   DATA        
??Subroutine2_0:
   DC32        zarlinkCommandWrite
        CFI EndBlock cfiBlock14

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock15 Using cfiCommon0
        CFI NoFunction
   CODE32      
zarlinkInterruptRead??rA:
   LDR         R12,??Subroutine3_0  ;; zarlinkInterruptRead
   MOV         PC,R12
   DATA        
??Subroutine3_0:
   DC32        zarlinkInterruptRead
        CFI EndBlock cfiBlock15

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock16 Using cfiCommon0
        CFI NoFunction
   CODE32      
zarlinkCtrlBuffer2Read??rA:
   LDR         R12,??Subroutine4_0  ;; zarlinkCtrlBuffer2Read
   MOV         PC,R12
   DATA        
??Subroutine4_0:
   DC32        zarlinkCtrlBuffer2Read
        CFI EndBlock cfiBlock16

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock17 Using cfiCommon0
        CFI NoFunction
   CODE32      
clicharGetOutputBuffer??rA:
   LDR         R12,??Subroutine5_0  ;; clicharGetOutputBuffer
   MOV         PC,R12
   DATA        
??Subroutine5_0:
   DC32        clicharGetOutputBuffer
        CFI EndBlock cfiBlock17

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock18 Using cfiCommon0
        CFI NoFunction
   CODE32      
strtol??rA:
   LDR         R12,??Subroutine6_0  ;; strtol
   MOV         PC,R12
   DATA        
??Subroutine6_0:
   DC32        strtol
        CFI EndBlock cfiBlock18

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock19 Using cfiCommon0
        CFI NoFunction
   CODE32      
sprintf??rA:
   LDR         R12,??Subroutine7_0  ;; sprintf
   MOV         PC,R12
   DATA        
??Subroutine7_0:
   DC32        sprintf
        CFI EndBlock cfiBlock19

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock20 Using cfiCommon0
        CFI NoFunction
   CODE32      
clicharSendOutputBuffer??rA:
   LDR         R12,??Subroutine8_0  ;; clicharSendOutputBuffer
   MOV         PC,R12
   DATA        
??Subroutine8_0:
   DC32        clicharSendOutputBuffer
        CFI EndBlock cfiBlock20

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock21 Using cfiCommon0
        CFI NoFunction
   CODE32      
cliRegisterCommand??rA:
   LDR         R12,??Subroutine9_0  ;; cliRegisterCommand
   MOV         PC,R12
   DATA        
??Subroutine9_0:
   DC32        cliRegisterCommand
        CFI EndBlock cfiBlock21

        RSEG INITTAB:CODE:ROOT(2)
   DATA
?init?tab?DATA_Z:
   DCD      sfe(DATA_Z) - sfb(DATA_Z), sfb(DATA_Z), sfb(DATA_Z)

        RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant "--- Zarlink port stat...">`:
        DC8 "--- Zarlink port stats for port [%d] ---\015\012"
        DC8 0

        RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant "  TX: bytes[%u]  unic...">`:
        DC8 20H, 20H, 54H, 58H, 3AH, 20H, 62H, 79H
        DC8 74H, 65H, 73H, 5BH, 25H, 75H, 5DH, 20H
        DC8 20H, 75H, 6EH, 69H, 63H, 61H, 73H, 74H
        DC8 46H, 72H, 61H, 6DH, 65H, 5BH, 25H, 75H
        DC8 5DH, 20H, 20H, 66H, 72H, 61H, 6DH, 65H
        DC8 54H, 78H, 46H, 61H, 69H, 6CH, 5BH, 25H
        DC8 75H, 5DH, 0DH, 0AH, 0
        DC8 0, 0, 0

        RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant "  RX: bytes[%u]  fram...">`:
        DC8 20H, 20H, 52H, 58H, 3AH, 20H, 62H, 79H
        DC8 74H, 65H, 73H, 5BH, 25H, 75H, 5DH, 20H
        DC8 20H, 66H, 72H, 61H, 6DH, 65H, 73H, 5BH
        DC8 25H, 75H, 5DH, 20H, 20H, 74H, 6FH, 74H
        DC8 61H, 6CH, 42H, 79H, 74H, 65H, 73H, 5BH
        DC8 25H, 75H, 5DH, 20H, 20H, 74H, 6FH, 74H
        DC8 61H, 6CH, 46H, 72H, 61H, 6DH, 65H, 73H
        DC8 5BH, 25H, 75H, 5DH, 0DH, 0AH, 0
        DC8 0

        RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant " ERR: align[%u]  runt...">`:
        DC8 20H, 45H, 52H, 52H, 3AH, 20H, 61H, 6CH
        DC8 69H, 67H, 6EH, 5BH, 25H, 75H, 5DH, 20H
        DC8 20H, 72H, 75H, 6EH, 74H, 5BH, 25H, 75H
        DC8 5DH, 20H, 20H, 63H, 72H, 63H, 5BH, 25H
        DC8 75H, 5DH, 20H, 20H, 73H, 68H, 6FH, 72H
        DC8 74H, 45H, 76H, 65H, 6EH, 74H, 5BH, 25H
        DC8 75H, 5DH, 0DH, 0AH, 0
        DC8 0, 0, 0

        RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant "FLOW: flowCtrlFramesR...">`:
        DC8 "FLOW: flowCtrlFramesRecv[%u]  flowCtrlSent[%u]\015\012"
        DC8 0, 0, 0

        RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant " PKT: len64[%u]  len6...">`:
        DC8 20H, 50H, 4BH, 54H, 3AH, 20H, 6CH, 65H
        DC8 6EH, 36H, 34H, 5BH, 25H, 75H, 5DH, 20H
        DC8 20H, 6CH, 65H, 6EH, 36H, 35H, 2DH, 31H
        DC8 32H, 37H, 5BH, 25H, 75H, 5DH, 20H, 20H
        DC8 6AH, 61H, 62H, 62H, 65H, 72H, 5BH, 25H
        DC8 75H, 5DH, 20H, 20H, 6FH, 76H, 65H, 72H
        DC8 73H, 69H, 7AH, 65H, 5BH, 25H, 75H, 5DH
        DC8 0DH, 0AH, 0
        DC8 0

        RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant " LEN: 128-255[%u]  25...">`:
        DC8 20H, 4CH, 45H, 4EH, 3AH, 20H, 31H, 32H
        DC8 38H, 2DH, 32H, 35H, 35H, 5BH, 25H, 75H
        DC8 5DH, 20H, 20H, 32H, 35H, 36H, 2DH, 35H
        DC8 31H, 31H, 5BH, 25H, 75H, 5DH, 20H, 20H
        DC8 35H, 31H, 32H, 2DH, 31H, 30H, 32H, 33H
        DC8 5BH, 25H, 75H, 5DH, 20H, 20H, 31H, 30H
        DC8 32H, 34H, 2DH, 31H, 35H, 32H, 32H, 5BH
        DC8 25H, 75H, 5DH, 0DH, 0AH, 0
        DC8 0, 0

        RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant "OOPS: fragment[%u]  d...">`:
        DC8 4FH, 4FH, 50H, 53H, 3AH, 20H, 66H, 72H
        DC8 61H, 67H, 6DH, 65H, 6EH, 74H, 5BH, 25H
        DC8 75H, 5DH, 20H, 20H, 64H, 72H, 6FH, 70H
        DC8 70H, 65H, 64H, 5BH, 25H, 75H, 5DH, 20H
        DC8 20H, 66H, 69H, 6CH, 74H, 65H, 72H, 43H
        DC8 6FH, 75H, 6EH, 74H, 5BH, 25H, 75H, 5DH
        DC8 20H, 20H, 64H, 65H, 6CH, 61H, 79H, 45H
        DC8 78H, 63H, 65H, 65H, 64H, 44H, 69H, 73H
        DC8 63H, 61H, 72H, 64H, 5BH, 25H, 75H, 5DH
        DC8 0DH, 0AH, 0
        DC8 0

        RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant "stats">`:
        DC8 "stats"
        DC8 0, 0

        RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant "stats [port] - retrie...">`:
        DC8 73H, 74H, 61H, 74H, 73H, 20H, 5BH, 70H
        DC8 6FH, 72H, 74H, 5DH, 20H, 2DH, 20H, 72H
        DC8 65H, 74H, 72H, 69H, 65H, 76H, 65H, 20H
        DC8 70H, 6FH, 72H, 74H, 20H, 73H, 74H, 61H
        DC8 74H, 69H, 73H, 74H, 69H, 63H, 73H, 20H
        DC8 66H, 72H, 6FH, 6DH, 20H, 73H, 77H, 69H
        DC8 74H, 63H, 68H, 0

        RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant "clear">`:
        DC8 "clear"
        DC8 0, 0

        RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant "clear [port] - clear ...">`:
        DC8 "clear [port] - clear port statistics"
        DC8 0, 0, 0

        END
// 
// 3 928 bytes in segment CODE
//   580 bytes in segment DATA_C
// 1 248 bytes in segment DATA_Z
//    12 bytes in segment INITTAB
// 
// 3 808 bytes of CODE  memory (+ 132 bytes shared)
//   580 bytes of CONST memory
// 1 248 bytes of DATA  memory
//
//Errors: none
//Warnings: 3
