Îõ³h$e:      !"#$%&'()*+,-./0123456789(c) Christina Wuest 2021 BSD-style tina@wuest.me experimental non-portable Safe-Inferred&'(/É×–*:fxpak+Represents a Packet to be sent to the FXPak;fxpakÊValidPacket allows a constraint to be added to functions which would create Packet data, guaranteeing that they are only able to generate packets conforming to the expected specifications of the FXPak<fxpakÚNo arguments - valid only with the Reset, MenuReset, Info, Stream, and PowerCycle opcodes=fxpakÚPath to a given object - valid for Get, List, Mkdir, Delete, and Boot in the File context>fxpakÎPath with an accompanying ByteString - valid only for Put in the File context?fxpakÆSource and destination paths - valid only for Move in the File context@fxpakÓAn address and length of data to be read for non-File context Get and VGet opcodesAfxpak=Two address/length pairs to be read for non-File context VGetBfxpak?Three address/length pairs to be read for non-File context VGetCfxpak>Four address/length pairs to be read for non-File context VGetDfxpakÒA target address and byte to be written for non-File context Put and VPut opcodesEfxpak>Two address/data pairs to be written for non-File context VPutFfxpakÀThree address/data pairs to be written for non-File context VPutGfxpak?Four address/data pairs to be written for non-File context VPutHfxpakÂArguments indicating the desired action taken by a given operationfxpakÀRepresents a value and the address to which it should be writtenfxpak?Represents an address to fetch memory from and a length to readIfxpak+Get the contents of a file or target memoryJfxpak2Write a file to the filesystem or a byte to memoryKfxpak1Read and return between 1 and 4 regions of memoryLfxpak,Write between 1 and 4 bytes to system memoryMfxpakList files at a given pathNfxpak&Make a new directory at the given pathOfxpak'Delete a node in the FXPak's filesystemPfxpakÂMove a node in the FXPak's filesystem from one location to anotherQfxpakReset the SNES/SFCRfxpak"Boot a file at the target locationSfxpakReset the SNES/SFCTfxpak*Return information about the running FXPakUfxpak6Reset the SNES/SFC, returning to the FXPak's main menuVfxpakÑIndicates a response packet A user should never set this for an outgoing packet.Wfxpak5Represents the operation to be performed by the FXPakXfxpakßFile contexts involve manipulation of the FXPak's filesystem, including booting files directlyYfxpakÏSNES contexts involve the system's memory, allowing reading and writing of RAMZfxpak0The context in which a packet's command operates[fxpakôList of Flag data Note: Since this will be reduced to a single bit map, flag duplication is not considered invalidfxpakÐFlags to be encoded as a 1-byte bit map Note: No checking of flag validity is done in the original usb2snesw software and as such research into which combinations produce expected results is still underway\fxpakÀGiven a list of Flags, produce the bit map expected by the FXPak]fxpak=Four address/length pairs to be read for non-File context VGetfxpakÒA target address and byte to be written for non-File context Put and VPut opcodesfxpak>Two address/data pairs to be written for non-File context VPutfxpakÀThree address/data pairs to be written for non-File context VPutfxpak?Four address/data pairs to be written for non-File context VPutfxpak.The Opcode representing the command to performfxpakÑDepending on context, either return the contents of a given file, or read memory fxpakÒDepending on context, either allow the upload of a file, or write bytes to memory!fxpak#Retrieve from 1-4 regions of memory"fxpakWrite from 1-4 bytes to memory#fxpakList files in a given directory$fxpak0Make a given directory on the FXPak's filesystem%fxpak-Delete a given path on the FXPak's filesystem&fxpak=Move a given path on the FXPak's filesystem to a new location'fxpakReset the SNES/SFC(fxpakBoot a given file)fxpakReset the SNES/SFC*fxpak*Return information about the running FXPak+fxpak6Reset the SNES/SFC, returning to the FXPak's main menu.fxpakIndicates a response packet/fxpak0The context in which a packet's command operates0fxpak;In the File mode, files can be managed directly, and booted1fxpakµIn the SNES context, bytes can be written to and read from memory, and all system commands (e.g. reset, powercycle, reset to menu, system info, and stream data) are passed through4fxpak?@ABCDEFGHIJKLMNOPQRSTUVW0XYZ[95\]^_/.,+*)('&%$#" !-`ab3214ã"fxpak-0.1.2-L64bTwweIQT4JSV6eurjNZSystem.Hardware.FXPakSystem.Hardware.FXPak.Internal AddressSettargetvalue AddressGetstart dataLengthFlag SkipReset OnlyResetClearXSetX StreamBurst NoResponse Data64BytesFlags ArgumentsNonePath PathContents PathRenameGetBytes GetBytes2 GetBytes3 GetBytes4SetByteSetByte2SetByte3SetByte4OpcodeGetPutVGetVPutListMkdirDeleteMoveResetBoot PowerCycleInfo MenuResetStreamTimeResponseContextFileSNESMSUConfigPacketFXPakopenwithpacketsend ValidPacketNone'Path' PathContents' PathRename' GetBytes' GetBytes2' GetBytes3' GetBytes4'SetByte' SetByte2' SetByte3' SetByte4'Get'Put'VGet'VPut'List'Mkdir'Delete'Move'Reset'Boot' PowerCycle'Info' MenuReset' Response'File'SNES' fromFlagscontextopcode arguments Arguments'Opcode'Time'Stream'Context'Config'MSU'