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
/
CPM
/
ZCPR2
/
CCPLOC.MAC
< prev
next >
Wrap
Text File
|
2000-06-30
|
5KB
|
232 lines
;
; PROGRAM: CCPLOC
; AUTHOR: RICHARD CONN
; VERSION: 1.1
; DATE: 6 JAN 83
; PREVIOUS VERSIONS: 1.0 (14 DEC 82)
;
VERS EQU 11
;
; This program is Copyright (c) 1982, 1983 by Richard Conn
; All Rights Reserved
;
; ZCPR2 and its utilities, including this one, are released
; to the public domain. Anyone who wishes to USE them may do so with
; no strings attached. The author assumes no responsibility or
; liability for the use of ZCPR2 and its utilities.
;
; The author, Richard Conn, has sole rights to this program.
; ZCPR2 and its utilities may not be sold without the express,
; written permission of the author.
;
;
; CCPLOC -- CCP Locator
;
; The purpose of CCPLOC is to locate the addresses of the running
; CP/M 2.2 CCP, BDOS, and BIOS, and to display these values to the user.
;
;
; CP/M Constants
;
bdos equ 5 ; BDOS Entry
cr equ 0dh
lf equ 0ah
;
; SYSLIB Externals
;
ext print,phl4hc,pa2hc,cout,crlf
;
; Branch to Start of Program
;
jmp start
;
;******************************************************************
;
; SINSFORM -- ZCPR2 Utility Standard General Purpose Initialization Format
;
; This data block precisely defines the data format for
; initial features of a ZCPR2 system which are required for proper
; initialization of the ZCPR2-Specific Routines in SYSLIB.
;
;
; EXTERNAL PATH DATA
;
EPAVAIL:
DB 0FFH ; IS EXTERNAL PATH AVAILABLE? (0=NO, 0FFH=YES)
EPADR:
DW 40H ; ADDRESS OF EXTERNAL PATH IF AVAILABLE
;
; INTERNAL PATH DATA
;
INTPATH:
DB 0,0 ; DISK, USER FOR FIRST PATH ELEMENT
; DISK = 1 FOR A, '$' FOR CURRENT
; USER = NUMBER, '$' FOR CURRENT
DB 0,0
DB 0,0
DB 0,0
DB 0,0
DB 0,0
DB 0,0
DB 0,0 ; DISK, USER FOR 8TH PATH ELEMENT
DB 0 ; END OF PATH
;
; MULTIPLE COMMAND LINE BUFFER DATA
;
MCAVAIL:
DB 0FFH ; IS MULTIPLE COMMAND LINE BUFFER AVAILABLE?
MCADR:
DW 0FF00H ; ADDRESS OF MULTIPLE COMMAND LINE BUFFER IF AVAILABLE
;
; DISK/USER LIMITS
;
MDISK:
DB 4 ; MAXIMUM NUMBER OF DISKS
MUSER:
DB 31 ; MAXIMUM USER NUMBER
;
; FLAGS TO PERMIT LOG IN FOR DIFFERENT USER AREA OR DISK
;
DOK:
DB 0FFH ; ALLOW DISK CHANGE? (0=NO, 0FFH=YES)
UOK:
DB 0FFH ; ALLOW USER CHANGE? (0=NO, 0FFH=YES)
;
; PRIVILEGED USER DATA
;
PUSER:
DB 10 ; BEGINNING OF PRIVILEGED USER AREAS
PPASS:
DB 'chdir',0 ; PASSWORD FOR MOVING INTO PRIV USER AREAS
DS 41-($-PPASS) ; 40 CHARS MAX IN BUFFER + 1 for ending NULL
;
; CURRENT USER/DISK INDICATOR
;
CINDIC:
DB '$' ; USUAL VALUE (FOR PATH EXPRESSIONS)
;
; DMA ADDRESS FOR DISK TRANSFERS
;
DMADR:
DW 80H ; TBUFF AREA
;
; NAMED DIRECTORY INFORMATION
;
NDRADR:
DW 00000H ; ADDRESS OF MEMORY-RESIDENT NAMED DIRECTORY
NDNAMES:
DB 64 ; MAX NUMBER OF DIRECTORY NAMES
DNFILE:
DB 'NAMES ' ; NAME OF DISK NAME FILE
DB 'DIR' ; TYPE OF DISK NAME FILE
;
; REQUIREMENTS FLAGS
;
EPREQD:
DB 000H ; EXTERNAL PATH?
MCREQD:
DB 000H ; MULTIPLE COMMAND LINE?
MXREQD:
DB 000H ; MAX USER/DISK?
UDREQD:
DB 000H ; ALLOW USER/DISK CHANGE?
PUREQD:
DB 000H ; PRIVILEGED USER?
CDREQD:
DB 000H ; CURRENT INDIC AND DMA?
NDREQD:
DB 000H ; NAMED DIRECTORIES?
Z2CLASS:
DB 0 ; CLASS 0
DB 'ZCPR2'
DS 10 ; RESERVED
;
; END OF SINSFORM -- STANDARD DEFAULT PARAMETER DATA
;
;******************************************************************
;
;
; Start of Program
;
start:
call print
db 'CCPLOC Version '
db (vers/10)+'0','.',(vers mod 10)+'0'
db cr,lf
db cr,lf,'CP/M Element Base Page Base Address'
db cr,lf,'------------ --------- ------------',0
lhld bdos+1 ;get base address of BDOS
mvi l,0 ;set to even boundary
lxi d,-800H ;back up to start of CCP (size of CCP)
dad d ;HL pts to CCP
call print
db cr,lf,' CCP ',' ',0
mov a,h ;base page in A
call pa2hc ;print as hex
call ph ;print H
call filler ;next field
call phl4hc ;print full address
call ph
lhld bdos+1 ;just get base address of BDOS again
call print
db cr,lf,' BDOS ',' ',0
mov a,h ;base page in A
call pa2hc ;print as hex
call ph
call filler
call phl4hc
call ph
mvi l,0 ;set even page
lxi d,0e00h ;size of BDOS
dad d ;HL pts to BIOS
call print
db cr,lf,' BIOS ',' ',0
mov a,h ;base page in A
call pa2hc ;print as hex
call ph
call filler
call phl4hc
call ph
call crlf ;new lines
call crlf
ret
;
; PH -- Print H followed
;
ph:
mvi a,'H' ;H
jmp cout
;
; FILLER -- Jump Over to Next Field
;
filler:
call print
db ' ',' ',' ',0
ret
end