MIST development article series in c't magazine

https://github.com/mist-devel/mist-board/wiki

Moderators: Mug UK, Zorro 2, spiny, Greenious, Moderator Team

User avatar
MasterOfGizmo
Atari God
Atari God
Posts: 1215
Joined: Fri Feb 08, 2013 12:15 pm
Contact:

MIST development article series in c't magazine

Postby MasterOfGizmo » Thu Sep 10, 2015 8:39 pm

One of the next issues of the German computer magazine c't will start a little series of three articles explaining the basics of core development for the mist board.

I'll also publish a short series of "code lessons" in the github repository containing further development stages of the small z80 based demo unit I'll explain in the c't series ...

Hopefully this will get some more people interested in hdl development for the mist.
MIST board, FPGA based Atari STE and more: https://github.com/mist-devel/mist-board/wiki

Dal
Administrator
Administrator
Posts: 4162
Joined: Tue Jan 18, 2011 12:31 am
Location: Cheltenham, UK
Contact:

Re: MIST development article series in c't magazine

Postby Dal » Thu Sep 10, 2015 9:33 pm

Cool - will there be an english translation?
Mega"SST" 12, MegaSTE, STE: Desktopper case, IDE interface, UltraSatan (8GB + 512Mb) + HXC floppy emulator. Plus some STE's/STFM's

Alessio
Retro freak
Retro freak
Posts: 13
Joined: Tue Apr 28, 2015 5:24 pm
Contact:

Re: MIST development article series in c't magazine

Postby Alessio » Fri Sep 11, 2015 6:54 am

Excellent, congratulations! It was thanks to their FPGA feature some months back that I discovered MiST. I've been a c't subscriber for decades so I'm looking forward to the articles.
Last edited by Alessio on Fri Sep 11, 2015 9:34 am, edited 1 time in total.

User avatar
Newsdee
Atari God
Atari God
Posts: 1220
Joined: Fri Sep 19, 2014 8:40 am

Re: MIST development article series in c't magazine

Postby Newsdee » Fri Sep 11, 2015 9:33 am

I'd love to read it, hopefully there will be an online version we can run in Google Translate...

User avatar
Melies
Atari User
Atari User
Posts: 40
Joined: Sun Mar 15, 2015 7:22 pm
Location: France

Re: MIST development article series in c't magazine

Postby Melies » Sat Sep 12, 2015 8:29 am

Excellent news Till ! :wink:
1040 STF (TOS 1.02 FR) - 520 STE (TOS 1.62 FR + 4 Mb) - Falcon 030 (TOS 4.04 FR) - MIST

User avatar
MasterOfGizmo
Atari God
Atari God
Posts: 1215
Joined: Fri Feb 08, 2013 12:15 pm
Contact:

Re: MIST development article series in c't magazine

Postby MasterOfGizmo » Sun Sep 20, 2015 7:20 pm

The first part giving a brief explanation of the quartus setup has been published:
http://www.heise.de/ct/ausgabe/2015-21- ... 11231.html

Next issue in two weeks will have a bare bones pong game just like the original game without any cpu or ram involved. Just pure logic.

And the third part to be published in four weeks will have a simple z80 based setup with video controller and ram and an explanation of the sdcc compiler being used for this. This will run a simple graphics animation. I'll publish the code in two weeks in github.

For third part a total of 9 different versions exist which i'll publish in four weeks on github. This includes examples for things like sdram, rom upload, the on screen dislplay, keyboard and mouse, audio, ...
MIST board, FPGA based Atari STE and more: https://github.com/mist-devel/mist-board/wiki

DrChaos
Atari freak
Atari freak
Posts: 64
Joined: Sun Feb 08, 2015 11:21 pm

Re: MIST development article series in c't magazine

Postby DrChaos » Wed Sep 23, 2015 3:42 pm

That is excellent. I assume this will give another boost for the MiST development...

User avatar
MasterOfGizmo
Atari God
Atari God
Posts: 1215
Joined: Fri Feb 08, 2013 12:15 pm
Contact:

Re: MIST development article series in c't magazine

Postby MasterOfGizmo » Thu Sep 24, 2015 6:31 pm

I will publish english translations of the initial texts asap on github.
MIST board, FPGA based Atari STE and more: https://github.com/mist-devel/mist-board/wiki

User avatar
MasterOfGizmo
Atari God
Atari God
Posts: 1215
Joined: Fri Feb 08, 2013 12:15 pm
Contact:

Re: MIST development article series in c't magazine

