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

  1.     .title    KRTOSI.MIN  One shot init
  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.     .sbttl    Macro references, various handy constants defined
  10.  
  11.     .MCALL    .CSTAT    ,.EXIT    ,.GVAL    ,.LOOKUP,.PURGE    ,.QSET
  12.     .MCALL    .RCTRLO,.SERR    ,.SETTOP
  13.  
  14.     SYSVER    = 276
  15.     TOPMEM    = 50
  16.  
  17.     .sbttl    Buffer allocation
  18.  
  19.     BINLSIZ    = 40*4
  20.     MAXSIZ    == 1000
  21.     $$BUFP    = <<MAXSIZ+2>*4>
  22.     $$1    = 82.+200
  23.     $$2    = <34*2*2>*2
  24.     $$3    = <LN$MAX+2>*2
  25.     $$4    = <<LN$MAX+2>*LN$CNT>
  26.     TOTALL    == BINLSIZE+$$BUFP+$$1+$$2+$$3+$$4
  27.  
  28.  
  29.     .psect    $code
  30.     .sbttl    Init for RT-11
  31.     .enabl    lsb
  32.  
  33. xinit::    .qset    #rtque    ,#nrtque
  34.     .serr
  35.     .gval    #rtwork    ,#sysver
  36.     movb    r0    ,rt11ver
  37.     mov    #freept    ,r2
  38.     mov    @hilimit,@r2
  39.     add    #3    ,@r2
  40.     bic    #1    ,@r2
  41.     .settop    #-2
  42.     mov    r0    ,maxtop
  43.     cmp    @r2    ,r0
  44.     bhi    80$
  45.     sub    @r2    ,r0
  46.     cmp    #totall    ,r0
  47.     blos    90$
  48.  
  49.     wrtall    #fatal
  50.     message    <Insufficient space available for buffer allocation>,cr
  51.     message    <TOTALL = >
  52.     octout    #totall
  53.     message    <,  MAXTOP-HILIMIT = >
  54.     octout    r0
  55.     sub    #totall    ,r0
  56.     br    87$
  57.  
  58. 80$:    wrtall    #fatal
  59.     message <Program high limit exceeds top of memory>,cr
  60.     message    <HILIMIT = >
  61.     octout    @r2
  62.     message    <,  MAXTOP = >
  63.     octout    r0
  64.     sub    @r2    ,r0
  65.  
  66. 87$:    .newline
  67.     message    <You are >
  68.     neg    r0
  69.     call    plural
  70.     message    < from happiness..>,cr
  71.     clr    r0
  72.     .exit
  73.  
  74. plural:    asr    r0
  75.     mov    r0    ,r1
  76.     call    L10266
  77.     message    <. word>
  78.     dec    r1
  79.     beq    888$
  80.     mov    #'s!40    ,r0
  81.     call    writ1char
  82. 888$:    return
  83.  
  84.  
  85.     .sbttl    Allocate and init buffers
  86.  
  87. 90$:    mov    @r2    ,r0
  88.     mov    #2    ,r3
  89.     mov    #4    ,r4
  90. 100$:    mov    @r2    ,buflst(r3)
  91.     add    #maxsiz    ,@r2
  92.     add    #2    ,r3
  93.     sob    r4    ,100$
  94.     mov    @r2    ,dirnam
  95.     add    #82.    ,@r2
  96.     mov    @r2    ,dirbfr
  97.     add    #200    ,@r2
  98.     mov    @r2    ,bintyp
  99.     add    #binlsiz,@r2
  100.     mov    @r2    ,totp.s
  101.     add    #34*2*2    ,@r2
  102.     mov    @r2    ,totp.r
  103.     add    #34*2*2    ,@r2
  104.     mov    #ln$cnt    ,r3
  105.     mov    #lastli    ,r4
  106. 104$:    mov    @r2    ,(r4)+
  107.     add    #ln$max+2,@r2
  108.     sob    r3    ,104$
  109.     mov    @r2    ,cmdbuf
  110.     add    #120    ,@r2
  111.     mov    @r2    ,argbuf
  112.     add    #120    ,@r2
  113. 105$:    clr    (r0)+
  114.     cmp    r0    ,@r2
  115.     blos    105$
  116.  
  117.  
  118.     .sbttl    Set/get terminal config..
  119.  
  120.     TTMODE    = 20 ! 100 ! 10000 ! 40000
  121.     $TCFIG    = 424
  122.     $SCOPE    = 100000
  123.  
  124.     bis    #ttmode    ,@#jsw
  125.     .rctrlo
  126.     mov    @#jsw    ,ttparm
  127.  
  128.     .lookup    #rtwork,#lun.sr,#dkblk
  129.     bcs    1100$
  130.     .cstat    #rtwork,#lun.sr,#cstat
  131.     bcs    1100$
  132.     calls    rdtoa    ,<#dkname,cstat+12>
  133.     movb    cstat+10,r0
  134.     add    #'0    ,r0
  135.     movb    r0    ,dkname+2
  136.     movb    #':    ,dkname+3
  137.     clrb    dkname+4
  138. 1100$:    .purge    #lun.sr
  139.     strcpy    #defdir    ,#dkname
  140.  
  141.     .gval    #rtwork    ,#$tcfig
  142.     cmp    rt11ver    ,#5
  143.     bge    135$
  144.     mov    (r0)    ,r0
  145.     br    137$
  146. 135$:    mov    r0    ,r1
  147.     MOV    #rtwork    ,R0
  148.     MOV    #28.*^o400+1.,@R0
  149.     MOV    r1    ,2.(R0)
  150.     EMT    ^o375
  151. 137$:    mov    r0    ,ttpar2
  152.     bit    #$scope    ,r0
  153.     beq    140$
  154.     mov    #vt100    ,vttype
  155. 140$:    mov    #par$space,parity
  156.     mov    #60.    ,senlen
  157.     movb    #60.    ,senpar+p.spsiz
  158.     clr    dolong
  159.     return
  160.  
  161.     .dsabl    lsb
  162.  
  163.  
  164.     .sbttl    Data
  165.  
  166.     .psect    $pdata
  167. fatal:    .asciz    "?KRTOSI-F-"
  168.     .even
  169.  
  170.     .end
  171.