home *** CD-ROM | disk | FTP | other *** search
- * PROGRAM NAME: BDOS Locator
- * AUTHOR: RICHARD CONN
- * VERSION: 1.0
- * DATE: 3 July 81
- * PREVIOUS VERSIONS: -None-
-
- VERS EQU 10 ; VERSION NUMBER
- CPM$BASE EQU 0 ; BASE ADDRESS OF CP/M SYSTEM
-
- *
- * BDOS Locator simply functions to print out the base page address
- * of the user's CP/M BDOS and the base page address of the user's CP/M CCP.
- *
-
- BDOS EQU CPM$BASE+5 ; ADDRESS OF BDOS ENTRY
- CR EQU 0DH
- LF EQU 0AH
-
- ORG CPM$BASE+100H
-
- CALL PRINT
- DB 'The Base Page Address of this system''s BDOS is ',0
- LDA BDOS+2 ; GET PAGE ADDRESS
- CALL HEX$OUT ; PRINT AS 2 HEX CHARS
-
- CALL PRINT
- DB CR,LF,'The Base Page Address of this system''s CCP is ',0
- LDA BDOS+2 ; GET BDOS ADDRESS
- SUI 8 ; 800H LESS
- CALL HEX$OUT ; PRINT AS 2 HEX CHARS
-
- CALL PRINT
- DB CR,LF,0
- RET
-
- * PRINT VALUE IN REG A AS 2 HEX CHARS
- HEX$OUT:
- PUSH PSW ; SAVE VALUE
- RLC ; SHIFT NYBBLES
- RLC
- RLC
- RLC
- CALL HEX1 ; PRINT HIGH NYBBLE
- POP PSW ; GET VALUE AND PRINT LOW NYBBLE
-
- * PRINT LOW NYBBLE OF REG A AS 1 HEX CHAR
- HEX1:
- ANI 0FH ; MASK OUT HIGH
- CPI 10 ; 0-9?
- JNC HEX1A
- ADI '0' ; CONVERT 0-9 TO '0'-'9'
- JMP COUT
- HEX1A:
- ADI 'A'-10 ; CONVERT 10-15 TO 'A'-'F'
- JMP COUT
-
- * PRINT STRING ENDING IN 0 PTED TO BY RET ADR
- PRINT:
- XTHL ; SAVE HL AND GET RET ADR
- PRINT1:
- MOV A,M ; GET BYTE
- INX H ; PT TO NEXT
- ORA A ; DONE?
- JZ PRINT2
- CALL COUT ; PRINT IT
- JMP PRINT1
- PRINT2:
- XTHL ; RESTORE RET ADR AND HL
- RET
-
- * PRINT CHAR IN REG A ON CONSOLE
- COUT:
- PUSH H ; SAVE REGS
- PUSH D
- PUSH B
- MOV E,A
- MVI C,2 ; CONSOLE OUTPUT
- CALL BDOS
- POP B ; RESTORE REGS
- POP D
- POP H
- RET
-
- END
-