> BBCtoBMP v1.09 &5500:mem% &4FFFblk% &27F (9:Close_All:" at line "+Þ,<>17<128):exit() 2AA$=OS_GetEnv:d$=".":s$="/":os%=32:Win_TextIO:d$="\":s$="." 1:"File '"in$"' not found":exit(214) .scr%=0:fsize%=X%!10:X%!2=0:X%!6=0:rdInf 8cpr%=0:scr%=(X%?5=&FFX%!2<>X%!6(X%?9=0X%?9=&FF)) @scr%:cpr%=(X%?5=&FFX%?9=0)(X%?8+1):mode%<0:mode%=X%?716 Cload:cpr%:mem%=0:"No memory for decompression":exit(128-2) *mode%-8:"Unknown MODE":exit(128-1) Qmode%=0:ColoursUsed%=2:BitCount%=1:sz%=8:px%=8:xs%=1:ys%=2:zebra%=0:cols%=80 bmode%=1:ColoursUsed%=4:BitCount%=4:sz%=2:px%=4:xs%=2:ys%=2:zebra%=0:cols%=80:sm%:xs%=1:ys%=1 cmode%=2:ColoursUsed%=16:BitCount%=4:sz%=2:px%=2:xs%=4:ys%=2:zebra%=0:cols%=80:sm%:xs%=2:ys%=1 Qmode%=3:ColoursUsed%=2:BitCount%=1:sz%=8:px%=8:xs%=1:ys%=2:zebra%=2:cols%=80 bmode%=4:ColoursUsed%=2:BitCount%=1:sz%=8:px%=8:xs%=2:ys%=2:zebra%=0:cols%=40:sm%:xs%=1:ys%=1 bmode%=5:ColoursUsed%=4:BitCount%=4:sz%=2:px%=4:xs%=4:ys%=2:zebra%=0:cols%=40:sm%:xs%=2:ys%=1 bmode%=6:ColoursUsed%=2:BitCount%=1:sz%=8:px%=8:xs%=2:ys%=2:zebra%=2:cols%=40:sm%:xs%=1:ys%=1 Wmode%=7:ColoursUsed%=8:BitCount%=4:"MODE 7 not supported":Close_All:exit(128-1) 3scr%cpr%=0:A%=015:palette%(A%)=rgb(A%7): "\scr%cpr%=0:ColoursUsed%=4:palette%(1)=rgb(1):palette%(2)=rgb(3):palette%(3)=rgb(7) ,4scr%cpr%=0:ColoursUsed%=2:palette%(1)=rgb(7) 6Hscr%:col%=X%!6&FFF:A%=03:palette%(A%)=rgb(col%7):col%=col%8: @Hscr%:col%=X%!2&FFF:A%=47:palette%(A%)=rgb(col%7):col%=col%8: Jvscr%:mode%=2:mem%:A%=03:palette%(A%*2+8)=rgb((mem%?A%)7):palette%(A%*2+9)=rgb((mem%?A%)16)::!mem%=mem%!4 Txsz%=cols%40 ^rows%=(fsize%cols%)-8 h'Width% =(cols%+2*xsz%*brd%)*xs%*px% r-Height%=(rows%+16*brd%)*ys%+zebra%*ys%*28 | Eout%=(out$):out%=0:"Can't open '"out$"'":Close_All:exit(192) 5Bits%=BitCount%:ColoursUsed%<4:rle%:BitCount%=4 NumColours%=2^BitCount% #DataOffset%=14+40+4*NumColours% .FileSize%=DataOffset%+(Width%*Height%)/sz% wr16(out%,"B"+"M"*256) wr32(out%,FileSize%) wr32(out%,0) wr32(out%,DataOffset%) wr32(out%,40) wr32(out%,Width%) wr32(out%,Height%) wr16(out%,1) wr16(out%,BitCount%) wr32(out%,0) wr32(out%,0) &wr32(out%,0) 0wr32(out%,0) :wr32(out%,ColoursUsed%) Dwr32(out%,0) Ncolour%=0NumColours%-1 X!wr32(out%,palette%(colour%)) b colour% lcnt%=0:last%=-1 vbrd%:blank(8) zebra%:blank(6) *row%=rows%-10-1:vb%:13;row%;" "; '(row%7)=7:line:zebra%:blank(2) sq%=1ys% brd%:N%=1xsz%:byte(0): col%=0cols%-1 Eptr%=blk%+col%*8+(row%7):blk%=0:ptr%=mem%+ptr%+(row%8)*cols%*8 Dmem%+blk%:byte(?ptr%)#in%=ptr%+(row%8)*cols%*8:byte(#in%)  col% brd%:N%=1xsz%:byte(0): eol sq%  row% brd%:blank(8)  @rle%:#out%>FileSize%:#out%:out%=0:BitCount%=Bits%:rle%=  out%<>0  ,rle%:#out%,0:#out%,1:FileSize%=#out% *brle%:#out%=2:wr32(out%,FileSize%):#out%=30:wr32(out%,2):wr32(out%,FileSize%-DataOffset%) 4vb%:13;" ";13; >Close_All:exit(0) H2os%<32:"SetType "+out$+" 69C":"Stamp "+out$ Rexit(0): \4ݤrgb(A%)=(A%1)*&FF0000+(A%2)*&7F80+(A%4)*&FF fblank(N%):N%=N%*ys% p z/col%=1(cols%+2*xsz%*brd%):byte(0)::eol N%=N%-1:N%<1   eol )rle%:out(-1):wr16(out%,0):cnt%=0: 5rle%=0:B%=(Width%px%)4:B%:B%=B%3:byte(0):  byte(B%) ColoursUsed%=2:mode0: ColoursUsed%=4:mode1: ColoursUsed%=16:mode2:   mode0 NBitCount%=1:xs%=1:#out%,B%:BitCount%=1:#out%,l(B%):#out%,r(B%): +A0%=B%15:B%=B%16:mode1:B%=A0%:mode1  hݤl(A%)=(A%&80)((A%2)&40)((A%2)&20)((A%4)&10)((A%4)8)((A%8)4)((A%8)2)((A%16)1) $`ݤr(A%)=((A%8)*16)((A%8)*8)((A%4)*8)((A%4)*4)((A%2)*4)((A%2)*2)((A%1)*2)(A%1) . mode1 8UA1%=((B%&80)4)((B%&08)*2):xs%>1:out(A1%(A1%16)):xs%=4:out(A1%(A1%16)) BhA2%=((B%&40)2)((B%&04)*4):xs%=1:out(A1%(A2%16))out(A2%(A2%16)):xs%=4:out(A2%(A2%16)) LWA3%= (B%&20)((B%&02)*8):xs%>1:out(A3%(A3%16)):xs%=4:out(A3%(A3%16)) VkA4%= ((B%&10)*2)((B%&01)*16):xs%=1:out(A3%(A4%16))out(A4%(A4%16)):xs%=4:out(A4%(A4%16)) ` j mode2 t7A1%=(B%&80)((B%&20)*2)((B%&08)*4)((B%&02)*8) ~,xs%=4:A%=A1%(A1%16):out(A%):out(A%) &4FFF:(ptr%3)<>cpr%-1:ptr%=ptr%-&4FFF ZN%=0:#in%:#in%:in%=0 dfsize%=ptr%+1-cpr%: n ldpic x mem%=0: 'bits%=0:dw%=get(8):mode%=get(8)7 3colour%=150-1:ctrl%?colour%=get(4):colour% stp%=get(8):cw%=get(8) 6fsize%=256*("&"+"5050504028282004",mode%*2+1,2)) off%=stp%-1:addr%=mem%+off%  "cnt%=1:get(1):cnt%=get(cw%) byt%=get(dw%) +A%=1cnt%:?addr%=byt%:addr%=addr%+stp% 3addr%>=mem%+fsize%:off%=off%-1:addr%=mem%+off%  off%<0#in%:bits%=0 !addr%>mem%:fsize%=addr%-mem% J#in%+24>#in%:A%=015:palette%(A%)=rgb(ctrl%?A%):A%:#in%:in%=0: colour%=150-1 name%?(colour%*4+3)=0 "name%?(colour%*4+2)=get(4) ,name%?(colour%*4+1)=get(4) 6name%?(colour%*4+0)=get(4) @ colour% Jcolour%=150-1 Tnum%=ctrl%?colour% ^8palette%(colour%)=name%!(num%*4)(name%!(num%*4)*16) h colour% r#in%:in%=0 | &ݤbit:bits%=0:byte%=#in%:bits%=8 *byte%=byte%*2:bits%=bits%-1:=byte%256 .ݤget(N%):A%,B%:B%=1N%:A%=(A%2)bit: A%=A%2:N%=N%+1:N%>8:=A% 3rdInf:in%=(fn_noext(in$)+s$+"inf"):in%=0: A%=0:B%=#in%:B%=10:B%=13 Bname%?A%=B%:A%=A%+1:#in%A%>78B%=13:name%?A%=13:#in%:in%=0 IA$=$name%:X%!2=cl("",0):X%!2=("&"+cl("",0)):X%!6=("&"+cl("",0))  ssyntax:"Syntax: BBCtoBMP -mode -border -ldpic -raw -scr -small -uncomp -verbose": 1wr32(O%,A%):!zp%=A%:A%=03:#O%,zp%?A%:: 1wr16(O%,A%):!zp%=A%:A%=01:#O%,zp%?A%:: !ݤfn_noext(A$):A$,s$)=0:=A$ 0A%:A%=A$+1:A%=A%-1:":"+s$+d$,A$,A%,1))  A$,A%,1)=s$:=A$,A%-1)=A$ Close_All:*EXEC &"in%=in%:in%:A%=in%:in%=0:#A% 0'out%=out%:out%:A%=out%:out%=0:#A% : D#gbpb(A%,chn%,addr%,num%,ptr%) N>?X%=chn%:X%!1=addr%:X%!5=num%:X%!9=ptr%:<&FFFFF:&FFD1: XA%=1A%=3:#?X%=X%!9 b3:A%=1A%=2:#?X%,?X%!1A%=3A%=4:?X%!1=#?X% l2X%!1=X%!1+1:X%!5=X%!5-1:(#?X%A%>2)X%!5<1: v:ݤOS_GetEnv:A$,A%,X%,Y%:X%=1:os%=((&FFF4)&FF00)256 Mos%>31:>&FFFFF:X%256:ș"GetModuleFileName",0,X%,255:run$=$$X%:=@cmd$ CA%=&600-&7B00*(>&8000)-&3F00*(>&C000):!(-&100)=@%:A%=-&300 ;?(P-3)=0:A%=&100:<&FFFF:A%=-&300:!(+512)=@%:A%= cA$=$A%:=&8F00:run$=A$:ș16A$,,A%:ș72,"",A%:A$=A$,1+A$+" "," ",1+A$," "))):A$=0:A$=run$ SY%=-10:A$=" "+A$:A$=A$,2):A$<>32:A$=34:A%=A$,"""",2)+1A%=A$+" "," ") 9Y%:run$=A$,1-(A$=34),A%-1+2*(A$=34)):A$=A$,A%+1)  :=A$ !os(A$):A$=42:A$A$:A$  Fexit(A%):"FX1,"+(A%255):quit$=quit$:A$=quit$:quit$="":os(A$) >&FFFFF: A%  cݤcl(l$,n%):l$="":A$=s(A$):A$=34:A%=A$+" "" ",""" ",2):l$=A$,2,A%-2):A$=s(A$,A%+1)):=l$ "":A%=A$,l$):A%:A$=s(A$,A%-1)+A$,A$," ",A%)+1))+" ":= n%=0:l$<>"":=  %A%=" ",l$=32)+A$,l$):A%=0:="" *'A$=A$,A%-1)+s(A$,A$," ",A%)+1)) 4Cl$=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$ HHl$=A$,A%+1,A$+" ",""" ",A%+1)-A%-1):A$=A$,A%-1)+A$,A%+l$+3):=l$ R/ݤs(A$):A$,1)=" ":A$=A$,2):A$,1)<>" " \+A$,1)=" ":A$=A$,A$-1):A$,1)<>" " f=A$ pWin_TextIO z-ș"GetStdHandle",-10@hfile%(1):*INPUT 13 .ș"GetStdHandle",-11@hfile%(2):*OUTPUT 14 %ș"SetConsoleMode",@hfile%(1),0: Kݤfile(A$,A%):<&FFFF:$name%=A$:?X%=name%:X%?1=name%256:=(&FFDD)&FF A$,".")=0:A$=A$+"." CA%=255A%=5:X%!14=(A$):X%!14:X%!10=#X%!14:#X%!14:X%!14=&33 1A%=255:X%?6=0:"LOAD """+A$+""" "+~X%!2:=1 A%=5:X%!14:=1A%=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  =0 I}{ O{*"ȑ " g{[{LQ%=PA.:CH."*BASIC {{{{a{a{`|{`` g{,z0ȱ(V{02 ee  { {(V{{꩏ `