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
/
BYE5
/
OZBYE510.DOC
< prev
next >
Wrap
Text File
|
2000-06-30
|
5KB
|
128 lines
Osborne 01 / BYE510 / Smart Modem
The insert for the Osborne, B5OS-2.INS,
describes a hardware modification to the computer
which I was able to avoid. Since I am using a smart
modem it is possible to let it control BYE as well
as the phone connection. Pin four of the serial
connector of the Osborne is checked by BYE.COM to
determine if the modem is on line. When this pin is
at plus 5 volts or greater, the on-line condition is
indicated. (my modem pulls pin four to plus 12 volts
when it answers) When the caller hangs up or the
line is lost, the modem grounds pin four. BYE
detects the ground at pin four and recycles, making
itself ready for the next call. If your modem has a
suitable signal which you can connect to pin four
you are in business. It looks like DATA SET READY,
pin six on the modem, might work. I had previously
modified my modem to bring the off-hook led voltage
to the connector. This provided the needed signal
and I was able to get BYE running with no
modification to my Osborne.
When a disconnect is caused by a time-out, or
when the caller types the command BYE, it is
necessary to run a program which commands the modem
to disconnect. When the modem disconnects, pin four
will go to ground and BYE will recycle. BYE provides
the option of running a program upon exit by setting
the EXFILE equate to YES. My exit program sends a ^T
to the modem, delays one second to allow the modem
time to abort, and returns to BYE. The program is
named PEXIT.COM and is on the same disk as BYE.COM
in user area 14. These options are selected by the
equates EXFILE, EXDRV, and EXUSR. In addition the
following two equates must be set to NO: PRNTGB
BYHANG
Using a program to abort the modem solves two
other problems. I keep BYE.COM on drive A. What if
the caller decides to terminate the call and types
BYE when logged on drive B? I have a copy of the
exit program on drive B which I have named BYE.COM.
If the caller types BYE while on drive B, the exit
program will send the abort character to the modem
and BYE will recycle just as before. The second
problem involved getting BYE to recycle if the
caller was unable to enter the correct password. BYE
has an option for a user password but I decided not
to use it. I wanted more options so I wrote a
password program that is run when the phone line is
first picked up.(See equates COMFILE, COMDRV and
COMUSR) If the caller is unable to give the password
the program sends a ^T to the modem. If the password
is correct the program sets the wheel byte to the
value assigned that password.
After inserting B5OS-2.INS into BYE510C.ASM, be
sure to check all the equates to insure that they
are set correctly for your system. After setting
EXFILE to yes you will also have to select the user
area and a file name. The file name will have to
match the exit-file file name of the BBS equate you
set to YES. File names appear in file control blocks
toward the end of the BYE asm file. I am not using a
BBS program but I had to set the equate for one of
them to YES to avoid assembler errors. My exit file
name and my entrance file name match the names used
by that BBS system.
;PEXIT.ASM for use with BYE510
;for OSBORNE 01 bios 1.4
;Causes modem to abort by sending a ^T via the serial port
TURNOFF EQU 14H ;^T to abort modem - put your abort char here
SHADOW EQU 4000H ;must be above 4000h
MEMREG EQU 0EF08H
CONT EQU 2A00H ;serial status/control
CNT1 EQU 0FFH ;for delay loop
CNT2 EQU 0FFFFH ;for delay loop
CNT3 EQU 04H ;for delay loop
ORG 100H
LXI D,BYBY
MVI C,9
CALL 5
JMP DOBLK
BYBY: DB 0DH,0AH,'GOOD BYE.....',0DH,0AH,24H
DOBLK: LXI H,BLKSTART
LXI D,SHADOW
LXI B,BLKEND-BLKSTART
DB 0EDH,0B0H
JMP SHADOW
BLKSTART: EQU $ ;ends up at 4000h
DI
OUT 0
MVI A,0
STA MEMREG
MVI A,TURNOFF
STA CONT+1
OUT 1
MVI A,1
STA MEMREG
EI
MVI D,CNT3
LONG: MVI E,CNT1 ;one second delay to allow
SHORT: LXI B,CNT2 ;modem time to abort
LP1: MOV A,C
DCR A
MOV C,A
JNZ LP1
LP2: MOV A,B
DCR A
MOV B,A
JNZ LP2
MOV A,E
DCR A
MOV E,A
JNZ SHORT
MOV A,D
DCR A
MOV D,A
JNZ LONG
RET
BLKEND EQU $
END
;
<eof>