@(#)TODO 1.3 89/12/12 Problems. --------- * With the SunView, MGR, NeWS, X11 and XView versions, the #list command needs to output somewhere better that stdout. * Handling of image files with extensions (eg: dmr.oil), needs to be included. * The following problem exists with the NeWS version: (i) The soft cursor is not being correctly positioned in the dialog box. * The following problem exists with the XView version: (i) The cursors are not correctly changing. * The following problem exists with the X11 version with the MIT server: (i) Colormap (really grayscale map) handling is incorrect. The colourmap should be dynamic and not static. Enhancements. ------------- * Ability to use multiple machines via a remote procedural call mechanism would speed the program up considerably. * The operation stack should be floating point. This would be available via a compile-time option. * The graphics interface for the workstation generic graphics drivers, needs to be substantially improved. Inclusion of a scrollbar to view previous commands, the ability to cut and paste commands, menu buttons to iconise and quit, picture settings etc.. * Ability to output images in Sun rasterfile format. * Add in online help. * Parametrise some of the special functions, such as genepson. * Better dithering for monochrome drivers and epson. * Variables and comma operator, for expression optimisation eg new[x,y] = (t = old[x,y] / 2) < Z/10 ? t/2 : t or whatever. * Fix up the parsing a bit. Want a better way of dealing with floating point numbers and names. * Fix up the way images are stored (instead of fixed length array). * The run time interpreter could be self modifying code. That is, instead of compiling pseudo-operations onto the parse stack, generate real machine code to do the same thing; then execute this inside run(). * Catch signals and longjmp() to prompt. Need to call driver- specific signal handler to clean up in the middle of an image. * Optimise initial new[x,y] to @ * In I/O, change isalpha() test to allow digits and '_'. * Do proper optimisation, including precalculation of vectors in run(). * Convert NeWS driver to use classes. * Grayscale "colour" MGR version. * Think about rgb colour handling. * The PC version should use appropriate pointer typedefs (using nonstandard memory reference keywords if available) for the image data. * When I compile popi with any but the small memory model, it hangs, even on a small image that works with the small model version. I need to look into this. * PC version again: need to add support for remaining standard board types. Also need to do compiler-independant adapter detection. * Take a deep breath and allow the PC driver to (optionally) be compiled with graphics.c. * Need to get command-line option processing right, allowing it to be passed to disp_init, but still giving an error message for unrecognised options. * It would be good to have something a bit better than the simplistic dithering currently used for drivers that can only display a few greyscales. This should be factored out into graphics.c or something.