Hi there

Introduce yourself to your fellow forum members - what was your journey into the Sinclair world?
Post Reply
User avatar
nenadp
Posts: 7
Joined: Sun Dec 27, 2015 11:23 pm
Location: Ireland
Contact:

Hi there

Post by nenadp »

Hi all,

Already found few quite nice posts on this forum :).

I've had ZX-81 back in the days, and ZX Spectrum after that, and even QL for short period of time.
I'll be looking into getting original computers at some point, and I quite like these ZXpands :).

I've spent loads of time playing on my Sinclairs, but I also learnt alot about programming through BASIC and Assembly. (Today I work as a Frontend Javascript developer in Ireland)

I recently read ZX Spectrum assembly book to refresh my knowledge, But I'm considering writing first for ZX-81 rather, as it seems a little bit simpler because its limitations. Opinions?

Cheers
Nenad
User avatar
1024MAK
Posts: 5117
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: Hi there

Post by 1024MAK »

Welcome on board Nenad!

:D :D :D

Go for it. The only way to learn, is to try :geek: :mrgreen:

But do research / read up on how the display system works, as it is rather complex compared to a ZX Spectrum where the ULA takes care of displaying the picture without any help from the CPU.

Mark
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp

:!: Standby alert :!:
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb :!:
Looking forward to summer later in the year.
User avatar
nenadp
Posts: 7
Joined: Sun Dec 27, 2015 11:23 pm
Location: Ireland
Contact:

Re: Hi there

Post by nenadp »

Thanks!

Lol, I did not do research on ZX81 screen stuff, but I was assuming it's easier than cryptic Spectrum one ;).
Just output the chars on the screen, eh, not?
User avatar
1024MAK
Posts: 5117
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: Hi there

Post by 1024MAK »

If you only use the ROM routines to print to the screen and have 4k bytes or more of RAM, it is a text screen. With 3k bytes or less, the screen is "collapsed" to save memory.

The ULA is much simpler than the one in the ZX Spectrum. It cannot "draw" the screen on it's own, so it uses the Z80 CPU to help it. THIS is a very much simplified description: for the information to form a video display, the Z80 addresses the area of the screen in memory (referred to as the "display file") for every displayed scan line of the TV. As the CPU tries to execute the display file, the ULA grabs the data on the data bus, then quickly feeds the NOP code to the CPU. Then ULA converts the data to a serial bit stream, that then is sent out as video data.

As the CPU helps draw the screen, the ZX81 cannot run a user program at this time (this mode is called SLOW mode, also known as display and compute). If you want the CPU to only execute program code and not to spend time drawing the screen, use FAST mode. But during the time of FAST mode, the screen will go black.

Of course, if you use your own machine code routines, you can write your own screen driver. This is how programmers get high resolution graphics on the ZX81.

Mark
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp

:!: Standby alert :!:
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb :!:
Looking forward to summer later in the year.
User avatar
RetroTechie
Posts: 379
Joined: Tue Nov 01, 2011 12:16 am
Location: Hengelo, NL
Contact:

Re: Hi there

Post by RetroTechie »

Welcome to this forum, Nenad! :)
nenadp wrote:I recently read ZX Spectrum assembly book to refresh my knowledge, But I'm considering writing first for ZX-81 rather, as it seems a little bit simpler because its limitations.
Trust me, it's not.

Yes, the BASIC is simpler. But hey BASIC is simple as it is, no matter what dialect. Never mind that ZX81 BASIC can't even talk to Z80 I/O ports, for one.

In Z80 assembly, there's a few things to consider on a ZX81 that wouldn't be an issue on other machines. And if you want to get into coding of hi-res software, then a deep understanding of the ZX81's video system may be needed. Which isn't easy since that is anything BUT simple (despite taking small amount of logic hardware). That's apart from the limited RAM, slow speed, or that you lose screen output if you want to use 100% of that CPU speed. :mrgreen: Or that quite a few modern TV's don't like a ZX81's video signal. Composite modded or not.

For re-getting into Z80 coding, the ZX Spectrum would be a much better (and excellent!) choice. Video RAM layout isn't hard to understand, part of the regular Z80 address space so directly accessible from BASIC or Z80 assembly, has a fixed layout and does what it does without Z80 support. Poke a byte in there, something changes on screen. Sound & color available and easy to use.

