home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug084.arc / CCPLOC.MAC < prev    next >
Text File  |  1979-12-31  |  5KB  |  232 lines

  1. ;
  2. ;  PROGRAM:  CCPLOC
  3. ;  AUTHOR:  RICHARD CONN
  4. ;  VERSION:  1.1
  5. ;  DATE:  6 JAN 83
  6. ;  PREVIOUS VERSIONS:  1.0 (14 DEC 82)
  7. ;
  8. VERS    EQU    11
  9.  
  10. ;
  11. ;    This program is Copyright (c) 1982, 1983 by Richard Conn
  12. ;    All Rights Reserved
  13. ;
  14. ;    ZCPR2 and its utilities, including this one, are released
  15. ; to the public domain.  Anyone who wishes to USE them may do so with
  16. ; no strings attached.  The author assumes no responsibility or
  17. ; liability for the use of ZCPR2 and its utilities.
  18. ;
  19. ;    The author, Richard Conn, has sole rights to this program.
  20. ; ZCPR2 and its utilities may not be sold without the express,
  21. ; written permission of the author.
  22. ;
  23.  
  24.  
  25. ;
  26. ;    CCPLOC -- CCP Locator
  27. ;
  28. ;    The purpose of CCPLOC is to locate the addresses of the running
  29. ; CP/M 2.2 CCP, BDOS, and BIOS, and to display these values to the user.
  30. ;
  31.  
  32. ;
  33. ;  CP/M Constants
  34. ;
  35. bdos    equ    5    ; BDOS Entry
  36. cr    equ    0dh
  37. lf    equ    0ah
  38.  
  39. ;
  40. ;  SYSLIB Externals
  41. ;
  42.     ext    print,phl4hc,pa2hc,cout,crlf
  43.  
  44. ;
  45. ;  Branch to Start of Program
  46. ;
  47.     jmp    start
  48.  
  49. ;
  50. ;******************************************************************
  51. ;
  52. ;  SINSFORM -- ZCPR2 Utility Standard General Purpose Initialization Format
  53. ;
  54. ;    This data block precisely defines the data format for
  55. ; initial features of a ZCPR2 system which are required for proper
  56. ; initialization of the ZCPR2-Specific Routines in SYSLIB.
  57. ;
  58.  
  59. ;
  60. ;  EXTERNAL PATH DATA
  61. ;
  62. EPAVAIL:
  63.     DB    0FFH    ; IS EXTERNAL PATH AVAILABLE? (0=NO, 0FFH=YES)
  64. EPADR:
  65.     DW    40H    ; ADDRESS OF EXTERNAL PATH IF AVAILABLE
  66.  
  67. ;
  68. ;  INTERNAL PATH DATA
  69. ;
  70. INTPATH:
  71.     DB    0,0    ; DISK, USER FOR FIRST PATH ELEMENT
  72.             ; DISK = 1 FOR A, '$' FOR CURRENT
  73.             ; USER = NUMBER, '$' FOR CURRENT
  74.     DB    0,0
  75.     DB    0,0
  76.     DB    0,0
  77.     DB    0,0
  78.     DB    0,0
  79.     DB    0,0
  80.     DB    0,0    ; DISK, USER FOR 8TH PATH ELEMENT
  81.     DB    0    ; END OF PATH
  82.  
  83. ;
  84. ;  MULTIPLE COMMAND LINE BUFFER DATA
  85. ;
  86. MCAVAIL:
  87.     DB    0FFH    ; IS MULTIPLE COMMAND LINE BUFFER AVAILABLE?
  88. MCADR:
  89.     DW    0FF00H    ; ADDRESS OF MULTIPLE COMMAND LINE BUFFER IF AVAILABLE
  90.  
  91. ;
  92. ;  DISK/USER LIMITS
  93. ;
  94. MDISK:
  95.     DB    4    ; MAXIMUM NUMBER OF DISKS
  96. MUSER:
  97.     DB    31    ; MAXIMUM USER NUMBER
  98.  
  99. ;
  100. ;  FLAGS TO PERMIT LOG IN FOR DIFFERENT USER AREA OR DISK
  101. ;
  102. DOK:
  103.     DB    0FFH    ; ALLOW DISK CHANGE? (0=NO, 0FFH=YES)
  104. UOK:
  105.     DB    0FFH    ; ALLOW USER CHANGE? (0=NO, 0FFH=YES)
  106.  
  107. ;
  108. ;  PRIVILEGED USER DATA
  109. ;
  110. PUSER:
  111.     DB    10    ; BEGINNING OF PRIVILEGED USER AREAS
  112. PPASS:
  113.     DB    'chdir',0    ; PASSWORD FOR MOVING INTO PRIV USER AREAS
  114.     DS    41-($-PPASS)    ; 40 CHARS MAX IN BUFFER + 1 for ending NULL
  115.  
  116. ;
  117. ;  CURRENT USER/DISK INDICATOR
  118. ;
  119. CINDIC:
  120.     DB    '$'    ; USUAL VALUE (FOR PATH EXPRESSIONS)
  121.  
  122. ;
  123. ;  DMA ADDRESS FOR DISK TRANSFERS
  124. ;
  125. DMADR:
  126.     DW    80H    ; TBUFF AREA
  127.  
  128. ;
  129. ;  NAMED DIRECTORY INFORMATION
  130. ;
  131. NDRADR:
  132.     DW    00000H    ; ADDRESS OF MEMORY-RESIDENT NAMED DIRECTORY
  133. NDNAMES:
  134.     DB    64    ; MAX NUMBER OF DIRECTORY NAMES
  135. DNFILE:
  136.     DB    'NAMES   '    ; NAME OF DISK NAME FILE
  137.     DB    'DIR'        ; TYPE OF DISK NAME FILE
  138.  
  139. ;
  140. ;  REQUIREMENTS FLAGS
  141. ;
  142. EPREQD:
  143.     DB    000H    ; EXTERNAL PATH?
  144. MCREQD:
  145.     DB    000H    ; MULTIPLE COMMAND LINE?
  146. MXREQD:
  147.     DB    000H    ; MAX USER/DISK?
  148. UDREQD:
  149.     DB    000H    ; ALLOW USER/DISK CHANGE?
  150. PUREQD:
  151.     DB    000H    ; PRIVILEGED USER?
  152. CDREQD:
  153.     DB    000H    ; CURRENT INDIC AND DMA?
  154. NDREQD:
  155.     DB    000H    ; NAMED DIRECTORIES?
  156. Z2CLASS:
  157.     DB    0    ; CLASS 0
  158.     DB    'ZCPR2'
  159.     DS    10    ; RESERVED
  160.  
  161. ;
  162. ;  END OF SINSFORM -- STANDARD DEFAULT PARAMETER DATA
  163. ;
  164. ;******************************************************************
  165. ;
  166.  
  167. ;
  168. ;  Start of Program
  169. ;
  170. start:
  171.     call    print
  172.     db    'CCPLOC  Version '
  173.     db    (vers/10)+'0','.',(vers mod 10)+'0'
  174.     db    cr,lf
  175.     db    cr,lf,'CP/M Element    Base Page    Base Address'
  176.     db    cr,lf,'------------    ---------    ------------',0
  177.  
  178.     lhld    bdos+1    ;get base address of BDOS
  179.     mvi    l,0    ;set to even boundary
  180.     lxi    d,-800H    ;back up to start of CCP (size of CCP)
  181.     dad    d    ;HL pts to CCP
  182.     call    print
  183.     db    cr,lf,'    CCP        ','   ',0
  184.     mov    a,h    ;base page in A
  185.     call    pa2hc    ;print as hex
  186.     call    ph    ;print H
  187.     call    filler    ;next field
  188.     call    phl4hc    ;print full address
  189.     call    ph
  190.  
  191.     lhld    bdos+1    ;just get base address of BDOS again
  192.     call    print
  193.     db    cr,lf,'    BDOS    ','   ',0
  194.     mov    a,h    ;base page in A
  195.     call    pa2hc    ;print as hex
  196.     call    ph
  197.     call    filler
  198.     call    phl4hc
  199.     call    ph
  200.  
  201.     mvi    l,0    ;set even page
  202.     lxi    d,0e00h    ;size of BDOS
  203.     dad    d    ;HL pts to BIOS
  204.     call    print
  205.     db    cr,lf,'    BIOS    ','   ',0
  206.     mov    a,h    ;base page in A
  207.     call    pa2hc    ;print as hex
  208.     call    ph
  209.     call    filler
  210.     call    phl4hc
  211.     call    ph
  212.     call    crlf    ;new lines
  213.     call    crlf
  214.     ret
  215.  
  216. ;
  217. ;  PH -- Print H followed
  218. ;
  219. ph:
  220.     mvi    a,'H'    ;H
  221.     jmp    cout
  222.  
  223. ;
  224. ;  FILLER -- Jump Over to Next Field
  225. ;
  226. filler:
  227.     call    print
  228.     db    '   ','    ','     ',0
  229.     ret
  230.  
  231.     end
  232.