***************************************************** * $VER: RandomEncoding V1.0, von Ivan J. Eis C 1995 * ***************************************************** * Parameter: A0=Textzeiger (APTR) * * D0=[Textlange]-1 (UWORD) * * D1=Zufallswert (UBYTE) Ungleich 0 * ***************************************************** lea Text(pc),a0 * Adresse nach A0 moveq #[Ende-Text]-1,d0 * Textlange in d0 moveq #7,d1 * Zufallswert > d1 * muss ungleich 0 sein. Loop move.b d1,d2 * Zufallswert in d2 move.b d1,d3 * Zufallswert in d3 and.b #1,d2 * Bit 0 raussuchen and.b #2,d3 * Bit 1 raussuchen lsr.b #1,d3 * Auf gleiche Hohe brin. eor.b d3,d2 * unterschiedlich? beq SetNoBit * Nein, dann nicht setzen or.b #$80,d1 * Ja, Bit 7 setzen add.b d1,(a0)+ * sub.b fur Decoder lsr.b #1,d1 * Zufallswert neu * berechnen bra.b NextChar SetNoBit add.b d1,(a0)+ * sub.b fur Decoder lsr.b #1,d1 * Zufallswert neu ber. NextChar dbf d0,Loop * Lange Zahler rts * Programende Text dc.b "Bitte decodiere diesen Text" Ende .