; 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