home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / CCP / CCPCHAIN.LBR / CCPCHAIN.ASM next >
Assembly Source File  |  2000-06-30  |  2KB  |  79 lines

  1. ;CCPCHAIN.ASM OCT. 1986  P.P.P.
  2. ;
  3. ; Attach this program to the end of your assembly
  4. ; language program.  It will chain the program named
  5. ; in FILENAM to your program by inserting that file
  6. ; name into the CCP buffer.  A jump to the CCP causes
  7. ; the named program to load and execute.
  8. ;
  9. ;*************************************************
  10. ;NOTE: THE FOLLOWING ARE THE VALUES FOR MY SYSTEM
  11. ;ACTUAL VALUES USED ARE RECALCULATED AND INSERTED
  12. ;FOR THE SYSTEM IN USE
  13. CCP    EQU    0CB00H        ; START OF CCP
  14. LENBIT    EQU    0CB07H        ; LENGTH OF CCP BUFFER
  15. CCPBUF    EQU    0CB08H        ; START OF CCP BUFFER
  16. PNTR    EQU    0CB88H        ; POINTER TO CCP BUFFER
  17. ;*************************************************
  18. BDOS    EQU    5
  19. CR    EQU    0DH
  20. LF    EQU    0AH
  21.     ORG    100H
  22. ;
  23. ;*****PUT YOUR PROGRAM HERE************************
  24. ;
  25.     JMP    FINDCCP
  26. MES1:    DB    CR,LF,LF,LF,LF,'CCPCHAIN.COM   OCT. 1986  P.P.P.'
  27.     DB    CR,LF,LF,'*****PUT YOUR MESSAGE HERE*****'
  28.     DB    CR,LF,LF,'Attach this program to the end'
  29.     DB    CR,LF,'of your assembly language program.'
  30.     DB    CR,LF,'It will chain the program named in'
  31.     DB    CR,LF,'FILENAM to your program by inserting'
  32.     DB    CR,LF,'that file name into the CCP buffer.'
  33.     DB    CR,LF,'A jump to the CCP causes the named'
  34.     DB    CR,LF,'program to load and execute.'
  35.     DB    CR,LF,'$'
  36. FINDCCP:LHLD    6        ; CCP=BDOS-806H
  37.     LXI    D,0F7FAH    ; (COMPLEMENT OF 806H-1)
  38.     DAD    D        ; HL CONTAINS CCP ADDRESS
  39.     SHLD    CCP1+1        ;
  40.     LXI    D,7        ;
  41.     DAD    D        ; ADDR. OF LENGTH BIT
  42.     SHLD    PNTR1+1        ;
  43.     INX    H        ; ADDR. OF START OF BUFFER
  44.     SHLD    CCPBUF1+1    ;
  45.     SHLD    CCPBUF2+1    ;
  46.     LXI    D,80H        ;
  47.     DAD    D        ; POINTER TO CCP BUFFER
  48.     SHLD    PNTR1+1
  49.     MVI    C,9
  50.     LXI    D,MES1
  51.     CALL    BDOS
  52.     LXI    H,FILENAM
  53. CCPBUF1:LXI    D,CCPBUF
  54.     LXI    B,ENDNAM-STARTNAM
  55. LOOP1:    XCHG
  56. LOOP2:    LDAX    D
  57.     MOV    M,A
  58.     INX    H
  59.     INX    D
  60.     DCX    B
  61.     MOV    A,B
  62.     CPI    0
  63.     JNZ    LOOP2
  64.     MOV    A,C
  65.     CPI    0
  66.     JNZ    LOOP2
  67.     MVI    A,ENDNAM-STARTNAM
  68. LENBIT1:STA    LENBIT
  69. CCPBUF2:LXI    H,CCPBUF
  70. PNTR1:    SHLD    PNTR
  71.     LXI    H,4        ; GET DRIVE #
  72.     MOV    C,M        ; PLACE IT IN C
  73. CCP1:    JMP    CCP
  74. STARTNAM EQU    $
  75. FILENAM:DB    'DDT'        ; PUT NAME OF PROGRAM HERE
  76. ENDMARK:DB    00H
  77. ENDNAM    EQU    $
  78.     END
  79.