home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
MODEMS
/
MODEM
/
NSD.ARK
/
NSD.DOC
< prev
Wrap
Text File
|
1987-10-31
|
8KB
|
167 lines
Not NSD - Copyright 1986, by Lee D. Rimar
So ZBasic - Copyright 1986, by ZEDCOR, Inc.
Dumb (distribute free, but with all notices intact!)
Terminal Program for: KAYPRO CP/M computer with any external modem
What is NSD:
NSD is a simple terminal program for Kaypro computers. I wrote it
for a limited purpose, so it has strange functions not found in other
programs. Though written for my Kaypro, it should easily adapt to other
computers. See comments under "Programmer's Notes" below.
NSD was composed and debugged with a DEMO version of ZBasic, the
compiler sold by ZEDCOR, Inc. They distribute the demo version FREE, to
advertise their fine product. Look for ZBASDEMO.LBR on many RCP/Ms.
NSD runs under the demo version -- but when you see how good ZBasic
is, you'll want to buy the full version.
How to start NSD:
1> From CP/M's A> prompt, run ZBasic.
2> In ZBasic, select (E) for Edit Mode.
3> At the ZBasic Ready prompt, type:
LOAD NSD
and hit return.
4> When it's done loading, and you get another "Ready"
message, type:
RUN
and hit return.
ZBasic will take about 5 seconds to compile the program in memory.
You'll get the NSD sign-on message, and a prompt to "Hit any Key... "
If you have the full (commercial) version of ZBasic, you may also
compile NSD to a stand-alone .COM file. See your ZBasic manual for
details.
How to use NSD:
Commands in NSD are given by hitting the ESCape key, and following
it with a command key. The very few commands are:
ESC- B
Sets the Baud rate. Supports 300, 600, 1200, 2400 baud. To keep
keystrokes to a minimum, you don't have to type the zeros; you set 1200
just by typing 12.
ESC- E
Sets "Echo Mode" ON or OFF. With echo OFF, NSD expects the system
you're connected with to "echo" the characters you type. Most BBSs do
this; use "Echo ON" only if the other system doesn't. You'll know
that's the case if you type but don't see anything on your screen.
ESC- <LINE FEED>
Turns the "line feed filter" ON or OFF. With the filter ON, line
feeds are stripped out of the data stream wherever they occur, and are
added after carriage returns. With it OFF, line feeds are passed "as
is" both locally and remote.
ESC- W
Turns "Word Wrap" ON or OFF. When it's OFF, local and remote data
is accepted "as is." When it's ON, any SPACE character received after
character 65 on a line is converted into a carriage return. This keeps
you from having to hit RETURN. See comments under "Why I wrote NSD."
ESC- T
Transmits a text file. NSD prompts with:
"File? " -- Enter the name of the file you want to send, or just
hit RETURN to cancel the command.
"Slow? " -- Enter a number to slow down the speed the text goes
out. Just hitting return will send text as fast as it can be read from
the disk. Some BBS programs can't handle that. The delay is measured
by 1/1000 second. Enter 100 to delay each character 1/10 second.
Text files go out "as-is;" the line feed filter and word wrap are
not used. I may change this in a later version.
ESC- Q
Quits from NSD. If you're running directly under ZBasic, you will
return to ZBasic's "Ready" prompt. If you've compiled the program to a
.COM file, you'll return to CP/M.
That's the entire command set. If you type an invalid command
key after hitting ESCape, it's just ignored; you'll have to hit ESCape
again to give the correct command. If you need to send out an ESC to
the other computer, hit ESCape twice (only the second one goes out).
Why I wrote NSD:
I normally use MEX, Ron Fowler's excellent Modem Executive. But I
often use PC-Pursuit to "chat" with friends in other cities. For
various reasons, MEX is clumsy and slow for this.
I use NSD for such chats. Word-wrap, echo mode, and the line feed
filter were written with that in mind. The "switches" for these options
are short 2-key sequences to make set-up easy.
That's the idea behind NSD. It's very terse; messages are kept to
a minimum. Commands are short and few. It makes the program very easy
to use. For me, at least...
One oddity you may notice: If the cursor is on the first character
of a line, NSD "swallows" backspaces. This was done to compensate for a
bug in one of my friend's terminal program -- if you try to backspace past
the beginning of a line, the whole system crashes! Sick, eh? So we set
up character echo to be handled by NSD, and her system never sees a
disastrous backspace in column 0.
Programmer's Notes And Other Quirks:
ZBasic will LIST and LLIST the program somewhat differently than I
typed it. Apostrophes expand to "REM," and question marks (?) expand to
PRINT. Also, various loops and conditional structures are displayed with
indentation. If you SAVE the program from ZBasic, the expansions stay,
but the indentations don't.
One oddity I don't understand: If you save the program in token
form (SAVE NSD) the resulting disk file is LARGER than if you save it as
Ascii (SAVE +NSD). But an Ascii saved version LOADSs a LOT slower.
The full version of ZBasic has support for serial ports; they are
treated similar to random files. The demo version doesn't offer such
nicieties, so I addressed the Kaypro's serial ports with INP and OUT
statements. That's really the only "Kaypro Specific" part of NSD.
If you re-write the modem routines, NSD should run on just about
anything. That's a nice feature of ZBasic, programs code is portable
between all versions: CP/M, MS-DOS, APPLE and MACINTOSH, and TRS-80.
To adapt NSD to another computer, change these routines:
LONG FN CheckRemote
Checks the serial port to see if there's a character waiting. If
so, it puts the character in A$, and the Ascii value of the character in
integer variable A. Otherwise, it returns A$="" and A=0.
LONG FN Sendout
Sends the value in integer variable A out the serial port, and
waits until the port returns Clear To Send.
"Set Registers"
A bunch of OUT statements to initialize the Kaypro's Z80 SIO. It
initializes the serial port for 8 bit data, 1 stop bit, no parity. I
used Richard Walker's "UARTKPRO.DOC" file for reference on this. This
file is available on many RCP/Ms.
"Set Baud"
Subroutine for setting the baud rate. The initial definition
section of the program includes an integer variable Rate. This is only
used to set the baud rate when you start the program, no other variable
is affected by this routine.
"Disconnect"
Subroutine to disconnect the modem by dropping the DTR signal.
Again, my reference source was UARTKPRO.DOC.
That's all the specific Kaypro stuff. The keyboard is checked with
a simple INKEY$, so it doesn't have to be changed. If you have the full
version of ZBasic and use built-in serial I/O routines, the resulting
source program should be portable to ANY system. I think. Haven't
tried it myself, I just have this Kaypro.
I do not consider this an "optimum" program. I wrote it in about
four hours one evening when I had nothing else to do. It doesn't have
"bells and whistles" -- it doesn't even have XMODEM support! But it
does what I need it to do. Hope you find it useful or at least interesting
Later . . .
Lee David Rimar
-eof-