display: Make it possible to adjust Type 342 character grid size.
This commit is contained in:
parent
5ba6aacace
commit
037981d583
2 changed files with 17 additions and 4 deletions
|
@ -122,6 +122,8 @@ static struct type340 {
|
||||||
unsigned char intensity; /* 3 bits */
|
unsigned char intensity; /* 3 bits */
|
||||||
#if TYPE342
|
#if TYPE342
|
||||||
unsigned char shift; /* 1 bit */
|
unsigned char shift; /* 1 bit */
|
||||||
|
unsigned char width; /* character grid width */
|
||||||
|
unsigned char height; /* character grid height */
|
||||||
#endif
|
#endif
|
||||||
#if TYPE347
|
#if TYPE347
|
||||||
ty340word ASR; /* Address Save Register */
|
ty340word ASR; /* Address Save Register */
|
||||||
|
@ -167,6 +169,8 @@ ty340_reset(void *dptr)
|
||||||
u->scale = 1;
|
u->scale = 1;
|
||||||
#if TYPE342
|
#if TYPE342
|
||||||
u->shift = 0;
|
u->shift = 0;
|
||||||
|
u->width = 6;
|
||||||
|
u->height = 9;
|
||||||
#endif
|
#endif
|
||||||
#if TYPE347
|
#if TYPE347
|
||||||
u->SAVE_FF = 0;
|
u->SAVE_FF = 0;
|
||||||
|
@ -709,6 +713,14 @@ static const unsigned char chars[128][6] = {
|
||||||
{ 0376, 0376, 0376, 0376, 0376, 0 } /* 77 ??? */
|
{ 0376, 0376, 0376, 0376, 0376, 0 } /* 77 ??? */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void
|
||||||
|
ty342_set_grid(int w, int h)
|
||||||
|
{
|
||||||
|
struct type340 *u = UNIT(0);
|
||||||
|
u->width = w;
|
||||||
|
u->height = h;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* type 342 Character/Symbol generator for type 340 display
|
* type 342 Character/Symbol generator for type 340 display
|
||||||
* return true if ESCaped
|
* return true if ESCaped
|
||||||
|
@ -725,7 +737,7 @@ character(int n, unsigned char c)
|
||||||
flags = chars[c][5];
|
flags = chars[c][5];
|
||||||
|
|
||||||
if (flags & CH_LF) { /* LF */
|
if (flags & CH_LF) { /* LF */
|
||||||
u->ypos -= u->12*s;
|
u->ypos -= u->height*s;
|
||||||
if (u->ypos < 0) {
|
if (u->ypos < 0) {
|
||||||
u->status |= ST340_HEDGE;
|
u->status |= ST340_HEDGE;
|
||||||
u->ypos = 0;
|
u->ypos = 0;
|
||||||
|
@ -747,8 +759,8 @@ character(int n, unsigned char c)
|
||||||
if (flags & CH_ESC) { /* escape */
|
if (flags & CH_ESC) { /* escape */
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if ((flags & CH_NSPC) && u->xpos >= u->7*s) {
|
if ((flags & CH_NSPC) && u->xpos >= u->width*s) {
|
||||||
u->xpos -= u->7*s; /* non spacing character */
|
u->xpos -= u->width*s; /* non spacing character */
|
||||||
}
|
}
|
||||||
/* plot character from character set selected by "shift" */
|
/* plot character from character set selected by "shift" */
|
||||||
for (x = 0; x < 5; x++) { /* column: 0 to 4, left to right */
|
for (x = 0; x < 5; x++) { /* column: 0 to 4, left to right */
|
||||||
|
@ -759,7 +771,7 @@ character(int n, unsigned char c)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
u->xpos += 7*s;
|
u->xpos += u->width*s;
|
||||||
if (u->xpos > 1023) {
|
if (u->xpos > 1023) {
|
||||||
u->xpos = 1023;
|
u->xpos = 1023;
|
||||||
u->status |= ST340_VEDGE;
|
u->status |= ST340_VEDGE;
|
||||||
|
|
|
@ -50,6 +50,7 @@ ty340word ty340_reset(void *);
|
||||||
ty340word ty340_status(void);
|
ty340word ty340_status(void);
|
||||||
ty340word ty340_instruction(ty340word inst);
|
ty340word ty340_instruction(ty340word inst);
|
||||||
void ty340_set_dac(ty340word addr);
|
void ty340_set_dac(ty340word addr);
|
||||||
|
void ty342_set_grid(int, int);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* calls from type340.c into host simulator
|
* calls from type340.c into host simulator
|
||||||
|
|
Loading…
Add table
Reference in a new issue