ajuda em uma calculadora binaria visualg

olá meu objectivo e fazer uma calculadora binária em VisualG porém quando ocorre de ser 1+1=0 e vai um para a próxima casa da um erro.
Código a baixo:

Algoritmo "Calculadora_Binaria"

Var
   resultado,resultadoD:inteiro
   valorentrada,valorentradaDois,c,d,x:inteiro
   vetBin:vetor(1..16)de inteiro
   vetBinDois:vetor(1..16)de inteiro
   ValorFinal:vetor(1..16)de inteiro
Inicio
    c<-1
    d<-1
    x<-1
    //quando o valor em decimal e positivo
    escreva("Qual e 1º o valor em decimal: ")
    leia(valorentrada)
    escreva("Qual e 2º o valor em decimal: ")
    leia(valorentradaDois)
    
    enquanto (valorentrada > 0) ou (valorentradaDois > 0)  faca
             se (valorentrada mod 2) = 0 entao
                resultado <- 0
                vetBin(c)<-resultado
             senao
                resultado <- 1
                vetBin(c)<-resultado
             fimse
             valorentrada<-valorentrada div 2
             
            se (valorentradaDois mod 2) = 0 entao
            resultadoD <- 0
            vetBinDois(d)<-resultadoD
            senao
                 resultadoD <- 1
                 vetBinDois(d)<-resultadoD
            fimse
                 valorentradaDois<-valorentradaDois div 2


            se (vetBin(c) + vetBinDois(d)) = 0  entao
               ValorFinal(x)<- 0

            senao
               se (vetBin(c) + vetBinDois(d)) = 1  entao
                  ValorFinal(x)<- 1
               senao
                    se (vetBin(c) + vetBinDois(d)) = 2  entao
                        ValorFinal(x)<- 0
                    fimse
               fimse
            fimse
            incremento<-ValorFinal(x)



             c<-c+1
             d<-d+1
             x<-x+1
    fimenquanto

    escreval(vetBin(16),vetBin(15),vetBin(14),vetBin(13),vetBin(12),vetBin(11),vetBin(10),vetBin(9),vetBin(8),vetBin(7),vetBin(6),vetBin(5),vetBin(4),vetBin(3),vetBin(2),vetBin(1))
    escreval(vetBinDois(16),vetBinDois(15),vetBinDois(14),vetBinDois(13),vetBinDois(12),vetBinDois(11),vetBinDois(10),vetBinDois(9),vetBinDois(8),vetBinDois(7),vetBinDois(6),vetBinDois(5),vetBinDois(4),vetBinDois(3),vetBinDois(2),vetBinDois(1))
    escreval(" ------------------------------- ")
    escreval(ValorFinal(16),ValorFinal(15),ValorFinal(14),ValorFinal(13),ValorFinal(12),ValorFinal(11),ValorFinal(10),ValorFinal(9),ValorFinal(8),ValorFinal(7),ValorFinal(6),ValorFinal(5),ValorFinal(4),ValorFinal(3),ValorFinal(2),ValorFinal(1))
    
Fimalgoritmo