home *** CD-ROM | disk | FTP | other *** search
- ;
- V.COM
-
- Size (recs) CRC Version Author/Latest Issue Disk
- 8k (58) 85DA 0.6 Bridger Mitchell 4/90 Z3COM16
-
- 1- Syntax 2- TCAP Requirements 3- Multi-file Viewing 4- Configuration
-
- V is a quad-directional file-viewer for ZCPR3. It uses an in-memory cache
- to make the most recently read sectors of a file available for re-viewing
- without additional disk reads. This allows reverse viewing of crunched files,
- up to the limit of available memory. If, when going in reverse, the cache is
- exhausted, V will automatically restart the uncrunching process from the
- beginning of the file and display the first lines.
-
- Viewing of adjacent lines/screens is rapid for both ascii and crunched
- files. Going to the End is also quick in ascii, but results in some delay
- uncrunching a large file -- the entire file must be uncrunched first.
- :1
-
- Syntax V filename.typ
- V // <-- help screen
- V filespec1 ... filespecN <-- multiple-file viewing
-
- ^C --> moves to next file "
- ^R --> moves to previous file "
- ^X --> exits the program "
-
- A filespec is an ambiguous filename and type, preceded by an optional DU: or
- DIR: specification (e.g., *.DOC; WORK:MENU??.TXT; A15:*.*; FOO.BAR).
-
- To search forward, enter "Gstring<cr>"
- UPPERcase matches exactly
- lowercase matches lower or upper
- '?' matches any character
- "G<cr>" finds next match
-
- See control menu at top of screen.
- The Z-system 'arrow' keys are also supported.
- :2
- TCAP Requirements - 1/2
-
- The termcap requirement is the addition of three strings to the standard
- Z-System termcap. These definitions are already setup in files of type ".NZT"
- (New Z-System Termcap), available on major Z-Nodes. If your terminal isn't
- already there, you can add definitions following the initialization and
- deinitialization strings. Here's an example for the Wyse-50. NOTE: This
- uses the STANDARD termcap specification (not the one in experimental use in
- early 1989 by J. W. Wright).
-
- DEFB 'TERMINALNAME' ; 13 bytes
- db 0 ; reserved
-
- [ ... next part of termcap omitted...]
-
- DEFB ESC,')',0 ; SO - Standout on string
- DEFB ESC,'(',0 ; SE - Standout end string
- DEFB 0 ; TI - Terminal init string
- DEFB 0 ; TE - Terminal de-init string
- TCAP Requirements - 2/2
-
- ;
- ; 3 extensions to standard TCAP follow immediately after "TE"
- ;
- DEFB ESC,'R',0 ; DL - Line Delete
- DEFB ESC,'E',0 ; IL - Line Insert
- DEFB ESC,'Y',0 ; CD - Clear to End of Screen String
- ;
- ; ... the rest of the termcap ...
- ;
- :3
- Multi-File Viewing
-
- V maintains a ring of all matching files. ^X will move to the next file;
- ^R moves back to the previous file. ^C exits the program. Because the ring
- is virtual, V should work on any size disk, regardless of the number of
- directory entries. (These and all other control commands may be rebound; see
- below). A list of excluded filespecs is tested; files such as COM, REL, LBR,
- !!!TIME&.DAT, etc. will be skipped automatically. You can extend this table
- by patching near the start of V.
-
-
- V uses an in-memory cache to make the most recently read sectors of a file
- available for re-viewing without additional disk reads. This allows reverse
- viewing of crunched files, up to the limit of available memory. If, when
- going in reverse, the cache is exhausted, V will automatically restart the
- uncrunching process from the beginning of the file and display the first
- lines.
- :4
- Configuration - 1/11
-
- You can change the keys that control V by assembling a modified version of the
- code below:
-
- ;
- ; offsets from 100h for configuration areas
- ;
- CONFIGBUF equ 20h
- HELPBUF equ 80h
- EXCLUDEBUF equ 200h
-
- SPACE equ 20h
- TAB equ 09h
- CR equ 0dh
- LF equ 0ah
- Configuration - 2/11
-
- 1. These are the bindings that control the V screen. In addition to the
- one to three keys for each command, V automatically picks up the cursor-
- control keys ("arrow" keys) from the Z-System tcap and uses them, in
- addition to the bindings in these tables.
-
- 2. To change the bindings, set the equates for your preferences, reassemble
- this file to HEX, and overlay onto V.COM.
-
- 3. Enter exactly 3 bytes for each binding. Use uppercase for all keys. V
- automatically converts a typed lower case key to upper case. Use a nul
- to indicate the absence of a binding.
-
- 4. Edit the help screen to match your choice of bindings.
- Configuration - 3/11
- ;
- K_up1 equ ','
- K_up2 equ 'P'-'@'
- K_up3 equ 0
- ; and, automatically, Z3TCP's left arrow key
- ;
- k_pgup1 equ '<'
- K_pgup2 equ TAB
- K_pgup3 equ 'Z'-'@'
- ; and, automatically, Z3TCP's left arrow key
-
- K_dn1 equ '.'
- K_dn2 equ SPACE
- K_dn3 equ 'N'-'@'
- ; and, automatically, Z3TCP's up arrow key
-
- K_pgdn1 equ '>'
- K_pgdn2 equ CR
- K_pgdn3 equ 'V'-'@'
- ; and, automatically, Z3TCP's down arrow key
- Configuration - 4/11
-
- ;
- K_left1 equ 'L'
- K_left2 equ 'A'-'@'
- K_left3 equ 0
- ;
- K_rt1 equ 'R'
- K_rt2 equ 'E'-'@'
- K_rt3 equ 0
- ;
- K_beg1 equ 'B'
- K_beg2 equ 0
- K_beg3 equ 0
- ;
- K_end1 equ 'E'
- K_end2 equ 0
- K_end3 equ 0
- Configuration - 5/11
-
- ;
- K_goto1 equ 'G'
- K_goto2 equ 'S'
- K_goto3 equ 0
- ;
- K_nxtf1 equ 'X'-'@'
- K_nxtf2 equ 0
- K_nxtf3 equ 0
- ;
- K_prvf1 equ 'R'-'@'
- K_prvf2 equ 0
- K_prvf3 equ 0
- ;
- K_exit1 equ 'C'-'@'
- K_exit2 equ 0
- K_exit3 equ 0
- ;
- Configuration - 6/11
-
- ;
- subttl '---------- KEY BINDINGS ----------'
- ;
- ; Each V function has three possible key values.
- ; V ignores case.
- ; If you use fewer than three keys, use nulls for the remainder.
- ;
- ;; org CONFIGBUF
- ;
- beginconfig:
- ;
- db '__UP:'
- k.up: db K_up1,K_up2,K_up3 ; Scroll one line up
- ;
- db 'PGUP:'
- k.pgup:db K_pgup1,K_pgup2,K_pgup3 ; Scroll one page (screen) up
- Configuration - 7/11
-
- ;
- db '__DN:'
- k.down: db K_dn1,K_dn2,K_dn3 ; Scroll one line down
- ;
- db 'PGDN:'
- k.pgdown:db K_pgdn1,K_pgdn2,K_pgdn3 ; Scroll one page (screen) down
- ;
- db 'LEFT:'
- k.left: db K_left1,K_left2,K_left3 ; Scroll to left
- ;
- db 'RGHT:'
- k.right:db K_rt1,K_rt2,K_rt3 ; Scroll to right
- ;
- db 'BEGN:'
- k.begin:db K_beg1,K_beg2,K_beg3 ; Display beginning of file
- ;
- db '_END:'
- k.end: db K_end1,K_end2,K_end3 ; Display end of file
- Configuration - 8/11
-
- ;
- db 'GOTO:'
- k.goto: db K_goto1,K_goto2,K_goto3 ; Goto (search) for string
- ;
- db 'NXTF:'
- k.nextfile:db K_nxtf1,K_nxtf2,K_nxtf3 ; View next file
- ;
- db 'PRVF:'
- k.prevfile:db K_prvf1,K_prvf2,K_prvf3 ; View previous file
- ;
- db 'EXIT:'
- k.exit:db K_exit1,K_exit2,K_exit3 ; Exit from V.
- ;
- .list
- configlen equ $-beginconfig
- ;
- test0 equ HELPBUF-CONFIGBUF-configlen
- ds HELPBUF-CONFIGBUF-configlen
- .xlist
- Configuration - 9/11
-
- subttl '---------- HELP AND USAGE ----------'
- ;
- ;; org HELPBUF
- ;
- ; Edit the message to correspond to the key bindings.
- ;
- helpmessage:
- ;
- db 'V commands (in addition to Z-System arrow keys):',cr,lf
- db lf
- db '1 line down . SP ^N 1 line up , ^P',cr,lf
- db '1 page down > CR ^V 1 page up < ^Z',cr,lf
- db 'n pages digit n pages digit',cr,lf
- db lf
- db 'right R left L',cr,lf
- db 'beginning B end E',cr,lf
- db 'next file ^X prev. file ^R',cr,lf
- db 'goto/search G exit ^C',cr,lf
- db 0
- Configuration - 10/11
-
- ;
- helpmsglen equ $-helpmessage
- .list
- ;!!! ERROR -- help message is too long.
-
- test2 equ EXCLUDEBUF-HELPBUF-helpmsglen
- ds EXCLUDEBUF-HELPBUF-helpmsglen
- ;
- .xlist
- subttl '---------- FILE EXCLUSION LIST ----------'
- ;
- ;
- exclude_cnt:
- db ??excnt ;; number of items in list
- .xlist
- exclude_tbl:
- Configuration - 11/11
-
- ; ruler: '--11 bytes-'
- db '!!!TIME&DAT'
- db '????????SWP'
- db '????????BIN'
- db '????????C?M'
- db '????????R?L'
- db '????????Z?L'
- db '?????????Y?'
- db '????????LBR'
- db '????????BSX'
- db '????????RSX'
- rept 5*11 ;; space for more
- db 0FFh ;; list terminator
- endm
- ??excnt equ ($-exclude_tbl)/11
- db 0
- ;
- ; end vkeys.lib