home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power Programming
/
powerprogramming1994.iso
/
progtool
/
microcrn
/
issue_43.arc
/
KAYPRO43.ARC
/
KAYPRO.6
< prev
Wrap
Text File
|
1988-07-21
|
2KB
|
58 lines
; Micro Cornucopia issue #43
; Kaypro Column - Figure 6 SNAP.ASM
;***********************************************
;* *
;* THIS PROGRAM MAKES A COPY OF THE CP/M BIOS *
;* IN LOW RAM, SUITABLE FOR CAPTURE WITH SAVE. *
;* AFTER RUNNING SNAP, TYPE *
;* *
;* SAVE 18 NAME.COM *
;* *
;***********************************************
TPA EQU 100H ;ADDRESS OF TPA
TARGET EQU 8000H ;ADDRESS TO RELOCATE TO
BIOS EQU 0EE00H ;ADDRESS OF BIOS
ORG TPA
SNAP: LXI H, IMAGE;POINT TO CODE TO MOVE
LXI D, TARGET ;POINT TO TARGET
MVI B, FIN - IMAGE ;SET BYTE COUNT
LOOP1: MOV A, M ;GET A BYTE
STAX D ;STORE IT
INX H ;BUMP POINTERS
INX D
DCR B ;DECREMENT COUNT
JNZ LOOP1 ;LOOP TILL DONE
JMP TARGET ;JUMP TO RELOCATED CODE
;
; IMAGE OF CODE TO BE RELOCATED
;
IMAGE: LXI H, BIOS ;POINT TO BIOS
LXI D, TPA
LXI B, - BIOS ;BYTE COUNT
LOOP2: MOV A, M ;GET A BYTE
STAX D ;STORE IT
INX H ;BUMP POINTERS
INX D
DCX B ;DECREMENT COUNT
MOV A, B ;SEE IF WE'RE DONE
ORA C
; THE NEXT CONSTANT IS A PHONY JUMP ADDRESS TO
; FAKE ASM INTO DEALING WITH THE RELOCATION
PHONY EQU LOOP2 + TARGET - IMAGE
JNZ PHONY ;JMP TO RELOCATED LOOP
RET
FIN: DS 0 ;DUMMY FOR ADDR CALC
END