PGRAM

From Ninerpedia
Revision as of 18:55, 1 January 2015 by Stephen Shaw (talk | contribs) (new major article on PGRAM card from Lima newsletter of 1992)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The PGRAM and PGRAM+ were sold by Bud Mills Services. A 1988 circuit board is marked "By John Guion. Horizon Computer Ltd".

Like other battery backed GRAM devices such as the GramKracker and the Gramulator, this device allows you do three things:

  1. You can save any command module to disk and then load the module from disk back into the device. Once loaded, the module remains in memory even if the computer system is powered down because of the battery backup. Minor modifications to modules can be easily be made such as changing screen colors, default device names, and (for example in the case of Extended BASIC) default save/load drive names. These modifications can be made to the module disk files using a sector editor, or directly into the PGRAM's memory with the PGRAM's built in memory editor.
  2. The PGRAM can be used as a supercart, giving running software such as Y.A.P.P. and some Infocom games needed access to 8K of CPU RAM normally accessed via the cartridge port.
  3. GRAM devices can provide some of the same functions as a RAMdisk. They can be used as ROM disks for storage in GRAM memory of EA5 software such as DM1000. The stored software will boot very quickly from a powerup menu.

Because loading a Gram device with code is rather cumbersome, and because you usually only have access to that software when you first turn on the computer, gram devices cannot be used to store text files or data files and are not as flexible as RAMdisks, which can store such files. Files created using any of the other GRAM devices, as well as files created by the Geneve's module save software can be loaded into the PGRAM's memory and will work.

Many of the various utilities written for other GRAM devices to add TI BASIC programs to the powerup menu and to add extra features to extended basic will work with the PGRAM.

Using JP Software program called GRAM PACKER, it is possible to store most (but not all) assembly PROGRAM image software that boots from option #5 of the EA module or loader 2 & 3 of Funnelweb in the PGRAM for instant access at the powerup menu.


General Description of the PGRAM

Form of device

Unlike other GRAM devices, the PGRAM resides in the PE box and thus is not affected by what may be the TI system's weakest link, the cartridge (aka grom) port. The other GRAM devices mentioned above plug into the cartridge port.


The regular PGRAM has one bank of memory that simulates GROMs 3-7, plus two 8K banks of RAM to simulate the bank switched ROM that is in many TI cartridges.

PGRAM+

The "PLUS" version has three extra banks of GRAM (a total of four banks) which can be switched in and out with the PGRAM's memory editor and which can also all be accessed at system powerup using the 99/4A console's built in "Review Module Library" feature.


Bud Mills includes a public domain program called GMENU you can load into the PGRAM which will simultaneously display all the choices in all four memory banks on one screen. For those who can't get hold of GRAM PACKER, Bud includes some sample multiple item packs that can be loaded directly into the PGRAM. Bud also includes a version of John Johnson's BOOT designed for PGRAM use.

Farewell Module port instability

The Extended BASIC module is notorious for locking up our computers if it doesn't make perfect contact with all the pins of the cartridge port. Other Gram devices that plug into the module port have gold plated contacts, so when loaded with Extended Basic, they don't lock up the computer AS FREQUENTLY as does the XB module.

Contacts of this port are easily worn and/or abused. Such a lockup requires the user to remove and reinsert the gram device. Because the PGRAM+ is in the PE box it eliminates any problems caused by worn cartridge ports.

Limitations of the PGRAM+

Only one pair of RAM banks

Note this section well before purchasing the "plus" version of PGRAM, because what I am describing is potentially a major limitation.

There are four banks of GRAM that simulates cartridge GROM. But there is only one pair of RAM memory banks that simulates the two ROM banks that can be found in many modules. This means that only one module at a time that uses ROM can be loaded into the PGRAM+. If you wonder why much of my PGRAM+ memory is populated with games, this is because some of the modules I would like to use are not simultaneously compatable with each other in the PGRAM+.

Most GRAM device users like to keep Extended Basic in their Gram device most of the time. Other "important" TI modules are TERMINAL EMULATOR II (for unlimited speech), EDITOR/ASSEMBLER (some software will ONLY load using an EA module that resides starting at grom memory location >6000), MULTIPLAN, and perhaps PLATO and LOGO II. Of these only EDITOR/ASSEMBLER and MULTIPLAN do not use ROM and can thus reside in a PGRAM+ simultaneously with Extended Basic but in a different PGRAM+ memory bank. To use any of the other "important" modules it is necessary to load them from disk into the PGRAM+ GRAM bank 1, erasing Extended Basic. Later, XB must be reloaded into the PGRAM+ GRAM bank 1 from disk.


Many of the better cartridge games manufactured by TI, including most of those with 1982 and 1983 copyrights, use ROM and cannot coexist in the PGRAM+ with Extended Basic. The only TI game I really like that CAN coexist with XB is CAR WARS.

NO access to TO GROMS 0, 1, and 2 with a PGRAM+

Gram devices that plug into the console allow the user to modify or completely replace the three grom chips that are on the console motherboard. These comprise the console's operating system (Grom 0) and the TI BASIC interpreter (Grom 1 & 2). Usual mofifications of Grom 0 include a custom title screen ("Charlie's TI computer") and a nice lower case character set with true descenders. Since TI BASIC isn't used very much, other software can be loaded into the Grom 1 & 2 memory space.

These Grom 0, 1, and 2 manipulations are not possible with a PGRAM. I do miss the nice lower case character set I had with my GramKracker, but other Grom 0, 1, and 2 modifications are not important.

GMENU limitations and how to solve them

