1,276 bytes added,
07:37, 13 March 2007 <pre>
;; This example shows how to dump the lower ROM
;; of an Amstrad CPC or KC Compact computer.
;;
;; When active, the lower ROM is readable in the range &0000-&3fff.
;; The lower ROM contains the operating system and firmware.
;;
;; This source is released under the GNU Public License V2.
;; firmware function to activate the lower rom
.kl_l_rom_enable equ &b906
;; firmware function to restore the rom state
.kl_rom_restore equ &b90c
;;----------------------------------------------------------
;; When activated, the lower rom will be readable from &0000-&3fff.
;; The program will not function if it is in this range.
org &4000
;;-----------------------------------------
;; enable the lower (operating system) rom
;; and store the previous state
call kl_l_rom_enable
ld (rom_previous_state),a
;;-----------------------------------------
;; copy rom data to store
ld hl,&0000 ;; source
ld de,rom_data ;; dest
ld bc,&4000 ;; length
ldir
;;-----------------------------------------
;; restore the previous state
ld a,(rom_previous_state)
call kl_rom_restore
ret
;;-----------------------------------------
;; stores the previous state of the rom configuration
.rom_previous_state defb 0
;; a buffer to store the 16k of rom data
.rom_data equ $+1
</pre>