; *************************************************************************** ; copyright : (C) 2025 by Martin Preuss ; email : martin@libchipcard.de ; ; *************************************************************************** ; * This file is part of the project "AqHome". * ; * Please see toplevel file COPYING of that project for license details. * ; *************************************************************************** ; --------------------------------------------------------------------------- ; @routine NETMSG_MemStats_Write @global ; ; @param Y pointer to device to write msg for ; @param X pointer to buffer to write to ; @clobbers R16, R17, R18, R19, R20, R21 NETMSG_MemStats_Write: ldi r16, 0xff st X+, r16 ; dest address ldi r16, 16 ; msg code+src address+14 payload bytes st X+, r16 ; msg len ldi r16, NETMSG_CMD_MEMSTATS st X+, r16 ; msg code ldd r16, Y+NET_IFACE_OFFS_ADDRESS st X+, r16 ; src address ; uid bigcall NETMSG_Common_AddUidToBuffer ; (R16, R18, R19, R20, R21) ; timestamp (0 for now) clr r16 st X+, r16 st X+, r16 st X+, r16 st X+, r16 ; stack used .ifdef MODULES_XRAM lds r20, xramLastAddress lds r21, xramLastAddress+1 st X+, r20 st X+, r21 .else ldi r20, LOW(RAMEND) ldi r21, HIGH(RAMEND) in r17, SPL sub r20, r17 st X+, r20 in r17, SPH sbc r21, r17 st X+, r21 .endif ; current buffers used lds r16, netBuffersUsed st X+, r16 ; max buffers used lds r16, netBuffersMaxUsed st X+, r16 ; no buffer errors ldd r16, Y+NET_IFACE_OFFS_ERR_NOBUF_LOW st X+, r16 ldd r16, Y+NET_IFACE_OFFS_ERR_NOBUF_HIGH st X+, r16 sbiw xh:xl, 18 ; go back to beginning of message (1 byte dst addr, 1 byte length, 16 bytes payload) bigcall NETMSG_CalcAndAddChecksumByte ; (R16, R17, R18, R19, R20, X) sbiw xh:xl, 19 ; go back to beginning of message (1 byte dst addr, 1 byte length, 16 bytes payload, 1 byte crc) ret ; @end