home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / utils / sysutl / rammap.lbr / RAMMAP.AZM / RAMMAP.ASM
Encoding:
Assembly Source File  |  1987-08-29  |  5.0 KB  |  200 lines

  1. ;
  2. ;                              RAMMAP.ASM
  3. ;
  4. ;       Simple program to display key memory locations for CP/M 2.2
  5. ;
  6. ;                            David L. Ransen
  7. ;                               03/25/83
  8. ;
  9. ;       Adapted from Jack Dennon, in "CP/M Revealed," Hayden 1982.
  10. ;
  11. ;
  12. ;
  13.         ORG     100H
  14. BDOS    EQU     5
  15. GETVER  EQU     12
  16. CONIN   EQU     1
  17. CONOUT  EQU     2
  18. PRSTR   EQU     9
  19. CR      EQU     0DH
  20. LF      EQU     0AH
  21. ESC     EQU     1BH
  22. ;
  23. START:  LXI     H,0
  24.         DAD     SP
  25.         SHLD    OLDSP
  26.         LXI     SP,STACK
  27. ;
  28. MMP1:   SHLD    MMPA
  29. ;
  30.         LHLD    6               ; GET BDOS ENTRY ADDRESS
  31.         SHLD    BDOSE
  32.         LXI     B,-806H         ; COMPUTE CCP BASE ADDRESS
  33.         DAD     B
  34.         SHLD    CCPFWA
  35. ;
  36.         DCX     H
  37.         SHLD    TPALWA          ; COMPUTE TPA LAST WORD ADDRESS
  38.         INX     H
  39. ;
  40.         LXI     B,800H          ; COMPUTE BDOS FIRST WORD ADDRESS
  41.         DAD     B
  42.         SHLD    BDFWA
  43.         LXI     B,6             ; COMPUTE BDOS ENTRY POINT
  44.         DAD     B
  45.         SHLD    BDOSE
  46. ;
  47.         LXI     B,0
  48. MMPA:   EQU     $-2
  49.         DAD     B
  50.         SHLD    CBFWA           ; CBIOS FIRST WORD ADDRESS
  51. ;
  52.         LXI     B,3             ; CBIOS WARM BOOT ENTRY POINT
  53.         DAD     B
  54.         SHLD    WRMBT
  55. ;
  56. ;       DISPLAY MEMORY LOCATIONS
  57. ;
  58.         LXI     D,CLRSC
  59.         CALL    PRMSG           ; CLEAR SCREEN (CURRENTLY FOR H/Z-19)
  60. ;
  61.         LXI     D,MMPB          ; PRINT DASHES
  62.         CALL    PRMSG
  63.         LXI     D,MMPC          ; PRINT CONSTANTS
  64.         CALL    PRMSG
  65. ;
  66.         LXI     H,0
  67. TPALWA: EQU     $-2             ; DISPLAY TPA LWA
  68.         CALL    DHW
  69.         LXI     D,MMPD
  70.         CALL    PRMSG
  71. ;
  72.         LXI     H,0
  73. CCPFWA: EQU     $-2             ;DISPLAY CCP FWA
  74.         CALL    DHW
  75.         LXI     D,MMPE
  76.         CALL    PRMSG
  77. ;
  78.         LXI     H,0
  79. BDFWA:  EQU     $-2             ; DISPLAY BDOS FWA
  80.         CALL    DHW
  81.         LXI     D,MMPF
  82.         CALL    PRMSG
  83. ;
  84.         LXI     H,0
  85. BDOSE:  EQU     $-2             ; DISPLAY BDOS ENTRY POINT
  86.         CALL    DHW
  87.         LXI     D,MMPG
  88.         CALL    PRMSG
  89. ;
  90.         LXI     H,0             ; DISPLAY CBIOS FWA
  91. CBFWA:  EQU     $-2
  92.         CALL    DHW
  93.         LXI     D,MMPH
  94.         CALL    PRMSG
  95. ;
  96.         LXI     H,0
  97. WRMBT:  EQU     $-2             ; DISPLAY WARMBOOT ENTRY POINT
  98.         CALL    DHW
  99.         LXI     D,MMPI
  100.         CALL    PRMSG
  101. ;
  102.         LXI     D,MMPB          ; MORE DASHES
  103.         CALL    PRMSG
  104.         LHLD    OLDSP
  105.         SPHL
  106.         RET
  107. ;
  108. ;
  109. CLRSC:  DB      ESC,'E'        ; FOR H/Z-19
  110.         DB      CR,LF,LF,'     CP/M 2.2 Key Memory Locations      ',CR,LF,LF,'$'
  111. MMPB:   DB      '----------------------------------------',CR,LF,LF,'$'
  112. MMPC:   DB      '0000  warm boot vector',CR,LF
  113.         DB      '0005  BDOS vector',CR,LF
  114.         DB      '005C  default FCB',CR,LF
  115.         DB      '0080  CP/M record buffer',CR,LF
  116.         DB      '0100  base (FWA) of TPA',CR,LF,'$'
  117. MMPD:   DB      '  Last  Word Address of TPA',CR,LF,'$'
  118. MMPE:   DB      '  CCP   base (FWA)',CR,LF,'$'
  119. MMPF:   DB      '  BDOS  base (FWA)',CR,LF,'$'
  120. MMPG:   DB      '  BDOS  entry point',CR,LF,'$'
  121. MMPH:   DB      '  CBIOS base (FWA)',CR,LF,'$'
  122. MMPI:   DB      '  CBIOS warm boot entry point',CR,LF,'$'
  123. ;
  124. ;       DHW -- DISPLAY HEX WORD
  125. ;              ENTRY: HL = WORD TO BE DISPLAYED
  126. ;
  127. DHW:    PUSH    H
  128.         MOV     A,H             ; DISPLAY HIGH BYTE
  129.         CALL    DHB
  130.         POP     H
  131.         MOV     A,L             ; DISPLAY LOW BYTE
  132. ;
  133. ;       DHB --  DISPLAY HEX BYTE
  134. ;               DISPLAY 2 HEX DIGITS
  135. ;               ENTRY: A = BYTE TO BE DISPLAYED
  136. ;
  137. DHB:    PUSH    PSW
  138.         RRC !  RRC !  RRC ! RRC !
  139.         CALL    DHD
  140.         POP     PSW
  141. ;
  142. ;       DHD --  DISPLAY HEX DIGIT
  143. ;               ENTRY: A, LOW 4 BITS = DIGIT
  144. ;
  145. DHD:    ANI     0FH
  146.         CPI     10
  147.         JNC     DHD1            ; IF NOT ASCII 0 THRU 9
  148. ;
  149.         ADI     '0'
  150.         JMP     DCH
  151. ;
  152. DHD1:   ADI     'A'-10          ; CREATE "A, B, C, D, E, OR F"
  153. ;
  154. ;       DCH --  DISPLAY ONE CHARACTER
  155. ;               ENTRY: A = ASCII CHAR
  156. ;
  157. DCH:    MOV     E,A
  158.         MVI     C,CONOUT
  159.         CALL    BDOS
  160.         RET
  161. ;
  162. ;       FCC --  FILTER OUT CONTROL CODES
  163. ;               ENTRY: A = ASCII CODE
  164. ;               EXIT:  B = ASCII CHAR
  165. ;                      A = UP-ARROW IF CONTROL CODE
  166. ;                        = OR BLANK IF NOT
  167. ;
  168. FCC:    CPI     20H
  169.         JNC     FCC1            ; IF NOT A CONTROL CODE
  170. ;
  171.         ADI     40H             ; MUST BE A CONTROL CODE
  172.         MOV     B,A
  173.         MVI     A,5EH           ; UP-ARROW
  174.         RET
  175. FCC1:   MOV     B,A
  176.         MVI     A,20H
  177.         RET
  178. ;
  179. PRMSG:  MVI     C,PRSTR
  180.         CALL    BDOS
  181.         RET
  182. ;
  183. RCC:    MVI     C,CONIN
  184.         CALL    BDOS
  185.         RET
  186. ;
  187. OLDSP:  DS      2
  188.         DS      34
  189. STACK:
  190.         END
  191. 
  192.   A,20H
  193.         RET
  194. ;
  195. PRMSG:  MVI     C,PRSTR
  196.         CALL    BDOS
  197.         RET
  198. ;
  199. RCC:    MVI     C,CONIN
  200.         C