The work on this target was similar to the one for the Bondwell2, with extra complexity regarding the disk formats and emulator workarounds.
At the moment the basic support for graphics is available.
A possible evolution of the native console could permit the character font alteration by entering in the same graphics page already used for drawing and scrolling by leveraging on HW rolling.
(classic) Amstrad PCW
(classic) Amstrad PCW
You do not have the required permissions to view the files attached to this post.
Re: (classic) Amstrad PCW
I'm leaving the console part aside.
In case "someone" wishes to evolve this target furtherly.. the display memory page holds the original font, which can be altered, but I'm not sure if it is of some interest to us.
You do not have the required permissions to view the files attached to this post.
Re: (classic) Amstrad PCW
Thanks for this new target, the graphics functions are working fine. But is the native console supposed to be fully working already?
E.g. should we be able to clear the screen using printf("\032")?
Attached is a stripped-down Native Console Test based on ansivt52.c, which works on the Bondwell 2 and Osborne 1, but not on the PCW.
BTW, what is the difference between the pcw40 and pcw80 subtypes? Is it only the disk image output format?
E.g. should we be able to clear the screen using printf("\032")?
Attached is a stripped-down Native Console Test based on ansivt52.c, which works on the Bondwell 2 and Osborne 1, but not on the PCW.
BTW, what is the difference between the pcw40 and pcw80 subtypes? Is it only the disk image output format?
You do not have the required permissions to view the files attached to this post.
Re: (classic) Amstrad PCW
It looks like the PCW is an almost VT52 terminal - but that cls command is an ADM3a code.
If you search for the PCW user manual, there's a terminal characteristics with the supported codes.
If you search for the PCW user manual, there's a terminal characteristics with the supported codes.
Re: (classic) Amstrad PCW
Now I understand, there is no standardized terminal handling among CP/M machines, despite ADM3a being quite common.
Here is the working PCW native console test:
Here is the working PCW native console test:
Code: Select all
/*
* Test the Native Console of the Amstrad PCW
*
* 23/3/2021 RobertK (based on ansivt52.c by Stefano)
*
Manual Index:
https://www.manualslib.com/manual/1002846/Amstrad-Pcw8256.html?page=170#manual
Character Set:
https://www.manualslib.com/manual/1002846/Amstrad-Pcw8256.html?page=283#manual
Terminal codes:
https://www.manualslib.com/manual/1002846/Amstrad-Pcw8256.html?page=308#manual
*/
#include <stdio.h>
void main()
{
int x;
printf("Before CLS\n");
printf("\x1b\x45"); // ESC E -> Clear screen
printf("\x1b\x48"); // ESC H -> Home
printf("If this is the first thing you can read, CLS is OK.\n");
/* Draw an X */
for (x = 0; x < 11; x++) {
// ESC Y r c -> gotoxy
printf("\x1b\x59%c%c*",32 + 10 + x, 32 + 20 + x);
printf("\x1b\x59%c%c*",32 + 20 - x, 32 + 20 + x);
}
}
You do not have the required permissions to view the files attached to this post.
Re: (classic) Amstrad PCW
For the ADM3a machines there’s a generic console bridge which handles positioning which works reasonable well on those machines without a custom implementation.
For vt52 machines, like the pcw, you should be able to use conio directly - though I might need to change the clrscr macro to output the full escape sequence rather than our shortcut code.
I’m really trying to avoid implementing a full curses library if I can!
For vt52 machines, like the pcw, you should be able to use conio directly - though I might need to change the clrscr macro to output the full escape sequence rather than our shortcut code.
I’m really trying to avoid implementing a full curses library if I can!
Re: (classic) Amstrad PCW
Apologies, that's total utter garbage. I think I should have said, we'll need to tweak conio to handle VT52 machines.
Re: (classic) Amstrad PCW
A customized VT support here must be at a fixed font size and for the expected text resolution. Otherwise the hw support for scrolling text will drive us crazy.
Besides this, as said there's space for a bit of customization, I'll have a crack at it and probably will ask for Dom's help later
Besides this, as said there's space for a bit of customization, I'll have a crack at it and probably will ask for Dom's help later
Re: (classic) Amstrad PCW
Sorry, I'm giving up already
The roller ram is really annoying, I completed the graphics port with the inclusion of bksave/bkrestore but I'm not adding extras.
The roller ram is really annoying, I completed the graphics port with the inclusion of bksave/bkrestore but I'm not adding extras.
Re: (classic) Amstrad PCW
The vector06 has a similar scroll register - I can take a look later on, but I want to fix the Sam bugs, sort out multi8 colours and do the screenshots before Timmy kills me
Re: (classic) Amstrad PCW
yup, this would be a totally new library part, nothing to be 'fixed', just a bit of fun. Probably it is not necessary to provide the full console engine..