#265 +3 disk motor not correct in 48K locked mode

v1.2
pending-fixed
nobody
None
5
2013-09-08
2012-09-26
Brian Ruthven
No

Seen using 0.10.0.2 on Solaris 11 (compiled from source):

Select +3 machine type, select "48 BASIC" from the menu to enter "locked" 48K mode. Enter "OUT 8189, 255". This results in the disk motor light coming on. Trying the same thing on a real +3, and the disk motor doesn't come on.

I believe the motor running code needs to be hooked into the I/O locking bit (5) of port 7ffd, as the motor can be turned on in "unlocked" mode (i.e. enter +3 BASIC and type SPECTRUM).

I've not yet checked whether the disk controller chip itself is accessible in locked 48k mode.

Discussion

  • I've tested this on a real +3 and see the same behaviour. IMO you are right about bit (5). The attached patch should fix this issue.

     
    Attachments
  • Change looks fine.

     
  • The +3 manual also implies that it prevents access for all changes on 0x1ffd:
    Chapter 7

    In 48 BASIC mode, many of the enhanced features of the +3 (such as the disk drive, extra memory, full screen editor, multi-channel sound, RS232/MIDI/AUX interfaces and RAMdisk) cannot be used. The JOYSTICK 1 and JOYSTICK 2 sockets will still operate, however.

    Also see Chapter 8:

    The +3 comes with an 8-bit Centronics parallel port and an RS232 serial port. Both are supported by built-in software enabling you to use virtually any printer. These features are usable only in +3 BASIC mode.

    Of course 0x1ffd is part of the memory paving as well as disk drive and parallel port operation so in order to be unusable in 48K mode I expect they would be locked out. I think that you can be pretty sure they are locked out entirely.

     
    • The +3 comes with an 8-bit Centronics parallel port and an RS232 serial port. Both are supported by built-in software enabling you to use virtually any printer. These features are usable only in +3 BASIC mode.

      My understanding is that some features (routines) are not available in 48K BASIC ROM, but I'm unsure about port accesibility from machine code. Maybe I'm failing to read between lines.

      Of course 0x1ffd is part of the memory paving as well as disk drive and parallel port operation so in order to be unusable in 48K mode I expect they would be locked out. I think that you can be pretty sure they are locked out entirely.

      Yes, it is possible. All bits might be latched and share the clock signal.

      Thanks. Committed slightly modified in [r5030].

       

      Related

      Commit: [r5030]

    • status: open --> pending-fixed
    • Group: --> future
     
    • Group: future --> v1.2