Also there's much more & nicer software for the Spectrum. Including software to teach you Z80 assembly (may I suggest: The Complete Machine Code Tutor). And for working on real hardware, the Spectrum has a better keyboard too. That is, if you can find a working specimen! :mrgreen: (or replace keyboard foil with a new one). In case you try tape loading, the ZX Spectrum system is faster & gives much better visual feedback than the ZX81 one. I could go on, but you get the idea.

Imho there's a couple of things the ZX81 has going for it:
-It is doable (not easy, just doable) to build from scratch. That's generally more work with other systems since more IC's are needed to get to a point of see-something-on-screen.
-From a hardware point of view, it is simply a very interesting piece of kit.
-It is a very early home computer. So a good choice if you like the challenge of resource constraints & coding in a straight jacket. ;)
User avatar
nenadp
Posts: 7
Joined: Sun Dec 27, 2015 11:23 pm
Location: Ireland
Contact:

Re: Hi there

Post by nenadp »

Thank you both for very useful insights!

Currently, yes, I am engaged in ZX Spectrum coding by using Pasmo as a compiler. I also use TommysGun in one setup to assemble assets/write code, compile with Pasmo and launch/debug it in ZX Spin. I've refreshed myself by reading http://www.amazon.co.uk/gp/product/0861 ... _lmf_tit_2 and http://www.amazon.co.uk/gp/product/0861 ... _lmf_tit_6.

When I think of ZX81 programming, I am not considering at all writing hires graphics, but thinking of minimalistic concepts with character graphics only. I mean, take Mazogs for example - it's all character art but still has "the depth" :)

I like minimalism, it's challenging :)
User avatar
bobs
Posts: 325
Joined: Thu Aug 27, 2009 10:49 pm
Location: UK
Contact:

Re: Hi there

Post by bobs »

nenadp wrote:When I think of ZX81 programming, I am not considering at all writing hires graphics, but thinking of minimalistic concepts with character graphics only. I mean, take Mazogs for example - it's all character art but still has "the depth" :)

I like minimalism, it's challenging :)
I've written 13 games for the ZX81 (and 17 for the Spectrum), and many of the reasons for not writing for it (stated above) are exactly what make writing for it most rewarding from a programmers point-of-view. Trying to produce a modern game - which is playable, looks good, and is responsive - on such a slow and limited machine is a great challenge. Lo-res games have a distinct style and charm of their own, and getting everything to fit in 16K (a self-imposed limit I admit) can be tough, but ultimately rewarding (consider my conversion of Ant Attack to the machine - the map data alone on the Spectrum version used 16K, but I still managed to do it)

Your knowledge of Pasmo and TG won't be wasted - I use both for development on both platforms - and most of your coding knowledge is also transferable between the machines.

So do what your want to do, on the machine of your choice. I like to think that I've produced some really great stuff for the 81 which I'm very proud of - doubly so since most of it was meant to be 'impossible' ;)
User avatar
nenadp
Posts: 7
Joined: Sun Dec 27, 2015 11:23 pm
Location: Ireland
Contact:

Re: Hi there

Post by nenadp »

Bobs, spot on, and that's formidable collection of written games!
(I have your website in the bookmarks btw, and I've looked upon some articles there, very inspiring).

I worked for a 2 years in one UK game company - being part of development team for browser based complex virtual worlds (JavaScript, Canvas based. Actually we used Haxe there, very nice language that compile to many platforms).

But since I needed to move to Ireland, I switched industries, as Ireland demand for developer is great, but no game companies. I work with lots of data processing and UI now, it's fun too, but I never stop trying to do some kind of small indie project or experiment. Struggle for feeding my family and lack of persistance was always in the way, though.

I hope to succeed on good old platforms, as kind of fulfillment of childhood dreams :) and it is really rewarding to write for these highly limited systems. There has been some kind of retro revival recently, with mobile platforms, Spectrum Recreated, Vega etc. Not sure if someone could get significant money by writing them though.
User avatar
stefano
Posts: 566
Joined: Tue Dec 11, 2012 9:24 am
Contact:

Re: Hi there

Post by stefano »

The number of skills improved doing retrocomputing stuff is impressive.
Exercising is always time consuming, but I was surprised on the quantity of experience I re-used for my work.. obviously we all are using modern systems and tools in a creative way to squeeze and push our projects in the little old zeddy, and this boosts the learning curve.
My guess is that the home automation industry would like the kind expertise showing up in this forum :P
Post Reply