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
Post edited by Choccy on

Comments

  • edited February 2002
    "Where's the best place for tutorials?"

    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.
  • edited February 2002
    I prefer to code in an emulator with an assembler loaded in to it. It has the advantage to store it directly to disk as a snapshot and you can start it up direclty if testing of code is needed.

    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)!
  • edited February 2002
    First things first, Z-80 coding should prove easy for you considering ur experience. I really don't know of many sites that provide Z-80 tutorial. U could try Google search though! icon_smile.gif

    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! icon_smile.gif
  • edited February 2002
    "It has the advantage to store it directly to disk as a snapshot and you can start it up direclty if testing of code is needed."

    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.
  • edited February 2002
    As you stated : ONCE LOADED!

    The advantage is not to load it on the proper adresses!
  • edited February 2002
    Besides....

    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)
  • edited March 2002
    On 2002-02-28 08:01, Dr BEEP wrote:
    Besides....

    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.

    I would argue it makes it an ass but that is personal preference - if you want to suffer that's your choice.

    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)

    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.
  • edited March 2002
    What would be really nice would be an emulator coded from a programmers perspective. Imagine a debugger with a comprehensive list of features, the debuggers I've seen are pretty good but none have all the features I'd like to see.
    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.
    I wanna tell you a story 'bout a woman I know...
  • edited March 2002
    On 2002-03-04 00:44, karingal wrote:
    What would be really nice would be an emulator coded from a programmers perspective. Imagine a debugger with a comprehensive list of features, the built in

    Oh, ya, that would be cool. I have never seen such emulator.
  • edited March 2002
    To Choccy:

    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 ]
  • edited June 2002
    On 2002-03-26 17:07, Dynamite Dan wrote:

    Oh, ya, that would be cool. I have never seen such emulator.

    I should apologize. There is an internal debugger in RealSpectrum! After pressing ESC...
  • edited June 2002
    I wanna tell you a story 'bout a woman I know...
  • edited June 2002
    Whoops shows how often I post on here.

    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?
    I wanna tell you a story 'bout a woman I know...
  • edited June 2002
    I don't think we need to be shown how a TV screen scans - we should already know that.
  • edited June 2002
    Now if the previous post isn't by cyborg, i'll eat my hat...
  • edited June 2002
    You can eat it anyway - it'll provide a good amount of dietry fibre.
  • edited June 2002
    On 2002-02-27 07:49, Dr BEEP wrote:
    I prefer to code in an emulator with an assembler loaded in to it. It has the advantage to store it directly to disk as a snapshot and you can start it up direclty if testing of code is needed.

    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.
Sign In or Register to comment.