
Сообщение от
Patron
Похоже, что отсутствие сигнала готовности от нулевого привода СМ 5631 и зависание микропрограммы форматирования связаны друг с другом. Первый привод выдаёт сигнал готовности и его форматировать контроллер пытается, а при форматировании нулевого привода контроллер до бесконечности ждёт готовности.
Контроллер определяет готовность привода по форме сигнала INDEX.
Тогда получается, что чтение и запись в СМ 5631 начало дорожки по сигналу INDEX не проверяют - ведь им достаточно сигнала разметки, а при форматировании надо ждать начало дорожки по INDEX. Весьма вероятно, что у нулевого привода этот сигнал неисправен.
- - - Добавлено - - -
Кстати, судя по интерфейсу между внутренним контроллером привода и блоком механики - в качестве блока механики RX01 / СМ 5631 может выступать любой дисковод - хоть 3" в режиме 720К, хоть даже эмулятор дисковода на SD карте.
Про индекс вполне вероятно, мб перебито что где на кабеле, а может и сам карман неисправен...
Про ту ленту - гляньте плз тупо в текстовом просмотрщике, там много оказывается еще чего записано...
Код:
sistema programmirowaniq na "C". DECUS
sodervanie
kompilqtor & biblioteka
sprawo~noe rukowodstwo
1. wwedenie............................................ 6
awtor: martin minou 2. standartnaq biblioteka.............................. 7
redaktory: robert b. denni
2.1. wwedenie w potoki tipa UNIX...................... 8
2.2. otkrytie i zakrytie fajlow....................... 8
2.3. ~tenie dannyh iz fajla........................... 9
2.4. zapisx dannyh w fajl............................. 10
2.5. wzaimodejstwie s operacionnoj sistemoj........... 11
2.6. logi~eskie nomera ustrojstw...................... 11
2.7. gruppowye operacii s fajlami..................... 12
|tot dokument opisywaet biblioteku ispolnq`}ej sistemy 2.8. wydelenie pamqti................................. 13
qzyka "s" DECUS dlq operacionnyh sistem RSX/VMS/RSTS/RT11. 2.9. globalxnye simwoly............................... 13
on takve sodervit wse wnutrennie funkcii i ime`}u`sq infor-
maci`. 3. sluvebnaq informaciq................................ 14
3.1. kompilqtor....................................... 14
3.2. biblioteka ispolnq`}ej sistemy "C"............... 17
gruppa po strukturirowannym qzykam, DECUS 3.3. biblioteka interfejsa s RSTS/E................... 17
wersiq ot 6 noqbrq 1980 goda 3.4. ras{irennaq biblioteka RSX-11.................... 17
3.5. ras{irennaq biblioteka RT-11..................... 18
3.6. instrumenty i igru{ki............................ 18
3.7. polu~enie dokumentacii........................... 19
4. wnutrennqq informaciq kompilqtora................... 20
4.1. format fajla promevuto~nogo koda................. 20
4.2. kodogenerator.................................... 23
4.2.1. optimizaciq i raspredelenie registrow.......... 23
4.2.2. generator koda................................. 24
4.2.3. makrosy, ispolxzuemye pri kodogeneracii........ 25
4.3. poddervka ras{irennoj apparatury................. 27
5. opisanie bibliote~nyh funkcij....................... 28
5.1. preobrazowanie iz RADIX-50 w ASCII............... 28
5.2. zakrytx wse kanaly............................... 29
5.3. bezznakowoe delenie (tolxko MACRO)............... 29
5.4. preobrazowanie dwojnoj to~nosti w ASCII.......... 30
5.5. poddervka plawa`}ej zapqtoj.
slovenie/wy~itanie............................... 31
5.6. umnovenie/delenie s plawa`}ej zapqtoj............ 31
5.7. procedury poddervki plawa`}ej zapqtoj............ 32
5.8. razbor komandnoj stroki.......................... 32
5.9. polu~enie znakow................................. 33
5.10. odnorazowyj kod inicializacii.................... 34
5.11. preobrazowanie LONG w ASCII...................... 36
5.12. na~alo raboty programmy na "C"................... 36
Код:
- 2 -
1. wwedenie
dannyj dokument qwlqetsq wwedeniem w qzyk programmiro-
m_a_r_T_i_n m_i_n_O_u waniq "C".
q_z_y_K "C" "C" qwlqetsq uniwersalxnym qzykom programmirowaniq. on
tesno swqzan s operacionnoj sistemoj UNIX, tak kak byl raz-
rabotan na |toj sisteme i tak kak UNIX i ee programmnoe
obespe~enie napisano na "C". sam qzyk, odnako, ne swqzan s
kakoj-libo operacionnoj sistemoj ili ma{inoj; i hotq ego
nazywa`t qzykom sistemnogo programmirowaniq, tak kak on
udoben dlq napisaniq operacionnyh sistem, on s rawnym uspe-
hom ispolxzowalsq pri napisanii bolx{ih wy~islitelxnyh
programm, programm dlq obrabotki tekstow i baz dannyh."
"qzyk "C" - |to qzyk otnositelxno nizkogo urownq. w
takoj harakteristike net ni~ego oskorbitelxnogo; |to prosto
ozna~aet, ~to "C" imeet delo s ob'ektami togo ve wida, ~to
i bolx{instwo |wm, a imenno, s simwolami (znakami), ~islami
i adresami. oni mogut ob'edinqtxsq ili peresylatxsq pos-
redstwom oby~nyh arifmeti~eskih i logi~eskih operacij, osu-
}estwlqemyh realxnymi |wm".
"w qzyke "C" otsutstwu`t operacii, ime`}ie delo nepos-
redstwenno s sostawnymi ob'ektami, takimi kak stroki simwo-
low, mnovestwa, spiski ili massiwy, rassmatriwaemymi kak
edinoe celoe. zdesx, naprimer, net nikakogo analoga opera-
ciqm PL/1, operiru`}im celymi massiwami i strokami. qzyk ne
predostawlqet nikakih drugih wozmovnostej raspredeleniq
pamqti, krome stati~eskogo opredeleniq i mehanizma stekow,
obespe~iwaemogo lokalxnymi peremennymi funkcij: zdesx net
ni "ku~" (HEAP), ni "s borki musora", kak |to obespe~iwaetsq
w algole-68. napomnim, ~to sam po sebe "C" ne obespe~iwaet
nikakih wozmovnostej wwoda/wywoda: zdesx net operatorow
READ ili WRITE i nikakih wstroennyh metodow dostupa k faj-
lam. wse |ti mehanizmy wysokogo urownq dolvny obespe~iwatx-
sq qwno wyzywaemymi funkciqmi."
"analogi~no, qzyk "C" predlagaet tolxko prostye, pos-
ledowatelxnye konstrukcii potokow uprawleniq: prowerki,
cikly, gruppirowanie i podprogrammy, no ne mulxtiprogrammi-
rowanie, parallelxnye operacii, sinhronizaci` ili soprog-
rammy."
"... udervanie qzyka w skromnyh razmerah daet realxnye
preimu}estwa. tak kak "C" otnositelxno mal, on ne trebuet
mnogo mesta dlq swoego opisaniq i movet bytx bystro wyu~en.
kompilqtor "C" movet bytx prostym i kompaktnym. krome togo,
kompilqtory legko pi{utsq; pri ispolxzowanii sowremennoj
tehnologii movno ovidatx napisanie kompilqtora dlq nowoj
|wm za paru mesqcew i pri |tom okavetsq, ~to 80% programmy
nowogo kompilqtora budet ob}ej s programmoj uve su}estwu`-
}ih kompilqtorow. |to obespe~iwaet wysoku` stepenx mobilx-
nosti qzyka."
Код:
Input file ? **** GC V.01 **** R NOT FOUND INPUT FILE
Output file ? W I/O ERROR OUT.FILE
M00 : { IF( )
{ ;
;GOTO MK0 %2d
;}
ELSE { ;
FOR( )
{ } {
} {
; GOTO M00 %d 2%d ;}
; GOTO M00 %d ;}
%2d ;}
;} ;}
ELSE { PRINTF("KOMPLEX-ERROR IN %s " );
EXIT() %d %2d %3d ; GOTO MK0 %2d ;}
;}
;}
MK0 %2d : IF( $$narg = 1;
static char *daynames[] {
"woskresenxe", /* Sunday is day zero */
"ponedelxnik",
"wtornik",
"sreda",
"~etwerg",
"pqtnica",
"subbota",
};
static char *monthnames[] {
"?Nomember?", /* Illegal month */
"qnwarq",
"fewralq",
"marta",
"aprelq",
"maq",
"i`nq",
"i`lq",
"awgusta",
"sentqbrq",
"oktqbrq",
"noqbrq",
"dekabrq",
};
extern char *rtime();
main()
{
int day;
int month;
int year;
struct time{
int year;
int month;
int day;
int hour;
int minute;
int second;
int tick;
int tsec;
} tm;
rtime( &tm );
year = tm.year+1900;
month = tm.month;
day = tm.day;
printf("\016\nsegodnq ");
printf("%2u",day);
printf(" ");
printf(monthnames[month]);
printf(" ");
printf("%4u",year);
printf(" goda, ");
printf(daynames[ dayofweek(year,month,day)]);
printf(".\017\n");
}
dayofweek(year, month, day)
int year; /* Year, 1978 = 1978 */
int month; /* Month, January = 1 */
int day; /* Day of month, 1 = 1 */
/*
* Return the day of the week on which this date falls: Sunday = 0.
* Note, this routine is valid only for the Gregorian calender.
*/
{
register int yearfactor;
yearfactor = year + (month - 14)/12;
return (( (13 * (month + 10 - (month + 10)/13*12) - 1)/5
+ day + 77 + 5 * (yearfactor % 100)/4
+ yearfactor / 400
- yearfactor / 100 * 2) % 7);
}