Jump to content
IGNORED

Atari Portable Project


selgus

Recommended Posts

2 minutes ago, mytek said:

Wow!!! :-o

 

That's going to be sweet!

 

So you are not only a fantastic hardware guy, but also a software genius as well. Will this new BIOS also work in a stock XEGS with the CF card added? If so people are going to want to use it outside of your system as well.

 

Thanks :)

 

I am an old-school assembly language programmer at heart, so I enjoy both the software and hardware sides. I've been working the last 14 years at Electronic Arts, so I don't really get an opportunity to do this kind of development any longer at work.

 

This BIOS is very specific to my hardware, as I remove support for all the hardware I know won't be in the portable. But I have been doing this with assemble-time feature flags, so I could build I version with some of the areas I've removed, put back in.. but some are not as easy, because I reuse that ROM-space for other features.

  • Like 6
Link to comment
Share on other sites

Here are some tests of my 3D printed key-caps and one set of uniques on my keyboard PCB. Each uses a different material, as I wanted to see the quality vs. cost of printing.

 

As for quality, they are all perfect for this project, where I will be painting the keys, then applying water-slide decals that I've laser printed up (the sheet in the upper-right side) and then clear-coat over the decals.

 

I used two different services to see which would be best to do multiple keyboards, if I choose to do so.

 

The lower left, grey key-caps (HP Multi Jet Fusion/Nylon 12, Glass-Filled, Gray) are the ones I would go with (and I printed up a full set of keys in this material), was by far, the cheapest with similar quality.

 

The ones on the keyboard were the most expensive, printed in Natural White, Versatile Plastic.

 

atari67xePortable-keyboard-keys.jpg

  • Like 10
Link to comment
Share on other sites

On 6/22/2020 at 7:26 AM, selgus said:

This BIOS is very specific to my hardware, as I remove support for all the hardware I know won't be in the portable. But I have been doing this with assemble-time feature flags, so I could build I version with some of the areas I've removed, put back in.. but some are not as easy, because I reuse that ROM-space for other features.

Can you go into more detail about this, as to what specific hardware support has been removed? Seems like you would still have to cover all the basics such as: full Pokey, Antic, and GTIA capabilities. So what is missing and/or left out?

 

I could see eliminating Self Test to have an additional 4K of usable space for your routines. I'm also thinking that PBI support would not be needed.

 

Link to comment
Share on other sites

2 minutes ago, mytek said:

Can you go into more detail about this, as to what specific hardware support has been removed? Seems like you would still have to cover all the basics such as: full Pokey, Antic, and GTIA capabilities. So what is missing and/or left out?

 

I could see eliminating Self Test to have an additional 4K of usable space for your routines. I'm also thinking that PBI support would not be needed.

 

Yes, I've removed the self-test code, and the international character set, which are the largest ROM-savings. I've also removed PBI support, since I don't have one. I've removed printer support, back when I didn't have an SIO port (but I don't have the need for it anyway on my portable).

 

I've also removed attract-mode, as I have a built-in LCD and no worries about burn-in, plus it takes cycles from VBLANK and I have been looking to add high-speed SIO support.

 

There is no support for cassette functions, and little things, like light-pen support, PAL hardware support, etc.

 

I had removed paddle support, since it's not part of my hardware, but might add it back to be used on my joystick-1 port on the top of the unit.

 

Like I said, I've done all of this with assemble-time feature flags, with IF/ELSE/END cases when needed. These are some of my flags:

 

.define PALVIDEO	FALSE	; no PAL video support
.define PARALLEL	FALSE	; no parallel bus interface support
.define	PERIPHERAL	FALSE	; no peripheral loading support
.define CARTRIDGE	FALSE	; no hardware cartridge support
.define CASSETTE	FALSE	; no cassette support
.define PRINTER		FALSE	; no printer support
.define SELFTEST	FALSE	; no self-test support
.define ALTSET		FALSE	; no International alternate character-set support
.define LEDS		FALSE	; no PORTB led support
.define PADDLE		FALSE	; no paddle controller support
.define FNKEYS		TRUE	; function keys disabling support
.define CFLASH		TRUE	; IDE/CompactFlash support
.define LOGO		TRUE	; ATARI rainbow boot logo support
.define LOGOMARK	FALSE	; no registered copyright mark on ATARI rainbow logo support
.define	INLINEVBI	TRUE	; inline the deferred vertical blank interrupt return
.define ATTRACT		FALSE	; no attract-mode support
.define	LIGHTPEN	FALSE	; no light pen support
.define FASTFP		TRUE	; fast floating-point math support
.define FASTSIO		FALSE	; no fast serial input/output transfer support
.define BIOSMENU	TRUE	; BIOS loader and configuration menu support
.define	BIOSBMAP	FALSE	; no BIOS bitmapped 50 column menu support
.define BIOSDEBUG	TRUE	; BIOS debugger support

 

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Nice! ? One thing though, if you change the OS, some games and programs won't work because they jump straight into the OS sometimes. It took Mr. Atari like fifteen years to code around all those "illegal" entry points with his MyIDE OS.

 

