;CCPCHAIN.ASM OCT. 1986 P.P.P. ; ; Attach this program to the end of your assembly ; language program. It will chain the program named ; in FILENAM to your program by inserting that file ; name into the CCP buffer. A jump to the CCP causes ; the named program to load and execute. ; ;************************************************* ;NOTE: THE FOLLOWING ARE THE VALUES FOR MY SYSTEM ;ACTUAL VALUES USED ARE RECALCULATED AND INSERTED ;FOR THE SYSTEM IN USE CCP EQU 0CB00H ; START OF CCP LENBIT EQU 0CB07H ; LENGTH OF CCP BUFFER CCPBUF EQU 0CB08H ; START OF CCP BUFFER PNTR EQU 0CB88H ; POINTER TO CCP BUFFER ;************************************************* BDOS EQU 5 CR EQU 0DH LF EQU 0AH ORG 100H ; ;*****PUT YOUR PROGRAM HERE************************ ; JMP FINDCCP MES1: DB CR,LF,LF,LF,LF,'CCPCHAIN.COM OCT. 1986 P.P.P.' DB CR,LF,LF,'*****PUT YOUR MESSAGE HERE*****' DB CR,LF,LF,'Attach this program to the end' DB CR,LF,'of your assembly language program.' DB CR,LF,'It will chain the program named in' DB CR,LF,'FILENAM to your program by inserting' DB CR,LF,'that file name into the CCP buffer.' DB CR,LF,'A jump to the CCP causes the named' DB CR,LF,'program to load and execute.' DB CR,LF,'$' FINDCCP:LHLD 6 ; CCP=BDOS-806H LXI D,0F7FAH ; (COMPLEMENT OF 806H-1) DAD D ; HL CONTAINS CCP ADDRESS SHLD CCP1+1 ; LXI D,7 ; DAD D ; ADDR. OF LENGTH BIT SHLD PNTR1+1 ; INX H ; ADDR. OF START OF BUFFER SHLD CCPBUF1+1 ; SHLD CCPBUF2+1 ; LXI D,80H ; DAD D ; POINTER TO CCP BUFFER SHLD PNTR1+1 MVI C,9 LXI D,MES1 CALL BDOS LXI H,FILENAM CCPBUF1:LXI D,CCPBUF LXI B,ENDNAM-STARTNAM LOOP1: XCHG LOOP2: LDAX D MOV M,A INX H INX D DCX B MOV A,B CPI 0 JNZ LOOP2 MOV A,C CPI 0 JNZ LOOP2 MVI A,ENDNAM-STARTNAM LENBIT1:STA LENBIT CCPBUF2:LXI H,CCPBUF PNTR1: SHLD PNTR LXI H,4 ; GET DRIVE # MOV C,M ; PLACE IT IN C CCP1: JMP CCP STARTNAM EQU $ FILENAM:DB 'DDT' ; PUT NAME OF PROGRAM HERE ENDMARK:DB 00H ENDNAM EQU $ END