Algorithm for difference of two semi-decidable languages I have two algorithms

Algorithm 1:

if( Condition1(input)==true )
   print(input);
else
   loop forever;


Algorithm 2:

if( Condition2(input)==true )
   print(input);
else
   loop forever;


for any arbitrary fully-computable conditions 1 and 2.

We know both of these algorithms are partially computable.

I want to write a new algorithm (algorithm 3) like this:

if algorithm1 prints x and algorithm2 does not print x "if and only if" algorithm3 print x


Can I write algorithm3? And how?
You are confusing languages with algorithms.

An algorithms is not "computable" or "non-computable". It can halt or not halt, but the latter doesn't mean that the language it defines is non-computable.

In this case, if conditions 1 and 2 are fully-computable (assuming by that you mean decidable, or recursive), then you can write algorithm 3 as follows:

Given x, check both condition 1 and condition 2. Print the input iff condition 1 holds and 2 doesn't.

The fact that algorithms 1 and 2 are "silly" in that they get stuck for no "good reason" doesn't affect the decidability of their languages.