mirror of
https://github.com/rcornwell/sims.git
synced 2026-01-11 23:52:48 +00:00
KA10: Cleanup refersh on III display.
This commit is contained in:
parent
3479d2988e
commit
c779e56d7c
@ -129,11 +129,11 @@ int dkb_modifiers (SIM_KEY_EVENT *kev)
|
||||
return 1;
|
||||
case SIM_KEY_WIN_L:
|
||||
case SIM_KEY_WIN_R:
|
||||
dkb_kmod |= TOP;
|
||||
dkb_kmod |= META;
|
||||
return 1;
|
||||
case SIM_KEY_ALT_L:
|
||||
case SIM_KEY_ALT_R:
|
||||
dkb_kmod |= META;
|
||||
dkb_kmod |= TOP;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
@ -151,11 +151,11 @@ int dkb_modifiers (SIM_KEY_EVENT *kev)
|
||||
return 1;
|
||||
case SIM_KEY_WIN_L:
|
||||
case SIM_KEY_WIN_R:
|
||||
dkb_kmod &= ~TOP;
|
||||
dkb_kmod &= ~META;
|
||||
return 1;
|
||||
case SIM_KEY_ALT_L:
|
||||
case SIM_KEY_ALT_R:
|
||||
dkb_kmod &= ~META;
|
||||
dkb_kmod &= ~TOP;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
@ -173,61 +173,61 @@ int dkb_keys (SIM_KEY_EVENT *kev, UNIT *uptr)
|
||||
if ((dkb_kmod & SHFT) == 0)
|
||||
uptr->DATA = (META|CTRL|TOP|SHFT) | 051; /* ( */
|
||||
else
|
||||
uptr->DATA = (META|CTRL|TOP|SHFT) | 060;
|
||||
uptr->DATA = dkb_kmod | 060;
|
||||
return 1;
|
||||
case SIM_KEY_1:
|
||||
if ((dkb_kmod & SHFT) == 0)
|
||||
uptr->DATA = (META|CTRL|SHFT) | 054; /* ! */
|
||||
else
|
||||
uptr->DATA = (META|CTRL|TOP|SHFT) | 061;
|
||||
uptr->DATA = dkb_kmod | 061;
|
||||
return 1;
|
||||
case SIM_KEY_2:
|
||||
if ((dkb_kmod & SHFT) == 0)
|
||||
uptr->DATA = (META|CTRL|SHFT) | 052; /* Circle Star */
|
||||
else
|
||||
uptr->DATA = (META|CTRL|TOP|SHFT) | 062;
|
||||
uptr->DATA = dkb_kmod | 062;
|
||||
return 1;
|
||||
case SIM_KEY_3:
|
||||
if ((dkb_kmod & SHFT) == 0)
|
||||
uptr->DATA = (META|CTRL|SHFT) | 022; /* # */
|
||||
else
|
||||
uptr->DATA = (META|CTRL|TOP|SHFT) | 063;
|
||||
uptr->DATA = dkb_kmod | 063;
|
||||
return 1;
|
||||
case SIM_KEY_4:
|
||||
if ((dkb_kmod & SHFT) == 0)
|
||||
uptr->DATA = (META|CTRL|SHFT) | 066; /* $ */
|
||||
else
|
||||
uptr->DATA = (META|CTRL|TOP|SHFT) | 064;
|
||||
uptr->DATA = dkb_kmod | 064;
|
||||
return 1;
|
||||
case SIM_KEY_5:
|
||||
if ((dkb_kmod & SHFT) == 0)
|
||||
uptr->DATA = (META|CTRL|SHFT) | 067; /* % */
|
||||
else
|
||||
uptr->DATA = (META|CTRL|TOP|SHFT) | 065;
|
||||
uptr->DATA = dkb_kmod | 065;
|
||||
return 1;
|
||||
case SIM_KEY_6:
|
||||
if ((dkb_kmod & SHFT) == 0)
|
||||
uptr->DATA = (META|CTRL|SHFT) | 021; /* ^ */
|
||||
else
|
||||
uptr->DATA = (META|CTRL|TOP|SHFT) | 066;
|
||||
uptr->DATA = dkb_kmod | 066;
|
||||
return 1;
|
||||
case SIM_KEY_7:
|
||||
if ((dkb_kmod & SHFT) == 0)
|
||||
uptr->DATA = (META|CTRL|SHFT) | 024 ; /* & */
|
||||
else
|
||||
uptr->DATA = (META|CTRL|TOP|SHFT) | 067;
|
||||
uptr->DATA = dkb_kmod | 067;
|
||||
return 1;
|
||||
case SIM_KEY_8:
|
||||
if ((dkb_kmod & SHFT) == 0)
|
||||
uptr->DATA = (META|CTRL|SHFT) | 052;
|
||||
uptr->DATA = (META|CTRL|TOP|SHFT) | 052;
|
||||
else
|
||||
uptr->DATA = (META|CTRL|TOP|SHFT) | 070;
|
||||
uptr->DATA = dkb_kmod | 070;
|
||||
return 1;
|
||||
case SIM_KEY_9:
|
||||
if ((dkb_kmod & SHFT) == 0)
|
||||
uptr->DATA = (META|CTRL|TOP|SHFT) | 050;
|
||||
else
|
||||
uptr->DATA = (META|CTRL|TOP|SHFT) | 071;
|
||||
uptr->DATA = dkb_kmod | 071;
|
||||
return 1;
|
||||
case SIM_KEY_A:
|
||||
uptr->DATA = dkb_kmod | 001;
|
||||
@ -350,13 +350,17 @@ int dkb_keys (SIM_KEY_EVENT *kev, UNIT *uptr)
|
||||
uptr->DATA = (META|CTRL|SHFT) | 011;
|
||||
return 1;
|
||||
case SIM_KEY_BACKSLASH:
|
||||
if ((dkb_kmod & SHFT) == 0)
|
||||
uptr->DATA = (META|CTRL|SHFT) | 053;
|
||||
if ((dkb_kmod & TOP) == 0)
|
||||
uptr->DATA = (META|CTRL|SHFT) | 034;
|
||||
else if ((dkb_kmod & SHFT) == 0)
|
||||
uptr->DATA = (META|CTRL|SHFT) | 056;
|
||||
else
|
||||
uptr->DATA = (META|CTRL|TOP|SHFT) | 034;
|
||||
return 1;
|
||||
case SIM_KEY_LEFT_BACKSLASH:
|
||||
if ((dkb_kmod & SHFT) == 0)
|
||||
if ((dkb_kmod & TOP) == 0)
|
||||
uptr->DATA = (META|CTRL|SHFT) | 034;
|
||||
else if ((dkb_kmod & SHFT) == 0)
|
||||
uptr->DATA = (META|CTRL|TOP|SHFT) | 034;
|
||||
else
|
||||
uptr->DATA = (META|CTRL|SHFT) | 011;
|
||||
|
||||
@ -428,8 +428,9 @@ iii_svc (UNIT *uptr)
|
||||
cy = (int)(6.0 * ch_sz);
|
||||
lx = ox;
|
||||
ly = oy + cy;
|
||||
sim_debug(DEBUG_DATA, &iii_dev, "III: ch %d %d %o %o %o\n", lx, ly, ch, sz, br);
|
||||
if (ch == '\t')
|
||||
sim_debug(DEBUG_DETAIL, &iii_dev, "III: ch %d %d %o '%c' %o %o\n", lx, ly, ch,
|
||||
(ch < ' ')? '.' : ch, sz, br);
|
||||
if (ch == '\t' || ch == 0)
|
||||
continue;
|
||||
if (ch == '\r') {
|
||||
ox = -512;
|
||||
@ -472,9 +473,11 @@ iii_svc (UNIT *uptr)
|
||||
nx = (nx ^ 040) - 040;
|
||||
ny = (ny ^ 040) - 040;
|
||||
/* Compute relative position. */
|
||||
sim_debug(DEBUG_DATA, &iii_dev, "III: short %d %d %o %d\n", nx, ny, sz, br);
|
||||
sim_debug(DEBUG_DETAIL, &iii_dev, "III: short %d %d %o %d\n", nx, ny, sz, br);
|
||||
nx += ox;
|
||||
ny += oy;
|
||||
if (nx < -512 || nx > 512 || ny < -512 || ny > 512)
|
||||
uptr->STATUS |= EDG_FBIT;
|
||||
i = (int)((iii_instr >> 18) & 3);
|
||||
if ((i & 02) == 0 && (iii_sel & 04000) != 0) { /* Check if visible */
|
||||
if ((i & 01) == 0) { /* Draw a line */
|
||||
@ -491,7 +494,7 @@ iii_svc (UNIT *uptr)
|
||||
/* Sign extend */
|
||||
nx = (nx ^ 040) - 040;
|
||||
ny = (ny ^ 040) - 040;
|
||||
sim_debug(DEBUG_DATA, &iii_dev, "III: short2 %d %d %o %d\n", nx, ny, sz, br);
|
||||
sim_debug(DEBUG_DETAIL, &iii_dev, "III: short2 %d %d %o %d\n", nx, ny, sz, br);
|
||||
/* Compute relative position. */
|
||||
nx += ox;
|
||||
ny += oy;
|
||||
@ -534,15 +537,13 @@ iii_svc (UNIT *uptr)
|
||||
ny = (iii_instr >> 14) & 03777;
|
||||
nx = (nx ^ 02000) - 02000;
|
||||
ny = (ny ^ 02000) - 02000;
|
||||
sim_debug(DEBUG_DATA, &iii_dev, "III: long %d %d %o %o\n", nx, ny, sz, br);
|
||||
if (nx < -512 || nx > 512 || ny < -512 || ny > 512)
|
||||
uptr->STATUS |= EDG_FBIT;
|
||||
sim_debug(DEBUG_DETAIL, &iii_dev, "III: long %d %d %o %o\n", nx, ny, sz, br);
|
||||
if ((iii_instr & 0100) == 0) { /* Relative mode */
|
||||
nx += ox;
|
||||
ny += oy;
|
||||
nx += ox;
|
||||
ny += oy;
|
||||
if (nx < -512 || nx > 512 || ny < -512 || ny > 512)
|
||||
uptr->STATUS |= EDG_FBIT;
|
||||
}
|
||||
if (nx < -512 || nx > 512 || ny < -512 || ny > 512)
|
||||
uptr->STATUS |= EDG_FBIT;
|
||||
if ((iii_instr & 040) == 0 && (iii_sel & 04000) != 0) { /* Check if visible */
|
||||
if ((iii_instr & 020) == 0) /* Draw a line */
|
||||
draw_line(ox, oy, nx, ny, br, uptr);
|
||||
@ -598,7 +599,7 @@ skip_up:
|
||||
sim_debug(DEBUG_DETAIL, &iii_dev, "III: fetch %06o %012llo\n", uptr->MAR, iii_instr);
|
||||
uptr->MAR++;
|
||||
uptr->MAR &= RMASK;
|
||||
sim_activate(uptr, 10);
|
||||
sim_activate(uptr, 50);
|
||||
}
|
||||
|
||||
if (((uptr->STATUS >> 3) & (uptr->STATUS & (WRAP_MSK|EDGE_MSK|LIGH_MSK))) != 0)
|
||||
|
||||
@ -128,8 +128,8 @@ static struct phosphor p31[] = {{0.0, 1.0, 0.77, 0.5, .1}};
|
||||
struct color color_p31 = { p31, ELEMENTS(p31), 25000 };
|
||||
|
||||
/* green phosphor for III */
|
||||
static struct phosphor p39[] = {{0.2, 1.0, 0.0, 0.5, 0.10}};
|
||||
struct color color_p39 = { p39, ELEMENTS(p39), 25000 };
|
||||
static struct phosphor p39[] = {{0.2, 1.0, 0.0, 0.5, 0.01}};
|
||||
struct color color_p39 = { p39, ELEMENTS(p39), 20000 };
|
||||
|
||||
static struct phosphor p40[] = {
|
||||
/* P40 blue-white spot with yellow-green decay (.045s to 10%?) */
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user