home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
ZCPR33
/
S-Z
/
SHELLINI.LBR
/
SHELLINI.Z80
< prev
Wrap
Text File
|
2000-06-30
|
1KB
|
52 lines
;
;Program to initialize the entire 128 bytes of the shell stack
;This is necessary for Wordstar CPM Version 4 only
;November, 1987--Biff Bueffel
;
Z3ENV equ 0fe00h ;for debugging purposes only
shsize equ 128 ;usual size of shell stack
;
org 100h
jp start
db 'Z3ENV'
db 1
z3eadr dw Z3ENV ;Z3ENV address
start:
ld hl,0 ;save CPM stack
add hl,sp ;
ld (cpmstk),hl ;
call shloc ;get address of z3shell stack
call inshl ;initialize shell stack
ld hl,(cpmstk) ;get CPM stack
ld sp,hl ;
ret ;back to CPM
;
; Find and save shell stack address
;
shloc: ld hl,(z3eadr) ;get z3env address
ld a,30 ;offset to find shell stack address
add a,l ;add offset to l
ld l,a ;place result in l
xor a ;zero a
adc a,h ;add any carry to h
ld h,a ;place result in h
ld a,(hl) ;get low byte shell stack address
ld (shladr),a ;store it
inc hl ;bump pointer
ld a,(hl) ;get high byte shell stack address
ld (shladr+1),a ;store it
ret
;
; Initialize the shell stack
;
inshl: ld hl,(shladr) ;get shell stack address into hl register
ld b,(shsize) ;128 bytes
zerom: ld (hl),0 ;0 memory
inc hl ;point to next byte
djnz zerom ;
ret
;
shladr ds 2 ;storage for shell stack address
cpmstk equ $
end start