Jump to content

Ute

Members
  • Posts

    233
  • Joined

  • Last visited

Posts posted by Ute

  1. On 4/9/2024 at 3:42 PM, manterola said:

    I have some question about Williams cartridges. Who put together the Williams ROMs circulating around the interpipes? , where did they come from? Are they dumps from commercially available cartridges? 

    It looks like someone adapted disk version games to cartridges given the titles I was able to find: Archon2, Alley Cat, Zybex, Colossus Chess.

     

    Hi @manterola,

     

    AFAIK Video 61 converted many games from xex to rom/car. Not sure if they converted all of them.

     

    I have to say that I really like this cart format as it is relatively easy to convert xex to carts. Just a quick example:

     

    I found a version of Breakout by a Peter Falton(Hope he doesn't mind) -  I used this one for it's simplicity, and loaded it in Dis6502:

     

    image.thumb.png.775dc00ba6b0646b71d08aee62b6efe6.png

     

    Two segments should be relatively easy, if there are more segments will add a little complexity but shouldn't be too bad. Next disassembled a few Williams carts to get a feel for the cart headers and it is mostly the same code - just the load to/from addresses change. Looking at the header/trailer, it usually points to this address in the first bank($A032)

     

     

    image.thumb.png.6ab0970a2d6b3e605bcd43eb3aa2b096.png

     

    And here is that section

     

    image.thumb.png.2ca0d445c1cc6d3972c6c2bc1eb2cfc4.png

     

    It copies the top area(Circled in red to low memory $600) and then has another copy routine that copies everything from the cart to memory. The first red section: First byte($01) means copy from bank 1, from the rom memory at $A000 to the ram memory at $3800, it uses $C000 to know its done with that section. The second red section: First byte($02) means copy from bank 2, from the rom memory at $A000 to the ram memory at $5800, etc. The final red section is the same but the $FF after $C000 tells the algorithm its done. The sections circled in green set the DOSINI and DOSVEC to $3800. It turns off the cart and starts running. Using a hex editor we can copy everything to it's relevant location. Finally convert the .rom to a .car and it's done.

     

     

     

    Break-Out.xexBreak-Out.romBreak-Out.car

     

     

    The Wiliiams copy routine isn't super efficient as it is turning the cartridge off and on many, many times while it is copying(Possibly tens of thousands if it's a big file). This could be altered so that it only turns itself off while copying underneath the cart itself($A000 - $BFFF), but I don't know how much time that would actually save.

    • Like 3
  2. On 3/19/2024 at 8:32 PM, phaeron said:

    Interesting... it almost looks like the circuit was designed to be able to support 16K windows as well as 8K windows, with other unused 74LS139 half being wired up to /S4.

     

     

    On 3/19/2024 at 8:35 PM, manterola said:

    Yes I am. For what you posted in the schematics we were pretty close: that clock signal going to flip flop is the same, and the signal going back to Rd 5 is the same. The Williams cart uses a ls175, which I mentioned before, but I used an ls174. 

    I also miss adding a jumper to allow the use  32k eproms, but it is really not that important.

    Once I get my PCBs I can send you a cartridge for your to p lay and explore.

    Edit: as @phaeron pointed out, the main difference is that S5 and S4 are connected to the unused half of the ls139. Probably that hidden banking scheme was never fully implemented, and/or never documented, which it is pretty awesome we are discovering that today.

     

    Yes it's interesting that one half of the 139 isn't used and is hooked up to /S4. I made a replica card just for fun and to make sure the 139 wasn't really hooked up to anything.

     

    It's made exactly as the schematic suggested and works for both the single 32K rom and double rom also.

     

     

    image.thumb.jpeg.db50a96ac4deac327516bda8a12c98be.jpeg

     

  3. I acquired two Williams carts so I was able to reverse the schematic from the cart. But they're different than I expected, they use two 27c256 Eproms instead of one 27c512:

     

     

    image.thumb.jpeg.c80a6fd7d633833bc31337862f805bcc.jpeg

     

    As you can see the front of the card is a mess of wires and the back has 5 chips instead of what I was assuming would be 3. So I burned Archon 2(64K) on two eproms(32K each) a low half and high half, and it worked no problem. Next I burned Blue Max 2001 on a single 32K rom and put it on the left side and it ran no problem also. The specs say that a 16K Williams roms exist but I couldn't find any to test.

     

    Then I just attached the nice breakout boards @Dropcheck made available for free(Thanks!) and started testing each individual pin:

    image.thumb.jpeg.68150674eaafee44658141211046c4f8.jpeg

     

    The additional components are a 6K8 Resistor, .1uf Cap, and a much smaller cap that I couldn't make out a value for except that it is rated for 10V and polarized, the actual value was painted over - on both carts.

     

    image.thumb.jpeg.beaae27d6bce04048f3f88955cd40966.jpeg

     

    If you're interested I could send you one of the carts(No charge) and you could verify my results. Never hurts to have more than one set of eyes. 

    If not maybe someone else is interested in helping document the schematic?

     

    Anyways I got the single chip version up and running:

     

    image.thumb.jpeg.6507e3403b436be7b7a32efaf2fabf0b.jpeg

     

    I did make a tiny mistake - I forgot to put on a jumper for 32K compatibility. 

     

     

     

    • Like 2
    • Thanks 1
  4. On 3/17/2024 at 7:03 PM, manterola said:

    I am sending this PCB for fabrication. Then I will see whether it works or not. If it is working I will share the gerbers if someone is interested.

    image.png.93a816cdc6d40731d6e49c7c064d8ae5.png

    Hi @manterola

     

    I'm curios as to what your final schematic looks like if you don't mind sharing.

     

     

    I went with this design:

     

    image.thumb.png.d87b095593d288f366918f3f392b708b.png

     

    It's based on the original Williams Cart schematic:

    image.thumb.png.fae19c85cbae7cda142ee33d67da0dc3.png

     

  5. Here is a screen shot while debugging Archon 2

     

    image.thumb.png.1e5a83004b1d3475a821413d177d6bcc.png

     

    This bit of code is particularly interesting - First setting bank 5 active(STA $D505), then loading a byte from ROM, then switches the cart off(STA $D508), then stores the value in RAM underneath the ROM.

     

    The game basically copies all of what is contained in the ROM to RAM. This looks to be the same for Arkanoid and Alley Cat. Looking at a few other carts the loader seems to be the same standard code, just the number of bytes to load and addresses to load them to changes.

     

    Can you help me understand why we need to be concerned about the high bits? (A4-A7) It seem like if someone accidentally did something like STA $D5F3, couldn't the high bits just be ignored since in this case they're meaningless? Also the same for STA $D5F8?

     

  6. Hi, thanks for your feedback.

     

    8 hours ago, manterola said:

    That schematics uses the 0s and 1s in the data lines to select the banks. Which makes sense in XE cartridges.

    Well, I'm confused on how this works. I've programmed XE Carts, and changing banks is done like this:

     

            lda #$06        ;Bank 6
            sta $D500        ;Set it as current bank    

     

    And then access that bank as normal. I incorrectly assumed that the data lines were bi-directional(I thought I read it in the Altirra Hardware Manual) and that while CCTL was low it was getting the Flip-Flop/Latch data from the data lines. Could you explain what is actually happening, because it doesn't make sense to me that it could set the latch any other way.

     

     

     

    8 hours ago, manterola said:

     

    But according to the description in a couple of sites, Williams banking scheme depends on the address lines: "An access to $D500 selects bank 0, $D501 - bank 1, etc. An access to $D508-$D50F disables the cartridge"

    Therefore, first change is to feed the 74174 with the A3, A2, A1 and A0 instead of the data lines.

     

    Ok, that makes sense I guess since CCTL and S5(or S4) are probably not driven low at the same time then that is where the latch data should be coming from. 

     

    8 hours ago, manterola said:

    Another thing I noticed is that Williams Carts are 8x8kb=64kb max, please confirm that.

    Correct AFAIK.

    8 hours ago, manterola said:

    A2, A1 and A0 flip flop outputs should go EPROM A15, A14 and A13 respectively. A3 should drive the logic to deactivate the cart (i.e. RD5 signal back to the Atari and OE, CE, to the EPROM, see BasicXE cart posted by Sikor for an idea on how to do that).

    The outputs are doing that currently, as well I think RD5 is doing something similar to BasicXE. In my schematic RD5 should always be high until latch 4 becomes high then the signal will be inverted and RD5 will go low and(hopefully) turn off the cart.

     

    8 hours ago, manterola said:

    Now, to ensure that the processor is accessing $D50X (and nor $D512 for example), and follow the description quoted above,  A7 to A4 might go all together with the logic that activates and latch the flip-flops (however, I have no idea if this is really implemented in an original William cart). I am not so sure about it, it might work without that part.

    Something like this or similar:

              _______
    O2 -----o|       |
    /CCTL----| BIG   |
    A7-------| NOR   |
    A6-------| GATE  |
    A5-------|       |o--------> CLK
    A4-------|_______|

    Another thing I would copy from BasicXE cart schematic is the generation of the CLK signal. In your schem. is inverted wrt the BasicXE cart. Since BasicXE cart looks to me closer to the Williams cart design, I will copy that part (probably has something to do with timing differences b/w data lines and address lines).

    I have no way to now if this will ever work, but I will be glad to give it a try, someday, with a game ROM known to work under the Williams 64KB banking scheme.

    I'm not too keen on the BasicXE design, it's the OSS 16K cart that is divided in to 4 - 4K banks, one is fixed and the other 3 selected by A0 and A3. But the banking scheme is really odd - "The cartridge occupies 8 KB of address space between $A000 and $BFFF. Its
     memory is divided into 4 banks, 4 KB each. Bank number 0 (the first one) is always mapped to $B000-$BFFF. Bank in $A000-$AFFF is selected by an access to $D500-$D5FF." 

     

     

    I'll keep trying, thanks for your help.

     

     

  7. Hi @manterola, thanks for your feedback :) 

     

    I realized what I had posted above would not work once I disassembled the Archon 2 Williams cart.  I drew this up in KiCad and it should be closer to what is needed:

     

    image.thumb.png.d4fbf91a02e8e119768a1b5d70935a1e.png

     

    This is sort of a combination of the XE Super Cart and the schematic above. What are your thoughts?

     

     

  8. Thanks @Sikor, these are excellent!

     

    Unfortunately it didn't contain the Williams cart type. Now I am wondering if this type is exclusive to Video 61 and possibly created later, maybe after Jerzy had created all of those nice schematics.

     

    But after disassembling Archon 2, I realized the above schematic will not work for the pcb.  Possibly only a minor alteration I believe, which could be either in software or hardware.  Anyways I'll keep at it and update this thread if I find anything.

     

     

  9. I've been burning a lot of XEGS carts lately, but I would also like to be able to burn the Williams games as well. 

     

    I've searched on Atari Age and the internet but it doesn't seem like anyone ever made pcb's for these.

     

    I did find a schematic, I don't remember who made it, Nir Dary or someone else:

     

    image.thumb.jpeg.2d66ae09f18f78bc6fd490303b021a84.jpeg

     

     

    But it looks like it matches electrically, the description of a switchable Williams Cart(Except this can do 128K, 16 banks instead of 8 )

     

    "Cartridge takes 8KB memory window, and could be turned off by writing to $D5xx, where X has bit 3 on ($D508, as an example). Three lower bits of address select the bank. Number of banks varies, 8 in type 8, 4 in type 22 and 2 in type 76. On the bootup bank 0 is mapped in."

     

    Can anyone give me insight or confirm if this would work? 

     

    I've got it going in KiCad and ready to get some made, but I would like some confirmation before I go wasting money on PCB's.

     

     

     

  10. On 2/29/2024 at 3:57 AM, Max64 said:

    Hi there..thanks for the message 🙂

     

    I thought you already had this cable and just needed to know how that pin was connected

     

    TGB1718:

    5 (Drive 0 select)  >>>   14 (Drive select 0)

     

    zezba9000:

    5 (Drive 0 select)  >>>   10 (Motor enable Drive 0)

     

    Now without thinking too much about Zezba9000, he bought it from a seller and mapped it... so I think it's 99% the correct configuration (except for a mistake in pulling the wires that can be seen with the "Paint"

    My doubt was simply linked to the fact that @TGB1718 also says he connected it identically but with PIN5 to PIN14 and it works...

    This is why I was wondering: how do they both work?

     

     

    Hi,

     

    Sorry for the confusion. I did indeed build two cables, but I sold them with a 520 that I had. So I was going by memory since I no longer have them. 

     

    Did you get it working?

     

     

  11. Hi,

     

    I think it's the Ribbon1.tiff that shows what pin to connect the round cable to. In other words the numbers written in pencil, are the pin numbers for the round connector if I remember correctly. 

     

    Honestly though it's a lot of work. If you can afford it I would probably just buy one of these:

     

    https://www.ebay.com/itm/334756348147?itmmeta=01HQBZZY0XF0EXPD1S2N1XS6W8&hash=item4df10880f3:g:WakAAOSwDIdj804R&itmprp=enc%3AAQAIAAAA8ONSNaLdFm6mH5b7STOBwN7Lkq%2F7OxZvQiccWSw1Vp24KgzBzPVS7AhgZ%2B8z97SQ4D0eCbMZZAUIaTpaO9dBhGS0AKYlB%2Ft403vUogT%2FKnHEO7niq0xrBjbF9hMuplGK70vVMHQgJT%2F%2BmrOMt8cSVwFOBa44z7IFWuBCrytBPxgxfxOzt0b7%2FPuoHmkpC%2Flq8txwllzPHTVCJLR3RuKn1FH0FP6XknIHciylD8M2kjTq0azlNUHHbam%2Bn4Hqza0PZGBpcyKLBGFhhlHn1hDNMx85QfbgTRS819v5%2FBK0srWup1eyKu3nUpYoMEf7OnZBTQ%3D%3D|tkp%3ABk9SR9Dg__-6Yw

     

     

    https://www.ebay.com/itm/116070881042?itmmeta=01HQBZZY0TSZ26PXB2J1PPXVJ5&hash=item1b065d1712:g:oSQAAOSwInxfNphw&itmprp=enc%3AAQAIAAAA4E5HJcN7j%2Bw0CkgBt0EcSLpQPbnyCWBu6TpGi%2B4jMXWfxo4jqjD9sP%2B9WwnOSPSpQvQ6J4GgChQz7b7bLaoWLtBpLiMMUdC3T5AZswzaQB5U1CyC0P%2B2Z6KsIHyd7jlYWf9czBLccMafqiYLak42HssgqFBbTg0mdfKzcn9WgHh8sU2dAyXEInJO58Bhgd4cEn6xhTTunVesMWjE21H1sg86v3Zvvm3u6I0qmSclnjAsq7cdH7Txks93XGzR3XorJxS5HhMq%2BJzEGiEdNbPsBERwPvUicQD9gmsdxzBUERyg|tkp%3ABFBMxOD__7pj

     

     

    https://www.ebay.com/itm/196119857154?itmmeta=01HQBZZY0TSYE30B2PZ2NFBRD6&hash=item2da9a78802:g:Hn8AAOSwqw5lcPmh&itmprp=enc%3AAQAIAAAA4IrCotcAtfGRkgUe%2BbQzx8lKkPImXjxJH%2BaBpRZ%2FB8KvZma1no3tNNW2vzxe%2Bi5Uyas5t%2BFQsS4vKtTXqmjlSxSUG4sqqsM%2F993RQ2Q5CGG3VQUfNyyDGOICGJeC%2FdhMRnUWfUaha%2FNxmubuW672JYH5mPurRw%2FrBgFCNWPUUHNRzfQPDIiukUa%2BdfbMuuQmFi4dx%2FoiksdhAwb0lvCRqnQ%2B2qmS1OQBBeJvMyE4Ni5KSwLCNdL3SaR%2FOeAlyw%2FN7PU3yhBvpmBvCsJs0gQr5l2JR16PuhYkFn3Z4O41CNQk|tkp%3ABFBMxOD__7pj

     

     

     

    Good luck! 😉

  12. If it is anything like the A500 Mini then its a matter of loading additional games on a usb stick and running them from there. The A500 is a little more complicated because of the WHDLOAD requirement.

     

    Hopefully it's just a matter of putting additional games on a usb and running them.

    • Like 1
×
×
  • Create New...