Разработка прототипа системы управления объектно-ориентированной базой данных



         

Заголовочный модуль для каналов


PROGRAM $M0

B16

1000 VALUE TOTMEMLEN

TOTMEMLEN BYTE VCTR MEMORY

: T-1 D -1 ;

: *4 SHL SHL ;

: &0FF 0FF & ;

: <= 1+ < ;

: >= 1- > ;

[20 WORD VCTR CHAN] [каналы. Начиная с 5-го]

VAR NCHAN [Номер текущего канала]

: !NCHAN ! NCHAN ;

5 VALUE NBASECH [Первый не базовый канал]

: GETDATA NCHAN 10 * + CHDATA ;

: PUTDATA NCHAN 10 * + ! CHDATA ;

[Размер заголовка блока в байтах]

FIX VAR HSIZE 10 ! HSIZE

: HSIZE+ HSIZE + ;

[Pred, Next, BusyLen, Len]

1 *4 VALUE ctfPREDADDR

[$M4] [как самодостаточный]

0 VALUE ctLOWCH   [Нижний канал.]

                  [0=Оперативная/1=Дисковая память/2=Журнал/-1=свободен]

1 VALUE ctTEKADR  [Логический адрес внутри участка (по данным)]

2 VALUE ctBUSYLEN [Длина фрагмента, занятая данными]

3 VALUE ctLEN     [Максимальная допустимая длина данных фрагмента]

4 VALUE ctTEKADR0  [=TEKADR, когда TEKADR стоит на нулевом байте данных фрагм]

5 VALUE ctNEXTADDR  [Адрес начала заголовка следующего фрагмента (пф)]

6 VALUE ctPREDADDR  [Адрес начала заголовка предыдущего фрагмента (пф)]

7 VALUE ctSYNCADDR  [Адрес начала заголовка фрагмента (пф)]

8 VALUE ctCHGCTX    [признак изменения контекста]

9 VALUE ct1STLONG   [Первое число в канале]

[в начальном блоке в начальном слове данных лежит адрес начала данных]

: LOWCH  ctLOWCH GETDATA ;  : !LOWCH ctLOWCH PUTDATA ;

: TEKADR ctTEKADR GETDATA ;    : !TEKADR ctTEKADR PUTDATA ;

: TEKADR0 ctTEKADR0 GETDATA ;    : !TEKADR0 ctTEKADR0 PUTDATA ;

: TEKADR++ TEKADR 1+ !TEKADR ; : !+TEKADR TEKADR + !TEKADR ;

: BUSYLEN ctBUSYLEN GETDATA ; : !BUSYLEN ctBUSYLEN PUTDATA ;

: LEN    ctLEN GETDATA ; : !LEN ctLEN PUTDATA ;

: NEXTADDR ctNEXTADDR GETDATA ;  : !NEXTADDR ctNEXTADDR PUTDATA ;

: PREDADDR ctPREDADDR GETDATA ;  : !PREDADDR ctPREDADDR PUTDATA ;

: SYNCADDR ctSYNCADDR GETDATA ;  : !SYNCADDR ctSYNCADDR PUTDATA ;

: CHGCTX ctCHGCTX GETDATA ;  : !CHGCTX ctCHGCTX PUTDATA ;

: FSTLONG ct1STLONG GETDATA ; : !FSTLONG ct1STLONG PUTDATA ;




Содержание  Назад  Вперед