TIIF/TIIF2 for the CC-40/TI-74/95

TIIF is a replacement for the original PCIF from TI. It has much enhancements and works on a modern PC, while PCIF will strike with a 66MHz Pentium processor. Unfortunately this program is a native DOS/OS/2 text-application. It will run under windows using the Userport-Extension. Support for TIIF has ended. Use TIIF2 instead.

NEW: 32 Bit Windows Version TIIF2 is now available as separate Installer and is also part of TIIF.zip


  • ZIP-Archive containing TIIF, TIIF2 and sample files: TIIF.zip

  • ZIP-Archive containing the oriiginal EFL95 (a bugfixed PCL95 for the TI95 from Klaus Overhage. Working with TIIF2 and HEXTIr): EFL-org.zip

  • ZIP-Archive containing the EFL95 (a bugfixed PCL95 for the TI95 from Klaus Overhage. Working with TIIF2 and HEXTIr): EFL.zip

  • ZIP-Archive containing the QFL95 (a simplified EFL95 without security-prompts for the TI95 from Klaus Overhage and me. Working with TIIF2 and HEXTIr): QFL.zip

  • TIIF2 Win 32 Installer: TIIF2_Installer.exe

  • PCIF manual: pcif_manual.pdf


TIIF2 v2.0.4.18 released

  • fixed: some minor bugs

 TIIF2 v2.0.4.17 released

  • fixed: casesensitiv Label-List

  • added: TI95-compressor checks for undefined labels

TIIF2 v2.0.4.16 released

  • added: TI95-compressor checks for duplicate labels

  • added: CHR and F1..F5 are keywords now

  • changed: characters in K95-files are always uppercase until you use the shift-key

TIIF2 v2.0.4.15 released

  • new: Device 44 which redirects print commands to the file Trace.dmp

TIIF2 v2.0.4.13 released

Since I own a TI-95 myself now, I could make some improvements and bugfixes to the TI-95 section of TIIF2:

  • added: new Option TI95. Is this option active the default file-extensions are .K95 for key-files and .B95 for compressed binary-files. You must disable this option, if you are using a TI74 or CC40.

  • new: the decompressor for generating K95-Files has now minimal formatting capabilities using additional line-breaks and indentation. But it can clearly not prevent from this spaghetti-code.

  • new: you may use the formatting capabilities by using the Utility "Renumber/Reformat" in the Utilities-menu or simply press Ctrl-# (on a German-keyboard. That is the key left to the Enter-Button). The comments in the K95-file are preserved and _not_ lost!

  • new: the K95 has now a highlighter too, which will also enhance the readability.

  • new: option "Show PC in K95". If this option is set, the decompressor will add a 4-digit number at the beginning of a line which represents the PC. In the case of a cartridge listing the absolute HEX-addresses are shown.

    Important note: Every line, even empty ones, _must_ contain a valid number in the leftmost 4 places of a line. Otherwise the compressor will place the PC into the B95-file!

  • fixed: if the last statement in a K95 file was an alpha message, the last character was stripped.

  • changed: the behaviour of the compressor with LBL, GTL, SBL, GET and PUT was changed: The complete statement MUST now reside in one line and between the statement and the label or filename must be exactly one blank! This allows the following definitions:

    "LBL AA", "LBL A", "LBL A " or even "LBL ". BTW: lowercase chars are working also, e.g. "LBL aA" or

    "GET AAA", GET " A", GET "A " or even "GET "

  • changed: the K95-editor converts lowercase chars to uppercase and vice versa. If you want to Enter A simply press A on the PC-keyboard, if you want to enter a, press Shift a on the keyboard. Exception from this rule: a "`" was detected, indicating an alpha-message.

  • changed: a K95 keyfile is now created under either three conditions when saving a B95-file to disk:

    1) the "Recreate K95" option is set. In that case the K95-file is created always, regardless whether the file exists or not.

    2) the K95 does not exist: in this case the file will be generated.

    3) the K95 already exists: in this case you'll be asked, if you want to override it.

    The reason is, that a K95-file could contain comments, which are lost, if it is overwritten by a generated file.

  • fixed: EFL. Writing text files (PGM or REG) closes the wrong device 100. That is fixed to device 101.

  • new: QFL95. QFL is a nearly identical with EFL, but with some differences:

    1) These annoying security-prompts have been removed. This saves about 200 Bytes.

    2) The program makes now longer use of the PRT command, instead the PAU command is used, if necessary.

    3) The col-width for the printer-device 45 is set to 80.

  • added: S32.K95. That program allows you to modify a freshly initialized 32kB-RAM-module for nearly the full use of 32kB, even if the TI-95 initialized it as a 16kB-module. You loose exactly 272 Bytes of the module, because the TI-95 writes a 0-Byte at H4100 on Power On/Off, which will damage the file at this position. Therefore a dummy-file "+++" is stored there. BTW: a 16kB is although not safe, only a 8kB module!

