Mapa pamięci MERY-400 opisuje obszary w bloku pamięci systemowej wymagane ze względu na konstrukcję minikomputera. CROOK-5 organizuje pamięć systemową na swój sposób, zachowując oczywiście wymagania narzucone konstrukcją. Jedynym wyjątkiem są wektory niezainstalowanych opcji, które mogły zostać pominięte ze względu na fakt, że w praktyce nie występowały konfiguracje MERY-400 bez arytmometru wielokrotnej precyzji.
Ogólna organizacja pamięci systemowej CROOK-5
Adresy |
Zawartość
|
dec |
oct |
hex
|
0 - 1 |
0 - 01 |
0x0 - 0x1 |
Skok do właściwej części systemu operacyjnego
|
4 - 63 |
04 - 077 |
0x04 - 0x3f |
Tablica konfiguracji MERY-400
|
64 - 95 |
0100 - 0137 |
0x40 - 0x5f |
Wektory przerwań
|
96 |
0140 |
0x60 |
Adres procedury obsługi EXL
|
97 |
0141 |
0x61 |
Wskaźnik stosu
|
99 - 107 |
0143 - 0153 |
0x63 - 0x6b |
Tablica opisu dysków WINCHESTER
|
109 - 20479 |
0155 - 047777 |
0x6d - 0x4fff |
System operacyjny
|
Szczegółowa mapa pamięci CROOK-5
Poniższa mapa pamięci odnosi się do systemu CROOK-5 w wersji 8F dla maszyny nie przerobionej. Kolory komórek tabeli oznaczają zawartość komórki (komórek) pamięci pod daną etykietą (adresem):
zawartość nieznana
|
zmienna, stała, struktura
|
adres (wskaźnik)
|
kod (procedura, funkcja, podprogram)
|
Adres |
Etykieta |
Długość |
Zawartość |
Opis
|
0x0002 |
DUMTIM |
1 |
|
?
|
0x0003 |
ENDSYS |
1 |
AEOV0=0x1600 |
koniec właściwiej części systemu (przed nakładkami?)
|
0x0004 |
|
60 |
|
Tablica konfiguracji MERY-400
|
0x0040 |
|
32 |
|
Przerwania
|
0x0060 |
|
1 |
EXST |
adres procedury obsługi EXL
|
0x0061 |
STACK |
1 |
0x2ffc |
adres stosu
|
0x0062 |
BPROG |
1 |
TW |
Bieżący PROGram (wskaźnik na strukturę opisującą aktualny proces)
|
0x0063 |
D2M5 |
1 |
|
kwant podziału winchestera
|
0x0064 |
TATYWI |
4 |
|
TAblica TYpów WInchesterów
|
0x0068 |
ADRPRK |
4 |
|
ADResy PaRKingowe
|
0x006c |
CONSUM |
1 |
|
suma kontrolna jądra (CONtrol SUM)
|
0x006d |
CHCS |
|
|
procedura licząca sumę kontrolną jądra (CHeck Control Sum)
|
0x0088 |
STOP1R |
|
|
tracenie czasu (dlaczego tutaj co 300 cykli timera liczymy sumę kontrolną?)
|
0x009a |
START |
|
|
start jądra
|
0x00a1 |
ST0 |
|
|
konfiguracja pamięci
|
0x00db |
SL0 |
|
|
wstępna inicjalizacja obszarów pamięci
|
0x0104 |
|
|
|
rozpoznanie dysków podłączonych do maszyny
|
0x0171 |
NMASK |
1 |
0xf000 |
kod instrukcji "JP(TAKE)" wykorzystywany w niekonwencjonalny sposób (do ustawiania Q,NB i maskowania przerwań)
|
0x01e9 |
EXIT |
|
|
wyjście ze schedulera? (przywróc rejestry i wektor stanu, uruchom proces)
|
0x020d |
EXIX |
|
|
"załaduj" bieżący proces
|
0x0231 |
TAKE |
|
|
wejście do schedulera?
|
... |
|
|
|
system
|
0x0368 |
CLOCK |
|
|
obsługa przerwania timera
|
0x0510 |
TABSIN |
6 |
HANGDV, IN1X...IN5X |
podprocedury obsługi dla SINT
|
0x054d |
INSTX |
1 |
|
obsługa przerwania instrukcji nielegalnej (w tym SINT)
|
... |
|
|
|
system
|
0x059e |
TABEXL |
65 |
|
TABlica EXtrakodów
|
0x05eb |
QEXIT |
|
|
wybranie następnego procesu do uruchomienia
|
0x113f |
PLXINX |
|
|
PLiX INit - obsługa przerwania po inicjalizacji PLIX-a (MULTIX-a)
|
0x11cf |
OUKM |
|
|
Operacja Ustaw Konfigurację Multix-a
|
0x11fc |
TAMXIN |
35 |
|
TAble MultiX INitialize (adresy procedur dla odpowiednich inicjalizacji)
|
0x121f |
TABWIN |
4 |
|
|
0x1223 |
WINERR |
17 |
|
|
0x123f |
MUXWIN |
35 |
|
MUltiX WINchester (weście do konfiguracji winchestera)
|
0x21bc |
COPSY0 |
|
|
COPy SYstem - procedura kopiujaca system do obszaru docelowego (uruchamia się jeśli uruchomić zassemblowane jądro)
|
... |
|
|
|
system
|
0x280e |
ABIN |
TERM=56 |
|
|
0x2846 |
QJW |
NOQ=16 |
|
|
0x2856 |
JOBMEM |
1 |
|
LISTA PROC Z PAO DO ODEBRANIA
|
0x2857 |
FREMEM |
1 |
|
LISTA WOLNEJ PAO
|
0x2858 |
BUFMEM |
1 |
|
LISTA 4K - BUFOROW
|
0x2859 |
RAMDIS |
1 |
|
lista zbiorow RAM\
|
0x285a |
PROCNU |
1 |
|
NUMER PROCESORA
|
0x285b |
PGRFX |
1 |
|
LISTA DLA GRF
|
0x285c |
LAST |
1 |
|
GENERATOR
|
0x285d |
SCLK |
1 |
|
|
0x285e |
YEAR |
1 |
|
|
0x285f |
DAYS |
2 |
|
|
0x2861 |
HOURS |
3 |
|
|
0x2864 |
SEC |
1 |
|
|
0x2865 |
CSEC |
1 |
|
|
0x2866 |
DSEC |
1 |
|
|
0x2867 |
MSEC |
1 |
|
aktualna ilość "tyknięć" timera do obudzenia schedulera (odlicza od BMSEC do 0)
|
0x2868 |
BCSEC |
1 |
|
|
0x2869 |
BMSEC |
1 |
-10 |
przerwanie timera budzi scheduler 10x rzadziej
|
0x286a |
CQJTST |
1 |
|
|
0x286b |
WRCS |
1 |
|
odtąd aż do ADINI0 - zerowane przy starcie
|
0x286c |
NUCLK |
1 |
|
|
0x286d |
LCLK |
1 |
|
|
0x286e |
ACLK |
1 |
|
|
0x286f |
PAXREG |
7 |
|
|
0x2876 |
ARTABL |
ILAR*4=60 |
|
METRYKI TALERZY
|
0x28b2 |
TABND |
ILAR=15 |
|
NAZWY TALARZY
|
0x28c1 |
TABAD |
ILAR=15 |
|
TABLICA OFSETOW
|
0x28d0 |
ADSNET |
1 |
|
|
0x28d1 |
INNET |
2 |
|
|
0x28d3 |
NETEN |
2 |
|
|
0x28d5 |
ENGCAM |
NOCAM+1=5 |
|
|
0x28da |
WORCAT |
1 |
|
|
0x28db |
ROBCOR |
1 |
|
KOM ROBOCZA DLA SIN+T.CORALE.
|
0x28dc |
ROBMEM |
7 |
|
|
0x28e3 |
FIR |
14 |
|
|
0x28e9 |
REJM |
7 |
|
zawiera się w FIR (FIR+6)
|
0x28f1 |
TSEXL |
12 |
|
|
0x28f8 |
NMFIL |
5 |
|
zawiera się w TSEXL (TSEXL+7)
|
0x28fd |
STATFI |
2 |
|
STATYSTYKA ZBIOROWA
|
0x28ff |
ADBFCH |
1 |
|
|
0x2900 |
AUKMX |
1 |
|
Adres Ustaw Konfigurację MultiX-a?
|
0x2901 |
AUKPLX |
1 |
0x2f85 |
Adres Ustaw Konfigurację PLiX-a?
|
0x2902 |
CHRMUX |
1 |
|
|
0x2903 |
MUXDIS |
1 |
|
|
0x2904 |
MUXTAP |
1 |
|
|
0x2905 |
MUXFLP |
1 |
|
|
0x2906 |
MUXPLX |
1 |
|
|
0x2907 |
LWINCH |
1 |
|
|
0x2908 |
MUXWRK |
2 |
|
|
0x290a |
ZERMLX |
1 |
|
|
0x290b |
TW |
PIOR+1=14 |
|
Fragment struktury opisującej proces. Kontekst procesu tracenia czasu? (Time Wait?)
|
0x2919 |
ADINI |
1 |
0x2fc5 |
Adres INI (procesu pierwotnego)?
|
0x291a |
ADGUP |
1 |
|
|
0x291b |
FREES |
1 |
|
|
0x291c |
FSART |
1 |
|
|
0x291d |
FSFT |
1 |
|
|
0x291e |
FLBS |
1 |
|
|
0x291f |
FSBS |
1 |
|
|
0x2920 |
ASYBUF |
1 |
|
|
0x2921 |
ASYTAB |
3 |
|
|
0x2924 |
IECENG |
LIEC=1 |
|
|
0x2925 |
IECADR |
LIEC=1 |
|
|
0x2926 |
TIECC |
1 |
|
|
0x2927 |
DVOF |
MEMCH=72 |
|
|
0x296f |
TABMUX |
MEMCH=72 |
|
|
0x29b7 |
TABF |
MEMCH=72 |
|
|
0x29ff |
ENGDEV |
MEMCH+NOMT=76 |
|
|
0x2a47 |
ENGMT |
4 |
|
ENGMT jest częścią ENGDEV (ENGDEV+MEMCH)
|
0x2a4b |
ST |
TERM=56 |
|
|
0x2a83 |
DISTAT |
12 |
|
|
0x2a8f |
JW |
JWIEC+8=89 |
|
|
0x2ae8 |
TBAR |
16 |
|
|
0x2af8 |
SYSTAB |
1 |
|
|
0x2af9 |
TMEBEG |
1 |
|
|
0x2afa |
TMEEND |
1 |
|
|
0x2afb |
NOMEMB |
|
|
|
...
|
0x2f85 |
*AUKPLX |
64 |
|
|
0x2fc5 |
*ADINI |
TABUJB=55 |
|
Kontekst procesu pierwotnego INI?
|
0x2ffc |
*STACK |
4 |
|
Stos systemowy (początkowo ADINI0)
|
02xffff |
|
|
|
ostatnie słowo 3. segmentu 4k
|