I know nothing about the z80 community!

A General Discussion forum for TI calculators

Moderator: MaxCoderz Staff

Jyaif
New Member
Posts: 3
Joined: Tue 22 Aug, 2006 11:40 pm
Location: Paris, France

I know nothing about the z80 community!

Post by Jyaif »

I come in peace.
I am from the 68k community (me), and I want to learn about the z80s.
What is the best doc for programming in asm ? what tool are there to program ? Who are the best z80 asm programmers ? what can be done on the z80 ? (raycasting ? real 3D ? mode 7? parallax scrolling? ...?) what z80 oriented website are there ?

Thanks in advance! :)
threefingeredguy
Calc King
Posts: 2195
Joined: Sun 27 Mar, 2005 4:06 am
Location: sleeping
Contact:

Post by threefingeredguy »

I use notepad to write the code and I use SPASM and Wabbit to assemble and make to 8xp. Those can be found on www.revsoft.org/phpBB2/ which is also a great z80 forum.
Another option is to use Latenight+Brass, both of which are found on this website. Latenite is a very nice IDE with cool features like syntax highlighting. However, the built-in assembler Brass is way slower than SPASM without being a lot more powerful. Which one you choose is up to you.

All of those things are possible. Raycasting and real 3d are being done by the staff here (benryves and qarnos). Mode7 discussion can be found on the revsoft.org forum. Parallax scrolling has been around forever. Jim e's grayscale package (also found on the revsoft.org forum) has built-in handling of parallax scrolling with grayscale tiles. I suggest you check out all the various subforums on both this site and www.revsoft.org and participate in the discussion and see what you can learn.
Image
CompWiz
Calc King
Posts: 1950
Joined: Thu 13 Oct, 2005 1:54 pm
Location: UB

Post by CompWiz »

Ok, I'll tell you what I know. One of the best programming guides for z80 asm is Learn TI-83 Plus Assembly In 28 Days by Sean McLaughlin

The best programming tools are the Latenite, Brass, Earlymorning, and PindurTI combo(all developed here, a kind of programming suite). Also, you can use Timendus's API and CLAP. Latenite is a nice program for writing assembly. It has a lot of nice features and can be integrated with Brass, earlymorning, and PindurTI. Here's a screenshot of it with some asm code and the pindurTI emulator open.
Image

PindurTI is the best emulator for the 83/83+ that can emulate the calculator and LCD screen almost perfectly. EarlyMorning is a tool for sprites. Brass is an assembler made by benryves to work nicely with LateNite, and give you an alternative to the somewhat problematic Tasm shareware assembler. Timendus's API makes programming in assembly more simple and easy, and his CLAP(calculator linking alternative protocol) makes linking between different calculators and even multiple calculators(more than 2 at a time) easy.
A lot can be done on the z80. A few 3d first person shooters have been made, including doom and Castle Wolfenstein, and also Gemeni, which I think is the best. These used raycasting 3d. There is a nice 3d racing game called lotus turbo challenge that has some nice effects and looks nice. There is also a full-3d wireframe racing game called glasscars that allows for 2 linked calcs to play multiplayer races. Also in 3d is a roller coaster design game where you can design a roller coaster and ride it. There are some good side scrolling games like mario and harvest moon, and Sonic and Metroid are being worked on. Also, a very nice version of Zelda is coming together nicely. It's been featured on a few other websites and has driven a lot of other people to these calc sites.
Other z80 programming sites include unitedTI.org, revsoft.org, omnimaga.org, and chemtech.org. omnimaga is more TI-basic oriented.

There are two real 3d engines being worked on right now here, one by quarnos, and one by benryves. quarnos's engine is more for 3d spacefighting games(like space dementia) and benryves is more suited to first person shooters.

I remember someone doing parallax scrolling, I think it was in grayscale with the revolution Greyscale Package (RGP).

Also done on the 84+ series is the usb8x which allows you to connect USB devices to the calculator, like usb flash drives, keyboards, or mice. It was demonstrated by showing the lobby scene from the matrix from a series of pictures stored on the flash drive. Also, realSound allows actual music recordings to be played on the calculator through the link port. This is real sound, not a midi or anything. It was demonstrated by playing GreenDay's Basketcase through computer speakers connected to the link port.

Another interesting program is Cabamap which is an app that allows you to calculate very large numbers at high speed. For example, you can calculate the square root of 3 to hundreds of thousands of digits in just a few minutes. You can also calculate the factorial of 1000!. It is much faster at calculating than even the 89, by a very large margin, usually at least twice as fast or more.

