unit Usendsr; interface var korr:integer; const kenn_ld='A8'; kenn_tuner='A4'; kenn_cd='A2'; kenn_tape='A1'; kenn_amp='A5'; kenn_vcr='AB'; bef_power='1C'; bef_0='00'; bef_1='01'; bef_2='02'; bef_3='03'; bef_4='04'; bef_5='05'; bef_6='06'; bef_7='07'; bef_8='08'; bef_9='09'; bef_levelup='0A'; bef_leveldown='0B'; bef_mute='12'; bef_ffwd='10'; bef_rwd='11'; bef_stop='16'; bef_pause='18'; bef_play='17'; bef_rec='14'; bef_eject='51'; bef_pgm='0D'; procedure sendsr(kennung, befehl:string); implementation uses crt; var x:string; function hex2dez(hex:string):integer; var zwischen,s,i:integer;stelle1,stelle2:char; begin zwischen:=0; stelle1:=hex[2]; case upcase(stelle1) of 'A':zwischen:=zwischen+10; 'B':zwischen:=zwischen+11; 'C':zwischen:=zwischen+12; 'D':zwischen:=zwischen+13; 'E':zwischen:=zwischen+14; 'F':zwischen:=zwischen+15; else val(stelle1,s,i); zwischen:=zwischen+s; end; stelle2:=hex[1]; case upcase(stelle2) of 'A':zwischen:=zwischen+10*16; 'B':zwischen:=zwischen+11*16; 'C':zwischen:=zwischen+12*16; 'D':zwischen:=zwischen+13*16; 'E':zwischen:=zwischen+14*16; 'F':zwischen:=zwischen+15*16; else val(stelle2,s,i); zwischen:=zwischen+s*16; end; hex2dez:=zwischen; end; function dez2bin(dez:integer):string; var i,a:integer;temp:string;temp2:string; begin temp:=''; temp2:=''; for a:=7 downto 0 do begin if dez>=(trunc(exp(a*ln(2)))) then begin dez:=dez-trunc(exp(a*ln(2))); temp:=temp+'1'; end else temp:=temp+'0'; end; for a:=1 to 8 do begin temp2:=temp2+temp[9-a]; end; dez2bin:=temp2; end; function hex2bin(hex:string):string; begin hex2bin:=dez2bin(hex2dez(hex)); end; procedure sendsr(kennung, befehl:string); var a:integer;cont:string; procedure up; begin port[$378]:=2 end; procedure down; begin port[$378]:=3 end; procedure slope(time:integer); var i,ii:integer; begin for ii:=1 to (time div 2) do for i:=1 to korr do i:=i; end; begin delay(10); {berechne String} cont:=''; cont:=cont+hex2bin(kennung); cont:=cont+dez2bin(255-hex2dez(kennung)); cont:=cont+hex2bin(befehl); cont:=cont+dez2bin(255-hex2dez(befehl)); {Initialisiere Prozessor} down;slope(900);up;slope(450);down;slope(70); {Schicke 4x8-Bit-Paket} for a:=1 to 32 do begin up; case cont[a] of '0':slope(35); '1':slope(140); end; down; slope(70); end; up; end; begin korr:=262 end.