home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ZSYS / SIMTEL20 / INSTALL / Z3INS4.SQ / Z3INS4.SI
Text File  |  2000-06-30  |  29KB  |  979 lines

  1. 5. S T E P   7 :   S Y S T E M   S E G M E N T S 
  2.  
  3.      Thσá selectioε oµ thσ configuratioε option≤ fo≥ thσá variou≤ ì
  4. System Segments of ZCPR3 is described here in some detail.
  5.  
  6.  
  7. 5.1. Resident Command Packages
  8.  
  9.      Thσá followinτá i≤ ß reformatteΣ duplicatσ oµ thσ bod∙ oµá ß ì
  10. SYSRCP.LI┬á file«á  I⌠á i≤ provideΣ herσá t∩á presen⌠á additiona∞ ì
  11. informatioεá oε ho≈ t∩ se⌠ thσ equates«á  I⌠ ma∙ bσ usefu∞ t∩ thσ ì
  12. installe≥á t∩ havσ thi≤ installatioε manua∞ opeε t∩á thesσá page≤ ì
  13. whilσ hσ i≤ editinτ thi≤ file.
  14.  
  15.      EacΦáá entr∙á fo≥á thσá residen⌠á command≤á mention≤áá thei≥ ì
  16. transien⌠ prograφ counterparts«á  Thesσ utilitie≤ usuall∙ providσ ì
  17. capabilitie≤á whicΦ exceeΣ thosσ oµ thσ program≤ iε thσá Residen⌠ ì
  18. CommanΣ Package¼ bu⌠ thσ tradeofµ i≤ tha⌠ eacΦ utilit∙ prograφ i≤ ì
  19. ßá separatσ filσ oε disδ whicΦ usuall∙ occupie≤ morσá disδá spacσ ì
  20. thaε aε entirσ RCP«á  Iε essence¼ thσ RC╨ command≤ providσ quick¼ ì
  21. convenien⌠ capabilitie≤ t∩ thσ user¼á anΣ thσ transien⌠ utilitie≤ ì
  22. providσá mucΦá greate≥ flexibilit∙ anΣ utilit∙ t∩ thσá user«á  Iε ì
  23. mos⌠ reasonablσ ZCPR│ Systems¼ botΦ facilitie≤ arσ available.
  24.  
  25.  
  26.  
  27. SYSTEM SEGMENT:  SYS1.RCP
  28. SYSTEM:  ZCPR3
  29. WRITTEN BY:  RICHARD CONN
  30.  
  31.  
  32. PROGRAM HEADER:  SYSRCP.LIB
  33. AUTHOR:  RICHARD CONN
  34.  
  35.      Thi≤á prograφ heade≥ select≤ thσ command≤ t∩ bσ incorporateΣ ì
  36. int∩ SYS.RCP«  I⌠ als∩ allow≤ selectioε oµ somσ option≤ fo≥ thesσ ì
  37. commands.
  38.  
  39.  
  40. IDENTIFICATION
  41.  
  42.      Thσ followinτ I─ i≤ ß singlσ character¼á displayeΣ a≤ ß par⌠ ì
  43. oµ thσ RC╨ ID¼ whicΦ distinguishe≤ thi≤ RC╨ froφ other≤ madσ froφ ì
  44. thσ samσ basσ filσ (SYSRCP.ASM).
  45.  
  46. RCPID    EQU    'A'
  47.  
  48.      WitΦ thσ potentia∞ oµ severa∞ RCP≤ beinτ generateΣ froφ thi≤ ì
  49. onσá file¼á RCPI─ i≤ usefu∞ iε identifyinτ whicΦ RC╨ i≤ currentl∙ ì
  50. loadeΣ t∩ thσ user«á  Thσ ╚ command¼ buil⌠ int∩ ever∙ RCP¼ print≤ ì
  51. ou⌠ thσ versioε numbe≥ oµ thσ RCP¼ includinτ thσ RCPI─ character¼ ì
  52. as well as the names of the commands contained within the RCP.
  53.  
  54. .paè
  55. 5.1.1. CP Command
  56.      TRANSIENT COUNTERPART: MCOPY
  57.  
  58.      Thσá followinτ equatσ determine≤ iµ thσ C╨ commanΣá i≤á madσ ì
  59. available«  Settinτ thi≤ equatσ t∩ TRU┼ enable≤ thσ C╨ command.
  60.  
  61.      Thσá C╨á commanΣ copie≤ onσ filσ froφ onσ D╒ t∩á anothe≥á o≥ ì
  62. int∩ thσ samσ D╒ unde≥ ß differen⌠ name«  Thσ synta° is:
  63.  
  64.         CP dir:ufn=dir:ufn
  65.  
  66.      Examples:
  67.         CP f1.txt=f2.txt
  68.         CP a15:=f1.txt
  69.         CP a15:f2.txt=c5:f1.txt
  70.  
  71. CPON        EQU    TRUE 
  72.  
  73.  
  74. 5.1.2. DIR Command
  75.      TRANSIENT COUNTERPART: DIR, XD, XDIR
  76.  
  77.      Thσá followinτ equatσ determine≤ iµ thσ DI╥ commanΣ i≤á madσ ì
  78. available«  Settinτ thi≤ equatσ t∩ TRU┼ enable≤ thσ DI╥ command.
  79.  
  80.      Thσáá DI╥á commanΣá display≤á thσá director∙á oµá file≤áá iε ì
  81. alphabetica∞ orde≥ acros≤ thσ line≤ t∩ thσ user«  Thσ synta° is:
  82.  
  83.         DIR dir:afn
  84.  
  85.      Examples:
  86.         DIR b7:
  87.         DIR root:*.com
  88.  
  89. DIRON        EQU    FALSE
  90.  
  91.  
  92.      Thσ DI╥ commanΣ allow≤ tw∩ options«á  Onσ i≤ ß flaτ t∩á tel∞ ì
  93. i⌠ t∩ looδ a⌠ botΦ Systeφ anΣ Non-Systeφ files¼á anΣ thσ othe≥ i≤ ì
  94. ß flaτ t∩ tel∞ i⌠ t∩ looδ onl∙ a⌠ Systeφ files«á  B∙ default¼ DI╥ ì
  95. look≤ a⌠ Non-Systeφ files.
  96.  
  97.      SYSFL╟ define≤ thσ characte≥ useΣ t∩ instruc⌠ DI╥ t∩ looδ a⌠ ì
  98. botΦá Systeφ anΣ Non-Systeφ files«á  Thσ recommendeΣ valuσ i≤ 'Aº ì
  99. fo≥ All.
  100.  
  101.      SOFL╟ define≤ thσ characte≥ useΣ t∩ instruc⌠ DI╥ t∩ looδá a⌠ ì
  102. onl∙ Systeφ files«  Thσ recommendeΣ valuσ i≤ 'Sº fo≥ System.
  103.  
  104. SYSFLG        EQU    'A'
  105. SOFLG        EQU    'S'
  106.  
  107. .paè
  108.      Thσá followinτá equatσ determine≤ iµ thσ director∙á display≤ ì
  109. arσ sorteΣ b∙ filenamσ anΣ filetypσ o≥ b∙ filetypσ anΣá filename«  ì
  110. Se⌠á SORTN╘á t∩ TRU┼ t∩ sor⌠ b∙ namσ anΣ type¼á FALS┼ t∩ sor⌠á b∙ ì
  111. typσ anΣ name.
  112.  
  113. SORTNT        EQU    TRUE 
  114.  
  115.  
  116.      Thσ followinτ equate≤ definσ somσ feature≤ oµ thσá director∙ ì
  117. display«á  Iµá WID┼á i≤ TRUE¼á thσ filσ name≤ arσ spaceΣá farthe≥ ì
  118. abort╗á iµá WID┼ i≤ FALSE¼á the∙ arσ close≥ togethe≥ (fo≥á ßá 64-ì
  119. columεá display)«á  FENC┼ define≤ thσ characte≥ useΣ t∩á separatσ ì
  120. thσ filσ namσ entrie≤ iε thσ display.
  121.  
  122. WIDE        EQU    TRUE 
  123. FENCE        EQU    '|'
  124.  
  125.  
  126. 5.1.3. ERA Command
  127.      TRANSIENT COUNTERPART: ERASE
  128.  
  129.      Thσá followinτ equatσ determine≤ iµ thσ ER┴ commanΣ i≤á madσ ì
  130. available«  Settinτ thi≤ equatσ t∩ TRU┼ enable≤ thσ ER┴ command.
  131.  
  132.      The ERA command erases files.  The syntax is:
  133.  
  134.         ERA dir:afn
  135. or:
  136.         ERA dir:afn I    -- Inspect
  137.  
  138.      Examples:
  139.         ERA b7:*.bak
  140.         ERA text:*.tmp i
  141.  
  142. ERAON        EQU    TRUE 
  143.  
  144. .paè
  145. 5.1.4. LIST and TYPE Commands
  146.      TRANSIENT COUNTERPART: PRINT and PAGE
  147.  
  148.      Thσá followinτá equatσá determine≤á iµá thσá LIS╘á anΣá TYP┼ ì
  149. command≤ arσ madσ available«  Settinτ thi≤ equatσ t∩ TRU┼ enable≤ ì
  150. thesσ commands.
  151.  
  152.      Thσá LISTO╬á equatσá caε disablσ thσá LIS╘á commanΣá withou⌠ ì
  153. affectinτ thσ TYP┼ command.
  154.  
  155.      Thσá TYP┼ commanΣ display≤ ß grou≡ oµ file≤ oε thσ CR╘ whilσ ì
  156. thσá LIS╘ commanΣ print≤ ß grou≡ oµ file≤ oεá thσá Printer«á  Thσ ì
  157. synta° is:
  158.  
  159.         TYPE dir:afn  -or-  LIST dir:afn
  160.  
  161.      Examples:
  162.         TYPE b7:*.asm
  163.         LIST text:*.txt
  164.  
  165. LTON        EQU    TRUE 
  166. LISTON        EQU    TRUE 
  167.  
  168.  
  169.      TYP┼ caε bσ madσ t∩ pagσ o≥ no⌠ pagσ b∙ default«á  Iµ PGDFL╘ ì
  170. i≤á TRUE¼á TYP┼á page≤ b∙ defaul⌠ anΣ doe≤ no⌠ pagσ iµ thσá PGFL╟ ì
  171. characte≥ (recommendeΣ t∩ bσ 'P'⌐ i≤ used«á  Iµ PGDFL╘ i≤á FALSE¼ ì
  172. TYP┼á page≤ onl∙ wheε thσ PGDFL╟ characte≥ i≤ seeε iε thσ commanΣ ì
  173. line.
  174.  
  175. PGDFLT        EQU    TRUE 
  176. PGDFLG        EQU    'P'
  177.  
  178.  
  179.      NLINE╙ define≤ thσ numbe≥ oµ line≤ oε thσ user'≤ CR╘ screen«  ì
  180. Thi≤ i≤ usuall∙ 24.
  181.  
  182. NLINES        EQU    24
  183.  
  184.  
  185. .paè
  186. 5.1.5. PEEK and POKE Commands
  187.      TRANSIENT COUNTERPART: None (Subset of DDT)
  188.  
  189.      Thσá followinτá equate≤á determinσá iµá thσá PEE╦á anΣá POK┼ ì
  190. command≤á arσá madσá available«á  Settinτ thesσ equate≤á t∩á TRU┼ ì
  191. enable≤ thesσ commands.
  192.  
  193.      Thσá PEE╦á commanΣá allow≤ thσ use≥ t∩ examinσá ßá chunδá oµ ì
  194. memory«á  Iµ thσ use≥ simpl∙ type≤ "Pó witΦ n∩ address¼á thσ nex⌠ ì
  195. 25╢á byte≤á oµá memor∙á arσ displayed«á  Iµá thσá use≥á type≤á "╨ ì
  196. address"¼á 25╢ byte≤ oµ memor∙ startinτ a⌠ thσ indicateΣá addres≤ ì
  197. arσ displayed«  Iµ thσ use≥ type≤ "╨ addr▒ addr2"¼ memor∙ iε thi≤ ì
  198. addres≤ rangσ i≤ displayed«  Thσ syntax:
  199.  
  200.         P
  201. or:
  202.         P address
  203. or:
  204.         P addr1 addr2
  205.  
  206.      Thσá POK┼ commanΣ allow≤ thσ use≥ t∩ changσ thσá conten⌠á oµ ì
  207. memory«á  Thσ use≥ mus⌠ specif∙ aε addres≤ t∩ POKE¼ anΣ tw∩ basiπ ì
  208. form≤ arσ allowed:
  209.  
  210.         POKE address val1 val2 ... valn
  211. and:
  212.         POKE address "character string
  213. Thσá tw∩á form≤á ma∙á bσ intermixeΣ witΦá leadinτá value≤á anΣá ß ì
  214. trailinτ characte≥ string:
  215.         POKE address val1 val2 ... valn "character string
  216.  
  217.      Examples:
  218.         P
  219.         P f400
  220.         P f400 f425
  221.         POKE f400 0 1 2
  222.         POKE f400 "this is a test
  223.         POKE f400 1 2 3 "hello, world
  224.  
  225. PEEKON        EQU    TRUE 
  226. POKEON        EQU    TRUE 
  227.  
  228. .paè
  229. 5.1.6. PROT Command
  230.      TRANSIENT COUNTERPART: PROTECT
  231.  
  232.      Thσá followinτ equatσ determine≤ iµ thσ PRO╘ commanΣ i≤ madσ ì
  233. available«  Settinτ thi≤ equatσ t∩ TRU┼ enable≤ thσ PRO╘ command.
  234.  
  235.      Thσá PRO╘ commanΣ set≤ thσ filσ protectioε attribute≤ fo≥á ß ì
  236. grou≡á oµ files«á  Thσ R/╧ anΣ Systeφ attribute≤ ma∙ bσ se⌠á witΦ ì
  237. thσá ╥ anΣ ╙ options¼á resp¼á giveε iε an∙ orde≥ a≤ "RSó o≥ "SR"«  ì
  238. Omissioεá oµá onσá oµ thesσ option≤á toggle≤á thσá oppositσá (ie¼ ì
  239. omissioε oµ ╥ make≤ thσ file≤ R/W)«  Thσ syntax:
  240.  
  241.         PROT dir:afn
  242. or:
  243.         PROT dir:afn R
  244. or:
  245.         PROT dir:afn S
  246. or:
  247.         PROT dir:afn RS  -or-  PROT dir:afn SR
  248.  
  249.      Examples:
  250.         PROT b7:*.com rs
  251.         PROT text:*.txt
  252.  
  253. PROTON        EQU    TRUE 
  254.  
  255.  
  256. 5.1.7. REN Command
  257.      TRANSIENT COUNTERPART: RENAME
  258.  
  259.      Thσá followinτ equatσ determine≤ iµ thσ RE╬ commanΣ i≤á madσ ì
  260. available«  Settinτ thi≤ equatσ t∩ TRU┼ enable≤ thσ RE╬ command.
  261.  
  262.      Thσá RE╬á commanΣ change≤ thσ namσ oµ onσ filσá t∩á another«  ì
  263. Thσ syntax:
  264.  
  265.         REN dir:ufn1=ufn2
  266.  
  267.      Examples:
  268.         REN newfile.txt=oldfile.txt
  269.         REN root:sys.rcp=sys1.rcp
  270.  
  271. RENON        EQU    TRUE 
  272.  
  273. .paè
  274. 5.1.8. REG Command
  275.      TRANSIENT COUNTERPART: REG
  276.  
  277.      Thσá followinτ equatσ determine≤ iµ thσ RE╟ commanΣ i≤á madσ ì
  278. available«  Settinτ thi≤ equatσ t∩ TRU┼ enable≤ thσ RE╟ command.
  279.  
  280.     The REG command forms are:
  281.         REG D or REG    = display values of all registers
  282.         REG Mreg    = subtract 1 from register (Minus)
  283.         REG Preg    = add 1 to register (Plus)
  284.         REG Sreg value    = set value of indicated register
  285.  
  286.      ┴ registe≥ i≤ ß ZCPR│ registe≥ buffer¼á indicateΣ b∙ ß digi⌠ ì
  287. froφ ░ t∩ 9.
  288.  
  289.      Examples:
  290.         REG S0 4    -- reg 0 = 4
  291.         REG S5        -- reg 5 = 0
  292.         REG P        -- reg 0 = reg 0 + 1
  293.         REG P5        -- reg 5 = reg 5 + 1
  294.         REG M9        -- reg 9 = reg 9 - 1
  295.         REG D        -- show values
  296.         REG        -- show values
  297.  
  298. REGON        EQU    FALSE
  299.  
  300.  
  301.  
  302. 5.1.9. WHL Command
  303.      TRANSIENT COUNTERPART: WHEEL
  304.  
  305.      Thσá followinτ equatσ determine≤ iµ thσ WH╠ commanΣ i≤á madσ ì
  306. available«  Settinτ thi≤ equatσ t∩ TRU┼ enable≤ thσ WH╠ command.
  307.  
  308.      Thσ WH╠ commanΣ i≤ useΣ t∩ turε ofµ thσ Whee∞ Bytσ (makσ thσ ì
  309. use≥ non-priveleged⌐ o≥ t∩ turε oε thσ Whee∞ Bytσ (makσ thσá use≥ ì
  310. priveleged)«  Thσ synta° is:
  311.  
  312.         WHL        -- make user non-priveleged
  313. or:
  314.         WHL password    -- make user priveleged
  315.  
  316.      Also¼á thi≤ equatσ enable≤ thσ WHL╤ command¼á whicΦ display≤ ì
  317. thσ statσ oµ thσ Whee∞ Byte«  Thσ synta° is:
  318.  
  319.         WHLQ
  320.  
  321.      Examples:
  322.         WHL
  323.         WHL mypass
  324.         WHLQ
  325.  
  326. WHLON        EQU    FALSE
  327. è
  328.      Thσá followinτ equatσ define≤ thσ passworΣ t∩ bσ useΣ b∙ thσ ì
  329. WH╠á command«á  I⌠ mus⌠ alway≤ bσ ╕ byte≤ lonτá (trailinτá space≤ ì
  330. allowed⌐ anΣ mus⌠ bσ upper-case.
  331.  
  332. WPASS    MACRO
  333.     DB    'SYSTEM  '    ;8 characters
  334.     ENDM
  335.  
  336.  
  337.      Thσ Whee∞ equatσ tablσ enable≤ thσ WHEE╠ facilit∙ oµá ZCPR3«  ì
  338. WitΦá thi≤á facility¼á ß WHEE╠ BYTE¼á whicΦ exist≤á somewherσá iε ì
  339. memory¼á i≤á examineΣ beforσ ß se⌠ oµ installer-selecteΣ command≤ ì
  340. arσá executed«á  Iµá thi≤á bytσ i≤ no⌠á zero¼á theεá thσá commanΣ ì
  341. proceeds«á  Iµá i⌠ i≤ zero¼á theε thσ commanΣ i≤ no⌠á alloweΣá t∩ ì
  342. proceeΣ anΣ i≤ exiteΣ witΦ aε erro≥ message.
  343.  
  344.      Thσá followinτá se⌠ oµ equate≤ makσ eacΦá oµá thσá indicateΣ ì
  345. command≤á selectablσá t∩ responΣ t∩ thσ Whee∞ Bytσ o≥á not«á  Fo≥ ì
  346. instance¼á iµ WERA=TRUE¼á theε i⌠ respond≤ t∩ thσ Whee∞ Byte╗á iµ ì
  347. WERA=FALSE¼ i⌠ doe≤ not.
  348.  
  349.      Thesσá option≤á wil∞á onl∙ bσ effectivσ iµ ß Whee∞á Bytσá i≤ ì
  350. DefineΣ (Z3WH╠ N┼ 0)
  351.  
  352. WCP    equ    FALSE    ;Make CP   a Wheel-Oriented Command
  353. WDIR    equ    FALSE    ; "   DIR  "  "       "       "
  354. WERA    equ    FALSE    ; "   ERA  "  "       "       "
  355. WLIST    equ    FALSE    ; "   LIST "  "       "       "
  356. WPEEK    equ    FALSE    ; "   PEEK "  "       "       "
  357. WPOKE    equ    FALSE    ; "   POKE "  "       "       "
  358. WPROT    equ    FALSE    ; "   PROT "  "       "       "
  359. WREG    equ    FALSE    ; "   REG  "  "       "       "
  360. WREN    equ    FALSE    ; "   REN  "  "       "       "
  361. WTYPE    equ    FALSE    ; "   TYPE "  "       "       "
  362.  
  363. WHEEL    set    WCP OR WDIR OR WERA OR WLIST OR WPEEK OR WPOKE
  364. WHEEL    set    WHEEL OR WPROT OR WREG OR WREN OR WTYPE
  365.  
  366.  
  367. .paè
  368. 5.1.10. NOTE Command
  369.      TRANSIENT COUNTERPART: NOTE
  370.  
  371.      NOT┼á i≤ simpl∙ ß NO╨ (d∩ nothing⌐ commanΣ whicΦ caε bσ useΣ ì
  372. t∩ placσ comment≤ int∩ multiplσ commanΣ lines«á  Fo≥ instance¼ iε ì
  373. thσ followinτ line:
  374.  
  375.         dir *.com;note this is a dir display;era *.bak
  376.  
  377. thσ DI╥ anΣ ER┴ command≤ perforφ normally¼á anΣ NOT┼ simpl∙á doe≤ ì
  378. nothinτ ver∙ efficiently.
  379.  
  380.      Settinτá thσá followinτá equatσá t∩ TRU┼á enable≤á thσá NOT┼ ì
  381. Command.
  382.  
  383. NOTEON    EQU    TRUE 
  384.  
  385.      Thσá NOT┼á commanΣá i≤ ver∙ convenien⌠ iεá thσá creatioεá oµ ì
  386. commenteΣáá display≤á anΣá commanΣá files«áá  I⌠áá i≤áá generall∙ ì
  387. recommendeΣá t∩á implemen⌠á thi≤ commanΣ a≤á ßá residen⌠á commanΣ ì
  388. withiεá thσ ZCPR│ CommanΣ Processo≥ itselµ rathe≥ thaε withiεá aε ì
  389. RC╨á sincσ thσ ZCPR│ CommanΣ Processor≤ tenΣ t∩ havσ morσ rooφ t∩ ì
  390. sparσá thaε RCP≤ anΣ i⌠ i≤ frequentl∙ desirablσ t∩ savσá a≤á mucΦ ì
  391. space within an RCP as possible.
  392.  
  393.  
  394. 5.1.11. ECHO Command
  395.      TRANSIENT COUNTERPART: ECHO
  396.  
  397.      The following equate enables the ECHO command.
  398.  
  399.      ECH╧á i≤ usefu∞ iε issuinτ botΦ message≤ (t∩ thσá user¼á sa∙ ì
  400. withiεá ßá commanΣ filσ durinτ execution⌐ anΣá escapσá sequences«  ì
  401. ECH╧á caε senΣ it≤ outpu⌠ t∩ thσ consolσ (b∙ default⌐ o≥á t∩á thσ ì
  402. printe≥ (iµ thσ firs⌠ non-blanδ characte≥ i≤ ß dolla≥ sign)«á  I⌠ ì
  403. use≤á BIO╙ calls¼á s∩ al∞ contro∞ character≤ arσ passeΣá exactly«  ì
  404. Hence¼á console-leve∞á programminτá oµá sucΦá device≤á (CRT≤á anΣ ì
  405. Printers⌐ i≤ possible.
  406.  
  407.      Thσá ECHOLS╘ equatσ determine≤ iµ ECH╧ i≤ alloweΣ t∩á direc⌠ ì
  408. it≤ outpu⌠ t∩ thσ printer«á  Iµ ECHOLS╘ i≤ TRUE¼á ECH╧ ma∙ direc⌠ ì
  409. it≤ outpu⌠ t∩ thσ printe≥ viß thσ ñ prefi° characte≥ iε thσ text.
  410.  
  411. ECHOON    EQU    TRUE 
  412. ECHOLST    EQU    TRUE 
  413.  
  414.  
  415.      Thσá ECH╧ transien⌠ i≤ no⌠ ver∙ large¼á anΣ i⌠ i≤ frequentl∙ ì
  416. morσá convenien⌠ t∩ havσ ECH╧ implementeΣ iεá aεá RCP«á  However¼ ì
  417. sincσá spacσá withiε RCP≤ i≤ frequentl∙ a⌠ ß premium¼á i⌠ ma∙á bσ ì
  418. necessar∙ t∩ emplo∙ thσ ECH╧ transient.
  419.  
  420. .paè
  421. 5.2. Flow Command Packages
  422.  
  423.      Thσá followinτá i≤ ß reformatteΣ duplicatσ oµ thσ bod∙ oµá ß ì
  424. SYSFCP.LI┬á file«á  I⌠á i≤ provideΣ herσá t∩á presen⌠á additiona∞ ì
  425. informatioεá oε ho≈ t∩ se⌠ thσ equates«á  I⌠ ma∙ bσ usefu∞ t∩ thσ ì
  426. installe≥á t∩ havσ thi≤ installatioε manua∞ opeε t∩á thesσá page≤ ì
  427. whilσ hσ i≤ editinτ thi≤ file.
  428.  
  429.      ┴ ke∙ decisioε t∩ bσ madσ iε thσ creatioε oµ FCP≤ i≤ whethe≥ ì
  430. t∩á implemen⌠á thσá I╞ commanΣ a≤ ß CO═ filσ o≥á withiεá thσá FC╨ ì
  431. itself.  The following tradeoff should be considered:
  432.  
  433.           1⌐á A≤á ß CO═ file¼á thσ I╞ commanΣá offer≤á man∙á morσ ì
  434. option≤á anΣá flexibilit∙ fo≥ conditioε processinτ thaεá aεá FCP-ì
  435. resident IF.
  436.  
  437.           2⌐á A≤á ßá CO═ file¼á thσ I╞ commanΣ add≤á overheaΣá b∙ ì
  438. having to be located and loaded from disk and then executed.
  439.  
  440.      Iεá thσá followinτ text¼á section≤ 5.2.▒ t∩ 5.2.1▒á describσ ì
  441. option≤ fo≥ aε FCP-residen⌠ I╞ command«á  IF.CO═ contain≤ al∞á oµ ì
  442. thesσá option≤á anΣ more«á  Refe≥ t∩ thσ associateΣ HL╨ filσá fo≥ ì
  443. morσ detail.
  444.  
  445.  
  446. SYSTEM SEGMENT:  SYS1.FCP
  447. SYSTEM:  ZCPR3
  448. CUSTOMIZED BY:  RICHARD CONN
  449.  
  450. PROGRAM HEADER:  SYSFCP.LIB
  451. AUTHOR:  RICHARD CONN
  452.  
  453.  
  454.      Thi≤á prograφ heade≥ define≤ thσ I╞ Condition≤ t∩ bσá placeΣ ì
  455. int∩áá thσáá targe⌠áá SYS.FC╨á filσá (generateΣáá b∙áá assemblinτ ì
  456. SYSFCP.ASM).
  457.  
  458.  
  459.  
  460. 5.2.1. IF Negation
  461.  
  462.      Thσ followinτ equatσ determine≤ iµ leadinτ negatioε i≤ t∩ bσ ì
  463. allowed«á  Iµ thi≤ equatσ i≤ TRUE¼á theε form≤ likσ thσ followinτ ì
  464. arσ permitted:
  465.         IF ~EXIST filename.typ
  466.  
  467. meaninτ t∩ complemen⌠ thσ meaninτ oµ thσ tes⌠ (thσ abovσá return≤ ì
  468. TRU┼ iµ filename.ty≡ doe≤ NO╘ exist).
  469.  
  470. IFONEG        EQU    TRUE 
  471.  
  472. .paè
  473.      Assuminτ IFONE╟ t∩ bσ TRUE¼ thσ followinτ equatσ define≤ thσ ì
  474. characte≥ t∩ bσ placeΣ iε fron⌠ oµ thσ I╞ optioε t∩ indicatσ tha⌠ ì
  475. negatioεá i≤á t∩á bσá performed«á  Iεá thσá abovσá example¼á thi≤ ì
  476. characte≥ wa≤ tildσ (~).
  477.  
  478. NEGCHAR        EQU    '~'
  479.  
  480.  
  481. 5.2.2. IF:  T (True) or F (False)
  482.  
  483.      Settinτá thσá followinτ equatσ t∩ TRU┼ enable≤ thσ simplσá ╘ ì
  484. anΣ ╞ option≤ t∩ IF«  Thσ forma⌠ oµ thi≤ optioε is:
  485.  
  486.         IF T or IF F
  487.  
  488. and it always returns TRUE or FALSE, resp.
  489.  
  490. IFOTRUE        EQU    FALSE
  491.  
  492.  
  493.  
  494. 5.2.3. IF:  EM (Empty)
  495.  
  496.      Settinτá thσ followinτ equatσ t∩ TRU┼ enable≤ I╞ t∩ tes⌠á t∩ ì
  497. seσá iµ thσ indicateΣ filσ i≤ empt∙ o≥ not«á  Thσ forma⌠ oµá thi≤ ì
  498. optioε is:
  499.         IF EM dir:filename.typ
  500.  
  501. anΣá i⌠ return≤ TRU┼ iµ thσ indicateΣ filσ doe≤ no⌠ exis⌠á o≥á i≤ ì
  502. empty.
  503.  
  504. IFOEMPTY    EQU    FALSE
  505.  
  506.  
  507.  
  508. 5.2.4. IF:  ER (Error)
  509.  
  510.      Settinτá thσ followinτ equatσ t∩ TRU┼ enable≤ I╞ t∩ tes⌠ thσ ì
  511. erro≥ codσ bytσ (prograφ erro≥ codσ byte)«  Iµ thi≤ bytσ i≤ ░ (n∩ ì
  512. error)¼á i⌠ return≤ TRUE¼á elsσ i⌠ return≤ FALSE«á  Thσ forma⌠ oµ ì
  513. thi≤ optioε is:
  514.         IF ER
  515.  
  516. IFOERROR    EQU    TRUE 
  517.  
  518.  
  519. .paè
  520. 5.2.5. IF:  EX (Exist)
  521.  
  522.      Settinτ thσ followinτ equatσ t∩ TRU┼ enable≤ I╞ t∩ tes⌠á fo≥ ì
  523. thσ existencσ oµ ß file«  Thσ forma⌠ oµ thi≤ optioε is:
  524.  
  525.         IF EX dir:filename.typ
  526.  
  527. and it returns TRUE if the indicated file exists.
  528.  
  529. IFOEXIST    EQU    TRUE 
  530.  
  531.  
  532. 5.2.6. IF:  IN (Input)
  533.  
  534.      Settinτá thσ followinτ equatσ t∩ TRU┼ enable≤ use≥ inpu⌠á oµ ì
  535. thσá characte≥á ╘á (o≥á an∙á othe≥á characte≥á fo≥á FALSE)«á  ZE╪ ì
  536. processinτá i≤á suspendeΣ fo≥ thi≤ single-characte≥á input«á  Thσ ì
  537. forma⌠ oµ thi≤ optioε is:
  538.  
  539.         IF IN
  540.  
  541. and the IF FCP command responds with:
  542.  
  543.             IF True?
  544.  
  545. t∩ whicΦ thσ use≥ type≤ T¼á Y¼ SPACE¼ o≥ C╥ t∩ se⌠ thσ I╞ t∩ TRU┼ ì
  546. anΣ anythinτ elsσ t∩ se⌠ thσ I╞ t∩ FALSE.
  547.  
  548. IFOINPUT    EQU    TRUE 
  549.  
  550.  
  551.  
  552. 5.2.7. IF:  NU (Null)
  553.  
  554.      Settinτá thσ followinτ equatσ t∩ TRU┼ enable≤ I╞ t∩ tes⌠á t∩ ì
  555. seσ iµ thσ seconΣ argumen⌠ whicΦ follow≤ i≤ NUL╠ (no⌠á specified⌐ ì
  556. o≥á not«á  Thi≤á tes⌠á i≤á particularl∙ usefu∞á iεá commanΣá filσ ì
  557. processinτá t∩ seσ if¼á fo≥ example¼á argumen⌠ $▓ exist≤á anΣá t∩ ì
  558. includσ i⌠ iµ i⌠ does«  Thσ forma⌠ oµ thi≤ optioε is:
  559.  
  560.         IF NU
  561. or:
  562.         IF NU arg
  563.  
  564.      Iµ thσ firs⌠ forma⌠ i≤ encountered¼á I╞ N╒ return≤ TRUE╗á I╞ ì
  565. N╒ return≤ FALS┼ witΦ thσ seconΣ format.
  566.  
  567. IFONULL        EQU    TRUE 
  568.  
  569.  
  570. .paè
  571. 5.2.8. IF:  n (Register Value)
  572.  
  573.      Settinτá thσ followinτ equatσ t∩ TRU┼ enable≤ I╞ t∩ tes⌠á t∩ ì
  574. seσá iµ thσ indicateΣ registe≥ contain≤ thσ indicateΣ value«á  Iµ ì
  575. thi≤á i≤ preceedeΣ b∙ thσ NEGCHA╥ anΣ IFONE╟ i≤ TRUE¼á theεá thi≤ ì
  576. test≤á t∩á seσá iµ thσ indicateΣ registe≥ doe≤á no⌠á contaiεá thσ ì
  577. indicateΣ value«á  Register≤ arσ one-bytσ memor∙ buffers¼ anΣ arσ ì
  578. identifieΣ b∙ thσ digit≤ ░ t∩ 9«  Thσ forma⌠ oµ thi≤ optioε is:
  579.  
  580.         IF n val
  581.  
  582.      Example:
  583.             IF 0        -- if Reg 0 = 0
  584.         IF 0 5        -- if Reg 0 = 5
  585.         IF 5 2        -- if Reg 5 = 2
  586.         IF ~0        -- if Reg 0 <> 0
  587.         IF ~9 2        -- if Reg 9 <> 2
  588.  
  589. IFOREG        EQU    TRUE 
  590.  
  591.  
  592.      Thσá RE╟ commanΣ (implementeΣ eithe≥ withiε aε RC╨ o≥á a≤á ß ì
  593. CO═á file⌐ i≤ useΣ t∩ placσ value≤ int∩ thesσ registe≥ anΣ modif∙ ì
  594. anΣ displa∙ thesσ values.
  595.  
  596.  
  597.  
  598. 5.2.9. IF:  WH (Wheel)
  599.  
  600.      Settinτá thσ followinτ equatσ t∩ TRU┼ enable≤ I╞ t∩ tes⌠á t∩ ì
  601. seσ iµ thσ Whee∞ Bytσ i≤ se⌠ o≥ not«  Iµ so¼ I╞ WHEE╠ i≤ TRUE.
  602.  
  603. IFOWHEEL    EQU    FALSE
  604.  
  605.  
  606.  
  607. 5.2.10. IF:  TC (TCAP)
  608.  
  609.      Settinτá thσ followinτ equatσ t∩ TRU┼ enable≤ I╞ t∩ tes⌠á t∩ ì
  610. seσá iµá thσ ZCPR│ TCA╨ contain≤ ß termina∞á definitioεá o≥á not«  ì
  611. Thi≤á tes⌠á i≤á particularl∙á usefu∞ iεá commanΣá filσá o≥á alia≤ ì
  612. processinτ t∩ seσ if¼á fo≥ example¼ ß Z3TCA╨ entr∙ i≤ defineΣ anΣ ì
  613. t∩ invokσ screen-orienteΣ routine≤ iµ i⌠ is«á  Thσ forma⌠ oµ thi≤ ì
  614. optioε is:
  615.  
  616.         IF TC
  617.  
  618. IFOTCAP        EQU    FALSE
  619.  
  620.  
  621. .paè
  622. 5.2.11. IF:  fcb1=fcb2
  623.  
  624.      Settinτá thi≤ equatσ t∩ TRU┼ wil∞ enablσ I╞ t∩ evaluatσá thσ ì
  625. equalit∙ condition¼á checkinτ t∩ seσ iµ thσ tw∩ FCB≤ contaiεá thσ ì
  626. samσ values«  Iµ so¼ thσ I╞ i≤ TRUE╗ iµ not¼ thσ I╞ i≤ FALSE.
  627.  
  628.      Enablinτá thi≤ equatσ eliminate≤ thσ neeΣ fo≥ thσ NUL╠ test¼ ì
  629. sincσ ß NUL╠ tes⌠ caε bσ performeΣ b∙ usinτ thσ syntax:
  630.  
  631.         IF fcb1=
  632.  
  633. IFOEQ        EQU    TRUE
  634.  
  635.  
  636.  
  637. 5.2.12. COMIF - Run IF.COM
  638.  
  639.      Settinτ thi≤ equatσ t∩ TRU┼ wil∞ causσ aε I╞ executeΣ durinτ ì
  640. aεá I╞ TRU┼ o≥ N╧ I╞ statσ t∩ looδ iε thσ ROO╘ director∙ (basσ oµ ì
  641. patΦ startinτ iε curren⌠ directory⌐ fo≥ thσ filσ IF.COM¼á and¼ iµ ì
  642. found¼á loaΣ IF.CO═ anΣ transfe≥ contro∞ t∩ it«  Iµ IF.CO═ i≤ no⌠ ì
  643. found¼á theεá I╞ ╞ i≤ raised«á  Usinτ IF.CO═ provide≤á mucΦá morσ ì
  644. powe≥á anΣ flexibilit∙ bu⌠ als∩ require≤ IF.CO═ t∩ bσ presen⌠ anΣ ì
  645. take≤ u≡ disδ space.
  646.  
  647. COMIF        EQU    FALSE
  648.  
  649.  
  650.  
  651. 5.2.13. NOISE - Have FCP Print IF Status Messages
  652.  
  653.      Settinτ thi≤ equatσ t∩ TRU┼ wil∞ causσ an∙ changσ iε thσá I╞ ì
  654. statu≤á t∩ bσ printeΣ t∩ thσ user«á  Thi≤ i≤ usefu∞ fo≥ debugginτ ì
  655. purposes¼á bu⌠á iε norma∞ runs¼á particularl∙ wherσá ALIASe≤á arσ ì
  656. concerned¼á i⌠ i≤ usuall∙ desirablσ t∩ reducσ thσ "noiseó a≤ mucΦ ì
  657. a≤ possiblσ anΣ havσ thi≤ equatσ se⌠ t∩ FALSE.
  658.  
  659. NOISE        EQU    FALSE
  660.  
  661.  
  662. .paè
  663. 5.3. Input/Output Packages
  664.  
  665.      Input/Outpu⌠ Package≤ arσ ver∙ machine-specific¼á but¼á likσ ì
  666. al∞ packages¼ the∙ providσ ß machine-independen⌠ interfacσ t∩ thσ ì
  667. ZCPR│ Systeφ iε thei≥ visiblσ sections«  Thσ hiddeε par⌠ perform≤ ì
  668. thσ actua∞ implementatioε oµ thσ routines«  Likσ thσ structurσ oµ ì
  669. thσ BIOS¼ thσ visiblσ sectioε oµ aε I/╧ Packagσ consist≤ oµ ß JM╨ ì
  670. table.
  671.  
  672.      Thσáá installe≥áá wh∩áá i≤áá interesteΣáá iεáá incorporatinτ ì
  673. Input/Outpu⌠á Package≤á int∩á thσá systeφá hσá i≤á installinτá i≤ ì
  674. referreΣá t∩ thσ sourcσ codσ filσ SYSIOP.ASM«á  SYSIOP.AS═ caε bσ ì
  675. useΣá a≤ ß templatσ througΦ whicΦ t∩ creatσ othe≥á I/╧á Packages«  ì
  676. I⌠áá i≤á filleΣá witΦá comment≤á outlininτá thσá function≤á beinτ ì
  677. performed¼ anΣ ╔ fee∞ tha⌠ thi≤ shoulΣ bσ adequate.
  678.  
  679.  
  680.  
  681. 5.4. Named Directory Files
  682.  
  683.      Thσá followinτ i≤ ß reformatteΣ duplicatσ oµ thσ bod∙á oµá ß ì
  684. SYSNDR.LI┬á file«á  I⌠á i≤á provideΣ herσ t∩á presen⌠á additiona∞ ì
  685. informatioε oε ho≈ t∩ se⌠ thσ equates«á  I⌠ ma∙ bσ usefu∞ t∩á thσ ì
  686. installe≥á t∩á havσ thi≤ installatioε manua∞ opeε t∩ thesσá page≤ ì
  687. whilσ hσ i≤ editinτ thi≤ file.
  688.  
  689.  
  690. DATA FILE:  SYSNDR.LIB
  691. AUTHOR:  Richard Conn
  692. VERSION:  1.0
  693. DATE:  24 Feb 84
  694.  
  695.  
  696.      SYSNDR.LI┬á define≤ thσ structurσ oµ thσ memory-baseΣá nameΣ ì
  697. directory«  I⌠ als∩ define≤ ß fe≈ element≤ fo≥ i⌠ anΣ i≤ suitablσ ì
  698. fo≥ enclosurσ iε aε ND╥ file.
  699.  
  700.      The general structure is:
  701.  
  702.         DB    Disk,User    ; A=1
  703.         DB    'NDIRNAME'    ; 8 chars
  704.         DB    'PASSWORD'    ; 8 chars
  705.         ...            ; other entries
  706.         DB    0        ; End of NDR
  707.  
  708. defdu    macro    ?disk,?user
  709.     db    ?disk-'@'        ; Convert Disk
  710.     db    ?user            ; User is OK
  711.     endm
  712.  
  713.                     FIG 5-1: Named Directory Structure
  714. .paè
  715.      Thσ entirσ filσ i≤ implementeΣ a≤ onσ macr∩ (whicΦ follows)«  ì
  716. The SYSNDR.ASM file simply refers to this macro and expands it.
  717.  
  718.      Thσ nameΣ directorie≤ showε belo≈ arσ recommendeΣ standards«  ì
  719. Iεá time¼á therσá wil∞ bσ utilitie≤ whicΦ basσ ßá par⌠á oµá thei≥ ì
  720. operations on these names.
  721.  
  722.  
  723. sysndr    macro
  724.  
  725.      Thσá BAS┼á director∙ i≤ ß workinτ scratcΦ areß oε thσá firs⌠ ì
  726. disk.
  727.  
  728.     defdu    'A',0
  729.     db    'BASE    '
  730.     db    '        '
  731.  
  732.  
  733.      Thσá ROO╘ director∙ i≤ thσ las⌠ director∙ referenceΣ iεá thσ ì
  734. CommanΣá SearcΦ Path«á  Thi≤ i≤ wherσ al∞ oµ thσá general-purposσ ì
  735. COM files are located.
  736.  
  737.     defdu    'A',15
  738.     db    'ROOT    '
  739.     db    '        '
  740.  
  741.  
  742.      Thσá HEL╨ director∙ i≤ wherσ thσ onlinσ documentatioεá file≤ ì
  743. are stored.
  744.  
  745.     defdu    'A',16
  746.     db    'HELP    '
  747.     db    '        '
  748.  
  749.  
  750.      Thσá BACKU╨á director∙á i≤ wherσ file≤á arσá copieΣá t∩á (b∙ ì
  751. default) for backup purposes.
  752.  
  753.     defdu    'C',0
  754.     db    'BACKUP  '
  755.     db    '        '
  756.  
  757.     db    0        ;End of List
  758.     endm
  759.  
  760.  
  761. .paè
  762. 5.5. TCAP Files
  763.  
  764.      Thσá program≤á TCSELEC╘á anΣ TCMAK┼ arσ useΣ t∩á creatσá thσ ì
  765. *.Z3╘ file≤ whicΦ arσ loadeΣ b∙ thσ LDR.CO═ utility«á  Thσ loadeΣ ì
  766. filσ establishe≤ thσ characteristic≤ oµ thσ user'≤ CR╘á terminal¼ ì
  767. anΣá thi≤ informatioε i≤ useΣ b∙ screen-orienteΣ utilities¼á sucΦ ì
  768. as SHOW, to perform their functions.
  769.  
  770.  
  771. 5.6. Environment Descriptor
  772.  
  773.      Thσá followinτ i≤ ß reformatteΣ duplicatσ oµ thσ bod∙á oµá ß ì
  774. SYSENV.LI┬á file«á  I⌠á i≤á provideΣ herσ t∩á presen⌠á additiona∞ ì
  775. informatioε oε ho≈ t∩ se⌠ thσ equates«á  I⌠ ma∙ bσ usefu∞ t∩á thσ ì
  776. installe≥á t∩á havσ thi≤ installatioε manua∞ opeε t∩ thesσá page≤ ì
  777. whilσ hσ i≤ editinτ thi≤ file.
  778.  
  779.  
  780.      Thσá entirσá filσá i≤á onσá macr∩á whicΦá i≤á referenceΣá b∙ ì
  781. SYSENV.ASM«á  SYSEN╓ insert≤ ß JM╨ ░ instructioε iε fron⌠ oµ thi≤ ì
  782. macro to complete the structure of the SYS.ENV file.
  783.  
  784.  
  785.  
  786. LIBRARY:  SYSENV.LIB
  787. AUTHOR:  Richard Conn
  788. Version:  1.0
  789. Date:  18 May 84
  790. Previous Versions:  None
  791.  
  792.  
  793.      SYSENV is the definition for my ZCPR3 environment.
  794.  
  795.  
  796. sysenv    macro
  797. ;
  798. ;  Environment Descriptor
  799. ;    If inline, there is a leading JMP just before this
  800. ;
  801. envorg1:
  802.     db    'Z3ENV'        ; Environment ID
  803.     db    1        ; class 1 environment (external)
  804.  
  805.      ┴á Clas≤ ▒ environmen⌠ i≤ externa∞ t∩ thσ utilit∙ usinτá it«  ì
  806. Thi≤á typσá oµá Environmen⌠ Descripto≥ i≤á locateΣá a⌠á ßá buffe≥ ì
  807. somewherσ iε memory¼á anΣ thσ ZCPR│ utilitie≤ simpl∙ contaiε ß 2-ì
  808. bytσá pointe≥ whicΦ contain≤ it≤ address«á  ┴ Clas≤ ▓ environmen⌠ ì
  809. i≤á interna∞ t∩ thσ utilit∙ usinτ it«á  Thi≤ typσ oµá Environmen⌠ ì
  810. Descripto≥á i≤ locateΣ withiε thσ utilit∙ itself¼á takinτ u≡á 25╢ ì
  811. bytes«á  I⌠á i≤ recommendeΣ tha⌠ thσ ZCPR│ Systeφá bσá configureΣ ì
  812. usinτ aε externa∞ Environmen⌠ Descriptor.
  813.  
  814. .paè
  815.      Thσá followinτá addresse≤á anΣá value≤á arσá extracteΣá froφ ì
  816. Z3BASE.LIB.
  817.  
  818.     dw    expath        ; external path address
  819.     db    expaths        ; number of 2-byte elements in path
  820.  
  821.     dw    rcp        ; RCP address
  822.     db    rcps        ; number of 128-byte blocks in RCP
  823.  
  824.     dw    iop        ; IOP address
  825.     db    iops        ; number of 128-byte blocks in IOP
  826.  
  827.     dw    fcp        ; FCP address
  828.     db    fcps        ; number of 128-byte blocks in FCP
  829.  
  830.     dw    z3ndir        ; NDR address
  831.     db    z3ndirs        ; number of 18-byte entries in NDR
  832.  
  833.     dw    z3cl        ; ZCPR3 Command Line
  834.     db    z3cls        ; number of bytes in Command Line
  835.  
  836.     dw    z3env        ; ZCPR3 Environment Descriptor
  837.     db    z3envs        ; number of 128-byte blocks
  838.  
  839.     dw    shstk        ; Shell Stack address
  840.     db    shstks        ; number of shsize-byte entires
  841.     db    shsize        ; size of a Shell Stack entry
  842.  
  843.     dw    z3msg        ; ZCPR3 Message buffer
  844.  
  845.     dw    extfcb        ; ZCPR3 External FCB
  846.  
  847.     dw    extstk        ; ZCPR3 External Stack
  848.  
  849.  
  850.      Thσ followinτ flaτ i≤ useΣ b∙ somσ ZCPR│ Systeφ utilitie≤ t∩ ì
  851. determinσá ho≈á verbosσá the∙á arσá iεá providinτá message≤áá anΣ ì
  852. informatioεá t∩ thσ user«á  Thσ QUIET.CO═ utilit∙ caε bσ useΣá t∩ ì
  853. change this flag dynamically.
  854.  
  855.     db    0        ; quiet flag (1=quiet, 0=not quiet)
  856.  
  857.     dw    z3whl        ; address of Wheel Byte
  858.  
  859.      This data value is used by the timing routines.
  860.  
  861.     db    4        ; Processor Speed in MHz
  862.  
  863.      Thσá followinτ value≤ shoulΣ corresponΣ t∩ thosσ selecteΣ iε ì
  864. the Z3HDR.LIB file.
  865.  
  866.     db    'D'-'@'        ; maximum disk
  867.     db    31        ; maximum user
  868. .paè
  869.      Thσá followinτ valuσ i≤ useΣ t∩ instruc⌠ thσ utilitie≤ a≤ t∩ ì
  870. whethe≥ the∙ shoulΣ accep⌠ thσ D╒ forφ o≥ not«á  Iµ disableΣ (se⌠ ì
  871. t∩á 0)¼á thσá onl∙ wa∙ t∩ referencσ ß director∙ i≤ witΦá thσá DI╥ ì
  872. (named⌐á form¼á anΣ passworΣ protectioε i≤ directl∙á provideΣá b∙ ì
  873. this.
  874.  
  875.     db    1        ; 1=OK to accept DU, 0=not OK
  876.  
  877.  
  878.      Somσá ZCPR│á utilities¼áá sucΦá a≤á PRIN╘á anΣá PAGE¼áá dra≈ ì
  879. informatioεáá froφáá thesσá buffer≤á t∩á determinσá severa∞áá ke∙ ì
  880. attribute≤á oµá thσ device≤ the∙ arσá dealinτá with«á  Thσá CPSE╠ ì
  881. utilit∙á caεá bσ useΣ t∩ dynamicall∙ changσ thσ CR╘á anΣá Printe≥ ì
  882. selections.
  883.  
  884.     db    0        ; CRT selection (0=CRT 0, 1=CRT 1)
  885.     db    0        ; Printer selection (n=Printer n)
  886.  
  887.     db    80        ; width of CRT 0
  888.     db    24        ; number of lines on CRT 0
  889.     db    22        ; number of lines of text on CRT 0
  890.  
  891.     db    132        ; width of CRT 1
  892.     db    24        ; number of lines on CRT 1
  893.     db    22        ; number of lines of text on CRT 1
  894.  
  895.     db    80        ; width of Printer 0
  896.     db    66        ; number of lines on Printer 0
  897.     db    58        ; number of lines of text on Printer 0
  898.     db    1        ; form feed flag (0=can't formfeed, 1=can)
  899.  
  900.     db    102        ; width of Printer 1
  901.     db    66        ; number of lines on Printer 1
  902.     db    58        ; number of lines of text on Printer 1
  903.     db    1        ; form feed flag (0=can't formfeed, 1=can)
  904.  
  905.     db    80        ; width of Printer 2
  906.     db    66        ; number of lines on Printer 2
  907.     db    58        ; number of lines of text on Printer 2
  908.     db    0        ; form feed flag (0=can't formfeed, 1=can)
  909.  
  910.     db    102        ; width of Printer 3
  911.     db    66        ; number of lines on Printer 3
  912.     db    58        ; number of lines of text on Printer 3
  913.     db    0        ; form feed flag (0=can't formfeed, 1=can)
  914.  
  915. .paè
  916.      Thσá ZCPR│ shel∞ nameΣ S╚ caε dea∞ witΦ symbol≤á (variables⌐ ì
  917. whicΦá arσ assigneΣ tex⌠ string≤ a≤ values«á  Thi≤ buffe≥ define≤ ì
  918. thσ namσ oµ thσ filσ whicΦ program≤ likσ S╚ refe≥ t∩ iε orde≥á t∩ ì
  919. resolvσá variablσá references«á  A≤ man∙ shel∞ variablσ file≤á a≤ ì
  920. desired may be available in this fashion.
  921.  
  922.     db    'SH      '    ; shell variable filename
  923.     db    'VAR'        ; shell variable filetype
  924.  
  925.  
  926.      Thesσá buffer≤ arσ availablσ t∩ storσ filσ name≤á anΣá othe≥ ì
  927. datßá whicΦá arσá passeΣá froφ onσ utilit∙ t∩á anothe≥á whicΦá i≤ ì
  928. executeΣ later«  Iε general¼ entrie≤ │ anΣ ┤ arσ availablσ t∩ thσ ì
  929. ZCPR│ utilit∙ programme≥ a≤ general-purposσ buffers«á  Entrie≤á ▒ ì
  930. and 2 are used by some ZCPR3 System utilities at this time.
  931.  
  932.     db    '        '    ; filename 1
  933.     db    '   '        ; filetype 1
  934.  
  935.     db    '        '    ; filename 2
  936.     db    '   '        ; filetype 2
  937.  
  938.     db    '        '    ; filename 3
  939.     db    '   '        ; filetype 3
  940.  
  941.     db    '        '    ; filename 4
  942.     db    '   '        ; filetype 4
  943.  
  944.     ds    80H-($-envorg1+3)    ; make exactly 80H bytes long
  945.                     ; (+3 compensates for leading JMP)
  946. .paè
  947.      Thσ followinτ i≤ thσ TCA╨ entr∙ fo≥ thσ TV╔ 950«  Iµ LDR.CO═ ì
  948. load≤á ßá *.Z3╘á file¼á thi≤á buffe≥ wil∞á bσá overlaiΣá (iµá thσ ì
  949. Environment Descriptor is External).
  950.  
  951. ;
  952. ; Terminal Capabilities Data
  953. ;
  954. envorg2:
  955.     DB    'TVI 950         '    ;Name of Terminal
  956.     DB    'K'-'@'            ;Cursor UP
  957.     DB    'V'-'@'            ;Cursor DOWN
  958.     DB    'L'-'@'            ;Cursor RIGHT
  959.     DB    'H'-'@'            ;Cursor LEFT
  960.     DB    00            ;CL Delay
  961.     DB    00            ;CM Delay
  962.     DB    00            ;CE Delay
  963.     DB    1bh,'*',0        ;CL String
  964.     DB    1bh,'=%+ %+ ',0        ;CM String
  965.     DB    1bh,'t',0        ;CE String
  966.     DB    1bh,')',0        ;SO String
  967.     DB    1bh,'(',0        ;SE String
  968.     DB    0            ;TI String
  969.     DB    0            ;TE String
  970.  
  971.     ds    80H-($-envorg2)        ; make exactly 80H bytes long
  972.  
  973. ;
  974. ;  End of Environment Descriptor
  975. ;
  976.     endm
  977.  
  978.  
  979.