Greg Haerr writes:
> 
> >
> > > 5) I compiled elvis and it does run. well, this is a bit of an
> exaggeration:
> > > undo doesn't work and sometimes I have to kill the process from my root
> > > session.  after this, I get no more echo to the console where I was
> running
> > > elvis. I can do exit and login again.
> >
> > elvis is stalled mid port. I got it to the stage where it kind of ran,
> then
> > released it. The problems could be because elvis is not yet fully ported,
> > or it could be bugs in ELKS.
> 
>     In my last elkscmds submission, makefile changes were made so that
> the visual editors could be run under elksemu, as well as compiled
> directly on Linux.  In certain cases, the editor's didn't run on Linux
> either.
> I ported a couple more visual editors in elkscmd, try them out as well.
> 
> > +       seg     cs
> >         mov     ax, stashed_irq
> >         or      ax,ax
> >         jz      irq0_bios
> 
> Al - so this was the floppy disk drive bug?  I can see why
> it changed whenever a few bytes more or less were added to ELKS...
> Glad you found it!
> 

Before the seg cs line was added, the code was fetching the variable
stashed_irq from whatever data segment was set when the timer interrupt
occured. I guess this was most often the kernel data segment. It appears
that whether this value was 0 or non-zero depended on where in the data
segment it was, so if the data was shifted slightly by adding a byte to the
right place it ended up pointing at a different value. Sometime this value
was 0, so the code worked, sometimes it wasn't, and it didn't.

Al

Reply via email to