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