I have 4 piece of 7 segment led displays connected directly to MCU pins, via 220 ohm resistor, common anode going to Vdd. I wrote a routine, which allows to display any number (X) on any digit (Y). But it is taking about 2.7k of memory, mostly because I can not redefine variables on the fly. So my main goal was to shorten this code somehow.

Code:
SMART:   'DECODER ROUTINE
FOR X=0 TO 9
IF X=0 AND Y=1 THEN GOSUB N10 'displays specific digit for specific segment
IF X=1 AND Y=1 THEN GOSUB N11
IF X=2 AND Y=1 THEN GOSUB N12
IF X=3 AND Y=1 THEN GOSUB N13
IF X=4 AND Y=1 THEN GOSUB N14
IF X=5 AND Y=1 THEN GOSUB N15
IF X=6 AND Y=1 THEN GOSUB N16
IF X=7 AND Y=1 THEN GOSUB N17
IF X=8 AND Y=1 THEN GOSUB N18
IF X=9 AND Y=1 THEN GOSUB N19

IF X=0 AND Y=2 THEN GOSUB N20
IF X=1 AND Y=2 THEN GOSUB N21
IF X=2 AND Y=2 THEN GOSUB N22
IF X=3 AND Y=2 THEN GOSUB N23
IF X=4 AND Y=2 THEN GOSUB N24
IF X=5 AND Y=2 THEN GOSUB N25
IF X=6 AND Y=2 THEN GOSUB N26
IF X=7 AND Y=2 THEN GOSUB N27
IF X=8 AND Y=2 THEN GOSUB N28
IF X=9 AND Y=2 THEN GOSUB N29

IF X=0 AND Y=3 THEN GOSUB N30
IF X=1 AND Y=3 THEN GOSUB N31
IF X=2 AND Y=3 THEN GOSUB N32
IF X=3 AND Y=3 THEN GOSUB N33
IF X=4 AND Y=3 THEN GOSUB N34
IF X=5 AND Y=3 THEN GOSUB N35
IF X=6 AND Y=3 THEN GOSUB N36
IF X=7 AND Y=3 THEN GOSUB N37
IF X=8 AND Y=3 THEN GOSUB N38
IF X=9 AND Y=3 THEN GOSUB N39

IF X=0 AND Y=4 THEN GOSUB N40
IF X=1 AND Y=4 THEN GOSUB N41
IF X=2 AND Y=4 THEN GOSUB N42
IF X=3 AND Y=4 THEN GOSUB N43
IF X=4 AND Y=4 THEN GOSUB N44
IF X=5 AND Y=4 THEN GOSUB N45
IF X=6 AND Y=4 THEN GOSUB N46
IF X=7 AND Y=4 THEN GOSUB N47
IF X=8 AND Y=4 THEN GOSUB N48
IF X=9 AND Y=4 THEN GOSUB N49

PAUSE 300
NEXT
Y=Y+1
IF Y>4 THEN Y=1
GOTO SMART 

N10: '0 at 1st digit
GOSUB CLAR1
LOW A1: LOW B1: LOW C1: LOW D1: LOW E1: LOW F1 '0
return

N11: '1 AT 1ST DIGIT
GOSUB CLAR1
low b1: low c1 '1
RETURN

N12: 
GOSUB CLAR1
low A1: low B1: low g1: low e1: low d1 '2
RETURN

N13:
GOSUB CLAR1
low A1: LOW B1: LOW C1: LOW D1: LOW G1 '3
RETURN

N14:
GOSUB CLAR1
LOW F1: LOW B1: LOW G1: LOW C1 '4
RETURN

N15:
GOSUB CLAR1
LOW A1: LOW F1: LOW G1: LOW C1: LOW D1 '5
RETURN

N16:
GOSUB CLAR1
LOW F1: LOW A1: LOW G1: LOW E1: LOW D1: LOW C1 'C6
RETURN

N17:
GOSUB CLAR1
low A1: low B1: low C1 '7
RETURN

N18:
gosub CLAR1
low A1: low B1: low C1: low f1: low e1: low g1: low d1 '8
RETURN

N19:
gosub CLAR1
low A1: low B1: low C1: low f1: low g1: low d1 '9
RETURN

