Technical Reference

Display Driver Specifications


2.1 Overview

The display system in the Sirius 1 is, like so much of the machine, soft. The operating system BIOS contains the Zenith H-19 video terminal emulator, which is an enhanced control set of the DEC VT52 crt. The BIOS takes all ASCII characters received and either displays them or uses their control characteristics. The control characters 00hex (00decimal) through 1Fhex (31decimal) and 7Fhex (127decimal) are not displayed under normal circumstances. The non-display characters previously discussed, plus those characters having the high-bit set, being 80hex (128decimal) through FFhex (255decimal), may be displayed on the screen under program control, but extensive use of these characters is easier with the character graphics utilities.

Most of the control characters act by themselves; for example, the TAB key (Control I, 09hex, 09decimal) will cause the cursor to move to the right to the next tab position. For more complex cursor/screen control the multiple character escape sequences should be used. The control characters, and the escape sequences are fully described below.

2.2 Screen Control Sequences

Single Control Characters

  • Bell  (Control G, 07hex, 07decimal - ASCII BEL)
    This ASCII character is not truly a displaying character, but causes the loudspeaker to make a beep.


  • Backspace  (Control H, 08hex, 08decimal - ASCII BS)
    Causes the cursor to be positioned one column to the left of its current position. If at column 1, it causes the cursor to be placed at column 80 of the previous line; if the cursor is at column 1, line 1, then the cursor moves to column 80 of line 1.


  • Horizontal Tab  (Control I, 09hex, 09decimal - ASCII HT)
    Positions the cursor at the next tab stop to the right. Tab stops are fixed, and are at columns 9, 17, 25, 33, 41, 49, 57, 65, and 72 through 80. If the cursor is at column 80, it remains there.


  • Line Feed  (Control J, 0Ahex, 10decimal - ASCII LF)
    Positions the cursor down one line. If at line 24, then the display scrolls up one line. This key may be treated as a carriage return -- see ESC x9.


  • Carriage Return  (Control M, 0Dhex, 13decimal - ASCII CR)
    Positions the cursor at column 1 of the current line. This key may be treated as a line feed -- see ESC x8.


  • Shift Out  (Control N, 0Ehex, 14decimal - ASCII SO)
    Shift out of the standard system character set, and shift into the alternative system character set (Character set 1, G1). This gives the ability to access and display those characters having the high-bit set - being those characters from 80hex (128decimal) through FFhex (255decimal).


  • Shift In  (Control O, 0Fhex, 15decimal - ASCII SI)
    Shift into the standard system character set (Character set 0, G0). This gives the ability to access and display the standard ASCII character set - being those characters from 00hex (00decimal) through 7Fhex (127decimal).


  • Escape  (Control [, 1Bhex, 27decimal - ASCII ESC)
    Tells the video driver that a command of one or more characters follows. See section 2.3.


2.3 Multi-Character Escape Sequences

2.3.1 Cursor Functions

As well as the above control characters, the video driver has a large vocabulary of commands which are several characters long. The first character of these commands is the control character called Escape (ESC), which has the value 27 in the ASCII character set. When the video driver is sent an ESC character it performs whatever function is specified by the following characters. This kind of command is called an "escape sequence".

To make it easier for programs written on other computers to be run on the Sirius, the set of escape sequences is designed to be very similar to a DEC VT52 terminal.In addition, some of the more fancy features are borrowed from a Heath Z19 terminal.

To send an escape sequence from a Basic program, use the following statement sequence (the example shows how to send an ESC-A and ESC-l):

10 E$ = CHR$(27) 'put the ESC character in E$
20 PRINT E$;"A"; 'ESC-A moves up a line
30 PRINT E$;"l"; 'ESC-l clears the line


Escape Sequence/Function ASCII Code Performed Function
ESC A 1B, 41hex
27, 65dec
Move cursor up one line without changing column.
ESC B 1B, 42hex
27, 66dec
Move cursor down one line without changing column.
ESC C 1B, 43hex
27, 67dec
Move cursor foward one character position
ESC D 1B, 44hex
27, 68dec
Move cursor backward one character position
ESC H 1B, 48hex
27, 72dec
Move cursor to the home position. (line 1, column 1)
ESC I 1B, 49hex
27,73dec
Reverse index. move cursor up to previous line at current column position.
ESC Y 1 c 1B, 59hex
27, 89dec
Moves the cursor via direct (absolute) addressing to the line and column location described by 'l' and 'c'. The line ('l') and column ('c') coordinates are binary values offset from 20hex (32decimal).Thus, to move to the end of the top line, we use (in Basic):
PRINT CHR$(27);"Y";CHR$(32+0);CHR$(32+79)
(For further information on the use of direct addressing see section 2.4).
ESC j 1B, 6Ahex
27, 106dec
Store the current cursor position. The cursor location is saved for later restoration (see ESC k ).
ESC k 1B, 6Bhex
27, 107dec
Returns cursor to the previously saved location (see ESC j ).
ESC n 1B, 6Ehex
27, 110dec
Return the current cursor position. The current cursor location is returned as line and column, offset from 20hex (32decimal), in the next character input request.


2.3.2 Editing Functions

Escape Sequence/Function

ASCII Code

Performed Function

ESC @ 1B, 40hex
27, 64dec
Enter the character insert mode. Characters may be added at the current cursor position, as each new character is added, the character at the end of the line is lost.
ESC E 1B, 45hex
27, 69dec
Erase the entire screen.
ESC J 1B, 4Ahex
27, 74dec
Erase from the current cursor position to the end of the screen.
ESC K 1B, 4Bhex
27, 75dec
Erase the screen from the current cursor position to the end of the line.
ESC L 1B, 4Chex
27, 76dec
Insert a blank line on the current cursor line. The current line, and all following lines are moved down one, and the cursor is placed at the beginning of the blank line.
ESC M 1B, 4Dhex
27, 77dec
Delete the line containing the cursor, place the cursor at the start of the line, and move all following lines up one - a blank line is inserted at line 24.
ESC N 1B, 4Ehex
27, 78dec
Delete the character at the cursor position, and move all other characters on the line after the cursor to the left one character position.
ESC O 1B, 4Fhex
27, 79dec
Exit from the character insert mode (see ESC @).
ESC X 1B, 58hex
27, 88dec
Exchanges the current line for the contents of an internal buffer. To swap two lines, do the following:

move cursor to first line ESC X (puts line into internal buffer)

move cursor to other line ESC X (swaps first line for this)

move cursor to first line ESC X (puts second line where first was)
ESC b 1B, 62hex
27, 98dec
Erase the screen from the start of the screen up to, and including, the current cursor position.
ESC l 1B, 6Chex
27, 108dec
Erase entire current cursor line.
ESC o 1B, 6Fhex
27, 111dec
Erase the beginning of the line up to, and including, the current cursor position.


2.3.3 Configuration Functions

Escape Sequence/Function ASCII Code Performed Function
ESC x Ps
1B, 78hex
27, 120dec


31hex, 49dec
33hex, 51dec
34hex, 52dec
35hex, 53dec
38hex, 56dec
39hex, 57dec
41hex, 65dec
42hex, 66dec
43hex,67dec


Ps

1
3
4
5
8
9
A
B
C
      Sets mode(s) as follows:

     ------------- Mode --------------

Enable 25th line (see section 5.5)
Hold screen mode on
Block cursor
Cursor off
Auto line feed on receipt of a carriage return
Auto carriage return on receipt of line feed
Increase audio volume
Increase CRT brightness
Increase CRT contrast

For example, to disable the cursor, use (in Basic):

PRINT CHR$(27);"x5"
ESC y Ps
1B, 79hex
27, 120dec


31hex, 49dec
33hex, 51dec
34hex, 52dec
35hex, 53dec
38hex, 56dec
39hex, 57dec
41hex, 65dec
42hex, 66dec
43hex,67dec


Ps

1
3
4
5
8
9
A
B
C
      Resets mode(s) as follows:

      ------------- Mode --------------

Disable 25th line (see section 5.5)
Hold screen mode off
Underscore cursor
Cursor on
No auto line feed on receipt of a carriage return
No auto carriage return on receipt of line feed
Decrease audio volume
Decrease CRT brightness
Decrease CRT contrast
ESC ] 1B, 5Bhex
27, 91dec
Set hold mode
ESC \ 1B, 5Chex
27, 92dec
Clear hold mode
ESC ^ 1B, 5Ehex
27, 94dec
Toggle hold mode on/off


