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
/
BBSING
/
MBBS
/
MBYEK10.DOC
< prev
next >
Wrap
Text File
|
2000-06-30
|
5KB
|
203 lines
Using the 25th line for user info display
with MBYE/MBBS
On my Kaypro 10 system I have been using the 25th line to display the user
information provided by MBYE41/MBBS44. I know there are many systems running
MBBS on Kaypro machines so I thought it would be a good idea to show others
how to install MBYE to implement this feature. The same video protocol is
used on the Kaypro 10 and all the other 84 models (284,484,2X,etc) so this
modification will work on any of these systems. If you do not like the
inverse video, just take the ESC,'B0', ESC,'B1', ESC,'C0', and ESC,'C1'
out of the DB strings near the end of the file. An easy way to install
these changes would be to simply rip out the original code and replace it
with the modified code using the block delete and insert feature of your
favorite editor. This file also includes fixes for two conditional
assembly bugs in the original source code which I also included in
MBYE41.FIX.
In the beginning of the MBYE41.ASM file, set the equates TOPDSP and NORMAL
to NO. Set the equate LINE25 to YES.
I made the following changes to the MBYE41 source code to make the 25th
line display work a bit more smoothly. In the original release it was
possible to display an empty 25th line by pressing ^W with no user logged
in. All the changed lines are shown with ;** so you can easily locate
them.
Murray Simsolo
LIKUG MBBS-RCP/M
(516)825-8465
(300/1200/2400, 24 hrs)
TOGUSR:
IF MBBS AND (TOPDSP OR LINE25)
LDA DSPUSF
ORA A
JZ SETUDO
XRA A
STA DSPUSF
ENDIF
;
IF MBBS AND NODSP24
STA DSPUSX
ENDIF
;
IF MBBS AND LINE25 ;** I added
LDA CURUSR ;** these lines
CPI ' ' ;**
JZ UDOFF ;**
LXI H,CLR25 ;**
JMP FKEX ;**
ENDIF ;**
;
IF MBBS AND (TOPDSP OR LINE25)
UDOFF: LXI H,USROFF
JMP FKEX
SETUDO:
MVI A,ON
STA DSPUSF
ENDIF
;
IF MBBS AND NODSP24
STA DSPUSX
ENDIF
;
IF MBBS AND (TOPDSP OR LINE25) ;** I added
LDA CURUSR ;** these lines
CPI ' ' ;**
JNZ USRDSP ;**
LXI H,USRON ;**
JMP FKEX ;**
ENDIF ;**
;
IF MBBS
USRDSP: LXI H,CURUSR+35
SHLD DPTR
LHLD RTCBUF+7
CALL DOUT
ENDIF
;
At the end of the file there are some DB strings which must be set for the
necessary escape codes to be sent to the Kaypro to use the 25th status line.
I also added a message to be sent to the sysop confirming that the user
display is on when ^W is pressed with no user logged in.
IF MBBS AND (LINE25 OR TOPDSP)
USROFF: DB CR,LF,'[User display OFF]',CR,LF,0 ;** I changed this
USRON: DB CR,LF,'[User display ON]',CR,LF,0 ;** and added this
ENDIF
;
;------------------------------------------------------------------
;
; MBBS USER DISPLAY OPTIONS:
;
; To make the USER message appear at the top of your screen on your
; console terminal, be sure to patch these escape sequences as needed
; for your system, the ESC sequences shown here are for the Kaypro 2,
; (ADM-31). (Except for LINE25 stuff which is for Kaypro 10)
;
IF MBBS AND LINE25
CLR25: DB ESC,'B6',ESC,'=8 ',ESC,'R',ESC,'C7',ESC,'C6',0 ;** I changed
ENDIF ;**this string to work with the K10
;
USRMSG:
;
IF MBBS AND NORMAL
DB CR,LF
ENDIF
;
IF MBBS AND TOPDSP AND (NOT TOPDEL)
DB ESC,'=',23+' ',0+' ' ;bottom line (Kaypro 2)
DB LF ;and linefeed (scrollup)
ENDIF
;
IF MBBS AND TOPDSP
DB ESC,'=',0+' ',0+' ' ;home cursor (Kaypro 2)
ENDIF
;
IF MBBS AND (TOPDSP OR NORMAL)
DB '[ Who/Where '
DB 'Mins Usr# Date Logons Msg# '
ENDIF
;
IF MBBS AND (TOPDSP OR NORMAL) AND MTDISP
DB 'Maxt'
ENDIF
;
IF MBBS AND (TOPDSP OR NORMAL)
DB ' ]'
ENDIF
;
IF MBBS AND TOPDSP AND TOPEOL
DB 'X'-40H,CR,LF ;erase to end of line/CR/LF
ENDIF
;
IF MBBS AND TOPDSP AND (NOT TOPEOL) AND (NOT MTDISP)
DB ' '
ENDIF
;
IF MBBS AND TOPDSP AND (NOT TOPEOL) AND MTDISP
DB ' '
ENDIF
;
IF MBBS AND TOPDSP AND (NOT TOPEOL) AND (NOT TOPWRP)
DB CR,LF
ENDIF
;
IF MBBS AND LINE25
DB ESC,'B6',ESC,'B7',ESC,'=8 ',ESC,'B0',ESC,'B1' ;** I changed
ENDIF ;** this string to work with the K10
;
IF MBBS AND NORMAL
DB CR,LF
ENDIF
;
IF MBBS
DB '>> '
CURUSR: DB ' ' ;64 byte buffer poked
DB ' ' ;by MLOGIN or MBBS
ENDIF ;** This ENDIF was inadvertently left out
;
IF MBBS AND MTDISP ;** I changed the conditional here
MTOS: DB ' '
ENDIF
;
IF MBBS
DB ' <<'
ENDIF
;
IF MBBS AND NORMAL
DB CR,LF,0
ENDIF
;
IF MBBS AND TOPDSP AND TOPEOL
DB 'X'-40H,CR,LF ;erase to end of line/CR/LF
ENDIF
;
IF MBBS AND TOPDSP AND (NOT TOPEOL) AND (NOT MTDISP)
DB ' '
ENDIF
;
IF MBBS AND TOPDSP AND (NOT TOPEOL) AND MTDISP
DB ' '
ENDIF
;
IF MBBS AND TOPDSP AND (NOT TOPEOL) AND (NOT TOPWRP)
DB CR,LF
ENDIF
;
IF MBBS AND TOPDSP AND TOPDEL
DB ESC,'R' ;delete line (Kaypro 2)
ENDIF
;
IF MBBS AND TOPDSP
DB ESC,'=',23+' ',0+' ',0 ;bottom line, col 1 (Kaypro 2)
ENDIF
;
IF MBBS AND LINE25
DB ESC,'C0',ESC,'C1',ESC,'C6',0 ;** I changed
ENDIF ;** this string to work with the K10