|Up to TI-83/84 Plus Assembly Source
|TI-83/84 Plus Assembly Routines (Doors CS)
|TI-83/84 Plus Assembly Routines (Ion)
|TI-83/84 Plus Assembly Routines (MirageOS)
|12x12 Graphic Routines
Some simple 12x12 pixel tile and sprite routines that used packed sprites, includes a simple editor.
|ASM Code Snipets
ASM Code snipets.zip contains some usefull code snipets, which can be used by anybode, for asm-prgms and flash apps. More code snippets will follow.
|Bell link library
The Bell link library is a tool for assembly programmers that eases the development of multiplayer games through the link port. It was created several years ago but I have only recently recovered it. The manual can also be found online at http://bell.timendus.com/
|Binary Search (general-purpose)
Binary Search as an efficient algorithm for searching sorted data. The core of the algorithm is straight-forward, and the same regardless of the kind of data. This routine provides the core of the binary search routine, you just need to provide a routine (pointed to by IX) that compares two pieces of data. This means that you can use this binary search to search even your weirdest data formats! Great for parsers (comparing a text string to a sorted list of function/var names) or even just searching data like a Pokemon database by name :)
|Binary to String
Two routines that format integer numbers to ascii strings that are printable using _puts or _vputs.
|Doublewide masked/unmasked sprite routine
Includes bitshift.inc, my include file for 16-bit bitshifting for all three 16-bit registers, boolean.inc, which contains routines for running a bitwise boolean on hl with de or bc, and doublesprite.inc, which contains my routine for displaying a 16-bit sprite (the usual size is 8-bit) on the screen. The routine is in XOR logic, but can be changed to AND, or OR logic. Refer to readme.txt for info on input registers for the sprite routine. Now also includes doublemaskedsprite.inc, which is my sprite routine for a 16-bit masked sprite. I've also updated to old sprite routine to be much faster, and doesn't use IY, and i made some of the bitshifting routines faster.
|Bolder Font Puts Routines
These only 99 bytes routines are able to use bolder font version of _vputmap and _vputs. Also includes multi-line version. Please read "boldf.inc" and "sample.z80".
|Updated CpStr( )
Not long after I had uploaded the cpstr routine to the archives, did I get an email from Joe Pemberton that included a much better coded version of the function. This updated version is both faster and smaller. Also it is not limited to strings<256 chars in size (not that you'd really need a string that big, except in the rarest of cases). Returns results to z80 flags Z is ste if they are equal, NZ if they are not equal. Also when NZ is set C means str1[pointed to by hl] comes alphabetically after str2[pointed to by bc], NC means str1 comes before str2. If anyone wants to make a command-line based program/operating system, this is probably a good function to have.
Dline is line drawing routine thats faster than Patai Gergely's Drawline, One version allows interrupts to be on, doesn't use write back and is 6% to 20% faster. The other is 40% faster and needs two bytes to save the SP. Note both sacrifice memmory for speed.
|Fancy Donkey GFX: Line, Circle, Filled Circle
These are line and circle drawing routines. What makes them Super Snazzy (tm) is that you get to provide a pointer to the plotting routine via IX. Hmm, let me clarify-- If you want your circle to be drawn with pixels, you pass a pixel-plotting routine. If you want to draw your circle with a bunch of mini circles, you pass a mini-circle drawing routine. If you want to draw a line whose every tenth pixel is actually a filled circle, you pass IX pointing to a routine that counts and plots pixels, opting for a filled circle every tenth call. These routines are versatile as h*ck. Check out test.z80 for examples.
|FastCircle TI-83 Plus
Bresenham's circle algorithm. MUCH faster that the TI-OS routines.
|~z80 ASM square root~
this is a fast z80 routine to calculate the square root. useful for raycasting or anywhere where getting an integar square root is useful (distance)
|Custom floating point library
Fast floating point lib that does everything in-register. Specs: 16 bit manitissa, 8 bit exponent. Included is an implementation of a (beta quality) Iterated Function System fractal generator. For more info and latest version: http://github.com/RoaldFre/z80fltptlib
|Custom 4x5 Font Routine
Prints a custom 4x5 font zero-terminated string to gBuf (with char-wrapping and invalid char check) ASCII chars 32-126, basically anything you can type on a keyboard :). 127 is used for an invalid character, or a solid block.
|GrayScale With Binary
Sorry if you downloaded the prvious version-this one is accually grayscale. Enjoy.
Routines that make direct input for games simple and fast.
|String Input Routine
Use this routine to get small-font string input in Asm. Also has 3 modes, Caps, Small, and Numerical. Also can delete/clear input.
Always want a title-screen in GrayScale. Well, here it is. It's very easy to understand. Good Luck
|HeapSort for the Z80
An implementation of the famous HeapSort sorting algorithm in Z80 assembly language.
You don't have to press alpha for letters and it stores to Str7. It puts the AsmPrgm and newline tokens in the right places.
Cette routine permet d'entrer et de sauvegarder une chaîne de caractères. This routine allows you to write and store a string.
This is a collection of routines that allow you to input a string from the user. It uses the small font, has ALPHA mode, and a blinking cursor.
A GUI-routine that can be included in your programs with ease. See the Example program for an impression.
This is an implementation of an adaptive insertion sort to sort the VAT in-place. It's pretty fast compared to other implementations, especially on a mostly sorted VAT (like when you sort the VAT, make some more programs)
This is an AND/XOR sprite routine that allows you to display a sprite of any width and height.
|Keyin - Key input routine that uses IY
Keyin allows you to save all keys in statvars and check it with " Bit ? , ( IY + ? ) ". No longer needing reload key data into A. And since Iy never changes you can read key data at any point in your program. This routine is under 25 bytes and fast.
A fast line-drawing routine and a line-clipping routine. You can draw a line between any two points on the screen. The clipping routine lets you draw lines that are partially off-screen.
|(Medium) Greyscale Sprite Routine (8 Directions)
This file includes the two routines I made, it moves a sprite (One in Black & White the other in 4 level greyscale) with the directional pad (8 Directions). The routines are include, the compiled files too. For the Greyscale, you need Diederik Kingma's greyscale package. (www.maxcoderz.com). Read the Readme.txt for further instructions.
This routine gets a numerical number entered from the calculator user and stores it in any defined rom location. At the current time it is the only routine for the 83+ in existance. It is some 200 bytes and is very easy to use.
|Numerical Input Routine
This is a Numerical Input Routine written for Calcs with the z80 processor, namely the 83+/84+ Series. The routine gets user number input; with the ability to specify where on the screen Num input is shown.
|TICI 1.0 PS/2 Drivers
These routines let z80 calculators communicate with PS/2 keyboards, mice, and other hardware.
Code to decompress data compressed using pucrunch.
|Run Counter 16-bit edition
This is a run counter that demonstrates Self Modifying Code (SMC) and Binary Coded Decimal (BCD.) This run counter also returns a number, in Ans, that can be used in a BASIC program. This is an update to my 8-bit Run Counter. If you only need to count to count to 99, use the 8-bit one, it is smaller and faster. This one will count to 9999.
This is a run counter that demonstrates Self Modifying Code (SMC) and Binary Coded Decimal (BCD.) This run counter also returns a number that can be used in a BASIC program.
|Scaled Sprite Routines
Two sprite routines which allow you to draw sprites at a fraction of their stored size. The sprites may be drawn with a scale factor anywhere from 0.4 to 100% -- so sprites can only be scaled down, not enlarged.
|Scaled Sprite Routines
Four routines to scale sprites (up or down)
|Scrolling Menu for use with BASIC or Assembly
This is a routine I created to mimic the TI-OS's scrolling menus, such as the one that appears in the Stats Menu. Supports up to 20 menu items! See readme for instructions on using with basic.
A graphical routine that allows to apply a 16*16 texture on a ground and to "bend" it. Demo program included for Ti83 (Venus 2.3) and Ti-83+(SE) (ION). This update is a slight optimization and the demo program has the right header for Venus 2.3 now.
Rotates image on screen or in buffer. Good for moving backgrounds.
|A Few Simple And Useful Routines
Just some routines, that may be useful. Kinda aimed toward begining asm programmers. Some of these routines are born out of the fact that the Z80 does not have 8 and 16 bit versions of ALL instructions.
Sorts the vat really fast using insertion sort (fixed a bug)
|Sound Interrupts beta
uses interrupts to create background music and sound effects over it.
A compilation of some nifty sprite routines.
A compilation of a few useful sprite routines.
A heavily commented demonstration program of "how to make those %10110101 thingers move"... Just the source is included, not the 8xp, but it's ready to compile...
|Square Root Of A
Finds the square root of the accumulator (rounded to the nearest interger) using a lookup table, destroys AF and HL, fast!! 284 bytes total. I have tested this program with VTI (I don't have my Computer->Calc link Cable anymore, sorry) and found it to be bug free, but if you find any errors, email me.
|Microscopic Print Routines
Two (VERY) small and useful text output routines. Even if you include both it will only occupy LESS THAN 20 bytes of code.
This is a set of linking routines. You can freely use them in your programs. The maximum speed is 4 KB/sec for 83+s, and 10 KB/sec for SEs.
|The Best D*mn Clear Screen Routine Period
If anyone can figure out a routine faster than this one, then I'll throw away my computer and use an Intel 4004 instead.
|The Best D*mn Sprite Routine Period
This is a set of four very fast clipped sprite display routines. Includes OR, XOR, AND, and Masked.
|_vputs for multiple lines
This routine works exactly like _vputs, except that it will interperet $d6 as a newline char. This can dramatically reduce code size when using the variable-width text on multiple lines. Now includes a version for the '83+.
Ces routines servent à décompresser des images encodées en VRLE dans la mémoire graphique. Compatibles pour 83 & 83+. Traduction de la routine idoine pour TI 86. This routine decompresses VRLE coded pictures in graph buffer. Compatibility with TI 83 & 83+. Translation of Levi Lansing TI 86 routine.
|White Font Puts Routines
These only 155 bytes routines are able to use white font version of _vputmap and _vputs. Also includes multi-line version. Please read "whitef.inc" and "sample.z80"
|Will's Linking Routine
Links z80 calcs, fast. Should work on any z80, but has only been tested on the 83+.
|z80float (160+ Z80 Float Math routines)
z80float is a highly optimized suite of floating point routines written in Z80 assembly. Included are routines for fast 24-bit floats, classic 32-bit floats, and high-precision 80-bit floats. Includes addition, subtraction, multiplication, division, square roots, exponentials, logarithms, trig, hyperbolics, inverse trig, inverse hyperbolics, conversion to and from strings and TI floats, and other routines. These are used in projects like Floatlib and Grammer 2. **This update includes f24 routines, and fixes various bugs and range reduction issues.
This is a Z80 implementation of the heapsort algorithm. These routines can be applied to sorting the VAT, TI lists, or any number of other kinds of data. This project was inspired by Sean McLaughlin's heapsort implementation and is all original code. **Now with a smaller, general-purpose version and listsort example.
|Z80 String Compare
Ever wanted to compare two strings with none of the hassle of programming it yourself? Very useful for people who are planning on making comand line based programs in z80. NOTE:Do not use this in a time-critical section of code, even though it is NOT painstakingly slow, it's not lightning fast either. PLEASE CONSIDER THIS!!
|ZCom - Communication Routine
ZCom is a communication routine for Basic programs. It can transfer real/complex variables and lists, matrixes and strings between two TI-83 Plus calculators. The routine has a built in function to enable chat-programs. This routine is 100% compatible with the TI-83 Plus Silver Edition!