In FreeBASIC the $ after String Variable is deprecated is usefull only if you want use for a compatible program with older BASIC
Follow the example program for understand what do the DIR()
'This example show you how work if want verify the exist file.
Print DIR("lendir.bas") ' Dir("namefile.ext") show the name of file if exist
IF LEN(DIR("lendir.bas")) > 0 THEN 'sa.bas is the name of this file
PRINT "file exists"
END IF
'or you can use this too
IF DIR("lendir.bas") = "" THEN 'If file not exist
PRINT "file not exists"
Else
PRINT "file exist"
END IF
BLOAD
Loads arbitrary data from a file created with BSave, or a compatible BMP image file.
But you Have to be sure if the original code is QB or QuickBASIC because have different way to take the same things
Example fbc myprog.bas -lang qb
doesnt work with this example
try fblite instead qb