Quote Originally Posted by erpalma View Post
I think this is quite good:

Code:
DEFINE OSC 12
define LCD_LINES 4

Clr     CON 1
Comm    Con $FE
LINE1   con 2
LINE2   con $c0
LINE3   con $94
LINE4   con $d4
Offset  VAR BYTE

Begin:
        Pause 500       
  LCDOUT  254,64,31,31,31,31,0,0,0,0       ' Cust Char #0  
  LCDOUT  254,72,0,0,0,0,31,31,31,31       ' Cust Char #1  
  LCDOUT  254,80,31,31,31,15,7,3,1,0       ' Cust Char #2  
  LCDOUT  254,88,31,31,31,30,28,24,16,0    ' Cust Char #3  
  LCDOUT  254,96,0,16,24,28,30,31,31,31    ' Cust Char #4  
  LCDOUT  254,104,0,1,3,7,15,31,31,31      ' Cust Char #5
  LCDOUT  254,112,31,31,31,31,31,31,31,31  ' Cust Char #6   
  LCDOUT  254,120,0,0,0,14,31,31,31,14     ' Cust Char #7  
    
Main:
        LCDOUT comm, clr
        lcdout comm, line1, "T", COMM, LINE2, "E", COMM, LINE3, "S", COMM, LINE4, "T"
        OFFSET=0 : gOSUB NUMERO0
        OFFSET=5 : GOSUB NUMERO1
        OFFSET=10 : GOSUB NUMERO2
        OFFSET=15 : GOSUB NUMERO3
        PAUSE 9000 : LCDOUT COMM, CLR
        OFFSET=0 : GOSUB NUMERO4
        OFFSET=5 : GOSUB NUMERO5
        OFFSET=10 : GOSUB NUMERO6
        OFFSET=15 : GOSUB NUMERO7
        PAUSE 9000 : LCDOUT COMM, CLR
        OFFSET=0 : GOSUB NUMERO8
        OFFSET=5 : GOSUB NUMERO9
        OFFSET=5 : GOSUB PUNTO
        OFFSET=10 : GOSUB NUMERO0
        PAUSE 9000 : GOTO MAIN       
           
END
    
Punto:
        LCDOUT Comm, ($D9 + OFFSET), $07 : return
Numero0:
        LCDOUT COMM, ($81 + OFFSET), $05, $FF, $FF, $04
        GOSUB COMBO1
        LCDOUT COMM, ($95 + OFFSET), $FF, COMM, ($98 + OFFSET), $FF
        LCDOUT COMM, ($D5 + OFFSET), $02, $FF, $FF, $03
        RETURN
Numero1:
        lcdout comm, ($82 + OFFSET), $05, $FF
        lcdout comm, ($C3 + OFFSET), $FF
        lcdout comm, ($97 + OFFSET), $FF
        lcdout comm, ($D7 + OFFSET), $FF        
        RETURN
Numero2:
        GOSUB COMBO2
        LCDOUT comm, ($C4 + OFFSET), $FF
        LCDOUT comm, ($95 + OFFSET), $05, $00, $00, $00
        LCDOUT comm, ($D5 + OFFSET), $FF, $01, $01, $01
        RETURN
Numero3:
        GOSUB COMBO2
        LCDOUT comm, ($C2 + OFFSET), $01, $01, $FF
        LCDOUT comm, ($96 + OFFSET), $00, $00, $FF
        GOSUB COMBO3
        RETURN 
Numero4:
        lcdout comm, ($81 + OFFSET), $FF
        GOSUB COMBO1
        GOSUB COMBO4
        GOSUB COMBO5
        return      
Numero5:
        LCDOUT COMM, ($81 + OFFSET), $05, $00, $00, $00
        GOSUB COMBO6
        GOSUB COMBO4
        GOSUB COMBO3
        RETURN    
Numero6:
        LCDOUT COMM, ($81 + OFFSET), $05, $00, $00
        GOSUB COMBO6
        LCDOUT COMM, ($95 + OFFSET), $FF, $00, $00, $04
        GOSUB COMBO7
        RETURN
Numero7:
        GOSUB COMBO2
        LCDOUT COMM, ($C3 + OFFSET), $01, $FF
        LCDOUT COMM, ($97 + OFFSET), $00, $FF
        GOSUB COMBO5
        RETURN
Numero8:
        GOSUB COMBO8
        LCDOUT COMM, ($C1 + OFFSET), $02, $01, $01, $03
        LCDOUT COMM, ($95 + OFFSET), $05, $00, $00, $04
        GOSUB COMBO7
        RETURN       
Numero9:
        GOSUB COMBO8
        LCDOUT COMM, ($C1 + OFFSET), $02, $01, $01, $FF
        GOSUB COMBO5
        LCDOUT COMM, ($D6 + OFFSET), $01, $01, $03
        RETURN
COMBO1:
        LCDOUT COMM, ($C1 + OFFSET), $FF, COMM, ($C4 + OFFSET), $FF
        RETURN
COMBO2:
        LCDOUT comm, ($81 + OFFSET), $00, $00, $00, $04
        RETURN
COMBO3:
        LCDOUT comm, ($D5 + OFFSET), $01, $01, $01, $03
        RETURN
COMBO4:
        LCDOUT comm, ($95 + OFFSET), $00, $00, $00, $FF
        RETURN
COMBO5:
        LCDOUT comm, ($D8 + OFFSET), $FF
        RETURN
COMBO6:
        LCDOUT COMM, ($C1 + OFFSET), $FF
        RETURN
COMBO7:
        LCDOUT COMM, ($D5 + OFFSET), $02, $01, $01, $03
        RETURN
COMBO8:
        LCDOUT COMM, ($81 + OFFSET), $05, $00, $00, $04
        RETURN
It's "only" 1002 words and about 900 words w/o the little "show" in Main.
I combined a few of your lcdout statement into gosub's. See how much (if any) code space that saves/uses.