Files
RomWBW/Source/Images/d_bp/u15/SETFILE.MAC
2020-01-03 20:42:06 -08:00

108 lines
2.0 KiB
Plaintext
Raw 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.
;
; Program: SETFILE
; Author: Richard Conn
; Version: 1.0
; Date: 5 Mar 84
;
version equ 10
;
; SETFILE defines the name of a ZCPR3 File Name or displays it.
;
;
; Equates for Key Values
;
z3env SET 0f400h ;address of ZCPR3 environment
fnum equ 5ch+1 ;file number in 1st FCB
fcb equ 6ch ;2nd FCB
cr equ 0dh
lf equ 0ah
;
; External Z3LIB and SYSLIB Routines
;
ext z3init,getfn1,print,pfn1,moveb,qprint,cout
;
; Environment Definition
;
if z3env ne 0
;
; External ZCPR3 Environment Descriptor
;
jmp start
db 'Z3ENV' ;This is a ZCPR3 Utility
db 1 ;External Environment Descriptor
z3eadr:
dw z3env
start:
lhld z3eadr ;pt to ZCPR3 environment
;
else
;
; Internal ZCPR3 Environment Descriptor
;
MACLIB Z3BASE.LIB
MACLIB SYSENV.LIB
z3eadr:
jmp start
SYSENV
start:
lxi h,z3eadr ;pt to ZCPR3 environment
endif
;
; Start of Program -- Initialize ZCPR3 Environment and Print Banner
;
call z3init ;initialize the ZCPR3 Environment
call qprint
db 'SETFILE, Version '
db (version/10)+'0','.',(version mod 10)+'0',cr,lf,0
;
; Check Number of File
;
lxi h,0 ;init count
lxi d,11 ;size of each file name
lda fnum ;get number
sui '0' ;convert to binary
jc error
jz error
cpi 5 ;range?
jc selfile
;
; Print Error Message
;
error:
call print
db ' Invalid File Name Number (not 1-4)',0
ret
;
; Set Name of File
;
selfile:
dad d ;compute offset from file name 1
dcr a ;count down
jnz selfile
xchg ;DE contains offset
call getfn1 ;get ptr to shell file name
dad d ;get ptr to file name selected
lxi d,fcb+1 ;pt to name in FCB
xchg ;copy from FCB
mvi b,11 ;11 bytes
mov a,m ;get first char
cpi ' ' ;don't define if no name
cnz moveb ;define name if name given
;
; Print Name of Shell Variable File
;
call print
db ' File Name ',0
lda fnum ;get number
call cout ;print it
call print
db ' is ',0
jmp pfn1
end