Jump to content
IGNORED

Potential new hardware


foft

Recommended Posts

  • 2 weeks later...

I've been playing around with my new (over 1 year old but untouched until now!) SOCkit board recently.

 

The Altera FPGA on this board is interesting in that it also has a physical ARM chip on, typically running Linux. This ARM chip has bridges to the FPGA fabric. Using these I've mapped the Atari core into the ARM memory space. So the ARM can be used for debugging as an accelerator or to play tunes via the pokeys etc.

 

Its running ok though I've still got to get DDR3 RAM, sound, gpio and USB controllers working.

 

I plan to get the standard mode working: Much like the ZPU on other platforms. i.e. firmware that freezes the 6502 then uses Antic to display a menu/select disks/cartridges.

 

Also I'm thinking about another mode: AspeQT for drive emulation (over X), command line tools to type over ssh terminal, reboot, set turbo mode etc.

 

All in all an interesting board, though I would not recommend it to FPGA beginners.

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

Is this just emulating the Atari Core hardware at this point, or are there enhancements like 14 MHz clock, VBXE, and other enhancements? Have cartridge and SIO ports?

There are enhancements.

 

Most boards run the 6502 clock at 28MHz or 56MHz. However there is no cache yet so it's bound by ram latency. Effectively 28MHz on DE1 sram, 7MHz using sdram (other boards). By default the CPU is limited to 1.7MHz for compatibility.

 

Dual pokey, covox, sd card based drive emulator, sd card based cartridge emulator, turbo freezer.

 

Extended ram (with downgrade options 64k, 128k, 320k compy/rambo, 576k compy/rambo, 1MB).

 

No VBXE.

 

2x/4x antic DMA speed implementation partially implemented. For high res modes. No software support planned though so I've not prioritised debugging it.

 

Real SIO and cartridge on DE1 only - an interface needs building though.

Edited by foft
  • Like 2
Link to comment
Share on other sites

You probably need to run ANTIC/GTIA DMA at 2x/4x speed to get 80 columns, or 320/640 multicolor graphics. Would be great for word processor and text applications. Games it probably require 4x with higher CPU clock speed or else the Antic DMA will tie up the BUS too much.

Link to comment
Share on other sites

Better would be to emulate VBXE, since that exists in physical hardware and provides 80 column natively. There's already software written for it too. No sense dreaming up some other mods that only exist in this emulator/hardware implementation.

No, the VBXE is closed and there is no interest in cooperation.

Link to comment
Share on other sites

Closed? It's implemented in the open-source Altirra.

So is antic! Though I guess that is more open after decapping!

 

Edit: I mean hardware regs are described, a software emulation exists in altera but the hardware itself is closed.

Edited by foft
Link to comment
Share on other sites

Sadly, the whole machine+VBXE would probably fit in some of the roomier dev board FPGAs. Reverse engineering the VBXE to make it happen simply isn't worth it for the tiny handful of software written for it. Most people buy a VBXE just for the nicer RGB display anyway. Some cool hardware 80-column support would be nice but other than that, I'm not too interested in expanded graphics capabilities.

Link to comment
Share on other sites

You probably need to run ANTIC/GTIA DMA at 2x/4x speed to get 80 columns, or 320/640 multicolor graphics. Would be great for word processor and text applications. Games it probably require 4x with higher CPU clock speed or else the Antic DMA will tie up the BUS too much.

 

Would it be possible to make RAMdual-ported/dual-bussed/whatever the description is, so that ANTIC and the CPU can access RAM at the same time without the chip DMA tying up the CPU?

  • Like 1
Link to comment
Share on other sites

Would it be possible to make RAMdual-ported/dual-bussed/whatever the description is, so that ANTIC and the CPU can access RAM at the same time without the chip DMA tying up the CPU?

Much of making the system compatible at 1x is making sure these clash:) I can move them out of alignment quite easily.

 

For higher speeds there is plenty of bandwidth. For sdram, which is more latency bound, it can burst several bytes at once. Character data could be cached and the rest of antic access is mostly sequential.

 

