home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
22rsx
/
rxmd.ark
/
RXMD.MAC
next >
Wrap
Text File
|
1985-12-15
|
6KB
|
170 lines
title ;RXMD - CP/M File Transfer Program under BYERSX - 85/12/2
; developed from KMD08 by Irv. Hoff
;
aseg; Needed by M80 assemblers, ignore if using MAC
;
; NOTE: This version assembles with ASM, LASM, MAC, M80 or SLRMAC
; (ASM requires the include files be incorporated here)
;
; NOTE: Carrier loss recovery must reset write-protection modes
;
; Verbiage, revision info, credits, etc.
include rxmdhdr.mac
;
; Customization and definitions
;
; * * * * * * * * * * * * * * * * *
;
vers equ 0; 0 is debug only
modlev equ 0
fixlvl equ 9; 16 up debugs 0..9 fixlvl
;
; Define ASCII characters used
soh equ 01h; Start of header
stx equ 02h; Start of 1k header
eot equ 04h; end of transmission
ack equ 06h; acknowledge
bs equ 08h
lf equ 0ah
cr equ 0dh
nak equ 15h; Negative acknowledge
cancel equ 18h; CTL-X for cancel
crc equ 'C'; CRC request character
ksnd equ 'K'; 1k block request character
;
;
; ===================================================================
;
; Conditional equates - change to suit your system, then assemble
;
; ===================================================================
;
; Normal disk systems can transfer 16k from computer to disk in 2-3-4
; seconds and less. Some very slow 5-1/4" floppy systems (such as
; North Star) may take up to 20-30 seconds to transfer 16k. This would
; cause several timeouts at 10 seconds each. If you experience any
; timeouts, change BUFSIZ to somethng smaller, perhaps 8k or even 4k.
;
bufsiz equ 16; File transfer buffer size in Kbytes
;
; ===================================================================
;
; Some modems will either go onhook immediately after carrier loss or
; can be set to wait a bit. A good value with the Smartmodem is five
; seconds, since it catches all "call forwarding" breaks. Not all is
; lost after timeout in RXMD - BYE will still wait some more, but the
; chance of someone slipping in is less now.
;
timout equ 2; Seconds to abort after carrier loss
;
; ===================================================================
;
; Many main frames are not live to input immediately after a send. If
; this programs responds immediately the response will be lost and
; errors result. Allows a small delay for main from process awaken.
;
pausetm equ 0; up to 255 Millisecs pause at line turn-around
;
; ===================================================================
;
; When a transmission is complete, in RCPM mode, the remote station
; usually flushes buffers and closes files. If this program exits
; immediately the system prompt will be lost. Set the delay time
; to avoid this in most cases. Depends on remote, so not positive
;
waitime equ 40; * 0.1 secs wait at exit. 0 means 25.5 secs
;
; ===================================================================
;
;
; BDOS equates
;
wrcon equ 2; Output to console
print equ 9; Print string function
cpmver equ 12; CPM version running
seldsk equ 14; Select drive
open equ 15; 0FFH = not found
close equ 16; " "
srchf equ 17; " "
srchn equ 18; " "
delet equ 19; Delete file
read equ 20; 0=OK, 1=EOF
write equ 21; 0=OK, 1=ERR, 2=?, 0FFH=no dir. space
make equ 22; 0FFH=bad
curdrv equ 25; Get current drive
stdma equ 26; Set DMA
galloc equ 27; Disk allocation vector
curdpb equ 31; Current disk parameter blk
setusr equ 32; Set user area to receive file
rrdm equ 33; Read random
filsiz equ 35; Compute file size
getfre equ 46; Free space on disk, CPM 3 only
;
bdos equ 0005h; Address for BDOS jump vectors
tbuf equ 0080h; Default DMA address
fcb equ 005CH; System FCB
fcb1 equ 006CH; Secondary FCB area
fcbext equ fcb+12; File extent
fcbrno equ fcb+32; Record number
random equ fcb+33; Random record field
;
; BYERSX status byte bits
whlbit equ 080h; sysop status
dunochk equ 040h; no drv/usr restrictions
devices equ 020h; RDR, PUN, LST access
carcks equ 010h; carrier checks (off for hard-wired)
conoff equ 008h; terminal mode
remon equ 004h; remote terminal enabled
echol equ 002h; local terminal echoes
echon equ 001h; remote terminal echoes
;
; some BYERSX extended system calls
sgmaxdrv equ 69; set/get max drive allowed
sgmaxusr equ 70; set/get max user allowed
systate equ 84; system status
delayms equ 85; delay de millisec
sgbaud equ 86; set/get baud rate. 0 gets
rsxmast equ 87; master rsx call
swrtprt equ 91; set write protection on drives
;
; and subfunctions for rsxmast
resetsecure equ 4; reset secure mode (aborts)
setsecure equ 5; set secure mode (abort hangs up)
grdrv equ 14; get designated rcv drive
grusr equ 15; get designated rcv user area
gprdrv equ 16; get designated private rcv drive
gprusr equ 17; get designated private rcv user area
gpsdrv equ 18; get designated private send drive
gpsusr equ 19; get designated private send user area
gwrtprt equ 20; get current write protection
;
org 100h
jmp begin
;
; -------------------------------------------------------------------
;
; Following placed at start for easy patching.
pause db pausetm; Line turn around delay, millisec
waitm db waitime; Pause on exit for remote to flush
;
include rxmd01.mac
include rxmd02.mac
include rxmd03.mac
include rxmd04.mac
include rxmd05.mac
include rxmd06.mac
include rxmd07.mac
include rxmd08.mac
include rxmd09.mac
include rxmd10.mac
include rxmd11.mac
include rxmd12.mac
include rxmd13.mac
include rxmd14.mac
include rxmd15.mac
include rxmd16.mac
include rxmd17.mac
include rxmdata.mac
;
end
Σ¢