Microserve Turbo-Plus V1.41 User manual

Turbo-Plus VI.41 16-bit Installation Guide
Copyright
April 1985
(C) 1985 by Microserve Inc.
Microserve Inc.
276 Fifth Avenue
New York N.Y. 10001

Turbo-Plus VI.41 16-bit Instal1 ation Guide
TABLE OP CONTENTS
1] Introduction
.....
.
..................................
.. . 1-1
Overview
.............
.
......
.
.
.......................
1-2
Checklist
.......
.
....................................
1-3
23 Turbo-Plus Modules ............
......
.
..................
2-1
Program Modules
....
.
.......................
.
.......
2-1
Beloc&t&ble and executable program files ............ 2-2
Relocatable subroutine files
....
.
................
.
2-3
.GEN and .PAR files
..................................
2-3
System function files ............
.
................
.
2-3
3] Installing Turbo-PI us
.......
.
..................
.
......
3-1
Generating executable programs
......................
3-1
System generation
......
3-1
Generating a new system master
................
......
3-1
Generating new slaves
.........
3-5
43 Installing Background Batch ............................ 4-1
Overview ............. 4-1
Patching ............. 4-1
Slave generation
......
4-3
51 Appendix
Modifying a Slave Circuit Driver for Turbo-Plus ..... A-l
TurboDOS is a trademark of Software 2000 Inc.
Turbo-Plus is a trademark of Microserve Inc.

Turbo-Plus VI.41 16-bit Installation Guide

Turbo-Plus VI.41 16-bit Installation Guide
INTRODUCTION
This Installation Guide describes the procedure for
generating a configuration of Turbo-Plus in a system which
includes 16-bit boards.
For information on the 8-bit installation refer to the 8-
bit Installation Guide to Turbo-Plus. For information on using
the package refer to the User *s Guide to Turbo-Plus. That
document includes an overview of the package and instructions on
using each command.
Turbo-Plus is designed with the ability to be patched to run
on systems with different search drives. Since it needs to know
what drive this is it is set up as a patchable parameter. Thus
most of Turbo-Plus’s modules are distributed as relocatable (.0)
files so that parameters may be ’plugged in’ in the installation
procedure using the TurboDOS symbolic patch facility described in
the Configuration Guide to TurboDOS.
Section 2 of this guide briefly describes all of the modules
sent as part of the 16-bit Turbo-Plus package and explains where
on the system they should be placed.
Section 3 describes the installation procedure for
generating a customized version of Turbo-Plus excluding the
background batch processor which involves some extra steps.
Section 4 describes the installation procedure for the 16-
b t. background batch processor.
1-1

