home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Phoenix CD 2.0
/
Phoenix_CD.cdr
/
01e
/
msk230s1.zip
/
MSSDEF.H
< prev
next >
Wrap
Text File
|
1988-02-12
|
17KB
|
395 lines
; File MSSDEF.H
.xlist ; suppress listing in program
.sall ; don't list macro expansions
verdef macro
db ' Kermit-MS: V2.30 8 Jan 1988'
endm
BELL EQU 07H
TAB EQU 09H
LF EQU 0AH
FF EQU 0CH
CR EQU 0DH
XON EQU 11H
XOFF EQU 13H
ESCAPE EQU 1BH
DEL EQU 7FH
BS EQU 08H
CTLZ EQU 1AH
SOH EQU 01H ; Start of header char.
SPC EQU 20H
DOS EQU 21H
CONIN EQU 01H
CONOUT EQU 02H
RDRIN EQU 03H
PUNOUT EQU 04H
LSTOUT EQU 05H
DCONIO EQU 06H
CONINQ EQU 07H ; quiet console input
PRSTR EQU 09H
CONSTAT EQU 0BH
SELDSK EQU 0EH ; Select disk.
GCURDSK EQU 19H ; Current disk.
SETDMA EQU 1AH
GETTIM EQU 2CH ; Get the time of day.
DOSVER EQU 30H ; dos version #
GSWITCH EQU 37H ; undocumented get/set switch character
CHDIR EQU 3BH ; change directory
CREAT2 EQU 3CH ; 2.0 create [jrd]
OPEN2 EQU 3DH ; 2.0 open
CLOSE2 EQU 3EH ; 2.0 close
READF2 EQU 3FH ; 2.0 read.
WRITE2 EQU 40H ; 2.0 write
DEL2 EQU 41H ; 2.0 delete
LSEEK EQU 42H ; 2.0 lseek
CHMOD2 EQU 43H ; 2.0 chmod
IOCTL EQU 44H
GCD EQU 47H ; 2.0 get current directory.
ALLOC EQU 48H ; allocate memory
FREEMEM EQU 49H ; free memory
SETBLK EQU 4AH ; modify allocated memory map
EXEC EQU 4BH ; 2.0 execute task
FIRST2 EQU 4EH ; 2.0 search for first
NEXT2 EQU 4FH ; 2.0 search for next
PAREVN EQU 00 ; Even parity.
PARMRK EQU 01 ; Mark parity.
PARNON EQU 02 ; No parity.
PARODD EQU 03 ; Odd parity.
PARSPC EQU 04 ; Space parity.
CMKEY EQU 01 ; Parse a keyword.
CMCFM EQU 04 ; Parse a confirm.
CMTXT EQU 05 ; Parse arbitrary text up to CR.
CMFILE EQU 06 ; parse string surrounded by whitespace. [jrd]
FLOXON EQU 1113H ; Use XON/XOFF for flow control.
FLONON EQU 0 ; Don't do flow control.
DEFHAND EQU XON ; Use XON as default handshake.
; flags.remflg byte definitions.
DQUIET EQU 1 ; Display mode, suppress file xfer statistics
DREGULAR EQU 2 ; Regular formatted screen display of statistics
DSERIAL EQU 4 ; Serial mode (non-formatted screen)
D8BIT EQU 8 ; Display chars as 8-bit vs 7-bit quantities
DSERVER EQU 10H ; Server mode active, if this bit is set
MAXTAK EQU 5 ; Max number of TAKE's allowed.
DEFMXTRY EQU 5 ; default number of retries on a data packet (63 max).
; Init packet gets three times this number of tries.
DEFESC EQU 1DH ; The default escape character (Control rt sq bracket)
DRPSIZ EQU 94 ; Default receive packet size, regular pkts.
DSPSIZ EQU 94 ; Default send packet size, regular pkts.
DSTIME EQU 08 ; Default send time out interval.
DRTIME EQU 13 ; Default receive time out interval.
DSRVTM EQU 30 ; Default server timeout.
DSPAD EQU 0 ; Default send padding.
DRPAD EQU 0 ; Default receive padding.
DSPADC EQU 0 ; Default send padding char.
DRPADC EQU 0 ; Default receive padding char.
DSEOL EQU CR ; Default send EOL char.
DREOL EQU CR ; Default receive EOL char.
DSSOH EQU SOH ; Default send start-of-packet char.
DRSOH EQU SOH ; Default receive start-of-packet char.
DSQUOT EQU 23H ; Default send quote char.
DRQUOT EQU 23H ; Default receive quote char.
DQBIN EQU 26H ; Default 8-bit prefix.
DRPT EQU 7EH ; Default repeat prefix.
DCHKLEN EQU 1 ; Default checksum length.
DEFPAR EQU PARNON ; Default parity (none.)
IBMPAR EQU PARMRK ; IBM's parity (mark.)
maxpack equ 1000 ; max packet length. Sets buffer sizes, capabilities.
bufsiz equ 1536 ; size of serial port input buffer
buffsz equ 512 ; size of disk file i/o buffer (buff). [jrd]
cptsiz equ 256 ; size of session capture buffer. [jrd]
DMASIZ EQU 80H ; Size of DMA.
portmax equ 4 ; # of serial ports
; baud rate definitions
B00455 EQU 0 ; 45.5 baud
B0050 EQU 1 ; 50 baud
B0075 EQU 2 ; 75 baud
B0110 EQU 3 ; 110 baud
B01345 EQU 4 ; 134.5 baud
B0150 EQU 5 ; 150 baud
B0300 EQU 6 ; 300 baud
B0600 EQU 7 ; 600 baud
B1200 EQU 8 ; 1200 baud
B1800 EQU 9 ; 1800 baud
B2000 EQU 10 ; 2000 baud
B2400 EQU 11 ; 2400 baud
B4800 EQU 12 ; 4800 baud
B9600 EQU 13 ; 9600 baud
B19200 EQU 14 ; 19200 baud
B38400 EQU 15 ; 38400 baud
B57600 EQU 16 ; 57600 baud
B115200 EQU 17 ; 115200 baud
BAUDSIZ EQU 18 ; Number of options for baud rate.
; bit defs for flags.capflg (LOG command).
logoff equ 0 ; Off = no or suspended logging
logdeb equ 1 ; log debugging (not yet imp)
logpkt equ 2 ; log packets sent/received
logses equ 4 ; log connect mode session
logtrn equ 8 ; log (file) transaction (n.y.i.)
; Terminal emulator section
; Kinds of terminals available; VT52 and VT100 for IBM & clones only.
ttgenrc equ 0 ; Type 0: no emulation done by Kermit
ttheath equ 1 ; Type 1: Heath-19
ttvt52 equ 2 ; Type 2: VT52
ttvt100 equ 3 ; Type 3: ANSI (VT102 subset)
tttek equ 4 ; Type 4: Tektronix 4010
TTTYPES equ 5 ; Number of terminal types defined
; VT100 status flags
anslnm equ 01H ; ANSI line feed/new line mode
decckm equ 02H ; VT100 cursor keys mode
deckpam equ 04H ; VT100 keypad application mode
decscnm equ 08H ; VT100 screen mode (n.y.i.)
decom equ 10H ; VT100 origin mode
decawm equ 20H ; VT100 autowrap mode
decanm equ 40H ; ANSI(VT100)/VT52 mode
decmode equ 80H ; "?" seen in lead-in
; VT100 SETUP mode flags (bit field in a byte)
vsscreen equ 40H ; Screen (0 = normal, 1 = rev. video)
vscursor equ 20H ; Cursor (0 = block, 1 = underline)
vsmarginbell equ 10H ; Margin bell (0 = off)
vskeyclick equ 08H ; Keyclick (0 = off)
vsshift3 equ 04H ; Shift-3 (0 = American pound sign #)
vswrap equ 02H ; Line wrap around (0 = no wrap)
vsnewline equ 01H ; ANSI new line (0 = off)
; VT100 defaults for SETUP
; Note: Tab stops default to columns 9, 17, 25, 33, 41, 49, 57, 65, & 73.
; Adjust them via Set Term Tabs.
;
; VSDEFAULTS holds Kermit startup time settings for the VT100 emulator.
; Configure it by adding together names from the setup mode flags above
; to turn on features (they default to being off if not mentioned).
; Set the kind of terminal by placing a ttxxxx name in VTFLGS in the
; FLGINFO structure well below.
vsdefaults equ 0+vscursor ; + your favorite conditions.
emulst struc ; structure for terminal emulator global data
vtflgst db 0 ; VT100 setup flags
vtflgop db 0 ; VT100 runtime flags, like setup flags
vttbs dw 0 ; pointer to default tab stops
vttbst dw 0 ; pointer to tab stops (both in mszibm)
att_ptr dw 0 ; pointer to video attributes: nor, rev
emulst ends
; end of terminal emulator section
; Structure definitions.
; Modem information.
mdminfo struc
mddat dw 0 ; Default to port 1.
mdstat dw 0 ; Ditto.
mdcom dw 0 ; Here too.
mden db 0
mddis db 0
mdmeoi db 0
mdintv dw 0
mdminfo ends
; Command information.
cmdinfo struc
cmstat db 0 ; What is presently being parsed.
cmaflg db 0 ; Non-zero when an action char has been found.
cmccnt db 0 ; Non-zero if a significant char is found.
cmsflg db 0 ; Non-zero when the last char was a space.
cmostp dw 0 ; Old stack pointer for reparse.
cmrprs dw 0 ; Address to go to on reparse.
cmprmp dw 0 ; Address of prompt.
cmptab dw 0 ; Address of present keyword table.
cmhlp dw 0 ; Address of present help.
cmdbuf db 80H DUP(0) ; Buffer for command parsing.
cmcptr dw 0 ; Pointer for next char input.
cmdptr dw 0 ; Pointer into the command buffer.
cmsiz dw 0 ; Size info of user input.
cmkptr dw 0 ; Pointer to keyword.
cmsptr dw 0 ; Place to save a pointer.
cmchr db 0 ; Save char when checking ambiguity.
cmrflg db 0 ; Assume parsing filename for send.
cmcr db 0 ; Say whether bare CR is allowed.
cmquiet db 0 ; non-zero for no echoing...
cmdinfo ends
; Flags information.
flginfo struc
belflg db 1 ; Use bell
comflg db 1 ; Use COM1 by default.
abfflg db 1 ; Discard incoming file if abort.
debug db 0 ; Debugging mode (default off).
flwflg db 1 ; File warning flag (default on).
ibmflg db 0 ; IBM flag (default off).
extflg db 0 ; Exit flag (default off).
vtflg db ttvt100 ; term emulation (0=none, 1=Heath19, 2=VT52, 3=VT100)
nmoflg db 0 ; Override name from the F packet.
cxzflg db 0 ; ^X/^Z to interrupt file x-fer.
xflg db 0 ; Seen "X" packet.
filflg db 0 ; Non-zero when nothing in DMA buffer.
eoflag db 0 ; EOF flag; non-zero on EOF.
getflg db 0 ; Assume normal RECEIVE (not GET).
capflg db 0 ; On if capturing data.
takflg db 0 ; On if echoing commands of TAKE file.
timflg db 1 ; Say if are timing out or not. [jrd]
destflg db 1 ; Incoming files destination: disk or printer.
eofcz db 0 ; ^Z signals eof if non-zero.
remflg db DREGULAR ; server (remote) mode plus display flag bits
modflg db 1 ; non-zero if mode line on.
wrpflg db 0 ; non-zero if line wrap is to be done
flginfo ends
; Transmission parameters
trinfo struc
maxdat dw 0 ; Max packet size for send, word for long packets
chklen db 1 ; Number of characters in checksum.
seol db dseol ; Send EOL char.
reol db dreol ; Receive EOL char.
ssoh db dssoh ; Send start-of-packet character.
rsoh db drsoh ; Receive start-of-packet character.
squote db dsquot ; Send quote character.
rquote db drquot ; Receive quote character.
spsiz db dspsiz ; Send packet size.
rpsiz db drpsiz ; Receive packet size.
stime db dstime ; Send timeout. (Don't timeout).
rtime db drtime ; Receive timeout.
sdelay db 0 ; Send delay time (sec) for just SEND command.
spad db dspad ; Send padding.
rpad db drpad ; Receive padding.
spadch db dspadc ; Send padding char.
rpadch db drpadc ; Receive padding char.
ebquot db 'Y' ; Send 8-bit quote character.
escchr db defesc ; Escape character.
; new fields for long packets
capas db 2 ; Capas byte, just long packets, needs a name.
windo db 0 ; window size (not used, yet)
lentyp dw 3 ; packet length type (3=regular, 0=long, 1=extra long)
rlongp dw drpsiz ; long pkt size we want to receive
slongp dw maxpack ; long pkt size we could send (negotiated with host)
slong dw maxpack ; longest pkt size we will send, from Set Send Pkt
trinfo ends
pktinfo struc
pktnum dw 0 ; Packet number.
numpkt dw 0 ; Total number of packets sent.
numrtr dw 0 ; Total number of retries.
numtry db 0 ; Number of tries on this packet.
state db 0 ; Present state of the automaton.
argblk dw 0 ; For subroutine arguments. packet SEQ number
argbk1 dw 0 ; length of data field in a packet
argbk2 dw 0
argbk3 dw 0 ; packet length type (3=regular, 0=long, 1=extra long)
pktinfo ends
filest struc ; [jrd]
handle dw 0 ; DOS 2.0 file handle
string db 64 dup(0) ; complete filename string, including drive and path
dta db 26 dup(0) ; 21 resev'd bytes, file attr, 2 each date & time
sizelo dw 0 ; file size, 4 bytes, part of dta
sizehi dw 0
fname db 13 dup(0) ; filename, asciiz, with dot, part of dta
fstat db 0 ; status of Find First DOS call
filest ends
takinfo struc
taktyp db 0 ; type: 0feH=valid file handle, 0ffH=a macro [jrd]
takhnd dw 0 ; file handle [jrd]
takbuf db dmasiz dup(0)
takptr dw 0
takchl db 0
takcnt dw 0,0
takinfo ends
; Port Information.
prtinfo struc
baud dw 0 ; Default baud rate.
ecoflg db 0 ; Local echo flag (default off).
parflg db 0 ; Parity flag (default none.)
floflg db 0 ; If need flow control during file x-fer.
hndflg db 0 ; If need handshake during file x-fer.
hands db 0 ; Default handshake.
flowc dw 0 ; Do flow control with XON/XOFF.
prtinfo ends
statinfo struc ; statistics, basic information layout
prbyte dw 2 dup (0) ; number of bytes received by port
psbyte dw 2 dup (0) ; number of bytes sent to port
frbyte dw 2 dup (0) ; bytes received
fsbyte dw 2 dup (0) ; bytes sent
prpkt dw 2 dup (0) ; number of packets received
pspkt dw 2 dup (0) ; number of packets sent
nakrcnt dw 0 ; count of naks received
nakscnt dw 0 ; count of naks sent
btime dw 2 dup (0) ; start time (seconds) of transfer
etime dw 2 dup (0) ; elapsed time (seconds) of transfer
statinfo ends
mkeyw macro key,val
local junk,oldval
oldval equ $
db junk,key,'$'
junk equ $-oldval-2
dw val
endm
; definitions for terminal handler:
termarg struc
flgs db 0 ; flags
prt db 0 ; port to use (0,1)
cols db 0 ; # columns on screen
rows db 0 ; # rows on screen
captr dw 0 ; routine to call with captured data
belld dw 0 ; bell divisor
klen dw 0 ; length of key redefinition table
ktab dw 0 ; address of key redefinition table
krpl dw 0 ; address of key replacement table
escc db 0 ; escape character
baudb db 0 ; baud rate bits.
parity db 0 ; parity
termarg ends
; bits for flag byte
scrsam equ 80h ; on if shouldn't redraw screen
capt equ 40h ; capture output
emheath equ 20h ; emulate heath
havtt equ 10h ; have translate table
trnctl equ 08h ; translate control chars
modoff equ 04h ; mode line off
lnwrap equ 02h ; auto-wrap long lines
lclecho equ 01h ; local echo
;
; Note well. The following segment references are in THIS file to provide
; the desired ordering of them in memory. To wit: lowest addresses for
; 'code', followed by 'cstack', and only then by 'datas'. The code below
; causes the assembler to encounter the segments in this desired order. It
; may output them in either order-of-encounter or alphabetically (since they
; are forced to be synonymous); and it allows the linker to place them in
; either its order-of-encounter or alphabetically. If you are in doubt as to
; what your utilities do then ask the linker for a memory map and ensure the
; order is as stated above. Joe R. Doupnik 26 Dec 1985. [jrd]
code segment public 'code'
code ends
cstack segment para stack 'stack'
cstack ends
datas segment public 'datas'
datas ends
.list