#pragma once

enum class OP_MODE
{
	UNKN,
	LINK,
	COMP,
	CL
};

constexpr uint32_t BKT_FLAG_NONE        = 0;
constexpr uint32_t BKT_FLAG_MAKELISTING = (1 << 0);
constexpr uint32_t BKT_FLAG_MAKEOBJECT  = (1 << 1);
constexpr uint32_t BKT_FLAG_MAKETABLE   = (1 << 2);
constexpr uint32_t BKT_FLAG_MAKERAW     = (1 << 3);
constexpr uint32_t BKT_FLAG_MAKESAV     = (1 << 4);

namespace BKTurbo8
{
	int  workCycle(const fs::path &strInFileName);
	void Usage();
	void PrintVersion();
	bool SkipTailString(wchar_t &ch);
	void ParseLine();
	void SaveFile(const fs::path &pathName);
	void PrintLabelTable(const fs::path &pathName, const fs::path &pathExt);
	void CreateSAVHdr(std::span<uint8_t> sav);
}
