Tuesday, March 18, 2014

WordStar 3.0 on the Briel Altair 8800

In the next instalment of this blog series, supplementing my YouTube video The Briel Altair 8800 Kit, Part 5: Advanced Topics, I'll cover getting WordStar installed, configured, and running on the Briel Altair 8800 under CP/M.

You can download WordStar 3.0 from here. You need to download and unzip the file WS30.ZIP on a desktop system. Then copy the files to the CP/M system, which should be the following:

INSTALL.COM MAILMRGE.OVR MERGPRIN.OVR WIMSGS.OVR WS.COM WSMSGS.OVR WSOVLY1.OVR WSU.COM

As mentioned in the video, you need to "patch" WordStar to support a non-standard terminal like the VT100/ANSI terminal that the Briel Altair 8800 emulates. The basic procedure is to run INSTALL.COM and enter the codes. It is a little tedious, but once done you have a version that works with the Briel Altair 8800. A complete transcript of the session is given at the end of this blog post. Thanks go to one of the Briel forum users for coming up with the patch codes.

Here is the list of patch values:

Symbol  Address Value(s)
HITE   0248     28
WID    0249     50
CLEAD1 024A     2,1B,5B
CLEAD2 0253     1,3B
CTRAIL 0258     1,48
LINOFF 025E     1
COLOFF 025F     1
ASCUR  0260     2
ERAEOL 026D     3,1B,5B,4B
LINDEL 0274     4,1B,5B,31,4D
LININS 027B     4,1B,5B,31,4C
IVON   0284     4,1B,5B,31,6D
IVOFF  028B     4,1B,5B,30,6D
TRMINI 0292     2,1B,63
IDTEX  018F     20,56,54,2D,31,30,30,20,20,20,20,20,20,20,20,20
                20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20

Once configured, run WS to launch WordStar.

A Google search will turn up copies of the complete WordStar 3 manuals.

You may also want a shorter command reference. A couple can be found here and here.

Don't forget to put the terminal in WordStar arrow key mode using F6.




B>dir

B: WIMSGS   OVR : WS       COM : WSMSGS   OVR : WSOVLY1  OVR
B: WSU      COM : INSTALL  COM : MAILMRGE OVR : MERGPRIN OVR

B>install

  COPYRIGHT (C) 1981  MicroPro International Corporation  

 INSTALL version 4.2  for MicroPro WordStar release 3.00        

Do you want a normal first-time INSTALLation of WordStar?
(Y = yes;  N = display other options): Y

This will INSTALL the WSU.COM on the current drive, save
the result on file WS.COM on the current drive, and then
run the INSTALLed WordStar.  OK (Y/N): Y

  MicroPro WordStar  release 3.00  serial # WZ3994AS      

      *****  WordStar TERMINAL MENU #1  *****

A  Lear-Siegler ADM-3A        C  Lear-Siegler ADM-31
D  Hazeltine 1500             E  Microterm ACT-IV
F  Beehive 150/Cromemco 3100  G  Imsai VIO
H  Hewlett-Packard 2621 A/P   I  Infoton I-100
J  Processor Tech Sol / VDM   K  Soroc IQ-120/140
L  Perkin-Elmer 550 (Bantam)  2  Terminal Menu #2
3  Terminal Menu #3           Z  none of the above
U  no change

PLEASE ENTER SELECTION (1 LETTER): Z

For other terminals and video boards, Wordstar must be
"patched". Determine your terminal's control sequences
from the manufacturer's manual; refer to the MODIFICATION
section of the WordStar manual. Once these codes are determined
answer "N" to the "ARE THE MODIFICATIONS TO WORDSTAR
COMPLETE ?" question towards the end of INSTALL.

OK (Y/N): Y

            *****  PRINTER MENU  *****
(More specific info is displayed after choice is entered)

A  Any "Teletype-like" printer (ie almost any printer)
C  "Teletype-like" printer that can BACKSPACE
D  DIABLO 1610/1620 daisy wheel printer
E  DIABLO 1640/1650/630/Xerox 1700 series daisy wheel printer
F  QUME Sprint 5 daisy wheel printer
G  NEC Spinwriter 5510/5520 thimble printer
I  "Half-Line-Feed" Printers
M  I/O Master / O.E.M. Printer Combination
R  C. Itoh/TEC Starwriter Printer
U  no change
Z  none of the above

