Jump to content
IGNORED

Learning to accept Atari quirks


rbairos

You are granted one magic wish for the Atari 2600  

24 members have voted

  1. 1. What would you choose:

    • 6502: A fourth register 'Z' (2 cycle xfer: TXZ TZX TYZ TZY, TZA TAZ , TSZ TZS Also: ldz (zp),Y lda (zp),Z lda zp,Z (and INC, DEC, ADC, etc)
    • Pixel clock that is 2 CPU cycles wide
    • Separate missile colors
    • Separate colors for score mode
      0
    • Color palette more evenly split between upper and lower 64
      0
    • VDELP0 VDELP1 on same register
      0
    • Full playfield storage, instead of one half.
    • A third sprite
    • Automatic HMOVE strobing
    • separate NU and SIZE controls for sprites.
    • 6502: 1 cycle instruction
    • STA WSYNC1 (wait 1 pixel after horizontal sync)
      0
    • C/S and/or R/W lines brought out to the cartridge.
    • More default RAM
    • 6502: instruction to zero a register or memory
      0
    • Joystick and paddle trigger buttons on same connector line
    • cartridge access to RDY + W lines to halt + go to town on the COLUBK register
      0
    • Combined 4 cycle Load + Store opcode, as opposed to LDA, STA, etc..
      0

  • Please sign in to vote in this poll.

Recommended Posts

other - put the missing signals out through the cartridge port. That would allow for adding RAM without having to repurpose an address line as the read/write line, and make implementing things like DPC+, CDF, and BUS much easier as you could look for the correct signals instead of trying to recreate them by monitoring changes in the address lines.

 

After experiencing the quirks of atari programming for last two or three weeks, Ive come up with a magical wish list for fun.

Let's see if I get this poll option working properly..

 

 

Edited by rbairos
Link to comment
Share on other sites

If I'm being totally honest, I don't actually have any wishes for any more hardware improvements to the 2600. Hahaha. The limitation is a really nice challenge, and in many ways the 2600 really does take care of some of the most difficult stuff for you.

 

More sprites would be nice, but you really can cheat your way out of that issue.

 

Ah! I just realised what I'd improve. More RAM, and bigger supported ROM sizes than just 4KB - although bank switching isn't really a big issue...

Link to comment
Share on other sites

True enough,I wouldn't change it either, as the whole art is to create within the constraints. But it is a fun exercise enumerating all the strange little limitations and short-cuts they took.
I just added a few more.

Edited by rbairos
Link to comment
Share on other sites

other - put the missing signals out through the cartridge port. That would allow for adding RAM without having to repurpose an address line as the read/write line, and make implementing things like DPC+, CDF, and BUS much easier as you could look for the correct signals instead of trying to recreate them by monitoring changes in the address lines.

  • Like 3
Link to comment
Share on other sites

other - put the missing signals out through the cartridge port. That would allow for adding RAM without having to repurpose an address line as the read/write line, and make implementing things like DPC+, CDF, and BUS much easier as you could look for the correct signals instead of trying to recreate them by monitoring changes in the address lines.

Yah for sure. I got that one as "C/S and/or R/W lines brought out to the cartridge." That's probably the one that's most chintzy since it wouldnt have cost them much to expand the cartridges by one row (two edge paths).

 

Link to comment
Share on other sites

I'm torn between a Z register, a third sprite, and a full playfield. I voted for a full playfield because in a lot of situations you don't have time to update it. This is especially true when you are bashing RESP0 and RESP1 over and over in the kernel to make multiple copies.

 

While we are dreaming, I would also like a register bit to toggle between playfield modes setup as it is now (using PF0, PF1, and PF2) and the proposed full playfield (using five eight bit PFx registers).

 

The Z register would be super cool if it could support fast 2 cycle transfers like:

TXZ

TZX

TYZ

TZY

Transfers between index registers = me happy.

 

And then:

TZA

TAZ

 

TSZ

TZS

 

Also it would be desirable:

ldz (zp),Y

lda (zp),Z

lda zp,Z (as well as INC, DEC, ADC, etc..)

  • Like 1
Link to comment
Share on other sites

Pixel clock that is 2 CPU cycles wide​ means the clock for the 6507 is the pixel clock divided by 2 instead of being divided by 3 like it is now right? In other words the 6507 is clocked 50% faster.

 

You're also missing a superscalar 6502 with L1 cache. I'm sure some out of order execution would go nicely with timing critical memory mapped I/O.

Link to comment
Share on other sites

It's hard, because some of these could be helpful only sometimes. For example, having full 40-bit playfield control would be nice, until you want to do a simple mirrored playfield that only takes one or two writes. And having 2 color clocks per cycle would make kernel timing easier, but it would cut the horizontal resolution from 160 to 106.

Link to comment
Share on other sites

other - put the missing signals out through the cartridge port. That would allow for adding RAM without having to repurpose an address line as the read/write line, and make implementing things like DPC+, CDF, and BUS much easier as you could look for the correct signals instead of trying to recreate them by monitoring changes in the address lines.

 

I wonder how hard it would be to infer/reconstruct R/W from what you see on the busses (ie with something far short of a full processor)

I mean (disregarding branches and page crossings for a moment) if you know the instruction you know what R/W should be for each cycle.

I don't think it would be too hard to sync to instructions, a read or two from a specific address maybe.

So the question in my mind is can you reasonably accomodate branches (still only two possibilities) with what you can see on the

data and address busses. (I think I could live with out page crossings but if you could accomodate them too it would be nice of course, but I think

being able to deal with branches would be a neccessity)

Even if you could only count on your inferred R/W for a short stretch of code before you had to resync it would be very useful.

Link to comment
Share on other sites

 

I wonder how hard it would be to infer/reconstruct R/W from what you see on the busses (ie with something far short of a full processor)

 

 

The real prize wouldn't be reading the R/W line, but writing it. As ZackAttack wrote, you'd just do a WSYNC to get the 6502 off the bus; after that, you could write to the TIA without any restrictions for the rest of the line, updating it every color clock if you like.

Edited by DirtyHairy
Link to comment
Share on other sites

  • 5 weeks later...

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...