Disabling the 'emulate printers' option affects emulation of printer interfaces. Instead, if 'emulate printers' is disabled and emulation of a printer interface is enabled, Fuse should emulate a printer interface with no printer attached.
Specifically, printer_zxp_read() should and printer_zxp_write() should not check whether printer emulation is enabled — instead, printer_zxp_output_line() and printer_zxp_update_header should perform whatever checking is required.
Also, printer_parallel_read() should return the appropriate 'busy' state, which would likely be 0xff with *attached = 1, and printer_parallel_write() and printer_parallel_strobe_write() should probably always update parallel_data and last_data, so that if printer emulation is later enabled and the printer strobe is toggled without updating the data register, the correct character will be printed — instead, printer_text_output_char() should do the checking.
Log in to post a comment.