10 REM > BLib.Context 1.01 12-Aug-2011
   20 REM Read and write filing system context
   30 REM ------------------------------------
   40 :
   50 REM -----------------------------------------------
   60 REM FNfs_RdCSD - Read current filing system context
   70 REM -----------------------------------------------
   80 REM Returns 0 or a value to pass back to PROCfs_WrCSD()
   90 :
  100 DEFFNfs_RdCSD
  110 LOCAL fs%,csd%,B%:fs%=FNfs:IFfs%<4:X%?3=fs%:=!X%
  120 IFfs%=16:=FNargs(&FE,25,0)OR&A0000000
  130 IFfs%=8:csd%=&1114:!X%=&FFDD:A%=5:CALL&FFF1:IFX%?4=76:csd%=&C314
  140 IFfs%=8:FORB%=0TO3:!X%=csd%+B%:CALL&FFF1:X%?(5+B%)=X%?4:NEXT:X%?8=(X%?8DIV32)OR&80:=X%!5
  150 IFfs%=5:B%=FNNet_Info(6,0):csd%=OPENIN"@":csd%=FNNet_Info(7,(B%AND&FF00FF)+csd%*256):=B%OR&5000000
  160 IFfs%=4:B%=ASCFNgbpb(6):=B%+256*name%?1+&4000000
  170 =0
  180 :
  190 REM --------------------------------------------------
  200 REM PROCfs_WrCSD(csd%) - Restore filing system context
  210 REM --------------------------------------------------
  220 REM On entry, csd%=0 or a previous context from FNfs_RdCSD
  230 :
  240 DEFPROCfs_WrCSD(csd%):IFcsd%=0:ENDPROC
  250 LOCAL fs%,B%:X%!5=csd%:fs%=X%?8:IFcsd%<0:fs%=((fs%-96)DIV32)*8
  260 OSCLI"FX143,18,"+STR$fs%:IFfs%<4:ENDPROC
  270 IFfs%=16:A%=FNargs(&FD,25,csd%AND&1FFFFFFF):ENDPROC
  280 IFfs%=8:X%?8=X%?8*32:csd%=&1114:!X%=&FFDD:A%=5:CALL&FFF1:IFX%?4=76:csd%=&C314
  290 IFfs%=8:A%=6:FORB%=0TO3:!X%=csd%+B%:X%?4=X%?(5+B%):CALL&FFF1:NEXT:OSCLI"DIR @":ENDPROC
  300 IFfs%=5:B%=FNNet_Info(6,0):CLOSE#((B%AND&FF00)DIV256):B%=FNNet_Info(7,csd%):ENDPROC
  310 IFfs%=4:OSCLI"DIR :"+CHR$X%?6+"."+CHR$X%?5:ENDPROC
  320 ENDPROC
  330 :