Whilst working on a new video device I ran into a few problems with the
LKxxx keyboard and I noticed there are already some open issues against
the keyboard and mouse devices. These changes should resolve#320 and
may help with #272 (although I think that is an SDL issue). I've tested these
changes with VWS, UWS and DECwindows with both captured and
uncaptured input modes.
Maurice Marks, at VMS Software Inc, is using the Alpha instruction emulator
from SimH as a backup to an Alpha binary translator! He found a bug in the
instructions definitions: function fields, both integer and floating, are 7b not
6b.
The code is a bit difficult to understand, but it represents the 'normal'
path for processing a DECtape word. The code always flows all the
way to the break.
For start of block, there's extra code to check for a timing error; but
then the first word is processed (case 0).
For a normal word, a 3-cycle data break is done - increment word
count and current address, check for word count overflow, put the
word in the buffer; but then check for end of block (case DTO_WCO).
If the word count has already overflowed, just check for end of block.
So yes, the end of case 0 should be labeled 'fall through' as well.
FNC_WRIT has the same structure and needs the same comment.
CID Action
1416081 changed variable answer to int
1416082 checked returned values with ASSURE - read error means corrupted target code.
1416088 added return
1416109 This fallthru was intentional - duplicated code to make coverity happy
1416111 This fallthru was intentional - duplicated code to make coverity happy
1416116 This fallthru was intentional - duplicated code to make coverity happy
1416117 This fallthru was intentional - duplicated code to make coverity happy
1416124 protected against negative return
1416142 added ASSURE, however this case won't happen since reg_intpending==true implies positive int level
1416145 checked non-NULL, return SCPE_ARG if NULL
1416150 since only 2 drives are supported, fdc_selected is decoded to 0 and 1 only (allowed 2 and 3 before)
1416152 restrict to 2 drives only
1416166 checked value with ASSURE
1416101 typo: should have been resx
1416106 unnecessary code removed
1416110 this fallthru was intentional - duplicated code to make coverity happy
1416112 this fallthru was intentional - duplicated code to make coverity happy
1416148 change condition to check for negative value
1416179 break was remainder from former logic - removed
1415866 code was remainder from former unimplemented instruction trap - removed