mirror of https://github.com/wwarthen/RomWBW.git
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.
268 lines
7.1 KiB
268 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 Poke,pokeon
|
|
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
|
|
|