> HexDiff , ctrl% 31,name% 127,mem1% 255,mem2% 255  :CloseAll::exit(): (9A$=OS_GetEnv:in1%=0:in2%=0:out%=0:X%=ctrl%:Y%=X%256 2?eol$=13:os%>5:eol$=10 os%=32:eol$=13+10:Win_TextIO <@in1$=cl("",1):in2$=cl("",1):out$=cl("",1):base$=cl("",1) FPin1$="-?":"Usage: HexDiff () ()":exit(0): Pout$="":out$=in2$:in2$="" Zin2$=34:in2$="" dZin1$="":"Base file: "in1$:"Diff file: "in2$:"Output: "out$:"Base address: &"base$ nEX%!2=0:file(in1$,5)<>1:"File1 '"in1$"' not found":exit(214): x.load1%=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): """:os%<32:"SetType "+out$+" FFF":"Stamp "+out$ ,exit(0): 6CloseAll @'in1%=in1%:in1%:A%=in1%:in1%=0:#A% J'in2%=in2%:in2%:A%=in2%:in2%=0:#A% T'out%=out%:out%:A%=out%:out%=0:#A% ^ h Emit r#addr%=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%,Y%:X%=1:os%=((&FFF4)&FF00)256:X%-1 Jos%=32:>&FFFF:ș"GetModuleFileName",0,X%,255:A$=$$X%:run$=A$:=@cmd$ os%=32:A$=$&100 {A$=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%=32:Ș A% 0os%<6: *Quit : Dbݤcl(l$,n%):l$="":A$=s(A$):A$=34:A%=A$+""" ",""" ",2):l$=A$,2,A%-3):A$=s(A$,A%+1)):=l$ N"":A%=A$,l$):A%:A$=s(A$,A%-1)+A$,A$," ",A%)+1)):= bn%=0:l$<>"":= l%A%=" ",l$=32)+A$,l$):A%=0:="" v'A$=A$,A%-1)+s(A$,A$," ",A%)+1)) Cl$=32:l$=A$,A%):A$=A$,A%-1):=l$,1-(l$=34),l$+2*(l$=34)) PA$,A%,1)<>34:l$=A$,A%,A$+" "," ",A%)-A%):A$=A$,A%-1)+A$,A%+l$+1):=l$ Jl$=A$,A%+1,A$+""" ",""" ",A%+1)-A%-1):A$=A$,A%-1)+A$,A%+l$+3):=l$ /ݤs(A$):A$,1)=" ":A$=A$,2):A$,1)<>" " +A$,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$,".")=0:A$=A$+"." ;A%=255 A%=5:X%!14=(A$):X%!14:X%!10=#X%!14:#X%!14 1A%=255:X%?6=0:"LOAD """+A$+""" "+~X%!2:=1 A%=5:X%!14:=1 A%=5:=0 FA%=0:"SAVE """+A$+""" "+~X%!10+" "+~X%!14:X%!10=X%!14-X%!10:=1 BA%=7:"SAVE """+A$+""" "+~+"+"+~X%!10:X%!10=X%!14-X%!10:=1  A%=8  : :=2  "MKDIR "+A$:=2 * 4=0 >#gbpb(A%,chn%,addr%,num%,ptr%) H=?X%=chn%:X%!1=addr%:X%!5=num%:X%!9=ptr%:os%<32: &FFD1: RA%=1A%=3:#?X%=X%!9 \5:A%=1A%=2:#?X%,?X%!1 A%=3A%=4:?X%!1=#?X% f5X%!1=X%!1+1:X%!5=X%!5-1:(#?X% A%>2) X%!5<1: pwr(o%,A$):A$="": z!A%=1A$:#o%,A$,A%,1):: Win_TextIO /ș "GetStdHandle",-10 @hfile%(1):*INPUT 1 0ș "GetStdHandle",-11 @hfile%(2):*OUTPUT 2 &ș "SetConsoleMode",@hfile%(1),0: B(C) {H {h H {h * pq+rksrpqs {۠{L `{{`{{H Ϋ{ {h`p{{{p`Q%=PAGE OLD RUN BASIC