[ Go to Stephen's Entry Page ]
[ TI99/4a Articles index |   TI Book front page |    TI Resources Page |   PC99 Programs    ]
contact - please use subject="TI page" to avoid spam trap!
  

Advertiser / Advertizer Module

Many thanks for the module photographs to Flottmann1.

Screen grabs are by me.

Jump to downloads

Last update: November 2018.

This page will record derived documentation for a very early TI module developed around 1979 for the Texas Instruments TI-99/4 Home Computer. The module was unusual in NOT appearing on the computer menu screen as its sole purpose in life was to add new commands for use in TI Basic.
Written in GPL, examples are only known with EPROM contents (either 2x4k or 8k) and only the German language version is available to this writer. Versions of the module binary are available for the TI emulators in PC99 and Mess formats, for which it may have the unofficial identity of PHM3063. The module shown here is dated 1981, but we have Basic programs for the module originating from TI in France dated February 1980.

The intent of the module was to make powerful GPL display subroutines available by simple CALLs in TI Basic programs, in a more complex format than normal TI Basic. The intended purpose was for advertising displays and interactive shop displays. Regular TI Basic programmers will find a double height font and the ability to have two different coloured fonts at the same time.

The module was written before a PAL computer console was available, and timing commands are based on 60Hz rather than the European 50Hz. As a consequence when running on a European console or an emulated European console, times will be a little slow.

Some elements have baffled me!

Introduction and initialisation

Insert module.

Go to menu- you will only see "TI BASIC", this is as it should be (some emulators may show you "REVIEW MODULE LIBRARY" also).

select TI BASIC
enter CALL FILES(9)
enter NEW

[Upon power up, the module checks for 16k free VDP ram and if it finds it then creates an isolated area for its own use, safe from Basic. If however you have a disk controller attached (including emulators!) this is insufficient and you must increase the "safe" area with a CALL FILES(9) followed by NEW]

Now write your BASIC program or load a disk file eg DSK1.DEMO

NB You have a reduced memory for your basic program- about 9k.


note- INITIALISATION IS REQUIRED before using these calls.
all programs must start CALL AD
which can also be used in the middle of a program.
CALL AD will also clear the screen
AD      CALL AD
Sets up memory- copies graphics to safe area of VDP etc, and MUST be first line of program.
Also resets VDP memory/built in graphics and fonts in a running program.

100 CALL AD

The command will fail INITIALISATION REQUIRED if VDP memory has not been prepared first (with a disk controller, using CALL FILES(9) )


AUDIO:

CSOFF      CALL CSOFF
CSON      CALL CSON

Unable to test but probably meant to control an audio cassette remote.

CAS      CALL CAS
Places a message at the screen bottom, scrolling the display 3 lines,
"Press Play" "Then press ENTER"
These three CALLs take no parameters.


MUSIC      CALL MUSIC(3)-
     values from 1 to 11.
     1 is Beep, 2 is Honk, 7 is from Yahtzee.
100 CALL AD
110 FOR C=1 TO 11
120 CALL MUSIC(C)
130 CALL PAUSE(5)
140 NEXT C



D      CALL D(M,R,C,L,M$)

     Places normal text on screen.
     M=mode: 1 put text on screen 2,5,8 with music 3 Flash for a short period
     4 Flash until key pressed
     6,7 Place letters with a tone for each one
    R,C row and column
    L Length to clear: if less than text the text will be curtailed, if longer than text the screen after the text will be cleared to the excess length.
    M$ is the message text.
    A number, numeric formula (eg 4*4) or numeric variable is ok here.

note: The length of a number includes its sign but + is repressed- so that 2 is length 2 but displays as 2 (with a space to the left) while -2 is also length 2 and displays as -2.
If length is set too short for the number the left most part of the number is shown so that with length 2 the number 123 shows as 1 and with length 3 the number 435 shows as 43.
With length 4, number 12/10000 is displayed as .00 - the + sign and the decimal are included in the length.

The length parameter allows negative numbers will no apparent difference.

100 CALL AD
110 CALL D(1,4,2,11,"HELLO WORLD")
120 CALL D(6,8,3,7,"MESSAGE")
130 CALL D(5,2,2,4,"LONG MESSAGE")
130 CALL HCHAR(10,1,42,256)
140 CALL D(1,10,3,17,"NO BLANK TO RIGHT")
150 CALL D(1,11,3,15,"BLANK TO RIGHT")
160 CALL D(7,18,4,2,52)
170 CALL PAUSE(10)


G      CALL G(M,R,C,LEN(L$),L$)
     Similar to CALL D but uses a separate character set making banners possible.
    Use CALL COLORG(B) to set the background colour of the banner.
     Places banner text on screen.
     M=mode: 1 put text on screen 2,5,8 with music 3 Flash for a short period
     4 Flash until key pressed
     6,7 Place letters with a tone for each one
    R,C row and column
     L Length to clear: if less than text the text will be curtailed,
     if longer than text the screen after the text will be cleared
     by the excess characters.
     M$ is the message text and can be a number- refer to CALL D.


100 CALL AD
110 CALL GRAPSET(1)
120 CALL COLORG(4)
130 CALL G(6,2,7,11,"HELLO WORLD")
140 CALL PAUSE(10)

DX2      CALL DX2(M,R,C,L,"TEXT HERE")
     As D above BUT the text is duplicated on the line below
     using the Graphic font, allowing different colors and different FLASHing.
100 CALL AD
110 CALL CHARSET(3)
120 CALL GRAPSET(1)
130 CALL COLORG(4)
140 CALL DX2(1,4,2,11,"HELLO WORLD")
150 CALL FLASH(1,3,4,1)
160 CALL FLASH(1,3,5,2)
170 CALL FLASH(1,3,4,3)
180 CALL PAUSE(10)

110 changes normal text to lower case (top text using DX2)
120 makes graphics text upper case (bottom text using DX2)
130 changes background colour of graphics text light blue
140 displays HELLO WORLD twice, from row 1 col 4 and also row 2 col 4
150 flashes the normal text- top text using DX2
160 flashes the graphics text - bottom row using DX2
170 flashes both normal and graphics text together

and
100 CALL AD
110 CALL GRAPSET(3)
120 CALL COLORG(3)
130 CALL DX2(2,5,3,5,"SEVEN")
140 CALL PAUSE(3)
150 CALL DX2(1,9,3,7,"LETTERS")
160 CALL PAUSE(3)
170 CALL COLORG(4)
180 CALL PAUSE(3)
190 CALL GRAPSET(1)
200 CALL PAUSE(2)
210 CALL CHARSET(3)
200 CALL PAUSE(4)

110 changes graphics text (lower text using DX2) to lower case
120 changes graphics text back ground colour to green
170 changes graphics text background to light blue
190 changes graphics text (lower text using DX2) to upper case
210 changes normal text (upper text using DX2) to lower case

also

If you use CALL DX2 in this manner (double height):
- you CAN use it several times on a page.
- you cannot also use CALL TEXT
- it will corrupt the characters used for normal text (eg CALL D) and
- it will corrupt the characters used for graphics text (eg CALL G).
100 CALL AD
110 CALL GRAPSET(4)
120 CALL COLORG(3)
130 CALL DX2(1,5,5,6,"DOUBLE")
140 CALL DX2(1,8,8,6,"HEIGHT")
150 CALL DX2(1,11,10,7,"LETTERS")
160 CALL PAUSE(5)

SEE ALSO CALL FLASH; CALL GRAPSET; CALL CHARSET; CALL COLORG


TEXT      CALL TEXT(18,8,L$) or CALL TEXT(4,2,"TEST")
     eg CALL TEXT(row,col,text)

Displays DOUBLE HEIGHT normal text (eg two rows high)
May not be used to display numbers or numeric variables which must be converted to a string using STR$(N).
Restricted to one use per screen (second use corrupts displayed normal texts(CALL D) )
NOTE: Redefines characters used for text in CALL HCHAR, PRINT, CALL D and CALL G and any other use on the same screen of CALL TEXT.
100 CALL AD
110 CALL TEXT(5,1,"HELLO WORLD")
120 CALL PAUSE(4)
130 PRINT:"TI ADVERTISER MODULE"
140 CALL PAUSE(10)

OR

100 CALL AD
110 CALL TEXT(5,1,"HELLO WORLD")
120 CALL PAUSE(4)
130 CALL CLEAR
130 CALL TEXT(6,2,"HELLO AGAIN")
140 CALL PAUSE(10)

note: You can also use CALL DX2 to display double height text using the graphics text (CALL G)- see CALL DX2. This corrupts single height graphics text but can be used several times on one screen.


DISPLAY SUMMARY
CALL D- place normal text
CALL G- place "graphics" text
CALL DX2- one command to place both normal and graphics text OR place double height text multiple times.
CALL TEXT- place double height text
CALL HCHAR and PRINT also still available.

SCROLL      CALL SCROLL(LINES)
     Scrolls the display upwards by LINES number of screen lines.

100 CALL AD
110 PRINT "HELLO WORLD"
120 CALL PAUSE(5)
130 CALL SCROLL(5)
140 CALL PAUSE(10)
150 CALL SCROLL(12)
160 CALL PAUSE(10)


CALL     CHARSET(V)
Amends font for "normal" (CALL D) text.
     V=1 larger all caps text
     V=2 smaller all caps text
     V=3 displays text in lowercase
     V=4 displays text in double size (when using CALL DX2)
100 CALL AD
110 CALL D(1,1,1,10,"FIRST LINE")
120 FOR T=1 TO 3
130 A$=CHARSET "&STR$(T) 140 CALL CHARSET(T)
150 CALL D(1,3*T,3,9,A$)
160 NEXT T
170 CALL PAUSE(10)

CALL CHARSET(4) is for use with CALL DX2, it will corrupt normal size text characters.
100 CALL AD
110 CALL CHARSET(4)
120 CALL DX2(1,3,1,6,"DOUBLE")
130 CALL DX2(5,4,1,6,"HEIGHT")
140 CALL PAUSE(5)



GRAPSET      CALL GRAPSET(M)
     Defines the graphics font, eg use with CALL G.
     M=1 uses a capital font,
     M=2 small capitals font,
     M=3 sets lower case.

100 CALL AD
110 CALL COLORG(3)
120 CALL G(1,1,1,10,"FIRST LINE")
130 FOR T=1 TO 3
140 A$=GRAPSET "&STR$(T)
150 CALL GRAPSET(T)
160 CALL G(1,3*T,3,9,A$)
170 NEXT T
180 CALL PAUSE(10)


LIST      CALL LIST(W,R,C,CH,A1$,A2$,...A9$,A10$)
     Slowly lists the strings on screen and then waits for ENTER or timeout. does a CALL ENTER.
     W is time in seconds to wait before continuing, curtailed by pressing ENTER.
     R and C is starting row and column - display is left aligned to column C.
     CH is the character to use for the bullet point
     Strings can be array elements, variables or literals.

Final line is "WEITER MIT ENTER" and waits for W seconds OR the enter key if earlier, then proceeds to next command.

As each item is placed on screen, a little bit of music is played.

Maximum displayed items per screen is restricted to 10 due to screen size. If you start at a lower row or have more items, the LIST will fit as many as as possible, invite you to press enter, then continue the list. NB The bullet point on the top item of page 2 is omitted.

100 CALL AD
110 CALL LIST(30,2,2,42,"FIRST ITEM","SECOND ITEM","THIRD ITEM")
120 CALL D(1,18,3,13,"LIST FINISHED")
130 CALL PAUSE(10)

INPUT:
A      CALL A(W,R,C,L,S,N) or CALL A(W,R,C,D,S,N$)

     W = wait in seconds before giving up and moving on, when S becomes value=2
     R and C = row and column for number input
     L = maximum number of digits to enter for numeric input or number of characters for string input.
     If L is positive number, it clears position and looks for number key to be pressed followed by ENTER within the wait time.
     if L is negative, it will pick up what is on screen at that location if ENTER is pressed, OR waits for number key(s) followed by ENTER..
     S=status,
     S=1 if during the Wait no number key is pressed just ENTER
     S=0 if during the wait a number key is pressed followed by enter
     S=2 if no key is pressed during wait period.
     N or N$ (return variable) = Variable keyed in followed by ENTER during the wait period.
     NOTE the time out and use the status if required to redo the command and avoid false input.

note: If no entry is made, the variable will RETAIN any previous value - it will only be zero or an empty string if that was its condition before the CALL A. This allows a "drop through" value to be set if ENTER is not pressed and a timeout occurs.
Please read the final note carefully.

100 CALL AD
110 CALL D(1,1,2,14,"ENTER A NUMBER")
120 CALL A(30,2,14,2,S,N)
130 IF S<>0 THEN 120
140 CALL D(1,5,6,15,"ENTER YOUR NAME")
150 CALL A(30,6,12,12,S,N$)
160 IF S<>0 THEN 130
170 A$=N$&" ENTERED "&STR$(N)
180 CALL D(1,8,2,22,A$)
190 CALL D(1,10,1,24,"NOW JUST PRESS ENTER AND")
200 CALL D(1,11,1,20,"COMPUTER WILL READ 4")
210 CALL HCHAR(13,1,52,256)
220 N=2
230 CALL A(8,14,1,-1,S,N)
240 CALL HCHAR(13,1,32,256)
250 A$="NUMBER ENTERED:"&STR$(N)
260 CALL D(1,18,3,18,A$
270 CALL PAUSE(12)
Lines 210-230: If you press enter, the number 4 will be picked up from the screen. If you press nothing, N will retain a value of 2. If you press a number but NOT enter, the value of N will not change. If you press a number and enter, the variable will take your value.
MENU      CALL MENU(V,D,R,C,M1$,M2$....M9$)

     V = Must be a variable used to return the users choice from the menu.
     D = Delay in seconds before program execution passes on.
     You may need to check the returned variable V is valid before processing.
     R, C = start Row / Column
     M1$-M9$ - Up to 9 strings

This command places "Please choose" at the top of the screen, then slowly, with tones, adds the menu items with a number to their left. These are placed every other line. At the end of the screen "Your choice" appears.

The command then waits up to D seconds for you to press a number key. If there are 4 menu items the computer will ignore numbers other than 1-4.

NOTE: If no choice is made the variable V will be set to zero.

At the bottom of the screen the command places the words "Your choice?". You only need to press a number key- enter is not required.

If you use more items than will fit on the screen, as the program runs, you will receive a "PAGE OVERFLOW" error.

100 CALL AD
110 CALL D(1,20,4,15,"SELECT 1 2 OR 3")
120 CALL MENU(V,12,3,4,"FIRST CHOICE","CHOICE 2","THIRD ITEM")
130 IF V<>0 THEN 160
140 CALL HCHAR(8,1,32,20*32)
150 GOTO 120
160 A$="YOUR CHOICE WAS:"&STR$(V)
170 CALL D(1,16,2,18,A$)
180 ON V GOTO 190,210,230
190 PRINT "FIRST CHOICE"
200 GOTO 200
210 PRINT "CHOICE 2"
220 GOTO 220
230 CALL D(1,18,1,8,"CHOICE 3")
240 CALL PAUSE(10)


ENTER     CALL ENTER(SECS)
     Prints at bottom of screen 'Weiter Mit "ENTER"
'      Translation: CONTINUE WITH ENTER
     Waits for (SECS) seconds and then continues with next command OR
     if you press ENTER continues immediately.

The time variable must be between 1 and 100. A number or numeric variable can be used.
CALL PAUSE is only for small periods (1-16 sec), but does not write to the screen and several CALL PAUSE commands can be used one after the other.

100 CALL AD
110 PRINT "THE COMPUTER WILL NOW WAIT 20 SECONDS": "OR PRESS ENTER NOW"
120 CALL ENTER(20)
130 PRINT "YOU PRESSED ENTER OR 20 SECONDS PASSED"
140 CALL PAUSE(10)


PAUSE     CALL PAUSE(T)
     Waits for time in seconds from 1 to 16 maximum.

100 CALL AD
110 CALL PAUSE(10)
120 PRINT "10 SECS"
130 CALL PAUSE(6)


FLASH     CALL FLASH(R,C,N,T)
     Flashes text (normal text, graphics text or both together)
     R = Flash Speed in range 1 to 5, 1 is fast
     C = Control range 1-3.
     C=1 flash until space is pressed
     C=2 flash for given number of flashes N and move on
     C=3 Flash for given number of flashes N OR until space is pressed.
     N = Number of flashes
     T = Type of text to flash:
     T=1 flash normal text (eg CALL D)
     T=2 flash graphics text (eg CALL G)
     T=3 flash both normal and graphics text together.

100 CALL AD
110 CALL CHARSET(3)
120 CALL GRAPSET(1)
130 CALL COLORG(4)
140 CALL DX2(1,4,2,11,"HELLO WORLD")
150 CALL FLASH(1,3,4,1)
160 CALL FLASH(1,3,5,2)
170 CALL FLASH(1,3,4,3)
180 CALL PAUSE(10)

110 changes normal text to lower case (top text using DX2)
120 makes graphics text upper case (bottom text using DX2)
130 changes background colour of graphics text light blue
   use CALL COLORG(3) for both texts with same background colour.
140 displays HELLO WORLD twice, from row 1 col 4 and also row 2 col 4
150 flashes the normal text- top text using DX2
160 flashes the graphics text - bottom row using DX2
170 flashes both normal and graphics text together


S      CALL S(M,S,A)
     Fills the screen with a Logo graphic pattern using animation style A (1-9)
     M = Mode
     M= 1 until a key is pressed
     M= 2 for period S
     M= 3 for the period S, pressing a key TO END
     S=time in seconds (when M=1, if S=1. unending until key press)
     A=Animation type (1 to 9)
     Animation over 9 gives MEMORY FULL
     Change pattern range with CALL PREDEFL(N), for N=1 to 5, default is 1.
     Set your own pattern with CALL DEFL(CH1,CH2...CH16) and CALL LOADL - with CALL CHAR()

Some patterns change colour at the end- this can be controlled with CALL COLORG(N)

100 CALL AD
110 FOR T=3 TO 7
120 CALL S(1,6,T+2)
130 CALL CLEAR
140 NEXT T
150 CALL PAUSE(10)

and

100 CALL AD
110 CALL CHAR(66,"1010101010101010")
120 CALL CHAR(67,"FF00FF00FF00FF00")
130 CALL DEFL(66,66,66,66,66,66,66,66,67,67,67,67,67,67,67,67)
140 CALL LOADL(1)
150 CALL S(1,6,6)
160 CALL PAUSE(4)

Draw a frame

FRAMES     CALL FRAMES(3,10,2,4,4,26,15)
     V1=1 Draw frame until space is pressed and held
     V1=2,3 Draw frame
     V2,V3 Values 1 to 3
     V4=top row V5=left hand column V6=width V7=height
     Frame graphic can be varied with CALL LOADS(N)
     Colour of frame can be varied with CALL COLORG(N) - (single parameter, or 2nd or 3rd parameter if using 3 parameters: CALL COLORG(1,4,6)

100 CALL AD
110 CALL COLORG(4)
120 CALL FRAMES(1,3,3,4,4,22,22)
Will repeatedly draw a frame in a sequence of solid colours until space is held..



FRAMED     CALL FRAMED(V1,V2,V3,V4,V5,V6,V7)
     FRAMED is twice the thickness of FRAMES
     Frame graphic can be varied with CALL LOADD(N)
     Colour of frame can be varied with CALL COLORG(N) - (single parameter, or 2nd or 3rd parameter if using 3 parameters: CALL COLORG(1,4,6)

100 CALL AD
110 CALL FRAMED(1,2,3,4,4,22,22)
Will repeatedly draw a bicolour frame in a sequence of colours until space is held..

For something a little different add
105 CALL PREDEFD(3)

OR TRY
105 CALL LOADD(3)
and stabilise it with
106 CALL COLORG(4)

FRAMEL      CALL FRAMEL(3,4,3,3,3,25,20)
     Larger graphic than FRAMES or FRAMED
Colour of frame can be varied with CALL COLORG(N)- (single parameter, or 2nd or 3rd parameter if using 3 parameters)
100 CALL AD
110 CALL FRAMEL(1,2,3,4,4,22,22)
Will repeatedly draw a bicolour frame in a sequence of colours until space is held..
Use CALL LOADL and CALL COLORG as with LOADD.

Draw box:
BOXS CALL BOXS(1,12,4,15,16)
BOXD CALL BOXD(1,v2,v3,v4,v5)
BOXL CALL BOXL(1,8,4,15,16)

where graphic used - BOXS= single, D=double, L=logo (Large),
Fills a rectangular shape on the screen
V2=top row V3=left hand column V4=width V5=height
BOXD and BOXL are patterned, the pattern for BOXD is 2x2 chars and for BOXL it is 4x4 chars..

100 CALL AD
110 CALL BOXS(1,1,1,30,23)
120 CALL PAUSE(6)
130 CALL BOXD(2,4,4,26,19)
140 CALL PAUSE(6)
150 CALL BOXL(3,9,9,31,14)
160 CALL PAUSE(10)


Try adding 125 CALL LOADD(2); then try also adding 105 CALL LOADS(1) and see how the top left of the large graphic is used in BOXS when you reach LOADD.


LOGO     CALL LOGO(Y,X,Q)
     Used with CALL LOADL, CALL PREDEFL, CALL DEFL
     Places a graphic on screen 4 chars x 4 chars at Y X
     Parameter Q can be either 1 or 2.
     Used with CALL PREDEFL, CALL DEFL

100 CALL AD
110 CALL LOGO(2,2,1)
120 CALL PAUSE(4)

If the third parameter is set to 2, a different LOGO is placed.

100 CALL AD
110 FOR T=1 TO 5
120 CALL PREDEFL(T)
130 CALL LOGO(2,3,1)
140 CALL PAUSE(2)
150 NEXT T

AND

100 CALL AD
110 CALL CHAR(66,"1010101010101010")
120 CALL CHAR(67,"FF00FF00FF00FF00")
130 CALL DEFL(66,66,66,66,66,66,66,66,67,67,67,67,67,67,67,67)
140 CALL LOADL(1)
150 CALL LOGO(2,3,1)
160 CALL PAUSE(4)



COLORC     CALL COLORC(4) or CALL COLORC(V1,V2,V3)
         CALL COLORC(3) sets text to white and screen to black
         CALL COLORC(4) sets text to black and screen to light blue



COLORG      CALL COLORG(B) or CALL COLORG(V1,V2,V3)
     Sets the background colour for text placed on screen with CALL G
CALL COLORG(3) sets the text background colour to the screen colour.      Affects the closing colour of some patterns produced with CALL S


For both of the above, the CALL can take either 1 parameter as shown, in the range 1-9, or it will also accept 3 parameters. When using three parameters the first must be in the range 1-10, the second and third parameters are in the range 1-16.

DOUBLE      CALL DOUBLE(v1,v2,v3)

SINGLE      CALL SINGLE(R,C,V3)

Places a single graphics character on the screen

V3 may be 1 or 2.

100 CALL AD
110 CALL DEFS(65)
120 CALL SINGLE(6,7,1)
130 CALL PAUSE(4)

DEFINE GRAPHICS:
DEFD CALL DEFD(V1,V2,V3)
?

DEFS CALL DEFS(CHAR)

where CHAR is a valid character eg 65.
Can be used with: see CALL SINGLE

DEFL     CALL DEFL(char1,char2,char3,char4...char16)
     Define LOGO in graphics- 16 characters are used (can all be same character).
     Use CHAR to define each char;
     Also used to define the character for CALL S

100 CALL AD
110 CALL CHAR(66,"1010101010101010")
120 CALL CHAR(67,"FF00FF00FF00FF00")
130 CALL DEFL(66,66,66,66,66,66,66,66,67,67,67,67,67,67,67,67)
140 CALL LOGO(2,3,1)
150 CALL PAUSE(4)

and

100 CALL AD
110 CALL CHAR(66,"1010101010101010")
120 CALL CHAR(67,"FF00FF00FF00FF00")
130 CALL DEFL(66,66,66,66,66,66,66,66,67,67,67,67,67,67,67,67)
140 CALL LOADL(1)
140 CALL S(1,6,6)
150 CALL PAUSE(4)



LOAD PRE DEFINITIONS FOR GRAPHICS:
where S=single, D=double, L=LOGO
PREDEFD      CALL PREDEFD(N)
PREDEFS      CALL PREDEFS(N)
     N=1 to 3



PREDEFL      CALL PREDEFL(3)

     Valid values 1-5

Causes a graphic predefined in the module to be used for CALL LOGO and CALL FRAMEL and CALL BOXL

100 CALL AD
110 FOR T=1 TO 5
120 CALL PREDEFL(T)
130 CALL LOGO(2,3,1)
140 CALL PAUSE(2)
150 NEXT T

LOADD     CALL LOADD(N)
    N= 1 to 3
    Varies the graphic for CALL FRAMED

LOADS    CALL LOADS(N)
    N= 1 to 3
    Varies the graphic for CALL FRAMES

LOADL    CALL LOADL(N)
    N=1 to 3

100 CALL AD
110 CALL CHAR(66,"1010101010101010")
120 CALL CHAR(67,"FF00FF00FF00FF00")
130 CALL DEFL(66,66,66,66,66,66,66,66,67,67,67,67,67,67,67,67)
140 CALL LOADL(1)
150 CALL S(1,6,6)
160 CALL PAUSE(4)

MULTIPLE WAYS OF PLACING TEXT ON SCREEN:
100 CALL AD
110 CALL CHARSET(1)
120 CALL GRAPSET(1)
130 CALL COLORG(4)
140 PRINT "PRINTED TEXT"
150 CALL D(1,4,2,11,"CALL D TEXT")
160 CALL G(1,11,2,11,"CALL G TEXT")
170 FOR T= 65 TO 90
180 CALL HCHAR(18,T-62,T)
190 NEXT T
200 CALL PAUSE(5)
210 CALL TEXT(8,5,"CALL TEXT")
220 CALL PAUSE(4)
230 CALL CLEAR
240 CALL CHARSET(4)
250 CALL COLORG(3)
260 CALL DX2(1,14,2,13,"CALL DX2 TEXT")
270 CALL DX2(1,18,2,8,"COMPUTER")
280 CALL PAUSE(5)

Note line 210 causes "normal" text to be corrupted.
See CALL D, CALL DX2, CALL G, CALL TEXT, CALL CHARSET, CALL GRAPSET, CALL COLORG.


Downloads


This web page as a pdf

For PC99:
module binary advert.grm for PC99/pc99w
disk of demo programs in TI Basic Disk for pc99w

For MESS:
module binary advertg.bin for MESS
disk of demo programs in TI Basic Disk for MESS

FG99 For FinalGrom99:
module binary advert8g.bin for fg99
The binary has been modified for fg99 as the original module did not have either a module entry or an autostart program, one of which fg99 needed.

Place the bin file on your SDHC card in the usual manner.
- select 2 for Finalgrom
- select ADVERTISER
IF you have no disk controller, the screen will turn purple (the Advertiser module does this) and a TI Title screen with purple borders appears. If you have a disk controller you don't get the purple. The purple tells you that you do not need to use CALL FILES.

Select 1 or 2 and you will get a BASIC READY.
With a disk controller- type CALL FILES(9) then NEW then CALL AD then CALL MUSIC(7)
With no disk controller- from the command line type CALL AD then CALL MUSIC(7)









For the technically minded- TI knew how to run GPL without using GROM chips from early on.

The Advertiser module is written in GPL and has NO grom chips.


The sample seen has the following chips:

2 x 4k eprom TMS2532JL,
4x synchonous 4 bit binary counters SN74LS161,
2 x quadruple 2 input positive OR gates SN74LS32N
and a dual decoder/demultiplexer SN74LS139N.




Go to top of page



[ TI Book front page   |    TI Resources Page    |   TI Articles    |   PC99 and MESS Programs ]