If you have any more questions, feel free to ask. Are you thinking about starting to program in z80 assembly? How about making a port of your excellant bomber Dude game? The only game like that we have is bomberkids, which doesn't have an AI. There is a slime volleyball game for the 83+, but it's a bit more primative, with no background and no hit effects. We also have a game called Arcade Mario, which is like the original mario bros game, but not nearly as good a port as your m4r10.
In Memory of the Maxcoderz Trophy Image
User avatar
Madskillz
Calc Wizard
Posts: 745
Joined: Fri 17 Dec, 2004 10:22 pm
Location: Wandering around in the Jungle...
Contact:

Post by Madskillz »

Dont forget Tifreak...heh put alot of work into a site with all sorts of goodies on coding for the calcs. BASIC, z80, or even C.

Heres the page on ASM/C:

http://tifreakware.calcgames.org/tutorials/asmresc.htm
The Revolution is here...
Spencer
Extreme Poster
Posts: 346
Joined: Mon 17 Jan, 2005 8:56 am
Location: Indiana

Post by Spencer »

You've got a nice list of programs in your profile, I recall being dazzled by a few as they were featured. I'm sure you can figure out whatever you need to know rather quickly.
User avatar
kalan_vod
Calc King
Posts: 2932
Joined: Sat 18 Dec, 2004 6:46 am
Contact:

Post by kalan_vod »

Spencer wrote:You've got a nice list of programs in your profile, I recall being dazzled by a few as they were featured. I'm sure you can figure out whatever you need to know rather quickly.
I was thinking the same thing, now that you mastered the 68k..you can get to work with the z80 ;)
threefingeredguy
Calc King
Posts: 2195
Joined: Sun 27 Mar, 2005 4:06 am
Location: sleeping
Contact:

Post by threefingeredguy »

Jeez, you made Bomberdude and Karting? I loved those.
Image
Liazon
Calc Guru
Posts: 962
Joined: Thu 27 Oct, 2005 8:28 pm

Post by Liazon »

O_O did you write those in pure assembly? as in no C?

Not only is that amazing, you'd probably have no trouble picking up z80. I think.
Image Image Image
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

Welcome! :) Sadly I only have a Z80 calc, so haven't had a chance to look at your programs in the past.

As far as already being an assembly programmer goes, I'd prefer to stick to CoBB's excellent no-nonsense Z80 tutorial. Lots of sample snippets to explain what's going on and a great reference in the appendices.

I was especially interested with your Kartingz program, as I've experimented with rotozoom effects on the 83+ in the past (screenshot) but my code was too slow to be of any real use.

Looking forwards to seeing what magic you can rustle up on the Z80 :)
leofox
Calc Master
Posts: 1064
Joined: Fri 17 Dec, 2004 3:22 pm
Location: Probably playing DDR
Contact:

Post by leofox »

since when does pti have a keyboard xD
Image
Image
User avatar
kalan_vod
Calc King
Posts: 2932
Joined: Sat 18 Dec, 2004 6:46 am
Contact:

Post by kalan_vod »

leofox wrote:since when does pti have a keyboard xD
With brass, and for a while.. 8)
leofox
Calc Master
Posts: 1064
Joined: Fri 17 Dec, 2004 3:22 pm
Location: Probably playing DDR
Contact:

Post by leofox »

I should really check the new releases more. I'm finally getting used to TASM and PTI on the keyboard.
Image
Image
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

That's an old screenshot - the Latenite "PTI debugger" now looks like this:

Image

(Also now supports configurable keys and the on-screen keypad).
Jyaif
New Member
Posts: 3
Joined: Tue 22 Aug, 2006 11:40 pm
Location: Paris, France

Post by Jyaif »

thanks for all your replies.
benryves> I was thinking of porting Kartingz, so your rotozoom interests me. How does your engine works ?
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

Jyaif wrote:I was thinking of porting Kartingz, so your rotozoom interests me. How does your engine works ?
I would have assumed it worked the same way as yours does (to some extent).

It fills pixels from left->right, scanline by scanline.

It starts by calculating a dX (cos(angle)) and a dY (sin(angle)). These are used to move the coordinate "under" the pixel that is under the current pixel being filled (as in, the coordinate of the source pixel). Two coordinates are kept track of - one for the current pixel, one for the pixel at the start of the scanline.

At the start of each scanline, the coordinates for the start of the scanline is copied to the current pixel coordinates. The start of current scanline coordinates are then adjusted so they're ready for the next row. As moving down Y should perform the same action as moving right X rotated through 90 degrees, x-=dy and y+=dx. Then, I fill each pixel, after each one moving along using x+=dx and y+=dy.

I really can't think of a better way to describe it. Here is a QB demo (binary) of what I mean. sp? is the start scanline pixel coordinate, p? is the current pixel coordinate.

I also preload sp? with values to the effect of moving up half the screen height and left half the screen width so that it rotates around the centre of the screen instead of the top-left corner.
Post Reply