ZXTape! 0Created with Ramsoft MakeTZXMM/Sword Y 6:6:6: "" 40000@ +23739\,82R:23740\,0 "" dU"M/Sword"10 :23736\,181:100d:"Logo"40000@,4780 NLogo @̀U@!. z[~( (#F##NB@  VB@  6B~B@  6B~B@  6B@B~   2B@B~   2~|1   2~|1   ''''%%% $<B~~B~@|BB@@~BJ)B~B><|<B<~<<|<||B~~|<<||>B<~ Ãÿ$<B~~B~@|BB@@~BJ)B@fBBBBDB@bBB@@B@BBbB@@@BBBBD(B@@BBBBBbB@ $Bx<<|<<~|B|@><<><<>B<~<<@<@@:B~@B<<@B>B<~ Á$BBB|B<|BB|@@BBR< <$BBB|B<|BB|@@BBR< <000000000000000000000000000000000000000000000011100000000000000000000000000000111000000000000000111111111111111111111111111100001111111111111111111111111110000011111111111111111111111100000000111111111111111111111111000000001111111111111111111111111111000011111111111111111111111111110000111111111111111111111111111110001111111111111111111111111111110011111111111111111111111111111100111111111111111111111111111111001111111111111111111111111111110011111111111111111111111111111100111111111111111111111111111110000000000000000000000000000000000022222222222222222222222222200000222222222222222222222222222222220000000000000000000000000000000022222222222222222222222222222222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000RG/Sword gYI$="" >65000:23739\,244:23740\,9 :""  3000 MID$ 2m$(a$,n,o)=a$(n(n+o-1)) RIGHT$ /r$(a$,n)=a$(((a$)-(n-1))) LEFT$ l$(a$ƾ,n)=a$(n) ( DATABASE PUBLICATIONS ) 1984 F1810::1030 P0:0: L$(42*,24):D$(42*,6):G(42*):O$(12 ,15):O(12 ):P(12 ):F(4):V$(23,15) 3A=142*:G(A)=1140t+A*10 :A 1570" $A=142*:L$(A),D$(A):A 3A=112 :P(A)=1610J+A*10 :A #A=112 :O$(A),O(A):A 1LOC=15:M=0:WI=0:5060  Repeat Loop "430:440 ,iLOC=23O(1)=23O(4)=43+O(5)=43+O(6)=43+730 6iLOC=18O(2)=18O(7)=43+O(8)=43+O(9 )=43+750 @lLOC=42*O(3)=42*O(10 )=43+O(11 )=43+O(12 )=43+770 J$LOC=41)990:420 T 460 ^b23624H\,3:SCR=1:X=0:Y=1:F$="What do you want to do?":2000 _ 1900l cKDead=0::M=M+1:M/100d=(M/100d)940:I$="" h3I$="n"I$="s"I$="e"I$="w"470:400 mqI$="u"D$(LOC,5)"U"5120:0,0;1;2;" You can't go UP here. ":400 oI$="u"520:400 rsI$="d"D$(LOC,6)"D"5120:0,0;1;2;" You can't go DOWN here. ":400 wI$="d"580D:400 |I$="g"610b:400 }I$="i"650:400 ~I$="m"1110V:400 I$="r"860\ I$="l"880p  680 Dead-1281  4020 :3:SCR=2:X=0:Y=5:F$="Do you want to play again?":2000:Y=7:F$="Press Y or N.":2000:5380  G$=:G$"y"G$"n"421 ^G$="y"6:6::L=1:4990~:1030:0:0::240  Subroutine P e=0:f=0:LOC40(G(LOC):X=0:Y=26-(23689\):Y1=Y:SCR=2:2:F$="You are "+L$(LOC):2000  Subroutine O :6:X=0:Y=Y1+3:SCR=2:f=0 RA=112 :O(A)=LOCP(A)=1760F$="You can see "+O$(A):445 %O(A)=LOCF$="You can see a "+O$(A) &O(A)=LOCP(A)=1780f=39' 6O(A)=LOCf=f-23:P(A):2000:A=12 A: Subroutine D LW$="You can go ":F$="":A=16:D$(LOC,A)" "F$=F$+D$(LOC,A) KA:A=1̱(F$):W$=W$+F$(A):A=(F$)-1W$=W$+" or ":465 Aɱ(F$)W$=W$+"," UA:F$=W$+".":SCR=2:X=0:Y=20:4:2000:1960: Subroutine DIR I$=((I$)-32 ) ؝I$D$(LOC,1)I$D$(LOC,2)I$D$(LOC,3)I$D$(LOC,4)5080:0,0;1;2;" You can't go ";I$;" here. ": xLOC=38&O(7)43+I$="W" 5080:0,0;1;3;" It's too dark that way. ": {LOC=38&O(7)=43+I$="W"51702:0,0;1;3;" The glow-worm lights the way. " I$="N"LOC=LOC-7 I$="S"LOC=LOC+7 I$="E"LOC=LOC+1 I$="W"LOC=LOC-1 5060: Subroutine UP  (LOC=8LOC=1:4000:  .LOC14O(12 )=43+550& e=0:f=0:1750:4020:17,0;6;"You need something to hold on to. Ha! Ha! Ha! The witch laughsfrom the top of the well as she turns you into a spider. Better luck next time.":Dead=-1 Ae=(*5):f=10 +(*10 ):1500:A=0 !1A=A+1:I$=:I$""A=180547# " 545! #A180 $9A=010 :e+A,f;" ":A:540 &m4000:LOC=14LOC=7:0,0;3;1;"You Blimb up the rope ladder.": 0LOC=21LOC=28: :LOC=35#LOC=42* ; DSubroutine DOWN F)4090:LOC=7LOC=14: NLOC=28LOC=21 XLOC=42*LOC=35# Y bSubroutine GET c/O=-1:A=112 :O(A)=LOCO=A lQA:O=-15;0,0;"There is nothing here!":5120: vHO=14;0,0;" Ughhh! No fear! ":5120: wUO=24;0,0;"You might fall into the water.":5080: xOO=36;0,0;" He's too quick for you.":5100: PO(O)=43+:5380:0,0;2;"You now have a ";O$(O): Subroutine INV t0,0;2;"You have:-";:A=0:f=0:B=112 :F$="":O(B)43+660 ,5380:P(B):P(B)1760F$="a " oF$=F$+O$(B):SCR=2:X=0:Y=28-(23689\):5:2000:A=A+1:200: (B:A=0:" nothing.":5120 M=M-1: Subroutine DC nLOC=1430:e=0:f=24:1750:4020:3:X=0:Y=16:F$="The witch comes home to": 2000:Y=Y+2:F$="cook her dinner! You are stuck":2000:Y=Y+2:F$="in the chimney and burnt!":2000:Y=2:SCR=1:23624H\,5:F$="Better luck next time.":2000:Dead=-1 LOC1700 K22531X,0:22562"X,0:A=0:B=2:F=1 0A=A+1:I$=:A<60<I$=""692  I$"" p22531X+B*31,0:22531X+f*31,5:B=B-1:F=F-1:B<0B=2 F<0F=2 4B=030:22531X,0:70F A=0:692 LOC40( "5:5::SCR=2:Y=2:X=0:2:F$="You are "+L$(LOC):2000:F$=" You have drowned in the":Y=Y+2:2000:Y=Y+2:F$=" waterfall !":2000:Y=Y+2:F$=" Better luck next time.":2000:Dead=-1 y1:A=9 21:B=02:A,(*30);"O":B:.05|L,40(-A:23692\,255:A ȕA=40(15-1:B=0̺(*2):21,(*30);"O":B:.02{# =,A:23692\,255::I$=:I$""A=15  A:I$""0:0::  712 Subroutine F O$(1)="Prince Fred":O(4)=44,:O(5)=44,:O(6)=44,:D$(23)=" EW ":P(1)=1760:A=1100d:A:5340::430:440 R17,0;4;"The frog is turned into a tall handsome prince by"; V4;" all the magicobjects you have collected.":O(1)=43+:A=0 1I$=:A=A+1:I$""A>600X743  741 z17,0;" ": Subroutine S 2O$(2)="gleaming sword":O(7)=44,:O(8)=44,:O(9 )=44,:D$(18)=" SE ":P(2)=1770:A=1100d:A:5340::430:440:17,0;5;"The wooden stick turns into a sword for Prince Fred the Magnificent." 400:17,0;" ":O(2)=43+: Subroutine M O$(3)="white horse":O(10 )=44,:O(11 )=44,:O(12 )=44,:D$(42*)=" W D":P(3)=1780:A=1100d:A:5340::430:440  17,0;3;"The black cat caught the pink mouse. The mouse became a beautiful white horse for the Prince to rescue the Princess."  500 17,0;" ":O(3)=43+: \:5380:SCR=2:3:X=0:Y=2:F$=" Do you really want to":2000:Y=4:F$=" record your game?":2000:5:Y=6:F$=" PRESS Y or N":2000 ]"G$=:G$"y"G$"n"861] ^G$="n"875k _Y=10 :2:F$="Put your tape in the right place":2000:Y=12 :F$=" and unplug the ear lead!":2000 aA=112 :V$(A)=(O(A)):A:A=13:V$(12 +A)=(P(A)):A:A=13:V$(15+A)=O$(A):A:V$(19)=(LOC):V$(20)=(M):V$(21)=D$(23):v$(22)=D$(18):V$(23)=D$(42*) f"SWORDDATA"V$() k:5060: p:5380:SCR=2:3:X=0:Y=2:F$=" Do you really want to":2000:Y=4:F$=" load another game?":2000:5:Y=6:F$=" PRESS Y or N":2000 q G$=:G$"y"G$"n"881q rG$="n"890z sK4:F$="PRESS PLAY":X=11 :Y=10 :2000:1:'' u"SWORDDATA"V$() vA=112 :O(A)=(V$(A)):A:A=13:P(A)=(V$(12 +A)):A:A=13:O$(A)=V$(15+A):A:LOC=(V$(19)):M=(V$(20)):D$(23)=V$(21):D$(18)=V$(22):D$(42*)=V$(23) z:5060: Subroutine WITCH *e=0:f=0::1750:4:Y=2:X=8:SCR=2:F$="The witch has caught you":2000:4020:3:Y=Y+4:F$="She will ask you a":2000:Y=Y+2:F$="question. If you get it":2000:Y=Y+2:F$="wrong...BAD LUCK!":2000 0:1790:A=11+(*6):S$,F$,Q$:A:5:18,0;"You are ";S$'"which way is ";F$;"?" <I$=:I$"n"I$"s"I$"e"I$"w"I$"u"I$"d"951 fI$=Q$5190F:2:F$="RIGHT!!":X=15:Y=15:SCR=2:18,0;" ":2000:''''6;"The witch snarls as she"'"zooms away on her broomstick.":0,0;:A=118:" ":1:A:300,:: ʮ:1750:Y=17:X=15:2:F$="WRONG!!":2000:4020:5350:5:''''"The witch laughs with glee"'"as she turns you into a spidEr!" Ae=(*5):f=10 +(*10 ):1500:A=0 1A=A+1:I$=:I$""A=100d977  975  A100d:Dead=-1: 9A=010 :e+A,f;" ":A:972 Subroutine END `SCR=1:X=0:Y=2:23624H\,6:F$=" CONGRATT ATIONS":2000 '''5;"Prince Fred and Princess Poppy"'"are very happy to be together"'"again!";7;0,18;"You completed";1,18;"your adventure";2,18;"in ";M;" moves." 4050: I Subroutine WX=8:Y=2:SCR=2:F$="THE MAGIC SWORD":1:2000:2  ::" Once upon a time the wicked Witch,Bad Bertha locked PrincessPoppy in a high tower in the White Castle, then she threw thekey away." :" Prince Fred the Magnificent tried to rescue Princess Poppy but the witch Bad Bertha stole his sword & cast a spell on him." :" You have to find Prince Fred, then help him to rescue PrincessPoppy by collecting Bad Bertha'smagic objects to stop her casting any more nasty spells." F=5:1100L $uF$="KEYS":Y=2:X=14:SCR=2:1:2000:::2:"Use these letters for your moves" .:(4);"U UP"::(4);"D DOWN"::(4);"G GET an object"::(4);"I INVENTORY to show what":(7);"you are carrying."::(4);"M MOVES made so far." 8\:(4);"N NORTH":(4);"S SOUTH":(4);"E EAST":(4);"W WEST" =#1960:F=0:1100L B:2:"If you want to save your game, press R for RECORD."::"If you want to load a saved game, press L for LOAD." G:"A compass, like the one below, will always show you the four directions."::"The ones that you are allowed to move in will ";:1:"FLASH";:0:"." H:"Remember, you can also":"press U,D,G,I,M,L or R."::"Can you remember":"what they do?"::7;1;1;"Press Y or N":1960 I"4940L:A$="n":1060$ J A$="y": K 1097I LSubroutine SPC MB21,F;7;1;1;"Press SPACE to Continue" N4940L:: VSubroutine MOVES WF$="s.":M=1F$="." `H5;0,0;"You have made ";M;" move";F$:M=M-1: ~w5;" ";13 ;" ";13 ;" ";13 ;:2:l=14:"";13 ;"":l: 4;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"": 3;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"": 4;"";13 ;"";13 ;" ";13 ;" ";13 ;" ";13 ;" ": 2;"";13 ;"";13 ;"";13 ;""''': (10 );"";13 ;(9 );"";13 ;(9 );" ";13 ;(9 );"";13 ;(9 );"";13 ;(9 );"";13 ;"";13 ;"": " ";13 ;"";13 ;" ";13 ;" ";13 ;"";13 ;" ";13 ;"";13 ;"";13 ;"";13 ;"": Ė" ";13 ;" ";13 ;" ";13 ;" ";13 ;"";13 ;"": Ϋ"";13 ;"  ";13 ;"  ";13 ;"";13 ;" ";13 ;" ": {" ";13 ;" ";13 ;" ";13 ;" ": 2;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" "'''': _7;(7);"";13 ;(7);"";13 ;(7);"";13 ;(6);"";13 ;(5);"";13 ;(4);"";13 ;(3);"";13 ;2;" ";13 ;"";13 ;4;"": 7;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"": " ";13 ;" ";13 ;13 ;13 ;13 ;" ";13 ;" ";13 ;" ";13 ;"";13 ;"";13 ;"":  !2;"";13 ;"";13 ;4;"";13 ;"";6;"";13 ;"";13 ;"";13 ;"";13 ;2;"";13 ;"";13 ;1;"";13 ;"";13 ;"": %(16);"";13 ;(15);"";13 ;"  ";13 ;"  ";13 ;"  ";13 ;" ": " ";13 ;"  ";13 ;"I II III";13 ;"  ";13 ;"  ": (" ";13 ;7;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;"  ";13 ;"";13 ;" ": 26;" ";13 ;" ";13 ;" ";13 ;" ";13 ;1;"";13 ;"": <7;"";(6);6;"";(16);7;"";13 ;"";(6);6;"";7;(15);"";13 ;"";6;"";7;"";13 ;"";6;"";7;"";13 ;(4);"";6;"";7;"";13 ;(5);"";6;"";7;"";13 ;13 ;1;" " A1;" ";13 ;" ";2;"";1;" ";13 ;" ";2;"";1;" ";13 ;" ";2;"";1;"": F7;(13 );"";13 ;(9 );"";13 ;(5);"";13 ;"": P" ";13 ;"  ";13 ;"    ";13 ;"    ";13 ;"    ";13 ;"": Z6;" ";13 ;"";13 ;"";13 ;"";13 ;"";13 ;""''''': df4;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"": n7;(8);"";13 ;(7);"";13 ;(7);"";13 ;(7);"";13 ;"": x1;" ";13 ;" ";13 ;" ";13 ;"";13 ;"";13 ;" ": "";13 ;"";13 ;"";13 ;"";13 ;" ";13 ;"  ";13 ;"  ";13 ;"  ": " ";13 ;"";13 ;"  ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ": 2"  ";13 ;"  ";13 ;"  ";13 ;" ";13 ;"  ";13 ;" ";13 ;" ";13 ;"   ";13 ;"  ";13 ;"  ": 4;(9 );"";13 ;(9 );"";13 ;(10 );"";13 ;4;" ";13 ;" ";13 ;" ";13 ;"": 4;" ";13 ;" ";13 ;" ";13 ;" ";13 ;"   ";13 ;"  ": 2;" ";13 ;" ";13 ;"";13 ;" ";13 ;" ";13 ;1;" ";13 ;" ";13 ;"": 4;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"";13 ;"": 7;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ": Ҏ5;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;"": 7:1+e,f;" ":2+e,f;" ":3+e,f;" ":4+e,f;" ":5+e,f;" ":6+e,f;" ":7+e,f;" ":8+e,f;" ":9 +e,f;" ":10 +e,f;" ": 1;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ": 3;"";13 ;"";13 ;" ";13 ;" ";13 ;" ";13 ;" ";4;13 ;"": 5;"";13 ;" ";13 ;"";13 ;"";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ": "" " ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;"  ";13 ;" ";13 ;"  ";13 ;" ";13 ;"  ";13 ;" ";13 ;" ";13 ;"  ";13 ;"  ": 1;"";13 ;"";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ";13 ;" ": ""up the chimney","","in a vegetable garden"," SE ","by a window"," EW ","by a shed"," S W ","under a portcullis"," SE ","in the courtyard"," SEW ","beside a well"," W D","in an oven"," E U ","in the kitchen","NSEW ","in a bedroom"," S W ","inside the shed","N " , "on a drawbridge","NS ","by the main door","NS ","down the well"," U ","outside a crooked house"," SE ","inside a crooked house","N EW ","in a library","N W ","in a boat"," S ","by a moat","N W ","in a large hall","NSE ","by some stairs"," WU " 6&"in a flower garden","N E ","by a wooden gate"," W ","on a twisting path"," S W ","by a river","NS ","in a secret passage","NSEW ","in the castle kitchens","N W ","in the minstrels gallery"," S D","inside a toadstool ring"," E ","on a hill"," EW ","in thick woods","NSEW " @ "beside a bridge","NS W ","outside a dungeon","N E ","inside a dungeon"," W ","by some steep stairs","N U ","inside a dark cave"," E ","in a long dark tunnel"," EW ","outside a cave","N W ","by a waterfall","N E ","falling down a waterfall"," " J>"in the tower room"," ","beside a locked door"," D" T4;1,25;" ";2,25;" ";3,25;" ";4,25;"";5,25;" ": ^1;1,25;"";2,25;" ";3,25;"";4,25;"";5,25;"";6,25;"";7,25;"": h3;1,20;" ";2,20;" ";3,20;" ";4,20;"": r1,f;" ";2,f;"";3,f;"";4,f;"  ";5,f;" ": |2;1,f;" ";2,f;" ";3,f;" ";4,f;" ";5,f;" ";6;6,f;"";7,f;"";8,f;"";9 ,f;"": z4;1,f;"";2,f;"";3,f;"M";4;4,f;"";5,f;"": 46;1,f;" ";2,f;"": Y1;1,f;" ";2,f;" ";3,f;" ";4,f;"": k6;1,f;" ";2,f;" ";3,f;"";4,f;" ";5,f;" ": `5;1,f;" ";2,f;"";3,f;" ";4,f;" ";5,f;" ": ?4;1,f;" ";2,f;" ";3,f;"": r6;1,f;"";2,f;"";3,f;"";4,f;"";5,f;"";6,f;" ": "green frog",23,"walking stick",18,"pink mouse",42*,"magic plant",2,"broomstick",11 ,"book of spells",17,"glow-worm",29,"witch's hat",36$,"magic star",39',"shiny key",5,"black cat",14,"rope ladder",34" 1;e,f;" ";e+1,f;" ";e+2,f;" ";e+3,f;3;" ";e+4,f;" ";e+5,f;" ";1;e+6,f;" ";e+7,f;" ";e+8,f;" ";e+9 ,f;" " 1;e+10 ,f;" ";e+11 ,f;" ";e+12 ,f;"";e+13 ,f;"";3;e+14,f;" ";e+15,f;" ";1;e+16,f;" ": 1,f;" ";2,f;" ";3,f;" ";4,f;" ";5,f;" ";6,f;" ";7,f;"";8,f;" ";9 ,f;"";10 ,f;"": 2;1,f;"";2,f;6;"";3,f;"";4,f;"";5,f;"";6,f;"";7,f;"": 2e,f;7;" ";e+1,f;" ";e+2,f;"";e+3,f;" ";e+4,f;" ";e+5,f;" ";e+6,f;" ";e+7,f;" ";e+8,f;" ";e+9 ,f;" ";e+10 ,f;" ": "in the oven","the kitchen","e","by a shed","the back window","w","in a flower garden","the wooden gate","e","in the library","the bedroom","n","outside a crooked house","inside the crooked house","e","in the vegetable garden","the kitchen","s"  music data [6:6::F$="THE":Y=2:X=14:SCR=2:1:2000:'' ! " " "" " #" " $" " % " " & " " '!" " ("" " )"" " *"" " +"" " ,"" " -!" " 0*:2;" THE MICRO ADVENTURES OF" 1-2;"PRINCESS POPPY & THE FROG PRINCE" 39:1;2;" By KRISTIN & MARTIN HOLLIS "; 4MF$=" DATABASE PUBLICATIONS":X=4:Y=2:SCR=1:2000 FF=255:4925= G lMA=14:F(A)=4:A:D$(LOC,1)="N"F(1)=0 v)D$(LOC,2)="S"F(2)=0 )D$(LOC,3)="E"F(3)=0 )D$(LOC,4)="W"F(4)=0  A=0 xI$=:A=A+1:I$="n"I$="s"I$="e"I$="w"I$="u"I$="d"I$="g"I$="i"I$="m"I$="r"I$="l"A=10 1940  1935 A10 23068Z,F(1):23100L=12:.16~# =,524:.14~\(,513:L  RASPBERRY & UURGH  1.3&fff,-45-   GLOW-WORM (SL=110 :.09}8Q,38&:.05|L,33!:.01z# =,502:L 2fL=15:.09}8Q,38&:.01z# =,30:.05|L,33!:.01z# =,502:L < FSNARL & FLY AWAY P1,-45-:L=010 :.01z# =,L:L:L=11 21:.005y# =,L:L:L=225571.5@:.003xD,L:L:L=15:.005y# =,568:L Z  EXPECTANT L=010 .05|L:.01z# =,L*5:.01z# =,0-L:L:L=3010 -1.2:.005y# =,L:L:L=10 301.2:.005y# =,L:L:L=08:.005y# =,30:.005y# =,30.5t:L:  WITCH LAUGH L=17:.01z# =,10 :.005y# =,-30:.01z# =,12 :.005y# =,-30:L:L=18:.01z# =,5:.005y# =,-20:.01z# =,7:.005y# =,-1:L:L=15:.01z# =,-8:.01z# =,-9 :L  PICKUP OBJECT TL=15:.01z# =,18:.01z# =,20:L:.1}L,-18  'R"G/Sword"1:23736\,181:100d:"pop"65173,353a   fyxcF DATABASE PUBLICATIONSlpd~ANpop agc|8MQ Q |8|8|8|8M0 P|8:M: Y:P YJ(vFF_*6&%%%K6\ *{\w,w,>26K7 C;D!84  ><<@@<<BB<<~@|@@~~@|@@@>BB<DHpHDB@@@@@~BfZBBBBbRJFB