PLEASE ENTER SELECTION (1 LETTER): A

Teletype-like printer
    This selection will drive almost any printer.  The printer
must be capable of responding to ASCII printing characters,
carriage return, and line feed only.
    Make sure any AUTO LF or LOCAL LF switch is OFF.
    If your printer is capable of backspacing, use CHOICE C
instead for faster output.
    If you have a DAISY WHEEL or thimble printer shown on the
menu, use the appropriate choice in order to obtain "Micro-
justified" output and additional formatting capabilities.
    Refer to manual for instructions on patching in optional
control sequences for ribbon color change, character pitch
change, and half-line roll (for subscripts and superscripts)
if your printer has these capabilities.

OK (Y/N): Y

Most Teletype-like printers use no communications protocol.

       *****  COMMUNICATIONS PROTOCOL MENU  *****

A "Communications Protocol" is necessary with some printers
to prevent printer buffer overflow and character loss.

E  "ETX/ACK" Protocol
X  "X-ON/X-OFF" Protocol
N  NONE required (or handled outside of WordStar)
U  no change

PLEASE ENTER SELECTION (E, X, N, B, or U): N

No communications protocol

OK (Y/N): Y

With no protocol, the usual driver selection (below) is L

           *****  DRIVER MENU  *****

Or, how should WordStar send characters to your printer?

L   CP/M "List" device (LST:)
T   CP/M primary console device (TTY:)
C   CP/M secondary console device (CRT:)
P   Port Driver (direct I/O to 8-bit ports)
N   Parallel Centronics Printer Driver
Q   Serial Driver on TRS-80 Model-2
S   User-installed driver subroutines
U   no change

PLEASE ENTER SELECTION (L,T,C,P,N,P,S,B or U): L

CP/M List Output driver (LST:)

    In most systems this is a "logical" device which must be
assigned to the desired one of four "physical" devices with
the STAT command, before WordStar is invoked.

OK (Y/N): Y

ARE THE MODIFICATIONS TO WORDSTAR NOW COMPLETE?

  IF THEY ARE ANSWER YES TO THE NEXT QUESTION.
  IF YOU WISH TO MAKE ADDITIONAL PATCHES TO WORDSTAR'S
  USER AREAS, ANSWER NO TO THE NEXT QUESTION.

OK (Y/N): N

YOU MAY NOW MODIFY ANY LOCATION DESCRIBED IN THE LISTING
AT THE END OF THE USER MANUAL OR THE CUSTOMIZATION NOTES.

YOU MAY USE EITHER THE LABEL OR THE HEX ADDRESS TO SPECIFY
THE LOCATIONS YOU WISH TO CHANGE.  IF YOU USE A LABEL THEN
YOU MAY APPEND AN OFFSET TO THE LABEL (I.E. LABEL:+31). THE
LABEL ALWAYS HAS A ":" APPENDED (LABEL:). YOU MAY SPECIFY
THE NEW VALUE ONLY AS A HEX NUMBER.  A LOCATION OF ZERO (0)
WILL CAUSE THE END OF THE MODIFICATIONS

LOCATION TO BE CHANGED (0=END): HITE:
    ADDRESS : 0248H   OLD VALUE: 18H   NEW VALUE: 28
LOCATION TO BE CHANGED (0=END): WID:
    ADDRESS : 0249H   OLD VALUE: 50H   NEW VALUE: 50
LOCATION TO BE CHANGED (0=END): CLEAD1:
    ADDRESS : 024AH   OLD VALUE: 02H   NEW VALUE: 02
LOCATION TO BE CHANGED (0=END): CLEAD1:+1
    ADDRESS : 024BH   OLD VALUE: 1BH   NEW VALUE: 1B
LOCATION TO BE CHANGED (0=END): CLEAD1:+2
    ADDRESS : 024CH   OLD VALUE: 59H   NEW VALUE: 5B
LOCATION TO BE CHANGED (0=END): CLEAD2:
    ADDRESS : 0253H   OLD VALUE: 00H   NEW VALUE: 01
LOCATION TO BE CHANGED (0=END): CLEAD2:+1
    ADDRESS : 0254H   OLD VALUE: 00H   NEW VALUE: 3B
LOCATION TO BE CHANGED (0=END): CTRAIL:
    ADDRESS : 0258H   OLD VALUE: 00H   NEW VALUE: 01
