home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ZSYS / SIMTEL20 / ZCPR3 / TCCHECK.MAC < prev    next >
Text File  |  2000-06-30  |  5KB  |  281 lines

  1. ; ZCPR3 TCAP Facility (Z3TCAP)
  2. ; Program Name:  TCCHECK
  3. ; Author:  Richard Conn
  4. ; Version:  1.0
  5. ; Date:  10 Mar 84
  6. version    equ    10
  7.  
  8. ;
  9. ;    TCCHECK checks the indicated (or implied) Z3TCAP.TCP file
  10. ; and displays statistics about it.
  11. ;
  12.  
  13. ;
  14. ;  Basic Equates
  15. ;
  16. z3env    SET    0f400h    ;ZCPR3 Environment Descriptor
  17. fcb    equ    5ch
  18. tbuff    equ    80h
  19. ctrlc    equ    'C'-'@'
  20. cr    equ    0dh
  21. lf    equ    0ah
  22.  
  23. ;
  24. ;  ZCPR3 and SYSLIB References
  25. ;
  26.     ext    z3init,qprint,z3log
  27.     ext    codend,moveb
  28.     ext    print,pfn1,cout,phldc
  29.     ext    initfcb,pfind,f$open,f$read,f$close
  30.  
  31. ;
  32. ; Environment Definition
  33. ;
  34.     if    z3env ne 0
  35. ;
  36. ; External ZCPR3 Environment Descriptor
  37. ;
  38.     jmp    start
  39.     db    'Z3ENV'    ;This is a ZCPR3 Utility
  40.     db    1    ;External Environment Descriptor
  41. z3eadr:
  42.     dw    z3env
  43. start:
  44.     lhld    z3eadr    ;pt to ZCPR3 environment
  45. ;
  46.     else
  47. ;
  48. ; Internal ZCPR3 Environment Descriptor
  49. ;
  50.     MACLIB    Z3BASE.LIB
  51.     MACLIB    SYSENV.LIB
  52. z3eadr:
  53.     jmp    start
  54.     SYSENV
  55. start:
  56.     lxi    h,z3eadr    ;pt to ZCPR3 environment
  57.     endif
  58.  
  59. ;
  60. ; Start of Program -- Initialize ZCPR3 Environment
  61. ;
  62.     call    z3init    ;initialize the ZCPR3 Env and the VLIB Env
  63.  
  64. ;
  65. ; Print Banner
  66. ;
  67.     call    qprint
  68.     db    'TCCHECK, Version '
  69.     db    (version/10)+'0','.',(version mod 10)+'0'
  70.     db    0
  71.  
  72. ;
  73. ; Check for Entry in FCB
  74. ;
  75.     lda    fcb+1    ;get first char
  76.     cpi    '/'    ;none if slash
  77.     jnz    start1
  78. ;
  79. ; Print Help Info
  80. ;
  81. help:
  82.     call    print
  83.     db    'TCCHECK - Select Entry from Z3TCAP.TCP'
  84.     db    cr,lf,'Syntax:'
  85.     db    cr,lf,'    TCCHECK infile  -or-  TCCHECK infile.typ'
  86.     db    cr,lf
  87.     db    cr,lf,'where "infile" is the file to be checked by'
  88.     db    cr,lf,'the execution of TCCHECK.  If no file type is'
  89.     db    cr,lf,'given, a file type of TCP is the default.'
  90.     db    cr,lf
  91.     db    cr,lf,'Syntax:'
  92.     db    cr,lf,'    TCCHECK'
  93.     db    cr,lf
  94.     db    cr,lf,'where this alternate form may be used to check'
  95.     db    cr,lf,'the Z3TCAP.TCP file.'
  96.     db    0
  97.     ret
  98. ;
  99. ; Resume Processing
  100. ;
  101. start1:
  102. ;
  103. ; Set Default File if None
  104. ;
  105.     lxi    d,fcb+1        ;pt to file name
  106.     lxi    h,deffile    ;pt to default file
  107.     mvi    b,11        ;11 bytes
  108.     ldax    d        ;get first char
  109.     cpi    ' '        ;none if space
  110.     cz    moveb        ;set default file
  111. ;
  112. ; Set Default File Type if None
  113. ;
  114.     lxi    d,fcb+9        ;pt to file type
  115.     lxi    h,deftyp    ;pt to default file type
  116.     mvi    b,3        ;3 bytes
  117.     ldax    d        ;get first char
  118.     cpi    ' '        ;none if space
  119.     cz    moveb        ;set default file type
  120. ;
  121. ; Begin Reading Z3TCAP.TCP
  122. ;
  123.     lxi    d,fcb        ;try to open Z3TCAP.TCP
  124.     call    initfcb        ;init FCB
  125.     mvi    a,0ffh        ;search current also
  126.     call    pfind        ;look for file
  127.     jnz    start2        ;file found
  128. ;
  129. ; File Z3TCAP.TCP Not Found
  130. ;
  131. fnferr:
  132.     call    print
  133.     db    '  File ',0
  134.     lxi    d,fcb+1        ;print file name
  135.     call    pfn1
  136.     call    print
  137.     db    ' Not Found - Aborting',0
  138.     ret
  139. ;
  140. ; Extract Z3TCAP Index
  141. ;
  142. start2:
  143.     lxi    d,fcb        ;pt to FCB
  144.     call    f$open        ;open file
  145.     jnz    fnferr
  146.     call    codend        ;read file into buffer
  147. ;
  148. ; Load Z3TCAP Index
  149. ;
  150. loadi:
  151.     lxi    d,fcb        ;pt to FCB
  152.     call    f$read        ;read next block
  153.     jnz    rerr1        ;read error
  154.     lxi    d,tbuff        ;copy from TBUFF
  155.     push    h        ;save ptr to this block
  156.     xchg
  157.     mvi    b,128        ;128 bytes
  158.     call    moveb
  159.     pop    h        ;pt to this block
  160.     lxi    d,16        ;every 16
  161.     mvi    b,8        ;8 entries possible
  162. ;
  163. ; Check for End of Index
  164. ;
  165. loadi1:
  166.     mov    a,m        ;end of index if space
  167.     cpi    ' '
  168.     jz    loadi2
  169.     dad    d        ;pt to next
  170.     dcr    b        ;count down
  171.     jnz    loadi1
  172.     jmp    loadi        ;HL pts to next block to load
  173. ;
  174. ; Error in Reading File
  175. ;
  176. rerr1:
  177.     call    print
  178.     db    cr,lf,'File Read Error During Read of Index',0
  179.     ret
  180. ;
  181. ; Reached End of Index
  182. ;
  183. loadi2:
  184.     shld    z3tcver        ;save ptr to version number
  185. ;
  186. ; Read Each Block of File
  187. ;
  188.     lxi    h,0        ;set count
  189.     shld    tcount
  190.     call    codend        ;pt to first element
  191. check:
  192.     mov    a,m        ;see if done
  193.     cpi    ' '        ;space if so
  194.     jz    done
  195.     lxi    d,fcb        ;pt to FCB
  196.     call    f$read        ;read next record
  197.     jnz    rerr
  198.     push    h        ;save ptr
  199.     lhld    tcount        ;increment count
  200.     inx    h
  201.     shld    tcount
  202.     pop    h        ;get ptr
  203.     lxi    d,tbuff        ;pt to name in buffer
  204.     mvi    b,16        ;check 16 chars
  205. check1:
  206.     ldax    d        ;compare
  207.     cmp    m
  208.     jnz    tnerror
  209.     inx    h        ;pt to next
  210.     inx    d
  211.     dcr    b        ;count down
  212.     jnz    check1
  213.     jmp    check
  214. ;
  215. ; Read Error
  216. ;
  217. rerr:
  218.     call    print
  219.     db    cr,lf,'Premature End of File after ',0
  220.     lhld    tcount        ;get count
  221.     call    phldc
  222.     call    print
  223.     db    ' Terminals Checked',0
  224.     ret
  225. ;
  226. ; Terminal Name Error
  227. ;
  228. tnerror:
  229.     call    print
  230.     db    cr,lf,'Terminal Names are Inconsistent at Terminal ',0
  231.     push    h        ;save ptr
  232.     lhld    tcount        ;get count
  233.     call    phldc
  234.     pop    h        ;get ptr
  235. tne1:
  236.     inx    h    ;advance to next
  237.     dcr    b
  238.     jnz    tne1
  239.     jmp    check
  240.  
  241. ;
  242. ; Check Complete
  243. ;
  244. done:
  245.     lxi    d,fcb        ;close file
  246.     call    f$close
  247.     call    print
  248.     db    cr,lf,'Z3TCAP File Check of ',0
  249.     lxi    d,fcb+1
  250.     call    pfn1
  251.     call    print
  252.     db    ' Version ',0
  253.     lhld    z3tcver
  254.     inx    h        ;pt to version number
  255. done1:
  256.     mov    a,m        ;print it
  257.     call    cout
  258.     inx    h
  259.     cpi    ' '
  260.     jnz    done1
  261.     call    print
  262.     db    cr,lf,'    File Checks with ',0
  263.     lhld    tcount        ;print entry count
  264.     call    phldc
  265.     call    print
  266.     db    ' Terminals Defined',0
  267.     ret
  268. ;
  269. ; Buffers
  270. ;
  271. deffile:
  272.     db    'Z3TCAP  '    ;default file name
  273. deftyp:
  274.     db    'TCP'        ;default file type
  275. tcount:
  276.     ds    2    ;terminal count
  277. z3tcver:
  278.     ds    2    ;ptr to ZCPR3 TCAP Version Number
  279.  
  280.     end
  281.