public serini, serrst, clrbuf, outchr, coms, vts, vtstat public dodel, ctlu, cmblnk, locate, prtchr, dobaud, clearl public dodisk, getbaud, beep, termtb, shomodem, getmodem, mdmhand public count, xofsnt, puthlp, putmod, clrmod, poscur, holdscr public sendbr, sendbl, machnam, setktab, setkhlp, lclini, showkey public ihosts, ihostr, dtrlow, serhng, comptab, pcwait include ccsdef.h off equ 0 bufon equ 1 ; buffer level xon/xoff on-state control flag usron equ 2 ; user level xon/xoff on-state control flag mntrgh equ bufsiz*3/4 ; High point = 3/4 of buffer full mntrgl equ bufsiz/4 ; Low point = 1/4 buffer full BRKBIT EQU 040H ; Send-break bit. TIMERCMD EQU 43h ; 8253/4 Timer chip command port TIMER2DATA EQU 42h ; 8253/4 Timer 2 data port PPI_PORT EQU 61h ; 8255 prog peripheral chip control port MCONF EQU 11H ; Bios Machine configuration s/ware interrupt. KEYB EQU 16H ; Bios keyboard software interrupt VIDEO EQU 10H ; Bios Video display software interrupt RS232 EQU 14H ; Bios RS232 serial port s/ware interrupt ; constants used by serial port handler ;;MDMDAT1 EQU 03F8H ; Address of port com1 (data) ;;MDMCOM1 EQU 03FBH ; Address of port com1 (command) ;;MDMSTS1 EQU 03FDH ; Address of port com1 (status) ;;MDMDAT2 EQU 02F8H ; Port com2 data ;;MDMCOM2 EQU 02FBH ; Port com2 command ;;MDMSTS2 EQU 02FDH ; Port com2 status MDMINTV EQU 0CH ; IRQ4 com1/3 port interrupt vector MDINTV2 EQU 0BH ; IRQ3 com2/4 port interrupt vector MDMINTO EQU 0EFH ; Mask to enable interrupt level IRQ4 MDINTO2 EQU 0F7H ; Mask to enable interrupt level IRQ3 MDMINTC EQU 010H ; Bit to set to disable interrupts for IRQ4 MDINTC2 EQU 008H ; Bit to set to disable interrupts for IRQ3 EOICOM EQU 0064H ; End of interrupt for IRQ4 EOICOM2 EQU 0063H ; End of interrupt for IRQ3 INTCONT EQU 0021H ; Address of 8259 interrupt controller ICW2-3 INTCON1 EQU 0020H ; Address of 8259 ICW1 MDMINP EQU 1 ; Input ready bit MDMOVER EQU 2 ; Receiver overrun ; external variables used: ; drives - # of disk drives on system ; flags - global flags as per flginfo structure defined in pcdefs ; trans - global transmission parameters, trinfo struct defined in pcdefs ; portval - pointer to current portinfo structure (currently either port1 ; or port2) ; port1, port2 - portinfo structures for the corresponding ports ; low_rgt - low byte = last column (typ 79), high byte = last text row ; (typ 23) in screen coordinates (start at 0), set by msyibm. ; global variables defined in this module: ; xofsnt, xofrcv - tell whether we saw or sent an xoff. ; setktab - keyword table for redefining keys (should contain a 0 if ; not implemented) ; setkhlp - help for setktab. datas segment public 'datas' extrn drives:byte, flags:byte, trans:byte, ttyact:byte extrn portval:word, port1:byte, port2:byte, port3:byte, port4:byte extrn lclexit:word, rxtable:byte, decbuf:byte, taklev:byte extrn refresh:byte, scbattr:byte, low_rgt:word, vtemu:byte extrn vtroll:byte, tekflg:byte, tekgraf:byte, vtclear:byte extrn isccdos:byte ; Jun 25,1990 ; structure for status information table sttab. stent struc sttyp dw ? ; type (actually routine to call) msg dw ? ; message to print val2 dw ? ; needed value: another message, or tbl addr tstcel dw ? ; address of cell to test, in data segment basval dw 0 ; base value, if non-zero stent ends setktab db 0 ; superceded by msuibm code, return 0 here setkhlp db '$' ; and add empty help string holdscr db 0 ; Hold-Screen, non-zero to stop reading savsci dd ? ; old serial port interrupt vector sav232 dd ? ; Original Bios Int 14H address, in Code seg savirq db ? ; Original Interrupt mask for IRQ savlcr db ? ; Original Line Control Reg (3fbh) contents brkval db BRKBIT ; What to send for a break brkadr dw 0 ; Where to send it intkind db 0 ; cause of serial port interrupt isps2 db 0 ; non-zero if real IBM PS/2 modem mdminfo <> hngmsg db cr,lf,' The phone or network connection should have hungup' db cr,lf,'$' chngmsg db cr,lf,' 电话或网络联接已经挂断' db cr,lf,'$' hnghlp db cr,lf,' The modem control lines DTR and RTS for the current' db ' port are forced low (off)' db cr,lf,' to hangup the phone. Normally, Kermit leaves them' db ' high (on) when it exits.',cr,lf db ' For networks, the active session is terminated.',cr,lf,'$' chnghlp db cr,lf,' 当前串行口的调制解调器控制线 DTR 和 RTS 已被置成低' db '电平(off)' db cr,lf,', 以便将电话挂断. 通常, Kermit 退出系统时这些控制线' db '仍将保持高电平(on)不变;',cr,lf db '对与网络, 正进行的对话将被终止.',cr,lf,'$' erms40 db cr,lf,'?Warning: Unrecognized baud rate',cr,lf,'$' cerms40 db cr,lf,'?警告: 不能接受的波特率',cr,lf,'$' erms41 db cr,lf,'?More parameters are needed$' cerms41 db cr,lf,'?需要更多的参数$' badbd db cr,lf,'Unimplemented baud rate$' cbadbd db cr,lf,'不能设置的波特率$' badprt db cr,lf,' Serial port $' cbadprt db cr,lf,' 串行口 $' badprt2 db ' is not available',cr,lf,'$' cbadprt2 db ' 不能使用',cr,lf,'$' biospt db 'BIOS$' compt db 'COM$' unkpt db 'Unknown$' cunkpt db '不认识$' biosmsg db cr,lf,'This port operates through the Bios',cr,lf,'$' cbiosmsg db cr,lf,'此端口通过Bios操作',cr,lf,'$' msmsg1 db cr,lf,' Modem is not ready: DSR is off$' cmsmsg1 db cr,lf,' Modem 没有准备好 : DSR 为 off$' msmsg2 db cr,lf,' Modem is ready: DSR is on$' cmsmsg2 db cr,lf,' Model已准备好: DSR 为 on$' msmsg3 db cr,lf,' No Carrier Detect: CD is off$' cmsmsg3 db cr,lf,' 没有载波信号: CD 为 off $' msmsg4 db cr,lf,' Carrier Detect: CD is on$' cmsmsg4 db cr,lf,' 有载波信号: CD 为 on$' msmsg5 db cr,lf,' No Clear To Send: CTS is off$' cmsmsg5 db cr,lf,' 没有清除发送信号: CTS 为 off$' msmsg6 db cr,lf,' Clear To Send: CTS is on$' cmsmsg6 db cr.lf,' 没有清除发送信号: CTS 为 on$' msmsg7 db cr,lf,' Modem is not used by the Network$' cmsmsg7 db cr,lf,' 网络未使用调制解调器$' machnam db 'IBM-PC$' crlf db cr,lf,'$' delstr db BS,BS,' ',BS,BS,'$' ; Delete string clrlin db cr,'$' ; Clear line (just the cr part) tabmsg db 'Tab stops ''T'' and columns -$' clone db 0 ; clone flag (0 = real, 'B' = system Bios, ; 'N'=NetBios/network, 'U'=Ungermann/Bass net) portin db -1 ; Has comm port been initialized, -1=not used xofsnt db 0 ; Say if we sent an XOFF xofrcv db 0 ; Say if we received an XOFF parmsk db 0ffh ; parity mask, 0ffh for no parity, 07fh with flowoff db 0 ; flow-off char, Xoff or null (if no flow) flowon db 0 ; flow-on char, Xon or null pcwcnt dw 240 ; number of loops for 1 millisec in pcwait temp dw 0 temp2 dw 0 tempsci dw 0 ; temp storage for serint tempdum dw 0 ; temp storage for serdum rdbuf db 80 dup (?) ; temporary storage ; begin Terminal emulator data set termtb db tttypes ; entries for Status, not Set mkeyw 'Heath-19',ttheath mkeyw 'none',ttgenrc mkeyw 'Tek4010',tttek mkeyw 'VT102',ttvt100 mkeyw 'VT52',ttvt52 vttbl db 18 ; number of entries mkeyw 'Character-set',chaval+300h mkeyw 'Clear-screen',1000h ; 1000h = marker here mkeyw 'Color',200H ; screen fore/back colors; 200H=marker mkeyw 'Cursor-style',curval mkeyw 'Direction',dirval mkeyw 'Graphics',800h ; Tek graphics board, 800h=marker mkeyw 'Heath-19',ttheath+100H ; note 100H flag for decoding here mkeyw 'Keyclick',keyval mkeyw 'Margin-bell',marval mkeyw 'None',ttgenrc+100H mkeyw 'Newline',newval mkeyw 'Rollback',400h ; note 400H flag for decoding mkeyw 'Screen-background',scrval mkeyw 'Tabstops',tabval mkeyw 'Tek4010',tttek+100H mkeyw 'VT102',ttvt100+100H mkeyw 'VT52',ttvt52+100H mkeyw 'Wrap',wraval scrtab db 02H ; screen attributes mkeyw 'normal',00H mkeyw 'reverse',01H dirtab db 2 ; writing direction mkeyw 'left-to-right',0 mkeyw 'right-to-left',1 curtab db 02H ; cursor attributes mkeyw 'block',00H mkeyw 'underline',01H chatab db 3 ; character set (pound sign choice) mkeyw 'UK-ascii',0 mkeyw 'US-ascii',1 ; US ASCII is default (1) mkeyw 'Alternate-ROM',3 ; Alternate-ROM character set graftab db 6 mkeyw 'auto-sensing',0 ; autosensing mkeyw 'CGA',1 mkeyw 'EGA',2 mkeyw 'VGA',3 mkeyw 'Hercules',4 mkeyw 'ATT',5 tabtab db 02H ; label says it all! mkeyw 'at',0FFH ; For setting tab stops mkeyw 'Clear',00H ; For clearing tab stops alltab db 02H ; more tab command decoding mkeyw 'all',00H mkeyw 'at',01H vtable dw ontab, curtab, chatab, ontab, ontab, ontab, scrtab, dirtab,0 vtsflg equ this byte ; define small digits xxxval newval equ $-vtsflg ; and mask for bit in byte db vsnewline curval equ $-vtsflg db vscursor chaval equ $-vtsflg db vsshift3 keyval equ $-vtsflg db vskeyclick wraval equ $-vtsflg db vswrap marval equ $-vtsflg db vsmarginbell scrval equ $-vtsflg db vsscreen dirval equ $-vtsflg db vswdir numflgs equ $-vtsflg tabval equ $-vtsflg db 0 vtrtns dw numflgs dup (flgset), tabset ; dispatch table for vtsflg colortb db 0,4,2,6,1,5,3,7 ; color reversed-bit setting bytes clrset db ? ; Temp for SET Term Tabstops xxx vthlp db ' one of the following:',cr,lf db ' terminal types of: None, Heath-19, VT52, VT102, or Tek4010',cr,lf db ' Newline-mode Cursor-style Character-set (US, UK, Alt)' db cr,lf db ' Keyclick Margin-bell Screen-background' db ' (normal, reverse)',cr,lf db ' Tabstops Wrap (long lines) Color (fore & background)' db cr,lf,' Clear-screen (clears old startup screen)' db cr,lf,' Direction Left-to-right or Right-to-left' db ' (screen writing direction)' db cr,lf,' Graphics (type of display adapter when in Tek4010' db ' mode)' db cr,lf,' Rollback (undo screen roll back before writing new' db ' chars, default=off)$' cvthlp db ' 下述之一:',cr,lf db ' 可选择的终端类型为: None, Heath-19, VT52, VT102, 或 Tek4010' db cr,lf db ' Newline-mode Cursor-style Charcter-set (US, UK, Alt)' db cr,lf db ' Keyclick Margin-bell Screen-background' db ' (normal, reverse)',cr,lf db ' Tabstops Wrap (多行数) Color(前景和背景色)' db cr,lf,' Clear-screan (清除旧的屏幕显示)' db cr,lf,' Direction Left-to-right 或 Right-to-left' db ' (写屏幕的方向)' db cr,lf,' Graphics (仿真 Tek4010 时显示器适配卡的类型)' db cr,lf,' Rollback (在写入新的字符之前屏幕翻回,缺省=off)$' clrhlp db ' one of the following:' db cr,lf,' AT #s (to set tabs at column #s) or' db ' AT start-column:spacing' db cr,lf,' Clear AT #s (clears individual tabs) or' db ' AT start-column:spacing' db cr,lf,' Clear ALL (to clear all tabstops)' db cr,lf,' Ex: Set term tab at 10, 20, 34 sets tabs' db cr,lf,' Ex: Set term tab at 1:8 sets tabs at 1, 9,' db ' 17,...$' db cr,lf,' Ex: Set term tab clear at 9, 17, 65 clears tabs' db cr,lf,' Ex: Set term tab clear at 1:8 clears tabs at 1, 9,' db ' 17,...$' cclrhlp db ' 下述之一:' db cr,lf,' AT #s (设置 Tab 的位置(第几列) 或' db ' AT <起始列>:<空间(即空格数)>' db cr,lf,' Clear AT #s (清除个别 Tab 键) 或' db ' AT <起始列>:<空间(即空格数)>' db cr,lf,' Clear ALL (清除所有 Tab 键)' db cr,lf,' 例如: Set term tab at 10, 20, 34 sets tabs' db cr,lf,' 例如: Set term tab at 1:8 sets tabs at 1, 9,' db ' 17,...$' db cr,lf,' 例如: Set term tab clear at 9, 17, 65 clears tabs' db cr,lf,' 例如: Set term tab clear at 1:8 clears tabs at 1, 9,' db ' 17,...$' tbserr db cr,lf,'?Column number is not in range 1 to screen width-1$' ctbserr db cr,lf,'?列数不在 1 到 <屏宽-1>的范围内$' colhlp db cr,lf,' Set Term Color value, value, value, ...' db cr,lf,' 0 no-snow mode on an IBM CGA and white on black' db cr,lf,' 1 for high intensity foreground' db cr,lf,' 10 for fast CGA screen updating (may cause snow)' db cr,lf,' Foreground color (30-37) = 30 + sum of colors' db cr,lf,' Background color (40-47) = 40 + sum of colors' db cr,lf,' where colors are 1 = red, 2 = green, 4 = blue' db cr,lf,' Ex: 0, 1, 37, 44 IBM CGA(0), bright(1) white(37)' db ' chars on a blue(44) field' db cr,lf,' Attributes are applied in order of appearance.$' ccolhlp db cr,lf,' 设置终端颜色 ( Set Term Color <值>,<值>,<值>, ...)' db cr,lf,' 0 -- IBM CGA 的无雪花点方式及空格处为白色' db cr,lf,' 1 -- 高亮度前景色' db cr,lf,' 10 -- CGA屏幕刷新快速(可能会产生雪花)' db cr,lf,' 前景色取值 (30-37) = 30 + 色彩值之和' db cr,lf,' 背景色取值 (40-47) = 40 + 色彩值之和' db cr,lf,' 这里的颜色是 1 = 红色, 2 = 绿色, 4 = 蓝色' db cr,lf,' 例如: 0, 1, 37, 44 表示 IBM CGA(0), 加亮(1)白色(37)' db '的显示字符, 背景为蓝色(44)' db cr,lf,'$' ; ?? db cr,lf,' Attributes are applied in order of appearance.$' colerr db cr,lf,'?Value not in range of 0, 1, 10, 30-37, or 40-47$' ccolerr db cr,lf,'?值不在 0, 1, 10, 30-37, 或 44-47 范围内$' vtwrap db 'Term wrap-lines: $' cvtwrap db 'Term wrap-lines: $' vtbell db 'Term margin-bell: $' cvtbell db 'Term margin-bell: $' vtnewln db 'Term newline: $' cvtnewln db 'Term 新行: $' vtcur db 'Term cursor-style: $' cvtcur db 'Term 光标方式: $' vtcset db 'Term character-set: $' cvtcset db 'Term 字符集: $' vtclik db 'Term key-click: $' cvtclik db 'Term key-click: $' vtscrn db 'Term screen-background: $' cvtscrn db 'Term 屏幕背景色: $' colst1 db 'Term color foreground:3$' ccolst1 db 'Term 色彩 前景色:3$' colst2 db ' background:4$' ccolst2 db ' 背景色:4$' vtgraf db 'Term graphics: $' cvtgraf db 'Term 图形方式: $' vtrolst db 'Term rollback: $' cvtrolst db 'Term rollback: $' vtdir db 'Term direction: $' cvtdir db 'Term 显示方向: $' ; terminal emulator vtstbl stent ; line wrap stent ; margin bell stent ; cursor type stent ; newline stent ; screen stent ; char set stent ; write direct stent ; VT100 colors stent ; keyclick stent stent stent stent ; VT100 tab status - needs one whole line dw 0 ; end of table ; end of Terminal data set ; terminal emulator cvtstbl stent ; line wrap stent ; margin bell stent ; cursor type stent ; newline stent ; screen stent ; char set stent ; write direct stent ; VT100 colors stent ; keyclick stent stent stent stent ; VT100 tab status - needs one whole line dw 0 ; end of table ; end of Terminal data set ontab db 2 ; Two entries mkeyw 'off',0 mkeyw 'on',1 comptab db 15 ; communications port options mkeyw 'Bios1','0'+1 ; '0' is to flag value as forced Bios mkeyw 'Bios2','0'+2 mkeyw 'Bios3','0'+3 mkeyw 'Bios4','0'+4 mkeyw 'COM1',1 ; these go straight to the hardware mkeyw 'COM2',2 mkeyw 'COM3',3 mkeyw 'COM4',4 mkeyw '1',1 ; straight to the hardware mkeyw '2',2 mkeyw '3',3 mkeyw '4',4 mkeyw 'NetBios','N' ; Netbios mkeyw 'UB-Net1','U' ; Ungermann Bass Net One mkeyw ' ',0 ; port is not present, for Status ; this table is indexed by the baud rate definitions given in ; pcdefs. Unsupported baud rates should contain FF. bddat label word dw 9E4H ; 45.5 baud dw 900H ; 50 baud dw 600H ; 75 baud dw 417H ; 110 baud dw 359H ; 134.5 baud dw 300H ; 150 baud dw 180H ; 300 baud dw 0C0H ; 600 baud dw 60H ; 1200 baud dw 40H ; 1800 baud dw 3AH ; 2000 baud dw 30H ; 2400 baud dw 18H ; 4800 baud dw 0CH ; 9600 baud dw 06H ; 19200 baud dw 03H ; 38400 baud dw 02h ; 57600 baud dw 01h ; 115200 baud baudlen equ ($-bddat)/2 ; number of entries above jrbddat label word ; Baud rate table for IBM PCjrs [tm] dw 0FFH ; 45.5 baud -- Not supported dw 8bfH ; 50 baud dw 5d3H ; 75 baud dw 3f9H ; 110 baud dw 340H ; 134.5 baud dw 2e9H ; 150 baud dw 175H ; 300 baud dw 0baH ; 600 baud dw 5dH ; 1200 baud dw 3eH ; 1800 baud dw 38H ; 2000 baud dw 2fH ; 2400 baud dw 18H ; 4800 baud dw 0CH ; 9600 baud dw 06H ; 19200 baud dw 03H ; 38400 baud dw 02h ; 57600 baud dw 01h ; 115200 baud ; this table is indexed by the baud rate definitions given in ; pcdefs. Unsupported baud rates should contain FF. ; Clone: bits are for Bios speed, no parity, 8 data bits. [jrd] clbddat label word dw 0FFH ; 45.5 baud -- Not supported dw 0FFH ; 50 baud dw 0FFH ; 75 baud dw 03H ; 110 baud dw 0FFH ; 134.5 baud dw 23H ; 150 baud dw 43H ; 300 baud dw 63H ; 600 baud dw 83H ; 1200 baud dw 0ffH ; 1800 baud dw 0FFH ; 2000 baud dw 0a3H ; 2400 baud dw 0c3H ; 4800 baud dw 0e3H ; 9600 baud dw 0FFH ; 19200 baud dw 0FFH ; 38400 baud dw 0FFH ; 57600 baud dw 0FFH ; 115200 baud ; variables for serial interrupt handler source db bufsiz+2 DUP(?) ; Buffer for data from port (+ 2 guard bytes) srcpnt dw source ; Pointer in buffer (DI) count dw 0 ; Number of chars in int buffer mst dw 0 ; Modem status address mdat dw 0 ; Modem data address mdeoi db 0 ; End-of-Interrupt value mdmhand db 0 ; Modem status register, current ; Information structures for IBM Netbios compatible Local Area Networks ; network constants netint equ 5ch ; Netbios interrupt nadd equ 30h ; Add name ncall equ 10h ; CALL, open a virtual circuit session ncancel equ 35h ; Cancel command in scb buffer ndelete equ 31h ; Delete Name nhangup equ 12h ; Hangup virtual circuit session nlisten equ 11h ; Listen for session caller naustat equ 33h ; Network Adapter Unit, get status of nreceive equ 15h ; Receive on virtual circuit nreset equ 32h ; Reset NAU and tables nsend equ 14h ; Send on virtual circuit nsestat equ 34h ; Session, get status of netbrk equ 70h ; STARLAN Int 5bh send Break nowait equ 80h ; no-wait, command modifier npending equ 0ffh ; Pending request exnbios equ 0400h ; Int 2ah exec netbios call, error retry nbuflen equ 256 ; bytes in each network buffer (two of them) netbios equ 8000h ; network type bit, using NetBios starlan equ 1 ; network type bit, AT&T STARLAN netone equ 02h ; [ohl] type bit, Ungermann-Bass Net/One ;xncall equ 74h ; [ohl] Net/One extended call function netci equ 6Bh ; [ohl] Net/One command interface interrupt, ; [ohl] used for the following functions: nciwrit equ 0000h ; [ohl] Net/One write function nciread equ 0100h ; [ohl] Net/One read function ncistat equ 0700h ; [ohl] Net/One status function ncicont equ 0600h ; [ohl] Net/One control function ncibrk equ 02h ; [ohl] Net/One code for a break ncidis equ 04h ; [ohl] Net/One code for disconnect ncihld equ 06h ; [ohl] code for placing a connection on hold ;; pcnet values: 0 no network available at all ;; 1 network board reports itself as present ;; 2 and session is in progress ;; extrn byte pcnet is defined in msster. portn prtinfo <0FFFH,0,defpar,1,0,defhand,floxon> ; port struc for PORTN scbst struc ; Session (Network) Control Block [PCnet comp] scb_cmd db 0 ; command code for Netbios Int 5ch scb_err db 0 ; error return or request is pending scb_vcid db 0 ; virtual circuit ident number scb_num db 0 ; local name-number scb_baddr dw ? ; buffer address, offset dw datas ; and segment scb_length dw ? ; length of buffer data scb_rname db '* ' ; remote name, 16 chars space scb_lname db 'cckermit ' ; local name filled db 0 ; reserved db 0 ; reserved scb_post dw ? ; interrupt driven post address, offset dw code ; and segment db 0 ; LAN_num (adapter #), set to zero for STARLAN scb_done db 0 ; command complete status ; the 14 bytes below are normally 'reserved' ; STARLAN uses 5 for long/special call names ; together with STARLAN specific Int 5bh scb_vrname dw 0,0 ; Variable length call name ptr offset,segment scb_vrlen db 0 ; length of vrname db 9 dup (0) ; reserved scbst ends rcv scbst <,,,,rcvbuf,,length rcvbuf,,,,,rpost>; declare scb for rcvr xmt scbst <,,,,xmtbuf,,length xmtbuf,,,,,spost>; for xmtr lsn scbst <,,,,xmtbuf,,length xmtbuf,,,,,lpost>; for server listen can scbst <> ; for cancels pcnet db 0 ; Network is functioning xmtbuf db nbuflen dup (0) ; network buffer for transmitter xmtcnt dw 0 ; occupancy in current output buffer xmtbufx db nbuflen dup (0) ; external version of xmtbuf (dbl buffers) rcvbuf db nbuflen dup (0) ; network buffer for receiver nambuf db 65 dup (?) ; network long name storage (STARLAN) sposted db 0 ; send interlock, 0 if no send posted rposted db 0 ; rcv interlock, 0 if no receive posted lposted db 0 ; listen outstanding (if non-zero) netdbfr db 0 ; non-zero if net board is double buffered deflname db 'cckermit ' ; default local name, 16 bytes nsbrk dw 0 ; net can send Break nettype dw 0 ; kind of local area net (vendor bit field) chkmsg1 db cr,lf,' Cannot construct a local Kermit name, error = $' cchkmsg1 db cr,lf,' 不能构造一个本地 Kermit 名, 错误号 = $' chkmsg2 db cr,lf,lf,' Name $' cchkmsg2 db cr,lf,lf,' 名字 $' chkmsg3 db ' is already in use. Please enter another of' db cr,lf,' 1 - 14 letters or numbers (or nothing to quit): $' cchkmsg3 db ' 已在使用. 请输入另外一个' db cr,lf,'1-14个字母或数字的名字(或直接退出): $' netmsg1 db cr,lf,' Checking if our node name is unique ...$' cnetmsg1 db cr,lf,' 检查我们的结点名是否唯一 ...' netmsg2 db cr,lf,' The network is active, our name is $' cnetmsg2 db cr,lf,' 网络正在运行之中, 我们的名字是 $' nonetmsg db cr,lf,'?The network is not available$' cnonetmsg db cr,lf,'?网络无法使用$' nethlp db cr,lf,' Enter node name of remote system,' db cr,lf,' or a carriage return to use current name,' db cr,lf,' or a carriage return for server mode.$' cnethlp db cr,lf,' 输入远端系统的节点名,' db cr,lf,' 或打回车以便直接使用当前的名字,' db cr,lf,' 或打回车进入服务方式.$' ngodset db cr,lf,' Connecting to network node: $' cngodset db cr,lf,' 联接到网络节点: $' nbadset db bell,cr,lf,' Cannot reach network node: $' cnbadset db bell,cr,lf,' 无法到达网络节点: $' recmsg db cr,lf,' Network receive failed, status = $' crecmsg db cr,lf,' 网络接收失败, 状态 = $' sndmsg db cr,lf,' Network send failed, status = $' csndmsg db cr,lf,' 网络发送失败, 状态 = $' naskpmt db cr,lf,' A network session is active.',cr,lf db ' Enter RESUME to resume it or NEW to start a new session.' db cr,lf,'> $' cnaskpmt db cr,lf,' 网络对话有效.',cr,lf db ' 输入 RESUME 继续对话 或 输入 NEW 开始一次新的对话.' db cr,lf,'> $' nettab db 2 mkeyw 'New',0 mkeyw 'Resume',1 datas ends