Files
aqhomecontrol/avr/modules/com2/screen.asm
2024-09-29 15:05:33 +02:00

167 lines
4.2 KiB
NASM

; ***************************************************************************
; copyright : (C) 2024 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. *
; ***************************************************************************
; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; This file contains timer handlers for the address protocol
; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; ***************************************************************************
; code
.cseg
COM2_Screen_RecvStats:
in r15, SREG
push r15
cli
ldi r16, 0
rcall LCD_Fill
ldi r18, 0
ldi r19, 0
rcall LCD_SetCursor
ldi zl, LOW(com2ScreenRecvText_title)
ldi zh, HIGH(com2ScreenRecvText_title)
rcall LCD_PrintFromFlash
ldi r18, 0
ldi r19, 2
rcall LCD_SetCursor
ldi zl, LOW(com2ScreenRecvText_packetsIn)
ldi zh, HIGH(com2ScreenRecvText_packetsIn)
rcall LCD_PrintFromFlash
lds r18, com2StatsPacketsIn
lds r19, com2StatsPacketsIn+1
rcall LCD_PrintHexWord
ldi r16, 32
rcall LCD_PrintChar
lds r18, com2StatsNotForMe
lds r19, com2StatsNotForMe+1
rcall LCD_PrintHexWord
ldi r18, 0
ldi r19, 3
rcall LCD_SetCursor
ldi zl, LOW(com2ScreenRecvText_handled)
ldi zh, HIGH(com2ScreenRecvText_handled)
rcall LCD_PrintFromFlash
lds r18, com2StatsHandled
lds r19, com2StatsHandled+1
rcall LCD_PrintHexWord
ldi r18, 0
ldi r19, 4
rcall LCD_SetCursor
ldi zl, LOW(com2ScreenRecvText_contentErrs)
ldi zh, HIGH(com2ScreenRecvText_contentErrs)
rcall LCD_PrintFromFlash
lds r18, com2StatsContentError
lds r19, com2StatsContentError+1
rcall LCD_PrintHexWord
ldi r18, 0
ldi r19, 5
rcall LCD_SetCursor
ldi zl, LOW(com2ScreenRecvText_IoErrs)
ldi zh, HIGH(com2ScreenRecvText_IoErrs)
rcall LCD_PrintFromFlash
lds r18, com2StatsIoError
lds r19, com2StatsIoError+1
rcall LCD_PrintHexWord
ldi r18, 0
ldi r19, 6
rcall LCD_SetCursor
ldi zl, LOW(com2ScreenRecvText_NoBufErrs)
ldi zh, HIGH(com2ScreenRecvText_NoBufErrs)
rcall LCD_PrintFromFlash
lds r18, com2StatsNoBufferError
lds r19, com2StatsNoBufferError+1
rcall LCD_PrintHexWord
pop r15
out SREG, r15
ret
#if 0
COM2_Screen_SendStats:
in r15, SREG
push r15
cli
ldi r16, 0
rcall LCD_Fill
ldi r18, 0
ldi r19, 0
rcall LCD_SetCursor
ldi zl, LOW(com2ScreenSendText_title)
ldi zh, HIGH(com2ScreenSendText_title)
rcall LCD_PrintFromFlash
ldi r18, 0
ldi r19, 2
rcall LCD_SetCursor
ldi zl, LOW(com2ScreenSendText_packetsOut)
ldi zh, HIGH(com2ScreenSendText_packetsOut)
rcall LCD_PrintFromFlash
lds r18, com2StatsPacketsOut
lds r19, com2StatsPacketsOut+1
rcall LCD_PrintHexWord
ldi r18, 0
ldi r19, 3
rcall LCD_SetCursor
ldi zl, LOW(com2ScreenSendText_collisions)
ldi zh, HIGH(com2ScreenSendText_collisions)
rcall LCD_PrintFromFlash
lds r18, com2StatsCollisions
lds r19, com2StatsCollisions+1
rcall LCD_PrintHexWord
ldi r18, 0
ldi r19, 4
rcall LCD_SetCursor
ldi zl, LOW(com2ScreenSendText_busy)
ldi zh, HIGH(com2ScreenSendText_busy)
rcall LCD_PrintFromFlash
lds r18, com2StatsBusyError
lds r19, com2StatsBusyError+1
rcall LCD_PrintHexWord
pop r15
out SREG, r15
ret
#endif
com2ScreenRecvText_title: .db "COM2 Recv Stats", 0
com2ScreenRecvText_packetsIn: .db "In : ", 0
com2ScreenRecvText_handled: .db "Hdl : ", 0
com2ScreenRecvText_contentErrs: .db "ECon : ", 0
com2ScreenRecvText_IoErrs: .db "EIO : ", 0
com2ScreenRecvText_NoBufErrs: .db "ENBuf: ", 0
#if 0
com2ScreenSendText_title: .db "COM2 Send Stats", 0
com2ScreenSendText_packetsOut: .db "Out : ", 0
com2ScreenSendText_collisions: .db "E Coll : ", 0
com2ScreenSendText_busy: .db "E Busy : ", 0
#endif