fred@cbmvax.cbm.UUCP (Fred Bowen) (12/13/86)
1571 DOS ROM RELEASE NOTES
Commodore Electronics, LTD. 5 December 1986
1571 ROM RELEASE NOTES: 310654-04 (32K byte, 300ns, checksum=$D8C6)
THE FOLLOWING MODIFICATIONS HAVE BEEN MADE TO THE 310654-03 ROM CODE TO
CREATE A NEW ROM RELEASED ON 12/05/86. THIS RELEASE IS MADE TO CREATE
MASKED ROMS FOR PRODUCTION OF THE 1571 (NON-CR) MODEL DISK DRIVE ONLY.
1. The Set_Overflow flag was not disabled when exiting the 1571
controller. This is the cause of many seemingly random and
difficult-to-reproduce problems. This particularly explains
most of the Relative file problems.
2. TSTATN caused 'DEVICE NOT PRESENT' errors because the IRQ
source was never cleared. This has been fixed.
3. The BAM swap bug. When all the buffers are allocated by the
application, the DOS frees up the BAM buffer by marking it
out of memory. When it was reread it would also reread the
BAM for side one. If the side-1 BAM was 'dirty', it would be
corrupted. The fix uses a new RAM location, $1B6 for a swap
flag, and rebuilds the side-1 BAM upon a reread. This
usually occurs with multiple files open and sectors being
allocated on both sides of the disk.
4. Previously BAM allocation on side one would cause the BAM
image to be written every access. This has been fixed.
5. SAVE-@ (SAVE with replace) is fixed. The variable NODRV is
now a 16-bit addressable var, and the STLBUF routine steals
the buffer locked by drive one. Original 1541 bug.
6. Previously an active collect in 1541 emulation mode would
write a zero to the double sided flag in the BAM. This has
been fixed.
7. Applications which addressed tracks beyond 35 (on any side)
previously used incorrect bit cell densities because the
table TRKNUM only listed up to track 35. The tables TRACKN
and WORKTABLE replace TRKNUM and WORKTBL, respectively, and
extend the tables to track 40. Same situation on 1541's.
8. A 1541 ROM revision changed the variable TIM from $3A to $20
which resulted in problems for some applications. It is once
again $3A, like the original (-05) 1541 ROM.
9. USEDTS returned a 'BLOCK NOT AVAILABLE' status when the
number of blocks free was equal to 3. This has been fixed.
10. Previously during a BURST GCR FORMAT the activity led was
not activated. This has been fixed.
11. The 1571 BURST LOAD routine would not load 'Locked Files'.
This has been fixed.
12. Previously while loading files using the BURST LOAD routine,
retries were not performed. This has been fixed.
13. Motor acceleration time for the MFM controller was too long,
which affected performance when reading and writing in MFM
format. This has been fixed.
14. Previously determining whether a diskette was double-sided
or single-sided GCR would take too long due to valid sync
pulses found on 'flippy diskettes' and MFM diskettes. This
has been fixed.
15. SPINP interrupts from SP (fast serial input) were not
enabled properly. This has been fixed, but has no affect on
the operation of the serial bus.
16. Previously if a copy was performed addressing drive one, the
error channel would return status '00,OK,00,00'. This has
been fixed.
17. Previously the ROM test did not check the first page in ROM
memory. This has been fixed.
18. The ROM checksum at $8000 and $8001 is now $23, $C0.
19. The ROM signature at $C000 is now $D3.
--
Fred Bowen uucp: {ihnp4|seismo|caip}!cbmvax!fred
arpa: cbmvax!fred@seismo.css.GOV
tele: 215 431-9100
Commodore Electronics, Ltd., 1200 Wilson Drive, West Chester, PA, 19380