> HexDiff , ctrl% 31,name% 127,mem1% 255,mem2% 255  :CloseAll::exit(): 9(A$=OS_GetEnv:in1%=0:in2%=0:out%=0:X%=ctrl%:Y%=X%256 32eol$=13:os%>5:eol$=10 os%=32:eol$=13+10 @<in1$=cl("",1):in2$=cl("",1):out$=cl("",1):base$=cl("",1) PFin1$="-?":"Usage: HexDiff () ()":exit(0): Pout$="":out$=in2$:in2$="" Zin2$="""""":in2$="" Zdin1$="":"Base file: "in1$:"Diff file: "in2$:"Output: "out$:"Base address: &"base$ EnX%!2=0:file(in1$,5)<>1:"File1 '"in1$"' not found":exit(214): .xload1%=X%!2:base$<>"":load1%=("&"+base$) OX%!2=0:in2$<>"":file(in2$,5)<>1:"File2 '"in2$"' not found":exit(214): .load2%=X%!2:base$<>"":load2%=("&"+base$) 'in1%=(in1$):in2$<>"":in2%=(in2$) out$<>"":out%=(out$) /ext1%=#in1%:ext2%=ext1%:in2%:ext2%=#in2% line$="":base%=0: &#in1%:gbpb(4,in1%,mem1%,256,0) ,in2%:#in2%:gbpb(4,in2%,mem2%,256,0) )max%=ext2%-base%-1:max%>255:max%=255 % byte%=0 max%:line$>31:Emit $in2%=0:line$=line$+mem1%?byte% 3in2%:mem1%?byte%=mem2%?byte%:line$<>"":Emit Pin2%:mem1%?byte%<>mem2%?byte% base%+byte%>ext1%:line$=line$+mem2%?byte% 8:base%=base%+256:eof%=#in1%:in2%:eof%=eof%#in2% *eof%:line$<>"":base%=base%-256:Emit 5Out(":0000000000"+eol$):CloseAll: exit(0): <"out$<>"":os%<32:"SetType "+out$+" FFF":"Stamp "+out$ ,exit(0): 6CloseAll '@in1%=in1%:in1%:A%=in1%:in1%=0:#A% 'Jin2%=in2%:in2%:A%=in2%:in2%=0:#A% 'Tout%=out%:out%:A%=out%:out%=0:#A% ^ hEmit #raddr%=load1%+base%+byte%-line$ -|Out(":"+h0(line$,2)+h0(addr%,4)+"00") 2 lp%=1 line$:Out(h0(line$,lp%,1),2)): 'sum%=line$+(addr%256)+(addr%255) / lp%=1 line$:sum%=sum%+line$,lp%,1): /Out(h0(256-(sum%255),2)+eol$):line$="": &Out(A$):out%:wr(out%,A$): :ݤOS_GetEnv:A$,A%:X%=1:os%=((&FFF4)&FF00)256:X%-1 Ios%=32:>&FFFF: "GetModuleFileName",0,X%,255:A$=$$X%:run$=A$:=@cmd$ os%=32:A$=$&100 yA$=0:>&7FFF:run$=$&8100: "OS_GetEnv"A$,,A%: "OS_WriteEnv","",A%:A$=A$,1+A$+" "," ",1+A$," "))):A$=0:A$=run$ 2A$=0:?(P-3):A$=$&600 A$=0:A$=$(-&300) 7A%=A$+" "," "):run$=A$,A%-1):run$<>"":=A$,A%+1) bY%=X%256:A%=9:?X%=0:X%!1=X%+16:X%!16=0:&FFD1:A%=X%+16:!A%?A%+A%?2<>8:A%?(A%+1)=13:=$(A%+1) ="" &os(A$):A$=42:A$ A$<>"":A$  @exit(A%):"FX1,"+A%:quit$=quit$:A$=quit$:quit$="":os(A$) &os%<6: *Quit 0 H:ݤcl(l$,n%):l$="":I%=A$+" "," "):l$=A$,I%-1):A$=s(A$,I%+1)):=l$ Dl$=32 A$<>"":A$=" "+A$ bNI%=A$,l$):l$="":I%>0n%>0:l$=A$,A$+" "," ",I%+1)+1):A$,I%,1)<>" ":l$=l$,l$+" "," ")-1) qXI%:A$,I%,1)=" ":A$=A$,2+(A$<>32),I%-2-(I%=1)) I%:A$=A$,I%-1)+A$,A$+" "," ",A$+" "," ",I%)+l$)+1) "bA$=s(A$):n%:=s(l$) =I%<>0 /lݤs(A$):A$,1)=" ":A$=A$,2):A$,1)<>" " +vA$,1)=" ":A$=A$,A$-1):A$,1)<>" " =A$ #ݤh0(A%,N%)="0000000"+~A%,N%) Jݤfile(A$,A%):os%<32:$name%=A$:?X%=name%:X%?1=name%256:=(&FFDD)&FF (A%=(A$):A%:X%!10=#A%:#A%:=1 =0 #gbpb(A%,chn%,addr%,num%,ptr%) =os%<32:!X%=chn%:X%!1=addr%:X%!5=num%:X%!9=ptr%: &FFD1: A%=1A%=3:#chn%=ptr% 9:A%=1A%=2:#chn%,?addr% A%=3A%=4:?addr%=#chn% 'addr%=addr%+1:num%=num%-1:num%<1: wr(out%,A$):A$="": #A%=1A$:#out%,A$,A%,1):: B(C) {H {h H {h * pqrmsrpqs {۠{L `{{`{{H Ϋ{ {h`p{{{p`Q%=PAGE OLD RUN BASIC