Files
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

81 lines
1.8 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;********** wboot.s -- Olivetti bootstrap writer*****
;*
;* 821013 S. Savitzky (Zilog) -- adapt for nonseg.
;* 820930 S. Savitzky (Zilog) -- created
;*
;****************************************************
; 01/12/83 Adapted for the Kontron ECB/16 Z8002 (DMH)
; 01/16/83 Added relocation code to relocate the
; Z8002 CP/M from 8000h to 0000h (DMH).
__text: .sect
;****************************************************
;*
;* NOTE -- THIS CODE IS HIGHLY SYSTEM-DEPENDENT
;*
;* This module contains the code that receives
;* control after being booted.
;*
;* The main function is to make sure that the
;* system, whose entry point is called "bios",
;* is passed a valid stack and PSA pointer.
;*
;****************************************************
;****************************************************
;*
;* Externals
;*
;****************************************************
.global bios
.global _wboot
;****************************************************
;*
;* Constants
;*
;****************************************************
SYSTEM .equ 00000000h ; system address
SYSSTK .equ 08000h-200h ; system stack top, leave room for PSA
SYSPSA .equ SYSSTK ; system PSA
;****************************************************
;*
;* Entry Points and post-boot Initialization
;*
;****************************************************
;* transfer vector
jr wboot
jr entry ; there is no write boot entry
jr entry
;* post-boot init
;* (note that this code
;* is position indepent).
entry: DI VI,NVI
ld r15, #SYSSTK ; init stack pointer
ld r3, #SYSPSA ; initialize PSA
ldctl psap, r3
ld r7,#0 ; destination of system copy
ld r5,#8000h ; source of system copy
ld r0,#4000h ; copy 16k words
ldir @r7,@r5,r0 ; Zip it!
ld r3,#bios
jp @r3 ; Actually jumping to low address
wboot: ld r3,#_wboot
jp @r3