home *** CD-ROM | disk | FTP | other *** search
/ Power Programming / powerprogramming1994.iso / progtool / microcrn / issue_43.arc / KAYPRO43.ARC / KAYPRO.6 < prev   
Text File  |  1988-07-21  |  2KB  |  58 lines

  1. ; Micro Cornucopia issue #43
  2. ; Kaypro Column - Figure 6 SNAP.ASM
  3.  
  4. ;***********************************************
  5. ;*                                             *
  6. ;* THIS PROGRAM MAKES A COPY OF THE CP/M BIOS  *
  7. ;* IN LOW RAM, SUITABLE FOR CAPTURE WITH SAVE. *
  8. ;* AFTER RUNNING SNAP, TYPE                    *
  9. ;*                                             *
  10. ;* SAVE 18 NAME.COM                            *
  11. ;*                                             *
  12. ;***********************************************
  13.  
  14. TPA     EQU     100H    ;ADDRESS OF TPA
  15. TARGET  EQU     8000H   ;ADDRESS TO RELOCATE TO
  16. BIOS    EQU     0EE00H  ;ADDRESS OF BIOS
  17.  
  18.         ORG     TPA
  19.  
  20. SNAP:   LXI     H, IMAGE;POINT TO CODE TO MOVE
  21.         LXI     D, TARGET       ;POINT TO TARGET
  22.         MVI     B, FIN - IMAGE  ;SET BYTE COUNT
  23. LOOP1:  MOV     A, M            ;GET A BYTE
  24.         STAX    D       ;STORE IT
  25.         INX     H       ;BUMP POINTERS
  26.         INX     D
  27.         DCR     B       ;DECREMENT COUNT
  28.         JNZ     LOOP1   ;LOOP TILL DONE
  29.  
  30.         JMP     TARGET  ;JUMP TO RELOCATED CODE
  31.  
  32. ;
  33. ; IMAGE OF CODE TO BE RELOCATED
  34. ;
  35.  
  36. IMAGE:  LXI     H, BIOS ;POINT TO BIOS
  37.         LXI     D, TPA
  38.         LXI     B, - BIOS       ;BYTE COUNT
  39. LOOP2:  MOV     A, M    ;GET A BYTE
  40.         STAX    D       ;STORE IT
  41.         INX     H       ;BUMP POINTERS
  42.         INX     D
  43.         DCX     B       ;DECREMENT COUNT
  44.         MOV     A, B    ;SEE IF WE'RE DONE
  45.         ORA     C
  46.  
  47. ; THE NEXT CONSTANT IS A PHONY JUMP ADDRESS TO
  48. ; FAKE ASM INTO DEALING WITH THE RELOCATION
  49.  
  50. PHONY   EQU     LOOP2 + TARGET - IMAGE
  51.         JNZ     PHONY   ;JMP TO RELOCATED LOOP
  52.         RET
  53.  
  54. FIN:    DS      0       ;DUMMY FOR ADDR CALC
  55.  
  56.         END
  57.  
  58.