Jump to: DV80 to DV163 -text to merge format | Long list of CALL LOADs
Printer Control Codes using Control U or Transliterate | Buckaroo Banzai Adventure hints and map.
This text is from the May 1987 newsletter of
East Anglia Region 99ers, Volume 1, Issue 1.
[Introduction The East Anglia Region 99ers were mostly S Sgt Donald Scott Copeland (USAF 2164 Communications Squadron) and JoAnn Copeland. Initially Scott was located at RAF Lakenheath but in 1989 changed bases to RAF Bentwaters. ]
WELCOME! to EAR 99'er, Volume 1, Issue 1 (gotta' start somewhere, right?) We trust everyone reading this Newsletter findes something useful and/or informative! Our main intent is to support the TI-99/4A and its' Users in any way we can. If you have any contributions, or ideas, please let us know! Welook forward to hearing from you!
This newsletter is not copyrighted and may be reprinted in whole or in part. PLEASE give credit where credit is due, and notate the Club and the Author. Any user assumes sole liability for use and please note any information by authors' does not guarantee it to be error free.
John provided a version of a screen dump to the TI (also Epson and Gemini) printer. It clocks in at 39 minutes and 20 seconds (note that you must use Extended Basic). It will take any character definition at all 768 screen locations and faithfully reproduce them on your printer!
100 OPEN #1: "PIO.CR" :: PRI
John has put out a challenge to all users groups - who can come up with a faster XB screen dump? Here is a program to use to time the screen dump. Start and stop the watch at the beeps. You can also try to come up with a shorter "byte" version - this uses 577 bytes:
NT #1:CHR$(27);CHR$(65);CHR$
(8) ::B$="0123456789ABCDEF"
110 FOR R=1 TO 24 :: PRINT #
1:CHR$(10);CHR$(13);CHR$(27)
;CHR$(75);CHR$(0);CHR$(1) ::
FOR C=1 TO 32 :: CALL GCHAR
(R,C,A) :: CALL CHARPAT(MIN(
MAX(A,32),143),H$)
120 C1,C2,C3,C4,C5,C6,C7,C8=
0 :: FOR P=1 TO 15 STEP 2 ::
X=POS(B$,SEG$(H$,P,1),1)-1
:: Y=POS(B$,SEG$(H$,P+1,1),1
)-1 :: Z=2^((15-P)/2)
130 C1=C1+Z*SGN(X AND 8) ::
C2=C2+Z*SGN(X AND 4) :: C3=C
3+Z*SGN(X AND 2) :: C4=C4+Z*
SGN(X AND 1) :: C5=C5+Z*SGN(
Y AND 8) :: C6=C6+Z*SGN(Y AN
D 4) :: C7=C7+Z*SGN(Y AND 2)
:: C8=C8+Z*SGN(Y AND 1)
140 NEXT P :: PRINT #1:CHR$(
C1);CHR$(C2);CHR$(C3);CHR$(C
4);CHR$(C5);CHR$(C6);CHR$(C7
);CHR$(C8) :: NEXT C :: NEXT
R :: PRINT #1:CHR$(27);CHR$
(65);CHR$(12) :: CLOSE #1
1 CALL CLEAR :: CALL CHAR(32
,RPT$("F",16)) :: CALL SOUND
(1000,500,0)
100 (your routine here)
1000 CALL SOUND(1000,500,0)
Use either TI Writer or Editor Assembler to create a program (ie: write the program like you would on paper ... making changes, moving lines, copying lines, etc. ... using all the great features of a full screen editor).
Note, there are two rules to follow
1- The first character(s) of each line must be a line number and have one space following it (this limits the length of each line to 80 characters). '
2- Call your ‘text’ version of the program you create "DSK1.TXT".
Load and run the following program
1 CALL CLEAR :: OPEN #1:"DS
After the program runs, type "NEW", Then type "MERGE DSK1.PGM". Enter the first line number of your program, press “FCTN X" & "FCTN 1". Keep pressing "FCTN X" and "FCTN 1" until you have gone through all the line numbers. Then save the program under any name you like and run it!
K1.TXT",INPUT :: OPEN #2: "
DSK1.PGM", OUTPUT, VARIABLE
163 : : ON ERROR 4
2 LINPUT #1:L$ :: S=POS(L$,"
",1) :: N=VAL(SEG$(L$,1,S))
:: A=INT(N/256) :: B=N-A*2
56 :: PRINT#2:CHR$(A)&CHR$(B
)&SEG$(L$,S,80)&CHR$(0) :: I
F EOF(1)=0 THEN 2
3 PRINT #2:CHR$(255)&CHR$(25
5) :: CLOSE #2 :: CLOSE #1 :
: END
4 DISPLAY " 'TXT' FILE BAD -
TAKE A LOOK" :: RETURN 3
[Explanatory Note from Stephen 2015: When you merge DV163 code in, you usually then just SAVE it. Why the very arduous FCTN X step? John fails to explain it. The merge file format requires tokenised commands. By editing the lines as John indicates, the console is made to translate the simple text into the program tokens it needs.
Another version of the program adds a CHR$(131) to the start of each line, which is the token for the tail rem (!) which you then simply remove after loading the dv163 file. Same idea.
Also presumably when first creating your text file from TIW you need to use PF (then a file name) rather than SF, to avoid the end of file tab data.]
[Generally you will need Extended Basic and 32k ram for these but also try the Mini Memory. What is a "mushy keyboard" and why would you want one? Oh well....]
CALL LOAD'S
[The article did not specify any particular printer so TI Printer must be assumed. The article contained errors which have been removed or corrected below-sjs 2015]
CONTROL U VS OTHER COMMANDS
Special Character Mode (Control U) can be used for almost any purpose in TI Writer/Funlwriter. Changing print types (condensed, script, superscript, emphasized, etc.) are not the only
uses. You can change line feed length, characters per inch, paper feed length, tabs, margins, etc. Many other modes/uses are available and will be discussed in future columns.
For this column, I'd like to show an example of how to use Control U Command vs. programming and/or Transliterations, etc
As we will see, Control U Command Mode is much more simple and less time consuming. This is NOT to detract from Transliteration Commands or Programming - however, users of CTRL U find it simpler although each way works.
If I wanted a text to type out in condensed (compressed) mode I could do it several ways. One way would be to enter Extended Basic to type a program to send a command to the printer:
10 OPEN #1: "PIO"
If I were to then type RUN (Enter) the command has now been sent to the printer for condensed print mode
20 PRINT #1:CHR$(15)
30 PRINT #1:"THIS IS A TEST"
40 CLOSE #1
50 END
In actuality, you see 17 CPI (17 characters per inch). This command will be held by the printer until the printer is turned off. If you were to turn it on again hoping to again type in compressed mode, you would have to enter Extended Basic, run the program again, then load up your Funlwriter to print the text out.
So, this way you need the printer turned on until done.
[ NOTE: Control U mode in TI Writer etc: To insert the control characters you go into Control U mode by pressing CTRL and U together- again to exit- the cursor will change to an underline to show the mode. This mode allows you to enter from the keyboard ascii characters below the usual alphabetic range. These were used in Epson printers to switch features on and off. -sjs ]
[ NOTE- In CTRL-U mode you can type the character hex 1 with SHIFT A, hex 2 is SHIFT B and so on. -sjs ]
An easier way to call this condensed print command is directly in your TI Writer/Funlwriter text. Using CTRL U command you would type the following to get compressed mode:
Those two hex characters are obtained with two simple commands (in CTRL U Mode:):
ESCAPE (FCTN R) displays a single character that looks like a tiny b with 1 to its upper left.
Shift O (letter O) displays a single character that looks like a tiny f with a dot to its left.
[Yes, the Epson allowed you to set compressed mode with either CHR$(15) on its own, or alternatively by sending CHR$(27) followed by CHR$(15). It was happy with both formats. -sjs]
[ removed- section on setting CPI using ESC B. In the Epson manual ESC B is used for vertical tabs not setting character width. You could use ESC ! followed by a hex number from 0 to 63 to set elite/pica in condensed, emphasised, double strike or enlarged but see your printer manual for that. It was easier to use specific control codes for each mode.
For the TI or Epson printer the character width codes are:
ESC then hex character: 14=enlarged for one line; 15=condensed; 18=cancel condensed; 20=cancel enlarged mode
ESC then single letter: E set emphasised; F unset emphasised; G set double strike
ESC then single letter: H unset double strike; M set Elite( 12cpi); P set Pica (10cpi)
ESC W N to set or cancel enlarged mode can use either ESC W 1 or ESC W h1 for on and ESC W 0 or ESC W h0 for off.
ESC S 0 (or h0) sets superscript, ESC S 1 (or h1) sets subscript, ESC T turns both off.]
Examples of different CPI are shown:
See the difference? Now, let’s show some other uses - CTRL U vs. Transliteration.
I noted a User Group Newsletter asked for contributions with submitted materials to be sent in on disk: and formatted as such:
0001 .TL 60:27,69
[This is not a Basic program it is a text file with line numbers displayed. Transliteration requires that you print with the FORMATTER after saving from the Editor, whereas using CTRL U commands you can just use PRINT FILE from the EDITOR, which is why I always used the CTRL U codes. Many newsletter articles lost content by printing with the formatter, which radically amended Basic listings, deleting characters. -sjs]
0002 .TL 62:27,48
0003 <
0004 >
0005 .PL +21
0006 .AD
0007 .FI
0008 .LM 6
0009 .RM 72
0010 .CE
What they were asking for was to have the Page Length other than 66 lines per page, the text Filled In and Adjusted. Left Margin at 6 and Right at 72, with the first line of text Centered. A simpler way could be:
0005 .FI;.AD;.LM 6;.RM 72;PL +21
Two lines adverse to 10 so far. The first four lines ask for something different:
0006 .CE
Note:
Character code 60 is < and 62 is >
Character code 27 is Escape, 69 is E, 48 is 0
0001 .TL 60:27,69 [makes] < = Escape w/Emphasized Printing
0002 .TL 62:27,48 [makes] > = Escape w/Line Feed Length of 1/8 inch
0003 < Calls the emphasized print command
0004 > Calls the line feed length Command
[ESC 1 sets 7/72" line feed, ESC 0 sets 1/8 inch. - sjs]
An easier way to call for Emphasized Printing would be to type the fo11owing:
Now we only have 4 lines of commands adverse to 10.
Most of the time Transliterations are used due to the fact most people do not recognize or work with CTRL U mode frequently enough to realize what commands are what, etc. However, when you have tried and tested CTRL U you'll find yourself using that mode rather than changing Transliteration Commands every time you want to change the mode of print. The old adage Practice makes perfect.
To Cancel emphasized print mode, you could Transliterate:
eg: .TL 60:27,70 or type
where
Character Code 70 is F
Character Code 27 is Escape
Character Code 60 is <
Each works, but you can lose track of Transliterations in a larger text, so CTRL U mode works well and is easy to keep track of. Also easy to understand is E for Emphasized with F following for cancelling the command.
G is double-strike mode, with H cancelling the command
Another Newsletter listed a set of print types, with transliterations to call the printer commands. Now, these work fine and for the user who is familiar with them it's great.
However, CTRL U command is there for the same purpose, and again you have no need of keeping track of different transliteration commands. Example
0001 .TL 62:27,83,0 makes > send Escape, S, 0 for Superscript Mode
0002 .TL 60:27,84 makes < send Escape, T which cancels Superscript
0003 > Calls the superscript print command
Of course, CTRL U can call a SuperScript Print Mode by
Italics can be called with:
0001 .TL 33:27,52 which makes ! send Escape, 4 (Italics Print Mode)
0002 .TL 63:27,53 which makes ? send Escape, 5 (Cancels Italics Mode)
0003 ! which calls the italics print command
CTRL U can call Italics via the following:
[ Try this coding but note the Epson manual says ESC 4 "causes the data following this code to be printed in Alternate Mode. In Alternate Mode, the italic characters which have previously been set in the CG area are selected for printing"- italics may not be available on every Epson ESC printer].
Transliteration for Double Wide Print Mode can be accomplished with:
0001 .TL 35:27,87,49 makes # = Escape, W, 1 which sets Double Wide Print
0002 .TL 37:27,87,48 makes % = Escape, W, 0 which Cancels Double Wide
0003 # Calls the double wide print command
Or, it can be accomplished with CTRL U mode
[final example deleted-sjs]
END NOTES
Well - our first issue is done - let’s hope we can keep it up and keep the TI 99/4A ALIVE! We trust most of you found something enlightening in this issue (look hard please) and we’ll continue again next issue! (Please accept our apologies beforehand!)
We figured we would at first try the idea of formatting this Newsletter so it would fit into a Manual - capable of being "3 hole punched" and kept for future reference. This was printed as such, with the idea of running this up the flagpole to see how it flies (sorry about that!). Let us know how you feel about it (and please be polite?)
Thank you for all the support we’ve been getting in just starting off. If this support continues - there’s no way we can fail (I HOPE!).
See you next issue!
[ TI Book front page |
TI Resources Page
| TI99/4a articles
| PC99 and MESS Programs
]