============================================================================ A Compendium of CC-40 Information Compiled By: Dan Eicher (Eicher@Delphi.Com) L.D.O.M. 12.01.96 Compendium Copyright 1996 - All articles owned exclusively by their authors. No part of this document is to be modified and re-distributed with out written permission from me. If you have addition that you would be willing to include please email it to me at the above address. Corrections to the material will also be included. General comments like - "I would do XXXX this way.", "Could you add..." ect.... Should be sent to NoOneCares@null.com. If you don't like it, don't use it. I would like to extend a big thanks to Charlie Good (CGood@Bright.Net) for the incredible amount of information he supplied. Without Charlie the TI community would be a much poorer place. If you have problems viewing this file, please tell me as close as possible the exact line. I had to do a large amount of hexediting on the file - these file came from a variety of different computer platforms who each have their own quirks in text handling. I will endeavour to fix all such problems that are report. In order to help you find the article that you are looking for as quickly as possible I have put a unique string at the begining of each article. C4ICSXXX - Where XXX is a 3 digit number. I figured that this string would not normally show up in articles. It stands for Cc-40 Information Compendium Section XXX. Articles: A series of hardware projects. by Edward A. Hallett...............................................C4ICS001 The HexBus Interface Manual. ReTyped by Charlie Good............................................C4ICS002 Using TI-74 Devices with the CC-40. by Maurice Swinnen.................................................C4ICS003 Tutorial on DockBus and HexBus Interfacing. by B. V. Tachkach..................................................C4ICS004 EMAIL from TI to Charlie good on Parts and Prices. by T.I.............................................................C4ICS005 Importing Text into TI-Writer from the CC-40. by Charlie Good....................................................C4ICS006 Upgrading a CC-40 from 8K to 16K. by.. Author Unknown................................................C4ICS007 Review of the Advanced Electrical Engineering Library Software. by Charlie Good....................................................C4ICS008 CC-40 Documentation available to Lima User Group Members. by Charlie Good....................................................C4ICS009 Never Release TI Peripherals. by Charlie Good....................................................C4ICS010 NEW HexBus Peripherals for the CC-40. by Charlie Good....................................................C4ICS011 HexBus/DockBus Peripheral Device Numbers. by Charlie Good....................................................C4ICS012 The HexBus Connection. by Dan Eicher......................................................C4ICS013 A FATAL bug in TI's Memo Processor Cartridge. by Charlie Good....................................................C4ICS014 Word Processing with the CC-40 Memo Processing Cartridge. by Charlie Good....................................................C4ICS015 A Review of the CC-40 Computer System. by Charlie Good....................................................C4ICS016 A Review of the HexBus Modem. by Charlie Good....................................................C4ICS017 Using the CC-40 as a Personal Information Manager. by Charlie Good....................................................C4ICS018 When is a CC-40, not a CC-40?. by Mike Wright.....................................................C4ICS019 The other TI computer Orphan. by Gary Fitzgerald.................................................C4ICS020 TI's PC Interface for the TI CC-40 and TI-74. by Charlie Good....................................................C4ICS021 Using TI's PC-Interface as alternate Mass Storage for the CC-40. by Harry Nilsson...................................................C4ICS022 A day at the track with the CC-40. by Charlie Good....................................................C4ICS023 Phone Number Translator for the CC-40 and TI-74. by Charlie Good....................................................C4ICS024 A Review of the TI HexBus Printer/Plotter. by Charlie Good....................................................C4ICS025 A Review of TI's HexBus 'Printer 80'. by Charlie Good....................................................C4ICS026 A Review of Mechatronic's "Quick Disk Drive" for the CC-40 & 74. by Charlie Good....................................................C4ICS027 Using the TI-74 Quick disk on the CC-40. by Jim McCulloch...................................................C4ICS028 An Educators sorting program for the CC-40. by Charlie Good....................................................C4ICS029 TI's supplementary handouts for the TI-99/4A and CC-40. by Charlie Good....................................................C4ICS030 TI's CC-40 and Peripherals: Alive and Well. by Charlie Good....................................................C4ICS031 An Improved Basic Word Processor. by Charlie Good and Palmer Hanson JR...............................C4ICS032 TI's 74 BasicCalc: A Modern version of the CC-40. by Charlie Good....................................................C4ICS033 Review of TI's never released Wafer Tape Drive. by Charlie Good....................................................C4ICS034 A Compendium of CC-40 Programs. Contributed by Charlie Good........................................C4ICS035 ============================================================================= C4ICS001 TI CC-40 project: Written by Edward A. Hallett, May 1990. I had recently purchased a TI CC-40 computer and did not have any schematics for it. I wanted to make the CC-40 more usable by expanding its memory and by building an interface for it to connect a printer. By using a logic analyzer I was able to determine the pinout and signal functions of the CC-40 cartridge port and Hex-Bus port. I have expanded the memory from 6K to 50K and have built a simple printer interface. I have uploaded a file containing extracts from a series of lab reports about the TI CC-40 computer that I did for my Microcomputer Systems class (ELT 270) this semester. Included are the schematics that I drew and details for expanding the memory from 6K to 18K, building a 32K ram cartridge, and building a printer interface. Also included is information about how the CC-40 operates, signal timing diagrams, a block diagram of the system, and information about internal and port signals. I hope that other CC-40 owners find the info in the file I uploaded usefull. Thanks, Edward A. Hallett =========================================================================== CC-40 PROJECT REPORT # 1 Manuals used: TMS7000 Family Data Manual, HM6116LP-3 Data Sheet, HM61256PC09 Data Sheet, CC-40 Users Guide. Key Features: TMS70C20 Microprocessor: 2K on chip ROM 128 Byte on chip RAM for use as registers 64K address space 256 Bytes for memory mapped ports 8 bit instruction word 4 interrupt levels 32 I/O pins: 16 biderectional, 8 output, 8 input HM6116LP-3 Static Ram: 2K X 8 bit RAM memory 24 pin HN61256PC09 ROM: 32K X 8 bit ROM memory 28 pin CC-40: 2.5MHz clock 6K RAM 34K ROM Basic interpreter Assembly DEBUG program ========================================================================= TMS70C20 Microprocessor architecture: The TMS70C20 can be configured to address 1 of 3 different memory maps and 1 of 3 configurations of its 32 I/O pins by applying the proper logic level to the MODE CNTL pin and secondarily to bits 6 and 7 of the I/O control register. The CC-40 uses the Full Expansion Mode of the TMS70C20 by applying a logic 0 to the MODE CNTL pin and writing a 0 to bit 6 and a 1 to bit 7 of the I/O control register. The Full Expansion Mode of the TMS70C20 microprocessor configures the memory map to address the full 64K limit and configures the 4 8-bit parallel ports, A, B, C, and D as follows: Port A: 8 bit parallel input port. Port B: B0-B3 4 bit parallel output port. B4 (ALATCH) logic 1 while port C asserts amemory address. B5 (R/W) logic 1 for read cycle, logic 0 for write cycle. B6 (ENABLE) logic 0 for external memory cycle. B7 (CLOCKOUT) output clock for memory control timing. Port C: Multiplexed address/data port for the memory bus. Least significant byte (8-bits) of the 16-bit address. Port D: Most significant byte (8-bits) of the 16-bit address. ============================================================================ TMS70C20 MICROPROCESSOR PINNOUT (IN FULL EXPANSION MODE): _ 1 R/W GND 40 2 CLKOUT ENABLE 39 3 BOUT0 ALATCH 38 4 BOUT1 BOUT3 37 5 BOUT2 MODE 36 6 AIN0 D7/A7 35 7 AIN1 D6/A6 34 8 AIN2 D5/A5 33 9 AIN3 D4/A4 32 10 AIN4 D3/A3 31 11 AIN7 D2/A2 30 ____ 12 INT3 D1/A1 29 ____ 13 INT1 D0/A0 28 _____ 14 RESET A8 27 15 AIN6 A9 26 16 AIN5 VCC 25 17 CLKIN/XTAL2 A10 24 18 XTAL1 A11 23 19 A15 A12 22 20 A14 A13 21 ======================================================================== CC-40 PROJECT REPORT # 2 OBJECTIVE: Construct cartridge port extender board for the CC-40 to be used for connecting lab equipment to the CC-40. PROCEDURE: A 2.035 inch X 6.0 inch rectangle circuit card was cut from a sheet of 0.020 inch thick, double sided, copper plated circuit board. One end of the rectangle was cut out at both corners leaving a 1.050 inch X .25 inch tab protruding from the circuit card. This tab fits into the cartridge port card edge connector of the CC-40. 20 .035 inch X .4 inch pads were laid out on .050 centers on each face (top and bottom) of the tab of the circuit card, with dry transfer strips. The pads extended off the tab onto the main portion of the circuit card on each face. 2 rows of 20 points were laid out on .1875 inch (3/16 inch) centers along the edge of both of the 6 inch sides of the circiut card, starting at the end opposite the tab. Dry transfer pads were placed at each point on the inner row on each side of the top face. Corresponding pads were placed on the bottom face. Dry transfer pads were placed on the top face for each point of the outter row on the right side and on the bottom face for each point of the outter row on the left side. The inner row of 20 pads on the right side were connected with dry transfer lines to the 20 pads of the tab on the top face. The inner row of 20 pads on the left side were connected on the bottom face with dry transfer lines to the 20 pads of the tab on the bottom face. The circuit card was then etched in a solution of Ferric Chloride to remove the unwanted copper plating between the dry transfers leaving the desired circuit traces intact. After rinsing the circuit card with water, the dry transfer was removed with Isopropanol and a scrub pad. .025 inch holes were drilled thru the pads in the rows along each side of the circuit card. 2 holes in the each pad of the outer row on each side and 1 hole in each pad of the inner row on each side. The continuity was checked between each tab pad and its corrosponding inner row pad. Each tab pad was checked for shorts to the tab pads adjacent to it. One short was found and corrected. The pads were masked off with tape and the card was painted with several coats of enamel paint to insulate and protect the traces. Wire wrap pins were installed upside down in the outter holes in the outter row of pads on each side. The excess length of the pins were cut off were they protruded thru the bottom face of the card. This left the pins protruding approximately .165 inch from the top face of the card. Jumper wires were attached on the top face between the holes in the inner row of pads on each side to the corresponding inner holes in the outter row of pads on each side. This connected each pin to its corresponding trace from the circuit card tab. CONCLUSION: The extender board constructed brings the CC-40 cartridge port signals out from the small cartridge port connector to a larger test point area. The 2 rows of pins on the extender card allow easy access to the signals for attaching lab equipment. The jumper wires provide a means of reordering the signals on the pins, from a physical order to a logical order, once the signals have been identifided. =========================================================================== EXTENDER CARD: <--.5" --><------ 1.050" ------><--.5" --> ---------------------- .25" |!!!!!!!!!!!!!!!!!!!!| | ---------- !!!!!!!!!!!!!!!!!!!! ---------- | | | j !!!!!!!!!!!!!!!!!!!! j | | | | u !!!!!!!!!!!!!!!!!!!! u | | | m !!!!!!!!!!!!!!!!!!!! m | | 2" |p p !!!!!!!!!!!!!!!!!!!! p p | | |i e !!!!!!!!!!!!!!!!!!!! e i | | | |n r !!!!!!!!!!!!!!!!!!!! r n | | | |s s !!!!!!!!!!!!!!!!!!!! s s | | | | _ !!!!!!!!!!!!!!!!!!! \ _ | | |. ./ \o !!!!!!!!!!!!!!!!!! \ \o/ \o=o | | | | !!!!!!!!!!!!!!!!! \ \ | | | |. . o !!!!!!!!!!!!!!!! \ \ \o o=o | | | | !!!!!!!!!!!!!!! \ \ \ | | | |. . o !!!!!!!!!!!!!! \ \ \ \o o=o | | | | !!!!!!!!!!!!! \ \ \ \ | | | |. . o !!!!!!!!!!!! \ \ \ \ \o o=o | | | | !!!!!!!!!!! \ \ \ \ \ | | | |. . o !!!!!!!!!! \ \ \ \ \ \o o=o | | | | !!!!!!!!! \ \ \ \ \ \ | | | |. . o !!!!!!!! \ \ \ \ \ \ \o o=o | | | | !!!!!!! \ \ \ \ \ \ \ | | | |. . o !!!!!! \ \ \ \ \ \ \ \o o=o | | | | !!!!! \ \ \ \ \ \ \ \ | | |. . o !!!! \ \ \ \ \ \ \ \ \o o=o | 6" | | !!! \ \ \ \ \ \ \ \ \ | | |. . o !! \ \ \ \ \ \ \ \ \ \o o=o | | | | ! \ \ \ \ \ \ \ \ \ \ | | |. . o \ \ \ \ \ \ \ \ \ \ \o o=o | | 3.75" | \ \ \ \ \ \ \ \ \ \ | | |. . o \ \ \ \ \ \ \ \ \ \o o=o | | | | \ \ \ \ \ \ \ \ \ | | | |. . o \ \ \ \ \ \ \ \ \o o=o | | | | \ \ \ \ \ \ \ \ | | | |. . o \ \ \ \ \ \ \ \o o=o | | | | \ \ \ \ \ \ \ | | | |. . o \ \ \ \ \ \ \o o=o | | | | \ \ \ \ \ \ | | | |. . o \ \ \ \ \ \o o=o | | | | \ \ \ \ \ | | | |. . o \ \ \ \ \o o=o | | | | \ \ \ \ | | | |. . o \ \ \ \o o=o | | | | \ \ \ | | | |. . o \ \ \o o=o | | | | \ \ | | | |. . o \ \o o=o | | | | \ | | | |. . o o o=o | | ------------------------------------------ <---------------- 2.050" ----------------> ============================================================================= CC-40 PROJECT REPORT # 3 OBJECTIVE: Expand CC-40 System RAM from 6K to 18K. PROCEDURE: The 6K of RAM installed in the CC-40 consists of 3 HM6116-LP3 2K Static RAM chips. RAM chip #1 and RAM chip # 2 were removed and 2 28 pin low profile sockets were installed in their place. 2 HM6264-LP15 8K Static RAM chips were installed in the sockets. The 2K RAM is 24 pin and the 8K RAM chip is 28 pin. The 8K RAM chip is pin compatible with 23 out of the 24 pins of the 2K RAM chip. The WE NOT signal must be replaced by A11. See attached sheet. The 4 additional pins of the 8K RAM chips must be supplied the following signals: Pin 1 -- No connection Pin 2 -- A12 Pin 27 -- WE NOT Pin 28 -- VCC A12, VCC, and WE NOT were already supplied to the appropriate pins for the 8K RAM chips by the CC-40, as these pins are not used by the 24 pin 2K RAM chips. A jumper block in the CC-40 allows the WE NOT signal to be replaced by A11 for the 8K RAM chip. The jumper block was reconfigured as shown on the attached sheet. ============================================================================== HM6116LP-3 2K RAM AND HM6264LP-15 8K RAM PINNOUTS: 2K OUTSIDE 8K INSIDE 1 NC VCC 28 __ 2 A12 WE 27 A7 3 A7 CS2 26 VCC A6 4 A6 A8 25 A8 A5 5 A5 A9 24 A9 __ A4 6 A4 A11 23 WE __ __ A3 7 A3 OE 22 OE A2 8 A2 A10 21 A10 ___ ___ A1 9 A1 CS1 20 CS1 A0 10 A0 D7 19 D7 D0 11 D0 D6 18 D6 D1 12 D1 D5 17 D5 D2 13 D2 D4 16 D4 GND 14 GND D3 15 D3 ========================================================================== CC-40 RAM MEMORY JUMPER BLOCK: Jumper block configured for 2K chips: ___ __ / \ WE ______0 0_______ pin 23 RAM chip # 1 \ | \ | A11 _____0 \ 0 | __\ | / \ | 0 0_______ pin 27 RAM chips # 1 and # 2 | \ | \ |___0 \__0_______ pin 23 RAM chip # 2 Jumper block configured for 8K chips: __ WE ______0 0_______ pin 23 RAM chip # 1 \ | \ | A11 _____0 \ 0 | \__\/ | \ | 0 0_______ pin 27 RAM chips # 1 and # 2 | \ | \ |___0 \__0_______ pin 23 RAM chip # 2 \___/ ============================================================================ CC-40 MEMORY MAP1: DECIMAL HEX DESCRIPTION SIZE ------------------------------------------------------------------------- 0 0000 REGISTER FILE 128 BYTES PROCESSOR RAM 127 007F ------------------------------------------------------------------------- 128 0080 UNUSED 128 BYTES 255 00FF ------------------------------------------------------------------------- 256 0100 PERIPHERAL FILE 256 BYTES MEMORY MAP I/O 511 01FF ------------------------------------------------------------------------- 512 0200 UNUSED 1.5K 2047 07FF ------------------------------------------------------------------------- 2048 0800 SYSTEM RAM 2K INSTALLED 4095 0FFF ------------------------------------------------------------------------- 4096 1000 SYSTEM RAM 2K INSTALLED 6143 17FF ------------------------------------------------------------------------- 6144 1800 SYSTEM RAM 6K NOT INSTALLED 12287 2FFF ------------------------------------------------------------------------- 12288 3000 SYSTEM RAM 2K INSTALLED 14335 37FF ------------------------------------------------------------------------- 14336 3800 SYSTEM RAM 6K NOT INSTALLED 20479 4FFF ------------------------------------------------------------------------- 20480 5000 CARTRIDE PORT 32K 53247 CFFF ------------------------------------------------------------------------- 53248 D000 SYSTEM ROM 8K 61439 EFFF ------------------------------------------------------------------------- 61440 F000 UNUSED 2K 63487 F7FF ------------------------------------------------------------------------- 63488 F800 PROCESSOR ROM 2K 65536 FFFF ------------------------------------------------------------------------- ============================================================================ CC-40 MEMORY MAP: AFTER 12K RAM ADDED: DECIMAL HEX DESCRIPTION SIZE ------------------------------------------------------------------------- 0 0000 REGISTER FILE 128 BYTES PROCESSOR RAM 127 007F ------------------------------------------------------------------------- 128 0080 UNUSED 128 BYTES 255 00FF ------------------------------------------------------------------------- 256 0100 PERIPHERAL FILE 256 BYTES MEMORY MAP I/O 511 01FF ------------------------------------------------------------------------- 512 0200 UNUSED 1.5K 2047 07FF ------------------------------------------------------------------------- 2048 0800 SYSTEM RAM 2K INSTALLED 4095 0FFF ------------------------------------------------------------------------- 4096 1000 SYSTEM RAM 8K INSTALLED 12287 2FFF ------------------------------------------------------------------------- 12288 3000 SYSTEM RAM 8K INSTALLED 20479 4FFF ------------------------------------------------------------------------- 20480 5000 CARTRIDE PORT 32K 53247 CFFF ------------------------------------------------------------------------- 53248 D000 SYSTEM ROM 8K 61439 EFFF ------------------------------------------------------------------------- 61440 F000 UNUSED 2K 63487 F7FF ------------------------------------------------------------------------- 63488 F800 PROCESSOR ROM 2K 65536 FFFF ------------------------------------------------------------------------- =========================================================================== CC-40 PROJECT REPORT # 4 OBJECTIVE: Determine pinnout of CC-40 cartridge port. PROCEDURE and OBSERVATIONS: The following CC-40 cartridge port signals were identified by observing the signals with the logic analyzer. The R/W(NOT) signal was identified by comparing the R/W(NOT) signal on the microprocessor to the port signals. The R/W(NOT) signal was the used to qualify the logic analyzer input, allowing signals to be observed only during a write condition. First, the data bus signals were identified. By observing the signals while writing a progressive sequence of numbers (00 to FF, incrementing by 01), to a single address, the pins carrying the data signals D0 thru D7 were found and their order identified. Next, the address bus signals were identified. By observing the signals while writing a single number to a progressive sequences of addresses (1000 to 1FFF, 2000-2FFF etc., incrementing by 0001), the pins carrying the address signals A0 thru A15 were found and their order identified. The signals A0 thru A7 were found to be available, demultiplexed from the D0/A0 thru D7/A7 signals. Then, with the analyzer qualify turned off, the control signals were idenified. By observing the relationship between the various signals and comparing them to the timing diagram in the 70C20 microprosessor manual the control signals CLKOUT, ENABLE(NOT), and ALATCH were identified. A system derived control signal that I have named DELAYED ALATCH(NOT)+READ was also identified. DELAYED ALATCH(NOT)+READ is the inverse of ALATCH and follows the ALATCH signal by one time state when R/W(NOT) is HI. This signal is not present (HI), when R/W(NOT) is LOW. I deduce that this signal is available for memory timing control. The +5 VOLT and GROUND signals were identified by obverving the signals with an oscilliscope while loading and unloading the signals thru a 2K ohm resistor to ground or +5 volts. The CRAM(NOT) and CROM(NOT) signals were identified by observing these signals with the oscilliscope. I found that they were floating just above the ground potential. (They had been shown as LOWs by the logic analyzer.) After attaching 10K ohm pull-up resistors to +5 volts these signals were again observed with the logic analyzer. They were found to be active LOW during access to specific blocks of memory addresses. CRAM(NOT) LOW for block 5000 thru 8FFF and CROM(NOT) LOW for block 9000 thru CFFF. These two signals are available to enable memory attached to the cartidge port. The RESET(NOT) and INT3(NOT) signals were identified with the logic analyzer, by obverving the vector addresses generated when they were pulled low. I was not able to identify 3 of the 40 cartridge port signals. The signals on pin 17 and pin 3 are both LOW and were never obverved to change state during any tests. The signal on pin 39 has an infrequent pulse during accesses to the system ROM chip, address range D000 thru EFFF, particularly addresses D4F6 and D5FE. Since the system ROM is 32K, mapped into an 8K slot in the system memory map, it is possible that this signal relates to bank switching of various ROM address blocks into the 8K slot. I have not been able to verify the exact function of this pin at this time. CONCLUSION: Of the 40 pins of the cartridge port, the 37 pins that were identified provide access to all major data, address, and control lines neseccary to interface external memory or I/O circuits. Since the D0/A0 thru D7/A7 multiplexed data/address lines are available demultiplexed to distinct A0 thru A7 signals, an external demultiplexing circuit is not needed to access the A0 thru A7 address signals. . Additionally, since the CROM(NOT) and CRAM(NOT) signals are available, an external address decoding circuit is not needed to interface external memory in the 5000-8FFF or 9000-CFFF ranges. ============================================================================ CC-40 CARTRIDGE PORT PINOUT: TOP |---------------------------------------------------------------| E | 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 | D | | G | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | E |---------------------------------------------------------------| ____ 1 GND 21 CROM 2 +5 VOLT CONSTANT 22 A6 3 UNKNOWN (LOW) 23 A5 4 A9 24 A4 5 A11 25 A2 ______ 6 DELAYED ALATCH + READ 26 A0 _____ 7 RESET 27 GND ? ____ 8 INT3 28 D2 9 CLKOUT 29 D1 _ 10 R/W 30 D0 ______ 11 ENABLE 31 D6 ___ 12 A14 32 D5 13 ALATCH 33 D4 14 D3 34 D7 ____ 15 A1 35 CRAM 16 A3 36 A10 17 UNKNOWN (LOW) 37 A8 18 A12 38 A15 19 A7 39 UNKNOWN (PULSE) 20 +5 VOLT SWITCHED 40 A13 =========================================================================== CC-40 CARTRIDGE PORT SIGNALS: SIGNAL DESCRIPTION ALATCH Logic 1 while port C (multiplexed address/data bus) asserts a memory address. R/W Logic 1 for read cycle, logic 0 for write cycle. ______ ENABLE Logic 0 for external (off processor) memory cycle. CLOCKOUT Output clock for memory control timing. A0 - A7 Addresses A0 thru A7 demultiplexed from D0/A0 thru D7/A7 signals. D0 - D7 Multiplexed data lines D0/A0 thru D7/A7. ____ CRAM Logic 0 for memory bank 5000-8FFF enable. ____ CROM Logic 0 for memory bank 9000-CFFF enable. ____ INT3 Logic 0 to initiate a level 3 interrupt. _____ RESET Logic 0 to initiate a level 0 interrupt (RESET). &DELAYED ALATCH+READ Logic 0 for one time state immeadiately following the ALATCH signal return to logic 0 when R/W(NOT) is logic 1. (Most likely used for memory address timing control) =========================================================================== CC-40 PROJECT REPORT # 5 OBJECTIVE: Determine pinnout and function of CC-40 peripheral port. PROCEDURE and OBSERVATIONS: The CC-40 computer has an 8 pin peripheral port called a HEX-BUS interface. The HEX-BUS port signals were identified by observing the signals with the logic analyzer, while exercising the CC-40's built-in I/O commands. HEX-BUS PORT PINOUT: See attached sheet. The HEX-BUS is a 4-bit wide parallel I/O bus. The CC-40 expects data to be returned over the HEX-BUS to the CC-40 from the peripheral in response to all built in commands such as OPEN, CLOSE, SAVE, LOAD, etc. This requires that the peripheral be an intellegent I/O device, designed to respond with the proper return data when accessed. The HEX-BUS can be accessed directly, bypassing the CC-40's built in I/O commands. Reading or writing to the proper memory mapped I/O address will output data to or input data from the HEX-BUS. Additionally the BAV(NOT) and HSK(NOT) lines are available as memory mapped I/O addresses. The BAV(NOT) line can be sensed or controlled by reading or writing data to or from the proper address. The HSK(NOT) line can be controlled (output HI or LOW), but can not be sensed (no input capability). HEX-BUS MEMORY MAPPED I/O ADDRESSES: Address: Decimal Hex Description 274 0112 HEX-BUS DATA D0-D3 (4 BITS OF DATA) D4-D7 OF THIS BYTE NOT USED ___ 275 0113 BAV LINE D0 0=LOW 1=HI FOR INPUT OR OUTPUT D1-D7 OF THIS BYTE READ LOW 0000000 AND ARE NOT USED ___ 276 0114 HSK LINE D1 0=LOW 1=HI FOR OUTPUT (NO INPUT) D0, D2-D7 ARE NOT USED The RESET(NOT) and INT3(NOT) signals were identified with the logic analyzer, by observing the vector addresses generated when they were pulled low. I was not able to indenitfy 3 of the 40 cartridge port signals. The signals on pin 17 and pin 3 are both LOW and were never observed to change states during any tests. The singal on pin 39 has an infrequesnt pulse during accesses to the system ROM chip, address range D000 thru EFFF, particularly addresses D4F6 and D5FE. Since the system ROM is 32K, mapped into an 8K slot in the system memory map, it is possible that this signal relates to bank switching of various ROM address blocks into the 8K slot. I have not been able to verify the exact funtion of this pin at this time. CONCLUSION: Of the 40 pins of the cartridge port, the 37 pins that were identified provide access to all major data, address, and control lines neseccary to interface external memory or I/O circuits. Since the D0/A0 thru D7/A7 multiplexed data/address lines are available demultiplexed to distinct A0 thru A7 signals, an external demultiplexing circuit is not needed to access the A0 thru A7 address signals. Additionally, since the CROM(NOT) and CRAM(NOT) signals are available, an external address decoding circuit is not needed to interface external memory in the 5000-8FFF or 9000-CFFF ranges. ======================================================================== CC-40 HEX BUS PINOUT: __ ______| |______ | | | 1 2 3 4 | | | | 5 6 7 8 | |----------------| PIN NAME SIGNAL FUNCTION 1 GND GROUND SIGNAL RETURN ___ 2 BAV BUS AVAILABLE LOGIC 0 (LOW) BUS IN USE BY CC-40 FOR OUTPUT LOGIC 1 (HI) BUS AVAILABLE FOR INPUT 3 D1 DATA BIT 1 4 D0 DATA BIT 0 5 D2 DATA BIT 3 6 D3 DATA BIT 2 7 NOT USED NO CONNECTION ___ 8 HSK HANDSHAKE LOGIC 0 (LOW) VALID DATA IS PRESENT ON D0-D3 =========================================================================== CC-40 HEX BUS PINOUT: __ ______| |______ | | | 1 2 3 4 | | | | 5 6 7 8 | |----------------| 1 GND WHITE 5 D3 ___ 2 BAV BLACK 6 D2 3 D1 RED 7 SPARE (NOT CONNECTED) ___ 4 D0 GREEN 8 HSK ============================================================================ CC-40 PROJECT REPORT # 6 4 BIT PARALLEL TO 8 BIT PARALLEL INTERFACE # 1 First design for a circuit to interface the CC-40 computer to an 8 bit parallel input printer. OPERATION: The HSK(NOT), and BAV(NOT) normally HI. The 74LS244 buffer boosts the CC-40 CMOS outputs to TTL levels. 1. The BAV(NOT) line HI (normal state) enables the ENABLE input of the 74LS75 latch, enabling the latch for input of data. 2. The lower 4 bits of a data byte are sent to the 74LS75 latch on Di0-Di3. 3. The BAV(NOT) line is applied LOW to latch the 4 bits in the latch. 4. The upper 4 bits of a data byte are sent on Di0-Di3 and appear on Do4-Do7. 5. The HSK(NOT) line is applied LOW to the printer STROBE(NOT) line, strobing the data word from Do0-D07 into the printer. 6. The HSK(NOT) line is applied HI (normal state). 7. The BAV(NOT) line is applied HI (normal state). Sequence repeated for each 8 bit data word sent to the printer. SIGNAL TIMING: ___ ____ _____ BAV |_________________| ___ ______________ __________ HSK |__| Di ------------ SCHEMATIC: ___ _____ ______ BAV ___| |________________________|E | | | | | Di0 ___| B |________________________| L |_____ Do0 | U | \ | A | Di1 ___| F |___________________|____| T |_____ Do1 P | F | \ | | C | Di2 ___| E |______________|____|____| H |_____ Do2 R | R | \ | | | | Di3 ___| |__________|___|____|____| 75 |_____ Do3 I | | \ | | | |______| ___ | | | | | \________________ Do4 N HSK ___| 244 |__ | | | |_____| \ | | \_____________________ Do5 T | | | | | \_________________________ Do6 E | | | \_____________________________ Do7 R | ______ \_________________________________ STROBE SUBROUTINE TO RUN INTERFACE # 1. PASS SINGLE ASCII CHARACTER TO SEND IN VARIABLE A AND B. (example: ASCII CHARACTER 'E' is HEX 45. Send A=4 and B=5.) 10 SUB PRINTCHAR (A,B) !PASS CHARACTER TO SEND IN A AND B 20 FOR C = 1 TO 2 !DO 2 TIMES, ONCE FOR A AND ONCE FOR B 30 CALL POKE(274,A) !SEND CHARACTER (ONLY LOWER 4 BITS ARE OUTPUT) ___ 40 CALL POKE(275,0) !SET BAV LOW - LACTH THE 4 BITS 50 A=INT(A/16) !SHIFT UPPER 4 BITS OF CHARACTER TO LOWER 4 BITS 60 CALL POKE(274,A) !SEND CHARACTER (ONLY LOWER 4 BITS ARE OUTPUT) ___ 70 CALL POKE(276,0) !SET HSK LOW - STROBE 8 BITS TO PRINTER ___ ___ 80 CALL POKE(276,2) !SET HSK HI - RETURN HSK TO NORMAL STATE ___ ___ 90 CALL POKE(275,1) !SET BAV HI - RETURN BAV TO NORMAL STATE 100 A=B !PUT SECOND PART IN A TO SEND IT 110 NEXT C !GO DO IT AGAIN FOR SECOND PART 80 RETURN !RETURN TO CALLING PROGRAM CONCLUSION: This interface functioned satisfactory. There is no provision for sencing a BUSY signal from the printer. This was not a problem since the subroutine written in basic outputs the data to the printer at a speed that is slower than the printer's maximun input speed. If the subroutine is rewritten in assembly language, the interface will have to be upgraded to sense the BUSY signal. ============================================================================ CC-40 PROJECT REPORT # 7 4 BIT PARALLEL TO 8 BIT PARALLEL INTERFACE # 2 Second design for a circuit to interface the CC-40 computer to an 8 bit parallel input printer. This design adds the ability to sense the printer BUSY signal. OPERATION: The HSK(NOT), and BAV(NOT) normally HI. The 74LS244 buffer boosts the CC-40 CMOS outputs to TTL levels. 1. (T1) The BAV(NOT) line HI (normal state) enables the ENABLE input of the 74LS75 latch, enabling the latch for input of data. 2. (T1) The lower 4 bits of a data byte are sent to the 74LS75 latch on Di0-Di3. 3. (T2) The BAV(NOT) line is applied LOW to latch the 4 bits in the latch. 4. (T3) The upper 4 bits of a data byte are sent on Di0-Di3 and appear on Do4-Do7. 5. (T4) The HSK(NOT) line is applied LOW to the trigger input of the 74LS123 monostable multivibrator, causing it to produce a 1.8 ms negative going pulse on the printer STROBE(NOT) line, strobing the data word from Do0-D07 into the printer. 6. (T4) STROBE(NOT) now HI after the pulse is gated by a 74LS00 with HSK(NOT) LOW to produce BEN(NOT) LOW which enables the 74LS125 3 state buffer (previously in tristated mode). This connects the printer BUSY line to the BAV(NOT) line. 7. (T5) The BAV(NOT) line is then sensed for a HI (BUSY from the printer). If BAV(NOT is HI (T5A) the software continues to sence BAV(NOT) (T5) until it goes LOW (T5B). IF BAV(NOT) is LOW (T5B) the printer is ready for the next data transmission. 9. (T6) HSK(NOT) is applied HI (normal state), tristating the 74LS125 buffer and readying the 74LS123 multivibrator. 7. (T7) The BAV(NOT) line is applied HI (normal state). Sequence repeated for each 8 bit data word sent to the printer. TIMING: | T1 | T2 | T3 | T4 | T5 | T5A| T5B| T6 | T7 | ___ _____ ____ ____ BAV |_______________--------------------------- ______ _______________ ____________________________ STROBE |_| ____ BUSY _____________________- -- -- ---- ADDRESS -- -- -- ---- _ __ __ ______________ __ __ ________________ R/W |________| |________| ___ _____ ______ ____ ___ _____ ______ _______ CLKOUT __| |_| |_| __| |_| |_| ______ ____ __ ____ ____ ____ __ ____ _______ ENABLE |___| |__ |___| |___| |__ |___| CLKOUT and ENABLE signals are not used directly by this memory expansion circuit, but are CC-40 system signals shown for their relationship to the CRAM, CROM, and R/W signals. CC-40 SYSTEM SIGNALS: _ R/W logic 1 for read cycle, logic 0 for write cycle. ______ ENABLE logic 0 for external (off processor) memory cycle. CLOCKOUT output clock for memory control timing. ____ CROM logic 0 for memory address 9000-CFFF access ____ CRAM logic 0 for memory address 5000-8FFF access SCHEMATIC CC-40 32 K RAM EXPANSION: ________________ 14 | | ADDRESS ____/_______________________________________| A0-A13 | | | 8 | | DATA ____/_______________________________________| D0-D87 | | | 3V | | | | - | | + D1 28 | | GND -----||||----->|----+------------------------| VCC | | | | | | | | | D2 | 20 | ___ | VCC -------------->|----+----/\/\/\/\---+--------| CS1 | +5V 2K | | | (not switched) | | | 74LS00 | | | ____ 13 ___ 9 ___ | | | CRAM -----| 4 \ 11 _| 3 \ 8 | | | ____ | )o--|_| )o-------------/ | | CROM -+---|___/ |___/ | | | 12 10 | 62256-LP15 | | | | o o | STATIC RAM | / SWITCH | | o | | |_____________________ | | | | | | | | VCC ____________/\/\/\/\___| | | +5V | 4.7K | | | (switched) | | | | | | 5 ___ | | 1 _|_14 +----| 2 \ 6 27 | __ | _ _| 1 \ 3 74LS00 | )o----------| WE | R/W -----|_| )o--------------|___/ | | |___/ 4 | | 2 |7 14 | | | ___________________| GND | | | | | | | | | | | 22 | __ | GND _________|_______________|___________________| OE | | | |________________| ============================================================================= HN61256CP09 32K X 8-BIT ROM PINNOUT: 1 A15 VCC 28 2 A13 A14 27 3 A7 CS 26 4 A6 A8 25 5 A5 A9 24 6 A4 A12 23 __ 7 A3 CE 22 8 A2 A10 21 9 A1 A11 20 10 A0 D7 19 11 D0 D6 18 12 D1 D5 17 13 D2 D4 16 14 GND D3 15 ============================================================================= Interupt Vectors Used by the CC-40 RESET FFFE F85D INT1 FFFC FDA8 INT2 FFFA 080A INT3 FFF8 080D F85D 22 MOV AA,A F85E AA F85F 8B STA 0100 F860 01 F861 00 F862 8C BR D003 F863 D0 F864 03 0100 7 6 5 4 3 2 1 0 AA 1 0 1 0 1 0 1 0 MODE MODE INT3 INT3 INT2 INT2 INT1 INT1 1 0 CLR DIS CLR DIS CLR DIS =========================================================================== CC-40 BUS SIGNALS: SIGNAL FROM PIN DESCRIPTION ALATCH 70C20 38 logic 1 while port C (multiplexed address/data bus) asserts a memory address. R/W 70C20 1 logic 1 for read cycle, logic 0 for write cycle. ______ ENABLE 70C20 39 logic 0 for external (off processor) memory cycle. CLOCKOUT 70C20 2 output clock for memory control timing. ____ RAM Bank RAM0 GA 0800-0FFF ____ RAM Bank RAM1 GA 45 1000-2FFF ____ RAM Bank RAM2 GA 3000-4FFF A0 GA 54 Addreess demultiplexed from D0/A0 signal A1 GA 53 Addreess demultiplexed from D1/A1 signal A2 GA 52 Addreess demultiplexed from D2/A2 signal A3 GA 51 Addreess demultiplexed from D3/A3 signal A4 GA 50 Addreess demultiplexed from D4/A4 signal A5 GA 49 Addreess demultiplexed from D5/A5 signal A6 GA 48 Addreess demultiplexed from D6/A6 signal A7 GA 47 Addreess demultiplexed from D7/A7 signal ____ ROM Bank CROM CP 21 9000-CFFF ____ RAM Bank CRAM CP 35 5000-8FFF GA = GATE ARRAY CP = CARTRIDGE PORT ====================================================================== CC-40 BLOCK DIAGRAM ____________ A PORT 0-7 ___________________ __________ | 70C20 |________/____| GATE ARRAY #3 |_______| KEYBOARD | | _______ | < | (KEYBOARD DECODE) | < |__________| | | CPU | | (1) | (CONTROL LOGIC) | | |_______| | / |___________________| | _______ | B PORT 0-3 | | | | |________/_____________| | | P A C | | > | _________ | | E N O | | ________|__________ | LIQUID | | | R D N | | | GATE ARRAY #2 |________| CRYSTAL | | | I T | | (3) | (DISPLAY CONTROL) | > | DISPLAY | | | P M R | | / |___________________| |_________| | | H E O | | C PORT | _________________ | | E M L | | ADDRESS/DATA | ___________| SYSTEM CONTROL | | | R O L | | AD0-AD7 | | > |_________________| | | A R E | |_________/____________| | _________| SYSTEM SENSE | | | L Y R | | <> | | | < |_________________| | |_______| | (4) | | | | _______ | / _______|__|_|__ I/O Z0112 ___________ | | 128 | | D PORT | GATE ARRAY #1 | DATA D0-D3 | HEX-BUS | | | BYTES | | ADDRESS | |_______/______| I/O | | | RAM | | A8-A15 | (ADDRESS) | <> | PORT | | | Z0000 | |___/__________| (LATCH) | ___ | | | | Z007F | | > | | BAV Z0113 | 8 PIN | | |_______| | (2) | (ADDRESS) |____/_________| | | _______ | / | (BLOCK) | <> | (DATA) | | | 2K | | B PORT 4-7 | (DECODE) | ___ | (CONTROL) | | | BYTES | |________/_____| | HSK Z0114 | | | | ROM | | > (ALATCH) | (I/O CONTROL) |____/_________| | | | ZF800 | | (R/W) | | > |___________| | | ZFFFF | | (ENABLE) | (ROM BANK) | (5) | |_______| | (CLKOUT) | (CONTROL) | / |____________| | | ADDRESS ___________ ROM ZD000 | (SYSTEM) | A0-A7 | CARTRIDGE | _________ CTRL ZEFFF | (SENSE AND) |____/________| PORT | | SYSTEM |__/_________| (CONTROL) | > | | | ROM 32K | < |_______________| ADDRESS | 40 PIN | |_________| | | | | | A8-A15 | | | | | | | | | | (4) | (ADDRESS) | (5) (4) (3) ____ Z0800 | | | | | \____| (DATA) | _________ RAM0 Z0FFF | | | | | > | (CONTROL) | | SYSTEM |___/__________| | | | | ____ Z9000 | | | RAM 2K | < | | | | CROM ZCFFF | | |_________| | | | |__/____________| | | | | | | | > | | (5) (4) (3) | | | ____ Z5000 | | ____ Z1000 | | | CRAM Z8FFF | | _________ RAM1 Z2FFF | | |__________________| | | SYSTEM |___/_____________| | > | | | RAM 8K | < | | | |_________| | ADDRESS/DATA | | | | | | AD0-AD7 (3) | | (5) (4) (3) | \____| | ____ Z3000 | <> | | _________ RAM2 Z4FFF | _ | | | SYSTEM |___/________________| (ALATCH) (R/W) | | | RAM 8K | < (ENABLE) (CLKOUT) | | |_________| (2) | | | | | \_____| | (5) (4) (3) > |___________| ============================================================================= OpCodes of the TMS 70C20 Microproccessor. 00 NOP 01 IDLE 05 EINT 06 DINT 07 SETC 08 POPST 09 STSP 0A RETS 0B RETI 0D LDSP 0E PUSHST 12 MOV Rn,A 13 AND Rn,A 14 OR Rn,A 15 XOR Rn,A 16 BTJO Rn,A 17 BTJZ Rn,A 18 ADD Rn,A 19 ADC Rn,A 1A SUB Rn,A 1B SBB Rn,A 1C MPY Rn,A 1D CMP Rn,A 1E DAC Rn,A 1F DSB Rn,A 22 MOV %n,A 23 AND %n,A 24 OR %n,A 25 XOR %n,A 26 BTJO %n,A 27 BTJZ %n,A 28 ADD %n,A 29 ADC %n,A 2A SUB %n,A 2B SBB %n,A 2C MPY %n,A 2D CMP %n,A 2E DAC %n,A 2F DSB %n,A 32 MOV Rn,B 33 AND Rn,B 34 OR Rn,B 35 XOR Rn,B 36 BTJO Rn,B 37 BTJZ Rn,B 38 ADD Rn,B 39 ADC Rn,B 3A SUB Rn,B 3B SBB Rn,B 3C MPY Rn,B 3D CMP Rn,B 3E DAC Rn,B 3F DSB Rn,B 42 MOV Rn,Rn 43 AND Rn,Rn 44 OR Rn,Rn 45 XOR Rn,Rn 46 BTJO Rn,Rn 47 BTJZ Rn,Rn 48 ADD Rn,Rn 49 ADC Rn,Rn 4A SUB Rn,Rn 4B SBB Rn,Rn 4C MPY Rn,Rn 4D CMP Rn,Rn 4E DAC Rn,Rn 4F DSB Rn,Rn 52 MOV %n,B 53 AND %n,B 54 OR %n,B 55 XOR %n,B 56 BTJO %n,B 57 BTJZ %n,B 58 ADD %n,B 59 ADC %n,B 5A SUB %n,B 5B SBB %n,B 5C MPY %n,B 5D CMP %n,B 5E DAC %n,B 5F DSB %n,B 62 MOV B,A 63 AND B,A 64 OR B,A 65 XOR B,A 66 BTJO B,A 67 BTJZ B,A 68 ADD B,A 69 ADC B,A 6A SUB B,A 6B SBB B,A 6C MPY B,A 6D CMP B,A 6E DAC B,A 6F DSB B,A 72 MOV %n,Rn 73 AND %n,Rn 74 OR %n,Rn 75 XOR %n,Rn 76 BTJO %n,Rn 77 BTJZ %n,Rn 78 ADD %n,Rn 79 ADC %n,Rn 7A SUB %n,Rn 7B SBB %n,Rn 7C MPY %n,Rn 7D CMP %n,Rn 7E DAC %n,Rn 7F DSB %n,Rn 80 MOVP Pn,A 82 MOVP A,Pn 83 ANDP A,Pn 84 ORP A,Pn 85 XORP A, Pn 86 BTJOP A,Pn 87 BTJZP A,Pn 88 MOVD %n,Rn 8A LDA @n 8B STA @n 8C BR @n 8D CMPA @n 8E CALL @n 91 MOVP Pn,B 92 MOVP B,Pn 93 ANDP B,Pn 94 ORP B,Pn 95 XORP B,Pn 96 BTJOP B,Pn 97 BTJZP B,Pn 98 MOVD Rn,Rn 9A LDA *Rn 9B STA *Rn 9C BR *Rn 9D CMPA *Rn 9E CALL *Rn A2 MOVP %n,Pn A3 ANDP %n,Pn A4 ORP %n,Pn A5 XORP %n,Pn A6 BTJOP %n,Pn A7 BTJZP %n,Pn A8 MOVD %n(B),Rn AA LDA @n(B) AB STA @n(B) AC BR @n(B) AD CMPA @n(B) AE CALL @n(B) B0 TSTA/CLRC B2 DEC A B3 INC A B4 INV A B5 CLR A B6 XCHB A B7 SWAP A B8 PUSH A B9 POP A BA DJNZ A BB DECD A BC RR A BD RRC A BE RL A BF RLC A C0 MOV A,B C1 TSTB C2 DEC B C3 INC B C4 INV B C5 CLR B C6 XCHB B C7 SWAP B C8 PUSH B C9 POP B CA DJNZ B CB DECD B CC RRB CD RRC B CE RL B CF RLC B D0 MOV A,Rn D1 MOV B,Rn D2 DEC Rn D3 INC Rn D4 INV Rn D5 CLR Rn D6 XCHB Rn D7 SWAP Rn D8 PUSH Rn D9 POP Rn DA DJNZ Rn DB DECD Rn DC RR Rn DD RRC Rn DE RL Rn DF RLC Rn E0 JMP E1 JN/JLT E2 JZ/JEQ E3 JC/JHS E4 JP/JGT E5 JPZ/JGE E6 JNZ/JNE E7 JNC/JL E8 TRAP 23 E9 TRAP 22 EA TRAP 21 EB TRAP 20 EC TRAP 19 ED TRAP 18 EE TRAP 17 F0 TRAP 15 F1 TRAP 14 F2 TRAP 13 F3 TRAP 12 F4 TRAP 11 F5 TRAP 10 F6 TRAP 9 F7 TRAP 8 F8 TRAP 7 F9 TRAP 6 FA TRAP 5 FB TRAP 4 FC TRAP 3 FD TRAP 2 FE TRAP 1 FF TRAP 0 FF TRAP 16 =============================================================================== C4ICS002 The following manual was by Charles Good from a copy he had received. It contains much good informtion for those wishing to experiment with the HexBux. ============================================================================== This is the USER GUIDE to Texas Instruments' never released HexBus interface, model number PHP1300, for the 99/4A. This device is pictured on the bottom of many boxes that contained beige plastic 99/4A consoles and was designed to allow the 99/4A to use any of TI's HexBus peripherals. The HexBus interface is described and illustrated in articles contained in the February, March, and August 1983 issues of 99er magazine. This text is being typed in December 1990 by Charles Good to give the TI community access to this interesting historical curiosity. The Hexbus Interface user guide is dated 1983. The PHP1300 is listed in TI's last complete official price list, published in June 1983, for $59.95. Table of contents SECTION 1.0: INTRODUCTION...........................1 1.1: Features...................................1 1.1.1: Power Jack...............................1 1.1.2: On/Off Switch............................1 1.1.3: Hexbus Connection........................2 SECTION 2.0: SET UP.................................3 SECTION 3.0: USING THE HEXBUS INTERFACE.............5 SECTION 4.0: COMMON PERIPHERALS.....................6 4.1: Wafertape Digital Tape Drive...................6 4.2: Printer/Plotter................................6 4.3: The RS232 interface............................6 4.4: The Centronix Type Parallel Output.............6 SECTION 5.0: COMMANDS AND PROGRAMMING STATEMENTS....7 5.1: The OLD command................................8 5.2: The SAVE command...............................9 5.3: The OPEN statement............................10 5.4: The CLOSE statement...........................11 5.5: The DELETE statement..........................12 5.6: The RESTORE statement.........................13 5.7: The INPUT statement...........................14 5.8: The PRINT statement...........................15 5.9: The LIST statement............................16 5.10: The EOF function.............................17 5.11: The VERIFY command...........................18 5.12: The FORMAT MEDIA command.....................19 5.13: The CATALOG command..........................20 5.14: The RESET BUS command........................21 APPENDIX A- Transferring data between wafertape and diskette..22 APPENDIX B- Transferring raw data over the Hexbus.............23 APPENDIX C- Using the TI-99/4A as a slave device..............26 APPENDIX D- Error messages and codes..........................27 SERVICE INFORMATION...........................................29 In case of difficulty.........................................29 THREE MONTH LIMITED WARRANTY..................................30 HOME COMPUTER SOFTWARE MEDIA..................................30 Warranty coverage.............................................30 Warranty duration.............................................30 Warranty disclaimers..........................................31 Legal remedies................................................31 Performance by TI Under Warranty..............................31 Texas Instruments Consumer Service facilities.................31 Inportant notice of disclaimer regarding the programs.........31 SECTION 1.0: INTRODUCTION The Hexbus interface is an efficient, versatile device which enables you to use the low cost hexbus peripherals (sold separately) with the powerful TI99/4A Home Computer. The Hexbus Interface allows you much more freedom in tailoring your computer system to your own needs. You can also use the Hexbus Interface to transfer data between a Compact Computer 40 Wafertape and a Disk memory System connected to a TI-99/4A. Information stored by a Compact Computer 40 can then be used by a large non-protable computer system. 1.1: FEATURES The TI Hexbus Interface is a lightweight, compact unit designed to rest beside the Home Computer console. The male 44 pin connector on the left side of the Interface plugs directly into the slot on the right side of a Home Computer console. If your system includes a Speech synthesizer or a stand alone Memory Expansion Peripheral, these units go between the console and the hexbus interface. The 44 pin slot on the right side of the hexbus Interface allows you to attach the flex cable of a Peripheral Expansion System if you desire. 1.1.1: POWER JACK On the back of the Hexbus Interface is a power plug. The accompanying transformer allows you to use household current to power your Hexbus Interface. The transformer which was sold with the hexbus Interface is the ONLY transformer which should be used with the unit. Although most transformers seem identical and have similar plugs, certain internal differences could cause a transformer from another device to cause damage to the hexbus Interface or to the transformer itself. 1.1.2: ONN/OFF SWITCH The onn/off switch is a sliding switch located on the back of the unit, between the power jack and the 8-pin Hexbus connection. To turn the unit on slide the switch to the left, towards the power jack. To turn the unit off slide thw switch to the right, towards the hexbus connection page 1 1.1.3: HEXBUS CONNECTION Also on the back of the unit is the hexbus connection. This 8 pin standard connector allows you to attach any of several peripheral devices or any Hexbus compatible computer to your TI-99/4A Home Computer, using the cables included with the various peripherals. page 2 SECTION 2.0: SET UP Setting up the hexbus interface is a simple process, but you should be aware of several precautions. Please read this entire section before you set up your hexbus Interface. When you unpack the Hexbus Interface, you should find the Hexbus ZInterface itself, a power transformer, and an eight conductor cable, as well as this manual and other brochures. This is all you need to set up your hexbus Interface with your TI-99/4A. (Save the packing material for storing or transporting the interface.) 1. If other peripherals are already connected to the TI Home computer, wait for their activity to stop, then turn them off. 2. Turn off the computer. CAUTION: The electronic components of the Hexbus Interface can be damaged by discharges of static electricity. To avoid damage, do not touch the connector contacts or expose them to static electricity. 3. Be certain that the Hexbus Interface is turned off (the power switch on the back is pushed toward the rectangular connector). Plug the round power plug into the power jack. 4. Plug one end of the flat gray cable into the Hexbus connector. Note that the connector is keyed and can only be plugged in one way: with the raised tab on the top. Be careful to plug the connector on both row of pins, not just the top row. 5. Plug the Hexbus Interface into the slot on the right side of the TI/99/4A console. If your system includes a Speech synthesizer or a memory Expansion Peripheral, these should be between the console and the hexbus Interface. If you also have a Peripheral Expansion system, the black flex cable plugs into the slot on the right side of the hexbus Interface. 6. Plug the power transformer into a standard 110 volt household plug. 7. If the hexbus peripherals which you will be using with your TI-99/4A are not already set up, unpack each peripheral (sold separately) and attach them as described in the owner's manual for that peripheral. Plug the other end of the Hexbus cable from the hexcbus interface into a free connector of a Hexbus peripheral. Peripherals are normally arranged in a stack next to the computer. You may link Hexbus devices to the computer in any order. page 3 CAUTION: To prevent damage to your system, make a practice of disconnecting all devices before moving any part of the Hexbus system. Even though the peripherals are light, the cables and connectors may undergo needless strain if not detached. For transport over long distances, repack the system in its original packing materials. 8. Once all the hexbus peripherals are connected both to power and to the hexbus Interface or to a Hexbus compatible peripheral, ytou are ready to test your system. Turn the system on beginning with the peripherals furthest from the console. The last thing you should turn on is the console itself. 9. The monitor or television should display the master title screen. Some peripherals have small indicator lights on the front. While watching the indicator lights on the Hexbus peripherals, press QUIT. The light on each Hexbus peripheral should flash briefly and go off. This shows that the hexbus Interface is properly connected to each of the peripheral devices. If each light does not flash, turn off the console and peripherals. Check the cable connections. then begin again with step 8. If the lights still do not flash, see the "in Case of Difficulty" section. 10. At this time, you may perform any of the tests suggested in the individual peripheral manuals which are allowable BASIC statements. (Note that the CALL IO statement does not work on the TI-994A. any tests using this statement will not work. page 4 SECTION 3.0: USING THE HEXBUS INTERFACE With the hexbus interface attached to your TI Home Computer, you can use any of the low cost, lightweight Hexbus peripherals. The Hexbus interface recognizes command in BASIC, EXTENDED BASIC Assembly Language, and Graphics Programming Language. Like any other peripheral device used by the TI-99/4A, you must request a hexbus device to perform a certain task. before the device can complete a request, in most cases the computer must first set up a section of memory to communicate the device. To do this, you must "open" the device. The general syntax of an OPEN statement for a Hexbus divice in TI-99/4A BASIC is: OPEN #file-number: "HEXBUS.device-number[.option-string]"[,access mode] The file-number, the word HEXBUS, and the device-number must be included in the OPEN statement. Depending on the peripheral and its settings, you may want to include additional information to describe the task you want to perform. all of the optional information is described in detail in the user's manual of the particular peripheral device. A device number is used to identify a particular device. The allowable device numbers are: DEVICE NUMBER | DEVICE --------------|-------------------------------------- 0 | All devices 1-8 | HX2000 Wafertape Digital Tape Drive 10-11 | HX1000 Printer/Plotter 16-17 | HX1010 Printer 80 20-23 | HX3000 RS232C Interface 40 | HX1100 Video Interface 50-53 | Centronix Type Parallel Output 60-67 | Calculator or Home Computer in Slave Mode 70 | HX3100 Hexbus modem page 5 SECTION 4.0: COMMON PERIPHERALS 4.1: Wafertape Ditital Taoe Drive The Texas Instruments Wafertape drive is a versatile, efficient, and compact information storage device. The Wafertape drive enables you to store, retrieve, and update programs and data quickly and accurately with simple commands from the computer console. Information is stored on a continuous tape housed in a slim cartridge called a wafer 4.2: Printer/Plotter The printer/plotter is a Hexbus compatible printing device which uses four colored pens to print both text and graphics. This printer enables you to create attractive and precise graphics in up to four different colors. It does not require the use of an RS232 Interface. 4.3: The RS232 Interface The RS232 Interface peripheral is a communications adapter that broadens the range of devices which you can attach to your TI-99/4A using the TI Hexbus Interface. The RS232 Interface offers a serial port to attach modems, plotters, and other devices which follow the EIA RS232C serial interface specification. You can also use any cartridge, such as the Terminal Emulator II, which requires the RS232 interface as long as you do not have another RS232 Interface attached to your TI-99/4A. 4.4: The Centronix Type Parallel Output The Centronix Type Parallel output is an optional port which can, at a slight additional charge, be added to the RS232 Interface. This optional parallel port enables you to use one of the many popular computer printers built for parallel interfacing. page 6 SECTION 5.0: COMMANDS AND PROGRAMMING STATEMENTS The commands which you can use with TI BASIC and the hexbus peripherals include the OLD, SAVE, OPEN, CLOSE, DELETE, RESTORE, INPUT, PRINT, LIST, and EOF commands. Three commands not found in standard TI BASIC are used with the Wafertape drive and require a special syntax - the VERIFY, FORMAT MEDIA, and CATALOG commands. TI Extended Basic, available as a plug-in cartridge for the TI-99/4A, also allows you to use the LINPUT COMMAND. The RESET BUS command enables you to reset the status of all Hexbus devices at once. Several special functions of the hexbus Interface, the ability to transfer raw data and the ability to put the Home Computer under the control of another Hexbus compatible computer, are discussed in the appendices. Not all commands are usable by all peripherals (you would not, for example, get an INPUT from a Printer/Plotter). Some peripherals, such as the Wafertape drive, have special commands. The allowable commands used by each peripheral are explained in detail in the user's manual which accompanies each device. The following sections describe the commands available in TI BASIC page 7 5.1: The OLD command OLD HEXBUS.device code.filename The OLD command allows you to recall and use a program previously stored on a mass storage device such as the Wafertape device. Example: OLD HEXBUS.1.PROGRAM1 This statement recalls the program stored on the Wafertape device under the name PROGRAM1. This program can now be run. page 8 5.2 The SAVE command SAVE HEXBUS.DEVICE CODE.FILENAME The SAVE command allows you to store a program on a mass storage device such as as the Wafertape drive. Before you save any information on a mass storage device, though, the device must be prepared to accept the information - a Wafertape must be FORMATTED. Example: SAVE HEXBUS.1.PROGRAM1 This statement saves the current program on the Wafertape device under the name PROGRAM1. page 9 5.3 The OPEN statement OPEN #file-number:"HEXBUS.device dode[.option string]"[,file attributes] Example: 100 OPEN #1: "HEXBUS.1.MYDATA",SEQUENTIAL, VARIABLE 255 This opens the Wafertape file named MYDATA as file 1 under the device code of 1. (The device code of a Wafertape drive is determined by a switch set on the back of the drive, as explained in the Wafertape user's manual.) This file was previously created and stored. The file is opened by default in DISPLAY format and UPDATE mode; you can read from this file, and if it is the last file on the tape, you can also write to it. VARIABLE 255 sets the record length to 255 characters, the maximum allowable record on the TI-99/4A. page 10 5.4: The CLOSE statement CLOSE #file-number[,DELETE] Example: 200 CLOSE #1 210 CLOSE #2,DELETE This closes the file previously opened as number 1. The file opened as #2 is closed and deleted - you can no longer use the information stored in that file. Unless all files which were opened are also closed, the program or data may be lost. DELETE may also be used as a separate command to delete a file previously stored on a mass storage device. page 11 5.5: The DELETE statement DELETE "HEXBUS.device code.file name" Example: 140 DELETE "HEXBUS.1.MYFILE" This statement scratches the file called MYFILE from a Wafertape. If the file is open, the statement will both delete and close the file. If the file is not opened, the statement simply deletes the file. You can also delete an opened file by adding the word DELETE to a CLOSE statement. page 12 5.6: The RESTORE statement RESTORE #file-number Example: 190 RESTORE #1 This command positions a file opened as #1 to the first record. This allows you to go back to the beginning of a file without closing the file and opening it again. page 13 5.7: The INPUT statement INPUT #file-number:variable list Example: 120 INPUT #1:A,B,C This statement reads three numeric values from the file previously opened as file number 1, and stores the values in the variables A, B, and C. In this way, information stored by a TI-99/2 computer may be used by a TI-99/4A Home computer page 14 5.8: The PRINT statement PRINT #file-number:print list Example: 140 PRINT #2: "Current Balance",CURRBAL This statement prints the text Current Balance and the value contained in the variable CURRBAL to a file opened as #2. When used without a file number, the PRINT statement places data in the computer display. page 15 5.9: The LIST statement LIST "HEXBUS.device code[.switch-options]"[,line-list] Example: LIST "HEXBUS.20.BA=9600":"This line is to be printed",A this example assumes a printer set to a transmission (baud) rate of 9600 is attached to the RS232 Interface. This statement will cause the line of text enclosed in quotation marks to be printed along with the value of the variable A. page 16 5.10: The EOF function EOF file-number The EOF (end of file) function examines a previously opened data file and returns a value which indicates where you are in the file. A zero indicates that you are not to the end of the file; a negative one indicates that you have reached the end of the file. Example: 150 IF EOF(1) THEN 220 This statement will transfer program control to line 220 when the end of the file opened as #1 is reached; otherwise program control will continue to the next line. Example: 145 PRINT EOF(1) This statement causes the value 0 or -1 to be displayed, depending on whether you are at the end of the file opened as #1. page 17 5.11: The VERIFY command SAVE HEXBUS.VE.device code.filename The VERIFY command is uysed with a SAVE command to verify that the information on the mass storage device is the same as the information in the computer's memory. if there is a difference, an error is returned and you may perform the SAVE command again. The VERIFY statement should be used immediately after a SAVE command. Example: SAVE HEXBUS.1.PROGRAM1 SAVE HEXBUS.VE.1.PROGRAM1 The VERIFY statement, when paired with the SAVE command, will verify that the information transferred between the computer's memory and a mass storage device is accurate. page 18 5.12: The FORMAT MEDIA command OPEN #file-number:"HEXBUS.FORMAT MEDIA.device code" The FORMAT MEDIA command will prepare the mass storage media of the Wafertape device to accept information to be stored. The FORMAT MEDIA command must be used before any information is stored on the Wafertape device; if the command is issued later, any information stored on that tape is lost. The FORMAT MEDIA command is explained in greater detail in the Wafertape User's Manual. Example: OPEN #1:"HEXBUS.FORMAT MEDIA.1" CLOSE #1 page 19 5.13: The CATALOG command The CATALOG command produces the directory information from a Wafertape device. This information, however, is in a form which is difficult to display. The following program allows you to read the directory from a Wafertape device: 100 CALL CLEAR 110 PRINT "FILE_NAME MAX_L REC_# FLG" 120 PRINT 130 OPEN #1:"HEXBUS.CA.1",FIXED 18,INPUT 140 INPUT #1:A$ 150 PRINT TAB(1);SEG$(A$,2,12); 160 A1=ASC(SEG$(A$,14,1)) 170 A2=ASC(SEG$(A$,15,1)) 180 PRINT TAB(13);A2*256+A1; 190 A1=ASC(SEG$(A$,16,1)) 200 A2=ASC(SEG$(A$,17,1)) 210 PRINT TAB(19);A2*256+A1 220 A1=ASC(SEG$(A$,18,1)) 230 ACTIVE$="N" 240 LAST$="N" 250 INTERNAL$="D" 260 IF A1<128 THEN 290 270 A1=A1-128 280 ACTIVE$="A" 290 IF A1<16 THEN 320 300 A1=A1-64 310 LAST$="Y" 320 IF A1<16 THEN 340 330 INTERNAL$="I" 340 PRINT TAB(26);ACTIVE$;INTERNAL$ 350 IF LAST$="N" THEN 140 360 END page 20 5.14: The RESET BUS command At certain times, you might find it convenient to be able to reset all files by clearing the communication lines. This is a good practice if a program which opened a mass storage device such as the Wafertape device ended in an error. To reset the communications lines, type: OPEN #1:"HEXBUS.RB.0" CLOSE #1 The two commands will tell each of the peripherals attached to the Hexbus Interface to reset its status to closed. As the first of these statements is executed, the indicator light on each of the peripherals will flash on and then go off. page 21 APPENDIX A- TRANSFERRING DATA BETWEEN WAFERTAPE AND DISKETTE Data stored on a Wafertape device can be used directly by a Home Computer and stored on a diskette using the Disk Memory System (sold separately). Data stored on a diskette as a SEQUENTIAL file can also be transferred without change to the Wafertape media. The information contained in a RELATIVE file can be input from a diskette but only stored on the Wafertape device as a SEQUENTIAL file. The following program reads data from a Wafertape device, displays the data on the screen, and then stores it on a diskette. It then closes all files, reopens the diskette file, and reads and displays the data stored on the diskette file. 100 OPEN #1:"HEXBUS.1.DATA",INPUT 110 OPEN #2:"DSK1.NEWDATA" 120 IF EOF(1) THEN 170 130 INPUT #1:VALUE$ 140 PRINT #2:VALUE$ 150 DISPLAY VALUE$:::: 160 GOTO 120 170 CLOSE #1 180 CLOSE #2 190 OPEN #3:"DSK1.NEWDATA" 200 IF EOF(3) THEN 230 210 INPUT #3:VALUE$ 230 DISPLAY VALUE$:::: 230 GOTO 200 240 CLOSE #3 NOTE: If the data was stored by a TI-99/2 computer on a wafertape device, the computer assumes that the longest record could be 255 characters. The TI-99/4A Home Computer, however, assumes a maximum length of only 80 characters. Be sure, when you go from computer to computer, to explicitly declare the longer of the two lengths. page 22 APPENDIX B- TRANSFERRING RAW DATA OVER THE HEXBUS In certain special purpose applications the TI-99/4A might need to interface with a peripheral which does not support all of the commands usually found in a Hexbus peripheral. To do this, the TI-99/4A must be able to transfer information at the byte level - in the acutal 0s and 1s of the machine language. This allows a user to control the hexbus Interface and a peripheral directly, without letting the Hexbus Interface interpret the signals automatically. When transferring raw data over the Hexbus Interface, you must send a COMMAND MESSAGE and then interpret the response from the peripheral. A command message must contain all the following information in the order given: FIELD NAME NUMBER OF BYTES Device Number 1 Command Code 1 File Number 1 Record Number 2 Buffer length 2 Data length 2 Data 2 page 23 The assigned device numbers are listed on page 5. The command codes which are currently being used by the Hexbus Interface are as follows: COMMAND CODE COMMAND 0 Open 1 Close 2 Delete opened file 3 Read data 4 Write data 5 Restore file 6 Delete file 7 Return status 8 Service request enabled 9 Service request disabled 10 Service request poll 11 You are the master 12 Verify read/write operations 13 Format and certify media 14 Catalog directory 15 Set characteristics 254 Null operation 255 Bus reset page 24 To transfer raw data between a peripheral and the TI-99/4A, you must use a PRINT statement followed immediately by an INPUT statement. The PRINT statement sends a command message to the device; the INPUT statement reads information from the device. Each program should contain at least three pairs of statements - the first to open the device, then as many pairs as needed to use the device, then a pair to close the device. Before the first pair of statements, open the Hexbus Interface itself in the TRANSFER RAW data mode. Be sure to close the Hexbus after you close the device. The following partial program illustrates the use of the TRANSFER RAW data feature. Line 200 opens the Hexbus Interface itself. lines 260 through 290 build up a command message which is transmitted in line 300. Line 310 accepts information from the RS232. Lines 350 and 360 show pairs of lines which transmit commands to the RS232 and accept information in return. The values of the character strings C$ and D$ must already have been built up similar to the way the strings A$ and B$ were made. 200 OPEN #1:"HEXBUS.TR" . . . 260 Z$=CHR$(0) 270 ZZ$=Z$&Z$ 280 A$=CHR$(20)&ZZ$&CHR$(4)&Z$&CHR$(3)&Z$ 290 A$+A$&ZZ$&CHR$(192) 300 PRINT #1:A$ :: REM OEPN RS232 310 INPUT #1:B$ . . . 350 PRINT #1:C$ :: REM WRITE TO DEVICE 360 INPUT #1:D$ . . . 500 CLOSE #1 page 25 APPENDIX C- USING THE TI-99/4A AS A SLAVE DEVICE Normally the TI-99/4A acts as the controlling, or master, device. All peripheral devices attached to the computer are tyically slave devices, following the commands given by the TI-99/4A. If you have both a TI-99/4A abd a Compact Computer 40, you can cause the CC40 to control the TI-99/4A as a slave device. In this way, for example, you could display information on the screen attached to the TI-99/4A. In order to control the TI-99/4A as a slave device, you must first open the computer as a slave device. To get the computer to act upon instructions given it by a CC40, it must obtain instructions and then reply to them. It does this by a pair of INPUT and PRINT statements. You may take the TI-99/4A out of slave mode by closing the file where the computer was declared a slave device. The following partial program demonstrates how to use the TI-99/4A as a slave device: 100 OPEN #1:"HEXBUS.SL.61" 110 . . . 300 INPUT #1:A$ 305 REM PRINT EACH BYTE ON THE SCREEN 310 FOR I=1 TO LEN(A$) 320 PRINT ASC(SEG$(A$,1,I)) 330 NEXT I . . (analyze A$ using the command message discussed in Appendix B) (packing responding message in B$) . . 400 PRINT #1:B$ . . (more INPUT and PRINT pairs) . . 500 CLOSE #1 page 26 APPENDIX D- ERROR MESSAGES AND CODES Error Messages ----------------------- 99/4A| Error| Code | Error Type ------------------------ 0 |No error 1 |Write protected 2 |Bad open attribute 3 |Illegal operation 4 |Out of table/buffer space 5 |Attempt to read past EOF 6 |Hardware error 7 |File errors page 27 The Hexbus Interface, however, recognizes many more error conditions. The following Hexbus errors will display as the corresponding TI-99/4A error. 99/4A | Hexbus | Error Code| Error Code|Error Type -------------------------------------------------------------------------- 0 | 0 |No error 2 | 1 |Device/file characteristics 2 | 2 |Attribute error 7 | 3 |File not found 7 | 4 |File/device not open 7 | 5 |File/device already open 6 | 6 |Device error 5 | 7 |EOF error 7 | 8 |Data/file too long 1 | 9 |Write protect error | 10 |"It was not me", a reply from a peripheral | | device to a controlling device 4 | 11 |Directory full 4 | 12 |Buffer size error 3 | 13 |Command not supported 3 | 14 |File not opened for write 3 | 15 |File not opened for read 6 | 16 |Data error (checksum) 2 | 17 |Relative file not supported 2 | 18 |Sequential file not supported 2 | 19 |Append mode not supported 2 | 20 |Output mode not supported 2 | 21 |Input mode not supported 2 | 22 |Update mode not supported 2 | 23 |Error internal/display type 6 | 24 |Verify error 6 | 25 |Low battery in device 6 | 26 |Media not initialized 6 | 27 |Peripheral buss error 4 | 32 |Media full 3 | 254 |Illegal command in slave mode 6 | 255 |Bus time-out 7 | |All other errors page 28 SERVICE INFORMATION IN CASE OF DIFFICULTY If the Hexbus Interface soes not appear to be working properly, check the following: 1. Power: Be sure the power switch is on (pushed towards the power jack), and the power jack is plugged into the back of the device, and the transformer is plugged into a working electrical outlet. 2. Cables: Check that the proper cables are being used. Check for loose or broken leads and connectors. Be sure that the cables are plugged in securely. be sure the hexbus cables are pluggen in on both rows of pins and that the raised tab is on top. 3. Software: Be sure all commands and statements are used as described in this manual or in the Basic section of the User's Reference Guide. 4. Computer: Disconnect all peripherals and check to see that the computer works properly with no peripherals attached. then carefully reconnect each peripheral and check its operation. 5. If none of the above procedures corrects the difficulty, consult the section entitled "If you have questions or need assistance" or refer to the Service Information portion of the User's Reference Guide. page 29 The next (last) three pages of this user guide describe the 3 month limited warranty on the Hexbus Interface. =========================================================================== C4ICS003 USING CC-40 PERIPHERALS WITH THE TI-74 By Maurice Swinnen ______ A B____C D ____________| |____________ ____| |____ |o o o o o o o o o o| |o o o o| ------------------------------ |o o o o| 10 9 8 7 6 5 4 3 2 1 ------------ (Read view TI-74) E F G H In spite of reports to the contrary, it is possable to use all of the CC-40 peripherals with the TI-74. All you need is a special interconnecting cable. The connections have been kept a deep secret by certain interested parties. Experimentation revealed the following: The TI-74 has a 10-pin connector as show above. Diameter of the pins is 0.016" or 0.4mm. Distance between pins is 0.1" or 2.54mm. Does that ring a bell? Of course it does! This is the same distance and diameter used with ICs and its inline dip-sockets. The connector on the TI-74 uses only 8 of the 10 pins, pins 1 through 8. To make a good female connector for it, simply saw off half of a 16-pin dip-socket, preferrable one used for wire-wrap, with long, sturdy wire- wrap stems. They allow for neat soldering. If you then shrink enough heat- shrinkable tubing around each stem so as to fill up the space between stems, it is possible to skrink one, large-diameter piece of heat-shrinkable tubing around everything and obtain an almost perfect socket. If you prefer to have all ten pins used, cut one side of a 24-pin dip-socket and trim off two pins. That will give you a 10-pin socket. You could even glue a small hump on the top, to prevent reverse plug-in. (I tried reverse plug-in; it doesn't harm anything, but, of course, it doesnt hurt anything either.) Editor Two Note: If you are building a cable to run from a TI-74 peripheral to a CC-40 and you plug in the cable wrong you will send +6 volts to the CC-40 and get smoke ( I know I did this ). For the HEX-BUS connector you will have to sacrifice a dual-plug HEX-BUS cable. Take a long one, cut it in two, and share the other half with a friend. When you strip the wires, you will find, or course, 8 of them. All will be soldered to corresponding pins on your TI-74 connector, except one, the green one. Insulate it, and forget it. Wires are soldered as follows: TI-74 connector HEX-BUS connector Color 1 D Orange 2 N/C 3 C Red 4 E Brown 5 H Blue 6 G Black 7 B Yellow 8 A Grey 9 N/C 10 N/C I tried it with the following peripherals with great success: Printer 80, RS232 Interface, the Disk Drive and the Printer-Plotter. I tried to have one TI-74 talk to one CC-40, without success. The TI-74 is willing, but the CC-40 acts finicky and tells me that it memory may be lost. Well... ------------------------------------------------------------------------ C4ICS004 INTERFACE INFORMATION FOR THE TI-74 AND CC-40 By B. V. Tachkach of Wahroonga New South Wales, Australia The enlightening discussion of cabling to connect the TI-74 with the CC-40 peripherals in V12n3p13 was a little confusing. The numbering and lettering of the TI-74 and CC-40 hex bus ports was not consistent with the pin numbering used by TI in its various application notes and user manuals. In addition some additional information is needed for successful use of the CC-40 peripherals with the TI-74, or with the CC-40 for that matter. RELATIVE PIN POSITION DIAGRAMS 4 3 2 1 ________ ____ _____________| |____________ _____| |_____ | o o o o o o o o o o | | o o o o | ---------------------------------- | o o o o | 1 2 3 4 5 6 7 8 9 10 -------------- 8 7 6 5 TI-74 DOCK-BUS INTERFACE CC-40 HEX-BUS INTERFACE DOCK-HEX/BUS INTERFACE CABLE CONNECTIONS TI-74 DOCK-BUS CC-40 HEX BUS DESCRIPTION SIGNAL PIN SIGNAL PIN DESCRIPTION SIGNAL PIN SIGNAL PIN System power distribution - output PO 1* System power distribution - input PI 2* Data bit - least significant bit D0 3 D0 Data-LSB 1 Data bit D1 4 D1 Data 2 Data bit D2 5 D2 Data 7 Data bit - most significant bit D3 6 D3 Data-MSB 8 Handshake - I/O timing control line HSK 7 HSK 5 Bus Available - I/O Tracfic control line BAV 8 BAV 3 System reset line RESET 9* Common Ground line GND 10 GND 4 Protect GND 6* NOTES: 1. Pin numbers marked with an asterisk are not connected when DOCK-BUS and HEX-BUS are interfaced. 2. Caution! Pin #1 of DOCK-BUS is at +6 volts, supplied by the TI-74. Pin #2 is used to supply all DOCK-BUS peripherals from a common power supply. This is not supported by the CC-40 system. 3. The Protective Ground (pin #6 of the CC-40 HEX-BUS should not be joined to the floating reference power line (pin #10 of the TI-74 DOCK-BUS) DEVICE NUMBERS FOR CC-40 PERIPHERALS MODEL DEVICE REMARKS DEVICE NUMBER HX-1000 Printer Plotter Switch Selectable 10 to 11 HX-1010 Print 80 Internally changed 16 or 17 HX-2000 Wafertape Was not released 1 to 7 HX-3000 RS232 & Internally Selectable 20 to 23 Parallel Internally Selectable 50 to 53 QD-01 Disk Drive by Mechatronics 8 DEVICE NUMBERS FOR TI-74 PERIPHERALS MODEL DEVICE REMARKS DEVICE NUMBER Reserved for RESET-ALL 0 PC-324 Printer 12 QD-02 Disk Drive by Mechatronics 8 Editors Note: The TI-74 DOCK-BUS pin assignments are consistent with page 17 of my TI-74 BASICALC Technical Data Manual. The CC-40 HEX-BUS pin assignments are consistenet with those in my HX-3000 RS232 Users Manual. Some of the confusion resulted from Maurice Swinnen's definition of the hex-bus interface by "looking into the cable" not by "looking into the device". Other information which is helpful in the construction of a cable between the TI-74 and a CC-40 peripheral includes the color coding of the wiring in a HEX-BUS cable: PIN COLOR PIN COLOR 1 Grey 5 Brown 2 Yellow 6 Green 3 Red 7 Black 4 Orange 8 Blue Editor Number Two's Notes: The above document was typed in by myself from the TI PPC Notes newsletter. If anyone finds any errors please leave me a note on Delphi (user name EICHER), and I will update the documentation and re-upload it. I used this information to interface a Mechatronics disk drive designed for the TI-74 to my CC-40. V1.0 ============================================================================ EDITORS NOTE: TI NO LONGER HAS ANY OF THIS EQUIPMENT FOR SALE, BUT IT IS HERE FOR REFERENCE MATERIAL. ============================================================================= C4ICS005 Charles, Here are the accessory lists for the TI-CC40 and TI-74 as of July, 27 1994. "R" denotes only reconditioned units are available. Prices do not include shipping & handling charges or applicable taxes. Prices and availability may change. To order, you may call 800-TI-CARES. Model CC40 Unit Price Model Part Number Available 2.650 MAN CC40 1052906 0001 5000 Y 9.950 BASIC LRN CC40 1055934 0001 5000 Y 18.950 AC9201 1055601 8900 5000 Y 1.000 RUBBER FT CC-40 1500348 0003 5000 Y 1.450 KYBD O/L ALCC 1054704 0101 5000 Y 1.000 REF CARD ALCC 1052904 0001 5000 Y 40.000 SS1000 16K RAM 1052914 8900 5000 Y 20.000 SS1001 PASCAL 1056638 8900 5000 Y 20.000 SS3004 MEMO PROC 1055813 8900 5000 Y 20.000 SS3006 FINANCE 1054705 8900 5000 Y 20.000 SS3007 ELE ENG 1052924 8900 5000 Y 20.000 SS3008 STAT 1054706 8900 5000 Y 20.000 SS3009 MATH 1054707 8900 5000 Y 20.000 SS3024 GAMES 1054724 8900 5000 Y Model TI74 Unit Price Model Part Number Available 1.250 DUMMY MOD. TI74 1063002 0039 5000 Y 2.550 QR CARD 74 1059857 0001 5000 Y 4.600 CARRY CASE 74 1059859 0001 5000 Y 18.950 AC9201 1055601 8900 5000 Y 7.950 PA201 1059137 0001 5000 Y 4.000 BATT AAA 4PK 1500165 0006 5000 Y 4.000 BATT AAA 4PK 1500165 0006 5000 Y 35.000 CASS CABLE-74/95 1060328 0001 5000 Y 50.000 8K RAM-74/95 1060297 0001 5000 Y 60.000 PCIF 74/95 1065751 0001 5000 Y 5.000 CHEM-74 1062908 0001 5000 R 5.000 FIN-74 1062106 0001 5000 R 5.000 MATH-74 1060308 0001 5000 Y 5.000 PASCAL-74 1060292 0001 5000 R 5.000 STAT-74 1060285 0001 5000 R 65.000 74-SYSTEM CASE 1064930 0100 5000 Y 5.950 TECH/MANUAL 74 1059853 9000 5200 Y 2.500 SCHEMATIC 74 1059853 9900 5200 Y 1.000 TERM, BATT + 1063002 0001 5000 Y 1.000 TERM, BATT - 1063002 0002 5000 Y 1.000 TERM, BATT COMM 1063002 0003 5000 Y 1.000 TERM, BATT COMM 1063002 0003 5000 Y 1.000 SPRING,BATTERY 1063002 0004 5000 Y 1.850 BOTTOM CASE 74 1063002 0005 5000 Y 1.000 B/DOOR 74/95 1063002 0006 5000 Y 1.850 KEY TOP FUNCTIO 1063002 0007 5000 Y 1.000 KEY TOP NUMERIC 1063002 0008 5000 Y 1.000 KEY TOP SPACE 1063002 0009 5000 Y 2.350 ELASTOMER K/B 1063002 0010 5000 Y 1.000 WINDOW TI74 1063002 0011 5000 Y 1.000 SHOCK ABSORBER 1063002 0012 5000 Y 1.000 RUBBER FOOT 1063002 0013 5000 Y 1.000 FOIL TOP ESD 1063002 0014 5000 Y 1.000 FOIL BOTTOM ESD 1063002 0015 5000 Y 1.000 FOOT,CONDUCTIVE 1063002 0016 5000 Y 1.000 INSULATOR I/O S 1063002 0017 5000 Y 1.000 OVERLAY METAL74 1063002 0018 5000 Y 1.000 TOPCASE 74 1063002 0019 5000 Y 1.000 DIODE IN60 1063002 0020 5000 Y 1.000 DIODE IN270 1063002 0021 5000 Y 1.000 CABLE, PCB RIBB 1063002 0022 5000 Y 1.000 RES ARRAY 10K 1063002 0023 5000 Y 1.400 CRYSTAL 4MHZ 1063002 0024 5000 Y 2.800 FET VP0808L 1063002 0025 5000 Y 5.600 LSI RC4193NB 1063002 0026 5000 Y 6.000 LSI SI7660 1063002 0027 5000 Y 22.000 LSI TMSC70009 1063002 0028 5000 Y 12.150 LSI HN61256PC93 1063002 0029 5000 Y 12.600 LSI HN6264LP 1063002 0030 5000 Y 1.000 CONN I/O,10 PIN 1063002 0031 5000 Y 1.000 FRAME, LCD DSPL 1063002 0032 5000 Y 1.650 POTENTIOMETER 1063002 0033 5000 Y 15.950 LCD DISPLAY 1063002 0034 5000 Y 6.600 LSI-HD44100 1063002 0035 5000 Y 1.000 ZEBRA STRIP B 1063002 0037 5000 Y 1.000 ZEBRA STRIP A 1063002 0038 5000 Y 1.000 I/D LABEL TI74 1063002 0040 5000 Y 56.900 KYBD ASSY 1063002 0041 5000 Y If you need anything else, please contact me again. Regards, Paul King ------------------------------------------------------------------------- TI Consumer Relations Texas Instruments Internet: ti-cares@lobby.ti.com P O Box 10508 M/S 5828 Phone: 806-741-2663 Lubbock, TX 79408-0053 Fax: 806-741-2690 ------------------------------------------------------------------------- ------------------ Original text From CGood @ SMTP (Charles Good) {CGOOD@osulima1.lima.ohio-state.edu}, on 7/25/94 2:57 PM: To: ti-cares @ SMTP (ti-cares) {ti-cares@lobby.ti.com} Please mail me a list of software and hardware products for the CC40 and TI74 which can be purchased from TI using a credit card via 800- 842-2737. Thank you Charles W. Good ============================================================================= C4ICS006 Content-Type: TEXT/plain; SizeOnDisk=1547; name="40TO4A.TXT"; CHARSET=US-ASCII Content-Description: 40TO4A.TXT October 1990 USING TI-WRITER TO "L(oad) F(ile) RS232" by Charles Good Lima Ohio User Group You can hook two different kinds of computers together with a serial cable linking the RS232 ports of both computers. You can then LOAD TEXT FILES DIRECTLY INTO TI-WRITER (or the Funnelweb editor) from a word processor program running on the other computer. You don't need a modem or a "terminal" program, and the other computer doesn't have be compatible with the TI. Here's how. After cableing the two computer's RS232s together boot TI-Writer, type LF (load file) and , then type RS232.CR for the file name and press . The TI's screen will appear to lock up as the TI waits to receive the file from the RS232 port. It may be necessary to specify a baud rate in the RS232.CR file name if the default 300 baud is not satisfactory. However, TI Writer (and Funnelweb) will not accept baud rates greater than 600. With the other computer save (or send) a text file already in memory, specifying RS232 as the save file name. Text will then flow into TI Writer. When text transfer is complete, press FCTN/4 on the TI and the received text file will be displayed. Since I don't have the TI99/4A HexBus interface, this is how I transfer text from my CC40 to my TI for processing with Funnelweb and printing with my Star printer. ============================================================================ C4ICS007 Content-Type: TEXT/plain; SizeOnDisk=4825; name="6KTO18K.TXT"; CHARSET=US-ASCII Content-Description: 6KTO18K.TXT May 1991 CC-40 6K TO 18K UPGRADE (BB&&P editor's note: The original source and author of this article are unknown. The article was provided to us by member James McCulloch, who originally got it several years ago from a BBS. James successfully used these instructions to upgrade his CC40 from 6K RAM (which is what new CC40s usually have) to the maximum internal 18K RAM.) DISCLAIMER: You assume sole responsibility for attempting this upgrade. BEFORE ATTEMPTING THIS UPGRADE, BE ADVISED THAT THE COMPONENTS IN THE CC-40 ARE SUBJECT TO DAMAGE FROM STATIC ELECTRICITY DISCHARGE. OBSERVE PROPER ESD PRECAUTIONS. I don't remember where these instructions came from, but I acquired them about 5 years ago. Had no problems upgrading my CC-40, and was even able to re-use the memory removed from the CC-40. Follow the instructions and all should work out fine. Have fun! Willy You'll need: --2^^^8K CMOS STATIC RAM ie, HM6264LP-15 --2^^^1/2" buss wire --1^^^Spool solder wick (solder remover) --Soldering iron and solder --Common electronic type tools READ ALL INSTRUCTIONS THOROUGHLY BEFORE STARTING 1....Take out batteries, cartridges, or any other connections to the CC40. Turn the CC40 upside down and carefully remove the phillips head screws from the CC40 and put in a secure place to keep from losing them. 2....With the CC40 still face down. Turn the CC40 until the words CC$) are correctly facing you. This way there will be a common direction between these instructions and the computer. Carefully and very slowly remove the back cover. Make sure the keyboard is still flat on the table, otherwise later the keys may fall out of place (this would be bad). 3....Make sure you are staticly discharged before touching the board. Do this by touching any grounded metal object. With pliers gently pull up the battery connectors by swaying the tabs back and forth as you pull them up. Just do the ones with the wires attached. 4....Now remove all the black oxide screws from the circuit board, there should be a total of 11 screws. Store these in a safe place where they won't get lost. Carefully lift up the board side next to the battery holder and pull back making sure the keyboard doesn't come up. If the top PC board will not come up then gently press down over the contrast knob (on the right hand side) while lifting up in the middle of the board. This will give more room for the knob to slide out of the case. 5....Now remove the plastic insert that lies between the 2 PC boards. To do this you start by lifting up on the right hand side of the plastic insert, when it is out of all the screw holes then slide the plastic out. This will leave the 2 PC boards which you will take out next. Caution when taking out the boards try not to bend the connectors too much as they will get brittle and break. 6....Remove the PC boards by lifting up on the ends nearest to the connector ribbons and lift up both boards at the same time, but leave the keyboard down so the keys stay put. After successfully removing the PC boards put the case in a safe area where the keys won't get knocked out. 7....Turn the PC board so that the two long chips are at the top, with the ribbon connectors also at the top. Move the two jumpers over one slot to the right. 1 to 2 and 3 to 4. (These are the vertical jumper wires soldered in place at the top part of the board and require desoldering as described below.) 8....Remove the two top chips by removing the solder with the solder wick, making sure not to get the board too hot. Carefully remove the two chips and insert the two new chips in, making sure the new chips are inserted in the same direction as the old chips. Pin 1 on the far left. NOTE: IF YOU HAVE NEVER USED SOLDER WICK, OR HAVE HAD TROUBLE USING IT WITH INSTALLED COMPONENTS. IT MAY BE BETTER TO CLIP ALL THE LEADS TO THE TWO IC'S WITH SHARP DIAG. CUTTERS. THEN HEAT THE SOLDER ON EACH LEAD AND REMOVE EACH LEAD (WHILE HEATED), FROM THE BOARD, WITH A PAIR OF NEEDLE NOSE PLIERS. AFTER ALL THE LEADS HAVE BEEN REMOVED IN THIS MANNER, USE THE SOLDER WICK TO REMOVE THE LEFT OVER SOLDER IN THE IC MOUNTING HOLES. OF COURSE THER ISN'T MUCH CHANCE OF SALVAGING THE OLD MEMORY USING THIS METHOD. Willy 9....Solder in the new memory IC's and reassemble the CC40 in the reverse manner of it's disassembly, making sure not to fatigue the connector ribbons that connect the two boards together. After reassembly is complete turn on the C40 and check the amount of memory using the FRE(0) command. It should return a value of at least 18K. THATS ALL FOLKS. ============================================================================= C4ICS008 Content-Type: TEXT/plain; SizeOnDisk=7916; name="AEECART.TXT"; CHARSET=US-ASCII Content-Description: AEECART.TXT THE "ADVANCED ELECTRICAL ENGINEERING" CC40 SOFTWARE CARTRIDGE reviewed by Charles Good Lima Ohio User Group This is one of the least common officially released CC40 cartridges. One reason for its rarity is that, although the cartridge can still be purchased from CECURE Electronics, no user manuals are available. TI sent CECURE only ONE copy of the user guide along with their remaining stock of AEE modules. (Strangely enough TI also sent CECURE large numbers of "Games 2" user guides. The "Games 2" module does not exist. It was never released.) I know people who purchased the AEE module "user guideless" from both TI and from CECURE. Unfortunately it is really hard to figure out what the AEE software does and how to use the module without the user guide. Fortunately CECURE made me a xerox copy of their only user guide so I can, in this review, give the public some idea about the Advanced Electrical Engineering module's capabilities. The user guide seems quite well written with lots of step by step examples, lots of graphs, and detailed mathematical formulae showing the methods used to come up with calculated results. I'll copy this user guide for copying cost plus postage for anyone who owns the module and not the guide. Here is the basic information you need to access the module's software. Start by entering RUN "CONTENTS", including the quotes. Using the up/down arrows gives you the names of the programs in the cartridge. Although the guide doesn't tell you this, when CONTENTS displays a program name you want to run you can start the program by pressing the CC40's RUN button. You can also go to BASIC command mode and enter RUN followed by a shortened program name to start a program going. The shortened names are ACTIVE, BODE, COMPLEX, DFT, NETWORK, PASSIVE, PLL, SIGNAL, and SY. Active Filters (ACTIVE). You have your choice of Lowpass Filters, Highpass Filters, or Bandpass Filters. For any of these you enter the cutoff frequency, gain (dB), peaking factor and C1 (farads). The computer calculates ohms of R1 R2 and R3 and C in farads. Bode/Nyquist Calculations (BODE). Given a transfer function as a ratio of polynomials, the program generates the data needed for Bodeand Nyquist plots for specified frequency values. You can enter up to 20 elements into the program. You enter a bunch of numerator and denominator coefficients as well as starting and ending frequencies and number of intervals and are given the opportunity to edit these data. Output shows total frequeny, H (real and immaginary), magnitude, dB, and angle. Roots of a Polynomeal (COMPLEX). Using a 6K CC40 you can calculate all roots, both real and complex, of up to a 100th degree polynomeal in one variable with real coefficients. You enter an initial estimate for "u" and "v" (these two values are often best left at the default "0") and an allowable error (epsilon accuracy, often a value of "0"). The computer then uses an iteration process to calculate roots. You input the maximum number of iterations. Discrete Fourier Transform (DFT). This program transforms a complex time series to the frequency domain (DFT) and performs the inverse transformation (IDFT) from the frequency domain back to the time domain. Frequency representation is given in terms of magnitude in dB and phase in degrees. You have the option of entering data from keyboard or from a mass storage device. The user guide refers to a wafertape drive, but a quickdisk drive also works. Network Analysis (NETWORK). This computes the frequency response of a general linear network composed of voltage dependent current sources, resistors, capacitors, and inducers. With a 6K CC40 data input can range from 2 nodes of 200 components to 13 nodes and 13 components. Presumably an 18K CC40 lets you enter even more data. Output is a log or linear frequency sweep which depends on starting and ending frequencies and on the number of specified intervals. For each interval you get a listing of frequency, magnitude of output voltage in dB, and phase in degrees. Passive Lowpass Filters (PASSIVE). The program calculates values for passive lowpass Butterworth and Tchebychff filters. You input maximum stopband attenuation, maximum passband attenuation or allowable ripple, frequencies of max and min stopband attenuation realized, and terminal resistance. Phase Locked Loop (PLL). For either an active or pasive loop filter this program calculates the design parameters for a basic second order phase locked loop. You enter gain in seconds, C in farads, an intiger divisor, natural angular frequency, and the damping factor. Output is R1-2 and the loop-noise bandwidth. Series/Parallel Impedance Conversions (SP). Students in high school and elementary college physics classes often have to make this calculation. The program converts back and forth between a two element series impedance network and an equivalent two element parallel impedence network. You enter two series or parallel resistances in ohms and get the total parallel or series resistance. Signal Detection (SIGNAL). Sometimes it is necessary to determine if an information bearing signal is present in the presence of noise, such as in radar detection. This program uses the relationship between two slightly overlapping normal sine wave distribution curves to give the probability of a falsely declared or properly declared signal. You enter the ratio of the two curve's standard deviations and the signal-to-noise ratio or, for calculating the probability of detection, a preset probability of a false alarm. S<->Y,Z,H,G Parameter Conversions (SY). Small signal two port "black boxes" are often described in terms of complex scattering parameters (S) with a characteristic input/output transmission line impedance (Z). The translation of these parameters to admittance (Y), impedance, and hybrid (H) and (G) parameters is necessary to create equivalent circuit models. The program converts S parameters to Y,Z,H, and G or visa versa. Subprograms: The AEE module contains subprograms that can be used in user written BASIC programs that have nothing to do with electrical engineering. Just plug in the AEE module and CALL xxx with the necessary parameters passed from within a running user program (or from command mode) to use these subprograms. Most of these CALLs include a provision for optional formatted output to a printer. CALL AU allows input and editing of a one dimensional array. CALL IR will input a number with a prompt. CALL PR converts polar to rectangular coordinates. CALL UP with program name and device number asks if you want output diected to a printer. CALL YN with a question asks for a yes/no answer. For the specific calculations this software is designed to generate this software cartridge does a nice job, and it is portable so you don't need a desktop computer. The biggest deficiency of this cartridge, in my opinion, is the lack of output in graphic format. All output is a number or series of numbers printed on screen or on a printer. Why didn't TI take advantage of the really neat graphing capabilities of the 4 color hexbus printer/plotter with this cartridge? The output of this cartridge is in many cases designed around parabolas, sign waves, or circuit diagrams. It would be great if the cartridge printed its output in these ways using the printer plotter, much as modern "graphing calculators" display their output. But alas all you get with the AEE cartridge is a bunch of numbers. As far as I know there is no official TI software and very little user written software that takes advantage of the neat graphing capabilities of the TI printer/plotter. ============================================================================= C4ICS009 Content-Type: TEXT/plain; SizeOnDisk=1350; name="DOCS.TXT"; CHARSET=US-ASCII Content-Description: DOCS.TXT DECEMBER 1991 DOCUMENTATION AVAILABLE TO LIMA UG MEMBERS From Charles Good Many used TI goodies are being bought and sold, often without documentation. For the curious, and for those who have purchased hardware and classic software that lacks documentation, I have the following CC40 books and magazines as well as printed documentation for the following hardware and software which I am glad to make available for examination and/or loan to Lima Ohio User Group members. ---------- CC40 RELATED DOCUMENTATION: --HEXBUS MODEM USER GUIDE --PRINTER 80 USER GUIDE, for the 80 column hex bus thermal printer. --CC40 MEMO PROCESSOR manual. --CC40 USER'S GUIDE --CC40 STATISTICS CARTRIDGE manual --CC40 PASCAL CARTRIDGE USER'S GUIDE --CC40 PASCAL CARTRIDGE REFERENCE GUIDE --CC40 GAMES 1 CARTRIDGE manual --CC40 RS232 USERS MANUAL. We also have this on disk. --CC40 PRINTER/PLOTTER USERS MANUAL --CC40 FINANCE CARTRIDGE manual. --CC40 8K CONSTANT MEMORY RAM CARTRIDGE manual. --WAFERTAPE DIGITAL TAPE DRIVE USER GUIDE. dated 08/11/83. We also have this on disk. --LEARN BASIC: A GUIDE TO PROGRAMMING THE CC40. book by David Thomas. ---------- ============================================================================ C4ICS010 --cgood:848799722:880673398:740247587:1912078336 Content-Type: TEXT/plain; SizeOnDisk=11197; name="HBINTFAC.TXT"; CHARSET=US-ASCII Content-Description: HBINTFAC.TXT NEVER RELEASED OFFICIAL TI PERIPHERALS: THE HEXBUS INTERFACE; A KEY TO WHAT MIGHT HAVE BEEN a hands on description by Charles Good Lima Ohio User Group The Hexbus Interface (PHP1300) allows you to control all the neat little hexbus peripherals directly from the 99/4A console. With this interface and a side car 32K (or 32K installed inside the console) you can create a fully expanded system with a very small footprint (occupying little surface area). If you paid full list 1983 TI prices, the cost of your expanded system would be much less than an expanded system based on the peripheral expansion box. If you have a box that contained a beige console you can see what a TI Hexbus interface looks like. There is a picture of one on the bottom of the box attached to the side of a console. TI listed this device in its last price list (dated June 1, 1983) for $59.95, but it was never officially released. Only a handful of original TI hexbus interfaces are known to exist. I have such a 1983 TI hexbus interface on loan from Gary Taylor for this report, and I now also have my very own BRAND NEW cloned hexbus interface. For years people have been trying to clone TI's original interface and now it has been done. As of right now I am one of two people to own one of these cloned interfaces. More on this later. Gary's official TI interface measures 8 x 3.5 x 2.25 inches. It connects to the side o the console and has a connection on its right side for other standard 99/4A peripherals or the peripheral expansion box cable. On the back is an on/off switch, a power supply jack for the required model AC9201 6v 300ma external power supply, and one hexbus connector. There is no serial number or date code (ATA or LTA number) on Gary's interface, indicating that it is a preproduction prototype. There is, however, an FCC identification number (A929JWPHP1300), and a statement that the device has been approved by the FCC for "class B" use in the home. The following hexbus peripherals have been tested by me using a 99/4A console and the hexbus interface with no problems. These are all very small peripherals, and all of them except the RS232 can be run on batteries as well as AC current. With the exception of the Printer 80 they all stack neatly on top of each other. You can place the whole stack of peripherals on top of the hexbus interface where it is connected to the side of the console. The entire footprint of all these peripherals when stacked on top of the interface OCCUPIES LESS TABLE SPACE than fire hose PE Box connector when connected to the console. The PE Box connector sticks out frather from the right side of the console than does the hexbus interface and stack of hex bus peripherals! --Hexbus RS232 with parallel option: can be used to run any printer. --Hexbus modem, doesn't require an RS232, 300 baud. --Wafertape drive. This is a "never released peripheral" that I own. Up to 8 of these can be cabled together in a single system. --Hexbus 4 color printer/plotter. This tiny printer can be addressed directly and does not need an RS232. --The Hexbus "Printer 80" 80 column thermal printer also works flawlessly with the hexbus interface, but you can't stack it with the other peripherals. Like the printer/plotter, the Printer 80 can be addressed directly and doesn't require an RS232 interface. It uses fax paper or plain paper and a thermal ribbon cartridge. TI was developing a hexbus 5.25 inch floppy drive controller. I know of two working examples of this controller in private hands, and one of these has been tested successfully with a 99/4A hexbus interface. Unfortunately, the Hexbus interface does not work properly with the Mechatronic quickdisk drive, the one that uses 2.8 inch disks. You can save programs to quickdisk, but you can't load them back off the disk into the 99/4A. WHAT YOU CAN DO WITH THE HEXBUS INTERFACE: According to TI's documentation that comes with the TI interface, the device can be addressed in TI BASIC, TI EXTENDED BASIC, Assembly language, and from the P-code peripheral. The usual syntax is "HEXBUS.DEVICE_NUMBER.FILE_NAME". For example, to save a BASIC program to a wafertape set up as device 2 (wafertape drives can be designated any number from 1-8) you would type SAVE HEXBUS.2.PROGRAM and press . To list a basic program to a printer attached to the hexbus RS232 you would enter LIST "HEXBUS.50." where device 50 is the parallel output of the RS232. To list a program to the printer plotter the syntax is LIST "HEXBUS.10." I have used the interface with WORDWRITER, a cartridge version of TI Writer. LF and then the file name HEXBUS.2.TEXTFILE will load TEXTFILE into the edit buffer from wafertape device 2. PF and then HEXBUS.16. will print the file directly to the Printer 80 (which is device 16). The TI Hexbus Interface user guide was never officially published. It would have been designated as document 1049000-1, and was last revised sometime after March 1, 1983. (I have the March 1 revision. Errors in this revision have been corrected in my copy of 104900-1.) This user guide suggests that you can get a CC40 and 99/4A to talk to each other over the hexbus interface, allowing the CC40 to store data on the 99/4A's drives and display information on the 99/4A monitor. There is only limited truth to this. The documentation includes a skeleton 99/4A BASIC program that is supposed to put the /4A in "slave mode" so that it and its peripherals can can be controlled by a CC40 connected to the hexbus interface. The key word here is "skeleton". Big parts are left out of this BASIC program, and nobody that I know who has a TI hexbus interface can make this program work. Nobody has been able to SAVE or OLD a CC40 program onto a 99/4A floppy drive or display CC40 text via a 99/4A onto a monitor. You are supposed to be able to do this, but nobody can figure our how. You can use a CC40 (or TI74) to save data to a data file on wafertape and then use the 99/4A to open the file and read the data into the 99/4A. Wafertape drives are rare and not very reliable. It is really too bad that you can't use the Mechatronic quickdisk drive with the hexbus interface. THE KEY TO WHAT MIGHT HAVE BEEN: Back in 1983 the hexbus interface would have been the key to a low cost compact expanded 99/4A system. Lets compare costs, based on the rediculus full list prices from TI's last official price list. EXPANSION VIA THE PE BOX: --PHP1200 Peripheral Expansion box...........$249.95 --PHP1220 RS232 Card.........................$174.95 --PHP1240 Disk Controller Card...............$249.95 --PHP1250 Floppy drive for PE box............$399.95 --PHP1260 32K card...........................$299.95 --PHP1800 Telephone coupler (modem)..........$199.95 ----------------------TOTAL EXPANSION COST..$1574.70 EXPANSION WITH HEXBUS PERIPHERALS: --You need a side car 32K and there is no such hexbus product. Doryt Systems advertises one in the June 1983 99er......$175.00 --PHP1300^Hexbus Interface...................$ 59.95 --HX2000^^Wafertape Drive....................$139.95 --HX3000P^RS232 with parallel interface.....$124.95 --HX3100^^Hexbus modem.......................$ 99.95 ----------------------TOTAL EXPANSION COST...$599.80 This would leave you with enough extra money to purchase additional hexbus peripherals such as --Additional wafertape drives. Up to 8 drives can be cabled together in one system and you don't need any kind of "controller" interface. --HX1000 4 color printer/plotter.............$199.95 --HX1010 Printer 80, released in 1984 at.....$249.95 (the TI impact printer listed in 1983 for $750.) So after listing it in their official price list, obtaining FCC certification, and providing a color picture of the thing on each beige console box, why didn't TI offer the Hexbus Interface to 99/4A users? I suspect the answer is the failure of the wafertape drive to live up to expectations. My wafertape drive, and those owned by a few other lucky collectors, are not very reliable, particularly when operated on battery power. The key to system expansion is reliable mass storage that is better than a cassette tape recorder. Failure of the wafertape drive left the hexbus in 1983 with no mass storage peripheral. But this may soon change! ============================================================================ C4CIS011 NEW 1993 HEXBUS PERIPHERALS: reported by Charles Good Lima Ohio User Group A hobbyist in Germany named Michael Becker is making clones of TI's never released Hexbus peripherals in limited quantities. (Michael Becker also makes a quad density disk controller and a "speech in the PE box" card that includes TEII speech in ROM usable from extended basic without occupying normal XB program memory space. This card was shown at the Feb 1993 Fest West.) --99/4A hexbus interface. I own one of these clones. It is built like a tank in a solid metal enclosure resembling the enclosure of the Mechatronic 80 column peripheral. Like the original TI product, the clone plugs into the side of the console and has a connector for the PE Box cable. Unlike the TI original my clone has an LED which flickers to tell me that my interface is funtioning, and it does not require a spearate power supply. --5.25 inch DSDD hexbus disk controller. This can be used for mass storage with the CC40, TI74, 99/2, 99/8, and with the hexbus interface can also be used with the 99/4A. Michael Becker has a TI original (a very very rare device, even rarer than a wafertape drive) and has dumped all the code in the PAL chips so that he can produce duplicates. I expect delivery of my controller in a few months. --Hexbus Video interface. This allows the CC40 and TI74 to display text in 40 columns on a composite color monitor. One of my correspondants has seen Michael's working prototype. It is better than the TI original in that it will display in 16 colors, not just in black and white. Another hobbyist, Lee Bendick, has cloned the CC40 EA cartridge and is making this cartridge available to interested CC40 owners. This allows users to program the CC40 in assembly language, storing assembly routines in battery backed RAM cartridges or in the RAM of the CC40. I know of only 4 TI original CC40 EA cartridges. I own one of Lee's cloned EA cartridges and it works as described in my two massive CC40 assembly language manuals. You need either a 5.25 hexbus disk drive or a wafertape drive to make the EA cartridge work. Anyone interested in any of these CC40/Hexbus peripherals can write me at P.O. Box 647, Venedocia OH 45894. I will put you in touch with Michael Becker or Lee Bendick. ============================================================================ C4ICS012 Content-Type: TEXT/plain; SizeOnDisk=969; name="HEXBUS#.TXT"; CHARSET=US-ASCII Content-Description: HEXBUS#.TXT APRIL 1992 HEXBUS/DOCK BUS PERIPHERAL DEVICE NUMBERS NUMBER | PERIPHERAL ------------------------------------------------------------- 1-8 |*HX1000 Wafertape Digital Tape Drive 1 | CI-7 Cassette Interface (Dock Bus) 8 | Quickdisk Drive, by Mechatronic 10-11 | HX1000 Printer Plotter 12 | PC324 Thermal Printer (Dock Bus) 14 | PC Interface -to PC parallel printer (Dock Bus) 16-17 | HX1010 Printer 80 20-23 | HX3000 RS232C Interface 40 |*HX1100 Video Interface 45 | PC Interface -to PC screen (Dock Bus) 50-53 | HX3000 Centronics Parallel Interface 60-67 | Computer in slave mode 70 | HexBus Modem 100-104 |*5102 HexBus drive controller, up to 4 drives. 100 | PC Interface -Program on PC disk (Dock Bus) 101 | PC Interface -ASCII text file on PC disk (D Bus) * denotes products never officially released ============================================================================= C4ICS013 --cgood:848799722:880673398:740247587:1912078336 Content-Type: TEXT/plain; SizeOnDisk=5477; name="HEXBUS.TXT"; CHARSET=US-ASCII Content-Description: HEXBUS.TXT JANUARY 1992 THE HEX-BUS CONNECTION: By Dan H. Eicher One facet of the whole TI saga that has been largely overlooked is TI's introduction of a new bus standard in the last days of their involvement within the mass consumer market. That new bus was called the Hex-Bus. The Hex-Bus was planned as a standard bus throughout the TI family of low end computers. The computers that had built in Hex-Bus interfaces were: 99/8, 99/2, and the CC-40 (CC stands for Compact Computer), and the 99/4(a) was to have an interface cable. For one hundred dollars you received a box the plugged into the i/o port of your comsole and at the other end had a Hex-Bus plug. What was so grand about this new scheme was the peripherals themselves, some of the peripherals that where actually produced where: disk drives, wafer tape drives, rs-232 interfaces, printer plotters, printers, and video interfaces. These peripherals were VERY compact, all of them fit on a 4X4" printed circuit board. All Hex-Bus units could be used on ANY computer that had a hex bus port! That means that you could use your rs-232 on your 99/8 and when you went on a camping trip you just unpluged it and took it along with your CC-40. Several years after TI went out of the home computer market, they produced the TI-74 Basic Calc (which was much like a trimmed down CC-40) & the TI-95 Procalc (this is a much improved model over TI's original 95 programmable line ). Each of these new computers had a new I/O port on the back that looked much different then the old Hex-Bus port. TI slipped and they put out a technical reference manual for the TI-74 (I say slipped because we all know how TI likes to give out technical information....not at all). I believe you can still order one of these TI-74 technical reference manuals from TI Cares. When people got these technical manuals and started to look them over they where surprised to find out the Hex-Bus was back, only in a different package. In fact all that needs to be done to hook up a Hex-bus peripheral to one of these new computers is change the pin configuration (nothing has to be added, just the wires need to be moved around and put in a new package). The only thing new to this new bus (TI calls it, a Dock-bus port), is a power line has been added so a peripheral unit can provide power to either the 74 or 95. This was done because TI did NOT set up a power adapter jack in either of these two computers, so it was battery powered only. If you bought their printer and pluged it into a power supply, the power supply would provide power to both the printer and the host computer. This will not work with the older Hex-bus peripherals, nor is the CC-40 designed to accept power from one of the new Dock-bus peripherals. One of the major draw backs to the CC-40 was that there was not a built in cassette tape interface, and Hex-Bus disk drives and Wafer tape units are all but non-existant, this leaves the user without any means to save programs on a permenant media. The 74 & 95 also did not have cassetter interfaces built in so TI sold a unit that plugged into the Dock-Bus that allowed you to save programs to cassette. At first many CC-40 owners where overjoyed, thinking they at last had found a solution to their mass storage delima, but it was not to be. TI did not build the code into either the CC-40 or the cassette interface that would allow the CC-40 to save to tape using this device. Although TI did build a version of the CC-40 called the CC-40+ that had a built in cassette interface, these unfortuneatly were only built for use "in-house". I would like to note that even today, many CC-40 and TI-74 see service daily. TI wrote several custom programming packages for these two machines. Different government and private agencys send their employees into the field armed with a CC-40 or TI-74 and custom software, tailored to the type of calculations they do. I have even heard of a automated car wash in Germany that runs off of a CC-40. I have included a copy of the shape and pin ins/outs of the Hex-Bus and Dock-bus for any who may be interested. .NF .NA Hex-Bus: ___ Pin Purpose ____| |___ 1 D0 Data-LSB |4 3 2 1| 2 D1 Data |8 7 6 5| 7 D2 Data ---------- 8 D3 Data-MSB 5 HSK - Hand Shake 3 BAV - Bus available 4 GND 6 Protective GND Dock-Bus _ _________| |__________ |1 2 3 4 5 6 7 8 9 10| Pin Purpose ---------------------- 1 System Power distribution out 2 System Power distribution in 3 DO Data-LSB 4 D1 Data 5 D2 Data 6 D3 Data-MSB 7 HSK - Hand Shake 8 BAV - Bus available 9 System Reset 10 GND For you experimenters here is the color codeing of the HexBus Port: Pin Color Pin Color 1 Grey 5 Brown 2 Yellow 6 Green 3 Red 7 Black 4 Orange 8 Blue ============================================================================= C4ICS014 --cgood:848799722:880673398:740247587:1912078336 Content-Type: TEXT/plain; SizeOnDisk=5222; name="MEMOBUG.TXT"; CHARSET=US-ASCII Content-Description: MEMOBUG.TXT A FATAL BUG IN THE CC40 MEMO PROCESSOR SOFTWARE CARTRIDGE by Charles Good Lima Ohio User Group When using TI's word processing MEMO PROCESSOR cartridge, you are supposed to be able to enter text and then completely power down the CC40. Later, when you turn on the CC40 and start Memo Processor your text should still be there waiting for you, preserved in the CC40's battery backed RAM. My experience has been that this works most of the time. However, every now and then my CC40 displays "Ready for new document" when I activate Memo Processor even though there should already be a document in memory. The document I left in memory when I last powered down my CC40 is totally lost when this happens. This loss of document occurs only occasionally, but when it happens I am VERY UPSET, because I may have lost several thousand characters of text before I can get my CC40 home to transfer my document via my hexbus RS232 to my 99/4A or to a PC. This is why, in my CC40 Micropendium article, I characterized the CC40 Basic word processing Palmer Hanson and I wrote as "more stable in memory" than Memo Processor. This program, which I am using to write this article, NEVER loses its data when the computer is turned off. For many years I have wondered whether this Memo Processor problem was a random phenomynon or was due to some basic problem in the Memo Processor software. The problem occures infrequently enough that I was unable to detect a pattern. Maybe the contacts on my Memo Procesor cartridge and/or the cartridge port on my CC40 were dirty. Maybe I didn't use the correct sequence of keypresses to completely exit Memo Processor and power down the CC40 (there are several ways to do this). Maybe Memo Processor does not like my 18K CC40 and will only work reliably with a 6K CC40. I asked other CC40 owners if they experienced this problem. Some, including Funnelweb's Tony McGovern, replied with a definate "YES!", but others said they have not experienced the problem. I am now convinced that there is a bug in Memo Processor that causes data loss on powerdown under certain circumstances. I can verify the loss of document problem in a predictable way. The problem is not related to dirty cartridge contacts, the size of CC40 RAM, or the keysequence used to turn off the computer. I have verified the bug using two different Memo Processor cartridges using both my 18K and 6K CC40. The results of my research indicate that, when using Memo Processor, each time the CC40 is powered down by the user or by automatic powerdown there is approximately 1 chance in 16 that the in memory document will be lost. And there is almost nothing you can do to prevent this from happening. The solution to this puzzle ocurred to me recently after I wrote a 6600+ character long document using Memo Processor, saved the text to Quickdisk, and turned off my computer. When I later turned my CC40 back on the document was gone! I reloaded the document from my quickdisk drive, turned my CC40 off and then back on, and the document was GONE AGAIN!. I now had on disk a document that would ALWAYS be lost to Memo Processor when my CC40 was power cycled. This proved that the loss of document problem is not random. It can be predictably repeated. I soon discovered that if I loaded my disappearable document from disk and either added a few characters to the document, or deleted a few characters, the document would remain in memory. It is the length of the text document in memory that determines whether it will be lost or not when the CC40 is turned off, according to the following pattern. If you enter 20 groups of 10 characters each into Memo Processor with a space between each group, this will equal 219 characters and will remain in memory when powr is cycled. If you add a space and another 10 character group, for a total of 230 characters, the document will be lost when power is cycled off and on. Any document length between 1 and 229 characters will not be lost. Any document between 230 and 245 characters in length will be lost upon power cycling. Then the pattern repeats itself. Text 246-475 characters long will not be but text 476-492 characters long is lost. The pattern seems to repeat more or less indefinately. For each group of 245 characters, if the document length is within the last 16 of these 245 characters the document will not remain in memory when the CC40 is turned off and on. 16/245 = 0.065 or 6.5% or about 1 in 16, the chances of losing a Memo Processor document each time the computer is power cycled. Unless you know the exact length of your document, which is not easy, there is no way to avoid the problem. In my opinion this bug makes Memo Processor almost useless. Those CC40 owners who told me they havn't had troubles with Memo Processor probably havn't used it very often. Or perhaps they are just unusually lucky. ============================================================================= C4ICS015 --cgood:848799722:880673398:740247587:1912078336 Content-Type: TEXT/plain; SizeOnDisk=7178; name="MEMOPROC.TXT"; CHARSET=US-ASCII Content-Description: MEMOPROC.TXT October 1990 WORD PROCESSING WITH THE CC40 USING "MEMO PROCESSOR" by Charles Good Lima Ohio User Group For me, the most common use of my CC40 is as a laptop word processor. Once created, text in the battery backed RAM of my CC40 can be printed using the HexBus PRINTER 80 or dumped directly into TI Writer on my 99/4A using the HexBus RS232. The software that lets me do all this is the MEMO PROCESSOr solid state software cartridge for the CC40. MEMO PROCESSOr is the official TI word processor/terminal emulator for the CC40. It does a good job dealing with the main limitation of the CC40 for text work, the one line 31 character display. Yes, you can scroll left/right across an 80 column line with the CC40, but you still see only 31 characters at a time. MEMO PROCESSOR comes with a handy keyboard overlay and a very well written user's guide. All you do is press the CC40 "ON" button, press FCTN/0 to produce RUN "MP" on the CC40's display, press ENTER, and you are now in word processing. Just begin typing! When you exit MEMO PROCESSOR you are returned to BASIC. BEWARE! Performing ANY calculations or BASIC programming will disrupt the text you have stored in the CC40's battery backed RAM. It is a good idea to save text to disk or wafertape, or dump to TI-Writer in the 99/4A as soon as possible. MEMO PROCESSOR resembles the TI Writer editor in its capabilities. There is no "formatter" and formatting dot commands are not recognized as anything special by MEMO PROCESSOR or any of the HexBus printers. All the standard word processing functions are available including adjustable tabs, merging documents, find/replace string, and full paragraph reformat when inserting and deleting. With a standard 6K RAM CC40 you can store about one 66 line 80 column single spaced page of text before you run out of memory with MEMO PROCESSOR. If you have internally upgraded your CC40 to 18K (L.L. Conner Enterprise will do this for $25), you can store about 5 single spaced pages of text. You can set the right margin for anything up to 80 columns. The left margin is created at the time text is printed. The CC40 display indicates the end of a print line (based on the right margin you have selected) and the end of paragraphs. When initially creating text it is best to set the right margin at column 28. This insures that no left/right scrolling is needed to read the text. Later the text can be reformatted to any margins you desire. Reformatting is easily done with just three keypress. The entire document is reformatted all at once. The kind of paragraph by paragraph reformatting required in TI Writer's editor is neither necessary nor possible with MEMO PROCESSOR. Leading spaces (such as at the beginning of a paragraph) are preserved in reformatting. What you cannot achieve with reformatting, or any other way with MEMO PROCESSOR, is right justification. The lack of right justification is in my opinion the greatest deficiency in the word processing performance of MEMO PROCESSOR. Saving text to a QUICKDISK or WAFERTAPE drive (I have such a device) is easy. One keypress followed by entering the save file name does the trick. MEMO PROCESSOR warns you if your file name already exits on the disk or wafertape so you won't accidently overwrite something important. This is a nice touch. When viewing text you can move to the beginning or end of the text or GO TO any location within the text (any specified row and column) with just one or two keypresses. You can also automatically scan the text in order to read the whole document. The computer automatically moves successive blocks of text onto the screen in such a text scan, and the length of time each block of text is displayed can be adjusted by the reader. When it is time to print text to a HexBus printer (or the HexBus RS232), you can alter any of these options under software control: page length, number of print lines per page, and left margin. You can also specify the printer device number, compressed or normal size print (Compressed is an option with the HexBus printer plotter; the HexBus Printer 80 supports only normal sized text.), spacing (number of line feeds after each carriage return) and pause between pages (if you are using single sheets of paper). If you are printing to a regular (non HexBus) serial or parallel printer via the HexBus RS232/PIO interface peripheral, you can control strobe level, baud rate, parity, nulls after carriage return, and number of data and stop bits. The MEMO PROCESSOR is also a terminal emulator designed to send and receive data from other computers via the HexBus RS232 and the HexBus modem. You can use any modem but you must have a HexBus RS232 to do this. When used in this way, MEMO PROCESSOR controls the following: baud rate (110 or 300), data bits, transmit parity, stop bits, check parity on receive, and duplex. The major limitation to MEMO PROCESSOR as a terminal emulator is the top speed of 300 baud for sending text. Most BBS's and information networks can work at much higher speeds, and some BBS's don't accept speeds as low as 300 baud. However, you must remember that MEMO PROCESSOR was designed to work with the HexBus modem which has a maximum baud rate of 300, and that both products were made in 1983/84 when 300 baud was much more common than the higher baud rates used today. When receiving text from a remote source or when text you are sending is duplexed back onto the CC40's display, the text scrolls very rapidly across the display at a rate that makes it difficult to read. When receiving text, you really can't read the text until later when you scan the contents of the CC40's text buffer at your own pace. Rather than PRINT DOC to my RS232 from the word processing part of MEMO PROCESSOR, I use SEND DOC from the terminal emulator part of MEMO PROCESSO. I do this to move text directly to my HexBus RS232 and then across a cable to my 99/4A's RS232 where the text loads directly into TI Writer The reason I choose SEND DOC instead of PRINT DOC is that the defaults of my TI RS232 exactly match the defaults of SEND DOC. I don't have to change any of the defaults on either computer to port text this way directly into TI Writer. As a matter of fact, when I get through typing this paragraph as I sit on my front porch with my CC40 in my lap pecking away on the keyboard with one finger of each hand, I'm going to go inside and dump this article to my TI for processing with Funnelweb. BYE! ============================================================================== C4ICS0016 --cgood:848799722:880673398:740247587:1912078336 Content-Type: TEXT/plain; SizeOnDisk=27198; name="MICROPEN.TXT"; CHARSET=US-ASCII Content-Description: MICROPEN.TXT PUBLISHED IN MICROPENDIUM DECEMBER 1994 TI`S CC40 COMPUTER SYSTEM by Charles Good The CC40 (which stands for "Compact Computer 40") was in early 1983 TI`s first ever entry into the portable computer market. It is in many respects a little brother to the 99/4A, so much so that Funnelweb's senior author Tony McGovern calls the CC40 "Little Tex". This article, based on my own experience using the CC40 system, describes the CC40 computer and its tiny peripherals. Some of these are very rare collectors items. The article also lists current sources of supply where you can purchase the CC40, its software, and important peripherals. The CC40 computer is battery powered, very small, (smaller than most modern laptops), and it was offered with a host of small peripherals, most of which are also battery powered. Without the need to plug into an external power source, a CC40 system allows truely portable computing and printing anywhere. This little orphan is of interest to owners of 99/4A computers for two reasons: 1- The syntax of its built CC40 BASIC language is almost identical to the 99/4A's TI Extended Basic. 2-TI intended the 99/2, the 99/8, the 99/4A, the CC40, and all its tiny peripherals to be physically cabled to each other and to talk to each other using a propriatary bus connector called a "hexbus" that is found on all these machines except the 99/4A. To make hexbus devices work with the 99/4A, TI intended to sell a "hexbus interface", a peripheral that had a hexbus connector and that attached to the right side of a 99/4A console. The hexbus interface is pictured on the boxes that contained beige 99/4A consoles but it was never officially released. I own a hexbus interface and use it regularly as part of the 99/4A system on a little table next to my bed. The interface when combined with tiny hexbus peripherals permits an expanded 99/4A system to occupy very little surface area. Although the CC40 is no longer manufactured by TI, the computer, cartridge based software, and some of its tiny peripherals are still available from dealers such as those listed at the end of this article. When it was introduced the CC40 had a list price of $250. Sales were not good in 1983 and 1984 because no mass storage device was made available by TI. The promised cheap Wafertape Digital Tape Drive turned out to be exactly that, cheap. It was unreliable and thus never released, and at that time TI had no other inexpensive CC40 compatible mass storage device to offer the public. In 1984 production of this fantastic little computer ceased. In May 1990 I paid $95 my new CC40. New CC40s are available now for $49 from Jim Lesher, and used computers are available from several of the dealers listed below. For an extra $20-25 you can purchase an expanded memory CC40 or have dealer installation (by L.L. Conner Enterprise) of the necessary chips to bring the CC40`s internal RAM to the maximum 18K, up from the 6K RAM found in the typical CC40. L.L. Conner will also sell you the RAM chips if you want to do the job yourself. This extra memory increases the CC40`s internal buffer capacity to around five double spaced pages of word processing text. The CC40 measures about 9x6x1 inches, the size of a small textbook. It uses a 2.5MHz TMS70C20 8-bit processor and has 34K of ROM and 6K (expandable to 18K internally) CMOS RAM. There is a "solid state cartridge" port, and the internal RAM can be further expanded with 8K or 16K memory expansion cartidges. Software cartridges such as the Memo Processor word processing cartridge can also be inserted into the cartridge port. The ROM includes a very powerful and vary familiar looking BASIC. Both upper and true lower case letters (not just small upper case letters) are provided. Error and system messages can be displayed in either English or German. I have no idea what the "40" in CC40 refers to, certainly not the CC40`s display. The LCD display shows 31 characters of a single 80 character line. You need to move the display left/right to view the entire line. Four dedicated cursor keys allow you to scroll up/down to view other lines or left/right within a line of text or program code. The LCD display includes special indicators for such things as low battery, the status of the shift function and control keys, upper case lock, and special math functions. Some LCD display indicators are user programmable. A control on the left side of the CC40 regulates the contrast (intensity) of the LCD display. The CC40`s keyboard consists of chicklet keys. Alpha numeric keys are arranged in a 44 key qwerty typewriter layout with number keys on the top row, looking very similar to the 99/4A key arrangement. No, you can`t easily touch type. The alpha keys are just too close together. One finger pecking is the usual method of laptop data entry while holding the CC40 steady with your other hand. It is not ever necessary to press two keys at once. For those features such as one time capital letters that require the use of the SPACE, FN (function), or CTL (control) keys either press both keys at once or you can press the special key first and see an indicator on the LCD display turn on. You then press the second key (for instance SHIFT and then D to display an upper case "D", or FN and then ~ for insert), and the special LCD display indicator turns off. A separate numeric keypad is to the right of the qwerty alphanumeric keys. The number keys on the top row of the qwerty layout are duplicated in this keypad. Special keys are included for cursor movement (4 dedicted keys), BREAK, RUN, ON, OFF, and reset. A very important feature of the CC40 is that any BASIC program or any word processing document entered into the CC40`s RAM stays there even after the computer is turned off. Four alkaline AA cells are said to provide enough power for 200 hours of operation and my experience shows that these batteries will last many months of "computer off" time. Compare this to the 2-4 hours most "modern" laptops will run using their batteries. The CC40 and all its small battery powered peripherals can also be powered with an AC adapter. The BASIC that comes as standard equipment on the CC40 closely resembles T.I. Extended Basic, but lacks most of the 99/4A's graphic, color, and sound features. There are no sprites and only one kind of programmable BEEP. Multi line statements up to 80 characters in length are supported, as are user defined subprograms with variables independent of the main program. Seven characters (ASCII 0-6) can be user defined with CALL CHAR on a 5x8 pixel grid. CALL`s relating to assembly code include POKE, LOAD (an assembly subprogram from an external device), PEEK, and EXEC (starts an assembly language program). Two dimensional arrays are supported. Typing BASIC code into the CC40 is made easy with automatic line numbers (NUM) as in TI extended basic. DELETE will delete one line number or a specified group of line numbers from the middle of a BASIC program. You can, if you want, type the words for BASIC functions and commands with the alpha keys one letter at a time. However many BASIC commands and functions can also be displayed on screen by pressing only 1 or 2 keys. A plastic keyboard overlay that comes with the CC40 shows these special keypresses, most of which involve pressing the CTL or FN key followed by another key. A particularly powerful feature you can access from command mode or from a running BASIC program is CALL DEBUG, which brings up a built in assembly language monitor and memory manager. This is designed to be used with the CC40`s Editor Assembler Module (never officially released), but can also be used by itself. When in the DEBUG monitor you can display, modify, or copy any memory in hex. You can also change the microprocessor`s program counter, stack pointer, and status register. You can set break points, single step through assembly code, start execution at a given address, and control paging in and out of system ROM and cartridge ROM. DEBUG is very powerful, and it is built into the CC40 for use whenever needed. Up to 9 user defined hot keys can be set up to instantly display a preset string of up to 80 characters. Hot keys remain in battery backed memory even after the CC40 is turned off. FN + 1-9 are the potential hot keys. These can, for example, be set up for commonly entered BASIC code, number sequences used in math calculations, or short text memos such as names and addresses. No little calculator can do a better job than the CC40 for the display of chain number calculations. I routinely use the CC40 to balance my checkbook and to calculate student grades from a series of numerical student exam scores. You can type in up to 80 characters of mathematical numbers and symbols (such as 112.56+56.35-45-54.95+12) and then scroll left/right to make sure that all your numbers are correctly entered before pressing to display the answer. Then pressing "play back" will redisplay the numbers of the chain calculation that gave you that answer. If your chain is greater than 80 characters, you can enter part of the chain and press for an intermediate answer. Then, starting with the intermediate answer, enter the rest of the numbers of the chain and press to get the complete mathematical answer to the entire chain calculation. You can also use the CC40 as a scientific calculator by typing in your calculations directly rather than writing a BASIC program to do the calculations. Calculation accuracy is 13 significant figures, with 10 significant figures usually showing on(the CC40`s display. Scientific notation is supported, allowing the CC40 to deal with numbers as small as +/-1E-128 or as large as +/-9.9999999999999E+127. PI, SQR, any other power or root, log (base 10, and base E), sine, cosine, tangent, arcsine, arccosine, and arctangent are all supported with special keypresses. Angles are calculated in either degrees, radians, or grads. A special indicator on the LCD display (DEG, RAD, or GRAD) shows which kind of angle is in effect. RAD is the powerup default. You could easily spend $30 for a hand held scientific calculator, and you would still not have a 31 column display or a scrolling 80 column data field. For a few more dollars you can have a CC40, which can function as a scientific calculator AND as a real programmable computer. WORD PROCESSING For me the most practical use of the CC40 is as a portable word processor. When used as a word processing system, the following CC40 hex bus peripherals are important: 1- Memo Processor, a CC40 software cartridge; $20 new with an extensive instruction book. Actually I prefer to use my own BASIC CC40 word processing program, which does not require a cartridge and which is more stable in the CC40's memory. Send me $1 and I will send you a 99/4A disk that contains the BASIC listing of my CC40 word processing program plus other type in CC40 software. 2- The Hexbus RS232; about $30-75 depending on whether you purchase the parallel printer cable option. This is a VERY important peripheral. The parallel cable option lets you print to a regular parallel printer from the CC40. Even without the parallel cable option the RS232 lets you send word processing text or other data to another computer. To send word procesing text from a CC40 to a 99/4A use a hexbus cable to connect the CC40 to a hexbus RS232 peripheral and run a serial cable from it to the RS232 port of your 99/4A. (L.L. Conner can custom make the needed serial cable for you.) Cabled this way you can send text directly from the CC40 into TI Writer or the Funnelweb editor without using a terminal emulator program or null modem on the 99/4A. Here's how. From TI Writer type "LF" (load file) and specify "RS232.CR" as the file name. Then using either Memo Processor or my own CC40 BASIC word processing program tell the CC40 to SEND its text. Text will flow out of the CC40 and into the TI Writer edit buffer. When the computer lights stop flashing press FCTN/4 on the 99/4A and your text originally entered into the CC40 will be displayed on the 99/4A's monitor ready for further editing and saving to a TI disk. The Hexbus RS232 is the only hexbus peripheral that is not battery powered. It needs an AC adapter. 3- The hexbus PRINTER 80; around $100 new or used. This small (about 13x6x2 inches) 80 column thermal dot matrix printer is powered by 4 "D" batteries or an ac adapter. It uses small ribbon cartidges to print on ordinary 8.5 x 11 inch typing paper or you can print on rolls of 8.5 inch wide FAX paper without the ribbon cartridge. Thus for an investment of $150 ($50 for the CC40 and $100 for the Printer 80) you can have a totally portable battery powered word processing system using my BASIC word processing software. For an extra $70 ($50 for a new hexbus RS232 from Jim Lesher and $20 for Memo Processor) you can have everything you need for a complete word processing package. I am composing this article on my CC40. This paragraph is being written while sitting on a bench in the quadrangle of the O.S.U. Lima Campus enjoying the sun. Other paragraphs will be written later today sitting on my fromt porch at home and laying in my bed watching the evening news on TV. Then I will dump the text, via my hexbus RS232, to the Funnelweb (TI Writer) editor on my 99/4A and save it from there to a 99/4A disk that I will send to Micropendium. This is truely portable word processing! A CC40 system is absolutely the cheapest word processing system it is possible to purchase anywhere. Compare these prices to the cheapest "modern" laptop computer advertised in Computer Shopper or the nonbattery powered dedicated word processor/printers with little flip up screens (Brother, Smith/Corona, and similar brands) sold in retail stores, OTHER PERIPHERALS In addition to the peripherals described above the following two hexbus peripherals are sometimes still available new or used from dealers. All hexbus peripherals should be purchased with a hexbus cable. Make sure you get one with each peripheral you purchase. You daisy chain the needed peripherals together with such cables and connect the first peripheral in the chain to the CC40. Most hexbus peripherals measure about 6x4.5x1.5 inches and are designed to neatly stack on top of each other. ---Hexbus Printer Plotter. This cute little printer uses adding machine paper to print on. There are four little ball point pens, each of a different color. Replacement pens can still be purchased at Radio Shack stores. You can program the X-Y axis movement of each pen as you print multicolored graphs, and drawings. Several different text sizes from teeny tiny to about 1 inch tall are available. Text can be printed in any direction (vertically facing either left or right, horizontally, and even upside down). Although this printer does have some unique features, it is not really useful in printing documents. Also, it has some reliability problems. There is an internal plastic gear that has a history of breaking (Cecure has a metal replacement gear), and its alkaline battery is soldered in and cannot easily be replaced. If the battery fails to hold a charge you are out of luck even if you use the optional AC adapter. ---Hexbus Modem. This is a 300 baud direct connect modem with rear connectors for two hexbus cables and two RJ11 phone cables. I am told that electronically it has properities that are identical to the 99/4A's acoustic "telephone coupler" modem. It works well, but today would probably be considered little more than a toy. It has been a long time since computer data crawled along phone lines at a speed of only 300 baud. Many information services and BBS systems do not support such a slow speed any more. AVAILABLE SOFTWARE: The following official TI software cartridges for the CC40 are available new for $20 each from Cecure Electronics and sometimes less from other dealers listed below. Each cartridge comes with a well written user guide. Learn Pascal. Memo Processor. Finance. Elementary Engineering. Statistics. Math. Games. I have about 25 CC40 BASIC programs, including the word processing program, which I will be glad to send you. Some of these programs take advantage of the special features of various hexbus peripherals. Either send me a quickdisk (see below) and a paid return mailer or send me $1. Those sending money will get a 99/4A SSSD disk by return mail which contains text file listings of my CC40 BASIC software library. THE MASS STORAGE PROBLEM Lack of mass storage options is why the CC40 failed commercially in 1984/84 and this is still a big problem for CC40 owners today. Since I use the CC40 mostly for word processing, I can usually get along without mass storage. Text I enter into my BASIC word processing program for the CC40 (or into Memo Processor) is conserved for weeks or months in the battery backed RAM of the computer until I can dump the text to my 99/4A system via the hexbus RS232. The following mass storage options are possible: ---8K Memory Expansion. About $30 used. Functionally this resembles the 99/4A's Mini Memory cartridge. The 8K CC40 cartridge is battery backed and can be used either for program storage or as memory expansion, but not both. These 8K battery backed cartridges are not very common anymore, but some are still available from dealers listed below. You can purchase a bunch of these and store one BASIC program in each cartridge. Program storage only works if you have a 6K CC40. If you are using an enhanced 18K CC40, the 8K cartridge can only be used for memory expansion. Combined use of the battery backed cartridge for program loading and the non battery backed 16K cartridge for RAM expansion works very well with my Basic word processing program. 16K cartridges are still commonly available for about $30-40 from dealers. First I plug in an 8K cartridge that contains my word processing program and transfer that program to to the RAM of my 6K CC40. I then unplug the 8K cartridge and plug in the 16K RAM expansion cartridge. Executing a CALL ADDMEM adds the 16K to the 6K already in the CC40 giving me 18K of RAM (I don't know why its not 22K, but it isn't), enough to store text (about 5 double spaced pages) using my word processing program. You can't do this using the Memo Processor cartridge, which must remain inserted in the CC40 while in use. This is one of the reasons I prefer my Basic word processing program. ---TI's PC Interface. $60 new, sold directly by TI. This small peripheral, known as the PCIF, plugs into a PC parallel or LPT port and allows BASIC programs and data files in a CC40 to be stored on or loaded from a floppy disk or the hard drive of an IBM compatible computer. The IBM computer then becomes your mass storage. Sounds great doesn't it! Unfortunately it is a bit tricky to hook the PCIF to the CC40. The PCIF was made for use with the TI74, which is a more modern and somewhat smaller version of the CC40. Although the PCIF is electrically compatible with the hexbus, the 10 pin holes arranged in one straight line on the PCIF's female connector will not directly plug into a hexbus or a hexbus cable. The hexbus has 8 pins arranged in two rows of 4. I cut common paper clips to make short wires that stick snugly into the holes in the end of a female hexbus cable and the corresponding holes in the female connector of the PCIF, filling 8 of the 10 PCIF connector holes. The remaining two PCIF connector holes are for power, 6 volts in and out. The CC40 has no way of delivering this needed power to the PCIF. You have to modify a Radio Shack black cube ac-to-6vDC power adapter so you can plug the adapter into the last two pins of the PCIF. Connecting my CC40 and power adapter as described here to the the PCIF allows me to store CC40 software on IBM disks. ---Mechatronic QuickDisk peripheral. This small disk drive is the only hexbus peripheral I have ever heard of that is not made by TI. It was made a German company specifically for the CC40. I find it to be very fast, reliable, and easy to use for data file and program mass storage. The peripheral is fairly small (7x5.5x3 inches), not battery powered, and uses 2.8 inch disks (not the common 3.5 inch disk size) to store up to 64K on each side of a flippy disk. In 1990 I paid $110 for a new one. The QuickDisk drive is now out of production and there apparently are no new QuickDisk drives gathering dust on dealer's shelves. If you can find a working used QuickDisk drive then buy it! Used QuickDisk drives are hard to find. ---Wafertape Digital Tape Drive. This was going to be TI's cheap portable mass storage device. It ran on batteries or an AC adapter and used a tiny continuous loop tape cartridge about the size of a modern microcassette audio tape. Although data was stored serially, it had many of the characteristics of a random access device. For example, programs and data files can be loaded by file name from a wafertape whcih contains several different files. I own one of these rare devices (serial number 0000007) and several official TI wafer cartridges that have a TI logo on the label. My wafertape drive is not very reliable. Many times I have saved and verified data files or basic programs to wafertape only to find that later I can't load this information back into my CC40. Reliability problems are probably why TI never released this peripheral to the public. If you can find one to buy, Jim Lesher will sell you wafertape cartridges. ---Hexbus Floppy disk drive controller. This also was never released by TI, probably because the CC40 and its peripherals were marketed as an inexpensive alternative to other 1983 computer systems, and the hexbus floppy drive was not inexpensive. This is the rarest and probably the most useful of the hexbus peripherals. The controller worked with IBM compatible 360K drives and 5.25 inch disks, formatting DSDD at 16 256K sectors per track just like TI's never released DSDD disk controller for the 99/4A. I know of four working hexbus floppy controllers in the whole world. Its too bad one of them isn't mine, yet! SOURCES OF SUPPLY: ---CECURE Electronics. P.O. Box 222, Muskego WI 53150. Phone 800-959-9640. This is the official TI service and exchange center for the CC40 and its peripherals. They don't sell the computer or peripherals but they do repair them on a flat fee exchange basis. They sell the following CC40 cartridges new: 16K expansion RAM ($40), Memo Processor and other software cartridges listed above ($20 each). They also have new "user guides" for those who have the computer but no book and a "Learn Basic" book published by McGraw Hill specifically for the CC40. ---Jim Lesher, 722 Huntley, Dallas TX 75214. Phone 214-821-9274 A nice selection of new and used CC40s ($50 for a new 6K CC40), HexBus peripherals, and rare documentation. Write or call for a current product list. He is the only source I know of for 8K battery backed RAM cartridges. Jim also sells software cartridges and 16K expansion RAM cartridges and has the two books mentioned above. ---L.L. Conner Enterprise, 1521 Ferry St. Lafayette Indiana 47904. Phone voice 317-742-8146 or fax 317-423-4879. A source of used and (occationally ) new CC40 computers, Hex Bus peripherals, and cartridge software. Phone almost anytime for a list of what is currently in stock. Larry Conner will upgrade CC40s from 6K to 18K of internal RAM or sell you the chips to do it yourself. He will also make the serial cable to hook a hexbus RS232 to the 99/4A RS232. ---Texas Instruments. Phone 800-TI-CARES and have your credit card ready to order the PCIF, which is considered by TI-CARES representatives to be a TI74 or TI95 product. TI is the only source I know for this peripheral. It is part number 1065751-0001 and costs $60 plus shipping and state sales tax. You may have to tell the TI-CARES phone representative to type in "TI74" on her terminal to find the sales listing for the PCIF. TI also sells an ac adapter you can use instead of batteries to power the CC40 and some of its peripherals. This is called the AC9201, part number 1055601-8900, and costs $18.95. TI now refers all enquiries about sales and repair of CC40 products and hexbus peripherals to Cecure Electronics. ---Charles Good, P.O. Box 647, Venedocia OH 55894. Phone 419-667-3131. That's me, the author of this article. Send me $1 and I will send you what I have in the way of CC40 BASIC software as described earlier in the article. ============================================================================= C4ICS017 Content-Type: TEXT/plain; SizeOnDisk=5903; name="MODEM.TXT"; CHARSET=US-ASCII Content-Description: MODEM.TXT ORIGINALLY PUBLISHED IN LIMA NEWSLETTER MAY 1995 THE PORTABLE HEXBUS MODEM by Charles Good Lima Ohio User Group Those familiar with my TI computer writings already know that I am fond of the CC40 computer for portable word processing. It is small and easy to carry around, and its batteries last for hundreds of hours of "computer on" time. I have written about how I can dump text from my CC40 directly to the Funnelweb editor by cabling the CC40 and 99/4A together. Well, there is another way to transfer word processing text between the CC40 and a 99/4A. You can do it remotely and totally portably using the hexbus modem. The hexbus modem is lightweight and small 300 baud battery powered device that follows the Bell 103 protocol and can connect to any other Bell 103 compatible modem (most are). It is about 1/3 the size of a CC40. Power comes from four AA batteries or an optional AC adapter. When you buy the modem you also get a user guide, an 8 inch hexbus cable, and an eight foot telephone cable with RJ11 plugs at both ends. There is a power on/off switch on the front and another on/off switch on the back to connect the modem to the telephone line once a phone has been dialed and you hear the other computer's carrier tone. Also on the back are two RJ11 receptacles, two hexbus jacks and an external power input jack. To use the hexbus modem you connect directly to the CC40 with the hexbus cable. You put the phone line in one of the modem's RJ11 jacks and use the 8 foot phone cable to link the modem to an actual telephone that you use to dial the phone number of the remote computer. When this number is answered you move the switch on the back of the hexbus modem to the "on" position. TI's Memo Processor cartridge is designed to be used with the modem. With it you can create text documents and uppload them to a remote computer or you can capture some text and save this text as a word processong document. You can also talk to the hexbus modem in BASIC. It recognizes the following CC40 BASIC statements: OPEN (for INPUT, OUTPUT, or UPDATE which is both), CLOSE, INPUT, LINPUT, PRINT, and EOF. Files are SEQUENTIAL, either DISPLAY (for text) or INTERNAL (for programs), and have VARIABLE record lengths. Either the Memo Processor cartridge or the BASIC OPEN statement can be used to specify the modem's configuration options. These include answer/originate (default answer), data bits 7 or 8 (default 7), parity (there are 5 options here, default is odd) stop bits 1 or 2 (default 1), echo on/off (default on), Transfer type (how incoming data is sent from the modem into the CC40 - 3 options), stop receiving if data overrun (default Y), transmit and/or LF at end of each record (default both), and display "CARRIER DETECT" when remote modem carrier first detected (default Y). The neat thing about the Hexbus Modem is that it doesn't need an RS232 interface and it doesn't need any external electricity. You cable the Hexbus modem directly to the CC40 (or TI74) and use the internal batteries of these two devices for power. The main disadvantage of the hexbus modem is that it is only 300 baud. That is the only baud rate available. If you want to use a faster modem you need to have a hexbus RS232. You cable the hexbus RS232 to the CC40 and connect the fast modem to the 25 pin serial port of the hexbus RS232. Both the hexbus RS232 and the fast modem will need an external source of electricity. 300 baud is just fine for transferring text directly into a remote 99/4A running a TI-Writer clone such as the Funnelweb editor. I am writing this article in Michigan, and I am going to phone my Ohio home and tansfer this text to my home 99/4A for further formatting and storage as a DV80 file on a 99/4A formatted disk. When I call home my 14 year old son will turn on my 99/4A, bring up the Funnelweb text editor, type LF, and specify "RS232.CR" for the incoming file name. Then he will activate my 99/4A's external modem. I, in Michigan, will tell my CC40 software to "Send" "document", and this text will go out over the phone lines into my Ohio computer. When the RS232 light on my Ohio 99/4A stops blinking my son will press CLEAR (FCTN/4) and the text will be displayed on the 99/4A's monitor. He will then SF the text to disk. Neat! I can also call my local library and access their on line catalog catalog with my CC40 and hexbus modem. The library puts out an 80 column 24 line display. It is kind of hard windowing L/R and U/D with the CC40 to see this display, but it can be done. Even with a CC40 there is enough memory to hold one page of such a remote display. Quite frankly, for accessing the library catalog I prefer a computer with a real multi line 80 column display. By modern standards 300 baud is very slow and some on line do not support this slow baud rate. But the hexbus modem has its its usefulness. For sending CC40 text it is perfect, since neither Memo Processor nor the Funnelweb editor accept baud rates faster than 300. I think the hexbus modem/CC40 combination was the first totally battery powered telecommunication package ever available to the public in 1984. The Tandy 100 computer, battery powered with a built in modem, came later. Sources of supply: CECURE will sell you a hexbus modem for $30 plus $5 shipping. Call them at 414-679-4343. Jim Lesher also has hexbus modems. Call him at 214-821-9274 for price and availability. ============================================================================= C4ICS018 Content-Type: TEXT/plain; SizeOnDisk=6512; name="NAMEADD.TXT"; CHARSET=US-ASCII Content-Description: NAMEADD.TXT June 1991 USING THE CC40 AS A PORTABLE DATA BANK: A BASIC PROGRAM FOR THE CC40 by Charles Good Lima Ohio User Group Have you seen those electronic "organizers" in the department stores? They are battery powered dedicated computers that look like large calculators. Marketed under names such as "THE BOSS" or "THE ORGANIZER", they are designed to store lists of names and adresses or hour by hour appointment calendars. With these devices it is easy anywhere and anytime to sort through a large data base for a particular name, address, or phone number. With many of these devices you can download their data to a desktop PC or print the information on a printer. Well, you can do the same thing with a CC40. Since the CC40 has CMOS RAM, any BASIC program entered into the CC40 stays in memory even after the computer is turned "off". BASIC programs will remain in the CC40's memory for many months in the "computer is turned off" mode before the batteries finally need to be changed. Short appointment calendar notes or address lists can be stored in the CC40 as text that is displayed when any of the ten user programmable hot keys are pressed from command mode. Data can also be stored as part of a memory resident BASIC program, but there is a potential problem with this method. Although the CC40 retains a BASIC program in memory when it is turned "off", it does NOT retain any of the numeric or string variables generated by the BASIC program. There are CC40 programs in my software library that allow you to open a disk (or wafertape) file and read in a list of names addresses and phone numbers. When you do this and then later turn the CC40 "off" to conserve battery power, the BASIC program remains in memory. However, the data read in from disk and stored in strings is GONE! There is certainly no advantage to the CC40's portability if you have to go to a disk or tape drive every time you want to look up someone's phone number! The solution to this problem is to store your information as an actual part of the BASIC program, in line numbers with REM remarks or DATA statements. When stored this way, your data is retained in the CC40's memory even when the CC40 is "off". I wrote the CC40 program below to deal with this situation. A somewhat similar CC40 program was published in Vol 1 #2 of ENTHUSIAST 99, but it doesn't work on many CC40's because it POKES to an absolue memory address. My program works! It stores a name/address/phone list as data statements. Only one person's data at a time is READ into string variables. Thus, the CC40's memory is not wasted storing the entire data bank twice, once in DATA statements and a seccond time in strings. From the running program you can view all the data or search for the data of one particular person by inputting the person's last name. I have REMed lines 130-150 that allow you to view all names because this feature will only rarely be used. To view all names it is just as quick to LIST the data statements to screen or printer. Because of the POS statement in line 200, you don't even have to spell the entire last name you are searching for correctly. All you need is a text string that is contained within the last name, such as inputting BUCK when searching for the last name ARBUCKLE. If the data base includes more than one person with the same last name the program will still find the information you want. All data for each person is displayed on a single 80 column line. You can scan left/right across this line of data at your leisure from the running program using the CC40's arrow keys. You can store about 100 program lines of names, addresses, and "other information" as DATA statements with this program using a minimum 6K CC40. It takes just a few seconds to find the last of the 100 DATA statements in a name search. Editing is easy. From the CC40's command mode just bring up the appropriate line number containing the DATA statement and type over or add to the existing DATA of that line number. To add more names to the data bank, just create more BASIC line numbers for the additional DATA. To obtain a hard copy of the data you can LIST the program to a HexBus compatable printer. You can also use the HexBus RS232 peripheral to list the program (with all your DATA) to a non HexBus printer or dump the program (via a cable linking the HexBus RS232 to the 99/4A RS232) directly into a 99/4A. A new or used CC40 (advertised for $50 in the May 1991 issue of MICROPENDIUM) will cost less to purhase than most of the currently available electronic "organizers". Although you can't put a CC40 in your pocket as can be done with many modern electronic organizers, you can easily put the "smaller than most books" CC40 in a small briefcase or a purse. And you do so much more with the CC40! Unlike most of the modern "organizers", the vintage 1983 CC40 is a portable and truely flexable PROGRAMMABLE computer. "Modern" does not always mean "better". Paid members of the Lima UG who own CC40's with mass storage can send a quickdisk or wafertape and a paid return mailer to the newsletter address. I will be glad to copy the program onto your media and send it back to you. 100 REM CC40 BASIC 110 REM writtten by Charles Good, Lima Ohio User Group, June 1991 120 PRINT " --NAME/PHONE/ADDRESS FILE--":READALL=0:PAUSE 1 130 REM INPUT "READ ALL NAMES? Y/N ";YN$ 140 REM IF YN$="Y" THEN READALL=1:GOTO 180 150 REM IF YN$="y" THEN READALL=1:GOTO 180 160 PRINT "USE UPPER CASE TO ":PAUSE .5 170 INPUT "ENTER DESIRED LAST NAME- ";INPUT$ 180 READ FN$:IF FN$="END"THEN PRINT "END OF FILE":PAUSE 1: RESTORE 1000:GOTO 120 190 READ LN$,REST$: IF READALL=1 THEN 250 200 IF POS(LN$,INPUT$,1)=0 THEN 180 210 INPUT "Is the person "&FN$&LN$&"? ";YN$ 220 IF YN$="Y" THEN 250 230 IF YN$="y" THEN 250 240 GOTO 180 250 PRINT FN$&" "&LN$&" "&REST$:PAUSE 260 IF READALL=1 THEN 180 270 RESTORE 1000:GOTO 120 970 REM FIRST NAME,LAST NAME,OTHER INFORMATION such as phone number and address 980 REM Use ONLY UPPERCASE for first and last names. Commas are required after 990 REM the first and last name. Use no commas in the OTHER INFORMATION field. 1000 DATA BARBARA,GOOD,616-857-2256 11 LAKESHORE DR. DOUBLAS MI 49406 1010 DATA IAN,GOOD,419-667-3131 15276 MAIN VENEDOCIA OH 45894 1020 DATA JACK,TURNER,CHESTNUT LANE DOUGLAS MI 49406 10000 DATA END ============================================================================= C4ICS019 Content-Type: TEXT/plain; SizeOnDisk=3646; name="OEMCC40.TXT"; CHARSET=US-ASCII Content-Description: OEMCC40.TXT June 1991 WHEN IS A CC40 NOT A CC40? by Mike Wright 45 Centerville Dr. Salem NH 03079 Although TI pulled out of the Home Computer business in 1983, it did not drop its other computer lines. The TI Pro, an IBM compatible, surived for awhile before it too sucumbed. The CC40 continued to be sold until at least 1988, BUT NOT BY TI! Now the CC40 is a typical TI product - well built, well documented, and designed to handle that TI staple, the removable software module. But by 1988 it was showing its age with a 31 character one line display and should have been long gone. One reason for its longevity may have been that TI had OEMed the CC40. OEM stands for Original Equipment Manufacturer. You can see many examples of the practice in Radio Shack calculators. TI or someone like Casio actually manufactures the calculator, and then puts the seller's name on it. So if you buy it at Radio Shack it's a Radio Shack calculator. Elsewhere it's a TI calculator. Except for the name, they are the same. At the Lima Multi Group Conference in May 1991 I was shown two advertisements. The first was from MCC Powers, 2942 MacArthur Blvd., Northbrook IL 60062. In the Feb 85 issue of HEATING, PIPING, AND AIR CONDITIONING magazine, the company ran an ad titled "New Powers within your reach". An MCC Powers computer is shown in dramatic color alongside the text: "Now spec affordable energy management for buildings as small as 50,000 sq ft. Choose the system over 300 customers have already picked: the MCC Powers Stand alone Energy Management System." The computer pictured is simply a CC40 with the name "MCC Powers" in place of the standard TI logo. You can still see the a TI logo on the lower left of the "MCC Powers computer" illustrated in the ad. MCC supplied software to accomplish the stated task, but the module slot in the illustrated "MCC Powers Computer" is either blank, or else the module was black and did not have a label showing through the module window. The other company was Guhring Inc., 1455 Commerce Ave, Brookfield WI 53005. Their product was called "Guroguide I", which was a CC40 with their own module. I contacted the company and they were kind enough to send me their last color brochure. They stopped selling the Guroguide about two years ago. According to their brochure: "The Guroguide I computer drill selector consists of a Texas Instruments hand held computer with a 32K EPROM cartridge containing the drill selection program. It contains all the data necessary for most drilling applications and, with minimum input from you selects the proper tool and presents you with a 3-digit catalog number. It automatically calculates spindle speed (RPM), penetration rate (IPM), net drilling time, and required peck cycles." The top of the computer illustrated in the brochure, from the left edge to the module port, was silkscreened in large letters to display GUROGUIDE. Guhring advertised the Guroguide in the Feb 88 issue of INDUSTRIAL MAINTENANCE PLANT OPERATORS magazine. Given the above, my suggestion is that TI was able to establish an OEM market for the CC40. This is one reason why the machine was not dropped, like the 4A. In fact, software and some peripherals for the CC40 are still available directly from 1-800-TI-CARES. =========================================================================== C4ICS020 Content-Type: TEXT/plain; SizeOnDisk=5149; name="ORPHAN.TXT"; CHARSET=US-ASCII Content-Description: ORPHAN.TXT APRIL 1992 THE OTHER TI COMPUTER ORPHAN by Gary Fitzgerald Nutmeg 99ers and Lima Ohio UG I have secret information that a few members of your user group are in fact DOUBLE TI ORPHANS. The tapping of chicklet-like keys has given you away! There are those among you that possess a CC-40. Well, so do I. and in recent months, I too have begun to take the little bugger off the shelf and USE IT. Allow me to tell my tale. Some years back I purchased a CC-40 for no good reason except that it was there, and cheap. I played around for a bit, worked out programming problems on it before reprogramming for the 99/4A. And then it sat on the shelf until I got wind of a small but active UG in Lima Ohio. I began a very rewarding correspondence with Charles Good and ordered up a bunch of disks from their library, which is quite extensive. And in among those disks were a series of articles about the CC-40, more information than I had ever seen. In this article I want to show you what you may not already know about your 9" by 6" by 1" "computer". Did you know there is a disk drive for it. And an 80 column printer for SEVENTY BUCKS! And a printer/plotter! and an RS2342 with a parallel output option as well! And now - the big news. You can prepare a document using the Memo Processor - Telecommunications cartridge and port it over to Funnelweb! You need the proper cable (not TI's serial printer cable) to connect the CC40's RS232 to the TI's RS232. The cable and both kinds of RS232s are available from L.L. Conner Enterprise. This cable has to be properly configured and I suppose if I took out my Radio Shack Multitester I could tell you the proper pin-ins and outs so you could build your own, but why not give Mr.^Conner a little business and support the dealers that still support us. Without any further delay, I'll tell you the procedure for doing this. I borrow liberally from Charles Good and his articles. As a matter of fact, I will quote directly from his letter to me. --1. Boot the Funnelweb editor, type LF , then type RS232.CR . The 99/4A cursor locks up and ceases to flash. This is normal. --2. After connecting thr CC40 to the HexBus RS232, turn on the RS232 and then the CC40. --3. Enter Memo Processor. When your document in memory is on the LCD screen, press FN and then the comma key (If you have the overlay, it says to display the document on the monitor of your 99/4A. It works! Now you can prepare text for the 99/4A laying in bed, on the beach, or sitting in a car (on the passenger side, lets not be rediculus!). Anywhere your large computer can't go there is surely room for the CC40. Let me briefly go over what goodies are available for this pre-laptop machine. I will quote TI direct prices as of November 1991 unless otherwise noted. among the application cartridges, the MEMO PROCESSOR, SS3004 ($20), is probably the most useful to own. Also available are FINANCE, (SS3006 $20), ELECTRICAL ENGINEERING (SS3007 $20), STATISTICS (SS3008 $20), MATHEMATICS (SS3009 $20), and GAMES (SS3024 $20). Also available are the 8K CONSTANT MEMORY (SS2000 $30) which may be used to store programs much like the Mini memory or to add 8K RAM to the CC40's standard 6K. There is also a 16K cartridge (SS1000 $40) for increased RAM. TI also has 8 inch HexBus cables (HX C08, $9.95), an AC adaptor (A9201 $18.95), and the PRINTER 80 (HX1010 $70) which can be used as a thermal printer or used with ribbons that are available from TI and elsewhere. I know of two working WAFERTAPE DRIVES in existence. These are storage devices that resemble the Adam computer's tape drives. There are pronter/plotters available from L.L. Conner and Jim Lesher, but for my money the disk drive from T.A.P.E.^of California and the PRINTER 80 are the most needed peripherals. Any computer is almost worthless unless you can store your programs and call them up on demand. You want to type in a program every time you need it? There is a PASCAL cartridge unavailable from TI that seems to be way over priced at $50 from Jim Lesher (Yes, I paid for it...through the nose!!). You may also upgrade the 6K to 18K internal RAM following the directions contained on the disk. If you are not good with small parts or soldering, L.L.^Conner will sell you one all done up with the extra memory. Jim Lesher has recently advertised good prices on CC40s and HexBus peripherals (Micropendium, March 1992). There are some good deals out there, particularly compared to the cost of a "modern" laptop computer. =========================================================================== C4ICS021 Content-Type: TEXT/plain; SizeOnDisk=11397; name="PCIF.TXT"; CHARSET=US-ASCII Content-Description: PCIF.TXT TI'S "PC INTERFACE" AN EASILY AVAILABLE AND RELIABLE MASS STORAGE ALTERNATIVE FOR CC40 AND TI74 OWNERS a hands on description by Charles Good Lima Ohio User Group The CC40 mass storage problem... Wafertape drives are rare collector's items. The last unsold QUICKDISK drives for TI74s and CC40s were literally thrown in the trash by their manufacturer (Jan 1993 BB&P, p.12). CC40 programs can be stored on 8K constant memory ram cartridges, but these are rather expensive, their batteries are 10 years old, and they can no longer be purchased new directly from TI. Well, it turns out that the TI74 PC-INTERFACE, a $60 device available since late 1988 directly from TI, can easily be modified for use as a mass storage device for the CC40. (Successful use of the PC-INTERFACE with the CC40 was first reported in the March 1993 issue of BB&P.) The TI74 is an "almost pocket sized" basic programmable calculator operationally very similar to the CC40. The PC-INTERFACE is designed to allow the TI74 to directly control the printer, floppy dirves, and hard drives of an IBM compatible (PC,XT,AT, DOS2.1 or highter) computer. You can also use a TI Professional computer. The actual interface consists of a cable with a 25 pin male connector for connection to the PC's parallel port, and a straight line 10 pin female connector to connect to the IO port of the TI74. Some electronic components are part of this cable. A 5.25 inch disk of software that runs off of the PC is also included with the INTERFACE package. This software is needed to make the INTERFACE work properly. BB&P articles by Jim McCulloch (March 1991) and Dan Eicher (Feb 1992) suggest how to adapt an 8 pin female hexbus cable (attached to the CC40) to the 10 pin end of the INTERFACE. Resistor leads or similar thin stiff wire are cut and inserted into the appropriate holes of each cable, linking the two cables together. Thats all there is to it! Electronically the hexbus and TI74 10 pin cables are identical. You just connect the right wires together. Pin diagrams are in the Eicher article. The task is easier if you have one of the male hexbus-to-female 10 pin commercially made adapters mentioned in the McCulloch article. 99/4A disk files or hard copies of these articles can be obtained from the Lima UG by sending a (disk and) paid return mailer to P.O. Box 647, Venedocia OH 45894. To activate the interface type PCIF from the DOS prompt. The PCIF program runs and turns the PC into a slave of the CC40 or TI74. The PC is now one of four device numbers and can be accessed from the CC40/TI74 by number, just like any other peripheral. 14^^Printer connected to a second PC parallel port. 45^^The PC monitor 100^PC floppy or hard drive for program storage 101^PC floppy or hard drive for data or program listings. PC STORAGE OF CC40 OR TI74 BASIC PROGRAMS You can RUN, OLD, and SAVE by entering the appropriate commands into the CC40 or TI44. Here are some examples of commands from the CC40 or TI74 that activate the PC. PC file names are limited to 8 characters plus a period and three character file extension. Use of file extensions as part of a PC file name is optional. SAVE "100.PROGRAM" saves a basic program called PROGRAM (with no file extension) to the same PC drive or hard disk directory as the PCIF program. SAVE "100.C: CC40 PROGRAM" saves a basic program to hard disk C, sub directory CC40, file name PROGRAM. OLD "100.C: CC40 PROGRAM" will load the basic program saved in the above statement. RUN "100.PROGRAM.PGM" will load and run a basic program called PROGRAM (with the otpional file extension ".PGM") stored on the same disk and directory as PCIF. USING THE PC TO CREATE AND/OR EDIT CC40 OR TI74 BASIC PROGRAMS LIST "45" lists the CC40 or TI74 program in memory to the PC monitor. Editing this displayed list is apparently not possible, but you can LIST "101.C: CC40 PROGRAM.B74". This creates on the specified drive and subdirectory an ASCII file of the program listing. Later, when you are using your PC under its own control this file can be loaded into any word processor for editing. You can also create a program from scratch using a PC word processor. Each line of this text must begin with a line number. The edited file can be resaved as an ASCII file. Then you use a PC utility that comes on the INTERFACE disk to convert this ASCII file to a runable CC40 or TI74 basic program that is saved to a PC disk or hard drive. Next time you hook up your CC40 or TI74 and activate the INTERFACE (by typing PCIF) you can OLD the new program off of the PC drive into the smaller computer. DATA STORED ON PC DISKS OR DISPLAYED ON SCREEN OPEN #1,"101.C CC40 FILENAME" will open a DISPLAY, VARIABLE 80, SEQUENTIAL file named FILENAME in UPDATE mode on hard disk C, sub directory CC40. INTERNAL and RELATIVE files are not supported by the PC INTERFACE. You can PRINT #1, INPUT #1, or LINPUT #1 to and from this file. The EOF function is available. OPEN #2,"45",VARIABLE 40,OUTPUT will display anything you PRINT #2 on the PC's monitor in 40 columns. OPEN #2,"45",OUTPUT will display data on screen in 80 columns since the default is VARIABLE 80. As mentioned above, you can also LIST "45" a program to the screen. HOW ABOUT THE PC's PRINTER Almost all PCs have only one parallel output. You have to disconnect the printer cable from this output in order to attach the PC-INTERFACE, which can be very inconvenient. This means that most of us, myself included, can't use the PC-INTERFACE to allow the CC40/TI74 to control the PC's printer. You are supposed to be able to LIST "14" or OPEN #1,"14",OUTPUT and PRINT #1 to the printer. You can control sending or not sending line feeds and carriage returns at the end of each record. ADDING ASSEMBLY CALLs TO THE TI74 WITH THE PC-INTERFACE CC40 basic has built in subprograms (PEEK, POKE, etc) relating to assembly language which are missing from the TI74. On the PC-INTERFACE disk are a group of assembly subprograms that can be loaded from the PC into the TI74 and then CALLed from a TI74 basic program, just as is done with the CC40. Once loaded, these assembly subprograms for the TI74 remain in memory even of the OFF button is pressed. Memory occupied by these assembly routines is subtracted from memory available to basic. This is reflected in a decrease in available memory that shows when you type FRE(0). Assembly routines are only lost if you enter NEW ALL or if the TI74 is reinitialized (by pressing the reset button or taking too much time changing batteries). The following are available on the PC-INTERFACE disk for loading into the TI74. CC40 owners will be familiar with all of these except IOX. --CALL CHAR (defines character patterns for ASCII 0 through 6) --CALL CLEANUP (deletes variable names in memory left over from previous basic programs) --CALL EXEC (starts assembly routine at specified address) --CALL GETMEM (reserves memory for assembly program or data) --CALL INDIC (turns on or off the display indicators at programmer's will) --CALL IOX (an enhanced version of the TI74's CALL IO that is exactly comparable to the CC40's CALL IO. Although you can't determine this from reading the TI74 and CC40 user guides, the CC40's CALL IO is more powerful than the TI74's CALL IO.) --CALL PEEK --CALL POKE --CALL RELMEM (the reverse of GETMEM, releases memory back to basic) These subprograms add capabilities to TI74 basic that make it almost as good as CC40 basic, but not quite. CC40 has CALL DEBUG and CALL BEEP for example. One important use of these subprograms is that the TI74 can now use the various DIRectory programs that have been written to read directories of Quickdisk drives and Wafertape drives. Loading CALL PEEK, CALL IOX, and CALL GETMEM allows the TI74 to read Quickdisk and Wafertape directories with "DIR" programs designed for use by a CC40. MISCELLANEOUS COMMENTS --You can't SAVE text from MemoProcessor to a PC disk in the normal way because INTERNAL files are not supported. You can, however, SEND DOC, from MemoProcessor to the HexBus RS232 cabled to a PC, creating an ASCII file on a PC disk. --The CC40 Editor/Assembler cartridge won't work with the PC-INTERFACE. You can save source code, but you can't save the assembled or linked code which is in internal format. --PASCAL software generated with the CC40 or TI74 PASCAL cartridge can be saved and loaded via the INTERFACE. --The following CC40 and TI74 cartridges can direct output to printer or PC monitor via the INTERFACE: Pascal, Chemical Engineering, Finance, Mathematics, and Statistics. --If you own a TI95 keystroke programmable calculator, you can use the INTERFACE to store programs as ASCII listings or as runable images, images of 8K ram cartridges, images of MEM files, and a listing of register contents. You can also display or print data or program listings. --The size in bytes of a CC40/TI74 basic program stored on a PC disk (readable by exiting PCIF and then typing DIR on the PC from the DOS prompt) is exactly the size of the program will occupy in the CC40/TI74's memory. --The BASIC TI74/CC40 word processing program by myself and Palmer Hanson will save nicely formatted text as an ASCII file to the PC via the PC interface. As published in the Sept. 1992 issue of the Lima newsletter, line 4005 of this program is in error. It should read "101.FILENAME.DOC" instead of "100.FILENAME.DOC". ============================================================================== C4ICS022 THE TI74 "PC INTERFACE" WORKS AS AN ALTERNATIVE MASS STORAGE DEVICE FOR THE CC40 From a letter to the BB&P editor by Harry Nilsson Pl. 367 Lillsjoberg 910 31 Tavelsjo SWEDEN I have the TI74 with some cartridges and the PC-Interface and some homemade adapters so I can use the CC40 with my PC (saving programs on the PC diskettes or harddisk. .... I prefer the CC40 because it has more "feel of quality" then the TI74 and also more statements like CALL DEBUG. I haven't been able to save text from Memo Processor to the PC via the PC interface because the PC interface doesn't work with the "internal data" file format that MP's SAVE uses. .... But of course it is possible to save text from MP with "Send Doc" to the PC via the PC interface or the RS232 interface (even at 19200 baud with [FN]Q). There is a diskette ("Driver software and utilities" for the PC) with assembler programs (CALL PEEK, CALL POKE, CALL HCAR, CALL LOAD and so on) for the TI74. I have version 1.01 that comes with the TI74 PC interface. [Charles Good's note: As of March 1993, the TI74 PC Interface can be purchased directly from TI for $60 plus shipping and sales tax. To order, call 800-TI-CARES. This cable plugs into the PARALLEL port of an MS-DOS PC. The above mentioned software is on a 360K 5.25 inch MS-DOS disk.] ============================================================================= C4ICS0023 Content-Type: TEXT/plain; SizeOnDisk=3129; name="PDS.TXT"; CHARSET=US-ASCII Content-Description: PDS.TXT DECEMBER 1992 A DAY AT THE RACE TRACK WITH A CC40 On page 111 of the Jan.^1990 catalog of ADVANCED COMPUTER PRODUCTS INC. of 1310 E. Edinger, Santa Ana California 92705 is a picture of a CC40. But the computer is labeled "PDS SPORTS" above the usual "Texas Instruments Compact Computer 40" that is also shown engraved on the computer. The display on the computer's LED says "THE SPORTS JUDGE". Apparently users were supposed to take the PDS SPORTS computer to the racetrack or to a sporting event and enter data for up to the minute handicapping and statistics. Software for the PDS SPORTS computer is apparently offered on cartridges, and most interesting of all "Data disks" of past seasons or current season-to-date are advertised. Does the PDS SPORTS system include a a CC40 AND a Mechatronic Quickdisk disk drive, or are the disks in PC format containing data that has to be manually entered into the PDS SPORTS computer? The text of the catalog does not make this clear. ADVANCED COMPUTER PRODUCTS INC is a surplus reseller. I phoned ACP in late November 1991 and was told they no longer had this product available. The person I talked to could give me no information. Here is the text of the 1/90 ACP catalog: "Thoroughbred Handicapping System "Handicap the entire day's card in less than one hour using the software system designed and used by the Pro's. approved and verified by the American association of documented Sports Services. As past performances and the day's relevant information are entered the system automatically applies proven formulas for Class, Pace, Speed, Distance, Recency, Track Category, Trainer, Jockey, or harness Driver. ACP of course makes no guarantee on these programs. All Horse Racing packages include (3) programs: Horse program + Trainer & Jockey. Package #1 (TB-JO-TR) Thoroughbred Horse Racing............$179 Thoroughbred Handicapping System.....$125 Package #2 (HA-DR-TR) Harness Horse Racing.................$179 Harness Horse handicapping System....$125 Package #3 (QH-JO-TR) Quarter Horse Racing.................$179 Quarter Horse Handicapping System....$125 "PDS TRAINER JOCKEY STATISTICS PROGRAMS Trainer Statistics System............$39.95 Jockey Statistics System.............$39.95 Harness Stastics System..............$39.95 "PDS FOOTBALL HANDICAPPING & STATISTICS Football Handicapping & Statistics...$69.95 NFL data Disks.......................$19.95 Past seasons or season to date "PDS BASEBALL/BASKETBALL HANDICAPPING & STATISTICS Baseball Handicapping & Statistics...$69.95 Baseball Data Disks..................$19.95 Past seasons or Season to date Basketball Handicapping & Statistics.$69.95 Basketball Data Disks................$19.95 Past seasons or season to date "PDS LOTTO PLAYER Computer LOTTO player.................call ========================================================================== C4ICS024 Content-Type: TEXT/plain; SizeOnDisk=5673; name="PHONTRAN.TXT"; CHARSET=US-ASCII Content-Description: PHONTRAN.TXT Originally published December 1992, Lima newsletter "PHONE NUMBER TRANSLATOR" BASIC software for the 99/4A, CC40, and TI74 that demonstrates the use of "PRINT #0" by Charles Good Lima Ohio User Group The BASIC software listing below is interesting for three reasons. 1-The program does something useful. 2-An unusual programming technique, PRINT #0, is used. 3-The software is a good example of how easy it is modify CC40/TI74 BASIC programs so they will run on the 99/4A, and visa versa. As explained in the REM statements, TELEPHONE NUMBER TRANSLATOR converts a seven digit phone number into its all letter equivalents, such as TI-CARES. There are 2187 possible letter combinations for any 7 digit phone number, and they are all displayed on screen or optionally sent to a printer or a disk file. 99/4A users will probably find the easiest way to read the output of this program is to send the output to a disk file by specifying "DSK1.FILENAME" at the DEVICE NAME OR NUMBER prompt. Then load the resulting DV80 file into any word processor and scan the file on screen. Perhaps a readily recognizable group or partial group of letters will make it easier to remember a particular number. The usual way to direct the output of a BASIC program optionally to either the screen or to a printer is to have a branch point in the program. Screen output branches to a group of program lines that PRINT data to the screen. Selecting printer output branches to a different group of program lines that PRINT #1 to a file OPENed as "PIO", some other printer name, or a hex bus device number. This program uses only one set of code lines to direct output to both the screen and printer. This saves memory. PRINT lines say "PRINT #X". When the program is first RUN, all numeric variables including X are set to zero. Device zero is the screen, so unless the value of X is changed, every time a PRINT #X is encountered the computer will "print" to file #0 which is the screen. If optional printer output is selected, lines 180 and 190 set X equal to 1 and OPEN file #1 to the designated printer name. Later, every time the program reaches a line that says PRINT #X, output is directed to the printer (file #1) rather than to the screen (file #0). In previous newsletter articles I have noted that TI BASIC and Extended BASIC for the 99/4A is very similar to the BASIC's of the CC40 and TI74. TELEPHONE NUMBER TRANSLATOR is an excellent example of the similarities. I took a published 99/4A program, modified it for use with my TI74, and added some new features including printer output. In lines 40-80 I have included in REM statements detailed instructions for modifying my CC40/TI74 program so it will run on an unenhanced 99/4A console only TI BASIC system. The required modifications are VERY minor. This illustrates how easy it is to convert BASIC software that doesn't use color, sound, speech, or user defined graphics back and forth between the 99/4A the CC40 and TI74. The CC40/TI74 version is listed below. A version for the 99/4A can be downloaded as software with the electronic edition of the November 1992 Lima newsletter posted on GENIE and on the C.O.N.N.I Newsletter Article Clearing House BBS. 10 REM TELEPHONE NUMBER TRANSLATOR - This version for CC40 and TI-74. 20 REM Converts a 7 digit phone number into all possible letter equivalents 30 REM such as 842-2737 into TI-CARES. 40 REM To modify for TI BASIC running on a 99/4A do the following: 50 REM 1-Remove ":PAUSE X" (X is a number) found at the end of most PRINT lines. 60 REM 2- Change ";" to ":" in lines 130 and 170. 70 REM 3- Change "#X," to "#X:" in lines 190 420 430 440 450 460 470 480 and 500 80 REM 4- Change lines 240 and 510 from CALL KEY(K,S) to CALL KEY(0,K,S). 85 REM 5- Change "#1," to "#1:" in lines 286 287 and 289 90 REM Modified in August 1992 by Charles Good for CC40 and TI74. 100 REM Original 99/4A program from "Zappers, having fun programming 23 games 110 REM for TI99/4A" by Henry Mullish & Don Kruger, 1984, Simon & Schuster 120 PRINT " Ring -- Ring -- Ring":PAUSE 2 130 INPUT "Use putput device? Y/N ";P$ 140 IF P$="Y"THEN 170 150 IF P$="y"THEN 170 160 GOTO 200 170 INPUT "Device name or number? ";DN$ 180 X=1 190 OPEN #X,DN$,OUTPUT 200 PRINT "Using no dashes, type the seven":PAUSE 1 210 PRINT "digits or letters of a phone #" 220 CHAR$="000111ABCDEFGHIJKLMNOPRSTUVWXY" 230 FOR I=1 TO 7 240 CALL KEY(K,S) 250 IF S<1 THEN 240 260 IF (K<48)+(K>57)*(K<65)+(K>89)THEN 240 270 IF K=ASC("Q")THEN 240 280 PRINT CHR$(K); 282 IF X=0 THEN 290 284 IF I<>1 THEN 287 286 PRINT #1,"For telephone number "; 287 PRINT #1,CHR$(K); 288 IF I<>7 THEN 290 289 PRINT #1,"" 290 IF K<58 THEN 310 300 K=INT((POS(CHAR$,CHR$(K),1)-1)/3)+49 310 NUMB(I)=(K-48)*3 320 NEXT I 330 PRINT 340 PRINT "Hold any key for temporary STOP":PAUSE 1 350 FOR A=1 TO 3 360 FOR B=1 TO 3 370 FOR C=1 TO 3 380 FOR D=1 TO 3 390 FOR E=1 TO 3 400 FOR F=1 TO 3 410 FOR G=1 TO 3 420 PRINT #X,SEG$(CHAR$,NUMB(1)+A,1); 430 PRINT #X,SEG$(CHAR$,NUMB(2)+B,1); 440 PRINT #X,SEG$(CHAR$,NUMB(3)+C,1); 450 PRINT #X,SEG$(CHAR$,NUMB(4)+D,1); 460 PRINT #X,SEG$(CHAR$,NUMB(5)+E,1); 470 PRINT #X,SEG$(CHAR$,NUMB(6)+F,1); 480 PRINT #X,SEG$(CHAR$,NUMB(7)+G,1), 490 N=N+1 500 PRINT #X,N;"of 2187":PAUSE 1 510 CALL KEY(K,S) 520 IF S=-1 THEN 510 530 NEXT G 540 NEXT F 550 NEXT E 560 NEXT D 570 NEXT C 580 NEXT B 590 NEXT A 600 IF P$="Y" THEN CLOSE #1 610 IF P$="y" THEN CLOSE #1 620 END ============================================================================ C4ICS025 Content-Type: TEXT/plain; SizeOnDisk=8767; name="PRINPLOT.TXT"; CHARSET=US-ASCII Content-Description: PRINPLOT.TXT January 1991 THE HEX BUS PRINTER/PLOTTER described by Charles Good Lima Ohio User Group This tiny printer, model HX1000, was released in 1983 as the main printing device for TI's CC40 computer. It can be used with any other computer that has a HexBus interface, including the 99/4A (if you have the never released HexBus adaptor), the 99/8, the 99/2, and the TI74 calculator. The Printer/Plotter measures about 15x11.5x4.5 cm and can be operated on battery power or an AC adaptor. You can carry the Printer/Plotter and the CC40 in a very small briefcase as a truely tiny completely portable computer/printer package. It is still available new or used for about $90-$125 from dealers such as L.L. Conner Enterprise (phone 317-742-8146) and Jim Lasher (phone 214-821-9274). Since this is an official TI product, TI still supports this device and will replace defective Printer/Plotters on a flat fee exchange basis. If you have never seen a true plotter before you are in for a suprise when you see the HX1000 in action. It is unlike any dot matrix, daisy wheel, or laser printer I have ever seen. The HX1000 uses 4 small ball point pens, each about 2 cm long, to draw lines on 2.25 inch wide adding machine paper rolls (plain paper, not thermal paper). You can squeeze paper rolls up to 30mm in diameter completely inside the paper chamber of the HX1000 for minimum size and maximum portability. A swing out arm permits larger diameter paper rolls to dangle behind the Printer/Plotter. Such larger rolls are available in almost any store that sells paper, pens, and school supplies. The four pens, one each in black blue red and green, are held in a rotating pen holder. These little pens are currently available at several of my area Radio Shack stores. When you power up the HX1000 it draws four small boxes on the paper, each a different color, to get the ink flowing in its pens. In normal operation the HX1000, under control of the CC40 using BASIC commands, sets one of these pens at a time down on the paper and actually draws lines. The pen is moved left/right across the width of the adding machine paper roll while the printer moves the paper vertically up and down. There is lots of activity as the paper jerks up and down, the pen jerks left/right and is lifted off of and back down onto the paper, and pen colors are changed by rotation of the pen holder. Sometimes the paper roll rapidly feeds backwards or forewards several inches into or out of the printer in preparation for the next operation. This is a highly mechanical device. It is a good thing that TI still fixes these things because I suspect that due to their mechanical nature Printer/Plotters are less reliable than a typical dot matrix printer. Mine has given me no trouble, however. Speaking of reliability, the internal battery power source of the Printer/Plotter seems strange to me. Six "1.5 volt" NiCad batteries are permanently soldered inside the printer and cannot be removed. The HX1000 is the only battery powered HexBus peripheral with non removable batteries. An AC adaptor comes with the Printer/Plotter to charge the batteries and to power the printer from a wall electricity outlet. Even when using the AC adaptor, however, the batteries must be near full charge for the printer to function properly. I know that soldering the batteries assures good reliable flow of current. However, I also know that after lots of charge/discharge cycles, permanently installed NiCad batteries refuse to accept a charge. I have a drawer full of useless "dust buster" vaccuum cleaners, electric shavers, flashlights, and power drills all with non working permanently installed batteries to prove this. My Printer/Plotter sat on a warehouse shelf from 1983 until I purchased it new in September of 1990. Its batteries work fine after all these years because they have not gone through many charge/discharge cycles. But when my Printer/Plotter's batteries eventually fail to hold a charge the AC adaptor will probably not by itself be able to power the printer. I guess I will then have to send the thing back to TI for an exchange. I think removable batteries would have made more sense. From BASIC you can LIST programs to the Printer/Plotter. You can also OPEN #1,"10,OUTPUT" a file to the HX1000 (it is device 10) and then PRINT #1,"text" in text mode or PRINT #1,"special graphics commands" in graphics mode. CC40 BASIC uses a comma instead of a colon in OPEN and PRINT # statements. Two character sizes are available in text mode, with a maximum of either 18 or 36 characters across the width of the paper. This paragraph is being printed in the newsletter in both character sizes to show the difference. There is only one font, and some of its characters look a bit unusual. The exclamation point "!", for example, looks sort of like a wine glass. Here is the complete character set as printed by the Printer/Plotter: |@`~_{}[]!"#$%^&()'?:;,.<>/*-+=1234567890abcdefghijklmnopqrs tuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ In graphics mode you can also use any of the normal character set as part of your graphic. Characters in graphic mode can be printed in any of 10 sizes! Letters and other prededined characters can be printed normally (right side up and left to right), rotated 90 degrees clockwise and printed down the paper (as in the banner example that accompanies this article), upside down from right to left, and rotated 270 degrees printed up toward the end of the paper roll as the paper is sucked backwards into the Printer/Plotter. The sample banner shown is an example of the largest letters printed sideways down the length of the paper roll. In this banner each letter is overwritten several times, advancing the paper slightly after each overwrite to make the letters of the banner appear thick. The Printer/Plotter printed the first line of the banner, then sucked the paper roll back in and printed the second line of text. The whole operation required lots of pen and paper movement! When plotting lines in graphics mode the Printer/Plotter uses an X-Y coordinate system with up to 216 points across the width of the paper and 999 points along its length. Since the origin (coordinate 0,0) can be reset at any time to the pen's current position, the actual maximum length of a single graphic is unlimited. Lines can be drawn from one coordinate to another to another, along a defined sequence of coordinates. These lines between coordinates can be either solid or dotted, with 9 different degrees of spacing possible between dots of a dotted line. The pen can be moved to any coordinate without drawing. Pen color can be changed. The graph that accompanies this article illustrates the possibilities of the Printer/Plotter in graphic mode. The CC40 BASIC program that made this graph was published in the October 1983 issue of 99er Magazine. The original graph is in 4 colors. The left side of the graph is the original end of the paper roll, complete with the 4 boxes drawn at powerup. First the HX1000 printed the short axis scale in red (-100 to 100), then it drew the short and then the long axis lines in blue. Next it sucked the paper back into the printer and drew the long axis scale (0-15) in black. Then it sucked the paper in again and plotted Y=X*TAN(X) as a discontinuous solid red line. Finally the paper was sucked in again in preparation for plotting Y=SIN(X)/e^(X/5) as a single dotted wavy green line. The HX1000 lists for $199.95 in TI's last June-December 1983 price list. This can be compared to TI's impact printer, which lists in the 1983 price list for $750 and sold in my local J.C. Penney store in October 1983 for $450. If the HexBus interface had been released, the Printer/Plotter would have offered 99/4A owners an inexpensive printing alternative to with unique features such as 4 colors and portability that are not found even today in other printers commonly used in the TI community. ============================================================================= C4ICS026 Content-Type: TEXT/plain; SizeOnDisk=3628; name="PRINT80.TXT"; CHARSET=US-ASCII Content-Description: PRINT80.TXT T.I.`s HexBus "PRINTER 80" for use with the CC40 described by Charles Good Lima Ohio User Group Hex Bus peripherals connect to the CC40 in a manner similar to the way disk drives and printers connect to the Commodore 64. Most HexBus peripherals have two HexBus 8 pin ports. The CC40 has one HexBus port. You connect a HexBus port of the first peripheral to the CC40`s HexBus port with a special cable. You then connect the second peripheral to the other HexBus port of the first peripheral, etc. Peripherals chained together in this way can be accessed individually by the CC40, and it usually doesn`t make any difference in what order the peripherals are chained together. You don`t need any interface cards or other special hardware to use these small inexpensive peripherals with a CC40. Just cable `em together! HexBus peripherals once made by T.I. include the printer plotter (using adding machine roll paper prints 16 or 32 columns of text and plots in 4 colors), RS232/PIO interface, 300 baud modem, WAFERTAPE DIGITAL TAPE DRIVE, and 80 column printer. Of these, the 80 column "PRINTER 80" is the only one still available new directly from T.I. The WAFERTAPE DRIVE is very rare and was never officially released. The others are not too difficult to find used. The PRINTER 80, T.I. model HX1010, costs $70 + shipping and tax, and comes with 3 ribbon cartridges and an AC adaptor. It comes in gray plastic and measures 12.5 x 6.4 x 1.9 inches. It can be powered with four size D batteries or the accompanying AC adapter. You shouldn`t use a generic selectable voltage AC adapter like those you can buy in many stores. These are only rated at 300 milli amps and the PRINTER 80 needs more power. In addition to the AC jack and two HexBus ports on the back of the printer, there are four controls on top; on/off, power paper advance, power paper reverse, and paper release. The PRINTER 80 is a full 80 column printer that uses 8.5 inch wide paper and has a maximum printing width of 7.5 inches. It is a very quiet thermal printer. The cheapest way to use it is with rolls of FAX paper. A 96 foot long 8.5 inch wide roll of FAX paper costs $3 at a nearby discount department store. You can also use the "one pass only" 20000 character thermal cartridges that come with the printer to print on regular 8.5x11 typing paper. Replacement cartridges cost $3 from T.I. Printing is slow compared to most computer printers, only 20 characters per second. But that is alot faster than a good touch typist. There is only one font, elete. There is no provision for emphasized, condensed, expanded, NLQ, etc. fonts. What you see here was printed on a PRINTER 80. ASCII 32-126, including lower case letters with true descenders can be printed. You can send low numbered ASCII codes that set the PRINTER 80 for single or double space, perform single foreword and reverse line feeds as well as 1/2 foreword and reverse line feeds (for subscript and superscript) without carriage returns, and carriage returns without line feeds. There are no dot addressable graphics. For such graphics you need the HexBus printer plotter. There is nothing fancy about the PRINTER 80, but it has some very attractive features. It is SMALL, CHEAP, and since it is battery powered it is TOTALLY PORTABLE. For text printing it has all the required features. The combination of a CC40 and a PRINTER 80 gives you a complete, inexpensive, totally portable word processing/printing package. ============================================================================ C4ICS027 Content-Type: TEXT/plain; SizeOnDisk=7414; name="QDISK1.TXT"; CHARSET=US-ASCII Content-Description: QDISK1.TXT November 1990 THE MECHATRONIC "QUICK DISK" DRIVE FOR THE CC40 described by Charles Good Lima Ohio User Group To CC40 owners this is a VERY important piece of equipment, since it is the only readily available magnetic media mass storage device that can be used directly by the CC40. Alternatives to the QUICK DISK include TI's WAFERTAPE DRIVE (very rare and not supported by TI because it was never officially released), the 8K constant RAM cartridge (can store the RAM contents of a CC40 if the CC40's internal RAM is no more than 6K), and dumping text (but not programs) to another computer via the HexBus RS232. The QUICK DISK drive measures about 7 x 5.75 x 2.75 inches and weighs 2.6 lbs. 2.8 inch disks are inserted via a transparent plastic lid on the TOP of the drive. You can stack the QUICK DISK on top of a stack of other HexBus peripherals (except for the two kinds of HexBus printers which need unobstructed top surfaces for paper feeding), but the drive will overhang the others a bit laterally. You can't put devices on top of the QUICK DISK since this will block access to the disk door. There is only one HexBus port on the back of the QUICK DISK, unlike other HexBus peripherals which have two HexBus ports. This means that the QUICK DISK must be the last in a chain of peripherals. My new QUICK DISK, as delivered by T.A.P.E., came without an AC adapter. Unlike most other HexBus peripherals, the QUICK DISK isn't battery powered, so you must purchase an adapter separately. Be careful! The required voltage is 6, but the QUICK DISK draws 600mA average current. You shouldn't use the 300mA model AC9201 adaptor that TI recommends for the CC40 and several of its HexBus peripherals. Likewise, you shouldn't use the selectable voltage adaptors found in many stores. These are rated at 300mA. You need the TI's AC9401 adapter, rated at 1 amp. This is the adaptor that comes with the HeXbus Printer 80, and you may be able to purcha-e it separately from TI. Radio Shack sells a selectable 6 or 7.5 volt adaptor (catalog #273 1655) for $15 that is rated at 700mA. I use the Radio Shack adaptor to power my QUICK DISK. The QUICK DISK uses 2.8 inch disks which come in a relatively hard plastic enclosure. Once formatted, each side of a disk can store 64K byte of data. The QUICK DISK is a single sided drive, but the 2.8 inch disks are designed to be used as flippies. These are not the same as the 3.5 inch disks used in many modern computers, but they are readily available. This is the same sort of disk that is used in Smith Corona Personal Word Processor models 3 and 5. The disks can be purchased from most stores that sell electronic typewriters. My nearby SEARS, K-MART, and WALMART stores sell the disks for $6 or $7 per package of two. Radio Shack stores sell the same thing for the TANDY PWP1000 personal word processor. They charge $17 for the 2 disk package. In some respects the QUICK DISK stores data in a manner similar to TI's never officially releases WAFERTAPE DRIVE. The QUICK DISK is not a random access device. Each disk is formatted with only one track, spiral, like a phonograph record. Each time disk access is required, the drive's read/write head sets down at the beginning of the track and spirals around and around the disk until the necessary file is found. In spite of this limitation all types of file access are supported, including PROGRAM, DISPLAY and INTERNAL. Data files can be SEQUENTIAL or RELATIVE and can be opened in INPUT, OUTPUT, UPDATE, and APPEND modes. (The WAFERTAPE DRIVE does not support RELATIVE files or APPEND mode.) Files are placed on the disk's one track in a sequential manner. When manipulating both SEQUENTIAL and RELATIVE data files, the entire data file is read into the CC40's memory, manipulated by the controlling program, and then read back to the disk as the last file on the disk. This means that file size is limited. Only one file can be open at a time. With the CC40's basic language, it doesn't make any difference whether you use uppercase, lowercase, or a combination of the two when specifying a file name. [SAVE "8.FILENAME"] and [save "8.filename"] would both be interpreted by the QUICKDISK (device 8) in an identical way, saving a basic program to disk under exactly the same file name. One aspect of the QUICK DISK's operating system does take some getting used to. The DOS cannot split files to fill small empty areas on the disk. Each file must occupy only one continuous block of space on the disk's single track. There is no provision for fractured files. The only file or program that can be overwritten or altered (in the case of a data file) is the last file on the single track, the file most recently created. In BASIC, if you save a program or data file with the same name as a file already on the disk, the old file will only be replace if it is the last file. If the old file isn't the last file, the old file will be deleted from the disk directory and a new file will be added to the disk at the end of the track. Although you can no longer access the previous file (which has the same name as the newly created file), the old file still occupies disk space. In practice, this means that you should only have ONE data file that will ever be opened in OUTPUT, APPEND, or UPDATE mode on each disk side, and this should be the last file. Memo Processor will not permit you to APPEND or OUTPUT to anything except the last file. You are forced by Memo Processor to use a different file name if you attempt to overwrite any file on the disk except the last file. The state of available software for the CC40 is similar to what software was like for the 99/4a in its infancy, back in 1980/81. This includes disk management software. Management functions we are all used to on the 99/4a are not available for the QUICK DISK. Whole disk copy programs do not exist. You must OLD each file one at a time into the CC40 and then SAVE to another disk, after disk swaping, like we used to have to do with cassette tape programs. There are no sector editors for the QUICK DISK. Multiple drive use is not easy, since all QUICK DISK drives are considered to be device "8", and there seems to be no way to alter this device number. In spite of these limitations the QUICK DISK gives the CC40 capabilities of a "real" computer. You can save to permanent magnetic media, and you can access large data files, reading only necessary data into the CC40's RAM. The QUICK DISK is probably essential to anyone who wants to seriously use the CC40. Available new for $110 plus shipping from T.A.P.E. 1439 Solano Place Ontario CA 91764 Phone 714-989-9906 ============================================================================ C4ICS028 Content-Type: TEXT/plain; SizeOnDisk=3619; name="QDISK2.TXT"; CHARSET=US-ASCII Content-Description: QDISK2.TXT March 1991 QuickDisk for the TI-74 (95) Basicalc DOES WORK for the CC-40 by Jim McCulloch, Lima Ohio and Chicago User Groups As a doubly-orphaned owner of a TI CC-40 Compact Computer, I was ecstatic upon learning that mass storage MIGHT be available in the form of a Mechatronics "QuickDisk" device. Upon inquiry at T.A.P.E., 1439 Solano Place, Ontario, CA 91764 (Telephone 714-989-9906), I heard "good news and bad news". The good news was that he had drives available in stock. The bad news was that these were cabled for connection with the TI-74 Basicalc Calculator (with a 10 pin single line female connector) as opposed to the 8 pin double row Hex-Bus adapter. Another "good news" item was that he had (as also does L.L. Conner, 1521 Ferry Street, LaFayette, IN 47904 {telephone 317-742-8146}) an adapter cable which on one end has a TI-74 "Dock-Bus" 10 pin single line female plug and on the other end has a CC-40 Hex-Bus style (double row) 8 pin Male plug. Upon hearing that these were compatible with the CC-40, I purchased a QuickDisk drive and an adapter cable. The problem was how to connect the female plug from the QuickDisk to the female plug of the adapter cable. I found that a workable solution was to cut resister leads into appropriate lengths (13 millimeters) and insert these into one of the female plugs. I then plugged this (newly male) connector into the other female plug such that the tab on the side of one plug was OPPOSITE (not on the same side as) the tab on the side of the other plug. The 8 pin male Hex-Bus part of the adapter cable is set in epoxy in a cup such that connection with the standard Hex-Bus cable is possible in only one way, eliminating possible confusion. The other end of the standard Hex-Bus cable plugs into the last of the daisy chain eminating from the CC-40. Voila! It WORKED! I was gratified to find that the QuickDisk performed as expected and was reliable. The manual supplied with the QuickDisk is obviously translated from another language (German) and I found certain parts intriguing. Apparently there were two models made: 01 for the CC-40 which is a top-loader, 6 volt (600 ma) power requirement (no batteries), 8 pin hexbus cabling compatible, 1.2 Kg. unit which answers as Device number 8. Version 02 was described as a front-loader, 7.5 volt (400 ma) power requirement (supplied by 5 aa alkaline batteries!), cabled to a 10 pin Dock-Bus female plug for connection to the TI-74 Basicalc, 0.8 Kg. unit which was supposed to be Device number 9. My QuickDisk was not marked by any manufacturers markings (model or serial numbers) but appeared to be a top loading (QuickDisk 01, Hex-Bus unit #8) unit which was (curiously) cabled to connect as a QuickDisk 02 (for the TI-74). I haven't had the courage to disassemble the unit ("don't mess with it if it WORKS") to see what native connections and conditions are present, but it might be interesting at some future time. In the absence of Wafertape drives for us CC-40 owners, the QuickDisk appears to be the ONLY AVAILABLE mass storage device; even though the only remaining QuickDisks are cabled for the TI-74, I can thankfully speak from personal experience that they WILL WORK for the CC-40. For more extensive explanation of the workings of the QuickDisk with the CC-40, please refer to Charles Good's excellent review in the November 1990 (Vol 6 No. 9) Lima Ohio 99/4a Users Group Newsletter ("Bits, Bytes & Pixels") whose mailing address is Box 647, Venedocia, OH 45894. ========================================================================= C4ICS029 Content-Type: TEXT/plain; SizeOnDisk=5394; name="SORTING.TXT"; CHARSET=US-ASCII Content-Description: SORTING.TXT Originally published December 1992, Lima newsletter A PROFESSIONAL EDUCATOR'S SORTING PROGRAM FOR THE CC40 by Charles Good Lima Ohio User Group A common activity among educators is assigning letter grades to student multiple choice exams that have numerical scores, converting the numerical scores into grades of A B C D and E. If this is done by strictly following predetermined mathematical standards (such as 90% and above=A, 80-89%=B, etc) students may find their scores near one of the borderlines and decide "Gee, if I can talk the instructor into giving me one or two more points I can raise my grade one whole letter." This situation is not really fair to the students because the difference between one letter grade and another is significant, and should not be based on just one or two exam points. One way for the instructor to avoid this situation is to use predetermined mathematical standards only as guidelines, arrange the exam scores of the students in numerical order (from greatest to least), and assign letter grades by setting the lines of demarcation between A/B, B/C, C/D, and D/E where large gaps exist in the point spead of the students' scores. This makes it difficult for students to successfully nag the instructor into awarding enough additional exam points to raise the exam's letter grade significantly. The following CC40 program will sort randomly entered numbers into numerical order and/or a list of randomly entered words or names into alphabetical order. I use it to aid me in assigning letter grades to my students' exams. When prompted by the program, I enter the raw numerical exam scores in any order. The computer then sorts these scores into numerical order and prints to a printer or displays on screen the sorted list along with the mean and median calculated from all the scores. The printer routine is set up for the HexBus printer/plotter, but by changing the device number in the OPEN statement from 10 to some other number you can use almost any printer. You can also use this program to sort a list of names alphabetically. Teachers often have to do this for their classes several times early in the semester as students continue to add and drop classes causing almost daily changes in class rosters. Just enter names, last name first, in any order. The computer will then print or dislplay on screen the name list sorted alphabetically. It is particularly easy for teachers to use the CC40 for these purposes rather than a desktop computer. The small size and battery power source of the CC40 allows the teacher to bring the CC40 into the classroom, faculty lounge, office, or home, wherever exam grading is most convenient. 90 REM CC40 BASIC, rewritten by Charles Good from a PD 99/4A program. 100 DIM G(150),C$(150) 110 Z=1 120 PRINT " ALPHA NUMERIC SORT":PAUSE 2 130 INPUT "Type C for char, N for number";W$ 140 IF W$="N"THEN 660 150 IF W$="n"THEN 660 160 IF W$="c"THEN 180 170 IF W$<>"C"THEN 130 180 INPUT "Enter an END OF LIST code";S$ 190 PRINT "Now begin entering data.":PAUSE 1 200 PRINT "Press after each entry,":PAUSE 1 210 PRINT "When finished enter stopcode.":PAUSE 1 220 N=N+1 230 INPUT C$(N) 240 IF C$(N)<>S$THEN 220 250 N=N-1 260 L=INT(N/2)+1 270 N1=N 280 IF L=1 THEN 320 290 L=L-1 300 A$=C$(L) 310 GOTO 360 320 A$=C$(N1) 330 C$(N1)=C$(1) 340 N1=N1-1 350 IF N1=1 THEN 490 360 J=L 370 I=J 380 J=2*J 390 IF J=N1 THEN 430 400 IF J>N1 THEN 460 410 IF C$(J)>=C$(J+1)THEN 430 420 J=J+1 430 IF A$>C$(J)THEN 460 440 C$(I)=C$(J) 450 GOTO 370 460 C$(I)=A$ 470 GOTO 280 480 C$(1)=A$ 490 C$(1)=A$ 500 PRINT "Here is the sorted list.":PAUSE 1 510 INPUT "P = printer, S = screen";Y$ 520 IF Y$="S"THEN 610 530 IF Y$="s"THEN 610 540 IF Y$="p"THEN 560 550 IF Y$<>"P"THEN 510 560 OPEN #1,"10",OUTPUT 570 FOR I=1 TO N 580 PRINT #1,C$(I) 590 NEXT I 600 CLOSE #1:GOTO 640 610 FOR I=1 TO N 620 PRINT C$(I),"Press ENTER":PAUSE 630 NEXT I 640 INPUT "End of list. Press ENTER.";Y$ 650 RUN 660 INPUT "Enter an END OF LIST number.";S$ 670 IF SEG$(S$,1,1)<"0"THEN 690 680 IF SEG$(S$,1,1)<="9"THEN 700 690 PRINT "Please type a POSITIVE NUMBER":PAUSE 1:GOTO 660 700 S=VAL(S$) 710 PRINT "Now begin entering data":PAUSE 1 720 N=N+1 730 INPUT G(N) 740 IF G(N)<>S THEN 720 750 N=N-1 760 L=INT(N/2)+1 770 N1=N 780 IF L=1 THEN 820 790 L=L-1 800 A=G(L) 810 GOTO 860 820 A=G(N1) 830 G(N1)=G(1) 840 N1=N1-1 850 IF N1=1 THEN 980 860 J=L 870 I=J 880 J=2*J 890 IF J=N1 THEN 930 900 IF J>N1 THEN 960 910 IF G(J)>=G(J+1)THEN 930 920 J=J+1 930 IF A>G(J)THEN 960 940 G(I)=G(J) 950 GOTO 870 960 G(I)=A 970 GOTO 780 980 G(1)=A 990 M=INT((N+1)/2) 1000 FOR I=1 TO N 1010 AV=AV+G(I) 1020 NEXT I 1030 AVERAGE=AV/N 1040 PRINT "Here is the sorted list.":PAUSE 1:INPUT "P = printer, S = screen";Y$ 1050 IF Y$="s"THEN 1140 1060 IF Y$="S"THEN 1140 1070 IF Y$="p"THEN 1080:IF Y$<>"P"THEN 1040 1080 OPEN #1,"10",OUTPUT 1090 FOR I=1 TO N 1100 PRINT #1,G(I) 1110 NEXT I 1120 PRINT #1,"Median =";G(M):PRINT #1,"Average =";AVERAGE 1130 CLOSE #1:RUN 1140 FOR I=1 TO N 1150 PRINT G(I),"Press ENTER":PAUSE 1160 NEXT I 1170 PRINT "End of list. Press ENTER.":PAUSE 1180 PRINT "Median =";G(M);" Average =";AVERAGE:PAUSE 1190 RUN ============================================================================ C4ICS030 Content-Type: TEXT/plain; SizeOnDisk=1971; name="SUPPLEMN.TXT"; CHARSET=US-ASCII Content-Description: SUPPLEMN.TXT October 1990 T.I.'S SUPPLEMENTARY HANDOUTS RELATING TO THE 99/4A AND CC40 Andy Frueh wrote T.I.'s consumer relations department recently and asked them to send him all available free information about the 99/4A. He received a whole bunch of stuff, much of which I did not know existed. Some of the following is interesting from an historical viewpoint. Material includes press release product descriptions, user guide addenda, and some useful programs and technical information. Everything is hardcopy. THE LIMA USER GROUP WILL XEROX THIS STUFF FOR ANY MEMBER OR OTHER USER GROUP for $0.04 per page plus postage. A short description of these items is given below, with the number in parenthesis indicating number of pages. Quoted material is taken directly as a quote from the described hardcopy. All programs and technical information bears this notice: "This material is given to you by Texas Instruments Incorporated without representation or warranty of any kind. Therefore, we assume no responsibility and shall have no liability, consequential or otherwise, of any kind arising from its use. This material was developed by and is considered the property of Texas Instruments. We therefore reserve the right to use, publish, reproduce, or sell this material in any manner desired without compensation of any kind." For the CC40 we have a package of software descriptions of CC40 solid state software cartridges. Programs and subprograms on each of these modules are described in a fair amount of detail (9 pages for the whole thing): --ADVANCED ELECTRICAL ENGINEERING LIBRARY --MATHEMATICS 1 --STATISTICS LIBRARY --FINANCE LIBRARY --MEMO PROCESSOR WITH DATA COMMUNICATIONS --CC40 PASCAL --GAMES I --GAMES II ============================================================================== C4ICS031 Content-Type: TEXT/plain; SizeOnDisk=15467; name="SYSTEM.TXT"; CHARSET=US-ASCII Content-Description: SYSTEM.TXT September 1990 T.I.`S "COMPACT COMPUTER 40" AND IMPORTANT PERIPHERALS ARE ALIVE AND WELL by Charles Good Lima Ohio User Group The CC40 was, in early 1983, T.I.`s first and maybe only entry into the laptop computer market. It is battery powered. Anything entered into the CC40`s RAM stays there even after the computer is turned off. Four alkaline AA cells are said to provide enough power for 200 hours of operation and many more hours of "computer off" time. The CC40 can also be powered with an AC adapter. I had long assumed that the CC40 was abandoned by T.I. a few months after its introduction, even before BLACK FRIDAY, and that the CC40 and its Hex Bus peripherals were no longer available except sometimes as used items. I also was under the impression that since T.I. never sold the promised WAFERTAPE DIGITAL DRIVE, there was no way to save data or programs typed into the CC40 onto permanent magnetic media such as a disk or cassette tape. After watching Gary Taylor`s CC40 presentation at the recent 1990 Lima MUG Conference I discovered how wrong I was! The CC40 is no longer available directly from T.I., but you get one NEW from L.L. Conner Enterprise. Important HEX BUS peripherals and useful CC40 software are available NEW directly from T.I. and from various dealers. When it was introduced in 1983 the CC40 had a list price of $250. I recently paid $95 for my new CC40. For an extra $25 I had dealer installation by L.L. Conner Enterprise of the necessary chips to bring the CC40`s internal RAM to the maximum 18K, up from the 6K RAM that the CC40 normally comes with. This extra memory increases the CC40`s internal buffer capacity to around five text pages (up from one text page) when using the MEMO PROCESSOR word processing software cartridge. Although T.I. never released it`s WAFERTAPE DRIVE, it turns out that MECHATRONIC made a small "QUICK DISK" disk drive for the CC40. MECHATRONIC is no longer in business, but you can still buy one of these drives NEW, with a dealer warranty, for $110 from T.A.P.E. of Ontario California. No controler cards or other hardware are needed to hook this small drive directly to the CC40. The original printing device made by T.I. for the CC40 prints on rolls of adding machine paper. This HEX BUS PRINTER PLOTTER prints in 4 colors and two font sizes. Its main limitation is the width of the paper it uses. This device is still available new from dealers. What I didn`t know before Gary Taylor`s presentation was that T.I. also made a battery (or AC adapter) powered 80 column HEX BUS printer called the "PRINTER 80". This printer uses small ribbon cartidges to print on ordinary 8.5 inch wide typing paper or can print on rolls of 8.5 inch wide FAX paper without the ribbon cartridge. T.I. will be glad to sell you one of these printers NEW for $70. That`s right folks, a new 80 column printer for only $70! What you are reading now has been printed on a PRINTER 80. As with the MECHATRONIC disk drive, no additional hardware is needed to connect this printer directly to the CC40 and print documents. No, you can`t easily use this inexpensive printer with the 99/4A. The MEMO PROCESSOR word processing cartridge is still available new directly from T.I. for $20. Thus, for $320 + tax and shipping (since T.I. is registered to conduct business in most states, T.I. will charge you local sales tax even if you purchase T.I. products mail order from Texas) you can purchase a small, complete, portable (capable of battery operation except for the disk drive), word processing and printing package that includes a very powerful computer. The portability of such a system is illustrated by the fact that I am typing part of this article with the CC40 sitting in my lap while on an overnight Cub Scout camping trip with my 9 year old son. Why am I writing this article for publication in a newsletter devoted to the T.I. 99/4A home computer? The CC40 uses a different microprocessor than the 99/4A, with a different assembly language instruction set. However the editor assembler manual of the CC40 describes how to convert CC40 assembly code so that it can be understood by the 99/4A microprocessor, and T.I. once made a hardware device that does just that! If I had the rare and never officially released 99/4A HEX BUS INTERFACE, I could load this article or any CC40 program or file from my CC40 into my 99/4A for display on a monitor and processing with Funnelweb or T.I. Extended Basic. The back of the box that contained my gray plastic 99/4A has a nice picture of this HEX BUS INTERFACE connected to a 99/4A console. Don`t I wish! If anyone reading this article has one of these interfaces they are willing to sell me, PLEASE let me know. In this series of articles I will first describe the CC40 and then go on to describe the 80 column printer, the MECHATRONIC "QUICK DISK" drive, the printer plotter, the wafertape drive, and word processing using MEMO PROCESSOR, all of which I own. The CC40 measures about 9x6x1 inches, the size of a small textbook. It uses a 2.5MHz TMS70C20 8-bit processor and has 34K of ROM and 6K (expandable to 18K internally) CMOS RAM. The RAM can be expanded beyond 18K up to 34K with a plug in 16K memory expansion cartidge. The ROM includes a very powerful "Enhanced Basic" which is quite similar to TI Extended Basic for the 99/4A. Both upper and true lower case letters (not just small upper case letters) are provided. Error and system messages can be displayed in either English or German. I have no idea what the "40" in CC40 refers to, certainly not the CC40`s display. The LCD display shows 31 characters of a single 80 character line. You can scroll or window left/right to view the entire line. Four dedicated cursor keys allow you to scroll up/down to view other lines or left/right within a line of text or program code. The LCD display includes special indicators for such things as low battery, the status of the shift function and control keys, upper case lock, and special math functions. Some LCD display indicators are user programmable. A control on the left side of the CC40 regulates the contrast (intensity) of the LCD display. The CC40`s keyboard consists of chicklet keys. Alpha numeric keys are arranged in a 44 key qwerty typewriter layout with number keys on the top row, looking very similar to the 99/4A key arrangement. No, you can`t easily touch type. The alpha keys are just too close together. One finger pecking is the usual method of laptop data entry while holding the CC40 steady with your other hand. It is usually not ever necessary to press two keys at once. For those features such as one time capital letters that require the use of the SPACE, FN (function), or CTL (control) keys, you press the special key first and an indicator on the LCD display turns on. You then press the second key (for instance SHIFT and then D to display an upper case "D", or FN and then ~ for insert), and the special LCD display indicator turns off. A separate numeric keypad is to the right of the qwerty alphanumeric keys. The number keys on the top row of the qwerty layout are duplicated in this keypad. Special keys are included for cursor movement (4 dedicted keys), BREAK, RUN, ON, OFF, and reset. The BASIC that comes as standard equipment on the CC40 closely resembles T.I. Extended Basic, but lacks most of the T.I.`s graphic, color, and sound features. There are no sprites and only one kind of programmable BEEP. Multi line statements up to 80 characters in length are supported, as are user defined subprograms with variables independent of the main program. Seven, and only seven characters (ASCII 0-6), can be user defined with CALL CHAR on a 5x8 pixel grid. CALL`s relating to assembly code include POKE, LOAD (an assembly subprogram from an external device), PEEK, and EXEC (starts an assembly language program). Two dimensional arrays are supported. Typing BASIC code into the CC40 is made easier with automatic line numbers (NUM) as in TI extended basic. DELETE will delete one line number or a specified group of line numbers from the middle of a BASIC program. You can type the words for BASIC functions and commands with the alpha keys one letter at a time. Many BASIC commands and functions can also be displayed on screen by pressing only 1 or 2 keys. A plastic keyboard overlay that comes with the CC40 shows these special keypresses, most of which involve pressing the CTL or FN key followed by another key. A particularly powerful feature you can access from command mode or from a running BASIC program is CALL DEBUG, which brings up a built in assembly language monitor and memory manager. This is designed to be used with the CC40`s Editor Assembler Module, but can be used by itself. When in the DEBUG monitor you can display, modify, or copy any memory in hex. You can also change the microprocessor`s program counter, stack pointer, and status register. You can set break points, single step through assembly code, start execution at a given address, and control paging in and out of system ROM and cartridge ROM. DEBUG is very powerful, and it is built into the CC40 for use whenever needed. User defined hot keys can be set up, and remain in battery backed memory even after the CC40 is turned off. FN + 1-9 are the potential hot keys. These can, for example, be set up for commonly entered BASIC code, number sequences used in math calculations, or short text memos such as names and addresses. You can use the CC40 as a scientific calculator by typing in your calculations directly rather than writing a BASIC program to do the calculations. The separate numeric keypad makes data entry easy. You can type in a string of calculations up to 80 characters long, press to display the answer, and then use the displayed answer as the starting point for more calculations. Or, when an answer is displayed you can press PLAYBACK (FN/up arrow) to redisplay the calculation that gave the answer. Calculation accuracy is 13 significant figures, with 10 significant figures usually showing on the CC40`s display. Scientific notation is supported, allowing the CC40 to deal with numbers as small as +/-1E-128 or as large as +/-9.9999999999999E+127. PI, SQR, any other power or root, log (base 10, and base E), sine, cosine, tangent, arcsine, arccosine, and arctangent are all supported with special keypresses. Angles are calculated in either degrees, radians, or grads. A special indicator on the LCD display (DEG, RAD, or GRAD) shows which kind of angle is in effect. RAD is the powerup default. You could easily spend $30 for a hand held scientific calculator, and you would still not have a 31 column display or a scrolling 80 column data field. For a few more dollars you can have a new CC40, which is a real programmable computer and not just a calculator. A modern product, almost the same physical size as the CC40, is described in the June 1990 issue of CONSUMER REPORTS. The ATARI PORTFOLIO computer has 128K RAM, built in word processing, spreadsheet, and address book software, and can be used as a sophisticated calculator. Unlike the CC40, the PORTFOLIO is not user programmable in BASIC. It only runs its built in software. The display shows eight 40 column lines. Batteries are good for only 39 hours of powerup time. Commenting on the typewriter like keyboard with no numeric keypad, CU says: "Touch typists will be reduced to hunt and peck- good enough for spreadsheets perhaps, but not for writing anything longer than a note." Price? -$400 plus $50 for a printer interface. It seems to me that the much cheaper CC40 is in most respects comparable to or better than the ATARI computer. CU recommends a regular laptop computer over the ATARI PORTFOLIO. CU says, "We`ve seen some advertised for less than $600." Comparing price and features makes the CC40 looks like a good bargain. Sources of hardware and software: Phone first to check shipping charges and product availability. L.L. Conner Enterprise 1521 Ferry St. Lafayette Indiana 47904 Phone 317-742-8146 A source of new and used CC40s, Hex Bus peripherals, and cartridge software. They will upgrade CC40s from 6K up to 18K of internal RAM. T.A.P.E. 1439 Solano Place, Ontario California 91764, U.S.A. Phone 714-989-9906 This is the only source for new MECHATRONICS disk drives for the CC40. This device is the only readily available mass storage device for the CC40. T.I. Accessory Department P.O. Box 53, Lubbock Texas, 79408. Phone 806-747-1882 You should probably phone before ordering in order to get the correct part number. T.I. accepts credit card orders over this phone line. The following are available new for the CC40: -- AC adapter, model AC9401, output 6V, 1A. $18.95. This can be used to power the CC40 or most of the other the Hex Bus peripherals including the MECHATRONICS drive and the PRINTER 80. -- Book: LEARN BASIC: A GUIDE TO PROGRAMMING THE TEXAS INSTRUMENTS COMPACT COMPUTER. This is for beginners. The CC40 comes with an extensive user`s guide that explains the CC40`s BASIC. Price $10. -- 16K RAM expansion- $40. This cartridge contains RAM that can be added to the CC40`s internal RAM to provide up to 32K total RAM. -- 8K constant RAM- $30. This battery backed cartridge is sort of like the 99/4A`s MINI MEMORY in that you can save programs or data to this cartridge and then remove the cartridge from the CC40. It is an alternative to a mass storage device. -- PRINTER 80 full width Hex Bus printer- $70 -- Pascal cartridge- $20. Comes with extensive documentation. -- MEMO PROCESSOR word processing- terminal emulator cartridge- $20. -- FINANCE software cartridge- $20 -- ADVANCED ELECTRICAL ENGINEERING software cartridge- $20 -- STATISTICS software cartridge- $20 -- MATH software cartridge- $20 -- GAMES 1 software cartridge- $20 Jim Lesher 722 Huntley Dallas TX 75214 214-821-9274 A nice selection of used CC40s, HexBus peripherals, and rare documentation. ============================================================================= C4ICS032 Content-Type: TEXT/plain; SizeOnDisk=8426; name="TEXTPROC.TXT"; CHARSET=US-ASCII Content-Description: TEXTPROC.TXT Originally published September 1992, Lima newsletter AN IMPROVED BASIC WORD PROCESSOR FOR THE CC40 AND TI-74 by Charles Good and Palmer Hanson Jr. Lima Ohio User Group and TI PCC Notes In the May issue of the Lima newsletter I (Charles) published a BASIC word processing program for the CC40 and TI-74 which used DATA statements to store text. This is the only reliable way to store text in the battery backed RAM of these computers when they are turned "OFF". This was the first word processing program ever written for the TI-74. The accompanying article described several limitations to the program. Now thanks to efforts of member Palmer Hanson, editor of TI PCC NOTES, these limitations have been overcome. Our revised word processing program with enhanced features is published here. Commas, quotation marks, leading spaces, and nicely formated text cause no problems. The software includes instructions in the form of a sample document which can be viewed from within the running program. The use of quoted DATA statements to store text allows easy placement of commas within the text and the insertion of leading spaces at the beginning of each paragraph, things that couldn't be done with my original program. It is interesting that the blank DATA lines with a pair of quotes (125 DATA "") used as a template to store text in our revised program occupy no more memory than the unquoted blank DATA lines (eg.^125 DATA) used in our original program. Palmer has written a really marvelous text formatting routine that eliminates some of the usual limitations of word processing in BASIC. With Palmer's routine you always get neatly formatted paragraphs with a maximum line width of your own choosing and with no splitting of words between lines. You can insert or delete text, even adding new DATA lines between existing DATA text lines as was done in lines 37 and 43 of the program listing. The length of each text DATA line is unimportant. You always get nicely formatted paragraphs. Note for example lines 37 and 43 of the program listing and compare them to the formatted program instructions that are at the end of article. Perhaps the only thing Palmer's routine won't do is right justification. The program allows you to view either the instructions or your document on the CC40 or TI-74's one line 31 column screen. Successive screens of text are displayed with proper word wrap, not splitting words between screens of text. Most important of all the program allows you to print to any printer or dump text to a 99/4A or MS-DOS computer. You need the TI-74 PC Interface Cable or the HexBus RS232 to dump to another computer. When printing or dumping you are asked for a maximum line width and a left margin column. These two options let you print or dump centered or uncentered text formatted to any line width up to 80 columns. I use this software on my TI-74 for "do it anywhere" writing. Later I usually dump my document directly into the Funnelweb text editor running on my 99/4A for printing and disk storage. This article is being written on a TI-74 using our word processing program. In some respects our program is BETTER than "MEMO PROCESSOR", TI's cartridge word processing software for the CC40. When sending text to another computer, our program doesn't drop the last line of text. MEMO PROCESSOR does. Also, with MEMO PROCESSOR if you have a document in memory you can't do ANY command mode calculating or BASIC programming. Doing so destroys your document. With our program your document in memory is safe and you can do whatever you want in command mode. It has also been my experience with the CC40 that marginally low battery power will destroy a MEMO PROCESSOR document stored in memory, well before the LOW battery indicator turns on. Not so with our program. When LOW appears you have plenty of time to do a quick battery change and preserve your document in memory. As a demonstration of the capabilities of our program, below are the instructions contained in lines 5-75 of the program, formatted by the program into lines with a maximum width of 60 characters and sent to Funnelweb's text editor running on a 99/4A. What you see is the unmodified output of our program. ---------- Word processor for CC40 and TI-74 by Charles Good & Palmer Hanson Jr., June 1992. Lines 5-75 are a sample document. With HexBUS RS232 dumps ASCII text to any printer or to TI WRITER on a 99/4A. Dumps to an MS-DOS computer with TI's TI-74 PC Interface Cable. To enter text type 100 and down arrow, position cursor over second quotation mark in blank DATA line and type text. When text fills a a line, end the line with a closing quote, press down arrow, and continue entering text on the next blank DATA line. Text in each DATA line should be enclosed in a set of quotes. Quotation marks "WITHIN THE TEXT" require special treatment, as in lines 45, 50, 60 & 70. For carriage returns type "CR" preceeded by a space at the end of each paragraph, as in lines 20 and 60. To To leave blank lines between paragraphs type "CR" alone on a data line as in line 65. If you get a MEMORY FULL error enter "DEL 5-75" to free up enough memory to VIEW, PRINT, or SEND the document. ------------ 5 DATA " Word processor for CC40 and TI-74 by Charles Good & Palmer Hanson" 10 DATA "Jr., June 1992. Lines 5-75 are a sample document. With HexBUS RS232" 15 DATA "dumps ASCII text to any printer or to TI WRITER on a 99/4A. Dumps" 20 DATA "to an MS-DOS computer with TI's TI-74 PC Interface Cable. CR" 22 DATA "CR" 25 DATA " To enter text type 100 and down arrow, position cursor over second" 30 DATA "quotation mark in blank DATA line and type text. When text fills a" 35 DATA "a line, end the line with a closing quote, press down arrow, and" 37 DATA "continue entering text on" 40 DATA "the next blank DATA line. Text in each DATA line should be enclosed" 43 DATA "in a set of quotes." 45 DATA "Quotation marks ""WITHIN THE TEXT"" require special treatment, as in" 50 DATA "lines 45, 50, 60 & 70. For carriage returns type ""CR"" preceeded by" 55 DATA "a space at the end of each paragraph, as in lines 20 and 60." 67 DATA "To leave blank lines between" 60 DATA "paragraphs type ""CR"" alone on a DATA line as in line 65. CR" 65 DATA "CR" 70 DATA " If you get a MEMORY FULL error enter ""DEL 5-75"" to free up enough" 75 DATA "memory to VIEW, PRINT, or SEND the document. CR" 100 DATA "Start of document" 105 DATA "" 110 DATA "" 125 DATA "" (Insert here every 5 line numbers between 100 and 600 blank DATA lines each followed by an opening and closing quote. DATA lines will contain the document) 590 DATA "" 595 DATA "" 600 DATA "" 1000 PRINT " DATA STATEMENT WORD PROCESSOR":PAUSE 2 1010 RESTORE:CODE=0 1020 INPUT "1=View 2=Print 3=Send 4=Inst. ";M$ 1025 IF M$="4"THEN RESTORE 1030 IF M$="1"OR M$="4"THEN LW=31:GOTO 3030 1040 IF M$="2"THEN 3000 1050 IF M$="3"THEN 4000 ELSE 1020 3000 INPUT "Printer device number?";P$ 3010 OPEN #1,P$,OUTPUT 3020 INPUT "Line Width?";LW:IF LW>80 THEN 3020 3025 INPUT "Left margin column? 0-79 ";LM 3030 PRINT$="":PW=0 3040 ON ERROR 5000 3050 READ TEXT$ 3060 IF TEXT$=""THEN 3050 3070 TEXT$=TEXT$&" " 3080 X=LEN(TEXT$):Y=POS(TEXT$," ",1) 3090 IF X=0 THEN 3050 3100 ADD$=SEG$(TEXT$,1,Y) 3110 IF ADD$="CR "AND PW>0 THEN 3170 3120 IF ADD$="CR "THEN 3185 3130 IF (PW+Y)>LW THEN 3170 3140 PRINT$=PRINT$&ADD$ 3150 TEXT$=SEG$(TEXT$,Y+1,X-Y) 3160 PW=PW+Y:GOTO 3080 3170 PRINT$=SEG$(PRINT$,1,PW-1) 3180 IF M$="2"OR M$="3"THEN N=N+1:PRINT TAB(5);"Sending Line";N;"of text" 3185 IF M$="1"OR M$="4"THEN PRINT PRINT$:PAUSE:GOTO 3205 3190 PRINT #1,TAB(LM);PRINT$ 3200 IF CODE=32 THEN PRINT #1:CLOSE #1:N=0:LM=0 3205 IF CODE=32 THEN PRINT TAB(9);"End of document":PAUSE:RETURN 1000 3210 IF ADD$="CR "THEN TEXT$=SEG$(TEXT$,4,X) 3220 PW=0:PRINT$="":GOTO 3080 4000 OPEN #1,"20.D=8,P=N,R=C",OUTPUT,VARIABLE 80!HexBus RS232 toTIWriter on99/4A 4005 !OPEN #1,"100.FILENAME.DOC",VARIABLE 80,OUTPUT!PC interface cable to MS-DOS 4010 GOTO 3020 5000 !End of DATA routine 5010 CALL ERR(CODE,A) 5020 IF CODE=43 THEN CODE=32!Interpret CC40 error code as TI74 error code 5030 IF CODE<>32 THEN RETURN ELSE 3180 ============================================================================= C4ICS033 Content-Type: TEXT/plain; SizeOnDisk=24675; name="TI74.TXT"; CHARSET=US-ASCII Content-Description: TI74.TXT APRIL 1992 THE TI-74 "BASICALC": A MODERN 8K POCKET SIZED REINCARNATION OF THE CC40 AND 99/4A reviewed by Charles Good Lima Ohio User Group Why did TI suspend further HexBus product development and stop selling the CC40 in late 1984 less than two years after the CC40 introduction in January 1983? No, it probably wasn't because TI's non release of the "didn't work very well" Wafertape Digital Tape Drive left the CC40 without any means of mass storage. TI had that problem solved with the CC40+ which had a built in reliable cassette interface. But the CC40+ was never released. Why? A probable answer to these questions is that TI had something better up its sleeve. In 1985 TI began selling the TI-74, a downsized improved version of the CC40 with an optional cassette interface. In 1992 these products are still available. The TI-74 is "modern" in the sense that TI still actively sells the product through dealers. Although first released in 1985, my TI-74 user guides have a 1990 copyright indicating TI's continuing support of the machine. The TI-74 is a "reincarnation" of the CC40 and 99/4A in the sense that its BASIC is very similar to TI Extended BASIC for the /4A and almost identical to the BASIC used in the CC40. Anyone familiar with Extended BASIC on the /4A will have no trouble programmg the TI-74. The similarities between the 99/4A and the TI-74 are so profound that both the Lima Ohio user group and the Swedish user group have members who own a TI-74 and DO NOT own a 99/4A. I have typed in several games and application programs written for the 99/4A into my TI-74 with very little modification. Finally the TI-74 can be considered a "pocket" computer because it measures only about 4x8x1 inches. You can carry the thing around in your shirt pocket if you don't mind having half the computer sticking out beyond top of the pocket. The TI-74 can best be described as a reduced sized CC40 with more memory, a greatly enhanced set of scientific calculator functions, and a slightly reduced suite BASIC commands compared to the CC40. The keyboard layout of the TI-74 is very similar to that of the CC40. Anyone familiar with the key combinations of the CC40 will find the same keys, usually in the same place on the keyboard, do the same things on the TI-74. Typing FRE(0) on the TI-74 shows 7710 bytes of program space available for BASIC programs. On the unenhanced 6K CC40 a FRE(0) shows 5730 bytes available to BASIC. PHYSICAL DESCRIPTION: The TI-74 is powered by 4 AAA batteries or an optional AC transformer. Most memory contents are preserved when the computer is "OFF". Although TI makes no clains about how long the batteries should last, my experience suggests several tens of hours of "ON" time on a single set of batteries and many more hours of "computer is OFF" time. Unlike many "modern" laptop and palmtop computers, the TI-74 does not have battery eating features such as a backlit display screen or a built in hard drive. Like the CC40 the TI-74 has an LCD display that shows 31 5x7 pixel characters of an 80 character line. You can scroll or window left/right with arrow keys and can use the up/down arrow keys to display adjacent lines. A contrast adjustment allows viewing in most lighting situations. The keyboard has slightly concave rectangular (chicklet style) keys which provide a definite tactile response when a keypress is detected. Keys are arranged in a manner similar to, but not identical with, the CC40 keyboard. The alphanumeric keys are arranged typewriter style with a large key and (unlike the CC40) a shift key on BOTH sides of the space bar. Cursor and other special purpose keys (FN CT Mode Break Run) are lined up in a row above the letter keys where one usually expects to find number keys. The number keys form a numeric keypad to the right of the letter keys along with large ON and OFF keys. Most keys have at least two functions and many have more. For example, the letter keys all have specific calculator functions in CALC mode and in BASIC mode these same letter keys can be used to display on screen most BASIC commands with just two keypresses. Keys are closer together than on the CC40 so touch typing is not possible. However two finger typing is fairly easy. I am composing the first draft of this article on my TI-74. CALCULATOR MODE: Pressing the MODE key while in BASIC command mode switches the TI-74 to calculator mode. A total of 70 "scientific calculator" functions are available by entering a number and then pressing one or two keys to perform some action on the number. CALC functions include linear regression, permutations, regular and hyperbolic trig functions, a full range of statistics, and much more. One interesting CALC function allows you to enter angles in degrees as degrees-minutes-seconds and have this converted to degrees+decimals. Factorials up to 83 can be calculated by just entering a whole number and then pressing the "n!" key. An INV(erse) key will reverse the effect of most CALC functions. For example pressing INV and TAN will yield the ARCTAN of the displayed number. Mathematical display and accuracy are identical to that of the 99/4A and the CC40. Ten digits are displayed on screen with internal calculations carried to 13 or 14 digits. Large and very small numbers are displayed in scientific notation. As an educator, one feature of CALC mode I particularly appreciate is STAT mode. I can enter a long list of student test scores and then obtain statistical information such as the median and standard deviation of these data. Other statistics available once you enter a set of numbers (data) include sum, sum of squares, number of data entries, regression, line intercept and slope, and correlation coefficient. Stastical data can be entered as single data values (as I do for student grades) or paired values (such as plots on a two dimensional graph). BASIC programs as well as text assigned to "hot keys" (up to 10 hot keys each of which will recall from memory up to 80 characters of text and/or mathematical formulas) remain in memory when in CALC mode and can be immediately recalled by pressing the MODE button to enter BASIC mode. Stastical data remain in memory when you switch from CALC to BASIC mode and can later be accessed by going back to CALC. When you turn the computer "OFF" and later turn it "ON" you are returned to the mode you left when you pressed "OFF". Memory contents (BASIC programs, the contents of "hot keys", and stastical data) are all preserved when the computer is "OFF". BASIC MODE: Except for lacking commands for user defined graphics, speech, color, sprites, and sound, TI-74 BASIC is very similar to TI Extended BASIC on the 99/4A. Keeping in mind the limited screen display of the TI-74, 99/4A users should have no trouble programming the TI-74. Although TI-74 BASIC has a few fewer functions than CC40 BASIC the differences between the two are minor. Most CC40 BASIC software listings can be typed into the TI-74 with no modifications at all and will run with no problems. The following functions in CC40 BASIC are not available on the TI-74: -- BEEP (Used in the CC40 with DISPLAT AT. There is no sound at all available on the TI-74). -- ATTACH and RELEASE (A feature of CC40 subprograms I have never actually actually seen used). -- CALL CHAR (There are no user definable display characters). -- CALL INDIC (No user definable display indicators are available). -- CALL SETLANG (No alternative languages for text prompts. All built in text prompts in the TI-74 and its software modules are in English). -- CALL VERSION (The version of BASIC is identical on all TI-74's). -- CALL CLEANUP (Instead you can remove from memory variables not being used in the current program by SAVEing to a non existant device). -- There is no direct access to assembly language except for CALL IO on the TI-74. Therefore the following CALL's of CC40 BASIC are not available on the TI-74; GETMEM POKE PEEK LOAD EXEC RELMEM and DEBUG. The only important CC40 BASIC software I have that can't be modified to work with the TI-74 are "DIR" programs designed to read the directories of mass storage devices such as the Wafertape drive and Quickdisk drive. These programs are very useful because they give you the exact spelling of program and data file names. You need the exact spelling to load from these devices. The directory reading software uses assembly CALL's not available on the TI-74. The only other important assembly CALL known to me on the CC40 is a CALL EXEC(xxxx) to deactivate the battery saving automatic power down. The same thing can be done on the TI-74 by a specific sequence of keypresses. ACCESSORIES AND PERIPHERALS: Standard equipment that comes with the TI-74 includes two book length guides, a set of alkaline batteries, a plastic hard case, and a quick reference card that fits into the inside of the hard case's hinged lid. I really like the hard case and keep my TI-74 in the case most of the time, even when I am actively using the computer as I am now to enter the text of this article. The case is very tough and prevents accidental keypresses. The increased size of the TI-74 plus case does, however, make it more difficult to keep the computer in one's shirt pocket. If you open the case lid all the way you can lean the TI-74 against a small object at a convenient viewing/typing angle and position the case lid over the object's top for stability. Right now as I type this article I have my TI-74 resting against an apple! A cartridge port to the right of the display accepts a solid state software or RAM cartridge. Available software cartridges include LEARN PASCAL, STATISTICS, CHEMICAL ENGINEERING, FINANCE, and MATHEMATICS. The capabilities of these software cartridges are almost identical to cartridges of the same name sold for the CC40 and the TI-95 programmable calculator. When I sent in my TI-74 registration card to TI, I received back a large color brochure describing TI's custom module service for industry. For about $100 per module TI offers to manufacture (burn eproms for) custom TI-74 software modules taylored to a customer's specifications. Specific examples of some custom modules are described in the brochure. For me the most useful TI-74 module is the battery backed 8K RAM. A similar module exists for the CC40. You can save an "image" of the TI-74's memory into the module, remove the module, and later reinsert the 8K RAM and load its contents back into the TI-74. Used this way the 8K RAM serves as a mass storage device. You can also leave the RAM module in the TI-74 and exchange the contents of the computer's memory for what is stored in the module. You can thus keep two different BASIC programs in the computer at the same time, one in the RAM module and one in the computer's memory, switching back and forth between the two. This memory flip-flop trick is something you can't do with a CC40. You can also use the 8K RAM as additional CPU memory by invoking CALL ADDMEM. This makes about 15700 bytes of memory available in BASIC instead of the the TI-74's normal 7710 bytes. The TI-74 has a 10 pin peripheral connector TI calls the Dock Bus. Available TI peripherals that fit this connector include an AC adapter adapter (the "adapter adapter" plugs into the TI-74 and TI's AC9201 AC adapter plugs into the "adapter adapter"), a battery powered thermal printer, a cassette tape recorder interface, and an MS-DOS computer interface. I don't yet own any of these peripherals, so the descriptions below are based on information published by TI and on articles that have appeared in past issues of TI PCC NOTES. The PC-324 THERMAL PRINTER is set up as device #12 and uses an unusual size thermal paper roll. You can either purchase FAX paper and cut it to size with a hacksaw or pay $5 at a dealer for a 3 roll pack of "official" paper. Sort of reminds you of the paper "problem" with the 99/4's Thermal Printer (TP)! The small PC-324 printer is about the same length and width as the TI-74. It runs on batteries or an optional AC adapter. Text is only 24 columns. There is only one text font and there are no dot addressable graphics. From CALC mode you can use the PRINT key at any time to print the screen display. From BASIC mode you can LIST programs or OPEN the printer in a program or from command mode and print whatever you want. The CI-7 CASSETTE INTERFACE CABLE allows you to use most cassette audio recorders, even those that use mineature cassettes, to save BASIC programs or data files to tape. It appears to work the same way as the cassette interface of the never released CC40 PLUS. Its operation also resembles that of the Wafertape drive. You can save several files sequentially on the same tape each with a different file name. If you don't know the exact starting position of a particular file the TI-74 can search the tape from the beginning for a particular file name and when found load that file. The TI-74 can also be programmed to load the next file found on the tape irrespective of file name. Screen prompts are available telling the operator to press the recorder's PLAY, RECORD, and STOP buttons and the computer automatically senses the beginning and end of the requested file. You cannot use the CI-7 to save programs from a CC40. Many have tried and failed to do this. Apparently the TI-74 contains within it specific code needed to operate the CI-7 cassette interface, code which is lacking in the CC40. The PC INTERFACE CABLE connects between the Dock Bus and the 25 pin parallel port of an MS-DOS computer. With this cable you can use the TI-74 to directly control the MS-DOS computer via several device numbers. Addressing device 14 lets you print using a parallel printer connected to the PC. Device 45 lets you direct output from the TI-74 to the PC's monitor for a nice 80 column multi line display. You can save or load TI-74 programs to and from the PC's disk drives by referencing device 100. Text in ASCII format can be saved to the PC's drives with device 101. If you own an MS-DOS computer this cable would seem to be a very useful TI-74 peripheral. Can it be used with the CC40? I don't know, but someone should find out. The PC interface may be the mass storage solution for CC40 owners who cannot get obtain a Quickdisk or Wafertape drive. HEXBUS COMPATABILITY: Superficially the 10 pin Dock Bus looks quite different from the 8 pin HexBus. However, as first noted in 1990 in articles published in TI PCC NOTES and later in an article by Dan Eicher in the March 1992 issue of the Lima User Group newsletter, the Dock Bus and HexBus are electronically identical. Two extra Dock Bus lines not found in the HexBus that allow an external 6 volt source to power the computer or peripheral through the bus. By connecting the proper wires of a HexBus cable to corresponding wires of a Dock Bus cable ALL HEXBUS PERIPHERALS ARE COMPATIBLE WITH THE TI-74! If you don't want to make your own cable you can buy one from L.L. Conner for $15. Plug one end of the Conner cable into the TI-74's Dock Bus and attach a HexBus cable to the other end. With this HexBus/Dock Bus cable I have used my TI-74 with the following HexBus peripherals: RS232, Printer 80, Printer Plotter, Wafertape Drive, and Quickdisk drive. I much prefer to my use Printer 80 with my TI-74 rather than the 24 column PC324 printer. Like the PC324 the Printer 80 can be run on batteries or an AC adapter. Unlike the small hard to find expensive rolls of thermal paper used by the PC324, the Printer 80 uses easily obtainable FAX paper rolls or with a Thermal Ribbon obtainable from Sears or by mail from TI regular sheets of typing paper. MASS STORAGE AND CC40/TI-74 SOFTWARE COMPATABILITY: With my TI-74 I can OLD SAVE and OPEN files to and from my Quickdisk (device 8) with no problems at all. This is in spite of the fact that I have the HexBus rather than the Dock Bus version of the Quickdisk drive. All I need is the HexBus/Dock Bus interface cable made by L.L. Conner. I know of someone who uses a Dock Bus Quickdisk drive with his CC40 also with no problems. The few CC40 applications written for the Wafertape drive assume this device is configured as device #1. That's how I have always used my Wafertape Drive with my own CC40. It is fortunate that the tape drive can be switched to other device numbers because I can't successfully use my Wafertape drive as device 1 with the TI-74. The TI-74 expects the CI-7 cassette interface to be device 1. If I switch my Wafertape drive to some other device number (I use device 2) then I can OLD SAVE and OPEN files to and from wafertapes with my TI-74. I knew when I bought my TI-74 that the syntax of TI-74 BASIC is almost identical to that of CC40 BASIC. I now know that the similarities between the BASICs of these two devices are more profound. Any BASIC program written on a CC40 and saved to Quickdisk or Wafertape will successfully OLD into the TI-74 and if the program doesn't use any of the BASIC functions unique to the CC40 will RUN in the TI-74. Almost my entire library of CC40 BASIC programs stored on disk or wafertape will load RUN out of my TI-74! The two computers use similar 8 bit central processor chips (TMS70C20 for the CC40 and TMS70C46 for the TI-74) that use the same assembly instruction sets and BASIC token codes. GENERAL CONCLUSIONS; COMPARING THE CC40 AND TI-74: The only reason for using for using small "notebook" or "palmtop" computers such as the CC40 or TI-74 is portability and/or ease of operation. The additional memory and better displays of desktop computers mean that in general desktops are more powerful. Software is available for desktops that can accomplish anything that can be done with ROM cartridge or BASIC software available for the CC40 and TI-74. There is a lot to be said for portability! The ability to carry the CC40 or TI-74 around with you and use them anywhere (a classroom the office on a camping trip etc) is the raison d'etre of these small computers. Unlike "modern" laptop computers whose batteries usually last less than 4 hours per charge these small TI machines last tens or a couple of hundred hours of on time on a set of batteries. For use in the field the TI-74 and CC40 and their battery operated peripherals offer lots of convenience. For example, I am typing this article while I lay in bed proped against a couple of pillows. A few minutes ago I made a phone call from the phone by my bed that required me to look up the phone number. I have my name/address/phone data base stored in my TI-74's 8K RAM cartridge, so I did a CALL GET(-1) to store this article in the RAM cartridge and at the same time put my data base in the TI-74's memory. I looked up the number and made the call. Then I did another CALL GET(-1) to bring back my document into memory and put my data base back into the RAM cartridge. ADVANTAGES OF THE CC40: --1-Its CHEAPER. You can get one used for $55. Used TI-74s are hard to find and a new one costs $100. --2-CC40 BASIC is a bit more powerful. --3-The KEYBOARD is physically larger and thus according to some people easier to type on than the keyboard of the TI-74. --4-There is an assembly language word processing cartridge called MEMO PROCESSOR available from TI for the CC40. No commercial word processing software is available for the TI-74. I am using a BASIC word processor program I wrote myself to enter this article into my TI-74. MEMO PROCESSOR is much better than my BASIC word processor. ADVANTAGES OF THE TI-74: --1-CALC MODE. Scientists, engineers, and educators will appreciate the rapid availability of 70 scientific and statistical functions on the TI-74. The same sorts of calculations can be done in BASIC with the CC40 (and the TI-74) by putting formulas into BASIC programs, but doing the math directly from the keyboard is much easier and faster. --2-More user memory is available on the TI-74 than you get in an unexpanded CC40. -- 3-Physical size. The CC40 is just a little too big to get your hand around and is slightly awkward to carry around or hold in one hand. No matter how you carry the CC40 it seems the keyboard overlays are about to fall off and your gripping fingers have trouble finding a place where they don't press some keys. In my opinion the TI-74 is much easier to handle. You can easily and grasp the TI-74 with the fingers of one hand. The hard case prevents dust accumulation, accidental keypresses, and the accidental loss of the quick reference card (or the LEARN PASCAL keyboard overlay). I feel very comfortable about carrying my TI-74 around with me in my hand, in my briefcase, or in my coat or shirt pocket just about everywhere I go. Personally I have no more difficulty typing on the TI-74 keyboard than I do on the CC40. In both cases two finger "must keep looking at the keyboard" is my technique. Touch typing is not really possible on either machine. --4-The DOCK BUS is physically superior to the HexBus. Although the two bus designs are electronically identical the HexBus is structurally flimsy. When inserting a HexBus I/O cable into the bus on a CC40 or HexBus peripheral it is hard to seat the cable properly. There is lots of "play" in the HexBus opening and it is possible to bend some pins in the bus as you fool around with inserting the I/O cable. The HexBus cables themselves are flimsy. They are very flexible and it is difficult to avoid pulling on the cable rather than the small rigid cable end piece when removing an I/O cable from the HexBus. The DockBus and its I/O cables are more substantial. Cables fit snugly into the bus with no free play and little likelyhood of bending a bus pin. The cables are stiffer than HexBus cables and have large easy to grasp ends. Physically the DockBus and its cables seem more substantial and thus probably more reliable than the HexBus. The capabilities of the CC40 and TI-74 are similar. The TI-74 is a better math calculator. The CC40 has a better word processor but both can be used as calculators or text processors. Because of the memory flip-flop capability of the 8K RAM and for physical reasons I prefer the TI-74. SOURCES OF TI-74 SUPPLIES: Available by credit card directly from TI at 806-747-1882: --HX1010 Printer 80, the 80 column HexBus printer, $70 --CI-7 Cassette interface $35 --PC324 Thermal printer $60 --Technical manual $5 --8K constant RAM cartridge $50 --Learn Pascal, Stastics, Mathematics, Finance, Chemical Engineering software cartridges $50 each --TP324 thermal paper and PC Interface cable also probably available directly from TI, prices unknown. Available from EDUCALC at 800-677-7001 or (credit card orders only 24 hours) 800-535-9650 --TI74 (the topic of this article) $99.95 --Statistics, chemical engineering, finance cartridges $39.95 each. --8K constant RAM cartridge $39.95 --PC324 Thermal printer $89.95 --TP324 paper for printer $4.95 --CI-7Cassette interface $26.95 --PA201 AC interface for TI74 (the "adaptor adaptor", uses adaptor below) $6.95 --AC9201 adaptor to power printer and/or TI94 $16.95 --PC interface cable, allows storage of TI74 software on PC disks and use of PC screen controlled by TI74 $54.95 Available from L.L.^Conner Enterprise 1521 Ferry St. LaFayette IN 47904, phone 317-742-8146 --Custom cable to connect HexBus peripherals to the TI-74s DockBus, a special order item, $20 --Custom cable to connect HexBus RS232 to TI99/4A RS232 card, a special order item, $20. --Various HexBus peripherals. Call for availability. Available from T.A.P.E. 1439 Solano Place, Ontario California 91764, phone 714-989-9906 --Quickdisk disk drives, either the DockBus version or the HexBus version (with the L.L.^Conner cable) will work with the TI-74. Jim Lesher, 722 Huntley, Dallas Texas 75214, phone 214-821-9274 --nice selection of HexBus peripherals ============================================================================= C4ICS034 Content-Type: TEXT/plain; SizeOnDisk=13579; name="WAFERTAP.TXT"; CHARSET=US-ASCII Content-Description: WAFERTAP.TXT November 1990 NEVER RELEASED OFFICIAL TI PERIPHERALS: THE WAFERTAPE DIGITAL TAPE DRIVE a hands on description by Charles Good Lima Ohio User Group The WAFERTAPE DIGITAL TAPE DRIVE was supposed to be a step up from cassette data storage. The device is totally under the control of the computer (no manual rewinding or keeping track of cassette counter numbers). A directory on the tape allows the computer to automatically advance the tape to the beginning of any desired file. Recording data digitally (as 1 or 0, on or off) rather than as part of a continuous spectrum of sound frequencies as is done on a regular sound cassette recorder such as T.I.'s Data Recorder, was supposed to be a more reliable way of recording and retrieving data. Had this device been released in 1983 after its debut in January of that year, it and the also never released HexBus interface would have formed an inexpensive mass storage upgrade (compared to using a cassette recorder) for the 99/4A at a time when a new full PE box (SSSD drive, 32K, disk controller) cost anywhere from $550-$1200. The last 99/4A catalog published by TI in the fall of 1983 lists the Wafertape drive for $139.95 and the HexBus interface for $59.95. The wafertape drive was shown at the Consumer Electronics Show in January 1983 together with the first showing of the CC40. It was to be the major mass storage device for the CC40, and is described and pictured in the user guides that come with most CC40 software and peripherales. Unfortunately these user guides now also come with an addendum sheet that states "The Wafertape Digital Tape Drive is not available." The non release of the Wafertape Drive left the CC40 totally without a mass storage device until the 1986/1987 introduction of the Mechatronic HexBus Quickdisk drive. This lack of a mass storage device probably killed most consumer interest in the CC40. I recently purchased for $100 a working Wafertape Drive, serial number 0000007, ATA3883. It is my understanding that the ATA number is a date code, indicating in this case manufacture in the 38th week of 1983. Most 99/4A hardware and software modules have an ATA number. If my understanding of ATA numbers is correct, my Wafertape Drive was not one of those shown at the January 1983 exhibit. I personally know of one other working Wafertape drive, serial number 0000095. I have been told that there are about 10 or 11 working Wafertape Drives in private hands and others that don't work. The Wafertape Drive is comparable in size to other TI HexBus peripherals, measuring about 11.5cm wide, 14.5cm deep and 3.5cm tall. It is designed to be stacked with the HexBus RS232, modem, and Printer/Plotter. It is battery powered with 4 AA cells. You can also use an AC adapter. The front has an on/off switch and a slot for inserting the wafertape. On the back are two HexBus ports, an AC adapter jack, and a rotary switch for setting the device number. The switch on mine has positions 0-9. However, only positions 0-7 work, corresponding to devices 1-8. By accessing each HexBus peripheral individually by number, a single CC40 could control up to 8 Wafertape Drives, if one could somehow gather that many working drives together in one place. Wafertapes come in a cartridge measuring 68x40x5 mm, about as big as the miniature cassettes sold these days for small tape recorders. The top is clear plastic and the bottom is black plastic. T.I. calls these cartridges "wafers". They fit easily and snugly into the slot in the front of the Wafertape Drive. Inside the wafer a dark colored magnetic tape 1.7mm wide (very thin) is wound in a continuous loop, in the same manner as the tape of an "8 track" music cartridge. The tape moves only in one direction and its ends are attached to each other with a piece of reflective silver tape. T.I.'s last 99/4A catalog lists 50 foot ($7.95), 25 foot ($6.95), and 10 foot ($5.95) wafertapes. Five foot wafertapes are also mentioned in the Wafertape User's Guide. Long tapes store more, but it takes longer to find the beginning of a specific file. Official T.I. wafers have a little sliding panel that covers the exposed part of the tape at the edge of the wafer. This slides open as the wafer is inserted into the slot on the Wafertape Drive. I have one such T.I. wafer and I also have some wafers without a T.I. label and without the sliding panel. I wonder who made these "generic" wafers?^^I do know that other wafertape drives were planned or actually sold for other devices. A wafertape drive for the Tandy 100 laptop computer is described in the March 1984 issue of Creative Computing. Also, see the comments below from Tony McGovern about another wafertape device. Maybe my "generic" wafertapes were not made specifically for the TI Wafertape Drive. The method of write protecting wafers is unusual. When I first got my Wafertape Drive I thought it was defective because I always got a "write protected" error message whenever I tried to initialize a wafer. I could find nothing resembling a write protect tab on my wafers, and looking inside the Wafertape Drive slot revealed no evidence of a mechanical pin associated with the "remove the tab and it is write protected" system of protection typically found on most audio and video tape cartridges. It turns out that you have to put a "write enable" paper sticker at a specific location on the top of the wafer in order to write to the wafer. Anything white will do. This "write enable" piece of paper is OPTICALLY sensed from above by the Wafertape Drive. In the absence of the sticker, the optical sensor sees through the transparent wafer upper surface and does not get a reflection off of the black wafer bottom. A second optical sensor detects the silver end/beginning of tape marker. This marker is the only reference point the wafertape drive has to tell the relative position of everything else on the tape. On "8 track" continuous loop music cartridges, the end/beginning of tape marker is detected electronically. This silver marker on a wafertape is detected through a window in the center of the wafer's transparent upper surface. If the "write enable" sticker you are using is too big and covers this window, then the wafer will not be usable as I finally figured out after lots of frustration. When you initialize a wafer with the FORMAT command of the CC40, the tape is advanced until the marker is optically detected, and then the Wafertape Drive prepares a new tape directory area at the beginning of the tape. The entire tape is not magnetically encoded with FORMAT, just the directory area. Software designed to directly read the contents of a wafertape directory reveals that if a previously used wafer is reFORMATted, the old file names are retained in the directory area, but all file lengths are set to zero. The time required for a FORMAT depends on how close the tape is to its beginning when FORMAT begins. Even a 50 foot tape formats very rapidly if it is already almost at its beginning. A directory has room for 16 files irrespective of tape length. Of course short tapes may not have enough room for 16 files if they are of significant length. Files are written to the tape sequentially, with the directory keeping track of the file name, number (0-15), and length. Apparently the Wafertape Drive locates specific files by file number, counting the End-Of-File indicators that pass by the read/write head as the tape is advanced to the start of the desired file. Only the last file can be overwritten by another file of the same name. If you write a file with the same name as a file already on the wafer that is not the last file on the wafer, the old file's directory reference is deleted and the new file of the same is written to fresh space after all the other files currently on the tape. (I hope you understood that.) File types supported include PROGRAM, and INTERNAL or DISPLAY data files. RELATIVE files are not supported, and you can't open data files as APPEND. Although this is not made clear in available documentation, I think that when data files are read from wafertape, the entire file is read into computer memory for manipulation by the controlling program and then later if necessary written back to wafertape. This limits the size of data files. Only one wafertape file can be opened at a time. To compare the speeds of the Quickdisk and Wafertape drives, I timed the SAVE and OLD of a 15300 byte text file from Memo Processor using a newly FORMATed wafer and disk. Wafertape: SAVE, 4 min 25 sec; OLD; 3 min, 10 sec. Quickdisk: SAVE, 2 min 15 sec; OLD, only 38 seconds. Why wasn't the Wafertape Digital Tape Drive ever officially released? It just did not meet T.I.'s standards for reliability. It does not work well on battery power. Even with four newly installed, fresh alkaline AA batteries, you almost always get an I/O error 25 (low batteries in peripheral) when you try to load something, and you often get the same error when you try to SAVE while on battery power. The Wafertape Drive only works with much reliability when operated with the AC adapter. Apparently the speed at which the tape crosses the Wafertape Drive's read/write head is critical, and variations in this speed are not tolerated. With any battery, continuous power drain results in a voltage decrease compared to the initial voltage put out by the battery. Such a voltage decrease slows down the drive motor. Also, as the Wafertape Drive operates it turns itself on and off several times as it loads or stores data. Starting an electric motor requires an immediate surge of extra current compared to the current needed to keep the motor operating at constant speed once it has started. It is possible that the Wafertape Drive's AA batteries are not able to maintain constant voltage with all the required on/off cycles. In addition to the battery problem, it is sometimes possible to write data beyond the end of the wafertape and wipe out the directory on the other side of the reflective end/beginning of tape marker. This renders all files on the tape useless. I have managed to overwrite the end of a wafertape on two occasions. At other times, when I deliberately tried to do this, the CC40 would not let me write past the end of a wafertape. I sometimes get I/O error 6 (device error, try again) with the Wafertape drive for no reason I can determine. Sometimes trying again doesn't work. I never get these error messages when using my Quickdisk drive. Finally, I suspect that wafertapes are not as durable as disks. The tape is very tiny and is subject to a lot of physical movement and twisting as it moves within the wafer. I suspect that with time the tape may break. I know for example that I have had a higher percentage of my "8 track" music tapes break compared to my reel to reel cassette music tapes. Let me quote from a letter received recently from Tony McGovern of Australia, senior author of FUNNELWEB. "Wafer-tapes were always a disaster area! I think they appeared in one of Sinclair's UK machines. The other place they appeared, also in the UK, was in an abomination produced by ICL sold here, a computer phone -a combination of low end PC with modem/phone all built in- but no disk drive, only the wretched unreliable wafertape. Telecom Australia probably has a warehouse full of these things that they would rather not be reminded of. They had a great marketing campaign to sell these several years ago and no one wanted the turkeys." I do use my Waertape drive. It isn't that unreliable. I have a little briefcase in which I can keep my CC40, the Wafertape Drive, my HexBus printer/plotter, a power strip, and all the necessary AC adapters all pluged in and ready to go. I can open the briefcase and plug in the power strip and use the peripherals as they sit in the briefcase. I can also use the printer/plotter and CC40 while still in the briefcase using battery power, but I have given up trying to use the Wafertape Drive with battery power. I keep my HexBus RS232 and Quickdisk drive pluged in (these two devices both REQUIRE AC power) next to my 99/4A. If possible, anything saved to wafertape ALSO eventually gets save to disk with the Quickdisk drive, which I find to be quite reliable. ============================================================================= C4ICS035 The attached are all text files. They are listings of CC40 BASIC programs, including the all important BASIC word processor. One of them is slightly modified for the TI74 from a similar CC40 program. The DIR program is for the Mechatronics disk drive and has been modified by me to run programs directly from the disk directory. Unfortunately parts of the program are unlistable and thus cannot be included in a text listing. ------------------------------------- From: Charles W. Good E-mail: cgood@.bright.net (Charles W. Good) Content-type: TEXT/plain; CHARSET=US-ASCII; name=10CHRSET.TXT; SizeOnDisk=496 Content-description: 10CHRSET.TXT 90 REM MAKES PRINTER/PLOTTER PRINT ITS CHAR SET 100 OPEN #1,"10",OUTPUT 110 FOR K=32 TO 47 120 PRINT #1,K;CHR$(K);" "; 130 PRINT #1,K+16;CHR$(K+16) 140 NEXT K 150 PRINT #1,CHR$(10) 160 FOR L=64 TO 79 170 PRINT #1,L;CHR$(L);" "; 180 PRINT #1,L+16;CHR$(L+16) 190 NEXT L 200 PRINT #1,CHR$(10) 210 FOR M=96 TO 111 220 PRINT #1,M;CHR$(M);" "; 230 PRINT #1,M+16;CHR$(M+16) 240 NEXT M 250 CLOSE #1 260 END --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=ADDRESS.TXT; SizeOnDisk=1263 Content-description: ADDRESS.TXT 90 REM written by Charles Good, Lima Ohio User Group, May 1991 100 PRINT " --NAME/PHONE/ADDRESS FILE--":READALL=0:PAUSE 1 102 !INPUT "READ ALL NAMES? Y/N ";YN$ 104 !IF YN$="Y"THEN READALL=1:GOTO 120 106 !IF YN$="y"THEN READALL=1:GOTO 120 110 PRINT "USE UPPER CASE TO ":PAUSE .5 112 INPUT "ENTER DESIRED LAST NAME- ";INPUT$ 120 READ FN$:IF FN$="END"THEN PRINT "END OF FILE":PAUSE 1:RESTORE 1000:GOTO 100 125 READ LN$,REST$:IF READALL=1 THEN 300 127 IF POS(LN$,INPUT$,1)=0 THEN 120 200 INPUT "Is the person "&FN$&" "&LN$&"? ";YN$ 210 IF YN$="Y"THEN 300 215 IF YN$="y"THEN 300 220 GOTO 120 300 PRINT FN$&" "&LN$&" "&REST$:PAUSE 305 IF READALL=1 THEN 120 330 RESTORE 1000:GOTO 100 990 REM FIRST NAME,LAST NAME,OTHER INFORMATIN such as phone number and address 995 REM Use ONLY UPPERCASE in DATA STATEMENTS 1000 DATA JACK,SUGHRUE,508-476-7630 BOX 459 EAST DOUGLAS MA 01516 1075 DATA JIM,PETERSON,614-235-3545 156 COLLINGWOOD AVE COLUMBUS OH 43213 1090 DATA L.L.,CONNER,317-742-8146 1521 FERRY ST. LAFAYETTE IN 47904 1130 DATA -,MICROPENDIUM,P.O. BOX 1343 ROUND ROCK TX 78680 1215 DATA -,COMPETITION COMPUTER,414-672-4010 2219 S. MUSKEGO AVE MILWAUKEE53215 10000 DATA END --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=ARROW.TXT; SizeOnDisk=1530 Content-description: ARROW.TXT 10 REM ARROW GAME 20 REM BY STEPHEN GUTKNECHT, TIPCC NOTES V13N3P14 25 REM Press any key exactly when arrow hits target. 27 REM Delay factor is 1-99 30 REM 1/07/87 1000 WS=5! DEFINE TARGET LIMIT 2000 DISPLAY ERASE ALL,"Random Seed? 000"; 2020 ACCEPT AT(14)SIZE(-3)NULL(0)VALIDATE(DIGIT),S 3000 DISPLAY ERASE ALL,"Delay for game?"; 3010 PAUSE .5 3050 ON ERROR STOP 3060 ON BREAK STOP 3100 ACCEPT AT(17)SIZE(2)VALIDATE(DIGIT),GD 3210 ON BREAK ERROR 3500 GS=0 3510 GN=0 4000 S=S+1! Createdifferent seed for each game 4100 RANDOMIZE S 4500 KP=0 4510 TL=INT(((31-WS)*RND)+WS)+1 4600 RV=INT(2*RND) 4800 ON (RV+1)GOSUB 7000,7200 4900 DISPLAY ERASE ALL AT(TL),"*"; 5000 DISPLAY AT(AL),AR$; 5010 PAUSE .7 5100 IF GD=0 THEN 5500 5200 L=FP 5210 DISPLAY AT(L-LC),AF$; 5300 DL=1 5310 CALL KEY(KEY,KP):IF KP THEN 6000 5320 IF DL=GD THEN 5400 5330 DL=DL+1 5340 GOTO 5310 5400 L=L+LC 5410 IF L=(TL+LC-RV)THEN 6100 5420 GOTO 5210 5500 L=FP 5510 DISPLAY AT(L-LC),AF$; 5520 CALL KEY(KEY,KP) 5530 L=L+LC 5540 IF L=(TL+LC-RV)THEN 6100 5590 GOTO 5510 6000 IF L=(TL-RV)THEN 6200 6100 DISPLAY ERASE ALL,"Lose.."; 6120 GOTO 6500 6200 DISPLAY ERASE ALL,"Win!!!"; 6210 GS=GS+1 6500 PAUSE .3 6510 GN=GN+1 6520 DISPLAY AT(10),"Score:";GS; 6530 DISPLAY AT(22),"Games:";GN; 6600 CALL KEY(KEY,KP) 6610 IF KP=0 THEN 6600 6990 GOTO 4500 7000 FP=2 7010 LC=1 7020 AL=1 7030 AR$=">" 7040 AF$="->" 7190 RETURN 7200 FP=29 7210 LC=-1 7220 AL=31 7230 AR$="<" 7240 AF$="<-" 7300 TL=(31-TL)+1 7390 RETURN --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=BARGRAPH.TXT; SizeOnDisk=540 Content-description: BARGRAPH.TXT 80 REM BAR GRAPH for printer/plotter 90 REM From TIPCC Notes v12n4p21 (1989) 92 REM enter up to 20 values between 0 and 21 95 REM Enter "E" or "e" to indiate end of data list 100 DIM X(20) 110 INPUT X$ 120 IF X$="E"OR X$="e"THEN 200 130 K=K+1 140 X(K)=VAL(X$) 150 GOTO 110 200 OPEN #1,"10",OUTPUT 210 PRINT #1,CHR$(19) 300 FOR I=1 TO K 310 Y$=STR$(X(I)*10) 320 P$="L(0,0),("&Y$&",0),("&Y$&",-20),(0,-20),(0,0)" 330 PRINT #1,"O" 340 PRINT #1,P$ 350 PRINT #1,"M(0,-21)" 360 NEXT I 400 PRINT #1,CHR$(17) 410 CLOSE #1:END --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=BRHYTHM.TXT; SizeOnDisk=2051 Content-description: BRHYTHM.TXT 900 REM Biorhythm, from TIPCC Notes v13n1p30 (1988) 1000 A$="Biorhythms":PRINT A$:PAUSE 11010 INPUT "Use Printer? Y/N ";Z$ 1020 IF Z$="Y"OR Z$="y"THEN PN=1 ELSE 1100 1030 INPUT "Device Number? ";D$ 1070 OPEN #1,D$,OUTPUT1080 IF D$="10"THEN PRINT #1,CHR$(18) 1090 PRINT #1:PRINT #1,A$:PRINT #1 1100 B$="Birthday ":T$="Today ":I$="(mmdd.yyyy)? ":IF PN=0 THEN PAUSE ALL 1105 DEG:Z=1:INPUT B$&I$;D$ 1110 GOTO 1800 1115 DEG:Z=1:INPUT B$&I$;D$ 1140 PRINT #PN,B$&" ";D$:IF PN=1 THEN PRINT #1 1145 E=X1150 Z=2:INPUT T$&I$;D$ 1155 GOTO 1800 1190 PRINT #PN,T$&" ";D$:IF PN=1 THEN PRINT #1 1195 F=X1200 G=F-E1210 PRINT #PN,G;"days old" 1220 IF PN=1 THEN PRINT #1 1230 D$=" Days into cycle " 1240 P$=" % through cycle " 1250 M$=" Amplitude " 1300 PRINT #PN,"Physical Cycle:" 1305 X=G/23:X=X-INT(X):M=X:X=23*X 1310 X=X+.1:X=INT(X)1315 H=X:X=X/23:X=1000*X1320 X=INT(X):X=X/10:T=X 1325 GOSUB 1700 1400 PRINT #PN,"Emotional Cycle:" 1405 X=G/28:X=X-INT(X):M=X:X=28*X 1410 X=X+.1:X=INT(X) 1415 H=X:X=X/28:X=1000*X 1420 X=INT(X):X=X/10:T=X 1425 GOSUB 1700 1500 PRINT #PN,"Intellectual Cycle:" 1505 X=G/33:X=X-INT(X):M=X:X=33*X 1510 X=X+.1:X=INT(X) 1515 H=X:X=X/33:X=1000*X 1520 X=INT(X):X=X/10:T=X 1525 GOSUB 1700 1600 INPUT "Another solution (Y/N)? ";Z$ 1605 IF Z$="Y"OR Z$="y"THEN 1610 ELSE END 1610 IF PN=1 THEN 1090 ELSE 1100 1700 IF PN=1 THEN PRINT #1 1705 PRINT #PN,D$;H 1710 IF PN=1 THEN PRINT #1 1715 PRINT #PN,P$;T 1720 IF PN=1 THEN PRINT #1 1725 M=INT(1000*SIN(360*M))/1000 1730 PRINT #PN,M$;M 1735 IF PN=1 THEN PRINT #1 1740 RETURN 1800 X=VAL(D$):B=X:GOSUB 1950:X=0 1805 GOSUB 1950:IF X=A THEN 1900 1830 X=13:GOSUB 1950:X=B:IF X>=A THEN 1960 1835 X1=365*D+C+31*B-311840 X=3:GOSUB 1950:X=B:IF X>A THEN 1960 1845 D=D-11850 X=X1+INT(D/4) 1855 X1=INT(D/100)1860 X1=.75+.75*X1 1865 X1=INT(X1)1870 X=X-X1 1895 ON Z GOTO 1140,1190 1900 E$="Entry error: try again (Y/N)?" 1910 INPUT E$;E$ 1920 IF E$="n"OR E$="N"THEN 1999 1930 ON Z GOTO 1 1999 REM --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=CALENDA2.TXT; SizeOnDisk=1484 Content-description: CALENDA2.TXT 90 REM PRINTS CALENDAR ON ANY PRINTER 100 DIM Q(12),C$(5) 110 DATA 31,28,31,30,31,30,31,31,30,31,30,31 120 FOR I=1 TO 12:READ Q(I):NEXT I 130 DATA "JANUARY ","FEBRUARY ","MARCH ","APRIL ","MAY ","JUNE " 140 DATA "JULY ","AUGUST ","SEPTEMBER","OCTOBER ","NOVEMBER ","DECEMBER " 150 INPUT "ENTER MONTH (1-12) ";M 151 PRINT "PRINTER NAME ?" 160 IF M<1 OR M>12 THEN 150 170 INPUT "ENTER YEAR (>1582) ";R 180 IF R<1583 THEN 170 190 IF R-4*INT(R/4)=0 THEN Q(2)=29 200 IF R-100*INT(R/100)=0 THEN Q(2)=28 210 IF R-400*INT(R/400)=0 THEN Q(2)=29 220 R1=R-1:R2=R+INT(R1/4)-INT(R1/100)+INT(R1/400) 230 FOR I=0 TO M-1:R2=R2+Q(I):NEXT I 240 D1=R2-7*INT(R2/7) 250 RESTORE 130:FOR I=1 TO M:READ M$:NEXT I 255 INPUT "PRINTER NAME ? ";PR$ 260 OPEN #1,PR$,OUTPUT 265 PRINT #1,CHR$(4) 270 PRINT #1,TAB(3);M$;" ";R 280 PRINT #1,CHR$(18); 285 PRINT #1,CHR$(2) 290 PRINT #1," SUN MON TUE WED THU FRI SAT" 300 PRINT #1 310 C$(0)=RPT$(" ",D1) 320 FOR I=1 TO (7-D1):C$(0)=C$(0)&" "&STR$(I)&" ":NEXT I 330 PRINT #1,C$(0) 340 C$(0)="":C$(4)="":C$(5)="" 350 I=8-D1 360 FOR K=1 TO 5 370 IF K=1 THEN C$(K)=" " ELSE C$(K)=" " 380 FOR L=1 TO 7 390 IF I>8 THEN B$=" " ELSE B$=" " 400 IF L=7 THEN B$="" 410 C$(K)=C$(K)&STR$(I)&B$ 420 I=I+1:IF I>Q(M)THEN 450 430 NEXT L 440 NEXT K 450 FOR I=1 TO 5:PRINT #1:PRINT #1,C$(I):NEXT I 460 PRINT #1 470 CLOSE #1:GOTO 150 --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=CALENDAR.TXT; SizeOnDisk=1193 Content-description: CALENDAR.TXT 90 REM PRINTS CALENDAR ON PRINTER PLOTTER 100 DIM Q(12) 105 DATA 31,28,31,30,31,30,31,31,30,31,30,31 110 FOR I=1 TO 12:READ Q(I):NEXT I 115 DATA "JANUARY ","FEBRUARY ","MARCH ","APRIL ","MAR ","JUNE " 120 DATA "JULY ","AUGUST ","SEPTEMBER","OCTOBER ","NOVEMBER ","DECEMBER " 130 INPUT "Enter Month (1-12): ";M 135 IF M<1 OR M>12 THEN 130 140 INPUT "Enter Year (> 1582): ";R 145 IF R<1583 THEN 140 150 IF R-4*INT(R/4)=0 THEN Q(2)=29 155 IF R-100*INT(R/100)=0 THEN Q(2)=28 160 IF R-400*INT(R-400)=0 THEN Q(2)=29 165 R1=R-1:R2=R+INT(R1/4)-INT(R1/100)+INT(R1/400) 170 FOR I=0 TO M-1:R2=R2+Q(I):NEXT I 175 D1=R2-7*INT(R2/7) 180 RESTORE 115:FOR I=1 TO M:READ M$:NEXT I 185 OPEN #1,"10,S=0",OUTPUT 190 PRINT #1,TAB(3);M$;" ";R 210 PRINT #1," Su Mo Tu We Th Fr Sa" 225 C$=" "&RPT$(" ",D1) 230 FOR I=1 TO 7-D1:C$=C$&" "&STR$(I):NEXT I 235 PRINT #1,C$ 245 I=8-D1 250 C$=" " 255 FOR L=1 TO 7 260 IF I>9 THEN B$=" " ELSE B$=" " 265 C$=C$&B$&STR$(I) 270 I=I+1:IF I>Q(M)THEN PRINT #1,C$:GOTO 300 275 NEXT L 280 PRINT #1,C$ 285 GOTO 250 300 PRINT #1 305 CLOSE #1:GOTO 130 --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=CATWAF.TXT; SizeOnDisk=1160 Content-description: CATWAF.TXT 90 REM CATALOG PROGRAM COPIED FROM WAFERTAPE USER GUIDE 100 INPUT "DRIVE NUMBER: ";DN 110 LINPUT "LIST DEVICE: ";LD$ 120 OPEN #1,LD$,OUTPUT 130 PRINT #1,"File # File Name # Of Recs." 140 IMAGE " ## ############## #### " 150 RECN=0 160 CALL GETMEM(13,CATADDR) 170 CALL GETMEM(22,BUFFADDR) 180 CALL SPLIT(BUFFADDR+21,MSB,LSB) 190 CALL SPLIT(RECN,MSB2,LSB2) 200 PAB$=CHR$(DN)&CHR$(14)&CHR$(0)&CHR$(LSB2)&CHR$(MSB2) 210 PAB$=PAB$&CHR$(32)&CHR$(0)&CHR$(0)&CHR$(0)&CHR$(0) 220 PAB$=PAB$&CHR$(LSB)&CHR$(MSB) 230 CALL IO(PAB$,STATUS) 240 IF STATUS=0 THEN 300 250 IF STATUS=3 THEN CLOSE #1:STOP 260 PRINT "READ ERROR--";STATUS:PAUSE:CLOSE #1:STOP 300 FILE$="" 310 FOR I=1 TO 12 320 CALL PEEK(BUFFADDR+21-I,K) 330 FILE$=FILE$&CHR$(K) 340 NEXT I 380 CALL PEEK(BUFFADDR+7,K,L) 390 MAXSIZ=K*256+L 430 CALL PEEK(BUFFADDR+5,K,L) 440 NRECS=K*256+L 480 CALL PEEK(BUFFADDR+4,FLAGS) 490 PRINT #1,USING 140,RECN,FILE$,NRECS; 530 PRINT #1 540 RECN=RECN+1 550 GOTO 190 610 SUB SPLIT(DATAVAL,MSB,LSB) 620 MSB=INT(DATAVAL/256) 630 LSB=DATAVAL-MSB*256 640 SUBEND --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=DATATRAN.TXT; SizeOnDisk=1965 Content-description: DATATRAN.TXT 100 !DATA TRANSFER PROGRAM 110 !CC40 ENHANCED BASIC 120 !SET UP 130 N$="NAME: ":T$="TYPE: ":P$="PRICE: ":Q$="QUANTITY; " 140 IMAGE NAME: ##################### TYPE: ############### 150 IMAGE QUANTITY: #### AT $######.## 160 !SET UP FOR OLD OR NEW FILES 170 DISPLAY "ENTER DEV.FILE: "; 180 ACCEPT AT(17)SIZE(-13)VALIDATE(UALPHA,NUMERIC)NULL("1.DATA")REC,DF$ 190 DISPLAY AT(1),"OLD OR NEW FILE? (O OR N) "; 200 ACCEPT SIZE(-1)VALIDATE("OoNn")REC,K$ 210 IF K$="N"OR K$="n"THEN FORMAT 1 220 OPEN #1,DF$,DISPLAY 230 IF K$="O"OR K$="O"THEN GOSUB 470 240 !ACCEPT DATA FROM KEYBOARD 250 DISPLAY ERASE ALL,N$;:ACCEPT SIZE(-20)VALIDATE(ALPHANUM),NAME$ 260 DISPLAY ERASE ALL,T$;:ACCEPT SIZE(-15)VALIDATE(ALPHANUM),TYPE$ 270 DISPLAY ERASE ALL,Q$;:ACCEPT SIZE(-4)VALIDATE(DIGIT),Q 280 DISPLAY ERASE ALL,P$;:ACCEPT SIZE(-9)VALIDATE(NUMERIC),P 290 ! PROOF THE INPUT DATA 300 DISPLAY ERASE ALL USING 140,NAMES$,TYPE$; 310 DISPLAY SIZE(-28)USING 150,Q,P;:PAUSE 320 ! CHECK FOR CORRECTIONS 330 DISPLAY AT(1)ERASE ALL,"CORRECTIONS? (Y OR N) ";:GOSUB 450 340 IF K$="Y"OR K$="y"THEN GOSUB 490 350 ! OUTPUT THE DATA TO WAFERTAPE 360 PRINT #1,NAME$:PRINT #1,TYPE$:PRINT #1,Q:PRINT #1,P 370 !CHECK FOR MORE DATA 380 DISPLAY AT(1)ERASE ALL,"MORE DATA? (Y OR N)";:GOSUB 450 390 !STOP OR REPEAT 400 IF K$="N"OR K$="n"THEN CLOSE #1:STOP ELSEGOTO 250 410 ! 420 ! SUBROUTINES 430 ! 440 !CHECK FOR YES OR NO 450 ACCEPT SIZE(-1)VALIDATE("YyNn"),K$:RETURN 460 !ADVANCE TO END OF FILE,IF OLD FILE 470 IF EOF(1)THEN RETURN ELSE INPUT #1,A$,B$,C,D:GOTO 470 480 ! EDIT AND CORRECT DATA ENTRY 490 DISPLAY ERASE ALL,N$;NAME$; 500 ACCEPT AT(7)SIZE(-20)VALIDATE(ALPHANUM)REC,NAME$ 510 DISPLAY ERASE ALL,T$;TYPE$; 520 ACCEPT AT(7)SIZE(-15)VALIDATE(ALPHANUM)REC,TYPE$ 530 DISPLAY ERASE ALL,Q$;Q;:ACCEPT AT(12)SIZE(-4)VALIDATE(DIGIT)REC,Q 540 DISPLAY ERASE ALL,P$;:DISPLAY SIZE(-10)USING"$######.##",P; 550 ACCEPT AT(9)SIZE(-9)VALIDATE(NUMERIC)REC,P 560 RETURN --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=DIR.TXT; SizeOnDisk=2749 Content-description: DIR.TXT 90 REM Quickdisk DIR program modified by Charles Good. 95 REM Some lines can't be typed in such as 330 and 340. You need the 97 REM original DIR program to make this listing work. 100 ! "8,DIR" 110 ! 3.3.1986/SEPTEMBER 1990 120 ! V3.1 130 PRINT " --QUICKDISK Catalog--":PAUSE 1.5 132 PRINT "Press ENTER to show next file,":PAUSE 1.5 134 PRINT "or RUN to boot listed program.":PAUSE 1.5 140 PRINT " Printer ? [Y/N]":Q$=KEY$ 150 IF Q$="n"OR Q$="N"THEN 260 ELSE IF Q$="y"OR Q$="Y"THEN DR=1 ELSE 140 160 LINPUT "Printer device number: ";Q$ 170 ON ERROR 220:OPEN #6,Q$,OUTPUT 175 IF Q$="10"THEN PRINT #6,CHR$(18) 180 LINPUT "ENTER QuickDisk name: ";R$ 190 PRINT #6," Directory for QUICKDISK ";R$ 200 PRINT #6,"FILE #//";"FILE NAME//";"FILE LENGTH//";"TYPE" 210 CLOSE #6:GOTO 260 220 CALL ERR(KD,TP,DT,ZE):IF KD=24 THEN Z=Z+1 230 IF Z>3 THEN PRINT "NO PRINTER ATTACHED!":PAUSE 2.1:END 240 PRINT "INVALID PRINTER NUMBER!":PAUSE:RETURN 160 250 PRINT "Kd.:";KD;"Typ:";TP;"Dt:";DT;"Ze:";ZE:PAUSE:STOP 260 !TEST1 330 CALL GETMEM(18, 340 CALL SPLIT( 350 FNU 355 PRINT " --SEARCHING DISK--" 360 CALL SPLIT(FNU 370 PAB$=CHR$(8)&CHR$(14)&CHR$(0)&CHR$(L)&CHR$(H)&CHR$(0)&CHR$(18) 380 PAB$=PAB$&RPT$(CHR$(0),3)&CHR$( 390 CALL IOX(PAB$,STATUS):IF DR=1 THEN 420 395 IF STATUS<>3 THEN 410 400 IF STATUS=3 THEN PRINT "TOTAL BYTES THIS DISK: ";SM:PAUSE 405 PRINT "CATALOG COMPLETE":PAUSE 1.5:STOP 410 IF STATUS<>0 THEN PRINT "IO ERROR":PAUSE:STOP 420 CALL PEEK( 430 NAME$="":NAME3$="" 440 FOR I=16 TO 5 STEP -1 450 CALL PEEK( 460 NEXT I 470 CALL PEEK( 480 RLEN=MSB*256+LSB 490 CALL PEEK( 500 RNUM=MSB*256+LSB 505 IF STATUS<>0 THEN 550 510 CALL PEEK( 520 PRINT USING 530,FNU 521 SM=SM+(RLEN*RNUM) 522 FOR I=1 TO 12 523 NAME2$=SEG$(NAME$,I,1):NAM=ASC(NAME2$) 525 IF NAM>32 AND NAM<127 THEN NAME3$=NAME3$&CHR$(NAM) 526 NEXT I 527 CALL KEY(K,S):IF S=0 THEN 527 528 IF K=191 THEN PRINT " --Searching disk for RUN--":RUN "8."&NAME3$ 530 IMAGE "F## ############ ##### #### ###" 540 IF DR=0 THEN 650 550 IF Q$="10"THEN OPEN #6,"10.C=N",OUTPUT:PRINT #6,CHR$(18):GOTO 560 555 OPEN #6,Q$,OUTPUT 560 IF STATUS=3 THEN 610 570 IF STATUS<>0 THEN PRINT "IO ERROR":PAUSE:STOP 580 IF FLAGS=0 THEN T$="PROGRAMM" ELSE IF FLAGS=1 THEN T$="DIS-DATEN" 590 IF FLAGS=9 THEN T$="INT-DATEN" 600 PRINT #6,USING 630,DNR,NAME$,RLEN*RNUM,T$ 605 DNR=DNR+1:GOTO 620 610 PRINT #6,USING"TOTAL DATA STORED: ##### bytes",SM:GOTO 400 620 CLOSE #6 630 IMAGE "## ############ ##### #########" 650 FNU 660 GOTO 355 670 SUB SPLIT(ADR,LEFT,RIGHT) 680 LEFT=INT(ADR/256) 690 RIGHT=ADR-(LEFT*256) 700 !PRINT ADR;LEFT;RIGHT:PAUSE 710 SUBEND --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=DIRWAFER.TXT; SizeOnDisk=2506 Content-description: DIRWAFER.TXT 100 ! "1,DIR" 110 ! 3.3.1986/AUGUST 1990 120 ! V3.1 130 PRINT " --Wafertape Catalog--":PAUSE 1.5 132 PRINT "Press ENTER to show next file,":PAUSE 1.5 134 PRINT "or RUN to boot listed program.":PAUSE 1.5 140 PRINT " Printer ? [Y/N]":Q$=KEY$ 150 IF Q$="n"OR Q$="N"THEN 260 ELSE IF Q$="y"OR Q$="Y"THEN DR=1 ELSE 140 160 LINPUT "Printer device number: ";Q$ 170 ON ERROR 220:OPEN #6,Q$,OUTPUT 175 IF Q$="10"THEN PRINT #6,CHR$(18) 180 LINPUT "ENTER Wafertape name: ";R$ 190 PRINT #6," Directory for Wafertape ";R$ 200 PRINT #6,"FILE #//";"FILE NAME//";"TOTAL FILE LENGTH" 210 CLOSE #6:GOTO 260 220 CALL ERR(KD,TP,DT,ZE):IF KD=24 THEN Z=Z+1 230 IF Z>3 THEN PRINT "NO PRINTER ATTACHED!":PAUSE 2.1:END 240 PRINT "INVALID PRINTER NUMBER!":PAUSE:RETURN 160 250 PRINT "Kd.:";KD;"Typ:";TP;"Dt:";DT;"Ze:";ZE:PAUSE:STOP 260 !TEST1 330 CALL GETMEM(18, 340 CALL SPLIT( 350 FNU 355 PRINT " --SEARCHING WAFER--" 360 CALL SPLIT(FNU 370 PAB$=CHR$(1)&CHR$(14)&CHR$(0)&CHR$(L)&CHR$(H)&CHR$(0)&CHR$(18) 380 PAB$=PAB$&RPT$(CHR$(0),3)&CHR$( 390 CALL IO(PAB$,STATUS):IF DR=1 THEN 420 400 IF STATUS=26 THEN PRINT "CATALOG COMPLETE":PAUSE:STOP 405 IF STATUS=6 THEN PRINT "CATALOG COMPLETE":PAUSE:STOP 410 IF STATUS<>0 THEN PRINT "IO ERROR":PAUSE:STOP 420 CALL PEEK( 430 NAME$="":NAME3$="" 440 FOR I=16 TO 5 STEP -1 450 CALL PEEK( 460 NEXT I 470 CALL PEEK( 480 RLEN=MSB*256+LSB 490 CALL PEEK( 500 RNUM=MSB*256+LSB 503 IF STATUS=6 THEN 510 505 IF STATUS<>0 THEN 550 510 CALL PEEK( 520 PRINT USING 530,FNU 522 FOR I=1 TO 12 523 NAME2$=SEG$(NAME$,I,1):NAM=ASC(NAME2$) 525 IF NAM>32 AND NAM<127 THEN NAME3$=NAME3$&CHR$(NAM) 526 NEXT I 527 CALL KEY(K,S):IF S=0 THEN 527 528 IF K=191 THEN PRINT " --Searching wafer for RUN--":RUN "1."&NAME3$ 530 IMAGE "F## ############ ##### #### ###" 540 IF DR=0 THEN 650 550 IF Q$="10"THEN OPEN #6,"10.C=N",OUTPUT:PRINT #6,CHR$(18):GOTO 560 555 OPEN #6,Q$,OUTPUT 560 IF STATUS=26 THEN 610 565 IF STATUS=6 THEN 610 570 IF STATUS<>0 THEN PRINT "IO ERROR":PAUSE:STOP 580 !IF FLAGS=0 THEN T$="PROGRAMM" ELSE IF FLAGS=1 THEN T$="DIS-DATEN" 590 !IF FLAGS=9 THEN T$="INT-DATEN" 600 PRINT #6,USING 630,DNR,NAME$,RLEN*RNUM,T$ 605 DNR=DNR+1:GOTO 620 610 PRINT #6,USING"TOTAL DATA STORED: ##### bytes",SM:GOTO 400 620 CLOSE #6 630 IMAGE "## ############ ##### #########" 650 FNU 660 GOTO 355 670 SUB SPLIT(ADR,LEFT,RIGHT) 680 LEFT=INT(ADR/256) 690 RIGHT=ADR-(LEFT*256) 700 !PRINT ADR;LEFT;RIGHT:PAUSE 710 SUBEND --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=FINHLP40.TXT; SizeOnDisk=8598 Content-description: FINHLP40.TXT 1 REM for 18K CC40. Must break up for 6K CC40 to use 2 PRINT " FINANCIAL PLANNING HELPS":PAUSE 3 4 PRINT " by Rob't M Charlson":PAUSE 3 6 PRINT " of DOLLAR DIRECTORS,INC.":PAUSE 3 8 DISPLAY " INVESTMENT RESULTS (Y/N)? ":K$=KEY$ 10 IF K$="Y"OR K$="y"THEN 12 ELSE IF K$="N"OR K$="n"THEN 48 ELSE 8 12 DISPLAY " Press Prog # Any Key= Next":PAUSE 3 14 DISPLAY " 1=LUMP SUM inv 2=Monthly Inv":K$=KEY$ 16 IF K$="1"THEN 100 ELSE IF K$="2"THEN 200 ELSE 18 18 DISPLAY " 3=Check-A-Month 4=PV-Pension":K$=KEY$ 20 IF K$="3"THEN 300 ELSE IF K$="4"THEN 400 ELSE 22 22 DISPLAY " 5=A.P.R.% 6=MO-MTG-PMT":K$=KEY$ 24 IF K$="5"THEN 500 ELSE IF K$="6"THEN 600 ELSE 26 26 DISPLAY " 7= Amortize Mortgage Payments":K$=KEY$ 28 IF K$="7"THEN 700 ELSE 48 48 DISPLAY " TI's Finance Module (Y/N)? ":K$=KEY$ 50 IF K$="Y"OR K$="y"THEN 52 ELSE IF K$="N"OR K$="n"THEN 96 ELSE 48 52 DISPLAY " With Finance Module inserted ":PAUSE 2 54 DISPLAY "Press Prog # Any key= Next":PAUSE 3 56 DISPLAY " 1=Directory 2=Calendar ":K$=KEY$ 58 IF K$="1"THEN 71 ELSE IF K$="2"THEN 72 ELSE 60 60 DISPLAY " 3=Cash Flow 4=Data Forecast":K$=KEY$ 62 IF K$="3"THEN 73 ELSE IF K$="4"THEN 74 ELSE 64 64 DISPLAY " 5=Bus Forecast 6=Lease/Purch":K$=KEY$ 66 IF K$="5"THEN 75 ELSE IF K$="6"THEN 76 ELSE 68 68 DISPLAY " 7=Machine Repl 8=Money Eval":K$=KEY$ 70 IF K$="7"THEN 77 ELSE IF K$="8"THEN 78 ELSE 96 71 RUN "DIR" 72 RUN "CAL" 73 RUN "CFLOW" 74 RUN "FCAST" 75 RUN "FNEED" 76 RUN "LPURC" 77 RUN "MREPL" 78 RUN "MEVAL" 96 DISPLAY "1=ReRun Module 2=ReRun Inv":K$=KEY$ 98 IF K$="1"THEN 56 ELSE IF K$="2"THEN 14 ELSE 96 100 DISPLAY REC," LUMP SUM Investment Results:":PAUSE 3 105 GOSUB 171:GOSUB 172:GOSUB 173:GOSUB 174 110 FV=INV*((1+ROI/100/CPY)^(YRS*CPY)):FV=INT(FV*1+.5) 115 DISPLAY " Future Dollars = $";FV:PAUSE 120 DISPLAY " Investment +Time & Earnings =":PAUSE 3 125 GAIN=FV-INV:GAIN=INT(GAIN*1+.5) 130 DISPLAY REC,"$";INV;" +$";GAIN;"=$";FV:PAUSE 135 DISPLAY " Do you want Changes (Y/N)? ":K$=KEY$! similar to CALL KEY(K,S) 140 IF K$="Y"OR K$="y"THEN 145 ELSE IF K$="N"OR K$="n"THEN 155 ELSE 135 145 DISPLAY " 1=INV 2=ROI% 3=YRS 4=CPY #":CALL KEY(K,S):IF S=0 THEN 145 150 IF K<49 OR K>52 THEN 145 ELSE ON K-48 GOSUB 171,172,173,174:GOTO 110 155 DISPLAY " 1=MENU, 2=NEXT PROG, 3=EXIT":K$=KEY$ 160 IF K$="1"THEN 8 ELSE IF K$="2"THEN 200 ELSE END 171 INPUT " Lump Sum Investment = $";INV:RETURN 172 INPUT " Est Retn-on-Invstment = % ";ROI:RETURN 173 INPUT " Years For Money To Work = ";YRS:RETURN 174 INPUT " Compundings Per Year = ";CPY:RETURN 200 DISPLAY REC," Regular Periodic Investing:":PAUSE 3 205 GOSUB 271:GOSUB 272:GOSUB 273:GOSUB 274 210 TOT=PMT*((1+ROI/100/TPY)^(TPY*YRS)-1)/(ROI/100/TPY)*(1+ROI/100/TPY) 215 GAIN=TOT-((PMT*TPY)*YRS) 220 DISPLAY REC,"Dollars Accumulated =$";INT(TOT*1+.5):PAUSE 225 DISPLAY " $ INV PMTS + $ ROI = $ TOTAL ":PAUSE 2.5 230 DISPLAY "$";INT(PMT*TPY)*YRS;" + $";INT(GAIN*1+.5);"= $";INT(TOT*1+.5):PAUSE 235 DISPLAY " Do you want Changes (Y/N)? ":CALL KEY(K,S):IF S=0 THEN 235 240 IF K=ASC("Y")OR K=ASC("y")THEN 250! 2nd method for CALL KEY(K,S) 245 IF K=ASC("N")OR K=ASC("n")THEN 260 ELSE 235 250 DISPLAY " 1=PMT, 2=TPY, 3=ROI, 4=YRS #":CALL KEY(K,S):IF S=0 THEN 250 255 IF K<49 OR K>52 THEN 240 ELSE ON K-48 GOSUB 271,272,273,274:GOTO 210 260 DISPLAY " 1=MENU, 2=NEXT PROG, 3=EXIT":K$=KEY$ 265 IF K$="1"THEN 8 ELSE IF K$="2"THEN 300 ELSE END 271 INPUT " Investing By Mo.Qtr.Yr.=$";PMT:RETURN 272 INPUT " Times Per Year Added x ";TPY:RETURN 273 INPUT " Est Retn-On-Investment % ";ROI:RETURN 274 INPUT " Years to Future Goal ? ";YRS:RETURN 300 DISPLAY REC," Check-A-Month Withdrawal Plan":PAUSE 3 305 GOSUB 371:GOSUB 372:GOSUB 373 310 X=PV*ROI/1200:Y=(1+ROI/1200)^(12*ANN):CKS=X/(1-1/Y) 315 DISPLAY REC;ANN;"Yr Annuity CK-A-MO=$";INT(CKS*1+.5):PAUSE 320 TOT=((CKS*12)*ANN-PV):DISPLAY " $Invested + Gain = $TOT-OUT ":PAUSE 2.5 325 DISPLAY REC,"$";PV;" +";INT(TOT*1+.5);" $";INT((CKS*12)*ANN*1+.5):PAUSE 330 DISPLAY " Do You Want Changes (Y/N)?":CALL KEY(K,S):IF S=0 THEN 330 335 IF K=89 OR K=121 THEN 345! 3rd method for Call Key(K,S) 340 IF K=78 OR K=110 THEN 355 ELSE 330 345 DISPLAY " 1=INV 2=APR% 3=Life Yrs ":CALL KEY(K,S):IF S=0 THEN 345 350 IF K<49 OR K>51 THEN 345 ELSE ON K-48 GOSUB 371,372,373:GOTO 310 355 DISPLAY " 1=Menu, 2=NEXT PROG, 3=Exit":K$=KEY$ 360 IF K$="1"THEN 8 ELSE IF K$="2"THEN 400 ELSE END 371 INPUT " Present Inv Worth = $";PV:RETURN 372 INPUT " Est Retn-On-Inv % ";ROI:RETURN 373 INPUT " Est Lifetime Annuity Yrs: ";ANN:RETURN 400 DISPLAY REC," Present Value of Your Pension":PAUSE 3 405 GOSUB 471:GOSUB 472:GOSUB 473 410 PV=PMT*((1-(1+APR)^-YRS)/APR) 415 DISPLAY REC,"LUMP SUM To Duplicate=$";INT(PV*1+.5):PAUSE 4.5 420 ADD=(PMT*YRS)-PV 425 DISPLAY;YRS;"yrs at";100*APR;"% ADDS +$";INT(ADD*1+.5):PAUSE 3 430 DISPLAY REC;"PV$";INT(PV*1+.5);"+";INT(ADD*1+.5);"=CKS$";(PMT*YRS):PAUSE 435 DISPLAY " Do You Want Changes (Y/N)?":K$=KEY$ 440 IF K$="Y"OR K$="y"THEN 445 ELSE IF K$="N"OR K$="n"THEN 455 ELSE 435 445 DISPLAY " 1=W-2P 2=Life Yrs 3=APR% #":CALL KEY(K,S):IF S=0 THEN 445 450 IF K<49 OR K>51 THEN 445 ELSE ON K-48 GOSUB 471,472,473:GOTO 410 455 DISPLAY " 1=Menu, 2=NEXT PROG, 3=Exit":K$=KEY$ 460 IF K$="1"THEN 8 ELSE IF K$="2"THEN 500 ELSE END 471 INPUT " W-2 Annual Pension = $ ";PMT:RETURN 472 INPUT " I.R.S Life Expectancy Yrs=";YRS:RETURN 473 INPUT " Annuitized Interest RAte % ";APR:APR=.01*APR:RETURN 500 DISPLAY REC," A.P.R. % Retn-on-Investment:":PAUSE 3 505 GOSUB 571:GOSUB 572:GOSUB 573 510 ROI=((OUT/IN)^(1/YRS))-1 515 X=INT(10000*(ROI+.00005)):ROI=X/10000 520 DISPLAY REC," A.P.R.=";ROI*100;"%":PAUSE 525 DISPLAY;IN;"";ROI*100;" %";YRS;"yr $";OUT:PAUSE 530 DISPLAY " Do You Want Changes (Y/N)?":K$=KEY$ 535 IF K$="Y"OR K$="y"THEN 540 ELSE IF K$="N"OR K$="n"THEN 550 ELSE 530 540 DISPLAY "1=$OUT 2=$IN 3=YRS INV ":CALL KEY(K,S):IF S=0 THEN 540 545 IF K<49 OR K>51 THEN 540 ELSE ON K-48 GOSUB 571,572,573:GOTO 510 550 DISPLAY " 1=Menu, 2=NEXT PROG, 3=Exit":K$=KEY$ 560 IF K$="1"THEN 8 ELSE IF K$="2"THEN 600 ELSE END 571 INPUT " Value If Sold = $";OUT:RETURN 572 INPUT " Beginning Investment $ ";IN:RETURN 573 INPUT " Number Years Invested ?";YRS:RETURN 600 DISPLAY REC," Monthly MTGE or Loan Payments:":PAUSE 2 605 GOSUB 671:GOSUB 672:GOSUB 673 610 X1=MTG*IR/1200:X2=(1+IR/1200)^(12*YRS):PMT=X1/(1-1/X2) 615 DISPLAY REC," Monthly Payment = $";INT(PMT*100+.5)/100:PAUSE 620 DISPLAY " Truth in Lending Totals:":PAUSE 2 625 TOT=(PMT*12)*YRS:DISPLAY " Mortgage +Intr Cost =Tot Cost":PAUSE 2 630 DISPLAY REC," $";MTG;" +";INT(TOT-MTG);" =$";INT(TOT+.5):PAUSE 635 DISPLAY " Do You Want Changes (Y/N)?":K$=KEY$ 640 IF K$="Y"OR K$="y"THEN 645 ELSE IF K$="N"OR K$="n"THEN 655 ELSE 635 645 DISPLAY "Change: 1=MTG 2=INT% 3=YRS #":CALL KEY(K,S):IF S=0 THEN 645 650 IF K<49 OR K>51 THEN 645 ELSE ON K-48 GOSUB 671,672,673:GOTO 610 655 DISPLAY " 1=Menu, 2=NEXT PROG, 3=Exit":K$=KEY$ 660 IF K$="1"THEN 8 ELSE IF K$="2"THEN 700 ELSE END 671 INPUT "Price-Dn Pmt= Mortgage $";MTG:RETURN 672 INPUT " Interest Rate % = ";IR:RETURN 673 INPUT " Years To Pay-Off = ";YRS:RETURN 700 DISPLAY REC," Amortization Schedule:":PAUSE 3 702 INPUT " Loan Amount $";AMT," Number Monthly Payments # ";NMP 704 INPUT " Annual Interest Rate %? ";APR 706 APR=APR/1200 708 PMT=AMT*(APR/(1-(1+APR)^(-NMP))) 710 TOT=INT(PMT*NMP*100)/100 712 MPYMT=INT(PMT*100)/100 714 LASTP=TOT-MPYMT*(NMP-1) 716 DISPLAY USING" Monthly Payment= $####.##";MPYMT:PAUSE 718 DISPLAY USING" Last Mo. Payment= $####.##";LASTP:PAUSE 720 INPUT "Show Schedule From Month # ";START," to Month # ";QUIT 722 COMP=(1+APR)^(-(START-1)):LEFT=1/COMP*(PMT*(COMP-1)/APR+AMT) 724 IF QUIT=NMP THEN FLG=1:QUIT=NMP-1 ELSE FLG=0 726 FOR Z=START TO QUIT 728 COMP=(1+APR)^(-Z):BAL=1/COMP*(PMT*(COMP-1)/APR+AMT) 730 DISPLAY REC," Month # ";Z:PAUSE 1 732 INTR=BAL-LEFT+MPYMT:LEFT=BAL:PRINC=MPYMT-INTR 734 IMAGE intr=$####.## Princ=$####.## 736 DISPLAY USING 734,INTR,PRINC:PAUSE 738 IMAGE >>>>>>BALANCE = $######.## 740 DISPLAY USING 738,BAL:PAUSE 742 NEXT Z 744 IF FLG=0 THEN 754 746 DISPLAY REC," MONTH # ";NMP:PAUSE 1 748 INTR=LSATP-BAL:PRINC=BAL:BAL=0 750 PRINT USING 734,INTR,PRINC:PAUSE 752 PRINT USING 738,BAL:PAUSE 754 INPUT " RERUN (Y/N): ";K$:IF K$="Y"OR K$="y"THEN 702 756 DISPLAY " 1=MENU, 2=EXIT":K$=KEY$ 758 IF K$="1"THEN 8 ELSE END --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=FINHLP74.TXT; SizeOnDisk=7545 Content-description: FINHLP74.TXT 1 REM Modified to work with TI74, also works with 16K CC40 2 PRINT " FINANCIAL PLANNING HELPS":PAUSE 3 4 PRINT " by Rob't M Charlson":PAUSE 3 6 PRINT " of DOLLAR DIRECTORS,INC.":PAUSE 3 12 DISPLAY " Press Prog # Any Key= Next":PAUSE 3 14 DISPLAY " 1=LUMP SUM inv 2=Monthly Inv":K$=KEY$ 16 IF K$="1"THEN 100 ELSE IF K$="2"THEN 200 ELSE 18 18 DISPLAY " 3=Check-A-Month 4=PV-Pension":K$=KEY$ 20 IF K$="3"THEN 300 ELSE IF K$="4"THEN 400 ELSE 22 22 DISPLAY " 5=A.P.R.% 6=MO-MTG-PMT":K$=KEY$ 24 IF K$="5"THEN 500 ELSE IF K$="6"THEN 600 ELSE 26 26 DISPLAY " 7= Amortize Mortgage Payments":K$=KEY$ 28 IF K$="7"THEN 700 ELSE 14 100 DISPLAY " LUMP SUM Investment Results:":PAUSE 3 105 GOSUB 171:GOSUB 172:GOSUB 173:GOSUB 174 110 FV=INV*((1+ROI/100/CPY)^(YRS*CPY)):FV=INT(FV*1+.5) 115 DISPLAY " Future Dollars = $";FV:PAUSE 120 DISPLAY " Investment +Time & Earnings =":PAUSE 3 125 GAIN=FV-INV:GAIN=INT(GAIN*1+.5) 130 DISPLAY "$";INV;" +$";GAIN;"=$";FV:PAUSE 135 DISPLAY " Do you want Changes (Y/N)? ":K$=KEY$! similar to CALL KEY(K,S) 140 IF K$="Y"OR K$="y"THEN 145 ELSE IF K$="N"OR K$="n"THEN 155 ELSE 135 145 DISPLAY " 1=INV 2=ROI% 3=YRS 4=CPY #":CALL KEY(K,S):IF S=0 THEN 145 150 IF K<49 OR K>52 THEN 145 ELSE ON K-48 GOSUB 171,172,173,174:GOTO 110 155 DISPLAY " 1=MENU, 2=NEXT PROG, 3=EXIT":K$=KEY$ 160 IF K$="1"THEN 8 ELSE IF K$="2"THEN 200 ELSE END 171 INPUT " Lump Sum Investment = $";INV:RETURN 172 INPUT " Est Retn-on-Invstment = % ";ROI:RETURN 173 INPUT " Years For Money To Work = ";YRS:RETURN 174 INPUT " Compundings Per Year = ";CPY:RETURN 200 DISPLAY " Regular Periodic Investing:":PAUSE 3 205 GOSUB 271:GOSUB 272:GOSUB 273:GOSUB 274 210 TOT=PMT*((1+ROI/100/TPY)^(TPY*YRS)-1)/(ROI/100/TPY)*(1+ROI/100/TPY) 215 GAIN=TOT-((PMT*TPY)*YRS) 220 DISPLAY "Dollars Accumulated =$";INT(TOT*1+.5):PAUSE 225 DISPLAY " $ INV PMTS + $ ROI = $ TOTAL ":PAUSE 2.5 230 DISPLAY "$";INT(PMT*TPY)*YRS;" + $";INT(GAIN*1+.5);"= $";INT(TOT*1+.5):PAUSE 235 DISPLAY " Do you want Changes (Y/N)? ":CALL KEY(K,S):IF S=0 THEN 235 240 IF K=ASC("Y")OR K=ASC("y")THEN 250! 2nd method for CALL KEY(K,S) 245 IF K=ASC("N")OR K=ASC("n")THEN 260 ELSE 235 250 DISPLAY " 1=PMT, 2=TPY, 3=ROI, 4=YRS #":CALL KEY(K,S):IF S=0 THEN 250 255 IF K<49 OR K>52 THEN 240 ELSE ON K-48 GOSUB 271,272,273,274:GOTO 210 260 DISPLAY " 1=MENU, 2=NEXT PROG, 3=EXIT":K$=KEY$ 265 IF K$="1"THEN 8 ELSE IF K$="2"THEN 300 ELSE END 271 INPUT " Investing By Mo.Qtr.Yr.=$";PMT:RETURN 272 INPUT " Times Per Year Added x ";TPY:RETURN 273 INPUT " Est Retn-On-Investment % ";ROI:RETURN 274 INPUT " Years to Future Goal ? ";YRS:RETURN 300 DISPLAY " Check-A-Month Withdrawal Plan":PAUSE 3 305 GOSUB 371:GOSUB 372:GOSUB 373 310 X=PV*ROI/1200:Y=(1+ROI/1200)^(12*ANN):CKS=X/(1-1/Y) 315 DISPLAY ANN;"Yr Annuity CK-A-MO=$";INT(CKS*1+.5):PAUSE 320 TOT=((CKS*12)*ANN-PV):DISPLAY " $Invested + Gain = $TOT-OUT ":PAUSE 2.5 325 DISPLAY "$";PV;" +";INT(TOT*1+.5);" $";INT((CKS*12)*ANN*1+.5):PAUSE 330 DISPLAY " Do You Want Changes (Y/N)?":CALL KEY(K,S):IF S=0 THEN 330 335 IF K=89 OR K=121 THEN 345! 3rd method for Call Key(K,S) 340 IF K=78 OR K=110 THEN 355 ELSE 330 345 DISPLAY " 1=INV 2=APR% 3=Life Yrs ":CALL KEY(K,S):IF S=0 THEN 345 350 IF K<49 OR K>51 THEN 345 ELSE ON K-48 GOSUB 371,372,373:GOTO 310 355 DISPLAY " 1=Menu, 2=NEXT PROG, 3=Exit":K$=KEY$ 360 IF K$="1"THEN 8 ELSE IF K$="2"THEN 400 ELSE END 371 INPUT " Present Inv Worth = $";PV:RETURN 372 INPUT " Est Retn-On-Inv % ";ROI:RETURN 373 INPUT " Est Lifetime Annuity Yrs: ";ANN:RETURN 400 DISPLAY " Present Value of Your Pension":PAUSE 3 405 GOSUB 471:GOSUB 472:GOSUB 473 410 PV=PMT*((1-(1+APR)^-YRS)/APR) 415 DISPLAY "LUMP SUM To Duplicate=$";INT(PV*1+.5):PAUSE 4.5 420 ADD=(PMT*YRS)-PV 425 DISPLAY;YRS;"yrs at";100*APR;"% ADDS +$";INT(ADD*1+.5):PAUSE 3 430 DISPLAY "PV$";INT(PV*1+.5);"+";INT(ADD*1+.5);"=CKS$";(PMT*YRS):PAUSE 435 DISPLAY " Do You Want Changes (Y/N)?":K$=KEY$ 440 IF K$="Y"OR K$="y"THEN 445 ELSE IF K$="N"OR K$="n"THEN 455 ELSE 435 445 DISPLAY " 1=W-2P 2=Life Yrs 3=APR% #":CALL KEY(K,S):IF S=0 THEN 445 450 IF K<49 OR K>51 THEN 445 ELSE ON K-48 GOSUB 471,472,473:GOTO 410 455 DISPLAY " 1=Menu, 2=NEXT PROG, 3=Exit":K$=KEY$ 460 IF K$="1"THEN 8 ELSE IF K$="2"THEN 500 ELSE END 471 INPUT " W-2 Annual Pension = $ ";PMT:RETURN 472 INPUT " I.R.S Life Expectancy Yrs=";YRS:RETURN 473 INPUT " Annuitized Interest RAte % ";APR:APR=.01*APR:RETURN 500 DISPLAY " A.P.R. % Retn-on-Investment:":PAUSE 3 505 GOSUB 571:GOSUB 572:GOSUB 573 510 ROI=((OUT/IN)^(1/YRS))-1 515 X=INT(10000*(ROI+.00005)):ROI=X/10000 520 DISPLAY " A.P.R.=";ROI*100;"%":PAUSE 525 DISPLAY;IN;"";ROI*100;" %";YRS;"yr $";OUT:PAUSE 530 DISPLAY " Do You Want Changes (Y/N)?":K$=KEY$ 535 IF K$="Y"OR K$="y"THEN 540 ELSE IF K$="N"OR K$="n"THEN 550 ELSE 530 540 DISPLAY "1=$OUT 2=$IN 3=YRS INV ":CALL KEY(K,S):IF S=0 THEN 540 545 IF K<49 OR K>51 THEN 540 ELSE ON K-48 GOSUB 571,572,573:GOTO 510 550 DISPLAY " 1=Menu, 2=NEXT PROG, 3=Exit":K$=KEY$ 560 IF K$="1"THEN 8 ELSE IF K$="2"THEN 600 ELSE END 571 INPUT " Value If Sold = $";OUT:RETURN 572 INPUT " Beginning Investment $ ";IN:RETURN 573 INPUT " Number Years Invested ?";YRS:RETURN 600 DISPLAY " Monthly MTGE or Loan Payments:":PAUSE 2 605 GOSUB 671:GOSUB 672:GOSUB 673 610 X1=MTG*IR/1200:X2=(1+IR/1200)^(12*YRS):PMT=X1/(1-1/X2) 615 DISPLAY " Monthly Payment = $";INT(PMT*100+.5)/100:PAUSE 620 DISPLAY " Truth in Lending Totals:":PAUSE 2 625 TOT=(PMT*12)*YRS:DISPLAY " Mortgage +Intr Cost =Tot Cost":PAUSE 2 630 DISPLAY " $";MTG;" +";INT(TOT-MTG);" =$";INT(TOT+.5):PAUSE 635 DISPLAY " Do You Want Changes (Y/N)?":K$=KEY$ 640 IF K$="Y"OR K$="y"THEN 645 ELSE IF K$="N"OR K$="n"THEN 655 ELSE 635 645 DISPLAY "Change: 1=MTG 2=INT% 3=YRS #":CALL KEY(K,S):IF S=0 THEN 645 650 IF K<49 OR K>51 THEN 645 ELSE ON K-48 GOSUB 671,672,673:GOTO 610 655 DISPLAY " 1=Menu, 2=NEXT PROG, 3=Exit":K$=KEY$ 660 IF K$="1"THEN 8 ELSE IF K$="2"THEN 700 ELSE END 671 INPUT "Price-Dn Pmt= Mortgage $";MTG:RETURN 672 INPUT " Interest Rate % = ";IR:RETURN 673 INPUT " Years To Pay-Off = ";YRS:RETURN 700 DISPLAY " Amortization Schedule:":PAUSE 3 702 INPUT " Loan Amount $";AMT," Number Monthly Payments # ";NMP 704 INPUT " Annual Interest Rate %? ";APR 706 APR=APR/1200 708 PMT=AMT*(APR/(1-(1+APR)^(-NMP))) 710 TOT=INT(PMT*NMP*100)/100 712 MPYMT=INT(PMT*100)/100 714 LASTP=TOT-MPYMT*(NMP-1) 716 DISPLAY USING" Monthly Payment= $####.##";MPYMT:PAUSE 718 DISPLAY USING" Last Mo. Payment= $####.##";LASTP:PAUSE 720 INPUT "Show Schedule From Month # ";START," to Month # ";QUIT 722 COMP=(1+APR)^(-(START-1)):LEFT=1/COMP*(PMT*(COMP-1)/APR+AMT) 724 IF QUIT=NMP THEN FLG=1:QUIT=NMP-1 ELSE FLG=0 726 FOR Z=START TO QUIT 728 COMP=(1+APR)^(-Z):BAL=1/COMP*(PMT*(COMP-1)/APR+AMT) 730 DISPLAY REC," Month # ";Z:PAUSE 1 732 INTR=BAL-LEFT+MPYMT:LEFT=BAL:PRINC=MPYMT-INTR 734 IMAGE intr=$####.## Princ=$####.## 736 DISPLAY USING 734,INTR,PRINC:PAUSE 738 IMAGE >>>>>>BALANCE = $######.## 740 DISPLAY USING 738,BAL:PAUSE 742 NEXT Z 744 IF FLG=0 THEN 754 746 DISPLAY " MONTH # ";NMP:PAUSE 1 748 INTR=LSATP-BAL:PRINC=BAL:BAL=0 750 PRINT USING 734,INTR,PRINC:PAUSE 752 PRINT USING 738,BAL:PAUSE 754 INPUT " RERUN (Y/N): ";K$:IF K$="Y"OR K$="y"THEN 702 756 DISPLAY " 1=MENU, 2=EXIT":K$=KEY$ 758 IF K$="1"THEN 8 ELSE END --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=HEADLINE.TXT; SizeOnDisk=1496 Content-description: HEADLINE.TXT 90 REM prints milti colored banners on printer/plotter 100 OPEN #1,"10",OUTPUT 110 INPUT "Enter top line:";L1$ 120 INPUT "Enter bottom line (OPTIONAL):";L2$ 121 IF L2$=""THEN NL=1 122 IF L1$=""THEN NL=0 ELSE 130 123 PRINT "YOU GOTTA ENTNUMBER THING!!!":PAUSE 4:GOTO 110 130 INPUT "What color(0 for colors):";CO$ 140 IF CO$="0"THEN 170 150 IF CO$="1"THEN 160 151 IF CO$="2"THEN 161 152 IF CO$="3"THEN 162 153 IF CO$="4"THEN 163 154 PRINT "COLORS ARE 1-4":PAUSE 4:GOTO 130 160 CO=1:GOTO 180 161 CO=2:GOTO 180 162 CO=3:GOTO 180 163 CO=4:GOTO 180 164 PRINT "COLORS=1-4":PAUSE 4:GOTO 130 170 PRINT "1=BLACK,2=BLUE,3=GREEN,4=RED":PAUSE 5:GOTO 130 180 PRINT #1,CHR$(19) 190 PRINT #1,"C"&CO$ 200 PRINT #1,"A1" 210 PRINT #1,"H" 215 IF NL=1 THEN PRINT #1,"M(75,0)":GOTO 230 220 PRINT #1,"M(135,0)" 230 PRINT #1,"S9" 240 PRINT "Plotting... one moment please." 250 T$=L1$ 260 GOSUB 410 265 IF NL=1 THEN PRINT #1,"H":GOTO 340 270 FOR X=1 TO LEN(L1$) 280 PRINT #1,"J(0,55)" 290 NEXT X 300 PRINT #1,"J(-110,0)" 310 PRINT #1,"O" 320 T$=L2$ 330 GOSUB 410 340 NL=0:INPUT "ANOTHER(Y/N):";Y$ 350 IF Y$="Y"THEN 390 360 IF Y$="N"THEN END 370 PRINT "(Y) OR (N) ":PAUSE 380 GOTO 340 390 CLOSE #1 400 GOTO 100 410 FOR C=1 TO LEN(T$) 420 PRINT #1,"O" 430 FOR X=1 TO 5 440 PRINT #1,"M(1,1)" 450 PRINT #1,"O" 460 PRINT #1,"T("&SEG$(T$,C,1)&")" 470 NEXT X 480 PRINT #1,"J(-5,0)" 490 NEXT C 500 RETURN --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=HILO.TXT; SizeOnDisk=1172 Content-description: HILO.TXT 12000 CALL CHAR(1,"040404041F1F0E04") 12010 CALL CHAR(2,"040E1F1F04040404") 12020 DISPLAY BEEP,"GUESS A NUMBER BETWEEN 1 AND 25":PAUSE 1.5 12030 DISPLAY BEEP,"YOU HAVE 6 CHANCES":PAUSE 1 12040 DISPLAY BEEP,"INDICATORS RECORD YOUR GUESSES":PAUSE 1 12050 COUNT=1 12060 RANDOMIZE 12070 SNUM=INTRND(25) 12080 PRINT "ENTER YOUR GUESS"; 12090 ACCEPT AT(28)VALIDATE(DIGIT),GUESS 12100 IF GUESS=SNUM THEN 12180 12110 CALL INDIC(COUNT) 12120 IF COUNT=6 THEN 12260 12130 IF GUESS(W)afer(M)emory?:";ANS$ 50 IF ANS$="W"THEN 590 60 IF ANS$="M"THEN 70 ELSE GOTO 40 70 CALL PEEK(20480,A):IF A=0 THEN Q$="Nothing in memory.":PAUSE 2:GOTO 150 80 FOR CNT=1 TO A:FOR CNTT=1 TO 15 90 CALL PEEK(CNT*15+(CNTT+20479),T):X$(CNT)=X$(CNT)&CHR$(T):PRINT X$(CNT) 100 NEXT CNTT:FOR CNTT=1 TO 10 110 CALL PEEK(CNT*10+(CNTT+21984),T):Y$(CNT)=Y$(CNT)&CHR$(T) 120 PRINT X$(CNT);Y$(CNT) 130 NEXT CNTT:PRINT X$(CNT);Y$(CNT):NEXT CNT 140 FOR CNT=1 TO A:Y(CNT)=VAL(Y$(CNT)):NEXT CNT:CO=A:Q$="Finished loading!" 150 PRINT Q$:PAUSE 2 160 INPUT "(A)dd(P)rint(L)oad(S)ave:";ANS$ 161 IF ANS$="L"THEN 30 170 IF ANS$="A"THEN 220 180 IF ANS$="S"THEN 350 190 IF ANS$="P"THEN 520 200 IF ANS$="SCAN"THEN 10000 210 GOTO 160 220 LINPUT "ITEM>";ITEM$ 230 IF ITEM$="Q"THEN 160 240 A=LEN(ITEM$):IF A>15 THEN PRINT "15 or less charactors!":PAUSE 2:GOTO 220 250 A=LEN(ITEM$):IF A<15 THEN ITEM$=ITEM$&RPT$(" ",15-A) 260 INPUT "PRICE>";ITPRC 270 CO=CO+1 280 X$(CO)=ITEM$:Y(CO)=ITPRC 290 PRINT X$(CO);Y(CO);"CORRECT?" 300 CALL KEY(K,S):IF S=0 THEN 300 310 YN$=CHR$(K) 320 IF YN$="Y"THEN 220 330 IF YN$="N"THEN CO=CO-1:GOTO 220 340 PRINT "(Y)es or (N)o!":PAUSE 2:GOTO 290 350 INPUT "SAVE>(W)afer(M)emory(B)oth";ANS$ 360 IF ANS$="W"THEN 400 370 IF ANS$="M"THEN 440 380 IF ANS$="B"THEN B=2:GOTO 400 390 GOTO 350 400 INPUT "Wafer 1-10?:";W$:PRINT "SAVING TO WAFER #";W$ 410 OPEN #1,W$&".DATAFILE",INTERNAL,OUTPUT 420 FOR CNT=1 TO CO:PRINT #1,X$(CNT),Y(CNT):NEXT CNT:CLOSE #1 430 IF B=0 THEN 160:B=0 440 PRINT "SAVING TO MEMORY" 450 CALL PEEK(20480,FLAG):ADR=15*FLAG+20495:ADT=10*FLAG+21995 460 FOR CNT=FLAG+1 TO CO 470 FOR DE=1 TO 15:CALL POKE(ADR,ASC(SEG$(X$(CNT),DE,1))):ADR=ADR+1 480 NEXT DE:B$=STR$(ABS(Y(CNT))):A=LEN(B$) 490 IF A<10 THEN B$=B$&RPT$(" ",10-A):A=10:FOR DE=1 TO 10 500 NU$=SEG$(B$,DE,1):CALL POKE(ADT,ASC(NU$)):ADT=ADT+1 510 NEXT DE:NEXT CNT:CALL POKE(20480,CO) 520 PRINT "Printing....":OPEN #1,"10.S=0",OUTPUT 530 FOR CNT=1 TO CO:PRINT #1,X$(CNT);Y(CNT):NEXT CNT 540 CLOSE #1:GOTO 160 550 OPEN #1,"10.S=0",OUTPUT 560 CALL PEEK(20480,DE):FOR CNT=20480 TO 20494+(DE*15):CALL PEEK(CNT,K) 570 PRINT #1,CHR$(3);CNT,K,CHR$(K):NEXT CNT 580 CLOSE #1:GOTO 160 590 INPUT "Wafer 1-10?:";W$:PRINT "Loading from Wafer #";W$ 600 OPEN #2,W$&".DATAFILE",INTERNAL,INPUT:CT=1 610 IF EOF(2)=-1 THEN 630 ELSE INPUT #2,X$(CT),Y(CT) 620 CT=CT+1:GOTO 610 630 CO=CT-1:CALL POKE(20480,CT-1):GOTO 160 --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=JUMPJACK.TXT; SizeOnDisk=247 Content-description: JUMPJACK.TXT 100 CALL CHAR(0,"0E0E150E04040A11"):CALL CHAR(1,"0E0E040E15040404") 110 FOR I=1 TO 31:FOR J=0 TO 1:DISPLAY AT(I),CHR$(J):PAUSE .3 120 NEXT J:NEXT I 130 FOR K=31 TO 1 STEP -1:FOR L=0 TO 1:DISPLAY AT(K),CHE$(L) 140 NEXT L:NEXT K 150 GOTO 110 --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=MULTIPRG.TXT; SizeOnDisk=14908 Content-description: MULTIPRG.TXT 1 REM Multiple programs from the same menu for an 18K CC40 5 REM RESISTOR COLOR CODE, Weight Estimator, Hi-Lo game 10 DIM PROMPT$(10) 20 FOR P=1 TO 10:READ PROMPT$(P):NEXT 30 LINPUT "Weight Estimator (Y/N): ";A$ 40 IF A$="Y" OR A$="y" THEN GOSUB 140 50 LINPUT "Color Code (Y/N): ";A$ 60 IF A$="Y" OR A$="y" THEN GOSUB 1840 70 LINPUT "Want to Play HI-LOW game (Y/N): ";A$ 80 IF A$="Y" OR A$="y" THEN GOSUB 2450 90 LINPUT "EXIT (Y/N):";A$ 100 IF A$="Y" OR A$="y" THEN END 110 GOTO 30 120 DATA 8,ABS,203,APPEND,249,ASC,220,ATN,204,AT,240,AND,187,ALL,236,ACCEPT,164, 3,BASE,241,BREAK,142,BEEP,238 130 S$=RPT$(" ",80):: GOTO 230 :: A$,B$,P$,A,B,C,E,I,L,M,P,X,Y,Z :: !@P- 140 REM DIM PROMPT$(10) 150 REM FOR P=1 TO 10:READ PROMPT$(P):NEXT 160 DATA INPUT,146,INT,207,INTERNAL,245,0,0,4,LEN,213,LET,141,LOG,208,LINPUT,170 ,2,MAX,223,MIN,224,3,NEXT,150 170 F1=0:F2=0:F3=0:F4=0:F5=0:F6=0:F7=0 180 DATA PI,221,0,9,RND,215,READ,151,RETURN,136,RESTORE,148,RANDOMIZE,149,REC,22 2,RELATIVE,244,RPT$,225,RUN,169 190 PRINT "Welcome to the weight estimator":PAUSE 3 200 LINPUT "Enter (M)ale or (F)emale: ";SEX$ 210 IF SEX$="M" OR SEX$="m" THEN F1=1:GOTO 240 220 IF SEX$="F" OR SEX$="f" THEN F2=1:GOTO 240 230 DISPLAY AT(9)BEEP,"INVALID INPUT":PAUSE 1:GOTO 200 240 REM PRINT "Enter height in (feet.inches)":PAUSE 3 250 INPUT "Enter height in # of feet: ";HEIGHT 260 INPUT "Enter # of inches: ";I 270 H=HEIGHT*12+I 280 ON ERROR 280 :: ACCEPT AT(6,2):A$ :: OPEN #2:A$,VARIABLE 163 290 DISPLAY AT(8,2):"enter 1 for basic":" enter 2 for extended basic":" --->2" 300 ON ERROR 1030 :: ACCEPT AT(10,8)SIZE(-1)VALIDATE("12"):A$ :: IF A$="2" THEN E=1 :: GOTO 350 ELSE IF A$="" THEN 290 310 LINPUT "Enter FRAME type (S/M/L): ";F$ 320 IF F$="S" OR F$="s" THEN F3=1:GOTO 390 330 IF F$="M" OR F$="m" THEN F4=1:GOTO 390 340 IF F$="L" OR F$="l" THEN F5=1:GOTO 390 350 GOTO 310 360 DISPLAY AT(18,1):"B. Lines regularly sequenced" :: ACCEPT AT(12,26)VALIDATE( "AB")SIZE(-1):A$ 370 IF A$="" THEN 360 ELSE IF A$="A" THEN 400 ELSE DISPLAY AT(19,4):"Enter line increment:0010" 380 ACCEPT AT(19,25)VALIDATE(DIGIT)SIZE(-4):I :: IF I=0 THEN 380 390 INPUT "Enter Your Weight: ";WEIGHT 400 IF I=0 THEN 430 ELSE IF EOF(1)THEN I=0 :: A$=P$ :: GOTO 460 ELSE LINPUT #1:B $ :: IF B$="" OR B$=" " THEN 400 410 IF SEG$(B$,1,LEN(STR$(L+I))+1)=(STR$(L+I)&" ")THEN A$=P$ :: P$=B$ :: L=L+I : : GOTO 460 420 P$=SEG$(P$&S$,1,INT((LEN(P$)-1)/80+1)*80)&B$ :: IF LEN(P$)=255 THEN DISPLAY AT(24,1):"* error - line is too long" :: GOTO 400 ELSE 400 430 IF EOF(1)THEN PRINT #2:CHR$(255);CHR$(255):: CLOSE #1 :: CLOSE #2 :: STOP EL SE A$="" 440 IF F1 AND H>=62 AND H<63 AND F3 THEN W$="128-134":MIN=128:MAX=134 450 IF F1 AND H>=62 AND H<63 AND F4 THEN W$="131-141":MIN=131:MAX=141 460 IF F1 AND H>=62 AND H<63 AND F5 THEN W$="138-150":MIN=128:MAX=134 470 IF F1 AND H>=63 AND H<64 AND F3 THEN W$="130-136":MIN=130:MAX=136 480 IF F1 AND H>=63 AND H<64 AND F4 THEN W$="133-143":MIN=133:MAX=143 490 IF F1 AND H>=63 AND H<64 AND F5 THEN W$="140-153":MIN=140:MAX=153 500 IF F1 AND H>=64 AND H<65 AND F3 THEN W$="132-138":MIN=132:MAX=138 510 IF F1 AND H>=64 AND H<65 AND F4 THEN W$="135-145":MIN=135:MAX=145 520 IF F1 AND H>=64 AND H<65 AND F5 THEN W$="142-156":MIN=142:MAX=156 530 IF F1 AND H>=65 AND H<66 AND F3 THEN W$="134-140":MIN=134:MAX=140 540 IF F1 AND H>=65 AND H<66 AND F4 THEN W$="137-148":MIN=137:MAX=148 550 IF F1 AND H>=65 AND H<66 AND F5 THEN W$="144-160":MIN=144:MAX=160 560 IF F1 AND H>=66 AND H<67 AND F3 THEN W$="136-142":MIN=136:MAX=142 570 IF F1 AND H>=66 AND H<67 AND F4 THEN W$="139-151":MIN=139:MAX=151 580 IF F1 AND H>=66 AND H<67 AND F5 THEN W$="146-164":MIN=146:MAX=164 590 IF F1 AND H>=67 AND H<68 AND F3 THEN W$="138-145":MIN=138:MAX=145 600 IF F1 AND H>=67 AND H<68 AND F4 THEN W$="145-157":MIN=145:MAX=157 610 IF F1 AND H>=67 AND H<68 AND F5 THEN W$="152-172":MIN=152:MAX=172 620 IF F1 AND H>=68 AND H<69 AND F3 THEN W$="140-148":MIN=140:MAX=148 630 IF F1 AND H>=68 AND H<69 AND F4 THEN W$="145-157":MIN=145:MAX=157 640 IF F1 AND H>=68 AND H<69 AND F5 THEN W$="152-172":MIN=152:MAX=172 650 IF F1 AND H>=69 AND H<70 AND F3 THEN W$="142-151":MIN=142:MAX=151 660 IF B AND C=0 AND B<>132 AND B<>222 AND B<>241 AND B<>149 AND B<>155 AND B<>1 56 AND B<>162 THEN PRINT #2:CHR$(201);:: GOSUB 960 :: GOTO 480 670 IF F1 AND H>=69 AND H<70 AND F4 THEN W$="148-160":MIN=148:MAX=160 680 IF F1 AND H>=69 AND H<70 AND F5 THEN W$="155-176":MIN=155:MAX=176 690 IF F1 AND H>=70 AND H<71 AND F3 THEN W$="144-154":MIN=144:MAX=154 700 IF F1 AND H>=70 AND H<71 AND F4 THEN W$="151-163":MIN=151:MAX=163 710 IF F1 AND H>=70 AND H<71 AND F5 THEN W$="158-180":MIN=158:MAX=180 720 IF F1 AND H>=71 AND H<72 AND F3 THEN W$="146-157":MIN=146:MAX=157 730 IF F1 AND H>=71 AND H<72 AND F4 THEN W$="154-166":MIN=154:MAX=166 740 IF F1 AND H>=71 AND H<72 AND F5 THEN W$="161-184":MIN=161:MAX=184 750 IF F1 AND H>=72 AND H<73 AND F3 THEN W$="149-160":MIN=149:MAX=160 760 IF F1 AND H>=72 AND H<73 AND F4 THEN W$="157-170":MIN=157:MAX=170 770 IF F1 AND H>=72 AND H<73 AND F5 THEN W$="164-188":MIN=164:MAX=188 780 IF F1 AND H>=73 AND H<74 AND F3 THEN W$="152-164":MIN=152:MAX=164 790 IF F1 AND H>=73 AND H<74 AND F4 THEN W$="160-174":MIN=160:MAX=174 800 IF F1 AND H>=73 AND H<74 AND F5 THEN W$="168-192":MIN=168:MAX=192 810 IF F1 AND H>=74 AND H<75 AND F3 THEN W$="155-168":MIN=155:MAX=168 820 IF F1 AND H>=74 AND H<75 AND F4 THEN W$="164-178":MIN=164:MAX=178 830 IF F1 AND H>=74 AND H<75 AND F5 THEN W$="172-197":MIN=172:MAX=197 840 IF F1 AND H>=75 AND H<76 AND F3 THEN W$="158-172":MIN=158:MAX=172 850 IF F1 AND H>=75 AND H<76 AND F4 THEN W$="167-182":MIN=167:MAX=182 860 PRINT #2:CHR$(200)&CHR$(A-Z+1)&SEG$(A$,Z,A-Z+1)&CHR$(0):: GOTO 400 870 IF F1 AND H>=75 AND H<76 AND F5 THEN W$="176-202":MIN=176:MAX=202 880 IF F1 AND H>=76 AND H<77 AND F3 THEN W$="162-176":MIN=162:MAX=176 890 IF F1 AND H>=76 AND H<77 AND F4 THEN W$="171-187":MIN=171:MAX=187 900 IF F1 AND H>=76 AND H<77 AND F5 THEN W$="181-207":MIN=181:MAX=207 910 IF P>A THEN PRINT #2:CHR$(0):: GOTO 400 ELSE X=ASC(SEG$(A$,P,1)):: IF X=32 T HEN P=P+1 :: GOTO 910 920 IF X=44 THEN PRINT #2:CHR$(179);:: P=P+1 :: GOTO 910 930 IF X=34 THEN B$="" :: Z=P :: GOSUB 970 :: P=Z+1 :: GOTO 910 940 Z=POS(A$,",",P+1):: IF Z=0 THEN PRINT #2:CHR$(200);CHR$(A-P+1);SEG$(A$,P,A-P +1);CHR$(0):: GOTO 400 950 IF SEG$(A$,Z-1,1)=" " THEN Z=Z-1 :: GOTO 950 ELSE PRINT #2:CHR$(200);CHR$(Z- P);SEG$(A$,P,Z-P);:: P=Z :: GOTO 910 960 X=VAL(B$):: PRINT #2:CHR$(INT(X/256))&CHR$(X-256*INT(X/256));:: RETURN 970 IF F2 AND H>=58 AND H<59 AND F3 THEN W$="102-111":MIN=102:MAX=111 980 IF F2 AND H>=58 AND H<59 AND F4 THEN W$="109-121":MIN=109:MAX=121 990 IF F2 AND H>=58 AND H<59 AND F5 THEN W$="118-131":MIN=118:MAX=131 1000 IF F2 AND H>=59 AND H<60 AND F3 THEN W$="103-113":MIN=103:MAX=113 1010 IF F2 AND H>=59 AND H<60 AND F4 THEN W$="111-123":MIN=111:MAX=123 1020 IF F2 AND H>=59 AND H<60 AND F5 THEN W$="120-134":MIN=120:MAX=134 1030 IF F2 AND H>=60 AND H<61 AND F3 THEN W$="104-115":MIN=104:MAX=115 1040 IF F2 AND H>=60 AND H<61 AND F4 THEN W$="113-126":MIN=113:MAX=126 1050 IF F2 AND H>=60 AND H<61 AND F5 THEN W$="122-137":MIN=122:MAX=137 1060 IF F2 AND H>=61 AND H<62 AND F3 THEN W$="106-118":MIN=106:MAX=118 1070 IF F2 AND H>=61 AND H<62 AND F4 THEN W$="115-129":MIN=115:MAX=129 1080 IF F2 AND H>=61 AND H<62 AND F5 THEN W$="125-140":MIN=125:MAX=140 1090 IF F2 AND H>=62 AND H<63 AND F3 THEN W$="108-121":MIN=108:MAX=121 1100 IF F2 AND H>=62 AND H<63 AND F4 THEN W$="118-132":MIN=118:MAX=132 1110 IF F2 AND H>=62 AND H<63 AND F5 THEN W$="128-143":MIN=128:MAX=143 1120 IF F2 AND H>=63 AND H<64 AND F3 THEN W$="111-121":MIN=111:MAX=121 1130 IF F2 AND H>=63 AND H<64 AND F4 THEN W$="121-135":MIN=121:MAX=135 1140 IF F2 AND H>=63 AND H<64 AND F5 THEN W$="131-147":MIN=131:MAX=147 1150 IF F2 AND H>=64 AND H<65 AND F3 THEN W$="114-127":MIN=114:MAX=127 1160 IF F2 AND H>=64 AND H<65 AND F4 THEN W$="124-138":MIN=124:MAX=138 1170 IF F2 AND H>=64 AND H<65 AND F5 THEN W$="134-151":MIN=134:MAX=151 1180 IF F2 AND H>=65 AND H<66 AND F3 THEN W$="117-130":MIN=117:MAX=130 1190 IF F2 AND H>=65 AND H<66 AND F4 THEN W$="127-141":MIN=127:MAX=141 1200 IF F2 AND H>=65 AND H<66 AND F5 THEN W$="137-155":MIN=137:MAX=155 1210 IF F2 AND H>=66 AND H<67 AND F3 THEN W$="120-133":MIN=120:MAX=133 1220 IF F2 AND H>=66 AND H<67 AND F4 THEN W$="130-144":MIN=130:MAX=144 1230 IF F2 AND H>=66 AND H<67 AND F5 THEN W$="140-159":MIN=140:MAX=159 1240 IF F2 AND H>=67 AND H<68 AND F3 THEN W$="123-136":MIN=123:MAX=136 1250 IF F2 AND H>=67 AND H<68 AND F4 THEN W$="133-147":MIN=133:MAX=147 1260 IF F2 AND H>=67 AND H<68 AND F5 THEN W$="143-163":MIN=143:MAX=163 1270 IF F2 AND H>=68 AND H<69 AND F3 THEN W$="126-139":MIN=126:MAX=139 1280 IF F2 AND H>=68 AND H<69 AND F4 THEN W$="136-150":MIN=136:MAX=150 1290 IF F2 AND H>=68 AND H<69 AND F5 THEN W$="146-167":MIN=146:MAX=167 1300 IF F2 AND H>=69 AND H<70 AND F3 THEN W$="129-142":MIN=129:MAX=142 1310 IF F2 AND H>=69 AND H<70 AND F4 THEN W$="139-153":MIN=139:MAX=153 1320 IF F2 AND H>=69 AND H<70 AND F5 THEN W$="149-170":MIN=149 MAX=170 1330 IF F2 AND H>=70 AND H<71 AND F3 THEN W$="132-145":MIN=132:MAX=145 1340 IF F2 AND H>=70 AND H<71 AND F4 THEN W$="142-156":MIN=142:MAX=156 1350 IF F2 AND H>=70 AND H<71 AND F5 THEN W$="152-173":MIN=152:MAX=173 1360 IF F2 AND H>=71 AND H<72 AND F3 THEN W$="135-148":MIN=135:MAX=148 1370 IF F2 AND H>=71 AND H<72 AND F4 THEN W$="145-159":MIN=145:MAX=159 1380 IF F2 AND H>=71 AND H<72 AND F5 THEN W$="155-176":MIN=155:MAX=176 1390 IF F2 AND H>=72 AND H<73 AND F3 THEN W$="138-151":MIN=138:MAX=151 1400 IF F2 AND H>=72 AND H<73 AND F4 THEN W$="148-162":MIN=148:MAX=162 1410 IF F2 AND H>=72 AND H<73 AND F5 THEN W$="158-179":MIN=158:MAX=179 1420 IF F1 AND(H<62 OR H>76)THEN W$="NOT LISTED":P$=W$:GOTO 1520 1430 IF F2 AND(H<58 OR H>72)THEN W$="NOT LISTED":P$=W$:GOTO 1520 1440 IF MIN>WEIGHT THEN UNDER=WEIGHT-MIN 1450 IF MAX25 THEN GOSUB 1570 1480 IF F1 THEN P$="What Are You, a FAG ?" 1490 IF F2 THEN P$="You Lying Dog" 1500 IF UNDER<-1 THEN UNDER=ABS(UNDER):GOSUB 1600 1510 IF OVER>=1 THEN GOSUB 1670 1520 PRINT P$:PAUSE 5:DISPLAY BEEP BEEP BEEP BEEP 1530 PRINT " You should weigh: ";W$:PAUSE 10 1540 LINPUT "ANOTHER ESTIMATE? (Y/N): ";ANS$ 1550 IF ANS$="Y" OR ANS$="y" THEN 200 1560 RETURN 1570 B=1:FOR V=1 TO 6:PAUSE .2 1580 DISPLAY AT(B)BEEP," FAT! ":B=B+5 1590 NEXT V:RETURN 1600 IF UNDER<=5 THEN P$=PROMPT$(1) 1610 IF UNDER>5 AND UNDER<=10 THEN P$=PROMPT$(2) 1620 IF UNDER>10 AND UNDER<=15 THEN P$=PROMPT$(3) 1630 IF UNDER>15 AND UNDER<=25 THEN P$=PROMPT$(4) 1640 IF UNDER>15 AND UNDER>25 THEN P$=PROMPT$(5) 1650 DISPLAY BEEP BEEP 1660 RETURN 1670 IF ABS(OVER)>=1 THEN P$=PROMPT$(6):DISPLAY 1680 IF OVER>5 AND OVER<=10 THEN P$=PROMPT$(7) 1690 IF OVER>10 AND OVER<=15 THEN P$=PROMPT$(8) 1700 IF OVER>15 AND OVER<=25 THEN P$=PROMPT$(9) 1710 IF OVER>25 THEN P$=PROMPT$(10) 1720 DISPLAY BEEP BEEP 1730 RETURN 1740 REM nEXT V:RETURN 1750 DATA "Take some vitamins","Hit the nearest Tom Thumb" 1760 DATA "OK; Olive Oil (Where's Popeye)" 1770 DATA "Better see a doctor - Skeleton" 1780 DATA "Don't stand SIDEWAYS Stick" 1790 DATA "Watch them Doughnuts","Better start a diet" 1800 DATA "OK Porky; you know your fat" 1810 DATA "Better see a doctor; FATSO" 1820 DATA "How did you fit thru the Door?" 1830 REM END OF WEIGHT ESTIMATOR 1840 PRINT "Enter Resistor Colors":PAUSE 1 1850 REM 1860 LINPUT "First band color? ";I$:GOSUB 2210 1870 IF F=0 THEN 1860 1880 C1$=I$ 1890 LINPUT "Second band color? ";I$:GOSUB 2210 1900 IF F=0 THEN 1890 1910 C2$=I$ 1920 LINPUT "Third band color? ";I$:GOSUB 2210 1930 IF F=0 THEN 1920 1940 C3$=I$:C3=VAL(C3$) 1950 LINPUT "Fourth band color? ";I$:GOSUB 2360 1960 IF F=0 THEN 1950 1970 C4$=I$ 1980 REM 1990 REM PRINT C1$;C2$;C3$;C4$:PAUSE 2000 IF C3=0 THEN C3$="" 2010 IF C3=1 THEN C3$="0" 2020 IF C3=2 THEN C3$="00" 2030 IF C3=3 THEN C3=98:C3$=" K" 2040 IF C3=4 THEN C3=98:C3$="0 K" 2050 IF C3=5 THEN C3=98:C3$="00 K" 2060 IF C3=6 THEN C3=99:C3$=" M" 2070 IF C3=7 THEN C3=99:C3$="0 M" 2080 IF C3=8 THEN C3=99:C3$="00 M" 2090 IF C3=9 THEN C3=99:C3$="000 M" 2100 IF C4$="GOLD" OR C4$="gold" THEN C4$=" 5% Tolerance" 2110 IF C4$="SILVER" OR C4$="silver" THEN C4$=" 10% Tolerance" 2120 IF C4$="" OR C4$="NONE" OR C4$="none" THEN C4$=" 20% Tolerance" 2130 OHM$=" ohms" 2140 IF C3=99 THEN 2170 2150 DISPLAY AT(4)BEEP,C1$;C2$;C3$;OHM$;C4$:PAUSE 8 2160 GOTO 2180 2170 DISPLAY AT(4)BEEP,C1$;C2$;C3$;OHM$;C4$:PAUSE 8 2180 LINPUT "ANOTHER RESISTOR? (Y/N): ";ANS$ 2190 IF ANS$="Y" OR ANS$="y" THEN 1840 2200 PRINT "Thank you":PAUSE 2:RETURN 2210 REM CHECK IF VALID COLOR 2220 F=0 2230 IF I$="BLACK" OR I$="black" THEN F=1:I$="0" 2240 IF I$="BROWN" OR I$="brown" THEN F=1:I$="1" 2250 IF I$="RED" OR I$="red" THEN F=1:I$="2" 2260 IF I$="ORANGE" OR I$="orange" THEN F=1:I$="3" 2270 IF I$="YELLOW" OR I$="yellow" THEN F=1:I$="4" 2280 IF I$="GREEN" OR I$="green" THEN F=1:I$="5" 2290 IF I$="BLUE" OR I$="blue" THEN F=1:I$="6" 2300 IF I$="VIOLET" OR I$="violet" THEN F=1:I$="7" 2310 IF I$="GREY" OR I$="grey" THEN F=1:I$="8" 2320 IF I$="WHITE" OR I$="white" THEN F=1:I$="9" 2330 IF F THEN RETURN 2340 DISPLAY BEEP BEEP BEEP:PRINT "INVALID COLOR":PAUSE 1 2350 RETURN :REM GOTO 11010 2360 REM CHECK IF VALID COLOR 2370 F=0 2380 IF I$="GOLD" OR I$="gold" THEN F=1 2390 IF I$="SILVER" OR I$="silver" THEN F=1 2400 IF I$="NONE" OR I$="none" THEN F=1 2410 IF I$="" THEN F=1 2420 IF F THEN RETURN 2430 DISPLAY BEEP BEEP BEEP:PRINT "INVALID COLOR":PAUSE 1 2440 GOTO 1950 2450 CALL CHAR(1,"040404041F1F0E04") 2460 CALL CHAR(2,"040E1F1F04040404") 2470 DISPLAY BEEP,"GUESS A NUMBER BETWEEN 1 AND 25":PAUSE 1.5 2480 DISPLAY BEEP,"YOU HAVE 6 CHANCES":PAUSE 1 2490 DISPLAY BEEP,"INDICATORS RECORD YOUR GUESSES":PAUSE 1 2500 COUNT=1 2510 RANDOMIZE 2520 SNUM=INTRND(25) 2530 PRINT "ENTER YOUR GUESS"; 2540 ACCEPT AT(28)VALIDATE(DIGIT),GUESS 2550 IF GUESS=SNUM THEN 2630 2560 CALL INDIC(COUNT) 2570 IF COUNT=6 THEN 2710 2580 IF GUESS57)*(K<65)+(K>89)THEN 150 180 IF K=ASC("Q")THEN 150 190 PRINT CHR$(K); 200 IF K<58 THEN 220 210 K=INT((POS(CHAR$,CHR$(K),1)-1)/3)+49 220 NUMB(I)=(K-48)*3 230 NEXT I 240 PRINT 250 PRINT "Press and hold any key to":PAUSE .5 260 PRINT "temporarily STOP the display.":PAUSE .5 270 FOR A=1 TO 3 280 FOR B=1 TO 3 290 FOR C=1 TO 3 300 FOR D=1 TO 3 310 FOR E=1 TO 3 320 FOR F=1 TO 3 330 FOR G=1 TO 3 340 PRINT SEG$(CHAR$,NUMB(1)+A,1); 350 PRINT SEG$(CHAR$,NUMB(2)+B,1); 360 PRINT SEG$(CHAR$,NUMB(3)+C,1); 370 PRINT SEG$(CHAR$,NUMB(4)+D,1); 380 PRINT SEG$(CHAR$,NUMB(5)+E,1); 390 PRINT SEG$(CHAR$,NUMB(6)+F,1); 400 PRINT SEG$(CHAR$,NUMB(7)+G,1), 410 N=N+1 420 PRINT N;"of 2187":PAUSE 1 430 CALL KEY(L,S) 440 IF S=-1 THEN 430 450 NEXT G 460 NEXT F 470 NEXT E 480 NEXT D 490 NEXT C 500 NEXT B 510 NEXT A --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=PLSMAX.TXT; SizeOnDisk=475 Content-description: PLSMAX.TXT 100 !V0=5:E0=2.1:T0=24 110 DISPLAY AT(1),"Pulse Width Absolute Maximum":PAUSE 1 120 DISPLAY AT(1)SIZE(13),"HEAD VOLTAGE:" 130 ACCEPT AT(15)VALIDATE(NUMERIC)REC,V 140 DISPLAY AT(1)SIZE(16),"HEAD RESISTANCE:" 150 ACCEPT AT(18)VALIDATE(NUMERIC)REC,R 160 DISPLAY AT(1)SIZE(17),"TEMPERATURE: 24 C" 170 ACCEPT AT(14)SIZE(-2)VALIDATE(DIGIT)REC,T 180 E=((5+V)/(2*V))*2.1*(1+((24-T)/100)) 190 TW=(R*E)/(V^2) 199 IMAGE MAX PULSE WIDTH = #.###mS 200 DISPLAY AT(1),TW:PAUSE --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=POLARCOR.TXT; SizeOnDisk=523 Content-description: POLARCOR.TXT 80 REM POLAR COORDINATE PLOT 90 REM TIPCC NOTES V10N2P14 (1985) 100 OPEN #1,"10",OUTPUT 110 PRINT #1,CHR$(19) 120 PRINT #1,"L(0,-107):1,(215,-107)" 130 PRINT #1,"L(107,0),(107,-215)" 140 PRINT #1,"M(107,-107)" 150 PRINT #1,"O" 160 PRINT #1,"C4" 190 X1=0:Y1=0 200 FOR THETA=0 TO 360 STEP 2 210 RHO=100*SIN(4*THETA) 220 X2=INT(RHO*COS(THETA)) 230 Y2=INT(RHO*SIN(THETA)) 240 P$="L("&STR$(X1)&","&STR$(Y1)&"),("&STR$(X2)&","&STR$(Y2)&")" 250 PRINT #1,P$ 260 X1=X2:Y1=Y2 270 NEXT THETA 280 CLOSE #1 290 END --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=ROMANNUM.TXT; SizeOnDisk=788 Content-description: ROMANNUM.TXT 90 !adapted by Charles Good, Lima Ohio User Group, July 1992 100 !from BASIC PROGRAMS FOR SMALL COMPUTERS by C. Regina Compute Books 1984 110 FOR I=1 TO 9 120 READ H$(I),T$(I),S$(I) 130 NEXT I 140 DATA C,X,I,CC,XX,II,CCC,XXX,III,CD,XL,IV,D,L,V 150 DATA DC,LX,VI,DCC,LXX,VII,DCCC,LXXX,VIII,CM,XC,IX 160 ! 170 R$="":RANDOMIZE 180 N=INT(1999*RND)+1 190 NN=N 200 IF N<1000 THEN 230 210 R$="M" 220 N=N-1000 230 IF N<100 THEN 270 240 NR=INT(N/100) 250 R$=R$&H$(NR) 260 N=N-NR*100 270 IF N<10 THEN 310 280 NR=INT(N/10) 290 R$=R$&T$(NR) 300 N=N-NR*10 310 IF N=0 THEN 330 320 R$=R$&S$(N) 330 DISPLAY "Roman= ";R$;:DISPLAY AT(19),"Number=";:ACCEPT AT(27),ANS 340 IF ANS=NN THEN 370 350 PRINT "The number is";NN:PAUSE 360 GOTO 160 370 PRINT "CORRECT!!!":PAUSE:GOTO 160 --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=SETRAM40.TXT; SizeOnDisk=346 Content-description: SETRAM40.TXT 90 REM Sets up 8K RAM cartridge as a mass storage cartridge for 6K CC40 100 CALL POKE(36910,142,144,77,136,175,255,102,136,31,255,104,224,11) 110 CALL POKE(36923,142,144,77,136,31,255,102,136,175,255,104) 120 CALL POKE(36934,136,24,0,106,142,248,12,136,0,102,1,140,248,54) --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=SOCCER.TXT; SizeOnDisk=459 Content-description: SOCCER.TXT 100 CALL CHAR(0,"0E0E150E04040A11"):CALL CHAR(1,"001A1A1B06020509") 110 CALL CHAR(2,"0001050305191919"):CALL CHAR(3,"000105031D191901") 120 CALL CHAR(4,"150E04040A110E0E"):CALL CHAR(5,"0010141814131313") 130 CALL CHAR(6,"000B0B1B0C081412") 140 FOR A=10 TO 21:FOR B=0 TO 6:DISPLAY AT(A),CHR$(B):PAUSE .1 150 NEXT B:NEXT A:PAUSE .5 160 FOR A=21 TO 10 STEP -1:FOR B=6 TO 0 STEP -1 170 DISPLAY AT(A),CHR$(B):PAUSE .1 180 NEXT B:NEXT A:PAUSE .5:GOTO 140 --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=WORDPROC.TXT; SizeOnDisk=5121 Content-description: WORDPROC.TXT 5 DATA " TI-74/CC40 Word Processor by Charles Good & Palmer Hanson" 10 DATA "Jr., June 1992. Lines 5-75 are a sample document. With HexBUS RS232" 15 DATA "dumps ASCII text to any printer or to TI WRITER on a 99/4A. Dumps" 20 DATA "to MS-DOS with TI's TI-74 PC Interface Cable. CR" 22 DATA "CR" 25 DATA " To enter text type 100 and down arrow, position cursor over 2nd" 30 DATA "quotation mark in blank DATA line and type text. When text fills a" 35 DATA "line, end the line with a closing quote, press down arrow, and" 37 DATA "continue entering text on" 40 DATA "the next blank DATA line. Text in each DATA line should be enclosed" 43 DATA "in a set of quotes." 45 DATA "Quotation marks ""WITHIN THE TEXT"" require special treatment, as in" 50 DATA "line 45. For carriage returns" 55 DATA "type ""CR"" preceeded by a space at the end of each paragraph, as in" 57 DATA "lines 20 and 65. To leave a blank line between" 60 DATA "paragraphs type ""CR"" alone on a DATA line as in line 65. CR" 65 DATA "CR" 70 DATA " If you get a MEMORY FULL error enter ""DEL 5-75"" to free up enough" 75 DATA "memory to VIEW, PRINT, or SEND the document. CR" 100 DATA "Start of document" 105 DATA "" 110 DATA "" 115 DATA "" 120 DATA "" 125 DATA "" 130 DATA "" 135 DATA "" 140 DATA "" 145 DATA "" 150 DATA "" 155 DATA "" 160 DATA "" 165 DATA "" 170 DATA "" 175 DATA "" 180 DATA "" 185 DATA "" 190 DATA "" 195 DATA "" 200 DATA "" 205 DATA "" 210 DATA "" 215 DATA "" 220 DATA "" 225 DATA "" 230 DATA "" 235 DATA "" 240 DATA "" 245 DATA "" 250 DATA "" 255 DATA "" 260 DATA "" 265 DATA "" 270 DATA "" 275 DATA "" 280 DATA "" 285 DATA "" 290 DATA "" 295 DATA "" 300 DATA "" 305 DATA "" 310 DATA "" 315 DATA "" 320 DATA "" 325 DATA "" 330 DATA "" 335 DATA "" 340 DATA "" 345 DATA "" 350 DATA "" 355 DATA "" 360 DATA "" 365 DATA "" 370 DATA "" 375 DATA "" 380 DATA "" 385 DATA "" 390 DATA "" 395 DATA "" 400 DATA "" 405 DATA "" 410 DATA "" 415 DATA "" 420 DATA "" 425 DATA "" 430 DATA "" 435 DATA "" 440 DATA "" 445 DATA "" 450 DATA "" 455 DATA "" 460 DATA "" 465 DATA "" 470 DATA "" 475 DATA "" 480 DATA "" 485 DATA "" 490 DATA "" 495 DATA "" 500 DATA "" 505 DATA "" 510 DATA "" 515 DATA "" 520 DATA "" 525 DATA "" 530 DATA "" 535 DATA "" 540 DATA "" 545 DATA "" 550 DATA "" 555 DATA "" 560 DATA "" 565 DATA "" 570 DATA "" 575 DATA "" 580 DATA "" 585 DATA "" 590 DATA "" 595 DATA "" 600 DATA "" 605 DATA "" 610 DATA "" 615 DATA "" 620 DATA "" 625 DATA "" 630 DATA "" 635 DATA "" 640 DATA "" 645 DATA "" 650 DATA "" 655 DATA "" 660 DATA "" 665 DATA "" 670 DATA "" 675 DATA "" 680 DATA "" 685 DATA "" 690 DATA "" 695 DATA "" 700 DATA "" 705 DATA "" 710 DATA "" 715 DATA "" 720 DATA "" 725 DATA "" 730 DATA "" 735 DATA "" 740 DATA "" 745 DATA "" 750 DATA "" 755 DATA "" 760 DATA "" 765 DATA "" 770 DATA "" 775 DATA "" 780 DATA "" 785 DATA "" 790 DATA "" 795 DATA "" 800 DATA "" 805 DATA "" 810 DATA "" 815 DATA "" 820 DATA "" 825 DATA "" 830 DATA "" 835 DATA "" 840 DATA "" 845 DATA "" 850 DATA "" 855 DATA "" 860 DATA "" 865 DATA "" 870 DATA "" 875 DATA "" 880 DATA "" 885 DATA "" 890 DATA "" 895 DATA "" 900 DATA "" 905 DATA "" 910 DATA "" 915 DATA "" 920 DATA "" 925 DATA "" 930 DATA "" 935 DATA "" 940 DATA "" 945 DATA "" 950 DATA "" 955 DATA "" 960 DATA "" 965 DATA "" 970 DATA "" 975 DATA "" 980 DATA "" 985 DATA "" 990 DATA "" 995 DATA "" 1000 PRINT " DATA STATEMENT WORD PROCESSOR":PAUSE 2 1010 RESTORE 100:CODE=0 1020 INPUT "1=View 2=Print 3=Send 4=Inst. ";M$ 1025 IF M$="4"THEN RESTORE 1030 IF M$="1"OR M$="4"THEN LW=31:GOTO 3030 1040 IF M$="2"THEN 3000 1050 IF M$="3"THEN 4000 ELSE 1020 3000 INPUT "Printer device number?";P$ 3010 OPEN #1,P$,OUTPUT 3020 INPUT "Line Width?";LW:IF LW>80 THEN 3020 3025 INPUT "Left margin column? 0-79 ";LM 3030 PRINT$="":PW=0 3040 ON ERROR 5000 3050 READ TEXT$ 3060 IF TEXT$=""THEN 3050 3070 TEXT$=TEXT$&" " 3080 X=LEN(TEXT$):Y=POS(TEXT$," ",1) 3090 IF X=0 THEN 3050 3100 ADD$=SEG$(TEXT$,1,Y) 3110 IF ADD$="CR "AND PW>0 THEN 3170 3120 IF ADD$="CR "THEN 3185 3130 IF (PW+Y)>LW THEN 3170 3140 PRINT$=PRINT$&ADD$ 3150 TEXT$=SEG$(TEXT$,Y+1,X-Y) 3160 PW=PW+Y:GOTO 3080 3170 PRINT$=SEG$(PRINT$,1,PW-1) 3175 IF SEG$(PRINT$,1,1)=" "THEN PRINT$=SEG$(PRINT$,2,PW-2) 3180 IF M$="2"OR M$="3"THEN N=N+1:PRINT TAB(5);"Sending Line";N;"of text" 3185 IF M$="1"OR M$="4"THEN PRINT PRINT$:PAUSE:GOTO 3205 3190 PRINT #1,TAB(LM);PRINT$ 3200 IF CODE=32 THEN PRINT #1:CLOSE #1:N=0:LM=0 3205 IF CODE=32 THEN PRINT TAB(9);"End of document":PAUSE:RETURN 1000 3210 IF ADD$="CR "THEN TEXT$=SEG$(TEXT$,4,X) 3220 PW=0:PRINT$="":GOTO 3080 4000 OPEN #1,"20.D=8,P=N,R=C",OUTPUT,VARIABLE 80!HexBus RS232 toTIWriter on99/4A 4005 !OPEN #1,"101.FILENAME.DOC",VARIABLE 80,OUTPUT!PC interface cable to MS-DOS 4010 GOTO 3020 5000 !End of DATA routine 5010 CALL ERR(CODE,A) 5020 IF CODE=43 THEN CODE=32!Interpret CC40 error code as TI74 error code 5030 IF CODE<>32 THEN RETURN ELSE 3180 --Boundary (ID PEar9C1M4y//oQ7m2f0uXw) Content-type: TEXT/plain; CHARSET=US-ASCII; name=SORT10.TXT; SizeOnDisk=2717 Content-description: SORT10.TXT 80 REM Sorts numbers or words. Use of printer/plotter is optional 90 REM CC40 BASIC, rewritten by Charles Good from a PD 99/4A program 100 DIM G(150),C$(150) 110 Z=1 120 PRINT " ALPHA NUMERIC SORT":PAUSE 2 130 INPUT "Type C for char, N for number";W$ 140 IF W$="N"THEN 660 150 IF W$="n"THEN 660 160 IF W$="c"THEN 180 170 IF W$<>"C"THEN 130 180 INPUT "Enter an END OF LIST code";S$ 190 PRINT "Now begin entering data.":PAUSE 1 200 PRINT "Press after each entry,":PAUSE 1 210 PRINT "When finished enter stopcode.":PAUSE 1 220 N=N+1 230 INPUT C$(N) 240 IF C$(N)<>S$THEN 220 250 N=N-1 260 L=INT(N/2)+1 270 N1=N 280 IF L=1 THEN 320 290 L=L-1 300 A$=C$(L) 310 GOTO 360 320 A$=C$(N1) 330 C$(N1)=C$(1) 340 N1=N1-1 350 IF N1=1 THEN 490 360 J=L 370 I=J 380 J=2*J 390 IF J=N1 THEN 430 400 IF J>N1 THEN 460 410 IF C$(J)>=C$(J+1)THEN 430 420 J=J+1 430 IF A$>C$(J)THEN 460 440 C$(I)=C$(J) 450 GOTO 370 460 C$(I)=A$ 470 GOTO 280 480 C$(1)=A$ 490 C$(1)=A$ 500 PRINT "Here is the sorted list.":PAUSE 1 510 INPUT "P = printer, S = screen";Y$ 520 IF Y$="S"THEN 610 530 IF Y$="s"THEN 610 540 IF Y$="p"THEN 560 550 IF Y$<>"P"THEN 510 560 OPEN #1,"10",OUTPUT 570 FOR I=1 TO N 580 PRINT #1,C$(I) 590 NEXT I 600 CLOSE #1:GOTO 640 610 FOR I=1 TO N 620 PRINT C$(I),"Press ENTER":PAUSE 630 NEXT I 640 INPUT "End of list. Press ENTER.";Y$ 650 RUN 660 INPUT "Enter an END OF LIST number.";S$ 670 IF SEG$(S$,1,1)<"0"THEN 690 680 IF SEG$(S$,1,1)<="9"THEN 700 690 PRINT "Please type a POSITIVE NUMBER":PAUSE 1:GOTO 660 700 S=VAL(S$) 710 PRINT "Now begin entering data":PAUSE 1 720 N=N+1 730 INPUT G(N) 740 IF G(N)<>S THEN 720 750 N=N-1 760 L=INT(N/2)+1 770 N1=N 780 IF L=1 THEN 820 790 L=L-1 800 A=G(L) 810 GOTO 860 820 A=G(N1) 830 G(N1)=G(1) 840 N1=N1-1 850 IF N1=1 THEN 980 860 J=L 870 I=J 880 J=2*J 890 IF J=N1 THEN 930 900 IF J>N1 THEN 960 910 IF G(J)>=G(J+1)THEN 930 920 J=J+1 930 IF A>G(J)THEN 960 940 G(I)=G(J) 950 GOTO 870 960 G(I)=A 970 GOTO 780 980 G(1)=A 990 M=INT((N+1)/2) 1000 FOR I=1 TO N 1010 AV=AV+G(I) 1020 NEXT I 1030 AVERAGE=AV/N 1040 PRINT "Here is the sorted list.":PAUSE 1:INPUT "P = printer, S = screen";Y$ 1050 IF Y$="s"THEN 1140 1060 IF Y$="S"THEN 1140 1070 IF Y$="p"THEN 1080:IF Y$<>"P"THEN 1040 1080 OPEN #1,"10",OUTPUT 1090 FOR I=1 TO N 1100 PRINT #1,G(I) 1110 NEXT I 1120 PRINT #1,"Median =";G(M):PRINT #1,"Average =";AVERAGE 1130 CLOSE #1:RUN 1140 FOR I=1 TO N 1150 PRINT G(I),"Press ENTER":PAUSE 1160 NEXT I 1170 PRINT "End of list. Press ENTER.":PAUSE 1180 PRINT "Median =";G(M);" Average =";AVERAGE:PAUSE 1190 RUN