home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / pdp11 / k11gld.xrf < prev    next >
Text File  |  2020-01-01  |  23KB  |  727 lines

  1.  
  2. >>>>> DB1:K11COM.MAC[2,2] <<<<<
  3.  
  4. loacmd::mov    #cmdlst    ,r0
  5. loarem::mov    #remlst    ,r0
  6. loaset::mov    #setcmd    ,r0
  7.  
  8. >>>>> DB1:K11CON.MAC[2,2] <<<<<
  9.  
  10. doconn::tstb    ttname            ; insure that a device name is set
  11. dorsx::    return
  12.  
  13. >>>>> DB1:K11CPY.MAC[2,2] <<<<<
  14.  
  15. copy::    save    <r2,r3,r4>        ; save r2-r4 please
  16.  
  17. >>>>> DB1:K11DER.MAC[2,2] <<<<<
  18.  
  19. direrr::
  20. fcsdir::mov    r1    ,-(sp)        ; save R1
  21.  
  22. >>>>> DB1:K11DFH.MAC[2,2] <<<<<
  23.  
  24. defhlp::message
  25.  
  26. >>>>> DB1:K11ERR.MAC[2,2] <<<<<
  27.  
  28. rmserr::cmp    @2(r5)    ,#-624.
  29. rmserp::mov    r1    ,-(sp)        ;save fab addr
  30. rmserx::mov    #77-5    ,r1        ; maxlength of 77 (8) bytes
  31.  
  32. >>>>> DB1:K11ER1.MAC[2,2] <<<<<
  33.  
  34. rmser1::save    <r0,r1,r2>        ; be nice to our caller
  35.  
  36. >>>>> DB1:K11ER2.MAC[2,2] <<<<<
  37.  
  38. rmser2::save    <r0,r1,r2>        ; be nice to our caller
  39.  
  40. >>>>> DB1:K11ER3.MAC[2,2] <<<<<
  41.  
  42. rmser3::save    <r0,r1,r2>        ; be nice to our caller
  43.  
  44. >>>>> DB1:K11E80.MAC[2,2] <<<<<
  45.  
  46. xinit::    calls    l$fss    ,<#200$>    ; open terminal on LUN.AS
  47. ttyini::call    getprv            ; will need for binary open
  48. ttyfin::calls    clrdlm    ,<2(r5)>    ; clear private delimiters
  49. gttnam::save    <r0,r1,r2>        ; may as well save it
  50. setdlm::mov    #xrb    ,r0        ; setup to set a private delim
  51. clrdlm::
  52. ttrini::mov    #xrb    ,r0        ; setup to set a private delim
  53. ttrfin::calls    clrdlm    ,<#lun.tt>
  54. noecho::save    <r1>            ; save a temp register
  55. echo::    save    <r1>            ; save a temp register
  56. write::    mov    #xrb    ,r0        ; address of xrb parameter block
  57. read::    mov    #xrb    ,r0        ; address of xrb parameter block
  58. kbread::calls    read    ,<@r5,#80.,#0,#0> ; do the actual read now
  59. xbinre::
  60. binrea::mov    #xrb    ,r0        ; address of xrb parameter block
  61. chkabo::calls    binrea    ,<#5,#-1>    ; simple read on console terminal
  62. binwri::mov    #xrb    ,r0        ; address of xrb parameter block
  63. l$fss::    clrfqb
  64. l$fssx::mov    @r5    ,r0        ; get the filename address
  65. l$ttyo::save    <r0,r1>            ; save temps here please
  66. sttyou::mov    r5    ,-(sp)
  67. l$pcrl::.print    #100$
  68. $clrxr::save    <r0>
  69. $clrfq::save    <r0>
  70. exit::    clrxrb                ; ensure xrb is clear first
  71. logout::clrfqb                ; ensure firqb is cleared out
  72. quochk::clrfqb                ; try to see if the logout will work
  73. dskuse::save    <r0,r1>
  74. cantyp::save    <r1,r2>            ; use r0 to point into xrb
  75. getuic::mov    #xrb    ,r0        ; clear xrb out first
  76. drpprv::mov    #jfsys    ,xrb+0        ; drop temp privs
  77. getprv::mov    #jfsys    ,xrb+0        ; get temp privs back please
  78. suspen::mov    @r5    ,xrb+0
  79. fcserr::
  80. fiperr::save    <r0,r1,r2>
  81. syserp::save    <r0>
  82. syserr::save    <r1>            ; save a register
  83. ttypar::call    ttpars            ; get the terminal unit number
  84. chkpar::clr    r0
  85. ttyhan::call    ttpars            ; the usual, parse the device name
  86. ttydtr::call    ttpars            ; the usual, parse the device name
  87. ttspee::save    <r1>
  88. setspd::save    <r1,r2>
  89. ttysav::save    <r1,r2>            ; save registers please
  90. ttyrst::save    <r1,r2>            ; save registers please
  91. ttyset::save    <r1>
  92. ttpars::save    <r1>
  93. assdev::call    ttpars
  94. namcvt::save    <r1,r2>
  95. ascdat::save    <r0,r1>
  96. asctim::save    <r0,r1>
  97. dodir::    save    <r1,r2,r3,r4>
  98. ttxon::    save    <r1>            ; save a temp register
  99. sp.dev::.word    0
  100. sp.mod::.word    0            ; use 4!40 for delete and noheader
  101. qspool::save    <r1>
  102. detach::clrfqb                ; insure no defaults
  103. setcc::    mov    #ttast    ,@#24
  104. setsla::clr    r0
  105. fu$def::.word    177777            ; do we need a defdir for RMS11v2
  106.  
  107. >>>>> DB1:K11HLP.MAC[2,2] <<<<<
  108.  
  109. c$help::call    hlpopn            ; open the help file up?
  110. hnames::.word    10$,20$,30$,40$,0
  111.  
  112. >>>>> DB1:K11LCL.MAC[2,2] <<<<<
  113.  
  114. okuser::mov    2(sp)    ,r0
  115. ...uic::.word    0            ; no checks on group number
  116. ..$bye::.ascii    <000>/BYE/        ; BYE         
  117. ..$com::.ascii    <000>/COM/        ; COMMENT     
  118. ..$con::.ascii    <000>/CON/        ; CONNECT     
  119. ..$cop::.ascii    <000>/COP/        ; COPY        
  120. ..$del::.ascii    <000>/DEL/        ; DELETE      
  121. ..$dir::.ascii    <000>/DIR/        ; DIRECT      
  122. ..$dis::.ascii    <000>/DIS/        ; DISCONNECT  
  123. ..$era::.ascii    <000>/ERA/        ; ERASE       
  124. ..$exi::.ascii    <000>/EXI/        ; EXIT        
  125. ..$fin::.ascii    <000>/FIN/        ; FINISH      
  126. ..$get::.ascii    <000>/GET/        ; GET         
  127. ..$han::.ascii    <000>/HAN/        ; HANGUP      
  128. ..$hel::.ascii    <000>/HEL/        ; HELP        
  129. ..$loc::.ascii    <000>/LOC/        ; LOCAL       
  130. ..$log::.ascii    <000>/LOG/        ; LOGOUT      
  131. ..$not::.ascii    <000>/NOT/        ; NOTE        
  132. ..$qui::.ascii    <000>/QUI/        ; QUIT        
  133. ..$rec::.ascii    <000>/REC/        ; RECEIVE     
  134. ..$rem::.ascii    <000>/REM/        ; REMOTE      
  135. ..$ren::.ascii    <000>/REN/        ; RENAME      
  136. ..$sen::.ascii    <000>/SEN/        ; SEND        
  137. ..$ser::.ascii    <000>/SER/        ; SERVER      
  138. ..$set::.ascii    <000>/SET/        ; SET         
  139. ..$sho::.ascii    <000>/SHO/        ; SHOW        
  140. ..$spa::.ascii    <000>/SPA/        ; SPACE       
  141. ..$sys::.ascii    <000>/SYS/        ; SYSTEM      
  142. ..$tak::.ascii    <000>/TAK/        ; TAKE        
  143. ..$tra::.ascii    <000>/TRA/        ; TRANSMIT    
  144. ..$typ::.ascii    <000>/TYP/        ; TYPE        
  145. ..$who::.ascii    <000>/WHO/        ; WHO         
  146. slowgr::.word    2            ; cutoff for group numbers
  147. slowdo::.word    0            ; if <> 0, then slow xfers down
  148. slowbd::.word    1200.
  149. throtl::save    <r0,r1>
  150.  
  151. >>>>> DB1:K11M41.MAC[2,2] <<<<<
  152.  
  153. fu$def::.word    0            ; if rms needs the DNA filled in
  154. xinit::    call    getsys                    ; rsx or m+
  155. xk$dev::.asciz    /XK0:/
  156. xk$spd::.word    9600.
  157. setcc::    qiow$s    #io.det,#lun.tt,#ef.tt,,#kbiost
  158. ttyini::save    <r1>
  159. ttyfin::                    ; no more abort handling
  160. ttrini::
  161. ttrfin::
  162. ttysav::
  163. ttyset::
  164. ttyrst::
  165. noecho::
  166. echo::
  167. gttnam::save    <r1,r2,r3>        ; save temps please
  168. kbread::
  169. binrea::tstb    handch            ; doing ibm style xon handshaking  BDN
  170. binwri::
  171. xbinre::save    <r2,r3>            ; save a register for a friend
  172. chkabo::calls    xbinrea    ,<#lun.tt,#-1>    ; simple read on console terminal
  173. l$ttyo::
  174. sttyou::
  175. l$pcrl::
  176. logout::
  177. exit::
  178. quochk::
  179. dskuse::
  180. cantyp::
  181. ttxon::    save    <r1>            ; use r0 to point into xrb
  182. getuic::
  183. drpprv::
  184. getprv::
  185. suspen::
  186. ttypar::
  187. chkpar::clr    r0
  188. ttyhan::save    <r1>
  189. ttydtr::
  190. ttspee::
  191. setspd::save    <r1,r2,r3,r4>
  192. setsla::save    <r1>            ; save temps we may want
  193. ttpars::                ; NEEDS TO BE GLOBAL(RBD)
  194. assdev::tst    proflg
  195. namcvt::
  196. ascdat::save
  197. asctim::save
  198. sercmd::
  199. systat::
  200. dodir::
  201. runjob::
  202. runmcr::
  203. rsxsys::
  204. qspool::movb    #1    ,r0
  205. ;rsxspl::mov    r0    ,-(sp)        ; save temps
  206. detach::qiow$s    #io.det,#5,#ef.tt,,#kbiost
  207. syserp::
  208. syserr::
  209.  
  210. >>>>> DB1:K11PK .MAC[2,2] <<<<<
  211.  
  212. runjob::mov    r5    ,-(sp)        ; convert f4/bp2 call format
  213. $runjo::clr    -(sp)
  214. $pklog::
  215.  
  216. >>>>> DB1:K11RMS.MAC[2,2] <<<<<
  217.  
  218. sydisk::.ascii    /SY:/
  219. fablst::.word    0    ,fab1    ,fab2    ,fab3    ,fab4
  220. namlst::.word    0    ,nam1    ,nam2    ,nam3    ,nam4
  221. namlen::.word    0    ,0    ,0    ,0    ,0
  222. rablst::.word    0    ,rab1    ,rab2    ,rab3    ,rab4
  223. df$rat::.word    fb$cr
  224. df$rfm::.word    fb$var
  225. open::    calls    fopen    ,<@r5,2(r5),4(r5),#0>
  226. create::calls    fcreate    ,<@r5,2(r5),4(r5),#0>
  227. fopen::    save    <r1,r2,r3>        ; save registers
  228. fcreat::save    <r1,r2,r3>        ; save registers
  229. settyp::mov    fablst(r0),r1
  230. close::    save    <r1,r2,r3>        ; save registers we may have
  231. rewind::mov    @r5    ,r0
  232. binfil::save    <r1,r2,r3,r4>        ; save registers we may use
  233. getsiz::mov    @r5    ,r1        ; return error in r0, size in r1
  234. getatr::save    <r1,r2>            ; save these please
  235. putatr::save    <r1,r2>            ; save these please
  236. getrec::mov    2(r5)    ,r0        ; get the channel number
  237. putrec::mov    r1    ,-(sp)
  238. getc::    mov    @r5    ,r0
  239. getcr0::save    <r2,r3>            ; save temps
  240. putc::    save    <r1>            ; simply save r1 and call putcr0
  241. putcr0::save    <r1,r2,r3,r4>        ; save registers we use
  242. fu$dir::.word    0            ; style wildcarding on your non-standard
  243. lookup::save    <r1,r2,r3,r4,r5>
  244. RNFAB1::FAB$B                ; Old file name
  245. RNNAM1::NAM$B                ; NAM definition
  246. RNFAB2::FAB$B                ; New file name
  247. RNNAM2::NAM$B                ; NAM definition
  248. rename::save    <r2,r3,r4,r5>        ; save temps please
  249. delete::save    <r2,r3,r4>        ; save registers we may overwrite
  250. fparse::save    <r1,r2>            ; save registers we may overwrite
  251. tsksiz::sub    #40    ,sp        ; use the stack for a buffer
  252. getsys::sub    #40    ,sp        ; use the stack for a buffer
  253. GSABAS::            ; GSA base address
  254. GSAMIN::            ; Minimum allocation
  255. GSAREQ::            ; Size of this request
  256. GSA::
  257. getmcr::save    <r1,r2>            ; just for kicks, save these
  258.  
  259. >>>>> DB1:K11RTC.MAC[2,2] <<<<<
  260.  
  261. doconn::tstb    ttname            ; insure that a device name is set
  262. dorsx::    return
  263.  
  264. >>>>> DB1:K11SER.MAC[2,2] <<<<<
  265.  
  266. server::mov    remote    ,-(sp)        ; save the local/remote flag
  267. remfin::clr    paknum            ; packetnumber := 0
  268. rembye::clr    paknum            ; packetnumber := 0
  269. remget::call    seropn            ; get the link line intialzied
  270. remhos::call    seropn            ; get the link line intialzied
  271. remspa::calls    doremo    ,<#'U,#1,#null>
  272. remdir::calls    doremo    ,<#'D,#1,@r5>
  273. remtyp::calls    doremo    ,<#'T,#1,@r5>
  274. remwho::calls    doremo    ,<#'W,#1,#null>
  275. remera::calls    doremo    ,<#'E,#1,@r5>
  276. remhlp::calls    doremo    ,<#'H,#1,#null>
  277. remren::calls    doremo    ,<#'R,#2,@r5,2(r5)>
  278. remcop::calls    doremo    ,<#'K,#2,@r5,2(r5)>
  279.  
  280. >>>>> DB1:K11SHO.MAC[2,2] <<<<<
  281.  
  282. c$show::$name    <SHO>
  283. sho$dy::calls    ascdat    ,<#errtxt,#0>
  284. sho$ve::message    <Kermit-11 >
  285. sho$es::mov    conesc    ,r1
  286. c$copy::$name    <COP>
  287. c$rena::$name    <REN>
  288. c$del::    $name    <DEL>
  289. c$type::$name    <TYP>
  290. c$prin::calls    qspool    ,<#argbuf,#lun.in>
  291.  
  292. >>>>> DB1:K1180S.MAC[2,2] <<<<<
  293.  
  294. systat::br    5$            ; skip the error exit
  295. sercmd::clr    pkbufs            ; insure no data is left in buffer
  296.  
  297. >>>>> DB1:K11DEB.MAC[2,2] <<<<<
  298.  
  299. texadr::
  300. c$disp::mov    #argbuf    ,r0        ; locate the symbol in directory
  301.  
  302. >>>>> DB1:K11INI.MAC[2,2] <<<<<
  303.  
  304. kerini::call    init0
  305. spar::    save    <r0,r1,r2>        ; save registers we may use
  306. fixchk::tstb    setsen+p.chkt        ; did the user ever set block-check?
  307. sparin::save    <r1>            ; save registers we may use
  308. rpar::    save    <r0,r1,r2>        ; save registers we may use
  309. rparin::save    <r1>            ; save registers we may use
  310. fillog::save    <r0,r1>
  311. dskdmp::save    <r0,r1,r2,r5>
  312. senhdr::mov    #-1    ,pcnt.n
  313. rechdr::mov    #-1    ,pcnt.n
  314. reclog::save    <r1>
  315. senlog::save    <r1>
  316.  
  317. >>>>> DB1:K11ATR.MAC[2,2] <<<<<
  318.  
  319. w$attr::save    <r2,r3,r4>        ; save registers that we may use here
  320. r$attr::save    <r1,r2,r3,r4,r5>    ; just to be safe
  321. ispdp::    clr    r0            ; presume failure
  322. clratr::clr    at$len    
  323. atrfin::save    <r1,r2,r3>        ; just in case please
  324.  
  325. >>>>> DB1:K11TRA.MAC[2,2] <<<<<
  326.  
  327. transf::clr    r2            ; input_open := false
  328.  
  329. >>>>> DB1:K11ST0.MAC[2,2] <<<<<
  330.  
  331. set$li::copyz    #argbuf    ,#ttname,#20    ; copy the device name please
  332. set$sp::calls    l$val    ,<#argbuf>    ; get the speed into decimal
  333. set$de::calls    getcm0    ,<#argbuf,#dbglst>; find out which option was given
  334. sd$off::bic    #log$al    ,trace        ; clear all debug bits now
  335. set$pa::calls    getcm0    ,<#argbuf,#parlst>; find out which option was given
  336. set$ha::call    ttchk            ; insure a line is set
  337. set$lc::mov    #lcelst    ,r5
  338. set$du::mov    #duplst    ,r5
  339. set$ib::calls    getcm0    ,<#argbuf,#ibmlst>; find out which option was given
  340.  
  341. >>>>> DB1:K11RTD.MAC[2,2] <<<<<
  342.  
  343. lookup::save    <r1,r2,r3>        ; save all the temps please
  344. dodir::    save    <r1,r2,r3,r5>        ; save these please
  345.  
  346. >>>>> DB1:K11RTU.MAC[2,2] <<<<<
  347.  
  348. rename::save    <r2,r3,r4>        ; save these please
  349. delete::save    <r2,r3,r4>        ; save these please
  350. copy::    save    <r2,r3>            ; save temp registers please
  351. ascdat::save    <r0,r1,r2,r3>        ; save these please
  352. asctim::save    <r0,r1,r2,r3>        ; save all registers that we use
  353. $ddiv::
  354.  
  355. >>>>> DB1:K11ST1.MAC[2,2] <<<<<
  356.  
  357. set$bl::calls    getcm0    ,<#argbuf,#blklst>; find out which option was given
  358. set$dt::call    ttchk            ; must have already done a SET LINE
  359. c$disc::
  360. c$hang::$name    <HAN>
  361. set$hu::call    ttchk            ; must have already done a SET LINE
  362. set$fi::calls    getcm0    ,<#argbuf,#setfil>
  363. set$df::copyz    #argbuf    ,#defdir,#filsiz; setup a default directory
  364. set$ho::clrb    defdir
  365. set$lo::call    sd$off            ; insure previous file is closed
  366. set$eo::calls    octval    ,<#argbuf>    ; get the octal value now
  367. set$pl::calls    l$val    ,<#argbuf>    ; set the arguement now
  368. set$ps::calls    l$val    ,<#argbuf>    ; get the value
  369. set$dl::calls    l$val    ,<#argbuf>    ; get the value
  370. set$es::calls    octval    ,<#argbuf>    ; get the octal value now
  371. set$re::calls    l$val    ,<#argbuf>    ; SET RETRY decimal number
  372. set$ti::calls    l$val    ,<#argbuf>    ; SET TIMEOUT decimal number
  373. set$rf::calls    getcm0    ,<#argbuf,#rfmlst>; find out which option was given
  374. set$at::calls    getcm0    ,<#argbuf,#attlst>; find out which option was given
  375. set$pr::copyz    #argbuf    ,#prompt,#20.
  376. set$se::calls    l$val    ,<#argbuf>    ; SET SEED decimal number
  377. set$ra::calls    getcm0    ,<#argbuf,#ranlst>; find out which option was given
  378. set$cf::calls    getcm0    ,<#argbuf,#cflst>; find out which option was given
  379. set$tt::calls    getcm0    ,<#argbuf,#ttlst>; find out which option was given
  380.  
  381. >>>>> DB1:K11DAT.MAC[2,2] <<<<<
  382.  
  383. prompt::.blkb    40
  384. kbiost::.blkw    2            ; for RSXM/M+ terminal io status
  385. notatt::.blkw    1            ; if <>, server is running detached
  386. vttype::.blkw    1            ; the vttypeal type
  387. proflg::.blkw    1            ; if a pro/350 (?)
  388. logini::.blkw    1
  389. consts::.blkw    2            ; for the connect command for RSX
  390. tists::    .blkw    2            ; for the connect command for RSX
  391. mcrcmd::.blkw    1            ; if <>, then we got a mcr/ccl cmd line
  392. binmod::.blkw    1            ; for RSTS, something is open mode 1
  393. sy.ini::.blkw    1            ; for KERMIT.INI stuff
  394. handch::.blkw    1            ; for ibm systems ?
  395. duplex::.blkw    1            ; if eq, full (default), else half
  396. sparsz::.blkw    1            ; size of our sinit packet
  397. chksiz::.blkw    1            ; current checksum size in bytes
  398. chktyp::.blkw    1            ; the current checksum type
  399. maxtry::.blkw    1            ; maximum number of retries
  400. conesc::.blkw    1            ; escape character for connection
  401. sertim::.blkw    1            ; timeout waiting for server cmd
  402. inserv::.blkw    1            ; currently we are a server
  403. ranerr::.blkw    1            ; generate random checksum errors if ne
  404. seed::
  405. testc::    .blkw    1            ; for debugging
  406. skipfl::.blkw    1            ; should we send a EOF DISCARD packet
  407. parity::.blkw    1            ; save parity setting for SHOW command
  408. logfil::.blkb    40            ; a log filename for the  SHOW command
  409. cccnt::    .blkw    1            ; number of control C's so far
  410. doauto::.blkw    1            ; if <>, then do auto binary (default)
  411. sendat::.blkw    1            ; if zero, NEVER send attribute packets
  412. sendly::.blkw    1            ; wait before sending SINIT
  413. pauset::.blkw    1            ; wait before sending a packet
  414. oldpau::.blkw    1            ; save the old time for pausing
  415. defdir::.blkb    filsiz+2        ; default directory for send and rec
  416. ttcnpa::
  417. ttparm::.blkb    50            ; saved terminal settings
  418. ttnapa::.blkb    50
  419. outlun::.blkw    1            ; zero for TI else lun.ou
  420. cmdlun::.blkw    1            ; current command file lun
  421. cmdadr::.blkw    1            ; saved address of command routine
  422. cmdnum::.blkw    1            ; index into the current command list
  423. hlpbuf::
  424. cmdbuf::.blkb    120            ; 80 byte buffer for reading commands
  425. argbuf::.blkb    120            ; also for reading args for commands
  426. hlptop::
  427. srcnam::.blkb    filsiz+2        ; original send filespec
  428. filnam::.blkb    filsiz+2        ; output from directory lookup routine
  429. index::    .word    0            ; index into directory
  430. recpkt::.blkb    210            ; 128 byte buffer receive packet buffer
  431. packet::.blkb    210            ; a general packet
  432. ttname::.blkb    20            ; our current terminal link name
  433. ttdial::.blkb    20            ; save the remote name here
  434. ttcons::.blkb    20            ; our console name for virtual tty
  435. consav::.blkb    20
  436. trace::    .blkw    1            ; for file and packet logging
  437. debug::    .blkw    1            ; console debugging
  438. sermod::.blkw    1            ; if we are currently a server
  439. reccnt::.blkw    1            ; total received count
  440. sencnt::.blkw    1            ; total sent count
  441. totp.r::.blkw    34            ; total rec  by packet type
  442. totp.s::.blkw    34            ; total sent by packet type
  443. pcnt.r::.blkw    34            ; packet count by type for RPACK
  444. pcnt.s::.blkw    34            ; packet count by type for SPACK
  445. pcnt.n::.blkw    1
  446. atrctx::.blkw    1            ; context for attribute packets
  447. senpar::.blkb    20            ; remotes connection parameters
  448. conpar::
  449. recpar::.blkb    20            ; our connection parameters
  450. setsen::.blkb    20            ; we may override the default
  451. setrec::.blkb    20            ; save for receive parameters
  452. image::    .blkw    1            ; if in image mode
  453. $image::.blkw    1            ; save image flag for autobyte
  454. numtry::.blkw    1            ; number of retrys
  455. oldtry::.blkw    1            ; old value of numtry
  456. paknum::.blkw    1            ; current packet number mod 64
  457. remote::.blkw    1            ; if <> then we are remote
  458. state::    .blkw    1            ; current state
  459. linkst::.blkw    1            ; if <> then a link is active
  460. outopn::.blkw    1            ; did recsw ever create anything
  461. inopn::    .blkw    1            ; did sendsw ever open  anything
  462. size::    .blkw    1            ; size of last call to bufferfill
  463. xgottn::.blkw    1            ; got an xpacket in server
  464. xmode::    .blkw    1            ; if <> then doing text output to ti:
  465. do8bit::.blkw    1            ; if <> then doing 8 bit prefixing
  466. snd8bi::.blkw    1
  467. set8bi::.blkw    1            ; if <> then set bit seven on character
  468. ebquot::.blkw    1            ; if doing 8 bit prefixing, this is it
  469. errtxt::.blkb    102            ; a buffer for SYSERR(errnum,buffer)
  470. rtwork::.blkw    10            ; for RT11 exec calls
  471. conflo::.blkw    1            ; for RT11 connect flow control
  472. rtque::    .blkw    12*12            ; allocate extra que elements for RT11
  473. at$len::.blkw    1
  474. at$typ::.blkw    1
  475. at$cre::.blkw    1
  476. at$id::    .blkw    1
  477. at$bil::.blkw    1
  478. at$are::.blkw    1
  479. at$pas::.blkw    1
  480. at$bsi::.blkw    1
  481. at$acc::.blkw    1
  482. at$enc::.blkw    1
  483. at$dis::.blkw    1
  484. at$pr0::.blkw    1
  485. at$pr1::.blkw    1
  486. at$sys::.blkw    2
  487. at$for::.blkw    1
  488. at$fab::.blkw    15
  489. at$val::.blkw    1
  490. stklim::.blkw    600
  491. stack::
  492.  
  493. >>>>> DB1:K11CM1.MAC[2,2] <<<<<
  494.  
  495. c$set::    $name    <SET>
  496. c$conn::$name    <CON>
  497. c$dir::    $name    <DIR>
  498. c$who::    calls    systat    ,<#0>
  499. c$tran::calls    transf    ,<#argbuf,#0>
  500. c$take::$name    <TAKE>
  501. c$sys::    $name    <SYS>
  502. c$spac::$name    <SPA>
  503.  
  504. >>>>> DB1:K11RTE.MAC[2,2] <<<<<
  505.  
  506. syserr::calls    rmserr    ,<#2,r5,2(r5)>    ; simple
  507. rmserr::save    <r0,r1>            ; the registers we will use
  508.  
  509. >>>>> DB1:K11SUB.MAC[2,2] <<<<<
  510.  
  511. edit$::
  512. cvt$$::    save    <r1,r2,r3,r4,r5>    ; the scratch registers to use.
  513. l$len::    mov    r0    ,-(sp)        ; save it for later.
  514. l$wrdec::
  515. l$cvti::save    <r5>            ; call common conversion sub.
  516. l$cvtnum::
  517. locmout::
  518. mout::    save    <r0>
  519. instr::
  520. rdtoa::
  521. l$val::    save    <r2,r3>
  522. octval::save    <r2,r3>            ; save temps please
  523. l$otoa::save    <r0,r1,r2,r3>        ; save the scratch regs.
  524. l$wroc::save    <r0>
  525. copyz$::save    <r0,r1>            ; save registers we may use
  526. dump$b::save    <r0,r1,r2>        ; save all please
  527.  
  528. >>>>> DB1:K11PAK.MAC[2,2] <<<<<
  529.  
  530. spack$::save    <r1,r2,r3,r4>        ; save registers that we may use
  531. spakin::bit    #log$pa    ,trace        ; tracing today ?
  532. rpack$::save    <r1,r2,r3,r4>
  533. clrpar::tstb    parity            ; handle nothing please (no parity)
  534. checks::save    <r0,r1,r2,r3>        ; save registers we may use
  535. crcclc::save    <r1,r2,r3,r4,r5>    ; save registers please
  536. clrsta::save    <r0,r1,r2>        ; save the registers we use
  537. buffil::save    <r2,r3,r4>        ; save all registers we may use
  538. bufpak::save    <r2,r3,r4,r5>        ; save all registers we may use
  539. bufemp::save    <r1,r2,r3>        ; save temps as usual
  540. bufunp::save    <r2,r3,r4>        ; save temps as usual
  541. printm::save    <r0,r1,r5>        ; save registers we will use
  542. error::    save    <r1,r2,r3,r4,r5>
  543. prerrp::.print    #200$
  544. m$type::save    <r0>            ; save temps that we will use
  545. m$retr::save    <r0>            ; save r0 please
  546. m$sync::save    <r0>            ; save r0 please
  547. getnxt::save    <r1>
  548. l$xor::    save    <r0>
  549. scanch::save    <r2>            ; save temps
  550. irand::    tst    testc
  551. dopari::save    <r0,r1,r2,r3>        ; save things we will use
  552.  
  553. >>>>> DB1:K11RT4.MAC[2,2] <<<<<
  554.  
  555. df$rfm::.word    0
  556. df$rat::.word    0
  557. freept::.word    0            ; for the next .fetch
  558. cloerr::.word    er$sy1    ,er$sy1    ,er$sys    ,er$prv
  559. csierr::.word    er$fnm    ,er$dev    ,er$sy2
  560. dsterr::.word    er$dev
  561. enterr::.word    er$lby    ,er$ful    ,er$sy3    ,er$prv    ,er$sy3
  562. feterr::.word    er$dev    ,er$sy4
  563. lokerr::.word    er$lby    ,er$fnf    ,er$sys
  564. reaerr::.word    er$eof    ,er$rer    ,er$nop    ,er$sys
  565. wrierr::.word    er$eof    ,er$wer    ,er$nop    ,er$sys
  566. twaerr::.word    er$que
  567. mrkerr::.word    er$que
  568. renerr::.word    er$lby    ,er$fnf    ,er$iop    ,er$prv
  569. xcierr::.word    er$lby    ,er$xco
  570. xcspfu::.word    er$fun    ,er$hrd    ,er$nop    ,er$sys
  571. mterr::    .word    er$nin    ,er$nat    ,er$lun    ,er$iop    ,er$bsy    ,er$buf    ,er$sys
  572. xinit::    .gval    #rtwork,#CONFIG        ; check for what we are running on
  573. nosj::    .asciz    /Kermit-11 may not run correctly on a SJ monitor./<cr><lf>
  574. fopen::
  575. open::    save    <r1,r2,r3>        ; save all the temps please
  576. en$siz::.word    0            ; 1/2 largest free or 2nd largeset
  577. fcreat::
  578. create::save    <r1,r2,r3,r4>        ; save all the temps please
  579. getsiz::mov    @r5    ,r1        ; get opened filesize
  580. close::    save    <r1>            ; save registers we may have
  581. rewind::mov    @r5    ,r0        ; get the channel number
  582. getrec::save    <r2,r3,r4>        ; save registers we may need
  583. putrec::save    <r1,r2,r3>        ; save registers we may need
  584. getc::    mov    @r5    ,r0
  585. getcr0::save    <r3>            ; use for saving the channel#
  586. putc::    save    <r1>            ; simply save r1 and call putcr0
  587. putcr0::save    <r1,r2,r3,r4>        ; save registers we use
  588. fparse::save    <r1>
  589. l$ttyo::save    <r0,r1,r2,r3>        ; save registers we may need
  590. sttyou::mov    r5    ,-(sp)
  591. l$pcrl::print    #100$
  592. getsys::mov    #7    ,r0        ; this is rt11 folks
  593. exit::    .exit                ; should always work ok
  594. suspen::save    <r1>            ; save temps
  595. setcc::
  596. getuic::
  597. logout::
  598. quochk::
  599. qspool::
  600. noecho::
  601. echo::
  602. runjob::clr    r0
  603. getprv::
  604. drpprv::
  605. throtl::return
  606. getatr::mov    #er$iop    ,r0
  607. putatr::clr    r0
  608. binfil::clr    r0
  609. chkpar::clr    r0
  610. systat::
  611. sercmd::mov    #er$iop    ,r0
  612. okuser::mov    (sp)+    ,@sp
  613. dskuse::mov    @r5    ,r0
  614. getmcr::mov    @r5    ,r0
  615. detach::mov    #er$iop    ,r0
  616. fetch::    .dstat    #rtwork,r5
  617. $mul::    mov    r0    ,-(sp)
  618. $div::    mov    r0    ,-(sp)
  619. $ash::    tst    2(sp)            ; left shift or rigth shift?
  620.  
  621. >>>>> DB1:K11PRT.MAC[2,2] <<<<<
  622.  
  623. ttysav::
  624. ttyrst::
  625. deadev::
  626. assdev::
  627. ttyini::save    <r1,r2>            ; always save temps please
  628. ttyfin::save    <r1>            ; save temps please
  629. contrp::clr    ttctlc
  630. conrst::.scca    #rtwork    ,#0
  631. xbinre::
  632. binrea::save    <r2,r3,r4>        ; we may want to use these here
  633. binwri::save    <r1,r2,r3,r4>
  634. cantyp::save    <r1,r2>            ; save temps
  635. ttxon::    call    clrxc            ; get the driver to clear xoff status
  636. ttpars::clr    r0            ; always unit zero for PRO/RT
  637. gttnam::mov    @r5    ,r0        ; for PRO/RT, always return TT:
  638. setspd::mov    #377    ,r0
  639. chkabo::bis    #40000!10000!100,@#JSW    ; enable special input modes
  640. ttspee::
  641. ttyset::
  642. ttrfin::
  643. ttrini::clr    r0
  644. ttydtr::
  645. ttyhan::mov    #er$iop    ,r0
  646. kbread::mov    r2    ,-(sp)
  647.  
  648. >>>>> DB1:K11CVT.MAC[2,2] <<<<<
  649.  
  650. namcvt::save    <r1,r2,r3,r4>        ; save these in case we use them
  651. chkext::save    <r1,r2,r3,r4>        ; save scratch registers we will use
  652.  
  653. >>>>> DB1:K11CMD.MAC[2,2] <<<<<
  654.  
  655. kermit::calls    setcc    ,<#cctrap>    ; enable control C trapping ?
  656. c$rec::    $name    <REC>
  657. c$send::$name    <SEN>
  658. c$serv::$name    <SER>            ; allow patching this out (why??)
  659. opentt::tst    linksts            ; already open ?
  660. clostt::save    <r0>
  661. c$exit::call    sd$off
  662. c$nop::    return                ; a NO-OP command ???
  663. rm$bye::
  664. c$bye::    $name    <BYE>
  665. rm$fin::
  666. c$fin::    $name    <FIN>
  667. rm$get::
  668. c$get::    $name    <GET>
  669. rm$spa::$name    <SPA>
  670. rm$hlp::$name    <HEL>
  671. rm$hos::$name    <HOS>
  672. rm$dir::$name    <DIR>
  673. rm$typ::$name    <TYP>
  674. rm$who::$name    <WHO>
  675. rm$del::$name    <DEL>
  676. rm$ren::$name    <REN>            ; do a remote rename please
  677. rm$cop::$name    <COP>            ; do a remote Kopy please
  678. tkecho::.word    -1            ; if <> then echo the take file
  679. c$loc::    $name    <LOC>
  680. c$rem::    $name    <REM>
  681. c$test::return
  682. getcmd::clrb    argbuf
  683. getcm0::save    <r2,r3,r4>
  684. cctrap::cmp    cccnt    ,#cc$max
  685. direr$::mov    r0    ,-(sp)        ; direrr will select whether or not
  686. gettwo::save    <r1,r2>            ; save temps please
  687.  
  688. >>>>> DB1:K11SEN.MAC[2,2] <<<<<
  689.  
  690. sen.sw::
  691. sendsw::movb    @r5    ,state        ; do a SINIT first thing please
  692. sinfo::    save                ; save ALL registers please
  693. sinit::    movb    #'S&137    ,-(sp)        ; normal sinit operation for sending
  694.  
  695. >>>>> DB1:K11REC.MAC[2,2] <<<<<
  696.  
  697. recsw::    clr    paknum            ; packet_number := 0
  698. rec.sw::movb    @r5    ,state        ; assume RECEIVE-INIT for starters
  699.  
  700. >>>>> DB1:K11RTT.MAC[2,2] <<<<<
  701.  
  702. assdev::save    <r1>            ; we may want to use these
  703. ttyini::save    <r1,r2>            ; we will need this one
  704. contrp::.scca    #rtwork    ,#ttctlc
  705. conrst::.scca    #rtwork    ,#0
  706. ttysav::save    <r1>            ; we will use this one
  707. ttyrst::save    <r1,r2>            ; we will use this one
  708. xbinre::
  709. binrea::save    <r2,r3,r4>        ; we may want to use these here
  710. binwri::save    <r1,r2,r3,r4,r5>    ; save registers we may need
  711. ttpars::mov    r1    ,-(sp)        ; save scratch register please
  712. gttnam::save    <r1,r2,r3>        ; save registers please
  713. ttyfin::call    ttpars            ; finish up mt service
  714. setspd::save    <r1,r2,r3>        ; save temps that we will use
  715. ttspee::save    <r1,r2,r3>        ; save these please
  716. spdlst::.word    50.    ,75.    ,110.    ,134.    ,150.    ,300.    ,600.
  717. spdmap::.word    0    ,400    ,1000    ,1400    ,2000    ,2400    ,3000
  718. ttxon::
  719. cantyp::
  720. ttyset::
  721. ttydtr::
  722. ttrfin::
  723. ttrini::clr    r0
  724. ttyhan::mov    #er$iop    ,r0
  725. kbread::mov    r2    ,-(sp)
  726. chkabo::bis    #40000!10000!100,@#JSW    ; enable special input modes
  727.