home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
kermit.columbia.edu
/
kermit.columbia.edu.tar
/
kermit.columbia.edu
/
archives
/
ccdos.zip
/
ccsfil.dat
< prev
next >
Wrap
Text File
|
1991-09-08
|
11KB
|
246 lines
public bufpnt, buff, chrcnt, init, ofilsz, lnout
public gofil, outbuf, ptchr, gtchr, gtnfil, getfil, filbuf
public encode, decode, nulref, nulr, decbuf, errpack, rptq
public origr, rptct, rptval, clrfln, cxmsg, biterr, intmsg
public rtpos, erpos, rppos, stpos, nppos, rprpos, nrtpos, sppos
public kbpos, perpos, frpos, prtasz, prtscr, prtfn, fmtdsp
public diskio, locfil, strlen, strcat, strcpy, fparse, pktsize
public shosta, begtim, endtim, fsta ; statistics procedures
include ccsdef.h
getdate equ 2ah ; DOS get current date
rptmin equ 3 ; At least 3 of same char in a row
; equates for screen positioning
;scrser equ 0009H ; place for server state display line
;scrfln equ 0116H ; Place for file name
;scrkb equ 0216H ; Place for percent transferred
;scrper equ 0316H ; Place for Kbytes transferred
;scrst equ 0416H ; Place for status
;scrnp equ 0616H ; Place for number of packets
;scrsz equ 0716h ; packet size
;scrnrt equ 0816H ; Place for number of retries
;screrr equ 0916H ; Place for error msgs.
;scrhi equ 0a16H ; Err when 8th bit is on
;scrfr equ 0a16H ; Rename file
;scrint equ 0a16H ; Acknowledge interrupt
;scrsp equ 0D00H ; Place for send packet
;scrrp equ 0F00H ; Place for receive packet
;scrrpr equ 0b00H ; Prompt when Kermit ends (does cr/lf)
datas segment public 'datas'
extrn data:byte, flags:byte, trans:byte, pack:byte, hierr:byte
extrn filtst:byte, tloghnd:word, dosnum:byte
extrn isccdos:byte ; Jun 1990
scrser dw 0209H ; place for server state display line
scrfln dw 0316H ; Place for file name
scrkb dw 0416H ; Place for percent transferred
scrper dw 0516H ; Place for Kbytes transferred
scrst dw 0616H ; Place for status
scrnp dw 0816H ; Place for number of packets
scrsz dw 0916h ; packet size
scrnrt dw 0a16H ; Place for number of retries
screrr dw 0b16H ; Place for error msgs.
scrhi dw 0c16H ; Err when 8th bit is on
scrfr dw 0c16H ; Rename file
scrint dw 0c16H ; Acknowledge interrupt
scrsp dw 0D00H ; Place for send packet
scrrp dw 0F00H ; Place for receive packet
scrrpr dw 1700H ; Prompt when Kermit ends (does cr/lf)
outlin db 15 dup (' ')
verdef
db cr,lf,lf
db cr,lf,' File name:'
db cr,lf,' Kbytes transfered:'
db cr,lf
db cr,lf
db cr,lf
db cr,lf,' Number of packets:'
db cr,lf,' Packet length:'
db cr,lf,' Number of retries:'
db cr,lf,' Last error:'
db cr,lf,' Last message:'
db cr,lf,'$'
cscrser dw 0009H ; place for server state display line
cscrfln dw 0116H ; Place for file name
cscrkb dw 0216H ; Place for percent transferred
cscrper dw 0316H ; Place for Kbytes transferred
cscrst dw 0416H ; Place for status
cscrnp dw 0616H ; Place for number of packets
cscrsz dw 0716h ; packet size
cscrnrt dw 0816H ; Place for number of retries
cscrerr dw 0916H ; Place for error msgs.
cscrhi dw 0a16H ; Err when 8th bit is on
cscrfr dw 0a16H ; Rename file
cscrint dw 0a16H ; Acknowledge interrupt
cscrsp dw 0D00H ; Place for send packet
cscrrp dw 0F00H ; Place for receive packet
cscrrpr dw 0b00H ; Prompt when Kermit ends (does cr/lf)
coutlin db cr,lf,' ╬─ ╝■ ├√ :'
db cr,lf,' ╥╤┤½╦═╡─╫╓╜┌╩²(Kb):'
db cr,lf
db cr,lf
db cr,lf
db cr,lf,' ╥╤┤½╦═╡─░ⁿ╩²:'
db cr,lf,' ░ⁿ│ñ:'
db cr,lf,' ╓╪╖ó┤╬╩²:'
db cr,lf,' ╫ε╜ⁿ╥╗┤╬┤φ╬≤:'
db cr,lf,' ╫ε╜ⁿ╥╗┤╬┤½╦═─┌╚▌:'
db '$'
ermes4 db '?Unable to make unique name$'
cermes4 db '?▓╗─▄╜¿┴ó▓╗═¼├√╫╓$'
ermes9 db '?Printer not ready$'
cermes9 db '? ┤≥╙í╗·├╗╙╨╫╝▒╕║├$'
erms10 db '?Unable to store all data$'
cerms10 db '?▓╗─▄┤µ┤ó╦∙╙╨╩²╛▌$'
erms11 db '?Disk full$'
cerms11 db '?┤┼┼╠╥╤┬·$'
erms12 db '?Unable to create file $'
cerms12 db '? ▓╗─▄╜¿┴ó╨┬╬─╝■ $'
erms13 db '?Error writing file$'
cerms13 db '? ╨┤╬─╝■┤φ╬≤$'
infms1 db 'Server mode: type Control-C to exit',cr,lf,'$'
cinfms1 db ' ╖■ ╬± ╞≈ ╖╜ ╩╜ : ┤≥╚δ Ctrl-C ═╦│÷',cr,lf,'$'
infms5 db 'Renaming file to $'
cinfms5 db '╬─╝■├√╕─╬¬ $'
infms7 db 'File interrupt$'
cinfms7 db '╬─╝■╓╨╢╧',cr,lf,'$'
infms8 db 'File group interrupt',cr,lf,'$'
cinfms8 db '╬─╝■╫Θ╓╨╢╧$'
infms9 db 'User ',5eh,' interrupt',cr,lf,'$'
cinfms9 db '╙├╗º ',5eh,' ╓╨╢╧$'
hibit db 'File contains 8-bit data',cr,lf,'$'
chibit db '╬─╝■░ⁿ║¼╫ε╕▀╬╗╩²╛▌$'
asmsg db ' as $'
casmsg db ' ╫≈╬¬ $'
crlf db cr,lf,'$'
printer db 'PRN',0
; DOS special chars allowed in filenames
spchar2 db '$', 26h, 23h, 40h, 21h, 25h, 27H, '(', ')', '-', 7bh, 7dh
db 5fh, 5eh, 7eh, 60h
spc2len equ $-spchar2
rptval db 0 ; Repeated character
rptct db 1 ; Number of times it's repeated
rptq db drpt ; Repeat prefix
origr db drpt ; Original repeat prefix
chrcnt dw 0 ; Number of chars in the file buffer
outpnt dw 0 ; Position in packet
bufpnt dw 0 ; Position in file buffer
ofilsz dw 0 ; Double word original file size (in bytes.)
dw 0
tfilsz dw 0 ; Bytes transferred
dw 0
oldper dw 0 ; old percentage
oldkbt dw 0 ; old KB transferred
wrpmsg db 0 ; non-zero if we wrote percent message
fmtdsp db 0 ; non-zero if formatted display in use
; Statistics data storage area
fsta statinfo <> ; for last operation values
ssta statinfo <> ; for session values
sflag dw 0 ; flag for send (1) or receive (0)
; 80h = begtim started
lastmsg db cr,lf,cr,lf,' Totals for the last transfer ($'
clastmsg db cr,lf,cr,lf,'╫ε╜ⁿ╥╗┤╬┤½╦═╡─░ⁿ╡─╫▄╩² ($'
sessmsg db cr,lf,cr,lf,' Totals since Kermit was started ($'
csessmsg db cr,lf,cr,lf,'╞⌠╢» Kermit ║≤┤½╦═░ⁿ╡─╫▄╩² ($'
pinmsg db ' sec)'
db cr,lf,' Serial port characters received $'
cpinmsg db ' ├δ)'
db cr,lf,' ┤«╨╨┐┌╥╤╜╙╩╒╡─╫╓╖√╩² $'
poutmsg db cr,lf,' Serial port characters sent $'
cpoutmsg db cr,lf,' ┤«╨╨┐┌╥╤╖ó╦═╡─╫╓╖√╩² $'
finmsg db cr,lf,' File characters received $'
cfinmsg db cr,lf,' ╥╤╜╙╩╒╡─╬─╝■╫╓╖√╩² $'
foutmsg db cr,lf,' File characters sent $'
cfoutmsg db cr,lf,' ╥╤╖ó╦═╡─╬─╝■╫╓╖√╩² $'
pkimsg db cr,lf,' Packets received $'
cpkimsg db cr,lf,' ╥╤╜╙╩╒╡─╩²╛▌░ⁿ╩² $'
pkomsg db cr,lf,' Packets sent $'
cpkomsg db cr,lf,' ╥╤╖ó╦═╡─╩²╛▌░ⁿ╩² $'
nakimsg db cr,lf,' NAKs received $'
cnakimsg db cr,lf,' ╥╤╜╙╩╒╡─ NAK ░ⁿ╩² $'
nakomsg db cr,lf,' NAKs sent $'
cnakomsg db cr,lf,' ╥╤╖ó╦═╡─ NAK ░ⁿ╩² $'
baudmsg db cr,lf,' Effective baud rate $'
cbaudmsg db cr,lf,' ╙╨╨º▓¿╠╪┬╩ $'
sndmsg db 'Sent ',0
rcvmsg db 'Recv ',0
date db '00:00:00 00 Jan 1980',0
datelen equ $-date-1
atmsg db cr,lf,' at '
atlen equ $-atmsg
fasmsg db ' as '
faslen equ $-fasmsg
cfasmsg db '╫≈╬¬'
cfaslen equ $-cfasmsg ; not used, Jun 1990
fsucmsg db ', completed, bytes: ',0
cfsucmsg db ', ╜ß╩° , ╫╓╜┌╩² : ',0
fbadmsg db ', failed, bytes: ',0
cfbadmsg db ', ╩º░▄ , ╫╓╜┌╩² : ',0
fintmsg db ', interrupted, bytes: ',0
cfintmsg db ', ╓╨╢╧, ╫╓╜┌╩²: ',0
months db 'JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP'
DB 'OCT','NOV','DEC'
;cmonth db '╥╗╘┬','╢■╘┬','╚²╘┬','╦─╘┬','╬σ╘┬','┴∙╘┬','╞▀╘┬','░╦╘┬','╛┼╘┬'
; DB '╩«╘┬','╩«╥╗╘┬','╩«╢■╘┬'
tens dd 1,10,100,1000,10000,100000,1000000,10000000,100000000
dd 1000000000
tenslen equ ($-tens) / 4 ; number of double words in array tens
; end statistics data area
onek dw 1024
onehun dw 100
sixty dw 60
ten dw 10
denom dw 0
permsg db cr,' Percent transferred:$'
cpermsg db cr,' ┤½╦═░┘╖╓▒╚:$'
cxzhlp db '^X cancels file, ^Z cancels batch'
db ', ^E quits protocol'
db ', ^C quits'
db ', Return retries'
db '$'
ccxzhlp db ' ^X ╚í╧√╬─╝■, ^Z ╚í╧√┼·╬─╝■'
db ', ^E ═╦│÷╣µ│╠'
db ', ^C ═ú╓╣═¿╨┼'
db ', <╗╪│╡> ╓╪╖ó '
db '$'
erword db cr,lf,'Error $'
cerword db cr,lf,' │÷┤φ $'
rtword db cr,lf,'Retry $'
crtword db cr,lf,'╓╪╖ó $'
cxzser db cr,lf,'Type Control X to cancel file, Control Z to cancel batch,'
db cr,lf,' Control E to quit protocol, Control C to quit abruptly,'
db cr,lf,' or Return to retry',cr,lf,'$'
ccxzser db cr,lf,' ╝ⁿ╚δ Ctrl-X ╚í╧√╬─╝■ , Ctrl-Z ╚í╧√┼·╬─╝■ , '
db cr,lf,' Ctrl-E ═╦│÷╣µ│╠ , Ctrl-C ┴ó╝┤═ú╓╣═¿╨┼ , '
db cr,lf,' ╗≥ <╗╪│╡> ╓╪╖ó ',cr,lf,'$'
templp db 65 dup (?) ; temp for local path part
templf db 14 dup (?) ; temp for local filename part
temprp db 65 dup (?) ; temp for remote path part
temprf db 14 dup (?) ; temp for remote filename part
locfil db 65 dup (?) ; local filename for receive and get
rdbuf db 65 dup (?) ; temp work buffer
diskio filest <> ; ditto, for ordinary file transfers
buff db buffsz dup (?) ; Use as our Disk Transfer Area
filbuf equ this byte ; make filbuf and decbuf the same address
decbuf db maxpack+10 dup (?) ; For decoding incoming data (+guard)
unum dw ? ; unique filename generation number
havdot db ? ; dot-found status in verify
prepksz dw 0 ; previous packet size
toscreen db 'Screen',0 ; for transaction logging
ctoscreen db ' ╞┴─╗ ',0
datas ends