Introducing myself (RetroTechie)

General Chit Chat about Sinclair Computers and their Clones
Post Reply
User avatar
RetroTechie
Posts: 379
Joined: Tue Nov 01, 2011 12:16 am
Location: Hengelo, NL
Contact:

Introducing myself (RetroTechie)

Post by RetroTechie »

Hello all,

Registered today @ this forum since I've been following posts here for a little while, and thought it was time to change from passive to active participation... :)

My general background is best described in this post on MSX.org forum: http://www.msx.org/forumtopic9106.html
And for some time maintaining my own hobby site: Bitcycle.org - very infrequent updated, but by no means dead!

Some of you may know me from MSX.org or World of Spectrum forums, and I'm frequent visitor (mostly passive reader, occasional posting) on various electronics-related forums and news sites, especially the kind where 'nerds' can be found :mrgreen: like Slashdot, OSNews, Tweakers etc. Oh and longtime Free/Open Source user - running Linux exclusively, even for occasional 3D gaming and hardware development tasks (and have edited shell scripts, compiled programs from source & things like that).

Recently decided to devote some time to ZX81 hw development. It's been a longtime wish for me to build my own ZX81 clone, more specifically: use modern programmable logic (CPLD and/or FPGA) to replace the 'antique' ULA. Considered this a big job time-wise, but some recent research / info posted by several people (thx Grant Searle, Andy Rea, Wilf Rigter, Bodo Wenzel & others!), have increased my understanding of the ZX81's workings to the point where I think I'm up to the job.

Have devoted one of my (5) ZX81's as 'development board', hooked up a Xilinx XC9572 in 84-pin PLCC package to it (with ULA temporarily moved to underside (!) of the board), and making slow but steady progress on implementing logic in that CPLD to replace ULA functions. Currently done: clock generation (unfortunately I didn't manage to single-step the ULA's clock, but main clock is derived from a 13 MHz Xtal on the CPLD now), RAM/ROM chip selects, hsync generation, and this evening managed to replace ULA's /NMI pin with signal produced by the Xilinx part. :D

Of course the whole setup looks like crap, but still I prefer a big CPLD over an add-on board with lots of discrete logic IC's (or even build ZX80/ZX81 clone from scratch). I do plan to make it smaller (and perhaps have a custom PCB produced some time). But for me, first order of business is to get rid of the original ULA, and determine the exact logic required for a CPLD to take the ULA's place. Still considering to remove the ULA completely, especially since it would make it easy to single-step the CPU's clock & check what's happening on data/address/control bus between individual clock transitions. But OTOH there's something to be said for keeping the ULA around as long as possible until you have a replacement that works... changing a working system makes sure that individual steps are known working (and @ full speed), before making the next step. In the style of: "solve the small problems first, and when you have, then the bigger problems will turn out to be not so big anymore".

So ehm... 'watch this space!' ;)
User avatar
PokeMon
Posts: 2264
Joined: Sat Sep 17, 2011 6:48 pm

Re: Introducing myself (RetroTechie)

Post by PokeMon »

Hi there !
I don't know what is a MSX but I am very glad to hear about your ULA work.
Seems like people work either on programming emulators or developping ULA's.
Good to hear because I have to replace a nonworking ULA (no pixel output).

As I heard you are running at 13 MHz - does your ULA (or CPLD or whatever) support this frequency to be run on ?
Last times we are talking about clock doubling and I want to double the screen resolution of my ZX81 too - 48x64 chars instead of 24x32.
This would run with a fast CPU (6 MHz version), faster ROM and RAM which can be adapted via slot outside.
Of course, CPU is soldering work.

Sync Pulses have to be doubled and maybe something else in logic. But would be a nice project to work on. 8-)
My approach is to improve things, not just to copy them.

Regards, Karl
User avatar
RetroTechie
Posts: 379
Joined: Tue Nov 01, 2011 12:16 am
Location: Hengelo, NL
Contact:

Re: Introducing myself (RetroTechie)

Post by RetroTechie »

As ZX81 user/lover, don't even know what an MSX is? :shock: please GO HERE! NOW!

