Annotation of coherent/b/kernel/FWB/hooks, revision 1.1

1.1     ! root        1: The C routines of this device driver call assembly routines
        !             2: to produce the various clicks and sounds.
        !             3: These are contained in sdsounds.s.
        !             4: This is the only assembly (thank God).
        !             5: 
        !             6: There are several hooks between this code and the kernel.
        !             7: 
        !             8: sdload is called by isload (in kb.c), as the last command.
        !             9: 
        !            10: sduload is called by isuload (in kb.c), as the last command.
        !            11: 
        !            12: sdtime is called by mmtime (in mm.c), as the last command before rescheduling.
        !            13: Sdtime manages longer sounds such as error bells,
        !            14: and executes the deferred speech commands.
        !            15: It also maintains the ongoing reading of text in the internal buffer.
        !            16: Once reading is initiated, sdtime performs a form of polling,
        !            17: asking whether the synthesizer is ready for more.
        !            18: If it is, send more text.
        !            19: Continue reading until another command is entered.
        !            20: The polling rate of 10HZ is (generally) adequate for this task.
        !            21: The rescheduling frequency is dynamically determined by the variable mmticks.
        !            22: Usually this is set to 10 ticks, the original value.
        !            23: It is upped to 1 tick when producing audio feedback
        !            24: or initiating speech.
        !            25: The new routine mmhasten hastens the execution
        !            26: of mmtime() by rescheduling with mmticks = 1.
        !            27: 
        !            28: mmgo1() is called from mm_start() in mm.c.
        !            29: After each byte is taken from the output queue of the tty,
        !            30: c = ttout(tp),
        !            31: call mmgo1(c), and exit the loop if the return value is 0.
        !            32: mmgo1() in turn calls mmgo() if the character needs
        !            33: to be displayed on the screen.
        !            34: 
        !            35: isrint() in kb.c calls sdinkey_coh().
        !            36: This in turn calls isin() if the character is destined
        !            37: for the tty input queue.
        !            38: If the return is 0 then kb.c calls the usual machinery,
        !            39: including isspecial() to interpret special characters.
        !            40: Some code in isrint() is modified to allow control-fkeys to pass through;
        !            41: they were originally discarded.
        !            42: 
        !            43: Before initializing the serial ports, al.c calls sdport_taken
        !            44: to see if a speech session has taken over a serial port,
        !            45: whereupon al.c should leav it alone.
        !            46: As a quick hack, both sibling ports are declared nonexistent.
        !            47: Someday we will leave the sibling port accessible.
        !            48: 
        !            49: Patchable variables sd0synth, sd0comport, and sd0bufsize
        !            50: determine the type of synthesizer, the serial port it is attached to,
        !            51: and the desired size of the internal circular buffer respectively.
        !            52: Use patch to change these parameters.
        !            53: Set sd0synth to 0 and the driver behaves
        !            54: exactly as it use to.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.