MPTMON. Работа с библиотеками.

В предыдущей статье, среди прочих, были упомянуты команды, которые используются для работы с библиотеками. На этот раз, я попытаюсь дать более полное описание этих команд.

GET [MAC] имя макроса [,...]

С помощью команды можно извлечь один или несколько макросов из дисковой библиотеки в память. Про макрос GET, которым можно воспользоваться в том случае, если выполнение команды было безрезультатным, рассказано в предыдущей статье.

 

SEL LIB устройство, файл

Команда служит для выбора библиотеки. В том случае если будет выполняться команда, требующая обращения к макросу, например, его выполнение или просмотр, поиск макроса, если он не будет найден в памяти, будет осуществляться на диске, в выбранной этой командой библиотеке. После рестарта или перезагрузки, по умолчанию выбирается библиотека 969Т на устройстве 1032Т.

 

DIR LIB устройство, файл

Выводит содержимое библиотеки. В каждой строке выводится по 8 элементов библиотеки (хотя, это может зависеть от настроек терминальной программы, например, при использовании SPEICON'а такое количество будет, если в его настройках установлено 80 символов в строке). В отличие от команды DIR, где содержимое каталога выводится в порядке добавления элементов, здесь содержимое выводится в алфавитном порядке (см. ниже). В том случае, если библиотека содержит большое количество элементов, содержимое будет разбито на части, в каждой по 409 элемента.

    >DIR        ; смотрим в памяти
 V         I         D
    >DIR LIB    ; и смотрим на диске
 DIRECTORY OF LIBRARY FILE:  961T     ON DEVICE:    1T
[]
 D         I         V
    >

 

DIS LIB

С помощью этой команды запрещается автоматическое извлечение макроса из дисковой библиотеки. Как можно видеть ниже, эта команда не влияет на принудительное извлечение макроса командой GET MAC.

    >SEL LIB 1, 961T
    >DIR LIB      ; смотрим содержимое дисковой библиотеки
 DIRECTORY OF LIBRARY FILE:  961T     ON DEVICE:    1T
[]
 D         I         V
    >DIS LIB      ; запрещаем автоматическое извлечение
    >V:SLIF,0,1,ALL,1
 *** ERROR: MACRO NOT DEFINED
    >MAC V
 *** ERROR: MACRO NOT DEFINED
    >GET V
    >DIR
 V
    >MAC V        ; на это раз команда проходит, т.к. макрос уже в памяти
DEF MAC V
;
IF %N<4
' PERFORM OPERATOR VERIFY ON SELECTED SBLTYPE & EV. CONFIRMS'
' P0 = SBLTYPE'
' P1 = NA'
' P2 = NBR'
' P3 = TSEGMENT'
' P4 = NBRLOOPS'
ENDI
;
;:DCON
<14:SBLTYPE=%0,NA=H'%1,NBR=%2,WTC=0,TSEGMENT=%3,ITRCL=2,
<ITRFM=1&1&1,NBRLOOPS=%4;
SET ERR\SET MEN
VER REP 'CONFIRM'
DE.IEC=IEC\DE.JSQ=JSQ\BAS=T\RES ERR\RES MEN
IF.IEC=0
<GO:1=%(.JSQ),2=3;
EN\BAS=H
EM

В случае, когда макрос вызывается из другого макроса во избежание проблем лучше использовать команду CAL, ниже это продемонстрировано на примере трех макросов. Для начала создаем макрос Х, который будет выводить текст WORKING MACRO X и помещаем его в библиотеку, после чего запрещаем автоматическое извлечение из библиотеки и удаляем макрос из памяти. Создаем два новых макроса, которые будут вызывать первый, но делать будут это каждый по-своему. Как можно видеть успешно выполняется только тот макрос, в котором для вызова используется команда CAL.

    >DEF MAC X
    .>WRI 'WORKING MACRO X'
    .>EM
    >PUT MAC X
[&]
    >DIR LIB
 DIRECTORY OF LIBRARY FILE:  961T     ON DEVICE:    1T
[]
 D         I         V         X
    >DIR
 V         X
    >REM MAC X
    >DIS LIB
    >DIR
 V
    >X:                        ; пытаемся выполнить макрос
 *** ERROR: MACRO NOT DEFINED
    >DEF MAC Y
    .>:X
    .>EM
    >Y:
 *** ERROR: MACRO NOT DEFINED      - :X
    >DEF MAC Z
    .>CAL X
    .>EM
    >Z:
WORKING MACRO X
    >

 

INI LIB устройство, файл

Команда выполняет инициализацию указанной библиотеки на указанном диске (возможности работать с МО дисками я не испытывал). В результате чего все содержимое библиотеки удаляется. Команду можно выполнять для отдельного диска (1 или 2), либо для дуплексного (1032Т). Выполнение команды защищено паролем. Ниже приведен пример, в котором для начала просматривается текущий размер библиотеки, затем выполняется её инициализация и в конце вновь отображается размер и содержимое.

    OPTS-3 PECHORA    2001-12-11  14:47:28  TU
    001  0130/0006/0001
    <268:1=1,2=961.
    SEQ=3840.011211 9002
    COM=0268
    JOB SUBMITTED
 
 
                    9000
    RESULT FOLLOWS
 


    OPTS-3 PECHORA    2001-12-11  14:47:37  TU
    001  0130/0006/0001
    SEQ=3840.011211 00222  P6M802
    PERIPHERAL SERVICE ROUTINES REPORT OF
       DISPLAY-DISK-FILE                                    SUCCESSFUL
       --------------------------------------------------------------
       LOGICAL DEVICE                   =   1
       FILE NUMBER                      =   961
       MAXIMUM FILE LENGTH              =   32767
       CURRENT FILE LENGTH              =   5821
       RECORD LENGTH                    =   16
       TOTAL NUMBER OF CLUSTERS         =   2

       LAST REPORT          NO = 00222
     >
     >INI LIB 1,961T
 PASSWORD:
[]
     >
     >MMC
    OPTS-3 PECHORA    2001-12-11  14:56:30  TU
    001  0130/0006/0001
    <268:1=1,2=961.
    SEQ=3842.011211 9002
    COM=0268
    JOB SUBMITTED
 
 
                    9000
    RESULT FOLLOWS
 


    OPTS-3 PECHORA    2001-12-11  14:56:39  TU
    001  0130/0006/0001
    SEQ=3842.011211 00222  P6M802
    PERIPHERAL SERVICE ROUTINES REPORT OF
       DISPLAY-DISK-FILE                                    SUCCESSFUL
       --------------------------------------------------------------
       LOGICAL DEVICE                   =   1
       FILE NUMBER                      =   961
       MAXIMUM FILE LENGTH              =   32767
       CURRENT FILE LENGTH              =   256
       RECORD LENGTH                    =   16
       TOTAL NUMBER OF CLUSTERS         =   1

       LAST REPORT          NO = 00222
     >SEL LIB 1,961T
     >DIR LIB
 DIRECTORY OF LIBRARY FILE:  961T     ON DEVICE:    1T
[]
    >SEL LIB 1032T, 961T
    >DIR LIB
 DIRECTORY OF LIBRARY FILE:  961T     ON DEVICE: 1032T
[]
    >SEL LIB 2, 961T
    >DIR LIB
 DIRECTORY OF LIBRARY FILE:  961T     ON DEVICE:    2T
[]
 BAS_SERV  BILLING   BYTREV    CALLBUF   CALLBUF2  CALLBUF3  CALLBUF4  CELL
 CELL1     CF_1      CF_2      CF_3      CF_DEST   CF_PROF   CLM       CNFDCB2
 CNFINFO   CONFDCB   CONFSYM   DA        DASSALL   DASSCB    DASSINFO  DASSTKT
 DCMDATA   DDN       DICOMLI   DIDID     DIDIDCO   DIDIDIN   DIDIDSY   DIDIGPR
 DIRCDEP1  DIRCDEP2  DIRCDEP3  DIRCDEP4  DIRTINF   DIRTMAP   DISLTCO   DISP_CF
 DTB16     FTNST     HULIGAN   IDN       L         LABVP2    LCALBUF1  LCALLBUF
 LCB       LCGJOB    LEGST     LEGST1    LEGSTAT   LINETRAC  LPOOLS    LTACB
 LTACB1    LTLSIN02  LTLSTAT   NEXT_IDX  PAANAL    PACPX     PADACC    PANBR
 PAORG     PAPAT     PARSLT    PASINF    PASLCT    PASYM     PATSKIP   RBP
 REL2      RESET     RSIGTRC   SCB       SHOWLEGS  TAR       TARDOP    TELDEV
 TEST      TESTTAB   TIM       TKTCHG    TRA       VDN       WHO       XMITQ
    >

Как можно видеть, после инициализации размер библиотеки не равен нулю, а равен максимальному количеству элементов для этой библиотеки, но самих макросов нет. Обратите так же внимание на тот случай, когда выбрана библиотека на двойном диске, содержимое не отображается.

 

PUT [MAC] имя макроса [,...]

С помощью этой команды можно поместить макрос из памяти в библиотеку на диске. Имя макроса должно быть уникальным. В случае если макрос с таким именем уже существует, будет задан вопрос о перезаписи уже существующего элемента библиотеки. Для каждого удачно записанного макроса выводится символ ’&’, т.о. при удачном выполнении операции количество этих символов должно совпадать с количеством записанных макросов.

    >SEL LIB 1, 961T
    >PUT V, I, D
[&&&]
    >MM
    OPTS-3 PECHORA    2001-12-15  09:09:54  SA
    001  0130/0006/0001
    <268:1=1,2=961.
    SEQ=4611.011215 9002
    COM=0268
    JOB SUBMITTED
 
 
                    9000
    RESULT FOLLOWS
 


    OPTS-3 PECHORA    2001-12-15  09:09:56  SA
    001  0130/0006/0001
    SEQ=4611.011215 00222  P6M802
    PERIPHERAL SERVICE ROUTINES REPORT OF
       DISPLAY-DISK-FILE                                    SUCCESSFUL
       --------------------------------------------------------------
       LOGICAL DEVICE                   =   1
       FILE NUMBER                      =   961
       MAXIMUM FILE LENGTH              =   32767
       CURRENT FILE LENGTH              =   315
       RECORD LENGTH                    =   16
       TOTAL NUMBER OF CLUSTERS         =   1

       LAST REPORT          NO = 00222
    >PUT V, I, D
[ REPLACE MEMBER? (Y):Y
& REPLACE MEMBER? (Y):Y
& REPLACE MEMBER? (Y):Y
&]
    >MM
    OPTS-3 PECHORA    2001-12-15  09:10:36  SA
    001  0130/0006/0001
    <268:1=1,2=961.
    SEQ=4612.011215 9002
    COM=0268
    JOB SUBMITTED
 
 
                    9000
    RESULT FOLLOWS
 


    OPTS-3 PECHORA    2001-12-15  09:10:38  SA
    001  0130/0006/0001
    SEQ=4612.011215 00222  P6M802
    PERIPHERAL SERVICE ROUTINES REPORT OF
       DISPLAY-DISK-FILE                                    SUCCESSFUL
       --------------------------------------------------------------
       LOGICAL DEVICE                   =   1
       FILE NUMBER                      =   961
       MAXIMUM FILE LENGTH              =   32767
       CURRENT FILE LENGTH              =   374
       RECORD LENGTH                    =   16
       TOTAL NUMBER OF CLUSTERS         =   1

       LAST REPORT          NO = 00222

В приведенном выше примере в пустую библиотеку (размер 256 записей) были помещены три макроса, после чего размер библиотеки увеличился на 315-256=59 записей. Затем, макросы были помещены повторно, размер библиотеки увеличился на те же 374-315=59 записей. Т.о. при помещении обновленных версий макросов в библиотеку, старые версии из нее не удаляются, что приводит к не рациональному использованию места, но с этим можно бороться командой COM LIB, приведенной ниже.

 

DEL MAC имя макроса

Эта команда удаляет макрос с указанным именем в дисковой библиотеке, но удаление происходит только из каталога библиотеки, в то время как место не освобождается. Случайно удаленный макрос можно восстановить командой GET MAC. В приведенном ниже примере сначала инициализируется библиотека, потом в нее помещаются два макроса, которые, после просмотра размера библиотеки, удаляются из нее. Как можно видеть, размер библиотеки до и после удаления макросов одинаков. Напоследок производим "восстановление" макросов, их содержимое помещается в память, но в библиотеке они не восстанавливаются.

    >INI LIB 1, 961T
 PASSWORD:
[]
    >PUT V, I
[&&]
    >MM
    OPTS-3 PECHORA    2001-12-15  14:31:07  SA
    001  0130/0006/0001
    <268:1=1,2=961.
    SEQ=4635.011215 9002
    COM=0268
    JOB SUBMITTED


                    9000
    RESULT FOLLOWS



    OPTS-3 PECHORA    2001-12-15  14:31:08  SA
    001  0130/0006/0001
    SEQ=4635.011215 00222  P6M802
    PERIPHERAL SERVICE ROUTINES REPORT OF
       DISPLAY-DISK-FILE                                    SUCCESSFUL
       --------------------------------------------------------------
       LOGICAL DEVICE                   =   1
       FILE NUMBER                      =   961
       MAXIMUM FILE LENGTH              =   32767
       CURRENT FILE LENGTH              =   298
       RECORD LENGTH                    =   16
       TOTAL NUMBER OF CLUSTERS         =   1

       LAST REPORT          NO = 00222
    >DIR LIB
 DIRECTORY OF LIBRARY FILE:  961T     ON DEVICE:    1T
[]
 I         V
    >DEL I
[]
    >DEL V
[]
    >REM MAC
    >DIR LIB
 DIRECTORY OF LIBRARY FILE:  961T     ON DEVICE:    1T
[]
    >MM
    OPTS-3 PECHORA    2001-12-15  14:33:03  SA
    001  0130/0006/0001
    <268:1=1,2=961.
    SEQ=4636.011215 9002
    COM=0268
    JOB SUBMITTED


                    9000
    RESULT FOLLOWS



    OPTS-3 PECHORA    2001-12-15  14:33:07  SA
    001  0130/0006/0001
    SEQ=4636.011215 00222  P6M802
    PERIPHERAL SERVICE ROUTINES REPORT OF
       DISPLAY-DISK-FILE                                    SUCCESSFUL
       --------------------------------------------------------------
       LOGICAL DEVICE                   =   1
       FILE NUMBER                      =   961
       MAXIMUM FILE LENGTH              =   32767
       CURRENT FILE LENGTH              =   298
       RECORD LENGTH                    =   16
       TOTAL NUMBER OF CLUSTERS         =   1

       LAST REPORT          NO = 00222
    >GET I
    >GET V
    >DIR
 I         V
    >DIR LIB
 DIRECTORY OF LIBRARY FILE:  961T     ON DEVICE:    1T
[]
    >

 

COM LIB устройство

С помощью этой команды производится сжатие выбранной библиотеки. Для этой цели используется временное устройство (оптический диск или лента), которое и указывается в качестве параметра команды. После выполнения команды, сжатая (скорее оптимизированная) библиотека будет находиться на этом устройстве. После чего остается только выполнить обратное копирование ММС командой COPY-FILE. Естественно, следует копировать библиотеку обратно только в случае успешного выполнения команды. Во время выполнения команды, каждый удачно записанный блок отмечается символом '&' на экране. Выполнение команды защищено паролем.

    >MM
    OPTS-3 PECHORA    2001-12-15  12:01:54  SA
    001  0130/0006/0001
    <268:1=1,2=968.
    SEQ=4618.011215 9002
    COM=0268
    JOB SUBMITTED


                    9000
    RESULT FOLLOWS



    OPTS-3 PECHORA    2001-12-15  12:02:00  SA
    001  0130/0006/0001
    SEQ=4618.011215 00222  P6M802
    PERIPHERAL SERVICE ROUTINES REPORT OF
       DISPLAY-DISK-FILE                                    SUCCESSFUL
       --------------------------------------------------------------
       LOGICAL DEVICE                   =   1
       FILE NUMBER                      =   968
       MAXIMUM FILE LENGTH              =   32767
       CURRENT FILE LENGTH              =   31424
       RECORD LENGTH                    =   16
       TOTAL NUMBER OF CLUSTERS         =   1

       LAST REPORT          NO = 00222
    >SEL LIB 1, 968T
    >DIR LIB
 DIRECTORY OF LIBRARY FILE:  968T     ON DEVICE:    1T
[]
[]
 AA        ABF       ABF1      ABFASCII  ABFCOM    ACE       ACTC      ACTFCS   
 ACTTRAC   ALLDEV    ARM       ARM_B     ARM_C     ARM_E     ASCII     BDH      
 BOOTMSG   CALSCHED  CAU       CEID      CEIDS     CETYPE    CHECKNA   CLDEC    
 CLIST     CLOSE     CLOSE1    CMI       CMIINIT   CNSTRNG   COL       COND     
 CONSTR    CONT      COPYUTIL  COUNTRY   COU_ACE   COU_SONS  CPULOAD   CRH_SYM  
 D386      DBERR     DBERR0    DBERR1    DBERR2    DBERR3    DBERR4    DBERR5   
 DBERR6    DBERR7    DBINFO    DBSOS     DBSOS2    DBU       DCRMSG    DEAL     
 DESC      DEVDATA   DFTRCSEL  DIS       DISKINFO  DISKMAC   DISPDO    DISPREL  
 DISP_ERR  DMCACMD   DMCARES   DOMS      DORIA     DORIA1    DTB       DTB15    
 DTPATCH   DTPATCH1  DTPATCH2  DTPATCH3  DTPATCH4  DTPATCH5  DTPATCH6  DTPATCH7 
 DTPATCH8  DUMP      DUMP1     DUMP2     ENDUB     ERR       ERRCLASS  ESCPRIM  
 FCB       FCBLIST   FCBS      FCREF     FD        FDREQ     FDSS1     FDSTAT   
 FDT       FET       FETSSM    FILEINFO  FILELIST  FILESIZE  FILESZE1  FILESZE2 
 FILESZE3  FINDMSG   FINDPAT   FINDPID   FINDSTK   FINPARA   FLAGS     FMMNAME  
 FMMPCB    FTYPES    G         GDT       GET       GET386    GETBL     GETFMMID 
 GETGLSID  GETREGS   GETREL    GETTRACE  GETVVM    GLS       GLSFILE   GLSNAME  
 GOS       GPHNAME   GSM       HARDTRC   IBRP      IDS       ILINK     INIT1BID 
 INIT1VMI  INIT2BID  INIT2VMI  INIT3BID  INIT4BID  INIT5BID  INIT6BID  INTQ     
 INTUR1VF  IOCSYM    IODEVST   IOERR     IOTEST    ISOL      J         KILL     
 KILLFMM   KILLMSG   KILLOV    KO        LCLMSG    LDC_SONS  LDEV      LDT      
 LEV       LEVCSYNT  LEVEL     LEVSYNTX  LEV_B     LEV_C     LEV_E     LFPRES   
 LFPRES1   LOAD      LOAD1     LPT       LPTMNEM   MBID      MDPARTID  MFMM     
 MINI      MINT      MMSGTRAC  MMSIZE    MNEM      MNEMJST   MONI      MONINIT1 
 MONINIT2  MONINIT3  MONINIT4  MONIREST  MONP      MONT      MSG       MSGMNEM  
 MSGTRACE  MSGTRANS  MTU       MTUCMP    NAMES     NHSTAT    NHSTAT1   NH_SYM   
 OBCGLS    OCB       OCBS      OM        OM1       ONT       ONT_B     ONT_E    
 OPEN      OPEN1     OPT       OSNSTAT   OSNSTAT1  OSNSTAT2  OSNTASYM  OSN_SYM  
 OUTSET    OVATAB    OVLCSYM   OVLOAD    OVSCAN    PATCHK    PATCHK1   PATODK   
 PB        PB1       PB2       PCB       PCBRES    PCBRESH1  PCBRESH2  PCI      
 PDEV      PFMM      PFUN      PLANT     PM        PRAM      PRI_CERR  PRI_ERR  
 PUTBL     Q         R2RUS     RB        RBC       RBC2      RBC3      RBC4     
 RDOBC     RDOBCM    RDVOL     READ      READ1     RECBLK    REG       REL1     
 REL2      RELINFDO  RELINFO   RELINFO1  RELINFO2  RELINFO3  RELINFO4  RELINFO5 
 RELINFOD  REMBP     REPORT    RESTART   RFSL      RGSM_SYM  RIA       RIA1     
 RID       RMTMSG    ROUTE     RST       RTB       RTC       RTC2      RTCM     
 RTCM2     RTCP      RTCR      RTSH      R_FEAT    R_RES2TA  R_REST    S        
 SAVETRAC  SCB       SELTRAC   SGDIR     SHUTTEST  SHUTUP    SIGNDATE  SIMPRIM  
 SINPRIM   SKIP      SMEM      SN7CHRG   SONSBUFF  SOSELT    SSDEF     SSMNAME  
 SST       STACK     START     STARTUP   STOPERR   SVCE      TACB      TAIL     
 TAILTA    TCB       TIME      TIMLIS    TI_SYM    TNCB      TNST      TNST1    
 TRACEDIA  TRACEINI  TRANSLP   TRBUF     TRCREL    TRDEF     TRDEF1    TRF      
 TRF_B     TRF_E     TRI       TRICSYNT  TRISYNTX  TRI_B     TRI_C     TRI_E    
 TRTUT     TSS       TTCE      TTMSSM    TYPE      VMI       VPCB      WAIT     
 WAITS     WPMAP     WRFR7     WRITE     WRITE1    WRITEBID 
    >COM LIB 4020T
 PASSWORD:
[[&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&  COMPRESS PROCEEDING
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&  COMPRESS PROCEEDING
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&  COMPRESS PROCEEDING
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&  COMPRESS PROCEEDING
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&  COMPRESS PROCEEDING
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&  COMPRESS PROCEEDING
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&  COMPRESS PROCEEDING
]]
    >MM
    OPTS-3 PECHORA    2001-12-15  12:07:42  SA
    001  0130/0006/0001
    <COPY-FILE:SRCDEV=4020,DESTDEV=1032,LFILID=968.
    SEQ=4619.011215 9002
    COM=0405
    JOB SUBMITTED


                    9000
    RESULT FOLLOWS

    >$


    OPTS-3 PECHORA    2001-12-15  12:09:00  SA
    001  0130/0006/0001
    SEQ=4619.011215 07818  P6M802
    PERIPHERAL SERVICE ROUTINES REPORT OF
 
       COPY-FILE                                                    SUCCESSFUL
       -----------------------------------------------------------------------

       SOURCE DEVICE      = DKA2P0
       DESTINATION DEVICE = DA1B1SL1
       LOGICAL FILE ID    = 968

       LAST REPORT          NO = 07818
    >MM
    OPTS-3 PECHORA    2001-12-15  12:09:16  SA
    001  0130/0006/0001
    <268:1=1,2=968.
    SEQ=4620.011215 9002
    COM=0268
    JOB SUBMITTED


                    9000
    RESULT FOLLOWS



    OPTS-3 PECHORA    2001-12-15  12:09:18  SA
    001  0130/0006/0001
    SEQ=4620.011215 00222  P6M802
    PERIPHERAL SERVICE ROUTINES REPORT OF
       DISPLAY-DISK-FILE                                    SUCCESSFUL
       --------------------------------------------------------------
       LOGICAL DEVICE                   =   1
       FILE NUMBER                      =   968
       MAXIMUM FILE LENGTH              =   32767
       CURRENT FILE LENGTH              =   28843
       RECORD LENGTH                    =   16
       TOTAL NUMBER OF CLUSTERS         =   1

       LAST REPORT          NO = 00222
    >

Как можно видеть, размер библиотеки сократился на 31424-28843=2581 запись, что совсем не плохо, причем эту библиотеку станционный персонал не модифицировал ни коим образом, в каком виде (не оптимизированном) она была помещена на диск при последней смене пакета, в таком виде и подверглась сжатию (для библиотеки 969Т цифры были следующими: 32421-29358=3063).

 

PUT SYM имя

Помещает идентификаторы (symbols), находящиеся на момент выполнения в памяти, на диск в библиотеку макросов, в таблицу (symbol table) с указанным именем.

 

GET SYM имя

Извлекает идентификаторы из библиотеки в память.

 

DEL SYM имя

Удаляет таблицу идентификаторов с указанным именем из библиотеки макросов. Ниже приведен пример использования всех команд для работы с таблицами идентификаторов (symbol table).

    >REM SYM            ; удаляем все текущие идентификаторы
    >DEF .X=1           ; и добавляем новые
    >DEF .Y=2
    >DEF .Z=3
    >SYM                ; смотрим, что у нас в памяти
 .X        = 0001
 .Y        = 0002
 .Z        = 0003
    >SEL LIB 1, 961T    ; выбираем библиотеку макросов
    >PUT SYM SYMTAB     ; помещаем все идентификаторы в библиотеку
[&]
    >DIR LIB            ; просматриваем её
 DIRECTORY OF LIBRARY FILE:  961T     ON DEVICE:    1T
[]
 SYMTAB
    >REM SYM            ; удаляем все идентификаторы из памяти
    >SYM
    >GET SYM SYMTAB     ; загружаем таблицу идентификаторов
    >SYM                ; смотрим содержимое памяти
 .X        = 0001
 .Y        = 0002
 .Z        = 0003
    >DEL SYM SYMTAB     ; удаляем таблицу из библиотеки
[]
    >DIR LIB
 DIRECTORY OF LIBRARY FILE:  961T     ON DEVICE:    1T
[]
    >

На сегодня хватит.

И так, в материале были рассмотрены все команды, связанные с обработкой библиотечных файлов. Но как было сказано раньше, файлы библиотек (с 961 по 969) не единственные, где могут храниться макросы и идентификаторы. Вот об этом, я и намерен повести разговор в следующий раз.

Всем удачи!

 
Максим Осташов
Размещено на www.s12most.mailru.com 15 декабря 2001
Есть вопросы или дополнения, конструктивная критика? Пишите!
Hosted by uCoz