A bit late to the party, but this explains the general concepts well if you want to take the calculating road:
But I too think Internet Janitor's idea of storing each digit in its own byte is probably easier to do with less code. Especially if you're just keeping score in a game and you only need to increase your large (0-9999) value by one at a time.
Something like this:
: bump-score i := score load v3 v3 += 1 if v3 == 10 begin v3 := 0 v2 += 1 if v2 == 10 begin v2 := 0 v1 += 1 if v1 == 10 begin v1 := 0 v0 += 1 end end end i := score save v3 return : show-score v5 := 0 # Coordinates to draw to v6 := 0 i := score load v3 i := bcd-buffer bcd v0 i := bcd-digit load v0 i := hex v0 sprite v5 v6 5 v5 += 5 i := bcd-buffer bcd v1 i := bcd-digit load v0 i := hex v0 sprite v5 v6 5 v5 += 5 i := bcd-buffer bcd v2 i := bcd-digit load v0 i := hex v0 sprite v5 v6 5 v5 += 5 i := bcd-buffer bcd v3 i := bcd-digit load v0 i := hex v0 sprite v5 v6 5 return : score 0 0 0 0 : bcd-buffer 0 0 : bcd-digit 0