home *** CD-ROM | disk | FTP | other *** search
-
- ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ; S E T Z 3
- ; for ZPM3
- ; by Simeon Cran
- ; 30/3/92
- ;
- ; This program automatically sets the system environment address in the ZPM3
- ; SCB for Z3PLUS users. Certain advanced ZCPR facilities such as wheel
- ; protection of files will then be activated.
- ;
- ; Z3PLUS users should run SETZ3.COM once when they start up Z3PLUS and again
- ; when returning to regular (non-Z-System) operation. When run after Z3PLUS
- ; is started, the SCB environment address word is set with the ZCPR environment
- ; address. When run after returning to regular operation, the SCB environment
- ; address word is cleared to 0000h.
- ;
- ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- ;===============================================================================
-
- BDOS equ 5
- deffcb equ 5ch
- SCBfunc equ 31h ; Get/Set SCB function number
- SCBoff equ 3bh ; Offset in SCB to get SCB base page
- Z3ENVoff equ 83h ; Offset in SCB base page of the ZCPR system
- ; environment pointer.
-
- jp start ; Jump over general data
- db 'Z3ENV'
- db 1
- Z3ENV: dw 0
- dw 0
- HELPmsg:
- db ' SYNTAX:'
- db 10,13
- db ' SETZ3'
- db 10,13
- db ' Sets the ZCPR environment address in the SCB,'
- db 10,13
- db ' or else clears it if not running ZCPR.'
- db 10,13
- db ' SETZ3 // Displays this brief help message'
- db '$'
-
- HELP: ld de,HELPmsg
- MSGexit:
- ld c,9
- call bdos
- rst 0
-
- start: ; Get the address of the SCB environment address pointer.
- ld de,(Z3ENV)
- ld a,d
- or e ; Has it been set by Z3PLUS?
- jr nz,Zinstall ; Jump if it has
- ex de,hl
- ld a,d
- or e ; Was it in HL instead?
- jr nz,Zinstall
- Zinstall: ; DE holds 0 if uninstalling, otherwise the address of the
- ; ZCPR evironment descriptor.
- push de
- ld c,SCBfunc
- ld de,SCBPB
- call bdos ; Get base page of SCB
- ld h,a
- ld l,Z3ENVoff ; HL is now the address of the word
- pop de
- ld (hl),e
- inc hl
- ld (hl),d ; Set it appropriately
- rst 0 ; And exit.
-
-
- SCBPB: ; System control block function parameter block.
- db 03bh
- db 0 ; Get operation
-