mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Create loader.asm
loader is to allow ramtest to be run as a regular CP/M program. Relocates ramtest into upper RAM page for execution
This commit is contained in:
55
Source/Apps/ramtest/loader.asm
Normal file
55
Source/Apps/ramtest/loader.asm
Normal file
@@ -0,0 +1,55 @@
|
||||
; Z80
|
||||
;***********************************
|
||||
;* Z80 TEST PROTOTYPE
|
||||
;* LOAD MONITOR FROM ROM INTO RAM AND EXECUTE PROGRAM
|
||||
;* ANDREW LYNCH
|
||||
;* LYNCHAJ@YAHOO COM
|
||||
;* 15 FEB 2007
|
||||
;***********************************
|
||||
|
||||
|
||||
;********************* CONSTANTS ****************************************
|
||||
|
||||
RAMTOP: .EQU 0FFFFh ; HIGHEST ADDRESSABLE MEMORY LOCATION
|
||||
MONSTART: .EQU 08000h ; START OF 6116 SRAM 2KB X 8 RAM F800H-FFFFH
|
||||
RAMBOTTOM: .EQU 08000h ; BEGINNING OF UPPER 32K RAM PAGE
|
||||
END: .EQU 0FFh ; MARK END OF TEXT
|
||||
CR: .EQU 0DH ; ASCII CARRIAGE RETURN CHARACTER
|
||||
LF: .EQU 0AH ; ASCII LINE FEED CHARACTER
|
||||
ESC: .EQU 1BH ; ASCII ESCAPE CHARACTER
|
||||
|
||||
ROMSTART_MON: .EQU 00200h ; WHERE THE DBGMON IS STORED IN ROM
|
||||
RAMTARG_MON: .EQU 08000h ; WHERE THE DBGMON STARTS IN RAM (ENTRY POINT)
|
||||
MOVSIZ_MON: .EQU 01000h ; DBGMON IS 4096 BYTES IN LENGTH
|
||||
|
||||
MON_ENTRY: .EQU 08000h ; DBGMON ENTRY POINT (MAY CHANGE)
|
||||
|
||||
|
||||
|
||||
;*******************************************************************
|
||||
;* START AFTER RESET
|
||||
;* FUNCTION : READY SYSTEM, LOAD MONITOR INTO RAM AND START
|
||||
;*******************************************************************
|
||||
|
||||
.ORG 00100h
|
||||
|
||||
; DI ; DISABLE INTERRUPT
|
||||
LD SP,RAMTOP ; SET STACK POINTER TO TOP OF RAM
|
||||
; IM 1 ; SET INTERRUPT MODE 1
|
||||
|
||||
LD HL,ROMSTART_MON ; WHERE IN ROM DBGMON IS STORED (FIRST BYTE)
|
||||
LD DE,RAMTARG_MON ; WHERE IN RAM TO MOVE MONITOR TO (FIRST BYTE)
|
||||
LD BC,MOVSIZ_MON ; NUMBER OF BYTES TO MOVE FROM ROM TO RAM
|
||||
LDIR ; PERFORM BLOCK COPY OF DBGMON TO UPPER RAM PAGE
|
||||
|
||||
; EI ; ENABLE INTERRUPTS (ACCESS TO MONITOR WHILE CP/M RUNNING)
|
||||
|
||||
JP MON_ENTRY ; JUMP TO START OF MONITOR
|
||||
|
||||
.FILL 001FFh-$
|
||||
|
||||
.ORG 001FFh
|
||||
FLAG:
|
||||
.DB 0FFh
|
||||
|
||||
.END
|
||||
Reference in New Issue
Block a user