home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
tdossigi
/
systat.mac
< prev
next >
Wrap
Text File
|
1986-07-05
|
3KB
|
256 lines
; SYSTAT ver 1.00 by ESKAY
; Created (big bang) 13 Jul 85
;
cr equ 0dh
lf equ 0ah
cfunc equ 5
tfunc equ 50h
;
.z80
.request syslib
;
start: ld sp,stack
call print##
cr,lf,lf
'SYSTAT v1.00 by ESKAY',cr,lf,lf
'TurboDOS Version ',0
ld c,12
call tfunc
ld a,c
and 0f0h
rra
rra
rra
rra
or 30h
call cout##
ld a,'.'
call cout##
ld a,c
and 0fh
or 30h
call cout##
call print##
', TurboDOS Serial Number ',0
call phlfdc##
ld a,'/'
call cout##
ex de,hl
call phlfdc##
call print##
', ',0
ld a,b
or a
jr nz,..pri
call print##
'Non-',0
..pri: call print##
'Privileged logon.',cr,lf,0
ld c,43
ld e,0ffh
call tfunc ; get current bank
push af ; save it
ld c,43
ld e,1
call tfunc ; set to bank 1
ld c,43
ld e,0ffh
call tfunc ; check bank
or a ; bank 1 active?
jr nz,..bnk
call print##
'Non-',0
..bnk: call print##
'Banked system (current bank = ',0
pop af ; get original bank
call pafdc##
ld e,a
ld c,43
call tfunc ; if changed, set back
call print##
') on circuit ',0
ld c,12
call cfunc
ld a,d
call pafdc##
call print##
', node ',0
ld a,e
call pafdc##
call print##
'. CP/M version ',0
ld a,l
and 0f0h
rra
rra
rra
rra
or 30h
call cout##
ld a,'.'
call cout##
ld a,l
and 0fh
or 30h
call cout##
call print##
cr,lf
'Memory free in current bank: ',0
ld hl,(6)
dec h
call phlfdc##
call print##
' bytes (top of TPA = ',0
inc h
dec hl
call phl4hc##
call print##
'H).',cr,lf,'Default drive is ',0
ld c,25
call cfunc
ld e,a
ld c,19
call tfunc
bit 7,a
jr z,..rem
call print##
'fixed',0
jr ..rfd
;
..rem: call print##
'removable',0
..rfd: and 7
ld b,a
ld a,1
dec b
dec b
cbls: dec b
jr z,cble
add a,a
jr cbls
;
cble: call print##
', block size = ',0
call pafdc##
ld b,a ; save block size
call print##
'k. Disk has ',0
ex de,hl
call phlfdc##
call print##
' free blocks.',cr,lf
'Accessible drives are : ',0
ld c,24
call cfunc
ld a,'A'
ld b,8
call ..rh
ld l,h
ld b,8
call ..rh
call print##
cr,lf
'Number of buffers: ',0
ld c,24
call tfunc
ld a,h
call pafdc##
call print##
'. Buffer size: ',0
ld b,l
ld hl,64
inc b
..bfs: add hl,hl
djnz ..bfs
call phlfdc##
call print##
' bytes.',cr,lf
'Current printing set to ',0
ld c,27
ld de,0ffffh
ld b,d
call tfunc
inc l
dec l
jr z,prdir
dec l
jr z,prspl
call print##
'CONSOLE',cr,lf,0
jr prend
;
prdir: call print##
'DIRECT TO PRINTER ',0
ld a,h
add a,'@'
call cout##
call crlf##
jr prend
;
prspl: call print##
'SPOOLER ON DRIVE ',0
add a,'A'
call cout##
ld a,h
or a
jr z,pren0
call print##
' TO QUEUE ',0
add a,'@'
call cout##
pren0: call crlf##
prend: call print##
'System printer assignments : ',cr,lf,0
ld b,0
syspl: push bc
ld de,0ffffh
ld c,29
call tfunc
inc a ; valid?
jr z,invp1
call print##
9,9,'Printer ',0
pop bc
push bc
ld a,'A'
add a,b
call cout##
dec l ; check mode
jp z,sstop ; stopped
ld a,h ; get queue assignment
or a ; check offline
jp z,soffl
call print##
': Queue ',0
add a,'@'
call cout##
call crlf##
jr invp1
;
soffl: call print##
': Offline',cr,lf,0
jr invp1
;
sstop: call print##
': Stopped',cr,lf,0
invp1: pop bc ; get printer
inc b
ld a,b
cp 16
jp nz,syspl ; continue till done
call crlf##
rst 0
;
..rh: rr l
call c,cout##
inc a
djnz ..rh
ret
;
dseg
;
ds 100
stack equ $
end