Postby MasterOfGizmo » Thu Oct 01, 2015 2:41 pm

Any native english speaker interested in translating my original german text into an english version?
MIST board, FPGA based Atari STE and more: https://github.com/mist-devel/mist-board/wiki

User avatar
Total Eclipse
Captain Atari
Captain Atari
Posts: 227
Joined: Tue Jul 20, 2004 2:20 pm
Location: Sheepy Magna, UK

Re: MIST development article series in c't magazine

Postby Total Eclipse » Thu Oct 01, 2015 9:50 pm

Somebody mentioned that "MiST" doesn't exactly translate well...

In my Google translated version it's been called "Crap", " manure" and the "dung-board" :lol:
Atari equipment all in storage - Now playing with MiST :)

User avatar
MasterOfGizmo
Atari God
Atari God
Posts: 1215
Joined: Fri Feb 08, 2013 12:15 pm
Contact:

Re: MIST development article series in c't magazine

Postby MasterOfGizmo » Fri Oct 02, 2015 8:18 am

You simply shouldn't translate the phrase "MIST" at all. The german word "mist" is literally means dung but can be used much like the english crap. This was semi-intentional as i defjnitely wasn't sure the board would ever work when i started building it. So it could have very well ended as crap ...

Someone interested in doing a nice translation?
MIST board, FPGA based Atari STE and more: https://github.com/mist-devel/mist-board/wiki

User avatar
MasterOfGizmo
Atari God
Atari God
Posts: 1215
Joined: Fri Feb 08, 2013 12:15 pm
Contact:

Re: MIST development article series in c't magazine

Postby MasterOfGizmo » Fri Oct 02, 2015 8:46 am

Added german and english code versions of the three pong lessons
https://github.com/mist-devel/mist-boar ... /tutorials

This is a very bare bones pong game. No CPU, no RAM. Just plain logic. Just like the original pong.
MIST board, FPGA based Atari STE and more: https://github.com/mist-devel/mist-board/wiki

User avatar
Newsdee
Atari God
Atari God
Posts: 1220
Joined: Fri Sep 19, 2014 8:40 am

Re: MIST development article series in c't magazine

Postby Newsdee » Fri Oct 02, 2015 2:03 pm

MasterOfGizmo wrote:So it could have very well ended as crap ...


Works in English too, you can say something is THE s**t when its the best. :mrgreen:

I'm useless in German unfortunately...

User avatar
MasterOfGizmo
Atari God
Atari God
Posts: 1215
Joined: Fri Feb 08, 2013 12:15 pm
Contact:

Re: MIST development article series in c't magazine

Postby MasterOfGizmo » Thu Nov 26, 2015 1:04 pm

Tomorrow the last article if this little series of three will be published. I just put the related code lessons online:

https://github.com/mist-devel/mist-boar ... orials/soc

There are now examples for basically everything needed for the vast majority of retro cores. Now you don't have any excuse anymore not to write your own core :-)
MIST board, FPGA based Atari STE and more: https://github.com/mist-devel/mist-board/wiki

User avatar
Paradroyd
Captain Atari
Captain Atari
Posts: 207
Joined: Tue Sep 10, 2013 10:50 pm
Contact:

Re: MIST development article series in c't magazine

Postby Paradroyd » Thu Nov 26, 2015 8:28 pm

MasterOfGizmo wrote:You simply shouldn't translate the phrase "MIST" at all. The german word "mist" is literally means dung but can be used much like the english crap. This was semi-intentional as i defjnitely wasn't sure the board would ever work when i started building it. So it could have very well ended as crap ...


Yeah.. I was touting it on twitter last year and a German guy explained that to me.
- Paradroyd
@paradroyd on twitter

User avatar
MasterOfGizmo
Atari God
Atari God
Posts: 1215
Joined: Fri Feb 08, 2013 12:15 pm
Contact:

Re: MIST development article series in c't magazine

Postby MasterOfGizmo » Fri Nov 27, 2015 3:41 pm

The thirsld and last article is now available in issue 26'15. The examples are online under:

https://github.com/mist-devel/mist-boar ... orials/soc
MIST board, FPGA based Atari STE and more: https://github.com/mist-devel/mist-board/wiki

sebdel
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 122
Joined: Fri Dec 30, 2005 9:29 am

Re: MIST development article series in c't magazine

Postby sebdel » Mon Jan 11, 2016 10:12 pm