Edit: on the other hand, Altirra OS is a complete reimplementation (not a hack on top of the XL/XE OS), and I believe it works pretty well with most games. I even have it on real hardware flashed on my U1MB.

Edited by ivop
  • Like 1
Link to comment
Share on other sites

29 minutes ago, ivop said:

Nice! ? One thing though, if you change the OS, some games and programs won't work because they jump straight into the OS sometimes. It took Mr. Atari like fifteen years to code around all those "illegal" entry points with his MyIDE OS.

Yeah, I talk a lot with Sijmen, and know all of those spots where compatibility is needed. :) I am supporting as much as I can, with functionality that is needed for the portable, but if some game made use of knowing there was a function as part of the self-test, and calls it directly.. it won't work on my system.

  • Like 2
Link to comment
Share on other sites

49 minutes ago, mozzwald said:

Backlit keys would be awesome for using it in the dark

Not currently in my plans, but the keyboard was designed to be a totally separate board, with header connections to the CPU board.. so multiple keyboard designs are possible..

  • Like 2
Link to comment
Share on other sites

Wondering, why do you print with nylon filament? I have compared several (affordable) filaments, like PLA, ABS, PETG and Nylon, and I'm very satisfied with PETG, at the moment. Slightly higher temp than PLA, but way better strength and layer bonding. Nylon is said to have better layer bonding, less wear during use, but also slightly more flexible. But it is toxic! The gasses produced during printing are carcinogenic. But perhaps you have a very good ventilated setup with filters and all? When I "warned" you about the illegal OS entry points, you had that covered already, too :)

Edited by ivop
Link to comment
Share on other sites

12 minutes ago, ivop said:

Wondering, why do you print with nylon filament? I have compared several (affordable) filaments, like PLA, ABS, PETG and Nylon, and I'm very satisfied with PETG, at the moment. Slightly higher temp than PLA, but way better strength and layer bonding. Nylon is said to have better layer bonding, less wear during use, but also slightly more flexible. But it is toxic! The gasses produced during printing are carcinogenic. But perhaps you have a very good ventilated setup with filters and all? When I "warned" you about the illegal OS entry points, you had that covered already, too :)

Oh I don't have a 3D printer, I use a service that has very high-end machines.. and that was one of the materials they offered. I wanted to get a nice sampling of different materials and do some test painting/clear coating, and see what gives me the best results.

  • Thanks 1
Link to comment
Share on other sites

While I've been writing code and waiting on some parts, I wanted to see how hard it would be to add 512K SRAM support to my portable. I had to re-layout portions of the board and move some of the logic and the crystal around, but I was able to cleanly route everything. I also swapped out the 7-pin DIN connector on the upper-left with a standard DB-9 joystick port, for joystick-1.

 

I've never programmed a PAL before, but I've been looking over Matthias' SRAM 1.3 code, and I'm using the same GAL, so I think understand this logic. I also included DIP switches for the different RAMDISK options.

 

Not sure if I will build up this version, but nice to know I could, if wanted..

 

 

atari67xePortable-cpu-512K.png

  • Like 6
Link to comment
Share on other sites

Looking good ?

 

Instead of using PALs which are now obsolete, I opted for using a PLD from Microchip: ATF22V10C-15PU (former Atmel part) for the 512K SRAM EMMU. So far it seems to be working fine. I also substituted another PLD from Microchip: ATF16V8BQL-15PU (former Atmel part) for the XEGS MMU. Both of these are currently in production and go for a very reasonable price (under $2 each).

 

Here's the MMU jed: XEGS stock MMU.jed

 

Have you fired up the original version of your board with the custom keyboard yet? Any videos?

 

  • Like 3
Link to comment
Share on other sites

