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 >
Wrap
Text File
|
2000-06-30
|
5KB
|
281 lines
; ZCPR3 TCAP Facility (Z3TCAP)
; Program Name: TCCHECK
; Author: Richard Conn
; Version: 1.0
; Date: 10 Mar 84
version equ 10
;
; TCCHECK checks the indicated (or implied) Z3TCAP.TCP file
; and displays statistics about it.
;
;
; Basic Equates
;
z3env SET 0f400h ;ZCPR3 Environment Descriptor
fcb equ 5ch
tbuff equ 80h
ctrlc equ 'C'-'@'
cr equ 0dh
lf equ 0ah
;
; ZCPR3 and SYSLIB References
;
ext z3init,qprint,z3log
ext codend,moveb
ext print,pfn1,cout,phldc
ext initfcb,pfind,f$open,f$read,f$close
;
; Environment Definition
;
if z3env ne 0
;
; External ZCPR3 Environment Descriptor
;
jmp start
db 'Z3ENV' ;This is a ZCPR3 Utility
db 1 ;External Environment Descriptor
z3eadr:
dw z3env
start:
lhld z3eadr ;pt to ZCPR3 environment
;
else
;
; Internal ZCPR3 Environment Descriptor
;
MACLIB Z3BASE.LIB
MACLIB SYSENV.LIB
z3eadr:
jmp start
SYSENV
start:
lxi h,z3eadr ;pt to ZCPR3 environment
endif
;
; Start of Program -- Initialize ZCPR3 Environment
;
call z3init ;initialize the ZCPR3 Env and the VLIB Env
;
; Print Banner
;
call qprint
db 'TCCHECK, Version '
db (version/10)+'0','.',(version mod 10)+'0'
db 0
;
; Check for Entry in FCB
;
lda fcb+1 ;get first char
cpi '/' ;none if slash
jnz start1
;
; Print Help Info
;
help:
call print
db 'TCCHECK - Select Entry from Z3TCAP.TCP'
db cr,lf,'Syntax:'
db cr,lf,' TCCHECK infile -or- TCCHECK infile.typ'
db cr,lf
db cr,lf,'where "infile" is the file to be checked by'
db cr,lf,'the execution of TCCHECK. If no file type is'
db cr,lf,'given, a file type of TCP is the default.'
db cr,lf
db cr,lf,'Syntax:'
db cr,lf,' TCCHECK'
db cr,lf
db cr,lf,'where this alternate form may be used to check'
db cr,lf,'the Z3TCAP.TCP file.'
db 0
ret
;
; Resume Processing
;
start1:
;
; Set Default File if None
;
lxi d,fcb+1 ;pt to file name
lxi h,deffile ;pt to default file
mvi b,11 ;11 bytes
ldax d ;get first char
cpi ' ' ;none if space
cz moveb ;set default file
;
; Set Default File Type if None
;
lxi d,fcb+9 ;pt to file type
lxi h,deftyp ;pt to default file type
mvi b,3 ;3 bytes
ldax d ;get first char
cpi ' ' ;none if space
cz moveb ;set default file type
;
; Begin Reading Z3TCAP.TCP
;
lxi d,fcb ;try to open Z3TCAP.TCP
call initfcb ;init FCB
mvi a,0ffh ;search current also
call pfind ;look for file
jnz start2 ;file found
;
; File Z3TCAP.TCP Not Found
;
fnferr:
call print
db ' File ',0
lxi d,fcb+1 ;print file name
call pfn1
call print
db ' Not Found - Aborting',0
ret
;
; Extract Z3TCAP Index
;
start2:
lxi d,fcb ;pt to FCB
call f$open ;open file
jnz fnferr
call codend ;read file into buffer
;
; Load Z3TCAP Index
;
loadi:
lxi d,fcb ;pt to FCB
call f$read ;read next block
jnz rerr1 ;read error
lxi d,tbuff ;copy from TBUFF
push h ;save ptr to this block
xchg
mvi b,128 ;128 bytes
call moveb
pop h ;pt to this block
lxi d,16 ;every 16
mvi b,8 ;8 entries possible
;
; Check for End of Index
;
loadi1:
mov a,m ;end of index if space
cpi ' '
jz loadi2
dad d ;pt to next
dcr b ;count down
jnz loadi1
jmp loadi ;HL pts to next block to load
;
; Error in Reading File
;
rerr1:
call print
db cr,lf,'File Read Error During Read of Index',0
ret
;
; Reached End of Index
;
loadi2:
shld z3tcver ;save ptr to version number
;
; Read Each Block of File
;
lxi h,0 ;set count
shld tcount
call codend ;pt to first element
check:
mov a,m ;see if done
cpi ' ' ;space if so
jz done
lxi d,fcb ;pt to FCB
call f$read ;read next record
jnz rerr
push h ;save ptr
lhld tcount ;increment count
inx h
shld tcount
pop h ;get ptr
lxi d,tbuff ;pt to name in buffer
mvi b,16 ;check 16 chars
check1:
ldax d ;compare
cmp m
jnz tnerror
inx h ;pt to next
inx d
dcr b ;count down
jnz check1
jmp check
;
; Read Error
;
rerr:
call print
db cr,lf,'Premature End of File after ',0
lhld tcount ;get count
call phldc
call print
db ' Terminals Checked',0
ret
;
; Terminal Name Error
;
tnerror:
call print
db cr,lf,'Terminal Names are Inconsistent at Terminal ',0
push h ;save ptr
lhld tcount ;get count
call phldc
pop h ;get ptr
tne1:
inx h ;advance to next
dcr b
jnz tne1
jmp check
;
; Check Complete
;
done:
lxi d,fcb ;close file
call f$close
call print
db cr,lf,'Z3TCAP File Check of ',0
lxi d,fcb+1
call pfn1
call print
db ' Version ',0
lhld z3tcver
inx h ;pt to version number
done1:
mov a,m ;print it
call cout
inx h
cpi ' '
jnz done1
call print
db cr,lf,' File Checks with ',0
lhld tcount ;print entry count
call phldc
call print
db ' Terminals Defined',0
ret
;
; Buffers
;
deffile:
db 'Z3TCAP ' ;default file name
deftyp:
db 'TCP' ;default file type
tcount:
ds 2 ;terminal count
z3tcver:
ds 2 ;ptr to ZCPR3 TCAP Version Number
end