TIIF2 v2.0.4.0 released

  • added: support for multiple Tab-controlled Editor-windows. You can select whether you want TIIF2 to start with an empty window, the last used file or reload all files of the last session. See option-menu.

  • changed: some small bugfixes and optimisations.

TIIF2 v2.0.3.16 released

  • changed: updated SynEdit to the latest release

  • changed: the editor monitors the loaded source file in a 5s intervall
  • fixed: loading source files from outside the redirection-system

  • changed: renamed "Create C74/C40" to "Rebuild C74/C40", which is disabled now by default

  • changed: on opening an existing data file in mode DISPLAY, RELATIVE, INPUT or UPDATE the bufferlength is checked. If it is too small an error 12 is returned.

  • added: CRT-HighVideo

  • added: selectable font for CRTConsole

  • added: selectable font for SynEdit. Here you may use Crtl-MouseWheel up/down to change the font-size

TIIF2 v2.0.3.15 released

  • fixed: Reset Bus command (call io(0,255,S)) Do not send any response on this call, just reset all files and devices.

TIIF2 v2.0.3.14 released

  • fixed: some issues reading catalog

TIIF2 v2.0.3.13 released

  • fixed: reading data from relative files was completely broken in ver.

  • changed: flush the data of the log-file immediately

  • changed: improved return-codes from DriveStatus (command-code 7)

  • changed: some code refactoring

  • added: RWRAM.B40 and RWRAM.B74

TIIF2 v2.0.3.12 released

  • fixed: double-quotes behind a remark on decompressing

  • fixed: changed extension to C74 on trying to read a C40-file on a TI74 and vice versa

TIIF2 v2.0.3.11 released

  • fixed: another reading behind EOF issue

TIIF2 v2.0.3.10 released

  • fixed: return code on reading data behind EOF in INTERNAL and DISPLAY mode.

TIIF2 v2.0.3.9 released

  • changed: priority of HEXBUS-listener thread during BAV low

  • added: auto line numbers in BASIC

TIIF2 v2.0.3.8 released

  • new: adjustable Tab-Width

  • fixed: integers used as Labels in PASCAL using 0xF0 instead of 0xF1 as Token

  • changed: SaveAs loads the correct keywordlist, when the extension is changed to a different language

TIIF2 v2.0.3.7 released

  • fixed: some small bugs in PASCAL compressor/decompressorl

 TIIF2 v2.0.3.6 released

  • new: use ctrl-space for completion proposal

  • new: auto detection of TI74/95 and CC40

  • fixed: minor bugs

  • fixed: handling of file associations

  • fixed: variable list in PASCAL-compressor

  • fixed: wrong token for HALT in PASCAL

TIIF2 v2.0.3.5 released

  • removed: fix for program files written in DISPLAY mode with trailing CRLFs, it is no longer needed.

  • fixed: VERIFY now shows the correct error 12 or 24 on failure.

  • fixed: PASCAL-compressor for CC40

 TIIF2 v2.0.3.4 released

  • added: fix for program files written in DISPLAY mode with trailing CRLFs. The trailing CRLFs are removed by TIIF2 before sending the data to the TI. If the program file is not write-protected on disk, the file will be truncated to the correct size.

