5. S T E P 7 : S Y S T E M S E G M E N T S  Thå  selectioî oæ thå configuratioî optionó foò thå  variouó � System Segments of ZCPR3 is described here in some detail. 5.1. Resident Command Packages Thå  followinç  ió á reformatteä duplicatå oæ thå bodù oæ  á � SYSRCP.LI  file®  Iô  ió provideä herå  tï  presenô  additionaì � informatioî  oî ho÷ tï seô thå equates®  Iô maù bå usefuì tï thå � installeò  tï havå thió installatioî manuaì opeî tï  theså  pageó � whilå hå ió editinç thió file. Eacè   entrù  foò  thå  residenô  commandó  mentionó   theiò � transienô prograí counterparts®  Theså utilitieó usuallù providå � capabilitieó  whicè exceeä thoså oæ thå programó iî thå  Residenô � Commanä Package¬ buô thå tradeofæ ió thaô eacè utilitù prograí ió � á  separatå filå oî disë whicè usuallù occupieó morå  disë  spacå � thaî aî entirå RCP®  Iî essence¬ thå RCÐ commandó providå quick¬ � convenienô capabilitieó tï thå user¬  anä thå transienô utilitieó � providå  mucè  greateò flexibilitù anä utilitù tï thå  user®  Iî � mosô reasonablå ZCPR³ Systems¬ botè facilitieó arå available. SYSTEM SEGMENT: SYS1.RCP SYSTEM: ZCPR3 WRITTEN BY: RICHARD CONN PROGRAM HEADER: SYSRCP.LIB AUTHOR: RICHARD CONN Thió  prograí headeò selectó thå commandó tï bå incorporateä � intï SYS.RCP® Iô alsï allowó selectioî oæ somå optionó foò theså � commands. IDENTIFICATION Thå followinç IÄ ió á singlå character¬  displayeä aó á parô � oæ thå RCÐ ID¬ whicè distinguisheó thió RCÐ froí otheró madå froí � thå samå baså filå (SYSRCP.ASM). RCPID EQU 'A' Witè thå potentiaì oæ severaì RCPó beinç generateä froí thió � onå  file¬  RCPIÄ ió usefuì iî identifyinç whicè RCÐ ió currentlù � loadeä tï thå user®  Thå È command¬ builô intï everù RCP¬ printó � ouô thå versioî numbeò oæ thå RCP¬ includinç thå RCPIÄ character¬ � as well as the names of the commands contained within the RCP. .pa Š 5.1.1. CP Command TRANSIENT COUNTERPART: MCOPY Thå  followinç equatå determineó iæ thå CÐ commanä  ió  madå � available® Settinç thió equatå tï TRUÅ enableó thå CÐ command. Thå  CР commanä copieó onå filå froí onå DÕ tï  anotheò  oò � intï thå samå DÕ undeò á differenô name® Thå syntaø is: CP dir:ufn=dir:ufn Examples: CP f1.txt=f2.txt CP a15:=f1.txt CP a15:f2.txt=c5:f1.txt CPON EQU TRUE 5.1.2. DIR Command TRANSIENT COUNTERPART: DIR, XD, XDIR Thå  followinç equatå determineó iæ thå DIÒ commanä ió  madå � available® Settinç thió equatå tï TRUÅ enableó thå DIÒ command. Thå   DIÒ  commanä  displayó  thå  directorù  oæ  fileó   iî � alphabeticaì ordeò acrosó thå lineó tï thå user® Thå syntaø is: DIR dir:afn Examples: DIR b7: DIR root:*.com DIRON EQU FALSE Thå DIÒ commanä allowó twï options®  Onå ió á flaç tï  telì � iô tï looë aô botè Systeí anä Non-Systeí files¬  anä thå otheò ió � á flaç tï telì iô tï looë onlù aô Systeí files®  Bù default¬ DIÒ � lookó aô Non-Systeí files. SYSFLÇ defineó thå characteò useä tï instrucô DIÒ tï looë aô � botè  Systeí anä Non-Systeí files®  Thå recommendeä valuå ió 'A§ � foò All. SOFLÇ defineó thå characteò useä tï instrucô DIÒ tï looë  aô � onlù Systeí files® Thå recommendeä valuå ió 'S§ foò System. SYSFLG EQU 'A' SOFLG EQU 'S' .pa Š Thå  followinç  equatå determineó iæ thå directorù  displayó � arå sorteä bù filenamå anä filetypå oò bù filetypå anä  filename® � Seô  SORTNÔ  tï TRUÅ tï sorô bù namå anä type¬  FALSÅ tï sorô  bù � typå anä name. SORTNT EQU TRUE Thå followinç equateó definå somå featureó oæ thå  directorù � display®  Iæ  WIDÅ  ió TRUE¬  thå filå nameó arå spaceä  fartheò � abort»  iæ  WIDÅ ió FALSE¬  theù arå closeò togetheò (foò  á  64-� columî  display)®  FENCÅ defineó thå characteò useä tï  separatå � thå filå namå entrieó iî thå display. WIDE EQU TRUE FENCE EQU '|' 5.1.3. ERA Command TRANSIENT COUNTERPART: ERASE Thå  followinç equatå determineó iæ thå ERÁ commanä ió  madå � available® Settinç thió equatå tï TRUÅ enableó thå ERÁ command. The ERA command erases files. The syntax is: ERA dir:afn or: ERA dir:afn I -- Inspect Examples: ERA b7:*.bak ERA text:*.tmp i ERAON EQU TRUE .pa Š 5.1.4. LIST and TYPE Commands TRANSIENT COUNTERPART: PRINT and PAGE Thå  followinç  equatå  determineó  iæ  thå  LISÔ  anä  TYPÅ � commandó arå madå available® Settinç thió equatå tï TRUÅ enableó � theså commands. Thå  LISTOΠ equatå  caî disablå thå  LISÔ  commanä  withouô � affectinç thå TYPÅ command. Thå  TYPÅ commanä displayó á grouð oæ fileó oî thå CRÔ whilå � thå  LISÔ commanä printó á grouð oæ fileó oî  thå  Printer®  Thå � syntaø is: TYPE dir:afn -or- LIST dir:afn Examples: TYPE b7:*.asm LIST text:*.txt LTON EQU TRUE LISTON EQU TRUE TYPÅ caî bå madå tï pagå oò noô pagå bù default®  Iæ PGDFLÔ � ió  TRUE¬  TYPÅ  pageó bù defaulô anä doeó noô pagå iæ thå  PGFLÇ � characteò (recommendeä tï bå 'P'© ió used®  Iæ PGDFLÔ ió  FALSE¬ � TYPÅ  pageó onlù wheî thå PGDFLÇ characteò ió seeî iî thå commanä � line. PGDFLT EQU TRUE PGDFLG EQU 'P' NLINEÓ defineó thå numbeò oæ lineó oî thå user'ó CRÔ screen® � Thió ió usuallù 24. NLINES EQU 24 .pa Š 5.1.5. PEEK and POKE Commands TRANSIENT COUNTERPART: None (Subset of DDT) Thå  followinç  equateó  determinå  iæ  thå  PEEË  anä  POKÅ � commandó  arå  madå  available®  Settinç theså equateó  tï  TRUÅ � enableó theså commands. Thå  PEEË  commanä  allowó thå useò tï examinå  á  chunë  oæ � memory®  Iæ thå useò simplù typeó "P¢ witè nï address¬  thå nexô � 25¶  byteó  oæ  memorù  arå displayed®  Iæ  thå  useò  typeó  "Ð � address"¬  25¶ byteó oæ memorù startinç aô thå indicateä  addresó � arå displayed® Iæ thå useò typeó "Ð addr± addr2"¬ memorù iî thió � addresó rangå ió displayed® Thå syntax: P or: P address or: P addr1 addr2 Thå  POKÅ commanä allowó thå useò tï changå thå  contenô  oæ � memory®  Thå useò musô specifù aî addresó tï POKE¬ anä twï basiã � formó arå allowed: POKE address val1 val2 ... valn and: POKE address "character string Thå  twï  formó  maù  bå intermixeä witè  leadinç  valueó  anä  á � trailinç characteò string: POKE address val1 val2 ... valn "character string Examples: P P f400 P f400 f425 POKE f400 0 1 2 POKE f400 "this is a test POKE f400 1 2 3 "hello, world PEEKON EQU TRUE POKEON EQU TRUE .pa Š 5.1.6. PROT Command TRANSIENT COUNTERPART: PROTECT Thå  followinç equatå determineó iæ thå PROÔ commanä ió madå � available® Settinç thió equatå tï TRUÅ enableó thå PROÔ command. Thå  PROÔ commanä setó thå filå protectioî attributeó foò  á � grouð  oæ files®  Thå R/Ï anä Systeí attributeó maù bå seô  witè � thå  Ò anä Ó options¬  resp¬  giveî iî anù ordeò aó "RS¢ oò "SR"® � Omissioî  oæ  onå  oæ theså optionó  toggleó  thå  oppositå  (ie¬ � omissioî oæ Ò makeó thå fileó R/W)® Thå syntax: PROT dir:afn or: PROT dir:afn R or: PROT dir:afn S or: PROT dir:afn RS -or- PROT dir:afn SR Examples: PROT b7:*.com rs PROT text:*.txt PROTON EQU TRUE 5.1.7. REN Command TRANSIENT COUNTERPART: RENAME Thå  followinç equatå determineó iæ thå REÎ commanä ió  madå � available® Settinç thió equatå tï TRUÅ enableó thå REÎ command. Thå  REΠ commanä changeó thå namå oæ onå filå  tï  another® � Thå syntax: REN dir:ufn1=ufn2 Examples: REN newfile.txt=oldfile.txt REN root:sys.rcp=sys1.rcp RENON EQU TRUE .pa Š 5.1.8. REG Command TRANSIENT COUNTERPART: REG Thå  followinç equatå determineó iæ thå REÇ commanä ió  madå � available® Settinç thió equatå tï TRUÅ enableó thå REÇ command. The REG command forms are: REG D or REG = display values of all registers REG Mreg = subtract 1 from register (Minus) REG Preg = add 1 to register (Plus) REG Sreg value = set value of indicated register Á registeò ió á ZCPR³ registeò buffer¬  indicateä bù á digiô � froí ° tï 9. Examples: REG S0 4 -- reg 0 = 4 REG S5 -- reg 5 = 0 REG P -- reg 0 = reg 0 + 1 REG P5 -- reg 5 = reg 5 + 1 REG M9 -- reg 9 = reg 9 - 1 REG D -- show values REG -- show values REGON EQU FALSE 5.1.9. WHL Command TRANSIENT COUNTERPART: WHEEL Thå  followinç equatå determineó iæ thå WHÌ commanä ió  madå � available® Settinç thió equatå tï TRUÅ enableó thå WHÌ command. Thå WHÌ commanä ió useä tï turî ofæ thå Wheeì Bytå (makå thå � useò non-priveleged© oò tï turî oî thå Wheeì Bytå (makå thå  useò � priveleged)® Thå syntaø is: WHL -- make user non-priveleged or: WHL password -- make user priveleged Also¬  thió equatå enableó thå WHLÑ command¬  whicè displayó � thå statå oæ thå Wheeì Byte® Thå syntaø is: WHLQ Examples: WHL WHL mypass WHLQ WHLON EQU FALSE Š Thå  followinç equatå defineó thå passworä tï bå useä bù thå � WHÌ  command®  Iô musô alwayó bå ¸ byteó lonç  (trailinç  spaceó � allowed© anä musô bå upper-case. WPASS MACRO DB 'SYSTEM ' ;8 characters ENDM Thå Wheeì equatå tablå enableó thå WHEEÌ facilitù oæ  ZCPR3® � Witè  thió  facility¬  á WHEEÌ BYTE¬  whicè existó  somewherå  iî � memory¬  ió  examineä beforå á seô oæ installer-selecteä commandó � arå  executed®  Iæ  thió  bytå ió noô  zero¬  theî  thå  commanä � proceeds®  Iæ  iô ió zero¬  theî thå commanä ió noô  alloweä  tï � proceeä anä ió exiteä witè aî erroò message. Thå  followinç  seô oæ equateó makå eacè  oæ  thå  indicateä � commandó  selectablå  tï responä tï thå Wheeì Bytå oò  not®  Foò � instance¬  iæ WERA=TRUE¬  theî iô respondó tï thå Wheeì Byte»  iæ � WERA=FALSE¬ iô doeó not. Theså  optionó  wilì  onlù bå effectivå iæ á Wheeì  Bytå  ió � Defineä (Z3WHÌ NÅ 0) WCP equ FALSE ;Make CP a Wheel-Oriented Command WDIR equ FALSE ; " DIR " " " " WERA equ FALSE ; " ERA " " " " WLIST equ FALSE ; " LIST " " " " WPEEK equ FALSE ; " PEEK " " " " WPOKE equ FALSE ; " POKE " " " " WPROT equ FALSE ; " PROT " " " " WREG equ FALSE ; " REG " " " " WREN equ FALSE ; " REN " " " " WTYPE equ FALSE ; " TYPE " " " " WHEEL set WCP OR WDIR OR WERA OR WLIST OR WPEEK OR WPOKE WHEEL set WHEEL OR WPROT OR WREG OR WREN OR WTYPE .pa Š 5.1.10. NOTE Command TRANSIENT COUNTERPART: NOTE NOTÅ  ió simplù á NOÐ (dï nothing© commanä whicè caî bå useä � tï placå commentó intï multiplå commanä lines®  Foò instance¬ iî � thå followinç line: dir *.com;note this is a dir display;era *.bak thå DIÒ anä ERÁ commandó perforí normally¬  anä NOTÅ simplù  doeó � nothinç verù efficiently. Settinç  thå  followinç  equatå  tï TRUÅ  enableó  thå  NOTÅ � Command. NOTEON EQU TRUE Thå  NOTÅ  commanä  ió verù convenienô iî  thå  creatioî  oæ � commenteä   displayó  anä  commanä  files®   Iô   ió   generallù � recommendeä  tï  implemenô  thió commanä aó  á  residenô  commanä � withiî  thå ZCPR³ Commanä Processoò itselæ ratheò thaî withiî  aî � RCР sincå thå ZCPR³ Commanä Processoró tenä tï havå morå rooí tï � sparå  thaî RCPó anä iô ió frequentlù desirablå tï savå  aó  mucè � space within an RCP as possible. 5.1.11. ECHO Command TRANSIENT COUNTERPART: ECHO The following equate enables the ECHO command. ECHÏ  ió usefuì iî issuinç botè messageó (tï thå  user¬  saù � withiî  á  commanä filå durinç execution© anä  escapå  sequences® � ECHÏ  caî senä itó outpuô tï thå consolå (bù default© oò  tï  thå � printeò (iæ thå firsô non-blanë characteò ió á dollaò sign)®  Iô � useó  BIOÓ calls¬  sï alì controì characteró arå passeä  exactly® � Hence¬  console-leveì  programminç  oæ  sucè  deviceó  (CRTó  anä � Printers© ió possible. Thå  ECHOLSÔ equatå determineó iæ ECHÏ ió alloweä tï  direcô � itó outpuô tï thå printer®  Iæ ECHOLSÔ ió TRUE¬  ECHÏ maù direcô � itó outpuô tï thå printeò viá thå ¤ prefiø characteò iî thå text. ECHOON EQU TRUE ECHOLST EQU TRUE Thå  ECHÏ transienô ió noô verù large¬  anä iô ió frequentlù � morå  convenienô tï havå ECHÏ implementeä iî  aî  RCP®  However¬ � sincå  spacå  withiî RCPó ió frequentlù aô á premium¬  iô maù  bå � necessarù tï emploù thå ECHÏ transient. .pa Š 5.2. Flow Command Packages Thå  followinç  ió á reformatteä duplicatå oæ thå bodù oæ  á � SYSFCP.LI  file®  Iô  ió provideä herå  tï  presenô  additionaì � informatioî  oî ho÷ tï seô thå equates®  Iô maù bå usefuì tï thå � installeò  tï havå thió installatioî manuaì opeî tï  theså  pageó � whilå hå ió editinç thió file. Á keù decisioî tï bå madå iî thå creatioî oæ FCPó ió whetheò � tï  implemenô  thå  IÆ commanä aó á COÍ filå oò  withiî  thå  FCÐ � itself. The following tradeoff should be considered: 1©  Aó  á COÍ file¬  thå IÆ commanä  offeró  manù  morå � optionó  anä  flexibilitù foò conditioî processinç thaî  aî  FCP-� resident IF. 2©  Aó  á  COÍ file¬  thå IÆ commanä addó  overheaä  bù � having to be located and loaded from disk and then executed. Iî  thå  followinç text¬  sectionó 5.2.± tï 5.2.1±  describå � optionó foò aî FCP-residenô IÆ command®  IF.COÍ containó alì  oæ � theså  optionó  anä more®  Refeò tï thå associateä HLÐ filå  foò � morå detail. SYSTEM SEGMENT: SYS1.FCP SYSTEM: ZCPR3 CUSTOMIZED BY: RICHARD CONN PROGRAM HEADER: SYSFCP.LIB AUTHOR: RICHARD CONN Thió  prograí headeò defineó thå IÆ Conditionó tï bå  placeä � intï   thå   targeô   SYS.FCР filå  (generateä   bù   assemblinç � SYSFCP.ASM). 5.2.1. IF Negation Thå followinç equatå determineó iæ leadinç negatioî ió tï bå � allowed®  Iæ thió equatå ió TRUE¬  theî formó likå thå followinç � arå permitted: IF ~EXIST filename.typ meaninç tï complemenô thå meaninç oæ thå tesô (thå abovå  returnó � TRUÅ iæ filename.tyð doeó NOÔ exist). IFONEG EQU TRUE .pa Š Assuminç IFONEÇ tï bå TRUE¬ thå followinç equatå defineó thå � characteò tï bå placeä iî fronô oæ thå IÆ optioî tï indicatå thaô � negatioî  ió  tï  bå  performed®  Iî  thå  abovå  example¬  thió � characteò waó tildå (~). NEGCHAR EQU '~' 5.2.2. IF: T (True) or F (False) Settinç  thå  followinç equatå tï TRUÅ enableó thå simplå  Ô � anä Æ optionó tï IF® Thå formaô oæ thió optioî is: IF T or IF F and it always returns TRUE or FALSE, resp. IFOTRUE EQU FALSE 5.2.3. IF: EM (Empty) Settinç  thå followinç equatå tï TRUÅ enableó IÆ tï tesô  tï � seå  iæ thå indicateä filå ió emptù oò not®  Thå formaô oæ  thió � optioî is: IF EM dir:filename.typ anä  iô returnó TRUÅ iæ thå indicateä filå doeó noô exisô  oò  ió � empty. IFOEMPTY EQU FALSE 5.2.4. IF: ER (Error) Settinç  thå followinç equatå tï TRUÅ enableó IÆ tï tesô thå � erroò codå bytå (prograí erroò codå byte)® Iæ thió bytå ió ° (nï � error)¬  iô returnó TRUE¬  elså iô returnó FALSE®  Thå formaô oæ � thió optioî is: IF ER IFOERROR EQU TRUE .pa Š 5.2.5. IF: EX (Exist) Settinç thå followinç equatå tï TRUÅ enableó IÆ tï tesô  foò � thå existencå oæ á file® Thå formaô oæ thió optioî is: IF EX dir:filename.typ and it returns TRUE if the indicated file exists. IFOEXIST EQU TRUE 5.2.6. IF: IN (Input) Settinç  thå followinç equatå tï TRUÅ enableó useò inpuô  oæ � thå  characteò  Ô  (oò  anù  otheò  characteò  foò  FALSE)®  ZEØ � processinç  ió  suspendeä foò thió single-characteò  input®  Thå � formaô oæ thió optioî is: IF IN and the IF FCP command responds with: IF True? tï whicè thå useò typeó T¬  Y¬ SPACE¬ oò CÒ tï seô thå IÆ tï TRUÅ � anä anythinç elså tï seô thå IÆ tï FALSE. IFOINPUT EQU TRUE 5.2.7. IF: NU (Null) Settinç  thå followinç equatå tï TRUÅ enableó IÆ tï tesô  tï � seå iæ thå seconä argumenô whicè followó ió NULÌ (noô  specified© � oò  not®  Thió  tesô  ió  particularlù usefuì  iî  commanä  filå � processinç  tï seå if¬  foò example¬  argumenô $² existó  anä  tï � includå iô iæ iô does® Thå formaô oæ thió optioî is: IF NU or: IF NU arg Iæ thå firsô formaô ió encountered¬  IÆ NÕ returnó TRUE»  IÆ � NÕ returnó FALSÅ witè thå seconä format. IFONULL EQU TRUE .pa Š 5.2.8. IF: n (Register Value) Settinç  thå followinç equatå tï TRUÅ enableó IÆ tï tesô  tï � seå  iæ thå indicateä registeò containó thå indicateä value®  Iæ � thió  ió preceedeä bù thå NEGCHAÒ anä IFONEÇ ió TRUE¬  theî  thió � testó  tï  seå  iæ thå indicateä registeò doeó  noô  contaiî  thå � indicateä value®  Registeró arå one-bytå memorù buffers¬ anä arå � identifieä bù thå digitó ° tï 9® Thå formaô oæ thió optioî is: IF n val Example: IF 0 -- if Reg 0 = 0 IF 0 5 -- if Reg 0 = 5 IF 5 2 -- if Reg 5 = 2 IF ~0 -- if Reg 0 <> 0 IF ~9 2 -- if Reg 9 <> 2 IFOREG EQU TRUE Thå  REÇ commanä (implementeä eitheò withiî aî RCÐ oò  aó  á � COÍ  file© ió useä tï placå valueó intï theså registeò anä modifù � anä displaù theså values. 5.2.9. IF: WH (Wheel) Settinç  thå followinç equatå tï TRUÅ enableó IÆ tï tesô  tï � seå iæ thå Wheeì Bytå ió seô oò not® Iæ so¬ IÆ WHEEÌ ió TRUE. IFOWHEEL EQU FALSE 5.2.10. IF: TC (TCAP) Settinç  thå followinç equatå tï TRUÅ enableó IÆ tï tesô  tï � seå  iæ  thå ZCPR³ TCAÐ containó á terminaì  definitioî  oò  not® � Thió  tesô  ió  particularlù  usefuì iî  commanä  filå  oò  aliaó � processinç tï seå if¬  foò example¬ á Z3TCAÐ entrù ió defineä anä � tï invokå screen-orienteä routineó iæ iô is®  Thå formaô oæ thió � optioî is: IF TC IFOTCAP EQU FALSE .pa Š 5.2.11. IF: fcb1=fcb2 Settinç  thió equatå tï TRUÅ wilì enablå IÆ tï evaluatå  thå � equalitù condition¬  checkinç tï seå iæ thå twï FCBó contaiî  thå � samå values® Iæ so¬ thå IÆ ió TRUE» iæ not¬ thå IÆ ió FALSE. Enablinç  thió equatå eliminateó thå neeä foò thå NULÌ test¬ � sincå á NULÌ tesô caî bå performeä bù usinç thå syntax: IF fcb1= IFOEQ EQU TRUE 5.2.12. COMIF - Run IF.COM Settinç thió equatå tï TRUÅ wilì causå aî IÆ executeä durinç � aî  IÆ TRUÅ oò NÏ IÆ statå tï looë iî thå ROOÔ directorù (baså oæ � patè startinç iî currenô directory© foò thå filå IF.COM¬  and¬ iæ � found¬  loaä IF.COÍ anä transfeò controì tï it® Iæ IF.COÍ ió noô � found¬  theî  IÆ Æ ió raised®  Usinç IF.COÍ provideó  mucè  morå � poweò  anä flexibilitù buô alsï requireó IF.COÍ tï bå presenô anä � takeó uð disë space. COMIF EQU FALSE 5.2.13. NOISE - Have FCP Print IF Status Messages Settinç thió equatå tï TRUÅ wilì causå anù changå iî thå  IÆ � statuó  tï bå printeä tï thå user®  Thió ió usefuì foò debugginç � purposes¬  buô  iî normaì runs¬  particularlù wherå  ALIASeó  arå � concerned¬  iô ió usuallù desirablå tï reducå thå "noise¢ aó mucè � aó possiblå anä havå thió equatå seô tï FALSE. NOISE EQU FALSE .pa Š 5.3. Input/Output Packages Input/Outpuô Packageó arå verù machine-specific¬  but¬  likå � alì packages¬ theù providå á machine-independenô interfacå tï thå � ZCPR³ Systeí iî theiò visiblå sections® Thå hiddeî parô performó � thå actuaì implementatioî oæ thå routines® Likå thå structurå oæ � thå BIOS¬ thå visiblå sectioî oæ aî I/Ï Packagå consistó oæ á JMÐ � table. Thå   installeò   whï   ió   interesteä   iî   incorporatinç � Input/Outpuô  Packageó  intï  thå  systeí  hå  ió  installinç  ió � referreä  tï thå sourcå codå filå SYSIOP.ASM®  SYSIOP.ASÍ caî bå � useä  aó á templatå througè whicè tï creatå otheò  I/Ï  Packages® � Iô   ió  filleä  witè  commentó  outlininç  thå  functionó  beinç � performed¬ anä É feeì thaô thió shoulä bå adequate. 5.4. Named Directory Files Thå  followinç ió á reformatteä duplicatå oæ thå bodù  oæ  á � SYSNDR.LI  file®  Iô  ió  provideä herå tï  presenô  additionaì � informatioî oî ho÷ tï seô thå equates®  Iô maù bå usefuì tï  thå � installeò  tï  havå thió installatioî manuaì opeî tï theså  pageó � whilå hå ió editinç thió file. DATA FILE: SYSNDR.LIB AUTHOR: Richard Conn VERSION: 1.0 DATE: 24 Feb 84 SYSNDR.LI  defineó thå structurå oæ thå memory-baseä  nameä � directory® Iô alsï defineó á fe÷ elementó foò iô anä ió suitablå � foò enclosurå iî aî NDÒ file. The general structure is: DB Disk,User ; A=1 DB 'NDIRNAME' ; 8 chars DB 'PASSWORD' ; 8 chars ... ; other entries DB 0 ; End of NDR defdu macro ?disk,?user db ?disk-'@' ; Convert Disk db ?user ; User is OK endm FIG 5-1: Named Directory Structure .pa Š Thå entirå filå ió implementeä aó onå macrï (whicè follows)® � The SYSNDR.ASM file simply refers to this macro and expands it. Thå nameä directorieó showî belo÷ arå recommendeä standards® � Iî  time¬  therå  wilì bå utilitieó whicè baså á  parô  oæ  theiò � operations on these names. sysndr macro Thå  BASÅ  directorù ió á workinç scratcè areá oî thå  firsô � disk. defdu 'A',0 db 'BASE ' db ' ' Thå  ROOÔ directorù ió thå lasô directorù referenceä iî  thå � Commanä  Searcè Path®  Thió ió wherå alì oæ thå  general-purposå � COM files are located. defdu 'A',15 db 'ROOT ' db ' ' Thå  HELÐ directorù ió wherå thå onlinå documentatioî  fileó � are stored. defdu 'A',16 db 'HELP ' db ' ' Thå  BACKUР directorù  ió wherå fileó  arå  copieä  tï  (bù � default) for backup purposes. defdu 'C',0 db 'BACKUP ' db ' ' db 0 ;End of List endm .pa Š 5.5. TCAP Files Thå  programó  TCSELECÔ  anä TCMAKÅ arå useä tï  creatå  thå � *.Z3Ô fileó whicè arå loadeä bù thå LDR.COÍ utility®  Thå loadeä � filå establisheó thå characteristicó oæ thå user'ó CRÔ  terminal¬ � anä  thió informatioî ió useä bù screen-orienteä utilities¬  sucè � as SHOW, to perform their functions. 5.6. Environment Descriptor Thå  followinç ió á reformatteä duplicatå oæ thå bodù  oæ  á � SYSENV.LI  file®  Iô  ió  provideä herå tï  presenô  additionaì � informatioî oî ho÷ tï seô thå equates®  Iô maù bå usefuì tï  thå � installeò  tï  havå thió installatioî manuaì opeî tï theså  pageó � whilå hå ió editinç thió file. Thå  entirå  filå  ió  onå  macrï  whicè  ió  referenceä  bù � SYSENV.ASM®  SYSENÖ insertó á JMÐ ° instructioî iî fronô oæ thió � macro to complete the structure of the SYS.ENV file. LIBRARY: SYSENV.LIB AUTHOR: Richard Conn Version: 1.0 Date: 18 May 84 Previous Versions: None SYSENV is the definition for my ZCPR3 environment. sysenv macro ; ; Environment Descriptor ; If inline, there is a leading JMP just before this ; envorg1: db 'Z3ENV' ; Environment ID db 1 ; class 1 environment (external) Á  Clasó ± environmenô ió externaì tï thå utilitù usinç  it® � Thió  typå  oæ  Environmenô Descriptoò ió  locateä  aô  á  buffeò � somewherå iî memory¬  anä thå ZCPR³ utilitieó simplù contaiî á 2-� bytå  pointeò whicè containó itó address®  Á Clasó ² environmenô � ió  internaì tï thå utilitù usinç it®  Thió typå oæ  Environmenô � Descriptoò  ió locateä withiî thå utilitù itself¬  takinç uð  25¶ � bytes®  Iô  ió recommendeä thaô thå ZCPR³ Systeí  bå  configureä � usinç aî externaì Environmenô Descriptor. .pa Š Thå  followinç  addresseó  anä  valueó  arå  extracteä  froí � Z3BASE.LIB. dw expath ; external path address db expaths ; number of 2-byte elements in path dw rcp ; RCP address db rcps ; number of 128-byte blocks in RCP dw iop ; IOP address db iops ; number of 128-byte blocks in IOP dw fcp ; FCP address db fcps ; number of 128-byte blocks in FCP dw z3ndir ; NDR address db z3ndirs ; number of 18-byte entries in NDR dw z3cl ; ZCPR3 Command Line db z3cls ; number of bytes in Command Line dw z3env ; ZCPR3 Environment Descriptor db z3envs ; number of 128-byte blocks dw shstk ; Shell Stack address db shstks ; number of shsize-byte entires db shsize ; size of a Shell Stack entry dw z3msg ; ZCPR3 Message buffer dw extfcb ; ZCPR3 External FCB dw extstk ; ZCPR3 External Stack Thå followinç flaç ió useä bù somå ZCPR³ Systeí utilitieó tï � determinå  ho÷  verboså  theù  arå  iî  providinç  messageó   anä � informatioî  tï thå user®  Thå QUIET.COÍ utilitù caî bå useä  tï � change this flag dynamically. db 0 ; quiet flag (1=quiet, 0=not quiet) dw z3whl ; address of Wheel Byte This data value is used by the timing routines. db 4 ; Processor Speed in MHz Thå  followinç valueó shoulä corresponä tï thoså selecteä iî � the Z3HDR.LIB file. db 'D'-'@' ; maximum disk db 31 ; maximum user .pa Š Thå  followinç valuå ió useä tï instrucô thå utilitieó aó tï � whetheò theù shoulä accepô thå DÕ forí oò not®  Iæ disableä (seô � tï  0)¬  thå  onlù waù tï referencå á directorù ió witè  thå  DIÒ � (named©  form¬  anä passworä protectioî ió directlù  provideä  bù � this. db 1 ; 1=OK to accept DU, 0=not OK Somå  ZCPR³  utilities¬   sucè  aó  PRINÔ  anä  PAGE¬   dra÷ � informatioî   froí   theså  bufferó  tï  determinå  severaì   keù � attributeó  oæ  thå deviceó theù arå  dealinç  with®  Thå  CPSEÌ � utilitù  caî  bå useä tï dynamicallù changå thå CRÔ  anä  Printeò � selections. db 0 ; CRT selection (0=CRT 0, 1=CRT 1) db 0 ; Printer selection (n=Printer n) db 80 ; width of CRT 0 db 24 ; number of lines on CRT 0 db 22 ; number of lines of text on CRT 0 db 132 ; width of CRT 1 db 24 ; number of lines on CRT 1 db 22 ; number of lines of text on CRT 1 db 80 ; width of Printer 0 db 66 ; number of lines on Printer 0 db 58 ; number of lines of text on Printer 0 db 1 ; form feed flag (0=can't formfeed, 1=can) db 102 ; width of Printer 1 db 66 ; number of lines on Printer 1 db 58 ; number of lines of text on Printer 1 db 1 ; form feed flag (0=can't formfeed, 1=can) db 80 ; width of Printer 2 db 66 ; number of lines on Printer 2 db 58 ; number of lines of text on Printer 2 db 0 ; form feed flag (0=can't formfeed, 1=can) db 102 ; width of Printer 3 db 66 ; number of lines on Printer 3 db 58 ; number of lines of text on Printer 3 db 0 ; form feed flag (0=can't formfeed, 1=can) .pa Š Thå  ZCPR³ shelì nameä SÈ caî deaì witè symboló  (variables© � whicè  arå assigneä texô stringó aó values®  Thió buffeò defineó � thå namå oæ thå filå whicè programó likå SÈ refeò tï iî ordeò  tï � resolvå  variablå  references®  Aó manù shelì variablå fileó  aó � desired may be available in this fashion. db 'SH ' ; shell variable filename db 'VAR' ; shell variable filetype Theså  bufferó arå availablå tï storå filå nameó  anä  otheò � datá  whicè  arå  passeä  froí onå utilitù tï  anotheò  whicè  ió � executeä later® Iî general¬ entrieó ³ anä ´ arå availablå tï thå � ZCPR³ utilitù programmeò aó general-purposå buffers®  Entrieó  ± � and 2 are used by some ZCPR3 System utilities at this time. db ' ' ; filename 1 db ' ' ; filetype 1 db ' ' ; filename 2 db ' ' ; filetype 2 db ' ' ; filename 3 db ' ' ; filetype 3 db ' ' ; filename 4 db ' ' ; filetype 4 ds 80H-($-envorg1+3) ; make exactly 80H bytes long ; (+3 compensates for leading JMP) .pa Š Thå followinç ió thå TCAÐ entrù foò thå TVÉ 950® Iæ LDR.COÍ � loadó  á  *.Z3Ô  file¬  thió  buffeò wilì  bå  overlaiä  (iæ  thå � Environment Descriptor is External). ; ; Terminal Capabilities Data ; envorg2: DB 'TVI 950 ' ;Name of Terminal DB 'K'-'@' ;Cursor UP DB 'V'-'@' ;Cursor DOWN DB 'L'-'@' ;Cursor RIGHT DB 'H'-'@' ;Cursor LEFT DB 00 ;CL Delay DB 00 ;CM Delay DB 00 ;CE Delay DB 1bh,'*',0 ;CL String DB 1bh,'=%+ %+ ',0 ;CM String DB 1bh,'t',0 ;CE String DB 1bh,')',0 ;SO String DB 1bh,'(',0 ;SE String DB 0 ;TI String DB 0 ;TE String ds 80H-($-envorg2) ; make exactly 80H bytes long ; ; End of Environment Descriptor ; endm