CLAR1: 'clear 1ST DIGIT
high A1: high B1: high C1: high d1: high e1: high f1: high g1
return

N20: '0 at 1st digit
GOSUB CLAR2
LOW A2: LOW B2: LOW C2: LOW D2: LOW E2: LOW F2 '0
return

N21: '1 AT 1ST DIGIT
GOSUB CLAR2
low b2: low c2 '1
RETURN

N22: 
GOSUB CLAR2
low A2: low B2: low g2: low e2: low d2 '2
RETURN

N23:
GOSUB CLAR2
low A2: LOW B2: LOW C2: LOW D2: LOW G2 '3
RETURN

N24:
GOSUB CLAR2
LOW F2: LOW B2: LOW G2: LOW C2 '4
RETURN

N25:
GOSUB CLAR2
LOW A2: LOW F2: LOW G2: LOW C2: LOW D2 '5
RETURN

N26:
GOSUB CLAR2
LOW F2: LOW A2: LOW G2: LOW E2: LOW D2: LOW C2 'C6
RETURN

N27:
GOSUB CLAR2
low A2: low B2: low C2 '7
RETURN

N28:
gosub CLAR2
low A2: low B2: low C2: low f2: low e2: low g2: low d2 '8
RETURN

N29:
gosub CLAR2
low A2: low B2: low C2: low f2: low g2: low d2 '9
RETURN

CLAR2: 'clear 1ST DIGIT
high A2: high B2: high C2: high d2: high e2: high f2: high g2
return

N30: '0 at 1st digit
GOSUB CLAR3
LOW A3: LOW B3: LOW C3: LOW D3: LOW E3: LOW F3 '0
return

N31: '1 AT 1ST DIGIT
GOSUB CLAR3
low b3: low c3 '1
RETURN

N32: 
GOSUB CLAR3
low A3: low B3: low g3: low e3: low d3 '2
RETURN

N33:
GOSUB CLAR3
low A3: LOW B3: LOW C3: LOW D3: LOW G3 '3
RETURN

N34:
GOSUB CLAR3
LOW F3: LOW B3: LOW G3: LOW C3 '4
RETURN

N35:
GOSUB CLAR3
LOW A3: LOW F3: LOW G3: LOW C3: LOW D3 '5
RETURN

N36:
GOSUB CLAR3
LOW F3: LOW A3: LOW G3: LOW E3: LOW D3: LOW C3 'C6
RETURN

N37:
GOSUB CLAR3
low A3: low B3: low C3 '7
RETURN

N38:
gosub CLAR3
low A3: low B3: low C3: low f3: low e3: low g3: low d3 '8
RETURN

N39:
gosub CLAR3
low A3: low B3: low C3: low f3: low g3: low d3 '9
RETURN

CLAR3: 'clear 1ST DIGIT
high A3: high B3: high C3: high d3: high e3: high f3: high g3
return

N40: '0 at 1st digit
GOSUB CLAR4
LOW A4: LOW B4: LOW C4: LOW D4: LOW E4: LOW F4 '0
return

N41: '1 AT 1ST DIGIT
GOSUB CLAR4
low b4: low c4 '1
RETURN

N42: 
GOSUB CLAR4
low A4: low B4: low g4: low e4: low d4 '2
RETURN

N43:
GOSUB CLAR4
low A4: LOW B4: LOW C4: LOW D4: LOW G4 '3
RETURN

N44:
GOSUB CLAR4
LOW F4: LOW B4: LOW G4: LOW C4 '4
RETURN

N45:
GOSUB CLAR4
LOW A4: LOW F4: LOW G4: LOW C4: LOW D4 '5
RETURN

N46:
GOSUB CLAR4
LOW F4: LOW A4: LOW G4: LOW E4: LOW D4: LOW C4 'C6
RETURN

N47:
GOSUB CLAR4
low A4: low B4: low C4 '7
RETURN

N48:
gosub CLAR4
low A4: low B4: low C4: low F4: low E4: low G4: low D4 '8
RETURN

N49:
gosub CLAR4
low A4: low B4: low C4: low F4: low G4: low D4 '9
RETURN

CLAR4: 'clear 1ST DIGIT
high A4: high B4: high C4: high D4: high E4: high F4: high G4
return