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.DQC / MBYE&K10.DOC
Text File  |  2000-06-30  |  5KB  |  203 lines

  1.  
  2.             Using the 25th line for user info display
  3.                          with MBYE/MBBS
  4.  
  5. On my Kaypro 10 system I have been using the 25th line to display the user
  6. information provided by MBYE41/MBBS44.  I know there are many systems running
  7. MBBS on Kaypro machines so I thought it would be a good idea to show others
  8. how to install MBYE to implement this feature.  The same video protocol is
  9. used on the Kaypro 10 and all the other 84 models (284,484,2X,etc) so this
  10. modification will work on any of these systems.  If you do not like the
  11. inverse video, just take the ESC,'B0', ESC,'B1', ESC,'C0', and ESC,'C1'
  12. out of the DB strings near the end of the file.  An easy way to install
  13. these changes would be to simply rip out the original code and replace it
  14. with the modified code using the block delete and insert feature of your
  15. favorite editor.  This file also includes fixes for two conditional
  16. assembly bugs in the original source code which I also included in
  17. MBYE41.FIX.
  18.  
  19. In the beginning of the MBYE41.ASM file, set the equates TOPDSP and NORMAL
  20. to NO.  Set the equate LINE25 to YES.
  21.  
  22. I made the following changes to the MBYE41 source code to make the 25th
  23. line display work a bit more smoothly.  In the original release it was
  24. possible to display an empty 25th line by pressing ^W with no user logged
  25. in.  All the changed lines are shown with ;** so you can easily locate
  26. them.
  27.  
  28. Murray Simsolo
  29. LIKUG MBBS-RCP/M
  30. (516)825-8465
  31. (300/1200/2400, 24 hrs)
  32.  
  33. TOGUSR:
  34.      IF    MBBS AND (TOPDSP OR LINE25)
  35.     LDA    DSPUSF
  36.     ORA    A
  37.     JZ    SETUDO
  38.     XRA    A
  39.     STA    DSPUSF
  40.      ENDIF
  41. ;
  42.      IF    MBBS AND NODSP24
  43.     STA    DSPUSX
  44.      ENDIF
  45. ;
  46.      IF    MBBS AND LINE25        ;** I added
  47.     LDA    CURUSR            ;** these lines
  48.     CPI    ' '            ;**
  49.     JZ    UDOFF            ;**
  50.     LXI    H,CLR25            ;**
  51.     JMP    FKEX            ;**
  52.      ENDIF                ;**
  53. ;
  54.      IF    MBBS AND (TOPDSP OR LINE25)
  55. UDOFF:    LXI    H,USROFF
  56.     JMP    FKEX
  57. SETUDO:
  58.     MVI    A,ON
  59.     STA    DSPUSF
  60.      ENDIF
  61. ;
  62.      IF    MBBS AND NODSP24
  63.     STA    DSPUSX
  64.      ENDIF
  65. ;
  66.      IF    MBBS AND (TOPDSP OR LINE25)    ;** I added
  67.     LDA    CURUSR                ;** these lines
  68.     CPI    ' '                ;**
  69.     JNZ    USRDSP                ;**
  70.     LXI    H,USRON                ;**
  71.     JMP    FKEX                ;**
  72.      ENDIF                    ;**
  73. ;
  74.      IF    MBBS
  75. USRDSP:    LXI    H,CURUSR+35
  76.     SHLD    DPTR
  77.     LHLD    RTCBUF+7
  78.     CALL    DOUT
  79.      ENDIF
  80. ;
  81.  
  82. At the end of the file there are some DB strings which must be set for the
  83. necessary escape codes to be sent to the Kaypro to use the 25th status line.
  84. I also added a message to be sent to the sysop confirming that the user
  85. display is on when ^W is pressed with no user logged in.
  86.  
  87.      IF    MBBS AND (LINE25 OR TOPDSP)
  88. USROFF:    DB    CR,LF,'[User display OFF]',CR,LF,0 ;** I changed this
  89. USRON:    DB    CR,LF,'[User display ON]',CR,LF,0  ;** and added this
  90.      ENDIF
  91. ;
  92. ;------------------------------------------------------------------
  93. ;
  94. ; MBBS USER DISPLAY OPTIONS:
  95. ;
  96. ; To make the USER message appear at the top of your screen on your
  97. ; console terminal, be sure to patch these escape sequences as needed
  98. ; for your system, the ESC sequences shown here are for the Kaypro 2,
  99. ; (ADM-31). (Except for LINE25 stuff which is for Kaypro 10)
  100. ;
  101.      IF    MBBS AND LINE25
  102. CLR25:    DB    ESC,'B6',ESC,'=8 ',ESC,'R',ESC,'C7',ESC,'C6',0 ;** I changed
  103.      ENDIF    ;**this string to work with the K10
  104. ;
  105. USRMSG:
  106. ;
  107.      IF    MBBS AND NORMAL
  108.     DB    CR,LF
  109.      ENDIF
  110. ;
  111.      IF    MBBS AND TOPDSP AND (NOT TOPDEL)
  112.     DB    ESC,'=',23+' ',0+' '    ;bottom line (Kaypro 2)
  113.     DB    LF             ;and linefeed (scrollup)
  114.      ENDIF
  115. ;
  116.      IF    MBBS AND TOPDSP
  117.     DB    ESC,'=',0+' ',0+' '    ;home cursor (Kaypro 2)
  118.      ENDIF
  119. ;
  120.      IF    MBBS AND (TOPDSP OR NORMAL)
  121.     DB    '[         Who/Where               '
  122.     DB    'Mins Usr#  Date Logons Msg#  '
  123.      ENDIF
  124. ;
  125.      IF    MBBS AND (TOPDSP OR NORMAL) AND MTDISP
  126.     DB    'Maxt'
  127.      ENDIF
  128. ;
  129.      IF    MBBS AND (TOPDSP OR NORMAL)
  130.     DB    '   ]'
  131.      ENDIF
  132. ;
  133.      IF    MBBS AND TOPDSP AND TOPEOL
  134.     DB    'X'-40H,CR,LF        ;erase to end of line/CR/LF
  135.      ENDIF
  136. ;
  137.      IF    MBBS AND TOPDSP AND (NOT TOPEOL) AND (NOT MTDISP)
  138.     DB    '            '
  139.      ENDIF
  140. ;
  141.      IF    MBBS AND TOPDSP AND (NOT TOPEOL) AND MTDISP
  142.     DB    '        '
  143.      ENDIF
  144. ;
  145.      IF    MBBS AND TOPDSP AND (NOT TOPEOL) AND (NOT TOPWRP)
  146.     DB    CR,LF
  147.      ENDIF
  148. ;
  149.      IF    MBBS AND LINE25
  150.     DB    ESC,'B6',ESC,'B7',ESC,'=8 ',ESC,'B0',ESC,'B1' ;** I changed
  151.      ENDIF    ;** this string to work with the K10
  152. ;
  153.      IF    MBBS AND NORMAL
  154.     DB    CR,LF
  155.      ENDIF
  156. ;
  157.      IF    MBBS
  158.     DB    '>> '
  159. CURUSR:    DB    '                                ' ;64 byte buffer poked
  160.     DB    '                                ' ;by MLOGIN or MBBS
  161.      ENDIF    ;** This ENDIF was inadvertently left out
  162. ;
  163.      IF    MBBS AND MTDISP    ;** I changed the conditional here
  164. MTOS:    DB    '    '
  165.      ENDIF
  166. ;
  167.      IF    MBBS
  168.     DB    ' <<'
  169.      ENDIF
  170. ;
  171.      IF    MBBS AND NORMAL
  172.     DB    CR,LF,0
  173.      ENDIF
  174. ;
  175.      IF    MBBS AND TOPDSP AND TOPEOL
  176.     DB    'X'-40H,CR,LF        ;erase to end of line/CR/LF
  177.      ENDIF
  178. ;
  179.      IF    MBBS AND TOPDSP AND (NOT TOPEOL) AND (NOT MTDISP)
  180.     DB    '            '
  181.      ENDIF
  182. ;
  183.      IF    MBBS AND TOPDSP AND (NOT TOPEOL) AND MTDISP
  184.     DB    '        '
  185.      ENDIF
  186. ;
  187.      IF    MBBS AND TOPDSP AND (NOT TOPEOL) AND (NOT TOPWRP)
  188.     DB    CR,LF
  189.      ENDIF
  190. ;
  191.      IF    MBBS AND TOPDSP AND TOPDEL
  192.     DB    ESC,'R'            ;delete line (Kaypro 2)
  193.      ENDIF
  194. ;
  195.      IF    MBBS AND TOPDSP
  196.     DB    ESC,'=',23+' ',0+' ',0    ;bottom line, col 1 (Kaypro 2)
  197.      ENDIF
  198. ;
  199.      IF    MBBS AND LINE25
  200.     DB    ESC,'C0',ESC,'C1',ESC,'C6',0 ;** I changed
  201.      ENDIF    ;** this string to work with the K10
  202.  
  203.