At 09:59 PM 12/31/2003 -0800, The MCP wrote: I finished up with the last subroutine for my program today at 4:00 something AM, local time! The only thing I haven't done is finish the text drawer. Actually, the routine works, but it needs a horrible list of where to look in an array for the data, and the actual data file itself - 800 numbers long. I'm a lazy shmuck, I admit it. I should have written both of these a long time ago. The program is very straightforward to use. Listing the program from lines 40 to 120 will produce a list with all the current commands and their locations in the program. Here is a list: LINE: Requests a start point, and keeps requesting new points until fed -1,-1 1LINE: Only draws a single line SAVE: Saves the current file LOAD: Loads the current file (BUG: Doesn't clear screen beforehand!) NEW: Should CLEAR all variables and basically restart program MENU: Exits back to main menu RAYS: Draws lines from one point until fed -1,-1 TEXT: Supposed to write text, but currently not finished :( GOTO: Allows you to move to a new "logic" X and Y ZOOM: Change zoom INFO: Real-time routine displays info about lines EXIT: Restores 40-columns and ENDs It was designed to be easily extensible, with each new routine getting a full 500 lines to work in and a place in the command menu, which is basically analagous to a C-type switch statement. Probably the next thing to add will be undo and then the ability to draw regular geometric shapes. The routines meant to be accessed from anywhere are at 250 (updates OSD), 500 (clears top 2 lines), 600 (Checks is current (L,M)-(N,O) values can be drawn), and 800 (Draws line of (L,M)-(N,O). VectorDraw uses one machine-language poke, POKE 63036,10 to make screen control easier and make sure the graphics area is not overwritten. If it crashes, you'll have to either restart and exit or POKE 63036,40 to get the screen back to normal. The only real configuration option is line 7, which determines if data will be stored as SNG or INT. If you only plan to draw, you'll probably be safe (and a bit faster) with INT. If you draw text, you'll probably need SNG or the text may get mutilated by truncation of the decimals it generates. For your amusement, I attached BOX.DO (draws a simple box, good for experimenting with) and SADDAM.DO (written the day we caught him). The text in SADDAM.DO was edited manually, not generated by the computer. Happy new year!