If you use the GMENU utility to simultaneously display all software options available from all GRAM banks, and you have Extended Basic in bank 1 (the usual place for XB in a PGRAM), there are some circumstances in which Funnelweb will fail to recognize the presence of Extended Basic. From Funnelweb's Disk Review, if you move the cursor next to an XB PROGRAM file and press "R" to run the program, Disk Review may respond with "XB MODULE NOT FOUND" even though it is there where it belongs in GRAM bank 1. The solution is to load GMENU into whatever GRAM module or pack you intend to keep in GRAM bank 2. With GMENU in bank 2, both GMENU and Funnelweb seem to work properly.

GMENU has white on light blue default colors. For white on dark blue: To make this change use a sector editor and search both of GMENU's disk files in hex for >F5. Change this to F4. There are two F5's that should be changed, one for the screen border and the other for the central text bearing part of the screen.

PGRAM memory editor

This has the look and feel of the GramKracker memory editor, but it isn't quite as easy to use. It is, however, in the PGRAM's operating system and thus always available, unlike the Gramulator's memory editor which must be loaded in from disk.

The PGRAM documentation has all the necessary information needed to "turn on" the editor, but this information is scattered over several pages. To properly EXAMINE grom memory, even if you don't intend to do any editing, it is necessary to turn on the editor. Otherwise the screen display of grom memory will be incorrect.

Here is what you do.

Select MEMORY EDITOR from the menu you get when you type CALL PGRAM from BASIC.

Type FCTN/1 to enable you to set the "CRU bits". Type the PGRAM's CRU address, usually 1700. Then in the next field type "12" to change the CRU bits so that memory editing can proceed.

THEN type FCTN/1 AGAIN to exit the CRU bit edit mode.

This is the confusing part. If you type FCTN/9 (back) you will also exit the CRU bit edit mode but the CRU bits will not be changed and you will not be able to examine or edit memory.

PGRAM Clock

This battery backed clock shows the day of the week, month, year, hour (only in 24 hour format), minutes and seconds.

There is no provision in any of the various 99/4A disk controllers for automatic time/date stamping files, but there are some specific applications that can use the PGRAM clock.

From either BASIC you can get an on screen display of the time by typing CALL PTIME to set the clock or CALL PGRAM to access the PGRAM's loader/editor. Neither of these gives a clean exit back to BASIC. You can also, from within either BASIC (either in command mode or from within a running BASIC program), display the clock information or set the clock in the same way you would with a CorComp clock or the MPB clock. In these cases you remain in the BASIC environment. Everything is explained in the PGRAM user guide.

The following software will make direct use of the PGRAM clock to display the correct time and/or date. This software is all public domain except for BOOT (which is fairware) and is all available in the Lima User Group library.

  • REMIND ME will, upon booting with a PGRAM clock in the computer, correctly show the correct time, month, and date, and place the cursor on the correct day of the displayed month. To have all this happen, it is necessary for the user to use a sector editor, search the single REMIND-ME file in ASCII for the text "CLOCK", and use the space bar to cover over the word CLOCK with blanks.
  • BOOT will display the correct time and date on screen if a PGRAM clock is in the computer. It may be necessary to space over CLOCK in BOOT as described above for this to happen.
  • Mel Nomina's CHECKBOOK WRITER will automatically put the correct date on your checks if you remove some REM statements.
  • Harold Hoyt has written a program that will display the current date and time, catalog a disk, and optionally time/date stamp any DV80 text file on the disk.
  • Harold Hoyt has also written an extended basic program that will put a time/date display at the top of the screen and then erase itself, leaving the time/date display. This will remain on display through the running of any extended basic program and even if NEW is typed.


Multiple Memory Banks

You can store lots of software in the four memory banks of the PGRAM+, allowing the PGRAM+ to act somewhat like a "romdisk". Other battery backed gram devices have only one bank of memory.

Example usage of memory banks

Using the four memory banks of GRAM PACKER the following sample menus may be displayed with I "PRESS ANY KEY TO CONTINUE":

    PRESS 
    1 FOR TI BASIC 
    2 FOR TI EXTENDED BASIC 
    3 FOR FUNNELWEB 
    4 FOR PRINTER SETUP 
    5 FOR REVIEW MODULE LIBRARY 

(press 5 then get the next menu for the second memory bank)

    PRESS 
    1 FOR TI BASIC 
    2 FOR EDITOR/ASSEMBLER 
    3 FOR MAC FLIX 
    4 FOR DV80 WORK COUNT 
    5 FOR DISK MANAGER 1000 
    6 FOR REVIEW MODULE LIBRARY 

(press 6 then get the next menu for the third memory bank)

    PRESS 
    1 FOR TI BASIC 
    2 FOR AMBULANCE 
    3 FOR TENNIS 
    4 FOR REVIEW MODULE LIBRARY 

(press 4 then get the following menu for the fourth memory bank)

    PRESS 
    1 FOR SPACE AGRESSOR 
    2 FOR FIREBALL 
    3 FOR AUTO RACE 
    4 FOR GHOST SPELL 
    6 FOR REVIEW MODULE LIBRARY 

(press 6 then go back to the first menu above for the first memory bank)


The only actual cartridge software in this list is EXTENDED BASIC and EDITOR/ASSEMBLER. Everything else is either assembly PROGRAM memory image software or short TI BASIC programs. (AMBULANCE and TENNIS are available both as assembly PROGRAMs and as module software.) The FUNNELWEB menu item is a short TI BASIC "CALL" which loads Funnelweb from an Horizon Ramdisk. PRINTER SETUP is a short TI BASIC program to set up a printer for particular fonts.

(From Lima Newsletter 1992, by Charles Good)