Jump to content
IGNORED

Omnivore, the Atari 8-bit Binary Editor


playermissile

Recommended Posts

OK, sorry about that. 0.8.5 is available: https://github.com/robmcmullen/omnivore/releases/tag/0.8.5

 

Fixed a few more bugs:

 

* As a default, populate the Save Segment As dialog with the segment name
* Fixed map mode to update fonts in tile map & character set map after changing fonts
* Fixed variable name typo in segments list
* Added context menu to map editor
* Fixed flickering UI when selecting segment
* Fixed right click on segment to save the segment on which the user clicked, rather than selected segment
* Fix for incorrect segment saving
  • Like 1
Link to comment
Share on other sites

Hi, and thanks for all the recent updates...

 

A small problem in Windows 7 64-bit for the last couple of versions: a portion of the file/segment is selected upon opening.

 

attachicon.gifselect.jpg

 

 

Any chance you can send me that cartridge file? I can't find a file on my system that shows the same problem. You can send me a PM or email at feedback@playermissile.com

Link to comment
Share on other sites

Are the any CLI instructions or a mass extract for K-files.. My first effort named the extracted k-file Kboot executable.xex and I was hoping for an extracted file name similar to the input file name..

 

If you want a command line tool, you can install my small python library atrcopy, which is available here: https://pypi.python.org/pypi/atrcopy

 

If you don't have python installed, you'll need python 2.7 first, then do: `pip install atrcopy` and you'll get a command line tool to look at stuff:

$ atrcopy ANALOG52.XFD 
ANALOG52.XFD: XFD Disk Image (size=92160 (720x128b) Atari DOS Format: 707 usable sectors (40 free), 14 files
File #0  (.2.u.  004) DOS     SYS  037
File #1  (.2.u.  041) DUP     SYS  042
File #2  (.2.u.  083) AUTORUN SYS  002
File #3  (.2.u.  085) MENU    SYS  021
File #4  (.2.u.  106) DEVILS  BAS  088
File #5  (.2.u.  194) RAMBUGIIOBJ  036
File #6  (.2.u.  230) DUMPMATEBAS  045
File #7  (.2.u.  275) VBI1    BAS  026
File #8  (.2.u.  301) VBI2    BAS  026
File #9  (.2.u.  327) VBI3    BAS  027
File #10 (.2.u.  354) RAMBUG  M65  182
File #11 (.2.u.  545) DUMPMATEAMA  025
File #12 (.2.u.  570) MIDAS   OBJ  109
File #13 (.2.u.  679) RAMBHI       001
$ atrcopy arkanoid2.atr 
arkanoid2.atr: ATR Disk Image (size=39312 (307x128b), crc=0 flags=0 unused=0) KBoot Format: 38911 byte executable
File #0  (...u.  004) arkanoid2xex  304

and if you want to extract files within the disk image, you'd use the '-x' flag:

$ atrcopy -x arkanoid2.atr   
arkanoid2.atr: ATR Disk Image (size=39312 (307x128b), crc=0 flags=0 unused=0) KBoot Format: 38911 byte executable
File #0  (...u.  004) arkanoid2xex  304: copying to arkanoid2.xex
Edited by playermissile
Link to comment
Share on other sites

Any chance you can send me that cartridge file? I can't find a file on my system that shows the same problem. You can send me a PM or email at feedback@playermissile.com

 

It has nothing to do with that particular cartridge file; the same thing happens with any file (XEX, ATR, etc.).

 

I just noticed something though. When I use <ENTER> to confirm my file choice, it doesn't happen. So it's when I use the mouse-pointer to confirm my file choice -- by double-clicking -- it happens, and the selection end-point is exactly where the mouse-pointer is when the file is opened. So it has something to do with interpreting mouse clicks, etc.

Edited by MrFish
Link to comment
Share on other sites

 

 

If you want a command line tool, you can install my small python library atrcopy, which is available here: https://pypi.python.org/pypi/atrcopy

 

If you don't have python installed, you'll need python 2.7 first, then do: `pip install atrcopy` and you'll get a command line tool to look at stuff:

and if you want to extract files within the disk image, you'd use the '-x' flag:

 

I get an importerror: No module named numpy

Link to comment
Share on other sites

 

Turns out there is both a bug in my atrcopy install script and a bug in python. The latest atrcopy attempts to work around it, but probably you'll need to do the `pip install numpy` before `pip install atrcopy`

I also had to install vcpython from Microsoft.. to get all the correct paths for the install.

:thumbsup: :) :)

  • Like 1
Link to comment
Share on other sites

Okay all installed numpy atrcopy and I open cmd box in the python27 folder and type atrcopy and receive error atrcopy not recongnized as an internal command

operable program or batch file.

