Mercurial > public > mk2
view code_part1/OSTC_code_asm_part1/printf.inc @ 84:0f4c175ef824
FIX flickering in new CF menus
author | JeanDo |
---|---|
date | Wed, 08 Dec 2010 02:03:11 +0100 |
parents | 3e351e25f5d1 |
children |
line wrap: on
line source
;============================================================================= ; ; file printf.inc ; brief Compact macro to print PROM text, with formating options. ; author JD Gascuel. ; ; copyright (c) 2010, JD Gascuel. All rights reserved. ; $Id: printf.inc 37 2010-11-22 03:22:39Z gascuel $ ;============================================================================= ; HISTORY ; 2010-11-17 : [jDG] Creation... ; ;============================================================================= ; ; Compact macro to print PROM text, with formating options. ; ; The aim is to allow compact formating code, with formating options, to allow ; smaller footprint in the PROM. ; ; A print block (in PROM space) is used as paramaters. The block starts with ; a set of flags, telling what options are needed. ; ; The block format is : ; label DB flag+flag+flag+... ; A combination of various flags... ; DB top, leftx2 ; Optional text position. ; DB 0b1110011 ; Optional color in RRRGGGBB format. ; DB .35 ; Optional CF color (CF35 = standard). ; DB "The text string." ; Optional null-terminated text string ; DB 0 ; ; Two usage variantes: ; + The more compact one, use just 4 bytes for the call: ; code_pack ; Don't insert nulls ; call printf_inline ; tfAILED DB PRINTF_FONT_SMALL + PRINTF_TOPLEFT + PRINTF_COLOR8 ; DB 100, 100 ; DB color_red ; DB "FAILED" ; DB 0 ; code ; back to normal ; ; + A more classic one, but uses 16 bytes to load 24bits address: ; WIN_PRINTF tFAILED ; ;============================================================================= ; Flags for basic option (no argument): #define PRINTF_FONT_KEEP .0 ; Keep last font size. DEFAULT. #define PRINTF_FONT_SMALL .1 ; Switch to small font. #define PRINTF_FONT_MEDIUM .2 ; Switch to medium font. #define PRINTF_FONT_LARGE .3 ; Switch to large font. #define PRINTF_INVERT .4 ; Draw in reverse color. ; Flags that requires optional argument: #define PRINTF_TOPLEFT .8 ; Set Top/Left text position. #define PRINTF_COLOR8 .16 ; Change text color to packed RRRGGGBB format. #define PRINTF_COLOR_CF .32 ; Change text color to preference CF# ; Flags for final operation #define PRINTF_COPY_PRINT .0 ; strcpy() from PROM, then print. DEFAULT. #define PRINTF_COPY .64 ; just strcpy(), no final print. #define PRINTF_APPEND .128 ; just strcat() (don't reset FSR2 fist), no final print. #define PRINTF_PRINT .192 ; no string ops, just final call to print. ;============================================================================= WIN_PRINTF macro bloc movlw UPPER bloc movwf TBLPTRU movlw HIGH bloc movwf TBLPTRH movlw LOW bloc movwf TBLPTRL call printf_subroutine endm