home *** CD-ROM | disk | FTP | other *** search
- ; Modified CCP for CP/M version 3.1
- ;
- ; This CCP is intended to overcome some of the shortfalls of the CCP supplied
- ; with CP/M Plus. It is especially useful in an RCP/M environment. See the
- ; accompanying CCP+.DOC DOCfile for more details.
- ;
- ; This is the modified dissasembled version of the CCP.
- ;
- ; Jim Lopushinsky, Edmonton, Alberta, Canada
- ; (403) 435-6579 @ 300/1200 bps
- ;
- ;Feb 3/85 Released to public domain
- ;Feb 8/85 Incorporated DRI CCP patch #2
- ;Feb 20/85 Fixed ZCPR maxdrv compare variable
- ;Feb 20/85 Init MAXDRV,MAXUSR, and WHEEL bytes on cold boot.
- ;May 21/85 Converted Select drive to BDOS calls
- ;Sep 8/85 Added Library Command run facility (Thanks to Richard Saeks)
- ;Nov 4/85 Added EXPAND equate for expanding universe, flag bit mnemonic
- ; equates, WHLLBR equate which will only allow running of the
- ; library processor (ie: CMDRUN.COM) if the wheel byte is set,
- ; boot equates for MAXDRV, WHEEL and MAXUSR, and PRINT0 equate
- ; for printing user number in prompt if the user number is zero.
- ; - Stuart Rose
- ;Nov 6/85 Removed PRINT0 equate. User number is always displayed if
- ; user 0. Changed WHLLBR and EXPAND as option bits to eliminate
- ; the need for reassembly to change options.
- ;
- ;Sep 1986 Put in print0 equate so that I can optionally not display
- ; the user number when it is zero. Put in makecolon flag
- ; to modify program return code to be useable with a
- ; "make" program. Added ccphistory flag that will add a
- ; Unix (tm of AT&T) -style "history" mechanism.
- ; - Mike Kersenbrock
- ;
- ;
- ;
- .z80
- aseg
-
- no equ 0
- yes equ 0ffffh
-
- drvoff equ 'A' ; drive offset
- usroff equ 1 ; user offset
-
- ;------------------------------------------------------------------------------
- ;The following equate determines whether the CCP or CMDRUN library processor
- ;is assembled.
-
- ccp equ yes ;yes=CCP, no=CMDRUN
-
- ;------------------------------------------------------------------------------
- ;The following equate determines whether the CCP has UNIX (tm of AT&T) csh-like
- ;history handling enabled.
-
- ccphistory equ yes ;yes=history, no=plain-jane ccp
-
-
- ;------------------------------------------------------------------------------
- ;When enabled, this option will make colon'd commands NOT execute when the
- ;return code is ff00-ffff. Also, the code will NOT be reset unless it is
- ;a cold boot.
-
- makecolon equ yes ;yes="make" will work, no=orig version
-
-
- ;------------------------------------------------------------------------------
- ;When yes, the user number is ALWAYS printed in a prompt. When no, user number
- ;is not printed when it is zero.
-
- print0 equ no ;yes=always print user nr
-
-
- ;------------------------------------------------------------------------------
- ; The following option determines whether or not the library command processor
- ; should be invoked when a command is not found, depending on the status of
- ; the WHEEL byte. By including with the flag byte, the CCP will check the
- ; WHEEL byte and only invoke the library command processor if set. If not set
- ; then the WHEEL byte is ingored and only the "yeslbr" bit is checked (Note:
- ; for this equate to have any affect, you must set the "yeslbr" bit in the
- ; "flags" byte).
-
- whllbr equ NO ; Yes, check wheel byte before running
- ; library command processor
-
- ;------------------------------------------------------------------------------
- ; The following option determines whether or not your user-area universe
- ; should expand. Generally, your universe is set by the MAXDRV and MAXUSR
- ; bytes in the system page (page 0). However, if you are a wheel user (the
- ; WHEEL byte set), you may be able to gain access to user-areas outside this
- ; universe. If this occurs, your universe can be expanded to include these
- ; new user-areas (these new values are written back to MAXDRV and MAXUSR).
-
- expand equ NO ; Yes, change MAXDRV & MAXUSR
-
- ;------------------------------------------------------------------------------
- ; The following are the value that MAXDRV, WHEEL and MAXUSR are set to upon a
- ; bootstrap.
-
- mydrv equ 'P' - drvoff ; maximum drive
- mywhl equ 0ffh ; 0=NO WHEEL, 0FFH=WHEEL
- myusr equ 15 + usroff ; maximun user number
-
- ;------------------------------------------------------------------------------
- ; These are mnemonic for the flag byte
-
- time equ NO ; Yes, display time in prompt
- byechk equ NO ; Yes, check for BYE RSX
- noxoff equ NO ; Yes, disable flow control XON/XOFF (^Q/^S)
- yesprl equ NO ; Yes, allow PRL files
- yeslbr equ YES ; Yes, allow library command processor
- timeon equ NO ; Yes, display time-on-system instead of
- ; current time if BYE active.
-
- ;------------------------------------------------------------------------------
-
- tpa equ 0100H ; transient program area starts here
- ccporg equ 03E0H ; start of ccp
-
- ;------------------------------------------------------------------------------
- if not ccp
- ccphistory equ no
- endif
- ;------------------------------------------------------------------------------
-
- org tpa ; start at tpa
-
- jp start ;go past loader
- ;
- db 0 ;Dummy byte
-
- loadlen:
- ds 2 ;Length of Loader module
-
- ;.......
- ;
- ;Library command processor FCB. The FCB can be modified using SID or EDFILE
- ;(starting at CCPORG)
-
- org ccporg ;Room for loader module
-
- crname:
- db 0 ;User number + 1 (0 = Default) CCPORG
- db 0 ;Drive + 1 (0 = use drive search chain) CCPORG+1
- db 'CMDRUN COM' ;Library processor file name CCPORG+2
- ; ^^^^^^^^^^^ Must be 11 bytes long
-
- include CCP105.MAC
-
- end
- ry command proc