home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / b / krtdsp.min < prev    next >
Text File  |  2020-01-01  |  2KB  |  155 lines

  1.     .title    KRTDSP.MIN  I/O dispatch and support
  2.     .ident    "V03.62"
  3.  
  4. ; /62/    31-May-93  Billy Youdelman
  5.  
  6.     .include "IN:KRTMAC.MIN"
  7.     .iif ndf  KRTINC  .error    <; .include for IN:KRTMAC.MIN failed>
  8.  
  9.     .mcall    .CLOSE    ,.GVAL    ,.RCTRLO,.TTINR    ,.TTYIN    ,.TTYOU
  10.  
  11.     $tcfig    =    424
  12.  
  13.     .sbttl    Global data
  14.  
  15.     .psect    packet    ,rw,d,lcl,rel,con
  16. packet::.blkb    $allsiz
  17.  
  18.  
  19.     .psect    $code
  20.     .sbttl    Reset terminal after using it for file transfer
  21.  
  22. ttyrst::mov    ttparm    ,@#jsw
  23.     .rctrlo
  24.     .gval    #rtwork,#$tcfig
  25.     cmp    rt11ver    ,#5
  26.     bge    135$
  27.     mov    ttpar2    ,(r0)
  28.     br    137$
  29. 135$:    mov    r0    ,r1
  30.     MOV    #rtwork    ,R0
  31.     MOV    #28.*^o400+3,@R0
  32.     MOV    r1    ,2.(R0)
  33.     MOV    ttpar2    ,4.(R0)
  34.     EMT    ^o375
  35. 137$:    .rctrlo
  36.     clr    r0
  37.     return
  38.  
  39.  
  40.     .sbttl    Get input from a printing terminal
  41.  
  42. kbread::save    <r2>
  43.     bic    #10000!100,@#jsw
  44.     .rctrlo
  45.     mov    @r5    ,r1
  46.     clrb    @r1
  47.     mov    #ln$max    ,r2
  48.  
  49. 10$:    .ttyin
  50.     cmpb    r0    ,#'Z&37
  51.     bne    11$
  52.     mov    #cmd$ex    ,r0
  53.     br    100$
  54. 11$:    cmpb    r0    ,#'C&37
  55.     bne    13$
  56.     mov    #cmd$ab    ,r0
  57.     br    100$
  58. 13$:    cmpb    r0    ,#cr
  59.     beq    40$
  60.     tst    r2
  61.     ble    10$
  62.     movb    r0    ,(r1)+
  63.     dec    r2
  64.     br    10$
  65.  
  66. 40$:    emt    340
  67.     clrb    @r1
  68.     sub    @r5    ,r1
  69.     clr    r0
  70. 100$:    unsave    <r2>
  71.     bis    #10000!100,@#jsw
  72.     save    <r0>
  73.     .rctrlo
  74.     unsave    <r0>
  75.     return
  76.  
  77.  
  78.     .sbttl    Get one char from TT
  79.  
  80. read1c::.ttinr
  81.     bcs    read1c
  82. 90$:    return
  83.  
  84.  
  85.     .sbttl    TT output in various ways
  86.     .enabl    lsb
  87.  
  88. writ1ch::save    <r1>
  89.     .ttyou
  90.     mov    xprint    ,r1
  91.     beq    99$
  92.     save    <r0>
  93.     call    putcr0
  94.     unsave    <r0>
  95. 99$:    unsave    <r1>
  96.     return
  97.  
  98. wrtall::save    <r2,r1,r0>
  99.     mov    10(sp)    ,r2
  100.  
  101. loop:    tstb    (r2)
  102.     beq    199$
  103.     clr    r0
  104.     bisb    (r2)+    ,r0
  105.     .ttyou
  106.     mov    xprint    ,r1
  107.     beq    loop
  108.     call    putcr0
  109.     br    loop
  110.  
  111. 199$:    unsave    <r0,r1,r2>
  112.     mov    (sp)+    ,(sp)
  113.     return
  114.  
  115. l$nolf::save    <r1,r0>
  116.     tst    vttype
  117.     beq    299$
  118.     .ttyou    #cr
  119.     br    300$
  120.  
  121. l$pcrlf::save    <r1,r0>
  122.  
  123. 299$:    .ttyou    #cr
  124.     .ttyou    #lf
  125.  
  126. 300$:    mov    xprint    ,r1
  127.     beq    399$
  128.     mov    #cr    ,r0
  129.     call    putcr0
  130.     mov    #lf    ,r0
  131.     call    putcr0
  132.  
  133. 399$:    unsave    <r0,r1>
  134.     return
  135.  
  136.     .dsabl    lsb
  137.  
  138.  
  139.     .sbttl    Clear the console, hose all pending terminal input
  140.  
  141. clrcns::call    chkabo
  142.     tst    r0
  143.     bne    clrcns
  144.     return
  145.  
  146.  
  147.     .sbttl    Check for abort, see if anything typed at the terminal
  148.  
  149. chkabo::.ttinr
  150.     bcc    11$
  151.     clr    r0
  152. 11$:    return
  153.  
  154.     .end
  155.