[net.micro.6809] COCO OS9 2.00.00 bugs

pete@wlbreng1.UUCP (Pete_Lyall) (07/03/86)

<lineeaterfood>

COCO OS9 2.00.00 BUGS LIST
===========================

As with the 2.00.00 CCio patch, I'm merely passing this on to those that 
are interested. Pete Lyall



Description of bugs (and most fixes) in CoCo OS9 ver 2.00.00:
 From Kevin Darling and Kent Meyers. 08 Apr 86, rev: 13 Jun 86
 (Be sure to re-verify a module after a change)
 ------------------------------------

 MODULE: RS232 
 PROBLEM: Returns no error for bad type mode.
 SPECIFICS: Original src missing '#' for 'ldb #E$BMode'. Causes B reg to be
loaded from $00CB, which is normally = $00. 
 SOLUTION: Change byte at offset $0180 from $D6 to $C6.

 MODULE: CCHDisk 
 PROBLEM: Returns no error on write verification failure. 
 SPECIFICS: Similiar to RS232 bug above, for E$Write.
 SOLUTION: Change byte at offset $00FC from $D6 to $C6.

 MODULE: Clock 
 PROBLEM: Day increments by two at midnite.
 SPECIFICS: Result of 'fix' to 1.XX bug. Extra increment intended for Feb 28
hits all days instead.
 SOLUTION: Several patches in DL, including 'Official Tandy Patch', which also
fixes Virq bug. Or use the following short patch from ??: (and re-verify
module)
 Offset Old New
  001A  00  1D
  001C  1D  1C
  0057  08  09
  005A  27  C4
  005B  04  03
  005C  C4  26
  005E  27  5F
  005F  01  20
  0060  4C  02

 MODULE: Clock 
 PROBLEM: Undo F$Virq call fails. 
 SPECIFICS: When a call is made to delete a F$Virq entry, the X register is
pointed to a stack address, instead of loading X with the virq register entry
off the stack.
 SOLUTION: Change byte at offset $0119 from $30 to $AE. 

 MODULE: IOMan 
 PROBLEM: F$IOQU code mistake.
 SPECIFICS: Major code change in IOMan. Idea was to sort queuing processes by
age. Wrong register used for comparison.
 SOLUTION: Change the following bytes:
 Offset Old New
  06BB  10  12
  06BC  A3  E1

 MODULE: OS9p2 
 PROBLEM: F$UnLink does not terminate devices.
 SPECIFICS: Unlink of a filemgr, driver or desc, that is NOT in tbe bootfile
but is in use, should return E$ModBsy error from a internal UnLink call to
F$IODel. A wrong register was used, and a loaded mgr, driver, or desc module's
space will be returned to the free mem pool.
 SOLUTI.dON: None at this time to fit within module. Hang on.

 MODULE: CCIO  
 PROBLEM: Failure to recognize CoCo keyboard Break keys.
 SPECIFICS: Because the order of IRQ was changed so that CCIO keyboard check
follows Clock, the DP reg is set to $00. The Break or Shift-Break keys (signals
2 and 3) sent to processes while in OS9 non-system state are ignored (the
internal keyboard should've been an IRQ or VIRQ device). The bug will appear if
the receiving program (Basic09 or otherwise) does not do much output, such as
math routines, or using Inkey.
 SOLUTION: Use CCIOP files elsewhere in DL. Or instead, if doing a lot of
internal processing, send a char to the screen within loops. This will increase
the chance OS9 will be in a system state and will correctly handle the Break
Sends. 

 MODULE: CCIO, CO80, CO32
 PROBLEM: Co-module terminate routines not called, etc.
 SPECIFICS: Termination of CCIO does not result in a call to codrivers'
termination code. Worse, once you do a 'tmode type=xx' and change video
codrivers, CCIO will still believe the other one is in memory. If it was NOT in
the bootfile, a crash may result.
 SOLUTION: Until rewrite of CCIO - NEVER change to a different COXX, unlink the
loaded one, then 'tmode type' back to the first. Instead of loading it from the
exec directory, CCIO will jump into never-never land, if that space has been
reused.

 MODULE: ACIAPAK 
 PROBLEM: Not fully reentrant.
 SPECIFICS: Each new incarnation saves current D.Firq vector; that vector
restored upon termination. Use of this driver for more than one FIRQ device,
and terminating their use in wrong order could result in FIRQ's going to bad
address.
 SOLUTION: None yet. Perhaps driver was not intended to be used for more than
one FIRQ device. Should be in docs. Decent solution would be for Clock or OS9
or separate module to change firq's to irq's, instead of ACIAPAK.

 ---------------------------------- 
 Other 'bugs' and things of interest:

 MODULE: Unknown (?)
 PROBLEM: Machine locks up after using a new OS9Boot. 
 SPECIFICS: Unfound bug. Programs fail. Drives continue to run.  
 SOLUTION: Change order of OS9gen bootlist.

 MODULE: CCIO
 PROBLEM: Incompatibility with previous escape code drivers.
 SPECIFICS: New CCIO shunts all <esc> ($1B) (27) codes to GRFO module. This
means original Wordpak software (Dynastar and Stylo for example) won't work. 
 SOLUTION: See C82KD.DOC in DL6. If you don't need OPak c&
.YYCO80 drivers
by Bill Dickhaus or Rick Johnson in DL6.

 MODULE: PRINTER
 PROBLEM: Delay for 'printer ready' too short for some devices.
 Sorry, don't have details now. I think Bernie Pluth and others may have a
solution. 

 ----------------------
 Differences of interest:

 : Be careful using old Password files. Sysgo 2.0 sets default startup priority
at 128, vs 1.XX's 0. If login seems very sluggish, check your SYS/Password
parameters.

 : ACIAPAK 2.0 always assumes FIRQ device in first MPI slot. To use RS232 pak,
etc in another slot, change the byte at offset $0080 (or $007F?) in ACIAPAK
from 03 to:
 SLOT BYTE
   1   03
   2   13
   3   23
   4   --  Floppy controller slot
 ----------------------
 END OF FILE



DL 6 :