- New to Ti86 programming: memory and how to use functions in Ti86 include files
- 03 Apr 2026 12:40:32 pm
Hello I've just subscribed. I still have my Ti86 I used at the time of university and I always desired to program it in assembly but at the time there was not so much materials online and no book at all.
Now I've decided it's time.
I'm finding really hard to put together all the information required thou I collected a lot.
As compiler I use tasm 3.2
Dowloaded the four include files I found for Ti86 that map usable labels to ROM services
Found var8xw for producing .86p file from the .bin file
Intalled Ti connect
it all works at the end but I still have a lot of doubts and questions:
1. I read about the way Ti86 divides memory from 0 to 64k in four blocks.
I don't understand what's the maximum size a user assembly program is allowed:
the program in exectution must start from the address d748.
I read the stacks starts from the end of the allowed space and decrement with push.
I wrote a small test and got the SP value when still the stack is unused.
I found it's fbdc and
So it seems the max size in hex is 2494 that is 9364 bytes.
Is it correct or am I missing something?
So the swappable pages are not accessible or automatically used by the OS for loading larger programs?
2. the hardest difficoulty I'm finding is using the services or functions mapped by Ti86 include files: there is no explanation about what they do, how they work, in which registers or memory addresses put the operands, how many the operands are.
For instance even simple functions like _puts or _putc are ambigous: all the examples use _puts and they show the address of the string must be loaded in HL but it was very hard even finding the char to print with _putc must be put in A.
I search for some clearer explanations about Ti85 or Ti83 but I found none.
Where can I find them or how can I desume the way to use Ti86 mapped functions?
3. Is it possible to split the source in more than one file and link them together in one obj?
I read tlink should be used but I can't find it in a compatible version with windows 64 bit.
Thank you very much for any information you can provide me with.
Now I've decided it's time.
I'm finding really hard to put together all the information required thou I collected a lot.
As compiler I use tasm 3.2
Dowloaded the four include files I found for Ti86 that map usable labels to ROM services
Found var8xw for producing .86p file from the .bin file
Intalled Ti connect
it all works at the end but I still have a lot of doubts and questions:
1. I read about the way Ti86 divides memory from 0 to 64k in four blocks.
I don't understand what's the maximum size a user assembly program is allowed:
the program in exectution must start from the address d748.
I read the stacks starts from the end of the allowed space and decrement with push.
I wrote a small test and got the SP value when still the stack is unused.
I found it's fbdc and
So it seems the max size in hex is 2494 that is 9364 bytes.
Is it correct or am I missing something?
So the swappable pages are not accessible or automatically used by the OS for loading larger programs?
2. the hardest difficoulty I'm finding is using the services or functions mapped by Ti86 include files: there is no explanation about what they do, how they work, in which registers or memory addresses put the operands, how many the operands are.
For instance even simple functions like _puts or _putc are ambigous: all the examples use _puts and they show the address of the string must be loaded in HL but it was very hard even finding the char to print with _putc must be put in A.
I search for some clearer explanations about Ti85 or Ti83 but I found none.
Where can I find them or how can I desume the way to use Ti86 mapped functions?
3. Is it possible to split the source in more than one file and link them together in one obj?
I read tlink should be used but I can't find it in a compatible version with windows 64 bit.
Thank you very much for any information you can provide me with.
