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