Edit: to answer the question directly too. Internal block ram, yes. External ram (sram/sdram) no. For most platforms I'm using external ram - bigger.

Edited by foft
Link to comment
Share on other sites

foft,

 

Firstly - an inspiring and amazing project!

 

Is there a problem writing to SD cards on with the current build (2014-12-14)?

I'm running on a brand new (xmas present!) DE1 board which also seems to require the SDRAM only switch set.

 

I can read ATR files fine, but any disk write produces an error. Tried with two different SD cards, same result. I can write to the same ATR files fine on a real atari 65xe with homemade SIO2Arduino.

 

Any ideas?

 

Robin

Link to comment
Share on other sites

Hi Robin,

 

Not that I'm aware of. Though to be honest I've only tested saving a few basic programs. In the firmware menu does it show 'rw' on the images? I check the read only flag on the disk and in the atr. Which error are you getting and with what software?

 

Interesting your sram doesn't work. Thought all that was in the past. Which chip do you have?

Link to comment
Share on other sites

Hi Robin,

 

Not that I'm aware of. Though to be honest I've only tested saving a few basic programs. In the firmware menu does it show 'rw' on the images? I check the read only flag on the disk and in the atr. Which error are you getting and with what software?

 

Interesting your sram doesn't work. Thought all that was in the past. Which chip do you have?

 

The disk images show up as RW in the firmware.

I've got the error in a couple of places. Trying e.g. SAVE "D1:TEST.BAS" from BASIC after booting into DOS 2.5 fails with Error - 139. I've tried that on a couple of images, one downloaded from an archive, the other created myself using a command line ATR utility.

 

Regarding the SRAM - the datasheet on the CD is for the IS61WV25616EDBLL, which matches the chip on the board.

I've tried Mike Stirlings DE1 ZX Spectrum - which failed at first until I modified the project with the pin setting patch described earlier in this thread.

 

Hope this helps,

Robin

Link to comment
Share on other sites

I just doubled checked the latest DE1 build you are using and the simplest:

boot dos25.atr

10 ? "hi"

save "d:test.bas

 

works... Something this simple is definitely failing for you? Or are you saving large files?

 

I should check I've not dropped any of the sram settings.

 

Will have a think...

Link to comment
Share on other sites

I just doubled checked the latest DE1 build you are using and the simplest:

boot dos25.atr

10 ? "hi"

save "d:test.bas

 

works... Something this simple is definitely failing for you? Or are you saving large files?

 

I should check I've not dropped any of the sram settings.

 

Will have a think...

 

Yes, just ran your example as is, and it fails with Error - 139.

My DOS 2_5.ATR shows as DOS 2 5.ATR RW MD (underscores show as space in your firmware).

Have attached to this post.

DOS2_5.ATR

Edited by electrotrains
Link to comment
Share on other sites

Just tried creating a blank disk (Single density) in SIO2OSX, so I could try to save to that - however I needed to format it first from DOS 2.5, on the DE1 which didn't work (Error 138).

Also downloaded a single density copy of DOS 2.5 and booted from it, then tried saving a BASIC file to that, but still get error 139.

 

So no luck for me saving or formatting even to single density.

 

I've attached the single density ATR of Dos 2.5

Dos 2.5 alt.atr

Link to comment
Share on other sites

I've looked into this.

 

The DOS2.5 I have is using 0x50 (write without verify)

The DOS2.5 version you are using is using 0x57 (write with verify).

 

There is a bug in write with verify in my drive emulation. I forgot to seek back to the original location before reading...

 

I'll put out another version.

Link to comment
Share on other sites

Foft,

 

Glad it was a real bug and I wasn't wasting your time - looking forward to the new version.

 

If you need any help with this project I'd be happy to lend a hand (time & 2 young kids permitting!). It would be great to get it 100% working, but I know how difficult it can be to do that.

 

My VHDL is practically non-existant - its a steeper learning curve than expected, but I've been programming C for years (I wrote a ZX Spectrum emulator from scratch years ago), so could help out with the ZPU stuff if you need any help there.

 

Robin

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