Commit Graph

326 Commits

Author SHA1 Message Date
Rob McMullen
b6a81a10b2 Moved the reconstruct_missing checks into __setstate__ 2017-03-28 16:11:26 -07:00
Rob McMullen
c28a3426f9 Added serializable memory map dict in segments 2017-03-28 15:48:10 -07:00
Rob McMullen
053c7a773e Changed get_xex to return segments: root segment & list of sub-segments 2017-03-26 22:19:09 -07:00
Rob McMullen
2e3a6147d5 Removed use_origin flag and assume any segment with a start_addr > 0 is meant to have an origin 2017-03-24 22:07:57 -07:00
Rob McMullen
c897460df0 PEP8 whitespace fixes 2017-03-23 10:06:37 -07:00
Rob McMullen
6f29e6053a Added resizable segments 2017-03-22 22:34:21 -07:00
Rob McMullen
7da17d65bc Reduced number of Atari cartridge groups to 2: 8-bit and 5200 2017-03-20 23:55:36 -07:00
Rob McMullen
491589d686 Added 'use_origin' flag to let disassembler know that it has a real origin in memory so that labels are meaningful 2017-03-20 23:48:59 -07:00
Rob McMullen
e7f0b49c34 Added comments for VTOC, Directory sectors in Atari, Apple DOS formats 2017-03-20 23:12:54 -07:00
Rob McMullen
f152a7dd2d Change to data style for some known locations 2017-03-20 14:29:08 -07:00
Rob McMullen
72c4fb430a Use parser name as the name of the default segment 2017-03-20 13:37:51 -07:00
Rob McMullen
a7b24e705e SegmentParser now stores ref to segment data so it can reparse without having to pass that in again 2017-03-19 13:07:19 -07:00
Rob McMullen
da7c7830bb Fixed data_base, style_base for indexed segments 2017-03-19 11:53:44 -07:00
Rob McMullen
592abfa0ee Fixed get_comment_locations to return unindexed style so those segments using OrderedWrapper will work 2017-03-18 20:54:36 -07:00
Rob McMullen
b7aa965d47 Fixed get_entire_style_ranges if split_comments passed in a None 2017-03-18 20:10:29 -07:00
Rob McMullen
7ad688854c removed some debug prints 2017-03-18 19:27:01 -07:00
Rob McMullen
d9ced9fbd2 Fixed get_comment_locations: was using a copy and returning a subset of the original 2017-03-17 23:43:43 -07:00
Rob McMullen
46409addae Fixed variable name typo 2017-03-15 06:13:04 -07:00
Rob McMullen
f34ec6e084 Addded git_style_mask/ get_style_bits to export list 2017-03-15 06:11:24 -07:00
Rob McMullen
026417b295 Added better comment save/restore methods 2017-03-13 11:49:35 -07:00
Rob McMullen
f1b0f5ebac Added faster comment splitting
* added functions to copy a segment & its base so comments can be marked on the copy of the base and show up in the copy of the segment
2017-03-13 07:05:37 -07:00
Rob McMullen
bdf0b67075 Fixed segment rawdata copy for non-indexed segments 2017-03-12 21:46:24 -07:00
Rob McMullen
bd4ff9569a Added copy function to raw data 2017-03-12 17:01:28 -07:00
Rob McMullen
476f0cd568 Added splitting-on-comments when using get_entire_style_ranges, refs: https://github.com/robmcmullen/omnivore/issues/117 2017-03-12 14:16:08 -07:00
Rob McMullen
5f9acaa802 Added UnsupportedDiskImage error to show that the disk has a known format but it's not able to be parsed 2017-03-07 11:05:16 -08:00
Rob McMullen
e38b94fc0c Added extra parameter to ScreenSaver encode_data method
* intended to be a link back to the user interface in case it needs to use a dialog to get more info from the user
2017-03-04 17:21:25 -08:00
Rob McMullen
e980019bf6 Moved Atari boot disk-specific stuff out of base class 2017-03-02 12:28:05 -08:00
Rob McMullen
d23f1abda7 Fixed Atari boot disk so it's recognized again 2017-03-02 12:16:22 -08:00
Rob McMullen
334fc3644c reordered display of command line arguments when using -h 2017-02-27 12:38:28 -08:00
Rob McMullen
ea09ec8833 Changed remove to delete: renamed argument -r to -d 2017-02-27 11:56:08 -08:00
Rob McMullen
1f7d82c208 Fixed file type setting adding a file to DOS 3.3 2017-02-26 21:43:20 -08:00
Rob McMullen
6910cb4539 Fixed adding a file to a disk with zero directory entries 2017-02-26 21:35:30 -08:00
Rob McMullen
1262e23df6 Fixed an argument list after refactoring 2017-02-26 19:55:12 -08:00
Rob McMullen
3e3a547634 removed debug prints 2017-02-26 19:12:32 -08:00
Rob McMullen
9a87d10326 Added extra metadata command to print out lots of info about dirent 2017-02-26 17:08:55 -08:00
Rob McMullen
f00ef7cbea Fixed variable name typo 2017-02-26 15:26:40 -08:00
Rob McMullen
1011b2dd12 VTOC now respects starting sector label when printing out grid 2017-02-26 15:23:05 -08:00
Rob McMullen
28f2d11be2 Atari DOS disks should start from sector 1 2017-02-26 15:22:28 -08:00
Rob McMullen
eda250185e Fixed file deletion that was not updating the VTOC 2017-02-26 14:23:58 -08:00
Rob McMullen
e9af557200 Added option to show vtoc 2017-02-26 14:14:25 -08:00
Rob McMullen
74b0a63ef6 Changed meaning of --all to operate on all files rather than just extract all files 2017-02-26 14:10:01 -08:00
Rob McMullen
f4057f6ad5 Added Dirent abstract base class and ability for find_dirent to take filename or dirent 2017-02-26 14:06:29 -08:00
Rob McMullen
4d1f17677d Added pretty printing of VTOC by track
* changed VTOC, Directory classes to keep pointer to header, not just sector sizes
2017-02-26 13:34:07 -08:00
Rob McMullen
151cf06115 Added --shred command line arg to fill free sectors with zero 2017-02-26 13:07:36 -08:00
Rob McMullen
91dc32e430 Added missing argument to create_executable_file_image 2017-02-26 12:45:54 -08:00
Rob McMullen
718101d4a4 Added -b command line flag to add raw data to executables 2017-02-26 12:31:34 -08:00
Rob McMullen
07cdb05ba2 Added -s command to use pyatasm to assemble MAC/65 source and place it in a file in the disk image 2017-02-26 12:14:23 -08:00
Rob McMullen
3e77cb86bc Added automatic data byte marking for XEX expanded files 2017-02-24 23:48:10 -08:00
Rob McMullen
39b988863c Extract load addr for DOS 3.3 binary files
* automatically mark first 4 bytes of binary file as data
* made summary, file_type properties
2017-02-24 23:36:08 -08:00
Rob McMullen
55fd4f00c6 Gracefully handle ProDOS images by saying they aren't supported 2017-02-24 22:20:35 -08:00
Rob McMullen
58932b5bd7 Config logger so it doesn't say it can't find any handlers 2017-02-24 22:20:07 -08:00
Rob McMullen
08be06df62 Updated to version 4.0 for upcoming release 2017-02-24 22:05:41 -08:00
Rob McMullen
d19dd3b218 Added file manipulation commands to atrcopy script 2017-02-24 11:57:51 -08:00
Rob McMullen
8ec391edc9 Removed some debug prints 2017-02-24 10:39:47 -08:00
Rob McMullen
efb0d6ef28 Added count of free sectors based on VTOC allocation table 2017-02-24 10:14:38 -08:00
Rob McMullen
9733aa4777 Changed get_filename() into a property 2017-02-24 08:42:04 -08:00
Rob McMullen
4485cd7e63 Fixed deleted flag and track/sector list length. Most delete tests pass 2017-02-23 22:54:01 -08:00
Rob McMullen
fe5fc502ca Progress in deleting DOS 3.3 files 2017-02-23 22:16:18 -08:00
Rob McMullen
2558a51826 Fixed DOS 3.3 directory sector linking. Tests are starting to pass! 2017-02-23 19:51:22 -08:00
Rob McMullen
605f77afb3 Removed SectorBuilder class; fixed DOS 3.3 track/sector list
* put SectorBuildeR functionality into DiskImage
2017-02-23 19:16:22 -08:00
Rob McMullen
9e1e60420c Added missing method for KBoot 2017-02-23 19:10:52 -08:00
Rob McMullen
f04db6bf29 Fixed directory loading; was referencing first_directory on disk image object 2017-02-23 15:59:42 -08:00
Rob McMullen
4514e46161 Fixed parsing of disk images broken after recent rearrangement of classes 2017-02-23 15:34:56 -08:00
Rob McMullen
6e8cf1c4c4 Moved some classes to different files, fixed Atari dos tests
* consolidated bytes_per_sector and sector_size (which mean the same thing) into sector_size
* moved AtrHeader, XfdHeader to ataridos.py
* moved base classes like WriteableSector, SectorList, etc. to utils.py
2017-02-23 14:23:29 -08:00
Rob McMullen
f84cea7170 Moved file creation classes to utils.py
* prefer to pass around header than individual attributes so instances can get what they want
2017-02-23 13:53:32 -08:00
Rob McMullen
35c13bb9d5 Added BaseHeader for superclass 2017-02-23 13:02:56 -08:00
Rob McMullen
04edbed853 Fixed VTOC bit packing and unpacking 2017-02-23 12:04:14 -08:00
Rob McMullen
fe01a97c1f Progress on DOS 33 VTOC using complicated numpy manipulation.
* not complete, and may be easier to understand by using a reorder on the raw bytes rather than trying to convert to 16 bit values and skipping every other
2017-02-22 23:19:12 -08:00
Rob McMullen
b87335dfa8 Fixed directory name output; still not passing any tests 2017-02-22 14:01:54 -08:00
Rob McMullen
5a1718bf1d Changed sector labels for DOS 33 to report track, sector rather than sector number 2017-02-22 12:12:52 -08:00
Rob McMullen
3157b13727 Added tests for DOS 33 disk images; code still failing all tests, but making progress 2017-02-22 12:11:56 -08:00
Rob McMullen
4928a35700 Added DOS 33 disk image to package level exports 2017-02-22 12:11:28 -08:00
Rob McMullen
d851a06ae1 WIP on DOS 3.3 support 2017-02-22 07:19:52 -08:00
Rob McMullen
7151739ad3 Added transaction support to write & delete files.
* if error occurs, disk image returned to state it was before the call
2017-02-22 05:42:40 -08:00
Rob McMullen
ea92e91865 Added file deletion for Atari DOS 2017-02-21 23:07:24 -08:00
Rob McMullen
c0340a1807 Fixed file number in Atari DOS files 2017-02-21 19:49:03 -08:00
Rob McMullen
767e76671b First code to add files to an Atari DOS image 2017-02-21 19:25:47 -08:00
Rob McMullen
0ba5c8546c Removed view saving stuff and added uuid
* the viewer should save any view params, not the segment (there might be multiple views, for instance!)
* viewer can reference uuid as key into view params dictionary
2017-02-21 11:22:31 -08:00
Rob McMullen
a34dc24aeb Added missing attributes of DefaultSegment if old versions are restored through unpickling 2017-02-19 22:25:22 -08:00
Rob McMullen
73a4fff34c Updated version number for cursor save position 2017-02-19 15:49:06 -08:00
Rob McMullen
0078187cb9 Added attributes to save view position 2017-02-19 15:48:01 -08:00
Rob McMullen
904f7f13cc Changed data_bit_mask into just one of the user_bit_masks.
* data_bit_mask just becomes one of the set of mutually exclusive choices
2017-02-17 00:06:27 -08:00
Rob McMullen
87f60ab569 Added more comment convenience functions 2017-02-09 22:55:29 -08:00
Rob McMullen
9cf61e5a82 Added convenienc functions to get style, comments at list of indexes 2017-02-09 14:20:03 -08:00
Rob McMullen
10e89f6730 Updated version number to 3.3 so omnivore can require it 2017-02-07 19:58:11 -08:00
Rob McMullen
a609bf10db Added iterator over comments in a segment 2017-02-07 19:14:02 -08:00
Rob McMullen
1f302f8f5b Added check for degenerate case in get_entire_style_ranges 2017-02-06 14:08:30 -08:00
Rob McMullen
c3b6fb252c Added get_entire_style_ranges to return indexes that break up segment by style changes 2017-02-05 14:46:54 -08:00
Rob McMullen
bef03c961c Added convenience function for unindexed copy of data 2017-01-31 22:43:42 -08:00
Rob McMullen
a84ac0dac1 Updated version number to indicate significant bug fix 2017-01-05 23:49:45 -08:00
Rob McMullen
bdd711cb3c Added missing tostring implementation of OrderWrapper 2017-01-05 23:46:50 -08:00
Rob McMullen
d7f5f0c92d Updated bugfix version 2016-10-01 18:43:21 -07:00
Rob McMullen
3a988495e8 Added extra verbosity to show parsing error 2016-10-01 18:42:39 -07:00
Rob McMullen
7e51284cb1 Fix for non-standard boot headers using a single sector instead of usual minimum of 3 sectors 2016-10-01 18:42:02 -07:00
Rob McMullen
df38db492a Fixed MAME rom check to allow 16 byte ROM images instead of minimum 256 byte 2016-10-01 18:40:40 -07:00
Rob McMullen
dc3d4c1899 Updated bugfix version 2016-09-22 11:03:47 -07:00
Rob McMullen
441c6f449f Fix for stale code in 130k disk image support 2016-09-21 15:24:50 -07:00
Rob McMullen
089363167f Updated version number to indicate DOS 3.3 support 2016-07-28 19:56:25 -07:00
Rob McMullen
71268cd0fa Attempt to handle bad track/sector list in DOS 3.3 image 2016-07-28 19:37:40 -07:00
Rob McMullen
f6a929f915 Added DOS 3.3 boot segments 2016-07-20 18:55:05 -07:00
Rob McMullen
c89b89f9a7 Fixed sector number offset for raw sector labels 2016-07-20 18:12:07 -07:00
Rob McMullen
a4726f1c5a Initial support for DOS 3.3 VTOC 2016-07-20 17:37:38 -07:00
Rob McMullen
ac8b750c44 Added ProDOS placeholder disk image 2016-07-20 10:03:29 -07:00
Rob McMullen
c6ef73358a Removed sector size assumption of 128 bytes if non-standard disk image size 2016-07-20 10:02:49 -07:00
Rob McMullen
74ea705347 Initial DOS 3.3 detection 2016-07-20 08:14:32 -07:00
Rob McMullen
d3265737ca Don't insert title or author when user supplies bootcode for XEX header 2016-06-12 10:13:59 -07:00
Rob McMullen
1dc003d65f Added origin to default string representation 2016-06-09 10:05:14 -07:00
Rob McMullen
f64ffb777b Added user data serialization and expanded user data to actually use the user_index field so multiple types of user data are actually supported 2016-06-06 14:31:51 -07:00
Rob McMullen
2b7d895f80 Added new class UserExtraData to expand the capability for storing additional data in the global segment
* moved comments into this class
2016-06-05 23:30:18 -07:00
Rob McMullen
8f8fbb3bbd Updated version 2016-06-03 16:16:37 -07:00
Rob McMullen
0171d85d31 Added customizable title & author screen for xexboot images 2016-06-03 16:14:52 -07:00
Rob McMullen
20feb9c96a Added checks for invalid cart type and added unit tests 2016-06-03 13:05:16 -07:00
Rob McMullen
f969d27e43 Added MAME segment parsing from Omnivore 2016-06-03 12:40:48 -07:00
Rob McMullen
d8b100fd95 Updated version to 3.0.0 2016-06-03 11:01:11 -07:00
Rob McMullen
75077e238f Reordered cartridges 2016-06-02 22:58:11 -07:00
Rob McMullen
22a832e46f Grouped carts > 128K into large cart MIME type 2016-06-02 22:51:16 -07:00
Rob McMullen
4a32078757 Restructured order of cart list so index & cart type don't correspond any more
* added get_cart convenience function to look up cart data from cart type
2016-06-02 17:18:06 -07:00
Rob McMullen
7500aafce1 Added strict/relaxed checking to allow autoload scanning to match as narrowly as possible
* added cart image names from atari800 source
2016-06-02 16:59:59 -07:00
Rob McMullen
be7dd609c7 Initial support for parsing cartridge images 2016-06-02 15:09:34 -07:00
Rob McMullen
0b6b704667 Added addl sanity checking for boot sector params in BootDiskImage 2016-06-02 13:00:21 -07:00
Rob McMullen
68de323d3f Added better error checking for atari DOS executables 2016-06-01 15:37:28 -07:00
Rob McMullen
f1038329ee Added parsers and MIME type definitions from Omnivore
* restructured main script to use parsers, replacing the old logic
2016-06-01 15:11:30 -07:00
Rob McMullen
ea9466cda7 Added segment interleaving support 2016-05-17 14:53:52 -07:00
Rob McMullen
0f209cf50a Fixed indexing of sub-arrays 2016-05-10 11:37:01 -07:00
Rob McMullen
4c4da4bf38 Added add_atr_header and removed hack to insert a header into an already existing disk image
* until I think of a better solution, forcing you to create an entirely new disk image
2016-05-05 23:11:06 -07:00
Rob McMullen
a8af883d1f Added custom bootcode to add_xexboot_header 2016-05-05 23:10:28 -07:00
Rob McMullen
6d2f483f40 Changed to my own bootloader rather than kboot 2016-05-05 17:44:20 -07:00
Rob McMullen
eaca5e166a Added XEX creator from a list of segments 2016-05-05 17:14:23 -07:00
Rob McMullen
cfe6c775bb Added ability to create ATR header 2016-05-05 13:59:56 -07:00
Rob McMullen
bc7097dfd0 Fix for incorrect ObjSegment call when there's a short segment header 2016-05-04 11:18:50 -07:00
Rob McMullen
b977322a4e Initial attempt at adding kboot header 2016-05-03 23:21:01 -07:00
Rob McMullen
ccebfdf354 added get next/previous change in style mask 2016-04-29 11:37:50 -07:00
Rob McMullen
fd9ebe61b2 Added not_user_bit_mask 2016-04-29 11:37:32 -07:00
Rob McMullen
f2873c8b7d Added support for diff_bit_mask and displaying differences between two segments 2016-04-28 19:00:42 -07:00
Rob McMullen
7ed99d614f Fixed KBoot segment creation 2016-04-25 11:57:41 -07:00
Rob McMullen
6a924a5970 Removed wxpython specific get_file_dialog_wildcard out of atrcopy & added more descriptive class attribute names for segment saver info 2016-04-19 16:01:05 -07:00
Rob McMullen
74bbc5c67f Fixed style mask for user defined bits 2016-04-18 15:44:09 -07:00
Rob McMullen
02ba76f358 Changed to labeled bit mask constants rather than hard-coded bit values
* changed to one user bit mask value rather than separate bits
2016-04-18 11:54:29 -07:00
Rob McMullen
e9640269f9 Added exception when base index out of range in a normal (non-indexed) segment
* matches what happens in indexed segments
2016-04-18 10:34:40 -07:00
Rob McMullen
2edfc1786c Added user style bits 2016-04-15 15:53:54 -07:00
Rob McMullen
7cb1c13703 Added some convenience functions: reverse index mapping, valid index check, and sorted comments list 2016-04-13 16:12:23 -07:00
Rob McMullen
d246b7ca70 fixed bug in get_raw_index that wasn't returning int when there was no base array 2016-04-13 15:46:46 -07:00
Rob McMullen
19b90e9305 set _search_copy in segment so restoring using __setstate__ will have that attribute 2016-04-12 19:57:28 -07:00
Rob McMullen
b3e5005b56 bug fix release 2.6.1 2016-04-12 17:53:49 -07:00
Rob McMullen
15742653aa Fix for reconstruct_raw on old data that doesn't have _order_list 2016-04-12 17:53:12 -07:00
Rob McMullen
97394e0e89 Added some logging, version number to 2.6.0 2016-04-12 17:13:33 -07:00
Rob McMullen
a33e5aa6b2 Added segment parsing of DOS files within ATR images
* removed IndexedByteSegment; moved segment order info into SegmentData and OrderWrapper
2016-04-12 17:04:21 -07:00
Rob McMullen
1ab03e2612 Fixed typo in Atari DOS vtoc parsing 2016-04-12 11:47:27 -07:00
Rob McMullen
ae9a3e7f92 Updated version to 2.5.1 2016-04-11 15:03:05 -07:00
Rob McMullen
76b656ad88 Added get_first_comment convenience method 2016-04-11 14:44:20 -07:00
Rob McMullen
5266c5837d Added clear_comment utility method 2016-04-11 11:36:55 -07:00
Rob McMullen
218cfeafe8 Changed get_comment to return empty string instead of None 2016-04-09 16:34:08 -07:00
Rob McMullen
9835c0521f Added text comments 2016-04-05 22:55:08 -07:00
Rob McMullen
d8236e4edd Added pseudo-serialization for segments, and unit test 2016-04-05 15:48:24 -07:00
Rob McMullen
5465edcfdf Added error checking for valid VTOC 2016-03-28 15:48:46 -07:00
Rob McMullen
66e7c14ddb Changed permissions to 644 2016-03-25 16:09:29 -07:00
Rob McMullen
c8ccd73779 Added SegmentData class and updated to version 2.5.0 in preparation for adding comments 2016-03-25 16:08:50 -07:00
Rob McMullen
3c2f6df828 Added clear_style_ranges 2016-03-10 10:34:12 -08:00
Rob McMullen
31085bd83e Update version to 2.4.0 2016-03-06 22:27:05 -08:00
Rob McMullen
44341691f0 Added bool_to_ranges to convert numpy boolean result to list of ranges 2016-03-06 21:38:59 -08:00
Rob McMullen
7549140abe Added a 'data' style that acts as a flag to the disassmebler to not disassemble this region 2016-03-05 20:58:30 -08:00
Rob McMullen
06aa3bfa9b Added verbose info for segments using dirents 2016-03-05 20:53:08 -08:00
Rob McMullen
d6fec961b8 Added verbose_info property for segments allowing more descriptive text 2016-03-04 23:52:05 -08:00
Rob McMullen
f2f36f11c5 Fixed mistake in EmptySegment constructor 2016-03-04 13:02:59 -08:00
Rob McMullen
18b53b8fcb Updated version number to 2.3.3 2016-03-02 14:30:29 -08:00
Rob McMullen
8918ebf3c6 Added boot segment parsing for raw boot disks (no assumptions about valid DOS flags in the boot sector) 2016-03-02 14:25:12 -08:00
Rob McMullen
320c5af153 Fixed check for boot disk image: doesn't work to assume initialization address at 4-5 is valid or JMP address at 6-8 are valid 2016-03-02 14:05:32 -08:00
Rob McMullen
fdfb1b85c5 Updated to 2.3.2 to publish fix for IndexByteSegment 2016-02-18 11:47:28 -08:00
Rob McMullen
18a12c0225 Changed IndexedByteSegment to use numpy array as order so fancy indexing works in __getitem__ 2016-02-18 10:17:21 -08:00
Rob McMullen
cfaca75052 Include scripts in MANIFEST.in; new version 2.3.1 2016-02-15 22:00:55 -08:00
Rob McMullen
671b55b981 Fixed style operations on IndexedByteSegment 2016-02-13 11:34:45 -08:00
Rob McMullen
2846da9334 Fixed bitmap sector size 2016-02-13 11:34:23 -08:00
Rob McMullen
42d2a977cc Added function to return ranges of selected styles 2016-02-12 22:53:58 -08:00
Rob McMullen
c30aaa451a Fixed single density boot sector indexing for double density disks 2016-02-12 22:01:39 -08:00
Rob McMullen
9f88cd22d2 Fixed some imports 2016-02-12 21:36:08 -08:00
Rob McMullen
3f40a914ea Split monolithic atrcopy.py into multiple files in the atrcopy package
* fixed setup.py to work with package format
2016-02-12 20:36:33 -08:00