Да раз 100 здесь говорилось как все сделать и название монитора тут совершенно непричем. Просто проще здесь написать "а-а-а! драйвер не подходит" чем самому один раз попробовать :)
А уж когда исходник драйвера есть и вовсе не ясны проблемы :)
Вид для печати
Насчёт E11 - у меня с ним пока дружба не налаживается (((
Зато EM(SOS) досовский - просто необходимая вещь при наличии живого УКНЦ!!!)))
Скрытый текст
А уживаться и не надо, надо им пользоваться как инструментом :)
Я в принципе все дискеты для УКНЦ (или если правильнее, вообще все дискеты и все диски кроме HDD для УКНЦ) готовил в E11.
---------- Post added at 18:46 ---------- Previous post was at 18:43 ----------
На картинке видна распечатка драйвера для системы без поддержки device timeout. Проблема отсутствует по определению.
А я к нему так никогда и не смог привыкнуть несмотря на то, что он пытается сделать вид, что работает в RSX :)
Возможно по той причине, что сначала всегда был PUD под рукой (который почти 1:1 RSXовский DUP), а в армии было проще написать свой редактор с нуля чем найти что-то еще :)
---------- Post added at 19:03 ---------- Previous post was at 18:57 ----------
А этот из образа даже этого не пробует - фи ;)
Когда я делал первый вариант RT-11 для первого варианта БК-0011 (когда у БК-0011 ещё не было вообще ни одной операционки) - то впервые загрузив на БК созданный для неё системный диск - обнаружил, что там нет экранного редактора, но зато есть BASIC.SAV и немедленно написал экранный редактор на Бэйсике.
Код:1 PRINT "Экранный редактор для БК-0011. Версия 1.0 <1988>"
2 PRINT \ GO TO 8
3 GO TO 1150
6 R7%=1% \ RETURN
7 R7%=0% \ RETURN
8 PUT(3%,-18812%) \ C1$=CHR$(26%) \ C2$=CHR$(27%) \ C3$=CHR$(25%) \ C4$=CHR$(8%)
9 G$=CHR$(7%) \ G%=1% \ X%=G%+Z1% \ Z%=1% \ Y%=Z% \ Z2%=Z1%+64% \ M$=CHR$(13%)
10 DIM A$(255%) \ K$=CHR$(11%) \ S$=CHR$(12%) \ H$=CHR$(18%) \ I$=CHR$(10%) \ I1$=CHR$(30%)
11 C$="QZ TBEN"+C1$+C2$+C3$+C4$+CHR$(22) \ N1%=80% \ N2%=20% \ N%=N1% \ E$=CHR$(5%)
12 U$=CHR$(0%) \ FOR J%=0% TO N1% \ P$=P$+U$ \ A$(J%)=E$ \ NEXT J%
14 R$=CHR$(14%) \ R1$=CHR$(15%) \ T$=CHR$(9%)
18 A%=TTYSET(255%,250%)
20 F$=" файл " \ PRINT "Входной ";F$; \ INPUT F1$
30 IF F1$="" THEN D%=1%
40 PRINT "Выходной";F$; \ INPUT F2$ \ IF F2$="" THEN F2$=F1$
50 IF D%=0% THEN OPEN F1$ AS FILE 1%
60 OPEN F2$ FOR OUTPUT AS FILE 2% FILESIZE -1%
80 GET(36%,J9%) \ PUT(4096%,36%) \ PRINT CHR$(2%);
84 A%=SYS(7%,0%)
90 GOSUB 3000
100 GOSUB 1500
102 E%=0% \ K%=0% \ V%=0%
110 A$=CHR$(A%) \ IF A%>31% THEN IF A%<127% THEN GOSUB 3635 \ GO TO 800
120 IF A%=127% THEN GOSUB 3640 \ GO TO 800
130 ON A% GOSUB 10000,3700,3,3680,3,3,3,3400,3,5000,3,3,3,6,7,3,3,2950,6000,3,3720,3600,3618,3,3300,3100,3200,3,3,3,3
150 ON K%+1% GO TO 800,840
800 A$(ASC(SEG$(P$,Z%,Z%)))=L$
840 GO TO 100
1000 L$="" \ IF D%=1% THEN E%=1% \ RETURN
1002 IF END #1% THEN GOSUB 1150 \ RETURN
1004 LINPUT #1%:L1$ \ IF POS(L1$,T$,1%)<>0% THEN 1008
1006 IF R%=0% THEN IF POS(L1$,R$,1%)=POS(L1$,R1$,1%) THEN L$=L1$ \ RETURN
1008 T1=0
1010 FOR J%=1% TO LEN(L1$) \ A%=ASC(SEG$(L1$,J%,J%)) \ IF A%=14% THEN R%=1% \ GO TO 1100
1020 IF A%=15% THEN R%=0% \ GO TO 1100
1022 T2%=0%
1024 IF A%=9 THEN A%=32 \ T2%=1%
1030 L$=L$+CHR$(A%+128%*R%)
1040 T1=T1+1
1050 IF T2%=1% THEN IF INT(T1/8)<>T1/8 THEN 1030
1100 NEXT J% \ RETURN
1150 PRINT G$; \ K%=1% \ E%=1% \ RETURN
1200 PRINT \ PRINT I1$; \ I%=1%
1210 FOR J%=I% TO LEN(L$) \ IF J%>Z1% THEN IF J%<Z2% THEN PRINT SEG$(L$,J%,J%);
1212 NEXT J% \ PRINT K$ \ RETURN
1300 PRINT H$; \ FOR J%=2% TO Y% \ PRINT I$; \ NEXT J%
1310 FOR J%=2% TO X% \ PRINT C3$; \ NEXT J% \ RETURN
1500 A%=SYS(1%) \ IF A%=13% THEN A%=SYS(1%)
1510 RETURN
1550 X%=G%-Z1% \ IF Z1%>=G% THEN X%=1% \ V2%=1%
1552 IF G%-Z1%>Z2% THEN X%=64% \ V1%=1%
1554 RETURN
2000 IF N%<1% THEN 1150
2010 P%=POS(P$,U$,1%) \ GOSUB 2200 \ A$(M%)=L$ \ N%=N%-1% \ GO TO 2600
2200 FOR M%=1% TO 251% \ IF A$(M%)=E$ THEN RETURN
2202 NEXT M% \ RETURN
2400 A$(ASC(SEG$(P$,P%,P%)))=E$ \ P$=SEG$(P$,1%,P%-1%)+SEG$(P$,P%+1%,N1%)+U$ \ N%=N%+1% \ RETURN
2500 IF N%<1% THEN 1150
2510 P$=SEG$(P$,1%,P%-1%)+CHR$(M%)+SEG$(P$,P%,N1%) \ N%=N%-1% \ RETURN
2600 GOSUB 2400 \ GOSUB 2500 \ RETURN
2700 FOR J%=1% TO LEN(L$) \ A%=ASC(SEG$(L$,J%,J%)) \ R1%=0% \ IF A%>128% THEN R1%=1% \ A%=A%-128%
2710 IF R1%<>R2% THEN PRINT #2%:CHR$(15%-R1%); \ R2%=R1%
2720 PRINT #2%:CHR$(A%); \ NEXT J% \ PRINT #2% \ RETURN
2800 I%=Z%-1%
2802 P%=1%
2810 FOR J1%=1 TO I% \ M%=ASC(SEG$(P$,1%,1%)) \ L$=A$(M%) \ GOSUB 2700 \ A$(M%)=E$ \ GOSUB 2400 \ Z%=Z%-1
2820 NEXT J1% \ RETURN
2900 I%=N%-N2% \ FOR J1%=1% TO I% \ E%=0% \ GOSUB 1000 \ GOSUB 2000 \ IF E%<>0% THEN F%=1% \ RETURN
2910 NEXT J1% \ RETURN
2950 PRINT S$; \ V%=1%
2951 I3%=Z%-Y% \ I4%=27% \ I%=N1%-N%+2% \ IF I4%>I% THEN I4%=I%
2952 FOR J1%=V% TO I4% \ I1%=I3%+J1% \ L$=A$(ASC(SEG$(P$,I1%,I1%))) \ GOSUB 1200 \ NEXT J1% \ GOSUB 1300 \ GO TO 4000
3000 GOSUB 2800 \ IF F%=0% THEN GOSUB 2900
3006 Y%=Z% \ GOSUB 2950 \ IF N1%-N%=0% THEN L$="" \ GOSUB 2000
3010 GO TO 3350
3100 Y%=Y%-1% \ IF Y%=0% THEN Y%=1% \ V%=1%
3110 Z%=Z%-1% \ IF Z%=0% THEN Z%=1% \ GOSUB 1150 \ RETURN
3114 GOSUB 4000
3116 PRINT I1$;
3120 IF V%=1% THEN GOSUB 1200 \ PRINT C1$; \ IF S%>=G% THEN 1310
3121 IF S%<G% THEN X%=1% \ PRINT M$; \ GO TO 3354
3130 RETURN
3200 I%=N1%-N%
3210 Z%=Z%+1% \ IF Z%>I% THEN Z%=I% \ GOSUB 1150 \ RETURN
3212 Y%=Y%+1% \ IF Y%=28% THEN Y%=27% \ V%=1%
3214 GOSUB 4000
3220 PRINT I$; \ GO TO 3120
3300 G%=G%+1% \ IF G%>S% THEN 3352
3306 IF G%=Z1%+1% THEN V2%=0% \ RETURN
3308 IF V2%=1% THEN RETURN
3310 V1%=0% \ X%=X%+1% \ IF X%>Z2% THEN X%=Z2% \ V1%=1% \ RETURN
3320 PRINT C3$; \ RETURN
3330 RETURN
3350 G%=1% \ X%=1% \ PRINT M$; \ IF Z1%>0% THEN V2%=1%
3351 RETURN
3352 IF Z%=N1%-N% THEN GOSUB 3121 \ GO TO 1150
3353 GOSUB 3350 \ GO TO 3200
3354 G%=S% \ V2%=0% \ I%=64%-X% \ I1%=S%-X%-Z1% \ V1%=1% \ IF I%>I1% THEN I%=I1% \ V1%=0% \ IF I1%<0% THEN V2%=1% \ RETURN
3355 X%=X%+I% \ FOR J%=1% TO I% \ PRINT C3$; \ NEXT J% \ RETURN
3356 GOSUB 3100 \ IF E%=0% THEN 3354
3360 RETURN
3400 G%=G%-1% \ IF G%=0% THEN G%=1% \ GO TO 3356
3406 IF G%-Z1%=Z2% THEN V1%=0% \ RETURN
3408 IF V1%=1% THEN RETURN
3410 V2%=0% \ X%=X%-1% \ IF X%=0% THEN X%=1% \ V2%=1% \ RETURN
3422 PRINT C4$; \ RETURN
3500 PUT(J9%,36%) \ V1%=0% \ V2%=0%
3504 PRINT H$;K$;"Зона "; \ PUT(19%,-18812%) \ LINPUT Y$ \ PUT(3%,-18812%)
3510 Z1%=VAL(Y$) \ Z2%=Z1%+64% \ GOSUB 1550 \ K%=1% \ PUT(4096%,36%) \ I%=SYS(7%,0%) \ GO TO 2950
3600 L$=SEG$(L$,1,G%-1%)+SEG$(L$,G%+1,S%) \ S%=S%-1%
3610 I%=G% \ GOSUB 1210
3612 PRINT C1$; \ GO TO 1310
3618 A$=" "
3620 L$=SEG$(L$,1,G%-1%)+A$+SEG$(L$,G%,S%) \ S%=S%+1% \ GO TO 3610
3635 IF R7%=1% THEN A$=CHR$(A%+128%)
3638 GOSUB 3620 \ GO TO 3300
3640 GOSUB 3400 \ GO TO 3600
3660 L1$=SEG$(L$,G%,S%) \ L$=SEG$(L$,1%,G%-1%) \ PRINT K$; \ U%=2%
3664 S%=S%-LEN(L1$) \ RETURN
3680 IF Z%=N1%-N% THEN 1150
3682 L1$=L$ \ U%=1% \ P%=Z% \ GOSUB 2400
3684 GOSUB 4000 \ GOSUB 3121 \ V%=Y% \ GO TO 2951
3700 GOSUB 2200 \ A$(M%)=""
3710 P%=Z% \ GOSUB 2500 \ GO TO 3684
3720 L1$=SEG$(L$,1%,G%-1%) \ L$=SEG$(L$,G%,S%) \ U%=3% \ GOSUB 3664 \ GOSUB 3350 \ GOSUB 1200 \ GO TO 3612
3800 ON U%+1% GO TO 1150,3830,3810,3810
3810 L$=SEG$(L$,1%,G%-1%)+L1$+SEG$(L$,G%,S%) \ I%=G% \ GOSUB 1210 \ S%=S%+LEN(L1$) \ IF U%=2% THEN 3612
3820 G%=G%+LEN(L1$) \ GOSUB 1550 \ GO TO 3612
3830 GOSUB 2200 \ A$(M%)=L1$ \ L$=L1$ \ GO TO 3710
4000 L$=A$(ASC(SEG$(P$,Z%,Z%))) \ S%=LEN(L$)+1% \ RETURN
5000 IF Z%=N1%-N% THEN L$="" \ GOSUB 2000 \ GO TO 3200
5010 GOSUB 3200 \ GO TO 3700
6000 GOSUB 1500 \ IF A%=19% THEN RETURN
6008 IF A%>96% THEN A%=A%-32%
6010 FOR J%=1% TO LEN(C$)
6014 IF A%=ASC(SEG$(C$,J%,J%)) THEN ON J% GO TO 10000,3500,3800,6040,6100,6200,3000,6300,6320,3354,3350,3660
6020 NEXT J% \ GO TO 1150
6040 Z%=1% \ Y%=Z% \ GOSUB 2950 \ GO TO 3121
6100 Z%=N1%-N% \ Y%=27% \ GOSUB 2950 \ GO TO 3121
6200 I%=N1%-N% \ IF D%=1% THEN 6208
6202 IF END #1% THEN IF A$(ASC(SEG$(P$,I%,I%)))="" THEN I%=I%-1%
6208 GOSUB 2802 \ IF D%=1% THEN 6230
6210 IF END #1% THEN 6230
6220 LINPUT #1%:L1$ \ PRINT #2%:L1$ \ GO TO 6210
6230 CLOSE \ GO TO 10000
6300 K1%=1%
6304 FOR J2%=1% TO 10% \ ON K1% GOSUB 3100,3200 \ IF E%=1% THEN RETURN
6310 NEXT J2% \ RETURN
6320 K1%=2% \ GO TO 6304
10000 PUT(J9%,36%) \ PUT(19%,-18812%) \ PRINT S$; \ STOP
В MS-DOS программа EDIT в реале ничто иное как врапер, запускающий их басиц в режиме редактирования :)
Правда там программ на басице для этого не используется :)
---------- Post added at 19:15 ---------- Previous post was at 19:10 ----------
Кстати, на случай если не видел, я тут давеча выкладывал полный дистриб BASIC-11 и BASIC-PLUS для RT-11 :)