Search code examples
pythondbftheosmemo

What is a Memo Backup File ? Retrieving data from a .TBK file dump (TheOS POS Sytem)


Recently i have been shared a TBK file dump from a legacy TheOS - POS System. My major objective is to extract the Sales data from this binary file.

I have tried to open the file with notepad and it looks encrypted.

From what i know

  • tbk are memo files that FoxPro can understand (on the process of trying this)
  • tbk are file format of the DBase System, Database memo backup file
  • there is a python libray to parse the DBF files

Questions

  1. What is a Memo BackUp File ?
  2. Does the TBK file contain all the data, should i look into parsing it ?
  3. Should i be looking for a more standard dump file like DBF from the TheOS POS system so i can use the existing Python library to get the data ?

Would really appreciate the help !!


Solution

  • As you said, a file with the extension .TBK could be the backup of a DBT file (belonging to dBASE-style DBF) or of an FPT file (belonging to FoxPro-style DBF), to mention only the most common ones.

    Typically, these memo files hold variable-length free-form information and they get written in modification order. A new chunk is allocated whenever a memo value is written and a pointer to the beginning of the chunk is written to the memo field in the DBF; some systems may overwrite old orphaned values that are longer than the new value to be written but not all of them do. Some systems deduplicate values but most do not. Hence the memo backup is fairly useless without the DBF it belongs to - in general you wouldn't even be able to demarkate individual memo values reliably or tell which record and field a given memo value is for (no back pointers of any kind) except by guessing based on the actual contents. Most of the interesting data is likely to be in fixed-length fields in the actual DBF, not in the memo file.

    This is for DOS and Windows - no idea whether TheOS/OASIS uses the common file structures or not.

    The same holds for encryption. Under DOS or Windows, table files can be encrypted via third-party components that intercept file operations between the DBF engine and the OS. These components were very popular when POS systems were written in FoxPro, dBASE or Clipper. Under TheOS it's anybody's guess...