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 |
|
|
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"
|
|
|
|
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 |
|
|
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
|