Turbo-Plus VI.41 16-bit Installation Guide
Overview
Turbo-Plus makes extensive use of the TurboDOS User Defined
Function (TurboDOS call 0x29) and follows the USBSUP calling
protocol outlined in your TurboDOS 1.41 update notes and in
Appendix G of the 8-bit installation manual. Therefore. if you
wish to add your own functions with this call it is imperative
that you also follow the USBSUP protocol which has been adopted
by Software 2000 as the standard TurboDOS method.
Serialization
Each copy of Turbo-Plus is serialized to be run only on a
■no T> + ■? /*ii Tot» T ii n na no + ■? nrf piro + am •Pin a eanl o 1 rmmVi a t*
* V A A W W W hr W U A Mg 0 0 V W AM a A M 0 0 0 A A » A AA UIU 00 A
coincides with that of the operating system on which it is to be
run. None of the modules in Turbo-Plus will run on any system
with a serial number different that its own.
1-2

Turbo-Plus VI.41 16-bit Installation Guide
Turbo-Plus 16-bit Installation
Check List
THIS CHECKLIST IS FOB FUBE 16 BIT INSTALLATIONS ONLY
[ ] 1. Bead the Turbo-Plus 16-bit Installation Guide.
[ ] 2. Bun INSTALL.OMD.
This program will prompt you for your TurboDOS version
your system boot drive and your system search drive.
It will then create the proper .PAR files for your
configuration and proceed to GEN the Turbo-Plus
modules. When GEN is complete it will copy all of the
appropriate files to their correct destinations on your
system.
f j 3. Bun BBINSTAL.CMD ! OPTIONAL!
If you desire to use the Background Batch commands it
will be necessary to run this installation program.
BBINSTAL will ask the same questions as above and in
addition will require a particular user area
..&e.sAgnat.i-au...wh&T..e it can reside when idle and maintain
it’s files.
[ 3 4.
[ 3 5.
[ 3 6.
COPY all help (.HLP) files from
to user 0 of your search drive. Distribution Disk(s)
COPY TPLUSS.O TPLUSM.O C0N96TP.0 CONBB.O TWXTV.O
and TWXNUL.0 to the area of your disk where you
generate your TurboDOS systems.
GEN all Slaves - Be sure that each OSSLAVEx.GEN
includes C0N96TP.0 (replacing your existing C0N96.0)
TPLUSS.O and TWXTV.O (or TWXNUL. 0) as well as
USBSUP.O NETSVC.0 and NETFWD.O (all supplied by
Software 2000 Inc. but not generally included in
slave general’on).
[ ] 7. GEN Background Batch slave. »OPTIONAL!
[ ] a. In order to allow the BATCH PBOCESSING slave to recover
from console input conditions (illegal in BB)
substitute CONBB.O for C0N96TP.0 on the OSSLAVEx.GEN
designated in the BBINSTAL session.
[ ] b. Include LOGUSB = NN (where NN - user area specified in
BBINSTAL - i.e. LOGUSB = OxlE for area 30) in this
OSSLAVEx.PAB file.
(Cont’d)
1-3

Turbo-Plus VI.41 16-bit Installation Guide
[ ] 8. If you are running a 16-bit master GEN the master
( OSMASTER.SYS).
Be sure to include TPLUSM.O as well as USRSTJP.O
NETFWD.0 NETREQ.0 and MSGFMT.0 (supplied by Software
2000 Inc.) in the OSMASTER.GEN file.
[ ] 9. Reset and test your system. You should first notice
the new Turbo-Plus LOGON program if everything is
properly installed.
1-4

Turbo-Plus VI.41 16-bit Installation Guide
Turbo-Plus Modules
16 bit Turbo-Plus will arrive on two sides of one CP/M
format single-sided single-density diskette. Side one contains
all of the relocatable modules; side two contains .DO .GEM and
.PAR files used to generate your Turbo-Plus installation.
Program Modules
Side one contains three types of files:
1) Relocatable program files:
Those files which constitute the main bodies of the
Turbo-Plus utility programs.
2) Relocatable subroutine files:
Those files which contain subroutines called by the
programs above.
3) System function files:
Files containing extensions to the normal set of
TurboDOS operating system calls which must be genned
into the operating system.
Side two contains all of the supporting files used for
generating your installed version of Turbo-Plus. This includes
.GEN and .PAR files for your programs auxiliary data files two
installation .GMD files and .DO files referenced by the install
programs.
2-1

Turbo-Plus VI.41 16-bit Installation Guide
Relocatable and executable program files
These are all of the files containing the assembled source
code for the Turbo-Plus utilities. They are distributed in
relocatable form to allow the patching of parameters.
DIRDUMP.O Program which gives a master directory of any disk
sorted by user area.
Q
O
O
Program which moves users to a user area specified
by a user-defined name.
GONAME.0 Utility which allows users to define names for user
areas on the system.
HELP. 0 TurboDuS on-line help facility providing help on
all TurboDOS and Turbo-Plus commands. Users may
add their own help files.
LOCATE.0 Utility to search certain or all system drives for
given file or template.
LOG. 0 Utility to make entries in a date and time stamped
log file.
LOGOFF.0 Enhanced version of system logoff notifying users
of pending mail and displaying system bulletins.
LOGON.0 Enhanced version of system logon notifying users
of pending mail displaying system bulletins and
providing additional levels of security.
MAIL.0 TurboDOS mail facility to allow electronic mail to
be sent among users on the system.
MASTER.0 Enhanced version of the TurboDOS ’MASTER’ command
providing better control of access to the master.
PROFILE.0 Program to maintain USERID.SYS file.
RESET.0 Program to reset a slave from another slave.
STATUS.0 Facility to continuously monitor activity of system
users printers and buffers.
TWX.O TWX facility to allow users to send immediate
messages to other consoles on the system.
USER.0 Allows user to change user areas. Performs the
same function as the TurboDOS USER command of
versions 1.3 and earlier.
WHO. 0 System status facility to display all current users
on the system processes they are running and other
current system characteristics.
02
i
02

Turbo-Plus VI.41 16-bit Installatton Guide
Relocatable subroutine files
A number of routines are shared by various program modules. They
include the following files:
DBUFF.0
LOGDAT.0
PTABLE.O
TPDATE.O
GBUFF.0
MBÜFF.0
TABLES.G
TPSCAN.O
LOGCHK.O
MROUTE.O
TPMOD.O
System function files
These files must be moved to the user area on the system where
your system’s .GEN and .PAR files reside and where your system
generation takes place. Some of them must be genned into your
system in order for Turbo-Plus to work. There are six such
files all on side 1:
TPLUSS 0 TPLUSM.O
TWXNUL.Q TWXTV.O
C0N96TP.0 CONBB.0
.GEN and .PAR files
These files are necessary to patch the modules to work under your
system configuration.
All of the following programs have .GEN files some of which are
accompanied by .PAR files:
DIRDTJMP
LOCATE
MAIL
STATUS
GO
LOG
MASTER
TUX
GONAME
LOGOFF
PROFILE
USER
HELP
LOGON
RESET
WHO
The following files are necessary for the installation procedure:
TPLUS6 DO INSTALL.CMD
2-3

Turbo-Plus VI.41 16-bit Installation Guide
2-4

Turbo-Plus VI.41 16-bit Installation Guide
Instal1ing Turbo-Plus
Generating executable programs
Before you begin your Turbo-Plus installation make a backup
of tbe distribution diskette(s). If you received Turbo-Plus on a
single TurboDOS format disk you may run the install procedure
directly from that disk. If not you must copy the first two
disks onto any user area on the system other than user zero of
the search drive.
To customize Turbo-Plus to your system configuration
execute the INSTALL command. This program will prompt you for
your TurboDOS version number system search drive and the drive
which currently contains your system boot disk (do not include
the colon after the drive letters); all of the necessary .CMD
files will be generated and moved down to the search drive.
Then all of the .HLP files should be moved from the distribution
disk to user zero of the search drive. During execution of the
INSTALL process it is very possible that certain stages will
return with system error messages such as ’File not found5. This
is due to the fact that the procedure must make sure that if any
of these programs were already present in an older version they
are deleted. Thus if the programs were not there trying to
delete them will yield error messages.
Note: If you do not have a system search drive you must
still give some drive parameter to be used by Turbo-Plus as the
dri^e on which to maintain all of its files.

Turbo-Plus VI.41 16-bit Installation Guide
System Generation
Before Turbo-Plus may be brought up it is necessary to
generate a new operating system. You should start with the .GEN
and .PAR files which you are currently using for both your
slave(s) and your master but some additions will be necessary.
Generating a new system master
The following changes must be made to the .GEN file for your
system master (usually STDMASTR.GEN or OSMASTER.GEN). Using your
system editor insert the following lines.
NETREQ
MSGFMT
NETFWD
USRSUP
TPLUSM
If you have the ability to use the TWX and RESET commands
it is recommended that you use modified circuit drivers. Many
existing circuit drivers have already been modified
appropriately; if your dealer says that yours has not been a
revision will be necessary. There should be no change made to
the master circuit driver and the source for your slave circuit
driver should be changed following the instructions in Appendix
A.
If you are running a multi-circuit system one patch line
will be required in your master .PAR file. For a full
explanation of this patch point refer to Appendix B in the 8-bit
installation manual.
Figure 3.1 shows a sample OSMASTER.GEN file prepared for
Turbo-Plus.
3-2

STDMASTR
NETFWD
NETREQ
MSGFMT
HDWNIT
USBSTJP
TPLTJSM
CONREM
LSTPAR
LSTETX
LSTTAB
SPDXXX
BRTXXX
RTCXXX
DSKXXX
DST58P
DSKHHK
MCDXXX
COMPAT
NMBSVC
NMBXXX
NMBMBS
NMBUFS
NMBRPS
PATXXX
DSKAST
PTRAST
MEMRES
DSPPAT
AUTXJSR
QUEAST
SRHDRV
ETXBR =
Turbo-Plus VI.41 16-bit Installation Guide
Figure 3.1
Sample OSMASTER.GEN file
; STANDARD NETWORK MASTER CONFIGURATION
; NETWORK MESSAGE FORWARDING
; NETWORK REQUEST PROCESSOR
; NETWORK MESSAGE FORMAT TABLE
; HARDWARE INITIALIZATION
; USER FUNCTION MAIN CALLING MODULE
; TURBO-PLUS FUNCTION EXTENSIONS
; REMOTE MASTER CONSOLE
; DRIVER FOR HIGH SPEED PRINTER
; DRIVER FOR LETTER QUALITY PRINTER
; DRIVER FOR HIGH SPEED PRINTER EXPANDING TABS
; SERIAL & PARALLEL DRIVERS
; BAUD-RATE TABLES
; REAL-TIME CLOCK DRIVER
; FLOPPY DISK DRIVER
; FLOPPY DISK SPECIFICATION TABLES
; HARD DISK DRIVER
; MASTER CIRCUIT DRIVER
OxFO
9
9
OxlB
OxlO
OxlB
Figure 3.2
Samp1e OSMASTER.PAR file
; Compatibility flags
; Number of slaves
; Number of slaves (9)
; Number of message buffers (27)
; 16 I/O buffers
; Number of network reply packets (27)
0x60 0x62 0x64 0x66 0x68 0x6A 0x6C 0x6E 0x70
; Slave Port assignment table
001DSKDRA 01 DSKDRA 00 DSKDRB 01 DSKDRB 02 DSKDRB 03 DSKDRB
04 DSKDRB 05 DSKDRB 06 DSKDRB 07 DSKDRB 08 DSKDRB 09 DSKDRB
OxOA DSKDRB OxOB DSKDRB
; Disk assignment table:
A B = floppy drives
; C-N = Winchester disk
00 LSTDRA 01 LSTDRB 00 LSTDRC
Printer assignment table:
A - High speed with raw output
B = Letter quality with raw output
C = High speed w/ formatted output
Reserved memory above TPA
(0x1000)
1 2 0 0 0 0 0 0 0 0 0
De-Spool
: 0x80
« 00 (0) 00 (0)
= 8
OxOE
00
table:
Printer A — >
Printer B — >
Log master on to
(0) 00 (0) 00 (0)
Queue A
Queue B
user 0 privileged
00 (0) 00 (0) 00 (0)
Define eight valid queues (A-H)
System search drive = H
Baud rate on Printer B = 9600
3-3

Turbo-Plus VI.41 16-bit Installation Guide
Generating new slaves
Next in your slave .GEN files add lines containing USR8UP
and TPLUSS following the hardware initialization module. You
should also include NÊTFWD and NETSVG immediately after the line
for STDSLAVE. Also to optimize the performance of the TWX
command you need a special console driver modified circuit
drivers and a separate module to handle the shift-in shift-out
produced by TWX.
If your standard console driver is C0N96 you may use the
C0N96TP driver provided with Turbo-Plus. (To do so simply
replace the C0N96 line in your .GEN file with C0N96TP). If not
you should modify your driver such that before every console
output it performs a WAIT operation on the global semaphore:
TWLOCK and after each console output it performs a SIGNAL
operation on the same semaphore. It should also allow for a
character to remove the TWX message from the 25th line of the
screen by calling the external routine TWXRST when this
character is received. C0N96TP uses the ESC character by
default and if there is no message on the status line it allows
the escape to passed through normally. Figure 5.5 shows the
C0N96TP driver which may be used as a guideline.
Furthermore for those of you using TWX and RESET your
circuit driver may require modification. Consult appendix A for
the necessary changes.
The second module necessary for TWX handles the placing of
TWX messages on the screen without interrupting normal console
input/output. If you are using a Televideo terminal you may use
the TWXTV module which places all received TWX messages on the
terminal status line. For any other terminal you may use the
TWXNUL module which simply prints each line at the current
cursor position followed by a carriage return-line feed
sequence. A source listing of this module is provided and
explained in Figure 3.6 in case you wish to modify it for your
specific terminal. Modification may be done either by writing
your own driver our patching TWXNUL in the slave .PAR file.
Figure 3.4 shows a sample slave .GEN file and figure 3.3
shows the corresponding .PAR file.
Once all of these changes are complete you are ready to
generate the new master and slaves using the GEN command in the
usual way. (Refer to the TurboDOS configuration Guide.) Once all
of these steps are done copy the newly created .SYS files down
to user zero of your boot disk and Turbo-Plus will be ready to
come up.
3-4

Turbo-Plus VI.41 16-bit InstallationGuide
Figure 3.3
Sample STDSLAVE.PAH file
COMPAT = OxFO ; File Compatibility flags
SEHDRV = 8 ; System search drive = H
PRTMOD = 01 ; Print mode = Spooled
QUEPTR = 1 ; Default Queue = A
SPLDRV = 8 ; Spool Drive = I
Figure 3.4
Sample STDSLAVE.GEN file
STDSLAVE ; STANDARD NETWORK SLAVE CONFIGURATION
NETFWD ; NETWORK MESSAGE FORWARDING
NETSVC ; NETWORK SERVICE PROCESS
NITXXX ; HARDWARE INITIALIZATION
XJSRSUP ; USER FUNCTION INTERFACE
TPLUSS ; TURBO-PLUS FUNCTION EXTENSIONS
C0N96TP ; TURBO-PLUS ASCII CONSOLE AT 9600 BAUD
TWXT? ; TWX CONSOLE MANAGER FOR TELEVIDEO 950/925/800
SPDXXX i SERIAL& PARALLEL DRIVERS
8LVRES ; SUBROUTINE FOR KEYBOARD RESET OF SLAVE
SCDXXX ; SLAVE CIRCUIT DRIVER
Special hardware-dependent modules described in the paragraphs
above are in boldface.
3-5

Turbo-Plus VI.41 16-bit Installation Guide
Figure 3.5
Sample Turbo-Plus Console Driver
C0N96TP: TURBODOS OPERATING SYSTEM NULL CONSOLE DRIVER
COPYRIGHT 1984 SOFTWARE 2000 INC.
Page 1
COPYRIGHT 1984 SOFTWARE 2000 INC.
VERSION: 01/03/84
Edit History: JBG : 24-Aug-83 : Revised for TurboDOS VI.30
JBG : 12-Mar-84 : 16 bit conversion completed
JBG : 3-Dec-84 : Clear status line logic added
MÖDULJS ”C0N96t±'
” ;MOdu Lüí NAMbí
¿INCLUDE "DREQUATE” ; DRIVER SYMBOLIC EQUIVALENCES
9LOC Data# ;LOCATE IN DATA SEGMENT
CONBR: : BYTE 0x8E ;CONSOLE BAUD RATE CODE (9600 BAUD)
R25CHR: BYTE OxlB ; RESTORE 25TH LINE CHARACTER
FFCHR : : BYTE AFF ;FORM FEED CHARACTER
INITC: BYTE 0 ;INITIALIZATION COMPLETE FLAG
EFLAG: BYTE 0
BCOUNT: BYTE 0
SCOUNT : WORD 0
9LOC Code# ;LOCATE IN CODE SEGMENT
CONDR_: :MOV AL INITC ; GET INIT COMPLETE FLAG
TEST AL AL ; INITIALIZATION COMPLETE FLAG SET?
JNZ
__
CDRV ; IF SO CONTINUE
GALL INIT ; ELSE INITIALIZE CONSOLE CHANNEL
__
CDRV: MOV AL DL ; GET FUNCTION NUMBER
SUB AL =8 ; FUNCTION NUMBER=8?
JNZ
JMP NSO
CONSO ; IF SO ERROR SHIFT OUT
__
NSO : DEC AL ; FUNCTION NUMBER-9?
JNZ
JMP NS I
CONS I ; IF SO ERROR SHIFT IN
__
NS I : DEC AL ; FUNCTION NUMBER = 10?
JNZ
JMP NOPT
OPT ; IF SO JUMP TO OPTIMIZED OUTPUT ROUTINE
__
NOPT: MOV AL DL ; GET BACK IN A
OR AL AL ; IF 0 GO TO CONSTAT
JZ CONST 9 •
DEC AL ; IF 1 CONIN
JZ CONIN 9 •
DEC AL ; IF 2 CONOUT
3-6

Turbo-Plus VI.41 16-bit Installation Guide
C0N96TP: TURBODOS OPERATING SYSTEM NULL CONSOLE DRIVER
COPYRIGHT 1984 SOFTWARE 2000 INC.
Page 2
JNZ 8
JMP CONOUT
s* JMP SERIAL#
.INIT: MOV INITC “OxFF
PUSH DX
PUSH CX
MOV CL CONBR
MOV DL =3
GALL SERIAL#
MOV AL.FFCHR
TEST AL AL
JZ NITX
POP CX
PUSH CX
MOV CL AL
MOV DL = 2
CALL SERIAL#
HITX: POP CX
POP
RET DX
ININc MOV AL.EFLAG
OR AL AL
JZ
__
SER
XOR AL AL
CALL RELEAS
SER: PUSH CX
PUSH DX
CALL SERIAL#
PUSH AX
AND AL -0x7F
MOV CH AL
MOV AL R25CHR
CMP AL CH
JNZ RET
MOV AL LINE25#
OR AL AL
JZ RET
CALL TWXRST#
POP AX
POP DX
POP CX
JMP SERIAL#
RET: POP AX
POP DX
POP CX
;SET INIT COMPLETE FLAG
;SAVE FUNCTION NUMBER
;SAVE CHANNEL NUMBER/CHARACTER
;GET CONSOLE BAUD RATE CODE
;SET FUNCTION NUMBER=3
;SET CHANNEL BUAD RATE
;GET FORM FEED CHARACTER
;FORM FEED CHARACTER=0 ?
;IF SO CONTINUE
;ELSE RESTORE CHANNEL NUMBER
;SAVE CHANNEL NUMBER
;FORM FEED CHARACTER TO C-REG
;SET FUNCTION NUMBER=2
;OUTPUT FORM FEED
;RESTORE CHANNEL NUMBER/CHARACTER
;RESTORE FUNCTION NUMBER
; DONE
IF ESCAPE FLAG IS SET
RESET FLAGS AND SEMAPHORE
END IF
SAVE CHANNEL NUMBER
AND FUNCTION NUMBER
GET THE CHARACTER
SAVE IT
STRIP PARITY
SAVE IT
COMPARE TO 25TH LINE RESTORE
IF SO
CHECK FOR PRESENCE OF MESSAGE
IF NONE SKIP THIS
RESTORE THE LINE
GET REGISTERS OF THE STACK
. BECAUSE WE NEED THE FUNCTION IN E
. AND THE CHANNEL IN B
GO AHEAD TO SERIAL#
ELSE
GET CHAR BACK IN A
RESTORE THE STACK
ENDIF
3-7

Turbo-Plus VI.41 16-bit Installation Guide
C0N96TP: TURBODOS OPERATING SYSTEM NULL CONSOLE DRIVER
COPYRIGHT 1984 SOFTWARE 2000 INC.
Page 3
RET ■RETURN
CONST: MOV AL.EFLAG IF ESCAPE FLAG IS SET
OR AL AL
JZ SER
PUSH BX SAVE HL
MOV BX SCOUNT CHECK CON STAT COUNT
INC BX BUMP IT
MOV SCOUNT BX SAVE NEW STAT COUNT
MOV AL BH IF 0
OR AL BL
JNZ NR
CALL RELEAS RELEASE ESCAPE FLAG
__
NR: POP BX END IF
RESTORE HL
__
SER: PUSH CX END IF
SAVE CHANNEL NUMBER
CALL SERIAL# AND GO TO SERIAL
POP DX GET CHANNEL NUMBER BACK IN D
OR AL AL IF NOTHING AVAILABLE JUST RETURN
JNZ
__
C
RET *
__
C: PUSH AX SAVE REGISTERS FOR RETURN
PUSH CX
AND CL =0x7F STRIP PARITY
MOV CH CL SAVE IT
MOV AL R25CHR COMPARE TO 25TH LINE RESTORE
CMP AL CH *
JNZ RST IF SO
MOV AL LINES5# CHECK FOR PRESENCE OF MESSAGE
OR AL AL
JZ RST IF NONE SKIP THIS
'CALL TWXRST# RESTORE THE LINE
MOV CH DH GET CHANNEL NUMBER BACK IN B
MOV DL =1 CALL CONIN TO FLUSH THE BYTE
CALL SERIAL#
POP CX GET REGISTERS OFF STACK
POP AX *
XOR AL AL FLAG NO CHARACTER AVAILABLE
JMP
__
RET ELSE
__
RST : *
POP CX RESTORE REGISTERS NORMALLY
POP AX *
__
RET: END IF
RET RETURN
RELEAS: MOV EFLAG AL » •
MOV BCOUNT AL > •
3-8

Turbo-Plus VI.41 16-bit Installation Guide
C0N96TP: TURBODOS OPERATING SYSTEM NULL CONSOLE DRIVER
INC.
Page 4
SAVE REGISTERS
RELEASE CONSOLE
RESTORE REGISTERS
END IF
RETURN
CONOUT:
NSEQ :
NESC :
CONT:
IT 1984 SOFTWARE 20C
PUSH CX
PUSH DX
PUSH BX
MOV BX.&TWLOCK#
CALL SIGNAL#
POP BX
POP DX
POP CX
RET
MOV AL.EFLAG
OR AL AL
JZ NSEQ
MOV AL BCOUNT
DEC AL
MOV BCOUNT AL
JNZ
__
CONT
MOV EFLAG AL
JM?
___
CONT
MOV AL CL
AND AL =Ox?F
CMP AL -OxlB
JNZ NESC
OR AL =OxFF
MOV EFLAG AL
INC AL
MOV WORD SCOUNT
PUSH CX
PUSH DX
PUSH BX
MOV BX &TWLOCK#
CALL WAIT#
POP BX
POP DX
POP CX
MOV AL CL
AND AL =0x7F
CMP AL =OxlB
JNZ NE2
MOV AL =6
MOV BCOUNT AL
OR AL =OxFF
MOV EFLAG AL
INC AL
MOV BYTE SCOUNT
MOV SCOUNT+1 AL
NES:
IF WE ARE IN THE MIDDLE OF AN ESCAPE SEQU
GET BYTE COUNTER
DECREMENT IT
STORE IT
IF IT’S ZERO
TURN OFF ESCAPE FLAG
END IF
ELSE
GET BYTE IN A
STRIP PARITY
CHECK FOR ESCAPE
IF ESCAPE
SET FLAG
AND INITIALIZE STAT COUNTER
END IF
SAVE REGISTERS
WAIT FOR CONSOLE FREE
RESTORE REGISTERS
END IF
GET BYTE IN A
STRIP PARITY
IF IT’S AN ESCAPE
INITIALIZE BYTE COUNTER
SET FLAG
AND INITIALIZE STAT COUNT
ENDIF
3-9
Table of contents