The 13 MHz Xtal I'm using is just the clock source, I divide by 2, this gives the 6.5 MHz clock that is input to the ULA (replacing the 6.5 MHz ceramic resonator). Reasons being:
  • I've got 10 pcs of those 13 MHz Xtals (ready for use), 6.5 MHz ceramic resonators OTOH are nowhere to be found besides stuck inside my ZX81's.
  • I know how to put together a Xtal oscillator, but must admit I have 0 experience in using ceramic resonators. Maybe that's easy, I just don't know - Xtal oscillators I do know. :)
  • This was also done to check that the 13 MHz Xtal oscillator indeed provides the right frequency signal (don't have a frequency counter, but now I know that at least it's close enough to make the ZX81 work normal).
So this is in no way a turbo project of any kind (yet!). Not that that's out of the question (see here why!), and the CPLD part is fast enough to crank up clock speeds... But my first priority is to have a working ZX81 that doesn't have a Sinclair ULA in it - TO DO. :mrgreen:

As for doubling horizontal or even vertical resolution, that won't be as 'easy' as switching Z80 clock during non-display periods. If that's your goal, it may be easier to hook up a dedicated video chip (or programmable logic component serving as such).
sirmorris
Posts: 2811
Joined: Thu May 08, 2008 5:45 pm

Re: Introducing myself (RetroTechie)

Post by sirmorris »

Hi RetroTechie! Welcome aboard!

C
dr beep
Posts: 2077
Joined: Thu Jun 16, 2011 8:35 am
Location: Boxmeer

Re: Introducing myself (RetroTechie)

Post by dr beep »

Retrotechie,

you are the one I need.

I have coded a ZX81 emulator for the ZX Spectrum and 2 for the SAM Coupe, but the MSX remained quiet due to
several questions like how to get a good assembler for it.

So you can help to make the emulator!
User avatar
RetroTechie
Posts: 379
Joined: Tue Nov 01, 2011 12:16 am
Location: Hengelo, NL
Contact:

Re: Introducing myself (RetroTechie)

Post by RetroTechie »

For MSX, individual parts are much more complex than in ZX81 / Spectrum systems, but overall system setup is much more straightforward / easy to understand (slot mechanism & memory mappers being the exception). For example video: it's a TMS9918 compatible (or V9938 for MSX2) stuck onto I/O ports 98/99h - basically that says everything.

Back in the days I always used GEN80 which is a professional quality assembler for use on CP/M & MSX-DOS systems (drop me a mail if you need a copy). I have a few Z80 assemblers installed on my Debian system (Pasmo, and 'z80asm' that comes with the distro), but these days I hardly ever do any assembly coding so I don't have enough experience with either to tell you how good they are.

Really the MRC is a better place to ask - if you plan to do some serious MSX coding you might want to register there.
User avatar
Andy Rea
Posts: 1606
Joined: Fri May 09, 2008 2:48 pm
Location: Planet Earth
Contact:

Re: Introducing myself (RetroTechie)

Post by Andy Rea »

Hi and Welcome to the forum, nice to see other people having a go at the ULA :D you'll be sure to have some fun when you get to the video... but reading above i'd say your not far off that step now.

Regards Andy
what's that Smell.... smells like fresh flux and solder fumes...
User avatar
PokeMon
Posts: 2264
Joined: Sat Sep 17, 2011 6:48 pm

Re: Introducing myself (RetroTechie)

Post by PokeMon »

RetroTechie wrote:As ZX81 user/lover, don't even know what an MSX is? :shock: please GO HERE! NOW!
I did not find any connection to ZX81 or to Sinclair. It's just another computer like Atari, Commodore C64 (I even worked with the older PET :mrgreen: ) and more in this time. So my interest is ZX81 and I think MSX is not a must for ZX81 fans. The ZX81 is something special in home computer market, not comparable to any other computer of this time I think.

RetroTechie wrote: As for doubling horizontal or even vertical resolution, that won't be as 'easy' as switching Z80 clock during non-display periods. If that's your goal, it may be easier to hook up a dedicated video chip (or programmable logic component serving as such).
It's not so complicate than people think. It just has to run with double speed and change some timing values (which could be hopely adapted more easy, I think you work with counters). I am not interested in a turbo mode which switches between two speeds, just to speed up whole system with all items working in the same way (bigger DFILE of course). You need only a fast CPU, memory and rom can be easily kicked out of the board to an expansion where rom can be patched.

So what's the problem ? Maybe it's more easy than switching between two speeds. If I want to develop a new computer (dedicated video chip) I don't need anything of ZX81 technology. But that's no fun. Why do you develop your ULA ? Maybe more a less same reason. It would be more easy to concentrate on a new development but who needs it where you can buy thousands of embedded computer boards. 8-)
Post Reply