Copy Link
Add to Bookmark
Report
Saxonia Issue 02 Part 036
Mysteries - Part two
By Rumrunner/VOID
[l
It's strange how sometimes the simplest and easiest explainable problem
can seem so hard to find out. What I usually do is search in far more
difficult places than necessary to find out what's wrong. I do this not
only in my coding ventures but also when other things are concerned.
Let's take a look, I was working on the code for this issue of Saxonia,
when I, after having run the code from the assembler suddenly saw that
there was an error message on the screen. As everybody who uses Asm-One
knows, this assembler prints out the state of all registers at programend.
This time, it also told that an exeption had ocurred. I didn't know what
had happened, but knowing that the computer could easily guru after such
an instance, I saved the source at once, using a new filename so that the
old file couldn't be destroyed. I then opened a CLI-window and executed
memclear flush. This usually gurus the computer right away if anything
special has happened, like system memorylists are trashed and so on. For
those not familiar with the memclear utility, it performs the same as the
avail command does when used with the flush parameter, that is, free memory
used for libraries that no running program is using anymore. Try it after
having run a MUI program, you will most likely see that you get one
megabyte more free memory afterwards, I wonder if any MUI programmer ever
closes opened libraries. Is it perhaps a bug in MUI itself. I really don't
care much about this as I have never liked MUI, it's too slow and uses too
much memory, but that's not the point here.
Back to the main issue then. Having used the memclear flush command, the
system still worked out very good, so I continued working with the code.
Running the program never gave the same exeption message again. That is,
it didn't until a few days later. This time, I didn't care about it as I
knew from the last time that nothing was wrong with the system. But then,
as this happened a second time, I became a little curious. Looking a couple
of lines higher up on the screen gave me the answer. There was no routine
that stopped input handling, so even though only parts of the system are
open while running Saxonia, the keypresses progresses through and seems to
be stored when exiting. Then, some of them comes through to the OS.
So what had happened was simply that the assembler, after getting back
when I exited my code, had tried to execute a j560 command, which means
jump to adress 560 and run from there. I don't remember exactly if it was
560, but at least it was a low adress. No wonder that the assembler gave
a message about an exeption ocurring. I have to say that I'm really pleased
that the Asm-One assembler has inbuilt exeption handlers, if it didn't I
would most certainly have lost some of the updates to the code which I
hadn't saved in a while.
Perhaps it's about time to stop keypresses coming through to the OS?