home *** CD-ROM | disk | FTP | other *** search
- Named Directory Prompt for ZCPR23
- by Jay Denebeim
- SYSOP Ovation Network
- (606) 276-1957
-
- One of the most powerful features of ZCPR is the use of names instead
- of drive/user pairs. Unfortunatly, these are not supported by ZCPR itself!
- When installing ZCPR on my system I put patches in to print then name in
- the command prompt. The form is DU:DIRNAME> if DUPRMPT is enabled, and
- DIRNAME> if its not.
- This patch should be able to be installed on any version of ZCPR. I
- am unable to include a .dif file because my source to ZCPR was garbled
- during transmission. If anyone has the source to the utility programs, I
- would appreciate it if you could up-load them onto my board, so I can
- install named directory support to them too.
- If there are any problems please contact me at:
-
- Ovation Network RCPM
- 140 Moore Drive
- Lexington, KY 40503
- (606) 276-1957
-
- .pa
- The first step is to install switches into the header file:
-
- This patch can be installed anywhere, but i think the best place to
- put it is right after the DUPRMPT equate. That is the only one associated
- with command line prompt.
-
- ; The following equates enable the named directory options.
- ; NAMDIR enables the named directory buffer.
- ; NAMBUF specifies where in core the Buffer will reside.
- ; NAMDIR enables printing of the Dir's name on the command line.
- ; set it to TRUE and the prompt will be dn:name>
- ; set it to FALSE and the prompt will be dn>
- ;
- NAMDIR equ TRUE ;ENABLE NAMED DIRS
- NAMBUF equ 0F300H ;LOCATION OF BUFFER
- NAMPMT equ TRUE ;PRINT NAME ON COMMAND LINE
-
-
- The other changes are made to the ZCPR.ASM file, pay careful attention
- to the relative jumps in the file.
-
- If all the prompt options are enabled, this jump command in the CONT:
- routine in section 2 of ZCPR should be changed to the 3 byte form:
- Change this line:
-
- JRNZ RS1
-
- To this:
-
- JNZ RS1
-
- The jump on no print of 0 while in user 0 should be changed.
-
- Change this line in the SUPRES conditional assembly section of the
- RESTRT: routine from:
-
- JRZ RS000
-
- To this:
- JRZ RSJ00
- .pa
- Finally insert the following routine between the DUPRMPT conditional
- assembly of the RESTRT routine, and the RS000: routine:
-
- ; PRINT DIRECTORY NAME IF THERE
- ;
- RSJ00:
- IF NAMPMT AND NAMDIR
- LXI H,NAMBUF ;POINT TO NAMED DIR BUFFER
- INX H ;POINT TO NUMBER OF ENTRIES
- MOV B,M ;GET IT
- XRA A ;TEST NUMBER OF ENTRIES
- CMP B ;TO SEE IF ZERO
- JRZ RS000 ;AND SKIP ROUTINE IF SO
- LDA CURDR ;GET CURRENT DRIVE NUMBER
- INX H ;POINT TO DRIVE OF FIRST ENTRY
- LXI D,10 ;SET UP ENTRY LENGTH
- RSJ01:
- MOV C,M ;GET DISK FROM TABLE
- CMP C ;IS THIS THE CURRENT ONE
- JRZ RSJ02 ;TEST USER ROUTINE
- DAD D ;POINT TO NEXT ENTRY
- DCR B ;REDUCE COUNTER
- JRNZ RSJ01 ;IF MORE, LOOP
- JR RS000 ;ELSE NO ENTRY FOR THIS DISK
- RSJ02:
- LDA CURUSR ;GET CURRENT USER
- INX H ;POINT TO USER IN THIS ENTRY
- RSJ020:
- MOV C,M ;GET USER FROM TABLE
- CMP C ;IS THIS THE CURRENT ONE
- JRZ RSJ03 ;PRINT NAME OUT
- DAD D ;POINT TO NEXT ENTRY
- DCR B ;REDUCE COUNTER
- JRNZ RSJ020 ;IF MORE, LOOP
- JR RS000 ;ELSE NO ENTRY FOR THIS USER
- RSJ03:
- IF DUPRMPT
- MVI A,':' ;USE : AS SEPARATER
- CALL CONOUT
- ENDIF ;DUPRMPT
- INX H ;POINT TO FIRST CHAR OF NAME
- MVI B,8
- RSJ030:
- MOV A,M ;GET CHAR
- CPI ' ' ;END OF NAME?
- JRZ RS000 ;WE IS DONE
- CALL CONOUT ;PUT CHAR ON SCREEN
- INX H ;POINT TO NEXT
- DCR B ;REDUCE CHAR COUNT
- JRNZ RSJ030 ;GO FOR MORE
- ENDIF ;NAMPMT
- ;
-
- I hope you enjoy these changes to ZCPR.
-
-