Rapid
 Interactive
  Programming
   Environment

Download

 

You can get copies of my “Forth” like interpreter called RIPE. some example programs and some (not too up-to-date) documentation from this page.

Read the disclaimer first!


To help get you going:

    The character string <enter> is used to represent the user pressing the Enter key or the Carriage Return key on the keyboard.

    • To terminate the program, enter the sequence
      bye <enter>
       
    • To load the text file, named demo.txt, of commands enter the sequence
      s” demo.txt”   included <enter>
       
    • If the file is not in the current default directory then you must included the pathname with the file name e.g.
      s” c:\RIPE\demo.txt”     included <enter>

    Please note: it is a characteristic of “Forth” like interpreters that keywords are separated by a space character. A space is needed after the s”


The following is a screen shot of the RIPE. interpreter in its miminal configuration.


The following are RIPE. source files for make using RIPE. a bit more comfortable to use.

  • Help Information 2015-07-08 Actual a brief description of most of the keywords.
    • If you place this file in the same directory as the RIPE. interpreter then it will be automatically loaded when the RIPE. interpreter starts.
    • If you change the name of the executable (i.e. the RIPE. interpreter then this file must be renamed. Current executable’s name is RipeForth.exe so the help file must have the name RipeForth_help.txt )
       
    • To get help for a command, for example the command open-file, then enter the sequence help open-file <enter>
    • To get help for all commands that contain the text string -fil enter the sequence  help* -fil <enter>


The following is a screen shot of the help facility available in the command line mode of the RIPE. interpreter.


  • Minimal GUI 2015-07-08 Make a few commands accessible from a standard menu.
    • In particular it provides a simple GUI for getting at the help information so that you can view the help information whilst working at the command line.
    • If you change the name of the executable (i.e. the RIPE. interpreter then this file must be renamed. Current executable’s name is RipeForth.exe so the minimal GUI file must have the name RipeForth_sint.txt )
       
    • This also provides a (in my opinion very useful) file browser and launcher feature.
      This lets you display (and with some limitations also edit) a text file which you can easily launch into execution.
       
    • Technically:
      It activates a new copy of the
      RIPE. executable.
      Copies the text in the Browse and Launch window in to a new text file.
      Submits the new text file to the new copy of
      RIPE.
      BUT it does not support the stopping of the new process.


The following is a screenshot of the help facility supported by the Minimal GUI code.


The following is a screenshot of the Browse and Launch capability supported by the Minimal GUI code.


The following examples are the RIPE. source files for some of the applications made available as stand alone executables (see the section on Programs - General).

Please note that some of these applications were originally created as a set of source files that were included in to the RIPE interpretive environment. I have an application that copies all included text lines to a text file. Thus I can convert nested included files in to a single file. However, I have not bothered to excluded from the output file the actual   included   statements (the code that tells the interpreter to load a text file). So if you try to run one of these source files you will get a error report that the included statements fail. However the error report will not interrupt the loading or action of the text file. In other words, the following text files will work despite the included error report(s).

       Source files:

  • Icon Ripper                               Link to a brief description of this program.
  • File Hash Checker                       Link to a brief description of this program.
  • Tone and Morse Code Generator   Link to a brief description of this program.
  • Infix to RPN                               Link to a brief description of this program.
  • Dup Finder                               Link to a brief description of this program.
  • DNS Query                               Link to a brief description of this program.
  • File Shrinker                               Link to a brief description of this program.
  • ISBN Book Manager                     Link to a brief description of this program.


Example programs (text files that you can load in to the RIPE. interpreter). All of these examples are compatible with the RIPE. interpreter downloadable from this page.

The following examples are the RIPE source files for some bits of code that demonstrate how various things can be done. Rather than offer each individual example for download, I have packed them in to a common zip file.Click here 2015-07-08 to get to the demonstration package download page.

