home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols200 / vol264 / z3lib.lbr / Z3LIB5.HQP / Z3LIB5.HLP
Text File  |  1986-03-22  |  16KB  |  608 lines

  1. Introduction   ZCPR3 Utilities
  2. Named Directory/Disk User Conversion    DIRTDU DUTDIR
  3. Resolve Directory References            DNSCAN et al
  4. Parse Command Line                      PARSER
  5. Search for File Along Path              PFIND
  6. Program Loader (Chain)                  PRGLOAD
  7. Output Routines Based on the Quiet Flag Qxxx
  8. Locate ROOT Directory in Path           ROOT
  9. Shell Stack Manipulation Routines       SHxxx
  10. Delay Routines                          WAITs
  11. Log into ZCPR3 FCB DU                   Z3LOG
  12. Return Z3LIB.REL Version Number         Z3LVER
  13. Parse Token                             ZPRSFN ZFNAME
  14. :Introduction to ZCPR3 Utilities
  15.  
  16.      Thesσáá utilitie≤áá providσá ßá numbe≥á oµáá convenien⌠ ì
  17. function≤á fo≥á thσá ZCPR│á Systeφá Programmer«á  Acces≤á t∩ ì
  18. directories¼á conversioε froφ tex⌠ strinτ name≤ t∩ director∙ ì
  19. referencσ values¼á commanΣ anΣ commanΣ linσá parsing¼á quie⌠ ì
  20. outpu⌠ routines¼á shel∞ stacδ manipulation¼á dela∙ routines¼ ì
  21. and other ZCPR3-specific functions are provided.
  22.  
  23. :DIRTDU/DUTDIR
  24.  
  25. Z3LIB Routine:  DIRTDU
  26.  
  27. Function:
  28.      DIRTD╒ convert≤ thσ DI╥ namσ pointeΣ t∩ b∙ H╠ int∩á it≤ ì
  29. D╒á equivalent«á  Thσá DI╥ namσ i≤ ß strinτ oµ u≡á t∩á eigh⌠ ì
  30. ASCI╔á characters¼á anΣá it≤ enΣ i≤ denoteΣ b∙á ßá delimite≥ ì
  31. whicΦá i≤á an∙á ASCI╔á characte≥ tha⌠ i≤ no⌠ ßá digi⌠á o≥á ß ì
  32. letter« 
  33.  
  34. Inputs: HL = address of first character of DIR name
  35.  
  36. Outputs: If match found, BC = DU (disk A = 0) and NZ
  37.           If no match, A=0 and Zero Flag Set (Z)
  38.           H╠ alway≤ point≤ t∩ thσ delimite≥ a⌠ thσ enΣ of
  39.                name
  40.  
  41. Registers Affected: HL, BC, PSW
  42. Side Effects: None
  43. Special Error Conditions: None
  44.  
  45. Z3LIB Routine: DUTDIR
  46.  
  47. Function:
  48.      DUTDI╥ searche≤ thσ nameΣ director∙ fo≥ thσ D╒ giveε iε ì
  49. B├ (B=disδ witΦ disδ ┴ ╜ 0¼ C=user)«  Iµ aε entr∙ exist≤ fo≥ ì
  50. thσ correspondinτ DU¼á DUTDI╥ return≤ ß pointe≥ iε H╠ t∩ thσ ì
  51. 8-characte≥ namσ (followeΣ b∙ aε 8-characte≥ password).
  52.  
  53. Inputs: BC = DU (disk A = 0)
  54.  
  55. Outputs: If found, A=0FFH and NZ and HL = pointer to name
  56.                If not found, A=0 and Zero Flag is Set
  57.  
  58. Registers Affected: HL and PSW
  59.  
  60. Side Effects: None
  61.  
  62. Special Error Conditions: None
  63. :DNSCAN/DUSCAN/DIRSCAN
  64.  
  65. Z3LIB Routine: DNSCAN
  66.  
  67. Function:
  68.      DNSCA╬á scan≤á fo≥ ß resolutioε oµ thσá director∙á namσ ì
  69. pteΣá t∩ b∙ HL«á  Thσ disδ namσ i≤ a⌠ mos⌠ eigh⌠á character≤ ì
  70. lonτ and¼á iµ les≤ thaε eigh⌠ characters¼ i≤ terminateΣ b∙ ß ì
  71. delimite≥ sucΦ a≤ ß space¼á ß characte≥ les≤ thaεá space¼á ß ì
  72. comma¼á ß period¼ ß dash¼ etc«  Iµ found¼ thσ D╒ i≤ returneΣ ì
  73. iε BC.  Both DIR and DU forms are resolved by this routine.
  74.  
  75. Inputs: HL = address of first character of directory name
  76.                A = Flag:
  77.                     A=0 if scan DU before DIR
  78.                     A<>0 if scan DIR before DU
  79.  
  80.  
  81. Outputs: BC = DU (disk A = 0) if found
  82.                A = Return Code:
  83.                     A=░ anΣ Zer∩ Flaτ Se⌠ (Z⌐ iµ no⌠ valid
  84.                     A=0FFH and NZ if valid and BC=DU
  85.  
  86. Registers Affected: BC, PSW
  87.  
  88. Side Effects: None
  89.  
  90. Special Error Conditions: None
  91.  
  92.  
  93. Z3LIB Routine: DUSCAN
  94.  
  95. Function:
  96.      DUSCA╬á resolve≤á thσ D╒ forφ pteΣ t∩ b∙á HL«á  Thσá D╒ ì
  97. strinτá i≤ storeΣ iε ß buffe≥ u≡ t∩ eigh⌠á character≤á long¼ ì
  98. anΣ i⌠ i≤ terminateΣ b∙ ß delimiter¼ whicΦ ma∙ bσ an∙ oµ thσ ì
  99. following bytes:
  100.  
  101.           a character of value space or less
  102.           an equal sign (=)
  103.           an underscore (_)
  104.           a period (.)
  105.           a colon (:)
  106.           a comma (,)
  107.           a less-than sign (<)
  108.           a greater-than sign (>)
  109.  
  110.  
  111. Inputs: HL = address of first char
  112.  
  113. Outputs: A=0FFH, NZ, and BC=DU (disk A = 0) if valid
  114.                A=0 and Zero Flag Set (Z) if not valid
  115.  
  116. Registers Affected: BC, PSW
  117.  
  118. Side Effects: None
  119.  
  120. Special Error Conditions: None
  121.  
  122.  
  123. Z3LIB Routine: DIRSCAN
  124.  
  125. Function:
  126.      DIRSCA╬á resolve≤ thσ DI╥ forφ pteΣ t∩ b∙ HL«á  Thσ DI╥ ì
  127. strinτá i≤ storeΣ iε ß buffe≥ u≡ t∩ eigh⌠á character≤á long¼ ì
  128. anΣá i⌠á i≤ terminateΣ b∙ ß delimite≥ iµ i⌠ i≤á unde≥á eigh⌠ ì
  129. character≤ long¼ whicΦ ma∙ bσ an∙ oµ thσ followinτ bytes:
  130.  
  131.           a character of value space or less
  132.           an equal sign (=)
  133.           an underscore (_)
  134.           a period (.)
  135.           a colon (:)
  136.           a comma (,)
  137.           a less-than sign (<)
  138.           a greater-than sign (>)
  139.  
  140.  
  141. Inputs: HL = address of first char
  142.  
  143. Outputs: A=0FFH, NZ, and BC=DU (disk A = 0) if valid
  144.                A=0 and Zero Flag Set (Z) if not valid
  145.  
  146. Registers Affected: BC, PSW
  147.  
  148. Side Effects: None
  149.  
  150. Special Error Conditions: None
  151.  
  152. :PARSER
  153.  
  154. Z3LIB Routine: PARSER
  155.  
  156. Function:
  157.      PARSE╥ perform≤ ß completσ parsσ oµ thσ commanΣ pointeΣ ì
  158. t∩á b∙ H╠ (thσ commanΣ i≤ ß strinτ terminateΣ b∙ ß binar∙á ░ ì
  159. o≥ aε MC╠ delimiter¼á ß semicoloε [;])«  Al∞ element≤ oµ thσ ì
  160. commanΣ linσ arσ parseΣ a≤ thougΦ thσ ZCPR│ C╨ werσá parsinτ ì
  161. thσ line.
  162.  
  163.      Thσá followinτ buffer≤ arσ initializeΣ a≤ pe≥ thσ ZCPR│ ì
  164. CP conventions:
  165.           FCB1 (at 5CH)
  166.           FCB2 (at 6CH)
  167.           TBUFF (at 80H)
  168.  
  169.      The command name is returned in an FCB pted to by DE.
  170.  
  171.  
  172. Inputs: HL = address of command
  173.                A = 0 if DIR form scanned before DU
  174.                A <> 0 if DU form scanned before DIR
  175.  
  176. Outputs: HL = address of next command (0 or leading ;)
  177.                DE = address of FCB with command name
  178.                     (verb.COM)
  179.                A = Flag:
  180.                     A=0 and Zero Flag Set (Z) if OK
  181.                     A=number of question marks and NZ if
  182.                          verb contains one or more ? chars
  183.  
  184. Registers Affected: HL, DE, PSW
  185.  
  186. Side Effects: Buffers Altered
  187.  
  188. Special Error Conditions: None
  189.  
  190. :PFIND
  191.  
  192. Z3LIB Routine: PFIND
  193.  
  194. Function:
  195.      PFIN─ searche≤ fo≥ thσ filσ specifieΣ iε thσ targe⌠ FC┬ ì
  196. alonτ thσ ZCPR│ commanΣ searcΦ path«  Iµ found¼ thσ D╒ i⌠ i≤ ì
  197. located in is returned.
  198.  
  199. Inputs: DE = Address of FCB
  200.                A=0 if do not search current directory
  201.                A<>0 if search of current directory
  202.  
  203. Outputs: BC = DU (disk A = 0)
  204.                A=0 and Zero Flag Set (Z) if not found
  205.                A=0FFH and NZ if found
  206.  
  207. Registers Affected: BC, PSW
  208. Side Effects: FCB is affected
  209. Special Error Conditions: None
  210.  
  211. :PRGLOAD
  212.  
  213. Z3LIB Routine: PRGLOAD
  214.  
  215. Function:
  216.      PRGLOA─á load≤á thσ prograφ indicateΣ b∙ thσá firs⌠á 1▓ ì
  217. byte≤á pointeΣá t∩ b∙ D┼ int∩ memor∙ a⌠ 100╚á anΣá transfer≤ ì
  218. contro∞ t∩ it«á  I⌠ i≤ ß chaiε function«  Thσ loade≥ anΣ FC┬ ì
  219. useΣá fo≥ thσ loaΣ arσ relocateΣ t∩ jus⌠ unde≥ thσ C╨á afte≥ ì
  220. PRGLOA─á begin≤ execution¼á s∩ thσ TP┴ i≤ freσ fo≥ thσ load«  ì
  221. Carσá shoulΣá bσá takeεá t∩ ensurσá tha⌠á thσá systeφá stacδ ì
  222. (locateΣá ou⌠ oµ thσ TP┴ iε ß safσ area⌐ i≤ useΣ insteaΣá oµ ì
  223. somσá stacδ iε thσ TP┴ whicΦ ma∙ bσ overwritteεá durinτá thσ ì
  224. load.
  225. è     Iµá PRGLOA─á return≤á froφ beinτ called¼á aεá erro≥á iε ì
  226. loadinτá occurred«á  Iµ al∞ goe≤ well¼á thσá loadeΣá prograφ ì
  227. executes successfully.
  228.  
  229.  
  230. Inputs: DE pts to first 12 bytes of FCB
  231.  
  232. Outputs: None
  233.  
  234. Registers Affected: All (if PRGLOAD returns, load was a
  235.                          failure)
  236.  
  237. Side Effects: None
  238.  
  239. Special Error Conditions: None
  240.  
  241.  
  242. :Qxxxx
  243.  
  244.      Thesσá routine≤á outpu⌠ thei≥ value≤ onl∙ iµ thσá Quie⌠ ì
  245. Flaτ i≤ clea≥ (0)«á  Iµ thσ Quie⌠ Flaτ i≤ TRU┼ (no⌠ 0)¼ theε ì
  246. no values are output.
  247.  
  248.      This class of routines includes the following:
  249.  
  250.           QCOUT     Console Character Output with Control
  251.           QCRLF     New Line
  252.           QOUT      Console Character Output
  253.           QPRINT    String Output (Return Address)
  254.           QPSTR     String Output (HL)
  255.  
  256.  
  257. Z3LIB Routine: QCOUT
  258.  
  259. Function:
  260.      QCOU╘ output≤ thσ characte≥ iε ┴ witΦ contro∞ characte≥ ì
  261. processing (1 outputs as ^A) if the Quiet Flag is OFF (0).
  262.  
  263. Inputs: A=Character
  264.  
  265. Outputs: None
  266.  
  267. Registers Affected: None
  268.  
  269. Side Effects: Character(s) is printed
  270.  
  271. Special Error Conditions: None
  272.  
  273.  
  274. Z3LIB Routine: QCRLF
  275.  
  276. Function:
  277.      QCRL╞ output≤ ß Ne≈ Linσ (C╥ L╞ pair⌐ iµ thσ Quie⌠ Flaτ ì
  278. is OFF (0).
  279.  
  280. Inputs: None
  281.  
  282. Outputs: None
  283.  
  284. Registers Affected: None
  285.  
  286. Side Effects: CRLF is Output
  287.  
  288. Special Error Conditions: None
  289.  
  290.  
  291. Z3LIB Routine: QOUT
  292.  
  293. Function:
  294.      QOU╘á output≤á thσá characte≥á iεá ┴á withou⌠áá contro∞ ì
  295. characte≥á processinτ (▒ output≤ a≤ 1⌐ iµ thσ Quie⌠ Flaτá i≤ ì
  296. OFF (0).
  297.  
  298. Inputs: A=character to output
  299.  
  300. Outputs: None
  301.  
  302. Registers Affected: None
  303.  
  304. Side Effects: Character is output
  305.  
  306. Special Error Conditions: None
  307.  
  308.  
  309. Z3LIB Routine: QPRINT
  310.  
  311. Function:
  312.      QPRIN╘ output≤ thσ string¼ terminateΣ b∙ ß binar∙ 0¼ a⌠ ì
  313. thσ returε addres≤ iµ thσ Quie⌠ Flaτ i≤ OF╞ (0)«  Contro∞ i≤ ì
  314. returned to the byte following the string.
  315.  
  316. Inputs: None (String at Return Address)
  317.  
  318. Outputs: None
  319.  
  320. Registers Affected: None
  321.  
  322. Side Effects: String is output
  323.  
  324. Special Error Conditions: None
  325.  
  326.  
  327. Z3LIB Routine: QPSTR
  328.  
  329. Function:
  330.      QPST╥á output≤á thσ string¼á terminateΣ b∙ ß binar∙á 0¼ ì
  331. pted to by HL if the Quiet Flag is OFF (0).
  332.  
  333. Inputs: HL = address of first character of the string
  334.  
  335. Outputs: None
  336.  
  337. Registers Affected: None
  338.  
  339. Side Effects: String is output
  340.  
  341. Special Error Conditions: None
  342.  
  343. :ROOT
  344.  
  345. Z3LIB Routine: ROOT
  346.  
  347. Function:
  348.      ROO╘á return≤á thσ D╒ iε B├ (disδ ┴ ╜ 0⌐á oµá thσá las⌠ ì
  349. director∙ iε thσ commanΣ searcΦ path«á  N∩ patΦ optimizatioε ì
  350. i≤á performed«á  Thi≤á routinσ provide≤ ß convenien⌠ wa∙á t∩ ì
  351. finΣá thσ ROO╘ directory¼á wherσ thi≤ director∙ i≤ thσá las⌠ ì
  352. directory referenced in a path expression.
  353.  
  354.      Thi≤ routinσ i≤ sometime≤ no⌠ consisten⌠ witΦ thσ ZCPR│ ì
  355. C╨á iµá thσá MINPAT╚ (Minimizσ PatΦá Expression⌐á optioεá i≤ ì
  356. selected«  ROO╘ advance≤ t∩ thσ las⌠ referenceΣ director∙ iε ì
  357. thσá patΦ withou⌠ minimization¼á whicΦ ZCPR│á minimize≤á thσ ì
  358. searcΦáá anΣáá ma∙á resolvσá ßá patΦá t∩áá terminatσáá (witΦ ì
  359. duplication⌐á a⌠ ß director∙ othe≥ thaε thσ physicall∙á las⌠ ì
  360. directory in the path.
  361.  
  362.  
  363. Inputs: None
  364.  
  365. Outputs: BC = DU (Disk A = 0)
  366.  
  367. Registers Affected: BC, PSW
  368.  
  369. Side Effects: None
  370.  
  371. Special Error Conditions: None
  372.  
  373. :SHxxx
  374.  
  375.      Thi≤ se⌠ oµ routine≤ support≤ Shel∞ Stacδ manipulation«  ì
  376. The following routines are provided:
  377.  
  378.           SHEMPTY - test to see if Shell Stack is empty
  379.           SHFULL  - test to see if Shell Stack is full
  380.           SHPOP   - pop top string off of Shell Stack
  381.           SHPUSH  - push string onto Shell Stack
  382.  
  383.      ┴á Shel∞á Stacδ i≤ implementeΣ a≤ ß serie≤á oµá string≤ ì
  384. (recommendeΣ sizσ i≤ 3▓ bytes/string¼á anΣ thσ stacδá shoulΣ ì
  385. contaiε a⌠ leas⌠ fou≥ oµ thesσ strings)«  Thσ to≡ elemen⌠ oµ ì
  386. ß Shel∞ Stacδ specifie≤ thσ commanΣ linσ t∩ bσ executeΣ a≤ ß ì
  387. Shel∞ b∙ thσ ZCPR│ CP«  Thi≤ commanΣ linσ i≤ copieΣ int∩ thσ ì
  388. Multiple Command Line Buffer for execution.
  389.  
  390.  
  391. Z3LIB Routine: SHEMPTY
  392.  
  393. Function:
  394.      SHEMPT┘ determine≤ iµ thσ shel∞ stacδ i≤ empty«á  Iµ i⌠ ì
  395. i≤ empt∙ o≥ n∩ shel∞ stacδ i≤ available¼á A=0╗ iµ no⌠ empty¼ ì
  396. A<>0.
  397.  
  398. Inputs: None
  399.  
  400. Outputs: A=0 and Zero Flag Set (Z) if empty or none
  401.                A<>0 and NZ if not empty
  402.  
  403. Registers Affected: PSW
  404.  
  405. Side Effects: None
  406.  
  407. Special Error Conditions: None
  408.  
  409.  
  410. Z3LIB Routine: SHFULL
  411.  
  412. Function:
  413.      SHFUL╠á determine≤ iµ thσ shel∞ stacδ i≤ full«á  Iµ thσ ì
  414. stacδ i≤ ful∞ o≥ no⌠ available¼á A=0╗á else¼ iµ thσ stacδ i≤ ì
  415. not full, A<>0.
  416.  
  417. Inputs: None
  418.  
  419. Outputs: A=0 and Zero Flag Set (Z) if stack full or none
  420.                A<>0 if stack not full
  421.  
  422. Registers Affected: PSW
  423.  
  424. Side Effects: None
  425.  
  426. Special Error Conditions: None
  427.  
  428.  
  429. Z3LIB Routine: SHPOP
  430.  
  431. Function:
  432.      SHPO╨á pop≤ thσ to≡ elemen⌠ ofµ oµ thσ Shel∞ Stacδá anΣ ì
  433. discard≤ i⌠ iµ possible«á  SHPO╨ return≤ witΦ A=░ iµ po≡ wa≤ ì
  434. successful¼á elsσá A<>0«á  Thσá followinτá erro≥á code≤á arσ ì
  435. returned:
  436.  
  437.           A=1 if no Shell Stack available
  438.           A=2 if Shell Stack is empty
  439.  
  440. Inputs: None
  441.  
  442. Outputs: A=Code:
  443.                A=0 if success (and Zero Flag Set - Z)
  444.                A=1 if no Shell Stack available (NZ)
  445.                A=2 if Shell Stack empty (NZ)
  446.  
  447.  
  448. Registers Affected: PSW
  449.  
  450. Side Effects: String is popped from Shell Stack
  451.  
  452. Special Error Conditions: None
  453.  
  454.  
  455. Z3LIB Routine: SHPUSH
  456.  
  457. Function:
  458.      SHPUS╚ pushe≤ thσ strinτ (includinτ thσ endinτ 0⌐á pteΣ ì
  459. t∩á b∙ H╠ ont∩ thσ Shel∞ Stacδ iµ possible«á  SHPUS╚ return≤ ì
  460. with A=0 if successful, else A<>0.
  461.  
  462. Inputs: HL = string to push onto Shell Stack (end in 0)
  463.  
  464. Outputs: A=Return Code:
  465.                A=0 if successful and no error (Z)
  466.                A=1 if no Shell Stack available (NZ)
  467.                A=2 if Shell Stack is full (NZ)
  468.                A=3 if string is too long for Shell Stack
  469.                    entry (NZ)
  470.  
  471. Registers Affected: PSW
  472. Side Effects: String is pushed onto Shell Stack
  473. Special Error Conditions: None
  474. :WAITs
  475.  
  476.      Thσá followinτ routine≤ providσ ß softwarσ dela∙á baseΣ ì
  477. upoεá thσá processo≥á speeΣ valuσ iε thσá ZCPR│á Environmen⌠ ì
  478. Descriptor«á  Thesσ routine≤ simpl∙ dela∙ fo≥ thσá indicateΣ ì
  479. perioΣáá oµá timσá (approximately⌐á anΣá theεá return«áá  N∩ ì
  480. registers are affected.
  481.  
  482.      The routines are:
  483.  
  484.           WAIT1S    - delay for 1 second
  485.           WAIT1MS   - delay for 0.001 second
  486.           WAITP1S   - delay for 0.1 second
  487.  
  488.  
  489. Z3LIB Routine: WAIT1S
  490.  
  491. Function:
  492.      WAIT1S delays for approximately 1 second.
  493.  
  494. Inputs: None
  495.  
  496. Outputs: None
  497.  
  498. Registers Affected: None
  499.  
  500. Side Effects: A 1-second delay takes place
  501.  
  502. Special Error Conditions: None
  503.  
  504.  
  505. Z3LIB Routine: WAIT1MS
  506.  
  507. Function:
  508.      WAIT1M╙á delay≤ fo≥ approximatel∙ ▒ milliseconΣá (0.00▒ ì
  509. second).
  510.  
  511. Inputs: None
  512.  
  513. Outputs: None
  514.  
  515. Registers Affected: None
  516.  
  517. Side Effects: A 1-millisecond delay takes place
  518.  
  519. Special Error Conditions: None
  520.  
  521.  
  522. Z3LIB Routine: WAITP1S
  523.  
  524. Function:
  525.      WAITP1╙á delay≤ fo≥ approximatel∙ onσ tentΦ (0.1⌐ oµá ß ì
  526. second.
  527.  
  528. Inputs: None
  529.  
  530. Outputs: None
  531.  
  532. Registers Affected: None
  533.  
  534. Side Effects: A 0.1-second delay takes place
  535.  
  536. Special Error Conditions: None
  537.  
  538. :Z3LOG
  539.  
  540. Z3LIB Routine: Z3LOG
  541.  
  542. Function:
  543.      Z3LO╟ log≤ int∩ thσ D╒ containeΣ iε ß ZCPR│ FCB«á  Thi≤ ì
  544. FC┬á contain≤ thσ disδ referencσ iε Bytσ ░ anΣ thσ Use≥ Areß ì
  545. iε Bytσ 1│ (S1)«á  Thi≤ i≤ thσ standarΣ forma⌠ useΣ b∙ ZCPR│ ì
  546. to store a complete DU reference in an FCB.
  547.  
  548. Inputs: DE = First Byte of FCB
  549.  
  550. Outputs: None
  551.  
  552. Registers Affected: None
  553.  
  554. Side Effects: Directory is logged into
  555.  
  556. Special Error Conditions: None
  557.  
  558. :Z3LVER
  559.  
  560. Z3LIB Routine: Z3LVER
  561.  
  562. Function:
  563.      Returε Versioε Numbe≥ oµ Z3LIB.REL«  H=Majo≥ Version¼ ╠ ì
  564. = Minor Version.  Numbers are in pure binary.
  565.  
  566. Inputs: None
  567.  
  568. Outputs: HL = Version Number (H=Major, L=Minor)
  569.  
  570. Registers Affected: HL
  571.  
  572. Side Effects: None
  573.  
  574. Special Error Conditions: None
  575. è:ZPRSFN
  576.  
  577. Z3LIB Routine: ZPRSFN/ZFNAME
  578.  
  579. Function:
  580.      ZPRSF╬á i≤ ß completσ FC┬ tokeε parse≥ iε thσ sensσá oµ ì
  581. thσ ZCPR│ C╨ (seσ PARSER¼á whicΦ i≤ related)«á  Oε input¼ H╠ ì
  582. point≤ááá t∩ááá ßááá token¼áááá likσáááá 'dir:filename.typ'¼ ì
  583. 'du:filename.typ'¼áá 'filename.typ'¼áá etc¼áá anΣá ßá ZCPR3-ì
  584. identica∞á parsσ i≤ performeΣ oε thσ token«á  Thσá resultinτ ì
  585. FC┬ contain≤ thσ filenamσ anΣ ty≡ anΣ ß prope≥ D╒ reference.
  586.  
  587.      ZFNAM┼á i≤ ß litera∞ interpretatioε oµ thσ codσá withiε ì
  588. thσá ZCPR│ CP«á  ZPRSF╬ i≤ ß morσ efficien⌠ bod∙ oµ codσ bu⌠ ì
  589. use≤ morσ buffe≥ space.
  590.  
  591. Inputs: HL = address of first char of token
  592.                DE = address of 36-byte FCB
  593.                A = Flag:
  594.                     A = 0 if scan for DIR form before DU
  595.                     A = 1 if scan for DU form before DIR
  596.  
  597.  
  598. Outputs: HL = address of char after token
  599.                A = number of question marks in filename.typ
  600.                     and Zero Flag set accordingly
  601.  
  602. Registers Affected: HL, PSW
  603.  
  604. Side Effects: FCB is loaded
  605.  
  606. Special Error Conditions: None
  607.  
  608.