You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

267 lines
7.1 KiB

; Program: Z34RCP
; Description: Resident Command Package (RCP) for ZCPR34
; Version: 1.3
; Author: Carson Wilson
; Date: September 13, 1989
; Changes: Added CLED (command line editor shell) command.
; To save space, JetLDR ID section no longer pads end of each
; line. (JetLDR allows only 256 bytes maximum in its
; description field).
; Version: 1.2
; Author: Carson Wilson
; Date: July 9, 1989
; Changes: Uses spaces instead of tabs in JetLDR displays.
; Copyright now ZSA.
; Version: 1.1
; Author: Carson Wilson
; Date: September 14, 1988
; Changes: RCPID macro called from RCPID.LIB so that the final INCLUDE
; macro call gives total size of the RCP, including the ID
; string, with SLR assemblers.
; Label WHLQ changed to WHLQUIET in Option macro to match
; Z34HDR.LIB equate.
; Version: 1.0
; Author: Carson Wilson
; Date: June 15, 1988
; Derivation: SYSRCP (Richard Conn)
; Z34RCP is copyright 1989 by Z Systems Associates. All rights reserved.
; End-user distribution and duplication permitted for non-commercial purposes
; only. Any commercial use of Z34RCP, defined as any situation where the
; duplicator recieves revenue by duplicating or distributing Z34RCP by itself
; or in conjunction with any hardware or software product, is expressly
; prohibited unless authorized in writing by Z Systems Associates.
;=============================================================================
;
; D E F I N I T I O N S S E C T I O N
;
;=============================================================================
maclib sysdef.lib ; Common logic, sys, ascii defines
maclib z34defn.lib ; Defines offsets in Z34 command processor
maclib z34mac.lib ; Macros
maclib z34rcp.lib ; Defines command options
if ZRL
maclib z34cmn.lib ; Defines universal ZCPR named common blocks
else
maclib rcpbase.lib ; Defines addresses for one system
endif
name RCP11 ; Declare module name
; ============================================================================
; M A C R O S S E C T I O N
; ============================================================================
; Macros to include module file and print module length.
; Under SLR and compatible assemblers, a running account of current RCP
; size and bytes added will be given for each module.
;
; For other assemblers you may have to either modify the non-SLR include
; macro or use a text editor to read in the actual contents of each file
; in place of the include statement.
if SLR
;
; General purpose macro to display decimal values and messages
;
prtdec macro m1,m2,m3,m4,m5
.radix 10 ; Decimal output
.printx m1 m2 m3 m4 m5 ; Print to screen
endm
;
; Macro to include modules and display lengths.
;
include macro filename
before defl $
$include filename&.lib
after defl $
modlen defl after - before ; Module length
rcplen defl after - RCPbegin ; RCP length
recs defl rcplen / 128 ; ..in records
bytes defl rcplen mod 128 ; ..and additional bytes
prtdec %modlen,<bytes added by filename&>
prtdec <Current length is>,%recs,<records>,%bytes,<bytes.>
prtdec ; Trailing CRLF
endm
else ; Non-SLR assemblers
include macro filename
$include filename&.lib
endm
endif ; SLR
if ZRL
; =============================================================================
; J e t L D R I D S E C T I O N
; =============================================================================
; Macro to build ID block message for JetLDR. Max. length is ~256 chars.
optcnt defl 0 ; Options counter
option macro string1,enable1,string2,enable2
if enable1 ;; Skip if command not present
if [optcnt mod 4] eq 0
db cr,lf ;; New line every four options
endif
optcnt defl optcnt + 1 ;; Increment options counter
count defl 0 ;; Initialize character count
irpc char,string1 ;; Count and define characters
count defl count + 1
db '&char'
endm ; irpc
if not nul enable2 ;; Sub-option label present
if enable2 ;; Sub-option enabled
db ' (' ;; Begin sub-opt description
irpc char,string2 ;; Count and define characters
count defl count + 1
db '&char'
endm ; irpc
db ')' ;; End sub-opt description
count defl count + 3 ;; For ' ()'
endif ; enable2
endif ; not nul enable2
if [optcnt mod 4] ne 0
count defl 11 - count
rept count
db ' ' ;; Pad to 11 spaces
endm ; rept
endif ; [optcnt mod 4] ne 0
endif ; enable1
endm ; option macro
; ---------------------------------------------------------
COM /_ID_/ ; JetLDR ID block
db 'Copr. 1989 ZSA. Enabled Commands:'
option Cled,cledon
option Cls,clson,TC,clstcap
option Cp,cpon,stp,stpcall
option Dir,diron,sp,<spaceon and dirsp>
option Echo,echoon,lst,echolst
option Era,eraon,sp,<spaceon and erasp>
option Help,true
option List,liston
option Note,noteon
option Peek,peekon,hdr,peekhdr
option Poke,pokeon,q,pokeq
option Port,porton
option Protect,proton
option Quiet,quieton
option Register,regon
option Rename,renon
option Reset,reson,sp,<spaceon and resetsp>
option Space,spaceon
option Spop,cledon
option Type,lton,cls,<clson and typecls>
option Wheel,whlon,q,whlquiet
db 0 ; ID string terminator
;=============================================================================
;
; E N T R Y C O D E S E C T I O N
;
;=============================================================================
cseg
else
org z3rcp
endif ; ZRL
RCPbegin:
db 'Z3RCP' ; Package ID
include RCPcmd ; Command table and custom commands
include RCPsubs ; File of subroutines
include RCPh ; 'H' help (command list) command
; Include only selected code sections.
if cledon ; 'CLED' and 'SPOP' commands
include RCPcled
endif ;cledon
if clson
include RCPcls ; 'CLS' clear screen command
endif ;clson
if reson
include RCPr ; 'R' disk reset command
endif ;reson
if spaceon
include RCPsp ; 'SP' space on disk command
endif ;spaceon
if diron
include RCPdir ; 'DIR' directory command
endif ;diron
if eraon
include RCPera ; 'ERA' erase command
endif ;eraon
if renon
include RCPren ; 'REN' rename command
endif ;renon
if cpon
include RCPcp ; 'CP' file copying command
endif ;cpon
if echoon
include RCPecho ; 'ECHO' command
endif ;echoon
if quieton
include RCPquiet ; 'Q' quiet flag
endif ;quieton
if lton
include RCPlt ; 'LIST' and 'TYPE' commands
endif ;lton
if proton
include RCPprot ; 'PROT' file attribute setting command
endif ;proton
if peekon or pokeon or porton
include RCPiom ; 'PEEK', 'POKE', 'PORT' commands
endif ;peekon or pokeon or porton
if regon
include RCPreg ; 'REG' register operation commands
endif ;regon
if whlon
include RCPwhl ; 'WHL' command
endif ;whlon
include RCPid ; Add ID string (must come last)
RCPend: ; Used to calculate length
end
; End of Z34RCP.Z80