Jump to content


+AtariAge Subscriber
  • Content Count

  • Joined

Community Reputation

116 Excellent

About warerat

  • Rank
  • Birthday 09/14/1974

Contact / Social Media

Profile Information

  • Gender
  • Location
    Houston, TX

Recent Profile Visitors

10,852 profile views
  1. As far as the differences between the 256K and 1MB versions of the MIO, the official ICD ROMs were created from the same assembly source, with a macro defining which version to build (their comments, not mine): if ameg jsr comkey ; waste 3 bytes... 1Meg and 256K versions lda #$10 ; are not same size else lda #$04 endif This is why there is an offset between both ICD versions. My guess is they did this to obfuscate the differences to discourage folks from upgrading themselves and having them do the memory upgrade for you. The other variants you might find out there likely just have one-byte difference ($04 vs $10). All this means is someone just patched the max bank byte on the 256K version to run on a 1MB, otherwise they are identical. I know 1.2 is of ICD origin, but doesn't really have any major changes. Use at your own risk. MIO12M.128
  2. 1. Mainly the latter but there are conditions where accessing ANTIC and GTIA I/O space disables the databus buffer and there are conditions where it is enabled because the personality board, cart slots, PIA, and POKEY need to be connected to the CPU. 2. Because the logic qualifying when to connect the data bus to the other half that isn't local to the CPU needs a small adjustment. 3. Yes, the internal I/O decoder select needs a couple more address lines (A5-A7) to qualify when to turn off GTIA so the foldback addresses don't trigger the internal register. Chase ended and mystery solved.
  3. I took that 1200XL splash screen file and reworked it to go into the self-test code space. The 6502 code in that 1200XL splash xex posted is pretty... baroque. I hope that wasn't Atari coding because I did the same thing with almost 200 less bytes. I also made one with a colorful ANTIC 4 fuji I ripped from some Atari music tutorial disk. To see them, boot up with no disk drives or BYE from BASIC. It appears the self test code isn't computed in the main checksum so you can just drop that 2K into the ROM without any other changes. atarixl-rev2-1200xlselftest.rom atarixl-rev2-fujiselftest.rom
  4. warerat


  5. Possible bad 3086. Swap A109 with A110 or one of the other CA3086.
  6. I always wanted one of these back in the day. Anyone actually have one?
  7. Modified to write unique filename based on CRC32 (for example D1:9201359A.ROM) so you don't overwrite the same file. dl850rom.xex
  8. This is actually how I did the proof of concept to see if the 850 was executing anything. I connected a LED between pins 7 and 11 and wrote a loop to incrementally write all of the values to the printer port and if the D7 LED blinked I knew it worked. If you want to do this in BASIC: 10 FOR I=0 TO 5:READ A:POKE 1536+I,A:NEXT I 20 DATA 96,1,130,141,0,169 30 POKE 768,80:POKE 769,1:POKE 770,32:POKE 771,128:POKE 772,0:POKE 773,6:POKE 776,6:POKE 777,0:POKE 778,6 40 POKE 779,0 50 INPUT VAL 60 POKE 1540,VAL 70 X=USR(ADR("hLYd")) 80 GOTO 30 IMPORTANT: The lowercase d inside the ADR in line 70 is inverse video. When you run it, whatever value you input is written directly to the 8-bit printer port D0-D7 without intervention from the printer driver.
  9. There are two traces cut (one on top and one on bottom) and a transistor is used as an inverter.
  10. Not really an issue anymore. I wrote a reset program, just run it to cold start the 850 with out powering anything off: http://atariage.com/forums/topic/289938-bare-850-printed-circuit-board/?p=4267216
  11. Pretty unremarkable, really. Just a 2532 EPROM with a handwritten label. 9201359A.ROM
  12. I pulled out my 850's and set up a test machine in a corner. I knew at least one of my 850's was guaranteed to have different firmware.
  13. Sorry for hijacking this thread one last time. I did a code shrink/optimization (saved over 60 bytes) so it shaved a few seconds off the download time, plus you get some progress feedback now in the form of a period every 256 bytes while it's downloading (16 dots = 4K). It takes about a minute because there is a high SIO call overhead to pull the 850 firmware into local memory. There are three SIO commands sent for every two bytes extracted (6144 SIO command frames in total): one test/execute command that uploads 6502 code to read a pair of ROM addresses, and two direct back-to-back status commands from R1: and R2: to read that byte pair back. dl850rom.xex
  14. I downloaded the 850 source from Curt's website a couple of years ago and discovered there is one part missing. What is missing is the actual relocator code and offset tables that you get before the handler, but I was able to recreate that and can create a byte exact ROM from them using modern tools. Apparently it was a very manual process to put the binary together back in the day as they had to hand modify the source for the checksums and the filler bytes to align to 4K (this is documented in the source).
  15. Updated to download the firmware and print out the CRC32 checksum. Press RETURN to save the file or any other key to exit. The CRC32 for my 850 ROM is 2CF990B9. dl850rom.xex
  • Create New...