Please read the demo files there are lots of comments in them

  • asm_01
    This is not really a demo file, more a set routines to link machine code to the RIPE interpreter.
  • button_01
    Displays some buttons, links them to callbacks so that on button selection the title of the button is changed.
  • button_02
    Based on button_01 but has code to change the width of a button.
  • button_03
    Based on button_03 but has code to change to keyboard focus from one button to another using the tab key.
  • button_04
    Displays a variety of buttons and shows where the titles can be positioned.
    This demo looks best if you stretch the display (grab a corner of the window and make it bigger/smaller).
    The display includes labels whose titles are at the default position.
  • button_05
    Show two rows of buttons.
    Note: Each row was created as a group. Thus the radio buttons in a row are dependent on one another, but are independent of the other row's radio buttons.
  • button_06
    Display a bitmap file as the face of a button, set the size of the face to be user defined.
    Display the same bitmap as the face of another button, make the face size dependent on the bitmap.
    Treat the bitmaps as buttons and report when they are pressed.
  • button_07
    As button_06 but make the second face stretchable! (grab a corner of the window and make it bigger/smaller), and only the large bitmap responds to a mouse click.
  • button_08
    Places buttons in to a matrix and shows how to make them strecth when the window is resized
  • button_09
    Shows how to use different fonts and colours with a button.
  • c_helper
    A few definitions to support the use of “C” syntax in a RIPTE text file: #define, #if , #endif .
  • calc
    A simple calculator with memory and a few functions.
  • class
    Use the class commands to create 2 user defined windows with different properties.
    Note how the windows lie directly over each other.
  • class_bkgd_01
    Gain access to the Win32 API CreateHatchBrush. Make a new brush then use this brush to create a new windows class. Display the new window.
  • class_bkgd_02
    Gain access to the Win32 API CreateBrushIndirect. Make a new brush then use this brush to create a new windows class. Display the new window.
  • com_ports_01
    Check whether the serial ports COM 1..4 and LPT1 are equipped.
  • combo
    Display the three sorts of combo box. Give them a default population. When an item is selected its identity is obtained and displayed on the CLI screen.
  • combo_stretch
    Like the combo example, but with the strecth feature switched on.
  • Complicated_defn
    A example of creating a complex definition that uses postpone , compile, and immediate
  • detabber
    Converts leading tabs in a text file in to 3 spaces
  • DeviceSerialNumber
    Given a folder path, it identifies the serial number of the disk hosting that path.
  • dir
    This file is common to a number of demos. It is not a demo itself!
  • directdraw
    An example of COM programming. Gain access to the DirectDraw (part of DirectX) via a DLL. The use this access to switch to a low resolution screen and back again.
  • dll_01
    Gain access to a system DLL that has a floating point "power" procedure. Call it to calculate 2 to the power of 8.
  • dll_helper
    Similar to dll_01 but the wrappers for the DLL are a bit better structured. This file is used in the ISBN Book Manager application.
  • dll_perfMeasures
    Gain access to the high performance timers in the Kernel32 DLL .
  • DND test
    A example of how to catch a Drag and Drop object.
  • DNS Query (aysync) app core
    The core code needed to handle a raw access to query a DNS service.
  • DNS Query  app builder
    A file that if included will “include” those files needed to build the DNS Query application.
  • draw_arc
    Gain access to a system DLL that has a drawing procedure to create an arc. Use it to draw an arc directly on to the drawing area by-passing RIPEs drawing control, use it to draw an arc using RIPEs drawing control (shift, magnification and TDBU).
  • draw_bullseye
    Draw a bullseye/target on the drawing area.
  • draw_demo
    Shows how the drawing parameters: line colour, line width, fill-in colour and paper colour can be used.
  • draw_line_01
    Draw a line on the drawing area. Shows how a button can be used to exit from the application.
  • draw_tdbu
    Draw a bitmap file, a circle and an arc using RIPE, draw an arc that bypasses RIPE. Use 3 buttons to toggle the drawing parameters: shift, magnification and TDBU.
    The "raw" arc does not move with the other objects.
    The bitmap image is subjected to scaling/stretching.
  • drives
    This file is common to a number of demos. It is not a demo itself!
  • Drive Info
    This file is common to a number of demos!
  • Dup Finder
    The core code used in the Dup Finder application..
  • Dup Finder app builder
    A file that if included will “include” those files needed to build the Dup Finder application.
  • edit
    Shows how to create a single and a multi line edit box. It also shows how to create a simple keystroke filter to prevent a capital A or a capital B from being entered.
  • EnvStrings
    Uses calls to a system library to display all of the Environment strings. Is a good example of library access.
  • file_lister
    Shows how to open a text file and display it.
  • File Shrinker
    The core code used in the File Shrinker application.
  • File Shrinker  app builder
    A file that if included will “include” those files needed to build the File Shrinker application.
  • FTD2xx
    Added a demo to access the DLL used to drive the FTDI US232C RS232/USB chip used in the Elektor IQ-SDR May 2007
  • GUI app no core Panel
    This is actual the core of my stand alone applications. It provides a ready made Directory/file navigation capability of the left and middle panels, and allows the specific application to “own” the right hand panel. If there is no specific application then the example defaults to an “explorer” like utility.
    Icon Ripper and Hash File use this code.
  • Hash File
    The core code used in the Hash File application.
  • Hash File app builder
    A file that if included will “include” those files needed to build the Hash File application.
  • hatch_styles
    Shows how to create some brush hatch styles on a drawing area.
  • hex_edit
    included by the hexdis example
  • hexdis
    Displays a selected file in hexadecimal form-
  • Icon core
    The core code used in the Icon Ripper application.
  • Icon Ripper app builder
    A file that if included will “include” those files needed to build the Icon Ripper application.
  • image_01
    Shows how to handle bitmap files as images. How to extract sections of the image and display it. How to do some bulk pixel processing and invert all colours.
  • image_02
    As image_01 but does a little bit more.
  • ip_cli_tcp_async
    An IP client using TCP. The interface to the IP link is handled asynchronously!
  • ip_cli_tcp_sync
    An IP client using TCP. The interface to the IP link is handled synchronously!
  • ip_cli_udp_async
    An IP client using UDP. The interface to the IP link is handled asynchronously!
  • ip_cli_udp_sync
    An IP client using UDP. The interface to the IP link is handled synchronously!
  • ip_cli_TCP_async
    An IP client using TCP. The interface to the IP link is handled asynchronously!
  • ip_srv_tcp_async
    An IP server using TCP. The interface to the IP link is handled asynchronously! Echos the clients packets.
  • ip_srv _tcp_sync
    An IP server using TCP. The interface to the IP link is handled synchronously! Echos the clients packets.
  • ip_srv _udp_async
    An IP server using UDP. The interface to the IP link is handled asynchronously! Echos the clients packets.
  • ip_srv _udp_sync
    An IP server using UDP. The interface to the IP link is handled synchronously! Echos the clients packets.
  • line_styles
    Shows how to create some line styles on a drawing area
  • list
    Display the seven sorts of list box. Give them a default population. When an item is selected its identity is obtained and displayed on the CLI screen.
  • ll_message_cli
    Shows how use low level Windows message programming.
  • IPv6 address object
    A helper file, called by DNS Query, manipulates IPv6 addresses.
  • ISBN_app_converged
    The complete RIPE source for the ISBN Book Manager application.
  • LV_NA_BA
    Shows the use of local variable inside a definition.
  • menu_01
    Create the same menu on three different windows and how to identify which menu item was selected.
  • MessageBeeb
    A super simple use of a DLL to craete aan audible beeb. Uses DLL_Helper and C_Helper.
  • midi_03
    Shows how to program a midi device at the byte level using the API midiOutShortMsg via a call to a DLL. This is a fun demo for noisy people!
  • midi_test_minimal
    Similar to the demo midi_03 but more “minimal”
  • mouse
    Shows how to handle the mouse. Track the mouse and draw its trail on a window. The basis of a drawing program.
  • moving train
    Draws, resizes and redraws a bit map across the screen to makeit look like a moving train.
  • no_helo
    Demonstrates the examination of a definition header to see whether that definition has any help information associated with it.
  • password
    Shows how use an edit field to handle password input.
  • paned1
    Demonstrates the creation of a split screen Screen Object
  • PlaySound_DLL
    Gain access to the Win32 API sndPlaySoundand play a WAV file.
  • Popup
    Shows how a popup menu can be used and positioned on the window.
  • Recursive find file
    List all files in the current working directory using low level Win32 API
  • Reroute_output_to_SOB
    A set of definitions to reroute the default output(to the CLI display) to an edit box.
  • rgb_filter
    Show how pixel level processing can be done on a bitmap image. Display 4 versions of a bitmap file. One normal, one with no red, one with no green and one with no blue!
  • rgb_sliders
    Use three sliders (red/green/blue) to mix up you own colour.
  • show_ecodes
    Displays all of the text strings and their identity numbers in the ecode table. The ecode table can be reprogrammed to support other languages.
  • slider_01
    Shows use of a simple slider.
  • show_ecodes
    Displays all of the text strings and their identity numbers in the ecode table. The ecode table can be reprogrammed to support other languages.
  • show_drives
    List the currently connected drives, as a lsit of available drive letters.
  • show_drives_01
    List the currently connected drives, as a matrix of buttons.
  • show_files
    List all files in the current working directory.
  • SimpleOscilloscope
    A simple oscilloscope based on the sound card. This requires that the file wave_rx_only.txt is in the same directory.
  • soundplay_03
    Gain access to the Win32 API mciSendStringA. Then use it to make a minimal WAV and MID file player, with a super simple GUI.
  • SQL Browser
    This should really be an free standing application. It allows one to open a SQLite database and display tha names and details of the tables. It also allows the display of 100 rows from one of the tables in the database. But you need an SQLite database so I have placed a small SQLite database file in the demo zip. THis is not the source to the SQLite Utility program.
  • SQL Utility
    I have not yet released the source for this program.
  • Stretch_01
    Example of the use of the stretch capability of a screen object.
  • Stretch_02
    Another example of the use of the stretch capability of a screen object.
  • SQL Utility
    I have not yet released the source for this program.
  • Tone and Morse generator
    Another piece of code that could be a demo. It generates a sine wave and sends it to the sound card. You can control the frequency and the volume. It is also possible to type in text and it will be converted to morse code.
    This program needs the files Wave_RX_and_TX.txt and Wave_TX_only.txt to be in the same directory.
  • tone_and_Morse_generator app builder
    A file that if included will “include” those files needed to build the Tone and Morse generator application.
  • typelib_01
    More an application than a demo. Using a GUI, it lets you select an applications TYPE LIBRARY file and then lets you navigate through the file. I created it to help me understand "automation" of programmes such as Word, Excel etc. The programme uses quite a bit of COM type interfacing! I really need to rework the GUI part, it is ugly but it works.
  • YardsFeetInches
    A demonstration of how to convert a number in to a user specified structure.
  • Wave_RX_and_TX       Wave_TX_only      Wave_RX_only
    These are detailed modules for accessing the sound card. They are used by various programs e.g. the Tone and Morse Generator

[Technical Details] [Installation] [Books] [Download] [File Shrinker] [Infix to RPN] [Sound card]