
Note : This modification (or similar) will be in the next NUBYE release [tmb]

Date : 09/22/86
From : Joe Earls  PC-FORUM  (404) 324-7391
Re   : NUBYE v1.01 modification

   Tom, the modification that I am providing here has been used on my
PC-Forum BBS to solve a problem that I had with my terminal in blanking
the screen between calls.  My terminal requires a particular character
sequence for turning the screen off and another sequence for turning it
back on again.  The problem I had with trying to use the existing CLRSCR
feature is that CLRSCR does not send any sequence to turn the screen back
on again.  It just assumes that the next characters sent to the screen will
just appear.  For many terminals, that would be the case.  For those like
mine and other complex terminals, it is not.

   I have been using this modification with NUBYE101 without any problems.
After again reviewing the modification, I believe that it would not adversely
affect or be affected by features associated with any other equates.

   Note: Modified/new code is designated by "==>>"

 ------
 Mod #1

   At the top of NUBYE in the user-definable EQUates, you will place the
the following lines -- just below the CLRSCR and CLRCH1-6 equates.

==>> New code starts here
;
; Set CRTON to YES if your terminal requires a special string be sent
; to turn your CRT on, following the CLRSCR sequence which turned it off.
;
CRTON   EQU     yes     ; Yes, your terminal requires a special screen-on
                        ;   sequence following the CLRSCR sequence.
;
CRTON1  EQU     1BH     ; Six bytes allowed to turn your screen back on,
CRTON2  EQU     'n'     ;   following the CLRSCR which turned it off.
CRTON3  EQU     0       ;   All unused bytes must remain 0
CRTON4  EQU     0
CRTON5  EQU     0
CRTON6  EQU     0
;
==>> end of new code

 ------
 Mod #2

  Turn the screen on after receiving data from local console or modem.

;
RINGWT: CALL    CONSTAT
        ORA     A
        JZ      RINGW1
;
==>>     IF     CRTON
==>>    LXI     H,SCRNON        ; revive the console screen
==>>    CALL    PRINTL
==>>     ENDIF
;
        CALL    VCONIN          ; Character typed
        ANI     7FH             ; Strip parity bit
        CPI     'C'-40H         ; CTL-C?
        CZ      USRCHK          ; Check for exit

 ------
 Mod #3

  Turn the screen on after entering the ANSWer routine.

;
; answer routine
;
ANSW:    IF     NOT CPM3
        CALL    BDCHEK
         ENDIF
;
         IF     MOTOR
        CALL    DSKON           ; Turn on drives
         ENDIF
;
==>>     IF     CRTON
==>>    LXI     H,SCRNON        ; revive the console screen
==>>    CALL    PRINTL
==>>     ENDIF
;

 ------
 Mod #3

  Turn the screen on when exiting to CP/M, locally.

;
EXCPM:   IF     IMAT
        CALL    IMQUIT          ; Send ATH1 or ATS0=0 depending on OFFHK
         ENDIF
;
; This CALL to MDQUIT caused some modems trouble when OFFHK was YES.  While
; many computer inserts just call IMQUIT from MDQUIT without doing anything,
; some would drop DTR, then call IMQUIT -- this is what caused those folks'
; modems to ignore the ATH1 command...  Hence, the above CALL directly to
; IMQUIT solves everyone's problems.
;
         IF     NOT IMAT
        CALL    MDQUIT          ; Drop DTR and send ATH1 or ATS0=0 to modem
         ENDIF
;
         IF     MOTOR
        CALL    DSKON           ; Turn on drives
         ENDIF
;
==>>     IF     CRTON
==>>    LXI     H,SCRNON        ; revive the console screen
==>>    CALL    PRINTL
==>>     ENDIF
;
        LHLD    REALBD+1        ; Get real bdos vector
;

 ------
 Mod #4

   Last code addition is at the end of NUBYE.

;
         IF     CLRSCR
CLRSEQ: DB      CLRCH1,CLRCH2,CLRCH3,CLRCH4,CLRCH5,CLRCH6,0
         ENDIF
;
==>> NEW code starts here
         IF     CRTON
SCRNON: DB      CRTON1,CRTON2,CRTON3,CRTON4,CRTON5,CRTON6,0
         ENDIF
==>> end of new code
;

** end of modification file **

