Agat DOS 3.3 Viewer/Editor

drop a .dsk, .nib, .aim or .agc disk here, or Open… one
ready
Takes Any disk the emulator takes — .dsk, .nib and .aim, 140K and 840K — and .agc containers, whichever medium of one you pick. Format is detected by size, not by extension.
A file Click one for what can be done with it. View shows what is inside: the text of a T file, the BASIC listing of an A one, and otherwise a hex dump — of the body, of the whole stream, or of a B file at the address it loads at. Code reads a B file as 6502 instructions, from its first byte forward: data inside it comes out as instructions too, and undocumented opcodes are marked, which is where that has happened. .fil is the file with its catalog entry in front, which is what the emulator loads, so a program taken off a disk can be dropped straight onto it; raw is the data stream as DOS stores it and body the contents alone.
Adding Drop a file on the page, or Add file…. A .fil carries its own name, type and lock mark and needs no questions; anything else is asked what type it is, and a B file where it loads. A disk dropped on the page opens instead.
Text View then Edit opens a T file in a box. It reads as UTF-8 and writes back in the Agat character set, every line ending in the $8D DOS wants — the last one too. leading CR is the $8D some editors also put in front of the first line: asm-89's does, and its reader eats the first character of a file without one. It is ticked for a file that already has one.
Saving Only the sectors that changed are touched: a .nib or an .aim keeps every gap, sync field and index mark where it was. Saving a container rewrites it, with the change as a patch on the medium and the image it carries left as it was found.
CLI node tools/dos.js does all of this on a command line, and globs names as well.

Part of agat-web.