v:; ; DDTX.ASM ; CP/M DYNAMIC DEBUGGING TOOL RELOCATOR ; BY KEN BARBIER ; PUBLISHED IN NOV. 1980 MICROCOMPUTING MAG. ; ; ;THIS PROGRAM WILL LOAD DDT WITHOUT OVERLAYING THE CP/M CONSOLE ;COMMAND PROCESSOR. THIS FEATURE IS VALUABLE WHEN MODIFYING SYSTEM. ; ;Note: This program *must* be named 'ddtx.com' as it uses ;the 'ddtx' string in the ccp buffer to convert it to 'ddt' and ;load in ddt by reseting the ccp command line length. ; ;10/29/80 EQUATES ADDED FOR CP/M VERSIONS 1.4 AND 2.2 ; RODERICK W. HART WA3MEZ ; ;10/30/80 ADDED LOGIC FOR SYSTEM TO AUTOMATICALLY DETERMINE ; WHERE IT SHOULD LOAD. ; RODERICK W. HART WA3MEZ ; ;01/25/81 ;Added equates for Thinker Toys Discus/2D non-standard ccp ;size (Robert E. Spivack) ; MSIZE EQU 56 ;system size in 1024 (k) units CPM14 EQU 0 ;TRUE IF CP/M VERS 1.4X CPM2X EQU 0 ;true if cp/m vers 2.xx DISCUS EQU 1 ;true if cp/m vers 2.2 for discus/2D ; IF CPM14 CBASE EQU 2900H ;BASE OF 16K CP/M CCP BIAS EQU (MSIZE-16)*1024 ;OFFSET FOR SYSTEM NBASE EQU CBASE+BIAS-10H ;NEW BASE ADDRESS ENDIF ; IF CPM2X CBASE EQU 3400H ;BASE OF 20K CP/M CCP BIAS EQU (MSIZE-20)*1024 ;OFFSET FOR SYSTEM NBASE EQU CBASE+BIAS-10H ;NEW BASE ADDRESS ENDIF ; IF DISCUS CBASE EQU 2D00H ;base of 20K Discus/2D CCP BIAS EQU (MSIZE-20)*1024 ;offset for system NBASE EQU CBASE+BIAS-10H ;new base address ENDIF ; ORG 100H ; START LHLD 6 ;MOVE OLD JUMP TO NEW BASE SHLD NBASE+1 ;(JUMP IS TO BDOS ENTRY) LXI H,NBASE ;SET NEW BASE ADDRESS SHLD 6 ;...INTO PAGE 0 JUMP MVI M,0C3H ;JMP OPCODE TO NEW BASE LXI H,4403H ;CREATE NEW COMMAND SHLD CBASE+BIAS+7 ;...IN CONSOLE INPUT BUFFER LXI H,5444H ;......SAYING "DDT" SHLD CBASE+BIAS+9 XRA A ;TERMINATE WITH 0 STA CBASE+BIAS+0BH MVI A,8 ;RESET COMMAND POINTER STA CBASE+BIAS+88H LDA 4 ;SELECT CURRENT DRIVE MOV C,A JMP CBASE+BIAS ;...AND LOAD DDT ; END