Thank you so much for this. As far as I'm concerned, it changes everything about the MiST. I hope you have plans to continue. I'd love to have a fully working custom SoC with a simple CPU, a straightforward video memory (1byte = 1 pixel, omg!) backed up by a YM2149... my dream system.
Now speaking of YM2149, I can't get lesson8 to work with my YM file (too fast). This part seems just wrong:

Code: Select all

// Audio replay is supposed to run at 50Hz. Vsync is 60 Hz, so
// we generate.
reg clk50hz;
reg [16:0] count_50hz;
always @(posedge cpu_clock) begin
   if(cpu_reset)
      count_50hz <= 17'd0;
   else begin
      if(count_50hz < 16'd159999)
         count_50hz <= count_50hz + 17'd1;
      else begin
         count_50hz <= 17'd0;
         clk50hz <= !clk50hz;
      end
   end
end

Starting with a clock at 4 MHz, the literal there should be 40000 - 1, right ?
The strange thing is that it doesn't sound *that* bad, maybe because 16'd159999 maxes out at 65536 ? I don't know the verilog syntax, so that's just a guess.
Anyway, it sounds like 40000 is the correct divider but then I get glitches during playback, almost like a buffer underflow. Here's the file I test with: https://drive.google.com/file/d/0ByKxevpwe6i9X0dfaHNnVjJiVzQ/view?usp=sharing (Virtual escape end from Mad Max, you can check on youtube how it is supposed to sound). Do you know what could cause this ?

Thanks again for the great tutos!
Seb

User avatar
MasterOfGizmo
Atari God
Atari God
Posts: 1215
Joined: Fri Feb 08, 2013 12:15 pm
Contact:

Re: MIST development article series in c't magazine

Postby MasterOfGizmo » Wed Jan 13, 2016 10:17 am

That looks indeed somewhat broken. I am currently writing lesson10 (ethernet). Once i am finished with that i'll have a look at this.
MIST board, FPGA based Atari STE and more: https://github.com/mist-devel/mist-board/wiki

sebdel
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 122
Joined: Fri Dec 30, 2005 9:29 am

Re: MIST development article series in c't magazine

Postby sebdel » Wed Jan 13, 2016 10:29 am

Sure no problem, looking forward to next lesson. It didn't occur to me that ethernet was an option :)
Do you think you will come back to points that were left open in previous lessons, like the fact that the VRAM is not readable or the limitation to 32Kb of RAM ? Or is that left as an exercise to the reader ? (fine by me)

User avatar
MasterOfGizmo
Atari God
Atari God
Posts: 1215
Joined: Fri Feb 08, 2013 12:15 pm
Contact:

Re: MIST development article series in c't magazine

Postby MasterOfGizmo » Thu Jan 14, 2016 1:10 pm

In general i don't plan any fundamental changes. The examples are sufficient as a tutorial but they are not supposed to serve for a special purpose by themselves. So no, i don't plan to work on the video addressing or expand the memory beyond the 64 limit or the like. Actually if you want a more powerful machine you should replace the T80 with a TG68k or similar.

But i've taken a look at the audio issue. I have fixed a little bit here and there. I doesn't sound perfect yet, but imho much better than before. But i also don't intend to work on this much more. It's also a just a technical demo. It isn't supposed to be useful as a ym player.
MIST board, FPGA based Atari STE and more: https://github.com/mist-devel/mist-board/wiki

User avatar
MasterOfGizmo
Atari God
Atari God
Posts: 1215
Joined: Fri Feb 08, 2013 12:15 pm
Contact:

Re: MIST development article series in c't magazine

Postby MasterOfGizmo » Thu Jan 14, 2016 1:40 pm

I still plan an example with a 15khz video mode and i'll update lesson7c to show direct block device writing and redirection into a file (as you'd be doing if you'd e.g. have a harddisk image on sd card tather than the entire sd card itself acting as the harddisk).
MIST board, FPGA based Atari STE and more: https://github.com/mist-devel/mist-board/wiki

sebdel
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 122
Joined: Fri Dec 30, 2005 9:29 am

Re: MIST development article series in c't magazine

Postby sebdel » Thu Jan 14, 2016 2:14 pm

MasterOfGizmo wrote:In general i don't plan any fundamental changes. The examples are sufficient as a tutorial but they are not supposed to serve for a special purpose by themselves. So no, i don't plan to work on the video addressing or expand the memory beyond the 64 limit or the like. Actually if you want a more powerful machine you should replace the T80 with a TG68k or similar.

But i've taken a look at the audio issue. I have fixed a little bit here and there. I doesn't sound perfect yet, but imho much better than before. But i also don't intend to work on this much more. It's also a just a technical demo. It isn't supposed to be useful as a ym player.


Understood. Honestly, I think it's just the right amount of functional. I totally feel that I could make "something" out of those bits and pieces, even as a complete beginner. That being said, replacing the Z80 by a 68000 sounds a bit intimidating :oops:

User avatar
MasterOfGizmo
Atari God
Atari God
Posts: 1215
Joined: Fri Feb 08, 2013 12:15 pm
Contact:

Re: MIST development article series in c't magazine

Postby MasterOfGizmo » Fri Jan 15, 2016 9:52 am

sebdel wrote:Understood. Honestly, I think it's just the right amount of functional. I totally feel that I could make "something" out of those bits and pieces, even as a complete beginner. That being said, replacing the Z80 by a 68000 sounds a bit intimidating :oops:


Replacing a CPU usually isn't that complex. But in this case you'd replace a 8 bit CPU by a 16 bit one which would affect all the other parts as well as you'd then also want 16 bit wide memory etc ...

The question is what exactly you are trying to achieve. Just play around a little bit to get a feeling for the tools and the technology? Then i'd suggest you do something funny with one of the tutorials like adding some sprites and make a small game or similar.

If you really want to build your "80's dream machine" then you need to get an idea what you want. If 32k RAM + 32k ROM is not enough then it's probably easier to migrate to a 68000 than to expand the whole tool chain to cope with some huge banked memory setup on the Z80.
MIST board, FPGA based Atari STE and more: https://github.com/mist-devel/mist-board/wiki

sebdel
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 122
Joined: Fri Dec 30, 2005 9:29 am

Re: MIST development article series in c't magazine

Postby sebdel » Fri Jan 15, 2016 1:01 pm

MasterOfGizmo wrote:
sebdel wrote:Understood. Honestly, I think it's just the right amount of functional. I totally feel that I could make "something" out of those bits and pieces, even as a complete beginner. That being said, replacing the Z80 by a 68000 sounds a bit intimidating :oops:


Replacing a CPU usually isn't that complex. But in this case you'd replace a 8 bit CPU by a 16 bit one which would affect all the other parts as well as you'd then also want 16 bit wide memory etc ...

The question is what exactly you are trying to achieve. Just play around a little bit to get a feeling for the tools and the technology? Then i'd suggest you do something funny with one of the tutorials like adding some sprites and make a small game or similar.

If you really want to build your "80's dream machine" then you need to get an idea what you want. If 32k RAM + 32k ROM is not enough then it's probably easier to migrate to a 68000 than to expand the whole tool chain to cope with some huge banked memory setup on the Z80.


Right now I'm definitely in the first stage: I'm pondering how much I could modify the existing code base to improve its audio/video capabilities without breaking anything. Short term, I'm just going to try to add the hw sprite from lesson9 into lesson8, that seems doable :)
From there, I have a lot of idea to experiment with!
- add more sprites, or at least be able to reuse the HW sprite multiple times
- double the amount of VRAM (if it fits in the FPGA) and have a memory offset register to enable double-buffering or vertical scrolling
- HW cls(). Not really useful but I'm curious how to implement this (I feel like I need to find how to do a loop in verilog but also that maybe I need to think completely differently...).
- a sort of DMA for the YM registers. This is the trickiest I think but that would be really fun to be able to stream to the YM frame by frame for free 8)

Anyway, we'll see how that goes.

sebdel
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 122
Joined: Fri Dec 30, 2005 9:29 am

Re: MIST development article series in c't magazine

Postby sebdel » Tue Jan 26, 2016 8:02 am

I made good progress on this. I merged lesson8 and 9 and I switched to interrupt mode2 and now I have 2 interrupts, one for vsync and one for the 50Hz clock. -> That enables smooth sprite movements and music.
Then I added a color key that is replaced by a full RGB color on the whole screen. That enables palette tricks (or at least a blinking color).
So far so good, but now I'm a bit stuck. Long story short, I want to move the video buffer to the SDRAM. I've been looking at the atari st shifter implementation and what I got from it is that the cpu clock and the pixel clock are intimately linked. So I suppose the easiest would be to derive the cpu clock from the 25.175MHz pixel clock. That would put the CPU at 6.3MHz. Would that be practical ? What about the memory clock ? It should also be in sync right ?


Return to “MiST”

Who is online

Users browsing this forum: No registered users and 7 guests