LOCATION TO BE CHANGED (0=END): CTRAIL:+1
    ADDRESS : 0259H   OLD VALUE: 00H   NEW VALUE: 48
LOCATION TO BE CHANGED (0=END): LINOFF:
    ADDRESS : 025EH   OLD VALUE: 20H   NEW VALUE: 01
LOCATION TO BE CHANGED (0=END): COLOFF:
    ADDRESS : 025FH   OLD VALUE: 20H   NEW VALUE: 01
LOCATION TO BE CHANGED (0=END): ASCUR:
    ADDRESS : 0260H   OLD VALUE: 00H   NEW VALUE: 02
LOCATION TO BE CHANGED (0=END): ERAEOL:
    ADDRESS : 026DH   OLD VALUE: 03H   NEW VALUE: 03
LOCATION TO BE CHANGED (0=END): ERAEOL:+1
    ADDRESS : 026EH   OLD VALUE: 00H   NEW VALUE: 1B
LOCATION TO BE CHANGED (0=END): ERAEOL:+2
    ADDRESS : 026FH   OLD VALUE: 00H   NEW VALUE: 5B
LOCATION TO BE CHANGED (0=END): ERAEOL:+3
    ADDRESS : 0270H   OLD VALUE: 00H   NEW VALUE: 4B
LOCATION TO BE CHANGED (0=END): LINDEL:
    ADDRESS : 0274H   OLD VALUE: 04H   NEW VALUE: 04
LOCATION TO BE CHANGED (0=END): LINDEL:+1
    ADDRESS : 0275H   OLD VALUE: 00H   NEW VALUE: 1B
LOCATION TO BE CHANGED (0=END): LINDEL:+2
    ADDRESS : 0276H   OLD VALUE: 00H   NEW VALUE: 5B
LOCATION TO BE CHANGED (0=END): LINDEL:+3
    ADDRESS : 0277H   OLD VALUE: 00H   NEW VALUE: 31
LOCATION TO BE CHANGED (0=END): LINDEL:+4
    ADDRESS : 0278H   OLD VALUE: 00H   NEW VALUE: 4D
LOCATION TO BE CHANGED (0=END): LININS:
    ADDRESS : 027BH   OLD VALUE: 00H   NEW VALUE: 4
LOCATION TO BE CHANGED (0=END): LININS:+1
    ADDRESS : 027CH   OLD VALUE: 00H   NEW VALUE: 1B
LOCATION TO BE CHANGED (0=END): LININS:+2
    ADDRESS : 027DH   OLD VALUE: 00H   NEW VALUE: 5B
LOCATION TO BE CHANGED (0=END): LININS:+3
    ADDRESS : 027EH   OLD VALUE: 00H   NEW VALUE: 31
LOCATION TO BE CHANGED (0=END): LININS:+4
    ADDRESS : 027FH   OLD VALUE: 00H   NEW VALUE: 4C
LOCATION TO BE CHANGED (0=END): IVON:
    ADDRESS : 0284H   OLD VALUE: 00H   NEW VALUE: 4
LOCATION TO BE CHANGED (0=END): IVON:+1
    ADDRESS : 0285H   OLD VALUE: 00H   NEW VALUE: 1B
LOCATION TO BE CHANGED (0=END): IVON:+2
    ADDRESS : 0286H   OLD VALUE: 00H   NEW VALUE: 5B
LOCATION TO BE CHANGED (0=END): IVON:+3
    ADDRESS : 0287H   OLD VALUE: 00H   NEW VALUE: 31
LOCATION TO BE CHANGED (0=END): IVON:+4
    ADDRESS : 0288H   OLD VALUE: 00H   NEW VALUE: 6D
LOCATION TO BE CHANGED (0=END): TRMINI:
    ADDRESS : 0292H   OLD VALUE: 00H   NEW VALUE: 2
LOCATION TO BE CHANGED (0=END): TRMINI:+1
    ADDRESS : 0293H   OLD VALUE: 00H   NEW VALUE: 1B
LOCATION TO BE CHANGED (0=END): TRMINI:+2
    ADDRESS : 0294H   OLD VALUE: 00H   NEW VALUE: 63
LOCATION TO BE CHANGED (0=END): IDTEX:
    ADDRESS : 018FH   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+1
    ADDRESS : 0190H   OLD VALUE: 49H   NEW VALUE: 56
