Jump to content
selgus

Atari Portable Project

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

Share this post


Link to post
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

Share this post


Link to post
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.

 

Share this post


Link to post
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

Share this post


Link to post
Share on other sites
Posted (edited)

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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites
5 minutes ago, selgus said:

Yeah, I talk a lot with Sijmen, and know all of those spots where compatibility is needed.

So you had that covered already. Marvelous :)

  • Like 1

Share this post


Link to post
Share on other sites

Just have the ATARI custom chip sockets remaining, on the new revisions with SIO support..

 

 

atari67xePortable-sans-custom.jpg

  • Like 12

Share this post


Link to post
Share on other sites

Some surface mount LED's under those transparent keys would be epic!  FUJI Rainbow RGB leds...

 

This is looking awesome! I cant wait to build one.

Share this post


Link to post
Share on other sites

That would look so gay.

:(

 

  • Haha 1

Share this post


Link to post
Share on other sites

You might be adding some things back in for fujinet or dracary use... but hey that happens over time

Share this post


Link to post
Share on other sites

XEGS donor board, pretty much picked clean, for this project and some parts that other folks needed..

 

 

xegs-donorboard.jpg

  • Like 3

Share this post


Link to post
Share on other sites
13 hours ago, rockdoc2010 said:

Some surface mount LED's under those transparent keys would be epic!  FUJI Rainbow RGB leds...

 

This is looking awesome! I cant wait to build one.

Backlit keys would be awesome for using it in the dark

Share this post


Link to post
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

Share this post


Link to post
Share on other sites
Posted (edited)

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

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites
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.

 

Share this post


Link to post
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.

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