Yeah, I did find some PALs if I wanted to make this version work, so that wouldn't hold me back. Also using a modern SRAM chip.

 

Haven't taken any videos of my current setup, as I am working on a patch for the video signals right now. Need to change a few parts. Meanwhile been working on the firmware.

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
On 5/9/2020 at 9:31 AM, selgus said:

I had seen Ben's portable videos and it is what inspired me to make my own. My goal was to make something that was portable, used real ATARI parts and would be a fun project.

 

I am sure there are plenty of other ways this project could be done, with other goals.. these just happened to be mine.

 

I did make a bunch of PCBs, as in talked to a few of my friends, they would like one of my systems. I also wanted this to be something I could make more of one of, if I desired. That didn't seem to be the goal of Ben's version.

 

The BIOS has actually been quite fun to write, and getting me back into 6502 assembly level coding again.

cool! I want to build one too :)  Could you document your build?  Now I'm off to go find Ben's videos.

 

Link to comment
Share on other sites

  • 9 months later...

Its been a long time between posts.. COVID struck my family and life took over, but I had started to do some redesign work on this project.. so this will be an update on where I am now:

 

atari67xePortable-cpu-sio.thumb.png.57fd722b2936b3ddfa1474125c0b417f.png

The original design, which used a secondary power daughter board, which took a 3.7V LiPo, and delivered 5V for the CPU board, 3.3V for the LCD monitor and an RS-232 USB interface/LiPo charger.

atari67xePortable-cpu-512k.thumb.png.b02c2a56f4adf40ba0a18ed89efc3267.png

I then did a total reworking of the board, adding an additional 512K of SRAM, swapping out the mini-DIN joystick plug for a standard ATARI DB9 and did a full re-layout of all the connections to the ATARI custom chips (to be much cleaner, reliable and better electrically).

 

 

atari67xePortable-cpu-512k-power-top.thumb.png.27b494472fe84afac92c9057465a85c5.png

Next revision eliminated the daughter board for the power converters, and integrated them into the main PCB (with the USB charging circuit being on the underside of the PCB).

atari67xePortable-cpu-512k-power2-top.thumb.png.ebd2be2aed8cef88749a8af889e2e1dc.png

I was concerned about the boost converter chip I selected for the 3.7V to 5V step-up, so redesigned that section to use one that could supply more current.

atari67xePortable-cpu-512k-power3-top.thumb.png.a61e917b36b7fad9a59dec2bca977a1f.pngatari67xePortable-cpu-512k-power3-bot.thumb.png.3045ef5cf10d09938e2e8074730a6622.png

Lastly, my current, and what I have called, my Final revision. I needed to swap out the slide-switch used for the power, with a much beefier toggle-switch and moving the 3.3V DC converter also to the underside (this is only used for the video LCD driver, so was no benefit being on the top layer, outside of convenance). I'm still building up this latest revision, testing out functional modules as I go.

 

The case has also undergone a total redesign, as I didn't like the form-factor. Still doing some of the 3D modeling, have it on paper and converting it into the CAD, but feels much more like a hand-held now. Hope to have something to post on that soon.

  • Like 9
  • Thanks 1
Link to comment
Share on other sites

@selgus looks like you've been making a lot of progress ?  And I'm sorry to hear about your families battle with Covid, I hope all of them are well now.

 

BTW, when this project is completed do you plan on releasing the gerbers and/or manufacturing it ?

Link to comment
Share on other sites

5 hours ago, mytek said:

 

BTW, when this project is completed do you plan on releasing the gerbers and/or manufacturing it ?

I am still unsure how I wish to release this when I'm done. I do want to get it into the hands of others whom might enjoy the portable.. that might be gerbers and board files available on one of the PCB manufacture sites, me building and making available finished boards, or using an assembly house (like I've done with the R2 Builders Club with my lighting systems). Want to first get it bullet-proof and finish the case design, then I'll focus on how to release.

Link to comment
Share on other sites

On 5/9/2020 at 2:11 PM, ivop said:

Auto-routers suck, IMHO. Best PCBs are routed manually. Except for high speed busses, but even then with proper tools you can route those signals manualy and they are automagically of even length (which is important for signal propagation). I think your 1088XEL/XLD boards look as good as they do because you routed them manually :)

 

I am just getting into high speed design myself (as a hobbyist). Any suggestions? I have come across a "black magic" book on it, but that's about it.

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