10 REM > BLib.DiskIOadfs 1.01
   20 REM Disk I/O functions - forces ADFS selection
   30 :
   40 DEFFNdisk(addr%,cmd%,drv%,trk%,sec%,num%,den%):LOCALfs%
   50 fs%=FNfs:IFfs%<>4:*FX143,18,4
   60 REPEATX%?0=drv%+den%*24+8:X%!1=addr%:X%?5=3-7*(cmd%>127)
   70   X%?6=cmd%:X%?7=trk%:X%?8=sec%:X%?9=num%OR&20:A%=127:CALL&FFF1
   80 A%=X%?(7+X%?5):UNTILA%<>&10:IFfs%<>4:OSCLI"FX143,18,"+STR$fs%
   90 =A%
  100 :
  110 DEFFNscsi(addr%,cmd%,drv%,sect%,num%):LOCALfs%
  120 fs%=FNfs:IFfs%<>8:*FX143,18,8
  130 X%?0=0:X%!1=addr%:X%?5=cmd%:X%?6=drv%*32+((sect%AND&1F0000)DIV65536)
  140 X%?7=((sect%AND&FF00)DIV256):X%?8=sect%:X%!9=num%:X%!11=0
  150 A%=&72:CALL&FFF1:A%=?X%:IFfs%<>8:OSCLI"FX143,18,"+STR$fs%
  160 =A%
  170 :
  180 DEFFNlvfs(addr%,cmd%,drv%,sect%,num%):LOCALfs%
  190 fs%=FNfs:IFfs%<>10:*FX143,18,10
  200 X%?0=0:X%!1=addr%:X%?5=cmd%:X%?6=drv%*32+((sect%AND&1F0000)DIV65536)
  210 X%?7=((sect%AND&FF00)DIV256):X%?8=sect%:X%!9=num%:X%!11=0
  220 A%=&62:CALL&FFF1:A%=?X%:IFfs%<>10:OSCLI"FX143,18,"+STR$fs%
  230 =A%
  240 :
  250 DEFFNfs:LOCALA%,E%,Y%:=(USR&FFDA)AND&FF
  260 :