pip is recognized but not atrcopy..

 

It has to be in the path, just like any other executable.

  • Like 1
Link to comment
Share on other sites

New version! 0.9.0 available here: https://github.com/robmcmullen/omnivore/releases/tag/0.9.0

 

Multiple selection: select disjointed areas by holding down the Control key (Command on Mac). Operations on the selected regions will treat the data as a contiguous chunk of data even though there are gaps in the physical data.
NOTE: Operations on multiple selection does not yet work in map edit mode.
Also, ATR/XFD images in Atari DOS or SpartaDOS format will be parsed and files will appear as segments. These files appear as a linear string of bytes when viewed in segment mode (and can be operated on in that view, regardless of their sector arrangement in the disk image).
Additionally, the Page Map view has been moved to a popup menu on the sidebar so it doesn't take up so much screen real estate.
  • Fixed perspective restoring so it only happens once for each task type in each window
  • Changed left click so it's now possible to set cursor position only, without a 1 byte selection
  • Basic fix for rectangular paste; multi-selection not yet implemented
  • Added preferences for map width, bitmap width
  • Added cursor highlighting for FontMapScroller
  • Moved memory map view into springtabs for hex edit mode
  • Fixed selection adjustment upon switching segments
  • Added SpartaDOS support as of atrcopy version 2.2
  • Added simple heuristic algorithm to invert the rectangular selection
  • Added invert selection menu item
  • Added multiple selection mode: ctrl to add new regions, select to extend the current region
  • Workaround for windows: it's possible to get a mouse motion event without a mouse down when user double clicks on file open dialog
  • Fixed selection dragging in grid that automatically started editing a cell
  • Added filename to window title bar
  • Like 4
Link to comment
Share on other sites

Would it be (reasonably) possible to flag illegal opcodes in the disassembly?

 

Do you mean, for example, flagging the LAX undocumented instruction somehow? I've been thinking about adding other disassemblers, so maybe one for straight 6502 with no undocumented opcodes, and one with 6502 + all the undocumented mnemonics. Maybe illegal opcodes in the former case would be highlighted in red or something? I'm also going to add flags where you can tell it what bits of code are data sections so it won't try to disassemble those areas.

 

And even more: I'm going to add comments where you can attach some documentation to ranges of addresses as you reverse engineer something. The locations with comments will be highlighted in a different color (in hex, bitmap & disassembly views) so you'll be able to see where your notes are.

  • Like 2
Link to comment
Share on other sites

That sounds like a good start. I believe that LAX is one of the most commonly (ab)used illegals. I want the demos to work.

 

All you illegal programmers listen up. Just think how nice it would be if I could show my old User Group buddies all your really cool demos. As it stands, I have to explain to them that there are some great demos, but I can't show them to you running fast off of my hard drive because the programmers chose to be assholes!

 

With Rapidus and F7 about to be released, are you going to shit on Lotharek? I would hope not.

Link to comment
Share on other sites

  • 2 weeks later...

If I read this right, you're complaining about the fact that software, written for a specific CPU, doesn't run on a non-compliant CPU...

The CPU is compliant, it's the programmers who are not.

 

When the 6502 was first designed, there were certain opcodes that were unused. The designers did not publish them as valid opcodes. Later on people found that a few of them work, and can save a byte or two here and there in their code. That code works on the 6502, but not on the improved 65C02, which treats invalid opcodes as NOPs.

 

Along comes the 65c802 and 65c816 chips that are completely compatible with the 6502, but have more instructions (opcodes) to choose from. All 256 opcodes have a meaning on these chips, so those invalid opcodes now do something completely different than the programmer intended.

 

That's why the use of undefined, undocumented, invalid, illegal (there are many names) opcodes was discouraged by the original chip designers. They were reserved for future expansion from the very beginning.

 

No software published by Atari (or any major software house) used these illegals. The 65c816 will run all Atari software just as the 6502 did.

Edit: with very few exceptions.

 

The Demo-scene is where you normally find the use of these illegal opcodes. The coders claim they are necessary for speed, but that is usually not the case. They have gotten in the habit of using as many illegals as possible in an attempt to obfuscate their code to make it difficult for those with disassemblers.

 

If they would only run a simple test (just a few lines of code) to determine the CPU type, then they could write demos that also run on the 816, and have lots of new (and valid) opcodes to use. In other words: If it's a 6502, then use illegals (if you must), but if it's an 816, then use the new and more efficient instructions to make your demo better and faster than ever. The block move instructions alone can save many bytes of code and many CPU cycles.

 

To learn more about the 816, read the link in my post here: http://atariage.com/forums/topic/249405-new-4mb-ram-expansion/page-4?do=findComment&comment=3453397

Edited by Kyle22
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...