twh/f2 Posted September 15, 2007 Share Posted September 15, 2007 Hey *, how can I dump the Atari ROM ? I understand that the 16k ROM is mapped into the memory this way: $0000 - $0FFF $C000 - $CFFF Interrupt handlers, misc routines $1000 - $17FF $5000 - $57FF Self Test code (enabled by PORTB) $1800 - $1FFF $D800 - $DFFF Floating Point routines $2000 - $3FFF $E000 - $FFFF Operating System I thought that it would be fairly easy to do, but I was not able to dump the ROM of my Atari 130 XE and to use the ROM data eventually in the emulator. I must do something wrong. I used the tool "copy-os" .. http://mixinc.net/atari/copyos12.htm#top however, the file created by this tool does not work with Atari800Win. any ideas? is it also possible to "binary save" the rom using dos or spartados? and btw, it's not the dos2.5 header. I removed the 4 leading bytes FF FF 00 00 ... grtx, \twh COPYOS.zip Quote Link to comment Share on other sites More sharing options...
Rybags Posted September 16, 2007 Share Posted September 16, 2007 (edited) Binary files have an initial header of 6 bytes (FF,FF, segment start L/H, segment end L/H) The order you've specified is right. You could just do it with a quick BASIC program: 10 OPEN #1,8,0,"H:OSIMG.ROM" 20 POKE 54017,125 30 A=12*4096:L=4095:GOSUB 500 40 A=5*4096:L=2047:GOSUB 500 50 A=13*4096+2048:L=8192+2047:GOSUB 500 60 CLOSE #1:POKE 54017,253:END 500 FOR D=A TO A+L:PUT #1,PEEK(D):NEXT D 510 RETURN Edited September 16, 2007 by Rybags 1 Quote Link to comment Share on other sites More sharing options...
MEtalGuy66 Posted September 16, 2007 Share Posted September 16, 2007 There is a very fast & easy to use machine language program that comes with REALDOS that will do that.. Ask Steve carden about it.. Quote Link to comment Share on other sites More sharing options...
twh/f2 Posted September 16, 2007 Author Share Posted September 16, 2007 rybags, you are great! the basic program is a bit slow though, but the result works perfectly! thx!! grtx, \twh Binary files have an initial header of 6 bytes (FF,FF, segment start L/H, segment end L/H) The order you've specified is right. You could just do it with a quick BASIC program: 10 OPEN #1,8,0,"H:OSIMG.ROM" 20 POKE 54017,125 30 A=12*4096:L=4095:GOSUB 500 40 A=5*4096:L=2047:GOSUB 500 50 A=13*4096+2048:L=8192+2047:GOSUB 500 60 CLOSE #1:POKE 54017,253:END 500 FOR D=A TO A+L:PUT #1,PEEK(D):NEXT D 510 RETURN Quote Link to comment Share on other sites More sharing options...
Quantum Mechanic Posted October 21, 2015 Share Posted October 21, 2015 Anyone ever compare the output of the CopyOS program and the one-byte-at-a-time Basic program? I'm curious because you have to explicitly clear Bit 7 of PORTB to see the Self Test routines, and parts of the OS are banked out (on XL/XE machines) during disk I/O. I suppose the OS is being banked out and back in between each byte the Basic program is writing. But CopyOS should produce the same output (perhaps minus the binary header). Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted October 21, 2015 Share Posted October 21, 2015 The OS isn't typically banked out during IO. Maybe you're thinking of a PBI BIOS, which maps itself in place of the FP ROM ($D800-$DFFF) every time the external device is selected. Quote Link to comment Share on other sites More sharing options...
Rybags Posted October 22, 2015 Share Posted October 22, 2015 It's buffered IO so any Rom config change wouldn't make a difference anyway. It is possible though to run into problems if Dos tries to do burst mode output and the target area is Rom, though that's an unrelated thing. Quote Link to comment Share on other sites More sharing options...
P1r Posted February 27, 2016 Share Posted February 27, 2016 I'm guessing the addresses are slightly different on my Rev.1 600XL (Swedish)? I just ran through this and the emulator crashed when I tried the resulting file. Can anyone point a very rusty scandinavian in the right direction? Google hasn't been very helpful on the subject... Binary files have an initial header of 6 bytes (FF,FF, segment start L/H, segment end L/H)The order you've specified is right. You could just do it with a quick BASIC program: 10 OPEN #1,8,0,"H:OSIMG.ROM" 20 POKE 54017,125 30 A=12*4096:L=4095:GOSUB 500 40 A=5*4096:L=2047:GOSUB 500 50 A=13*4096+2048:L=8192+2047:GOSUB 500 60 CLOSE #1:POKE 54017,253:END 500 FOR D=A TO A+L:PUT #1,PEEK(D):NEXT D 510 RETURN Quote Link to comment Share on other sites More sharing options...
Rybags Posted February 28, 2016 Share Posted February 28, 2016 For emulation the OS you provide should be a raw image without binary headers. I don't think any form of .Rom file headers are supported either. As such the file size should be an exact multiple of 1024. 10K for 800 OS, 16K for XL, 32K for XEGS. XL OS I believe the order should be $C000 area (4K) followed by Self-Test (2K) followed by $D800 (10K). Quote Link to comment Share on other sites More sharing options...
morelenmir Posted February 28, 2016 Share Posted February 28, 2016 Is it possible to do this via an EPROM writer such as the TL866? Quote Link to comment Share on other sites More sharing options...
Joey Z Posted February 28, 2016 Share Posted February 28, 2016 Is it possible to do this via an EPROM writer such as the TL866? Yes, as long as your EPROM writer supports the pinout of the EPROM you're trying to read. XL and XE lines tended to us 27 series EPROMs for the ROMs (with the exception of BASIC), but 400/800 used two 2532's and a 2516 for the FP ROM, which many modern EPROM writers won't work with unless they have an adapter. 1 Quote Link to comment Share on other sites More sharing options...
morelenmir Posted February 28, 2016 Share Posted February 28, 2016 Yes, as long as your EPROM writer supports the pinout of the EPROM you're trying to read. XL and XE lines tended to us 27 series EPROMs for the ROMs (with the exception of BASIC), but 400/800 used two 2532's and a 2516 for the FP ROM, which many modern EPROM writers won't work with unless they have an adapter. Specifying the IC type of 'STM27128A' I get a binary file with the MD5 hash "06DAAC977823773A3EEA3422FD26A703". I believe this is valid for the early 130XE and late 800XL. Also, although not directly relevant to this thread could you tell me what type of EPROM I should identify the BASIC ROM as? Quote Link to comment Share on other sites More sharing options...
Joey Z Posted February 28, 2016 Share Posted February 28, 2016 Specifying the IC type of 'STM27128A' I get a binary file with the MD5 hash "06DAAC977823773A3EEA3422FD26A703". I believe this is valid for the early 130XE and late 800XL. Also, although not directly relevant to this thread could you tell me what type of EPROM I should identify the BASIC ROM as? I'm not so sure if the BASIC ROM was always like this, but on all the XL/XE I've seen, it's been a 2564 pinout, and it's doubtful again, that any modern EPROM programmer supports this pinout. With an adapter, however, you would probably have no issue reading it as if it were a 2764, just a matter of adapting pinout mostly. 1 Quote Link to comment Share on other sites More sharing options...
morelenmir Posted February 28, 2016 Share Posted February 28, 2016 Many thanks Joey Z!!! Quote Link to comment Share on other sites More sharing options...
BillC Posted February 28, 2016 Share Posted February 28, 2016 Specifying the IC type of 'STM27128A' I get a binary file with the MD5 hash "06DAAC977823773A3EEA3422FD26A703". I believe this is valid for the early 130XE and late 800XL. Also, although not directly relevant to this thread could you tell me what type of EPROM I should identify the BASIC ROM as? There is no point of reading an Atari BASIC ROM, the BIN files are readily available at several sites including Atarimania. http://www.atarimania.com/utility-atari-400-800-xl-xe-basic_s11533.html The Atari BASIC ROM is a 2364, pin compatible with a 2564 EPROM, most modern EPROM programmers don't do 25XX series EPROMs. Some Atari PCBs have paired configuration jumpers which allow changing between 2564/2764 configuration. On these models it\s possible to replace the BASIC ROM with a 2764 by changing the 2 jumpers. Without the jumpers using a 2764 is possible using a socket adapter: http://atariage.com/forums/topic/110394-basic-rom-replacement-eproms/ Quote Link to comment Share on other sites More sharing options...
Kyle22 Posted February 28, 2016 Share Posted February 28, 2016 A 68764 or 68766 EPROM will also work. Expensive and hard to find. You need an older programmer for these as well. But, if you happen to find a lot of them cheap somewhere, they're a good buy. I burned one for an Atari BASIC cart to put Rev. C on it. Quote Link to comment Share on other sites More sharing options...
P1r Posted February 28, 2016 Share Posted February 28, 2016 For emulation the OS you provide should be a raw image without binary headers. I don't think any form of .Rom file headers are supported either. As such the file size should be an exact multiple of 1024. 10K for 800 OS, 16K for XL, 32K for XEGS. XL OS I believe the order should be $C000 area (4K) followed by Self-Test (2K) followed by $D800 (10K). Thanks for that quick response! Well, this is kind of weird now. The addresses you specify are the ones used in the basic routine, provided the self test is at $5000. The resulting file is exactly the right size and comparing it in a hex viewer with a working OS shows only minor differences, which I guess you would expect from the localised version. The first two bytes of the file were different so I'm going to edit them to be the same as the other one. My only issue now is that Atari800MacX hangs when I try the OS file and now won't let me open preferences to change it. ;( Quote Link to comment Share on other sites More sharing options...
voy Posted February 28, 2016 Share Posted February 28, 2016 (edited) Tool to dump Atari XL/XE O.S. ROM / BASIC ROM by F#READY: http://atariage.com/forums/blog/587/entry-11609-tool-to-dump-atari-xlxe-os-rom-basic-rom/ Edited February 28, 2016 by voy 1 Quote Link to comment Share on other sites More sharing options...
P1r Posted February 28, 2016 Share Posted February 28, 2016 Tool to dump Atari XL/XE O.S. ROM / BASIC ROM by F#READY: http://atariage.com/forums/blog/587/entry-11609-tool-to-dump-atari-xlxe-os-rom-basic-rom/ Thanks! I'll give that a try! Quote Link to comment Share on other sites More sharing options...
P1r Posted February 28, 2016 Share Posted February 28, 2016 Well, that was interesting. I tried the Frankenstein tool and the same thing happens, completely hangs the emulator. Also, a brief check in a hex viewer would suggest that the file is identical to what Rybags's BASIC snippet generated. Suggestions as to what to try next are much appreciated... Quote Link to comment Share on other sites More sharing options...
Roydea6 Posted February 28, 2016 Share Posted February 28, 2016 Your emulator does not like the use the 600xl rom. So throw the 600xl rom away and use an 800xl rom. Probably the REV2 rom is closest to 600xl rom. Quote Link to comment Share on other sites More sharing options...
Quantum Mechanic Posted March 2, 2016 Share Posted March 2, 2016 Did anyone ever compare the output of CopyOS to the other methods mentioned in this thread? I'm really curious about the results. There shouldn't be any difference besides a binary header. Quote Link to comment Share on other sites More sharing options...
P1r Posted March 3, 2016 Share Posted March 3, 2016 Your emulator does not like the use the 600xl rom. So throw the 600xl rom away and use an 800xl rom. Probably the REV2 rom is closest to 600xl rom. Thanks for the tip rdea6, but the whole point of the exercise was to get a swedish rom going. I have an American rev2 working rom, so I thought perhaps more people were interested in another rom, as a curiosity if nothing else... 1 Quote Link to comment Share on other sites More sharing options...
Roydea6 Posted March 3, 2016 Share Posted March 3, 2016 (edited) Check out this dumpos file it will probably be the same. But if you are just trying to get this Swedish rom going you should download it here to AtariAge Forums and I will run it through a CRC program and see if it is different or the same as a standard 600XL rom. http://www.horus.com/~hias/atari/#hipatch Edited March 3, 2016 by rdea6 2 Quote Link to comment Share on other sites More sharing options...
P1r Posted March 4, 2016 Share Posted March 4, 2016 Check out this dumpos file it will probably be the same. But if you are just trying to get this Swedish rom going you should download it here to AtariAge Forums and I will run it through a CRC program and see if it is different or the same as a standard 600XL rom. http://www.horus.com/~hias/atari/#hipatch Was that link correct? I didn't find any roms there? I have uploaded my rom here. Feel free to take a look. It does not have the same checksum as any other Atari rom I've tested, but surely that was to be expected? It is a translated version after all... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.