TopSpeed был для PDP-подобных товарищей или для писюшных персоналок?
TopSpeed был для PDP-подобных товарищей или для писюшных персоналок?
Живая программа
Это когда-то написание BPFных фильтров вручную, а не через PCAP компилятор навеяло
Код:.TYP HELLO.MAC .TITLE HELLO .IDENT /V02.00/ START: <MOV!BLT!SWAB>,<BNE!MFPT>+<WAIT> <BCC>+<BNE!SWAB!WAIT>+<RESET*IOT*RTI> <BCS>+<BR>+<SWAB>+<MFPT*RTT>-<RTI> <ADD!BGE!BR!JMP!MFPT>+<WAIT> <SUB+BPL>+<ASL>-<JMP>-<IOT*IOT>-<IOT> <CMP!RETURN>-<RTT*IOT> .*'6+'c <BIC!CMP!ROL>+'2 <MOV*RTI>+<BR!JMP>+'$ HALT .END START .EX HELLO Hello World! .
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Да, а как же. Модула - язык для системного программирования. Обычно в каждой реализации есть псевдомодуль SYSTEM, через который можно иметь доступ к низкоуровневым возможностям.
Думаю, Модулы для PDP-11 со встроенным асмом нет. Смотрите, что я нашёл:
Приводится фрагмент исходника:
Я думаю, если бы встроенный асм был, то делать так не пришлось бы (А это самая прогрессивная реализация Модулы-2 от Гюнтера Доцеля!)Код:(* set up copy routine: MOV #NumberofWords,R3; MOV #BlockOffset,R5; MOV SP,R0; MOV #DataP,SP; LOOP MTPD (R5)+; SOB R3 END; MOV R0,SP; RTS PC; *) (* set up machine code; the X's are inserted by putXM *) Copy[mXr3]:=012703B; Copy[mXr5]:=012705B; Copy[mspr0]:=010600B; Copy[mXsp]:=012706B; Copy[mtpd]:=106625B; Copy[sob]:=077302B; Copy[mr0sp]:=010006B; Copy[haltnop]:=000240B; Copy[rtsr7]:=000207B;
Тут не подскажу, надо пробовать.
Большая удача - если удастся заполучить именно эту реализацию. Гюнтер писал, что это самая крутая реализация Модулы для PDP-11 из всех. И я ему верю.
В приведенном Вами фрагменте исходника именно то, что я и хотел увидеть. В пцшном борландовском Турбопаскале именно так же реализован встроенный асм (под 8086, естественно) - ограниченный набор асмовских инструкций вставлялся в код программы с границами асмовской вставки asm {нужные асмовские операторы} end. То есть, Модуловский компилятор это поддерживает. Правда, у Турбопаскаля были еще и т.н. inline фрагменты по директивам {+I} бинарный код {-I}, когда непосредственно в машинных кодах вставлялись процедуры и куски кода (было возможно такими вставками реализовать команды процессоров, отсутствующие во встроенном асме Турбопаскаля). Надо тогда прежде всего договориться с Гюнтером на предмет пересылки и возврата всей его коллекции 8-дюймовых дискет на вычитку (по оплате пересыла и возврата, думаю, вопрос можно решить в складчину), затем договориться с надежным обладателем не портящего дискеты работоспособного 8-дюймового флоповода на предмет вычитки чтобы он снял полные образы. Естественно, надо обговорить вопрос об авторских правах и на каких условиях Гюнтер согласится на использование его наработок. Вычитаем - подумаем о кросс-Модуле под линуху, будет от чего отталкиваться.
Не совсем так. Начиная с BP6 между asm-end вставлялся вполне полноценный ассемблерный код, умеющий нормально ссылаться на аргументы, переменные итд без всяких извратов, поддерживающий локальные метки. В BC асм был по сравнению с ним просто убогим. У меня 80% кода программ на BP состояли из асма
Кстати без всяких усилий прямо на BP можно было писать драйвера, подключаемые по DEVICE= с программой в одном флаконе.
А до этого (в TP5.5) вроде асма просто не было, а можно было писать коды. Впрочем с 5.5 я работал недолго и могу не знать чего-нибудь
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
/* именно то, что я и хотел увидеть. */
Насколько я понял то что вы хотели увидеть (сверху) это комментарий.., а реально (снизу) вставляют машкоды..
Это трудно назвать встроенным асмом...
Уж какой есть, но все же есть. Понятно, что реализация другая и оформление другое, но, судя по приведенному листингу, эта фича в Модуле-2 присутствует. Именно то, что я хотел увидеть - не комментарий, а кусок асмовского кода PDP-11 в модуловской программе. Да, встроенный асм появился в TP 6.0. Насчет драйверов на TP ничего сказать вообще не могу, т.к. когда начал изучать формат файлов .SYS, произошел массовый перескок на Win 98. Да и смысл в таких связках драйвер+программа есть только при программировании графических программ для встроенных систем с MSDOS на борту.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)