; Title 'MXO-JC03 MEX overlay for the JCS-810 (Std TurboDOS)' ; ; MXO-JC02 REVISION LOG ; CREATED 10/18/84 RDL FROM MXO-JC01.ASM ; CHANGED 11/25/84 RDL ; CHANGED 11/28/84 RDL CHANGED MEX 253 & 255 TO RTC ; CHANGED 11/30/84 RDL DMA RESET AFTER T-41; LOCL STK F/ T-41 ; CHANGED 12/03/84 RDL MISC. CORRECTIONS ; CHANGED 12/07/84 RDL CHK CHAR PRESENT AT INCH41; OTCH41 SAVE PSW ; CHANGED 01/22/85 RDL ADDED SET PROCESSOR (WITH BAUD ONLY) ; CHANGED 01/24/85 RDL GET CURRENT BAUD FROM MASTER DURING INITS ; CHANGED 01/25/85 RDL ADDED SET CONOUT ON/OFF ; CHANGED 01/25/85 RDL STRIP PARITY OF CHARS SENT DURING -T ; CHANGED 03/15/85 RDL CHANGED SEARCH MODE TO 2, SLGHT BUFFER MODS ; ; MXO-JC03 REVISION LOG ; CREATED 03/20/85 RDL FROM MXO-JC02.ASM ; CHANGED 03/20/85 RDL RMVD NEWSTK AND DUMMY DMA STUFF ; LAST CHANGED 03/20/85 RDL ADDED INP CHR CHECK IF STATUS SAYS OK ; ; ; Note thaô thió overlay¬ whicè ió intendeä tï worë witè aî ;       MXO-SMxø overlay¬ maù freelù uså memorù uð tï 0AFFH® Thå ;       codå froí MEXPAT11.ASÍ haó beeî editeä iî aó á parô oæ ;       thió overlay® Thus¬ thió overlaù includeó alì necessarù ;       codå foò thå installatioî anä configuratioî oæ MEØ excepô ;       foò Smartmodeí dialinç anä disconnect® Creatinç á ;       workinç MEX.COÍ filå requireó overlayinç thió codå anä ;       thå MXO-SMxø codå ontï anù existinç MEX.COÍ file. ; -- RDL 10/18/84 ; ;------------------------------------------------------------ ; ; Misc equates ; NO EQU 0 YES EQU 0FFH ; TPA EQU 100H ; CR EQU 0DH LF EQU 0AH TAB EQU 09H BELL EQU 07H ESC EQU 1BH ; TFUNC EQU 0050H ;T-DOS FUNCTION ENTRY EXIT EQU 0000H ;RETURN TO DOS ; ; ; MEX service processor stuff ... MEX supports an overlay service ; processor, located at 0D00H (and maintained at this address from ; version to version). If your overlay needs to call BDOS for any ; reason, it should call MEX instead; function calls below about ; 240 are simply passed on to the BDOS (console and list I/O calls ; are specially handled to allow modem port queueing, which is why ; you should call MEX instead of BDOS). MEX uses function calls ; above about 244 for special overlay services (described below). ; ; Some sophisticated overlays may need to do file I/O; if so, use ; the PARSFN MEX call with a pointer to the FCB in DE to parse out ; the name. This FCB should support a spare byte immediately pre- ; ceeding the actual FCB (to contain user # information). If you've ; used MEX-10 for input instead of BDOS-10 (or you're parsing part ; of a SET command line that's already been input), then MEX will ; take care of DU specs, and set up the FCB accordingly. There- ; after all file I/O calls done through the MEX service processor ; will handle drive and user with no further effort necessary on ; the part of the programmer. ; INMDM EQU 255 ;get char from port to A, CY=no more in 100 ms TIMER EQU 254 ;delay 100ms * reg B TMDINP EQU 253 ;B=# secs to wait for char, cy=no char CHEKCC EQU 252 ;check for ^C from KBD, Z=present SNDRDY EQU 251 ;test for modem-send ready RCVRDY EQU 250 ;test for modem-receive ready SNDCHR EQU 249 ;send a character to the modem (after sndrdy) RCVCHR EQU 248 ;recv a char from modem (after rcvrdy) LOOKUP EQU 247 ;table search: see CMDTBL comments for info PARSFN EQU 246 ;parse filename from input stream BDPARS EQU 245 ;parse baud-rate from input stream SBLANK EQU 244 ;scan input stream to next non-blank EVALA EQU 243 ;evaluate numeric from input stream LKAHED EQU 242 ;get nxt char w/o removing from input GNC EQU 241 ;get char from input, cy=1 if none ILP EQU 240 ;inline print DECOUT EQU 239 ;decimal output PRBAUD EQU 238 ;print baud rate ; ; CONOUT EQU 2 ;simulated BDOS function 2: console char out PRINT EQU 9 ;simulated BDOS function 9: print string INBUF EQU 10 ;input buffer, same structure as BDOS 10 ; ORG TPA ;we begin ; ; DS 3 ;MEX has a JMP START here ; ; The following variables are located at the beginning of the program ; to facilitate modification without the need of re-assembly. They will ; be moved in MEX 2.0. ; PMODEM: DB NO ;yes=PMMI modem \ / These 2 locations are not SMODEM: DB YES ;yes=Smartmodem / \ referenced by MEX TPULSE: DB 'P' ;T=touch, P=pulse (used by MXO-SMxx) CLOCK: DB 100 ;clock speed x .1, up to 25.5 mhz. MSPEED: DB 1 ;sets display time for sending a file ;0=110 1=300 2=450 3=600 4=710 ;5=1200 6=2400 7=4800 8=9600 9=19200 BYTDLY: DB 1 ;default time to send character in ;terminal mode file transfer (0-9) ;0=0 delay, 1=10 ms, 5=50 ms, 9=90 ms CRDLY: DB 9 ;end-of-line delay after CRLF in terminal ;mode file transfer for slow BBS systems ;0=0 delay, 1=100 ms, 5=500 ms, 9=900 ms COLUMS: DB 5 ;number of directory columns SETFL: DB YES ;yes=user-defined SET command SCRTST: DB YES ;yes=if home cursor and clear screen ;routine at CLRSCRN DB 0 ;was once ACKNAK, now spare BAKFLG: DB NO ;yes=make .BAK file CRCDFL: DB YES ;yes=default to CRC checking ;no=default to Checksum checking TOGCRC: DB YES ;yes=allow toggling of Checksum to CRC CVTBS: DB NO ;yes=convert backspace to rub TOGLBK: DB YES ;yes=allow toggling of bksp to rub ADDLF: DB NO ;no=no LF after CR to send file in ;terminal mode (added by remote echo) TOGLF: DB YES ;yes=allow toggling of LF after CR TRNLOG: DB NO ;yes=allow transmission of logon SAVCCP: DB NO ;yes=do not overwrite CCP LOCNXT: DB NO ;yes=local cmd if EXTCHR precedes ;no=not local cmd if EXTCHR precedes TOGLOC: DB YES ;yes=allow toggling of LOCNXTCHR LSTTST: DB NO ;yes=allow toggling of printer on/off ;in terminal mode. Set to no if using ;the printer port for the modem XOFTST: DB NO ;yes=allow testing of XOFF from remote ;while sending a file in terminal mode -- ;must be no to allow BYTDLY & CRDLY delays XONWT: DB NO ;yes=wait for XON after sending CR while ;transmitting a file in terminal mode TOGXOF: DB YES ;yes=allow toggling of XOFF testing IGNCTL: DB YES ;yes=do not send control characters ;above CTL-M to CRT in terminal mode ;no=send any incoming CTL-char to CRT EXTRA1: DB 0 ;for future expansion EXTRA2: DB 0 ;for future expansion ; ; The following are not used by MEX unless 0D06H (in MEXPAT section) = 1 ; BRKCHR: DB '@'-40H ;^@ = Send a 300 ms. break tone NOCONN: DB 'N'-40H ;^N = Disconnect from phone line LOGCHR: DB 'L'-40H ;^L = Send logon LSTCHR: DB 'P'-40H ;^P = Toggle printer UNSVCH: DB 'R'-40H ;^R = Close input text buffer TRNCHR: DB 'T'-40H ;^T = Transmit file to remote SAVCHR: DB 'Y'-40H ;^Y = Open input text buffer EXTCHR: DB '^'-40H ;^^ = Send next character ; ; Two bytes used only by PMMI routines grouped together here. ; PRATE: DS 2 ; ; ; Low-level modem I/O routines: this will be replaced with ; a jump table in MEX 2.0 (you can insert jumps here to longer ; routines if you'd like ... I'd recommend NOT putting part of ; a routine in this area, then jumping to the rest of the routine ; in the non-fixed area; that will complicate the 2.0 conversion) ; INCTL1: ;in modem control port RET ;DON'T NEED TO ANYTHING HERE WITH TURBODOS db 0,0,0,0,0,0,0,0,0 OTDATA: JMP OTCH41 ;OUTPUT CHAR TO MODEM DB 0,0,0,0,0,0,0 INPORT: JMP INCH41 ;GET NEXT CHAR FROM BUFFER db 0,0,0,0,0,0,0 ; Bit-test routines. These will be merged with the above ; routines in MEX 2.0 to provide a more reasonable format ; MASKR: ;bit to test for receive ready RET DB 0,0 TESTR: JMP INST41 ;CHECK INPUT STATUS MASKS: ;bit to test for send ready RET DB 0,0 TESTS: XRA A ;RETURN ALWAYS READY TO OUTPUT RET DB 0 ; ; ; Unused area: was once used for special PMMI functions, ; Now used only to retain compatibility with MDM overlays. ; You may use this area for any miscellaneous storage you'd ; like but the length of the area *must* be 12 bytes. ; DS 12 ; ; Special modem function jump table: if your overlay cannot handle ; some of these, change the jump to "DS 3", so the code present in ; MEX will be retained. Thus, if your modem can't dial, change the ; JMP PDIAL at DIALV to DS 3, and MEX will print a "not-implemented" ; diagnostic for any commands that require dialing. ; ; DIALV dials the digit in A. See the comments at PDIAL for specs. ; ; DISCV disconnects the modem ; ; GOODBV is called just before MEX exits to CP/M. If your overlay ; requires some exit cleanup, do it here. ; ; INMODV is called when MEX starts up; use INMODV to initialize the modem. ; ; NEWBDV is used for phone-number baud rates and is called with a baud-rate ; code in the A register, value as follows: ; ; A=0: 110 baud A=1: 300 baud A=2: 450 baud ; A=3: 600 baud A=4: 710 baud A=5: 1200 baud ; A=6: 2400 baud A=7: 4800 baud A=8: 9600 baud ; ; If your overlay supports the passed baud rate, it should store the ; value passed in A at MSPEED (107H), and set the requested rate. If ; the value passed is not supported, you should simply return (with- ; out modifying MSPEED) -or- optionally request a baud-rate from the ; user interactively. ; ; NOPARV is called at the end of each file transfer; your overlay may simply ; return here, or you may want to restore parity if you set no-parity ; in the following vector (this is the case with the PMMI overlay). ; ; PARITV is called at the start of each file transfer; your overlay may simply ; return here, or you may want to enable parity detection (this is the ; case with the PMMI overlay). ; ; SETUPV is the user-defined command ... to use this routine to build your own ; MEX command, set the variable SETFL (117H) non-zero, and add your SET ; code. You can use the routine presented in the PMMI overlay as a ; guide for parsing, table lookup, etc. ; ; SPMENU is provided only for MDM compatibility, and is not used by MEX 1.0 for ; any purpose (it will be gone in MEX 2). ; ; VERSNV is called immediately after MEX prints its sign-on message at cold ; startup -- use this to identify your overlay in the sign-on message ; (include overlay version number in the line). ; BREAKV is provided for sending a BREAK (-B in terminal mode). If your ; modem doesn't support BREAK, or you don't care to code a BREAK rou- ; tine, you may simply execute a RET instruction. ; LOGON: DS 2 ;needed for MDM compat, not ref'd by MEX DIALV: DS 3 ;dial digit in A (handled by SM overlay) DISCV: DS 3 ;disconnect modem (handled by SM overlay) GOODBV: JMP GOODBYE ;called before exit to CP/M INMODV: JMP NITMOD ;initialization. Called at cold-start NEWBDV: JMP PBAUD ;set baud rate NOPARV: JMP NOPAR ;set modem for no-parity PARITV: JMP PARITY ;set modem parity SETUPV: JMP SETCMD ;SET cmd: jump to a RET if you don't write SET SPMENV: DS 3 ;not used with MEX VERSNV: JMP SYSVER ;Overlay's voice in the sign-on message BREAKV: JMP PBREAK ;send a break ; ; The following jump vector provides the overlay with access to special ; routines in the main program (retained and supported in the main pro- ; gram for MDM overlay compatibility). These should not be modified by ; the overlay. ; ; Note that for MEX 2.0 compatibility, you should not try to use these ; routines, since this table will go away with MEX 2.0 (use the MEX ; service call processor instead). ; ILPRTV: DS 3 ;replace with MEX function 9 INBUFV: DS 3 ;replace with MEX function 10 ILCMPV: DS 3 ;replace with table lookup funct. 247 INMDMV: DS 3 ;replace with MEX function 255 NXSCRV: DS 3 ;not supported by MEX (returns w/no action) TIMERV: DS 3 ;replace with MEX function 254 ; ; ; Clear/screen and clear/end-of-screen. Each routine must use the ; full 9 bytes alloted (may be padded with nulls). ; ; These routines (and other screen routines that MEX 2.0 will sup- ; port) will be accessed through a jump table in 2.0, and will be ; located in an area that won't tie the screen functions to the ; modem overlay (as the MDM format does). ; CLREOS: LXI D,EOSMSG MVI C,PRINT CALL MEX RET ; ; CLS: LXI D,CLSMSG ;null unless patched MVI C,PRINT CALL MEX RET ; ;------------------------------------------------------------ ; ; *** END OF FIXED FORMAT AREA *** ; ;------------------------------------------------------------ ; EOSMSG: DB ESC, 'Y', '$' ; CLSMSG: DB ESC, '+', '$' ; SYSVER: LXI D,SVMSG MVI C,PRINT JMP MEX ; SVMSG: DB CR, LF DB ' Version for the JCS-810 (master)', CR, LF DB ' Last Revised 03/20/85 by RDL', CR, LF DB CR, LF, '$' ; ; ; SET command ; SETCMD: MVI C,SBLANK ;any arguments? CALL MEX JC SETERR LXI D,CMDTBL MVI C,LOOKUP CALL MEX ;parse argument JC SETERR PCHL ;execute selected routine ; ; SET command argument table ; CMDTBL: DB '?'+80H ;SET ? DW STHELP DB 'HEL','P'+80H ;SET HELP DW STHELP DB 'BAU','D'+80H ;SET BAUD DW STBAUD DB 'CONOU','T'+80H ;SET CONOUT DW STCONO DB 0 ;<<=== table terminator ; ; "SET ?" or "SET HELP" processor ; STHELP: MVI C,ILP ;inline print CALL MEX DB CR,LF,' To see current baud rate, type:' DB CR,LF,' SET BAUD' DB CR,LF DB CR,LF,' To set new baud rate, type:' DB CR,LF,' SET BAUD ' DB CR,LF,' where can be 300, 450, 600, 710, 1200, 2400, or 4800' DB CR,LF DB CR,LF,' To disable terminal output, type:' DB CR,LF,' SET CONOUT OFF' DB CR,LF,' This prevents ANYTHING from being sent to the screen!' DB CR,LF DB CR,LF,' To enable terminal output, type:' DB CR,LF,' SET CONOUT ON' DB CR,LF DB CR,LF,0 RET ; ; "SET BAUD" processor ; STBAUD: MVI C,SBLANK ;check if no argument CALL MEX JC BDSHOW ;if so, display current baud rate ; MVI C,BDPARS ;function code: parse a baudrate CALL MEX ;let MEX look up code JC SETERR ;jump if invalid code CALL PBAUD ;no, try to set it JC SETERR ;if not one of ours, bomb out ; BDSHOW: MVI C,ILP ;inline print CALL MEX ;display baud DB 'Baud rate is: ',0 LDA MSPEED ;get current baud rate MVI C,PRBAUD ;let MEX print it CALL MEX MVI C,ILP ;inline print CALL MEX DB CR,LF,0 RET ; ; "SET CONOUT" processor ; STCONO: LXI D,CNOTBL ;parse argument MVI C,LOOKUP CALL MEX JC SETERR PCHL ;execute on/off routine ; ; SET CONOUT argument table ; CNOTBL: DB 'O','N'+80H ;SET CONOUT ON DW CNOON DB 'OF','F'+80H ;SET CONOUT OFF DW CNOOFF DB 0 ;<<=== table terminator ; ; SET CONOUT ON ; CNOON: LHLD 1 LXI D,9 DAD D SHLD OUTVEC RET ; ; SET CONOUT OFF ; CNOOFF: LXI H,CNORET SHLD OUTVEC CNORET: RET ; ; Process error in SET command ; SETERR: MVI C,ILP ;inline print CALL MEX DB CR,LF DB 'SET command error',CR,LF DB 'Type SET ? or SET HELP for help with the SET command',CR,LF DB CR,LF,0 RET ; ; ; PERFORM STARTUP INITS ; NITMOD: MVI C,12 ;CHECK PRIVILEGED LOGON CALL TFUNC MOV A,B ORA A JM NITMO1 ;OK IF PARITY BIT SET ; LXI D,NPRMSG JMP NITERR ; NPRMSG: DB CR, LF DB ' Modem access denied' DB CR, LF, '$' ; NITMO1: MVI C,32 ;GET USER NUMBER MVI E,0FFH CALL MEX ORA A JNZ NITMO2 ; LXI D,NU0MSG JMP NITERR ; NU0MSG: DB CR, LF DB ' Modem cannot be accessed from User 0' DB CR, LF, '$' ; NITMO2: MOV E,A ;TRY FOR MODEM LOCK MVI H,0 CALL CALL41 ORA A JNZ NITMO3 ; LXI D,MBYMSG JMP NITERR ; MBYMSG: DB CR, LF DB ' Modem is already in use' DB CR, LF, '$' ; NITMO3: LHLD 6 ;SET UP FOR BDOS CALLS TO GO THROUGH LBDOS SHLD JBDOS+1 DCX H MVI M,LBDOS SHR 8 DCX H MVI M,LBDOS AND 0FFH DCX H MVI M,0C3H SHLD 6 ; NITMO4: MVI H,11 ;GET CURRENT BAUD RATE CALL CALL41 ORA A RZ STA MSPEED RET ;END OF INITS ; NITERR: MVI C,PRINT ;ERROR DURING INITIALIZATION CALL MEX JMP EXIT ; ; SET BAUD RATE ; PBAUD: PUSH PSW ;SAVE BAUD RATE THROUGH CALL MOV E,A ;PASS REQ'D BAUD RATE IN REG. E MVI H,10 CALL CALL41 ORA A ;CHECK IF BAUD RATE SUCCESSFUL JZ BDERR POP PSW STA MSPEED XRA A RET ; BDERR: POP PSW ;BAUD RATE ERROR STC RET ; ; ; LOG OFF THE MODEM ; GOODBYE: MVI H,1 JMP CALL41 ; ; ; THE FOLLOWING FUNCTIONS ARE CURRENTLY UNIMPLEMENTED IN THIS OVERLAY ; NOPAR: PARITY: PBREAK: RET ; ; ; GET NEXT INPUT CHAR FROM MODEM ; INCH41: LDA INCHEK ;CHECK IF STATUS SAYS CHAR PRESENT ORA A RZ ; XRA A ;SET CHECK FLAG FALSE STA INCHEK ; LDA INPBUF ;CHECK IF A CHAR IS PRESENT (JUST A DOUBLE CHECK) ORA A RZ ; DCR A ;DECREMENT THE BUFFER COUNT STA INPBUF PUSH H LHLD IPTR ;GET THE CURRENT CHAR MOV A,M INX H ;POINT TO NEXT CHAR SHLD IPTR POP H RET ; ; ; CHECK MODEM INPUT STATUS ; INST41: LDA INPBUF ;CHECK IF THE BUFFER IS EMPTY ORA A JZ CHKINP ;JUMP IF BUFFER EMPTY CHRRDY: STA INCHEK ;SET FLAG TO SHOW STATUS OK XRA A ;RET Z TO INDICATE CHAR READY RET ; CHKINP: PUSH H PUSH D PUSH B MVI C,26 ;SET DMA TO INPUT BUFFER LXI D,INPBUF CALL JBDOS MVI H,2 ;CALL THE DRIVER TO GET THE INPUT BUFFER CALL CALL41 LXI H,INPBUF+1 ;RESET BUF CHAR PTR SHLD IPTR MVI C,26 ;RESET DMA TO PREVIOUS LHLD DMASAV XCHG CALL JBDOS POP B POP D POP H LDA INPBUF ;CHECK IF THE BUFFER HAS ANYTHING ORA A JNZ CHRRDY DCR A ;RET NZ TO INDICATE NO CHAR RET ; ; ; OUTPUT CHAR TO THE MODEM ; OTCH41: PUSH H PUSH D PUSH B PUSH PSW MOV E,A ;PASS THE CHAR IN REG. E MVI H,3 ;H=3 TO OUTP CHAR CALL CALL41 POP PSW POP B POP D POP H RET ; ; ; LINK TO THE MODEM DRIVER -- USED WHERE DMA BUFFER IS NOT NEEDED ; CALL41: LXI B, 0FFH SHL 8 + 41 JMP TFUNC ; ; ; REPLACEMENT CODE FOR MEX FN# 253 ; MEX253: PUSH D M25301: MVI E,7 ;DERIVED EMPIRICALLY (YES, LOOKS LIKE IT SHOULD BE 10) M25302: CALL MEX255 JC M25303 POP D RET M25303: DCR E JNZ M25302 DCR B JNZ M25301 POP D STC RET ; ; ; REPLACEMENT CODE FOR MEX FN# 255 ; MEX255: PUSH H PUSH D LHLD 8 ;GET CURRENT TIME VALUE LXI D,25 ;CALCULATE FINISHING VALUE DAD D XCHG ;SAVE FINISH VALUE IN DE M25501: CALL INST41 ;CHECK IF MODEM INPUT CHAR WAITING JNZ M25502 CALL INCH41 ;GET THE CHAR ; *** ANI 7FH POP D POP H RET ; M25502: LHLD 8 ;CHECK THE CURRENT TIME MOV A,L SUB E MOV A,H SBB D JC M25501 STC POP D POP H RET ; ; ; STRIP PARITY OF CHARS BEING SENT BY TERMINAL MODE'S -T ; ESCTST: ANI 7FH JMP OTCH41 ; ; ; TRAP SET DMA CALLS ; LBDOS: MOV A,C CPI 26 JNZ JBDOS XCHG SHLD DMASAV XCHG JBDOS: JMP MEX ;CHANGED TO JMP BDOS DURING INITS ; ; ; STORAGE FOR OVERLAY ; DMASAV: DW 80H ;STORAGE FOR DMA ADDRESS INCHEK: DB 0 ;FLAG FOR INP STATUS CHECKED BEFORE INP CHAR CALLED IPTR: DW INPBUF+1 ;POINTER TO INPUT BUFFER INPBUF: DB 0 ;MODEM INPUT BUFFER DS 7FH ; ; ; JUMPS TO LOCAL ROUTINES ; ORG 3B71H JMP MEX253 ; ORG 4554H JMP MEX255 ; ORG 41C3H CALL ESCTST ; ; MEXPAT11 Section ; ; This is the patch file for MEX 1.1 -- you may edit this section to change ; various initial variables. ; ; The order of the patch variables supported here will not change from ; version to version (i.e., new items will be added on to the end). ; ; ORG 0D00H ;location of patch variables ; ; ; ; The following line defines the MEX service call entry point, and ; is not meant to be changed by the user ; MEX: DS 3 ;MEX service call processor DS 3 ;reserved DS 1 ;reserved ; ; The following line contains the initial free-memory pointer for ; MEX. Sophisticated modem overlays requiring additional space may change ; this pointer (ie, move it higher), and thus "protect" an area of RAM. ; MEMRY: DS 2 ;first free memory pointer ; ; Following are the lowest-level vectors for console and list I/O used ; by MEX. These normally point to routines that save the registers and ; vector to the appropriate BIOS routines. Complex applications may ; need to intercept (or even replace) these routines. If you do this, ; be sure to preserve DE, HL and BC. ; STSVEC: DS 2 ;console status vector INVEC: DS 2 ;console input vector OUTVEC: DS 2 ;console output vector LVEC: DS 2 ;list output vector LSTVEC: DS 2 ;list status vector ; ; The following line defines the location of the default MEX prompt. ; If you'd like to provide your own initial prompt, add a DW statement ; pointing to a prompt buffer structured as follows: ; ; DB ; DB ; DB ; ; and may be equal (especially if you disable the ; ID command by setting CHGPMT, below to 0); the ID command will, if ; left enabled, be limited to the value. ; PROMPT: DS 2 ;prompt location DS 1 ;reserved TYPLIN: DB 22 ;for TYPE command: # lines/screen PAUSFL: DB 1 ;for TYPE cmd: 1=pause 0=no pause SEPCHR: DB ';' ;multiple command-line separator ; ; following five for SENDOUT command ; SOWAIT: DB 4 ;# seconds waiting for a sendout echo SOREPL: DB 8 ;# seconds waiting for initial reply SOTRIG: DB '>' ;sendout trigger char from remote CANCHR: DB 'U'-64 ;sendout char to cancel line to remote SORTRY: DB 6 ;sendout # retries ; ; HEXFLG: DB 0 ;hex/decimal mode ESCCHR: DB 0AH ;terminal mode escape char (0AH = linefeed) NOBELL: DB 0 ;set to 1 to disable bell ; ; Buffer variables. See BUFFERS.DOC for setup information ; PSIZE: DB 1 ;default=1k ASIZE: DB 255 ;"big" capture buffer XSIZE: DB 16 ;16K transfer buffer NSIZE: DB 1 ;1k for 85 batch files PRELEN: DB 40 ;maximum length of PREFIX string SUFLEN: DB 40 ;maximum length of SUFFIX string ; ; Misc. stuff ; CDOSFL: DB 0 ;non-zero for CDOS WTECHO: DB 0 ;non-zero sets "wait-for-echo" KYSIZE: DW 0 ;size of keystring area, in bytes CISFLG: DB 1 ;non-zero allows CIS file transfers CISOK: DB 1 ;non zero allows STAT CIS ON or OFF CHGPMT: DB 1 ;non-zero allows ID (prompt chg) command ERRID: DB 1 ;non-zero prints ID msg in err msgs ; ; by setting the following DB to 0, you can disable the HELP ; command, freeing up space used by the help file index. ; HELPOK: DB 1 ;non-zero allows HELP command MEXDU: DB 0 ;user \/ alternate area for READ,LOAD,INI.MEX DB 0 ;drive/\ & HELP.MEX (if SEARCH <>0) DEBUG: DB 0 ;debugging in term-mode if non-zero EXCLSY: DB 0 ;non-0 excludes $SYS from batchsend, dir INIMEX: DB 1 ;non-zero runs INI.MEX (if present) at startup RTIMER: DB 1 ;receiver wait: # seconds [Plouff patch] PQSIZE: DW 8 ;size of the modem-port queue PHSIZE: DB 30 ;phone library size (# entries) SILENT: DB 0FFH ;0=silence multi-line & READ cmd echo ALERT: DB 255 ;alert-bell count on CALL complete EXTEND: DB 0FFH ;non-zero: unknown commands goto READ processor SPLIT: DB 0FFH ;non-zero: splits phonelib printout, shows baud SEARCH: DB 2 ;search mode 0,1,2,3 ; ; Following is the GLOBAL secondary options table. To ; set an option to global, change its ASCII character to a 0. ; RESTT: DB 'A' ;A DB 'B' ;B DB 'D' ;D DB 'E' ;E DB 'L' ;L DB 'Q' ;Q DB 'R' ;R DB 'S' ;S DB 0 ;T DB 'V' ;V DB 'X' ;X ; DS 8 ;room for option expansion ; ; ; added on release 1.10: ; queue: db 0 ;1=allow queueing, 0=no timbas: dw 208 ;timing constant mode: db 0 ;mode of modem I/O sminit: ds 2 ;Smartmodem INIT routine adrs ssetv: ds 2 ;SSET command: defaulted off smexit: ds 2 ;Smartmodem EXIT routine adrs ds 4 ;internal to MEX sodflg: db 1 ;1=tie SENDOUT to time delay if no WTECHO autosv: db 0 ;0=initial term mode, save off tabflg: db 0ffh ;non-zero=expand tabs within MEX ; ; ; THAT'S ALL, FOLKS! ; END