2.3.4 Operation Mode Functions

Escape Sequence/Function ASCII Code Performed Function
ESC ( 1B, 28hex
27, 40dec
Enter high intensity mode. All characters displayed after this point will be displayed in high-intensity
ESC ) 1B, 29hex
1B, 41dec
Exit high intensity mode
ESC 0 1B, 30hex
27, 48dec
Enter underline mode. All characters displayed after this point will be underlined
ESC 1 1B, 31hex
27, 49dec
Exit underline mode
ESC p 1B, 70hex
27, 112dec
Enter reverse video mode. All characters displayed after this point will be displayed in reverse video
ESC q 1B, 71hex
27, 113dec
Exit reverse video mode


2.3.5 Special Functions

Escape Sequence/Function ASCII Code Performed Function
ESC # 1B, 23hex
27, 35dec
Return the current contents of the page. The entire contents of the screen are made available at the next character input request(s).   (For further information on the use of this function, see section 2.5)
ESC $ 1B, 24hex
27, 36dec
Return the value of the character at the current cursor position. The character is returned in the next character input request
ESC + 1B, 2Bhex
27, 43dec
Clear the foreground. Clear all high-intensity displayed characters
ESC 2 1B, 32hex
27, 50dec
Make cursor blink
ESC 3 1B, 33hex
27, 51dec
Stop cursor blink
ESC 4 1B, 34hex
27, 52dec
Temporarily generate different characters on the keyboard. Though the escape sequence is listed under 132C, it can be used under MBASIC on MS-DOS. Eg. change function key no.1 to backslash, escape sequence - Esc 4 m lk kv. Where m=character 1, 2 or 3, 1 = unshift, 2 = shift, 3 = alternate. lk = logical key number (00 -7 Fhex), kv = hexadecimal ASCII keycode of the new key value
ESC 8 1B, 38hex
27, 56dec
Set the text (literally) mode for the next single character. This allows the display of characters from 01hex (01dec) through 1Fhex (31dec) on the screen. Thus the BELL character (07hex, 07dec) will not cause the bleep, but a character will appear on the screen.
For example:  PRINT CHR$(27);"8";CHR$(12);
will print whatever graphic character occupies position 12 in the current set
ESC F 1B 40hex
27 70dec
The other method of accessing the graphics characters stored in positions 0-31 of the current set. This escape code maps the graphics characters into codes 94-127, i.e. it replaces the lower case letter by graphics characters
ESC G 1B 41hex
27 71hex
Clear graphics mode
ESC Z 1B, 5Ahex
27, 90dec
Identify terminal type. The VT52 emulator will return ESC\Z in the next character input request
ESC ] 1B, 5Dhex
27, 93dec
Return the value of the 25th line. The next series of character input requests will receive the current contents of the 25th line
ESC v 1B, 76hex
27, 118dec
Enable wrap-around at the end of each screen line. A character placed after column 80 of a line will be placed on the next line at column 1
ESC w 1B, 77hex
27, 119dec
Disable wrap-around at the end of each line
ESC z 1B, 7Ahex
27, 122dec
Reset terminal emulator to the power-on state. This clears all user selected modes, clears the screen, and homes the cursor
ESC { 1B, 7Bhex
27, 123dec
Enable keyboard input.(see ESC } )
ESC } 1B, 7Dhex
27, 125dec
Disable keyboard input. This locks the keyboard. Any character(s) typed are ignored until an ESC { is issued
ESC | 1B 7Chex
27 124dec
Activate user-defined console. When the 132 column utility is in memory, this escape sequence transfers control to 132C
ESC i Ps
1B, 69hex
27, 105dec


30hex, 48dec
31hex, 49dec
32hex, 50dec
33hex, 51dec


Ps

0
1
2
3
      Displays banner as follows:

     ------------- Mode --------------

Display entire banner
Display company logo
Display operating system
Display configuration


2.3.6 The following VT52/Z19 commands are accepted but do nothing at present:

    ESC x2     Disable key click
    ESC y2 Enable key click
    ESC x6 Enable keypad shift
    ESC y6 Disable keypad shift
    ESC t Enable keypad shift
    ESC u Disable keypad shift
    ESC x7 Enter alternate keypad mode
    ESC y7 Exit alternate keypad mode
    ESC = Enter alternate keypad mode
    ESC > Exit alternate keypad mode


2.4 Direct Cursor Addressing -- Examples of Use

The direct cursor addressing function is accessed by sending the ESC Y l c sequence to the screen (see section 2.3.1). "l" is the line number required, whose valid coordinates are between 1 and 24. An offset of 1Fhex (31decimal) must be added to the location required in order to correctly locate the cursor. "c" is the column number required, whose valid coordinates are between 1 and 80. An offset of 1Fhex (31decimal) must be added to the location required in order to correctly locate the cursor.

Note that the true offset requirement of 20hex (32decimal) for line and column may only be used accurately when the line number is viewed 0 to 23, and the column number 0 to 79.

  The line/column number requested must be handled as a binary digit, examples of this follow:


2.4.1 Microsoft MS-BASIC -- Direct Cursor Positioning

The following method uses offsets from line 1, column 1:

10 PRINT CHR$(27)+"E" :REM CLEAR THE SCREEN
20 DEF FNM$(LIN,COL)=CHR$(27)+"Y"+CHR$(31+LIN)+CHR$(31+COL)
30 PRINT "Enter line (1-24) and column (1-80), as LINE,COL ";
40 INPUT LIN, COL
50 PRINT FNM$(LIN,COL);
60 FOR I = 1 TO 1000 :REM PAUSE BEFORE OK MESSAGE DISPLAYED
70 NEXT I

The alternative method, using offsets from zero is shown below:

10 PRINT CHR$(27)+"E" :REM CLEAR THE SCREEN
20 DEF FNM$(LIN,COL)=CHR$(27)+"Y"+CHR$(32+LIN)+CHR$(32+COL)
30 PRINT "Enter line (0-23) and column (0-79), as LINE,COL ";
40 INPUT LIN, COL
50 PRINT FNM$(LIN,COL);
60 FOR I = 1 TO 1000 :REM PAUSE BEFORE OK MESSAGE DISPLAYED
70 NEXT I


2.4.2 Microsoft MACRO-86 Assembler -- Direct Cursor Positioning

line_off equ 20h ;line position offset from 0
col_off equ 20h ;column position offset from 0
esc equ 1bh; ;escape character
msdos equ 21h ;interrupt to MS-DOS

clear_screen db esc,'E$' ;clear screen request
dir_cur_pos_lead db esc,'Y$' ;cursor positioning lead-in

; the cursor position required is handed down in BX
; where BH = line (0-23 binary), BL = column (0-79 binary)

clear_and_locate:
mov ah,9h ;string output up to $
mov dx,offset clear_screen ;get the clear screen string
int msdos ;and output it up to the $
;
; the cursor position required is in BX
;
add bh,line_off ;normalise line for output
add bl,col_off ;normalise column for output
;
; send the direct cursor positioning lead-in
;
mov ah,9h ;select screen output up to $
mov dx,offset dir_cur_pos_lead ;select the lead in ESC Y
int msdos ;and output it up to $
;
; now the contents of BX must be sent to the terminal emulator
;
mov dl,bh ;ready the line number
mov ah,6h ;direct console output of DL
int msdos ;output the line coordinate
; mov dl,bl ;ready the column number
mov ah,6h ;direct console output of DL
int msdos ;send the column coordinate
;
; the cursor is now at the location selected in BX


2.4.3 Microsoft Pascal Compiler -- Direct Cursor Positioning

PROGRAM position (input,output); {This method uses offsets from line 0, column 0.}

    const
      clear_screen = chr(27) * chr(69);

    var
      result : array[1..4] of char;
      i, line, column : integer
      row, col : char;

    begin
      result[1] := chr(27);     {RESULT = ESC}
      result[2] := chr(89);;    {RESULT = "Y"}
      write (' Enter line (0-23) and column (0-79), as LINE COLUMN: ');
      readln (line, column);
      writeln (clear_screen);
      row := chr(32 + line);
      col := chr(32 + column);
      result[3] := row;;    {RESULT = ROW}
      result[4] := col;;     {RESULT = COL}
      for i := 1 to 4 do
        write (result[i]);;          {PRINT CURSOR TO SCREEN}
      for i := 1 to 32000 do;    {PAUSE}
    end.


2.5 Transmit Page -- Examples of Use

The transmit page function is accessed by sending the ESC# sequence to the screen (see section 2.3.5). The result of this sequence is that all characters on the screen, as well as the cursor positioning sequences required to re-create the screen, are sent to the keyboard buffer. Reading the keyboard via a normal keyboard input request will return the entire screen of data to the program. The screen buffer within the program should be at least 1920 bytes (80x24) long to accommodate the entire screen - the program will need to perform 1920 single character inputs to empty the keyboard buffer. Note that the character input requests must be done rapidly to prevent the keyboard buffer overflowing and causing loss of data - note, too, that on a keyboard buffer overflow, the bell sounds.

The following sample programs demonstrate the use for this function request:



2.5.1 Microsoft MS-BASIC -- Transmit Page

10 DIM A$(1920)
20 PRINT CHR$(27)+"#";
30 FOR I = 1 TO 1920
40 A$(I)=INKEY$
50 NEXT I
60 PRINT CHR$(27)+"E";
70 FOR I = 1 TO 1920
80 PRINT A$(I);
90 NEXT I


2.5.2 Microsoft MACRO-86 Assembler -- Transmit Page

coniof equ 6h ;direct console i/o function
conin equ 0ffh ;console input request
printf equ 9h ;screen o/p up to $
msdos equ 21h ;interrupt operating system
buffer_length equ 1920 ;entire screen count

read_screen db 1bh,'#$' ;read entire screen
clear_screen db 1bh,'E$' ;clear screen/home cursor
buffer db buffer_length dup (?) ;main buffer region

mov ax,DS ;get buffer data segment
mov ES,ax ;ready for store
mov di,offset buffer ;get storage buffer
mov si,di ;init for later use
mov dx,offset read_screen ;read entire screen string
mov ah,printf ;o/p it up to $
int msdos ;call the OS
;
; now read entire screen in to BUFFER
;
mov ah,coniof ;read from keyboard buffer
mov dl,conin ;ready to read
mov cx,buffer_length ;count of chars to read
;
in_loop:
int msdos ;get a char in AL
stosb ;save the char in BUFFER
loop in_loop ; and loop till buffer full
;
mov ah,printf ;ready to clear the screen
mov dx,offset clear_screen ;get the string
int msdos ; and o/p it up to $
;
; now replace the screen data
;
mov cx,buffer_length ;get the count
mov ah,coniof ;get the o/p char function
;
out_loop:
lodsb ;get a char
mov dl,al ; ready to go
int msdos ;o/p it
loop out_loop ;loop till buffer empty
ret ;


2.5.3 Microsoft Pascal Compiler -- Transmit Page

PROGRAM Scrnbuf;

    CONST
      clear_screen = CHR(27)*CHR(69)*CHR(36);
      transmit_page = CHR(27)*CHR(35)*CHR(36);
      err_msg = 'ERROR$';
      direct_conio = #6;
      conin = #0FF;
      print_string = #9;

    VAR
      screen_dump : ARRAY [1..1920] OF CHAR;
      ch : CHAR;
      i : INTEGER;
      param : WORD;
      status : BYTE;

FUNCTION DOSXQQ( command, parameter : WORD ) : BYTE; EXTERNAL;

BEGIN
   EVAL(DOSXQQ(print_string,WRD(ADR(transmit_page) ) ) );
   param:= BYWORD( 0, conin );
   status:= DOSXQQ( direct_conio, param );
   IF status <> 0 THEN
    BEGIN
     i:= 1;
      WHILE status <> 0 DO
     BEGIN
     ch:= CHR(status);
     screen_dump[i]:= ch;
     i:= i + 1;
     status:= DOSXQQ( direct_conio, param );
     END;
     i:= i - 1;
     EVAL(DOSXQQ(print_string,WRD(ADR(clear_screen) ) ) );
     FOR VAR J:= 1 TO i DO
     EVAL(DOSXQQ( direct_conio, WRD(screen_dump[J]) ) );
  END
 ELSE
  EVAL(DOSXQQ(print_string,WRD(ADR(err_msg) ) ) );
END.


2.6 25th Line Display - Examples of Use

2.6.1 Microsoft MACRO-86 Assembler

; program name SETKEY
;
; written by Greg Johnstone
; Barson Computers
; 335 Johnston St
; Abbotsford, 3067
;
; This program displays function key tokens in the 25th line of
; the display on the SIRIUS. The program does NOT affect the
; codes attached to these keys (you must use KEYGEN in the Grafix
; or Programmers Toolkits to do this); NOR does it read the
; keyboard table to find out what the current code is. All this
; program does, is to display the data contained in BUFFER
; (below) on the screen. Ten characters are allowed for each key
; label. You will need the programmers toolkit to proceed. Use
; MACRO86 to assemble this program then use LINK to link it, as
; follows:
;
; MACRO86 SETKEY;
; LINK SETKEY;
;
; LINK will produce the message "warning: no stack segment",
; ignore it. LINK produces a file ; SETKEY.EXE which will not
; run. What you must do is produce a .COM file using DEBUG, as
; follows:
; DEBUG SETKEY.EXE
; N SETKEY.COM
; W
; Q
;
; The resulting program SETKEY.COM will run.
;
page
code       segment
assume cs:code, ds:code

boot equ 0 ;system reboot function
listout equ 5 ;list output function
conout equ 2 ;console output function
; cr equ 0dh ;carriage return
lf equ 0ah ;line feed
esc equ 1bh ;escape
;
org 100h
start:
mov bx,offset buffer ;point to output string
again:
mov ah,conout ;set parameters for list output
mov dl,[bx] ;get next character
cmp dl,0 ;test for end
jz cont
push bx
int 21h ;print it
pop bx
inc bx ;next
jmp again
cont:
mov ah,boot ;reboot
int 21h
;
buffer:
db esc,'j' ;save cursor
db esc,'x1' ;enable 25th line
db esc,'Y',25+1fh,20h ;put cursor in 25th line
db ' ',esc,'p' ;turn on reverse mode
db 'DIRECTORY ' ;label for key 1
db esc,'q ',esc,'p'
db 'DISC COPY ' ;key 2
db esc,'q ',esc,'p'
db ' FORMAT ' ;key 3
db esc,'q ',esc,'p'
db ' CHKDSK ' ;key 4
db esc,'q ',esc,'p'
db ' EDIT ' ;key 5
db esc,'q ',esc,'p'
db ' REPEAT ' ;key 6
db esc,'q ',esc,'p'
db ' ABORT ' ;key 7
db esc,'q',' ' ;end 25th line
db esc,'k' ;put cursor back to saved position
db 0

code ends
end start


2.6.2 Microsoft MS-BASIC

10 '        **************************
15 '        * *
20 '        * SET UP FOR 25TH LINE *
25 '        * *
30 '        **************************
35 '
40 WIDTH 255:PRINT CHR$(27);"E";TAB(28)"TEST FUNCTION KEY DISPLAY";
45 PRINT:PRINT:PRINT:INPUT "What is the Base Flag ";BASE
50 IF BASE<1 OR BASE>3 THEN RUN
60 GOSUB 100:GOSUB 200:GOTO 20
65 '
70 'variables base = flags which display to print
75 ' fkct = number of keys to be set
80 ' fk$ = array to hold key name
85 ' fksz = function key wording size
90 '
100 '*** subroutine to read key names as per base flag ***
110 E$=CHR$(27)
120 IF BASE = 1 THEN RESTORE 1010      rem restore data as per flag
130 IF BASE = 2 THEN RESTORE 1020
140 IF BASE = 3 THEN RESTORE 1030
150 READ FKCT      rem read number of keys to set
160 FOR I=1 TO FKCT      rem loop to read key names
170 READ FK$(I)      rem set fk$(i) to name
180 NEXT
190 RETURN      rem exit this subroutine
200 '*** subroutine to display key names on 25th line ***
210 FKSZ = INT((80-(FKCT-1))/FKCT)
220 X$="":C$=E$+"q"+" "+e$+"p"      rem c$= space in normal video
230 FOR I=1 TO FKCT      rem loop to set display string
240 B$=LEFT$(FK$(I),FKSZ):J=INT((FKSZ-LEN(B$)+1)/2)
250 X$=X$+C$+LEFT$(SPACE$(J)+B$+SPACE$(FKSZ),FKSZ)
260 NEXT I
270 X$=E$+"p"+X$+E$+"q"      rem include on/off video
280 PRINT E$"x1";E$"j";e$"Y8 ";E$"1";X$;E$"Y ";E$"k";:'print it
290 RETURN
1000 '*** data for key names ***
1010 DATA 7,"BASE1 KEY1","BASE1 KEY2","BASE1 KEY2","BASE1 KEY3","BASE1 KEY4","BASE1 KEY5","BASE1 KEY6","BASE1 KEY7"
1020 DATA 7,"BASE2 KEY1","BASE2 KEY2","BASE2 KEY3","BASE2 KEY4", "BASE2 KEY5".BASE2 KEY6","BASE2 KEY7"
1030 DATA 7,"EVEN","NAMES","THAT","VARY","IN","LENGTH"," "


2.7 132-Column Display

Both WordStar and SuperCalc may be 'run' under the 132 Column display mode. You must, however, use the 'Install' programs of WordStar and SuperCalc to modify the screen dimensions for use in the 132 x 50 mode.

WordStar: To modify WordStar, simply type 'Install' and follow the prompts for customer terminal installation. When you get to the menu, follow the prompts to modify screen dimensions. You must change the screen to 50 lines and 132 columns (or less, if you desire).

SuperCalc: To modify SuperCalc, type 'Install' and select modify screen dimensions. You must change the lines to 38 and the column to 132 (or less, if you desire). A copy of SuperCalc 'Install' may be obtained from Barson Computers.

You may wish to copy or rename the modified program files (ie. WS132.CMD, SC132.CMD) so that you need not reconfigure the program each time you wish to change from 132 column to 80 column operation.

Last update: 02/03/2007