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

  1.     .title    KRTINI.MIN  Initialization and rarely used routines
  2.     .ident    "V03.62"
  3.  
  4. ; /62/    31-May-93  Billy Youdelman
  5.  
  6. ;    Copyright 1984 Change Software, Inc.
  7.  
  8.     .include "IN:KRTMAC.MIN"
  9.     .iif ndf  KRTINC  .error    <; .include for IN:KRTMAC.MIN failed>
  10.  
  11.     .macro    $chkb    val ,reg ,?a
  12.     tstb    @reg
  13.     bne    a
  14.     movb    val    ,@reg
  15. a:    inc    reg
  16.     .endm    $chkb
  17.  
  18.  
  19.     .psect    $code
  20.     .sbttl    Initialize ourselves
  21.     .enabl    lsb
  22.  
  23. kerini::mov    #rwdata    ,r0
  24.     mov    #rwsize/2,r1
  25. 1$:    clr    (r0)+
  26.     sob    r1    ,1$
  27.  
  28.     mov    sp    ,doauto
  29.     mov    sp    ,doattr
  30.     mov    sp    ,setrpt
  31.     mov    sp    ,dolong
  32.     mov    #myrtmo    ,rectim
  33.     mov    #mystmo    ,sentim
  34.     call    rparini
  35.     call    sparini
  36.     call    xinit
  37.     mov    #soh    ,recsop
  38.     mov    #soh    ,sensop
  39.     mov    #defchk    ,chktyp
  40.     mov    #1    ,chksiz
  41.     mov    #defchk    ,setchkt
  42.     mov    #in$try    ,initry
  43.     mov    #mx$try    ,maxtry
  44.     mov    sp    ,incfile
  45.     mov    #60.    ,serwait
  46.     mov    #defdly    ,sendly
  47.     mov    sp    ,infomsg
  48.     mov    sp    ,qu.ini
  49.     mov    sp    ,rtvol
  50.  
  51.     clrb    ininam
  52.     mov    #200$    ,r3
  53. 10$:    tst    @r3
  54.     beq    100$
  55.     calls    open    ,<(r3)+,#lun.ta,#text>
  56.     tst    r0
  57.     bne    10$
  58. 20$:    mov    #lun.ta    ,cmdlun
  59.     mov    sp    ,sy.ini
  60.     clr    infomsg
  61.     strcpy    #indnam    ,-(r3)
  62.     strcpy    #ininam    ,(r3)
  63.     message    <Reading >
  64.     wrtall    (r3)
  65.     message    < ..>
  66.     call    l$nolf
  67. 100$:    return
  68.  
  69.     .save
  70.     .psect    $pdata
  71. 200$:    .word    210$ ,220$ ,0
  72. 210$:    .asciz    "DK:KRTMIN.INI"
  73. 220$:    .asciz    "SY:KRTMIN.INI"
  74.     .even
  75.     .restore
  76.  
  77.     .dsabl    lsb
  78.  
  79.  
  80.     .sbttl    Setup defaults for our SINIT parameters
  81.  
  82. sparini:mov    #senpar    ,r1
  83.     movb    #maxpak    ,(r1)+
  84.     mov    #maxpak    ,senlen
  85.     movb    #mystmo    ,(r1)+
  86.     movb    #mypad    ,(r1)+
  87.     movb    #mypchar,(r1)+
  88.     movb    #myeol    ,(r1)+
  89.     movb    #myquote,(r1)+
  90.     movb    #'Y&137    ,(r1)+
  91.     movb    #mychkt    ,(r1)+
  92.     movb    #space    ,(r1)
  93.     tst    setrpt
  94.     beq    20$
  95.     movb    #myrept    ,(r1)
  96. 20$:    mov    #11    ,sparsz
  97.     mov    doattr    ,r0
  98.     bis    dolong    ,r0
  99.     beq    100$
  100.     add    #4    ,sparsz
  101.     inc    r1
  102.     tst    doattr
  103.     beq    30$
  104.     bisb    #capa.a    ,(r1)
  105. 30$:    tst    dolong
  106.     beq    100$
  107.     bisb    #capa.l    ,(r1)+
  108.     inc    r1
  109.     mov    #maxlng    ,r3
  110.     clr    r2
  111.     div    #95.    ,r2
  112.     movb    r2    ,(r1)+
  113.     movb    r3    ,(r1)
  114.     mov    #maxlng    ,senlen
  115. 100$:    return
  116.  
  117.  
  118.     .sbttl    Setup defaults for other Kermit's SINIT parameters
  119.  
  120. rparini:mov    #conpar    ,r1
  121.     movb    #maxpak    ,(r1)+
  122.     movb    #myrtmo    ,(r1)+
  123.     movb    #mypad    ,(r1)+
  124.     movb    #mypchar,(r1)+
  125.     movb    #myeol    ,(r1)+
  126.     movb    #myquote,(r1)+
  127.     movb    #'Y&137    ,(r1)+
  128.     movb    #mychkt    ,(r1)+
  129.     movb    #space    ,(r1)
  130.     return
  131.  
  132.  
  133.     .sbttl    Read other Kermit's SINIT parameters
  134.  
  135. rpar::    save    <r0,r1,r2,r3,r4>
  136.     mov    #conpar    ,r2
  137.     mov    #20    ,r0
  138. 1$:    clrb    (r2)+
  139.     sob    r0    ,1$
  140.     mov    @r5    ,r1
  141.     mov    2(r5)    ,r0
  142.     mov    #conpar    ,r2
  143.     clr    r3
  144.     movb    #'N&137    ,p.qbin(r2)
  145.  
  146.     unchar    (r1)+    ,(r2)+
  147.     dec    r0
  148.     beq    4$
  149.     unchar    (r1)+    ,(r2)+
  150.     dec    r0
  151.     beq    4$
  152.     unchar    (r1)+    ,(r2)+
  153.     dec    r0
  154.     beq    4$
  155.     ctl    (r1)+    ,(r2)+
  156.     dec    r0
  157.     beq    4$
  158.     unchar    (r1)+    ,(r2)+
  159.     dec    r0
  160.     beq    4$
  161.     movb    (r1)+    ,(r2)+
  162.     dec    r0
  163.     beq    4$
  164.     movb    (r1)+    ,(r2)+
  165.     dec    r0
  166.     beq    4$
  167.     movb    (r1)+    ,(r2)+
  168.     dec    r0
  169.     beq    4$
  170.     movb    (r1)+    ,(r2)+
  171.     dec    r0
  172.     beq    4$
  173.     unchar    (r1)+    ,(r2)+
  174.     dec    r0
  175.     beq    4$
  176.     unchar    (r1)+    ,(r2)
  177.     TSTB    (r2)+
  178.     dec    r0
  179.     beq    4$
  180.     unchar    (r1)+    ,r3
  181.     bicb    #200    ,r3
  182.     movb    r3    ,(r2)+
  183.     mul    #95.    ,r3
  184.     dec    r0
  185.     beq    4$
  186.     unchar    (r1)+    ,r4
  187.     bicb    #200    ,r4
  188.     movb    r4    ,(r2)+
  189.     add    r4    ,r3
  190. 4$:    clrb    (r2)
  191.  
  192.     mov    #conpar    ,r2
  193.     mov    #15    ,r0
  194. 5$:    bicb    #200    ,(r2)+
  195.     sob    r0    ,5$
  196.  
  197.     mov    #conpar    ,r0
  198.     $chkb    #maxpak    ,r0
  199.     inc    r0
  200.     $chkb    #mypad    ,r0
  201.     $chkb    #mypchar,r0
  202.     $chkb    #myeol    ,r0
  203.     $chkb    #myquote,r0
  204.     $chkb    #'Y    ,r0
  205.     $chkb    #defchk    ,r0
  206.     $chkb    #space    ,r0
  207.  
  208.     mov    #senpar    ,r0
  209.     mov    #conpar    ,r1
  210.     movb    p.npad(r0),r2
  211.     beq    30$
  212.     movb    r2    ,p.npad(r1)
  213.     movb    p.padc(r0),p.padc(r1)
  214. 30$:    movb    p.chkt(r1),senpar+p.chkt
  215.     mov    snd8bit    ,do8bit
  216.     clr    snd8bit
  217.     cmpb    p.qbin(r1),#'Y&137
  218.     bne    50$
  219.     movb    #myqbin    ,ebquot
  220.     br    80$
  221. 50$:    cmpb    p.qbin(r1),#'N&137
  222.     bne    60$
  223.     clr    do8bit
  224.     br    80$
  225. 60$:    mov    sp    ,do8bit
  226.     movb    p.qbin(r1),ebquot
  227. 80$:    clr    senlng
  228.     tst    dolong
  229.     beq    100$
  230.     bitb    #capa.l    ,p.capas(r1)
  231.     beq    100$
  232.     mov    r3    ,senlng
  233.     bne    88$
  234.     mov    #maxpak    ,senlng
  235. 88$:    cmp    senlng    ,#maxlng
  236.     ble    100$
  237.     mov    #maxlng    ,senlng
  238. 100$:    unsave    <r4,r3,r2,r1,r0>
  239.     return
  240.  
  241.  
  242.     .sbttl    Fill a buffer with my initialization parameters
  243.  
  244. spar::    save    <r0,r1,r2>
  245.     mov    @r5    ,r2
  246.     mov    #senpar    ,r1
  247.     tochar    (r1)+    ,(r2)+
  248.     tochar    (r1)+    ,(r2)+
  249.     tochar    (r1)+    ,(r2)+
  250.     ctl    (r1)+    ,(r2)+
  251.     movb    (r1)    ,conpar+p.eol
  252.     tochar    (r1)+    ,(r2)+
  253.     movb    (r1)+    ,(r2)+
  254.     clr    snd8bit
  255.     movb    #'Y&137    ,(r1)
  256.     movb    conpar+p.qbin,r0
  257.     cmpb    r0    ,#'N&137
  258.     bne    15$
  259.     clr    do8bit
  260.     br    30$
  261. 15$:    cmpb    r0    ,#'Y&137
  262.     bne    20$
  263.     tst    parity
  264.     beq    30$
  265.     movb    #myqbin    ,r0
  266. 20$:    mov    sp    ,snd8bit
  267.     mov    sp    ,do8bit
  268.     movb    r0    ,ebquot
  269.     movb    r0    ,(r1)
  270. 30$:    movb    (r1)+    ,(r2)+
  271.     movb    (r1)+    ,(r2)+
  272.     movb    (r1)+    ,(r2)+
  273.     mov    #11    ,sparsz
  274.     mov    doattr    ,r0
  275.     bis    dolong    ,r0
  276.     beq    90$
  277.     add    #4    ,sparsz
  278.     clrb    (r1)
  279.     tst    dolong
  280.     beq    35$
  281.     bisb    #capa.l    ,@r1
  282. 35$:    tst    doattr
  283.     beq    40$
  284.     bisb    #capa.a    ,@r1
  285. 40$:    tochar    (r1)+    ,(r2)+
  286.     tochar    (r1)+    ,(r2)+
  287.     tochar    (r1)+    ,(r2)+
  288.     tochar    (r1)+    ,(r2)+
  289. 90$:    clrb    (r2)
  290.     unsave    <r2,r1,r0>
  291.     return
  292.  
  293.  
  294.     .sbttl    Restore set checksum type and init a few things
  295.  
  296. fixchk::movb    setchkt    ,senpar+p.chkt
  297.     clr    do8bit
  298.     movb    #'Y&137    ,conpar+p.qbin
  299.     return
  300.  
  301.  
  302.     .sbttl    Init stats regs
  303.  
  304. rechdr::
  305. senhdr::mov    #pcnt.r    ,r1
  306.     mov    totp.r    ,r2
  307.     mov    #34    ,r0
  308. 10$:    add    2(r1)    ,2(r2)
  309.     adc    (r2)
  310.     add    (r1)    ,(r2)+
  311.     tst    (r2)+
  312.     clr    (r1)+
  313.     clr    (r1)+
  314.     sob    r0    ,10$
  315.     mov    #pcnt.s    ,r1
  316.     mov    totp.s    ,r2
  317.     mov    #34    ,r0
  318. 20$:    add    2(r1)    ,2(r2)
  319.     adc    (r2)
  320.     add    (r1)    ,(r2)+
  321.     tst    (r2)+
  322.     clr    (r1)+
  323.     clr    (r1)+
  324.     sob    r0    ,20$
  325.     clr    filein+0
  326.     clr    filein+2
  327.     clr    fileout+0
  328.     clr    fileout+2
  329.     clr    charin+0
  330.     clr    charin+2
  331.     clr    charout+0
  332.     clr    charout+2
  333.     clr    nakrec
  334.     return
  335.  
  336.  
  337.     .sbttl    Initialize repeat count for sending packets
  338.  
  339. inirepeat::save    <r0>
  340.     clr    dorpt
  341.     tst    setrpt
  342.     beq    100$
  343.     cmpb    #myrept    ,#space
  344.     beq    100$
  345.     clr    rptcount
  346.     clr    rptlast
  347.     mov    #-1    ,rptinit
  348.     movb    conpar+p.rept,r0
  349.     beq    100$
  350.     cmpb    r0    ,#space
  351.     beq    100$
  352.     cmpb    r0    ,senpar+p.rept
  353.     bne    100$
  354.     movb    r0    ,rptquo
  355.     mov    sp    ,dorpt
  356. 100$:    unsave    <r0>
  357.     return
  358.  
  359.     .end
  360.