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 / ENTERPRS / CPM / UTILS / F / RAMTOOLS.ARK / RT.ASM < prev    next >
Assembly Source File  |  1988-02-04  |  2KB  |  87 lines

  1. ; PROGRAM:  RamTools
  2. ; VERSION:  1.0
  3. VERS1    EQU 1+48       ;THIS GIVES US THE 2 DECIMAL DIGITS FOR THE VERSION #
  4. VERS2    EQU 0+48
  5. ; AUTHOR :  Sam Weiss   (Alias **Mad@Kaypro**)
  6. ; DATE   :  May 1, 1987 Yes... May Day... the only holiday the poor Russians
  7. ;                       Probably get!                      
  8.  
  9. BIOS    EQU    0F400H ;This is for CP/M... For Zcpr3 for 4'84, the address
  10. ;                       is: E200
  11.  
  12. CONIN    EQU    BIOS+0AH    ;BIOS CONIN OFFSET
  13. VIDOUT    EQU    BIOS+0CH    ;BIOS VIDOUT OFFSET
  14.  
  15. ;
  16. ;
  17. ; Ok.. let's start...
  18. ;
  19. ; initialize patch by copying to FF10h
  20.  
  21.     ORG    100H
  22.  
  23. FALSE    EQU    0000
  24. TRUE    EQU    .NOT.FALSE
  25. CR    EQU    0DH
  26. LF    EQU    0AH
  27.  
  28.  
  29.     LD    A,(CONIN)        ; make sure we don't patch twice
  30.     CP    010H
  31.     JP    Z,ALRED            ; jump here if program already in MEM
  32.  
  33.     CALL    UNBL            ;this turns the cursor into a block.
  34.  
  35.  
  36. ;This moves our program into high memory
  37.  
  38. DEST    EQU    0FF10H            ; destination address
  39. RCODE    EQU    0300H            ; where code to relocate is
  40. BYTCNT    EQU    0EFH            ; copy 239 bytes(although it is too much
  41.  
  42.     LD    DE,DEST            ; destination address (0F800H)
  43.     LD    HL,RCODE        ; source address
  44.     LD    BC,BYTCNT        ; length of patch
  45.     LDIR    
  46.  
  47. ; initialize bios by changing the conin jump table entry to jump to this 
  48. ; program first to see if screen dump desired
  49.  
  50.     LD    DE,(CONIN)
  51.     LD    (DEST+1),DE
  52.     LD    HL,DEST        ; this is our conin jump entry
  53.     LD    (CONIN),HL    ; patch into bios jump table
  54.  
  55.     LD    DE,MSG        ; tell user we are on line
  56.     LD    C,9        ; bdos print string function
  57.     CALL    5        ; calling Mr. Bdos
  58.     RET            ; takes us back to CCP control
  59.  
  60. MSG:    DEFB    CR,LF
  61.     DEFB    '     **** RAM Tools v',VERS1,'.',VERS2,' ****     '
  62.     DEFB    'By: Sam Weiss'
  63.     DEFB    CR,LF,'     has now been installed.',CR,LF,1BH,'B6',1BH,'B7'
  64.     DEFB    1BH,'=',56D,32D,'RT commands: ^@=SC,^^=Solid cursor,'
  65.     DEFB    '^]=clear screen,^_=Cold boot,^\print chars',1BH,'C6','$'
  66.  
  67. ALRED:    LD    DE,ALR        ; Tell user RT has been activated
  68.     LD    C,9        ; bdos print string function
  69.     CALL    5        ; call Bdos Brothers
  70.     LD    HL,(DEST+1)    ; Here we are removing our wonderful BIOS patch
  71.     LD    (CONIN),HL
  72.     RET            ; to CCP control
  73.  
  74.  
  75. UNBL:    LD    A,10
  76.     OUT    (28),A
  77.     LD    A,0
  78.     OUT    (29),A
  79.     RET
  80.  
  81. ALR:    DEFB    CR,LF
  82.     DEFB    '     **** RAM Tools v',VERS1,'.',VERS2,' ****     '
  83.     DEFB    'By: Sam Weiss'
  84.      DEFB    CR,LF,'     has now been removed.',CR,LF,1BH,'B6'
  85.     DEFB    1BH,'=',56D,32D,18H,1BH,'C7',1BH,'C6','$'
  86. END
  87.