TIIF2 v2.0.3.3 released

  • added: support for files in DISPLAY,RELATIVE mode

TIIF2 v2.0.3.2 released

  • changed: device 100 and 101 are now again strictly distinguished: device 100 reads and writes program files and other raw data files, device 101 reads and writes structured data files. Therefore TIIF2 is not compatible with HEXTIr in the current version. Use the following statement to set the right device for structured data if you are using both HEXTIr and TIIF2:

    100 CALL IO(45,1,S):IF S=4 THEN DN$="101." ELSE DN$="100."
    130 OPEN #1,DN$&"testfile.int", INTERNAL

TIIF2 v2.0.3.1 released

  • changed: device 100 and 101 are now working identically for compatibility with HEXTIr. As a consequence LUN 254 must be used for transferring raw data like RAM/ROM images. LUN 255 is used for COMMAND_MODE to add support for chdir, mkdir and rename files/directories. TIIF2 ignores LUN 255 on all other devices than 100/101. An alternative is to open device 100/101 with an empty file name. This is for compatibility with HEXTIr only, it makes really no deeper sense with TIIF2 and it's redirection system.

  • added: catalog support using a $-sign as the first character in the open-command. You may either open #1,"100.$c:/*.*":...:input #1,L$,N$,T$:...:close #1 or run/old "100.$c:/*.*"

  • added: system clock (read-only) at device 230 for compatibility with HEXTIr

  • changed: default buffer length is now always 255 Byte, unless it is explicitly set with VARIABLE

  • changed: search routine to recognise the PC-Interface. Searching for the interface leads to unexpected results when a CC40 is connected. Therefore I have disabled the search routine, if CC40 is selected in the options menu.

  • fixed: double quotes inside a BASIC-string

  • fixed: missing token for OLD in BASIC

  • added: full support for CC40. You must select your model in the options menu.

  • changed: file extensions. We now have:

  • CC40:

    *.B40: BASIC source file

    *.P40: PASCAL source file

    *.C40: compressed (tokenized) file

  • TI74:

    *.B74: BASIC source file

    *.P74: PASCAL source file

    *.S74: BASIC subroutine for RAM-module

    *.C74: compressed (tokenized) file

  • TI95:

    *.K95: key file

    *.B95: binary (tokenized) file

TIIF2 v2.0.2.2 released

  • fixed: some minor bugs

 TIIF2 v2.0.2.1 released

  • fixed: a problem with unclosed comments in PASCAL-compressor

  • fixed: parenthesis, brackets spanning over several lines in PASCAL-compressor

  • fixed: call io(45,11)

  • changed: the command-thread is startet even no interface is connected. This allows compressing and decompressing files without connected calculator.

  • changed: the savesas-dialog shows the name of the loaded file as default

  • changed: the redirection-system searches recursively all subdirectories for the requested file.

  • changed: call io(45,2,W), call io(45,3,H) are now call io(45,12,W) and call io(45,13,H)

  • added: new device 46, which acts as a timer like call io(45,10). This allows the use of the timer inside a PASCAL-program like this:

  • var time: text;
       rewrite(time,'46'); (* starts the timer *)
       writeln(time); (* displays the time needed so far *)
       close(time); (* displays the time and closes the device *)

TIIF2 v.

  • fixed: TIIF2 might hang on exit.

TIIF2 v.

  • if an error occurs while renumbering a BASIC or PASCAL file, the cursor is now correctly set to the line where the error occurred.
  • connections failed, if a PC-324 was connected und supplied by an AC-adaptor. I have changed the GetByte-routine to fix this.
  • CloseScreen returns correctly error 04, if the screen was not previously opened.
  • when closing TIIF2 while still files are opened, a confirmation message appears.
  • the menu options renumber and compress will no renumber or compress the file loaded into the editor, if the editor view is active. If the output screen is active, you will be asked for a file to renumber or compress. Decompressing shows always the file open dialog.


