KA10: Fixed some WAITS issues with III display.
This commit is contained in:
parent
0d6f1ce362
commit
4d03ac67f6
2 changed files with 11 additions and 5 deletions
|
@ -40,6 +40,7 @@
|
||||||
#define MAR u4
|
#define MAR u4
|
||||||
#define PIA u5
|
#define PIA u5
|
||||||
#define POS u6
|
#define POS u6
|
||||||
|
#define CYCLE us9
|
||||||
|
|
||||||
/* CONO Bits */
|
/* CONO Bits */
|
||||||
#define SET_PIA 000000010 /* Set if this bit is zero */
|
#define SET_PIA 000000010 /* Set if this bit is zero */
|
||||||
|
@ -307,7 +308,7 @@ const char *iii_description (DEVICE *dptr);
|
||||||
DIB iii_dib = { III_DEVNUM, 1, iii_devio, NULL};
|
DIB iii_dib = { III_DEVNUM, 1, iii_devio, NULL};
|
||||||
|
|
||||||
UNIT iii_unit[] = {
|
UNIT iii_unit[] = {
|
||||||
{UDATA (&iii_svc, UNIT_IDLE, 0) },
|
{UDATA (&iii_svc, 0, 0) },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -396,7 +397,12 @@ iii_svc (UNIT *uptr)
|
||||||
int i, j, ch;
|
int i, j, ch;
|
||||||
float ch_sz;
|
float ch_sz;
|
||||||
|
|
||||||
iii_cycle(10, 0);
|
if (uptr->CYCLE > 20) {
|
||||||
|
iii_cycle(300, 0);
|
||||||
|
uptr->CYCLE = 0;
|
||||||
|
} else {
|
||||||
|
uptr->CYCLE++;
|
||||||
|
}
|
||||||
|
|
||||||
/* Extract X,Y,Bright and Size */
|
/* Extract X,Y,Bright and Size */
|
||||||
sz = (uptr->POS & CSIZE) >> CSIZE_V;
|
sz = (uptr->POS & CSIZE) >> CSIZE_V;
|
||||||
|
@ -615,7 +621,7 @@ skip_up:
|
||||||
uptr->MAR, iii_instr);
|
uptr->MAR, iii_instr);
|
||||||
uptr->MAR++;
|
uptr->MAR++;
|
||||||
uptr->MAR &= RMASK;
|
uptr->MAR &= RMASK;
|
||||||
sim_activate(uptr, 50);
|
sim_activate_after(uptr, 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((uptr->STATUS >> 3) & (uptr->STATUS & (WRAP_MSK|EDGE_MSK|LIGH_MSK))) != 0)
|
if (((uptr->STATUS >> 3) & (uptr->STATUS & (WRAP_MSK|EDGE_MSK|LIGH_MSK))) != 0)
|
||||||
|
|
|
@ -1407,7 +1407,7 @@ sense_end:
|
||||||
sim_debug(DEBUG_DETAIL, dptr, "seek unit=%d %d %d\n", unit, trk, buf[5]);
|
sim_debug(DEBUG_DETAIL, dptr, "seek unit=%d %d %d\n", unit, trk, buf[5]);
|
||||||
|
|
||||||
/* Check if seek valid */
|
/* Check if seek valid */
|
||||||
if ((buf[0] | buf[1] | buf[4]) != 0 || trk > disk_type[type].cyl
|
if ((buf[0] | buf[1] | buf[4]) != 0 || trk >= disk_type[type].cyl
|
||||||
|| buf[5] >= disk_type[type].heads) {
|
|| buf[5] >= disk_type[type].heads) {
|
||||||
uptr->LASTCMD = cmd;
|
uptr->LASTCMD = cmd;
|
||||||
uptr->CMD &= ~(0xff);
|
uptr->CMD &= ~(0xff);
|
||||||
|
@ -2161,7 +2161,7 @@ pmp_format(UNIT * uptr, int flag) {
|
||||||
data->tsize = hdr.tracksize;
|
data->tsize = hdr.tracksize;
|
||||||
if ((data->cbuf = (uint8 *)calloc(tsize, sizeof(uint8))) == 0)
|
if ((data->cbuf = (uint8 *)calloc(tsize, sizeof(uint8))) == 0)
|
||||||
return 1;
|
return 1;
|
||||||
for (cyl = 0; cyl <= disk_type[type].cyl; cyl++) {
|
for (cyl = 0; cyl < disk_type[type].cyl; cyl++) {
|
||||||
pos = 0;
|
pos = 0;
|
||||||
for (hd = 0; hd < disk_type[type].heads; hd++) {
|
for (hd = 0; hd < disk_type[type].heads; hd++) {
|
||||||
uint32 cpos = pos;
|
uint32 cpos = pos;
|
||||||
|
|
Loading…
Add table
Reference in a new issue