There was a graphics standard extension named GSX for few CP/M computer
After I bought a Commodore C128, I started to play with CP/M 3.0 very soon, see here also.
I realized that there are many CP/M text applications, but almost no graphics applications.
It exists only one standardized graphics interface for CP/M, GSX-80.
But you have to use a device dependent screen driver for each computer.
Unfortunately Commodore never developed such one, so building such one is one of my ideas I had.
To get in touch with GSX-80, you need only the Programmers Manual (and the Users Manual for a general overview).
I've converted a GSX-80/GSX-86 related programmers manuals to a modern document format here: GSX-PGR.PDF
More GSX-related stuff will follow as I have time for that...
Because starting from scratch in this matter is very hard, I looked for
a Graphics Library for the C128 usable with CP/M, and fortunately I
SG C TOOLS from Steve Goldsmith.
Look at this screenshots and you will see what can be done with it...
Here are the compiled files (done with HITECH C):
demo1.pcx - file will be loaded from the main program
demo2.pcx - file will be loaded from the main program
And here is the source code: demo.c
You need also the library (v1.6) itself: libc128.arc
This is the ReadMe-Document which was also included: sgctools.txt
And last, but not least you need the HiTech C Compiler 3.09 - download it here as a ZIP archive.
NEW: Steven Goldsmith has published instructions how to compile it. Also, he published a never seen v1.8 of it (and he included a floppy disk image also).
Meanwhile Steven updated his work to get an even better result.
He published also a video to demonstrate it:
Please visit https://github.com/sgjava/garage/tree/master/commodore/cpm/vicdemo for his updated work, really astonishing what he made possible. His demo is still programmed in C, so it should be easy for you to implement portable versions of graphic demos or even games - but with CP/M !
A different approach was published from a german Commodore Magazine, a
library which can be used with TURBO PASCAL 3, also under CP/M 3.
This is included in the archive file graph128.zip.