Calling all coding munkeez...
Having spent the last 8 years as a Windows application developer I thought I'd try my hand at a bit of Z80 speccy coding - something I missed out on during the speccy years.
Where's the best place for tutorials? What books do u recommend.
I spent 5 years as an IBM mainframe assembler programmer for a major bank - will my experience help with Z80? What's the best assembler/disassembler out there?
I have an ambition to write my own speccy game so any relevant help on this will be appreciated?
Thanx
Where's the best place for tutorials? What books do u recommend.
I spent 5 years as an IBM mainframe assembler programmer for a major bank - will my experience help with Z80? What's the best assembler/disassembler out there?
I have an ambition to write my own speccy game so any relevant help on this will be appreciated?
Thanx
Post edited by Choccy on
Comments
No idea really. My site has an walk-through of one piece of code. I've not yet uploaded new content however there will be more soon: <a href="http://www.geocities.com/cyborg_jim
"What" target="_blank">www.geocities.com/cyborg_jim
"What</a> books do u recommend."
Any you can find given they are difficult to.
"I spent 5 years as an IBM mainframe assembler programmer for a major bank - will my experience help with Z80?"
It won't hurt.
"What's the best assembler/disassembler out there?"
TASM
"I have an ambition to write my own speccy game so any relevant help on this will be appreciated?"
You'll have to answer that question.
In TASM you can compile your code but then you need to load it in an emulator to see the result.
My favorite assembler is TORNADO. It can be downloaded from this site.
And if any problems might occur (screen-handling, keyboard or any other) help is on this site (and side)!
As for the best assembler/disassembler, u'll have to decide whether u want to code in an emulator or directly on ur PC thru a compiler. After that u can either go Cyborg's way (TASM on PC) or Dr. BEEP's way (assembler on emulator).
There aren't many books avlbl in the market and u will have to hunt for the good ones. U could try ur local bookstore and check if they have any old stock of books. Or try e-bay or even the Sales forum on this site!
As for help, I'm sure u will find plenty of it on this site!
Bytes:Chuntey - Spectrum tech blog.
You can do that with cross assembled objects once loaded in memory and you are freed from having to worry about limited development memory and you can use any text editor you like. Oh and it's faster to compile.
I don't really see an advantage in that.
The advantage is not to load it on the proper adresses!
If you want to develop a program for the Spectrum you are limited to a
certain amount of memory which makes it a thrill to program.
My ZX81-emulator for instance runs on a 48K ZX Spectrum.
Total amount of RAM
49152 Bytes
32768 Bytes needed for ZX81ROM and RAM
06912 Bytes needed for Spectrum-screen
00256 Bytes needed for printerbuffer
00512 Bytes needed for Spectrum systemvariables + BASIC
leaves only 8704 bytes to program a full working emulator. With more than
550 opcodes on a Z80 (which all must be emulated correctly) you have
about 16 bytes to emulate every opcode.
N.B. Before you say : Why emulate a Z80 on a Z80, well you can not run the programs for the can not be loaded on the actual adresses.
Like
LD HL,16384
LD A,(HL)
must work like this:
LD HL,16384
LD A,(HL+higherload)
I would argue it makes it an ass but that is personal preference - if you want to suffer that's your choice.
Oh come now, 16 bytes? That's pessimistic to say the least. You could at least take account of the nature of the opcodes in that they are grouped into families like a periodic table and the fact you wouldn't have to do anything with a large swathe of opcodes.
A fully-featured 2 pass assembler and a built in text editor and some other tools built in such as a sprite editor. With all coding tools intergrated the programming process would be very enjoyable and would probably make a great learning tool.
Oh, ya, that would be cool. I have never seen such emulator.
Your past programming experiences will be useful, of course.
I would prefer compiling in another system. Check out homepage of my friend (and he is extremely good programmer!) at http://atrey.karlin.mff.cuni.cz/~mj/amiga.shtml . I have never tried ZASM nor ZDIS, but it's a solution for those, who have Amiga or Amiga emulator.
I remember there was made brilliant assembler environment here in Czech Republic. My companion Sanx from our coding group said that it's name was "Memory Resident System" and the autor was Ivan Jedlicka. It works on real Spectrum, but I don't remember if it has Czech or English interface. I have never found it on Internet. The distribution is illegal, maybe. So, if anybody knows, where to download this, don't forget to mail me.
If you want example of code, I could maybe find something at home. We tried some screen effect about ten years back. I think it's not hard to write a simple game. It's only question of spare time, which we don't have.
Have a nice day.
[ This Message was edited by: Dynamite Dan on 2002-03-27 12:05 ]
[ This Message was edited by: Dynamite Dan on 2002-03-27 12:06 ]
[ This Message was edited by: Dynamite Dan on 2002-03-27 12:06 ]
I should apologize. There is an internal debugger in RealSpectrum! After pressing ESC...
Anyway, I looked at the debugger on RealSpectrum but found it too be 'pretty' to be a serious tool. The font is far too big therefore not enough information is displayedn and it doesn't really do a great deal.
The best I've seen is in Spectrum256, lots of info, clean tidy screen with readable font. But I even have issues with that, no consistency, upper and lower case all over the place, personally I think it should be all uppercase and whats with the gfx memory dumps and gfx regs ? I can't think of a decent use for them.
I do like the debuggers which have a copy of the Spectrum running in a corner of the screen, very handy when single stepping or tracing through routines.
I do feel that you get a much better idea of what is going on in a progrqm when you can acually seen the screen evolve pixel by pixel.
Thats just my opinion what does everyone else think?
That's what I do if I'm writing small test programs for running in emulators. This way I can just send standard snapshots to people using any OS and they can all modify/assemble it with no syntax changes whatsoever to make to the source :)
As for writing larger programs I've recently switched to the assembler built into the Amstrad CPC emulator WinAPE32. It can assemble to either CPC memory for testing with the built in debugger or to a binary file for loading into a Spectrum emulator.