Tuesday, October 23, 2012

Salient Software Features





The system software is composed of four distinct components:

  • VectorLinux 

  • - "Speed, performance, stability -- these are attributes that set VectorLinux apart in the crowded field of Linux distributions.The creators of VectorLinux had a single credo: keep it simple, keep it small and let the end user decide what their operating system is going to be. What has evolved from this concept is perhaps the best little Linux operating system available anywhere. For the casual computer user you have a lightning fast desktop with graphical programs to handle your daily activities from web surfing, sending and receiving email, chatting on ICQ or IRC to running an ftp server. Power users will be pleased because all the tools are there to compile their own programs, use the system as a server or perhaps the gateway for their home or office computer network. Administrators will be equally as pleased because the small size and memory requirements of the operating system can be deployed on older machines maybe long forgotten." (http://vectorlinux.com/) 

  • Lynx 
    - "Lynx is a text-only web browser originally designed to run on UNIX, but today it also runs on Linux, VMS, MacOS, Windows and other platforms. It was initially developed by a team of University of Kansas students in 1992 for distributing information on a campus-wide information system and as a Gopher client, but it quickly became popular with visually impaired users because of its text-to-speech friendly interface. Although less used today as part of text-to-speech translating systems due to the technological improvements in screen readers, Lynx is still developed, useful, and it’s included as part of many Linux and UNIX distributions, includingCygwin. Lynx is licensed under the GNU General Public License.

    Some uses for Lynx:
    - Reading documentation or downloading files in a text-based environment
    - To access websites without graphical displays
    - For use on low bandwidth Internet connections
    - For use on older and slower computer hardware
    - For fast, safe browsing of text-based web sites
    - Search Engine View Emulation
    - Incorporating into scripts and to automate tasks



    Advantages of Lynx:
    - Fast, free, and safe
    - Handles cookies
    - Has many options
    - Multilingual"



  • The Control and Analysis Program written in C-Language

    There are four of these programs, and they will need to be stitched together to form one working environment.





Obtaining User Input






Child Process






  • The Hardware Interfacing Program, also written in C-Language

    This program manages all the input and output functions of the system.




General Flow Overview.  I am repeating this diagram here, because all the system and interfacing software are written to support this system configuration.





Keyboard to Printer Port.  This is a general block diagram of the system.

  • Five more keyboards are connected to the computer via a hardware system that connects to the printer port of the computer.
  • Paired with the five keyboards are five Braille displays.  They are driven by the computer through the printer port, and a hardware system that bridges the computer with the Braille displays.










Scope Tracing of Keyboard Waveforms.  

  • We superimposed two oscilloscope channels for this picture.  
  • The lower waveform is that of the keyboard "clock", and the top, that of the "data" signal.  
  • The computer translates a key-press into a waveform on its "data" signal line that goes out as a serial signal.  
  • The computer receives this signal and interprets it to produce the key that was pressed.








State Duration for the character "a".  

  • We have experimentally taken this ratio for each of the keys of the keyboard
  • developed an algorithm to identify the key in question
  • give the key pressed to our program
  • accordingly interpret the meaning of the key pressed





The table below provides a Summary of Major Hardware Interface Commands  The codes on the first two columns are in HEX.  The ones enclosed by the square brackets "[" and "]" are in BINARY form.  Keep in mind, however, that C0, C1, C2, and C3, have Inverting, Inverting, Non-Inverting, and Inverting outputs, respectively.


37ah, 02 [1001] // command to select terminal, disable latch
378h, 00 [0000] // select terminal 1
37ah, 03 [1000] // enable latch
37ah, 02 [1001] // disable latch
37ah, 0a [0001] // command to send cell address, disable latch
378h, 00 [0000] // select cell 1
37ah, 0b [0000] // enable latch
37ah, 0a [0001] // disable latch
37ah, 0e [0101] // command to send data, disable latch
378h, 0f [1111] // send 1111
37ah, 0f [0100] // enable latch
/* at this pt, four LEDs light up! */
37ah, 0e [0101] // disable latch