SYMSERV

Table Of Contents

  • [00001] PROC BZFILL(CHAR,(TYP),(NUM))
  • [00004] BZFILL - BLANK OR ZERO FILLS A CHARACTER ITEM.
  • [00086] PROC LOFPROC1)
  • [00089] LOFPROC - LIST OF FILES PROCESSOR.
  • [00118] PROC BZFILL
  • [00119] PROC RETERN
  • [00120] PROC ZSETFET
  • [00175] PROC MSG2)
  • [00178] MSG - DISPLAY DAYFILE MESSAGE.
  • [00210] PROC MESSAGE
  • [00254] PROC RESTPFP3)
  • [00257] RESTPFP - RESTORE USER *PFP* AND ABORT OR RETURN.
  • [00263] RESTPFP - RESTORE USER *PFP* AND ABORT OR RETURN.
  • [00297] PROC ABORT
  • [00298] PROC LOFPROC
  • [00299] PROC MESSAGE
  • [00300] PROC SETPFP
  • [00367] PROC SETNM4) [00546] ZSETFET - INITIALIZES A *FET*. [00590] PROC BZFILL [00591] PROC ZFILL </WRAP> === Source Code ===
    SYMSERV.txt
    1. PROC BZFILL(CHAR,(TYP),(NUM));
    2. #
    3.   IDENT BZFILL
    4.   TITLE BZFILL - BLANK OR ZERO FILLS A CHARACTER ITEM.
    5. #
    6.  
    7. BEGIN # BZFILL #
    8.  
    9. #
    10. *** BZFILL - BLANK OR ZERO FILLS A CHARACTER ITEM.
    11. *
    12. * COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
    13. *
    14. * PROC BZFILL(CHAR,(TYP),(NUM))
    15. *
    16. * ENTRY (TYP) = TYPE OF FILLING REQUIRED.
    17. * = 0 (S"BFILL"), BLANK FILLING.
    18. * = 1 (S"ZFILL"), ZERO FILLING.
    19. * (NUM) = LENGTH OF CHARACTER ITEM IN NUMBER
    20. * OF CHARACTERS.
    21. *
    22. * EXIT (CHAR) = BLANK OR ZERO FILLED CHARACTER.
    23. *
    24. * NOTES DEPENDING ON THE TYPE OF CONVERSION, ZEROES
    25. * ARE REPLACED BY BLANKS OR BLANKS BY ZEROES.
    26. #
    27.  
    28. ITEM CHAR C(240); # ITEM TO BE BLANK/ZERO FILLED #
    29. ITEM TYP U; # TYPE OF FILLING REQUIRED #
    30. ITEM NUM I; # LENGTH OF *CHAR* IN NUMBER OF
    31.   CHARACTERS #
    32.  
    33. DEF LISTCON #0#; # DO NOT LIST COMDECKS #
    34. *CALL COMAMSS
    35. *CALL COMABZF
    36.  
    37. ITEM I I; # LOOP INDUCTION VARIABLE #
    38.  
    39. CONTROL EJECT;
    40.  
    41. #
    42. * START OF EXECUTABLE CODE.
    43. #
    44.  
    45. IF TYP EQ TYPFILL"BFILL"
    46. THEN
    47. BEGIN # BLANK FILL #
    48. FASTFOR I = 0 STEP 1 UNTIL NUM-1
    49. DO
    50. BEGIN
    51. IF C<I,1>CHAR EQ 0 # REPLACE ZEROES BY BLANKS #
    52. THEN
    53. BEGIN
    54. C<I,1>CHAR = " ";
    55. END
    56.  
    57. END
    58.  
    59. RETURN;
    60. END # BLANK FILL #
    61.  
    62. IF TYP EQ TYPFILL"ZFILL"
    63. THEN
    64. BEGIN # ZERO FILL #
    65. FASTFOR I = 0 STEP 1 UNTIL NUM-1
    66. DO
    67. BEGIN
    68. IF B<I*6,6>CHAR EQ O"55" # REPLACE BLANKS BY ZEROES #
    69. THEN
    70. BEGIN
    71. B<I*6,6>CHAR = 0;
    72. END
    73.  
    74. END
    75.  
    76. RETURN;
    77.  
    78. END # ZERO FILL #
    79.  
    80. END # BZFILL #
    81.  
    82. #
    83.   END
    84. #
    85. TERM
    86. PROC LOFPROC((LFN));
    87. #
    88.   IDENT LOFPROC
    89.   TITLE LOFPROC - LIST OF FILES PROCESSOR.
    90. #
    91.  
    92. BEGIN # LOFPROC #
    93.  
    94. #
    95. *** LOFPROC - LIST OF FILES PROCESSOR.
    96. *
    97. * *LOFPROC* IS USED TO CREATE A LIST OF LOCAL FILE NAMES, AND ALSO
    98. * TO RETURN THE FILES NAMED IN THIS LIST.
    99. *
    100. * PROC LOFPROC((LFN))
    101. *
    102. * ENTRY (LFN) = NONZERO, LOCAL FILE NAME TO BE ADDED TO THE
    103. * LIST OF FILES.
    104. * = 0, ALL FILES IN THE LIST ARE TO BE RETURNED.
    105. *
    106. * EXIT THE SPECIFIED FILE HAS BEEN ADDED TO THE LIST, OR ALL
    107. * FILES IN THE LIST HAVE BEEN RETURNED.
    108. #
    109.  
    110. ITEM LFN I; # FILE NAME TO BE ADDED TO LIST #
    111.  
    112. #
    113. **** PROC LOFPROC - XREF LIST BEGIN.
    114. #
    115.  
    116. XREF
    117. BEGIN
    118. PROC BZFILL; # BLANK OR ZERO FILL ITEM #
    119. PROC RETERN; # RETURN FILE #
    120. PROC ZSETFET; # INITIALIZE FET #
    121. END
    122.  
    123. #
    124. **** PROC LOFPROC - XREF LIST END.
    125. #
    126.  
    127. DEF LOFMAX #15#; # MAXIMUM LENGTH OF FILE LIST #
    128.  
    129. DEF LISTCON #0#; # DO NOT LIST COMDECKS #
    130. *CALL COMAMSS
    131. *CALL COMAFET
    132.  
    133. ITEM I I; # INDUCTION VARIABLE #
    134. ITEM ORD U = 0; # CURRENT TABLE ORDINAL #
    135.  
    136. ARRAY LFET [0:0] S(SFETL); ; # FET USED FOR *RETURN* REQUEST #
    137. ARRAY LOF [0:LOFMAX] S(1); # LIST OF FILES TABLE #
    138. BEGIN
    139. ITEM LOF$WRD U(00,00,60); # FULL WORD DEFINITION #
    140. ITEM LOF$LFN C(00,00,07); # LOCAL FILE NAME #
    141. END
    142.  
    143. CONTROL EJECT;
    144.  
    145. IF LFN NQ 0 AND ORD LQ LOFMAX
    146. THEN # ADD LFN TO LIST OF FILES #
    147. BEGIN
    148. BZFILL(LFN,1,7);
    149. LOF$WRD[ORD] = LFN;
    150. ORD = ORD + 1;
    151. RETURN;
    152. END
    153.  
    154. IF LFN EQ 0
    155. THEN # RETURN ALL FILES LISTED #
    156. BEGIN # RETURN FILES #
    157. ZSETFET(LOC(LFET[0]),"",0,0,SFETL);
    158.  
    159. SLOWFOR I = 0 STEP 1 WHILE I LS ORD
    160. DO
    161. BEGIN
    162. FET$LFN[0] = LOF$LFN[I];
    163. RETERN(LFET[0],RCL);
    164. END
    165.  
    166. END # RETURN FILES #
    167.  
    168. RETURN;
    169. END # LOFPROC #
    170.  
    171. #
    172.   END
    173. #
    174. TERM
    175. PROC MSG((DFMSG),(OP));
    176. #
    177.   IDENT MSG
    178.   TITLE MSG - DISPLAY DAYFILE MESSAGE.
    179. #
    180.  
    181. BEGIN # MSG #
    182.  
    183. #
    184. *** MSG - DISPLAY DAYFILE MESSAGE.
    185. *
    186. * *MSG* SEARCHES A MESSAGE FOR A TERMINATING CHARACTER AND
    187. * ZERO FILLS THE MESSAGE FROM THE TERMINATOR TO THE END
    188. * OF THE MESSAGE.
    189. *
    190. * PROC MSG((DFMSG),(OP))
    191. *
    192. * ENTRY (DFMSG) - MESSAGE TO BE DISPLAYED, 80 CHARACTER
    193. * MAXIMUM.
    194. * (OP) - MESSAGE ROUTING OPTION.
    195. * (VALUES DEFINED IN *MESSAGE* MACRO ROUTINE)
    196. *
    197. * EXIT THE MESSAGE HAS BEEN DISPLAYED AT THE LOCATION
    198. * SPECIFIED BY (OP).
    199. #
    200.  
    201. ITEM DFMSG C(80); # MESSAGE TEXT #
    202. ITEM OP I; # MESSAGE ROUTING OPTION #
    203.  
    204. #
    205. **** PROC MSG - XREF LIST BEGIN.
    206. #
    207.  
    208. XREF
    209. BEGIN
    210. PROC MESSAGE; # ISSUE MESSAGE #
    211. END
    212.  
    213. #
    214. **** PROC MSG - XREF LIST END.
    215. #
    216.  
    217. DEF BLANK #" "#; # BLANK CHARACTER #
    218. DEF TERMCHAR #";"#; # TERMINATOR CHARACTER #
    219.  
    220. DEF LISTCON #0#; # DO NOT LIST COMDECKS #
    221. *CALL COMAMSS
    222.  
    223. ITEM I I; # LOOP COUNTER #
    224. ITEM CP I; # CHARACTER POSITION #
    225.  
    226. CONTROL EJECT;
    227.  
    228. CP = 0;
    229. FASTFOR I = 0 STEP 1 WHILE I LS 80 AND CP EQ 0
    230. DO # FIND TERMINATOR #
    231. BEGIN
    232. IF C<I,1>DFMSG EQ TERMCHAR
    233. THEN
    234. BEGIN
    235. CP = I;
    236. END
    237.  
    238. END
    239.  
    240. IF CP NQ 0
    241. THEN # ZERO FILL END OF MESSAGE #
    242. BEGIN
    243. B<CP*6,(80-CP)*6>DFMSG = 0;
    244. END
    245.  
    246. MESSAGE(DFMSG,OP); # ISSUE MESSAGE #
    247. RETURN;
    248. END # MSG #
    249.  
    250. #
    251.   END
    252. #
    253. TERM
    254. PROC RESTPFP((OPTION));
    255. #
    256.   IDENT RESTPFP
    257.   TITLE RESTPFP - RESTORE USER *PFP* AND ABORT OR RETURN.
    258. #
    259.  
    260. BEGIN # RESTPFP #
    261.  
    262. #
    263. ** RESTPFP - RESTORE USER *PFP* AND ABORT OR RETURN.
    264. *
    265. * *RESTPFP* RESTORES THE USER-S FAMILY AND USER INDEX, AND
    266. * OPTIONALLY CALLS *LOFPROC* TO RETURN ANY LISTED FILES.
    267. *
    268. * PROC RESTPFP((OPTION))
    269. *
    270. * ENTRY (OPTION) - PROCESSING OPTION (VALUES DEFINED IN
    271. * *COMAMSS*).
    272. * = *PFP$ABORT*, RESTORE *PFP*, RETURN ANY
    273. * LISTED FILES, AND ABORT PROCESSING.
    274. * = *PFP$END*, RESTORE *PFP*, RETURN ANY LISTED
    275. * FILES, AND RETURN TO CALLING PROGRAM.
    276. * = *PFP$RESUME*, RESTORE *PFP* AND RETURN TO
    277. * CALLING PROGRAM (NO FILES RETURNED).
    278. * (USER$FAM) = USER-S CURRENT FAMILY (IN *APFPCOM*).
    279. * (USER$UI) = USER-S CURRENT USER INDEX (IN *APFPCOM*).
    280. *
    281. * EXIT THE USER INDEX AND FAMILY OF THE USER HAVE BEEN
    282. * RESTORED. DEPENDING ON THE VALUE OF *OPTION*,
    283. * LISTED FILES MAY HAVE BEEN RETURNED, AND/OR
    284. * PROCESSING MAY HAVE BEEN ABORTED.
    285. *
    286. * MESSAGE * PROGRAM ABNORMAL, RESTPFP.*.
    287. #
    288.  
    289. ITEM OPTION I; # PROCESSING OPTION #
    290.  
    291. #
    292. **** PROC RESTPFP - XREF LIST BEGIN.
    293. #
    294.  
    295. XREF
    296. BEGIN
    297. PROC ABORT; # ISSUE ABORT #
    298. PROC LOFPROC; # LIST OF FILES PROCESSOR #
    299. PROC MESSAGE; # ISSUE MESSAGE #
    300. PROC SETPFP; # SET FAMILY AND USER INDEX #
    301. END
    302.  
    303. #
    304. **** PROC RESTPFP - XREF LIST BEGIN.
    305. #
    306.  
    307. DEF LISTCON #0#; # DO NOT LIST COMDECKS #
    308.  
    309. *CALL COMAMSS
    310. *CALL COMAPFP
    311.  
    312. ARRAY PFPMSG [0:0] S(3); # ABNORMAL CONDITION MESSAGE #
    313. BEGIN
    314. ITEM PFPLINE C(00,00,28) =[ # MESSAGE LINE #
    315. " PROGRAM ABNORMAL, RESTPFP."];
    316. ITEM PFPZERO U(02,48,12)=[0]; # ZERO BYTE TERMINATOR #
    317. END
    318.  
    319. CONTROL EJECT;
    320.  
    321. #
    322. * RESTORE THE PERMANENT FILE PARAMETERS TO THE USER VALUES.
    323. #
    324.  
    325. PFP$WRD0[0] = 0;
    326. PFP$FAM[0] = USER$FAM[0];
    327. PFP$UI[0] = USER$UI[0];
    328. PFP$PACK[0] = USER$PACK[0];
    329. PFP$FG1[0] = TRUE;
    330. PFP$FG2[0] = TRUE;
    331. PFP$FG4[0] = TRUE;
    332. SETPFP(PFP[0]);
    333. IF PFP$STAT[0] NQ OK
    334. THEN
    335. BEGIN
    336. MESSAGE(PFPMSG[0],UDFL1);
    337. ABORT;
    338. END
    339.  
    340. #
    341. * OPTIONALLY RETURN LISTED FILES.
    342. #
    343.  
    344. IF OPTION NQ PFP$RESUME
    345. THEN
    346. BEGIN
    347. LOFPROC(0);
    348. END
    349.  
    350. #
    351. * OPTIONALLY ABORT PROCESSING.
    352. #
    353.  
    354. IF OPTION EQ PFP$ABORT
    355. THEN # ABORT REQUESTED #
    356. BEGIN
    357. ABORT;
    358. END
    359.  
    360. RETURN;
    361. END # RESTPFP #
    362.  
    363. #
    364.   END
    365. #
    366. TERM
    367. PROC SETNM((NAME),(SRCHCHAR),(TERMCHAR),(MSGBUF),ASMBUF);
    368. #
    369.   IDENT SETNM
    370.   TITLE SETNM - SET NAME IN MESSAGE.
    371. #
    372. BEGIN # SETNM #
    373.  
    374. #
    375. *** SETNM - SET NAME IN MESSAGE.
    376. *
    377. * *SETNM* REPLACES OCCURENCES OF THE SEARCH CHARACTER WITHIN A
    378. * MESSAGE OR LINE WITH THE CHARACTERS OF THE GIVEN NAME OR
    379. * NUMBER, ELIMINATING ALL EXCESS OCCURENCES OF THE SEARCH
    380. * CHARACTER. THE TERMINATOR CHARACTER IS REPLACED BY AN END OF
    381. * LINE IN THE NEW MESSAGE. THE ORIGINAL MESSAGE MUST CONTAIN A
    382. * SUFFICIENT NUMBER OF SEARCH CHARACTERS (USUALLY CONSECUTIVE)
    383. * TO ALLOW FOR REPLACEMENT BY THE NAME OR NUMBER (UP TO 10
    384. * CHARACTERS). THE MESSAGE MUST NOT CONTAIN COLONS (00B)
    385. * SINCE THEY WILL BE INTERPRETED AS EOL.
    386. *
    387. * PROC SETNM((NAME),(SRCHCHAR),(TERMCHAR),(MSGBUF),ASMBUF)
    388. *
    389. * ENTRY (NAME) - DISPLAY CODE NAME OR NUMBER TO BE SET IN
    390. * THE MESSAGE, LEFT JUSTIFIED, BLANK OR BINARY
    391. * ZERO FILLED. IF (NAME) .EQ. 0, ALL SEARCH
    392. * CHARACTER OCCURENCES WILL BE DELETED.
    393. * (SRCHCHAR) - DISPLAY CODE SEARCH CHARACTER, LEFT
    394. * JUSTIFIED.
    395. * (TERMCHAR) - DISPLAY CODE MESSAGE TERMINATION CHARACTER,
    396. * LEFT JUSTIFIED. IF (TERMCHAR) .EQ. 0, THE
    397. * MESSAGE IS TERMINATED BY EOL.
    398. * (MSGBUF) - MESSAGE OR LINE (MAXIMUM OF 80 CHARACTERS).
    399. *
    400. * EXIT (ASMBUF) - MESSAGE WITH THE GIVEN NAME OR NUMBER
    401. * ENTERED IN PLACE OF THE SEARCH CHARACTERS
    402. * END TERMINATED BY EOL.
    403. #
    404.  
    405. ITEM NAME C(10); # REPLACEMENT NAME OR NUMBER #
    406. ITEM SRCHCHAR C(1); # SEARCH CHARACTER #
    407. ITEM TERMCHAR C(1); # TERMINATING CHARACTER #
    408. ITEM MSGBUF C(80); # MESSAGE OR LINE #
    409. ITEM ASMBUF C(80); # ASSEMBLY BUFFER #
    410.  
    411. #
    412. **** PROC SETNM - XREF LIST BEGIN.
    413. #
    414.  
    415. XREF
    416. BEGIN
    417. PROC BZFILL; # BLANK/ZERO FILL ITEM #
    418. END
    419.  
    420. #
    421. **** PROC SETNM - XREF LIST END.
    422. #
    423.  
    424. DEF BLANK #" "#; # BLANK CHARACTER #
    425. DEF ODDNUM(I) #(((I)/2)*2) NQ (I)#; # ODD NUMBER TEST #
    426.  
    427. DEF LISTCON #0#; # COMDECK LIST CONTROL #
    428. *CALL COMAMSS
    429. *CALL COMABZF
    430.  
    431. ITEM APOS I; # ASSEMBLY BUFFER POSITION #
    432. ITEM I I; # LOOP VARIABLE #
    433. ITEM NPOS I; # *NAME* POSITION #
    434. CONTROL EJECT;
    435.  
    436. APOS = 0;
    437. NPOS = 0;
    438. BZFILL(NAME,TYPFILL"ZFILL",10);
    439.  
    440. SLOWFOR I = 0 STEP 1 WHILE I LS 80 ##
    441. AND C<I,1>MSGBUF NQ TERMCHAR
    442. DO
    443. BEGIN # ASSEMBLE MESSAGE #
    444. IF C<I,1>MSGBUF EQ SRCHCHAR
    445. THEN
    446. BEGIN # TRANSFER *NAME* #
    447. IF B<NPOS*6,6>NAME NQ 0 AND NPOS LS 10
    448. THEN # REPLACE SEARCH CHARACTER #
    449. BEGIN
    450. C<APOS,1>ASMBUF = C<NPOS,1>NAME;
    451. NPOS = NPOS + 1;
    452. END
    453.  
    454. ELSE # SKIP SEARCH CHARACTER #
    455. BEGIN
    456. TEST I;
    457. END
    458.  
    459. END # TRANSFER *NAME* #
    460.  
    461. ELSE # TRANSFER MESSAGE #
    462. BEGIN
    463. C<APOS,1>ASMBUF = C<I,1>MSGBUF;
    464. END
    465.  
    466. APOS = APOS + 1; # ADVANCE *ASMBUF* POSITION #
    467. END # ASSEMBLE MESSAGE #
    468.  
    469. IF ODDNUM(APOS)
    470. THEN
    471. BEGIN # ODD NUMBER OF CHARACTERS #
    472. IF C<APOS-1,1>ASMBUF EQ BLANK
    473. THEN # DELETE TRAILING BLANK #
    474. BEGIN
    475. APOS = APOS - 1;
    476. END
    477.  
    478. ELSE # ADD TRAILING BLANK #
    479. BEGIN
    480. C<APOS,1>ASMBUF = " ";
    481. APOS = APOS + 1;
    482. END
    483.  
    484. END # ODD NUMBER OF CHARACTERS #
    485.  
    486. B<APOS*6,12>ASMBUF = 0; # ADD MESSAGE TERMINATOR #
    487.  
    488. END # SETNM #
    489.  
    490. #
    491.   END
    492. #
    493. TERM
    494. PROC ZFILL(ZBUF,(WDLEN));
    495. #
    496.   IDENT ZFILL
    497.   TITLE ZFILL - ZERO FILLS A BUFFER.
    498. #
    499.  
    500. BEGIN # ZFILL #
    501.  
    502. #
    503. *** ZFILL - ZERO FILLS A BUFFER.
    504. *
    505. * PROC ZFILL(ZBUF,(WDLEN))
    506. *
    507. * ENTRY (WDLEN) = NUMBER OF WORDS TO BE ZERO FILLED.
    508. *
    509. * EXIT (ZBUF) = ZERO FILLED BUFFER.
    510. #
    511.  
    512. ARRAY ZBUF [0:0] ; # ARRAY TO BE ZERO FILLED #
    513. BEGIN
    514. ITEM ZWORD U(00,00,60);
    515. END
    516.  
    517. ITEM WDLEN I; # NUMBER OF WORDS TO BE ZEROED #
    518.  
    519. DEF LISTCON #0#; # DO NOT LIST COMDECKS #
    520. *CALL COMAMSS
    521.  
    522. ITEM I I; # LOOP INDUCTION VARIABLE #
    523.  
    524. CONTROL EJECT;
    525.  
    526. #
    527. * ZERO FILL THE SPECIFIED NUMBER OF
    528. * WORDS IN THE BUFFER.
    529. #
    530.  
    531. FASTFOR I = 0 STEP 1 UNTIL WDLEN-1
    532. DO
    533. BEGIN
    534. ZWORD[I] = 0;
    535. END
    536.  
    537. END # ZFILL #
    538.  
    539. #
    540.   END
    541. #
    542. TERM
    543. PROC ZSETFET((ADDR),(LFN),(FWA),(LEN),(FETL));
    544. #
    545.   IDENT ZSETFET
    546.   TITLE ZSETFET - INITIALIZES A *FET*.
    547. #
    548.  
    549. BEGIN # ZSETFET #
    550.  
    551. #
    552. *** ZSETFET - INITIALIZES A FILE ENVIRONMENT TABLE.
    553. *
    554. * THIS PROCEDURE CREATES A *FET* AT THE SPECIFIED
    555. * ADDRESS AND SETS STANDARD FIELDS. OTHER FIELDS MUST BE SET
    556. * BY THE USER.
    557. *
    558. * PROC ZSETFET((ADDR),(LFN),(FWA),(LEN),(FETL)).
    559. *
    560. * ENTRY (ADDR) - ADDRESS *FET* IS TO START AT.
    561. * (LFN) - NAME OF FILE TO BE ACCESSED.
    562. * (FWA) - FIRST WORD ADDRESS OF *CIO* BUFFER.
    563. * (LEN) - LENGTH OF THE *CIO* BUFFER.
    564. * (FETL) - LENGTH OF THE *FET*.
    565. *
    566. * EXIT *FET* IS INITIALIZED (I.E. *FIRST*, *IN*, *OUT*, AND
    567. * *LIMIT* POINTERS , AND *FET* LENGTH FIELDS ARE SET
    568. * AND THE *LFN* FIELD IS ZERO FILLED).
    569.  
    570. **
    571. *
    572. * NOTES VALUES SPECIFIED BY PARAMETERS ARE PLACED IN THE
    573. * APPROPRIATE ARRAY FIELDS, AND THE POINTER OF BASED
    574. * ARRAY *FETSET* IS SET TO *ADDR*.
    575. #
    576.  
    577.  
    578. ITEM ADDR U; # ADDRESS OF *FET* #
    579. ITEM LFN C(7); # FILE NAME #
    580. ITEM FWA U; # *FWA* OF *CIO* BUFFER #
    581. ITEM LEN U; # LENGTH OF *CIO* BUFFER #
    582. ITEM FETL U; # LENGTH OF *FET* #
    583.  
    584. #
    585. **** PROC ZSETFET - XREF LIST BEGIN.
    586. #
    587.  
    588. XREF
    589. BEGIN
    590. PROC BZFILL; # ZERO OR BLANK FILLS ITEM #
    591. PROC ZFILL; # ZERO FILLS AN ARRAY #
    592. END
    593.  
    594. #
    595. **** PROC ZSETFET - XREF LIST END.
    596. #
    597.  
    598. DEF MINFETL #5#; # MINIMUM *FET* LENGTH #
    599.  
    600. DEF LISTCON #0#; # CONTROLS LISTING OF COMDECKS #
    601.  
    602. *CALL COMAMSS
    603. *CALL COMABZF
    604. *CALL COMAFET
    605. CONTROL EJECT;
    606.  
    607. #
    608. * ZERO FILL *FET* AND SET STANDARD FIELDS.
    609. #
    610.  
    611. P<FETSET> = ADDR;
    612. ZFILL(FETSET[0],FETL);
    613. BZFILL(LFN,TYPFILL"ZFILL",7); # ZERO-FILL FILE NAME #
    614. FET$LFN[0] = LFN;
    615. FET$LOCK[0] = TRUE;
    616. FET$FRST[0] = FWA;
    617. FET$IN[0] = FWA;
    618. FET$OUT[0] = FWA;
    619. FET$LIM[0] = FWA + LEN;
    620. FET$L[0] = FETL - MINFETL; # SET LENGTH OF *FET* #
    621. RETURN;
    622. END # ZSETFET #
    623.  
    624. #
    625.   END
    626. #
    627. TERM
1)
LFN
2)
DFMSG),(OP
3)
OPTION
4)
NAME),(SRCHCHAR),(TERMCHAR),(MSGBUF),ASMBUF)
  • [00370] SETNM - SET NAME IN MESSAGE.
  • [00417] PROC BZFILL
  • [00494] PROC ZFILL(ZBUF,(WDLEN))
  • [00497] ZFILL - ZERO FILLS A BUFFER.
  • [00543] PROC ZSETFET((ADDR),(LFN),(FWA),(LEN),(FETL