import { type TzxEncoder } from '../TzxEncoder.js'; import { type BufferAccess } from '../../../common/BufferAccess.js'; /** * .TZX file processor used for ZX Spectrum, Amstrad CPC and MSX * * additional layer between adapter and encoder * * Format descriptions: * - TZX (ZX Spectrum): http://k1.spdns.de/Develop/Projects/zasm/Info/TZX%20format.html * - CDT (Amstrad CPC): https://www.cpcwiki.eu/index.php/Format:CDT_tape_image_file_format * - TSX (MSX / Kansas City Standard): https://github.com/nataliapc/makeTSX/wiki/Tutorial-How-to-generate-TSX-files */ export declare class TzxProcessor { private readonly encoder; constructor(encoder: TzxEncoder); processTzx(ba: BufferAccess): void; private processBlock; private processStandardSpeedDataBlock; private processTurboSpeedDataBlock; private processPureToneBlock; private processPulseSequenceBlock; private processPureDataBlock; private processPauseBlock; private processGroupStartBlock; private processGroupEndBlock; private processTextDescriptionBlock; private processMessageBlock; private processArchiveInfoBlock; private processHardwareTypeBlock; private processCustomInfoBlock; /** * MSX / Kansas City Standard-like extension of TZX format (TSX) * * https://github.com/nataliapc/makeTSX/wiki/Tutorial-How-to-generate-TSX-files#14-the-new-4b-block */ private processKansasCityLikeBlock; private processGlueBlock; /** * Skip unknown block type * * General Extension Rule: ALL custom blocks that will be added after * version 1.10 will have the length of the block in first 4 bytes * (long word) after the ID (this length does not include these 4 length * bytes). This should enable programs that can only handle older * versions to skip that block. */ private processUnknownBlock; }