Number: 615 Date: 10-Apr-84 14':58':29 Submitter: Sannella.PA Source: JonL.pa Subject: INTERRUPTCHAR function w/ HARDFLG=T sees garbage in kbrd input buffer Assigned To: Masinter Attn: Release Status: Fixed In/By: Problem Type: Design - Impl Impact: Moderate Difficulty: Frequency: Everytime Priority: Perhaps System: Operating System Subsystem: Keyboard Machine: Disk: Lisp Version: Source Files: Microcode Version: Memory Size: File Server: Server Software Version: Disposition: I took out the CLEARBUF before the code that happened when users typed interrupt chars, and basically made HARDFLG coerce to NIL in Interlisp-D. This fixes this and other such problems.' ' For release message': interrupts set with INTERRUPTCHAR are always "soft", but are also "immediate", i.e., executing the interrupt does not disturb the process that is running or unwind the stack, but will happen at the next (uninterruptable) moment.' Interrupts no longer clear the input buffer and flash the screen; those that what that behavior should explicitly call CLEARBUF and FLASHWINDOW as appropriate.' ' ["Masinter" "11-Sep-84 17':11':41" Assigned% To': Attn': Disposition':]' ["Masinter" "11-Sep-84 17':19':48" Assigned% To': Attn': Status':(Open->Fixed) Disposition': Edit-By': Edit-Date':]' ["masinter" "12-Sep-84 11':10':18" Disposition':]' ["Sannella.PA" "12-Sep-84 12':42':47" Description':] Description: ' Date': 9 Apr 84 19':06 PST' From': JonL.pa' Subject': Lisp': INTERRUPTCHAR''s HARDFLG interacts badly with ??' To': LispSupport.pa' cc': JonL.pa' Lisp-System-Date': 4-Apr-84 15':14':33' Machine-Type': Dolphin' ' Try' ' (INTERRUPTCHAR (CHARCODE ↑T) ''(CONTROL~T~AND~MORE) T)' ' where CONTROL~T~AND~MORE just dribbles some information out to the T stream (using DSPSOUT) and then calls the CONTROL-T function.' ' there seems to be random stuff in the keyboard input buffer upon occasion after typing a ↑T; furthermore, typing a <CR> after ↑T seems to cause something from one of the previous lines to be inserted. TTYIN is loaded.' ' -----' ' Date': 11 Sep 84 22':40 PDT' From': JonL.pa' Subject': Re': AR#615, INTERRUPTCHAR function w/ HARDFLG=T sees garbage in kbrd input buffer, fixed' In-reply-to': Masinter.pa''s message of 11 Sep 84 17':19 PDT' To': Masinter.pa' cc': JonL.pa, LispSupport.pa' ' Two questions': ' ' 1) I thought Interlisp-D didn''t implement the interrupt-at-fncall-time-only option; if so, then isn''t the coercion of HARDFLG to T rather than NIL (or am I misunderstanding what HARDFLG is all about)' ' 2) I didn''t like the HARDFLG=NIL option in Interlisp-D because it flashed some window etc [but your removal of the CLEARBUF should fix that, right?], yet using the HARDFLG=T option led to the garbge coming into the keyboard. Are you saying that simply removing the CLEARBUF fixes that?' ' Bill has been sitting on this problem much longer than since Apr 84 -- Kelly discovered it almost a year ago [in exactly the same circumstances as I did -- trying to redefine the ↑T interrupt into something more informational]. Is it really clear that the CLEARBUF removal has no hidden "consequences" ?' ' -- JonL --' ' -----' ' From': masinter.pa' Date': 12-Sep-84 0':20':57 PDT' Subject': Re': AR#615, INTERRUPTCHAR function w/ HARDFLG=T sees garbage in kbrd input buffer, fixed' In-reply-to': JonL''s message of 11 Sep 84 22':40 PDT' To': JonL' cc': Masinter, LispSupport' ' The internal structure is screwy, and documented. HARDFLG means that the system calls ERRORX, while if not "hard", the system calls INTERRUPTED.' ' Interlisp-D implements "soft" interrupts with function calls between every opcode, sort of.' ' The stuff in ERRORX to handle "hard" interrupts doesn''t work for Interlisp-D and is really only appropriate for Interlisp-10.' ' The CLEARBUF and bell-ringing removal is an incompatibility, but it seems senseless to foist it on EVERY interrupt, when most don''t want or need it, and those that do can implement it simply enough.' ' ' Workaround: Test Case: Edit-By: Sannella.PA Edit-Date: 12-Sep-84 12':42':48