Rate Your Self: Overall skill with z80
Professional 100%
 0%  [ 0 ]
Expert 90-99%
 18%  [ 4 ]
Great 70-89%
 9%  [ 2 ]
Fair 50-69%
 0%  [ 0 ]
Getting there 30-49%
 9%  [ 2 ]
Burden to society 0-29%
 63%  [ 14 ]
Total Votes : 22

Hello world
I was just wondering how i should start learning z80 ASM.
"Start" as in, What is it other then a "z" and a "80".

Any help would be greatly appreciated.

But a link to a online tutorial would be sufficient.
I was tempted to vote 100% in your poll there, but modesty and the realization that you can never know everything got the better of me, so I chose 90-99%. Anyway, z80 assembly is low-level programming for TI graphing calculators (and other z80 devices). It's much more powerful, flexible, and fast than TI-BASIC, but it's more complex and easier to make mistakes in. If you make mistakes, you're more likely to need to pull a battery or to trigger a RAM clear. I consider the downsides very much worth it, though. I recommend the following resources:

:: ASM in 28 Days - the ultimate tutorial
:: The Doors CS SDK - not a tutorial, just documentation on how to add GUIs, plus use all the Ion-cloned routines and functions.
:: WabbitEmu - A great emulator to save your real calculator many cycles of freezes and crashes while you learn
Here are some other links that may be of use:
Oooh, I heartily second everything that Ben suggested, especially the last two lines. I can't tell you how often I refer to the Dev Guide and the System Routines for information and arguments, and when they fail me, look at WikiTI.
Hello, im having this issue.
i compiled this program it says there is an error. Im on the 28 day ASM Tutorial so i fail at it. any help on my error? this is the premade program that it gives you...

ASM Program:

Code:
.nolist
#include "ti83plus.inc"
#define    ProgStart    $9D95
.list
.org    ProgStart - 2
    .db    t2ByteTok, tAsmCmp
    b_call(_ClrLCDFull)
    ld    hl, 0
    ld    (PenCol), hl
    ld    hl, msg
    b_call(_PutS)            ; Display the text
    b_call(_NewLine)
    ret

msg:
    .db "Hello world!", 0
.end
.end


This is the command prompt:
C:\asm\tasm>asm hello.z80

C:\asm\tasm>echo Syntax: asm [NAME (w/o extension)] [PATH]
Syntax: asm [NAME (w/o extension)] [PATH]
----- Assembling hello.z80 for the TI-83 Plus...
The system cannot find the file specified.
TASM Z80 Assembler. Version 3.2 September, 2001.
Copyright (C) 2001 Squak Valley Software
tasm: pass 1 complete.
line 0001: No END directive before EOF.
tasm: pass 2 complete.
tasm: Number of errors = 1
----- There were errors.
The problem is the "system cannot find the file specified" line. Please please please use the Doors CS SDK instead; it has everything all set up for you assembler-wise already, you just need to run "compile hello", for example.

http://www.ticalc.org/archives/files/fileinfo/341/34192.html
Also, that tutorial has a mistake. penCol/penRow are used to set the coordinates for the small variable-width font ("graph screen"), and PutS uses the large fixed-width font ("home screen"). You need to replace

Code:
    ld    hl, 0
    ld    (PenCol), hl

with

Code:
    ld    hl, 0
    ld    (curRow), hl

curRow/curCol set the row and column of the cursor for drawing on the home screen. Loading a 16-bit value to a memory address puts the least-significant byte (L) at the specified address and the most-significant byte (H) at the specified address + 1. In this case, curRow appears in memory before curCol, which is why you use curRow.

For what it's worth, the clue is in the output: Syntax: asm [NAME (w/o extension)] [PATH] (emphasis mine). Try asm hello instead, alternatively use Kerm's suggested route (which in the long run is probably easier, but I find it's useful to know why something isn't working rather than dumping it completely for another method).
benryves wrote:
Try asm hello instead, alternatively use Kerm's suggested route (which in the long run is probably easier, but I find it's useful to know why something isn't working rather than dumping it completely for another method).
Plus my suggestion uses Brass, which we all know is a far superior assemberl. Wink
If you are a more visual person and have troubles learning from ASM in 28 Days or similar tutorials, this might help as well, although it is still not fully finished and each file are separate:

http://ourl.ca/4673

If I remember, it is not meant as a full tutorial, though, but rather a complement to ASM in 28 days (it takes a more visual approach). There was also an abridged ASM in 28 days file somewhere on that site, but I forgot where it is located.

Alternatively there in ASM Guru, which I seemed to understand slightly better than ASM in 28 days in my 3rd attempt at learning assembly, but it is for the old TI-83, not the TI-83 Plus, and I have heard that in the more technical parts of the tutorial there were some errors. I have heard that some people learned ASM successfully with it, though. If I recall correctly, tr1p1ea, the author of Desolate, used it, but it has been a long while since we discussed about his early days into Z80.
I learned first from ASM Guru, actually, since it was for TI-83 calculators and I had a TI-83 calculator. It was interesting in that the author of the tutorial didn't know ASM and learned along with you; in retrospect, it had some inclarities which hurt me later in my programming career until other tutorials (specifically 28 Days) fixed my misapprehensions, so I wouldn't personally recommend starting with ASM Guru.
is TI-83+ Asm the same syntaxis as TI-84 Asm?
Yes.
yes!
l o l Very Happy
aeTIos wrote:
is TI-83+ Asm the same syntaxis as TI-84 Asm?
The language is called z80 Assembly, and it's used in the TI-82, TI-83, TI-83+ and Silver Edition, TI-84+ and Silver Edition, TI-85, and TI-86. All of those use the same processor instructions or "opcode". However, the TI-OS differs on each of those, so the set of system routines ("bcalls") that are provided differ. For example, to write a string of text to the LCD on the TI-83, it's "call _vputs", whereas on the TI-83+ it's "bcall(_vputs"). However, the TI-83+ and TI-84+ series calculators are nearly identical OS and hardware-wise except for the addition of a USB port, some extra RAM pages that you don't need to worry about for a long time if ever, and faster processor/more ROM. Long story short, the same programs run on the TI-83+ and TI-84+ with usually no modification at all.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement