home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.whtech.com
/
ftp.whtech.com.tar
/
ftp.whtech.com
/
club100
/
ref
/
trgins.asm
< prev
next >
Wrap
Assembly Source File
|
2006-10-19
|
2KB
|
110 lines
;------
TRGINS:
;------
;Installs a 6 OR LESS character name as a ROM trigger file on the
;Model 100 directory.
;Entry: HL points to 6 OR LESS null TERMINATED
; character string to use for the name.
;Exit: None
;==============================================================
;Model 100 addresses and routines used.
;Retrieve next directory entry of an active file
;Entry: HL should point to one directory entry less than the
; point at which to begin the search. The search routine
; starts by incrementing to the next entry
;Exit: Z set = no more entries
; else
; HL points to the next directory entry with an
; active file.
NXTDIR: EQU 020D5H
;------
;Locate an empty directory slot.
;Entry: none
;Exit: HL points to a free slot
FREDIR: EQU 020ECH
;------
;Beginning of the User Directory Area
USRDIR: EQU 0F9BAH
;------
;1. Test if a Trigger file exists
PUSH H ;Save New File name.
CALL FOTRG ;Find an old trigger file
POP D ;File Name
;2. If so then install over it
JNZ TRGINS1 ;If found install over it.
;3. Otherwise locate a free directory
PUSH D ;else
RST 6 ;Call Std ROM to
DW FREDIR ;Find an empty Slot.
POP D ;and install
;4. Copy in 0F0H file type and 0FFFFH start
TRGINS1:
MVI M,0F0H ;Trigger File type
INX H ;Step past start
MVI M,0FFH ;Set start to 0FFFFH
INX H
MVI M,0FFH
INX H
;5. Copy the name to the first null and then
; nulls to the rest of the name.
MVI C,8 ;and copy in the name
TRGINS2:
LDAX D
MOV M,A
INX H ;Fill the rest of the
ORA A ;name with nulls when we
JZ TRGINS3 ;hit the null terminator
INX D
TRGINS3:
DCR C ;directory name with nulls
JNZ TRGINS2
RET
;------
FOTRG:
;------
;Searches the directory for an already existing trigger
;file and returns a pointer to it in HL if found.
;Entry: None
;Exit: Z set if none found
; else
; HL points to the directory entry
;1. Starting behind the free directory
LXI H,USRDIR-11 ;Free dir - 1 entry
;2. Get the next in use File
FOTRG1:
RST 6 ;Call Std ROM to
DW NXTDIR ;get Next Live File
RZ ;no file found
;3. Return Pointing to it if it is a ROM
; trigger file.
MOV A,M ;is it a ROM Trigger
CPI 0F0H ;Type
JNZ FOTRG1 ;No - Go again
ANA A ;Clear Z flag
RET
END