Hey guys,
Some months ago I decided to start a project that many Basic coders from the French community at http://tout82.forumactif.org/ had asked for, that is, an extended Basic lib, kinda like xLIB or Celtic, but for TI-82 stats and such (TI-76 and 83). So I had another idea : why not making it compatible with the 8x+ line too ?
So how to use it : the main idea is that you put arguments in the list named WLIB and you call the Basic program USEWLIB with in Ans the number of the function to call.
I present it here and now but it's not nearly done. For now it can only do a few things, that is :
And all of this in 763 bytes. Happy Christmas !
Now, some explanations :
Why it works with all calcs is because prgmUSEWLIB contains a single Basic line that launches WLIB the correct way, with either Asm() or Send(9) depending on the platform. So send the right version of USEWLIB and WLIB to your calc, and every program using them will work on every calc !
Download WLib (readme is in French, although it doesn't contain much information).
If you want to give it a try and/or see how it works, you can see the example program A.8xp
Share comments
Some months ago I decided to start a project that many Basic coders from the French community at http://tout82.forumactif.org/ had asked for, that is, an extended Basic lib, kinda like xLIB or Celtic, but for TI-82 stats and such (TI-76 and 83). So I had another idea : why not making it compatible with the 8x+ line too ?
So how to use it : the main idea is that you put arguments in the list named WLIB and you call the Basic program USEWLIB with in Ans the number of the function to call.
I present it here and now but it's not nearly done. For now it can only do a few things, that is :
- Scroll the screen up or down (not the buffer, uses port $10). {column to display at the top of the screen}→LWLIB : 0 : prgmUSEWLIB
- Scroll the buffer left. {nb of pixels to scroll}→LWLIB : 1 : prgmUSEWLIB
- Scroll the buffer right. {nb of pixels to scroll}→LWLIB : 2 : prgmUSEWLIB
- Check if a program exists on-calc. {nb of Str that holds the program's name}→LWLIB : 3 : prgmUSEWLIB
- Create a program, and erase the one of the same name that already exists. {nb of Str that holds the program's name, size in bytes}→LWLIB : 4 : prgmUSEWLIB
- Turn a pixel on. {X, Y}→LWLIB : 5 : prgmUSEWLIB
- Turn a pixel off. {X, Y}→LWLIB : 6 : prgmUSEWLIB
- Toggle the state of a pixel. {X, Y}→LWLIB : 7 : prgmUSEWLIB
- Load sprites in WLib's slots. {nb of Str that holds sprite data, nb of sprites}→LWLIB : 8 : prgmUSEWLIB
- Load a tilemap in WLib's tilemap slot. {nb of Str that holds tilemap data, size in characters (width * height), offset to load from in characters}→LWLIB : 9 : prgmUSEWLIB
- Display the loaded tilemap using the loaded sprites. 10 : prgmUSEWLIB
- Display the buffer to the screen. 11 : prgmUSEWLIB
- Invert the buffer's pixels. 12 : prgmUSEWLIB
And all of this in 763 bytes. Happy Christmas !

Now, some explanations :
- Sprites must be stored in hex format, similar to Axe's or ASM's format.
- Same for tilemaps, so each tilemap can use at most 16 different tiles (0 to F).
- A slot is something relative to WLib's system. Don't bother about it for now.
- If you want to load several sprites with a single function call, you'll need to pack them into one Str.
- Idem for tilemaps.
Why it works with all calcs is because prgmUSEWLIB contains a single Basic line that launches WLIB the correct way, with either Asm() or Send(9) depending on the platform. So send the right version of USEWLIB and WLIB to your calc, and every program using them will work on every calc !

Download WLib (readme is in French, although it doesn't contain much information).
If you want to give it a try and/or see how it works, you can see the example program A.8xp


Share comments