LOCATION TO BE CHANGED (0=END): IDTEX:+2
    ADDRESS : 0191H   OLD VALUE: 42H   NEW VALUE: 54
LOCATION TO BE CHANGED (0=END): IDTEX:+3
    ADDRESS : 0192H   OLD VALUE: 4DH   NEW VALUE: 2D
LOCATION TO BE CHANGED (0=END): IDTEX:+4
    ADDRESS : 0193H   OLD VALUE: 20H   NEW VALUE: 31
LOCATION TO BE CHANGED (0=END): IDTEX:+5
    ADDRESS : 0194H   OLD VALUE: 33H   NEW VALUE: 30
LOCATION TO BE CHANGED (0=END): IDTEX:+6
    ADDRESS : 0195H   OLD VALUE: 31H   NEW VALUE: 30
LOCATION TO BE CHANGED (0=END): IDTEX:+7
    ADDRESS : 0196H   OLD VALUE: 30H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+8
    ADDRESS : 0197H   OLD VALUE: 31H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+9
    ADDRESS : 0198H   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+A
    ADDRESS : 0199H   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+B
    ADDRESS : 019AH   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+C
    ADDRESS : 019BH   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+D
    ADDRESS : 019CH   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+E
    ADDRESS : 019DH   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+F
    ADDRESS : 019EH   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+10
    ADDRESS : 019FH   OLD VALUE: 61H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+11
    ADDRESS : 01A0H   OLD VALUE: 6CH   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+12
    ADDRESS : 01A1H   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+13
    ADDRESS : 01A2H   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+14
    ADDRESS : 01A3H   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+15
    ADDRESS : 01A4H   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+16
    ADDRESS : 01A5H   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+17
    ADDRESS : 01A6H   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+18
    ADDRESS : 01A7H   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+19
    ADDRESS : 01A8H   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+1A
    ADDRESS : 01A9H   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+1B
    ADDRESS : 01AAH   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+1C
    ADDRESS : 01ABH   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+1D
    ADDRESS : 01ACH   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+1E
    ADDRESS : 01ADH   OLD VALUE: 20H   NEW VALUE: 20
LOCATION TO BE CHANGED (0=END): IDTEX:+1F
    ADDRESS : 01AEH   OLD VALUE: 20H   NEW VALUE: 20

LOCATION TO BE CHANGED (0=END): 0

CONFIRM TERMINAL AND PRINTER SELECTIONS:

 VT-100                           
 Teletype-like printer            
 No communications protocol       
 CP/M List Output driver (LST:)   

OK (Y/N): Y

5 comments:

Doug's Theology BLOG said...

Thanks, you got me the missing patch values that I needed.
I now have WS3 running on my MultiComp card.

Unknown said...

I've been able to get WordStar to work for the most part, leveraging the file images, the instructions found here, and instead setting my screen size to 80x24 (via Symbol HITE). I still have an issue that perhaps one of you have already faced and resolved.

When I enter a ^N my screen responds by opening a new line (yay!) but then deposits the character sequence [1L on the screen. On the flip side when I use ^Y to delete the current line, the line is deleted, but then the character sequence [1M is deposited on the screen.

Anybody know the correct WS Symbols and values? For ^N I used LININS and the values 4,1B,5B,31,4C and for ^Y I used LINDEL and the values 4,1B5B31,4D as per Jeff Tanter's instructions on his blog. I also get the character sequence [1M when trying to ^Z (line up) and [1L when trying ^W (line down), but on the first display line for the file contents.

Thanks!
-Mark

Unknown said...

Found on some other sites that VT100 didn't support LININS and LINDEL. Setting both to 0 fixed the issue. ^Y and ^N now work perfectly... Best... -Mark

mwillems said...

This is very very useful info - I finally have WordStar working.

The only thing I cannot figure out is how (and if) I can get the arrow keys to work. I use an old ViewSonic monitor, if that matters, and a vanilla keyboard.

And a few rare commands here and there still give me funny characters on the screen, but that's not really an issue.

Any tips welcome!

M

mwillems said...

This is very very useful info - I finally have WordStar working.

The only thing I cannot figure out is how (and if) I can get the arrow keys to work. I use an old ViewSonic monitor, if that matters, and a vanilla keyboard.

And a few rare commands here and there still give me funny characters on the screen, but that's not really an issue.

Any tips welcome!

M