ZX Spectrum +3e, Released in 2000
The ZX Spectrum +3e is an enhanced version of the Sinclair ZX Spectrum +3 home computer that was produced by Amstrad in the late ’80s.
The enhancement consists of an updated operating system (in ROM) that fixes many of the bugs in the original ROM, and adds lots of extra commands to +3 BASIC. One of the most important features of the new ROM, however, is that it supports the use of a hard disk or compactflash card with your Speccy, allowing you to store vast amounts of quickly-accessible software.
– UPDATES –
Fixed bug where the DATA pointer was not correctly maintained if an extended channel was opened before the first READ after a RUN or RESTORE 0.
Fixed bug where scrolling a single-line text window caused a crash.
Fixed a long-standing +3DOS uninitialised variable bug, present since the original +3, which caused the filesize of files opened in headerless mode to be miscalculated. The most obvious manifestation of this bug was incorrect (too large) filesizes when files were copied from hard disk to any location.
Added support for detecting attempted writes to write-protected disks (ATA protocol interfaces only). Other error conditions are also now returned as “unknown disk error” (previously they would eventually timeout as “drive not ready”).
Fixed bug in mapping commands, which caused a nonsense error to be generated instead of “invalid device”.
Removed reset protocol detection on ATA interfaces to improve boot speed
Noted that divIDE version will run on MB02+ and MB02+IDE.
Various fixes for ZXUSB (for ZXMatrix interface).
Allow slave drive to run even if no master present.
Fixed occasional spurious drive identification due to randomness of floating bus.
Added ZXCF+2 port.
Added ZXUSB (for ZXMatrix) preliminary port (not yet finalised).
Fixed IDE SWAP RESIZE, which previously failed unless the partition was exactly the same size as now required (rather than larger or equal to).
Improved speed of IDE SWAP IN (ATA protocol interfaces only).
Swap partition access no longer forced into segment 3.
Fixed long timeout for ZXATASP.
Now detects drives after a soft reset, or entry from ResiDOS etc.
Fixed syntax checking for NEXT # and RETURN # commands, which could cause lockups or other oddities during program entry.
Fixed CAT TAB display to show partition sizes below 32MB in K, so more accurate sizes are shown.
Fixed ide interface for ZXCF to select device zero before attempting ATA detection protocol.
Shortened “no swap partition” message to avoid multi-line report and ensuing crash.
Fixed long-standing +3DOS caching bug (present in all versions of the +3 and +3e). This usually manifested itself as reading incorrect data for headerless files on large disks (most often seen when loading snapshots).
Added support for MMC/SD devices; in particular, ZX-MMC interface and ZX-Badaloc clone
Fixed restoration of R register in snapshot loader
Fixed restoration of flags register in snapshot loader (ZXATASP bug only)
Fixed bug in IDE INIT call which could cause incorrect initialisation of some structures
Snapshot loading rewritten; now supports both 48K and 128K snapshots in .SNA and .Z80 (all versions) formats. No longer supported on floppy disk.
Improved speed of sustained hard disk reads
Added support for various other IDE interfaces
Updated IDEDOS to v1.03, adding support for IDE IDENTIFY and IDE PARTITIONS calls (previously only available in ResiDOS).
Fixed long timeout on drive detection for ZXATASP
Changed drive detection to use IDE IDENTIFY
Enhanced CAT TAB command to display detected geometry for each drive
Changed FORMAT TO command; automatically detects drive geometry, so now only needs a unit number and number of partitions
Added optional third parameter to FORMAT TO command, limiting disk usage to first N cylinders, and allowing sharing with PC partitioning
Fixed detection of errors for some devices which set DRQ=1 even if there is an error
Fixed “No files found” message appearing when multiples of 63 files are displayed
Fixed handling of partitions greater than 8MB in +3DOS (access previously wrapped to below 8MB, due to 16-bit operations on record numbers)
Fixed occasional strange problems caused by lack of cache buffers on systems with no floppy drive (+2e); 8 cache buffers are now allocated, regardless of prescence of floppy disk interface.
Fixed “Loader” menu option for systems with no floppy drive (+2e)
Fixed incompatibility with Multiface 3 (now allows saving snapshots to floppy disk)
fixed “Please put disk for ? in drive” bug that occurred when pressing a key while +3DOS was active
minor Spanish translation corrections
added “V>” variable channels
added “M>” memory channels
added “W>” text window channels
Bugfix (+3e): fixed menu bugs trying to enter 48K BASIC and Loader etc
Bugfix (+3e): possibly fixed bug where all files on destination partition get deleted if source wildcard matches nothing in COPY command (unconfirmed)
Bugfix (+3e): stopped channel I/O corrupting IX, so CAT #n TAB works
Bugfix (+3e): added Spanish text for CAT ASN command
added CAPS SHIFT key to bypass automatic setup on boot/reset
added SPECTRUM name$[,addr] command for loading Z80 snapshots
extended streams and channels interface with new file-access channels
added NEXT #n,v command to input character from stream
added RETURN #n,v command to get stream position
added GOTO #n,m command to set stream position
added DIM #n,v command to get stream size
replaced standard Retry/Ignore/Cancel messages with international-style ones
upgraded +3DOS to v1.1 with international ALERT routine
added Spanish version of ROM
removed self-test program, EAR monitor and COPY RANDOMIZE command
added IDEDOS call interface and documentation for machine-code programmers
Bugfix (+3e): fixed crash bugs BREAKing to CAT ASN and CAT TAB commands
Bugfix (+3e): fixed change-disk routine for single-floppy systems
Bugfix (+3e): fixed mapping of floppy drive 1 to default to drive B:
Bugfix (+3): fixed spurious “end of file” error in printer output
Bugfix (+3): fixed stack overflow with ineffective keys in Editor
Bugfix (+3): fixed PIP duration
Bugfix (+3): fixed lower-screen editing mode problems (line loss)
Bugfix (+3): GOTO beyond end of program renumbered as 9999
Bugfix (+3): fixed characters migrating before “>” or “<" Bugfix (+3): fixed syntax error position calculation Bugfix (+3): removed HALT from error reporting routine Bugfix (+3): fixed CLOSE # bug on closed streams (not fixed for 48K mode) ----- v0.87: First public release.