TIIF2 v2.0.1.2

  • TI-95 compressor: invalid uppercase conversion

  • TI-95 decompressor: endless-loop when the B95-file ends with a string, HEX-fields behind DFA, SBR and GTO

TIIF2 v2.0.1.1

  • Full support for the LEARN-PASCAL module. TIIF2 now contains compressor, decompressor and renumbering modules for PASCAL files P74 too. Don't forget to add a line for P74-files in TIIF2.RED! The handling is exactly the same as with BASIC-files B74. Note that there is no need for line numbers inside TIIF2. If the option "Auto line numbers P74" is activated, TIIF2 will add the missing line numbers while creating the corresponding PGM file and remove them while creating the P74 file. The editor supports indenting and unindenting by using TAB and Shift-TAB. Also auto-indenting and a block-indent is implemented. The file extension P74 is registered for TIIF2.
  • A new option "Create LOG file" allows logging of the complete data-transfer between the TI-74/95 and TIIF2. That makes it easier to locate errors or bugs. The file TIIF2.LOG resides in the same folder as TIFF2.EXE. The default is off and the setting is not stored in the registry.
  • I made some changes and workarounds to get a TI-95 correctly working with TIIF2 now. It seems, that the loader-program LOD listed on page 3-12 in the PCIF user manual contains some bugs, which made it impossible to load PCL95 oder PCS95 into the TI-95. I have worked around these bugs in TIIF2, so that these files now can be loaded without any problems. Since PCL95 and PCS95 do not have a file extension, the redirection system cannot be used to locate these files. They must therefore reside in the same directory as TIIF2.EXE. The installer will place a copy of those files to the right location while installing TIIF2.
  • compressor and decompressor for TI-95 K95 and B95 files. The file extensions are registered for TIIF2. Don't forget to add a line for K95/B95-files in TIIF2.RED! The handling is exactly the same as with BASIC-files, but a few things must be noted:
  1. TIIF2 is primary designed to work with the TI-74, not the TI-95. Therefore missing file-extensions where added for TI-74 files. You should always add the correct extension K95 for a key-file or B95 for a binary-file.
  2. The K95 can contain comments, the B95 not. Therefore the comments are lost, when compressing a K95 file and decompress the generated B95 to the same K95 file name. For this reason TIIF2 does not automatically generate a K95 file when saving a B95 file. If you would like a K95 file to be generated you must enable the option Create K95 in the options-menu.
  • if an error is detected while compressing a B74, S74, P74 or K95 file, the file in question is loaded into the editor and the cursor is positioned to the place, where the error was detected.
  • CALL IO(45,10) stores the starting time
  • CALL IO(45,11) gets the elapsed time and displays the measured time on the screen
  • the screen is no longer cleared when resizing the window in any way
  • SendByte routine for faster transfer from PC to the TI.

Thanks to Klaus Overhage for testing the TI-95 stuff and bug-reports.

TIIF2 v1.0.7.4

  • fixed: wrong (absolutely useless) error-hints generated while compressing, decompressing or renumbering.


  • OLD "100.LOADED" will transfer the currently in TIIF2 loaded program file to the TI-74

  • CALL IO(45,2,W) returns the current screenwidth in W

  • CALL IO(45,3,H) returns the current screenheight in H


  • use precision timer instead of counter-loop for delay


  • communication module redesigned for much more stable connections. RDelay and WDelay are obsolete now and not longer used.

  • some cosmetically bugfixes


  • file association with *.b74 and *.s74 files

  • drag&drop in the editor window

  • only one instance of TIIF2 at a time

  • call io(45,6) will bring TIIF2 to the front

  • improved InitBus routine on shutdown to reduce power consumption


Peter Engels

Last changed: 21.07.2023

Previous page: Home
Next page: TIEdit