Hi all!
Any interest in a graphics library for the Amstrad PCW?
I'm writting a RSX based library for CP/M Plus.
It should be usable from any computer language, say, Basic or assembler, because it has a standard BDOS interface, but I'm writting some additional libraries for MESCC, my Small-C variant:
- xtext: for fonts and printing text with attributes (bold, italic, etc.).
- xdraw: to set pixels, draw lines, circles, etc.
And I have in mind to write libraries to draw icons, sprites, etc. (the RSX has already a basic support for that).
It will be released under the GPL license.
My slogan reads "The User Formerly known as CP/M User" because of the amount of complaints I got, when I told other users I wasn't using GSX.
Quote from: AMSDOS on 11:47, 22 July 15
My slogan reads "The User Formerly known as CP/M User" because of the amount of complaints I got, when I told other users I wasn't using GSX.
Well, GSX is good as CP/M is good for a lot of computers, including the Amstrad PCW (same OS for a variety of computers), but IMHO it is too big and slow for some purposes.
Quote from: FloppySoftware on 15:26, 22 July 15
Well, GSX is good as CP/M is good for a lot of computers, including the Amstrad PCW (same OS for a variety of computers), but IMHO it is too big and slow for some purposes.
Huh, that's funny last time I recall a PCW had 256k minimum. :D
I don't know GSX well enough to know what it can or can't do, though understand a number of CP/M systems which support graphics use it, so in a way the CP/M community treat that as if it was like DirectX for Windows (even though Windows was going longer than that).
But from what I've seen PCW breaks those rules, by using System Specific stuff which, as I understand it, can sometimes be the only way.
The idea behind GSX is to offer a solution for all possible graphical devices, so you're not limited to screen but there's printer, etc. The internal resolution is 32768x32768 and every command is scaled in software to the dimensions of the hardware it currently writes to (i.e. 720x256 for the display) which is extremely costly.
The idea is not speed but first and foremost compatibility across all possible CP/M machines. That's ideal for graphs and pie charts. And of course, this is slow by design.
That's all from the top of my head. I haven't done anything with GSX for a very long time.
I'm assuming that to have compatibility means an compromise in speed? Though source code for GSX is probably scarce, this site (http://www.cpm.z80.de/source.html) only has GSX86.
Quote from: AMSDOS on 12:15, 23 July 15
I'm assuming that to have compatibility means an compromise in speed? Though source code for GSX is probably scarce, this site (http://www.cpm.z80.de/source.html) only has GSX86.
Each gsx implementation has it's own driver code.
The CPC one uses the firmware.
Don't know about the PCW one.
Quote from: AMSDOS on 10:45, 23 July 15
Huh, that's funny last time I recall a PCW had 256k minimum. :D
But only 61 Kb of TPA. ;)
Add to the program code and data size, the memory requirements of GSX + drivers. That's a lot. :'(
Quote from: arnoldemu on 13:08, 23 July 15
Each gsx implementation has it's own driver code.
The CPC one uses the firmware.
Don't know about the PCW one.
GSX is the same as BDOS for CP/M: the same for all CP/M machines, is standard.
But the drivers are specific of every device: printers, plotters, screens, etc.
The PCW has no firmware at all, and the BIOS USERF jump doesn't have any graphical function as draw, plot, etc.
Then, the screen drivers must to do all the work, resulting in a lot of code, and some features are missing.
Quote from: FloppySoftware on 13:27, 23 July 15
But only 61 Kb of TPA.
Well that's just stupid, cause everyone knows CP/M Plus utilises the extra 64k and I can even get 61Kb of TPA out of my 6128, so I can only presume Memory is being wasted away by not doing anything on a 8256, unless you know otherwise? I suppose it would make sense if you had that set aside for a RAM disk.
Quote from: AMSDOS on 10:13, 24 July 15
Well that's just stupid, cause everyone knows CP/M Plus utilises the extra 64k and I can even get 61Kb of TPA out of my 6128, so I can only presume Memory is being wasted away by not doing anything on a 8256, unless you know otherwise? I suppose it would make sense if you had that set aside for a RAM disk.
Yep, it's your m: drive
Quote from: arnoldemu on 13:08, 23 July 15
Each gsx implementation has it's own driver code.
The CPC one uses the firmware.
This page (http://seasip.info/Cpm/gsxint.html) from John Elliott's website seems to support that since a number of standard GSX features aren't implemented in that version.
The PCW8256 version seems to borrow traits from the CPC version but replacing Firmware Drawing code with PCW specific, so has 2 sections. The 9512 has an Advanced version of GSX.
Quote from: AMSDOS on 10:29, 24 July 15
This page (http://seasip.info/Cpm/gsxint.html) from John Elliott's website seems to support that since a number of standard GSX features aren't implemented in that version.
The PCW8256 version seems to borrow traits from the CPC version but replacing Firmware Drawing code with PCW specific, so has 2 sections. The 9512 has an Advanced version of GSX.
OMG! I didn't know that the GSX drivers for CPC/PcW are actually that poor! So a new GFX library is a great idea for sure!!
One question I do have in mind... How much CP/M program are actually using GSX? Is it only DR Draw and DR Graph? Or are there more?
DR Logo with CP/M Plus uses GSX and who knows there maybe a number of Hisoft Pascal 80 programs which use GSX.
this resultion is great"
- 800x600 colour graphics screen (available through LOGO or GSX)."
such a resolution need the cpc too :)
Well, there's some progress in the work (or it was work in the progress? ;) ).
Now I have a RSX and some MESCC libraries that use it.
With some luck, I will publish them very soon, including a small game that use some of these graphical functions.
In fact, the game is already finished, but I would like to publish it the next September, as a small present for our beloved Amstrad PCW, in its 30th anniversary. :D :D :D
Coooooool! 8)
The PCW is starting to get the love it deserves, thank you very much!
Great, I am looking forward to it! :)
Looking forward to it, too!
Hi all!
I have just uploaded XPCW to my website.
XPCW is a graphics and keyboard library for the Amstrad PCW, under the CP/M operating system.
It consists of a CP/M Plus RSX file, with some library files (.h) for MESCC, my own version of the Small-C compiler.
The RSX is written in Z80 assembler source code.
It can be accessed by any CP/M program or language, provided it follows its conventions (read the RSX source code for more information).
The XPCW.RSX file, has to be attached to any program that uses this library.
Only one MESCC library is needed (xpcw.h), the other are optional.
The libraries are:
•xpcw.h - Main library.
•xdraw.h - Functions to draw pixels, lines, etc.
•xtext.h - Functions to write text, set the font, change attributes, etc.
•xchrdef.h - Functions to get / set character definitions.
•xbitmap.h - Functions to draw bitmaps.
•xkeyb.h - Functions to access the keyboard.
You can download XPCW in binary and source code form, from my website (includes Squarex, a little game).
(http://www.floppysoftware.vacau.com/xdemo.png)
Very cool, thank you for your work! Having a look at the source codes and the bresenham algorithms gave me a lot of new general motivation for coding for our 8bits :)